From 2cfeb09539c14daf20c051b198b960654669884f Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:28:26 +0300 Subject: [PATCH 01/15] Add files via upload --- examples/js/third_party/three.js/three.js | 42297 ++++++++++++++++++++ 1 file changed, 42297 insertions(+) create mode 100644 examples/js/third_party/three.js/three.js diff --git a/examples/js/third_party/three.js/three.js b/examples/js/third_party/three.js/three.js new file mode 100644 index 00000000..e19e2569 --- /dev/null +++ b/examples/js/third_party/three.js/three.js @@ -0,0 +1,42297 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.THREE = global.THREE || {}))); +}(this, (function (exports) { 'use strict'; + + // Polyfills + + if ( Number.EPSILON === undefined ) { + + Number.EPSILON = Math.pow( 2, - 52 ); + + } + + // + + if ( Math.sign === undefined ) { + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign + + Math.sign = function ( x ) { + + return ( x < 0 ) ? - 1 : ( x > 0 ) ? 1 : + x; + + }; + + } + + if ( Function.prototype.name === undefined ) { + + // Missing in IE9-11. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name + + Object.defineProperty( Function.prototype, 'name', { + + get: function () { + + return this.toString().match( /^\s*function\s*(\S*)\s*\(/ )[ 1 ]; + + } + + } ); + + } + + if ( Object.assign === undefined ) { + + // Missing in IE. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign + + ( function () { + + Object.assign = function ( target ) { + + 'use strict'; + + if ( target === undefined || target === null ) { + + throw new TypeError( 'Cannot convert undefined or null to object' ); + + } + + var output = Object( target ); + + for ( var index = 1; index < arguments.length; index ++ ) { + + var source = arguments[ index ]; + + if ( source !== undefined && source !== null ) { + + for ( var nextKey in source ) { + + if ( Object.prototype.hasOwnProperty.call( source, nextKey ) ) { + + output[ nextKey ] = source[ nextKey ]; + + } + + } + + } + + } + + return output; + + }; + + } )(); + + } + + /** + * https://github.com/mrdoob/eventdispatcher.js/ + */ + + function EventDispatcher() {} + + Object.assign( EventDispatcher.prototype, { + + addEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) this._listeners = {}; + + var listeners = this._listeners; + + if ( listeners[ type ] === undefined ) { + + listeners[ type ] = []; + + } + + if ( listeners[ type ].indexOf( listener ) === - 1 ) { + + listeners[ type ].push( listener ); + + } + + }, + + hasEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return false; + + var listeners = this._listeners; + + if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) { + + return true; + + } + + return false; + + }, + + removeEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ type ]; + + if ( listenerArray !== undefined ) { + + var index = listenerArray.indexOf( listener ); + + if ( index !== - 1 ) { + + listenerArray.splice( index, 1 ); + + } + + } + + }, + + dispatchEvent: function ( event ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ event.type ]; + + if ( listenerArray !== undefined ) { + + event.target = this; + + var array = [], i = 0; + var length = listenerArray.length; + + for ( i = 0; i < length; i ++ ) { + + array[ i ] = listenerArray[ i ]; + + } + + for ( i = 0; i < length; i ++ ) { + + array[ i ].call( this, event ); + + } + + } + + } + + } ); + + var REVISION = '82'; + var MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 }; + var CullFaceNone = 0; + var CullFaceBack = 1; + var CullFaceFront = 2; + var CullFaceFrontBack = 3; + var FrontFaceDirectionCW = 0; + var FrontFaceDirectionCCW = 1; + var BasicShadowMap = 0; + var PCFShadowMap = 1; + var PCFSoftShadowMap = 2; + var FrontSide = 0; + var BackSide = 1; + var DoubleSide = 2; + var FlatShading = 1; + var SmoothShading = 2; + var NoColors = 0; + var FaceColors = 1; + var VertexColors = 2; + var NoBlending = 0; + var NormalBlending = 1; + var AdditiveBlending = 2; + var SubtractiveBlending = 3; + var MultiplyBlending = 4; + var CustomBlending = 5; + var BlendingMode = { + NoBlending: NoBlending, + NormalBlending: NormalBlending, + AdditiveBlending: AdditiveBlending, + SubtractiveBlending: SubtractiveBlending, + MultiplyBlending: MultiplyBlending, + CustomBlending: CustomBlending + }; + var AddEquation = 100; + var SubtractEquation = 101; + var ReverseSubtractEquation = 102; + var MinEquation = 103; + var MaxEquation = 104; + var ZeroFactor = 200; + var OneFactor = 201; + var SrcColorFactor = 202; + var OneMinusSrcColorFactor = 203; + var SrcAlphaFactor = 204; + var OneMinusSrcAlphaFactor = 205; + var DstAlphaFactor = 206; + var OneMinusDstAlphaFactor = 207; + var DstColorFactor = 208; + var OneMinusDstColorFactor = 209; + var SrcAlphaSaturateFactor = 210; + var NeverDepth = 0; + var AlwaysDepth = 1; + var LessDepth = 2; + var LessEqualDepth = 3; + var EqualDepth = 4; + var GreaterEqualDepth = 5; + var GreaterDepth = 6; + var NotEqualDepth = 7; + var MultiplyOperation = 0; + var MixOperation = 1; + var AddOperation = 2; + var NoToneMapping = 0; + var LinearToneMapping = 1; + var ReinhardToneMapping = 2; + var Uncharted2ToneMapping = 3; + var CineonToneMapping = 4; + var UVMapping = 300; + var CubeReflectionMapping = 301; + var CubeRefractionMapping = 302; + var EquirectangularReflectionMapping = 303; + var EquirectangularRefractionMapping = 304; + var SphericalReflectionMapping = 305; + var CubeUVReflectionMapping = 306; + var CubeUVRefractionMapping = 307; + var TextureMapping = { + UVMapping: UVMapping, + CubeReflectionMapping: CubeReflectionMapping, + CubeRefractionMapping: CubeRefractionMapping, + EquirectangularReflectionMapping: EquirectangularReflectionMapping, + EquirectangularRefractionMapping: EquirectangularRefractionMapping, + SphericalReflectionMapping: SphericalReflectionMapping, + CubeUVReflectionMapping: CubeUVReflectionMapping, + CubeUVRefractionMapping: CubeUVRefractionMapping + }; + var RepeatWrapping = 1000; + var ClampToEdgeWrapping = 1001; + var MirroredRepeatWrapping = 1002; + var TextureWrapping = { + RepeatWrapping: RepeatWrapping, + ClampToEdgeWrapping: ClampToEdgeWrapping, + MirroredRepeatWrapping: MirroredRepeatWrapping + }; + var NearestFilter = 1003; + var NearestMipMapNearestFilter = 1004; + var NearestMipMapLinearFilter = 1005; + var LinearFilter = 1006; + var LinearMipMapNearestFilter = 1007; + var LinearMipMapLinearFilter = 1008; + var TextureFilter = { + NearestFilter: NearestFilter, + NearestMipMapNearestFilter: NearestMipMapNearestFilter, + NearestMipMapLinearFilter: NearestMipMapLinearFilter, + LinearFilter: LinearFilter, + LinearMipMapNearestFilter: LinearMipMapNearestFilter, + LinearMipMapLinearFilter: LinearMipMapLinearFilter + }; + var UnsignedByteType = 1009; + var ByteType = 1010; + var ShortType = 1011; + var UnsignedShortType = 1012; + var IntType = 1013; + var UnsignedIntType = 1014; + var FloatType = 1015; + var HalfFloatType = 1016; + var UnsignedShort4444Type = 1017; + var UnsignedShort5551Type = 1018; + var UnsignedShort565Type = 1019; + var UnsignedInt248Type = 1020; + var AlphaFormat = 1021; + var RGBFormat = 1022; + var RGBAFormat = 1023; + var LuminanceFormat = 1024; + var LuminanceAlphaFormat = 1025; + var RGBEFormat = RGBAFormat; + var DepthFormat = 1026; + var DepthStencilFormat = 1027; + var RGB_S3TC_DXT1_Format = 2001; + var RGBA_S3TC_DXT1_Format = 2002; + var RGBA_S3TC_DXT3_Format = 2003; + var RGBA_S3TC_DXT5_Format = 2004; + var RGB_PVRTC_4BPPV1_Format = 2100; + var RGB_PVRTC_2BPPV1_Format = 2101; + var RGBA_PVRTC_4BPPV1_Format = 2102; + var RGBA_PVRTC_2BPPV1_Format = 2103; + var RGB_ETC1_Format = 2151; + var LoopOnce = 2200; + var LoopRepeat = 2201; + var LoopPingPong = 2202; + var InterpolateDiscrete = 2300; + var InterpolateLinear = 2301; + var InterpolateSmooth = 2302; + var ZeroCurvatureEnding = 2400; + var ZeroSlopeEnding = 2401; + var WrapAroundEnding = 2402; + var TrianglesDrawMode = 0; + var TriangleStripDrawMode = 1; + var TriangleFanDrawMode = 2; + var LinearEncoding = 3000; + var sRGBEncoding = 3001; + var GammaEncoding = 3007; + var RGBEEncoding = 3002; + var LogLuvEncoding = 3003; + var RGBM7Encoding = 3004; + var RGBM16Encoding = 3005; + var RGBDEncoding = 3006; + var BasicDepthPacking = 3200; + var RGBADepthPacking = 3201; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + var _Math = { + + DEG2RAD: Math.PI / 180, + RAD2DEG: 180 / Math.PI, + + generateUUID: function () { + + // http://www.broofa.com/Tools/Math.uuid.htm + + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split( '' ); + var uuid = new Array( 36 ); + var rnd = 0, r; + + return function generateUUID() { + + for ( var i = 0; i < 36; i ++ ) { + + if ( i === 8 || i === 13 || i === 18 || i === 23 ) { + + uuid[ i ] = '-'; + + } else if ( i === 14 ) { + + uuid[ i ] = '4'; + + } else { + + if ( rnd <= 0x02 ) rnd = 0x2000000 + ( Math.random() * 0x1000000 ) | 0; + r = rnd & 0xf; + rnd = rnd >> 4; + uuid[ i ] = chars[ ( i === 19 ) ? ( r & 0x3 ) | 0x8 : r ]; + + } + + } + + return uuid.join( '' ); + + }; + + }(), + + clamp: function ( value, min, max ) { + + return Math.max( min, Math.min( max, value ) ); + + }, + + // compute euclidian modulo of m % n + // https://en.wikipedia.org/wiki/Modulo_operation + + euclideanModulo: function ( n, m ) { + + return ( ( n % m ) + m ) % m; + + }, + + // Linear mapping from range to range + + mapLinear: function ( x, a1, a2, b1, b2 ) { + + return b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 ); + + }, + + // https://en.wikipedia.org/wiki/Linear_interpolation + + lerp: function ( x, y, t ) { + + return ( 1 - t ) * x + t * y; + + }, + + // http://en.wikipedia.org/wiki/Smoothstep + + smoothstep: function ( x, min, max ) { + + if ( x <= min ) return 0; + if ( x >= max ) return 1; + + x = ( x - min ) / ( max - min ); + + return x * x * ( 3 - 2 * x ); + + }, + + smootherstep: function ( x, min, max ) { + + if ( x <= min ) return 0; + if ( x >= max ) return 1; + + x = ( x - min ) / ( max - min ); + + return x * x * x * ( x * ( x * 6 - 15 ) + 10 ); + + }, + + random16: function () { + + console.warn( 'THREE.Math.random16() has been deprecated. Use Math.random() instead.' ); + return Math.random(); + + }, + + // Random integer from interval + + randInt: function ( low, high ) { + + return low + Math.floor( Math.random() * ( high - low + 1 ) ); + + }, + + // Random float from interval + + randFloat: function ( low, high ) { + + return low + Math.random() * ( high - low ); + + }, + + // Random float from <-range/2, range/2> interval + + randFloatSpread: function ( range ) { + + return range * ( 0.5 - Math.random() ); + + }, + + degToRad: function ( degrees ) { + + return degrees * _Math.DEG2RAD; + + }, + + radToDeg: function ( radians ) { + + return radians * _Math.RAD2DEG; + + }, + + isPowerOfTwo: function ( value ) { + + return ( value & ( value - 1 ) ) === 0 && value !== 0; + + }, + + nearestPowerOfTwo: function ( value ) { + + return Math.pow( 2, Math.round( Math.log( value ) / Math.LN2 ) ); + + }, + + nextPowerOfTwo: function ( value ) { + + value --; + value |= value >> 1; + value |= value >> 2; + value |= value >> 4; + value |= value >> 8; + value |= value >> 16; + value ++; + + return value; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author philogb / http://blog.thejit.org/ + * @author egraether / http://egraether.com/ + * @author zz85 / http://www.lab4games.net/zz85/blog + */ + + function Vector2( x, y ) { + + this.x = x || 0; + this.y = y || 0; + + } + + Vector2.prototype = { + + constructor: Vector2, + + isVector2: true, + + get width() { + + return this.x; + + }, + + set width( value ) { + + this.x = value; + + }, + + get height() { + + return this.y; + + }, + + set height( value ) { + + this.y = value; + + }, + + // + + set: function ( x, y ) { + + this.x = x; + this.y = y; + + return this; + + }, + + setScalar: function ( scalar ) { + + this.x = scalar; + this.y = scalar; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + return this; + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + clone: function () { + + return new this.constructor( this.x, this.y ); + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + + return this; + + }, + + addScaledVector: function ( v, s ) { + + this.x += v.x * s; + this.y += v.y * s; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + + return this; + + }, + + multiply: function ( v ) { + + this.x *= v.x; + this.y *= v.y; + + return this; + + }, + + multiplyScalar: function ( scalar ) { + + if ( isFinite( scalar ) ) { + + this.x *= scalar; + this.y *= scalar; + + } else { + + this.x = 0; + this.y = 0; + + } + + return this; + + }, + + divide: function ( v ) { + + this.x /= v.x; + this.y /= v.y; + + return this; + + }, + + divideScalar: function ( scalar ) { + + return this.multiplyScalar( 1 / scalar ); + + }, + + min: function ( v ) { + + this.x = Math.min( this.x, v.x ); + this.y = Math.min( this.y, v.y ); + + return this; + + }, + + max: function ( v ) { + + this.x = Math.max( this.x, v.x ); + this.y = Math.max( this.y, v.y ); + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + this.x = Math.max( min.x, Math.min( max.x, this.x ) ); + this.y = Math.max( min.y, Math.min( max.y, this.y ) ); + + return this; + + }, + + clampScalar: function () { + + var min, max; + + return function clampScalar( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new Vector2(); + max = new Vector2(); + + } + + min.set( minVal, minVal ); + max.set( maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + }(), + + clampLength: function ( min, max ) { + + var length = this.length(); + + return this.multiplyScalar( Math.max( min, Math.min( max, length ) ) / length ); + + }, + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y ); + + }, + + lengthManhattan: function() { + + return Math.abs( this.x ) + Math.abs( this.y ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + angle: function () { + + // computes the angle in radians with respect to the positive x-axis + + var angle = Math.atan2( this.y, this.x ); + + if ( angle < 0 ) angle += 2 * Math.PI; + + return angle; + + }, + + distanceTo: function ( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + }, + + distanceToSquared: function ( v ) { + + var dx = this.x - v.x, dy = this.y - v.y; + return dx * dx + dy * dy; + + }, + + distanceToManhattan: function ( v ) { + + return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ); + + }, + + setLength: function ( length ) { + + return this.multiplyScalar( length / this.length() ); + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + + return this; + + }, + + rotateAround: function ( center, angle ) { + + var c = Math.cos( angle ), s = Math.sin( angle ); + + var x = this.x - center.x; + var y = this.y - center.y; + + this.x = x * c - y * s + center.x; + this.y = x * s + y * c + center.y; + + return this; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author szimek / https://github.com/szimek/ + */ + + function Texture( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) { + + Object.defineProperty( this, 'id', { value: TextureIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.sourceFile = ''; + + this.image = image !== undefined ? image : Texture.DEFAULT_IMAGE; + this.mipmaps = []; + + this.mapping = mapping !== undefined ? mapping : Texture.DEFAULT_MAPPING; + + this.wrapS = wrapS !== undefined ? wrapS : ClampToEdgeWrapping; + this.wrapT = wrapT !== undefined ? wrapT : ClampToEdgeWrapping; + + this.magFilter = magFilter !== undefined ? magFilter : LinearFilter; + this.minFilter = minFilter !== undefined ? minFilter : LinearMipMapLinearFilter; + + this.anisotropy = anisotropy !== undefined ? anisotropy : 1; + + this.format = format !== undefined ? format : RGBAFormat; + this.type = type !== undefined ? type : UnsignedByteType; + + this.offset = new Vector2( 0, 0 ); + this.repeat = new Vector2( 1, 1 ); + + this.generateMipmaps = true; + this.premultiplyAlpha = false; + this.flipY = true; + this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml) + + + // Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap. + // + // Also changing the encoding after already used by a Material will not automatically make the Material + // update. You need to explicitly call Material.needsUpdate to trigger it to recompile. + this.encoding = encoding !== undefined ? encoding : LinearEncoding; + + this.version = 0; + this.onUpdate = null; + + } + + Texture.DEFAULT_IMAGE = undefined; + Texture.DEFAULT_MAPPING = UVMapping; + + Texture.prototype = { + + constructor: Texture, + + isTexture: true, + + set needsUpdate( value ) { + + if ( value === true ) this.version ++; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( source ) { + + this.image = source.image; + this.mipmaps = source.mipmaps.slice( 0 ); + + this.mapping = source.mapping; + + this.wrapS = source.wrapS; + this.wrapT = source.wrapT; + + this.magFilter = source.magFilter; + this.minFilter = source.minFilter; + + this.anisotropy = source.anisotropy; + + this.format = source.format; + this.type = source.type; + + this.offset.copy( source.offset ); + this.repeat.copy( source.repeat ); + + this.generateMipmaps = source.generateMipmaps; + this.premultiplyAlpha = source.premultiplyAlpha; + this.flipY = source.flipY; + this.unpackAlignment = source.unpackAlignment; + this.encoding = source.encoding; + + return this; + + }, + + toJSON: function ( meta ) { + + if ( meta.textures[ this.uuid ] !== undefined ) { + + return meta.textures[ this.uuid ]; + + } + + function getDataURL( image ) { + + var canvas; + + if ( image.toDataURL !== undefined ) { + + canvas = image; + + } else { + + canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ); + canvas.width = image.width; + canvas.height = image.height; + + canvas.getContext( '2d' ).drawImage( image, 0, 0, image.width, image.height ); + + } + + if ( canvas.width > 2048 || canvas.height > 2048 ) { + + return canvas.toDataURL( 'image/jpeg', 0.6 ); + + } else { + + return canvas.toDataURL( 'image/png' ); + + } + + } + + var output = { + metadata: { + version: 4.4, + type: 'Texture', + generator: 'Texture.toJSON' + }, + + uuid: this.uuid, + name: this.name, + + mapping: this.mapping, + + repeat: [ this.repeat.x, this.repeat.y ], + offset: [ this.offset.x, this.offset.y ], + wrap: [ this.wrapS, this.wrapT ], + + minFilter: this.minFilter, + magFilter: this.magFilter, + anisotropy: this.anisotropy, + + flipY: this.flipY + }; + + if ( this.image !== undefined ) { + + // TODO: Move to THREE.Image + + var image = this.image; + + if ( image.uuid === undefined ) { + + image.uuid = _Math.generateUUID(); // UGH + + } + + if ( meta.images[ image.uuid ] === undefined ) { + + meta.images[ image.uuid ] = { + uuid: image.uuid, + url: getDataURL( image ) + }; + + } + + output.image = image.uuid; + + } + + meta.textures[ this.uuid ] = output; + + return output; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + }, + + transformUv: function ( uv ) { + + if ( this.mapping !== UVMapping ) return; + + uv.multiply( this.repeat ); + uv.add( this.offset ); + + if ( uv.x < 0 || uv.x > 1 ) { + + switch ( this.wrapS ) { + + case RepeatWrapping: + + uv.x = uv.x - Math.floor( uv.x ); + break; + + case ClampToEdgeWrapping: + + uv.x = uv.x < 0 ? 0 : 1; + break; + + case MirroredRepeatWrapping: + + if ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) { + + uv.x = Math.ceil( uv.x ) - uv.x; + + } else { + + uv.x = uv.x - Math.floor( uv.x ); + + } + break; + + } + + } + + if ( uv.y < 0 || uv.y > 1 ) { + + switch ( this.wrapT ) { + + case RepeatWrapping: + + uv.y = uv.y - Math.floor( uv.y ); + break; + + case ClampToEdgeWrapping: + + uv.y = uv.y < 0 ? 0 : 1; + break; + + case MirroredRepeatWrapping: + + if ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) { + + uv.y = Math.ceil( uv.y ) - uv.y; + + } else { + + uv.y = uv.y - Math.floor( uv.y ); + + } + break; + + } + + } + + if ( this.flipY ) { + + uv.y = 1 - uv.y; + + } + + } + + }; + + Object.assign( Texture.prototype, EventDispatcher.prototype ); + + var count = 0; + function TextureIdCount() { return count++; } + + /** + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author philogb / http://blog.thejit.org/ + * @author mikael emtinger / http://gomo.se/ + * @author egraether / http://egraether.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function Vector4( x, y, z, w ) { + + this.x = x || 0; + this.y = y || 0; + this.z = z || 0; + this.w = ( w !== undefined ) ? w : 1; + + } + + Vector4.prototype = { + + constructor: Vector4, + + isVector4: true, + + set: function ( x, y, z, w ) { + + this.x = x; + this.y = y; + this.z = z; + this.w = w; + + return this; + + }, + + setScalar: function ( scalar ) { + + this.x = scalar; + this.y = scalar; + this.z = scalar; + this.w = scalar; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setZ: function ( z ) { + + this.z = z; + + return this; + + }, + + setW: function ( w ) { + + this.w = w; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + case 2: this.z = value; break; + case 3: this.w = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + return this; + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + case 2: return this.z; + case 3: return this.w; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + clone: function () { + + return new this.constructor( this.x, this.y, this.z, this.w ); + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + this.z = v.z; + this.w = ( v.w !== undefined ) ? v.w : 1; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + this.z += v.z; + this.w += v.w; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + this.z += s; + this.w += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + this.w = a.w + b.w; + + return this; + + }, + + addScaledVector: function ( v, s ) { + + this.x += v.x * s; + this.y += v.y * s; + this.z += v.z * s; + this.w += v.w * s; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + this.w -= v.w; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + this.z -= s; + this.w -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + this.w = a.w - b.w; + + return this; + + }, + + multiplyScalar: function ( scalar ) { + + if ( isFinite( scalar ) ) { + + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + this.w *= scalar; + + } else { + + this.x = 0; + this.y = 0; + this.z = 0; + this.w = 0; + + } + + return this; + + }, + + applyMatrix4: function ( m ) { + + var x = this.x, y = this.y, z = this.z, w = this.w; + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w; + this.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w; + + return this; + + }, + + divideScalar: function ( scalar ) { + + return this.multiplyScalar( 1 / scalar ); + + }, + + setAxisAngleFromQuaternion: function ( q ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm + + // q is assumed to be normalized + + this.w = 2 * Math.acos( q.w ); + + var s = Math.sqrt( 1 - q.w * q.w ); + + if ( s < 0.0001 ) { + + this.x = 1; + this.y = 0; + this.z = 0; + + } else { + + this.x = q.x / s; + this.y = q.y / s; + this.z = q.z / s; + + } + + return this; + + }, + + setAxisAngleFromRotationMatrix: function ( m ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var angle, x, y, z, // variables for result + epsilon = 0.01, // margin to allow for rounding errors + epsilon2 = 0.1, // margin to distinguish between 0 and 180 degrees + + te = m.elements, + + m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], + m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], + m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ]; + + if ( ( Math.abs( m12 - m21 ) < epsilon ) && + ( Math.abs( m13 - m31 ) < epsilon ) && + ( Math.abs( m23 - m32 ) < epsilon ) ) { + + // singularity found + // first check for identity matrix which must have +1 for all terms + // in leading diagonal and zero in other terms + + if ( ( Math.abs( m12 + m21 ) < epsilon2 ) && + ( Math.abs( m13 + m31 ) < epsilon2 ) && + ( Math.abs( m23 + m32 ) < epsilon2 ) && + ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) { + + // this singularity is identity matrix so angle = 0 + + this.set( 1, 0, 0, 0 ); + + return this; // zero angle, arbitrary axis + + } + + // otherwise this singularity is angle = 180 + + angle = Math.PI; + + var xx = ( m11 + 1 ) / 2; + var yy = ( m22 + 1 ) / 2; + var zz = ( m33 + 1 ) / 2; + var xy = ( m12 + m21 ) / 4; + var xz = ( m13 + m31 ) / 4; + var yz = ( m23 + m32 ) / 4; + + if ( ( xx > yy ) && ( xx > zz ) ) { + + // m11 is the largest diagonal term + + if ( xx < epsilon ) { + + x = 0; + y = 0.707106781; + z = 0.707106781; + + } else { + + x = Math.sqrt( xx ); + y = xy / x; + z = xz / x; + + } + + } else if ( yy > zz ) { + + // m22 is the largest diagonal term + + if ( yy < epsilon ) { + + x = 0.707106781; + y = 0; + z = 0.707106781; + + } else { + + y = Math.sqrt( yy ); + x = xy / y; + z = yz / y; + + } + + } else { + + // m33 is the largest diagonal term so base result on this + + if ( zz < epsilon ) { + + x = 0.707106781; + y = 0.707106781; + z = 0; + + } else { + + z = Math.sqrt( zz ); + x = xz / z; + y = yz / z; + + } + + } + + this.set( x, y, z, angle ); + + return this; // return 180 deg rotation + + } + + // as we have reached here there are no singularities so we can handle normally + + var s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) + + ( m13 - m31 ) * ( m13 - m31 ) + + ( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize + + if ( Math.abs( s ) < 0.001 ) s = 1; + + // prevent divide by zero, should not happen if matrix is orthogonal and should be + // caught by singularity test above, but I've left it in just in case + + this.x = ( m32 - m23 ) / s; + this.y = ( m13 - m31 ) / s; + this.z = ( m21 - m12 ) / s; + this.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 ); + + return this; + + }, + + min: function ( v ) { + + this.x = Math.min( this.x, v.x ); + this.y = Math.min( this.y, v.y ); + this.z = Math.min( this.z, v.z ); + this.w = Math.min( this.w, v.w ); + + return this; + + }, + + max: function ( v ) { + + this.x = Math.max( this.x, v.x ); + this.y = Math.max( this.y, v.y ); + this.z = Math.max( this.z, v.z ); + this.w = Math.max( this.w, v.w ); + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + this.x = Math.max( min.x, Math.min( max.x, this.x ) ); + this.y = Math.max( min.y, Math.min( max.y, this.y ) ); + this.z = Math.max( min.z, Math.min( max.z, this.z ) ); + this.w = Math.max( min.w, Math.min( max.w, this.w ) ); + + return this; + + }, + + clampScalar: function () { + + var min, max; + + return function clampScalar( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new Vector4(); + max = new Vector4(); + + } + + min.set( minVal, minVal, minVal, minVal ); + max.set( maxVal, maxVal, maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + }(), + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + this.z = Math.floor( this.z ); + this.w = Math.floor( this.w ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + this.z = Math.ceil( this.z ); + this.w = Math.ceil( this.w ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + this.z = Math.round( this.z ); + this.w = Math.round( this.w ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); + this.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + this.z = - this.z; + this.w = - this.w; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w ); + + }, + + lengthManhattan: function () { + + return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + setLength: function ( length ) { + + return this.multiplyScalar( length / this.length() ); + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + this.z += ( v.z - this.z ) * alpha; + this.w += ( v.w - this.w ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + this.z = array[ offset + 2 ]; + this.w = array[ offset + 3 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + array[ offset + 2 ] = this.z; + array[ offset + 3 ] = this.w; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + this.z = attribute.array[ index + 2 ]; + this.w = attribute.array[ index + 3 ]; + + return this; + + } + + }; + + /** + * @author szimek / https://github.com/szimek/ + * @author alteredq / http://alteredqualia.com/ + * @author Marius Kintel / https://github.com/kintel + */ + + /* + In options, we can specify: + * Texture parameters for an auto-generated target texture + * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers + */ + function WebGLRenderTarget( width, height, options ) { + + this.uuid = _Math.generateUUID(); + + this.width = width; + this.height = height; + + this.scissor = new Vector4( 0, 0, width, height ); + this.scissorTest = false; + + this.viewport = new Vector4( 0, 0, width, height ); + + options = options || {}; + + if ( options.minFilter === undefined ) options.minFilter = LinearFilter; + + this.texture = new Texture( undefined, undefined, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding ); + + this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true; + this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : true; + this.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null; + + } + + Object.assign( WebGLRenderTarget.prototype, EventDispatcher.prototype, { + + isWebGLRenderTarget: true, + + setSize: function ( width, height ) { + + if ( this.width !== width || this.height !== height ) { + + this.width = width; + this.height = height; + + this.dispose(); + + } + + this.viewport.set( 0, 0, width, height ); + this.scissor.set( 0, 0, width, height ); + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( source ) { + + this.width = source.width; + this.height = source.height; + + this.viewport.copy( source.viewport ); + + this.texture = source.texture.clone(); + + this.depthBuffer = source.depthBuffer; + this.stencilBuffer = source.stencilBuffer; + this.depthTexture = source.depthTexture; + + return this; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com + */ + + function WebGLRenderTargetCube( width, height, options ) { + + WebGLRenderTarget.call( this, width, height, options ); + + this.activeCubeFace = 0; // PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5 + this.activeMipMapLevel = 0; + + } + + WebGLRenderTargetCube.prototype = Object.create( WebGLRenderTarget.prototype ); + WebGLRenderTargetCube.prototype.constructor = WebGLRenderTargetCube; + + WebGLRenderTargetCube.prototype.isWebGLRenderTargetCube = true; + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://clara.io + */ + + function Quaternion( x, y, z, w ) { + + this._x = x || 0; + this._y = y || 0; + this._z = z || 0; + this._w = ( w !== undefined ) ? w : 1; + + } + + Quaternion.prototype = { + + constructor: Quaternion, + + get x () { + + return this._x; + + }, + + set x ( value ) { + + this._x = value; + this.onChangeCallback(); + + }, + + get y () { + + return this._y; + + }, + + set y ( value ) { + + this._y = value; + this.onChangeCallback(); + + }, + + get z () { + + return this._z; + + }, + + set z ( value ) { + + this._z = value; + this.onChangeCallback(); + + }, + + get w () { + + return this._w; + + }, + + set w ( value ) { + + this._w = value; + this.onChangeCallback(); + + }, + + set: function ( x, y, z, w ) { + + this._x = x; + this._y = y; + this._z = z; + this._w = w; + + this.onChangeCallback(); + + return this; + + }, + + clone: function () { + + return new this.constructor( this._x, this._y, this._z, this._w ); + + }, + + copy: function ( quaternion ) { + + this._x = quaternion.x; + this._y = quaternion.y; + this._z = quaternion.z; + this._w = quaternion.w; + + this.onChangeCallback(); + + return this; + + }, + + setFromEuler: function ( euler, update ) { + + if ( (euler && euler.isEuler) === false ) { + + throw new Error( 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' ); + + } + + // http://www.mathworks.com/matlabcentral/fileexchange/ + // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ + // content/SpinCalc.m + + var c1 = Math.cos( euler._x / 2 ); + var c2 = Math.cos( euler._y / 2 ); + var c3 = Math.cos( euler._z / 2 ); + var s1 = Math.sin( euler._x / 2 ); + var s2 = Math.sin( euler._y / 2 ); + var s3 = Math.sin( euler._z / 2 ); + + var order = euler.order; + + if ( order === 'XYZ' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( order === 'YXZ' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } else if ( order === 'ZXY' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( order === 'ZYX' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } else if ( order === 'YZX' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( order === 'XZY' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } + + if ( update !== false ) this.onChangeCallback(); + + return this; + + }, + + setFromAxisAngle: function ( axis, angle ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm + + // assumes axis is normalized + + var halfAngle = angle / 2, s = Math.sin( halfAngle ); + + this._x = axis.x * s; + this._y = axis.y * s; + this._z = axis.z * s; + this._w = Math.cos( halfAngle ); + + this.onChangeCallback(); + + return this; + + }, + + setFromRotationMatrix: function ( m ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var te = m.elements, + + m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], + m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], + m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ], + + trace = m11 + m22 + m33, + s; + + if ( trace > 0 ) { + + s = 0.5 / Math.sqrt( trace + 1.0 ); + + this._w = 0.25 / s; + this._x = ( m32 - m23 ) * s; + this._y = ( m13 - m31 ) * s; + this._z = ( m21 - m12 ) * s; + + } else if ( m11 > m22 && m11 > m33 ) { + + s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 ); + + this._w = ( m32 - m23 ) / s; + this._x = 0.25 * s; + this._y = ( m12 + m21 ) / s; + this._z = ( m13 + m31 ) / s; + + } else if ( m22 > m33 ) { + + s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 ); + + this._w = ( m13 - m31 ) / s; + this._x = ( m12 + m21 ) / s; + this._y = 0.25 * s; + this._z = ( m23 + m32 ) / s; + + } else { + + s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 ); + + this._w = ( m21 - m12 ) / s; + this._x = ( m13 + m31 ) / s; + this._y = ( m23 + m32 ) / s; + this._z = 0.25 * s; + + } + + this.onChangeCallback(); + + return this; + + }, + + setFromUnitVectors: function () { + + // http://lolengine.net/blog/2014/02/24/quaternion-from-two-vectors-final + + // assumes direction vectors vFrom and vTo are normalized + + var v1, r; + + var EPS = 0.000001; + + return function setFromUnitVectors( vFrom, vTo ) { + + if ( v1 === undefined ) v1 = new Vector3(); + + r = vFrom.dot( vTo ) + 1; + + if ( r < EPS ) { + + r = 0; + + if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) { + + v1.set( - vFrom.y, vFrom.x, 0 ); + + } else { + + v1.set( 0, - vFrom.z, vFrom.y ); + + } + + } else { + + v1.crossVectors( vFrom, vTo ); + + } + + this._x = v1.x; + this._y = v1.y; + this._z = v1.z; + this._w = r; + + return this.normalize(); + + }; + + }(), + + inverse: function () { + + return this.conjugate().normalize(); + + }, + + conjugate: function () { + + this._x *= - 1; + this._y *= - 1; + this._z *= - 1; + + this.onChangeCallback(); + + return this; + + }, + + dot: function ( v ) { + + return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; + + }, + + lengthSq: function () { + + return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; + + }, + + length: function () { + + return Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w ); + + }, + + normalize: function () { + + var l = this.length(); + + if ( l === 0 ) { + + this._x = 0; + this._y = 0; + this._z = 0; + this._w = 1; + + } else { + + l = 1 / l; + + this._x = this._x * l; + this._y = this._y * l; + this._z = this._z * l; + this._w = this._w * l; + + } + + this.onChangeCallback(); + + return this; + + }, + + multiply: function ( q, p ) { + + if ( p !== undefined ) { + + console.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' ); + return this.multiplyQuaternions( q, p ); + + } + + return this.multiplyQuaternions( this, q ); + + }, + + premultiply: function ( q ) { + + return this.multiplyQuaternions( q, this ); + + }, + + multiplyQuaternions: function ( a, b ) { + + // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm + + var qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; + var qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; + + this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; + this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; + this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; + this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; + + this.onChangeCallback(); + + return this; + + }, + + slerp: function ( qb, t ) { + + if ( t === 0 ) return this; + if ( t === 1 ) return this.copy( qb ); + + var x = this._x, y = this._y, z = this._z, w = this._w; + + // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + + var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; + + if ( cosHalfTheta < 0 ) { + + this._w = - qb._w; + this._x = - qb._x; + this._y = - qb._y; + this._z = - qb._z; + + cosHalfTheta = - cosHalfTheta; + + } else { + + this.copy( qb ); + + } + + if ( cosHalfTheta >= 1.0 ) { + + this._w = w; + this._x = x; + this._y = y; + this._z = z; + + return this; + + } + + var sinHalfTheta = Math.sqrt( 1.0 - cosHalfTheta * cosHalfTheta ); + + if ( Math.abs( sinHalfTheta ) < 0.001 ) { + + this._w = 0.5 * ( w + this._w ); + this._x = 0.5 * ( x + this._x ); + this._y = 0.5 * ( y + this._y ); + this._z = 0.5 * ( z + this._z ); + + return this; + + } + + var halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta ); + var ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta, + ratioB = Math.sin( t * halfTheta ) / sinHalfTheta; + + this._w = ( w * ratioA + this._w * ratioB ); + this._x = ( x * ratioA + this._x * ratioB ); + this._y = ( y * ratioA + this._y * ratioB ); + this._z = ( z * ratioA + this._z * ratioB ); + + this.onChangeCallback(); + + return this; + + }, + + equals: function ( quaternion ) { + + return ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this._x = array[ offset ]; + this._y = array[ offset + 1 ]; + this._z = array[ offset + 2 ]; + this._w = array[ offset + 3 ]; + + this.onChangeCallback(); + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this._x; + array[ offset + 1 ] = this._y; + array[ offset + 2 ] = this._z; + array[ offset + 3 ] = this._w; + + return array; + + }, + + onChange: function ( callback ) { + + this.onChangeCallback = callback; + + return this; + + }, + + onChangeCallback: function () {} + + }; + + Object.assign( Quaternion, { + + slerp: function( qa, qb, qm, t ) { + + return qm.copy( qa ).slerp( qb, t ); + + }, + + slerpFlat: function( + dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) { + + // fuzz-free, array-based Quaternion SLERP operation + + var x0 = src0[ srcOffset0 + 0 ], + y0 = src0[ srcOffset0 + 1 ], + z0 = src0[ srcOffset0 + 2 ], + w0 = src0[ srcOffset0 + 3 ], + + x1 = src1[ srcOffset1 + 0 ], + y1 = src1[ srcOffset1 + 1 ], + z1 = src1[ srcOffset1 + 2 ], + w1 = src1[ srcOffset1 + 3 ]; + + if ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) { + + var s = 1 - t, + + cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, + + dir = ( cos >= 0 ? 1 : - 1 ), + sqrSin = 1 - cos * cos; + + // Skip the Slerp for tiny steps to avoid numeric problems: + if ( sqrSin > Number.EPSILON ) { + + var sin = Math.sqrt( sqrSin ), + len = Math.atan2( sin, cos * dir ); + + s = Math.sin( s * len ) / sin; + t = Math.sin( t * len ) / sin; + + } + + var tDir = t * dir; + + x0 = x0 * s + x1 * tDir; + y0 = y0 * s + y1 * tDir; + z0 = z0 * s + z1 * tDir; + w0 = w0 * s + w1 * tDir; + + // Normalize in case we just did a lerp: + if ( s === 1 - t ) { + + var f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 ); + + x0 *= f; + y0 *= f; + z0 *= f; + w0 *= f; + + } + + } + + dst[ dstOffset ] = x0; + dst[ dstOffset + 1 ] = y0; + dst[ dstOffset + 2 ] = z0; + dst[ dstOffset + 3 ] = w0; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author *kile / http://kile.stravaganza.org/ + * @author philogb / http://blog.thejit.org/ + * @author mikael emtinger / http://gomo.se/ + * @author egraether / http://egraether.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function Vector3( x, y, z ) { + + this.x = x || 0; + this.y = y || 0; + this.z = z || 0; + + } + + Vector3.prototype = { + + constructor: Vector3, + + isVector3: true, + + set: function ( x, y, z ) { + + this.x = x; + this.y = y; + this.z = z; + + return this; + + }, + + setScalar: function ( scalar ) { + + this.x = scalar; + this.y = scalar; + this.z = scalar; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setZ: function ( z ) { + + this.z = z; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + case 2: this.z = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + return this; + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + case 2: return this.z; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + clone: function () { + + return new this.constructor( this.x, this.y, this.z ); + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + this.z = v.z; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + this.z += v.z; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + this.z += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + + return this; + + }, + + addScaledVector: function ( v, s ) { + + this.x += v.x * s; + this.y += v.y * s; + this.z += v.z * s; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + this.z -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + + return this; + + }, + + multiply: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' ); + return this.multiplyVectors( v, w ); + + } + + this.x *= v.x; + this.y *= v.y; + this.z *= v.z; + + return this; + + }, + + multiplyScalar: function ( scalar ) { + + if ( isFinite( scalar ) ) { + + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + + } else { + + this.x = 0; + this.y = 0; + this.z = 0; + + } + + return this; + + }, + + multiplyVectors: function ( a, b ) { + + this.x = a.x * b.x; + this.y = a.y * b.y; + this.z = a.z * b.z; + + return this; + + }, + + applyEuler: function () { + + var quaternion; + + return function applyEuler( euler ) { + + if ( (euler && euler.isEuler) === false ) { + + console.error( 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' ); + + } + + if ( quaternion === undefined ) quaternion = new Quaternion(); + + return this.applyQuaternion( quaternion.setFromEuler( euler ) ); + + }; + + }(), + + applyAxisAngle: function () { + + var quaternion; + + return function applyAxisAngle( axis, angle ) { + + if ( quaternion === undefined ) quaternion = new Quaternion(); + + return this.applyQuaternion( quaternion.setFromAxisAngle( axis, angle ) ); + + }; + + }(), + + applyMatrix3: function ( m ) { + + var x = this.x, y = this.y, z = this.z; + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z; + this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z; + this.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z; + + return this; + + }, + + applyMatrix4: function ( m ) { + + // input: THREE.Matrix4 affine matrix + + var x = this.x, y = this.y, z = this.z; + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ]; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ]; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ]; + + return this; + + }, + + applyProjection: function ( m ) { + + // input: THREE.Matrix4 projection matrix + + var x = this.x, y = this.y, z = this.z; + var e = m.elements; + var d = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] ); // perspective divide + + this.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * d; + this.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * d; + this.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * d; + + return this; + + }, + + applyQuaternion: function ( q ) { + + var x = this.x, y = this.y, z = this.z; + var qx = q.x, qy = q.y, qz = q.z, qw = q.w; + + // calculate quat * vector + + var ix = qw * x + qy * z - qz * y; + var iy = qw * y + qz * x - qx * z; + var iz = qw * z + qx * y - qy * x; + var iw = - qx * x - qy * y - qz * z; + + // calculate result * inverse quat + + this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy; + this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz; + this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx; + + return this; + + }, + + project: function () { + + var matrix; + + return function project( camera ) { + + if ( matrix === undefined ) matrix = new Matrix4(); + + matrix.multiplyMatrices( camera.projectionMatrix, matrix.getInverse( camera.matrixWorld ) ); + return this.applyProjection( matrix ); + + }; + + }(), + + unproject: function () { + + var matrix; + + return function unproject( camera ) { + + if ( matrix === undefined ) matrix = new Matrix4(); + + matrix.multiplyMatrices( camera.matrixWorld, matrix.getInverse( camera.projectionMatrix ) ); + return this.applyProjection( matrix ); + + }; + + }(), + + transformDirection: function ( m ) { + + // input: THREE.Matrix4 affine matrix + // vector interpreted as a direction + + var x = this.x, y = this.y, z = this.z; + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z; + + return this.normalize(); + + }, + + divide: function ( v ) { + + this.x /= v.x; + this.y /= v.y; + this.z /= v.z; + + return this; + + }, + + divideScalar: function ( scalar ) { + + return this.multiplyScalar( 1 / scalar ); + + }, + + min: function ( v ) { + + this.x = Math.min( this.x, v.x ); + this.y = Math.min( this.y, v.y ); + this.z = Math.min( this.z, v.z ); + + return this; + + }, + + max: function ( v ) { + + this.x = Math.max( this.x, v.x ); + this.y = Math.max( this.y, v.y ); + this.z = Math.max( this.z, v.z ); + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + this.x = Math.max( min.x, Math.min( max.x, this.x ) ); + this.y = Math.max( min.y, Math.min( max.y, this.y ) ); + this.z = Math.max( min.z, Math.min( max.z, this.z ) ); + + return this; + + }, + + clampScalar: function () { + + var min, max; + + return function clampScalar( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new Vector3(); + max = new Vector3(); + + } + + min.set( minVal, minVal, minVal ); + max.set( maxVal, maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + }(), + + clampLength: function ( min, max ) { + + var length = this.length(); + + return this.multiplyScalar( Math.max( min, Math.min( max, length ) ) / length ); + + }, + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + this.z = Math.floor( this.z ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + this.z = Math.ceil( this.z ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + this.z = Math.round( this.z ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + this.z = - this.z; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y + this.z * v.z; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y + this.z * this.z; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z ); + + }, + + lengthManhattan: function () { + + return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + setLength: function ( length ) { + + return this.multiplyScalar( length / this.length() ); + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + this.z += ( v.z - this.z ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + }, + + cross: function ( v, w ) { + + if ( w !== undefined ) { + + console.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' ); + return this.crossVectors( v, w ); + + } + + var x = this.x, y = this.y, z = this.z; + + this.x = y * v.z - z * v.y; + this.y = z * v.x - x * v.z; + this.z = x * v.y - y * v.x; + + return this; + + }, + + crossVectors: function ( a, b ) { + + var ax = a.x, ay = a.y, az = a.z; + var bx = b.x, by = b.y, bz = b.z; + + this.x = ay * bz - az * by; + this.y = az * bx - ax * bz; + this.z = ax * by - ay * bx; + + return this; + + }, + + projectOnVector: function ( vector ) { + + var scalar = vector.dot( this ) / vector.lengthSq(); + + return this.copy( vector ).multiplyScalar( scalar ); + + }, + + projectOnPlane: function () { + + var v1; + + return function projectOnPlane( planeNormal ) { + + if ( v1 === undefined ) v1 = new Vector3(); + + v1.copy( this ).projectOnVector( planeNormal ); + + return this.sub( v1 ); + + }; + + }(), + + reflect: function () { + + // reflect incident vector off plane orthogonal to normal + // normal is assumed to have unit length + + var v1; + + return function reflect( normal ) { + + if ( v1 === undefined ) v1 = new Vector3(); + + return this.sub( v1.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) ); + + }; + + }(), + + angleTo: function ( v ) { + + var theta = this.dot( v ) / ( Math.sqrt( this.lengthSq() * v.lengthSq() ) ); + + // clamp, to handle numerical problems + + return Math.acos( _Math.clamp( theta, - 1, 1 ) ); + + }, + + distanceTo: function ( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + }, + + distanceToSquared: function ( v ) { + + var dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z; + + return dx * dx + dy * dy + dz * dz; + + }, + + distanceToManhattan: function ( v ) { + + return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z ); + + }, + + setFromSpherical: function( s ) { + + var sinPhiRadius = Math.sin( s.phi ) * s.radius; + + this.x = sinPhiRadius * Math.sin( s.theta ); + this.y = Math.cos( s.phi ) * s.radius; + this.z = sinPhiRadius * Math.cos( s.theta ); + + return this; + + }, + + setFromMatrixPosition: function ( m ) { + + return this.setFromMatrixColumn( m, 3 ); + + }, + + setFromMatrixScale: function ( m ) { + + var sx = this.setFromMatrixColumn( m, 0 ).length(); + var sy = this.setFromMatrixColumn( m, 1 ).length(); + var sz = this.setFromMatrixColumn( m, 2 ).length(); + + this.x = sx; + this.y = sy; + this.z = sz; + + return this; + + }, + + setFromMatrixColumn: function ( m, index ) { + + if ( typeof m === 'number' ) { + + console.warn( 'THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).' ); + var temp = m; + m = index; + index = temp; + + } + + return this.fromArray( m.elements, index * 4 ); + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + this.z = array[ offset + 2 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + array[ offset + 2 ] = this.z; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + this.z = attribute.array[ index + 2 ]; + + return this; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author philogb / http://blog.thejit.org/ + * @author jordi_ros / http://plattsoft.com + * @author D1plo1d / http://github.com/D1plo1d + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author timknip / http://www.floorplanner.com/ + * @author bhouston / http://clara.io + * @author WestLangley / http://github.com/WestLangley + */ + + function Matrix4() { + + this.elements = new Float32Array( [ + + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ] ); + + if ( arguments.length > 0 ) { + + console.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' ); + + } + + } + + Matrix4.prototype = { + + constructor: Matrix4, + + isMatrix4: true, + + set: function ( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { + + var te = this.elements; + + te[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14; + te[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24; + te[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34; + te[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44; + + return this; + + }, + + identity: function () { + + this.set( + + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + clone: function () { + + return new Matrix4().fromArray( this.elements ); + + }, + + copy: function ( m ) { + + this.elements.set( m.elements ); + + return this; + + }, + + copyPosition: function ( m ) { + + var te = this.elements; + var me = m.elements; + + te[ 12 ] = me[ 12 ]; + te[ 13 ] = me[ 13 ]; + te[ 14 ] = me[ 14 ]; + + return this; + + }, + + extractBasis: function ( xAxis, yAxis, zAxis ) { + + xAxis.setFromMatrixColumn( this, 0 ); + yAxis.setFromMatrixColumn( this, 1 ); + zAxis.setFromMatrixColumn( this, 2 ); + + return this; + + }, + + makeBasis: function ( xAxis, yAxis, zAxis ) { + + this.set( + xAxis.x, yAxis.x, zAxis.x, 0, + xAxis.y, yAxis.y, zAxis.y, 0, + xAxis.z, yAxis.z, zAxis.z, 0, + 0, 0, 0, 1 + ); + + return this; + + }, + + extractRotation: function () { + + var v1; + + return function extractRotation( m ) { + + if ( v1 === undefined ) v1 = new Vector3(); + + var te = this.elements; + var me = m.elements; + + var scaleX = 1 / v1.setFromMatrixColumn( m, 0 ).length(); + var scaleY = 1 / v1.setFromMatrixColumn( m, 1 ).length(); + var scaleZ = 1 / v1.setFromMatrixColumn( m, 2 ).length(); + + te[ 0 ] = me[ 0 ] * scaleX; + te[ 1 ] = me[ 1 ] * scaleX; + te[ 2 ] = me[ 2 ] * scaleX; + + te[ 4 ] = me[ 4 ] * scaleY; + te[ 5 ] = me[ 5 ] * scaleY; + te[ 6 ] = me[ 6 ] * scaleY; + + te[ 8 ] = me[ 8 ] * scaleZ; + te[ 9 ] = me[ 9 ] * scaleZ; + te[ 10 ] = me[ 10 ] * scaleZ; + + return this; + + }; + + }(), + + makeRotationFromEuler: function ( euler ) { + + if ( (euler && euler.isEuler) === false ) { + + console.error( 'THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' ); + + } + + var te = this.elements; + + var x = euler.x, y = euler.y, z = euler.z; + var a = Math.cos( x ), b = Math.sin( x ); + var c = Math.cos( y ), d = Math.sin( y ); + var e = Math.cos( z ), f = Math.sin( z ); + + if ( euler.order === 'XYZ' ) { + + var ae = a * e, af = a * f, be = b * e, bf = b * f; + + te[ 0 ] = c * e; + te[ 4 ] = - c * f; + te[ 8 ] = d; + + te[ 1 ] = af + be * d; + te[ 5 ] = ae - bf * d; + te[ 9 ] = - b * c; + + te[ 2 ] = bf - ae * d; + te[ 6 ] = be + af * d; + te[ 10 ] = a * c; + + } else if ( euler.order === 'YXZ' ) { + + var ce = c * e, cf = c * f, de = d * e, df = d * f; + + te[ 0 ] = ce + df * b; + te[ 4 ] = de * b - cf; + te[ 8 ] = a * d; + + te[ 1 ] = a * f; + te[ 5 ] = a * e; + te[ 9 ] = - b; + + te[ 2 ] = cf * b - de; + te[ 6 ] = df + ce * b; + te[ 10 ] = a * c; + + } else if ( euler.order === 'ZXY' ) { + + var ce = c * e, cf = c * f, de = d * e, df = d * f; + + te[ 0 ] = ce - df * b; + te[ 4 ] = - a * f; + te[ 8 ] = de + cf * b; + + te[ 1 ] = cf + de * b; + te[ 5 ] = a * e; + te[ 9 ] = df - ce * b; + + te[ 2 ] = - a * d; + te[ 6 ] = b; + te[ 10 ] = a * c; + + } else if ( euler.order === 'ZYX' ) { + + var ae = a * e, af = a * f, be = b * e, bf = b * f; + + te[ 0 ] = c * e; + te[ 4 ] = be * d - af; + te[ 8 ] = ae * d + bf; + + te[ 1 ] = c * f; + te[ 5 ] = bf * d + ae; + te[ 9 ] = af * d - be; + + te[ 2 ] = - d; + te[ 6 ] = b * c; + te[ 10 ] = a * c; + + } else if ( euler.order === 'YZX' ) { + + var ac = a * c, ad = a * d, bc = b * c, bd = b * d; + + te[ 0 ] = c * e; + te[ 4 ] = bd - ac * f; + te[ 8 ] = bc * f + ad; + + te[ 1 ] = f; + te[ 5 ] = a * e; + te[ 9 ] = - b * e; + + te[ 2 ] = - d * e; + te[ 6 ] = ad * f + bc; + te[ 10 ] = ac - bd * f; + + } else if ( euler.order === 'XZY' ) { + + var ac = a * c, ad = a * d, bc = b * c, bd = b * d; + + te[ 0 ] = c * e; + te[ 4 ] = - f; + te[ 8 ] = d * e; + + te[ 1 ] = ac * f + bd; + te[ 5 ] = a * e; + te[ 9 ] = ad * f - bc; + + te[ 2 ] = bc * f - ad; + te[ 6 ] = b * e; + te[ 10 ] = bd * f + ac; + + } + + // last column + te[ 3 ] = 0; + te[ 7 ] = 0; + te[ 11 ] = 0; + + // bottom row + te[ 12 ] = 0; + te[ 13 ] = 0; + te[ 14 ] = 0; + te[ 15 ] = 1; + + return this; + + }, + + makeRotationFromQuaternion: function ( q ) { + + var te = this.elements; + + var x = q.x, y = q.y, z = q.z, w = q.w; + var x2 = x + x, y2 = y + y, z2 = z + z; + var xx = x * x2, xy = x * y2, xz = x * z2; + var yy = y * y2, yz = y * z2, zz = z * z2; + var wx = w * x2, wy = w * y2, wz = w * z2; + + te[ 0 ] = 1 - ( yy + zz ); + te[ 4 ] = xy - wz; + te[ 8 ] = xz + wy; + + te[ 1 ] = xy + wz; + te[ 5 ] = 1 - ( xx + zz ); + te[ 9 ] = yz - wx; + + te[ 2 ] = xz - wy; + te[ 6 ] = yz + wx; + te[ 10 ] = 1 - ( xx + yy ); + + // last column + te[ 3 ] = 0; + te[ 7 ] = 0; + te[ 11 ] = 0; + + // bottom row + te[ 12 ] = 0; + te[ 13 ] = 0; + te[ 14 ] = 0; + te[ 15 ] = 1; + + return this; + + }, + + lookAt: function () { + + var x, y, z; + + return function lookAt( eye, target, up ) { + + if ( x === undefined ) { + + x = new Vector3(); + y = new Vector3(); + z = new Vector3(); + + } + + var te = this.elements; + + z.subVectors( eye, target ).normalize(); + + if ( z.lengthSq() === 0 ) { + + z.z = 1; + + } + + x.crossVectors( up, z ).normalize(); + + if ( x.lengthSq() === 0 ) { + + z.z += 0.0001; + x.crossVectors( up, z ).normalize(); + + } + + y.crossVectors( z, x ); + + + te[ 0 ] = x.x; te[ 4 ] = y.x; te[ 8 ] = z.x; + te[ 1 ] = x.y; te[ 5 ] = y.y; te[ 9 ] = z.y; + te[ 2 ] = x.z; te[ 6 ] = y.z; te[ 10 ] = z.z; + + return this; + + }; + + }(), + + multiply: function ( m, n ) { + + if ( n !== undefined ) { + + console.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' ); + return this.multiplyMatrices( m, n ); + + } + + return this.multiplyMatrices( this, m ); + + }, + + premultiply: function ( m ) { + + return this.multiplyMatrices( m, this ); + + }, + + multiplyMatrices: function ( a, b ) { + + var ae = a.elements; + var be = b.elements; + var te = this.elements; + + var a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ]; + var a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ]; + var a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ]; + var a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ]; + + var b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ]; + var b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ]; + var b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ]; + var b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ]; + + te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; + te[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; + te[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; + te[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; + + te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; + te[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; + te[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; + te[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; + + te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; + te[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; + te[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; + te[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; + + te[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; + te[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; + te[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; + te[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; + + return this; + + }, + + multiplyToArray: function ( a, b, r ) { + + var te = this.elements; + + this.multiplyMatrices( a, b ); + + r[ 0 ] = te[ 0 ]; r[ 1 ] = te[ 1 ]; r[ 2 ] = te[ 2 ]; r[ 3 ] = te[ 3 ]; + r[ 4 ] = te[ 4 ]; r[ 5 ] = te[ 5 ]; r[ 6 ] = te[ 6 ]; r[ 7 ] = te[ 7 ]; + r[ 8 ] = te[ 8 ]; r[ 9 ] = te[ 9 ]; r[ 10 ] = te[ 10 ]; r[ 11 ] = te[ 11 ]; + r[ 12 ] = te[ 12 ]; r[ 13 ] = te[ 13 ]; r[ 14 ] = te[ 14 ]; r[ 15 ] = te[ 15 ]; + + return this; + + }, + + multiplyScalar: function ( s ) { + + var te = this.elements; + + te[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s; + te[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s; + te[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s; + te[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s; + + return this; + + }, + + applyToVector3Array: function () { + + var v1; + + return function applyToVector3Array( array, offset, length ) { + + if ( v1 === undefined ) v1 = new Vector3(); + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = array.length; + + for ( var i = 0, j = offset; i < length; i += 3, j += 3 ) { + + v1.fromArray( array, j ); + v1.applyMatrix4( this ); + v1.toArray( array, j ); + + } + + return array; + + }; + + }(), + + applyToBuffer: function () { + + var v1; + + return function applyToBuffer( buffer, offset, length ) { + + if ( v1 === undefined ) v1 = new Vector3(); + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = buffer.length / buffer.itemSize; + + for ( var i = 0, j = offset; i < length; i ++, j ++ ) { + + v1.x = buffer.getX( j ); + v1.y = buffer.getY( j ); + v1.z = buffer.getZ( j ); + + v1.applyMatrix4( this ); + + buffer.setXYZ( j, v1.x, v1.y, v1.z ); + + } + + return buffer; + + }; + + }(), + + determinant: function () { + + var te = this.elements; + + var n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ]; + var n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ]; + var n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ]; + var n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ]; + + //TODO: make this more efficient + //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm ) + + return ( + n41 * ( + + n14 * n23 * n32 + - n13 * n24 * n32 + - n14 * n22 * n33 + + n12 * n24 * n33 + + n13 * n22 * n34 + - n12 * n23 * n34 + ) + + n42 * ( + + n11 * n23 * n34 + - n11 * n24 * n33 + + n14 * n21 * n33 + - n13 * n21 * n34 + + n13 * n24 * n31 + - n14 * n23 * n31 + ) + + n43 * ( + + n11 * n24 * n32 + - n11 * n22 * n34 + - n14 * n21 * n32 + + n12 * n21 * n34 + + n14 * n22 * n31 + - n12 * n24 * n31 + ) + + n44 * ( + - n13 * n22 * n31 + - n11 * n23 * n32 + + n11 * n22 * n33 + + n13 * n21 * n32 + - n12 * n21 * n33 + + n12 * n23 * n31 + ) + + ); + + }, + + transpose: function () { + + var te = this.elements; + var tmp; + + tmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp; + tmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp; + tmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp; + + tmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp; + tmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp; + tmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp; + + return this; + + }, + + flattenToArrayOffset: function ( array, offset ) { + + console.warn( "THREE.Matrix3: .flattenToArrayOffset is deprecated " + + "- just use .toArray instead." ); + + return this.toArray( array, offset ); + + }, + + getPosition: function () { + + var v1; + + return function getPosition() { + + if ( v1 === undefined ) v1 = new Vector3(); + console.warn( 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.' ); + + return v1.setFromMatrixColumn( this, 3 ); + + }; + + }(), + + setPosition: function ( v ) { + + var te = this.elements; + + te[ 12 ] = v.x; + te[ 13 ] = v.y; + te[ 14 ] = v.z; + + return this; + + }, + + getInverse: function ( m, throwOnDegenerate ) { + + // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm + var te = this.elements, + me = m.elements, + + n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ], n41 = me[ 3 ], + n12 = me[ 4 ], n22 = me[ 5 ], n32 = me[ 6 ], n42 = me[ 7 ], + n13 = me[ 8 ], n23 = me[ 9 ], n33 = me[ 10 ], n43 = me[ 11 ], + n14 = me[ 12 ], n24 = me[ 13 ], n34 = me[ 14 ], n44 = me[ 15 ], + + t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, + t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, + t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, + t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; + + var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; + + if ( det === 0 ) { + + var msg = "THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0"; + + if ( throwOnDegenerate === true ) { + + throw new Error( msg ); + + } else { + + console.warn( msg ); + + } + + return this.identity(); + + } + + var detInv = 1 / det; + + te[ 0 ] = t11 * detInv; + te[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv; + te[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv; + te[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv; + + te[ 4 ] = t12 * detInv; + te[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv; + te[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv; + te[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv; + + te[ 8 ] = t13 * detInv; + te[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv; + te[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv; + te[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv; + + te[ 12 ] = t14 * detInv; + te[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv; + te[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv; + te[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv; + + return this; + + }, + + scale: function ( v ) { + + var te = this.elements; + var x = v.x, y = v.y, z = v.z; + + te[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z; + te[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z; + te[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z; + te[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z; + + return this; + + }, + + getMaxScaleOnAxis: function () { + + var te = this.elements; + + var scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ]; + var scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ]; + var scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ]; + + return Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) ); + + }, + + makeTranslation: function ( x, y, z ) { + + this.set( + + 1, 0, 0, x, + 0, 1, 0, y, + 0, 0, 1, z, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationX: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + 1, 0, 0, 0, + 0, c, - s, 0, + 0, s, c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationY: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + c, 0, s, 0, + 0, 1, 0, 0, + - s, 0, c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationZ: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + c, - s, 0, 0, + s, c, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationAxis: function ( axis, angle ) { + + // Based on http://www.gamedev.net/reference/articles/article1199.asp + + var c = Math.cos( angle ); + var s = Math.sin( angle ); + var t = 1 - c; + var x = axis.x, y = axis.y, z = axis.z; + var tx = t * x, ty = t * y; + + this.set( + + tx * x + c, tx * y - s * z, tx * z + s * y, 0, + tx * y + s * z, ty * y + c, ty * z - s * x, 0, + tx * z - s * y, ty * z + s * x, t * z * z + c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeScale: function ( x, y, z ) { + + this.set( + + x, 0, 0, 0, + 0, y, 0, 0, + 0, 0, z, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + compose: function ( position, quaternion, scale ) { + + this.makeRotationFromQuaternion( quaternion ); + this.scale( scale ); + this.setPosition( position ); + + return this; + + }, + + decompose: function () { + + var vector, matrix; + + return function decompose( position, quaternion, scale ) { + + if ( vector === undefined ) { + + vector = new Vector3(); + matrix = new Matrix4(); + + } + + var te = this.elements; + + var sx = vector.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length(); + var sy = vector.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length(); + var sz = vector.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length(); + + // if determine is negative, we need to invert one scale + var det = this.determinant(); + if ( det < 0 ) { + + sx = - sx; + + } + + position.x = te[ 12 ]; + position.y = te[ 13 ]; + position.z = te[ 14 ]; + + // scale the rotation part + + matrix.elements.set( this.elements ); // at this point matrix is incomplete so we can't use .copy() + + var invSX = 1 / sx; + var invSY = 1 / sy; + var invSZ = 1 / sz; + + matrix.elements[ 0 ] *= invSX; + matrix.elements[ 1 ] *= invSX; + matrix.elements[ 2 ] *= invSX; + + matrix.elements[ 4 ] *= invSY; + matrix.elements[ 5 ] *= invSY; + matrix.elements[ 6 ] *= invSY; + + matrix.elements[ 8 ] *= invSZ; + matrix.elements[ 9 ] *= invSZ; + matrix.elements[ 10 ] *= invSZ; + + quaternion.setFromRotationMatrix( matrix ); + + scale.x = sx; + scale.y = sy; + scale.z = sz; + + return this; + + }; + + }(), + + makeFrustum: function ( left, right, bottom, top, near, far ) { + + var te = this.elements; + var x = 2 * near / ( right - left ); + var y = 2 * near / ( top - bottom ); + + var a = ( right + left ) / ( right - left ); + var b = ( top + bottom ) / ( top - bottom ); + var c = - ( far + near ) / ( far - near ); + var d = - 2 * far * near / ( far - near ); + + te[ 0 ] = x; te[ 4 ] = 0; te[ 8 ] = a; te[ 12 ] = 0; + te[ 1 ] = 0; te[ 5 ] = y; te[ 9 ] = b; te[ 13 ] = 0; + te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = c; te[ 14 ] = d; + te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = - 1; te[ 15 ] = 0; + + return this; + + }, + + makePerspective: function ( fov, aspect, near, far ) { + + var ymax = near * Math.tan( _Math.DEG2RAD * fov * 0.5 ); + var ymin = - ymax; + var xmin = ymin * aspect; + var xmax = ymax * aspect; + + return this.makeFrustum( xmin, xmax, ymin, ymax, near, far ); + + }, + + makeOrthographic: function ( left, right, top, bottom, near, far ) { + + var te = this.elements; + var w = 1.0 / ( right - left ); + var h = 1.0 / ( top - bottom ); + var p = 1.0 / ( far - near ); + + var x = ( right + left ) * w; + var y = ( top + bottom ) * h; + var z = ( far + near ) * p; + + te[ 0 ] = 2 * w; te[ 4 ] = 0; te[ 8 ] = 0; te[ 12 ] = - x; + te[ 1 ] = 0; te[ 5 ] = 2 * h; te[ 9 ] = 0; te[ 13 ] = - y; + te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = - 2 * p; te[ 14 ] = - z; + te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = 0; te[ 15 ] = 1; + + return this; + + }, + + equals: function ( matrix ) { + + var te = this.elements; + var me = matrix.elements; + + for ( var i = 0; i < 16; i ++ ) { + + if ( te[ i ] !== me[ i ] ) return false; + + } + + return true; + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + for( var i = 0; i < 16; i ++ ) { + + this.elements[ i ] = array[ i + offset ]; + + } + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + var te = this.elements; + + array[ offset ] = te[ 0 ]; + array[ offset + 1 ] = te[ 1 ]; + array[ offset + 2 ] = te[ 2 ]; + array[ offset + 3 ] = te[ 3 ]; + + array[ offset + 4 ] = te[ 4 ]; + array[ offset + 5 ] = te[ 5 ]; + array[ offset + 6 ] = te[ 6 ]; + array[ offset + 7 ] = te[ 7 ]; + + array[ offset + 8 ] = te[ 8 ]; + array[ offset + 9 ] = te[ 9 ]; + array[ offset + 10 ] = te[ 10 ]; + array[ offset + 11 ] = te[ 11 ]; + + array[ offset + 12 ] = te[ 12 ]; + array[ offset + 13 ] = te[ 13 ]; + array[ offset + 14 ] = te[ 14 ]; + array[ offset + 15 ] = te[ 15 ]; + + return array; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function CubeTexture( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) { + + images = images !== undefined ? images : []; + mapping = mapping !== undefined ? mapping : CubeReflectionMapping; + + Texture.call( this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); + + this.flipY = false; + + } + + CubeTexture.prototype = Object.create( Texture.prototype ); + CubeTexture.prototype.constructor = CubeTexture; + + CubeTexture.prototype.isCubeTexture = true; + + Object.defineProperty( CubeTexture.prototype, 'images', { + + get: function () { + + return this.image; + + }, + + set: function ( value ) { + + this.image = value; + + } + + } ); + + /** + * @author tschw + * + * Uniforms of a program. + * Those form a tree structure with a special top-level container for the root, + * which you get by calling 'new WebGLUniforms( gl, program, renderer )'. + * + * + * Properties of inner nodes including the top-level container: + * + * .seq - array of nested uniforms + * .map - nested uniforms by name + * + * + * Methods of all nodes except the top-level container: + * + * .setValue( gl, value, [renderer] ) + * + * uploads a uniform value(s) + * the 'renderer' parameter is needed for sampler uniforms + * + * + * Static methods of the top-level container (renderer factorizations): + * + * .upload( gl, seq, values, renderer ) + * + * sets uniforms in 'seq' to 'values[id].value' + * + * .seqWithValue( seq, values ) : filteredSeq + * + * filters 'seq' entries with corresponding entry in values + * + * + * Methods of the top-level container (renderer factorizations): + * + * .setValue( gl, name, value ) + * + * sets uniform with name 'name' to 'value' + * + * .set( gl, obj, prop ) + * + * sets uniform from object and property with same name than uniform + * + * .setOptional( gl, obj, prop ) + * + * like .set for an optional property of the object + * + */ + + var emptyTexture = new Texture(); + var emptyCubeTexture = new CubeTexture(); + + // --- Base for inner nodes (including the root) --- + + function UniformContainer() { + + this.seq = []; + this.map = {}; + + } + + // --- Utilities --- + + // Array Caches (provide typed arrays for temporary by size) + + var arrayCacheF32 = []; + var arrayCacheI32 = []; + + // Flattening for arrays of vectors and matrices + + function flatten( array, nBlocks, blockSize ) { + + var firstElem = array[ 0 ]; + + if ( firstElem <= 0 || firstElem > 0 ) return array; + // unoptimized: ! isNaN( firstElem ) + // see http://jacksondunstan.com/articles/983 + + var n = nBlocks * blockSize, + r = arrayCacheF32[ n ]; + + if ( r === undefined ) { + + r = new Float32Array( n ); + arrayCacheF32[ n ] = r; + + } + + if ( nBlocks !== 0 ) { + + firstElem.toArray( r, 0 ); + + for ( var i = 1, offset = 0; i !== nBlocks; ++ i ) { + + offset += blockSize; + array[ i ].toArray( r, offset ); + + } + + } + + return r; + + } + + // Texture unit allocation + + function allocTexUnits( renderer, n ) { + + var r = arrayCacheI32[ n ]; + + if ( r === undefined ) { + + r = new Int32Array( n ); + arrayCacheI32[ n ] = r; + + } + + for ( var i = 0; i !== n; ++ i ) + r[ i ] = renderer.allocTextureUnit(); + + return r; + + } + + // --- Setters --- + + // Note: Defining these methods externally, because they come in a bunch + // and this way their names minify. + + // Single scalar + + function setValue1f( gl, v ) { gl.uniform1f( this.addr, v ); } + function setValue1i( gl, v ) { gl.uniform1i( this.addr, v ); } + + // Single float vector (from flat array or THREE.VectorN) + + function setValue2fv( gl, v ) { + + if ( v.x === undefined ) gl.uniform2fv( this.addr, v ); + else gl.uniform2f( this.addr, v.x, v.y ); + + } + + function setValue3fv( gl, v ) { + + if ( v.x !== undefined ) + gl.uniform3f( this.addr, v.x, v.y, v.z ); + else if ( v.r !== undefined ) + gl.uniform3f( this.addr, v.r, v.g, v.b ); + else + gl.uniform3fv( this.addr, v ); + + } + + function setValue4fv( gl, v ) { + + if ( v.x === undefined ) gl.uniform4fv( this.addr, v ); + else gl.uniform4f( this.addr, v.x, v.y, v.z, v.w ); + + } + + // Single matrix (from flat array or MatrixN) + + function setValue2fm( gl, v ) { + + gl.uniformMatrix2fv( this.addr, false, v.elements || v ); + + } + + function setValue3fm( gl, v ) { + + gl.uniformMatrix3fv( this.addr, false, v.elements || v ); + + } + + function setValue4fm( gl, v ) { + + gl.uniformMatrix4fv( this.addr, false, v.elements || v ); + + } + + // Single texture (2D / Cube) + + function setValueT1( gl, v, renderer ) { + + var unit = renderer.allocTextureUnit(); + gl.uniform1i( this.addr, unit ); + renderer.setTexture2D( v || emptyTexture, unit ); + + } + + function setValueT6( gl, v, renderer ) { + + var unit = renderer.allocTextureUnit(); + gl.uniform1i( this.addr, unit ); + renderer.setTextureCube( v || emptyCubeTexture, unit ); + + } + + // Integer / Boolean vectors or arrays thereof (always flat arrays) + + function setValue2iv( gl, v ) { gl.uniform2iv( this.addr, v ); } + function setValue3iv( gl, v ) { gl.uniform3iv( this.addr, v ); } + function setValue4iv( gl, v ) { gl.uniform4iv( this.addr, v ); } + + // Helper to pick the right setter for the singular case + + function getSingularSetter( type ) { + + switch ( type ) { + + case 0x1406: return setValue1f; // FLOAT + case 0x8b50: return setValue2fv; // _VEC2 + case 0x8b51: return setValue3fv; // _VEC3 + case 0x8b52: return setValue4fv; // _VEC4 + + case 0x8b5a: return setValue2fm; // _MAT2 + case 0x8b5b: return setValue3fm; // _MAT3 + case 0x8b5c: return setValue4fm; // _MAT4 + + case 0x8b5e: return setValueT1; // SAMPLER_2D + case 0x8b60: return setValueT6; // SAMPLER_CUBE + + case 0x1404: case 0x8b56: return setValue1i; // INT, BOOL + case 0x8b53: case 0x8b57: return setValue2iv; // _VEC2 + case 0x8b54: case 0x8b58: return setValue3iv; // _VEC3 + case 0x8b55: case 0x8b59: return setValue4iv; // _VEC4 + + } + + } + + // Array of scalars + + function setValue1fv( gl, v ) { gl.uniform1fv( this.addr, v ); } + function setValue1iv( gl, v ) { gl.uniform1iv( this.addr, v ); } + + // Array of vectors (flat or from THREE classes) + + function setValueV2a( gl, v ) { + + gl.uniform2fv( this.addr, flatten( v, this.size, 2 ) ); + + } + + function setValueV3a( gl, v ) { + + gl.uniform3fv( this.addr, flatten( v, this.size, 3 ) ); + + } + + function setValueV4a( gl, v ) { + + gl.uniform4fv( this.addr, flatten( v, this.size, 4 ) ); + + } + + // Array of matrices (flat or from THREE clases) + + function setValueM2a( gl, v ) { + + gl.uniformMatrix2fv( this.addr, false, flatten( v, this.size, 4 ) ); + + } + + function setValueM3a( gl, v ) { + + gl.uniformMatrix3fv( this.addr, false, flatten( v, this.size, 9 ) ); + + } + + function setValueM4a( gl, v ) { + + gl.uniformMatrix4fv( this.addr, false, flatten( v, this.size, 16 ) ); + + } + + // Array of textures (2D / Cube) + + function setValueT1a( gl, v, renderer ) { + + var n = v.length, + units = allocTexUnits( renderer, n ); + + gl.uniform1iv( this.addr, units ); + + for ( var i = 0; i !== n; ++ i ) { + + renderer.setTexture2D( v[ i ] || emptyTexture, units[ i ] ); + + } + + } + + function setValueT6a( gl, v, renderer ) { + + var n = v.length, + units = allocTexUnits( renderer, n ); + + gl.uniform1iv( this.addr, units ); + + for ( var i = 0; i !== n; ++ i ) { + + renderer.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] ); + + } + + } + + // Helper to pick the right setter for a pure (bottom-level) array + + function getPureArraySetter( type ) { + + switch ( type ) { + + case 0x1406: return setValue1fv; // FLOAT + case 0x8b50: return setValueV2a; // _VEC2 + case 0x8b51: return setValueV3a; // _VEC3 + case 0x8b52: return setValueV4a; // _VEC4 + + case 0x8b5a: return setValueM2a; // _MAT2 + case 0x8b5b: return setValueM3a; // _MAT3 + case 0x8b5c: return setValueM4a; // _MAT4 + + case 0x8b5e: return setValueT1a; // SAMPLER_2D + case 0x8b60: return setValueT6a; // SAMPLER_CUBE + + case 0x1404: case 0x8b56: return setValue1iv; // INT, BOOL + case 0x8b53: case 0x8b57: return setValue2iv; // _VEC2 + case 0x8b54: case 0x8b58: return setValue3iv; // _VEC3 + case 0x8b55: case 0x8b59: return setValue4iv; // _VEC4 + + } + + } + + // --- Uniform Classes --- + + function SingleUniform( id, activeInfo, addr ) { + + this.id = id; + this.addr = addr; + this.setValue = getSingularSetter( activeInfo.type ); + + // this.path = activeInfo.name; // DEBUG + + } + + function PureArrayUniform( id, activeInfo, addr ) { + + this.id = id; + this.addr = addr; + this.size = activeInfo.size; + this.setValue = getPureArraySetter( activeInfo.type ); + + // this.path = activeInfo.name; // DEBUG + + } + + function StructuredUniform( id ) { + + this.id = id; + + UniformContainer.call( this ); // mix-in + + } + + StructuredUniform.prototype.setValue = function( gl, value ) { + + // Note: Don't need an extra 'renderer' parameter, since samplers + // are not allowed in structured uniforms. + + var seq = this.seq; + + for ( var i = 0, n = seq.length; i !== n; ++ i ) { + + var u = seq[ i ]; + u.setValue( gl, value[ u.id ] ); + + } + + }; + + // --- Top-level --- + + // Parser - builds up the property tree from the path strings + + var RePathPart = /([\w\d_]+)(\])?(\[|\.)?/g; + + // extracts + // - the identifier (member name or array index) + // - followed by an optional right bracket (found when array index) + // - followed by an optional left bracket or dot (type of subscript) + // + // Note: These portions can be read in a non-overlapping fashion and + // allow straightforward parsing of the hierarchy that WebGL encodes + // in the uniform names. + + function addUniform( container, uniformObject ) { + + container.seq.push( uniformObject ); + container.map[ uniformObject.id ] = uniformObject; + + } + + function parseUniform( activeInfo, addr, container ) { + + var path = activeInfo.name, + pathLength = path.length; + + // reset RegExp object, because of the early exit of a previous run + RePathPart.lastIndex = 0; + + for (; ;) { + + var match = RePathPart.exec( path ), + matchEnd = RePathPart.lastIndex, + + id = match[ 1 ], + idIsIndex = match[ 2 ] === ']', + subscript = match[ 3 ]; + + if ( idIsIndex ) id = id | 0; // convert to integer + + if ( subscript === undefined || + subscript === '[' && matchEnd + 2 === pathLength ) { + // bare name or "pure" bottom-level array "[0]" suffix + + addUniform( container, subscript === undefined ? + new SingleUniform( id, activeInfo, addr ) : + new PureArrayUniform( id, activeInfo, addr ) ); + + break; + + } else { + // step into inner node / create it in case it doesn't exist + + var map = container.map, + next = map[ id ]; + + if ( next === undefined ) { + + next = new StructuredUniform( id ); + addUniform( container, next ); + + } + + container = next; + + } + + } + + } + + // Root Container + + function WebGLUniforms( gl, program, renderer ) { + + UniformContainer.call( this ); + + this.renderer = renderer; + + var n = gl.getProgramParameter( program, gl.ACTIVE_UNIFORMS ); + + for ( var i = 0; i !== n; ++ i ) { + + var info = gl.getActiveUniform( program, i ), + path = info.name, + addr = gl.getUniformLocation( program, path ); + + parseUniform( info, addr, this ); + + } + + } + + WebGLUniforms.prototype.setValue = function( gl, name, value ) { + + var u = this.map[ name ]; + + if ( u !== undefined ) u.setValue( gl, value, this.renderer ); + + }; + + WebGLUniforms.prototype.set = function( gl, object, name ) { + + var u = this.map[ name ]; + + if ( u !== undefined ) u.setValue( gl, object[ name ], this.renderer ); + + }; + + WebGLUniforms.prototype.setOptional = function( gl, object, name ) { + + var v = object[ name ]; + + if ( v !== undefined ) this.setValue( gl, name, v ); + + }; + + + // Static interface + + WebGLUniforms.upload = function( gl, seq, values, renderer ) { + + for ( var i = 0, n = seq.length; i !== n; ++ i ) { + + var u = seq[ i ], + v = values[ u.id ]; + + if ( v.needsUpdate !== false ) { + // note: always updating when .needsUpdate is undefined + + u.setValue( gl, v.value, renderer ); + + } + + } + + }; + + WebGLUniforms.seqWithValue = function( seq, values ) { + + var r = []; + + for ( var i = 0, n = seq.length; i !== n; ++ i ) { + + var u = seq[ i ]; + if ( u.id in values ) r.push( u ); + + } + + return r; + + }; + + /** + * Uniform Utilities + */ + + var UniformsUtils = { + + merge: function ( uniforms ) { + + var merged = {}; + + for ( var u = 0; u < uniforms.length; u ++ ) { + + var tmp = this.clone( uniforms[ u ] ); + + for ( var p in tmp ) { + + merged[ p ] = tmp[ p ]; + + } + + } + + return merged; + + }, + + clone: function ( uniforms_src ) { + + var uniforms_dst = {}; + + for ( var u in uniforms_src ) { + + uniforms_dst[ u ] = {}; + + for ( var p in uniforms_src[ u ] ) { + + var parameter_src = uniforms_src[ u ][ p ]; + + if ( parameter_src && ( parameter_src.isColor || + parameter_src.isMatrix3 || parameter_src.isMatrix4 || + parameter_src.isVector2 || parameter_src.isVector3 || parameter_src.isVector4 || + parameter_src.isTexture ) ) { + + uniforms_dst[ u ][ p ] = parameter_src.clone(); + + } else if ( Array.isArray( parameter_src ) ) { + + uniforms_dst[ u ][ p ] = parameter_src.slice(); + + } else { + + uniforms_dst[ u ][ p ] = parameter_src; + + } + + } + + } + + return uniforms_dst; + + } + + }; + + var alphamap_fragment = "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n"; + + var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n"; + + var alphatest_fragment = "#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n"; + + var aomap_fragment = "#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n"; + + var aomap_pars_fragment = "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif"; + + var begin_vertex = "\nvec3 transformed = vec3( position );\n"; + + var beginnormal_vertex = "\nvec3 objectNormal = vec3( normal );\n"; + + var bsdfs = "bool testLightInRange( const in float lightDistance, const in float cutoffDistance ) {\n\treturn any( bvec2( cutoffDistance == 0.0, lightDistance < cutoffDistance ) );\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t\tif( decayExponent > 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t\t}\n\t\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n"; + + var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n"; + + var clipping_planes_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\n\t\tvec4 plane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t\t\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\n\t\t\tvec4 plane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t\n\t#endif\n#endif\n"; + + var clipping_planes_pars_fragment = "#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n"; + + var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n"; + + var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n"; + + var color_fragment = "#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif"; + + var color_pars_fragment = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n"; + + var color_pars_vertex = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif"; + + var color_vertex = "#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif"; + + var common = "#define PI 3.14159265359\n#define PI2 6.28318530718\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\n"; + + var cube_uv_reflection_fragment = "#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n"; + + var defaultnormal_vertex = "#ifdef FLIP_SIDED\n\tobjectNormal = -objectNormal;\n#endif\nvec3 transformedNormal = normalMatrix * objectNormal;\n"; + + var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n"; + + var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n"; + + var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n"; + + var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n"; + + var encodings_fragment = " gl_FragColor = linearToOutputTexel( gl_FragColor );\n"; + + var encodings_pars_fragment = "\nvec4 LinearToLinear( in vec4 value ) {\n return value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n float maxComponent = max( max( value.r, value.g ), value.b );\n float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n return vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n float maxRGB = max( value.x, max( value.g, value.b ) );\n float M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n M = ceil( M * 255.0 ) / 255.0;\n return vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n float maxRGB = max( value.x, max( value.g, value.b ) );\n float D = max( maxRange / maxRGB, 1.0 );\n D = min( floor( D ) / 255.0, 1.0 );\n return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n vec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n vec4 vResult;\n vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n vResult.w = fract(Le);\n vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n return vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n float Le = value.z * 255.0 + value.w;\n vec3 Xp_Y_XYZp;\n Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n vec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n return vec4( max(vRGB, 0.0), 1.0 );\n}\n"; + + var envmap_fragment = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n"; + + var envmap_pars_fragment = "#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntenstiy;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n"; + + var envmap_pars_vertex = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n"; + + var envmap_vertex = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n"; + + var fog_fragment = "#ifdef USE_FOG\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\t#else\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t#endif\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n"; + + var fog_pars_fragment = "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif"; + + var lightmap_fragment = "#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n"; + + var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif"; + + var lights_lambert_vertex = "vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n"; + + var lights_pars = "uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tif ( testLightInRange( lightDistance, pointLight.distance ) ) {\n\t\t\tdirectLight.color = pointLight.color;\n\t\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( all( bvec2( angleCos > spotLight.coneCos, testLightInRange( lightDistance, spotLight.distance ) ) ) ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\t#include \n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\t#include \n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n"; + + var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n"; + + var lights_phong_pars_fragment = "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n"; + + var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n"; + + var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n"; + + var lights_template = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t \tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\n\t#endif\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#else\n\t\tvec3 clearCoatRadiance = vec3( 0.0 );\n\t#endif\n\t\t\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n"; + + var logdepthbuf_fragment = "#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n#endif"; + + var logdepthbuf_pars_fragment = "#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n"; + + var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif"; + + var logdepthbuf_vertex = "#ifdef USE_LOGDEPTHBUF\n\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\t#endif\n#endif\n"; + + var map_fragment = "#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n"; + + var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n"; + + var map_particle_fragment = "#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n"; + + var map_particle_pars_fragment = "#ifdef USE_MAP\n\tuniform vec4 offsetRepeat;\n\tuniform sampler2D map;\n#endif\n"; + + var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.r;\n#endif\n"; + + var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif"; + + var morphnormal_vertex = "#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n"; + + var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif"; + + var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n"; + + var normal_flip = "#ifdef DOUBLE_SIDED\n\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n#else\n\tfloat flipNormal = 1.0;\n#endif\n"; + + var normal_fragment = "#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal ) * flipNormal;\n#endif\n#ifdef USE_NORMALMAP\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n"; + + var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif\n"; + + var packing = "vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 1.0 - 2.0 * rgb.xyz;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n"; + + var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n"; + + var project_vertex = "#ifdef USE_SKINNING\n\tvec4 mvPosition = modelViewMatrix * skinned;\n#else\n\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n#endif\ngl_Position = projectionMatrix * mvPosition;\n"; + + var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.r;\n#endif\n"; + + var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif"; + + var shadowmap_pars_fragment = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\treturn (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn 1.0;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n"; + + var shadowmap_pars_vertex = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n"; + + var shadowmap_vertex = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n"; + + var shadowmask_pars_fragment = "float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n"; + + var skinbase_vertex = "#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif"; + + var skinning_pars_vertex = "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n"; + + var skinning_vertex = "#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\tskinned = bindMatrixInverse * skinned;\n#endif\n"; + + var skinnormal_vertex = "#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n"; + + var specularmap_fragment = "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif"; + + var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif"; + + var tonemapping_fragment = "#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n"; + + var tonemapping_pars_fragment = "#define saturate(a) clamp( a, 0.0, 1.0 )\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n return toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n"; + + var uv_pars_fragment = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif"; + + var uv_pars_vertex = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform vec4 offsetRepeat;\n#endif\n"; + + var uv_vertex = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n#endif"; + + var uv2_pars_fragment = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif"; + + var uv2_pars_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif"; + + var uv2_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif"; + + var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\t#ifdef USE_SKINNING\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\t#else\n\t\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n\t#endif\n#endif\n"; + + var cube_frag = "uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n"; + + var cube_vert = "varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n"; + + var depth_frag = "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n"; + + var depth_vert = "#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var distanceRGBA_frag = "uniform vec3 lightPos;\nvarying vec4 vWorldPosition;\n#include \n#include \n#include \nvoid main () {\n\t#include \n\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\n}\n"; + + var distanceRGBA_vert = "varying vec4 vWorldPosition;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition;\n}\n"; + + var equirect_frag = "uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n"; + + var equirect_vert = "varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n"; + + var linedashed_frag = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var linedashed_vert = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n}\n"; + + var meshbasic_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight;\n\treflectedLight.directDiffuse = vec3( 0.0 );\n\treflectedLight.directSpecular = vec3( 0.0 );\n\treflectedLight.indirectDiffuse = diffuseColor.rgb;\n\treflectedLight.indirectSpecular = vec3( 0.0 );\n\t#include \n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshbasic_vert = "#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshlambert_frag = "uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshlambert_vert = "#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshphong_frag = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshphong_vert = "#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}\n"; + + var meshphysical_frag = "#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nuniform float envMapIntensity;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var meshphysical_vert = "#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n}\n"; + + var normal_frag = "uniform float opacity;\nvarying vec3 vNormal;\n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( vNormal ), opacity );\n\t#include \n}\n"; + + var normal_vert = "varying vec3 vNormal;\n#include \n#include \n#include \n#include \nvoid main() {\n\tvNormal = normalize( normalMatrix * normal );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var points_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var points_vert = "uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var shadow_frag = "uniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\n}\n"; + + var shadow_vert = "#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n}\n"; + + var ShaderChunk = { + alphamap_fragment: alphamap_fragment, + alphamap_pars_fragment: alphamap_pars_fragment, + alphatest_fragment: alphatest_fragment, + aomap_fragment: aomap_fragment, + aomap_pars_fragment: aomap_pars_fragment, + begin_vertex: begin_vertex, + beginnormal_vertex: beginnormal_vertex, + bsdfs: bsdfs, + bumpmap_pars_fragment: bumpmap_pars_fragment, + clipping_planes_fragment: clipping_planes_fragment, + clipping_planes_pars_fragment: clipping_planes_pars_fragment, + clipping_planes_pars_vertex: clipping_planes_pars_vertex, + clipping_planes_vertex: clipping_planes_vertex, + color_fragment: color_fragment, + color_pars_fragment: color_pars_fragment, + color_pars_vertex: color_pars_vertex, + color_vertex: color_vertex, + common: common, + cube_uv_reflection_fragment: cube_uv_reflection_fragment, + defaultnormal_vertex: defaultnormal_vertex, + displacementmap_pars_vertex: displacementmap_pars_vertex, + displacementmap_vertex: displacementmap_vertex, + emissivemap_fragment: emissivemap_fragment, + emissivemap_pars_fragment: emissivemap_pars_fragment, + encodings_fragment: encodings_fragment, + encodings_pars_fragment: encodings_pars_fragment, + envmap_fragment: envmap_fragment, + envmap_pars_fragment: envmap_pars_fragment, + envmap_pars_vertex: envmap_pars_vertex, + envmap_vertex: envmap_vertex, + fog_fragment: fog_fragment, + fog_pars_fragment: fog_pars_fragment, + lightmap_fragment: lightmap_fragment, + lightmap_pars_fragment: lightmap_pars_fragment, + lights_lambert_vertex: lights_lambert_vertex, + lights_pars: lights_pars, + lights_phong_fragment: lights_phong_fragment, + lights_phong_pars_fragment: lights_phong_pars_fragment, + lights_physical_fragment: lights_physical_fragment, + lights_physical_pars_fragment: lights_physical_pars_fragment, + lights_template: lights_template, + logdepthbuf_fragment: logdepthbuf_fragment, + logdepthbuf_pars_fragment: logdepthbuf_pars_fragment, + logdepthbuf_pars_vertex: logdepthbuf_pars_vertex, + logdepthbuf_vertex: logdepthbuf_vertex, + map_fragment: map_fragment, + map_pars_fragment: map_pars_fragment, + map_particle_fragment: map_particle_fragment, + map_particle_pars_fragment: map_particle_pars_fragment, + metalnessmap_fragment: metalnessmap_fragment, + metalnessmap_pars_fragment: metalnessmap_pars_fragment, + morphnormal_vertex: morphnormal_vertex, + morphtarget_pars_vertex: morphtarget_pars_vertex, + morphtarget_vertex: morphtarget_vertex, + normal_flip: normal_flip, + normal_fragment: normal_fragment, + normalmap_pars_fragment: normalmap_pars_fragment, + packing: packing, + premultiplied_alpha_fragment: premultiplied_alpha_fragment, + project_vertex: project_vertex, + roughnessmap_fragment: roughnessmap_fragment, + roughnessmap_pars_fragment: roughnessmap_pars_fragment, + shadowmap_pars_fragment: shadowmap_pars_fragment, + shadowmap_pars_vertex: shadowmap_pars_vertex, + shadowmap_vertex: shadowmap_vertex, + shadowmask_pars_fragment: shadowmask_pars_fragment, + skinbase_vertex: skinbase_vertex, + skinning_pars_vertex: skinning_pars_vertex, + skinning_vertex: skinning_vertex, + skinnormal_vertex: skinnormal_vertex, + specularmap_fragment: specularmap_fragment, + specularmap_pars_fragment: specularmap_pars_fragment, + tonemapping_fragment: tonemapping_fragment, + tonemapping_pars_fragment: tonemapping_pars_fragment, + uv_pars_fragment: uv_pars_fragment, + uv_pars_vertex: uv_pars_vertex, + uv_vertex: uv_vertex, + uv2_pars_fragment: uv2_pars_fragment, + uv2_pars_vertex: uv2_pars_vertex, + uv2_vertex: uv2_vertex, + worldpos_vertex: worldpos_vertex, + + cube_frag: cube_frag, + cube_vert: cube_vert, + depth_frag: depth_frag, + depth_vert: depth_vert, + distanceRGBA_frag: distanceRGBA_frag, + distanceRGBA_vert: distanceRGBA_vert, + equirect_frag: equirect_frag, + equirect_vert: equirect_vert, + linedashed_frag: linedashed_frag, + linedashed_vert: linedashed_vert, + meshbasic_frag: meshbasic_frag, + meshbasic_vert: meshbasic_vert, + meshlambert_frag: meshlambert_frag, + meshlambert_vert: meshlambert_vert, + meshphong_frag: meshphong_frag, + meshphong_vert: meshphong_vert, + meshphysical_frag: meshphysical_frag, + meshphysical_vert: meshphysical_vert, + normal_frag: normal_frag, + normal_vert: normal_vert, + points_frag: points_frag, + points_vert: points_vert, + shadow_frag: shadow_frag, + shadow_vert: shadow_vert + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Color( r, g, b ) { + + if ( g === undefined && b === undefined ) { + + // r is THREE.Color, hex or string + return this.set( r ); + + } + + return this.setRGB( r, g, b ); + + } + + Color.prototype = { + + constructor: Color, + + isColor: true, + + r: 1, g: 1, b: 1, + + set: function ( value ) { + + if ( (value && value.isColor) ) { + + this.copy( value ); + + } else if ( typeof value === 'number' ) { + + this.setHex( value ); + + } else if ( typeof value === 'string' ) { + + this.setStyle( value ); + + } + + return this; + + }, + + setScalar: function ( scalar ) { + + this.r = scalar; + this.g = scalar; + this.b = scalar; + + return this; + + }, + + setHex: function ( hex ) { + + hex = Math.floor( hex ); + + this.r = ( hex >> 16 & 255 ) / 255; + this.g = ( hex >> 8 & 255 ) / 255; + this.b = ( hex & 255 ) / 255; + + return this; + + }, + + setRGB: function ( r, g, b ) { + + this.r = r; + this.g = g; + this.b = b; + + return this; + + }, + + setHSL: function () { + + function hue2rgb( p, q, t ) { + + if ( t < 0 ) t += 1; + if ( t > 1 ) t -= 1; + if ( t < 1 / 6 ) return p + ( q - p ) * 6 * t; + if ( t < 1 / 2 ) return q; + if ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t ); + return p; + + } + + return function setHSL( h, s, l ) { + + // h,s,l ranges are in 0.0 - 1.0 + h = _Math.euclideanModulo( h, 1 ); + s = _Math.clamp( s, 0, 1 ); + l = _Math.clamp( l, 0, 1 ); + + if ( s === 0 ) { + + this.r = this.g = this.b = l; + + } else { + + var p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s ); + var q = ( 2 * l ) - p; + + this.r = hue2rgb( q, p, h + 1 / 3 ); + this.g = hue2rgb( q, p, h ); + this.b = hue2rgb( q, p, h - 1 / 3 ); + + } + + return this; + + }; + + }(), + + setStyle: function ( style ) { + + function handleAlpha( string ) { + + if ( string === undefined ) return; + + if ( parseFloat( string ) < 1 ) { + + console.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' ); + + } + + } + + + var m; + + if ( m = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec( style ) ) { + + // rgb / hsl + + var color; + var name = m[ 1 ]; + var components = m[ 2 ]; + + switch ( name ) { + + case 'rgb': + case 'rgba': + + if ( color = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) { + + // rgb(255,0,0) rgba(255,0,0,0.5) + this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255; + this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255; + this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255; + + handleAlpha( color[ 5 ] ); + + return this; + + } + + if ( color = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) { + + // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5) + this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100; + this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100; + this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100; + + handleAlpha( color[ 5 ] ); + + return this; + + } + + break; + + case 'hsl': + case 'hsla': + + if ( color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec( components ) ) { + + // hsl(120,50%,50%) hsla(120,50%,50%,0.5) + var h = parseFloat( color[ 1 ] ) / 360; + var s = parseInt( color[ 2 ], 10 ) / 100; + var l = parseInt( color[ 3 ], 10 ) / 100; + + handleAlpha( color[ 5 ] ); + + return this.setHSL( h, s, l ); + + } + + break; + + } + + } else if ( m = /^\#([A-Fa-f0-9]+)$/.exec( style ) ) { + + // hex color + + var hex = m[ 1 ]; + var size = hex.length; + + if ( size === 3 ) { + + // #ff0 + this.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255; + this.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255; + this.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255; + + return this; + + } else if ( size === 6 ) { + + // #ff0000 + this.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255; + this.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255; + this.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255; + + return this; + + } + + } + + if ( style && style.length > 0 ) { + + // color keywords + var hex = ColorKeywords[ style ]; + + if ( hex !== undefined ) { + + // red + this.setHex( hex ); + + } else { + + // unknown color + console.warn( 'THREE.Color: Unknown color ' + style ); + + } + + } + + return this; + + }, + + clone: function () { + + return new this.constructor( this.r, this.g, this.b ); + + }, + + copy: function ( color ) { + + this.r = color.r; + this.g = color.g; + this.b = color.b; + + return this; + + }, + + copyGammaToLinear: function ( color, gammaFactor ) { + + if ( gammaFactor === undefined ) gammaFactor = 2.0; + + this.r = Math.pow( color.r, gammaFactor ); + this.g = Math.pow( color.g, gammaFactor ); + this.b = Math.pow( color.b, gammaFactor ); + + return this; + + }, + + copyLinearToGamma: function ( color, gammaFactor ) { + + if ( gammaFactor === undefined ) gammaFactor = 2.0; + + var safeInverse = ( gammaFactor > 0 ) ? ( 1.0 / gammaFactor ) : 1.0; + + this.r = Math.pow( color.r, safeInverse ); + this.g = Math.pow( color.g, safeInverse ); + this.b = Math.pow( color.b, safeInverse ); + + return this; + + }, + + convertGammaToLinear: function () { + + var r = this.r, g = this.g, b = this.b; + + this.r = r * r; + this.g = g * g; + this.b = b * b; + + return this; + + }, + + convertLinearToGamma: function () { + + this.r = Math.sqrt( this.r ); + this.g = Math.sqrt( this.g ); + this.b = Math.sqrt( this.b ); + + return this; + + }, + + getHex: function () { + + return ( this.r * 255 ) << 16 ^ ( this.g * 255 ) << 8 ^ ( this.b * 255 ) << 0; + + }, + + getHexString: function () { + + return ( '000000' + this.getHex().toString( 16 ) ).slice( - 6 ); + + }, + + getHSL: function ( optionalTarget ) { + + // h,s,l ranges are in 0.0 - 1.0 + + var hsl = optionalTarget || { h: 0, s: 0, l: 0 }; + + var r = this.r, g = this.g, b = this.b; + + var max = Math.max( r, g, b ); + var min = Math.min( r, g, b ); + + var hue, saturation; + var lightness = ( min + max ) / 2.0; + + if ( min === max ) { + + hue = 0; + saturation = 0; + + } else { + + var delta = max - min; + + saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min ); + + switch ( max ) { + + case r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break; + case g: hue = ( b - r ) / delta + 2; break; + case b: hue = ( r - g ) / delta + 4; break; + + } + + hue /= 6; + + } + + hsl.h = hue; + hsl.s = saturation; + hsl.l = lightness; + + return hsl; + + }, + + getStyle: function () { + + return 'rgb(' + ( ( this.r * 255 ) | 0 ) + ',' + ( ( this.g * 255 ) | 0 ) + ',' + ( ( this.b * 255 ) | 0 ) + ')'; + + }, + + offsetHSL: function ( h, s, l ) { + + var hsl = this.getHSL(); + + hsl.h += h; hsl.s += s; hsl.l += l; + + this.setHSL( hsl.h, hsl.s, hsl.l ); + + return this; + + }, + + add: function ( color ) { + + this.r += color.r; + this.g += color.g; + this.b += color.b; + + return this; + + }, + + addColors: function ( color1, color2 ) { + + this.r = color1.r + color2.r; + this.g = color1.g + color2.g; + this.b = color1.b + color2.b; + + return this; + + }, + + addScalar: function ( s ) { + + this.r += s; + this.g += s; + this.b += s; + + return this; + + }, + + sub: function( color ) { + + this.r = Math.max( 0, this.r - color.r ); + this.g = Math.max( 0, this.g - color.g ); + this.b = Math.max( 0, this.b - color.b ); + + return this; + + }, + + multiply: function ( color ) { + + this.r *= color.r; + this.g *= color.g; + this.b *= color.b; + + return this; + + }, + + multiplyScalar: function ( s ) { + + this.r *= s; + this.g *= s; + this.b *= s; + + return this; + + }, + + lerp: function ( color, alpha ) { + + this.r += ( color.r - this.r ) * alpha; + this.g += ( color.g - this.g ) * alpha; + this.b += ( color.b - this.b ) * alpha; + + return this; + + }, + + equals: function ( c ) { + + return ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.r = array[ offset ]; + this.g = array[ offset + 1 ]; + this.b = array[ offset + 2 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.r; + array[ offset + 1 ] = this.g; + array[ offset + 2 ] = this.b; + + return array; + + }, + + toJSON: function () { + + return this.getHex(); + + } + + }; + + var ColorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF, + 'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2, + 'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50, + 'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B, + 'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B, + 'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F, + 'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3, + 'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222, + 'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700, + 'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4, + 'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00, + 'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3, + 'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA, + 'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32, + 'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3, + 'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC, + 'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD, + 'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6, + 'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9, + 'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F, + 'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE, + 'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA, + 'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0, + 'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 }; + + /** + * Uniforms library for shared webgl shaders + */ + + var UniformsLib = { + + common: { + + diffuse: { value: new Color( 0xeeeeee ) }, + opacity: { value: 1.0 }, + + map: { value: null }, + offsetRepeat: { value: new Vector4( 0, 0, 1, 1 ) }, + + specularMap: { value: null }, + alphaMap: { value: null }, + + envMap: { value: null }, + flipEnvMap: { value: - 1 }, + reflectivity: { value: 1.0 }, + refractionRatio: { value: 0.98 } + + }, + + aomap: { + + aoMap: { value: null }, + aoMapIntensity: { value: 1 } + + }, + + lightmap: { + + lightMap: { value: null }, + lightMapIntensity: { value: 1 } + + }, + + emissivemap: { + + emissiveMap: { value: null } + + }, + + bumpmap: { + + bumpMap: { value: null }, + bumpScale: { value: 1 } + + }, + + normalmap: { + + normalMap: { value: null }, + normalScale: { value: new Vector2( 1, 1 ) } + + }, + + displacementmap: { + + displacementMap: { value: null }, + displacementScale: { value: 1 }, + displacementBias: { value: 0 } + + }, + + roughnessmap: { + + roughnessMap: { value: null } + + }, + + metalnessmap: { + + metalnessMap: { value: null } + + }, + + fog: { + + fogDensity: { value: 0.00025 }, + fogNear: { value: 1 }, + fogFar: { value: 2000 }, + fogColor: { value: new Color( 0xffffff ) } + + }, + + lights: { + + ambientLightColor: { value: [] }, + + directionalLights: { value: [], properties: { + direction: {}, + color: {}, + + shadow: {}, + shadowBias: {}, + shadowRadius: {}, + shadowMapSize: {} + } }, + + directionalShadowMap: { value: [] }, + directionalShadowMatrix: { value: [] }, + + spotLights: { value: [], properties: { + color: {}, + position: {}, + direction: {}, + distance: {}, + coneCos: {}, + penumbraCos: {}, + decay: {}, + + shadow: {}, + shadowBias: {}, + shadowRadius: {}, + shadowMapSize: {} + } }, + + spotShadowMap: { value: [] }, + spotShadowMatrix: { value: [] }, + + pointLights: { value: [], properties: { + color: {}, + position: {}, + decay: {}, + distance: {}, + + shadow: {}, + shadowBias: {}, + shadowRadius: {}, + shadowMapSize: {} + } }, + + pointShadowMap: { value: [] }, + pointShadowMatrix: { value: [] }, + + hemisphereLights: { value: [], properties: { + direction: {}, + skyColor: {}, + groundColor: {} + } } + + }, + + points: { + + diffuse: { value: new Color( 0xeeeeee ) }, + opacity: { value: 1.0 }, + size: { value: 1.0 }, + scale: { value: 1.0 }, + map: { value: null }, + offsetRepeat: { value: new Vector4( 0, 0, 1, 1 ) } + + } + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + */ + + var ShaderLib = { + + basic: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.aomap, + UniformsLib.fog + + ] ), + + vertexShader: ShaderChunk.meshbasic_vert, + fragmentShader: ShaderChunk.meshbasic_frag + + }, + + lambert: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.fog, + UniformsLib.lights, + + { + emissive : { value: new Color( 0x000000 ) } + } + + ] ), + + vertexShader: ShaderChunk.meshlambert_vert, + fragmentShader: ShaderChunk.meshlambert_frag + + }, + + phong: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.fog, + UniformsLib.lights, + + { + emissive : { value: new Color( 0x000000 ) }, + specular : { value: new Color( 0x111111 ) }, + shininess: { value: 30 } + } + + ] ), + + vertexShader: ShaderChunk.meshphong_vert, + fragmentShader: ShaderChunk.meshphong_frag + + }, + + standard: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.roughnessmap, + UniformsLib.metalnessmap, + UniformsLib.fog, + UniformsLib.lights, + + { + emissive : { value: new Color( 0x000000 ) }, + roughness: { value: 0.5 }, + metalness: { value: 0 }, + envMapIntensity : { value: 1 }, // temporary + } + + ] ), + + vertexShader: ShaderChunk.meshphysical_vert, + fragmentShader: ShaderChunk.meshphysical_frag + + }, + + points: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.points, + UniformsLib.fog + + ] ), + + vertexShader: ShaderChunk.points_vert, + fragmentShader: ShaderChunk.points_frag + + }, + + dashed: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.fog, + + { + scale : { value: 1 }, + dashSize : { value: 1 }, + totalSize: { value: 2 } + } + + ] ), + + vertexShader: ShaderChunk.linedashed_vert, + fragmentShader: ShaderChunk.linedashed_frag + + }, + + depth: { + + uniforms: UniformsUtils.merge( [ + + UniformsLib.common, + UniformsLib.displacementmap + + ] ), + + vertexShader: ShaderChunk.depth_vert, + fragmentShader: ShaderChunk.depth_frag + + }, + + normal: { + + uniforms: { + + opacity : { value: 1.0 } + + }, + + vertexShader: ShaderChunk.normal_vert, + fragmentShader: ShaderChunk.normal_frag + + }, + + /* ------------------------------------------------------------------------- + // Cube map shader + ------------------------------------------------------------------------- */ + + cube: { + + uniforms: { + tCube: { value: null }, + tFlip: { value: - 1 }, + opacity: { value: 1.0 } + }, + + vertexShader: ShaderChunk.cube_vert, + fragmentShader: ShaderChunk.cube_frag + + }, + + /* ------------------------------------------------------------------------- + // Cube map shader + ------------------------------------------------------------------------- */ + + equirect: { + + uniforms: { + tEquirect: { value: null }, + tFlip: { value: - 1 } + }, + + vertexShader: ShaderChunk.equirect_vert, + fragmentShader: ShaderChunk.equirect_frag + + }, + + distanceRGBA: { + + uniforms: { + + lightPos: { value: new Vector3() } + + }, + + vertexShader: ShaderChunk.distanceRGBA_vert, + fragmentShader: ShaderChunk.distanceRGBA_frag + + } + + }; + + ShaderLib.physical = { + + uniforms: UniformsUtils.merge( [ + + ShaderLib.standard.uniforms, + + { + clearCoat: { value: 0 }, + clearCoatRoughness: { value: 0 } + } + + ] ), + + vertexShader: ShaderChunk.meshphysical_vert, + fragmentShader: ShaderChunk.meshphysical_frag + + }; + + /** + * @author bhouston / http://clara.io + */ + + function Box2( min, max ) { + + this.min = ( min !== undefined ) ? min : new Vector2( + Infinity, + Infinity ); + this.max = ( max !== undefined ) ? max : new Vector2( - Infinity, - Infinity ); + + } + + Box2.prototype = { + + constructor: Box2, + + set: function ( min, max ) { + + this.min.copy( min ); + this.max.copy( max ); + + return this; + + }, + + setFromPoints: function ( points ) { + + this.makeEmpty(); + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + this.expandByPoint( points[ i ] ); + + } + + return this; + + }, + + setFromCenterAndSize: function () { + + var v1 = new Vector2(); + + return function setFromCenterAndSize( center, size ) { + + var halfSize = v1.copy( size ).multiplyScalar( 0.5 ); + this.min.copy( center ).sub( halfSize ); + this.max.copy( center ).add( halfSize ); + + return this; + + }; + + }(), + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( box ) { + + this.min.copy( box.min ); + this.max.copy( box.max ); + + return this; + + }, + + makeEmpty: function () { + + this.min.x = this.min.y = + Infinity; + this.max.x = this.max.y = - Infinity; + + return this; + + }, + + isEmpty: function () { + + // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes + + return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ); + + }, + + getCenter: function ( optionalTarget ) { + + var result = optionalTarget || new Vector2(); + return this.isEmpty() ? result.set( 0, 0 ) : result.addVectors( this.min, this.max ).multiplyScalar( 0.5 ); + + }, + + getSize: function ( optionalTarget ) { + + var result = optionalTarget || new Vector2(); + return this.isEmpty() ? result.set( 0, 0 ) : result.subVectors( this.max, this.min ); + + }, + + expandByPoint: function ( point ) { + + this.min.min( point ); + this.max.max( point ); + + return this; + + }, + + expandByVector: function ( vector ) { + + this.min.sub( vector ); + this.max.add( vector ); + + return this; + + }, + + expandByScalar: function ( scalar ) { + + this.min.addScalar( - scalar ); + this.max.addScalar( scalar ); + + return this; + + }, + + containsPoint: function ( point ) { + + if ( point.x < this.min.x || point.x > this.max.x || + point.y < this.min.y || point.y > this.max.y ) { + + return false; + + } + + return true; + + }, + + containsBox: function ( box ) { + + if ( ( this.min.x <= box.min.x ) && ( box.max.x <= this.max.x ) && + ( this.min.y <= box.min.y ) && ( box.max.y <= this.max.y ) ) { + + return true; + + } + + return false; + + }, + + getParameter: function ( point, optionalTarget ) { + + // This can potentially have a divide by zero if the box + // has a size dimension of 0. + + var result = optionalTarget || new Vector2(); + + return result.set( + ( point.x - this.min.x ) / ( this.max.x - this.min.x ), + ( point.y - this.min.y ) / ( this.max.y - this.min.y ) + ); + + }, + + intersectsBox: function ( box ) { + + // using 6 splitting planes to rule out intersections. + + if ( box.max.x < this.min.x || box.min.x > this.max.x || + box.max.y < this.min.y || box.min.y > this.max.y ) { + + return false; + + } + + return true; + + }, + + clampPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new Vector2(); + return result.copy( point ).clamp( this.min, this.max ); + + }, + + distanceToPoint: function () { + + var v1 = new Vector2(); + + return function distanceToPoint( point ) { + + var clampedPoint = v1.copy( point ).clamp( this.min, this.max ); + return clampedPoint.sub( point ).length(); + + }; + + }(), + + intersect: function ( box ) { + + this.min.max( box.min ); + this.max.min( box.max ); + + return this; + + }, + + union: function ( box ) { + + this.min.min( box.min ); + this.max.max( box.max ); + + return this; + + }, + + translate: function ( offset ) { + + this.min.add( offset ); + this.max.add( offset ); + + return this; + + }, + + equals: function ( box ) { + + return box.min.equals( this.min ) && box.max.equals( this.max ); + + } + + }; + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + + function LensFlarePlugin( renderer, flares ) { + + var gl = renderer.context; + var state = renderer.state; + + var vertexBuffer, elementBuffer; + var shader, program, attributes, uniforms; + + var tempTexture, occlusionTexture; + + function init() { + + var vertices = new Float32Array( [ + - 1, - 1, 0, 0, + 1, - 1, 1, 0, + 1, 1, 1, 1, + - 1, 1, 0, 1 + ] ); + + var faces = new Uint16Array( [ + 0, 1, 2, + 0, 2, 3 + ] ); + + // buffers + + vertexBuffer = gl.createBuffer(); + elementBuffer = gl.createBuffer(); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.bufferData( gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, faces, gl.STATIC_DRAW ); + + // textures + + tempTexture = gl.createTexture(); + occlusionTexture = gl.createTexture(); + + state.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGB, 16, 16, 0, gl.RGB, gl.UNSIGNED_BYTE, null ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST ); + + state.bindTexture( gl.TEXTURE_2D, occlusionTexture ); + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, 16, 16, 0, gl.RGBA, gl.UNSIGNED_BYTE, null ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST ); + + shader = { + + vertexShader: [ + + "uniform lowp int renderType;", + + "uniform vec3 screenPosition;", + "uniform vec2 scale;", + "uniform float rotation;", + + "uniform sampler2D occlusionMap;", + + "attribute vec2 position;", + "attribute vec2 uv;", + + "varying vec2 vUV;", + "varying float vVisibility;", + + "void main() {", + + "vUV = uv;", + + "vec2 pos = position;", + + "if ( renderType == 2 ) {", + + "vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );", + + "vVisibility = visibility.r / 9.0;", + "vVisibility *= 1.0 - visibility.g / 9.0;", + "vVisibility *= visibility.b / 9.0;", + "vVisibility *= 1.0 - visibility.a / 9.0;", + + "pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;", + "pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;", + + "}", + + "gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );", + + "}" + + ].join( "\n" ), + + fragmentShader: [ + + "uniform lowp int renderType;", + + "uniform sampler2D map;", + "uniform float opacity;", + "uniform vec3 color;", + + "varying vec2 vUV;", + "varying float vVisibility;", + + "void main() {", + + // pink square + + "if ( renderType == 0 ) {", + + "gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );", + + // restore + + "} else if ( renderType == 1 ) {", + + "gl_FragColor = texture2D( map, vUV );", + + // flare + + "} else {", + + "vec4 texture = texture2D( map, vUV );", + "texture.a *= opacity * vVisibility;", + "gl_FragColor = texture;", + "gl_FragColor.rgb *= color;", + + "}", + + "}" + + ].join( "\n" ) + + }; + + program = createProgram( shader ); + + attributes = { + vertex: gl.getAttribLocation ( program, "position" ), + uv: gl.getAttribLocation ( program, "uv" ) + }; + + uniforms = { + renderType: gl.getUniformLocation( program, "renderType" ), + map: gl.getUniformLocation( program, "map" ), + occlusionMap: gl.getUniformLocation( program, "occlusionMap" ), + opacity: gl.getUniformLocation( program, "opacity" ), + color: gl.getUniformLocation( program, "color" ), + scale: gl.getUniformLocation( program, "scale" ), + rotation: gl.getUniformLocation( program, "rotation" ), + screenPosition: gl.getUniformLocation( program, "screenPosition" ) + }; + + } + + /* + * Render lens flares + * Method: renders 16x16 0xff00ff-colored points scattered over the light source area, + * reads these back and calculates occlusion. + */ + + this.render = function ( scene, camera, viewport ) { + + if ( flares.length === 0 ) return; + + var tempPosition = new Vector3(); + + var invAspect = viewport.w / viewport.z, + halfViewportWidth = viewport.z * 0.5, + halfViewportHeight = viewport.w * 0.5; + + var size = 16 / viewport.w, + scale = new Vector2( size * invAspect, size ); + + var screenPosition = new Vector3( 1, 1, 0 ), + screenPositionPixels = new Vector2( 1, 1 ); + + var validArea = new Box2(); + + validArea.min.set( viewport.x, viewport.y ); + validArea.max.set( viewport.x + ( viewport.z - 16 ), viewport.y + ( viewport.w - 16 ) ); + + if ( program === undefined ) { + + init(); + + } + + gl.useProgram( program ); + + state.initAttributes(); + state.enableAttribute( attributes.vertex ); + state.enableAttribute( attributes.uv ); + state.disableUnusedAttributes(); + + // loop through all lens flares to update their occlusion and positions + // setup gl and common used attribs/uniforms + + gl.uniform1i( uniforms.occlusionMap, 0 ); + gl.uniform1i( uniforms.map, 1 ); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.vertexAttribPointer( attributes.vertex, 2, gl.FLOAT, false, 2 * 8, 0 ); + gl.vertexAttribPointer( attributes.uv, 2, gl.FLOAT, false, 2 * 8, 8 ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + + state.disable( gl.CULL_FACE ); + state.setDepthWrite( false ); + + for ( var i = 0, l = flares.length; i < l; i ++ ) { + + size = 16 / viewport.w; + scale.set( size * invAspect, size ); + + // calc object screen position + + var flare = flares[ i ]; + + tempPosition.set( flare.matrixWorld.elements[ 12 ], flare.matrixWorld.elements[ 13 ], flare.matrixWorld.elements[ 14 ] ); + + tempPosition.applyMatrix4( camera.matrixWorldInverse ); + tempPosition.applyProjection( camera.projectionMatrix ); + + // setup arrays for gl programs + + screenPosition.copy( tempPosition ); + + // horizontal and vertical coordinate of the lower left corner of the pixels to copy + + screenPositionPixels.x = viewport.x + ( screenPosition.x * halfViewportWidth ) + halfViewportWidth - 8; + screenPositionPixels.y = viewport.y + ( screenPosition.y * halfViewportHeight ) + halfViewportHeight - 8; + + // screen cull + + if ( validArea.containsPoint( screenPositionPixels ) === true ) { + + // save current RGB to temp texture + + state.activeTexture( gl.TEXTURE0 ); + state.bindTexture( gl.TEXTURE_2D, null ); + state.activeTexture( gl.TEXTURE1 ); + state.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGB, screenPositionPixels.x, screenPositionPixels.y, 16, 16, 0 ); + + + // render pink quad + + gl.uniform1i( uniforms.renderType, 0 ); + gl.uniform2f( uniforms.scale, scale.x, scale.y ); + gl.uniform3f( uniforms.screenPosition, screenPosition.x, screenPosition.y, screenPosition.z ); + + state.disable( gl.BLEND ); + state.enable( gl.DEPTH_TEST ); + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + + // copy result to occlusionMap + + state.activeTexture( gl.TEXTURE0 ); + state.bindTexture( gl.TEXTURE_2D, occlusionTexture ); + gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGBA, screenPositionPixels.x, screenPositionPixels.y, 16, 16, 0 ); + + + // restore graphics + + gl.uniform1i( uniforms.renderType, 1 ); + state.disable( gl.DEPTH_TEST ); + + state.activeTexture( gl.TEXTURE1 ); + state.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + + // update object positions + + flare.positionScreen.copy( screenPosition ); + + if ( flare.customUpdateCallback ) { + + flare.customUpdateCallback( flare ); + + } else { + + flare.updateLensFlares(); + + } + + // render flares + + gl.uniform1i( uniforms.renderType, 2 ); + state.enable( gl.BLEND ); + + for ( var j = 0, jl = flare.lensFlares.length; j < jl; j ++ ) { + + var sprite = flare.lensFlares[ j ]; + + if ( sprite.opacity > 0.001 && sprite.scale > 0.001 ) { + + screenPosition.x = sprite.x; + screenPosition.y = sprite.y; + screenPosition.z = sprite.z; + + size = sprite.size * sprite.scale / viewport.w; + + scale.x = size * invAspect; + scale.y = size; + + gl.uniform3f( uniforms.screenPosition, screenPosition.x, screenPosition.y, screenPosition.z ); + gl.uniform2f( uniforms.scale, scale.x, scale.y ); + gl.uniform1f( uniforms.rotation, sprite.rotation ); + + gl.uniform1f( uniforms.opacity, sprite.opacity ); + gl.uniform3f( uniforms.color, sprite.color.r, sprite.color.g, sprite.color.b ); + + state.setBlending( sprite.blending, sprite.blendEquation, sprite.blendSrc, sprite.blendDst ); + renderer.setTexture2D( sprite.texture, 1 ); + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + } + + } + + } + + } + + // restore gl + + state.enable( gl.CULL_FACE ); + state.enable( gl.DEPTH_TEST ); + state.setDepthWrite( true ); + + renderer.resetGLState(); + + }; + + function createProgram( shader ) { + + var program = gl.createProgram(); + + var fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); + var vertexShader = gl.createShader( gl.VERTEX_SHADER ); + + var prefix = "precision " + renderer.getPrecision() + " float;\n"; + + gl.shaderSource( fragmentShader, prefix + shader.fragmentShader ); + gl.shaderSource( vertexShader, prefix + shader.vertexShader ); + + gl.compileShader( fragmentShader ); + gl.compileShader( vertexShader ); + + gl.attachShader( program, fragmentShader ); + gl.attachShader( program, vertexShader ); + + gl.linkProgram( program ); + + return program; + + } + + } + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + + function SpritePlugin( renderer, sprites ) { + + var gl = renderer.context; + var state = renderer.state; + + var vertexBuffer, elementBuffer; + var program, attributes, uniforms; + + var texture; + + // decompose matrixWorld + + var spritePosition = new Vector3(); + var spriteRotation = new Quaternion(); + var spriteScale = new Vector3(); + + function init() { + + var vertices = new Float32Array( [ + - 0.5, - 0.5, 0, 0, + 0.5, - 0.5, 1, 0, + 0.5, 0.5, 1, 1, + - 0.5, 0.5, 0, 1 + ] ); + + var faces = new Uint16Array( [ + 0, 1, 2, + 0, 2, 3 + ] ); + + vertexBuffer = gl.createBuffer(); + elementBuffer = gl.createBuffer(); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.bufferData( gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, faces, gl.STATIC_DRAW ); + + program = createProgram(); + + attributes = { + position: gl.getAttribLocation ( program, 'position' ), + uv: gl.getAttribLocation ( program, 'uv' ) + }; + + uniforms = { + uvOffset: gl.getUniformLocation( program, 'uvOffset' ), + uvScale: gl.getUniformLocation( program, 'uvScale' ), + + rotation: gl.getUniformLocation( program, 'rotation' ), + scale: gl.getUniformLocation( program, 'scale' ), + + color: gl.getUniformLocation( program, 'color' ), + map: gl.getUniformLocation( program, 'map' ), + opacity: gl.getUniformLocation( program, 'opacity' ), + + modelViewMatrix: gl.getUniformLocation( program, 'modelViewMatrix' ), + projectionMatrix: gl.getUniformLocation( program, 'projectionMatrix' ), + + fogType: gl.getUniformLocation( program, 'fogType' ), + fogDensity: gl.getUniformLocation( program, 'fogDensity' ), + fogNear: gl.getUniformLocation( program, 'fogNear' ), + fogFar: gl.getUniformLocation( program, 'fogFar' ), + fogColor: gl.getUniformLocation( program, 'fogColor' ), + + alphaTest: gl.getUniformLocation( program, 'alphaTest' ) + }; + + var canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ); + canvas.width = 8; + canvas.height = 8; + + var context = canvas.getContext( '2d' ); + context.fillStyle = 'white'; + context.fillRect( 0, 0, 8, 8 ); + + texture = new Texture( canvas ); + texture.needsUpdate = true; + + } + + this.render = function ( scene, camera ) { + + if ( sprites.length === 0 ) return; + + // setup gl + + if ( program === undefined ) { + + init(); + + } + + gl.useProgram( program ); + + state.initAttributes(); + state.enableAttribute( attributes.position ); + state.enableAttribute( attributes.uv ); + state.disableUnusedAttributes(); + + state.disable( gl.CULL_FACE ); + state.enable( gl.BLEND ); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.vertexAttribPointer( attributes.position, 2, gl.FLOAT, false, 2 * 8, 0 ); + gl.vertexAttribPointer( attributes.uv, 2, gl.FLOAT, false, 2 * 8, 8 ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + + gl.uniformMatrix4fv( uniforms.projectionMatrix, false, camera.projectionMatrix.elements ); + + state.activeTexture( gl.TEXTURE0 ); + gl.uniform1i( uniforms.map, 0 ); + + var oldFogType = 0; + var sceneFogType = 0; + var fog = scene.fog; + + if ( fog ) { + + gl.uniform3f( uniforms.fogColor, fog.color.r, fog.color.g, fog.color.b ); + + if ( (fog && fog.isFog) ) { + + gl.uniform1f( uniforms.fogNear, fog.near ); + gl.uniform1f( uniforms.fogFar, fog.far ); + + gl.uniform1i( uniforms.fogType, 1 ); + oldFogType = 1; + sceneFogType = 1; + + } else if ( (fog && fog.isFogExp2) ) { + + gl.uniform1f( uniforms.fogDensity, fog.density ); + + gl.uniform1i( uniforms.fogType, 2 ); + oldFogType = 2; + sceneFogType = 2; + + } + + } else { + + gl.uniform1i( uniforms.fogType, 0 ); + oldFogType = 0; + sceneFogType = 0; + + } + + + // update positions and sort + + for ( var i = 0, l = sprites.length; i < l; i ++ ) { + + var sprite = sprites[ i ]; + + sprite.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, sprite.matrixWorld ); + sprite.z = - sprite.modelViewMatrix.elements[ 14 ]; + + } + + sprites.sort( painterSortStable ); + + // render all sprites + + var scale = []; + + for ( var i = 0, l = sprites.length; i < l; i ++ ) { + + var sprite = sprites[ i ]; + var material = sprite.material; + + if ( material.visible === false ) continue; + + gl.uniform1f( uniforms.alphaTest, material.alphaTest ); + gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, sprite.modelViewMatrix.elements ); + + sprite.matrixWorld.decompose( spritePosition, spriteRotation, spriteScale ); + + scale[ 0 ] = spriteScale.x; + scale[ 1 ] = spriteScale.y; + + var fogType = 0; + + if ( scene.fog && material.fog ) { + + fogType = sceneFogType; + + } + + if ( oldFogType !== fogType ) { + + gl.uniform1i( uniforms.fogType, fogType ); + oldFogType = fogType; + + } + + if ( material.map !== null ) { + + gl.uniform2f( uniforms.uvOffset, material.map.offset.x, material.map.offset.y ); + gl.uniform2f( uniforms.uvScale, material.map.repeat.x, material.map.repeat.y ); + + } else { + + gl.uniform2f( uniforms.uvOffset, 0, 0 ); + gl.uniform2f( uniforms.uvScale, 1, 1 ); + + } + + gl.uniform1f( uniforms.opacity, material.opacity ); + gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b ); + + gl.uniform1f( uniforms.rotation, material.rotation ); + gl.uniform2fv( uniforms.scale, scale ); + + state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst ); + state.setDepthTest( material.depthTest ); + state.setDepthWrite( material.depthWrite ); + + if ( material.map ) { + + renderer.setTexture2D( material.map, 0 ); + + } else { + + renderer.setTexture2D( texture, 0 ); + + } + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + } + + // restore gl + + state.enable( gl.CULL_FACE ); + + renderer.resetGLState(); + + }; + + function createProgram() { + + var program = gl.createProgram(); + + var vertexShader = gl.createShader( gl.VERTEX_SHADER ); + var fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); + + gl.shaderSource( vertexShader, [ + + 'precision ' + renderer.getPrecision() + ' float;', + + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform float rotation;', + 'uniform vec2 scale;', + 'uniform vec2 uvOffset;', + 'uniform vec2 uvScale;', + + 'attribute vec2 position;', + 'attribute vec2 uv;', + + 'varying vec2 vUV;', + + 'void main() {', + + 'vUV = uvOffset + uv * uvScale;', + + 'vec2 alignedPosition = position * scale;', + + 'vec2 rotatedPosition;', + 'rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;', + 'rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;', + + 'vec4 finalPosition;', + + 'finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );', + 'finalPosition.xy += rotatedPosition;', + 'finalPosition = projectionMatrix * finalPosition;', + + 'gl_Position = finalPosition;', + + '}' + + ].join( '\n' ) ); + + gl.shaderSource( fragmentShader, [ + + 'precision ' + renderer.getPrecision() + ' float;', + + 'uniform vec3 color;', + 'uniform sampler2D map;', + 'uniform float opacity;', + + 'uniform int fogType;', + 'uniform vec3 fogColor;', + 'uniform float fogDensity;', + 'uniform float fogNear;', + 'uniform float fogFar;', + 'uniform float alphaTest;', + + 'varying vec2 vUV;', + + 'void main() {', + + 'vec4 texture = texture2D( map, vUV );', + + 'if ( texture.a < alphaTest ) discard;', + + 'gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );', + + 'if ( fogType > 0 ) {', + + 'float depth = gl_FragCoord.z / gl_FragCoord.w;', + 'float fogFactor = 0.0;', + + 'if ( fogType == 1 ) {', + + 'fogFactor = smoothstep( fogNear, fogFar, depth );', + + '} else {', + + 'const float LOG2 = 1.442695;', + 'fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );', + 'fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );', + + '}', + + 'gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );', + + '}', + + '}' + + ].join( '\n' ) ); + + gl.compileShader( vertexShader ); + gl.compileShader( fragmentShader ); + + gl.attachShader( program, vertexShader ); + gl.attachShader( program, fragmentShader ); + + gl.linkProgram( program ); + + return program; + + } + + function painterSortStable( a, b ) { + + if ( a.renderOrder !== b.renderOrder ) { + + return a.renderOrder - b.renderOrder; + + } else if ( a.z !== b.z ) { + + return b.z - a.z; + + } else { + + return b.id - a.id; + + } + + } + + } + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Material() { + + Object.defineProperty( this, 'id', { value: MaterialIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.type = 'Material'; + + this.fog = true; + this.lights = true; + + this.blending = NormalBlending; + this.side = FrontSide; + this.shading = SmoothShading; // THREE.FlatShading, THREE.SmoothShading + this.vertexColors = NoColors; // THREE.NoColors, THREE.VertexColors, THREE.FaceColors + + this.opacity = 1; + this.transparent = false; + + this.blendSrc = SrcAlphaFactor; + this.blendDst = OneMinusSrcAlphaFactor; + this.blendEquation = AddEquation; + this.blendSrcAlpha = null; + this.blendDstAlpha = null; + this.blendEquationAlpha = null; + + this.depthFunc = LessEqualDepth; + this.depthTest = true; + this.depthWrite = true; + + this.clippingPlanes = null; + this.clipIntersection = false; + this.clipShadows = false; + + this.colorWrite = true; + + this.precision = null; // override the renderer's default precision for this material + + this.polygonOffset = false; + this.polygonOffsetFactor = 0; + this.polygonOffsetUnits = 0; + + this.alphaTest = 0; + this.premultipliedAlpha = false; + + this.overdraw = 0; // Overdrawn pixels (typically between 0 and 1) for fixing antialiasing gaps in CanvasRenderer + + this.visible = true; + + this._needsUpdate = true; + + } + + Material.prototype = { + + constructor: Material, + + isMaterial: true, + + get needsUpdate() { + + return this._needsUpdate; + + }, + + set needsUpdate( value ) { + + if ( value === true ) this.update(); + this._needsUpdate = value; + + }, + + setValues: function ( values ) { + + if ( values === undefined ) return; + + for ( var key in values ) { + + var newValue = values[ key ]; + + if ( newValue === undefined ) { + + console.warn( "THREE.Material: '" + key + "' parameter is undefined." ); + continue; + + } + + var currentValue = this[ key ]; + + if ( currentValue === undefined ) { + + console.warn( "THREE." + this.type + ": '" + key + "' is not a property of this material." ); + continue; + + } + + if ( (currentValue && currentValue.isColor) ) { + + currentValue.set( newValue ); + + } else if ( (currentValue && currentValue.isVector3) && (newValue && newValue.isVector3) ) { + + currentValue.copy( newValue ); + + } else if ( key === 'overdraw' ) { + + // ensure overdraw is backwards-compatible with legacy boolean type + this[ key ] = Number( newValue ); + + } else { + + this[ key ] = newValue; + + } + + } + + }, + + toJSON: function ( meta ) { + + var isRoot = meta === undefined; + + if ( isRoot ) { + + meta = { + textures: {}, + images: {} + }; + + } + + var data = { + metadata: { + version: 4.4, + type: 'Material', + generator: 'Material.toJSON' + } + }; + + // standard Material serialization + data.uuid = this.uuid; + data.type = this.type; + + if ( this.name !== '' ) data.name = this.name; + + if ( (this.color && this.color.isColor) ) data.color = this.color.getHex(); + + if ( this.roughness !== undefined ) data.roughness = this.roughness; + if ( this.metalness !== undefined ) data.metalness = this.metalness; + + if ( (this.emissive && this.emissive.isColor) ) data.emissive = this.emissive.getHex(); + if ( (this.specular && this.specular.isColor) ) data.specular = this.specular.getHex(); + if ( this.shininess !== undefined ) data.shininess = this.shininess; + + if ( (this.map && this.map.isTexture) ) data.map = this.map.toJSON( meta ).uuid; + if ( (this.alphaMap && this.alphaMap.isTexture) ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; + if ( (this.lightMap && this.lightMap.isTexture) ) data.lightMap = this.lightMap.toJSON( meta ).uuid; + if ( (this.bumpMap && this.bumpMap.isTexture) ) { + + data.bumpMap = this.bumpMap.toJSON( meta ).uuid; + data.bumpScale = this.bumpScale; + + } + if ( (this.normalMap && this.normalMap.isTexture) ) { + + data.normalMap = this.normalMap.toJSON( meta ).uuid; + data.normalScale = this.normalScale.toArray(); + + } + if ( (this.displacementMap && this.displacementMap.isTexture) ) { + + data.displacementMap = this.displacementMap.toJSON( meta ).uuid; + data.displacementScale = this.displacementScale; + data.displacementBias = this.displacementBias; + + } + if ( (this.roughnessMap && this.roughnessMap.isTexture) ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid; + if ( (this.metalnessMap && this.metalnessMap.isTexture) ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid; + + if ( (this.emissiveMap && this.emissiveMap.isTexture) ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid; + if ( (this.specularMap && this.specularMap.isTexture) ) data.specularMap = this.specularMap.toJSON( meta ).uuid; + + if ( (this.envMap && this.envMap.isTexture) ) { + + data.envMap = this.envMap.toJSON( meta ).uuid; + data.reflectivity = this.reflectivity; // Scale behind envMap + + } + + if ( this.size !== undefined ) data.size = this.size; + if ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation; + + if ( this.blending !== NormalBlending ) data.blending = this.blending; + if ( this.shading !== SmoothShading ) data.shading = this.shading; + if ( this.side !== FrontSide ) data.side = this.side; + if ( this.vertexColors !== NoColors ) data.vertexColors = this.vertexColors; + + if ( this.opacity < 1 ) data.opacity = this.opacity; + if ( this.transparent === true ) data.transparent = this.transparent; + + data.depthFunc = this.depthFunc; + data.depthTest = this.depthTest; + data.depthWrite = this.depthWrite; + + if ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest; + if ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha; + if ( this.wireframe === true ) data.wireframe = this.wireframe; + if ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth; + if ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap; + if ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin; + + data.skinning = this.skinning; + data.morphTargets = this.morphTargets; + + // TODO: Copied from Object3D.toJSON + + function extractFromCache( cache ) { + + var values = []; + + for ( var key in cache ) { + + var data = cache[ key ]; + delete data.metadata; + values.push( data ); + + } + + return values; + + } + + if ( isRoot ) { + + var textures = extractFromCache( meta.textures ); + var images = extractFromCache( meta.images ); + + if ( textures.length > 0 ) data.textures = textures; + if ( images.length > 0 ) data.images = images; + + } + + return data; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( source ) { + + this.name = source.name; + + this.fog = source.fog; + this.lights = source.lights; + + this.blending = source.blending; + this.side = source.side; + this.shading = source.shading; + this.vertexColors = source.vertexColors; + + this.opacity = source.opacity; + this.transparent = source.transparent; + + this.blendSrc = source.blendSrc; + this.blendDst = source.blendDst; + this.blendEquation = source.blendEquation; + this.blendSrcAlpha = source.blendSrcAlpha; + this.blendDstAlpha = source.blendDstAlpha; + this.blendEquationAlpha = source.blendEquationAlpha; + + this.depthFunc = source.depthFunc; + this.depthTest = source.depthTest; + this.depthWrite = source.depthWrite; + + this.colorWrite = source.colorWrite; + + this.precision = source.precision; + + this.polygonOffset = source.polygonOffset; + this.polygonOffsetFactor = source.polygonOffsetFactor; + this.polygonOffsetUnits = source.polygonOffsetUnits; + + this.alphaTest = source.alphaTest; + + this.premultipliedAlpha = source.premultipliedAlpha; + + this.overdraw = source.overdraw; + + this.visible = source.visible; + this.clipShadows = source.clipShadows; + this.clipIntersection = source.clipIntersection; + + var srcPlanes = source.clippingPlanes, + dstPlanes = null; + + if ( srcPlanes !== null ) { + + var n = srcPlanes.length; + dstPlanes = new Array( n ); + + for ( var i = 0; i !== n; ++ i ) + dstPlanes[ i ] = srcPlanes[ i ].clone(); + + } + + this.clippingPlanes = dstPlanes; + + return this; + + }, + + update: function () { + + this.dispatchEvent( { type: 'update' } ); + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + + }; + + Object.assign( Material.prototype, EventDispatcher.prototype ); + + var count$1 = 0; + function MaterialIdCount() { return count$1++; } + + /** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * defines: { "label" : "value" }, + * uniforms: { "parameter1": { value: 1.0 }, "parameter2": { value2: 2 } }, + * + * fragmentShader: , + * vertexShader: , + * + * wireframe: , + * wireframeLinewidth: , + * + * lights: , + * + * skinning: , + * morphTargets: , + * morphNormals: + * } + */ + + function ShaderMaterial( parameters ) { + + Material.call( this ); + + this.type = 'ShaderMaterial'; + + this.defines = {}; + this.uniforms = {}; + + this.vertexShader = 'void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}'; + this.fragmentShader = 'void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}'; + + this.linewidth = 1; + + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.fog = false; // set to use scene fog + this.lights = false; // set to use scene lights + this.clipping = false; // set to use user-defined clipping planes + + this.skinning = false; // set to use skinning attribute streams + this.morphTargets = false; // set to use morph targets + this.morphNormals = false; // set to use morph normals + + this.extensions = { + derivatives: false, // set to use derivatives + fragDepth: false, // set to use fragment depth values + drawBuffers: false, // set to use draw buffers + shaderTextureLOD: false // set to use shader texture LOD + }; + + // When rendered geometry doesn't include these attributes but the material does, + // use these default values in WebGL. This avoids errors when buffer data is missing. + this.defaultAttributeValues = { + 'color': [ 1, 1, 1 ], + 'uv': [ 0, 0 ], + 'uv2': [ 0, 0 ] + }; + + this.index0AttributeName = undefined; + + if ( parameters !== undefined ) { + + if ( parameters.attributes !== undefined ) { + + console.error( 'THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.' ); + + } + + this.setValues( parameters ); + + } + + } + + ShaderMaterial.prototype = Object.create( Material.prototype ); + ShaderMaterial.prototype.constructor = ShaderMaterial; + + ShaderMaterial.prototype.isShaderMaterial = true; + + ShaderMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.fragmentShader = source.fragmentShader; + this.vertexShader = source.vertexShader; + + this.uniforms = UniformsUtils.clone( source.uniforms ); + + this.defines = source.defines; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + + this.lights = source.lights; + this.clipping = source.clipping; + + this.skinning = source.skinning; + + this.morphTargets = source.morphTargets; + this.morphNormals = source.morphNormals; + + this.extensions = source.extensions; + + return this; + + }; + + ShaderMaterial.prototype.toJSON = function ( meta ) { + + var data = Material.prototype.toJSON.call( this, meta ); + + data.uniforms = this.uniforms; + data.vertexShader = this.vertexShader; + data.fragmentShader = this.fragmentShader; + + return data; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author bhouston / https://clara.io + * @author WestLangley / http://github.com/WestLangley + * + * parameters = { + * + * opacity: , + * + * map: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * displacementMap: new THREE.Texture( ), + * displacementScale: , + * displacementBias: , + * + * wireframe: , + * wireframeLinewidth: + * } + */ + + function MeshDepthMaterial( parameters ) { + + Material.call( this ); + + this.type = 'MeshDepthMaterial'; + + this.depthPacking = BasicDepthPacking; + + this.skinning = false; + this.morphTargets = false; + + this.map = null; + + this.alphaMap = null; + + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.fog = false; + this.lights = false; + + this.setValues( parameters ); + + } + + MeshDepthMaterial.prototype = Object.create( Material.prototype ); + MeshDepthMaterial.prototype.constructor = MeshDepthMaterial; + + MeshDepthMaterial.prototype.isMeshDepthMaterial = true; + + MeshDepthMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.depthPacking = source.depthPacking; + + this.skinning = source.skinning; + this.morphTargets = source.morphTargets; + + this.map = source.map; + + this.alphaMap = source.alphaMap; + + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + + return this; + + }; + + /** + * @author bhouston / http://clara.io + * @author WestLangley / http://github.com/WestLangley + */ + + function Box3( min, max ) { + + this.min = ( min !== undefined ) ? min : new Vector3( + Infinity, + Infinity, + Infinity ); + this.max = ( max !== undefined ) ? max : new Vector3( - Infinity, - Infinity, - Infinity ); + + } + + Box3.prototype = { + + constructor: Box3, + + isBox3: true, + + set: function ( min, max ) { + + this.min.copy( min ); + this.max.copy( max ); + + return this; + + }, + + setFromArray: function ( array ) { + + var minX = + Infinity; + var minY = + Infinity; + var minZ = + Infinity; + + var maxX = - Infinity; + var maxY = - Infinity; + var maxZ = - Infinity; + + for ( var i = 0, l = array.length; i < l; i += 3 ) { + + var x = array[ i ]; + var y = array[ i + 1 ]; + var z = array[ i + 2 ]; + + if ( x < minX ) minX = x; + if ( y < minY ) minY = y; + if ( z < minZ ) minZ = z; + + if ( x > maxX ) maxX = x; + if ( y > maxY ) maxY = y; + if ( z > maxZ ) maxZ = z; + + } + + this.min.set( minX, minY, minZ ); + this.max.set( maxX, maxY, maxZ ); + + }, + + setFromPoints: function ( points ) { + + this.makeEmpty(); + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + this.expandByPoint( points[ i ] ); + + } + + return this; + + }, + + setFromCenterAndSize: function () { + + var v1 = new Vector3(); + + return function setFromCenterAndSize( center, size ) { + + var halfSize = v1.copy( size ).multiplyScalar( 0.5 ); + + this.min.copy( center ).sub( halfSize ); + this.max.copy( center ).add( halfSize ); + + return this; + + }; + + }(), + + setFromObject: function () { + + // Computes the world-axis-aligned bounding box of an object (including its children), + // accounting for both the object's, and children's, world transforms + + var v1 = new Vector3(); + + return function setFromObject( object ) { + + var scope = this; + + object.updateMatrixWorld( true ); + + this.makeEmpty(); + + object.traverse( function ( node ) { + + var geometry = node.geometry; + + if ( geometry !== undefined ) { + + if ( (geometry && geometry.isGeometry) ) { + + var vertices = geometry.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + v1.copy( vertices[ i ] ); + v1.applyMatrix4( node.matrixWorld ); + + scope.expandByPoint( v1 ); + + } + + } else if ( (geometry && geometry.isBufferGeometry) ) { + + var attribute = geometry.attributes.position; + + if ( attribute !== undefined ) { + + var array, offset, stride; + + if ( (attribute && attribute.isInterleavedBufferAttribute) ) { + + array = attribute.data.array; + offset = attribute.offset; + stride = attribute.data.stride; + + } else { + + array = attribute.array; + offset = 0; + stride = 3; + + } + + for ( var i = offset, il = array.length; i < il; i += stride ) { + + v1.fromArray( array, i ); + v1.applyMatrix4( node.matrixWorld ); + + scope.expandByPoint( v1 ); + + } + + } + + } + + } + + } ); + + return this; + + }; + + }(), + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( box ) { + + this.min.copy( box.min ); + this.max.copy( box.max ); + + return this; + + }, + + makeEmpty: function () { + + this.min.x = this.min.y = this.min.z = + Infinity; + this.max.x = this.max.y = this.max.z = - Infinity; + + return this; + + }, + + isEmpty: function () { + + // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes + + return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z ); + + }, + + getCenter: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return this.isEmpty() ? result.set( 0, 0, 0 ) : result.addVectors( this.min, this.max ).multiplyScalar( 0.5 ); + + }, + + getSize: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return this.isEmpty() ? result.set( 0, 0, 0 ) : result.subVectors( this.max, this.min ); + + }, + + expandByPoint: function ( point ) { + + this.min.min( point ); + this.max.max( point ); + + return this; + + }, + + expandByVector: function ( vector ) { + + this.min.sub( vector ); + this.max.add( vector ); + + return this; + + }, + + expandByScalar: function ( scalar ) { + + this.min.addScalar( - scalar ); + this.max.addScalar( scalar ); + + return this; + + }, + + containsPoint: function ( point ) { + + if ( point.x < this.min.x || point.x > this.max.x || + point.y < this.min.y || point.y > this.max.y || + point.z < this.min.z || point.z > this.max.z ) { + + return false; + + } + + return true; + + }, + + containsBox: function ( box ) { + + if ( ( this.min.x <= box.min.x ) && ( box.max.x <= this.max.x ) && + ( this.min.y <= box.min.y ) && ( box.max.y <= this.max.y ) && + ( this.min.z <= box.min.z ) && ( box.max.z <= this.max.z ) ) { + + return true; + + } + + return false; + + }, + + getParameter: function ( point, optionalTarget ) { + + // This can potentially have a divide by zero if the box + // has a size dimension of 0. + + var result = optionalTarget || new Vector3(); + + return result.set( + ( point.x - this.min.x ) / ( this.max.x - this.min.x ), + ( point.y - this.min.y ) / ( this.max.y - this.min.y ), + ( point.z - this.min.z ) / ( this.max.z - this.min.z ) + ); + + }, + + intersectsBox: function ( box ) { + + // using 6 splitting planes to rule out intersections. + + if ( box.max.x < this.min.x || box.min.x > this.max.x || + box.max.y < this.min.y || box.min.y > this.max.y || + box.max.z < this.min.z || box.min.z > this.max.z ) { + + return false; + + } + + return true; + + }, + + intersectsSphere: ( function () { + + var closestPoint; + + return function intersectsSphere( sphere ) { + + if ( closestPoint === undefined ) closestPoint = new Vector3(); + + // Find the point on the AABB closest to the sphere center. + this.clampPoint( sphere.center, closestPoint ); + + // If that point is inside the sphere, the AABB and sphere intersect. + return closestPoint.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius ); + + }; + + } )(), + + intersectsPlane: function ( plane ) { + + // We compute the minimum and maximum dot product values. If those values + // are on the same side (back or front) of the plane, then there is no intersection. + + var min, max; + + if ( plane.normal.x > 0 ) { + + min = plane.normal.x * this.min.x; + max = plane.normal.x * this.max.x; + + } else { + + min = plane.normal.x * this.max.x; + max = plane.normal.x * this.min.x; + + } + + if ( plane.normal.y > 0 ) { + + min += plane.normal.y * this.min.y; + max += plane.normal.y * this.max.y; + + } else { + + min += plane.normal.y * this.max.y; + max += plane.normal.y * this.min.y; + + } + + if ( plane.normal.z > 0 ) { + + min += plane.normal.z * this.min.z; + max += plane.normal.z * this.max.z; + + } else { + + min += plane.normal.z * this.max.z; + max += plane.normal.z * this.min.z; + + } + + return ( min <= plane.constant && max >= plane.constant ); + + }, + + clampPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return result.copy( point ).clamp( this.min, this.max ); + + }, + + distanceToPoint: function () { + + var v1 = new Vector3(); + + return function distanceToPoint( point ) { + + var clampedPoint = v1.copy( point ).clamp( this.min, this.max ); + return clampedPoint.sub( point ).length(); + + }; + + }(), + + getBoundingSphere: function () { + + var v1 = new Vector3(); + + return function getBoundingSphere( optionalTarget ) { + + var result = optionalTarget || new Sphere(); + + this.getCenter( result.center ); + + result.radius = this.getSize( v1 ).length() * 0.5; + + return result; + + }; + + }(), + + intersect: function ( box ) { + + this.min.max( box.min ); + this.max.min( box.max ); + + // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values. + if( this.isEmpty() ) this.makeEmpty(); + + return this; + + }, + + union: function ( box ) { + + this.min.min( box.min ); + this.max.max( box.max ); + + return this; + + }, + + applyMatrix4: function () { + + var points = [ + new Vector3(), + new Vector3(), + new Vector3(), + new Vector3(), + new Vector3(), + new Vector3(), + new Vector3(), + new Vector3() + ]; + + return function applyMatrix4( matrix ) { + + // transform of empty box is an empty box. + if( this.isEmpty() ) return this; + + // NOTE: I am using a binary pattern to specify all 2^3 combinations below + points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000 + points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001 + points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010 + points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011 + points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100 + points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101 + points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110 + points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111 + + this.setFromPoints( points ); + + return this; + + }; + + }(), + + translate: function ( offset ) { + + this.min.add( offset ); + this.max.add( offset ); + + return this; + + }, + + equals: function ( box ) { + + return box.min.equals( this.min ) && box.max.equals( this.max ); + + } + + }; + + /** + * @author bhouston / http://clara.io + * @author mrdoob / http://mrdoob.com/ + */ + + function Sphere( center, radius ) { + + this.center = ( center !== undefined ) ? center : new Vector3(); + this.radius = ( radius !== undefined ) ? radius : 0; + + } + + Sphere.prototype = { + + constructor: Sphere, + + set: function ( center, radius ) { + + this.center.copy( center ); + this.radius = radius; + + return this; + + }, + + setFromPoints: function () { + + var box = new Box3(); + + return function setFromPoints( points, optionalCenter ) { + + var center = this.center; + + if ( optionalCenter !== undefined ) { + + center.copy( optionalCenter ); + + } else { + + box.setFromPoints( points ).getCenter( center ); + + } + + var maxRadiusSq = 0; + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) ); + + } + + this.radius = Math.sqrt( maxRadiusSq ); + + return this; + + }; + + }(), + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( sphere ) { + + this.center.copy( sphere.center ); + this.radius = sphere.radius; + + return this; + + }, + + empty: function () { + + return ( this.radius <= 0 ); + + }, + + containsPoint: function ( point ) { + + return ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) ); + + }, + + distanceToPoint: function ( point ) { + + return ( point.distanceTo( this.center ) - this.radius ); + + }, + + intersectsSphere: function ( sphere ) { + + var radiusSum = this.radius + sphere.radius; + + return sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum ); + + }, + + intersectsBox: function ( box ) { + + return box.intersectsSphere( this ); + + }, + + intersectsPlane: function ( plane ) { + + // We use the following equation to compute the signed distance from + // the center of the sphere to the plane. + // + // distance = q * n - d + // + // If this distance is greater than the radius of the sphere, + // then there is no intersection. + + return Math.abs( this.center.dot( plane.normal ) - plane.constant ) <= this.radius; + + }, + + clampPoint: function ( point, optionalTarget ) { + + var deltaLengthSq = this.center.distanceToSquared( point ); + + var result = optionalTarget || new Vector3(); + + result.copy( point ); + + if ( deltaLengthSq > ( this.radius * this.radius ) ) { + + result.sub( this.center ).normalize(); + result.multiplyScalar( this.radius ).add( this.center ); + + } + + return result; + + }, + + getBoundingBox: function ( optionalTarget ) { + + var box = optionalTarget || new Box3(); + + box.set( this.center, this.center ); + box.expandByScalar( this.radius ); + + return box; + + }, + + applyMatrix4: function ( matrix ) { + + this.center.applyMatrix4( matrix ); + this.radius = this.radius * matrix.getMaxScaleOnAxis(); + + return this; + + }, + + translate: function ( offset ) { + + this.center.add( offset ); + + return this; + + }, + + equals: function ( sphere ) { + + return sphere.center.equals( this.center ) && ( sphere.radius === this.radius ); + + } + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://clara.io + * @author tschw + */ + + function Matrix3() { + + this.elements = new Float32Array( [ + + 1, 0, 0, + 0, 1, 0, + 0, 0, 1 + + ] ); + + if ( arguments.length > 0 ) { + + console.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' ); + + } + + } + + Matrix3.prototype = { + + constructor: Matrix3, + + isMatrix3: true, + + set: function ( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { + + var te = this.elements; + + te[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31; + te[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32; + te[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33; + + return this; + + }, + + identity: function () { + + this.set( + + 1, 0, 0, + 0, 1, 0, + 0, 0, 1 + + ); + + return this; + + }, + + clone: function () { + + return new this.constructor().fromArray( this.elements ); + + }, + + copy: function ( m ) { + + var me = m.elements; + + this.set( + + me[ 0 ], me[ 3 ], me[ 6 ], + me[ 1 ], me[ 4 ], me[ 7 ], + me[ 2 ], me[ 5 ], me[ 8 ] + + ); + + return this; + + }, + + setFromMatrix4: function( m ) { + + var me = m.elements; + + this.set( + + me[ 0 ], me[ 4 ], me[ 8 ], + me[ 1 ], me[ 5 ], me[ 9 ], + me[ 2 ], me[ 6 ], me[ 10 ] + + ); + + return this; + + }, + + applyToVector3Array: function () { + + var v1; + + return function applyToVector3Array( array, offset, length ) { + + if ( v1 === undefined ) v1 = new Vector3(); + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = array.length; + + for ( var i = 0, j = offset; i < length; i += 3, j += 3 ) { + + v1.fromArray( array, j ); + v1.applyMatrix3( this ); + v1.toArray( array, j ); + + } + + return array; + + }; + + }(), + + applyToBuffer: function () { + + var v1; + + return function applyToBuffer( buffer, offset, length ) { + + if ( v1 === undefined ) v1 = new Vector3(); + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = buffer.length / buffer.itemSize; + + for ( var i = 0, j = offset; i < length; i ++, j ++ ) { + + v1.x = buffer.getX( j ); + v1.y = buffer.getY( j ); + v1.z = buffer.getZ( j ); + + v1.applyMatrix3( this ); + + buffer.setXYZ( j, v1.x, v1.y, v1.z ); + + } + + return buffer; + + }; + + }(), + + multiplyScalar: function ( s ) { + + var te = this.elements; + + te[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s; + te[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s; + te[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s; + + return this; + + }, + + determinant: function () { + + var te = this.elements; + + var a = te[ 0 ], b = te[ 1 ], c = te[ 2 ], + d = te[ 3 ], e = te[ 4 ], f = te[ 5 ], + g = te[ 6 ], h = te[ 7 ], i = te[ 8 ]; + + return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g; + + }, + + getInverse: function ( matrix, throwOnDegenerate ) { + + if ( (matrix && matrix.isMatrix4) ) { + + console.error( "THREE.Matrix3.getInverse no longer takes a Matrix4 argument." ); + + } + + var me = matrix.elements, + te = this.elements, + + n11 = me[ 0 ], n21 = me[ 1 ], n31 = me[ 2 ], + n12 = me[ 3 ], n22 = me[ 4 ], n32 = me[ 5 ], + n13 = me[ 6 ], n23 = me[ 7 ], n33 = me[ 8 ], + + t11 = n33 * n22 - n32 * n23, + t12 = n32 * n13 - n33 * n12, + t13 = n23 * n12 - n22 * n13, + + det = n11 * t11 + n21 * t12 + n31 * t13; + + if ( det === 0 ) { + + var msg = "THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0"; + + if ( throwOnDegenerate === true ) { + + throw new Error( msg ); + + } else { + + console.warn( msg ); + + } + + return this.identity(); + } + + var detInv = 1 / det; + + te[ 0 ] = t11 * detInv; + te[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv; + te[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv; + + te[ 3 ] = t12 * detInv; + te[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv; + te[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv; + + te[ 6 ] = t13 * detInv; + te[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv; + te[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv; + + return this; + + }, + + transpose: function () { + + var tmp, m = this.elements; + + tmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp; + tmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp; + tmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp; + + return this; + + }, + + flattenToArrayOffset: function ( array, offset ) { + + console.warn( "THREE.Matrix3: .flattenToArrayOffset is deprecated " + + "- just use .toArray instead." ); + + return this.toArray( array, offset ); + + }, + + getNormalMatrix: function ( matrix4 ) { + + return this.setFromMatrix4( matrix4 ).getInverse( this ).transpose(); + + }, + + transposeIntoArray: function ( r ) { + + var m = this.elements; + + r[ 0 ] = m[ 0 ]; + r[ 1 ] = m[ 3 ]; + r[ 2 ] = m[ 6 ]; + r[ 3 ] = m[ 1 ]; + r[ 4 ] = m[ 4 ]; + r[ 5 ] = m[ 7 ]; + r[ 6 ] = m[ 2 ]; + r[ 7 ] = m[ 5 ]; + r[ 8 ] = m[ 8 ]; + + return this; + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + for( var i = 0; i < 9; i ++ ) { + + this.elements[ i ] = array[ i + offset ]; + + } + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + var te = this.elements; + + array[ offset ] = te[ 0 ]; + array[ offset + 1 ] = te[ 1 ]; + array[ offset + 2 ] = te[ 2 ]; + + array[ offset + 3 ] = te[ 3 ]; + array[ offset + 4 ] = te[ 4 ]; + array[ offset + 5 ] = te[ 5 ]; + + array[ offset + 6 ] = te[ 6 ]; + array[ offset + 7 ] = te[ 7 ]; + array[ offset + 8 ] = te[ 8 ]; + + return array; + + } + + }; + + /** + * @author bhouston / http://clara.io + */ + + function Plane( normal, constant ) { + + this.normal = ( normal !== undefined ) ? normal : new Vector3( 1, 0, 0 ); + this.constant = ( constant !== undefined ) ? constant : 0; + + } + + Plane.prototype = { + + constructor: Plane, + + set: function ( normal, constant ) { + + this.normal.copy( normal ); + this.constant = constant; + + return this; + + }, + + setComponents: function ( x, y, z, w ) { + + this.normal.set( x, y, z ); + this.constant = w; + + return this; + + }, + + setFromNormalAndCoplanarPoint: function ( normal, point ) { + + this.normal.copy( normal ); + this.constant = - point.dot( this.normal ); // must be this.normal, not normal, as this.normal is normalized + + return this; + + }, + + setFromCoplanarPoints: function () { + + var v1 = new Vector3(); + var v2 = new Vector3(); + + return function setFromCoplanarPoints( a, b, c ) { + + var normal = v1.subVectors( c, b ).cross( v2.subVectors( a, b ) ).normalize(); + + // Q: should an error be thrown if normal is zero (e.g. degenerate plane)? + + this.setFromNormalAndCoplanarPoint( normal, a ); + + return this; + + }; + + }(), + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( plane ) { + + this.normal.copy( plane.normal ); + this.constant = plane.constant; + + return this; + + }, + + normalize: function () { + + // Note: will lead to a divide by zero if the plane is invalid. + + var inverseNormalLength = 1.0 / this.normal.length(); + this.normal.multiplyScalar( inverseNormalLength ); + this.constant *= inverseNormalLength; + + return this; + + }, + + negate: function () { + + this.constant *= - 1; + this.normal.negate(); + + return this; + + }, + + distanceToPoint: function ( point ) { + + return this.normal.dot( point ) + this.constant; + + }, + + distanceToSphere: function ( sphere ) { + + return this.distanceToPoint( sphere.center ) - sphere.radius; + + }, + + projectPoint: function ( point, optionalTarget ) { + + return this.orthoPoint( point, optionalTarget ).sub( point ).negate(); + + }, + + orthoPoint: function ( point, optionalTarget ) { + + var perpendicularMagnitude = this.distanceToPoint( point ); + + var result = optionalTarget || new Vector3(); + return result.copy( this.normal ).multiplyScalar( perpendicularMagnitude ); + + }, + + intersectLine: function () { + + var v1 = new Vector3(); + + return function intersectLine( line, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + var direction = line.delta( v1 ); + + var denominator = this.normal.dot( direction ); + + if ( denominator === 0 ) { + + // line is coplanar, return origin + if ( this.distanceToPoint( line.start ) === 0 ) { + + return result.copy( line.start ); + + } + + // Unsure if this is the correct method to handle this case. + return undefined; + + } + + var t = - ( line.start.dot( this.normal ) + this.constant ) / denominator; + + if ( t < 0 || t > 1 ) { + + return undefined; + + } + + return result.copy( direction ).multiplyScalar( t ).add( line.start ); + + }; + + }(), + + intersectsLine: function ( line ) { + + // Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it. + + var startSign = this.distanceToPoint( line.start ); + var endSign = this.distanceToPoint( line.end ); + + return ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 ); + + }, + + intersectsBox: function ( box ) { + + return box.intersectsPlane( this ); + + }, + + intersectsSphere: function ( sphere ) { + + return sphere.intersectsPlane( this ); + + }, + + coplanarPoint: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return result.copy( this.normal ).multiplyScalar( - this.constant ); + + }, + + applyMatrix4: function () { + + var v1 = new Vector3(); + var m1 = new Matrix3(); + + return function applyMatrix4( matrix, optionalNormalMatrix ) { + + var referencePoint = this.coplanarPoint( v1 ).applyMatrix4( matrix ); + + // transform normal based on theory here: + // http://www.songho.ca/opengl/gl_normaltransform.html + var normalMatrix = optionalNormalMatrix || m1.getNormalMatrix( matrix ); + var normal = this.normal.applyMatrix3( normalMatrix ).normalize(); + + // recalculate constant (like in setFromNormalAndCoplanarPoint) + this.constant = - referencePoint.dot( normal ); + + return this; + + }; + + }(), + + translate: function ( offset ) { + + this.constant = this.constant - offset.dot( this.normal ); + + return this; + + }, + + equals: function ( plane ) { + + return plane.normal.equals( this.normal ) && ( plane.constant === this.constant ); + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author bhouston / http://clara.io + */ + + function Frustum( p0, p1, p2, p3, p4, p5 ) { + + this.planes = [ + + ( p0 !== undefined ) ? p0 : new Plane(), + ( p1 !== undefined ) ? p1 : new Plane(), + ( p2 !== undefined ) ? p2 : new Plane(), + ( p3 !== undefined ) ? p3 : new Plane(), + ( p4 !== undefined ) ? p4 : new Plane(), + ( p5 !== undefined ) ? p5 : new Plane() + + ]; + + } + + Frustum.prototype = { + + constructor: Frustum, + + set: function ( p0, p1, p2, p3, p4, p5 ) { + + var planes = this.planes; + + planes[ 0 ].copy( p0 ); + planes[ 1 ].copy( p1 ); + planes[ 2 ].copy( p2 ); + planes[ 3 ].copy( p3 ); + planes[ 4 ].copy( p4 ); + planes[ 5 ].copy( p5 ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( frustum ) { + + var planes = this.planes; + + for ( var i = 0; i < 6; i ++ ) { + + planes[ i ].copy( frustum.planes[ i ] ); + + } + + return this; + + }, + + setFromMatrix: function ( m ) { + + var planes = this.planes; + var me = m.elements; + var me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ]; + var me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ]; + var me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ]; + var me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ]; + + planes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize(); + planes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize(); + planes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize(); + planes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize(); + planes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); + planes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize(); + + return this; + + }, + + intersectsObject: function () { + + var sphere = new Sphere(); + + return function intersectsObject( object ) { + + var geometry = object.geometry; + + if ( geometry.boundingSphere === null ) + geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ) + .applyMatrix4( object.matrixWorld ); + + return this.intersectsSphere( sphere ); + + }; + + }(), + + intersectsSprite: function () { + + var sphere = new Sphere(); + + return function intersectsSprite( sprite ) { + + sphere.center.set( 0, 0, 0 ); + sphere.radius = 0.7071067811865476; + sphere.applyMatrix4( sprite.matrixWorld ); + + return this.intersectsSphere( sphere ); + + }; + + }(), + + intersectsSphere: function ( sphere ) { + + var planes = this.planes; + var center = sphere.center; + var negRadius = - sphere.radius; + + for ( var i = 0; i < 6; i ++ ) { + + var distance = planes[ i ].distanceToPoint( center ); + + if ( distance < negRadius ) { + + return false; + + } + + } + + return true; + + }, + + intersectsBox: function () { + + var p1 = new Vector3(), + p2 = new Vector3(); + + return function intersectsBox( box ) { + + var planes = this.planes; + + for ( var i = 0; i < 6 ; i ++ ) { + + var plane = planes[ i ]; + + p1.x = plane.normal.x > 0 ? box.min.x : box.max.x; + p2.x = plane.normal.x > 0 ? box.max.x : box.min.x; + p1.y = plane.normal.y > 0 ? box.min.y : box.max.y; + p2.y = plane.normal.y > 0 ? box.max.y : box.min.y; + p1.z = plane.normal.z > 0 ? box.min.z : box.max.z; + p2.z = plane.normal.z > 0 ? box.max.z : box.min.z; + + var d1 = plane.distanceToPoint( p1 ); + var d2 = plane.distanceToPoint( p2 ); + + // if both outside plane, no intersection + + if ( d1 < 0 && d2 < 0 ) { + + return false; + + } + + } + + return true; + + }; + + }(), + + + containsPoint: function ( point ) { + + var planes = this.planes; + + for ( var i = 0; i < 6; i ++ ) { + + if ( planes[ i ].distanceToPoint( point ) < 0 ) { + + return false; + + } + + } + + return true; + + } + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLShadowMap( _renderer, _lights, _objects, capabilities ) { + + var _gl = _renderer.context, + _state = _renderer.state, + _frustum = new Frustum(), + _projScreenMatrix = new Matrix4(), + + _lightShadows = _lights.shadows, + + _shadowMapSize = new Vector2(), + _maxShadowMapSize = new Vector2( capabilities.maxTextureSize, capabilities.maxTextureSize ), + + _lookTarget = new Vector3(), + _lightPositionWorld = new Vector3(), + + _renderList = [], + + _MorphingFlag = 1, + _SkinningFlag = 2, + + _NumberOfMaterialVariants = ( _MorphingFlag | _SkinningFlag ) + 1, + + _depthMaterials = new Array( _NumberOfMaterialVariants ), + _distanceMaterials = new Array( _NumberOfMaterialVariants ), + + _materialCache = {}; + + var cubeDirections = [ + new Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ), + new Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 ) + ]; + + var cubeUps = [ + new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), + new Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ), new Vector3( 0, 0, - 1 ) + ]; + + var cube2DViewPorts = [ + new Vector4(), new Vector4(), new Vector4(), + new Vector4(), new Vector4(), new Vector4() + ]; + + // init + + var depthMaterialTemplate = new MeshDepthMaterial(); + depthMaterialTemplate.depthPacking = RGBADepthPacking; + depthMaterialTemplate.clipping = true; + + var distanceShader = ShaderLib[ "distanceRGBA" ]; + var distanceUniforms = UniformsUtils.clone( distanceShader.uniforms ); + + for ( var i = 0; i !== _NumberOfMaterialVariants; ++ i ) { + + var useMorphing = ( i & _MorphingFlag ) !== 0; + var useSkinning = ( i & _SkinningFlag ) !== 0; + + var depthMaterial = depthMaterialTemplate.clone(); + depthMaterial.morphTargets = useMorphing; + depthMaterial.skinning = useSkinning; + + _depthMaterials[ i ] = depthMaterial; + + var distanceMaterial = new ShaderMaterial( { + defines: { + 'USE_SHADOWMAP': '' + }, + uniforms: distanceUniforms, + vertexShader: distanceShader.vertexShader, + fragmentShader: distanceShader.fragmentShader, + morphTargets: useMorphing, + skinning: useSkinning, + clipping: true + } ); + + _distanceMaterials[ i ] = distanceMaterial; + + } + + // + + var scope = this; + + this.enabled = false; + + this.autoUpdate = true; + this.needsUpdate = false; + + this.type = PCFShadowMap; + + this.renderReverseSided = true; + this.renderSingleSided = true; + + this.render = function ( scene, camera ) { + + if ( scope.enabled === false ) return; + if ( scope.autoUpdate === false && scope.needsUpdate === false ) return; + + if ( _lightShadows.length === 0 ) return; + + // Set GL state for depth map. + _state.clearColor( 1, 1, 1, 1 ); + _state.disable( _gl.BLEND ); + _state.setDepthTest( true ); + _state.setScissorTest( false ); + + // render depth map + + var faceCount, isPointLight; + + for ( var i = 0, il = _lightShadows.length; i < il; i ++ ) { + + var light = _lightShadows[ i ]; + var shadow = light.shadow; + + if ( shadow === undefined ) { + + console.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' ); + continue; + + } + + var shadowCamera = shadow.camera; + + _shadowMapSize.copy( shadow.mapSize ); + _shadowMapSize.min( _maxShadowMapSize ); + + if ( (light && light.isPointLight) ) { + + faceCount = 6; + isPointLight = true; + + var vpWidth = _shadowMapSize.x; + var vpHeight = _shadowMapSize.y; + + // These viewports map a cube-map onto a 2D texture with the + // following orientation: + // + // xzXZ + // y Y + // + // X - Positive x direction + // x - Negative x direction + // Y - Positive y direction + // y - Negative y direction + // Z - Positive z direction + // z - Negative z direction + + // positive X + cube2DViewPorts[ 0 ].set( vpWidth * 2, vpHeight, vpWidth, vpHeight ); + // negative X + cube2DViewPorts[ 1 ].set( 0, vpHeight, vpWidth, vpHeight ); + // positive Z + cube2DViewPorts[ 2 ].set( vpWidth * 3, vpHeight, vpWidth, vpHeight ); + // negative Z + cube2DViewPorts[ 3 ].set( vpWidth, vpHeight, vpWidth, vpHeight ); + // positive Y + cube2DViewPorts[ 4 ].set( vpWidth * 3, 0, vpWidth, vpHeight ); + // negative Y + cube2DViewPorts[ 5 ].set( vpWidth, 0, vpWidth, vpHeight ); + + _shadowMapSize.x *= 4.0; + _shadowMapSize.y *= 2.0; + + } else { + + faceCount = 1; + isPointLight = false; + + } + + if ( shadow.map === null ) { + + var pars = { minFilter: NearestFilter, magFilter: NearestFilter, format: RGBAFormat }; + + shadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars ); + + shadowCamera.updateProjectionMatrix(); + + } + + if ( (shadow && shadow.isSpotLightShadow) ) { + + shadow.update( light ); + + } + + var shadowMap = shadow.map; + var shadowMatrix = shadow.matrix; + + _lightPositionWorld.setFromMatrixPosition( light.matrixWorld ); + shadowCamera.position.copy( _lightPositionWorld ); + + _renderer.setRenderTarget( shadowMap ); + _renderer.clear(); + + // render shadow map for each cube face (if omni-directional) or + // run a single pass if not + + for ( var face = 0; face < faceCount; face ++ ) { + + if ( isPointLight ) { + + _lookTarget.copy( shadowCamera.position ); + _lookTarget.add( cubeDirections[ face ] ); + shadowCamera.up.copy( cubeUps[ face ] ); + shadowCamera.lookAt( _lookTarget ); + + var vpDimensions = cube2DViewPorts[ face ]; + _state.viewport( vpDimensions ); + + } else { + + _lookTarget.setFromMatrixPosition( light.target.matrixWorld ); + shadowCamera.lookAt( _lookTarget ); + + } + + shadowCamera.updateMatrixWorld(); + shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld ); + + // compute shadow matrix + + shadowMatrix.set( + 0.5, 0.0, 0.0, 0.5, + 0.0, 0.5, 0.0, 0.5, + 0.0, 0.0, 0.5, 0.5, + 0.0, 0.0, 0.0, 1.0 + ); + + shadowMatrix.multiply( shadowCamera.projectionMatrix ); + shadowMatrix.multiply( shadowCamera.matrixWorldInverse ); + + // update camera matrices and frustum + + _projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse ); + _frustum.setFromMatrix( _projScreenMatrix ); + + // set object matrices & frustum culling + + _renderList.length = 0; + + projectObject( scene, camera, shadowCamera ); + + // render shadow map + // render regular objects + + for ( var j = 0, jl = _renderList.length; j < jl; j ++ ) { + + var object = _renderList[ j ]; + var geometry = _objects.update( object ); + var material = object.material; + + if ( (material && material.isMultiMaterial) ) { + + var groups = geometry.groups; + var materials = material.materials; + + for ( var k = 0, kl = groups.length; k < kl; k ++ ) { + + var group = groups[ k ]; + var groupMaterial = materials[ group.materialIndex ]; + + if ( groupMaterial.visible === true ) { + + var depthMaterial = getDepthMaterial( object, groupMaterial, isPointLight, _lightPositionWorld ); + _renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group ); + + } + + } + + } else { + + var depthMaterial = getDepthMaterial( object, material, isPointLight, _lightPositionWorld ); + _renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null ); + + } + + } + + } + + } + + // Restore GL state. + var clearColor = _renderer.getClearColor(), + clearAlpha = _renderer.getClearAlpha(); + _renderer.setClearColor( clearColor, clearAlpha ); + + scope.needsUpdate = false; + + }; + + function getDepthMaterial( object, material, isPointLight, lightPositionWorld ) { + + var geometry = object.geometry; + + var result = null; + + var materialVariants = _depthMaterials; + var customMaterial = object.customDepthMaterial; + + if ( isPointLight ) { + + materialVariants = _distanceMaterials; + customMaterial = object.customDistanceMaterial; + + } + + if ( ! customMaterial ) { + + var useMorphing = false; + + if ( material.morphTargets ) { + + if ( (geometry && geometry.isBufferGeometry) ) { + + useMorphing = geometry.morphAttributes && geometry.morphAttributes.position && geometry.morphAttributes.position.length > 0; + + } else if ( (geometry && geometry.isGeometry) ) { + + useMorphing = geometry.morphTargets && geometry.morphTargets.length > 0; + + } + + } + + var useSkinning = object.isSkinnedMesh && material.skinning; + + var variantIndex = 0; + + if ( useMorphing ) variantIndex |= _MorphingFlag; + if ( useSkinning ) variantIndex |= _SkinningFlag; + + result = materialVariants[ variantIndex ]; + + } else { + + result = customMaterial; + + } + + if ( _renderer.localClippingEnabled && + material.clipShadows === true && + material.clippingPlanes.length !== 0 ) { + + // in this case we need a unique material instance reflecting the + // appropriate state + + var keyA = result.uuid, keyB = material.uuid; + + var materialsForVariant = _materialCache[ keyA ]; + + if ( materialsForVariant === undefined ) { + + materialsForVariant = {}; + _materialCache[ keyA ] = materialsForVariant; + + } + + var cachedMaterial = materialsForVariant[ keyB ]; + + if ( cachedMaterial === undefined ) { + + cachedMaterial = result.clone(); + materialsForVariant[ keyB ] = cachedMaterial; + + } + + result = cachedMaterial; + + } + + result.visible = material.visible; + result.wireframe = material.wireframe; + + var side = material.side; + + if ( scope.renderSingleSided && side == DoubleSide ) { + + side = FrontSide; + + } + + if ( scope.renderReverseSided ) { + + if ( side === FrontSide ) side = BackSide; + else if ( side === BackSide ) side = FrontSide; + + } + + result.side = side; + + result.clipShadows = material.clipShadows; + result.clippingPlanes = material.clippingPlanes; + + result.wireframeLinewidth = material.wireframeLinewidth; + result.linewidth = material.linewidth; + + if ( isPointLight && result.uniforms.lightPos !== undefined ) { + + result.uniforms.lightPos.value.copy( lightPositionWorld ); + + } + + return result; + + } + + function projectObject( object, camera, shadowCamera ) { + + if ( object.visible === false ) return; + + var visible = ( object.layers.mask & camera.layers.mask ) !== 0; + + if ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) { + + if ( object.castShadow && ( object.frustumCulled === false || _frustum.intersectsObject( object ) === true ) ) { + + var material = object.material; + + if ( material.visible === true ) { + + object.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld ); + _renderList.push( object ); + + } + + } + + } + + var children = object.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + projectObject( children[ i ], camera, shadowCamera ); + + } + + } + + } + + /** + * @author bhouston / http://clara.io + */ + + function Ray( origin, direction ) { + + this.origin = ( origin !== undefined ) ? origin : new Vector3(); + this.direction = ( direction !== undefined ) ? direction : new Vector3(); + + } + + Ray.prototype = { + + constructor: Ray, + + set: function ( origin, direction ) { + + this.origin.copy( origin ); + this.direction.copy( direction ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( ray ) { + + this.origin.copy( ray.origin ); + this.direction.copy( ray.direction ); + + return this; + + }, + + at: function ( t, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + return result.copy( this.direction ).multiplyScalar( t ).add( this.origin ); + + }, + + lookAt: function ( v ) { + + this.direction.copy( v ).sub( this.origin ).normalize(); + + return this; + + }, + + recast: function () { + + var v1 = new Vector3(); + + return function recast( t ) { + + this.origin.copy( this.at( t, v1 ) ); + + return this; + + }; + + }(), + + closestPointToPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + result.subVectors( point, this.origin ); + var directionDistance = result.dot( this.direction ); + + if ( directionDistance < 0 ) { + + return result.copy( this.origin ); + + } + + return result.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); + + }, + + distanceToPoint: function ( point ) { + + return Math.sqrt( this.distanceSqToPoint( point ) ); + + }, + + distanceSqToPoint: function () { + + var v1 = new Vector3(); + + return function distanceSqToPoint( point ) { + + var directionDistance = v1.subVectors( point, this.origin ).dot( this.direction ); + + // point behind the ray + + if ( directionDistance < 0 ) { + + return this.origin.distanceToSquared( point ); + + } + + v1.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); + + return v1.distanceToSquared( point ); + + }; + + }(), + + distanceSqToSegment: function () { + + var segCenter = new Vector3(); + var segDir = new Vector3(); + var diff = new Vector3(); + + return function distanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) { + + // from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteDistRaySegment.h + // It returns the min distance between the ray and the segment + // defined by v0 and v1 + // It can also set two optional targets : + // - The closest point on the ray + // - The closest point on the segment + + segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 ); + segDir.copy( v1 ).sub( v0 ).normalize(); + diff.copy( this.origin ).sub( segCenter ); + + var segExtent = v0.distanceTo( v1 ) * 0.5; + var a01 = - this.direction.dot( segDir ); + var b0 = diff.dot( this.direction ); + var b1 = - diff.dot( segDir ); + var c = diff.lengthSq(); + var det = Math.abs( 1 - a01 * a01 ); + var s0, s1, sqrDist, extDet; + + if ( det > 0 ) { + + // The ray and segment are not parallel. + + s0 = a01 * b1 - b0; + s1 = a01 * b0 - b1; + extDet = segExtent * det; + + if ( s0 >= 0 ) { + + if ( s1 >= - extDet ) { + + if ( s1 <= extDet ) { + + // region 0 + // Minimum at interior points of ray and segment. + + var invDet = 1 / det; + s0 *= invDet; + s1 *= invDet; + sqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c; + + } else { + + // region 1 + + s1 = segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } else { + + // region 5 + + s1 = - segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } else { + + if ( s1 <= - extDet ) { + + // region 4 + + s0 = Math.max( 0, - ( - a01 * segExtent + b0 ) ); + s1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } else if ( s1 <= extDet ) { + + // region 3 + + s0 = 0; + s1 = Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = s1 * ( s1 + 2 * b1 ) + c; + + } else { + + // region 2 + + s0 = Math.max( 0, - ( a01 * segExtent + b0 ) ); + s1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } + + } else { + + // Ray and segment are parallel. + + s1 = ( a01 > 0 ) ? - segExtent : segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + if ( optionalPointOnRay ) { + + optionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin ); + + } + + if ( optionalPointOnSegment ) { + + optionalPointOnSegment.copy( segDir ).multiplyScalar( s1 ).add( segCenter ); + + } + + return sqrDist; + + }; + + }(), + + intersectSphere: function () { + + var v1 = new Vector3(); + + return function intersectSphere( sphere, optionalTarget ) { + + v1.subVectors( sphere.center, this.origin ); + var tca = v1.dot( this.direction ); + var d2 = v1.dot( v1 ) - tca * tca; + var radius2 = sphere.radius * sphere.radius; + + if ( d2 > radius2 ) return null; + + var thc = Math.sqrt( radius2 - d2 ); + + // t0 = first intersect point - entrance on front of sphere + var t0 = tca - thc; + + // t1 = second intersect point - exit point on back of sphere + var t1 = tca + thc; + + // test to see if both t0 and t1 are behind the ray - if so, return null + if ( t0 < 0 && t1 < 0 ) return null; + + // test to see if t0 is behind the ray: + // if it is, the ray is inside the sphere, so return the second exit point scaled by t1, + // in order to always return an intersect point that is in front of the ray. + if ( t0 < 0 ) return this.at( t1, optionalTarget ); + + // else t0 is in front of the ray, so return the first collision point scaled by t0 + return this.at( t0, optionalTarget ); + + }; + + }(), + + intersectsSphere: function ( sphere ) { + + return this.distanceToPoint( sphere.center ) <= sphere.radius; + + }, + + distanceToPlane: function ( plane ) { + + var denominator = plane.normal.dot( this.direction ); + + if ( denominator === 0 ) { + + // line is coplanar, return origin + if ( plane.distanceToPoint( this.origin ) === 0 ) { + + return 0; + + } + + // Null is preferable to undefined since undefined means.... it is undefined + + return null; + + } + + var t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator; + + // Return if the ray never intersects the plane + + return t >= 0 ? t : null; + + }, + + intersectPlane: function ( plane, optionalTarget ) { + + var t = this.distanceToPlane( plane ); + + if ( t === null ) { + + return null; + + } + + return this.at( t, optionalTarget ); + + }, + + + + intersectsPlane: function ( plane ) { + + // check if the ray lies on the plane first + + var distToPoint = plane.distanceToPoint( this.origin ); + + if ( distToPoint === 0 ) { + + return true; + + } + + var denominator = plane.normal.dot( this.direction ); + + if ( denominator * distToPoint < 0 ) { + + return true; + + } + + // ray origin is behind the plane (and is pointing behind it) + + return false; + + }, + + intersectBox: function ( box, optionalTarget ) { + + var tmin, tmax, tymin, tymax, tzmin, tzmax; + + var invdirx = 1 / this.direction.x, + invdiry = 1 / this.direction.y, + invdirz = 1 / this.direction.z; + + var origin = this.origin; + + if ( invdirx >= 0 ) { + + tmin = ( box.min.x - origin.x ) * invdirx; + tmax = ( box.max.x - origin.x ) * invdirx; + + } else { + + tmin = ( box.max.x - origin.x ) * invdirx; + tmax = ( box.min.x - origin.x ) * invdirx; + + } + + if ( invdiry >= 0 ) { + + tymin = ( box.min.y - origin.y ) * invdiry; + tymax = ( box.max.y - origin.y ) * invdiry; + + } else { + + tymin = ( box.max.y - origin.y ) * invdiry; + tymax = ( box.min.y - origin.y ) * invdiry; + + } + + if ( ( tmin > tymax ) || ( tymin > tmax ) ) return null; + + // These lines also handle the case where tmin or tmax is NaN + // (result of 0 * Infinity). x !== x returns true if x is NaN + + if ( tymin > tmin || tmin !== tmin ) tmin = tymin; + + if ( tymax < tmax || tmax !== tmax ) tmax = tymax; + + if ( invdirz >= 0 ) { + + tzmin = ( box.min.z - origin.z ) * invdirz; + tzmax = ( box.max.z - origin.z ) * invdirz; + + } else { + + tzmin = ( box.max.z - origin.z ) * invdirz; + tzmax = ( box.min.z - origin.z ) * invdirz; + + } + + if ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null; + + if ( tzmin > tmin || tmin !== tmin ) tmin = tzmin; + + if ( tzmax < tmax || tmax !== tmax ) tmax = tzmax; + + //return point closest to the ray (positive side) + + if ( tmax < 0 ) return null; + + return this.at( tmin >= 0 ? tmin : tmax, optionalTarget ); + + }, + + intersectsBox: ( function () { + + var v = new Vector3(); + + return function intersectsBox( box ) { + + return this.intersectBox( box, v ) !== null; + + }; + + } )(), + + intersectTriangle: function () { + + // Compute the offset origin, edges, and normal. + var diff = new Vector3(); + var edge1 = new Vector3(); + var edge2 = new Vector3(); + var normal = new Vector3(); + + return function intersectTriangle( a, b, c, backfaceCulling, optionalTarget ) { + + // from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h + + edge1.subVectors( b, a ); + edge2.subVectors( c, a ); + normal.crossVectors( edge1, edge2 ); + + // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction, + // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by + // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2)) + // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q)) + // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N) + var DdN = this.direction.dot( normal ); + var sign; + + if ( DdN > 0 ) { + + if ( backfaceCulling ) return null; + sign = 1; + + } else if ( DdN < 0 ) { + + sign = - 1; + DdN = - DdN; + + } else { + + return null; + + } + + diff.subVectors( this.origin, a ); + var DdQxE2 = sign * this.direction.dot( edge2.crossVectors( diff, edge2 ) ); + + // b1 < 0, no intersection + if ( DdQxE2 < 0 ) { + + return null; + + } + + var DdE1xQ = sign * this.direction.dot( edge1.cross( diff ) ); + + // b2 < 0, no intersection + if ( DdE1xQ < 0 ) { + + return null; + + } + + // b1+b2 > 1, no intersection + if ( DdQxE2 + DdE1xQ > DdN ) { + + return null; + + } + + // Line intersects triangle, check if ray does. + var QdN = - sign * diff.dot( normal ); + + // t < 0, no intersection + if ( QdN < 0 ) { + + return null; + + } + + // Ray intersects triangle. + return this.at( QdN / DdN, optionalTarget ); + + }; + + }(), + + applyMatrix4: function ( matrix4 ) { + + this.direction.add( this.origin ).applyMatrix4( matrix4 ); + this.origin.applyMatrix4( matrix4 ); + this.direction.sub( this.origin ); + this.direction.normalize(); + + return this; + + }, + + equals: function ( ray ) { + + return ray.origin.equals( this.origin ) && ray.direction.equals( this.direction ); + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://clara.io + */ + + function Euler( x, y, z, order ) { + + this._x = x || 0; + this._y = y || 0; + this._z = z || 0; + this._order = order || Euler.DefaultOrder; + + } + + Euler.RotationOrders = [ 'XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX' ]; + + Euler.DefaultOrder = 'XYZ'; + + Euler.prototype = { + + constructor: Euler, + + isEuler: true, + + get x () { + + return this._x; + + }, + + set x ( value ) { + + this._x = value; + this.onChangeCallback(); + + }, + + get y () { + + return this._y; + + }, + + set y ( value ) { + + this._y = value; + this.onChangeCallback(); + + }, + + get z () { + + return this._z; + + }, + + set z ( value ) { + + this._z = value; + this.onChangeCallback(); + + }, + + get order () { + + return this._order; + + }, + + set order ( value ) { + + this._order = value; + this.onChangeCallback(); + + }, + + set: function ( x, y, z, order ) { + + this._x = x; + this._y = y; + this._z = z; + this._order = order || this._order; + + this.onChangeCallback(); + + return this; + + }, + + clone: function () { + + return new this.constructor( this._x, this._y, this._z, this._order ); + + }, + + copy: function ( euler ) { + + this._x = euler._x; + this._y = euler._y; + this._z = euler._z; + this._order = euler._order; + + this.onChangeCallback(); + + return this; + + }, + + setFromRotationMatrix: function ( m, order, update ) { + + var clamp = _Math.clamp; + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var te = m.elements; + var m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ]; + var m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ]; + var m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ]; + + order = order || this._order; + + if ( order === 'XYZ' ) { + + this._y = Math.asin( clamp( m13, - 1, 1 ) ); + + if ( Math.abs( m13 ) < 0.99999 ) { + + this._x = Math.atan2( - m23, m33 ); + this._z = Math.atan2( - m12, m11 ); + + } else { + + this._x = Math.atan2( m32, m22 ); + this._z = 0; + + } + + } else if ( order === 'YXZ' ) { + + this._x = Math.asin( - clamp( m23, - 1, 1 ) ); + + if ( Math.abs( m23 ) < 0.99999 ) { + + this._y = Math.atan2( m13, m33 ); + this._z = Math.atan2( m21, m22 ); + + } else { + + this._y = Math.atan2( - m31, m11 ); + this._z = 0; + + } + + } else if ( order === 'ZXY' ) { + + this._x = Math.asin( clamp( m32, - 1, 1 ) ); + + if ( Math.abs( m32 ) < 0.99999 ) { + + this._y = Math.atan2( - m31, m33 ); + this._z = Math.atan2( - m12, m22 ); + + } else { + + this._y = 0; + this._z = Math.atan2( m21, m11 ); + + } + + } else if ( order === 'ZYX' ) { + + this._y = Math.asin( - clamp( m31, - 1, 1 ) ); + + if ( Math.abs( m31 ) < 0.99999 ) { + + this._x = Math.atan2( m32, m33 ); + this._z = Math.atan2( m21, m11 ); + + } else { + + this._x = 0; + this._z = Math.atan2( - m12, m22 ); + + } + + } else if ( order === 'YZX' ) { + + this._z = Math.asin( clamp( m21, - 1, 1 ) ); + + if ( Math.abs( m21 ) < 0.99999 ) { + + this._x = Math.atan2( - m23, m22 ); + this._y = Math.atan2( - m31, m11 ); + + } else { + + this._x = 0; + this._y = Math.atan2( m13, m33 ); + + } + + } else if ( order === 'XZY' ) { + + this._z = Math.asin( - clamp( m12, - 1, 1 ) ); + + if ( Math.abs( m12 ) < 0.99999 ) { + + this._x = Math.atan2( m32, m22 ); + this._y = Math.atan2( m13, m11 ); + + } else { + + this._x = Math.atan2( - m23, m33 ); + this._y = 0; + + } + + } else { + + console.warn( 'THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + order ); + + } + + this._order = order; + + if ( update !== false ) this.onChangeCallback(); + + return this; + + }, + + setFromQuaternion: function () { + + var matrix; + + return function setFromQuaternion( q, order, update ) { + + if ( matrix === undefined ) matrix = new Matrix4(); + + matrix.makeRotationFromQuaternion( q ); + + return this.setFromRotationMatrix( matrix, order, update ); + + }; + + }(), + + setFromVector3: function ( v, order ) { + + return this.set( v.x, v.y, v.z, order || this._order ); + + }, + + reorder: function () { + + // WARNING: this discards revolution information -bhouston + + var q = new Quaternion(); + + return function reorder( newOrder ) { + + q.setFromEuler( this ); + + return this.setFromQuaternion( q, newOrder ); + + }; + + }(), + + equals: function ( euler ) { + + return ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order ); + + }, + + fromArray: function ( array ) { + + this._x = array[ 0 ]; + this._y = array[ 1 ]; + this._z = array[ 2 ]; + if ( array[ 3 ] !== undefined ) this._order = array[ 3 ]; + + this.onChangeCallback(); + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this._x; + array[ offset + 1 ] = this._y; + array[ offset + 2 ] = this._z; + array[ offset + 3 ] = this._order; + + return array; + + }, + + toVector3: function ( optionalResult ) { + + if ( optionalResult ) { + + return optionalResult.set( this._x, this._y, this._z ); + + } else { + + return new Vector3( this._x, this._y, this._z ); + + } + + }, + + onChange: function ( callback ) { + + this.onChangeCallback = callback; + + return this; + + }, + + onChangeCallback: function () {} + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Layers() { + + this.mask = 1; + + } + + Layers.prototype = { + + constructor: Layers, + + set: function ( channel ) { + + this.mask = 1 << channel; + + }, + + enable: function ( channel ) { + + this.mask |= 1 << channel; + + }, + + toggle: function ( channel ) { + + this.mask ^= 1 << channel; + + }, + + disable: function ( channel ) { + + this.mask &= ~ ( 1 << channel ); + + }, + + test: function ( layers ) { + + return ( this.mask & layers.mask ) !== 0; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author elephantatwork / www.elephantatwork.ch + */ + + function Object3D() { + + Object.defineProperty( this, 'id', { value: Object3DIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.type = 'Object3D'; + + this.parent = null; + this.children = []; + + this.up = Object3D.DefaultUp.clone(); + + var position = new Vector3(); + var rotation = new Euler(); + var quaternion = new Quaternion(); + var scale = new Vector3( 1, 1, 1 ); + + function onRotationChange() { + + quaternion.setFromEuler( rotation, false ); + + } + + function onQuaternionChange() { + + rotation.setFromQuaternion( quaternion, undefined, false ); + + } + + rotation.onChange( onRotationChange ); + quaternion.onChange( onQuaternionChange ); + + Object.defineProperties( this, { + position: { + enumerable: true, + value: position + }, + rotation: { + enumerable: true, + value: rotation + }, + quaternion: { + enumerable: true, + value: quaternion + }, + scale: { + enumerable: true, + value: scale + }, + modelViewMatrix: { + value: new Matrix4() + }, + normalMatrix: { + value: new Matrix3() + } + } ); + + this.matrix = new Matrix4(); + this.matrixWorld = new Matrix4(); + + this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate; + this.matrixWorldNeedsUpdate = false; + + this.layers = new Layers(); + this.visible = true; + + this.castShadow = false; + this.receiveShadow = false; + + this.frustumCulled = true; + this.renderOrder = 0; + + this.userData = {}; + + this.onBeforeRender = function(){}; + this.onAfterRender = function(){}; + + } + + Object3D.DefaultUp = new Vector3( 0, 1, 0 ); + Object3D.DefaultMatrixAutoUpdate = true; + + Object.assign( Object3D.prototype, EventDispatcher.prototype, { + + isObject3D: true, + + applyMatrix: function ( matrix ) { + + this.matrix.multiplyMatrices( matrix, this.matrix ); + + this.matrix.decompose( this.position, this.quaternion, this.scale ); + + }, + + setRotationFromAxisAngle: function ( axis, angle ) { + + // assumes axis is normalized + + this.quaternion.setFromAxisAngle( axis, angle ); + + }, + + setRotationFromEuler: function ( euler ) { + + this.quaternion.setFromEuler( euler, true ); + + }, + + setRotationFromMatrix: function ( m ) { + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + this.quaternion.setFromRotationMatrix( m ); + + }, + + setRotationFromQuaternion: function ( q ) { + + // assumes q is normalized + + this.quaternion.copy( q ); + + }, + + rotateOnAxis: function () { + + // rotate object on axis in object space + // axis is assumed to be normalized + + var q1 = new Quaternion(); + + return function rotateOnAxis( axis, angle ) { + + q1.setFromAxisAngle( axis, angle ); + + this.quaternion.multiply( q1 ); + + return this; + + }; + + }(), + + rotateX: function () { + + var v1 = new Vector3( 1, 0, 0 ); + + return function rotateX( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + rotateY: function () { + + var v1 = new Vector3( 0, 1, 0 ); + + return function rotateY( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + rotateZ: function () { + + var v1 = new Vector3( 0, 0, 1 ); + + return function rotateZ( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + translateOnAxis: function () { + + // translate object by distance along axis in object space + // axis is assumed to be normalized + + var v1 = new Vector3(); + + return function translateOnAxis( axis, distance ) { + + v1.copy( axis ).applyQuaternion( this.quaternion ); + + this.position.add( v1.multiplyScalar( distance ) ); + + return this; + + }; + + }(), + + translateX: function () { + + var v1 = new Vector3( 1, 0, 0 ); + + return function translateX( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + translateY: function () { + + var v1 = new Vector3( 0, 1, 0 ); + + return function translateY( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + translateZ: function () { + + var v1 = new Vector3( 0, 0, 1 ); + + return function translateZ( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + localToWorld: function ( vector ) { + + return vector.applyMatrix4( this.matrixWorld ); + + }, + + worldToLocal: function () { + + var m1 = new Matrix4(); + + return function worldToLocal( vector ) { + + return vector.applyMatrix4( m1.getInverse( this.matrixWorld ) ); + + }; + + }(), + + lookAt: function () { + + // This routine does not support objects with rotated and/or translated parent(s) + + var m1 = new Matrix4(); + + return function lookAt( vector ) { + + m1.lookAt( vector, this.position, this.up ); + + this.quaternion.setFromRotationMatrix( m1 ); + + }; + + }(), + + add: function ( object ) { + + if ( arguments.length > 1 ) { + + for ( var i = 0; i < arguments.length; i ++ ) { + + this.add( arguments[ i ] ); + + } + + return this; + + } + + if ( object === this ) { + + console.error( "THREE.Object3D.add: object can't be added as a child of itself.", object ); + return this; + + } + + if ( (object && object.isObject3D) ) { + + if ( object.parent !== null ) { + + object.parent.remove( object ); + + } + + object.parent = this; + object.dispatchEvent( { type: 'added' } ); + + this.children.push( object ); + + } else { + + console.error( "THREE.Object3D.add: object not an instance of THREE.Object3D.", object ); + + } + + return this; + + }, + + remove: function ( object ) { + + if ( arguments.length > 1 ) { + + for ( var i = 0; i < arguments.length; i ++ ) { + + this.remove( arguments[ i ] ); + + } + + } + + var index = this.children.indexOf( object ); + + if ( index !== - 1 ) { + + object.parent = null; + + object.dispatchEvent( { type: 'removed' } ); + + this.children.splice( index, 1 ); + + } + + }, + + getObjectById: function ( id ) { + + return this.getObjectByProperty( 'id', id ); + + }, + + getObjectByName: function ( name ) { + + return this.getObjectByProperty( 'name', name ); + + }, + + getObjectByProperty: function ( name, value ) { + + if ( this[ name ] === value ) return this; + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + var child = this.children[ i ]; + var object = child.getObjectByProperty( name, value ); + + if ( object !== undefined ) { + + return object; + + } + + } + + return undefined; + + }, + + getWorldPosition: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + this.updateMatrixWorld( true ); + + return result.setFromMatrixPosition( this.matrixWorld ); + + }, + + getWorldQuaternion: function () { + + var position = new Vector3(); + var scale = new Vector3(); + + return function getWorldQuaternion( optionalTarget ) { + + var result = optionalTarget || new Quaternion(); + + this.updateMatrixWorld( true ); + + this.matrixWorld.decompose( position, result, scale ); + + return result; + + }; + + }(), + + getWorldRotation: function () { + + var quaternion = new Quaternion(); + + return function getWorldRotation( optionalTarget ) { + + var result = optionalTarget || new Euler(); + + this.getWorldQuaternion( quaternion ); + + return result.setFromQuaternion( quaternion, this.rotation.order, false ); + + }; + + }(), + + getWorldScale: function () { + + var position = new Vector3(); + var quaternion = new Quaternion(); + + return function getWorldScale( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + this.updateMatrixWorld( true ); + + this.matrixWorld.decompose( position, quaternion, result ); + + return result; + + }; + + }(), + + getWorldDirection: function () { + + var quaternion = new Quaternion(); + + return function getWorldDirection( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + this.getWorldQuaternion( quaternion ); + + return result.set( 0, 0, 1 ).applyQuaternion( quaternion ); + + }; + + }(), + + raycast: function () {}, + + traverse: function ( callback ) { + + callback( this ); + + var children = this.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + children[ i ].traverse( callback ); + + } + + }, + + traverseVisible: function ( callback ) { + + if ( this.visible === false ) return; + + callback( this ); + + var children = this.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + children[ i ].traverseVisible( callback ); + + } + + }, + + traverseAncestors: function ( callback ) { + + var parent = this.parent; + + if ( parent !== null ) { + + callback( parent ); + + parent.traverseAncestors( callback ); + + } + + }, + + updateMatrix: function () { + + this.matrix.compose( this.position, this.quaternion, this.scale ); + + this.matrixWorldNeedsUpdate = true; + + }, + + updateMatrixWorld: function ( force ) { + + if ( this.matrixAutoUpdate === true ) this.updateMatrix(); + + if ( this.matrixWorldNeedsUpdate === true || force === true ) { + + if ( this.parent === null ) { + + this.matrixWorld.copy( this.matrix ); + + } else { + + this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix ); + + } + + this.matrixWorldNeedsUpdate = false; + + force = true; + + } + + // update children + + var children = this.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + children[ i ].updateMatrixWorld( force ); + + } + + }, + + toJSON: function ( meta ) { + + // meta is '' when called from JSON.stringify + var isRootObject = ( meta === undefined || meta === '' ); + + var output = {}; + + // meta is a hash used to collect geometries, materials. + // not providing it implies that this is the root object + // being serialized. + if ( isRootObject ) { + + // initialize meta obj + meta = { + geometries: {}, + materials: {}, + textures: {}, + images: {} + }; + + output.metadata = { + version: 4.4, + type: 'Object', + generator: 'Object3D.toJSON' + }; + + } + + // standard Object3D serialization + + var object = {}; + + object.uuid = this.uuid; + object.type = this.type; + + if ( this.name !== '' ) object.name = this.name; + if ( JSON.stringify( this.userData ) !== '{}' ) object.userData = this.userData; + if ( this.castShadow === true ) object.castShadow = true; + if ( this.receiveShadow === true ) object.receiveShadow = true; + if ( this.visible === false ) object.visible = false; + + object.matrix = this.matrix.toArray(); + + // + + if ( this.geometry !== undefined ) { + + if ( meta.geometries[ this.geometry.uuid ] === undefined ) { + + meta.geometries[ this.geometry.uuid ] = this.geometry.toJSON( meta ); + + } + + object.geometry = this.geometry.uuid; + + } + + if ( this.material !== undefined ) { + + if ( meta.materials[ this.material.uuid ] === undefined ) { + + meta.materials[ this.material.uuid ] = this.material.toJSON( meta ); + + } + + object.material = this.material.uuid; + + } + + // + + if ( this.children.length > 0 ) { + + object.children = []; + + for ( var i = 0; i < this.children.length; i ++ ) { + + object.children.push( this.children[ i ].toJSON( meta ).object ); + + } + + } + + if ( isRootObject ) { + + var geometries = extractFromCache( meta.geometries ); + var materials = extractFromCache( meta.materials ); + var textures = extractFromCache( meta.textures ); + var images = extractFromCache( meta.images ); + + if ( geometries.length > 0 ) output.geometries = geometries; + if ( materials.length > 0 ) output.materials = materials; + if ( textures.length > 0 ) output.textures = textures; + if ( images.length > 0 ) output.images = images; + + } + + output.object = object; + + return output; + + // extract data from the cache hash + // remove metadata on each item + // and return as array + function extractFromCache( cache ) { + + var values = []; + for ( var key in cache ) { + + var data = cache[ key ]; + delete data.metadata; + values.push( data ); + + } + return values; + + } + + }, + + clone: function ( recursive ) { + + return new this.constructor().copy( this, recursive ); + + }, + + copy: function ( source, recursive ) { + + if ( recursive === undefined ) recursive = true; + + this.name = source.name; + + this.up.copy( source.up ); + + this.position.copy( source.position ); + this.quaternion.copy( source.quaternion ); + this.scale.copy( source.scale ); + + this.matrix.copy( source.matrix ); + this.matrixWorld.copy( source.matrixWorld ); + + this.matrixAutoUpdate = source.matrixAutoUpdate; + this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate; + + this.visible = source.visible; + + this.castShadow = source.castShadow; + this.receiveShadow = source.receiveShadow; + + this.frustumCulled = source.frustumCulled; + this.renderOrder = source.renderOrder; + + this.userData = JSON.parse( JSON.stringify( source.userData ) ); + + if ( recursive === true ) { + + for ( var i = 0; i < source.children.length; i ++ ) { + + var child = source.children[ i ]; + this.add( child.clone() ); + + } + + } + + return this; + + } + + } ); + + var count$2 = 0; + function Object3DIdCount() { return count$2++; } + + /** + * @author bhouston / http://clara.io + */ + + function Line3( start, end ) { + + this.start = ( start !== undefined ) ? start : new Vector3(); + this.end = ( end !== undefined ) ? end : new Vector3(); + + } + + Line3.prototype = { + + constructor: Line3, + + set: function ( start, end ) { + + this.start.copy( start ); + this.end.copy( end ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( line ) { + + this.start.copy( line.start ); + this.end.copy( line.end ); + + return this; + + }, + + getCenter: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return result.addVectors( this.start, this.end ).multiplyScalar( 0.5 ); + + }, + + delta: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return result.subVectors( this.end, this.start ); + + }, + + distanceSq: function () { + + return this.start.distanceToSquared( this.end ); + + }, + + distance: function () { + + return this.start.distanceTo( this.end ); + + }, + + at: function ( t, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + return this.delta( result ).multiplyScalar( t ).add( this.start ); + + }, + + closestPointToPointParameter: function () { + + var startP = new Vector3(); + var startEnd = new Vector3(); + + return function closestPointToPointParameter( point, clampToLine ) { + + startP.subVectors( point, this.start ); + startEnd.subVectors( this.end, this.start ); + + var startEnd2 = startEnd.dot( startEnd ); + var startEnd_startP = startEnd.dot( startP ); + + var t = startEnd_startP / startEnd2; + + if ( clampToLine ) { + + t = _Math.clamp( t, 0, 1 ); + + } + + return t; + + }; + + }(), + + closestPointToPoint: function ( point, clampToLine, optionalTarget ) { + + var t = this.closestPointToPointParameter( point, clampToLine ); + + var result = optionalTarget || new Vector3(); + + return this.delta( result ).multiplyScalar( t ).add( this.start ); + + }, + + applyMatrix4: function ( matrix ) { + + this.start.applyMatrix4( matrix ); + this.end.applyMatrix4( matrix ); + + return this; + + }, + + equals: function ( line ) { + + return line.start.equals( this.start ) && line.end.equals( this.end ); + + } + + }; + + /** + * @author bhouston / http://clara.io + * @author mrdoob / http://mrdoob.com/ + */ + + function Triangle( a, b, c ) { + + this.a = ( a !== undefined ) ? a : new Vector3(); + this.b = ( b !== undefined ) ? b : new Vector3(); + this.c = ( c !== undefined ) ? c : new Vector3(); + + } + + Triangle.normal = function () { + + var v0 = new Vector3(); + + return function normal( a, b, c, optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + result.subVectors( c, b ); + v0.subVectors( a, b ); + result.cross( v0 ); + + var resultLengthSq = result.lengthSq(); + if ( resultLengthSq > 0 ) { + + return result.multiplyScalar( 1 / Math.sqrt( resultLengthSq ) ); + + } + + return result.set( 0, 0, 0 ); + + }; + + }(); + + // static/instance method to calculate barycentric coordinates + // based on: http://www.blackpawn.com/texts/pointinpoly/default.html + Triangle.barycoordFromPoint = function () { + + var v0 = new Vector3(); + var v1 = new Vector3(); + var v2 = new Vector3(); + + return function barycoordFromPoint( point, a, b, c, optionalTarget ) { + + v0.subVectors( c, a ); + v1.subVectors( b, a ); + v2.subVectors( point, a ); + + var dot00 = v0.dot( v0 ); + var dot01 = v0.dot( v1 ); + var dot02 = v0.dot( v2 ); + var dot11 = v1.dot( v1 ); + var dot12 = v1.dot( v2 ); + + var denom = ( dot00 * dot11 - dot01 * dot01 ); + + var result = optionalTarget || new Vector3(); + + // collinear or singular triangle + if ( denom === 0 ) { + + // arbitrary location outside of triangle? + // not sure if this is the best idea, maybe should be returning undefined + return result.set( - 2, - 1, - 1 ); + + } + + var invDenom = 1 / denom; + var u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom; + var v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom; + + // barycentric coordinates must always sum to 1 + return result.set( 1 - u - v, v, u ); + + }; + + }(); + + Triangle.containsPoint = function () { + + var v1 = new Vector3(); + + return function containsPoint( point, a, b, c ) { + + var result = Triangle.barycoordFromPoint( point, a, b, c, v1 ); + + return ( result.x >= 0 ) && ( result.y >= 0 ) && ( ( result.x + result.y ) <= 1 ); + + }; + + }(); + + Triangle.prototype = { + + constructor: Triangle, + + set: function ( a, b, c ) { + + this.a.copy( a ); + this.b.copy( b ); + this.c.copy( c ); + + return this; + + }, + + setFromPointsAndIndices: function ( points, i0, i1, i2 ) { + + this.a.copy( points[ i0 ] ); + this.b.copy( points[ i1 ] ); + this.c.copy( points[ i2 ] ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( triangle ) { + + this.a.copy( triangle.a ); + this.b.copy( triangle.b ); + this.c.copy( triangle.c ); + + return this; + + }, + + area: function () { + + var v0 = new Vector3(); + var v1 = new Vector3(); + + return function area() { + + v0.subVectors( this.c, this.b ); + v1.subVectors( this.a, this.b ); + + return v0.cross( v1 ).length() * 0.5; + + }; + + }(), + + midpoint: function ( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + return result.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 ); + + }, + + normal: function ( optionalTarget ) { + + return Triangle.normal( this.a, this.b, this.c, optionalTarget ); + + }, + + plane: function ( optionalTarget ) { + + var result = optionalTarget || new Plane(); + + return result.setFromCoplanarPoints( this.a, this.b, this.c ); + + }, + + barycoordFromPoint: function ( point, optionalTarget ) { + + return Triangle.barycoordFromPoint( point, this.a, this.b, this.c, optionalTarget ); + + }, + + containsPoint: function ( point ) { + + return Triangle.containsPoint( point, this.a, this.b, this.c ); + + }, + + closestPointToPoint: function () { + + var plane, edgeList, projectedPoint, closestPoint; + + return function closestPointToPoint( point, optionalTarget ) { + + if ( plane === undefined ) { + + plane = new Plane(); + edgeList = [ new Line3(), new Line3(), new Line3() ]; + projectedPoint = new Vector3(); + closestPoint = new Vector3(); + + } + + var result = optionalTarget || new Vector3(); + var minDistance = Infinity; + + // project the point onto the plane of the triangle + + plane.setFromCoplanarPoints( this.a, this.b, this.c ); + plane.projectPoint( point, projectedPoint ); + + // check if the projection lies within the triangle + + if( this.containsPoint( projectedPoint ) === true ) { + + // if so, this is the closest point + + result.copy( projectedPoint ); + + } else { + + // if not, the point falls outside the triangle. the result is the closest point to the triangle's edges or vertices + + edgeList[ 0 ].set( this.a, this.b ); + edgeList[ 1 ].set( this.b, this.c ); + edgeList[ 2 ].set( this.c, this.a ); + + for( var i = 0; i < edgeList.length; i ++ ) { + + edgeList[ i ].closestPointToPoint( projectedPoint, true, closestPoint ); + + var distance = projectedPoint.distanceToSquared( closestPoint ); + + if( distance < minDistance ) { + + minDistance = distance; + + result.copy( closestPoint ); + + } + + } + + } + + return result; + + }; + + }(), + + equals: function ( triangle ) { + + return triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c ); + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Face3( a, b, c, normal, color, materialIndex ) { + + this.a = a; + this.b = b; + this.c = c; + + this.normal = (normal && normal.isVector3) ? normal : new Vector3(); + this.vertexNormals = Array.isArray( normal ) ? normal : []; + + this.color = (color && color.isColor) ? color : new Color(); + this.vertexColors = Array.isArray( color ) ? color : []; + + this.materialIndex = materialIndex !== undefined ? materialIndex : 0; + + } + + Face3.prototype = { + + constructor: Face3, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( source ) { + + this.a = source.a; + this.b = source.b; + this.c = source.c; + + this.normal.copy( source.normal ); + this.color.copy( source.color ); + + this.materialIndex = source.materialIndex; + + for ( var i = 0, il = source.vertexNormals.length; i < il; i ++ ) { + + this.vertexNormals[ i ] = source.vertexNormals[ i ].clone(); + + } + + for ( var i = 0, il = source.vertexColors.length; i < il; i ++ ) { + + this.vertexColors[ i ] = source.vertexColors[ i ].clone(); + + } + + return this; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * aoMap: new THREE.Texture( ), + * aoMapIntensity: + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * shading: THREE.SmoothShading, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: , + * + * skinning: , + * morphTargets: + * } + */ + + function MeshBasicMaterial( parameters ) { + + Material.call( this ); + + this.type = 'MeshBasicMaterial'; + + this.color = new Color( 0xffffff ); // emissive + + this.map = null; + + this.aoMap = null; + this.aoMapIntensity = 1.0; + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.skinning = false; + this.morphTargets = false; + + this.lights = false; + + this.setValues( parameters ); + + } + + MeshBasicMaterial.prototype = Object.create( Material.prototype ); + MeshBasicMaterial.prototype.constructor = MeshBasicMaterial; + + MeshBasicMaterial.prototype.isMeshBasicMaterial = true; + + MeshBasicMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + + this.map = source.map; + + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + + this.specularMap = source.specularMap; + + this.alphaMap = source.alphaMap; + + this.envMap = source.envMap; + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + + this.skinning = source.skinning; + this.morphTargets = source.morphTargets; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function BufferAttribute( array, itemSize, normalized ) { + + if ( Array.isArray( array ) ) { + + throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); + + } + + this.uuid = _Math.generateUUID(); + + this.array = array; + this.itemSize = itemSize; + this.count = array !== undefined ? array.length / itemSize : 0; + this.normalized = normalized === true; + + this.dynamic = false; + this.updateRange = { offset: 0, count: - 1 }; + + this.version = 0; + + } + + BufferAttribute.prototype = { + + constructor: BufferAttribute, + + isBufferAttribute: true, + + set needsUpdate( value ) { + + if ( value === true ) this.version ++; + + }, + + setArray: function ( array ) { + + if ( Array.isArray( array ) ) { + + throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); + + } + + this.count = array !== undefined ? array.length / this.itemSize : 0; + this.array = array; + + }, + + setDynamic: function ( value ) { + + this.dynamic = value; + + return this; + + }, + + copy: function ( source ) { + + this.array = new source.array.constructor( source.array ); + this.itemSize = source.itemSize; + this.count = source.count; + this.normalized = source.normalized; + + this.dynamic = source.dynamic; + + return this; + + }, + + copyAt: function ( index1, attribute, index2 ) { + + index1 *= this.itemSize; + index2 *= attribute.itemSize; + + for ( var i = 0, l = this.itemSize; i < l; i ++ ) { + + this.array[ index1 + i ] = attribute.array[ index2 + i ]; + + } + + return this; + + }, + + copyArray: function ( array ) { + + this.array.set( array ); + + return this; + + }, + + copyColorsArray: function ( colors ) { + + var array = this.array, offset = 0; + + for ( var i = 0, l = colors.length; i < l; i ++ ) { + + var color = colors[ i ]; + + if ( color === undefined ) { + + console.warn( 'THREE.BufferAttribute.copyColorsArray(): color is undefined', i ); + color = new Color(); + + } + + array[ offset ++ ] = color.r; + array[ offset ++ ] = color.g; + array[ offset ++ ] = color.b; + + } + + return this; + + }, + + copyIndicesArray: function ( indices ) { + + var array = this.array, offset = 0; + + for ( var i = 0, l = indices.length; i < l; i ++ ) { + + var index = indices[ i ]; + + array[ offset ++ ] = index.a; + array[ offset ++ ] = index.b; + array[ offset ++ ] = index.c; + + } + + return this; + + }, + + copyVector2sArray: function ( vectors ) { + + var array = this.array, offset = 0; + + for ( var i = 0, l = vectors.length; i < l; i ++ ) { + + var vector = vectors[ i ]; + + if ( vector === undefined ) { + + console.warn( 'THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i ); + vector = new Vector2(); + + } + + array[ offset ++ ] = vector.x; + array[ offset ++ ] = vector.y; + + } + + return this; + + }, + + copyVector3sArray: function ( vectors ) { + + var array = this.array, offset = 0; + + for ( var i = 0, l = vectors.length; i < l; i ++ ) { + + var vector = vectors[ i ]; + + if ( vector === undefined ) { + + console.warn( 'THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i ); + vector = new Vector3(); + + } + + array[ offset ++ ] = vector.x; + array[ offset ++ ] = vector.y; + array[ offset ++ ] = vector.z; + + } + + return this; + + }, + + copyVector4sArray: function ( vectors ) { + + var array = this.array, offset = 0; + + for ( var i = 0, l = vectors.length; i < l; i ++ ) { + + var vector = vectors[ i ]; + + if ( vector === undefined ) { + + console.warn( 'THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i ); + vector = new Vector4(); + + } + + array[ offset ++ ] = vector.x; + array[ offset ++ ] = vector.y; + array[ offset ++ ] = vector.z; + array[ offset ++ ] = vector.w; + + } + + return this; + + }, + + set: function ( value, offset ) { + + if ( offset === undefined ) offset = 0; + + this.array.set( value, offset ); + + return this; + + }, + + getX: function ( index ) { + + return this.array[ index * this.itemSize ]; + + }, + + setX: function ( index, x ) { + + this.array[ index * this.itemSize ] = x; + + return this; + + }, + + getY: function ( index ) { + + return this.array[ index * this.itemSize + 1 ]; + + }, + + setY: function ( index, y ) { + + this.array[ index * this.itemSize + 1 ] = y; + + return this; + + }, + + getZ: function ( index ) { + + return this.array[ index * this.itemSize + 2 ]; + + }, + + setZ: function ( index, z ) { + + this.array[ index * this.itemSize + 2 ] = z; + + return this; + + }, + + getW: function ( index ) { + + return this.array[ index * this.itemSize + 3 ]; + + }, + + setW: function ( index, w ) { + + this.array[ index * this.itemSize + 3 ] = w; + + return this; + + }, + + setXY: function ( index, x, y ) { + + index *= this.itemSize; + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + + return this; + + }, + + setXYZ: function ( index, x, y, z ) { + + index *= this.itemSize; + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + + return this; + + }, + + setXYZW: function ( index, x, y, z, w ) { + + index *= this.itemSize; + + this.array[ index + 0 ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + this.array[ index + 3 ] = w; + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + } + + }; + + // + + function Int8Attribute( array, itemSize ) { + + return new BufferAttribute( new Int8Array( array ), itemSize ); + + } + + function Uint8Attribute( array, itemSize ) { + + return new BufferAttribute( new Uint8Array( array ), itemSize ); + + } + + function Uint8ClampedAttribute( array, itemSize ) { + + return new BufferAttribute( new Uint8ClampedArray( array ), itemSize ); + + } + + function Int16Attribute( array, itemSize ) { + + return new BufferAttribute( new Int16Array( array ), itemSize ); + + } + + function Uint16Attribute( array, itemSize ) { + + return new BufferAttribute( new Uint16Array( array ), itemSize ); + + } + + function Int32Attribute( array, itemSize ) { + + return new BufferAttribute( new Int32Array( array ), itemSize ); + + } + + function Uint32Attribute( array, itemSize ) { + + return new BufferAttribute( new Uint32Array( array ), itemSize ); + + } + + function Float32Attribute( array, itemSize ) { + + return new BufferAttribute( new Float32Array( array ), itemSize ); + + } + + function Float64Attribute( array, itemSize ) { + + return new BufferAttribute( new Float64Array( array ), itemSize ); + + } + + // Deprecated + + function DynamicBufferAttribute( array, itemSize ) { + + console.warn( 'THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.' ); + return new BufferAttribute( array, itemSize ).setDynamic( true ); + + } + + /** + * @author mrdoob / http://mrdoob.com/ + * @author kile / http://kile.stravaganza.org/ + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author bhouston / http://clara.io + */ + + function Geometry() { + + Object.defineProperty( this, 'id', { value: GeometryIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.type = 'Geometry'; + + this.vertices = []; + this.colors = []; + this.faces = []; + this.faceVertexUvs = [ [] ]; + + this.morphTargets = []; + this.morphNormals = []; + + this.skinWeights = []; + this.skinIndices = []; + + this.lineDistances = []; + + this.boundingBox = null; + this.boundingSphere = null; + + // update flags + + this.elementsNeedUpdate = false; + this.verticesNeedUpdate = false; + this.uvsNeedUpdate = false; + this.normalsNeedUpdate = false; + this.colorsNeedUpdate = false; + this.lineDistancesNeedUpdate = false; + this.groupsNeedUpdate = false; + + } + + Object.assign( Geometry.prototype, EventDispatcher.prototype, { + + isGeometry: true, + + applyMatrix: function ( matrix ) { + + var normalMatrix = new Matrix3().getNormalMatrix( matrix ); + + for ( var i = 0, il = this.vertices.length; i < il; i ++ ) { + + var vertex = this.vertices[ i ]; + vertex.applyMatrix4( matrix ); + + } + + for ( var i = 0, il = this.faces.length; i < il; i ++ ) { + + var face = this.faces[ i ]; + face.normal.applyMatrix3( normalMatrix ).normalize(); + + for ( var j = 0, jl = face.vertexNormals.length; j < jl; j ++ ) { + + face.vertexNormals[ j ].applyMatrix3( normalMatrix ).normalize(); + + } + + } + + if ( this.boundingBox !== null ) { + + this.computeBoundingBox(); + + } + + if ( this.boundingSphere !== null ) { + + this.computeBoundingSphere(); + + } + + this.verticesNeedUpdate = true; + this.normalsNeedUpdate = true; + + return this; + + }, + + rotateX: function () { + + // rotate geometry around world x-axis + + var m1; + + return function rotateX( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationX( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + rotateY: function () { + + // rotate geometry around world y-axis + + var m1; + + return function rotateY( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationY( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + rotateZ: function () { + + // rotate geometry around world z-axis + + var m1; + + return function rotateZ( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationZ( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + translate: function () { + + // translate geometry + + var m1; + + return function translate( x, y, z ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeTranslation( x, y, z ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + scale: function () { + + // scale geometry + + var m1; + + return function scale( x, y, z ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeScale( x, y, z ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + lookAt: function () { + + var obj; + + return function lookAt( vector ) { + + if ( obj === undefined ) obj = new Object3D(); + + obj.lookAt( vector ); + + obj.updateMatrix(); + + this.applyMatrix( obj.matrix ); + + }; + + }(), + + fromBufferGeometry: function ( geometry ) { + + var scope = this; + + var indices = geometry.index !== null ? geometry.index.array : undefined; + var attributes = geometry.attributes; + + var positions = attributes.position.array; + var normals = attributes.normal !== undefined ? attributes.normal.array : undefined; + var colors = attributes.color !== undefined ? attributes.color.array : undefined; + var uvs = attributes.uv !== undefined ? attributes.uv.array : undefined; + var uvs2 = attributes.uv2 !== undefined ? attributes.uv2.array : undefined; + + if ( uvs2 !== undefined ) this.faceVertexUvs[ 1 ] = []; + + var tempNormals = []; + var tempUVs = []; + var tempUVs2 = []; + + for ( var i = 0, j = 0; i < positions.length; i += 3, j += 2 ) { + + scope.vertices.push( new Vector3( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ) ); + + if ( normals !== undefined ) { + + tempNormals.push( new Vector3( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] ) ); + + } + + if ( colors !== undefined ) { + + scope.colors.push( new Color( colors[ i ], colors[ i + 1 ], colors[ i + 2 ] ) ); + + } + + if ( uvs !== undefined ) { + + tempUVs.push( new Vector2( uvs[ j ], uvs[ j + 1 ] ) ); + + } + + if ( uvs2 !== undefined ) { + + tempUVs2.push( new Vector2( uvs2[ j ], uvs2[ j + 1 ] ) ); + + } + + } + + function addFace( a, b, c, materialIndex ) { + + var vertexNormals = normals !== undefined ? [ tempNormals[ a ].clone(), tempNormals[ b ].clone(), tempNormals[ c ].clone() ] : []; + var vertexColors = colors !== undefined ? [ scope.colors[ a ].clone(), scope.colors[ b ].clone(), scope.colors[ c ].clone() ] : []; + + var face = new Face3( a, b, c, vertexNormals, vertexColors, materialIndex ); + + scope.faces.push( face ); + + if ( uvs !== undefined ) { + + scope.faceVertexUvs[ 0 ].push( [ tempUVs[ a ].clone(), tempUVs[ b ].clone(), tempUVs[ c ].clone() ] ); + + } + + if ( uvs2 !== undefined ) { + + scope.faceVertexUvs[ 1 ].push( [ tempUVs2[ a ].clone(), tempUVs2[ b ].clone(), tempUVs2[ c ].clone() ] ); + + } + + } + + if ( indices !== undefined ) { + + var groups = geometry.groups; + + if ( groups.length > 0 ) { + + for ( var i = 0; i < groups.length; i ++ ) { + + var group = groups[ i ]; + + var start = group.start; + var count = group.count; + + for ( var j = start, jl = start + count; j < jl; j += 3 ) { + + addFace( indices[ j ], indices[ j + 1 ], indices[ j + 2 ], group.materialIndex ); + + } + + } + + } else { + + for ( var i = 0; i < indices.length; i += 3 ) { + + addFace( indices[ i ], indices[ i + 1 ], indices[ i + 2 ] ); + + } + + } + + } else { + + for ( var i = 0; i < positions.length / 3; i += 3 ) { + + addFace( i, i + 1, i + 2 ); + + } + + } + + this.computeFaceNormals(); + + if ( geometry.boundingBox !== null ) { + + this.boundingBox = geometry.boundingBox.clone(); + + } + + if ( geometry.boundingSphere !== null ) { + + this.boundingSphere = geometry.boundingSphere.clone(); + + } + + return this; + + }, + + center: function () { + + this.computeBoundingBox(); + + var offset = this.boundingBox.getCenter().negate(); + + this.translate( offset.x, offset.y, offset.z ); + + return offset; + + }, + + normalize: function () { + + this.computeBoundingSphere(); + + var center = this.boundingSphere.center; + var radius = this.boundingSphere.radius; + + var s = radius === 0 ? 1 : 1.0 / radius; + + var matrix = new Matrix4(); + matrix.set( + s, 0, 0, - s * center.x, + 0, s, 0, - s * center.y, + 0, 0, s, - s * center.z, + 0, 0, 0, 1 + ); + + this.applyMatrix( matrix ); + + return this; + + }, + + computeFaceNormals: function () { + + var cb = new Vector3(), ab = new Vector3(); + + for ( var f = 0, fl = this.faces.length; f < fl; f ++ ) { + + var face = this.faces[ f ]; + + var vA = this.vertices[ face.a ]; + var vB = this.vertices[ face.b ]; + var vC = this.vertices[ face.c ]; + + cb.subVectors( vC, vB ); + ab.subVectors( vA, vB ); + cb.cross( ab ); + + cb.normalize(); + + face.normal.copy( cb ); + + } + + }, + + computeVertexNormals: function ( areaWeighted ) { + + if ( areaWeighted === undefined ) areaWeighted = true; + + var v, vl, f, fl, face, vertices; + + vertices = new Array( this.vertices.length ); + + for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) { + + vertices[ v ] = new Vector3(); + + } + + if ( areaWeighted ) { + + // vertex normals weighted by triangle areas + // http://www.iquilezles.org/www/articles/normals/normals.htm + + var vA, vB, vC; + var cb = new Vector3(), ab = new Vector3(); + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + vA = this.vertices[ face.a ]; + vB = this.vertices[ face.b ]; + vC = this.vertices[ face.c ]; + + cb.subVectors( vC, vB ); + ab.subVectors( vA, vB ); + cb.cross( ab ); + + vertices[ face.a ].add( cb ); + vertices[ face.b ].add( cb ); + vertices[ face.c ].add( cb ); + + } + + } else { + + this.computeFaceNormals(); + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + vertices[ face.a ].add( face.normal ); + vertices[ face.b ].add( face.normal ); + vertices[ face.c ].add( face.normal ); + + } + + } + + for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) { + + vertices[ v ].normalize(); + + } + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + var vertexNormals = face.vertexNormals; + + if ( vertexNormals.length === 3 ) { + + vertexNormals[ 0 ].copy( vertices[ face.a ] ); + vertexNormals[ 1 ].copy( vertices[ face.b ] ); + vertexNormals[ 2 ].copy( vertices[ face.c ] ); + + } else { + + vertexNormals[ 0 ] = vertices[ face.a ].clone(); + vertexNormals[ 1 ] = vertices[ face.b ].clone(); + vertexNormals[ 2 ] = vertices[ face.c ].clone(); + + } + + } + + if ( this.faces.length > 0 ) { + + this.normalsNeedUpdate = true; + + } + + }, + + computeFlatVertexNormals: function () { + + var f, fl, face; + + this.computeFaceNormals(); + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + var vertexNormals = face.vertexNormals; + + if ( vertexNormals.length === 3 ) { + + vertexNormals[ 0 ].copy( face.normal ); + vertexNormals[ 1 ].copy( face.normal ); + vertexNormals[ 2 ].copy( face.normal ); + + } else { + + vertexNormals[ 0 ] = face.normal.clone(); + vertexNormals[ 1 ] = face.normal.clone(); + vertexNormals[ 2 ] = face.normal.clone(); + + } + + } + + if ( this.faces.length > 0 ) { + + this.normalsNeedUpdate = true; + + } + + }, + + computeMorphNormals: function () { + + var i, il, f, fl, face; + + // save original normals + // - create temp variables on first access + // otherwise just copy (for faster repeated calls) + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + if ( ! face.__originalFaceNormal ) { + + face.__originalFaceNormal = face.normal.clone(); + + } else { + + face.__originalFaceNormal.copy( face.normal ); + + } + + if ( ! face.__originalVertexNormals ) face.__originalVertexNormals = []; + + for ( i = 0, il = face.vertexNormals.length; i < il; i ++ ) { + + if ( ! face.__originalVertexNormals[ i ] ) { + + face.__originalVertexNormals[ i ] = face.vertexNormals[ i ].clone(); + + } else { + + face.__originalVertexNormals[ i ].copy( face.vertexNormals[ i ] ); + + } + + } + + } + + // use temp geometry to compute face and vertex normals for each morph + + var tmpGeo = new Geometry(); + tmpGeo.faces = this.faces; + + for ( i = 0, il = this.morphTargets.length; i < il; i ++ ) { + + // create on first access + + if ( ! this.morphNormals[ i ] ) { + + this.morphNormals[ i ] = {}; + this.morphNormals[ i ].faceNormals = []; + this.morphNormals[ i ].vertexNormals = []; + + var dstNormalsFace = this.morphNormals[ i ].faceNormals; + var dstNormalsVertex = this.morphNormals[ i ].vertexNormals; + + var faceNormal, vertexNormals; + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + faceNormal = new Vector3(); + vertexNormals = { a: new Vector3(), b: new Vector3(), c: new Vector3() }; + + dstNormalsFace.push( faceNormal ); + dstNormalsVertex.push( vertexNormals ); + + } + + } + + var morphNormals = this.morphNormals[ i ]; + + // set vertices to morph target + + tmpGeo.vertices = this.morphTargets[ i ].vertices; + + // compute morph normals + + tmpGeo.computeFaceNormals(); + tmpGeo.computeVertexNormals(); + + // store morph normals + + var faceNormal, vertexNormals; + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + faceNormal = morphNormals.faceNormals[ f ]; + vertexNormals = morphNormals.vertexNormals[ f ]; + + faceNormal.copy( face.normal ); + + vertexNormals.a.copy( face.vertexNormals[ 0 ] ); + vertexNormals.b.copy( face.vertexNormals[ 1 ] ); + vertexNormals.c.copy( face.vertexNormals[ 2 ] ); + + } + + } + + // restore original normals + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + face.normal = face.__originalFaceNormal; + face.vertexNormals = face.__originalVertexNormals; + + } + + }, + + computeTangents: function () { + + console.warn( 'THREE.Geometry: .computeTangents() has been removed.' ); + + }, + + computeLineDistances: function () { + + var d = 0; + var vertices = this.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + if ( i > 0 ) { + + d += vertices[ i ].distanceTo( vertices[ i - 1 ] ); + + } + + this.lineDistances[ i ] = d; + + } + + }, + + computeBoundingBox: function () { + + if ( this.boundingBox === null ) { + + this.boundingBox = new Box3(); + + } + + this.boundingBox.setFromPoints( this.vertices ); + + }, + + computeBoundingSphere: function () { + + if ( this.boundingSphere === null ) { + + this.boundingSphere = new Sphere(); + + } + + this.boundingSphere.setFromPoints( this.vertices ); + + }, + + merge: function ( geometry, matrix, materialIndexOffset ) { + + if ( (geometry && geometry.isGeometry) === false ) { + + console.error( 'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry ); + return; + + } + + var normalMatrix, + vertexOffset = this.vertices.length, + vertices1 = this.vertices, + vertices2 = geometry.vertices, + faces1 = this.faces, + faces2 = geometry.faces, + uvs1 = this.faceVertexUvs[ 0 ], + uvs2 = geometry.faceVertexUvs[ 0 ], + colors1 = this.colors, + colors2 = geometry.colors; + + if ( materialIndexOffset === undefined ) materialIndexOffset = 0; + + if ( matrix !== undefined ) { + + normalMatrix = new Matrix3().getNormalMatrix( matrix ); + + } + + // vertices + + for ( var i = 0, il = vertices2.length; i < il; i ++ ) { + + var vertex = vertices2[ i ]; + + var vertexCopy = vertex.clone(); + + if ( matrix !== undefined ) vertexCopy.applyMatrix4( matrix ); + + vertices1.push( vertexCopy ); + + } + + // colors + + for ( var i = 0, il = colors2.length; i < il; i ++ ) { + + colors1.push( colors2[ i ].clone() ); + + } + + // faces + + for ( i = 0, il = faces2.length; i < il; i ++ ) { + + var face = faces2[ i ], faceCopy, normal, color, + faceVertexNormals = face.vertexNormals, + faceVertexColors = face.vertexColors; + + faceCopy = new Face3( face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset ); + faceCopy.normal.copy( face.normal ); + + if ( normalMatrix !== undefined ) { + + faceCopy.normal.applyMatrix3( normalMatrix ).normalize(); + + } + + for ( var j = 0, jl = faceVertexNormals.length; j < jl; j ++ ) { + + normal = faceVertexNormals[ j ].clone(); + + if ( normalMatrix !== undefined ) { + + normal.applyMatrix3( normalMatrix ).normalize(); + + } + + faceCopy.vertexNormals.push( normal ); + + } + + faceCopy.color.copy( face.color ); + + for ( var j = 0, jl = faceVertexColors.length; j < jl; j ++ ) { + + color = faceVertexColors[ j ]; + faceCopy.vertexColors.push( color.clone() ); + + } + + faceCopy.materialIndex = face.materialIndex + materialIndexOffset; + + faces1.push( faceCopy ); + + } + + // uvs + + for ( i = 0, il = uvs2.length; i < il; i ++ ) { + + var uv = uvs2[ i ], uvCopy = []; + + if ( uv === undefined ) { + + continue; + + } + + for ( var j = 0, jl = uv.length; j < jl; j ++ ) { + + uvCopy.push( uv[ j ].clone() ); + + } + + uvs1.push( uvCopy ); + + } + + }, + + mergeMesh: function ( mesh ) { + + if ( (mesh && mesh.isMesh) === false ) { + + console.error( 'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh ); + return; + + } + + mesh.matrixAutoUpdate && mesh.updateMatrix(); + + this.merge( mesh.geometry, mesh.matrix ); + + }, + + /* + * Checks for duplicate vertices with hashmap. + * Duplicated vertices are removed + * and faces' vertices are updated. + */ + + mergeVertices: function () { + + var verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique) + var unique = [], changes = []; + + var v, key; + var precisionPoints = 4; // number of decimal points, e.g. 4 for epsilon of 0.0001 + var precision = Math.pow( 10, precisionPoints ); + var i, il, face; + var indices, j, jl; + + for ( i = 0, il = this.vertices.length; i < il; i ++ ) { + + v = this.vertices[ i ]; + key = Math.round( v.x * precision ) + '_' + Math.round( v.y * precision ) + '_' + Math.round( v.z * precision ); + + if ( verticesMap[ key ] === undefined ) { + + verticesMap[ key ] = i; + unique.push( this.vertices[ i ] ); + changes[ i ] = unique.length - 1; + + } else { + + //console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]); + changes[ i ] = changes[ verticesMap[ key ] ]; + + } + + } + + + // if faces are completely degenerate after merging vertices, we + // have to remove them from the geometry. + var faceIndicesToRemove = []; + + for ( i = 0, il = this.faces.length; i < il; i ++ ) { + + face = this.faces[ i ]; + + face.a = changes[ face.a ]; + face.b = changes[ face.b ]; + face.c = changes[ face.c ]; + + indices = [ face.a, face.b, face.c ]; + + var dupIndex = - 1; + + // if any duplicate vertices are found in a Face3 + // we have to remove the face as nothing can be saved + for ( var n = 0; n < 3; n ++ ) { + + if ( indices[ n ] === indices[ ( n + 1 ) % 3 ] ) { + + dupIndex = n; + faceIndicesToRemove.push( i ); + break; + + } + + } + + } + + for ( i = faceIndicesToRemove.length - 1; i >= 0; i -- ) { + + var idx = faceIndicesToRemove[ i ]; + + this.faces.splice( idx, 1 ); + + for ( j = 0, jl = this.faceVertexUvs.length; j < jl; j ++ ) { + + this.faceVertexUvs[ j ].splice( idx, 1 ); + + } + + } + + // Use unique set of vertices + + var diff = this.vertices.length - unique.length; + this.vertices = unique; + return diff; + + }, + + sortFacesByMaterialIndex: function () { + + var faces = this.faces; + var length = faces.length; + + // tag faces + + for ( var i = 0; i < length; i ++ ) { + + faces[ i ]._id = i; + + } + + // sort faces + + function materialIndexSort( a, b ) { + + return a.materialIndex - b.materialIndex; + + } + + faces.sort( materialIndexSort ); + + // sort uvs + + var uvs1 = this.faceVertexUvs[ 0 ]; + var uvs2 = this.faceVertexUvs[ 1 ]; + + var newUvs1, newUvs2; + + if ( uvs1 && uvs1.length === length ) newUvs1 = []; + if ( uvs2 && uvs2.length === length ) newUvs2 = []; + + for ( var i = 0; i < length; i ++ ) { + + var id = faces[ i ]._id; + + if ( newUvs1 ) newUvs1.push( uvs1[ id ] ); + if ( newUvs2 ) newUvs2.push( uvs2[ id ] ); + + } + + if ( newUvs1 ) this.faceVertexUvs[ 0 ] = newUvs1; + if ( newUvs2 ) this.faceVertexUvs[ 1 ] = newUvs2; + + }, + + toJSON: function () { + + var data = { + metadata: { + version: 4.4, + type: 'Geometry', + generator: 'Geometry.toJSON' + } + }; + + // standard Geometry serialization + + data.uuid = this.uuid; + data.type = this.type; + if ( this.name !== '' ) data.name = this.name; + + if ( this.parameters !== undefined ) { + + var parameters = this.parameters; + + for ( var key in parameters ) { + + if ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ]; + + } + + return data; + + } + + var vertices = []; + + for ( var i = 0; i < this.vertices.length; i ++ ) { + + var vertex = this.vertices[ i ]; + vertices.push( vertex.x, vertex.y, vertex.z ); + + } + + var faces = []; + var normals = []; + var normalsHash = {}; + var colors = []; + var colorsHash = {}; + var uvs = []; + var uvsHash = {}; + + for ( var i = 0; i < this.faces.length; i ++ ) { + + var face = this.faces[ i ]; + + var hasMaterial = true; + var hasFaceUv = false; // deprecated + var hasFaceVertexUv = this.faceVertexUvs[ 0 ][ i ] !== undefined; + var hasFaceNormal = face.normal.length() > 0; + var hasFaceVertexNormal = face.vertexNormals.length > 0; + var hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1; + var hasFaceVertexColor = face.vertexColors.length > 0; + + var faceType = 0; + + faceType = setBit( faceType, 0, 0 ); // isQuad + faceType = setBit( faceType, 1, hasMaterial ); + faceType = setBit( faceType, 2, hasFaceUv ); + faceType = setBit( faceType, 3, hasFaceVertexUv ); + faceType = setBit( faceType, 4, hasFaceNormal ); + faceType = setBit( faceType, 5, hasFaceVertexNormal ); + faceType = setBit( faceType, 6, hasFaceColor ); + faceType = setBit( faceType, 7, hasFaceVertexColor ); + + faces.push( faceType ); + faces.push( face.a, face.b, face.c ); + faces.push( face.materialIndex ); + + if ( hasFaceVertexUv ) { + + var faceVertexUvs = this.faceVertexUvs[ 0 ][ i ]; + + faces.push( + getUvIndex( faceVertexUvs[ 0 ] ), + getUvIndex( faceVertexUvs[ 1 ] ), + getUvIndex( faceVertexUvs[ 2 ] ) + ); + + } + + if ( hasFaceNormal ) { + + faces.push( getNormalIndex( face.normal ) ); + + } + + if ( hasFaceVertexNormal ) { + + var vertexNormals = face.vertexNormals; + + faces.push( + getNormalIndex( vertexNormals[ 0 ] ), + getNormalIndex( vertexNormals[ 1 ] ), + getNormalIndex( vertexNormals[ 2 ] ) + ); + + } + + if ( hasFaceColor ) { + + faces.push( getColorIndex( face.color ) ); + + } + + if ( hasFaceVertexColor ) { + + var vertexColors = face.vertexColors; + + faces.push( + getColorIndex( vertexColors[ 0 ] ), + getColorIndex( vertexColors[ 1 ] ), + getColorIndex( vertexColors[ 2 ] ) + ); + + } + + } + + function setBit( value, position, enabled ) { + + return enabled ? value | ( 1 << position ) : value & ( ~ ( 1 << position ) ); + + } + + function getNormalIndex( normal ) { + + var hash = normal.x.toString() + normal.y.toString() + normal.z.toString(); + + if ( normalsHash[ hash ] !== undefined ) { + + return normalsHash[ hash ]; + + } + + normalsHash[ hash ] = normals.length / 3; + normals.push( normal.x, normal.y, normal.z ); + + return normalsHash[ hash ]; + + } + + function getColorIndex( color ) { + + var hash = color.r.toString() + color.g.toString() + color.b.toString(); + + if ( colorsHash[ hash ] !== undefined ) { + + return colorsHash[ hash ]; + + } + + colorsHash[ hash ] = colors.length; + colors.push( color.getHex() ); + + return colorsHash[ hash ]; + + } + + function getUvIndex( uv ) { + + var hash = uv.x.toString() + uv.y.toString(); + + if ( uvsHash[ hash ] !== undefined ) { + + return uvsHash[ hash ]; + + } + + uvsHash[ hash ] = uvs.length / 2; + uvs.push( uv.x, uv.y ); + + return uvsHash[ hash ]; + + } + + data.data = {}; + + data.data.vertices = vertices; + data.data.normals = normals; + if ( colors.length > 0 ) data.data.colors = colors; + if ( uvs.length > 0 ) data.data.uvs = [ uvs ]; // temporal backward compatibility + data.data.faces = faces; + + return data; + + }, + + clone: function () { + + /* + // Handle primitives + + var parameters = this.parameters; + + if ( parameters !== undefined ) { + + var values = []; + + for ( var key in parameters ) { + + values.push( parameters[ key ] ); + + } + + var geometry = Object.create( this.constructor.prototype ); + this.constructor.apply( geometry, values ); + return geometry; + + } + + return new this.constructor().copy( this ); + */ + + return new Geometry().copy( this ); + + }, + + copy: function ( source ) { + + this.vertices = []; + this.faces = []; + this.faceVertexUvs = [ [] ]; + this.colors = []; + + var vertices = source.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + this.vertices.push( vertices[ i ].clone() ); + + } + + var colors = source.colors; + + for ( var i = 0, il = colors.length; i < il; i ++ ) { + + this.colors.push( colors[ i ].clone() ); + + } + + var faces = source.faces; + + for ( var i = 0, il = faces.length; i < il; i ++ ) { + + this.faces.push( faces[ i ].clone() ); + + } + + for ( var i = 0, il = source.faceVertexUvs.length; i < il; i ++ ) { + + var faceVertexUvs = source.faceVertexUvs[ i ]; + + if ( this.faceVertexUvs[ i ] === undefined ) { + + this.faceVertexUvs[ i ] = []; + + } + + for ( var j = 0, jl = faceVertexUvs.length; j < jl; j ++ ) { + + var uvs = faceVertexUvs[ j ], uvsCopy = []; + + for ( var k = 0, kl = uvs.length; k < kl; k ++ ) { + + var uv = uvs[ k ]; + + uvsCopy.push( uv.clone() ); + + } + + this.faceVertexUvs[ i ].push( uvsCopy ); + + } + + } + + return this; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + + } ); + + var count$3 = 0; + function GeometryIdCount() { return count$3++; } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function DirectGeometry() { + + Object.defineProperty( this, 'id', { value: GeometryIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.type = 'DirectGeometry'; + + this.indices = []; + this.vertices = []; + this.normals = []; + this.colors = []; + this.uvs = []; + this.uvs2 = []; + + this.groups = []; + + this.morphTargets = {}; + + this.skinWeights = []; + this.skinIndices = []; + + // this.lineDistances = []; + + this.boundingBox = null; + this.boundingSphere = null; + + // update flags + + this.verticesNeedUpdate = false; + this.normalsNeedUpdate = false; + this.colorsNeedUpdate = false; + this.uvsNeedUpdate = false; + this.groupsNeedUpdate = false; + + } + + Object.assign( DirectGeometry.prototype, EventDispatcher.prototype, { + + computeBoundingBox: Geometry.prototype.computeBoundingBox, + computeBoundingSphere: Geometry.prototype.computeBoundingSphere, + + computeFaceNormals: function () { + + console.warn( 'THREE.DirectGeometry: computeFaceNormals() is not a method of this type of geometry.' ); + + }, + + computeVertexNormals: function () { + + console.warn( 'THREE.DirectGeometry: computeVertexNormals() is not a method of this type of geometry.' ); + + }, + + computeGroups: function ( geometry ) { + + var group; + var groups = []; + var materialIndex; + + var faces = geometry.faces; + + for ( var i = 0; i < faces.length; i ++ ) { + + var face = faces[ i ]; + + // materials + + if ( face.materialIndex !== materialIndex ) { + + materialIndex = face.materialIndex; + + if ( group !== undefined ) { + + group.count = ( i * 3 ) - group.start; + groups.push( group ); + + } + + group = { + start: i * 3, + materialIndex: materialIndex + }; + + } + + } + + if ( group !== undefined ) { + + group.count = ( i * 3 ) - group.start; + groups.push( group ); + + } + + this.groups = groups; + + }, + + fromGeometry: function ( geometry ) { + + var faces = geometry.faces; + var vertices = geometry.vertices; + var faceVertexUvs = geometry.faceVertexUvs; + + var hasFaceVertexUv = faceVertexUvs[ 0 ] && faceVertexUvs[ 0 ].length > 0; + var hasFaceVertexUv2 = faceVertexUvs[ 1 ] && faceVertexUvs[ 1 ].length > 0; + + // morphs + + var morphTargets = geometry.morphTargets; + var morphTargetsLength = morphTargets.length; + + var morphTargetsPosition; + + if ( morphTargetsLength > 0 ) { + + morphTargetsPosition = []; + + for ( var i = 0; i < morphTargetsLength; i ++ ) { + + morphTargetsPosition[ i ] = []; + + } + + this.morphTargets.position = morphTargetsPosition; + + } + + var morphNormals = geometry.morphNormals; + var morphNormalsLength = morphNormals.length; + + var morphTargetsNormal; + + if ( morphNormalsLength > 0 ) { + + morphTargetsNormal = []; + + for ( var i = 0; i < morphNormalsLength; i ++ ) { + + morphTargetsNormal[ i ] = []; + + } + + this.morphTargets.normal = morphTargetsNormal; + + } + + // skins + + var skinIndices = geometry.skinIndices; + var skinWeights = geometry.skinWeights; + + var hasSkinIndices = skinIndices.length === vertices.length; + var hasSkinWeights = skinWeights.length === vertices.length; + + // + + for ( var i = 0; i < faces.length; i ++ ) { + + var face = faces[ i ]; + + this.vertices.push( vertices[ face.a ], vertices[ face.b ], vertices[ face.c ] ); + + var vertexNormals = face.vertexNormals; + + if ( vertexNormals.length === 3 ) { + + this.normals.push( vertexNormals[ 0 ], vertexNormals[ 1 ], vertexNormals[ 2 ] ); + + } else { + + var normal = face.normal; + + this.normals.push( normal, normal, normal ); + + } + + var vertexColors = face.vertexColors; + + if ( vertexColors.length === 3 ) { + + this.colors.push( vertexColors[ 0 ], vertexColors[ 1 ], vertexColors[ 2 ] ); + + } else { + + var color = face.color; + + this.colors.push( color, color, color ); + + } + + if ( hasFaceVertexUv === true ) { + + var vertexUvs = faceVertexUvs[ 0 ][ i ]; + + if ( vertexUvs !== undefined ) { + + this.uvs.push( vertexUvs[ 0 ], vertexUvs[ 1 ], vertexUvs[ 2 ] ); + + } else { + + console.warn( 'THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ', i ); + + this.uvs.push( new Vector2(), new Vector2(), new Vector2() ); + + } + + } + + if ( hasFaceVertexUv2 === true ) { + + var vertexUvs = faceVertexUvs[ 1 ][ i ]; + + if ( vertexUvs !== undefined ) { + + this.uvs2.push( vertexUvs[ 0 ], vertexUvs[ 1 ], vertexUvs[ 2 ] ); + + } else { + + console.warn( 'THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ', i ); + + this.uvs2.push( new Vector2(), new Vector2(), new Vector2() ); + + } + + } + + // morphs + + for ( var j = 0; j < morphTargetsLength; j ++ ) { + + var morphTarget = morphTargets[ j ].vertices; + + morphTargetsPosition[ j ].push( morphTarget[ face.a ], morphTarget[ face.b ], morphTarget[ face.c ] ); + + } + + for ( var j = 0; j < morphNormalsLength; j ++ ) { + + var morphNormal = morphNormals[ j ].vertexNormals[ i ]; + + morphTargetsNormal[ j ].push( morphNormal.a, morphNormal.b, morphNormal.c ); + + } + + // skins + + if ( hasSkinIndices ) { + + this.skinIndices.push( skinIndices[ face.a ], skinIndices[ face.b ], skinIndices[ face.c ] ); + + } + + if ( hasSkinWeights ) { + + this.skinWeights.push( skinWeights[ face.a ], skinWeights[ face.b ], skinWeights[ face.c ] ); + + } + + } + + this.computeGroups( geometry ); + + this.verticesNeedUpdate = geometry.verticesNeedUpdate; + this.normalsNeedUpdate = geometry.normalsNeedUpdate; + this.colorsNeedUpdate = geometry.colorsNeedUpdate; + this.uvsNeedUpdate = geometry.uvsNeedUpdate; + this.groupsNeedUpdate = geometry.groupsNeedUpdate; + + return this; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + function BufferGeometry() { + + Object.defineProperty( this, 'id', { value: GeometryIdCount() } ); + + this.uuid = _Math.generateUUID(); + + this.name = ''; + this.type = 'BufferGeometry'; + + this.index = null; + this.attributes = {}; + + this.morphAttributes = {}; + + this.groups = []; + + this.boundingBox = null; + this.boundingSphere = null; + + this.drawRange = { start: 0, count: Infinity }; + + } + + Object.assign( BufferGeometry.prototype, EventDispatcher.prototype, { + + isBufferGeometry: true, + + getIndex: function () { + + return this.index; + + }, + + setIndex: function ( index ) { + + this.index = index; + + }, + + addAttribute: function ( name, attribute ) { + + if ( (attribute && attribute.isBufferAttribute) === false && (attribute && attribute.isInterleavedBufferAttribute) === false ) { + + console.warn( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' ); + + this.addAttribute( name, new BufferAttribute( arguments[ 1 ], arguments[ 2 ] ) ); + + return; + + } + + if ( name === 'index' ) { + + console.warn( 'THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.' ); + this.setIndex( attribute ); + + return; + + } + + this.attributes[ name ] = attribute; + + return this; + + }, + + getAttribute: function ( name ) { + + return this.attributes[ name ]; + + }, + + removeAttribute: function ( name ) { + + delete this.attributes[ name ]; + + return this; + + }, + + addGroup: function ( start, count, materialIndex ) { + + this.groups.push( { + + start: start, + count: count, + materialIndex: materialIndex !== undefined ? materialIndex : 0 + + } ); + + }, + + clearGroups: function () { + + this.groups = []; + + }, + + setDrawRange: function ( start, count ) { + + this.drawRange.start = start; + this.drawRange.count = count; + + }, + + applyMatrix: function ( matrix ) { + + var position = this.attributes.position; + + if ( position !== undefined ) { + + matrix.applyToVector3Array( position.array ); + position.needsUpdate = true; + + } + + var normal = this.attributes.normal; + + if ( normal !== undefined ) { + + var normalMatrix = new Matrix3().getNormalMatrix( matrix ); + + normalMatrix.applyToVector3Array( normal.array ); + normal.needsUpdate = true; + + } + + if ( this.boundingBox !== null ) { + + this.computeBoundingBox(); + + } + + if ( this.boundingSphere !== null ) { + + this.computeBoundingSphere(); + + } + + return this; + + }, + + rotateX: function () { + + // rotate geometry around world x-axis + + var m1; + + return function rotateX( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationX( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + rotateY: function () { + + // rotate geometry around world y-axis + + var m1; + + return function rotateY( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationY( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + rotateZ: function () { + + // rotate geometry around world z-axis + + var m1; + + return function rotateZ( angle ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeRotationZ( angle ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + translate: function () { + + // translate geometry + + var m1; + + return function translate( x, y, z ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeTranslation( x, y, z ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + scale: function () { + + // scale geometry + + var m1; + + return function scale( x, y, z ) { + + if ( m1 === undefined ) m1 = new Matrix4(); + + m1.makeScale( x, y, z ); + + this.applyMatrix( m1 ); + + return this; + + }; + + }(), + + lookAt: function () { + + var obj; + + return function lookAt( vector ) { + + if ( obj === undefined ) obj = new Object3D(); + + obj.lookAt( vector ); + + obj.updateMatrix(); + + this.applyMatrix( obj.matrix ); + + }; + + }(), + + center: function () { + + this.computeBoundingBox(); + + var offset = this.boundingBox.getCenter().negate(); + + this.translate( offset.x, offset.y, offset.z ); + + return offset; + + }, + + setFromObject: function ( object ) { + + // console.log( 'THREE.BufferGeometry.setFromObject(). Converting', object, this ); + + var geometry = object.geometry; + + if ( (object && object.isPoints) || (object && object.isLine) ) { + + var positions = new Float32Attribute( geometry.vertices.length * 3, 3 ); + var colors = new Float32Attribute( geometry.colors.length * 3, 3 ); + + this.addAttribute( 'position', positions.copyVector3sArray( geometry.vertices ) ); + this.addAttribute( 'color', colors.copyColorsArray( geometry.colors ) ); + + if ( geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length ) { + + var lineDistances = new Float32Attribute( geometry.lineDistances.length, 1 ); + + this.addAttribute( 'lineDistance', lineDistances.copyArray( geometry.lineDistances ) ); + + } + + if ( geometry.boundingSphere !== null ) { + + this.boundingSphere = geometry.boundingSphere.clone(); + + } + + if ( geometry.boundingBox !== null ) { + + this.boundingBox = geometry.boundingBox.clone(); + + } + + } else if ( (object && object.isMesh) ) { + + if ( (geometry && geometry.isGeometry) ) { + + this.fromGeometry( geometry ); + + } + + } + + return this; + + }, + + updateFromObject: function ( object ) { + + var geometry = object.geometry; + + if ( (object && object.isMesh) ) { + + var direct = geometry.__directGeometry; + + if ( geometry.elementsNeedUpdate === true ) { + + direct = undefined; + geometry.elementsNeedUpdate = false; + + } + + if ( direct === undefined ) { + + return this.fromGeometry( geometry ); + + } + + direct.verticesNeedUpdate = geometry.verticesNeedUpdate; + direct.normalsNeedUpdate = geometry.normalsNeedUpdate; + direct.colorsNeedUpdate = geometry.colorsNeedUpdate; + direct.uvsNeedUpdate = geometry.uvsNeedUpdate; + direct.groupsNeedUpdate = geometry.groupsNeedUpdate; + + geometry.verticesNeedUpdate = false; + geometry.normalsNeedUpdate = false; + geometry.colorsNeedUpdate = false; + geometry.uvsNeedUpdate = false; + geometry.groupsNeedUpdate = false; + + geometry = direct; + + } + + var attribute; + + if ( geometry.verticesNeedUpdate === true ) { + + attribute = this.attributes.position; + + if ( attribute !== undefined ) { + + attribute.copyVector3sArray( geometry.vertices ); + attribute.needsUpdate = true; + + } + + geometry.verticesNeedUpdate = false; + + } + + if ( geometry.normalsNeedUpdate === true ) { + + attribute = this.attributes.normal; + + if ( attribute !== undefined ) { + + attribute.copyVector3sArray( geometry.normals ); + attribute.needsUpdate = true; + + } + + geometry.normalsNeedUpdate = false; + + } + + if ( geometry.colorsNeedUpdate === true ) { + + attribute = this.attributes.color; + + if ( attribute !== undefined ) { + + attribute.copyColorsArray( geometry.colors ); + attribute.needsUpdate = true; + + } + + geometry.colorsNeedUpdate = false; + + } + + if ( geometry.uvsNeedUpdate ) { + + attribute = this.attributes.uv; + + if ( attribute !== undefined ) { + + attribute.copyVector2sArray( geometry.uvs ); + attribute.needsUpdate = true; + + } + + geometry.uvsNeedUpdate = false; + + } + + if ( geometry.lineDistancesNeedUpdate ) { + + attribute = this.attributes.lineDistance; + + if ( attribute !== undefined ) { + + attribute.copyArray( geometry.lineDistances ); + attribute.needsUpdate = true; + + } + + geometry.lineDistancesNeedUpdate = false; + + } + + if ( geometry.groupsNeedUpdate ) { + + geometry.computeGroups( object.geometry ); + this.groups = geometry.groups; + + geometry.groupsNeedUpdate = false; + + } + + return this; + + }, + + fromGeometry: function ( geometry ) { + + geometry.__directGeometry = new DirectGeometry().fromGeometry( geometry ); + + return this.fromDirectGeometry( geometry.__directGeometry ); + + }, + + fromDirectGeometry: function ( geometry ) { + + var positions = new Float32Array( geometry.vertices.length * 3 ); + this.addAttribute( 'position', new BufferAttribute( positions, 3 ).copyVector3sArray( geometry.vertices ) ); + + if ( geometry.normals.length > 0 ) { + + var normals = new Float32Array( geometry.normals.length * 3 ); + this.addAttribute( 'normal', new BufferAttribute( normals, 3 ).copyVector3sArray( geometry.normals ) ); + + } + + if ( geometry.colors.length > 0 ) { + + var colors = new Float32Array( geometry.colors.length * 3 ); + this.addAttribute( 'color', new BufferAttribute( colors, 3 ).copyColorsArray( geometry.colors ) ); + + } + + if ( geometry.uvs.length > 0 ) { + + var uvs = new Float32Array( geometry.uvs.length * 2 ); + this.addAttribute( 'uv', new BufferAttribute( uvs, 2 ).copyVector2sArray( geometry.uvs ) ); + + } + + if ( geometry.uvs2.length > 0 ) { + + var uvs2 = new Float32Array( geometry.uvs2.length * 2 ); + this.addAttribute( 'uv2', new BufferAttribute( uvs2, 2 ).copyVector2sArray( geometry.uvs2 ) ); + + } + + if ( geometry.indices.length > 0 ) { + + var TypeArray = geometry.vertices.length > 65535 ? Uint32Array : Uint16Array; + var indices = new TypeArray( geometry.indices.length * 3 ); + this.setIndex( new BufferAttribute( indices, 1 ).copyIndicesArray( geometry.indices ) ); + + } + + // groups + + this.groups = geometry.groups; + + // morphs + + for ( var name in geometry.morphTargets ) { + + var array = []; + var morphTargets = geometry.morphTargets[ name ]; + + for ( var i = 0, l = morphTargets.length; i < l; i ++ ) { + + var morphTarget = morphTargets[ i ]; + + var attribute = new Float32Attribute( morphTarget.length * 3, 3 ); + + array.push( attribute.copyVector3sArray( morphTarget ) ); + + } + + this.morphAttributes[ name ] = array; + + } + + // skinning + + if ( geometry.skinIndices.length > 0 ) { + + var skinIndices = new Float32Attribute( geometry.skinIndices.length * 4, 4 ); + this.addAttribute( 'skinIndex', skinIndices.copyVector4sArray( geometry.skinIndices ) ); + + } + + if ( geometry.skinWeights.length > 0 ) { + + var skinWeights = new Float32Attribute( geometry.skinWeights.length * 4, 4 ); + this.addAttribute( 'skinWeight', skinWeights.copyVector4sArray( geometry.skinWeights ) ); + + } + + // + + if ( geometry.boundingSphere !== null ) { + + this.boundingSphere = geometry.boundingSphere.clone(); + + } + + if ( geometry.boundingBox !== null ) { + + this.boundingBox = geometry.boundingBox.clone(); + + } + + return this; + + }, + + computeBoundingBox: function () { + + if ( this.boundingBox === null ) { + + this.boundingBox = new Box3(); + + } + + var positions = this.attributes.position.array; + + if ( positions !== undefined ) { + + this.boundingBox.setFromArray( positions ); + + } else { + + this.boundingBox.makeEmpty(); + + } + + if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) { + + console.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this ); + + } + + }, + + computeBoundingSphere: function () { + + var box = new Box3(); + var vector = new Vector3(); + + return function computeBoundingSphere() { + + if ( this.boundingSphere === null ) { + + this.boundingSphere = new Sphere(); + + } + + var positions = this.attributes.position; + + if ( positions ) { + + var array = positions.array; + var center = this.boundingSphere.center; + + box.setFromArray( array ); + box.getCenter( center ); + + // hoping to find a boundingSphere with a radius smaller than the + // boundingSphere of the boundingBox: sqrt(3) smaller in the best case + + var maxRadiusSq = 0; + + for ( var i = 0, il = array.length; i < il; i += 3 ) { + + vector.fromArray( array, i ); + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) ); + + } + + this.boundingSphere.radius = Math.sqrt( maxRadiusSq ); + + if ( isNaN( this.boundingSphere.radius ) ) { + + console.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this ); + + } + + } + + }; + + }(), + + computeFaceNormals: function () { + + // backwards compatibility + + }, + + computeVertexNormals: function () { + + var index = this.index; + var attributes = this.attributes; + var groups = this.groups; + + if ( attributes.position ) { + + var positions = attributes.position.array; + + if ( attributes.normal === undefined ) { + + this.addAttribute( 'normal', new BufferAttribute( new Float32Array( positions.length ), 3 ) ); + + } else { + + // reset existing normals to zero + + var array = attributes.normal.array; + + for ( var i = 0, il = array.length; i < il; i ++ ) { + + array[ i ] = 0; + + } + + } + + var normals = attributes.normal.array; + + var vA, vB, vC, + + pA = new Vector3(), + pB = new Vector3(), + pC = new Vector3(), + + cb = new Vector3(), + ab = new Vector3(); + + // indexed elements + + if ( index ) { + + var indices = index.array; + + if ( groups.length === 0 ) { + + this.addGroup( 0, indices.length ); + + } + + for ( var j = 0, jl = groups.length; j < jl; ++ j ) { + + var group = groups[ j ]; + + var start = group.start; + var count = group.count; + + for ( var i = start, il = start + count; i < il; i += 3 ) { + + vA = indices[ i + 0 ] * 3; + vB = indices[ i + 1 ] * 3; + vC = indices[ i + 2 ] * 3; + + pA.fromArray( positions, vA ); + pB.fromArray( positions, vB ); + pC.fromArray( positions, vC ); + + cb.subVectors( pC, pB ); + ab.subVectors( pA, pB ); + cb.cross( ab ); + + normals[ vA ] += cb.x; + normals[ vA + 1 ] += cb.y; + normals[ vA + 2 ] += cb.z; + + normals[ vB ] += cb.x; + normals[ vB + 1 ] += cb.y; + normals[ vB + 2 ] += cb.z; + + normals[ vC ] += cb.x; + normals[ vC + 1 ] += cb.y; + normals[ vC + 2 ] += cb.z; + + } + + } + + } else { + + // non-indexed elements (unconnected triangle soup) + + for ( var i = 0, il = positions.length; i < il; i += 9 ) { + + pA.fromArray( positions, i ); + pB.fromArray( positions, i + 3 ); + pC.fromArray( positions, i + 6 ); + + cb.subVectors( pC, pB ); + ab.subVectors( pA, pB ); + cb.cross( ab ); + + normals[ i ] = cb.x; + normals[ i + 1 ] = cb.y; + normals[ i + 2 ] = cb.z; + + normals[ i + 3 ] = cb.x; + normals[ i + 4 ] = cb.y; + normals[ i + 5 ] = cb.z; + + normals[ i + 6 ] = cb.x; + normals[ i + 7 ] = cb.y; + normals[ i + 8 ] = cb.z; + + } + + } + + this.normalizeNormals(); + + attributes.normal.needsUpdate = true; + + } + + }, + + merge: function ( geometry, offset ) { + + if ( (geometry && geometry.isBufferGeometry) === false ) { + + console.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry ); + return; + + } + + if ( offset === undefined ) offset = 0; + + var attributes = this.attributes; + + for ( var key in attributes ) { + + if ( geometry.attributes[ key ] === undefined ) continue; + + var attribute1 = attributes[ key ]; + var attributeArray1 = attribute1.array; + + var attribute2 = geometry.attributes[ key ]; + var attributeArray2 = attribute2.array; + + var attributeSize = attribute2.itemSize; + + for ( var i = 0, j = attributeSize * offset; i < attributeArray2.length; i ++, j ++ ) { + + attributeArray1[ j ] = attributeArray2[ i ]; + + } + + } + + return this; + + }, + + normalizeNormals: function () { + + var normals = this.attributes.normal.array; + + var x, y, z, n; + + for ( var i = 0, il = normals.length; i < il; i += 3 ) { + + x = normals[ i ]; + y = normals[ i + 1 ]; + z = normals[ i + 2 ]; + + n = 1.0 / Math.sqrt( x * x + y * y + z * z ); + + normals[ i ] *= n; + normals[ i + 1 ] *= n; + normals[ i + 2 ] *= n; + + } + + }, + + toNonIndexed: function () { + + if ( this.index === null ) { + + console.warn( 'THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.' ); + return this; + + } + + var geometry2 = new BufferGeometry(); + + var indices = this.index.array; + var attributes = this.attributes; + + for ( var name in attributes ) { + + var attribute = attributes[ name ]; + + var array = attribute.array; + var itemSize = attribute.itemSize; + + var array2 = new array.constructor( indices.length * itemSize ); + + var index = 0, index2 = 0; + + for ( var i = 0, l = indices.length; i < l; i ++ ) { + + index = indices[ i ] * itemSize; + + for ( var j = 0; j < itemSize; j ++ ) { + + array2[ index2 ++ ] = array[ index ++ ]; + + } + + } + + geometry2.addAttribute( name, new BufferAttribute( array2, itemSize ) ); + + } + + return geometry2; + + }, + + toJSON: function () { + + var data = { + metadata: { + version: 4.4, + type: 'BufferGeometry', + generator: 'BufferGeometry.toJSON' + } + }; + + // standard BufferGeometry serialization + + data.uuid = this.uuid; + data.type = this.type; + if ( this.name !== '' ) data.name = this.name; + + if ( this.parameters !== undefined ) { + + var parameters = this.parameters; + + for ( var key in parameters ) { + + if ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ]; + + } + + return data; + + } + + data.data = { attributes: {} }; + + var index = this.index; + + if ( index !== null ) { + + var array = Array.prototype.slice.call( index.array ); + + data.data.index = { + type: index.array.constructor.name, + array: array + }; + + } + + var attributes = this.attributes; + + for ( var key in attributes ) { + + var attribute = attributes[ key ]; + + var array = Array.prototype.slice.call( attribute.array ); + + data.data.attributes[ key ] = { + itemSize: attribute.itemSize, + type: attribute.array.constructor.name, + array: array, + normalized: attribute.normalized + }; + + } + + var groups = this.groups; + + if ( groups.length > 0 ) { + + data.data.groups = JSON.parse( JSON.stringify( groups ) ); + + } + + var boundingSphere = this.boundingSphere; + + if ( boundingSphere !== null ) { + + data.data.boundingSphere = { + center: boundingSphere.center.toArray(), + radius: boundingSphere.radius + }; + + } + + return data; + + }, + + clone: function () { + + /* + // Handle primitives + + var parameters = this.parameters; + + if ( parameters !== undefined ) { + + var values = []; + + for ( var key in parameters ) { + + values.push( parameters[ key ] ); + + } + + var geometry = Object.create( this.constructor.prototype ); + this.constructor.apply( geometry, values ); + return geometry; + + } + + return new this.constructor().copy( this ); + */ + + return new BufferGeometry().copy( this ); + + }, + + copy: function ( source ) { + + var index = source.index; + + if ( index !== null ) { + + this.setIndex( index.clone() ); + + } + + var attributes = source.attributes; + + for ( var name in attributes ) { + + var attribute = attributes[ name ]; + this.addAttribute( name, attribute.clone() ); + + } + + var groups = source.groups; + + for ( var i = 0, l = groups.length; i < l; i ++ ) { + + var group = groups[ i ]; + this.addGroup( group.start, group.count, group.materialIndex ); + + } + + return this; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + + } ); + + BufferGeometry.MaxIndex = 65535; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author jonobr1 / http://jonobr1.com/ + */ + + function Mesh( geometry, material ) { + + Object3D.call( this ); + + this.type = 'Mesh'; + + this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); + this.material = material !== undefined ? material : new MeshBasicMaterial( { color: Math.random() * 0xffffff } ); + + this.drawMode = TrianglesDrawMode; + + this.updateMorphTargets(); + + } + + Mesh.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Mesh, + + isMesh: true, + + setDrawMode: function ( value ) { + + this.drawMode = value; + + }, + + copy: function ( source ) { + + Object3D.prototype.copy.call( this, source ); + + this.drawMode = source.drawMode; + + return this; + + }, + + updateMorphTargets: function () { + + var morphTargets = this.geometry.morphTargets; + + if ( morphTargets !== undefined && morphTargets.length > 0 ) { + + this.morphTargetInfluences = []; + this.morphTargetDictionary = {}; + + for ( var m = 0, ml = morphTargets.length; m < ml; m ++ ) { + + this.morphTargetInfluences.push( 0 ); + this.morphTargetDictionary[ morphTargets[ m ].name ] = m; + + } + + } + + }, + + raycast: ( function () { + + var inverseMatrix = new Matrix4(); + var ray = new Ray(); + var sphere = new Sphere(); + + var vA = new Vector3(); + var vB = new Vector3(); + var vC = new Vector3(); + + var tempA = new Vector3(); + var tempB = new Vector3(); + var tempC = new Vector3(); + + var uvA = new Vector2(); + var uvB = new Vector2(); + var uvC = new Vector2(); + + var barycoord = new Vector3(); + + var intersectionPoint = new Vector3(); + var intersectionPointWorld = new Vector3(); + + function uvIntersection( point, p1, p2, p3, uv1, uv2, uv3 ) { + + Triangle.barycoordFromPoint( point, p1, p2, p3, barycoord ); + + uv1.multiplyScalar( barycoord.x ); + uv2.multiplyScalar( barycoord.y ); + uv3.multiplyScalar( barycoord.z ); + + uv1.add( uv2 ).add( uv3 ); + + return uv1.clone(); + + } + + function checkIntersection( object, raycaster, ray, pA, pB, pC, point ) { + + var intersect; + var material = object.material; + + if ( material.side === BackSide ) { + + intersect = ray.intersectTriangle( pC, pB, pA, true, point ); + + } else { + + intersect = ray.intersectTriangle( pA, pB, pC, material.side !== DoubleSide, point ); + + } + + if ( intersect === null ) return null; + + intersectionPointWorld.copy( point ); + intersectionPointWorld.applyMatrix4( object.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectionPointWorld ); + + if ( distance < raycaster.near || distance > raycaster.far ) return null; + + return { + distance: distance, + point: intersectionPointWorld.clone(), + object: object + }; + + } + + function checkBufferGeometryIntersection( object, raycaster, ray, positions, uvs, a, b, c ) { + + vA.fromArray( positions, a * 3 ); + vB.fromArray( positions, b * 3 ); + vC.fromArray( positions, c * 3 ); + + var intersection = checkIntersection( object, raycaster, ray, vA, vB, vC, intersectionPoint ); + + if ( intersection ) { + + if ( uvs ) { + + uvA.fromArray( uvs, a * 2 ); + uvB.fromArray( uvs, b * 2 ); + uvC.fromArray( uvs, c * 2 ); + + intersection.uv = uvIntersection( intersectionPoint, vA, vB, vC, uvA, uvB, uvC ); + + } + + intersection.face = new Face3( a, b, c, Triangle.normal( vA, vB, vC ) ); + intersection.faceIndex = a; + + } + + return intersection; + + } + + return function raycast( raycaster, intersects ) { + + var geometry = this.geometry; + var material = this.material; + var matrixWorld = this.matrixWorld; + + if ( material === undefined ) return; + + // Checking boundingSphere distance to ray + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( matrixWorld ); + + if ( raycaster.ray.intersectsSphere( sphere ) === false ) return; + + // + + inverseMatrix.getInverse( matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + // Check boundingBox before continuing + + if ( geometry.boundingBox !== null ) { + + if ( ray.intersectsBox( geometry.boundingBox ) === false ) return; + + } + + var uvs, intersection; + + if ( (geometry && geometry.isBufferGeometry) ) { + + var a, b, c; + var index = geometry.index; + var attributes = geometry.attributes; + var positions = attributes.position.array; + + if ( attributes.uv !== undefined ) { + + uvs = attributes.uv.array; + + } + + if ( index !== null ) { + + var indices = index.array; + + for ( var i = 0, l = indices.length; i < l; i += 3 ) { + + a = indices[ i ]; + b = indices[ i + 1 ]; + c = indices[ i + 2 ]; + + intersection = checkBufferGeometryIntersection( this, raycaster, ray, positions, uvs, a, b, c ); + + if ( intersection ) { + + intersection.faceIndex = Math.floor( i / 3 ); // triangle number in indices buffer semantics + intersects.push( intersection ); + + } + + } + + } else { + + + for ( var i = 0, l = positions.length; i < l; i += 9 ) { + + a = i / 3; + b = a + 1; + c = a + 2; + + intersection = checkBufferGeometryIntersection( this, raycaster, ray, positions, uvs, a, b, c ); + + if ( intersection ) { + + intersection.index = a; // triangle number in positions buffer semantics + intersects.push( intersection ); + + } + + } + + } + + } else if ( (geometry && geometry.isGeometry) ) { + + var fvA, fvB, fvC; + var isFaceMaterial = (material && material.isMultiMaterial); + var materials = isFaceMaterial === true ? material.materials : null; + + var vertices = geometry.vertices; + var faces = geometry.faces; + var faceVertexUvs = geometry.faceVertexUvs[ 0 ]; + if ( faceVertexUvs.length > 0 ) uvs = faceVertexUvs; + + for ( var f = 0, fl = faces.length; f < fl; f ++ ) { + + var face = faces[ f ]; + var faceMaterial = isFaceMaterial === true ? materials[ face.materialIndex ] : material; + + if ( faceMaterial === undefined ) continue; + + fvA = vertices[ face.a ]; + fvB = vertices[ face.b ]; + fvC = vertices[ face.c ]; + + if ( faceMaterial.morphTargets === true ) { + + var morphTargets = geometry.morphTargets; + var morphInfluences = this.morphTargetInfluences; + + vA.set( 0, 0, 0 ); + vB.set( 0, 0, 0 ); + vC.set( 0, 0, 0 ); + + for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) { + + var influence = morphInfluences[ t ]; + + if ( influence === 0 ) continue; + + var targets = morphTargets[ t ].vertices; + + vA.addScaledVector( tempA.subVectors( targets[ face.a ], fvA ), influence ); + vB.addScaledVector( tempB.subVectors( targets[ face.b ], fvB ), influence ); + vC.addScaledVector( tempC.subVectors( targets[ face.c ], fvC ), influence ); + + } + + vA.add( fvA ); + vB.add( fvB ); + vC.add( fvC ); + + fvA = vA; + fvB = vB; + fvC = vC; + + } + + intersection = checkIntersection( this, raycaster, ray, fvA, fvB, fvC, intersectionPoint ); + + if ( intersection ) { + + if ( uvs ) { + + var uvs_f = uvs[ f ]; + uvA.copy( uvs_f[ 0 ] ); + uvB.copy( uvs_f[ 1 ] ); + uvC.copy( uvs_f[ 2 ] ); + + intersection.uv = uvIntersection( intersectionPoint, fvA, fvB, fvC, uvA, uvB, uvC ); + + } + + intersection.face = face; + intersection.faceIndex = f; + intersects.push( intersection ); + + } + + } + + } + + }; + + }() ), + + clone: function () { + + return new this.constructor( this.geometry, this.material ).copy( this ); + + } + + } ); + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function BoxBufferGeometry( width, height, depth, widthSegments, heightSegments, depthSegments ) { + + BufferGeometry.call( this ); + + this.type = 'BoxBufferGeometry'; + + this.parameters = { + width: width, + height: height, + depth: depth, + widthSegments: widthSegments, + heightSegments: heightSegments, + depthSegments: depthSegments + }; + + var scope = this; + + // segments + widthSegments = Math.floor( widthSegments ) || 1; + heightSegments = Math.floor( heightSegments ) || 1; + depthSegments = Math.floor( depthSegments ) || 1; + + // these are used to calculate buffer length + var vertexCount = calculateVertexCount( widthSegments, heightSegments, depthSegments ); + var indexCount = calculateIndexCount( widthSegments, heightSegments, depthSegments ); + + // buffers + var indices = new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ); + var vertices = new Float32Array( vertexCount * 3 ); + var normals = new Float32Array( vertexCount * 3 ); + var uvs = new Float32Array( vertexCount * 2 ); + + // offset variables + var vertexBufferOffset = 0; + var uvBufferOffset = 0; + var indexBufferOffset = 0; + var numberOfVertices = 0; + + // group variables + var groupStart = 0; + + // build each side of the box geometry + buildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px + buildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx + buildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py + buildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny + buildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz + buildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz + + // build geometry + this.setIndex( new BufferAttribute( indices, 1 ) ); + this.addAttribute( 'position', new BufferAttribute( vertices, 3 ) ); + this.addAttribute( 'normal', new BufferAttribute( normals, 3 ) ); + this.addAttribute( 'uv', new BufferAttribute( uvs, 2 ) ); + + // helper functions + + function calculateVertexCount( w, h, d ) { + + var vertices = 0; + + // calculate the amount of vertices for each side (plane) + vertices += (w + 1) * (h + 1) * 2; // xy + vertices += (w + 1) * (d + 1) * 2; // xz + vertices += (d + 1) * (h + 1) * 2; // zy + + return vertices; + + } + + function calculateIndexCount( w, h, d ) { + + var index = 0; + + // calculate the amount of squares for each side + index += w * h * 2; // xy + index += w * d * 2; // xz + index += d * h * 2; // zy + + return index * 6; // two triangles per square => six vertices per square + + } + + function buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) { + + var segmentWidth = width / gridX; + var segmentHeight = height / gridY; + + var widthHalf = width / 2; + var heightHalf = height / 2; + var depthHalf = depth / 2; + + var gridX1 = gridX + 1; + var gridY1 = gridY + 1; + + var vertexCounter = 0; + var groupCount = 0; + + var vector = new Vector3(); + + // generate vertices, normals and uvs + + for ( var iy = 0; iy < gridY1; iy ++ ) { + + var y = iy * segmentHeight - heightHalf; + + for ( var ix = 0; ix < gridX1; ix ++ ) { + + var x = ix * segmentWidth - widthHalf; + + // set values to correct vector component + vector[ u ] = x * udir; + vector[ v ] = y * vdir; + vector[ w ] = depthHalf; + + // now apply vector to vertex buffer + vertices[ vertexBufferOffset ] = vector.x; + vertices[ vertexBufferOffset + 1 ] = vector.y; + vertices[ vertexBufferOffset + 2 ] = vector.z; + + // set values to correct vector component + vector[ u ] = 0; + vector[ v ] = 0; + vector[ w ] = depth > 0 ? 1 : - 1; + + // now apply vector to normal buffer + normals[ vertexBufferOffset ] = vector.x; + normals[ vertexBufferOffset + 1 ] = vector.y; + normals[ vertexBufferOffset + 2 ] = vector.z; + + // uvs + uvs[ uvBufferOffset ] = ix / gridX; + uvs[ uvBufferOffset + 1 ] = 1 - ( iy / gridY ); + + // update offsets and counters + vertexBufferOffset += 3; + uvBufferOffset += 2; + vertexCounter += 1; + + } + + } + + // 1. you need three indices to draw a single face + // 2. a single segment consists of two faces + // 3. so we need to generate six (2*3) indices per segment + + for ( iy = 0; iy < gridY; iy ++ ) { + + for ( ix = 0; ix < gridX; ix ++ ) { + + // indices + var a = numberOfVertices + ix + gridX1 * iy; + var b = numberOfVertices + ix + gridX1 * ( iy + 1 ); + var c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 ); + var d = numberOfVertices + ( ix + 1 ) + gridX1 * iy; + + // face one + indices[ indexBufferOffset ] = a; + indices[ indexBufferOffset + 1 ] = b; + indices[ indexBufferOffset + 2 ] = d; + + // face two + indices[ indexBufferOffset + 3 ] = b; + indices[ indexBufferOffset + 4 ] = c; + indices[ indexBufferOffset + 5 ] = d; + + // update offsets and counters + indexBufferOffset += 6; + groupCount += 6; + + } + + } + + // add a group to the geometry. this will ensure multi material support + scope.addGroup( groupStart, groupCount, materialIndex ); + + // calculate new start value for groups + groupStart += groupCount; + + // update total number of vertices + numberOfVertices += vertexCounter; + + } + + } + + BoxBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + BoxBufferGeometry.prototype.constructor = BoxBufferGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as + */ + + function PlaneBufferGeometry( width, height, widthSegments, heightSegments ) { + + BufferGeometry.call( this ); + + this.type = 'PlaneBufferGeometry'; + + this.parameters = { + width: width, + height: height, + widthSegments: widthSegments, + heightSegments: heightSegments + }; + + var width_half = width / 2; + var height_half = height / 2; + + var gridX = Math.floor( widthSegments ) || 1; + var gridY = Math.floor( heightSegments ) || 1; + + var gridX1 = gridX + 1; + var gridY1 = gridY + 1; + + var segment_width = width / gridX; + var segment_height = height / gridY; + + var vertices = new Float32Array( gridX1 * gridY1 * 3 ); + var normals = new Float32Array( gridX1 * gridY1 * 3 ); + var uvs = new Float32Array( gridX1 * gridY1 * 2 ); + + var offset = 0; + var offset2 = 0; + + for ( var iy = 0; iy < gridY1; iy ++ ) { + + var y = iy * segment_height - height_half; + + for ( var ix = 0; ix < gridX1; ix ++ ) { + + var x = ix * segment_width - width_half; + + vertices[ offset ] = x; + vertices[ offset + 1 ] = - y; + + normals[ offset + 2 ] = 1; + + uvs[ offset2 ] = ix / gridX; + uvs[ offset2 + 1 ] = 1 - ( iy / gridY ); + + offset += 3; + offset2 += 2; + + } + + } + + offset = 0; + + var indices = new ( ( vertices.length / 3 ) > 65535 ? Uint32Array : Uint16Array )( gridX * gridY * 6 ); + + for ( var iy = 0; iy < gridY; iy ++ ) { + + for ( var ix = 0; ix < gridX; ix ++ ) { + + var a = ix + gridX1 * iy; + var b = ix + gridX1 * ( iy + 1 ); + var c = ( ix + 1 ) + gridX1 * ( iy + 1 ); + var d = ( ix + 1 ) + gridX1 * iy; + + indices[ offset ] = a; + indices[ offset + 1 ] = b; + indices[ offset + 2 ] = d; + + indices[ offset + 3 ] = b; + indices[ offset + 4 ] = c; + indices[ offset + 5 ] = d; + + offset += 6; + + } + + } + + this.setIndex( new BufferAttribute( indices, 1 ) ); + this.addAttribute( 'position', new BufferAttribute( vertices, 3 ) ); + this.addAttribute( 'normal', new BufferAttribute( normals, 3 ) ); + this.addAttribute( 'uv', new BufferAttribute( uvs, 2 ) ); + + } + + PlaneBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + PlaneBufferGeometry.prototype.constructor = PlaneBufferGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + * @author WestLangley / http://github.com/WestLangley + */ + + function Camera() { + + Object3D.call( this ); + + this.type = 'Camera'; + + this.matrixWorldInverse = new Matrix4(); + this.projectionMatrix = new Matrix4(); + + } + + Camera.prototype = Object.create( Object3D.prototype ); + Camera.prototype.constructor = Camera; + + Camera.prototype.isCamera = true; + + Camera.prototype.getWorldDirection = function () { + + var quaternion = new Quaternion(); + + return function getWorldDirection( optionalTarget ) { + + var result = optionalTarget || new Vector3(); + + this.getWorldQuaternion( quaternion ); + + return result.set( 0, 0, - 1 ).applyQuaternion( quaternion ); + + }; + + }(); + + Camera.prototype.lookAt = function () { + + // This routine does not support cameras with rotated and/or translated parent(s) + + var m1 = new Matrix4(); + + return function lookAt( vector ) { + + m1.lookAt( this.position, vector, this.up ); + + this.quaternion.setFromRotationMatrix( m1 ); + + }; + + }(); + + Camera.prototype.clone = function () { + + return new this.constructor().copy( this ); + + }; + + Camera.prototype.copy = function ( source ) { + + Object3D.prototype.copy.call( this, source ); + + this.matrixWorldInverse.copy( source.matrixWorldInverse ); + this.projectionMatrix.copy( source.projectionMatrix ); + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author greggman / http://games.greggman.com/ + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author tschw + */ + + function PerspectiveCamera( fov, aspect, near, far ) { + + Camera.call( this ); + + this.type = 'PerspectiveCamera'; + + this.fov = fov !== undefined ? fov : 50; + this.zoom = 1; + + this.near = near !== undefined ? near : 0.1; + this.far = far !== undefined ? far : 2000; + this.focus = 10; + + this.aspect = aspect !== undefined ? aspect : 1; + this.view = null; + + this.filmGauge = 35; // width of the film (default in millimeters) + this.filmOffset = 0; // horizontal film offset (same unit as gauge) + + this.updateProjectionMatrix(); + + } + + PerspectiveCamera.prototype = Object.assign( Object.create( Camera.prototype ), { + + constructor: PerspectiveCamera, + + isPerspectiveCamera: true, + + copy: function ( source ) { + + Camera.prototype.copy.call( this, source ); + + this.fov = source.fov; + this.zoom = source.zoom; + + this.near = source.near; + this.far = source.far; + this.focus = source.focus; + + this.aspect = source.aspect; + this.view = source.view === null ? null : Object.assign( {}, source.view ); + + this.filmGauge = source.filmGauge; + this.filmOffset = source.filmOffset; + + return this; + + }, + + /** + * Sets the FOV by focal length in respect to the current .filmGauge. + * + * The default film gauge is 35, so that the focal length can be specified for + * a 35mm (full frame) camera. + * + * Values for focal length and film gauge must have the same unit. + */ + setFocalLength: function ( focalLength ) { + + // see http://www.bobatkins.com/photography/technical/field_of_view.html + var vExtentSlope = 0.5 * this.getFilmHeight() / focalLength; + + this.fov = _Math.RAD2DEG * 2 * Math.atan( vExtentSlope ); + this.updateProjectionMatrix(); + + }, + + /** + * Calculates the focal length from the current .fov and .filmGauge. + */ + getFocalLength: function () { + + var vExtentSlope = Math.tan( _Math.DEG2RAD * 0.5 * this.fov ); + + return 0.5 * this.getFilmHeight() / vExtentSlope; + + }, + + getEffectiveFOV: function () { + + return _Math.RAD2DEG * 2 * Math.atan( + Math.tan( _Math.DEG2RAD * 0.5 * this.fov ) / this.zoom ); + + }, + + getFilmWidth: function () { + + // film not completely covered in portrait format (aspect < 1) + return this.filmGauge * Math.min( this.aspect, 1 ); + + }, + + getFilmHeight: function () { + + // film not completely covered in landscape format (aspect > 1) + return this.filmGauge / Math.max( this.aspect, 1 ); + + }, + + /** + * Sets an offset in a larger frustum. This is useful for multi-window or + * multi-monitor/multi-machine setups. + * + * For example, if you have 3x2 monitors and each monitor is 1920x1080 and + * the monitors are in grid like this + * + * +---+---+---+ + * | A | B | C | + * +---+---+---+ + * | D | E | F | + * +---+---+---+ + * + * then for each monitor you would call it like this + * + * var w = 1920; + * var h = 1080; + * var fullWidth = w * 3; + * var fullHeight = h * 2; + * + * --A-- + * camera.setOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); + * --B-- + * camera.setOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); + * --C-- + * camera.setOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); + * --D-- + * camera.setOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); + * --E-- + * camera.setOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); + * --F-- + * camera.setOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); + * + * Note there is no reason monitors have to be the same size or in a grid. + */ + setViewOffset: function ( fullWidth, fullHeight, x, y, width, height ) { + + this.aspect = fullWidth / fullHeight; + + this.view = { + fullWidth: fullWidth, + fullHeight: fullHeight, + offsetX: x, + offsetY: y, + width: width, + height: height + }; + + this.updateProjectionMatrix(); + + }, + + clearViewOffset: function() { + + this.view = null; + this.updateProjectionMatrix(); + + }, + + updateProjectionMatrix: function () { + + var near = this.near, + top = near * Math.tan( + _Math.DEG2RAD * 0.5 * this.fov ) / this.zoom, + height = 2 * top, + width = this.aspect * height, + left = - 0.5 * width, + view = this.view; + + if ( view !== null ) { + + var fullWidth = view.fullWidth, + fullHeight = view.fullHeight; + + left += view.offsetX * width / fullWidth; + top -= view.offsetY * height / fullHeight; + width *= view.width / fullWidth; + height *= view.height / fullHeight; + + } + + var skew = this.filmOffset; + if ( skew !== 0 ) left += near * skew / this.getFilmWidth(); + + this.projectionMatrix.makeFrustum( + left, left + width, top - height, top, near, this.far ); + + }, + + toJSON: function ( meta ) { + + var data = Object3D.prototype.toJSON.call( this, meta ); + + data.object.fov = this.fov; + data.object.zoom = this.zoom; + + data.object.near = this.near; + data.object.far = this.far; + data.object.focus = this.focus; + + data.object.aspect = this.aspect; + + if ( this.view !== null ) data.object.view = Object.assign( {}, this.view ); + + data.object.filmGauge = this.filmGauge; + data.object.filmOffset = this.filmOffset; + + return data; + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + * @author arose / http://github.com/arose + */ + + function OrthographicCamera( left, right, top, bottom, near, far ) { + + Camera.call( this ); + + this.type = 'OrthographicCamera'; + + this.zoom = 1; + this.view = null; + + this.left = left; + this.right = right; + this.top = top; + this.bottom = bottom; + + this.near = ( near !== undefined ) ? near : 0.1; + this.far = ( far !== undefined ) ? far : 2000; + + this.updateProjectionMatrix(); + + } + + OrthographicCamera.prototype = Object.assign( Object.create( Camera.prototype ), { + + constructor: OrthographicCamera, + + isOrthographicCamera: true, + + copy: function ( source ) { + + Camera.prototype.copy.call( this, source ); + + this.left = source.left; + this.right = source.right; + this.top = source.top; + this.bottom = source.bottom; + this.near = source.near; + this.far = source.far; + + this.zoom = source.zoom; + this.view = source.view === null ? null : Object.assign( {}, source.view ); + + return this; + + }, + + setViewOffset: function( fullWidth, fullHeight, x, y, width, height ) { + + this.view = { + fullWidth: fullWidth, + fullHeight: fullHeight, + offsetX: x, + offsetY: y, + width: width, + height: height + }; + + this.updateProjectionMatrix(); + + }, + + clearViewOffset: function() { + + this.view = null; + this.updateProjectionMatrix(); + + }, + + updateProjectionMatrix: function () { + + var dx = ( this.right - this.left ) / ( 2 * this.zoom ); + var dy = ( this.top - this.bottom ) / ( 2 * this.zoom ); + var cx = ( this.right + this.left ) / 2; + var cy = ( this.top + this.bottom ) / 2; + + var left = cx - dx; + var right = cx + dx; + var top = cy + dy; + var bottom = cy - dy; + + if ( this.view !== null ) { + + var zoomW = this.zoom / ( this.view.width / this.view.fullWidth ); + var zoomH = this.zoom / ( this.view.height / this.view.fullHeight ); + var scaleW = ( this.right - this.left ) / this.view.width; + var scaleH = ( this.top - this.bottom ) / this.view.height; + + left += scaleW * ( this.view.offsetX / zoomW ); + right = left + scaleW * ( this.view.width / zoomW ); + top -= scaleH * ( this.view.offsetY / zoomH ); + bottom = top - scaleH * ( this.view.height / zoomH ); + + } + + this.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far ); + + }, + + toJSON: function ( meta ) { + + var data = Object3D.prototype.toJSON.call( this, meta ); + + data.object.zoom = this.zoom; + data.object.left = this.left; + data.object.right = this.right; + data.object.top = this.top; + data.object.bottom = this.bottom; + data.object.near = this.near; + data.object.far = this.far; + + if ( this.view !== null ) data.object.view = Object.assign( {}, this.view ); + + return data; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLIndexedBufferRenderer( gl, extensions, infoRender ) { + + var mode; + + function setMode( value ) { + + mode = value; + + } + + var type, size; + + function setIndex( index ) { + + if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) { + + type = gl.UNSIGNED_INT; + size = 4; + + } else { + + type = gl.UNSIGNED_SHORT; + size = 2; + + } + + } + + function render( start, count ) { + + gl.drawElements( mode, count, type, start * size ); + + infoRender.calls ++; + infoRender.vertices += count; + + if ( mode === gl.TRIANGLES ) infoRender.faces += count / 3; + + } + + function renderInstances( geometry, start, count ) { + + var extension = extensions.get( 'ANGLE_instanced_arrays' ); + + if ( extension === null ) { + + console.error( 'THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' ); + return; + + } + + extension.drawElementsInstancedANGLE( mode, count, type, start * size, geometry.maxInstancedCount ); + + infoRender.calls ++; + infoRender.vertices += count * geometry.maxInstancedCount; + + if ( mode === gl.TRIANGLES ) infoRender.faces += geometry.maxInstancedCount * count / 3; + + } + + return { + + setMode: setMode, + setIndex: setIndex, + render: render, + renderInstances: renderInstances + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLBufferRenderer( gl, extensions, infoRender ) { + + var mode; + + function setMode( value ) { + + mode = value; + + } + + function render( start, count ) { + + gl.drawArrays( mode, start, count ); + + infoRender.calls ++; + infoRender.vertices += count; + + if ( mode === gl.TRIANGLES ) infoRender.faces += count / 3; + + } + + function renderInstances( geometry ) { + + var extension = extensions.get( 'ANGLE_instanced_arrays' ); + + if ( extension === null ) { + + console.error( 'THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' ); + return; + + } + + var position = geometry.attributes.position; + + var count = 0; + + if ( (position && position.isInterleavedBufferAttribute) ) { + + count = position.data.count; + + extension.drawArraysInstancedANGLE( mode, 0, count, geometry.maxInstancedCount ); + + } else { + + count = position.count; + + extension.drawArraysInstancedANGLE( mode, 0, count, geometry.maxInstancedCount ); + + } + + infoRender.calls ++; + infoRender.vertices += count * geometry.maxInstancedCount; + + if ( mode === gl.TRIANGLES ) infoRender.faces += geometry.maxInstancedCount * count / 3; + + } + + return { + setMode: setMode, + render: render, + renderInstances: renderInstances + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLLights() { + + var lights = {}; + + return { + + get: function ( light ) { + + if ( lights[ light.id ] !== undefined ) { + + return lights[ light.id ]; + + } + + var uniforms; + + switch ( light.type ) { + + case 'DirectionalLight': + uniforms = { + direction: new Vector3(), + color: new Color(), + + shadow: false, + shadowBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2() + }; + break; + + case 'SpotLight': + uniforms = { + position: new Vector3(), + direction: new Vector3(), + color: new Color(), + distance: 0, + coneCos: 0, + penumbraCos: 0, + decay: 0, + + shadow: false, + shadowBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2() + }; + break; + + case 'PointLight': + uniforms = { + position: new Vector3(), + color: new Color(), + distance: 0, + decay: 0, + + shadow: false, + shadowBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2() + }; + break; + + case 'HemisphereLight': + uniforms = { + direction: new Vector3(), + skyColor: new Color(), + groundColor: new Color() + }; + break; + + } + + lights[ light.id ] = uniforms; + + return uniforms; + + } + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function addLineNumbers( string ) { + + var lines = string.split( '\n' ); + + for ( var i = 0; i < lines.length; i ++ ) { + + lines[ i ] = ( i + 1 ) + ': ' + lines[ i ]; + + } + + return lines.join( '\n' ); + + } + + function WebGLShader( gl, type, string ) { + + var shader = gl.createShader( type ); + + gl.shaderSource( shader, string ); + gl.compileShader( shader ); + + if ( gl.getShaderParameter( shader, gl.COMPILE_STATUS ) === false ) { + + console.error( 'THREE.WebGLShader: Shader couldn\'t compile.' ); + + } + + if ( gl.getShaderInfoLog( shader ) !== '' ) { + + console.warn( 'THREE.WebGLShader: gl.getShaderInfoLog()', type === gl.VERTEX_SHADER ? 'vertex' : 'fragment', gl.getShaderInfoLog( shader ), addLineNumbers( string ) ); + + } + + // --enable-privileged-webgl-extension + // console.log( type, gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) ); + + return shader; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + var programIdCount = 0; + + function getEncodingComponents( encoding ) { + + switch ( encoding ) { + + case LinearEncoding: + return [ 'Linear','( value )' ]; + case sRGBEncoding: + return [ 'sRGB','( value )' ]; + case RGBEEncoding: + return [ 'RGBE','( value )' ]; + case RGBM7Encoding: + return [ 'RGBM','( value, 7.0 )' ]; + case RGBM16Encoding: + return [ 'RGBM','( value, 16.0 )' ]; + case RGBDEncoding: + return [ 'RGBD','( value, 256.0 )' ]; + case GammaEncoding: + return [ 'Gamma','( value, float( GAMMA_FACTOR ) )' ]; + default: + throw new Error( 'unsupported encoding: ' + encoding ); + + } + + } + + function getTexelDecodingFunction( functionName, encoding ) { + + var components = getEncodingComponents( encoding ); + return "vec4 " + functionName + "( vec4 value ) { return " + components[ 0 ] + "ToLinear" + components[ 1 ] + "; }"; + + } + + function getTexelEncodingFunction( functionName, encoding ) { + + var components = getEncodingComponents( encoding ); + return "vec4 " + functionName + "( vec4 value ) { return LinearTo" + components[ 0 ] + components[ 1 ] + "; }"; + + } + + function getToneMappingFunction( functionName, toneMapping ) { + + var toneMappingName; + + switch ( toneMapping ) { + + case LinearToneMapping: + toneMappingName = "Linear"; + break; + + case ReinhardToneMapping: + toneMappingName = "Reinhard"; + break; + + case Uncharted2ToneMapping: + toneMappingName = "Uncharted2"; + break; + + case CineonToneMapping: + toneMappingName = "OptimizedCineon"; + break; + + default: + throw new Error( 'unsupported toneMapping: ' + toneMapping ); + + } + + return "vec3 " + functionName + "( vec3 color ) { return " + toneMappingName + "ToneMapping( color ); }"; + + } + + function generateExtensions( extensions, parameters, rendererExtensions ) { + + extensions = extensions || {}; + + var chunks = [ + ( extensions.derivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.normalMap || parameters.flatShading ) ? '#extension GL_OES_standard_derivatives : enable' : '', + ( extensions.fragDepth || parameters.logarithmicDepthBuffer ) && rendererExtensions.get( 'EXT_frag_depth' ) ? '#extension GL_EXT_frag_depth : enable' : '', + ( extensions.drawBuffers ) && rendererExtensions.get( 'WEBGL_draw_buffers' ) ? '#extension GL_EXT_draw_buffers : require' : '', + ( extensions.shaderTextureLOD || parameters.envMap ) && rendererExtensions.get( 'EXT_shader_texture_lod' ) ? '#extension GL_EXT_shader_texture_lod : enable' : '', + ]; + + return chunks.filter( filterEmptyLine ).join( '\n' ); + + } + + function generateDefines( defines ) { + + var chunks = []; + + for ( var name in defines ) { + + var value = defines[ name ]; + + if ( value === false ) continue; + + chunks.push( '#define ' + name + ' ' + value ); + + } + + return chunks.join( '\n' ); + + } + + function fetchAttributeLocations( gl, program, identifiers ) { + + var attributes = {}; + + var n = gl.getProgramParameter( program, gl.ACTIVE_ATTRIBUTES ); + + for ( var i = 0; i < n; i ++ ) { + + var info = gl.getActiveAttrib( program, i ); + var name = info.name; + + // console.log("THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:", name, i ); + + attributes[ name ] = gl.getAttribLocation( program, name ); + + } + + return attributes; + + } + + function filterEmptyLine( string ) { + + return string !== ''; + + } + + function replaceLightNums( string, parameters ) { + + return string + .replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights ) + .replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights ) + .replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights ) + .replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights ); + + } + + function parseIncludes( string ) { + + var pattern = /#include +<([\w\d.]+)>/g; + + function replace( match, include ) { + + var replace = ShaderChunk[ include ]; + + if ( replace === undefined ) { + + throw new Error( 'Can not resolve #include <' + include + '>' ); + + } + + return parseIncludes( replace ); + + } + + return string.replace( pattern, replace ); + + } + + function unrollLoops( string ) { + + var pattern = /for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g; + + function replace( match, start, end, snippet ) { + + var unroll = ''; + + for ( var i = parseInt( start ); i < parseInt( end ); i ++ ) { + + unroll += snippet.replace( /\[ i \]/g, '[ ' + i + ' ]' ); + + } + + return unroll; + + } + + return string.replace( pattern, replace ); + + } + + function WebGLProgram( renderer, code, material, parameters ) { + + var gl = renderer.context; + + var extensions = material.extensions; + var defines = material.defines; + + var vertexShader = material.__webglShader.vertexShader; + var fragmentShader = material.__webglShader.fragmentShader; + + var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC'; + + if ( parameters.shadowMapType === PCFShadowMap ) { + + shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF'; + + } else if ( parameters.shadowMapType === PCFSoftShadowMap ) { + + shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT'; + + } + + var envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; + var envMapModeDefine = 'ENVMAP_MODE_REFLECTION'; + var envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY'; + + if ( parameters.envMap ) { + + switch ( material.envMap.mapping ) { + + case CubeReflectionMapping: + case CubeRefractionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; + break; + + case CubeUVReflectionMapping: + case CubeUVRefractionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV'; + break; + + case EquirectangularReflectionMapping: + case EquirectangularRefractionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_EQUIREC'; + break; + + case SphericalReflectionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_SPHERE'; + break; + + } + + switch ( material.envMap.mapping ) { + + case CubeRefractionMapping: + case EquirectangularRefractionMapping: + envMapModeDefine = 'ENVMAP_MODE_REFRACTION'; + break; + + } + + switch ( material.combine ) { + + case MultiplyOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY'; + break; + + case MixOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_MIX'; + break; + + case AddOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_ADD'; + break; + + } + + } + + var gammaFactorDefine = ( renderer.gammaFactor > 0 ) ? renderer.gammaFactor : 1.0; + + // console.log( 'building new program ' ); + + // + + var customExtensions = generateExtensions( extensions, parameters, renderer.extensions ); + + var customDefines = generateDefines( defines ); + + // + + var program = gl.createProgram(); + + var prefixVertex, prefixFragment; + + if ( material.isRawShaderMaterial ) { + + prefixVertex = [ + + customDefines, + + '\n' + + ].filter( filterEmptyLine ).join( '\n' ); + + prefixFragment = [ + + customExtensions, + customDefines, + + '\n' + + ].filter( filterEmptyLine ).join( '\n' ); + + } else { + + prefixVertex = [ + + 'precision ' + parameters.precision + ' float;', + 'precision ' + parameters.precision + ' int;', + + '#define SHADER_NAME ' + material.__webglShader.name, + + customDefines, + + parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', + + '#define GAMMA_FACTOR ' + gammaFactorDefine, + + '#define MAX_BONES ' + parameters.maxBones, + + parameters.map ? '#define USE_MAP' : '', + parameters.envMap ? '#define USE_ENVMAP' : '', + parameters.envMap ? '#define ' + envMapModeDefine : '', + parameters.lightMap ? '#define USE_LIGHTMAP' : '', + parameters.aoMap ? '#define USE_AOMAP' : '', + parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.bumpMap ? '#define USE_BUMPMAP' : '', + parameters.normalMap ? '#define USE_NORMALMAP' : '', + parameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '', + parameters.specularMap ? '#define USE_SPECULARMAP' : '', + parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', + parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', + parameters.alphaMap ? '#define USE_ALPHAMAP' : '', + parameters.vertexColors ? '#define USE_COLOR' : '', + + parameters.flatShading ? '#define FLAT_SHADED' : '', + + parameters.skinning ? '#define USE_SKINNING' : '', + parameters.useVertexTexture ? '#define BONE_TEXTURE' : '', + + parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', + parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', + parameters.doubleSided ? '#define DOUBLE_SIDED' : '', + parameters.flipSided ? '#define FLIP_SIDED' : '', + + '#define NUM_CLIPPING_PLANES ' + parameters.numClippingPlanes, + + parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', + + parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', + + parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', + + 'uniform mat4 modelMatrix;', + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform mat4 viewMatrix;', + 'uniform mat3 normalMatrix;', + 'uniform vec3 cameraPosition;', + + 'attribute vec3 position;', + 'attribute vec3 normal;', + 'attribute vec2 uv;', + + '#ifdef USE_COLOR', + + ' attribute vec3 color;', + + '#endif', + + '#ifdef USE_MORPHTARGETS', + + ' attribute vec3 morphTarget0;', + ' attribute vec3 morphTarget1;', + ' attribute vec3 morphTarget2;', + ' attribute vec3 morphTarget3;', + + ' #ifdef USE_MORPHNORMALS', + + ' attribute vec3 morphNormal0;', + ' attribute vec3 morphNormal1;', + ' attribute vec3 morphNormal2;', + ' attribute vec3 morphNormal3;', + + ' #else', + + ' attribute vec3 morphTarget4;', + ' attribute vec3 morphTarget5;', + ' attribute vec3 morphTarget6;', + ' attribute vec3 morphTarget7;', + + ' #endif', + + '#endif', + + '#ifdef USE_SKINNING', + + ' attribute vec4 skinIndex;', + ' attribute vec4 skinWeight;', + + '#endif', + + '\n' + + ].filter( filterEmptyLine ).join( '\n' ); + + prefixFragment = [ + + customExtensions, + + 'precision ' + parameters.precision + ' float;', + 'precision ' + parameters.precision + ' int;', + + '#define SHADER_NAME ' + material.__webglShader.name, + + customDefines, + + parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest : '', + + '#define GAMMA_FACTOR ' + gammaFactorDefine, + + ( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '', + ( parameters.useFog && parameters.fogExp ) ? '#define FOG_EXP2' : '', + + parameters.map ? '#define USE_MAP' : '', + parameters.envMap ? '#define USE_ENVMAP' : '', + parameters.envMap ? '#define ' + envMapTypeDefine : '', + parameters.envMap ? '#define ' + envMapModeDefine : '', + parameters.envMap ? '#define ' + envMapBlendingDefine : '', + parameters.lightMap ? '#define USE_LIGHTMAP' : '', + parameters.aoMap ? '#define USE_AOMAP' : '', + parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', + parameters.bumpMap ? '#define USE_BUMPMAP' : '', + parameters.normalMap ? '#define USE_NORMALMAP' : '', + parameters.specularMap ? '#define USE_SPECULARMAP' : '', + parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', + parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', + parameters.alphaMap ? '#define USE_ALPHAMAP' : '', + parameters.vertexColors ? '#define USE_COLOR' : '', + + parameters.flatShading ? '#define FLAT_SHADED' : '', + + parameters.doubleSided ? '#define DOUBLE_SIDED' : '', + parameters.flipSided ? '#define FLIP_SIDED' : '', + + '#define NUM_CLIPPING_PLANES ' + parameters.numClippingPlanes, + '#define UNION_CLIPPING_PLANES ' + (parameters.numClippingPlanes - parameters.numClipIntersection), + + parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', + + parameters.premultipliedAlpha ? "#define PREMULTIPLIED_ALPHA" : '', + + parameters.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : '', + + parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', + + parameters.envMap && renderer.extensions.get( 'EXT_shader_texture_lod' ) ? '#define TEXTURE_LOD_EXT' : '', + + 'uniform mat4 viewMatrix;', + 'uniform vec3 cameraPosition;', + + ( parameters.toneMapping !== NoToneMapping ) ? "#define TONE_MAPPING" : '', + ( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below + ( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( "toneMapping", parameters.toneMapping ) : '', + + ( parameters.outputEncoding || parameters.mapEncoding || parameters.envMapEncoding || parameters.emissiveMapEncoding ) ? ShaderChunk[ 'encodings_pars_fragment' ] : '', // this code is required here because it is used by the various encoding/decoding function defined below + parameters.mapEncoding ? getTexelDecodingFunction( 'mapTexelToLinear', parameters.mapEncoding ) : '', + parameters.envMapEncoding ? getTexelDecodingFunction( 'envMapTexelToLinear', parameters.envMapEncoding ) : '', + parameters.emissiveMapEncoding ? getTexelDecodingFunction( 'emissiveMapTexelToLinear', parameters.emissiveMapEncoding ) : '', + parameters.outputEncoding ? getTexelEncodingFunction( "linearToOutputTexel", parameters.outputEncoding ) : '', + + parameters.depthPacking ? "#define DEPTH_PACKING " + material.depthPacking : '', + + '\n' + + ].filter( filterEmptyLine ).join( '\n' ); + + } + + vertexShader = parseIncludes( vertexShader, parameters ); + vertexShader = replaceLightNums( vertexShader, parameters ); + + fragmentShader = parseIncludes( fragmentShader, parameters ); + fragmentShader = replaceLightNums( fragmentShader, parameters ); + + if ( ! material.isShaderMaterial ) { + + vertexShader = unrollLoops( vertexShader ); + fragmentShader = unrollLoops( fragmentShader ); + + } + + var vertexGlsl = prefixVertex + vertexShader; + var fragmentGlsl = prefixFragment + fragmentShader; + + // console.log( '*VERTEX*', vertexGlsl ); + // console.log( '*FRAGMENT*', fragmentGlsl ); + + var glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl ); + var glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl ); + + gl.attachShader( program, glVertexShader ); + gl.attachShader( program, glFragmentShader ); + + // Force a particular attribute to index 0. + + if ( material.index0AttributeName !== undefined ) { + + gl.bindAttribLocation( program, 0, material.index0AttributeName ); + + } else if ( parameters.morphTargets === true ) { + + // programs with morphTargets displace position out of attribute 0 + gl.bindAttribLocation( program, 0, 'position' ); + + } + + gl.linkProgram( program ); + + var programLog = gl.getProgramInfoLog( program ); + var vertexLog = gl.getShaderInfoLog( glVertexShader ); + var fragmentLog = gl.getShaderInfoLog( glFragmentShader ); + + var runnable = true; + var haveDiagnostics = true; + + // console.log( '**VERTEX**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( glVertexShader ) ); + // console.log( '**FRAGMENT**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( glFragmentShader ) ); + + if ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) { + + runnable = false; + + console.error( 'THREE.WebGLProgram: shader error: ', gl.getError(), 'gl.VALIDATE_STATUS', gl.getProgramParameter( program, gl.VALIDATE_STATUS ), 'gl.getProgramInfoLog', programLog, vertexLog, fragmentLog ); + + } else if ( programLog !== '' ) { + + console.warn( 'THREE.WebGLProgram: gl.getProgramInfoLog()', programLog ); + + } else if ( vertexLog === '' || fragmentLog === '' ) { + + haveDiagnostics = false; + + } + + if ( haveDiagnostics ) { + + this.diagnostics = { + + runnable: runnable, + material: material, + + programLog: programLog, + + vertexShader: { + + log: vertexLog, + prefix: prefixVertex + + }, + + fragmentShader: { + + log: fragmentLog, + prefix: prefixFragment + + } + + }; + + } + + // clean up + + gl.deleteShader( glVertexShader ); + gl.deleteShader( glFragmentShader ); + + // set up caching for uniform locations + + var cachedUniforms; + + this.getUniforms = function() { + + if ( cachedUniforms === undefined ) { + + cachedUniforms = + new WebGLUniforms( gl, program, renderer ); + + } + + return cachedUniforms; + + }; + + // set up caching for attribute locations + + var cachedAttributes; + + this.getAttributes = function() { + + if ( cachedAttributes === undefined ) { + + cachedAttributes = fetchAttributeLocations( gl, program ); + + } + + return cachedAttributes; + + }; + + // free resource + + this.destroy = function() { + + gl.deleteProgram( program ); + this.program = undefined; + + }; + + // DEPRECATED + + Object.defineProperties( this, { + + uniforms: { + get: function() { + + console.warn( 'THREE.WebGLProgram: .uniforms is now .getUniforms().' ); + return this.getUniforms(); + + } + }, + + attributes: { + get: function() { + + console.warn( 'THREE.WebGLProgram: .attributes is now .getAttributes().' ); + return this.getAttributes(); + + } + } + + } ); + + + // + + this.id = programIdCount ++; + this.code = code; + this.usedTimes = 1; + this.program = program; + this.vertexShader = glVertexShader; + this.fragmentShader = glFragmentShader; + + return this; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLPrograms( renderer, capabilities ) { + + var programs = []; + + var shaderIDs = { + MeshDepthMaterial: 'depth', + MeshNormalMaterial: 'normal', + MeshBasicMaterial: 'basic', + MeshLambertMaterial: 'lambert', + MeshPhongMaterial: 'phong', + MeshStandardMaterial: 'physical', + MeshPhysicalMaterial: 'physical', + LineBasicMaterial: 'basic', + LineDashedMaterial: 'dashed', + PointsMaterial: 'points' + }; + + var parameterNames = [ + "precision", "supportsVertexTextures", "map", "mapEncoding", "envMap", "envMapMode", "envMapEncoding", + "lightMap", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "displacementMap", "specularMap", + "roughnessMap", "metalnessMap", + "alphaMap", "combine", "vertexColors", "fog", "useFog", "fogExp", + "flatShading", "sizeAttenuation", "logarithmicDepthBuffer", "skinning", + "maxBones", "useVertexTexture", "morphTargets", "morphNormals", + "maxMorphTargets", "maxMorphNormals", "premultipliedAlpha", + "numDirLights", "numPointLights", "numSpotLights", "numHemiLights", + "shadowMapEnabled", "shadowMapType", "toneMapping", 'physicallyCorrectLights', + "alphaTest", "doubleSided", "flipSided", "numClippingPlanes", "numClipIntersection", "depthPacking" + ]; + + + function allocateBones( object ) { + + if ( capabilities.floatVertexTextures && object && object.skeleton && object.skeleton.useVertexTexture ) { + + return 1024; + + } else { + + // default for when object is not specified + // ( for example when prebuilding shader to be used with multiple objects ) + // + // - leave some extra space for other uniforms + // - limit here is ANGLE's 254 max uniform vectors + // (up to 54 should be safe) + + var nVertexUniforms = capabilities.maxVertexUniforms; + var nVertexMatrices = Math.floor( ( nVertexUniforms - 20 ) / 4 ); + + var maxBones = nVertexMatrices; + + if ( object !== undefined && (object && object.isSkinnedMesh) ) { + + maxBones = Math.min( object.skeleton.bones.length, maxBones ); + + if ( maxBones < object.skeleton.bones.length ) { + + console.warn( 'WebGLRenderer: too many bones - ' + object.skeleton.bones.length + ', this GPU supports just ' + maxBones + ' (try OpenGL instead of ANGLE)' ); + + } + + } + + return maxBones; + + } + + } + + function getTextureEncodingFromMap( map, gammaOverrideLinear ) { + + var encoding; + + if ( ! map ) { + + encoding = LinearEncoding; + + } else if ( (map && map.isTexture) ) { + + encoding = map.encoding; + + } else if ( (map && map.isWebGLRenderTarget) ) { + + console.warn( "THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead." ); + encoding = map.texture.encoding; + + } + + // add backwards compatibility for WebGLRenderer.gammaInput/gammaOutput parameter, should probably be removed at some point. + if ( encoding === LinearEncoding && gammaOverrideLinear ) { + + encoding = GammaEncoding; + + } + + return encoding; + + } + + this.getParameters = function ( material, lights, fog, nClipPlanes, nClipIntersection, object ) { + + var shaderID = shaderIDs[ material.type ]; + + // heuristics to create shader parameters according to lights in the scene + // (not to blow over maxLights budget) + + var maxBones = allocateBones( object ); + var precision = renderer.getPrecision(); + + if ( material.precision !== null ) { + + precision = capabilities.getMaxPrecision( material.precision ); + + if ( precision !== material.precision ) { + + console.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' ); + + } + + } + + var currentRenderTarget = renderer.getCurrentRenderTarget(); + + var parameters = { + + shaderID: shaderID, + + precision: precision, + supportsVertexTextures: capabilities.vertexTextures, + outputEncoding: getTextureEncodingFromMap( ( ! currentRenderTarget ) ? null : currentRenderTarget.texture, renderer.gammaOutput ), + map: !! material.map, + mapEncoding: getTextureEncodingFromMap( material.map, renderer.gammaInput ), + envMap: !! material.envMap, + envMapMode: material.envMap && material.envMap.mapping, + envMapEncoding: getTextureEncodingFromMap( material.envMap, renderer.gammaInput ), + envMapCubeUV: ( !! material.envMap ) && ( ( material.envMap.mapping === CubeUVReflectionMapping ) || ( material.envMap.mapping === CubeUVRefractionMapping ) ), + lightMap: !! material.lightMap, + aoMap: !! material.aoMap, + emissiveMap: !! material.emissiveMap, + emissiveMapEncoding: getTextureEncodingFromMap( material.emissiveMap, renderer.gammaInput ), + bumpMap: !! material.bumpMap, + normalMap: !! material.normalMap, + displacementMap: !! material.displacementMap, + roughnessMap: !! material.roughnessMap, + metalnessMap: !! material.metalnessMap, + specularMap: !! material.specularMap, + alphaMap: !! material.alphaMap, + + combine: material.combine, + + vertexColors: material.vertexColors, + + fog: !! fog, + useFog: material.fog, + fogExp: (fog && fog.isFogExp2), + + flatShading: material.shading === FlatShading, + + sizeAttenuation: material.sizeAttenuation, + logarithmicDepthBuffer: capabilities.logarithmicDepthBuffer, + + skinning: material.skinning, + maxBones: maxBones, + useVertexTexture: capabilities.floatVertexTextures && object && object.skeleton && object.skeleton.useVertexTexture, + + morphTargets: material.morphTargets, + morphNormals: material.morphNormals, + maxMorphTargets: renderer.maxMorphTargets, + maxMorphNormals: renderer.maxMorphNormals, + + numDirLights: lights.directional.length, + numPointLights: lights.point.length, + numSpotLights: lights.spot.length, + numHemiLights: lights.hemi.length, + + numClippingPlanes: nClipPlanes, + numClipIntersection: nClipIntersection, + + shadowMapEnabled: renderer.shadowMap.enabled && object.receiveShadow && lights.shadows.length > 0, + shadowMapType: renderer.shadowMap.type, + + toneMapping: renderer.toneMapping, + physicallyCorrectLights: renderer.physicallyCorrectLights, + + premultipliedAlpha: material.premultipliedAlpha, + + alphaTest: material.alphaTest, + doubleSided: material.side === DoubleSide, + flipSided: material.side === BackSide, + + depthPacking: ( material.depthPacking !== undefined ) ? material.depthPacking : false + + }; + + return parameters; + + }; + + this.getProgramCode = function ( material, parameters ) { + + var array = []; + + if ( parameters.shaderID ) { + + array.push( parameters.shaderID ); + + } else { + + array.push( material.fragmentShader ); + array.push( material.vertexShader ); + + } + + if ( material.defines !== undefined ) { + + for ( var name in material.defines ) { + + array.push( name ); + array.push( material.defines[ name ] ); + + } + + } + + for ( var i = 0; i < parameterNames.length; i ++ ) { + + array.push( parameters[ parameterNames[ i ] ] ); + + } + + return array.join(); + + }; + + this.acquireProgram = function ( material, parameters, code ) { + + var program; + + // Check if code has been already compiled + for ( var p = 0, pl = programs.length; p < pl; p ++ ) { + + var programInfo = programs[ p ]; + + if ( programInfo.code === code ) { + + program = programInfo; + ++ program.usedTimes; + + break; + + } + + } + + if ( program === undefined ) { + + program = new WebGLProgram( renderer, code, material, parameters ); + programs.push( program ); + + } + + return program; + + }; + + this.releaseProgram = function( program ) { + + if ( -- program.usedTimes === 0 ) { + + // Remove from unordered set + var i = programs.indexOf( program ); + programs[ i ] = programs[ programs.length - 1 ]; + programs.pop(); + + // Free WebGL resources + program.destroy(); + + } + + }; + + // Exposed for resource monitoring & error feedback via renderer.info: + this.programs = programs; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLGeometries( gl, properties, info ) { + + var geometries = {}; + + function onGeometryDispose( event ) { + + var geometry = event.target; + var buffergeometry = geometries[ geometry.id ]; + + if ( buffergeometry.index !== null ) { + + deleteAttribute( buffergeometry.index ); + + } + + deleteAttributes( buffergeometry.attributes ); + + geometry.removeEventListener( 'dispose', onGeometryDispose ); + + delete geometries[ geometry.id ]; + + // TODO + + var property = properties.get( geometry ); + + if ( property.wireframe ) { + + deleteAttribute( property.wireframe ); + + } + + properties.delete( geometry ); + + var bufferproperty = properties.get( buffergeometry ); + + if ( bufferproperty.wireframe ) { + + deleteAttribute( bufferproperty.wireframe ); + + } + + properties.delete( buffergeometry ); + + // + + info.memory.geometries --; + + } + + function getAttributeBuffer( attribute ) { + + if ( attribute.isInterleavedBufferAttribute ) { + + return properties.get( attribute.data ).__webglBuffer; + + } + + return properties.get( attribute ).__webglBuffer; + + } + + function deleteAttribute( attribute ) { + + var buffer = getAttributeBuffer( attribute ); + + if ( buffer !== undefined ) { + + gl.deleteBuffer( buffer ); + removeAttributeBuffer( attribute ); + + } + + } + + function deleteAttributes( attributes ) { + + for ( var name in attributes ) { + + deleteAttribute( attributes[ name ] ); + + } + + } + + function removeAttributeBuffer( attribute ) { + + if ( attribute.isInterleavedBufferAttribute ) { + + properties.delete( attribute.data ); + + } else { + + properties.delete( attribute ); + + } + + } + + return { + + get: function ( object ) { + + var geometry = object.geometry; + + if ( geometries[ geometry.id ] !== undefined ) { + + return geometries[ geometry.id ]; + + } + + geometry.addEventListener( 'dispose', onGeometryDispose ); + + var buffergeometry; + + if ( geometry.isBufferGeometry ) { + + buffergeometry = geometry; + + } else if ( geometry.isGeometry ) { + + if ( geometry._bufferGeometry === undefined ) { + + geometry._bufferGeometry = new BufferGeometry().setFromObject( object ); + + } + + buffergeometry = geometry._bufferGeometry; + + } + + geometries[ geometry.id ] = buffergeometry; + + info.memory.geometries ++; + + return buffergeometry; + + } + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLObjects( gl, properties, info ) { + + var geometries = new WebGLGeometries( gl, properties, info ); + + // + + function update( object ) { + + // TODO: Avoid updating twice (when using shadowMap). Maybe add frame counter. + + var geometry = geometries.get( object ); + + if ( object.geometry.isGeometry ) { + + geometry.updateFromObject( object ); + + } + + var index = geometry.index; + var attributes = geometry.attributes; + + if ( index !== null ) { + + updateAttribute( index, gl.ELEMENT_ARRAY_BUFFER ); + + } + + for ( var name in attributes ) { + + updateAttribute( attributes[ name ], gl.ARRAY_BUFFER ); + + } + + // morph targets + + var morphAttributes = geometry.morphAttributes; + + for ( var name in morphAttributes ) { + + var array = morphAttributes[ name ]; + + for ( var i = 0, l = array.length; i < l; i ++ ) { + + updateAttribute( array[ i ], gl.ARRAY_BUFFER ); + + } + + } + + return geometry; + + } + + function updateAttribute( attribute, bufferType ) { + + var data = ( attribute.isInterleavedBufferAttribute ) ? attribute.data : attribute; + + var attributeProperties = properties.get( data ); + + if ( attributeProperties.__webglBuffer === undefined ) { + + createBuffer( attributeProperties, data, bufferType ); + + } else if ( attributeProperties.version !== data.version ) { + + updateBuffer( attributeProperties, data, bufferType ); + + } + + } + + function createBuffer( attributeProperties, data, bufferType ) { + + attributeProperties.__webglBuffer = gl.createBuffer(); + gl.bindBuffer( bufferType, attributeProperties.__webglBuffer ); + + var usage = data.dynamic ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW; + + gl.bufferData( bufferType, data.array, usage ); + + attributeProperties.version = data.version; + + } + + function updateBuffer( attributeProperties, data, bufferType ) { + + gl.bindBuffer( bufferType, attributeProperties.__webglBuffer ); + + if ( data.dynamic === false ) { + + gl.bufferData( bufferType, data.array, gl.STATIC_DRAW ); + + } else if ( data.updateRange.count === - 1 ) { + + // Not using update ranges + + gl.bufferSubData( bufferType, 0, data.array ); + + } else if ( data.updateRange.count === 0 ) { + + console.error( 'THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually.' ); + + } else { + + gl.bufferSubData( bufferType, data.updateRange.offset * data.array.BYTES_PER_ELEMENT, + data.array.subarray( data.updateRange.offset, data.updateRange.offset + data.updateRange.count ) ); + + data.updateRange.count = 0; // reset range + + } + + attributeProperties.version = data.version; + + } + + function getAttributeBuffer( attribute ) { + + if ( attribute.isInterleavedBufferAttribute ) { + + return properties.get( attribute.data ).__webglBuffer; + + } + + return properties.get( attribute ).__webglBuffer; + + } + + function getWireframeAttribute( geometry ) { + + var property = properties.get( geometry ); + + if ( property.wireframe !== undefined ) { + + return property.wireframe; + + } + + var indices = []; + + var index = geometry.index; + var attributes = geometry.attributes; + var position = attributes.position; + + // console.time( 'wireframe' ); + + if ( index !== null ) { + + var edges = {}; + var array = index.array; + + for ( var i = 0, l = array.length; i < l; i += 3 ) { + + var a = array[ i + 0 ]; + var b = array[ i + 1 ]; + var c = array[ i + 2 ]; + + indices.push( a, b, b, c, c, a ); + + } + + } else { + + var array = attributes.position.array; + + for ( var i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) { + + var a = i + 0; + var b = i + 1; + var c = i + 2; + + indices.push( a, b, b, c, c, a ); + + } + + } + + // console.timeEnd( 'wireframe' ); + + var TypeArray = position.count > 65535 ? Uint32Array : Uint16Array; + var attribute = new BufferAttribute( new TypeArray( indices ), 1 ); + + updateAttribute( attribute, gl.ELEMENT_ARRAY_BUFFER ); + + property.wireframe = attribute; + + return attribute; + + } + + return { + + getAttributeBuffer: getAttributeBuffer, + getWireframeAttribute: getWireframeAttribute, + + update: update + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLTextures( _gl, extensions, state, properties, capabilities, paramThreeToGL, info ) { + + var _infoMemory = info.memory; + var _isWebGL2 = ( typeof WebGL2RenderingContext !== 'undefined' && _gl instanceof WebGL2RenderingContext ); + + // + + function clampToMaxSize( image, maxSize ) { + + if ( image.width > maxSize || image.height > maxSize ) { + + // Warning: Scaling through the canvas will only work with images that use + // premultiplied alpha. + + var scale = maxSize / Math.max( image.width, image.height ); + + var canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ); + canvas.width = Math.floor( image.width * scale ); + canvas.height = Math.floor( image.height * scale ); + + var context = canvas.getContext( '2d' ); + context.drawImage( image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height ); + + console.warn( 'THREE.WebGLRenderer: image is too big (' + image.width + 'x' + image.height + '). Resized to ' + canvas.width + 'x' + canvas.height, image ); + + return canvas; + + } + + return image; + + } + + function isPowerOfTwo( image ) { + + return _Math.isPowerOfTwo( image.width ) && _Math.isPowerOfTwo( image.height ); + + } + + function makePowerOfTwo( image ) { + + if ( image instanceof HTMLImageElement || image instanceof HTMLCanvasElement ) { + + var canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ); + canvas.width = _Math.nearestPowerOfTwo( image.width ); + canvas.height = _Math.nearestPowerOfTwo( image.height ); + + var context = canvas.getContext( '2d' ); + context.drawImage( image, 0, 0, canvas.width, canvas.height ); + + console.warn( 'THREE.WebGLRenderer: image is not power of two (' + image.width + 'x' + image.height + '). Resized to ' + canvas.width + 'x' + canvas.height, image ); + + return canvas; + + } + + return image; + + } + + function textureNeedsPowerOfTwo( texture ) { + + if ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) return true; + if ( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) return true; + + return false; + + } + + // Fallback filters for non-power-of-2 textures + + function filterFallback( f ) { + + if ( f === NearestFilter || f === NearestMipMapNearestFilter || f === NearestMipMapLinearFilter ) { + + return _gl.NEAREST; + + } + + return _gl.LINEAR; + + } + + // + + function onTextureDispose( event ) { + + var texture = event.target; + + texture.removeEventListener( 'dispose', onTextureDispose ); + + deallocateTexture( texture ); + + _infoMemory.textures --; + + + } + + function onRenderTargetDispose( event ) { + + var renderTarget = event.target; + + renderTarget.removeEventListener( 'dispose', onRenderTargetDispose ); + + deallocateRenderTarget( renderTarget ); + + _infoMemory.textures --; + + } + + // + + function deallocateTexture( texture ) { + + var textureProperties = properties.get( texture ); + + if ( texture.image && textureProperties.__image__webglTextureCube ) { + + // cube texture + + _gl.deleteTexture( textureProperties.__image__webglTextureCube ); + + } else { + + // 2D texture + + if ( textureProperties.__webglInit === undefined ) return; + + _gl.deleteTexture( textureProperties.__webglTexture ); + + } + + // remove all webgl properties + properties.delete( texture ); + + } + + function deallocateRenderTarget( renderTarget ) { + + var renderTargetProperties = properties.get( renderTarget ); + var textureProperties = properties.get( renderTarget.texture ); + + if ( ! renderTarget ) return; + + if ( textureProperties.__webglTexture !== undefined ) { + + _gl.deleteTexture( textureProperties.__webglTexture ); + + } + + if ( renderTarget.depthTexture ) { + + renderTarget.depthTexture.dispose(); + + } + + if ( (renderTarget && renderTarget.isWebGLRenderTargetCube) ) { + + for ( var i = 0; i < 6; i ++ ) { + + _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] ); + if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] ); + + } + + } else { + + _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer ); + if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer ); + + } + + properties.delete( renderTarget.texture ); + properties.delete( renderTarget ); + + } + + // + + + + function setTexture2D( texture, slot ) { + + var textureProperties = properties.get( texture ); + + if ( texture.version > 0 && textureProperties.__version !== texture.version ) { + + var image = texture.image; + + if ( image === undefined ) { + + console.warn( 'THREE.WebGLRenderer: Texture marked for update but image is undefined', texture ); + + } else if ( image.complete === false ) { + + console.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete', texture ); + + } else { + + uploadTexture( textureProperties, texture, slot ); + return; + + } + + } + + state.activeTexture( _gl.TEXTURE0 + slot ); + state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture ); + + } + + function setTextureCube( texture, slot ) { + + var textureProperties = properties.get( texture ); + + if ( texture.image.length === 6 ) { + + if ( texture.version > 0 && textureProperties.__version !== texture.version ) { + + if ( ! textureProperties.__image__webglTextureCube ) { + + texture.addEventListener( 'dispose', onTextureDispose ); + + textureProperties.__image__webglTextureCube = _gl.createTexture(); + + _infoMemory.textures ++; + + } + + state.activeTexture( _gl.TEXTURE0 + slot ); + state.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__image__webglTextureCube ); + + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); + + var isCompressed = (texture && texture.isCompressedTexture); + var isDataTexture = (texture.image[ 0 ] && texture.image[ 0 ].isDataTexture); + + var cubeImage = []; + + for ( var i = 0; i < 6; i ++ ) { + + if ( ! isCompressed && ! isDataTexture ) { + + cubeImage[ i ] = clampToMaxSize( texture.image[ i ], capabilities.maxCubemapSize ); + + } else { + + cubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ]; + + } + + } + + var image = cubeImage[ 0 ], + isPowerOfTwoImage = isPowerOfTwo( image ), + glFormat = paramThreeToGL( texture.format ), + glType = paramThreeToGL( texture.type ); + + setTextureParameters( _gl.TEXTURE_CUBE_MAP, texture, isPowerOfTwoImage ); + + for ( var i = 0; i < 6; i ++ ) { + + if ( ! isCompressed ) { + + if ( isDataTexture ) { + + state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data ); + + } else { + + state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, glFormat, glType, cubeImage[ i ] ); + + } + + } else { + + var mipmap, mipmaps = cubeImage[ i ].mipmaps; + + for ( var j = 0, jl = mipmaps.length; j < jl; j ++ ) { + + mipmap = mipmaps[ j ]; + + if ( texture.format !== RGBAFormat && texture.format !== RGBFormat ) { + + if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) { + + state.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, mipmap.data ); + + } else { + + console.warn( "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()" ); + + } + + } else { + + state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + } + + } + + } + + if ( texture.generateMipmaps && isPowerOfTwoImage ) { + + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + + } + + textureProperties.__version = texture.version; + + if ( texture.onUpdate ) texture.onUpdate( texture ); + + } else { + + state.activeTexture( _gl.TEXTURE0 + slot ); + state.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__image__webglTextureCube ); + + } + + } + + } + + function setTextureCubeDynamic( texture, slot ) { + + state.activeTexture( _gl.TEXTURE0 + slot ); + state.bindTexture( _gl.TEXTURE_CUBE_MAP, properties.get( texture ).__webglTexture ); + + } + + function setTextureParameters( textureType, texture, isPowerOfTwoImage ) { + + var extension; + + if ( isPowerOfTwoImage ) { + + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrapS ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrapT ) ); + + _gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.magFilter ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.minFilter ) ); + + } else { + + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE ); + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE ); + + if ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) { + + console.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.', texture ); + + } + + _gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterFallback( texture.magFilter ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterFallback( texture.minFilter ) ); + + if ( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) { + + console.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.', texture ); + + } + + } + + extension = extensions.get( 'EXT_texture_filter_anisotropic' ); + + if ( extension ) { + + if ( texture.type === FloatType && extensions.get( 'OES_texture_float_linear' ) === null ) return; + if ( texture.type === HalfFloatType && extensions.get( 'OES_texture_half_float_linear' ) === null ) return; + + if ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) { + + _gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) ); + properties.get( texture ).__currentAnisotropy = texture.anisotropy; + + } + + } + + } + + function uploadTexture( textureProperties, texture, slot ) { + + if ( textureProperties.__webglInit === undefined ) { + + textureProperties.__webglInit = true; + + texture.addEventListener( 'dispose', onTextureDispose ); + + textureProperties.__webglTexture = _gl.createTexture(); + + _infoMemory.textures ++; + + } + + state.activeTexture( _gl.TEXTURE0 + slot ); + state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture ); + + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); + _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); + _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); + + var image = clampToMaxSize( texture.image, capabilities.maxTextureSize ); + + if ( textureNeedsPowerOfTwo( texture ) && isPowerOfTwo( image ) === false ) { + + image = makePowerOfTwo( image ); + + } + + var isPowerOfTwoImage = isPowerOfTwo( image ), + glFormat = paramThreeToGL( texture.format ), + glType = paramThreeToGL( texture.type ); + + setTextureParameters( _gl.TEXTURE_2D, texture, isPowerOfTwoImage ); + + var mipmap, mipmaps = texture.mipmaps; + + if ( (texture && texture.isDepthTexture) ) { + + // populate depth texture with dummy data + + var internalFormat = _gl.DEPTH_COMPONENT; + + if ( texture.type === FloatType ) { + + if ( !_isWebGL2 ) throw new Error('Float Depth Texture only supported in WebGL2.0'); + internalFormat = _gl.DEPTH_COMPONENT32F; + + } else if ( _isWebGL2 ) { + + // WebGL 2.0 requires signed internalformat for glTexImage2D + internalFormat = _gl.DEPTH_COMPONENT16; + + } + + // Depth stencil textures need the DEPTH_STENCIL internal format + // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/) + if ( texture.format === DepthStencilFormat ) { + + internalFormat = _gl.DEPTH_STENCIL; + + } + + state.texImage2D( _gl.TEXTURE_2D, 0, internalFormat, image.width, image.height, 0, glFormat, glType, null ); + + } else if ( (texture && texture.isDataTexture) ) { + + // use manually created mipmaps if available + // if there are no manual mipmaps + // set 0 level mipmap and then use GL to generate other mipmap levels + + if ( mipmaps.length > 0 && isPowerOfTwoImage ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + state.texImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + texture.generateMipmaps = false; + + } else { + + state.texImage2D( _gl.TEXTURE_2D, 0, glFormat, image.width, image.height, 0, glFormat, glType, image.data ); + + } + + } else if ( (texture && texture.isCompressedTexture) ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + + if ( texture.format !== RGBAFormat && texture.format !== RGBFormat ) { + + if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) { + + state.compressedTexImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, mipmap.data ); + + } else { + + console.warn( "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()" ); + + } + + } else { + + state.texImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + } + + } else { + + // regular Texture (image, video, canvas) + + // use manually created mipmaps if available + // if there are no manual mipmaps + // set 0 level mipmap and then use GL to generate other mipmap levels + + if ( mipmaps.length > 0 && isPowerOfTwoImage ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + state.texImage2D( _gl.TEXTURE_2D, i, glFormat, glFormat, glType, mipmap ); + + } + + texture.generateMipmaps = false; + + } else { + + state.texImage2D( _gl.TEXTURE_2D, 0, glFormat, glFormat, glType, image ); + + } + + } + + if ( texture.generateMipmaps && isPowerOfTwoImage ) _gl.generateMipmap( _gl.TEXTURE_2D ); + + textureProperties.__version = texture.version; + + if ( texture.onUpdate ) texture.onUpdate( texture ); + + } + + // Render targets + + // Setup storage for target texture and bind it to correct framebuffer + function setupFrameBufferTexture( framebuffer, renderTarget, attachment, textureTarget ) { + + var glFormat = paramThreeToGL( renderTarget.texture.format ); + var glType = paramThreeToGL( renderTarget.texture.type ); + state.texImage2D( textureTarget, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null ); + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + _gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( renderTarget.texture ).__webglTexture, 0 ); + _gl.bindFramebuffer( _gl.FRAMEBUFFER, null ); + + } + + // Setup storage for internal depth/stencil buffers and bind to correct framebuffer + function setupRenderBufferStorage( renderbuffer, renderTarget ) { + + _gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer ); + + if ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.DEPTH_COMPONENT16, renderTarget.width, renderTarget.height ); + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer ); + + } else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.DEPTH_STENCIL, renderTarget.width, renderTarget.height ); + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer ); + + } else { + + // FIXME: We don't support !depth !stencil + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.RGBA4, renderTarget.width, renderTarget.height ); + + } + + _gl.bindRenderbuffer( _gl.RENDERBUFFER, null ); + + } + + // Setup resources for a Depth Texture for a FBO (needs an extension) + function setupDepthTexture( framebuffer, renderTarget ) { + + var isCube = ( (renderTarget && renderTarget.isWebGLRenderTargetCube) ); + if ( isCube ) throw new Error('Depth Texture with cube render targets is not supported!'); + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + + if ( !( (renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture) ) ) { + + throw new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture'); + + } + + // upload an empty depth texture with framebuffer size + if ( !properties.get( renderTarget.depthTexture ).__webglTexture || + renderTarget.depthTexture.image.width !== renderTarget.width || + renderTarget.depthTexture.image.height !== renderTarget.height ) { + renderTarget.depthTexture.image.width = renderTarget.width; + renderTarget.depthTexture.image.height = renderTarget.height; + renderTarget.depthTexture.needsUpdate = true; + } + + setTexture2D( renderTarget.depthTexture, 0 ); + + var webglDepthTexture = properties.get( renderTarget.depthTexture ).__webglTexture; + + if ( renderTarget.depthTexture.format === DepthFormat ) { + + _gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 ); + + } else if ( renderTarget.depthTexture.format === DepthStencilFormat ) { + + _gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 ); + + } else { + + throw new Error('Unknown depthTexture format') + + } + + } + + // Setup GL resources for a non-texture depth buffer + function setupDepthRenderbuffer( renderTarget ) { + + var renderTargetProperties = properties.get( renderTarget ); + + var isCube = ( (renderTarget && renderTarget.isWebGLRenderTargetCube) ); + + if ( renderTarget.depthTexture ) { + + if ( isCube ) throw new Error('target.depthTexture not supported in Cube render targets'); + + setupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget ); + + } else { + + if ( isCube ) { + + renderTargetProperties.__webglDepthbuffer = []; + + for ( var i = 0; i < 6; i ++ ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] ); + renderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer(); + setupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget ); + + } + + } else { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer ); + renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer(); + setupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget ); + + } + + } + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, null ); + + } + + // Set up GL resources for the render target + function setupRenderTarget( renderTarget ) { + + var renderTargetProperties = properties.get( renderTarget ); + var textureProperties = properties.get( renderTarget.texture ); + + renderTarget.addEventListener( 'dispose', onRenderTargetDispose ); + + textureProperties.__webglTexture = _gl.createTexture(); + + _infoMemory.textures ++; + + var isCube = ( (renderTarget && renderTarget.isWebGLRenderTargetCube) ); + var isTargetPowerOfTwo = isPowerOfTwo( renderTarget ); + + // Setup framebuffer + + if ( isCube ) { + + renderTargetProperties.__webglFramebuffer = []; + + for ( var i = 0; i < 6; i ++ ) { + + renderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer(); + + } + + } else { + + renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer(); + + } + + // Setup color buffer + + if ( isCube ) { + + state.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture ); + setTextureParameters( _gl.TEXTURE_CUBE_MAP, renderTarget.texture, isTargetPowerOfTwo ); + + for ( var i = 0; i < 6; i ++ ) { + + setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i ); + + } + + if ( renderTarget.texture.generateMipmaps && isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + state.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); + + } else { + + state.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture ); + setTextureParameters( _gl.TEXTURE_2D, renderTarget.texture, isTargetPowerOfTwo ); + setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D ); + + if ( renderTarget.texture.generateMipmaps && isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D ); + state.bindTexture( _gl.TEXTURE_2D, null ); + + } + + // Setup depth and stencil buffers + + if ( renderTarget.depthBuffer ) { + + setupDepthRenderbuffer( renderTarget ); + + } + + } + + function updateRenderTargetMipmap( renderTarget ) { + + var texture = renderTarget.texture; + + if ( texture.generateMipmaps && isPowerOfTwo( renderTarget ) && + texture.minFilter !== NearestFilter && + texture.minFilter !== LinearFilter ) { + + var target = (renderTarget && renderTarget.isWebGLRenderTargetCube) ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D; + var webglTexture = properties.get( texture ).__webglTexture; + + state.bindTexture( target, webglTexture ); + _gl.generateMipmap( target ); + state.bindTexture( target, null ); + + } + + } + + this.setTexture2D = setTexture2D; + this.setTextureCube = setTextureCube; + this.setTextureCubeDynamic = setTextureCubeDynamic; + this.setupRenderTarget = setupRenderTarget; + this.updateRenderTargetMipmap = updateRenderTargetMipmap; + + } + + /** + * @author fordacious / fordacious.github.io + */ + + function WebGLProperties() { + + var properties = {}; + + return { + + get: function ( object ) { + + var uuid = object.uuid; + var map = properties[ uuid ]; + + if ( map === undefined ) { + + map = {}; + properties[ uuid ] = map; + + } + + return map; + + }, + + delete: function ( object ) { + + delete properties[ object.uuid ]; + + }, + + clear: function () { + + properties = {}; + + } + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLState( gl, extensions, paramThreeToGL ) { + + function ColorBuffer() { + + var locked = false; + + var color = new Vector4(); + var currentColorMask = null; + var currentColorClear = new Vector4(); + + return { + + setMask: function ( colorMask ) { + + if ( currentColorMask !== colorMask && ! locked ) { + + gl.colorMask( colorMask, colorMask, colorMask, colorMask ); + currentColorMask = colorMask; + + } + + }, + + setLocked: function ( lock ) { + + locked = lock; + + }, + + setClear: function ( r, g, b, a ) { + + color.set( r, g, b, a ); + + if ( currentColorClear.equals( color ) === false ) { + + gl.clearColor( r, g, b, a ); + currentColorClear.copy( color ); + + } + + }, + + reset: function () { + + locked = false; + + currentColorMask = null; + currentColorClear.set( 0, 0, 0, 1 ); + + } + + }; + + } + + function DepthBuffer() { + + var locked = false; + + var currentDepthMask = null; + var currentDepthFunc = null; + var currentDepthClear = null; + + return { + + setTest: function ( depthTest ) { + + if ( depthTest ) { + + enable( gl.DEPTH_TEST ); + + } else { + + disable( gl.DEPTH_TEST ); + + } + + }, + + setMask: function ( depthMask ) { + + if ( currentDepthMask !== depthMask && ! locked ) { + + gl.depthMask( depthMask ); + currentDepthMask = depthMask; + + } + + }, + + setFunc: function ( depthFunc ) { + + if ( currentDepthFunc !== depthFunc ) { + + if ( depthFunc ) { + + switch ( depthFunc ) { + + case NeverDepth: + + gl.depthFunc( gl.NEVER ); + break; + + case AlwaysDepth: + + gl.depthFunc( gl.ALWAYS ); + break; + + case LessDepth: + + gl.depthFunc( gl.LESS ); + break; + + case LessEqualDepth: + + gl.depthFunc( gl.LEQUAL ); + break; + + case EqualDepth: + + gl.depthFunc( gl.EQUAL ); + break; + + case GreaterEqualDepth: + + gl.depthFunc( gl.GEQUAL ); + break; + + case GreaterDepth: + + gl.depthFunc( gl.GREATER ); + break; + + case NotEqualDepth: + + gl.depthFunc( gl.NOTEQUAL ); + break; + + default: + + gl.depthFunc( gl.LEQUAL ); + + } + + } else { + + gl.depthFunc( gl.LEQUAL ); + + } + + currentDepthFunc = depthFunc; + + } + + }, + + setLocked: function ( lock ) { + + locked = lock; + + }, + + setClear: function ( depth ) { + + if ( currentDepthClear !== depth ) { + + gl.clearDepth( depth ); + currentDepthClear = depth; + + } + + }, + + reset: function () { + + locked = false; + + currentDepthMask = null; + currentDepthFunc = null; + currentDepthClear = null; + + } + + }; + + } + + function StencilBuffer() { + + var locked = false; + + var currentStencilMask = null; + var currentStencilFunc = null; + var currentStencilRef = null; + var currentStencilFuncMask = null; + var currentStencilFail = null; + var currentStencilZFail = null; + var currentStencilZPass = null; + var currentStencilClear = null; + + return { + + setTest: function ( stencilTest ) { + + if ( stencilTest ) { + + enable( gl.STENCIL_TEST ); + + } else { + + disable( gl.STENCIL_TEST ); + + } + + }, + + setMask: function ( stencilMask ) { + + if ( currentStencilMask !== stencilMask && ! locked ) { + + gl.stencilMask( stencilMask ); + currentStencilMask = stencilMask; + + } + + }, + + setFunc: function ( stencilFunc, stencilRef, stencilMask ) { + + if ( currentStencilFunc !== stencilFunc || + currentStencilRef !== stencilRef || + currentStencilFuncMask !== stencilMask ) { + + gl.stencilFunc( stencilFunc, stencilRef, stencilMask ); + + currentStencilFunc = stencilFunc; + currentStencilRef = stencilRef; + currentStencilFuncMask = stencilMask; + + } + + }, + + setOp: function ( stencilFail, stencilZFail, stencilZPass ) { + + if ( currentStencilFail !== stencilFail || + currentStencilZFail !== stencilZFail || + currentStencilZPass !== stencilZPass ) { + + gl.stencilOp( stencilFail, stencilZFail, stencilZPass ); + + currentStencilFail = stencilFail; + currentStencilZFail = stencilZFail; + currentStencilZPass = stencilZPass; + + } + + }, + + setLocked: function ( lock ) { + + locked = lock; + + }, + + setClear: function ( stencil ) { + + if ( currentStencilClear !== stencil ) { + + gl.clearStencil( stencil ); + currentStencilClear = stencil; + + } + + }, + + reset: function () { + + locked = false; + + currentStencilMask = null; + currentStencilFunc = null; + currentStencilRef = null; + currentStencilFuncMask = null; + currentStencilFail = null; + currentStencilZFail = null; + currentStencilZPass = null; + currentStencilClear = null; + + } + + }; + + } + + // + + var colorBuffer = new ColorBuffer(); + var depthBuffer = new DepthBuffer(); + var stencilBuffer = new StencilBuffer(); + + var maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS ); + var newAttributes = new Uint8Array( maxVertexAttributes ); + var enabledAttributes = new Uint8Array( maxVertexAttributes ); + var attributeDivisors = new Uint8Array( maxVertexAttributes ); + + var capabilities = {}; + + var compressedTextureFormats = null; + + var currentBlending = null; + var currentBlendEquation = null; + var currentBlendSrc = null; + var currentBlendDst = null; + var currentBlendEquationAlpha = null; + var currentBlendSrcAlpha = null; + var currentBlendDstAlpha = null; + var currentPremultipledAlpha = false; + + var currentFlipSided = null; + var currentCullFace = null; + + var currentLineWidth = null; + + var currentPolygonOffsetFactor = null; + var currentPolygonOffsetUnits = null; + + var currentScissorTest = null; + + var maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS ); + + var currentTextureSlot = null; + var currentBoundTextures = {}; + + var currentScissor = new Vector4(); + var currentViewport = new Vector4(); + + function createTexture( type, target, count ) { + + var data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4. + var texture = gl.createTexture(); + + gl.bindTexture( type, texture ); + gl.texParameteri( type, gl.TEXTURE_MIN_FILTER, gl.NEAREST ); + gl.texParameteri( type, gl.TEXTURE_MAG_FILTER, gl.NEAREST ); + + for ( var i = 0; i < count; i ++ ) { + + gl.texImage2D( target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data ); + + } + + return texture; + + } + + var emptyTextures = {}; + emptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 ); + emptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 ); + + // + + function init() { + + clearColor( 0, 0, 0, 1 ); + clearDepth( 1 ); + clearStencil( 0 ); + + enable( gl.DEPTH_TEST ); + setDepthFunc( LessEqualDepth ); + + setFlipSided( false ); + setCullFace( CullFaceBack ); + enable( gl.CULL_FACE ); + + enable( gl.BLEND ); + setBlending( NormalBlending ); + + } + + function initAttributes() { + + for ( var i = 0, l = newAttributes.length; i < l; i ++ ) { + + newAttributes[ i ] = 0; + + } + + } + + function enableAttribute( attribute ) { + + newAttributes[ attribute ] = 1; + + if ( enabledAttributes[ attribute ] === 0 ) { + + gl.enableVertexAttribArray( attribute ); + enabledAttributes[ attribute ] = 1; + + } + + if ( attributeDivisors[ attribute ] !== 0 ) { + + var extension = extensions.get( 'ANGLE_instanced_arrays' ); + + extension.vertexAttribDivisorANGLE( attribute, 0 ); + attributeDivisors[ attribute ] = 0; + + } + + } + + function enableAttributeAndDivisor( attribute, meshPerAttribute, extension ) { + + newAttributes[ attribute ] = 1; + + if ( enabledAttributes[ attribute ] === 0 ) { + + gl.enableVertexAttribArray( attribute ); + enabledAttributes[ attribute ] = 1; + + } + + if ( attributeDivisors[ attribute ] !== meshPerAttribute ) { + + extension.vertexAttribDivisorANGLE( attribute, meshPerAttribute ); + attributeDivisors[ attribute ] = meshPerAttribute; + + } + + } + + function disableUnusedAttributes() { + + for ( var i = 0, l = enabledAttributes.length; i !== l; ++ i ) { + + if ( enabledAttributes[ i ] !== newAttributes[ i ] ) { + + gl.disableVertexAttribArray( i ); + enabledAttributes[ i ] = 0; + + } + + } + + } + + function enable( id ) { + + if ( capabilities[ id ] !== true ) { + + gl.enable( id ); + capabilities[ id ] = true; + + } + + } + + function disable( id ) { + + if ( capabilities[ id ] !== false ) { + + gl.disable( id ); + capabilities[ id ] = false; + + } + + } + + function getCompressedTextureFormats() { + + if ( compressedTextureFormats === null ) { + + compressedTextureFormats = []; + + if ( extensions.get( 'WEBGL_compressed_texture_pvrtc' ) || + extensions.get( 'WEBGL_compressed_texture_s3tc' ) || + extensions.get( 'WEBGL_compressed_texture_etc1' ) ) { + + var formats = gl.getParameter( gl.COMPRESSED_TEXTURE_FORMATS ); + + for ( var i = 0; i < formats.length; i ++ ) { + + compressedTextureFormats.push( formats[ i ] ); + + } + + } + + } + + return compressedTextureFormats; + + } + + function setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha ) { + + if ( blending !== NoBlending ) { + + enable( gl.BLEND ); + + } else { + + disable( gl.BLEND ); + + } + + if ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) { + + if ( blending === AdditiveBlending ) { + + if ( premultipliedAlpha ) { + + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.ONE, gl.ONE, gl.ONE, gl.ONE ); + + } else { + + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.SRC_ALPHA, gl.ONE ); + + } + + } else if ( blending === SubtractiveBlending ) { + + if ( premultipliedAlpha ) { + + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.ZERO, gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ONE_MINUS_SRC_ALPHA ); + + } else { + + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.ZERO, gl.ONE_MINUS_SRC_COLOR ); + + } + + } else if ( blending === MultiplyBlending ) { + + if ( premultipliedAlpha ) { + + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA ); + + } else { + + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.ZERO, gl.SRC_COLOR ); + + } + + } else { + + if ( premultipliedAlpha ) { + + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA ); + + } else { + + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA ); + + } + + } + + currentBlending = blending; + currentPremultipledAlpha = premultipliedAlpha; + + } + + if ( blending === CustomBlending ) { + + blendEquationAlpha = blendEquationAlpha || blendEquation; + blendSrcAlpha = blendSrcAlpha || blendSrc; + blendDstAlpha = blendDstAlpha || blendDst; + + if ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) { + + gl.blendEquationSeparate( paramThreeToGL( blendEquation ), paramThreeToGL( blendEquationAlpha ) ); + + currentBlendEquation = blendEquation; + currentBlendEquationAlpha = blendEquationAlpha; + + } + + if ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) { + + gl.blendFuncSeparate( paramThreeToGL( blendSrc ), paramThreeToGL( blendDst ), paramThreeToGL( blendSrcAlpha ), paramThreeToGL( blendDstAlpha ) ); + + currentBlendSrc = blendSrc; + currentBlendDst = blendDst; + currentBlendSrcAlpha = blendSrcAlpha; + currentBlendDstAlpha = blendDstAlpha; + + } + + } else { + + currentBlendEquation = null; + currentBlendSrc = null; + currentBlendDst = null; + currentBlendEquationAlpha = null; + currentBlendSrcAlpha = null; + currentBlendDstAlpha = null; + + } + + } + + // TODO Deprecate + + function setColorWrite( colorWrite ) { + + colorBuffer.setMask( colorWrite ); + + } + + function setDepthTest( depthTest ) { + + depthBuffer.setTest( depthTest ); + + } + + function setDepthWrite( depthWrite ) { + + depthBuffer.setMask( depthWrite ); + + } + + function setDepthFunc( depthFunc ) { + + depthBuffer.setFunc( depthFunc ); + + } + + function setStencilTest( stencilTest ) { + + stencilBuffer.setTest( stencilTest ); + + } + + function setStencilWrite( stencilWrite ) { + + stencilBuffer.setMask( stencilWrite ); + + } + + function setStencilFunc( stencilFunc, stencilRef, stencilMask ) { + + stencilBuffer.setFunc( stencilFunc, stencilRef, stencilMask ); + + } + + function setStencilOp( stencilFail, stencilZFail, stencilZPass ) { + + stencilBuffer.setOp( stencilFail, stencilZFail, stencilZPass ); + + } + + // + + function setFlipSided( flipSided ) { + + if ( currentFlipSided !== flipSided ) { + + if ( flipSided ) { + + gl.frontFace( gl.CW ); + + } else { + + gl.frontFace( gl.CCW ); + + } + + currentFlipSided = flipSided; + + } + + } + + function setCullFace( cullFace ) { + + if ( cullFace !== CullFaceNone ) { + + enable( gl.CULL_FACE ); + + if ( cullFace !== currentCullFace ) { + + if ( cullFace === CullFaceBack ) { + + gl.cullFace( gl.BACK ); + + } else if ( cullFace === CullFaceFront ) { + + gl.cullFace( gl.FRONT ); + + } else { + + gl.cullFace( gl.FRONT_AND_BACK ); + + } + + } + + } else { + + disable( gl.CULL_FACE ); + + } + + currentCullFace = cullFace; + + } + + function setLineWidth( width ) { + + if ( width !== currentLineWidth ) { + + gl.lineWidth( width ); + + currentLineWidth = width; + + } + + } + + function setPolygonOffset( polygonOffset, factor, units ) { + + if ( polygonOffset ) { + + enable( gl.POLYGON_OFFSET_FILL ); + + if ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) { + + gl.polygonOffset( factor, units ); + + currentPolygonOffsetFactor = factor; + currentPolygonOffsetUnits = units; + + } + + } else { + + disable( gl.POLYGON_OFFSET_FILL ); + + } + + } + + function getScissorTest() { + + return currentScissorTest; + + } + + function setScissorTest( scissorTest ) { + + currentScissorTest = scissorTest; + + if ( scissorTest ) { + + enable( gl.SCISSOR_TEST ); + + } else { + + disable( gl.SCISSOR_TEST ); + + } + + } + + // texture + + function activeTexture( webglSlot ) { + + if ( webglSlot === undefined ) webglSlot = gl.TEXTURE0 + maxTextures - 1; + + if ( currentTextureSlot !== webglSlot ) { + + gl.activeTexture( webglSlot ); + currentTextureSlot = webglSlot; + + } + + } + + function bindTexture( webglType, webglTexture ) { + + if ( currentTextureSlot === null ) { + + activeTexture(); + + } + + var boundTexture = currentBoundTextures[ currentTextureSlot ]; + + if ( boundTexture === undefined ) { + + boundTexture = { type: undefined, texture: undefined }; + currentBoundTextures[ currentTextureSlot ] = boundTexture; + + } + + if ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) { + + gl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] ); + + boundTexture.type = webglType; + boundTexture.texture = webglTexture; + + } + + } + + function compressedTexImage2D() { + + try { + + gl.compressedTexImage2D.apply( gl, arguments ); + + } catch ( error ) { + + console.error( error ); + + } + + } + + function texImage2D() { + + try { + + gl.texImage2D.apply( gl, arguments ); + + } catch ( error ) { + + console.error( error ); + + } + + } + + // TODO Deprecate + + function clearColor( r, g, b, a ) { + + colorBuffer.setClear( r, g, b, a ); + + } + + function clearDepth( depth ) { + + depthBuffer.setClear( depth ); + + } + + function clearStencil( stencil ) { + + stencilBuffer.setClear( stencil ); + + } + + // + + function scissor( scissor ) { + + if ( currentScissor.equals( scissor ) === false ) { + + gl.scissor( scissor.x, scissor.y, scissor.z, scissor.w ); + currentScissor.copy( scissor ); + + } + + } + + function viewport( viewport ) { + + if ( currentViewport.equals( viewport ) === false ) { + + gl.viewport( viewport.x, viewport.y, viewport.z, viewport.w ); + currentViewport.copy( viewport ); + + } + + } + + // + + function reset() { + + for ( var i = 0; i < enabledAttributes.length; i ++ ) { + + if ( enabledAttributes[ i ] === 1 ) { + + gl.disableVertexAttribArray( i ); + enabledAttributes[ i ] = 0; + + } + + } + + capabilities = {}; + + compressedTextureFormats = null; + + currentTextureSlot = null; + currentBoundTextures = {}; + + currentBlending = null; + + currentFlipSided = null; + currentCullFace = null; + + colorBuffer.reset(); + depthBuffer.reset(); + stencilBuffer.reset(); + + } + + return { + + buffers: { + color: colorBuffer, + depth: depthBuffer, + stencil: stencilBuffer + }, + + init: init, + initAttributes: initAttributes, + enableAttribute: enableAttribute, + enableAttributeAndDivisor: enableAttributeAndDivisor, + disableUnusedAttributes: disableUnusedAttributes, + enable: enable, + disable: disable, + getCompressedTextureFormats: getCompressedTextureFormats, + + setBlending: setBlending, + + setColorWrite: setColorWrite, + setDepthTest: setDepthTest, + setDepthWrite: setDepthWrite, + setDepthFunc: setDepthFunc, + setStencilTest: setStencilTest, + setStencilWrite: setStencilWrite, + setStencilFunc: setStencilFunc, + setStencilOp: setStencilOp, + + setFlipSided: setFlipSided, + setCullFace: setCullFace, + + setLineWidth: setLineWidth, + setPolygonOffset: setPolygonOffset, + + getScissorTest: getScissorTest, + setScissorTest: setScissorTest, + + activeTexture: activeTexture, + bindTexture: bindTexture, + compressedTexImage2D: compressedTexImage2D, + texImage2D: texImage2D, + + clearColor: clearColor, + clearDepth: clearDepth, + clearStencil: clearStencil, + + scissor: scissor, + viewport: viewport, + + reset: reset + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLCapabilities( gl, extensions, parameters ) { + + var maxAnisotropy; + + function getMaxAnisotropy() { + + if ( maxAnisotropy !== undefined ) return maxAnisotropy; + + var extension = extensions.get( 'EXT_texture_filter_anisotropic' ); + + if ( extension !== null ) { + + maxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT ); + + } else { + + maxAnisotropy = 0; + + } + + return maxAnisotropy; + + } + + function getMaxPrecision( precision ) { + + if ( precision === 'highp' ) { + + if ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 && + gl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0 ) { + + return 'highp'; + + } + + precision = 'mediump'; + + } + + if ( precision === 'mediump' ) { + + if ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 && + gl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0 ) { + + return 'mediump'; + + } + + } + + return 'lowp'; + + } + + var precision = parameters.precision !== undefined ? parameters.precision : 'highp'; + var maxPrecision = getMaxPrecision( precision ); + + if ( maxPrecision !== precision ) { + + console.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' ); + precision = maxPrecision; + + } + + var logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true && !! extensions.get( 'EXT_frag_depth' ); + + var maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS ); + var maxVertexTextures = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS ); + var maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE ); + var maxCubemapSize = gl.getParameter( gl.MAX_CUBE_MAP_TEXTURE_SIZE ); + + var maxAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS ); + var maxVertexUniforms = gl.getParameter( gl.MAX_VERTEX_UNIFORM_VECTORS ); + var maxVaryings = gl.getParameter( gl.MAX_VARYING_VECTORS ); + var maxFragmentUniforms = gl.getParameter( gl.MAX_FRAGMENT_UNIFORM_VECTORS ); + + var vertexTextures = maxVertexTextures > 0; + var floatFragmentTextures = !! extensions.get( 'OES_texture_float' ); + var floatVertexTextures = vertexTextures && floatFragmentTextures; + + return { + + getMaxAnisotropy: getMaxAnisotropy, + getMaxPrecision: getMaxPrecision, + + precision: precision, + logarithmicDepthBuffer: logarithmicDepthBuffer, + + maxTextures: maxTextures, + maxVertexTextures: maxVertexTextures, + maxTextureSize: maxTextureSize, + maxCubemapSize: maxCubemapSize, + + maxAttributes: maxAttributes, + maxVertexUniforms: maxVertexUniforms, + maxVaryings: maxVaryings, + maxFragmentUniforms: maxFragmentUniforms, + + vertexTextures: vertexTextures, + floatFragmentTextures: floatFragmentTextures, + floatVertexTextures: floatVertexTextures + + }; + + } + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WebGLExtensions( gl ) { + + var extensions = {}; + + return { + + get: function ( name ) { + + if ( extensions[ name ] !== undefined ) { + + return extensions[ name ]; + + } + + var extension; + + switch ( name ) { + + case 'WEBGL_depth_texture': + extension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' ); + break; + + case 'EXT_texture_filter_anisotropic': + extension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' ); + break; + + case 'WEBGL_compressed_texture_s3tc': + extension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' ); + break; + + case 'WEBGL_compressed_texture_pvrtc': + extension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' ); + break; + + case 'WEBGL_compressed_texture_etc1': + extension = gl.getExtension( 'WEBGL_compressed_texture_etc1' ); + break; + + default: + extension = gl.getExtension( name ); + + } + + if ( extension === null ) { + + console.warn( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' ); + + } + + extensions[ name ] = extension; + + return extension; + + } + + }; + + } + + /** + * @author tschw + */ + + function WebGLClipping() { + + var scope = this, + + globalState = null, + numGlobalPlanes = 0, + localClippingEnabled = false, + renderingShadows = false, + + plane = new Plane(), + viewNormalMatrix = new Matrix3(), + + uniform = { value: null, needsUpdate: false }; + + this.uniform = uniform; + this.numPlanes = 0; + this.numIntersection = 0; + + this.init = function( planes, enableLocalClipping, camera ) { + + var enabled = + planes.length !== 0 || + enableLocalClipping || + // enable state of previous frame - the clipping code has to + // run another frame in order to reset the state: + numGlobalPlanes !== 0 || + localClippingEnabled; + + localClippingEnabled = enableLocalClipping; + + globalState = projectPlanes( planes, camera, 0 ); + numGlobalPlanes = planes.length; + + return enabled; + + }; + + this.beginShadows = function() { + + renderingShadows = true; + projectPlanes( null ); + + }; + + this.endShadows = function() { + + renderingShadows = false; + resetGlobalState(); + + }; + + this.setState = function( planes, clipIntersection, clipShadows, camera, cache, fromCache ) { + + if ( ! localClippingEnabled || + planes === null || planes.length === 0 || + renderingShadows && ! clipShadows ) { + // there's no local clipping + + if ( renderingShadows ) { + // there's no global clipping + + projectPlanes( null ); + + } else { + + resetGlobalState(); + } + + } else { + + var nGlobal = renderingShadows ? 0 : numGlobalPlanes, + lGlobal = nGlobal * 4, + + dstArray = cache.clippingState || null; + + uniform.value = dstArray; // ensure unique state + + dstArray = projectPlanes( planes, camera, lGlobal, fromCache ); + + for ( var i = 0; i !== lGlobal; ++ i ) { + + dstArray[ i ] = globalState[ i ]; + + } + + cache.clippingState = dstArray; + this.numIntersection = clipIntersection ? this.numPlanes : 0; + this.numPlanes += nGlobal; + + } + + + }; + + function resetGlobalState() { + + if ( uniform.value !== globalState ) { + + uniform.value = globalState; + uniform.needsUpdate = numGlobalPlanes > 0; + + } + + scope.numPlanes = numGlobalPlanes; + scope.numIntersection = 0; + + } + + function projectPlanes( planes, camera, dstOffset, skipTransform ) { + + var nPlanes = planes !== null ? planes.length : 0, + dstArray = null; + + if ( nPlanes !== 0 ) { + + dstArray = uniform.value; + + if ( skipTransform !== true || dstArray === null ) { + + var flatSize = dstOffset + nPlanes * 4, + viewMatrix = camera.matrixWorldInverse; + + viewNormalMatrix.getNormalMatrix( viewMatrix ); + + if ( dstArray === null || dstArray.length < flatSize ) { + + dstArray = new Float32Array( flatSize ); + + } + + for ( var i = 0, i4 = dstOffset; + i !== nPlanes; ++ i, i4 += 4 ) { + + plane.copy( planes[ i ] ). + applyMatrix4( viewMatrix, viewNormalMatrix ); + + plane.normal.toArray( dstArray, i4 ); + dstArray[ i4 + 3 ] = plane.constant; + + } + + } + + uniform.value = dstArray; + uniform.needsUpdate = true; + + } + + scope.numPlanes = nPlanes; + + return dstArray; + + } + + } + + /** + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author szimek / https://github.com/szimek/ + * @author tschw + */ + + function WebGLRenderer( parameters ) { + + console.log( 'THREE.WebGLRenderer', REVISION ); + + parameters = parameters || {}; + + var _canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ), + _context = parameters.context !== undefined ? parameters.context : null, + + _alpha = parameters.alpha !== undefined ? parameters.alpha : false, + _depth = parameters.depth !== undefined ? parameters.depth : true, + _stencil = parameters.stencil !== undefined ? parameters.stencil : true, + _antialias = parameters.antialias !== undefined ? parameters.antialias : false, + _premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true, + _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false; + + var lights = []; + + var opaqueObjects = []; + var opaqueObjectsLastIndex = - 1; + var transparentObjects = []; + var transparentObjectsLastIndex = - 1; + + var morphInfluences = new Float32Array( 8 ); + + var sprites = []; + var lensFlares = []; + + // public properties + + this.domElement = _canvas; + this.context = null; + + // clearing + + this.autoClear = true; + this.autoClearColor = true; + this.autoClearDepth = true; + this.autoClearStencil = true; + + // scene graph + + this.sortObjects = true; + + // user-defined clipping + + this.clippingPlanes = []; + this.localClippingEnabled = false; + + // physically based shading + + this.gammaFactor = 2.0; // for backwards compatibility + this.gammaInput = false; + this.gammaOutput = false; + + // physical lights + + this.physicallyCorrectLights = false; + + // tone mapping + + this.toneMapping = LinearToneMapping; + this.toneMappingExposure = 1.0; + this.toneMappingWhitePoint = 1.0; + + // morphs + + this.maxMorphTargets = 8; + this.maxMorphNormals = 4; + + // internal properties + + var _this = this, + + // internal state cache + + _currentProgram = null, + _currentRenderTarget = null, + _currentFramebuffer = null, + _currentMaterialId = - 1, + _currentGeometryProgram = '', + _currentCamera = null, + + _currentScissor = new Vector4(), + _currentScissorTest = null, + + _currentViewport = new Vector4(), + + // + + _usedTextureUnits = 0, + + // + + _clearColor = new Color( 0x000000 ), + _clearAlpha = 0, + + _width = _canvas.width, + _height = _canvas.height, + + _pixelRatio = 1, + + _scissor = new Vector4( 0, 0, _width, _height ), + _scissorTest = false, + + _viewport = new Vector4( 0, 0, _width, _height ), + + // frustum + + _frustum = new Frustum(), + + // clipping + + _clipping = new WebGLClipping(), + _clippingEnabled = false, + _localClippingEnabled = false, + + _sphere = new Sphere(), + + // camera matrices cache + + _projScreenMatrix = new Matrix4(), + + _vector3 = new Vector3(), + + // light arrays cache + + _lights = { + + hash: '', + + ambient: [ 0, 0, 0 ], + directional: [], + directionalShadowMap: [], + directionalShadowMatrix: [], + spot: [], + spotShadowMap: [], + spotShadowMatrix: [], + point: [], + pointShadowMap: [], + pointShadowMatrix: [], + hemi: [], + + shadows: [] + + }, + + // info + + _infoRender = { + + calls: 0, + vertices: 0, + faces: 0, + points: 0 + + }; + + this.info = { + + render: _infoRender, + memory: { + + geometries: 0, + textures: 0 + + }, + programs: null + + }; + + + // initialize + + var _gl; + + try { + + var attributes = { + alpha: _alpha, + depth: _depth, + stencil: _stencil, + antialias: _antialias, + premultipliedAlpha: _premultipliedAlpha, + preserveDrawingBuffer: _preserveDrawingBuffer + }; + + _gl = _context || _canvas.getContext( 'webgl', attributes ) || _canvas.getContext( 'experimental-webgl', attributes ); + + if ( _gl === null ) { + + if ( _canvas.getContext( 'webgl' ) !== null ) { + + throw 'Error creating WebGL context with your selected attributes.'; + + } else { + + throw 'Error creating WebGL context.'; + + } + + } + + // Some experimental-webgl implementations do not have getShaderPrecisionFormat + + if ( _gl.getShaderPrecisionFormat === undefined ) { + + _gl.getShaderPrecisionFormat = function () { + + return { 'rangeMin': 1, 'rangeMax': 1, 'precision': 1 }; + + }; + + } + + _canvas.addEventListener( 'webglcontextlost', onContextLost, false ); + + } catch ( error ) { + + console.error( 'THREE.WebGLRenderer: ' + error ); + + } + + var extensions = new WebGLExtensions( _gl ); + + extensions.get( 'WEBGL_depth_texture' ); + extensions.get( 'OES_texture_float' ); + extensions.get( 'OES_texture_float_linear' ); + extensions.get( 'OES_texture_half_float' ); + extensions.get( 'OES_texture_half_float_linear' ); + extensions.get( 'OES_standard_derivatives' ); + extensions.get( 'ANGLE_instanced_arrays' ); + + if ( extensions.get( 'OES_element_index_uint' ) ) { + + BufferGeometry.MaxIndex = 4294967296; + + } + + var capabilities = new WebGLCapabilities( _gl, extensions, parameters ); + + var state = new WebGLState( _gl, extensions, paramThreeToGL ); + var properties = new WebGLProperties(); + var textures = new WebGLTextures( _gl, extensions, state, properties, capabilities, paramThreeToGL, this.info ); + var objects = new WebGLObjects( _gl, properties, this.info ); + var programCache = new WebGLPrograms( this, capabilities ); + var lightCache = new WebGLLights(); + + this.info.programs = programCache.programs; + + var bufferRenderer = new WebGLBufferRenderer( _gl, extensions, _infoRender ); + var indexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, _infoRender ); + + // + + var backgroundCamera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 ); + var backgroundCamera2 = new PerspectiveCamera(); + var backgroundPlaneMesh = new Mesh( + new PlaneBufferGeometry( 2, 2 ), + new MeshBasicMaterial( { depthTest: false, depthWrite: false, fog: false } ) + ); + var backgroundBoxShader = ShaderLib[ 'cube' ]; + var backgroundBoxMesh = new Mesh( + new BoxBufferGeometry( 5, 5, 5 ), + new ShaderMaterial( { + uniforms: backgroundBoxShader.uniforms, + vertexShader: backgroundBoxShader.vertexShader, + fragmentShader: backgroundBoxShader.fragmentShader, + side: BackSide, + depthTest: false, + depthWrite: false, + fog: false + } ) + ); + + // + + function getTargetPixelRatio() { + + return _currentRenderTarget === null ? _pixelRatio : 1; + + } + + function glClearColor( r, g, b, a ) { + + if ( _premultipliedAlpha === true ) { + + r *= a; g *= a; b *= a; + + } + + state.clearColor( r, g, b, a ); + + } + + function setDefaultGLState() { + + state.init(); + + state.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ) ); + state.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ) ); + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + } + + function resetGLState() { + + _currentProgram = null; + _currentCamera = null; + + _currentGeometryProgram = ''; + _currentMaterialId = - 1; + + state.reset(); + + } + + setDefaultGLState(); + + this.context = _gl; + this.capabilities = capabilities; + this.extensions = extensions; + this.properties = properties; + this.state = state; + + // shadow map + + var shadowMap = new WebGLShadowMap( this, _lights, objects, capabilities ); + + this.shadowMap = shadowMap; + + + // Plugins + + var spritePlugin = new SpritePlugin( this, sprites ); + var lensFlarePlugin = new LensFlarePlugin( this, lensFlares ); + + // API + + this.getContext = function () { + + return _gl; + + }; + + this.getContextAttributes = function () { + + return _gl.getContextAttributes(); + + }; + + this.forceContextLoss = function () { + + extensions.get( 'WEBGL_lose_context' ).loseContext(); + + }; + + this.getMaxAnisotropy = function () { + + return capabilities.getMaxAnisotropy(); + + }; + + this.getPrecision = function () { + + return capabilities.precision; + + }; + + this.getPixelRatio = function () { + + return _pixelRatio; + + }; + + this.setPixelRatio = function ( value ) { + + if ( value === undefined ) return; + + _pixelRatio = value; + + this.setSize( _viewport.z, _viewport.w, false ); + + }; + + this.getSize = function () { + + return { + width: _width, + height: _height + }; + + }; + + this.setSize = function ( width, height, updateStyle ) { + + _width = width; + _height = height; + + _canvas.width = width * _pixelRatio; + _canvas.height = height * _pixelRatio; + + if ( updateStyle !== false ) { + + _canvas.style.width = width + 'px'; + _canvas.style.height = height + 'px'; + + } + + this.setViewport( 0, 0, width, height ); + + }; + + this.setViewport = function ( x, y, width, height ) { + + state.viewport( _viewport.set( x, y, width, height ) ); + + }; + + this.setScissor = function ( x, y, width, height ) { + + state.scissor( _scissor.set( x, y, width, height ) ); + + }; + + this.setScissorTest = function ( boolean ) { + + state.setScissorTest( _scissorTest = boolean ); + + }; + + // Clearing + + this.getClearColor = function () { + + return _clearColor; + + }; + + this.setClearColor = function ( color, alpha ) { + + _clearColor.set( color ); + + _clearAlpha = alpha !== undefined ? alpha : 1; + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + }; + + this.getClearAlpha = function () { + + return _clearAlpha; + + }; + + this.setClearAlpha = function ( alpha ) { + + _clearAlpha = alpha; + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + }; + + this.clear = function ( color, depth, stencil ) { + + var bits = 0; + + if ( color === undefined || color ) bits |= _gl.COLOR_BUFFER_BIT; + if ( depth === undefined || depth ) bits |= _gl.DEPTH_BUFFER_BIT; + if ( stencil === undefined || stencil ) bits |= _gl.STENCIL_BUFFER_BIT; + + _gl.clear( bits ); + + }; + + this.clearColor = function () { + + this.clear( true, false, false ); + + }; + + this.clearDepth = function () { + + this.clear( false, true, false ); + + }; + + this.clearStencil = function () { + + this.clear( false, false, true ); + + }; + + this.clearTarget = function ( renderTarget, color, depth, stencil ) { + + this.setRenderTarget( renderTarget ); + this.clear( color, depth, stencil ); + + }; + + // Reset + + this.resetGLState = resetGLState; + + this.dispose = function() { + + transparentObjects = []; + transparentObjectsLastIndex = -1; + opaqueObjects = []; + opaqueObjectsLastIndex = -1; + + _canvas.removeEventListener( 'webglcontextlost', onContextLost, false ); + + }; + + // Events + + function onContextLost( event ) { + + event.preventDefault(); + + resetGLState(); + setDefaultGLState(); + + properties.clear(); + + } + + function onMaterialDispose( event ) { + + var material = event.target; + + material.removeEventListener( 'dispose', onMaterialDispose ); + + deallocateMaterial( material ); + + } + + // Buffer deallocation + + function deallocateMaterial( material ) { + + releaseMaterialProgramReference( material ); + + properties.delete( material ); + + } + + + function releaseMaterialProgramReference( material ) { + + var programInfo = properties.get( material ).program; + + material.program = undefined; + + if ( programInfo !== undefined ) { + + programCache.releaseProgram( programInfo ); + + } + + } + + // Buffer rendering + + this.renderBufferImmediate = function ( object, program, material ) { + + state.initAttributes(); + + var buffers = properties.get( object ); + + if ( object.hasPositions && ! buffers.position ) buffers.position = _gl.createBuffer(); + if ( object.hasNormals && ! buffers.normal ) buffers.normal = _gl.createBuffer(); + if ( object.hasUvs && ! buffers.uv ) buffers.uv = _gl.createBuffer(); + if ( object.hasColors && ! buffers.color ) buffers.color = _gl.createBuffer(); + + var attributes = program.getAttributes(); + + if ( object.hasPositions ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.position ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.positionArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( attributes.position ); + _gl.vertexAttribPointer( attributes.position, 3, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasNormals ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.normal ); + + if ( ! material.isMeshPhongMaterial && + ! material.isMeshStandardMaterial && + material.shading === FlatShading ) { + + for ( var i = 0, l = object.count * 3; i < l; i += 9 ) { + + var array = object.normalArray; + + var nx = ( array[ i + 0 ] + array[ i + 3 ] + array[ i + 6 ] ) / 3; + var ny = ( array[ i + 1 ] + array[ i + 4 ] + array[ i + 7 ] ) / 3; + var nz = ( array[ i + 2 ] + array[ i + 5 ] + array[ i + 8 ] ) / 3; + + array[ i + 0 ] = nx; + array[ i + 1 ] = ny; + array[ i + 2 ] = nz; + + array[ i + 3 ] = nx; + array[ i + 4 ] = ny; + array[ i + 5 ] = nz; + + array[ i + 6 ] = nx; + array[ i + 7 ] = ny; + array[ i + 8 ] = nz; + + } + + } + + _gl.bufferData( _gl.ARRAY_BUFFER, object.normalArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( attributes.normal ); + + _gl.vertexAttribPointer( attributes.normal, 3, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasUvs && material.map ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.uv ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.uvArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( attributes.uv ); + + _gl.vertexAttribPointer( attributes.uv, 2, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasColors && material.vertexColors !== NoColors ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.color ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.colorArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( attributes.color ); + + _gl.vertexAttribPointer( attributes.color, 3, _gl.FLOAT, false, 0, 0 ); + + } + + state.disableUnusedAttributes(); + + _gl.drawArrays( _gl.TRIANGLES, 0, object.count ); + + object.count = 0; + + }; + + this.renderBufferDirect = function ( camera, fog, geometry, material, object, group ) { + + setMaterial( material ); + + var program = setProgram( camera, fog, material, object ); + + var updateBuffers = false; + var geometryProgram = geometry.id + '_' + program.id + '_' + material.wireframe; + + if ( geometryProgram !== _currentGeometryProgram ) { + + _currentGeometryProgram = geometryProgram; + updateBuffers = true; + + } + + // morph targets + + var morphTargetInfluences = object.morphTargetInfluences; + + if ( morphTargetInfluences !== undefined ) { + + var activeInfluences = []; + + for ( var i = 0, l = morphTargetInfluences.length; i < l; i ++ ) { + + var influence = morphTargetInfluences[ i ]; + activeInfluences.push( [ influence, i ] ); + + } + + activeInfluences.sort( absNumericalSort ); + + if ( activeInfluences.length > 8 ) { + + activeInfluences.length = 8; + + } + + var morphAttributes = geometry.morphAttributes; + + for ( var i = 0, l = activeInfluences.length; i < l; i ++ ) { + + var influence = activeInfluences[ i ]; + morphInfluences[ i ] = influence[ 0 ]; + + if ( influence[ 0 ] !== 0 ) { + + var index = influence[ 1 ]; + + if ( material.morphTargets === true && morphAttributes.position ) geometry.addAttribute( 'morphTarget' + i, morphAttributes.position[ index ] ); + if ( material.morphNormals === true && morphAttributes.normal ) geometry.addAttribute( 'morphNormal' + i, morphAttributes.normal[ index ] ); + + } else { + + if ( material.morphTargets === true ) geometry.removeAttribute( 'morphTarget' + i ); + if ( material.morphNormals === true ) geometry.removeAttribute( 'morphNormal' + i ); + + } + + } + + for ( var i = activeInfluences.length, il = morphInfluences.length; i < il; i ++ ) { + + morphInfluences[ i ] = 0.0; + + } + + program.getUniforms().setValue( + _gl, 'morphTargetInfluences', morphInfluences ); + + updateBuffers = true; + + } + + // + + var index = geometry.index; + var position = geometry.attributes.position; + var rangeFactor = 1; + + if ( material.wireframe === true ) { + + index = objects.getWireframeAttribute( geometry ); + rangeFactor = 2; + + } + + var renderer; + + if ( index !== null ) { + + renderer = indexedBufferRenderer; + renderer.setIndex( index ); + + } else { + + renderer = bufferRenderer; + + } + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry ); + + if ( index !== null ) { + + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, objects.getAttributeBuffer( index ) ); + + } + + } + + // + + var dataCount = 0; + + if ( index !== null ) { + + dataCount = index.count; + + } else if ( position !== undefined ) { + + dataCount = position.count; + + } + + var rangeStart = geometry.drawRange.start * rangeFactor; + var rangeCount = geometry.drawRange.count * rangeFactor; + + var groupStart = group !== null ? group.start * rangeFactor : 0; + var groupCount = group !== null ? group.count * rangeFactor : Infinity; + + var drawStart = Math.max( rangeStart, groupStart ); + var drawEnd = Math.min( dataCount, rangeStart + rangeCount, groupStart + groupCount ) - 1; + + var drawCount = Math.max( 0, drawEnd - drawStart + 1 ); + + if ( drawCount === 0 ) return; + + // + + if ( object.isMesh ) { + + if ( material.wireframe === true ) { + + state.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() ); + renderer.setMode( _gl.LINES ); + + } else { + + switch ( object.drawMode ) { + + case TrianglesDrawMode: + renderer.setMode( _gl.TRIANGLES ); + break; + + case TriangleStripDrawMode: + renderer.setMode( _gl.TRIANGLE_STRIP ); + break; + + case TriangleFanDrawMode: + renderer.setMode( _gl.TRIANGLE_FAN ); + break; + + } + + } + + + } else if ( object.isLine ) { + + var lineWidth = material.linewidth; + + if ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material + + state.setLineWidth( lineWidth * getTargetPixelRatio() ); + + if ( object.isLineSegments ) { + + renderer.setMode( _gl.LINES ); + + } else { + + renderer.setMode( _gl.LINE_STRIP ); + + } + + } else if ( object.isPoints ) { + + renderer.setMode( _gl.POINTS ); + + } + + if ( geometry && geometry.isInstancedBufferGeometry ) { + + if ( geometry.maxInstancedCount > 0 ) { + + renderer.renderInstances( geometry, drawStart, drawCount ); + + } + + } else { + + renderer.render( drawStart, drawCount ); + + } + + }; + + function setupVertexAttributes( material, program, geometry, startIndex ) { + + var extension; + + if ( geometry && geometry.isInstancedBufferGeometry ) { + + extension = extensions.get( 'ANGLE_instanced_arrays' ); + + if ( extension === null ) { + + console.error( 'THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' ); + return; + + } + + } + + if ( startIndex === undefined ) startIndex = 0; + + state.initAttributes(); + + var geometryAttributes = geometry.attributes; + + var programAttributes = program.getAttributes(); + + var materialDefaultAttributeValues = material.defaultAttributeValues; + + for ( var name in programAttributes ) { + + var programAttribute = programAttributes[ name ]; + + if ( programAttribute >= 0 ) { + + var geometryAttribute = geometryAttributes[ name ]; + + if ( geometryAttribute !== undefined ) { + + var type = _gl.FLOAT; + var array = geometryAttribute.array; + var normalized = geometryAttribute.normalized; + + if ( array instanceof Float32Array ) { + + type = _gl.FLOAT; + + } else if ( array instanceof Float64Array ) { + + console.warn( "Unsupported data buffer format: Float64Array" ); + + } else if ( array instanceof Uint16Array ) { + + type = _gl.UNSIGNED_SHORT; + + } else if ( array instanceof Int16Array ) { + + type = _gl.SHORT; + + } else if ( array instanceof Uint32Array ) { + + type = _gl.UNSIGNED_INT; + + } else if ( array instanceof Int32Array ) { + + type = _gl.INT; + + } else if ( array instanceof Int8Array ) { + + type = _gl.BYTE; + + } else if ( array instanceof Uint8Array ) { + + type = _gl.UNSIGNED_BYTE; + + } + + var size = geometryAttribute.itemSize; + var buffer = objects.getAttributeBuffer( geometryAttribute ); + + if ( geometryAttribute.isInterleavedBufferAttribute ) { + + var data = geometryAttribute.data; + var stride = data.stride; + var offset = geometryAttribute.offset; + + if ( data && data.isInstancedInterleavedBuffer ) { + + state.enableAttributeAndDivisor( programAttribute, data.meshPerAttribute, extension ); + + if ( geometry.maxInstancedCount === undefined ) { + + geometry.maxInstancedCount = data.meshPerAttribute * data.count; + + } + + } else { + + state.enableAttribute( programAttribute ); + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffer ); + _gl.vertexAttribPointer( programAttribute, size, type, normalized, stride * data.array.BYTES_PER_ELEMENT, ( startIndex * stride + offset ) * data.array.BYTES_PER_ELEMENT ); + + } else { + + if ( geometryAttribute.isInstancedBufferAttribute ) { + + state.enableAttributeAndDivisor( programAttribute, geometryAttribute.meshPerAttribute, extension ); + + if ( geometry.maxInstancedCount === undefined ) { + + geometry.maxInstancedCount = geometryAttribute.meshPerAttribute * geometryAttribute.count; + + } + + } else { + + state.enableAttribute( programAttribute ); + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, buffer ); + _gl.vertexAttribPointer( programAttribute, size, type, normalized, 0, startIndex * size * geometryAttribute.array.BYTES_PER_ELEMENT ); + + } + + } else if ( materialDefaultAttributeValues !== undefined ) { + + var value = materialDefaultAttributeValues[ name ]; + + if ( value !== undefined ) { + + switch ( value.length ) { + + case 2: + _gl.vertexAttrib2fv( programAttribute, value ); + break; + + case 3: + _gl.vertexAttrib3fv( programAttribute, value ); + break; + + case 4: + _gl.vertexAttrib4fv( programAttribute, value ); + break; + + default: + _gl.vertexAttrib1fv( programAttribute, value ); + + } + + } + + } + + } + + } + + state.disableUnusedAttributes(); + + } + + // Sorting + + function absNumericalSort( a, b ) { + + return Math.abs( b[ 0 ] ) - Math.abs( a[ 0 ] ); + + } + + function painterSortStable( a, b ) { + + if ( a.object.renderOrder !== b.object.renderOrder ) { + + return a.object.renderOrder - b.object.renderOrder; + + } else if ( a.material.program && b.material.program && a.material.program !== b.material.program ) { + + return a.material.program.id - b.material.program.id; + + } else if ( a.material.id !== b.material.id ) { + + return a.material.id - b.material.id; + + } else if ( a.z !== b.z ) { + + return a.z - b.z; + + } else { + + return a.id - b.id; + + } + + } + + function reversePainterSortStable( a, b ) { + + if ( a.object.renderOrder !== b.object.renderOrder ) { + + return a.object.renderOrder - b.object.renderOrder; + + } if ( a.z !== b.z ) { + + return b.z - a.z; + + } else { + + return a.id - b.id; + + } + + } + + // Rendering + + this.render = function ( scene, camera, renderTarget, forceClear ) { + + if ( camera !== undefined && camera.isCamera !== true ) { + + console.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' ); + return; + + } + + // reset caching for this frame + + _currentGeometryProgram = ''; + _currentMaterialId = - 1; + _currentCamera = null; + + // update scene graph + + if ( scene.autoUpdate === true ) scene.updateMatrixWorld(); + + // update camera matrices and frustum + + if ( camera.parent === null ) camera.updateMatrixWorld(); + + camera.matrixWorldInverse.getInverse( camera.matrixWorld ); + + _projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse ); + _frustum.setFromMatrix( _projScreenMatrix ); + + lights.length = 0; + + opaqueObjectsLastIndex = - 1; + transparentObjectsLastIndex = - 1; + + sprites.length = 0; + lensFlares.length = 0; + + _localClippingEnabled = this.localClippingEnabled; + _clippingEnabled = _clipping.init( this.clippingPlanes, _localClippingEnabled, camera ); + + projectObject( scene, camera ); + + opaqueObjects.length = opaqueObjectsLastIndex + 1; + transparentObjects.length = transparentObjectsLastIndex + 1; + + if ( _this.sortObjects === true ) { + + opaqueObjects.sort( painterSortStable ); + transparentObjects.sort( reversePainterSortStable ); + + } + + // + + if ( _clippingEnabled ) _clipping.beginShadows(); + + setupShadows( lights ); + + shadowMap.render( scene, camera ); + + setupLights( lights, camera ); + + if ( _clippingEnabled ) _clipping.endShadows(); + + // + + _infoRender.calls = 0; + _infoRender.vertices = 0; + _infoRender.faces = 0; + _infoRender.points = 0; + + if ( renderTarget === undefined ) { + + renderTarget = null; + + } + + this.setRenderTarget( renderTarget ); + + // + + var background = scene.background; + + if ( background === null ) { + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + } else if ( background && background.isColor ) { + + glClearColor( background.r, background.g, background.b, 1 ); + forceClear = true; + + } + + if ( this.autoClear || forceClear ) { + + this.clear( this.autoClearColor, this.autoClearDepth, this.autoClearStencil ); + + } + + if ( background && background.isCubeTexture ) { + + backgroundCamera2.projectionMatrix.copy( camera.projectionMatrix ); + + backgroundCamera2.matrixWorld.extractRotation( camera.matrixWorld ); + backgroundCamera2.matrixWorldInverse.getInverse( backgroundCamera2.matrixWorld ); + + backgroundBoxMesh.material.uniforms[ "tCube" ].value = background; + backgroundBoxMesh.modelViewMatrix.multiplyMatrices( backgroundCamera2.matrixWorldInverse, backgroundBoxMesh.matrixWorld ); + + objects.update( backgroundBoxMesh ); + + _this.renderBufferDirect( backgroundCamera2, null, backgroundBoxMesh.geometry, backgroundBoxMesh.material, backgroundBoxMesh, null ); + + } else if ( background && background.isTexture ) { + + backgroundPlaneMesh.material.map = background; + + objects.update( backgroundPlaneMesh ); + + _this.renderBufferDirect( backgroundCamera, null, backgroundPlaneMesh.geometry, backgroundPlaneMesh.material, backgroundPlaneMesh, null ); + + } + + // + + if ( scene.overrideMaterial ) { + + var overrideMaterial = scene.overrideMaterial; + + renderObjects( opaqueObjects, scene, camera, overrideMaterial ); + renderObjects( transparentObjects, scene, camera, overrideMaterial ); + + } else { + + // opaque pass (front-to-back order) + + state.setBlending( NoBlending ); + renderObjects( opaqueObjects, scene, camera ); + + // transparent pass (back-to-front order) + + renderObjects( transparentObjects, scene, camera ); + + } + + // custom render plugins (post pass) + + spritePlugin.render( scene, camera ); + lensFlarePlugin.render( scene, camera, _currentViewport ); + + // Generate mipmap if we're using any kind of mipmap filtering + + if ( renderTarget ) { + + textures.updateRenderTargetMipmap( renderTarget ); + + } + + // Ensure depth buffer writing is enabled so it can be cleared on next render + + state.setDepthTest( true ); + state.setDepthWrite( true ); + state.setColorWrite( true ); + + // _gl.finish(); + + }; + + function pushRenderItem( object, geometry, material, z, group ) { + + var array, index; + + // allocate the next position in the appropriate array + + if ( material.transparent ) { + + array = transparentObjects; + index = ++ transparentObjectsLastIndex; + + } else { + + array = opaqueObjects; + index = ++ opaqueObjectsLastIndex; + + } + + // recycle existing render item or grow the array + + var renderItem = array[ index ]; + + if ( renderItem !== undefined ) { + + renderItem.id = object.id; + renderItem.object = object; + renderItem.geometry = geometry; + renderItem.material = material; + renderItem.z = _vector3.z; + renderItem.group = group; + + } else { + + renderItem = { + id: object.id, + object: object, + geometry: geometry, + material: material, + z: _vector3.z, + group: group + }; + + // assert( index === array.length ); + array.push( renderItem ); + + } + + } + + // TODO Duplicated code (Frustum) + + function isObjectViewable( object ) { + + var geometry = object.geometry; + + if ( geometry.boundingSphere === null ) + geometry.computeBoundingSphere(); + + _sphere.copy( geometry.boundingSphere ). + applyMatrix4( object.matrixWorld ); + + return isSphereViewable( _sphere ); + + } + + function isSpriteViewable( sprite ) { + + _sphere.center.set( 0, 0, 0 ); + _sphere.radius = 0.7071067811865476; + _sphere.applyMatrix4( sprite.matrixWorld ); + + return isSphereViewable( _sphere ); + + } + + function isSphereViewable( sphere ) { + + if ( ! _frustum.intersectsSphere( sphere ) ) return false; + + var numPlanes = _clipping.numPlanes; + + if ( numPlanes === 0 ) return true; + + var planes = _this.clippingPlanes, + + center = sphere.center, + negRad = - sphere.radius, + i = 0; + + do { + + // out when deeper than radius in the negative halfspace + if ( planes[ i ].distanceToPoint( center ) < negRad ) return false; + + } while ( ++ i !== numPlanes ); + + return true; + + } + + function projectObject( object, camera ) { + + if ( object.visible === false ) return; + + var visible = ( object.layers.mask & camera.layers.mask ) !== 0; + + if ( visible ) { + + if ( object.isLight ) { + + lights.push( object ); + + } else if ( object.isSprite ) { + + if ( object.frustumCulled === false || isSpriteViewable( object ) === true ) { + + sprites.push( object ); + + } + + } else if ( object.isLensFlare ) { + + lensFlares.push( object ); + + } else if ( object.isImmediateRenderObject ) { + + if ( _this.sortObjects === true ) { + + _vector3.setFromMatrixPosition( object.matrixWorld ); + _vector3.applyProjection( _projScreenMatrix ); + + } + + pushRenderItem( object, null, object.material, _vector3.z, null ); + + } else if ( object.isMesh || object.isLine || object.isPoints ) { + + if ( object.isSkinnedMesh ) { + + object.skeleton.update(); + + } + + if ( object.frustumCulled === false || isObjectViewable( object ) === true ) { + + var material = object.material; + + if ( material.visible === true ) { + + if ( _this.sortObjects === true ) { + + _vector3.setFromMatrixPosition( object.matrixWorld ); + _vector3.applyProjection( _projScreenMatrix ); + + } + + var geometry = objects.update( object ); + + if ( material.isMultiMaterial ) { + + var groups = geometry.groups; + var materials = material.materials; + + for ( var i = 0, l = groups.length; i < l; i ++ ) { + + var group = groups[ i ]; + var groupMaterial = materials[ group.materialIndex ]; + + if ( groupMaterial.visible === true ) { + + pushRenderItem( object, geometry, groupMaterial, _vector3.z, group ); + + } + + } + + } else { + + pushRenderItem( object, geometry, material, _vector3.z, null ); + + } + + } + + } + + } + + } + + var children = object.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + projectObject( children[ i ], camera ); + + } + + } + + function renderObjects( renderList, scene, camera, overrideMaterial ) { + + for ( var i = 0, l = renderList.length; i < l; i ++ ) { + + var renderItem = renderList[ i ]; + + var object = renderItem.object; + var geometry = renderItem.geometry; + var material = overrideMaterial === undefined ? renderItem.material : overrideMaterial; + var group = renderItem.group; + + object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld ); + object.normalMatrix.getNormalMatrix( object.modelViewMatrix ); + + object.onBeforeRender( _this, scene, camera, geometry, material, group ); + + if ( object.isImmediateRenderObject ) { + + setMaterial( material ); + + var program = setProgram( camera, scene.fog, material, object ); + + _currentGeometryProgram = ''; + + object.render( function ( object ) { + + _this.renderBufferImmediate( object, program, material ); + + } ); + + } else { + + _this.renderBufferDirect( camera, scene.fog, geometry, material, object, group ); + + } + + object.onAfterRender( _this, scene, camera, geometry, material, group ); + + + } + + } + + function initMaterial( material, fog, object ) { + + var materialProperties = properties.get( material ); + + var parameters = programCache.getParameters( + material, _lights, fog, _clipping.numPlanes, _clipping.numIntersection, object ); + + var code = programCache.getProgramCode( material, parameters ); + + var program = materialProperties.program; + var programChange = true; + + if ( program === undefined ) { + + // new material + material.addEventListener( 'dispose', onMaterialDispose ); + + } else if ( program.code !== code ) { + + // changed glsl or parameters + releaseMaterialProgramReference( material ); + + } else if ( parameters.shaderID !== undefined ) { + + // same glsl and uniform list + return; + + } else { + + // only rebuild uniform list + programChange = false; + + } + + if ( programChange ) { + + if ( parameters.shaderID ) { + + var shader = ShaderLib[ parameters.shaderID ]; + + materialProperties.__webglShader = { + name: material.type, + uniforms: UniformsUtils.clone( shader.uniforms ), + vertexShader: shader.vertexShader, + fragmentShader: shader.fragmentShader + }; + + } else { + + materialProperties.__webglShader = { + name: material.type, + uniforms: material.uniforms, + vertexShader: material.vertexShader, + fragmentShader: material.fragmentShader + }; + + } + + material.__webglShader = materialProperties.__webglShader; + + program = programCache.acquireProgram( material, parameters, code ); + + materialProperties.program = program; + material.program = program; + + } + + var attributes = program.getAttributes(); + + if ( material.morphTargets ) { + + material.numSupportedMorphTargets = 0; + + for ( var i = 0; i < _this.maxMorphTargets; i ++ ) { + + if ( attributes[ 'morphTarget' + i ] >= 0 ) { + + material.numSupportedMorphTargets ++; + + } + + } + + } + + if ( material.morphNormals ) { + + material.numSupportedMorphNormals = 0; + + for ( var i = 0; i < _this.maxMorphNormals; i ++ ) { + + if ( attributes[ 'morphNormal' + i ] >= 0 ) { + + material.numSupportedMorphNormals ++; + + } + + } + + } + + var uniforms = materialProperties.__webglShader.uniforms; + + if ( ! material.isShaderMaterial && + ! material.isRawShaderMaterial || + material.clipping === true ) { + + materialProperties.numClippingPlanes = _clipping.numPlanes; + materialProperties.numIntersection = _clipping.numIntersection; + uniforms.clippingPlanes = _clipping.uniform; + + } + + materialProperties.fog = fog; + + // store the light setup it was created for + + materialProperties.lightsHash = _lights.hash; + + if ( material.lights ) { + + // wire up the material to this renderer's lighting state + + uniforms.ambientLightColor.value = _lights.ambient; + uniforms.directionalLights.value = _lights.directional; + uniforms.spotLights.value = _lights.spot; + uniforms.pointLights.value = _lights.point; + uniforms.hemisphereLights.value = _lights.hemi; + + uniforms.directionalShadowMap.value = _lights.directionalShadowMap; + uniforms.directionalShadowMatrix.value = _lights.directionalShadowMatrix; + uniforms.spotShadowMap.value = _lights.spotShadowMap; + uniforms.spotShadowMatrix.value = _lights.spotShadowMatrix; + uniforms.pointShadowMap.value = _lights.pointShadowMap; + uniforms.pointShadowMatrix.value = _lights.pointShadowMatrix; + + } + + var progUniforms = materialProperties.program.getUniforms(), + uniformsList = + WebGLUniforms.seqWithValue( progUniforms.seq, uniforms ); + + materialProperties.uniformsList = uniformsList; + + } + + function setMaterial( material ) { + + material.side === DoubleSide + ? state.disable( _gl.CULL_FACE ) + : state.enable( _gl.CULL_FACE ); + + state.setFlipSided( material.side === BackSide ); + + material.transparent === true + ? state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha ) + : state.setBlending( NoBlending ); + + state.setDepthFunc( material.depthFunc ); + state.setDepthTest( material.depthTest ); + state.setDepthWrite( material.depthWrite ); + state.setColorWrite( material.colorWrite ); + state.setPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits ); + + } + + function setProgram( camera, fog, material, object ) { + + _usedTextureUnits = 0; + + var materialProperties = properties.get( material ); + + if ( _clippingEnabled ) { + + if ( _localClippingEnabled || camera !== _currentCamera ) { + + var useCache = + camera === _currentCamera && + material.id === _currentMaterialId; + + // we might want to call this function with some ClippingGroup + // object instead of the material, once it becomes feasible + // (#8465, #8379) + _clipping.setState( + material.clippingPlanes, material.clipIntersection, material.clipShadows, + camera, materialProperties, useCache ); + + } + + } + + if ( material.needsUpdate === false ) { + + if ( materialProperties.program === undefined ) { + + material.needsUpdate = true; + + } else if ( material.fog && materialProperties.fog !== fog ) { + + material.needsUpdate = true; + + } else if ( material.lights && materialProperties.lightsHash !== _lights.hash ) { + + material.needsUpdate = true; + + } else if ( materialProperties.numClippingPlanes !== undefined && + ( materialProperties.numClippingPlanes !== _clipping.numPlanes || + materialProperties.numIntersection !== _clipping.numIntersection ) ) { + + material.needsUpdate = true; + + } + + } + + if ( material.needsUpdate ) { + + initMaterial( material, fog, object ); + material.needsUpdate = false; + + } + + var refreshProgram = false; + var refreshMaterial = false; + var refreshLights = false; + + var program = materialProperties.program, + p_uniforms = program.getUniforms(), + m_uniforms = materialProperties.__webglShader.uniforms; + + if ( program.id !== _currentProgram ) { + + _gl.useProgram( program.program ); + _currentProgram = program.id; + + refreshProgram = true; + refreshMaterial = true; + refreshLights = true; + + } + + if ( material.id !== _currentMaterialId ) { + + _currentMaterialId = material.id; + + refreshMaterial = true; + + } + + if ( refreshProgram || camera !== _currentCamera ) { + + p_uniforms.set( _gl, camera, 'projectionMatrix' ); + + if ( capabilities.logarithmicDepthBuffer ) { + + p_uniforms.setValue( _gl, 'logDepthBufFC', + 2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) ); + + } + + + if ( camera !== _currentCamera ) { + + _currentCamera = camera; + + // lighting uniforms depend on the camera so enforce an update + // now, in case this material supports lights - or later, when + // the next material that does gets activated: + + refreshMaterial = true; // set to true on material change + refreshLights = true; // remains set until update done + + } + + // load material specific uniforms + // (shader material also gets them for the sake of genericity) + + if ( material.isShaderMaterial || + material.isMeshPhongMaterial || + material.isMeshStandardMaterial || + material.envMap ) { + + var uCamPos = p_uniforms.map.cameraPosition; + + if ( uCamPos !== undefined ) { + + uCamPos.setValue( _gl, + _vector3.setFromMatrixPosition( camera.matrixWorld ) ); + + } + + } + + if ( material.isMeshPhongMaterial || + material.isMeshLambertMaterial || + material.isMeshBasicMaterial || + material.isMeshStandardMaterial || + material.isShaderMaterial || + material.skinning ) { + + p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse ); + + } + + p_uniforms.set( _gl, _this, 'toneMappingExposure' ); + p_uniforms.set( _gl, _this, 'toneMappingWhitePoint' ); + + } + + // skinning uniforms must be set even if material didn't change + // auto-setting of texture unit for bone texture must go before other textures + // not sure why, but otherwise weird things happen + + if ( material.skinning ) { + + p_uniforms.setOptional( _gl, object, 'bindMatrix' ); + p_uniforms.setOptional( _gl, object, 'bindMatrixInverse' ); + + var skeleton = object.skeleton; + + if ( skeleton ) { + + if ( capabilities.floatVertexTextures && skeleton.useVertexTexture ) { + + p_uniforms.set( _gl, skeleton, 'boneTexture' ); + p_uniforms.set( _gl, skeleton, 'boneTextureWidth' ); + p_uniforms.set( _gl, skeleton, 'boneTextureHeight' ); + + } else { + + p_uniforms.setOptional( _gl, skeleton, 'boneMatrices' ); + + } + + } + + } + + if ( refreshMaterial ) { + + if ( material.lights ) { + + // the current material requires lighting info + + // note: all lighting uniforms are always set correctly + // they simply reference the renderer's state for their + // values + // + // use the current material's .needsUpdate flags to set + // the GL state when required + + markUniformsLightsNeedsUpdate( m_uniforms, refreshLights ); + + } + + // refresh uniforms common to several materials + + if ( fog && material.fog ) { + + refreshUniformsFog( m_uniforms, fog ); + + } + + if ( material.isMeshBasicMaterial || + material.isMeshLambertMaterial || + material.isMeshPhongMaterial || + material.isMeshStandardMaterial || + material.isMeshDepthMaterial ) { + + refreshUniformsCommon( m_uniforms, material ); + + } + + // refresh single material specific uniforms + + if ( material.isLineBasicMaterial ) { + + refreshUniformsLine( m_uniforms, material ); + + } else if ( material.isLineDashedMaterial ) { + + refreshUniformsLine( m_uniforms, material ); + refreshUniformsDash( m_uniforms, material ); + + } else if ( material.isPointsMaterial ) { + + refreshUniformsPoints( m_uniforms, material ); + + } else if ( material.isMeshLambertMaterial ) { + + refreshUniformsLambert( m_uniforms, material ); + + } else if ( material.isMeshPhongMaterial ) { + + refreshUniformsPhong( m_uniforms, material ); + + } else if ( material.isMeshPhysicalMaterial ) { + + refreshUniformsPhysical( m_uniforms, material ); + + } else if ( material.isMeshStandardMaterial ) { + + refreshUniformsStandard( m_uniforms, material ); + + } else if ( material.isMeshDepthMaterial ) { + + if ( material.displacementMap ) { + + m_uniforms.displacementMap.value = material.displacementMap; + m_uniforms.displacementScale.value = material.displacementScale; + m_uniforms.displacementBias.value = material.displacementBias; + + } + + } else if ( material.isMeshNormalMaterial ) { + + m_uniforms.opacity.value = material.opacity; + + } + + WebGLUniforms.upload( + _gl, materialProperties.uniformsList, m_uniforms, _this ); + + } + + + // common matrices + + p_uniforms.set( _gl, object, 'modelViewMatrix' ); + p_uniforms.set( _gl, object, 'normalMatrix' ); + p_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld ); + + return program; + + } + + // Uniforms (refresh uniforms objects) + + function refreshUniformsCommon( uniforms, material ) { + + uniforms.opacity.value = material.opacity; + + uniforms.diffuse.value = material.color; + + if ( material.emissive ) { + + uniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity ); + + } + + uniforms.map.value = material.map; + uniforms.specularMap.value = material.specularMap; + uniforms.alphaMap.value = material.alphaMap; + + if ( material.aoMap ) { + + uniforms.aoMap.value = material.aoMap; + uniforms.aoMapIntensity.value = material.aoMapIntensity; + + } + + // uv repeat and offset setting priorities + // 1. color map + // 2. specular map + // 3. normal map + // 4. bump map + // 5. alpha map + // 6. emissive map + + var uvScaleMap; + + if ( material.map ) { + + uvScaleMap = material.map; + + } else if ( material.specularMap ) { + + uvScaleMap = material.specularMap; + + } else if ( material.displacementMap ) { + + uvScaleMap = material.displacementMap; + + } else if ( material.normalMap ) { + + uvScaleMap = material.normalMap; + + } else if ( material.bumpMap ) { + + uvScaleMap = material.bumpMap; + + } else if ( material.roughnessMap ) { + + uvScaleMap = material.roughnessMap; + + } else if ( material.metalnessMap ) { + + uvScaleMap = material.metalnessMap; + + } else if ( material.alphaMap ) { + + uvScaleMap = material.alphaMap; + + } else if ( material.emissiveMap ) { + + uvScaleMap = material.emissiveMap; + + } + + if ( uvScaleMap !== undefined ) { + + // backwards compatibility + if ( uvScaleMap.isWebGLRenderTarget ) { + + uvScaleMap = uvScaleMap.texture; + + } + + var offset = uvScaleMap.offset; + var repeat = uvScaleMap.repeat; + + uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y ); + + } + + uniforms.envMap.value = material.envMap; + + // don't flip CubeTexture envMaps, flip everything else: + // WebGLRenderTargetCube will be flipped for backwards compatibility + // WebGLRenderTargetCube.texture will be flipped because it's a Texture and NOT a CubeTexture + // this check must be handled differently, or removed entirely, if WebGLRenderTargetCube uses a CubeTexture in the future + uniforms.flipEnvMap.value = ( ! ( material.envMap && material.envMap.isCubeTexture ) ) ? 1 : - 1; + + uniforms.reflectivity.value = material.reflectivity; + uniforms.refractionRatio.value = material.refractionRatio; + + } + + function refreshUniformsLine( uniforms, material ) { + + uniforms.diffuse.value = material.color; + uniforms.opacity.value = material.opacity; + + } + + function refreshUniformsDash( uniforms, material ) { + + uniforms.dashSize.value = material.dashSize; + uniforms.totalSize.value = material.dashSize + material.gapSize; + uniforms.scale.value = material.scale; + + } + + function refreshUniformsPoints( uniforms, material ) { + + uniforms.diffuse.value = material.color; + uniforms.opacity.value = material.opacity; + uniforms.size.value = material.size * _pixelRatio; + uniforms.scale.value = _height * 0.5; + + uniforms.map.value = material.map; + + if ( material.map !== null ) { + + var offset = material.map.offset; + var repeat = material.map.repeat; + + uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y ); + + } + + } + + function refreshUniformsFog( uniforms, fog ) { + + uniforms.fogColor.value = fog.color; + + if ( fog.isFog ) { + + uniforms.fogNear.value = fog.near; + uniforms.fogFar.value = fog.far; + + } else if ( fog.isFogExp2 ) { + + uniforms.fogDensity.value = fog.density; + + } + + } + + function refreshUniformsLambert( uniforms, material ) { + + if ( material.lightMap ) { + + uniforms.lightMap.value = material.lightMap; + uniforms.lightMapIntensity.value = material.lightMapIntensity; + + } + + if ( material.emissiveMap ) { + + uniforms.emissiveMap.value = material.emissiveMap; + + } + + } + + function refreshUniformsPhong( uniforms, material ) { + + uniforms.specular.value = material.specular; + uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 ) + + if ( material.lightMap ) { + + uniforms.lightMap.value = material.lightMap; + uniforms.lightMapIntensity.value = material.lightMapIntensity; + + } + + if ( material.emissiveMap ) { + + uniforms.emissiveMap.value = material.emissiveMap; + + } + + if ( material.bumpMap ) { + + uniforms.bumpMap.value = material.bumpMap; + uniforms.bumpScale.value = material.bumpScale; + + } + + if ( material.normalMap ) { + + uniforms.normalMap.value = material.normalMap; + uniforms.normalScale.value.copy( material.normalScale ); + + } + + if ( material.displacementMap ) { + + uniforms.displacementMap.value = material.displacementMap; + uniforms.displacementScale.value = material.displacementScale; + uniforms.displacementBias.value = material.displacementBias; + + } + + } + + function refreshUniformsStandard( uniforms, material ) { + + uniforms.roughness.value = material.roughness; + uniforms.metalness.value = material.metalness; + + if ( material.roughnessMap ) { + + uniforms.roughnessMap.value = material.roughnessMap; + + } + + if ( material.metalnessMap ) { + + uniforms.metalnessMap.value = material.metalnessMap; + + } + + if ( material.lightMap ) { + + uniforms.lightMap.value = material.lightMap; + uniforms.lightMapIntensity.value = material.lightMapIntensity; + + } + + if ( material.emissiveMap ) { + + uniforms.emissiveMap.value = material.emissiveMap; + + } + + if ( material.bumpMap ) { + + uniforms.bumpMap.value = material.bumpMap; + uniforms.bumpScale.value = material.bumpScale; + + } + + if ( material.normalMap ) { + + uniforms.normalMap.value = material.normalMap; + uniforms.normalScale.value.copy( material.normalScale ); + + } + + if ( material.displacementMap ) { + + uniforms.displacementMap.value = material.displacementMap; + uniforms.displacementScale.value = material.displacementScale; + uniforms.displacementBias.value = material.displacementBias; + + } + + if ( material.envMap ) { + + //uniforms.envMap.value = material.envMap; // part of uniforms common + uniforms.envMapIntensity.value = material.envMapIntensity; + + } + + } + + function refreshUniformsPhysical( uniforms, material ) { + + uniforms.clearCoat.value = material.clearCoat; + uniforms.clearCoatRoughness.value = material.clearCoatRoughness; + + refreshUniformsStandard( uniforms, material ); + + } + + // If uniforms are marked as clean, they don't need to be loaded to the GPU. + + function markUniformsLightsNeedsUpdate( uniforms, value ) { + + uniforms.ambientLightColor.needsUpdate = value; + + uniforms.directionalLights.needsUpdate = value; + uniforms.pointLights.needsUpdate = value; + uniforms.spotLights.needsUpdate = value; + uniforms.hemisphereLights.needsUpdate = value; + + } + + // Lighting + + function setupShadows( lights ) { + + var lightShadowsLength = 0; + + for ( var i = 0, l = lights.length; i < l; i ++ ) { + + var light = lights[ i ]; + + if ( light.castShadow ) { + + _lights.shadows[ lightShadowsLength ++ ] = light; + + } + + } + + _lights.shadows.length = lightShadowsLength; + + } + + function setupLights( lights, camera ) { + + var l, ll, light, + r = 0, g = 0, b = 0, + color, + intensity, + distance, + shadowMap, + + viewMatrix = camera.matrixWorldInverse, + + directionalLength = 0, + pointLength = 0, + spotLength = 0, + hemiLength = 0; + + for ( l = 0, ll = lights.length; l < ll; l ++ ) { + + light = lights[ l ]; + + color = light.color; + intensity = light.intensity; + distance = light.distance; + + shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null; + + if ( light.isAmbientLight ) { + + r += color.r * intensity; + g += color.g * intensity; + b += color.b * intensity; + + } else if ( light.isDirectionalLight ) { + + var uniforms = lightCache.get( light ); + + uniforms.color.copy( light.color ).multiplyScalar( light.intensity ); + uniforms.direction.setFromMatrixPosition( light.matrixWorld ); + _vector3.setFromMatrixPosition( light.target.matrixWorld ); + uniforms.direction.sub( _vector3 ); + uniforms.direction.transformDirection( viewMatrix ); + + uniforms.shadow = light.castShadow; + + if ( light.castShadow ) { + + uniforms.shadowBias = light.shadow.bias; + uniforms.shadowRadius = light.shadow.radius; + uniforms.shadowMapSize = light.shadow.mapSize; + + } + + _lights.directionalShadowMap[ directionalLength ] = shadowMap; + _lights.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix; + _lights.directional[ directionalLength ++ ] = uniforms; + + } else if ( light.isSpotLight ) { + + var uniforms = lightCache.get( light ); + + uniforms.position.setFromMatrixPosition( light.matrixWorld ); + uniforms.position.applyMatrix4( viewMatrix ); + + uniforms.color.copy( color ).multiplyScalar( intensity ); + uniforms.distance = distance; + + uniforms.direction.setFromMatrixPosition( light.matrixWorld ); + _vector3.setFromMatrixPosition( light.target.matrixWorld ); + uniforms.direction.sub( _vector3 ); + uniforms.direction.transformDirection( viewMatrix ); + + uniforms.coneCos = Math.cos( light.angle ); + uniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) ); + uniforms.decay = ( light.distance === 0 ) ? 0.0 : light.decay; + + uniforms.shadow = light.castShadow; + + if ( light.castShadow ) { + + uniforms.shadowBias = light.shadow.bias; + uniforms.shadowRadius = light.shadow.radius; + uniforms.shadowMapSize = light.shadow.mapSize; + + } + + _lights.spotShadowMap[ spotLength ] = shadowMap; + _lights.spotShadowMatrix[ spotLength ] = light.shadow.matrix; + _lights.spot[ spotLength ++ ] = uniforms; + + } else if ( light.isPointLight ) { + + var uniforms = lightCache.get( light ); + + uniforms.position.setFromMatrixPosition( light.matrixWorld ); + uniforms.position.applyMatrix4( viewMatrix ); + + uniforms.color.copy( light.color ).multiplyScalar( light.intensity ); + uniforms.distance = light.distance; + uniforms.decay = ( light.distance === 0 ) ? 0.0 : light.decay; + + uniforms.shadow = light.castShadow; + + if ( light.castShadow ) { + + uniforms.shadowBias = light.shadow.bias; + uniforms.shadowRadius = light.shadow.radius; + uniforms.shadowMapSize = light.shadow.mapSize; + + } + + _lights.pointShadowMap[ pointLength ] = shadowMap; + + if ( _lights.pointShadowMatrix[ pointLength ] === undefined ) { + + _lights.pointShadowMatrix[ pointLength ] = new Matrix4(); + + } + + // for point lights we set the shadow matrix to be a translation-only matrix + // equal to inverse of the light's position + _vector3.setFromMatrixPosition( light.matrixWorld ).negate(); + _lights.pointShadowMatrix[ pointLength ].identity().setPosition( _vector3 ); + + _lights.point[ pointLength ++ ] = uniforms; + + } else if ( light.isHemisphereLight ) { + + var uniforms = lightCache.get( light ); + + uniforms.direction.setFromMatrixPosition( light.matrixWorld ); + uniforms.direction.transformDirection( viewMatrix ); + uniforms.direction.normalize(); + + uniforms.skyColor.copy( light.color ).multiplyScalar( intensity ); + uniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity ); + + _lights.hemi[ hemiLength ++ ] = uniforms; + + } + + } + + _lights.ambient[ 0 ] = r; + _lights.ambient[ 1 ] = g; + _lights.ambient[ 2 ] = b; + + _lights.directional.length = directionalLength; + _lights.spot.length = spotLength; + _lights.point.length = pointLength; + _lights.hemi.length = hemiLength; + + _lights.hash = directionalLength + ',' + pointLength + ',' + spotLength + ',' + hemiLength + ',' + _lights.shadows.length; + + } + + // GL state setting + + this.setFaceCulling = function ( cullFace, frontFaceDirection ) { + + state.setCullFace( cullFace ); + state.setFlipSided( frontFaceDirection === FrontFaceDirectionCW ); + + }; + + // Textures + + function allocTextureUnit() { + + var textureUnit = _usedTextureUnits; + + if ( textureUnit >= capabilities.maxTextures ) { + + console.warn( 'WebGLRenderer: trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures ); + + } + + _usedTextureUnits += 1; + + return textureUnit; + + } + + this.allocTextureUnit = allocTextureUnit; + + // this.setTexture2D = setTexture2D; + this.setTexture2D = ( function() { + + var warned = false; + + // backwards compatibility: peel texture.texture + return function setTexture2D( texture, slot ) { + + if ( texture && texture.isWebGLRenderTarget ) { + + if ( ! warned ) { + + console.warn( "THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead." ); + warned = true; + + } + + texture = texture.texture; + + } + + textures.setTexture2D( texture, slot ); + + }; + + }() ); + + this.setTexture = ( function() { + + var warned = false; + + return function setTexture( texture, slot ) { + + if ( ! warned ) { + + console.warn( "THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead." ); + warned = true; + + } + + textures.setTexture2D( texture, slot ); + + }; + + }() ); + + this.setTextureCube = ( function() { + + var warned = false; + + return function setTextureCube( texture, slot ) { + + // backwards compatibility: peel texture.texture + if ( texture && texture.isWebGLRenderTargetCube ) { + + if ( ! warned ) { + + console.warn( "THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead." ); + warned = true; + + } + + texture = texture.texture; + + } + + // currently relying on the fact that WebGLRenderTargetCube.texture is a Texture and NOT a CubeTexture + // TODO: unify these code paths + if ( ( texture && texture.isCubeTexture ) || + ( Array.isArray( texture.image ) && texture.image.length === 6 ) ) { + + // CompressedTexture can have Array in image :/ + + // this function alone should take care of cube textures + textures.setTextureCube( texture, slot ); + + } else { + + // assumed: texture property of THREE.WebGLRenderTargetCube + + textures.setTextureCubeDynamic( texture, slot ); + + } + + }; + + }() ); + + this.getCurrentRenderTarget = function() { + + return _currentRenderTarget; + + }; + + this.setRenderTarget = function ( renderTarget ) { + + _currentRenderTarget = renderTarget; + + if ( renderTarget && properties.get( renderTarget ).__webglFramebuffer === undefined ) { + + textures.setupRenderTarget( renderTarget ); + + } + + var isCube = ( renderTarget && renderTarget.isWebGLRenderTargetCube ); + var framebuffer; + + if ( renderTarget ) { + + var renderTargetProperties = properties.get( renderTarget ); + + if ( isCube ) { + + framebuffer = renderTargetProperties.__webglFramebuffer[ renderTarget.activeCubeFace ]; + + } else { + + framebuffer = renderTargetProperties.__webglFramebuffer; + + } + + _currentScissor.copy( renderTarget.scissor ); + _currentScissorTest = renderTarget.scissorTest; + + _currentViewport.copy( renderTarget.viewport ); + + } else { + + framebuffer = null; + + _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ); + _currentScissorTest = _scissorTest; + + _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ); + + } + + if ( _currentFramebuffer !== framebuffer ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + _currentFramebuffer = framebuffer; + + } + + state.scissor( _currentScissor ); + state.setScissorTest( _currentScissorTest ); + + state.viewport( _currentViewport ); + + if ( isCube ) { + + var textureProperties = properties.get( renderTarget.texture ); + _gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + renderTarget.activeCubeFace, textureProperties.__webglTexture, renderTarget.activeMipMapLevel ); + + } + + }; + + this.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer ) { + + if ( ( renderTarget && renderTarget.isWebGLRenderTarget ) === false ) { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' ); + return; + + } + + var framebuffer = properties.get( renderTarget ).__webglFramebuffer; + + if ( framebuffer ) { + + var restore = false; + + if ( framebuffer !== _currentFramebuffer ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + + restore = true; + + } + + try { + + var texture = renderTarget.texture; + var textureFormat = texture.format; + var textureType = texture.type; + + if ( textureFormat !== RGBAFormat && paramThreeToGL( textureFormat ) !== _gl.getParameter( _gl.IMPLEMENTATION_COLOR_READ_FORMAT ) ) { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' ); + return; + + } + + if ( textureType !== UnsignedByteType && paramThreeToGL( textureType ) !== _gl.getParameter( _gl.IMPLEMENTATION_COLOR_READ_TYPE ) && // IE11, Edge and Chrome Mac < 52 (#9513) + ! ( textureType === FloatType && ( extensions.get( 'OES_texture_float' ) || extensions.get( 'WEBGL_color_buffer_float' ) ) ) && // Chrome Mac >= 52 and Firefox + ! ( textureType === HalfFloatType && extensions.get( 'EXT_color_buffer_half_float' ) ) ) { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' ); + return; + + } + + if ( _gl.checkFramebufferStatus( _gl.FRAMEBUFFER ) === _gl.FRAMEBUFFER_COMPLETE ) { + + // the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604) + + if ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) { + + _gl.readPixels( x, y, width, height, paramThreeToGL( textureFormat ), paramThreeToGL( textureType ), buffer ); + + } + + } else { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.' ); + + } + + } finally { + + if ( restore ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, _currentFramebuffer ); + + } + + } + + } + + }; + + // Map three.js constants to WebGL constants + + function paramThreeToGL( p ) { + + var extension; + + if ( p === RepeatWrapping ) return _gl.REPEAT; + if ( p === ClampToEdgeWrapping ) return _gl.CLAMP_TO_EDGE; + if ( p === MirroredRepeatWrapping ) return _gl.MIRRORED_REPEAT; + + if ( p === NearestFilter ) return _gl.NEAREST; + if ( p === NearestMipMapNearestFilter ) return _gl.NEAREST_MIPMAP_NEAREST; + if ( p === NearestMipMapLinearFilter ) return _gl.NEAREST_MIPMAP_LINEAR; + + if ( p === LinearFilter ) return _gl.LINEAR; + if ( p === LinearMipMapNearestFilter ) return _gl.LINEAR_MIPMAP_NEAREST; + if ( p === LinearMipMapLinearFilter ) return _gl.LINEAR_MIPMAP_LINEAR; + + if ( p === UnsignedByteType ) return _gl.UNSIGNED_BYTE; + if ( p === UnsignedShort4444Type ) return _gl.UNSIGNED_SHORT_4_4_4_4; + if ( p === UnsignedShort5551Type ) return _gl.UNSIGNED_SHORT_5_5_5_1; + if ( p === UnsignedShort565Type ) return _gl.UNSIGNED_SHORT_5_6_5; + + if ( p === ByteType ) return _gl.BYTE; + if ( p === ShortType ) return _gl.SHORT; + if ( p === UnsignedShortType ) return _gl.UNSIGNED_SHORT; + if ( p === IntType ) return _gl.INT; + if ( p === UnsignedIntType ) return _gl.UNSIGNED_INT; + if ( p === FloatType ) return _gl.FLOAT; + + if ( p === HalfFloatType ) { + + extension = extensions.get( 'OES_texture_half_float' ); + + if ( extension !== null ) return extension.HALF_FLOAT_OES; + + } + + if ( p === AlphaFormat ) return _gl.ALPHA; + if ( p === RGBFormat ) return _gl.RGB; + if ( p === RGBAFormat ) return _gl.RGBA; + if ( p === LuminanceFormat ) return _gl.LUMINANCE; + if ( p === LuminanceAlphaFormat ) return _gl.LUMINANCE_ALPHA; + if ( p === DepthFormat ) return _gl.DEPTH_COMPONENT; + if ( p === DepthStencilFormat ) return _gl.DEPTH_STENCIL; + + if ( p === AddEquation ) return _gl.FUNC_ADD; + if ( p === SubtractEquation ) return _gl.FUNC_SUBTRACT; + if ( p === ReverseSubtractEquation ) return _gl.FUNC_REVERSE_SUBTRACT; + + if ( p === ZeroFactor ) return _gl.ZERO; + if ( p === OneFactor ) return _gl.ONE; + if ( p === SrcColorFactor ) return _gl.SRC_COLOR; + if ( p === OneMinusSrcColorFactor ) return _gl.ONE_MINUS_SRC_COLOR; + if ( p === SrcAlphaFactor ) return _gl.SRC_ALPHA; + if ( p === OneMinusSrcAlphaFactor ) return _gl.ONE_MINUS_SRC_ALPHA; + if ( p === DstAlphaFactor ) return _gl.DST_ALPHA; + if ( p === OneMinusDstAlphaFactor ) return _gl.ONE_MINUS_DST_ALPHA; + + if ( p === DstColorFactor ) return _gl.DST_COLOR; + if ( p === OneMinusDstColorFactor ) return _gl.ONE_MINUS_DST_COLOR; + if ( p === SrcAlphaSaturateFactor ) return _gl.SRC_ALPHA_SATURATE; + + if ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || + p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) { + + extension = extensions.get( 'WEBGL_compressed_texture_s3tc' ); + + if ( extension !== null ) { + + if ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT; + if ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT; + if ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT; + if ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT; + + } + + } + + if ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || + p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) { + + extension = extensions.get( 'WEBGL_compressed_texture_pvrtc' ); + + if ( extension !== null ) { + + if ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + if ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; + if ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + if ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + + } + + } + + if ( p === RGB_ETC1_Format ) { + + extension = extensions.get( 'WEBGL_compressed_texture_etc1' ); + + if ( extension !== null ) return extension.COMPRESSED_RGB_ETC1_WEBGL; + + } + + if ( p === MinEquation || p === MaxEquation ) { + + extension = extensions.get( 'EXT_blend_minmax' ); + + if ( extension !== null ) { + + if ( p === MinEquation ) return extension.MIN_EXT; + if ( p === MaxEquation ) return extension.MAX_EXT; + + } + + } + + if ( p === UnsignedInt248Type ) { + + extension = extensions.get( 'WEBGL_depth_texture' ); + + if ( extension !== null ) return extension.UNSIGNED_INT_24_8_WEBGL; + + } + + return 0; + + } + + } + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function FogExp2 ( color, density ) { + + this.name = ''; + + this.color = new Color( color ); + this.density = ( density !== undefined ) ? density : 0.00025; + + } + + FogExp2.prototype.isFogExp2 = true; + + FogExp2.prototype.clone = function () { + + return new FogExp2( this.color.getHex(), this.density ); + + }; + + FogExp2.prototype.toJSON = function ( meta ) { + + return { + type: 'FogExp2', + color: this.color.getHex(), + density: this.density + }; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Fog ( color, near, far ) { + + this.name = ''; + + this.color = new Color( color ); + + this.near = ( near !== undefined ) ? near : 1; + this.far = ( far !== undefined ) ? far : 1000; + + } + + Fog.prototype.isFog = true; + + Fog.prototype.clone = function () { + + return new Fog( this.color.getHex(), this.near, this.far ); + + }; + + Fog.prototype.toJSON = function ( meta ) { + + return { + type: 'Fog', + color: this.color.getHex(), + near: this.near, + far: this.far + }; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Scene () { + + Object3D.call( this ); + + this.type = 'Scene'; + + this.background = null; + this.fog = null; + this.overrideMaterial = null; + + this.autoUpdate = true; // checked by the renderer + + } + + Scene.prototype = Object.create( Object3D.prototype ); + + Scene.prototype.constructor = Scene; + + Scene.prototype.copy = function ( source, recursive ) { + + Object3D.prototype.copy.call( this, source, recursive ); + + if ( source.background !== null ) this.background = source.background.clone(); + if ( source.fog !== null ) this.fog = source.fog.clone(); + if ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone(); + + this.autoUpdate = source.autoUpdate; + this.matrixAutoUpdate = source.matrixAutoUpdate; + + return this; + + }; + + Scene.prototype.toJSON = function ( meta ) { + + var data = Object3D.prototype.toJSON.call( this, meta ); + + if ( this.background !== null ) data.object.background = this.background.toJSON( meta ); + if ( this.fog !== null ) data.object.fog = this.fog.toJSON(); + + return data; + + }; + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + + function LensFlare( texture, size, distance, blending, color ) { + + Object3D.call( this ); + + this.lensFlares = []; + + this.positionScreen = new Vector3(); + this.customUpdateCallback = undefined; + + if ( texture !== undefined ) { + + this.add( texture, size, distance, blending, color ); + + } + + } + + LensFlare.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: LensFlare, + + isLensFlare: true, + + copy: function ( source ) { + + Object3D.prototype.copy.call( this, source ); + + this.positionScreen.copy( source.positionScreen ); + this.customUpdateCallback = source.customUpdateCallback; + + for ( var i = 0, l = source.lensFlares.length; i < l; i ++ ) { + + this.lensFlares.push( source.lensFlares[ i ] ); + + } + + return this; + + }, + + add: function ( texture, size, distance, blending, color, opacity ) { + + if ( size === undefined ) size = - 1; + if ( distance === undefined ) distance = 0; + if ( opacity === undefined ) opacity = 1; + if ( color === undefined ) color = new Color( 0xffffff ); + if ( blending === undefined ) blending = NormalBlending; + + distance = Math.min( distance, Math.max( 0, distance ) ); + + this.lensFlares.push( { + texture: texture, // THREE.Texture + size: size, // size in pixels (-1 = use texture.width) + distance: distance, // distance (0-1) from light source (0=at light source) + x: 0, y: 0, z: 0, // screen position (-1 => 1) z = 0 is in front z = 1 is back + scale: 1, // scale + rotation: 0, // rotation + opacity: opacity, // opacity + color: color, // color + blending: blending // blending + } ); + + }, + + /* + * Update lens flares update positions on all flares based on the screen position + * Set myLensFlare.customUpdateCallback to alter the flares in your project specific way. + */ + + updateLensFlares: function () { + + var f, fl = this.lensFlares.length; + var flare; + var vecX = - this.positionScreen.x * 2; + var vecY = - this.positionScreen.y * 2; + + for ( f = 0; f < fl; f ++ ) { + + flare = this.lensFlares[ f ]; + + flare.x = this.positionScreen.x + vecX * flare.distance; + flare.y = this.positionScreen.y + vecY * flare.distance; + + flare.wantedRotation = flare.x * Math.PI * 0.25; + flare.rotation += ( flare.wantedRotation - flare.rotation ) * 0.25; + + } + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * uvOffset: new THREE.Vector2(), + * uvScale: new THREE.Vector2() + * } + */ + + function SpriteMaterial( parameters ) { + + Material.call( this ); + + this.type = 'SpriteMaterial'; + + this.color = new Color( 0xffffff ); + this.map = null; + + this.rotation = 0; + + this.fog = false; + this.lights = false; + + this.setValues( parameters ); + + } + + SpriteMaterial.prototype = Object.create( Material.prototype ); + SpriteMaterial.prototype.constructor = SpriteMaterial; + + SpriteMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + this.map = source.map; + + this.rotation = source.rotation; + + return this; + + }; + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Sprite( material ) { + + Object3D.call( this ); + + this.type = 'Sprite'; + + this.material = ( material !== undefined ) ? material : new SpriteMaterial(); + + } + + Sprite.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Sprite, + + isSprite: true, + + raycast: ( function () { + + var matrixPosition = new Vector3(); + + return function raycast( raycaster, intersects ) { + + matrixPosition.setFromMatrixPosition( this.matrixWorld ); + + var distanceSq = raycaster.ray.distanceSqToPoint( matrixPosition ); + var guessSizeSq = this.scale.x * this.scale.y / 4; + + if ( distanceSq > guessSizeSq ) { + + return; + + } + + intersects.push( { + + distance: Math.sqrt( distanceSq ), + point: this.position, + face: null, + object: this + + } ); + + }; + + }() ), + + clone: function () { + + return new this.constructor( this.material ).copy( this ); + + } + + } ); + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + function LOD() { + + Object3D.call( this ); + + this.type = 'LOD'; + + Object.defineProperties( this, { + levels: { + enumerable: true, + value: [] + } + } ); + + } + + + LOD.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: LOD, + + copy: function ( source ) { + + Object3D.prototype.copy.call( this, source, false ); + + var levels = source.levels; + + for ( var i = 0, l = levels.length; i < l; i ++ ) { + + var level = levels[ i ]; + + this.addLevel( level.object.clone(), level.distance ); + + } + + return this; + + }, + + addLevel: function ( object, distance ) { + + if ( distance === undefined ) distance = 0; + + distance = Math.abs( distance ); + + var levels = this.levels; + + for ( var l = 0; l < levels.length; l ++ ) { + + if ( distance < levels[ l ].distance ) { + + break; + + } + + } + + levels.splice( l, 0, { distance: distance, object: object } ); + + this.add( object ); + + }, + + getObjectForDistance: function ( distance ) { + + var levels = this.levels; + + for ( var i = 1, l = levels.length; i < l; i ++ ) { + + if ( distance < levels[ i ].distance ) { + + break; + + } + + } + + return levels[ i - 1 ].object; + + }, + + raycast: ( function () { + + var matrixPosition = new Vector3(); + + return function raycast( raycaster, intersects ) { + + matrixPosition.setFromMatrixPosition( this.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( matrixPosition ); + + this.getObjectForDistance( distance ).raycast( raycaster, intersects ); + + }; + + }() ), + + update: function () { + + var v1 = new Vector3(); + var v2 = new Vector3(); + + return function update( camera ) { + + var levels = this.levels; + + if ( levels.length > 1 ) { + + v1.setFromMatrixPosition( camera.matrixWorld ); + v2.setFromMatrixPosition( this.matrixWorld ); + + var distance = v1.distanceTo( v2 ); + + levels[ 0 ].object.visible = true; + + for ( var i = 1, l = levels.length; i < l; i ++ ) { + + if ( distance >= levels[ i ].distance ) { + + levels[ i - 1 ].object.visible = false; + levels[ i ].object.visible = true; + + } else { + + break; + + } + + } + + for ( ; i < l; i ++ ) { + + levels[ i ].object.visible = false; + + } + + } + + }; + + }(), + + toJSON: function ( meta ) { + + var data = Object3D.prototype.toJSON.call( this, meta ); + + data.object.levels = []; + + var levels = this.levels; + + for ( var i = 0, l = levels.length; i < l; i ++ ) { + + var level = levels[ i ]; + + data.object.levels.push( { + object: level.object.uuid, + distance: level.distance + } ); + + } + + return data; + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function DataTexture( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { + + Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); + + this.image = { data: data, width: width, height: height }; + + this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; + this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; + + this.generateMipmaps = false; + this.flipY = false; + this.unpackAlignment = 1; + + } + + DataTexture.prototype = Object.create( Texture.prototype ); + DataTexture.prototype.constructor = DataTexture; + + DataTexture.prototype.isDataTexture = true; + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author michael guerrero / http://realitymeltdown.com + * @author ikerr / http://verold.com + */ + + function Skeleton( bones, boneInverses, useVertexTexture ) { + + this.useVertexTexture = useVertexTexture !== undefined ? useVertexTexture : true; + + this.identityMatrix = new Matrix4(); + + // copy the bone array + + bones = bones || []; + + this.bones = bones.slice( 0 ); + + // create a bone texture or an array of floats + + if ( this.useVertexTexture ) { + + // layout (1 matrix = 4 pixels) + // RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4) + // with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8) + // 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16) + // 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32) + // 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64) + + + var size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix + size = _Math.nextPowerOfTwo( Math.ceil( size ) ); + size = Math.max( size, 4 ); + + this.boneTextureWidth = size; + this.boneTextureHeight = size; + + this.boneMatrices = new Float32Array( this.boneTextureWidth * this.boneTextureHeight * 4 ); // 4 floats per RGBA pixel + this.boneTexture = new DataTexture( this.boneMatrices, this.boneTextureWidth, this.boneTextureHeight, RGBAFormat, FloatType ); + + } else { + + this.boneMatrices = new Float32Array( 16 * this.bones.length ); + + } + + // use the supplied bone inverses or calculate the inverses + + if ( boneInverses === undefined ) { + + this.calculateInverses(); + + } else { + + if ( this.bones.length === boneInverses.length ) { + + this.boneInverses = boneInverses.slice( 0 ); + + } else { + + console.warn( 'THREE.Skeleton bonInverses is the wrong length.' ); + + this.boneInverses = []; + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + this.boneInverses.push( new Matrix4() ); + + } + + } + + } + + } + + Object.assign( Skeleton.prototype, { + + calculateInverses: function () { + + this.boneInverses = []; + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + var inverse = new Matrix4(); + + if ( this.bones[ b ] ) { + + inverse.getInverse( this.bones[ b ].matrixWorld ); + + } + + this.boneInverses.push( inverse ); + + } + + }, + + pose: function () { + + var bone; + + // recover the bind-time world matrices + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + bone = this.bones[ b ]; + + if ( bone ) { + + bone.matrixWorld.getInverse( this.boneInverses[ b ] ); + + } + + } + + // compute the local matrices, positions, rotations and scales + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + bone = this.bones[ b ]; + + if ( bone ) { + + if ( (bone.parent && bone.parent.isBone) ) { + + bone.matrix.getInverse( bone.parent.matrixWorld ); + bone.matrix.multiply( bone.matrixWorld ); + + } else { + + bone.matrix.copy( bone.matrixWorld ); + + } + + bone.matrix.decompose( bone.position, bone.quaternion, bone.scale ); + + } + + } + + }, + + update: ( function () { + + var offsetMatrix = new Matrix4(); + + return function update() { + + // flatten bone matrices to array + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + // compute the offset between the current and the original transform + + var matrix = this.bones[ b ] ? this.bones[ b ].matrixWorld : this.identityMatrix; + + offsetMatrix.multiplyMatrices( matrix, this.boneInverses[ b ] ); + offsetMatrix.toArray( this.boneMatrices, b * 16 ); + + } + + if ( this.useVertexTexture ) { + + this.boneTexture.needsUpdate = true; + + } + + }; + + } )(), + + clone: function () { + + return new Skeleton( this.bones, this.boneInverses, this.useVertexTexture ); + + } + + } ); + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author ikerr / http://verold.com + */ + + function Bone( skin ) { + + Object3D.call( this ); + + this.type = 'Bone'; + + this.skin = skin; + + } + + Bone.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Bone, + + isBone: true, + + copy: function ( source ) { + + Object3D.prototype.copy.call( this, source ); + + this.skin = source.skin; + + return this; + + } + + } ); + + /** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author ikerr / http://verold.com + */ + + function SkinnedMesh( geometry, material, useVertexTexture ) { + + Mesh.call( this, geometry, material ); + + this.type = 'SkinnedMesh'; + + this.bindMode = "attached"; + this.bindMatrix = new Matrix4(); + this.bindMatrixInverse = new Matrix4(); + + // init bones + + // TODO: remove bone creation as there is no reason (other than + // convenience) for THREE.SkinnedMesh to do this. + + var bones = []; + + if ( this.geometry && this.geometry.bones !== undefined ) { + + var bone, gbone; + + for ( var b = 0, bl = this.geometry.bones.length; b < bl; ++ b ) { + + gbone = this.geometry.bones[ b ]; + + bone = new Bone( this ); + bones.push( bone ); + + bone.name = gbone.name; + bone.position.fromArray( gbone.pos ); + bone.quaternion.fromArray( gbone.rotq ); + if ( gbone.scl !== undefined ) bone.scale.fromArray( gbone.scl ); + + } + + for ( var b = 0, bl = this.geometry.bones.length; b < bl; ++ b ) { + + gbone = this.geometry.bones[ b ]; + + if ( gbone.parent !== - 1 && gbone.parent !== null && + bones[ gbone.parent ] !== undefined ) { + + bones[ gbone.parent ].add( bones[ b ] ); + + } else { + + this.add( bones[ b ] ); + + } + + } + + } + + this.normalizeSkinWeights(); + + this.updateMatrixWorld( true ); + this.bind( new Skeleton( bones, undefined, useVertexTexture ), this.matrixWorld ); + + } + + + SkinnedMesh.prototype = Object.assign( Object.create( Mesh.prototype ), { + + constructor: SkinnedMesh, + + isSkinnedMesh: true, + + bind: function( skeleton, bindMatrix ) { + + this.skeleton = skeleton; + + if ( bindMatrix === undefined ) { + + this.updateMatrixWorld( true ); + + this.skeleton.calculateInverses(); + + bindMatrix = this.matrixWorld; + + } + + this.bindMatrix.copy( bindMatrix ); + this.bindMatrixInverse.getInverse( bindMatrix ); + + }, + + pose: function () { + + this.skeleton.pose(); + + }, + + normalizeSkinWeights: function () { + + if ( (this.geometry && this.geometry.isGeometry) ) { + + for ( var i = 0; i < this.geometry.skinWeights.length; i ++ ) { + + var sw = this.geometry.skinWeights[ i ]; + + var scale = 1.0 / sw.lengthManhattan(); + + if ( scale !== Infinity ) { + + sw.multiplyScalar( scale ); + + } else { + + sw.set( 1, 0, 0, 0 ); // do something reasonable + + } + + } + + } else if ( (this.geometry && this.geometry.isBufferGeometry) ) { + + var vec = new Vector4(); + + var skinWeight = this.geometry.attributes.skinWeight; + + for ( var i = 0; i < skinWeight.count; i ++ ) { + + vec.x = skinWeight.getX( i ); + vec.y = skinWeight.getY( i ); + vec.z = skinWeight.getZ( i ); + vec.w = skinWeight.getW( i ); + + var scale = 1.0 / vec.lengthManhattan(); + + if ( scale !== Infinity ) { + + vec.multiplyScalar( scale ); + + } else { + + vec.set( 1, 0, 0, 0 ); // do something reasonable + + } + + skinWeight.setXYZW( i, vec.x, vec.y, vec.z, vec.w ); + + } + + } + + }, + + updateMatrixWorld: function( force ) { + + Mesh.prototype.updateMatrixWorld.call( this, true ); + + if ( this.bindMode === "attached" ) { + + this.bindMatrixInverse.getInverse( this.matrixWorld ); + + } else if ( this.bindMode === "detached" ) { + + this.bindMatrixInverse.getInverse( this.bindMatrix ); + + } else { + + console.warn( 'THREE.SkinnedMesh unrecognized bindMode: ' + this.bindMode ); + + } + + }, + + clone: function() { + + return new this.constructor( this.geometry, this.material, this.skeleton.useVertexTexture ).copy( this ); + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * + * linewidth: , + * linecap: "round", + * linejoin: "round" + * } + */ + + function LineBasicMaterial( parameters ) { + + Material.call( this ); + + this.type = 'LineBasicMaterial'; + + this.color = new Color( 0xffffff ); + + this.linewidth = 1; + this.linecap = 'round'; + this.linejoin = 'round'; + + this.lights = false; + + this.setValues( parameters ); + + } + + LineBasicMaterial.prototype = Object.create( Material.prototype ); + LineBasicMaterial.prototype.constructor = LineBasicMaterial; + + LineBasicMaterial.prototype.isLineBasicMaterial = true; + + LineBasicMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + + this.linewidth = source.linewidth; + this.linecap = source.linecap; + this.linejoin = source.linejoin; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Line( geometry, material, mode ) { + + if ( mode === 1 ) { + + console.warn( 'THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead.' ); + return new LineSegments( geometry, material ); + + } + + Object3D.call( this ); + + this.type = 'Line'; + + this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); + this.material = material !== undefined ? material : new LineBasicMaterial( { color: Math.random() * 0xffffff } ); + + } + + Line.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Line, + + isLine: true, + + raycast: ( function () { + + var inverseMatrix = new Matrix4(); + var ray = new Ray(); + var sphere = new Sphere(); + + return function raycast( raycaster, intersects ) { + + var precision = raycaster.linePrecision; + var precisionSq = precision * precision; + + var geometry = this.geometry; + var matrixWorld = this.matrixWorld; + + // Checking boundingSphere distance to ray + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( matrixWorld ); + + if ( raycaster.ray.intersectsSphere( sphere ) === false ) return; + + // + + inverseMatrix.getInverse( matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + var vStart = new Vector3(); + var vEnd = new Vector3(); + var interSegment = new Vector3(); + var interRay = new Vector3(); + var step = (this && this.isLineSegments) ? 2 : 1; + + if ( (geometry && geometry.isBufferGeometry) ) { + + var index = geometry.index; + var attributes = geometry.attributes; + var positions = attributes.position.array; + + if ( index !== null ) { + + var indices = index.array; + + for ( var i = 0, l = indices.length - 1; i < l; i += step ) { + + var a = indices[ i ]; + var b = indices[ i + 1 ]; + + vStart.fromArray( positions, a * 3 ); + vEnd.fromArray( positions, b * 3 ); + + var distSq = ray.distanceSqToSegment( vStart, vEnd, interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + interRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation + + var distance = raycaster.ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } else { + + for ( var i = 0, l = positions.length / 3 - 1; i < l; i += step ) { + + vStart.fromArray( positions, 3 * i ); + vEnd.fromArray( positions, 3 * i + 3 ); + + var distSq = ray.distanceSqToSegment( vStart, vEnd, interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + interRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation + + var distance = raycaster.ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } + + } else if ( (geometry && geometry.isGeometry) ) { + + var vertices = geometry.vertices; + var nbVertices = vertices.length; + + for ( var i = 0; i < nbVertices - 1; i += step ) { + + var distSq = ray.distanceSqToSegment( vertices[ i ], vertices[ i + 1 ], interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + interRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation + + var distance = raycaster.ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } + + }; + + }() ), + + clone: function () { + + return new this.constructor( this.geometry, this.material ).copy( this ); + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function LineSegments( geometry, material ) { + + Line.call( this, geometry, material ); + + this.type = 'LineSegments'; + + } + + LineSegments.prototype = Object.assign( Object.create( Line.prototype ), { + + constructor: LineSegments, + + isLineSegments: true + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * size: , + * sizeAttenuation: + * } + */ + + function PointsMaterial( parameters ) { + + Material.call( this ); + + this.type = 'PointsMaterial'; + + this.color = new Color( 0xffffff ); + + this.map = null; + + this.size = 1; + this.sizeAttenuation = true; + + this.lights = false; + + this.setValues( parameters ); + + } + + PointsMaterial.prototype = Object.create( Material.prototype ); + PointsMaterial.prototype.constructor = PointsMaterial; + + PointsMaterial.prototype.isPointsMaterial = true; + + PointsMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + + this.map = source.map; + + this.size = source.size; + this.sizeAttenuation = source.sizeAttenuation; + + return this; + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function Points( geometry, material ) { + + Object3D.call( this ); + + this.type = 'Points'; + + this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); + this.material = material !== undefined ? material : new PointsMaterial( { color: Math.random() * 0xffffff } ); + + } + + Points.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Points, + + isPoints: true, + + raycast: ( function () { + + var inverseMatrix = new Matrix4(); + var ray = new Ray(); + var sphere = new Sphere(); + + return function raycast( raycaster, intersects ) { + + var object = this; + var geometry = this.geometry; + var matrixWorld = this.matrixWorld; + var threshold = raycaster.params.Points.threshold; + + // Checking boundingSphere distance to ray + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( matrixWorld ); + + if ( raycaster.ray.intersectsSphere( sphere ) === false ) return; + + // + + inverseMatrix.getInverse( matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + var localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 ); + var localThresholdSq = localThreshold * localThreshold; + var position = new Vector3(); + + function testPoint( point, index ) { + + var rayPointDistanceSq = ray.distanceSqToPoint( point ); + + if ( rayPointDistanceSq < localThresholdSq ) { + + var intersectPoint = ray.closestPointToPoint( point ); + intersectPoint.applyMatrix4( matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectPoint ); + + if ( distance < raycaster.near || distance > raycaster.far ) return; + + intersects.push( { + + distance: distance, + distanceToRay: Math.sqrt( rayPointDistanceSq ), + point: intersectPoint.clone(), + index: index, + face: null, + object: object + + } ); + + } + + } + + if ( (geometry && geometry.isBufferGeometry) ) { + + var index = geometry.index; + var attributes = geometry.attributes; + var positions = attributes.position.array; + + if ( index !== null ) { + + var indices = index.array; + + for ( var i = 0, il = indices.length; i < il; i ++ ) { + + var a = indices[ i ]; + + position.fromArray( positions, a * 3 ); + + testPoint( position, a ); + + } + + } else { + + for ( var i = 0, l = positions.length / 3; i < l; i ++ ) { + + position.fromArray( positions, i * 3 ); + + testPoint( position, i ); + + } + + } + + } else { + + var vertices = geometry.vertices; + + for ( var i = 0, l = vertices.length; i < l; i ++ ) { + + testPoint( vertices[ i ], i ); + + } + + } + + }; + + }() ), + + clone: function () { + + return new this.constructor( this.geometry, this.material ).copy( this ); + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Group() { + + Object3D.call( this ); + + this.type = 'Group'; + + } + + Group.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Group + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function VideoTexture( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { + + Texture.call( this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.generateMipmaps = false; + + var scope = this; + + function update() { + + requestAnimationFrame( update ); + + if ( video.readyState >= video.HAVE_CURRENT_DATA ) { + + scope.needsUpdate = true; + + } + + } + + update(); + + } + + VideoTexture.prototype = Object.create( Texture.prototype ); + VideoTexture.prototype.constructor = VideoTexture; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function CompressedTexture( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) { + + Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ); + + this.image = { width: width, height: height }; + this.mipmaps = mipmaps; + + // no flipping for cube textures + // (also flipping doesn't work for compressed textures ) + + this.flipY = false; + + // can't generate mipmaps for compressed textures + // mips must be embedded in DDS files + + this.generateMipmaps = false; + + } + + CompressedTexture.prototype = Object.create( Texture.prototype ); + CompressedTexture.prototype.constructor = CompressedTexture; + + CompressedTexture.prototype.isCompressedTexture = true; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function CanvasTexture( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { + + Texture.call( this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.needsUpdate = true; + + } + + CanvasTexture.prototype = Object.create( Texture.prototype ); + CanvasTexture.prototype.constructor = CanvasTexture; + + /** + * @author Matt DesLauriers / @mattdesl + * @author atix / arthursilber.de + */ + + function DepthTexture( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) { + + format = format !== undefined ? format : DepthFormat; + + if ( format !== DepthFormat && format !== DepthStencilFormat ) { + + throw new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' ) + + } + + Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.image = { width: width, height: height }; + + this.type = type !== undefined ? type : UnsignedShortType; + + this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; + this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; + + this.flipY = false; + this.generateMipmaps = false; + + } + + DepthTexture.prototype = Object.create( Texture.prototype ); + DepthTexture.prototype.constructor = DepthTexture; + DepthTexture.prototype.isDepthTexture = true; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function WireframeGeometry( geometry ) { + + BufferGeometry.call( this ); + + var edge = [ 0, 0 ], hash = {}; + + function sortFunction( a, b ) { + + return a - b; + + } + + var keys = [ 'a', 'b', 'c' ]; + + if ( (geometry && geometry.isGeometry) ) { + + var vertices = geometry.vertices; + var faces = geometry.faces; + var numEdges = 0; + + // allocate maximal size + var edges = new Uint32Array( 6 * faces.length ); + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = face[ keys[ j ] ]; + edge[ 1 ] = face[ keys[ ( j + 1 ) % 3 ] ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + edges[ 2 * numEdges ] = edge[ 0 ]; + edges[ 2 * numEdges + 1 ] = edge[ 1 ]; + hash[ key ] = true; + numEdges ++; + + } + + } + + } + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numEdges; i < l; i ++ ) { + + for ( var j = 0; j < 2; j ++ ) { + + var vertex = vertices[ edges [ 2 * i + j ] ]; + + var index = 6 * i + 3 * j; + coords[ index + 0 ] = vertex.x; + coords[ index + 1 ] = vertex.y; + coords[ index + 2 ] = vertex.z; + + } + + } + + this.addAttribute( 'position', new BufferAttribute( coords, 3 ) ); + + } else if ( (geometry && geometry.isBufferGeometry) ) { + + if ( geometry.index !== null ) { + + // Indexed BufferGeometry + + var indices = geometry.index.array; + var vertices = geometry.attributes.position; + var groups = geometry.groups; + var numEdges = 0; + + if ( groups.length === 0 ) { + + geometry.addGroup( 0, indices.length ); + + } + + // allocate maximal size + var edges = new Uint32Array( 2 * indices.length ); + + for ( var o = 0, ol = groups.length; o < ol; ++ o ) { + + var group = groups[ o ]; + + var start = group.start; + var count = group.count; + + for ( var i = start, il = start + count; i < il; i += 3 ) { + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = indices[ i + j ]; + edge[ 1 ] = indices[ i + ( j + 1 ) % 3 ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + edges[ 2 * numEdges ] = edge[ 0 ]; + edges[ 2 * numEdges + 1 ] = edge[ 1 ]; + hash[ key ] = true; + numEdges ++; + + } + + } + + } + + } + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numEdges; i < l; i ++ ) { + + for ( var j = 0; j < 2; j ++ ) { + + var index = 6 * i + 3 * j; + var index2 = edges[ 2 * i + j ]; + + coords[ index + 0 ] = vertices.getX( index2 ); + coords[ index + 1 ] = vertices.getY( index2 ); + coords[ index + 2 ] = vertices.getZ( index2 ); + + } + + } + + this.addAttribute( 'position', new BufferAttribute( coords, 3 ) ); + + } else { + + // non-indexed BufferGeometry + + var vertices = geometry.attributes.position.array; + var numEdges = vertices.length / 3; + var numTris = numEdges / 3; + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numTris; i < l; i ++ ) { + + for ( var j = 0; j < 3; j ++ ) { + + var index = 18 * i + 6 * j; + + var index1 = 9 * i + 3 * j; + coords[ index + 0 ] = vertices[ index1 ]; + coords[ index + 1 ] = vertices[ index1 + 1 ]; + coords[ index + 2 ] = vertices[ index1 + 2 ]; + + var index2 = 9 * i + 3 * ( ( j + 1 ) % 3 ); + coords[ index + 3 ] = vertices[ index2 ]; + coords[ index + 4 ] = vertices[ index2 + 1 ]; + coords[ index + 5 ] = vertices[ index2 + 2 ]; + + } + + } + + this.addAttribute( 'position', new BufferAttribute( coords, 3 ) ); + + } + + } + + } + + WireframeGeometry.prototype = Object.create( BufferGeometry.prototype ); + WireframeGeometry.prototype.constructor = WireframeGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + * + * Parametric Surfaces Geometry + * based on the brilliant article by @prideout http://prideout.net/blog/?p=44 + */ + + function ParametricBufferGeometry( func, slices, stacks ) { + + BufferGeometry.call( this ); + + this.type = 'ParametricBufferGeometry'; + + this.parameters = { + func: func, + slices: slices, + stacks: stacks + }; + + // generate vertices and uvs + + var vertices = []; + var uvs = []; + + var i, j, p; + var u, v; + + var sliceCount = slices + 1; + + for ( i = 0; i <= stacks; i ++ ) { + + v = i / stacks; + + for ( j = 0; j <= slices; j ++ ) { + + u = j / slices; + + p = func( u, v ); + vertices.push( p.x, p.y, p.z ); + + uvs.push( u, v ); + + } + + } + + // generate indices + + var indices = []; + var a, b, c, d; + + for ( i = 0; i < stacks; i ++ ) { + + for ( j = 0; j < slices; j ++ ) { + + a = i * sliceCount + j; + b = i * sliceCount + j + 1; + c = ( i + 1 ) * sliceCount + j + 1; + d = ( i + 1 ) * sliceCount + j; + + // faces one and two + + indices.push( a, b, d ); + indices.push( b, c, d ); + + } + + } + + // build geometry + + this.setIndex( ( indices.length > 65535 ? Uint32Attribute : Uint16Attribute )( indices, 1 ) ); + this.addAttribute( 'position', Float32Attribute( vertices, 3 ) ); + this.addAttribute( 'uv', Float32Attribute( uvs, 2 ) ); + + // generate normals + + this.computeVertexNormals(); + + } + + ParametricBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + ParametricBufferGeometry.prototype.constructor = ParametricBufferGeometry; + + /** + * @author zz85 / https://github.com/zz85 + * + * Parametric Surfaces Geometry + * based on the brilliant article by @prideout http://prideout.net/blog/?p=44 + */ + + function ParametricGeometry( func, slices, stacks ) { + + Geometry.call( this ); + + this.type = 'ParametricGeometry'; + + this.parameters = { + func: func, + slices: slices, + stacks: stacks + }; + + this.fromBufferGeometry( new ParametricBufferGeometry( func, slices, stacks ) ); + this.mergeVertices(); + + } + + ParametricGeometry.prototype = Object.create( Geometry.prototype ); + ParametricGeometry.prototype.constructor = ParametricGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function PolyhedronBufferGeometry( vertices, indices, radius, detail ) { + + BufferGeometry.call( this ); + + this.type = 'PolyhedronBufferGeometry'; + + this.parameters = { + vertices: vertices, + indices: indices, + radius: radius, + detail: detail + }; + + radius = radius || 1; + detail = detail || 0; + + // default buffer data + + var vertexBuffer = []; + var uvBuffer = []; + + // the subdivision creates the vertex buffer data + + subdivide( detail ); + + // all vertices should lie on a conceptual sphere with a given radius + + appplyRadius( radius ); + + // finally, create the uv data + + generateUVs(); + + // build non-indexed geometry + + this.addAttribute( 'position', Float32Attribute( vertexBuffer, 3 ) ); + this.addAttribute( 'normal', Float32Attribute( vertexBuffer.slice(), 3 ) ); + this.addAttribute( 'uv', Float32Attribute( uvBuffer, 2 ) ); + this.normalizeNormals(); + + this.boundingSphere = new Sphere( new Vector3(), radius ); + + // helper functions + + function subdivide( detail ) { + + var a = new Vector3(); + var b = new Vector3(); + var c = new Vector3(); + + // iterate over all faces and apply a subdivison with the given detail value + + for ( var i = 0; i < indices.length; i += 3 ) { + + // get the vertices of the face + + getVertexByIndex( indices[ i + 0 ], a ); + getVertexByIndex( indices[ i + 1 ], b ); + getVertexByIndex( indices[ i + 2 ], c ); + + // perform subdivision + + subdivideFace( a, b, c, detail ); + + } + + } + + function subdivideFace( a, b, c, detail ) { + + var cols = Math.pow( 2, detail ); + + // we use this multidimensional array as a data structure for creating the subdivision + + var v = []; + + var i, j; + + // construct all of the vertices for this subdivision + + for ( i = 0 ; i <= cols; i ++ ) { + + v[ i ] = []; + + var aj = a.clone().lerp( c, i / cols ); + var bj = b.clone().lerp( c, i / cols ); + + var rows = cols - i; + + for ( j = 0; j <= rows; j ++ ) { + + if ( j === 0 && i === cols ) { + + v[ i ][ j ] = aj; + + } else { + + v[ i ][ j ] = aj.clone().lerp( bj, j / rows ); + + } + + } + + } + + // construct all of the faces + + for ( i = 0; i < cols ; i ++ ) { + + for ( j = 0; j < 2 * ( cols - i ) - 1; j ++ ) { + + var k = Math.floor( j / 2 ); + + if ( j % 2 === 0 ) { + + pushVertex( v[ i ][ k + 1 ] ); + pushVertex( v[ i + 1 ][ k ] ); + pushVertex( v[ i ][ k ] ); + + } else { + + pushVertex( v[ i ][ k + 1 ] ); + pushVertex( v[ i + 1 ][ k + 1 ] ); + pushVertex( v[ i + 1 ][ k ] ); + + } + + } + + } + + } + + function appplyRadius( radius ) { + + var vertex = new Vector3(); + + // iterate over the entire buffer and apply the radius to each vertex + + for ( var i = 0; i < vertexBuffer.length; i += 3 ) { + + vertex.x = vertexBuffer[ i + 0 ]; + vertex.y = vertexBuffer[ i + 1 ]; + vertex.z = vertexBuffer[ i + 2 ]; + + vertex.normalize().multiplyScalar( radius ); + + vertexBuffer[ i + 0 ] = vertex.x; + vertexBuffer[ i + 1 ] = vertex.y; + vertexBuffer[ i + 2 ] = vertex.z; + + } + + } + + function generateUVs() { + + var vertex = new Vector3(); + + for ( var i = 0; i < vertexBuffer.length; i += 3 ) { + + vertex.x = vertexBuffer[ i + 0 ]; + vertex.y = vertexBuffer[ i + 1 ]; + vertex.z = vertexBuffer[ i + 2 ]; + + var u = azimuth( vertex ) / 2 / Math.PI + 0.5; + var v = inclination( vertex ) / Math.PI + 0.5; + uvBuffer.push( u, 1 - v ); + + } + + correctUVs(); + + correctSeam(); + + } + + function correctSeam() { + + // handle case when face straddles the seam, see #3269 + + for ( var i = 0; i < uvBuffer.length; i += 6 ) { + + // uv data of a single face + + var x0 = uvBuffer[ i + 0 ]; + var x1 = uvBuffer[ i + 2 ]; + var x2 = uvBuffer[ i + 4 ]; + + var max = Math.max( x0, x1, x2 ); + var min = Math.min( x0, x1, x2 ); + + // 0.9 is somewhat arbitrary + + if ( max > 0.9 && min < 0.1 ) { + + if ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1; + if ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1; + if ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1; + + } + + } + + } + + function pushVertex( vertex ) { + + vertexBuffer.push( vertex.x, vertex.y, vertex.z ); + + } + + function getVertexByIndex( index, vertex ) { + + var stride = index * 3; + + vertex.x = vertices[ stride + 0 ]; + vertex.y = vertices[ stride + 1 ]; + vertex.z = vertices[ stride + 2 ]; + + } + + function correctUVs() { + + var a = new Vector3(); + var b = new Vector3(); + var c = new Vector3(); + + var centroid = new Vector3(); + + var uvA = new Vector2(); + var uvB = new Vector2(); + var uvC = new Vector2(); + + for ( var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) { + + a.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] ); + b.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] ); + c.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] ); + + uvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] ); + uvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] ); + uvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] ); + + centroid.copy( a ).add( b ).add( c ).divideScalar( 3 ); + + var azi = azimuth( centroid ); + + correctUV( uvA, j + 0, a, azi ); + correctUV( uvB, j + 2, b, azi ); + correctUV( uvC, j + 4, c, azi ); + + } + + } + + function correctUV( uv, stride, vector, azimuth ) { + + if ( ( azimuth < 0 ) && ( uv.x === 1 ) ) { + + uvBuffer[ stride ] = uv.x - 1; + + } + + if ( ( vector.x === 0 ) && ( vector.z === 0 ) ) { + + uvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5; + + } + + } + + // Angle around the Y axis, counter-clockwise when looking from above. + + function azimuth( vector ) { + + return Math.atan2( vector.z, - vector.x ); + + } + + + // Angle above the XZ plane. + + function inclination( vector ) { + + return Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) ); + + } + + } + + PolyhedronBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + PolyhedronBufferGeometry.prototype.constructor = PolyhedronBufferGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function TetrahedronBufferGeometry( radius, detail ) { + + var vertices = [ + 1, 1, 1, - 1, - 1, 1, - 1, 1, - 1, 1, - 1, - 1 + ]; + + var indices = [ + 2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1 + ]; + + PolyhedronBufferGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'TetrahedronBufferGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + } + + TetrahedronBufferGeometry.prototype = Object.create( PolyhedronBufferGeometry.prototype ); + TetrahedronBufferGeometry.prototype.constructor = TetrahedronBufferGeometry; + + /** + * @author timothypratley / https://github.com/timothypratley + */ + + function TetrahedronGeometry( radius, detail ) { + + Geometry.call( this ); + + this.type = 'TetrahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + this.fromBufferGeometry( new TetrahedronBufferGeometry( radius, detail ) ); + this.mergeVertices(); + + } + + TetrahedronGeometry.prototype = Object.create( Geometry.prototype ); + TetrahedronGeometry.prototype.constructor = TetrahedronGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function OctahedronBufferGeometry( radius,detail ) { + + var vertices = [ + 1, 0, 0, - 1, 0, 0, 0, 1, 0, 0, - 1, 0, 0, 0, 1, 0, 0, - 1 + ]; + + var indices = [ + 0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2 + ]; + + PolyhedronBufferGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'OctahedronBufferGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + } + + OctahedronBufferGeometry.prototype = Object.create( PolyhedronBufferGeometry.prototype ); + OctahedronBufferGeometry.prototype.constructor = OctahedronBufferGeometry; + + /** + * @author timothypratley / https://github.com/timothypratley + */ + + function OctahedronGeometry( radius, detail ) { + + Geometry.call( this ); + + this.type = 'OctahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + this.fromBufferGeometry( new OctahedronBufferGeometry( radius, detail ) ); + this.mergeVertices(); + + } + + OctahedronGeometry.prototype = Object.create( Geometry.prototype ); + OctahedronGeometry.prototype.constructor = OctahedronGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function IcosahedronBufferGeometry( radius, detail ) { + + var t = ( 1 + Math.sqrt( 5 ) ) / 2; + + var vertices = [ + - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t, 0, + 0, - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t, + t, 0, - 1, t, 0, 1, - t, 0, - 1, - t, 0, 1 + ]; + + var indices = [ + 0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, + 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, + 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, + 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1 + ]; + + PolyhedronBufferGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'IcosahedronBufferGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + } + + IcosahedronBufferGeometry.prototype = Object.create( PolyhedronBufferGeometry.prototype ); + IcosahedronBufferGeometry.prototype.constructor = IcosahedronBufferGeometry; + + /** + * @author timothypratley / https://github.com/timothypratley + */ + + function IcosahedronGeometry( radius, detail ) { + + Geometry.call( this ); + + this.type = 'IcosahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + this.fromBufferGeometry( new IcosahedronBufferGeometry( radius, detail ) ); + this.mergeVertices(); + + } + + IcosahedronGeometry.prototype = Object.create( Geometry.prototype ); + IcosahedronGeometry.prototype.constructor = IcosahedronGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function DodecahedronBufferGeometry( radius, detail ) { + + var t = ( 1 + Math.sqrt( 5 ) ) / 2; + var r = 1 / t; + + var vertices = [ + + // (±1, ±1, ±1) + - 1, - 1, - 1, - 1, - 1, 1, + - 1, 1, - 1, - 1, 1, 1, + 1, - 1, - 1, 1, - 1, 1, + 1, 1, - 1, 1, 1, 1, + + // (0, ±1/φ, ±φ) + 0, - r, - t, 0, - r, t, + 0, r, - t, 0, r, t, + + // (±1/φ, ±φ, 0) + - r, - t, 0, - r, t, 0, + r, - t, 0, r, t, 0, + + // (±φ, 0, ±1/φ) + - t, 0, - r, t, 0, - r, + - t, 0, r, t, 0, r + ]; + + var indices = [ + 3, 11, 7, 3, 7, 15, 3, 15, 13, + 7, 19, 17, 7, 17, 6, 7, 6, 15, + 17, 4, 8, 17, 8, 10, 17, 10, 6, + 8, 0, 16, 8, 16, 2, 8, 2, 10, + 0, 12, 1, 0, 1, 18, 0, 18, 16, + 6, 10, 2, 6, 2, 13, 6, 13, 15, + 2, 16, 18, 2, 18, 3, 2, 3, 13, + 18, 1, 9, 18, 9, 11, 18, 11, 3, + 4, 14, 12, 4, 12, 0, 4, 0, 8, + 11, 9, 5, 11, 5, 19, 11, 19, 7, + 19, 5, 14, 19, 14, 4, 19, 4, 17, + 1, 12, 14, 1, 14, 5, 1, 5, 9 + ]; + + PolyhedronBufferGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'DodecahedronBufferGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + } + + DodecahedronBufferGeometry.prototype = Object.create( PolyhedronBufferGeometry.prototype ); + DodecahedronBufferGeometry.prototype.constructor = DodecahedronBufferGeometry; + + /** + * @author Abe Pazos / https://hamoid.com + */ + + function DodecahedronGeometry( radius, detail ) { + + Geometry.call( this ); + + this.type = 'DodecahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + + this.fromBufferGeometry( new DodecahedronBufferGeometry( radius, detail ) ); + this.mergeVertices(); + + } + + DodecahedronGeometry.prototype = Object.create( Geometry.prototype ); + DodecahedronGeometry.prototype.constructor = DodecahedronGeometry; + + /** + * @author clockworkgeek / https://github.com/clockworkgeek + * @author timothypratley / https://github.com/timothypratley + * @author WestLangley / http://github.com/WestLangley + */ + + function PolyhedronGeometry( vertices, indices, radius, detail ) { + + Geometry.call( this ); + + this.type = 'PolyhedronGeometry'; + + this.parameters = { + vertices: vertices, + indices: indices, + radius: radius, + detail: detail + }; + + this.fromBufferGeometry( new PolyhedronBufferGeometry( vertices, indices, radius, detail ) ); + this.mergeVertices(); + + } + + PolyhedronGeometry.prototype = Object.create( Geometry.prototype ); + PolyhedronGeometry.prototype.constructor = PolyhedronGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + * + * Creates a tube which extrudes along a 3d spline. + * + */ + + function TubeBufferGeometry( path, tubularSegments, radius, radialSegments, closed ) { + + BufferGeometry.call( this ); + + this.type = 'TubeBufferGeometry'; + + this.parameters = { + path: path, + tubularSegments: tubularSegments, + radius: radius, + radialSegments: radialSegments, + closed: closed + }; + + tubularSegments = tubularSegments || 64; + radius = radius || 1; + radialSegments = radialSegments || 8; + closed = closed || false; + + var frames = path.computeFrenetFrames( tubularSegments, closed ); + + // expose internals + + this.tangents = frames.tangents; + this.normals = frames.normals; + this.binormals = frames.binormals; + + // helper variables + + var vertex = new Vector3(); + var normal = new Vector3(); + var uv = new Vector2(); + + var i, j; + + // buffer + + var vertices = []; + var normals = []; + var uvs = []; + var indices = []; + + // create buffer data + + generateBufferData(); + + // build geometry + + this.setIndex( ( indices.length > 65535 ? Uint32Attribute : Uint16Attribute )( indices, 1 ) ); + this.addAttribute( 'position', Float32Attribute( vertices, 3 ) ); + this.addAttribute( 'normal', Float32Attribute( normals, 3 ) ); + this.addAttribute( 'uv', Float32Attribute( uvs, 2 ) ); + + // functions + + function generateBufferData() { + + for ( i = 0; i < tubularSegments; i ++ ) { + + generateSegment( i ); + + } + + // if the geometry is not closed, generate the last row of vertices and normals + // at the regular position on the given path + // + // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ) + + generateSegment( ( closed === false ) ? tubularSegments : 0 ); + + // uvs are generated in a separate function. + // this makes it easy compute correct values for closed geometries + + generateUVs(); + + // finally create faces + + generateIndices(); + + } + + function generateSegment( i ) { + + // we use getPointAt to sample evenly distributed points from the given path + + var P = path.getPointAt( i / tubularSegments ); + + // retrieve corresponding normal and binormal + + var N = frames.normals[ i ]; + var B = frames.binormals[ i ]; + + // generate normals and vertices for the current segment + + for ( j = 0; j <= radialSegments; j ++ ) { + + var v = j / radialSegments * Math.PI * 2; + + var sin = Math.sin( v ); + var cos = - Math.cos( v ); + + // normal + + normal.x = ( cos * N.x + sin * B.x ); + normal.y = ( cos * N.y + sin * B.y ); + normal.z = ( cos * N.z + sin * B.z ); + normal.normalize(); + + normals.push( normal.x, normal.y, normal.z ); + + // vertex + + vertex.x = P.x + radius * normal.x; + vertex.y = P.y + radius * normal.y; + vertex.z = P.z + radius * normal.z; + + vertices.push( vertex.x, vertex.y, vertex.z ); + + } + + } + + function generateIndices() { + + for ( j = 1; j <= tubularSegments; j ++ ) { + + for ( i = 1; i <= radialSegments; i ++ ) { + + var a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 ); + var b = ( radialSegments + 1 ) * j + ( i - 1 ); + var c = ( radialSegments + 1 ) * j + i; + var d = ( radialSegments + 1 ) * ( j - 1 ) + i; + + // faces + + indices.push( a, b, d ); + indices.push( b, c, d ); + + } + + } + + } + + function generateUVs() { + + for ( i = 0; i <= tubularSegments; i ++ ) { + + for ( j = 0; j <= radialSegments; j ++ ) { + + uv.x = i / tubularSegments; + uv.y = j / radialSegments; + + uvs.push( uv.x, uv.y ); + + } + + } + + } + + } + + TubeBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + TubeBufferGeometry.prototype.constructor = TubeBufferGeometry; + + /** + * @author oosmoxiecode / https://github.com/oosmoxiecode + * @author WestLangley / https://github.com/WestLangley + * @author zz85 / https://github.com/zz85 + * @author miningold / https://github.com/miningold + * @author jonobr1 / https://github.com/jonobr1 + * + * Creates a tube which extrudes along a 3d spline. + */ + + function TubeGeometry( path, tubularSegments, radius, radialSegments, closed, taper ) { + + Geometry.call( this ); + + this.type = 'TubeGeometry'; + + this.parameters = { + path: path, + tubularSegments: tubularSegments, + radius: radius, + radialSegments: radialSegments, + closed: closed + }; + + if ( taper !== undefined ) console.warn( 'THREE.TubeGeometry: taper has been removed.' ); + + var bufferGeometry = new TubeBufferGeometry( path, tubularSegments, radius, radialSegments, closed ); + + // expose internals + + this.tangents = bufferGeometry.tangents; + this.normals = bufferGeometry.normals; + this.binormals = bufferGeometry.binormals; + + // create geometry + + this.fromBufferGeometry( bufferGeometry ); + this.mergeVertices(); + + } + + TubeGeometry.prototype = Object.create( Geometry.prototype ); + TubeGeometry.prototype.constructor = TubeGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + * + * see: http://www.blackpawn.com/texts/pqtorus/ + */ + function TorusKnotBufferGeometry( radius, tube, tubularSegments, radialSegments, p, q ) { + + BufferGeometry.call( this ); + + this.type = 'TorusKnotBufferGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + tubularSegments: tubularSegments, + radialSegments: radialSegments, + p: p, + q: q + }; + + radius = radius || 100; + tube = tube || 40; + tubularSegments = Math.floor( tubularSegments ) || 64; + radialSegments = Math.floor( radialSegments ) || 8; + p = p || 2; + q = q || 3; + + // used to calculate buffer length + var vertexCount = ( ( radialSegments + 1 ) * ( tubularSegments + 1 ) ); + var indexCount = radialSegments * tubularSegments * 2 * 3; + + // buffers + var indices = new BufferAttribute( new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ) , 1 ); + var vertices = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var normals = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var uvs = new BufferAttribute( new Float32Array( vertexCount * 2 ), 2 ); + + // helper variables + var i, j, index = 0, indexOffset = 0; + + var vertex = new Vector3(); + var normal = new Vector3(); + var uv = new Vector2(); + + var P1 = new Vector3(); + var P2 = new Vector3(); + + var B = new Vector3(); + var T = new Vector3(); + var N = new Vector3(); + + // generate vertices, normals and uvs + + for ( i = 0; i <= tubularSegments; ++ i ) { + + // the radian "u" is used to calculate the position on the torus curve of the current tubular segement + + var u = i / tubularSegments * p * Math.PI * 2; + + // now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead. + // these points are used to create a special "coordinate space", which is necessary to calculate the correct vertex positions + + calculatePositionOnCurve( u, p, q, radius, P1 ); + calculatePositionOnCurve( u + 0.01, p, q, radius, P2 ); + + // calculate orthonormal basis + + T.subVectors( P2, P1 ); + N.addVectors( P2, P1 ); + B.crossVectors( T, N ); + N.crossVectors( B, T ); + + // normalize B, N. T can be ignored, we don't use it + + B.normalize(); + N.normalize(); + + for ( j = 0; j <= radialSegments; ++ j ) { + + // now calculate the vertices. they are nothing more than an extrusion of the torus curve. + // because we extrude a shape in the xy-plane, there is no need to calculate a z-value. + + var v = j / radialSegments * Math.PI * 2; + var cx = - tube * Math.cos( v ); + var cy = tube * Math.sin( v ); + + // now calculate the final vertex position. + // first we orient the extrusion with our basis vectos, then we add it to the current position on the curve + + vertex.x = P1.x + ( cx * N.x + cy * B.x ); + vertex.y = P1.y + ( cx * N.y + cy * B.y ); + vertex.z = P1.z + ( cx * N.z + cy * B.z ); + + // vertex + vertices.setXYZ( index, vertex.x, vertex.y, vertex.z ); + + // normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal) + normal.subVectors( vertex, P1 ).normalize(); + normals.setXYZ( index, normal.x, normal.y, normal.z ); + + // uv + uv.x = i / tubularSegments; + uv.y = j / radialSegments; + uvs.setXY( index, uv.x, uv.y ); + + // increase index + index ++; + + } + + } + + // generate indices + + for ( j = 1; j <= tubularSegments; j ++ ) { + + for ( i = 1; i <= radialSegments; i ++ ) { + + // indices + var a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 ); + var b = ( radialSegments + 1 ) * j + ( i - 1 ); + var c = ( radialSegments + 1 ) * j + i; + var d = ( radialSegments + 1 ) * ( j - 1 ) + i; + + // face one + indices.setX( indexOffset, a ); indexOffset++; + indices.setX( indexOffset, b ); indexOffset++; + indices.setX( indexOffset, d ); indexOffset++; + + // face two + indices.setX( indexOffset, b ); indexOffset++; + indices.setX( indexOffset, c ); indexOffset++; + indices.setX( indexOffset, d ); indexOffset++; + + } + + } + + // build geometry + + this.setIndex( indices ); + this.addAttribute( 'position', vertices ); + this.addAttribute( 'normal', normals ); + this.addAttribute( 'uv', uvs ); + + // this function calculates the current position on the torus curve + + function calculatePositionOnCurve( u, p, q, radius, position ) { + + var cu = Math.cos( u ); + var su = Math.sin( u ); + var quOverP = q / p * u; + var cs = Math.cos( quOverP ); + + position.x = radius * ( 2 + cs ) * 0.5 * cu; + position.y = radius * ( 2 + cs ) * su * 0.5; + position.z = radius * Math.sin( quOverP ) * 0.5; + + } + + } + + TorusKnotBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + TorusKnotBufferGeometry.prototype.constructor = TorusKnotBufferGeometry; + + /** + * @author oosmoxiecode + */ + + function TorusKnotGeometry( radius, tube, tubularSegments, radialSegments, p, q, heightScale ) { + + Geometry.call( this ); + + this.type = 'TorusKnotGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + tubularSegments: tubularSegments, + radialSegments: radialSegments, + p: p, + q: q + }; + + if( heightScale !== undefined ) console.warn( 'THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.' ); + + this.fromBufferGeometry( new TorusKnotBufferGeometry( radius, tube, tubularSegments, radialSegments, p, q ) ); + this.mergeVertices(); + + } + + TorusKnotGeometry.prototype = Object.create( Geometry.prototype ); + TorusKnotGeometry.prototype.constructor = TorusKnotGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function TorusBufferGeometry( radius, tube, radialSegments, tubularSegments, arc ) { + + BufferGeometry.call( this ); + + this.type = 'TorusBufferGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + radialSegments: radialSegments, + tubularSegments: tubularSegments, + arc: arc + }; + + radius = radius || 100; + tube = tube || 40; + radialSegments = Math.floor( radialSegments ) || 8; + tubularSegments = Math.floor( tubularSegments ) || 6; + arc = arc || Math.PI * 2; + + // used to calculate buffer length + var vertexCount = ( ( radialSegments + 1 ) * ( tubularSegments + 1 ) ); + var indexCount = radialSegments * tubularSegments * 2 * 3; + + // buffers + var indices = new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ); + var vertices = new Float32Array( vertexCount * 3 ); + var normals = new Float32Array( vertexCount * 3 ); + var uvs = new Float32Array( vertexCount * 2 ); + + // offset variables + var vertexBufferOffset = 0; + var uvBufferOffset = 0; + var indexBufferOffset = 0; + + // helper variables + var center = new Vector3(); + var vertex = new Vector3(); + var normal = new Vector3(); + + var j, i; + + // generate vertices, normals and uvs + + for ( j = 0; j <= radialSegments; j ++ ) { + + for ( i = 0; i <= tubularSegments; i ++ ) { + + var u = i / tubularSegments * arc; + var v = j / radialSegments * Math.PI * 2; + + // vertex + vertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u ); + vertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u ); + vertex.z = tube * Math.sin( v ); + + vertices[ vertexBufferOffset ] = vertex.x; + vertices[ vertexBufferOffset + 1 ] = vertex.y; + vertices[ vertexBufferOffset + 2 ] = vertex.z; + + // this vector is used to calculate the normal + center.x = radius * Math.cos( u ); + center.y = radius * Math.sin( u ); + + // normal + normal.subVectors( vertex, center ).normalize(); + + normals[ vertexBufferOffset ] = normal.x; + normals[ vertexBufferOffset + 1 ] = normal.y; + normals[ vertexBufferOffset + 2 ] = normal.z; + + // uv + uvs[ uvBufferOffset ] = i / tubularSegments; + uvs[ uvBufferOffset + 1 ] = j / radialSegments; + + // update offsets + vertexBufferOffset += 3; + uvBufferOffset += 2; + + } + + } + + // generate indices + + for ( j = 1; j <= radialSegments; j ++ ) { + + for ( i = 1; i <= tubularSegments; i ++ ) { + + // indices + var a = ( tubularSegments + 1 ) * j + i - 1; + var b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1; + var c = ( tubularSegments + 1 ) * ( j - 1 ) + i; + var d = ( tubularSegments + 1 ) * j + i; + + // face one + indices[ indexBufferOffset ] = a; + indices[ indexBufferOffset + 1 ] = b; + indices[ indexBufferOffset + 2 ] = d; + + // face two + indices[ indexBufferOffset + 3 ] = b; + indices[ indexBufferOffset + 4 ] = c; + indices[ indexBufferOffset + 5 ] = d; + + // update offset + indexBufferOffset += 6; + + } + + } + + // build geometry + this.setIndex( new BufferAttribute( indices, 1 ) ); + this.addAttribute( 'position', new BufferAttribute( vertices, 3 ) ); + this.addAttribute( 'normal', new BufferAttribute( normals, 3 ) ); + this.addAttribute( 'uv', new BufferAttribute( uvs, 2 ) ); + + } + + TorusBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + TorusBufferGeometry.prototype.constructor = TorusBufferGeometry; + + /** + * @author oosmoxiecode + * @author mrdoob / http://mrdoob.com/ + * based on http://code.google.com/p/away3d/source/browse/trunk/fp10/Away3DLite/src/away3dlite/primitives/Torus.as?r=2888 + */ + + function TorusGeometry( radius, tube, radialSegments, tubularSegments, arc ) { + + Geometry.call( this ); + + this.type = 'TorusGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + radialSegments: radialSegments, + tubularSegments: tubularSegments, + arc: arc + }; + + this.fromBufferGeometry( new TorusBufferGeometry( radius, tube, radialSegments, tubularSegments, arc ) ); + + } + + TorusGeometry.prototype = Object.create( Geometry.prototype ); + TorusGeometry.prototype.constructor = TorusGeometry; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + */ + + var ShapeUtils = { + + // calculate area of the contour polygon + + area: function ( contour ) { + + var n = contour.length; + var a = 0.0; + + for ( var p = n - 1, q = 0; q < n; p = q ++ ) { + + a += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y; + + } + + return a * 0.5; + + }, + + triangulate: ( function () { + + /** + * This code is a quick port of code written in C++ which was submitted to + * flipcode.com by John W. Ratcliff // July 22, 2000 + * See original code and more information here: + * http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml + * + * ported to actionscript by Zevan Rosser + * www.actionsnippet.com + * + * ported to javascript by Joshua Koo + * http://www.lab4games.net/zz85/blog + * + */ + + function snip( contour, u, v, w, n, verts ) { + + var p; + var ax, ay, bx, by; + var cx, cy, px, py; + + ax = contour[ verts[ u ] ].x; + ay = contour[ verts[ u ] ].y; + + bx = contour[ verts[ v ] ].x; + by = contour[ verts[ v ] ].y; + + cx = contour[ verts[ w ] ].x; + cy = contour[ verts[ w ] ].y; + + if ( ( bx - ax ) * ( cy - ay ) - ( by - ay ) * ( cx - ax ) <= 0 ) return false; + + var aX, aY, bX, bY, cX, cY; + var apx, apy, bpx, bpy, cpx, cpy; + var cCROSSap, bCROSScp, aCROSSbp; + + aX = cx - bx; aY = cy - by; + bX = ax - cx; bY = ay - cy; + cX = bx - ax; cY = by - ay; + + for ( p = 0; p < n; p ++ ) { + + px = contour[ verts[ p ] ].x; + py = contour[ verts[ p ] ].y; + + if ( ( ( px === ax ) && ( py === ay ) ) || + ( ( px === bx ) && ( py === by ) ) || + ( ( px === cx ) && ( py === cy ) ) ) continue; + + apx = px - ax; apy = py - ay; + bpx = px - bx; bpy = py - by; + cpx = px - cx; cpy = py - cy; + + // see if p is inside triangle abc + + aCROSSbp = aX * bpy - aY * bpx; + cCROSSap = cX * apy - cY * apx; + bCROSScp = bX * cpy - bY * cpx; + + if ( ( aCROSSbp >= - Number.EPSILON ) && ( bCROSScp >= - Number.EPSILON ) && ( cCROSSap >= - Number.EPSILON ) ) return false; + + } + + return true; + + } + + // takes in an contour array and returns + + return function triangulate( contour, indices ) { + + var n = contour.length; + + if ( n < 3 ) return null; + + var result = [], + verts = [], + vertIndices = []; + + /* we want a counter-clockwise polygon in verts */ + + var u, v, w; + + if ( ShapeUtils.area( contour ) > 0.0 ) { + + for ( v = 0; v < n; v ++ ) verts[ v ] = v; + + } else { + + for ( v = 0; v < n; v ++ ) verts[ v ] = ( n - 1 ) - v; + + } + + var nv = n; + + /* remove nv - 2 vertices, creating 1 triangle every time */ + + var count = 2 * nv; /* error detection */ + + for ( v = nv - 1; nv > 2; ) { + + /* if we loop, it is probably a non-simple polygon */ + + if ( ( count -- ) <= 0 ) { + + //** Triangulate: ERROR - probable bad polygon! + + //throw ( "Warning, unable to triangulate polygon!" ); + //return null; + // Sometimes warning is fine, especially polygons are triangulated in reverse. + console.warn( 'THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()' ); + + if ( indices ) return vertIndices; + return result; + + } + + /* three consecutive vertices in current polygon, */ + + u = v; if ( nv <= u ) u = 0; /* previous */ + v = u + 1; if ( nv <= v ) v = 0; /* new v */ + w = v + 1; if ( nv <= w ) w = 0; /* next */ + + if ( snip( contour, u, v, w, nv, verts ) ) { + + var a, b, c, s, t; + + /* true names of the vertices */ + + a = verts[ u ]; + b = verts[ v ]; + c = verts[ w ]; + + /* output Triangle */ + + result.push( [ contour[ a ], + contour[ b ], + contour[ c ] ] ); + + + vertIndices.push( [ verts[ u ], verts[ v ], verts[ w ] ] ); + + /* remove v from the remaining polygon */ + + for ( s = v, t = v + 1; t < nv; s ++, t ++ ) { + + verts[ s ] = verts[ t ]; + + } + + nv --; + + /* reset error detection counter */ + + count = 2 * nv; + + } + + } + + if ( indices ) return vertIndices; + return result; + + } + + } )(), + + triangulateShape: function ( contour, holes ) { + + function removeDupEndPts(points) { + + var l = points.length; + + if ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) { + + points.pop(); + + } + + } + + removeDupEndPts( contour ); + holes.forEach( removeDupEndPts ); + + function point_in_segment_2D_colin( inSegPt1, inSegPt2, inOtherPt ) { + + // inOtherPt needs to be collinear to the inSegment + if ( inSegPt1.x !== inSegPt2.x ) { + + if ( inSegPt1.x < inSegPt2.x ) { + + return ( ( inSegPt1.x <= inOtherPt.x ) && ( inOtherPt.x <= inSegPt2.x ) ); + + } else { + + return ( ( inSegPt2.x <= inOtherPt.x ) && ( inOtherPt.x <= inSegPt1.x ) ); + + } + + } else { + + if ( inSegPt1.y < inSegPt2.y ) { + + return ( ( inSegPt1.y <= inOtherPt.y ) && ( inOtherPt.y <= inSegPt2.y ) ); + + } else { + + return ( ( inSegPt2.y <= inOtherPt.y ) && ( inOtherPt.y <= inSegPt1.y ) ); + + } + + } + + } + + function intersect_segments_2D( inSeg1Pt1, inSeg1Pt2, inSeg2Pt1, inSeg2Pt2, inExcludeAdjacentSegs ) { + + var seg1dx = inSeg1Pt2.x - inSeg1Pt1.x, seg1dy = inSeg1Pt2.y - inSeg1Pt1.y; + var seg2dx = inSeg2Pt2.x - inSeg2Pt1.x, seg2dy = inSeg2Pt2.y - inSeg2Pt1.y; + + var seg1seg2dx = inSeg1Pt1.x - inSeg2Pt1.x; + var seg1seg2dy = inSeg1Pt1.y - inSeg2Pt1.y; + + var limit = seg1dy * seg2dx - seg1dx * seg2dy; + var perpSeg1 = seg1dy * seg1seg2dx - seg1dx * seg1seg2dy; + + if ( Math.abs( limit ) > Number.EPSILON ) { + + // not parallel + + var perpSeg2; + if ( limit > 0 ) { + + if ( ( perpSeg1 < 0 ) || ( perpSeg1 > limit ) ) return []; + perpSeg2 = seg2dy * seg1seg2dx - seg2dx * seg1seg2dy; + if ( ( perpSeg2 < 0 ) || ( perpSeg2 > limit ) ) return []; + + } else { + + if ( ( perpSeg1 > 0 ) || ( perpSeg1 < limit ) ) return []; + perpSeg2 = seg2dy * seg1seg2dx - seg2dx * seg1seg2dy; + if ( ( perpSeg2 > 0 ) || ( perpSeg2 < limit ) ) return []; + + } + + // i.e. to reduce rounding errors + // intersection at endpoint of segment#1? + if ( perpSeg2 === 0 ) { + + if ( ( inExcludeAdjacentSegs ) && + ( ( perpSeg1 === 0 ) || ( perpSeg1 === limit ) ) ) return []; + return [ inSeg1Pt1 ]; + + } + if ( perpSeg2 === limit ) { + + if ( ( inExcludeAdjacentSegs ) && + ( ( perpSeg1 === 0 ) || ( perpSeg1 === limit ) ) ) return []; + return [ inSeg1Pt2 ]; + + } + // intersection at endpoint of segment#2? + if ( perpSeg1 === 0 ) return [ inSeg2Pt1 ]; + if ( perpSeg1 === limit ) return [ inSeg2Pt2 ]; + + // return real intersection point + var factorSeg1 = perpSeg2 / limit; + return [ { x: inSeg1Pt1.x + factorSeg1 * seg1dx, + y: inSeg1Pt1.y + factorSeg1 * seg1dy } ]; + + } else { + + // parallel or collinear + if ( ( perpSeg1 !== 0 ) || + ( seg2dy * seg1seg2dx !== seg2dx * seg1seg2dy ) ) return []; + + // they are collinear or degenerate + var seg1Pt = ( ( seg1dx === 0 ) && ( seg1dy === 0 ) ); // segment1 is just a point? + var seg2Pt = ( ( seg2dx === 0 ) && ( seg2dy === 0 ) ); // segment2 is just a point? + // both segments are points + if ( seg1Pt && seg2Pt ) { + + if ( ( inSeg1Pt1.x !== inSeg2Pt1.x ) || + ( inSeg1Pt1.y !== inSeg2Pt1.y ) ) return []; // they are distinct points + return [ inSeg1Pt1 ]; // they are the same point + + } + // segment#1 is a single point + if ( seg1Pt ) { + + if ( ! point_in_segment_2D_colin( inSeg2Pt1, inSeg2Pt2, inSeg1Pt1 ) ) return []; // but not in segment#2 + return [ inSeg1Pt1 ]; + + } + // segment#2 is a single point + if ( seg2Pt ) { + + if ( ! point_in_segment_2D_colin( inSeg1Pt1, inSeg1Pt2, inSeg2Pt1 ) ) return []; // but not in segment#1 + return [ inSeg2Pt1 ]; + + } + + // they are collinear segments, which might overlap + var seg1min, seg1max, seg1minVal, seg1maxVal; + var seg2min, seg2max, seg2minVal, seg2maxVal; + if ( seg1dx !== 0 ) { + + // the segments are NOT on a vertical line + if ( inSeg1Pt1.x < inSeg1Pt2.x ) { + + seg1min = inSeg1Pt1; seg1minVal = inSeg1Pt1.x; + seg1max = inSeg1Pt2; seg1maxVal = inSeg1Pt2.x; + + } else { + + seg1min = inSeg1Pt2; seg1minVal = inSeg1Pt2.x; + seg1max = inSeg1Pt1; seg1maxVal = inSeg1Pt1.x; + + } + if ( inSeg2Pt1.x < inSeg2Pt2.x ) { + + seg2min = inSeg2Pt1; seg2minVal = inSeg2Pt1.x; + seg2max = inSeg2Pt2; seg2maxVal = inSeg2Pt2.x; + + } else { + + seg2min = inSeg2Pt2; seg2minVal = inSeg2Pt2.x; + seg2max = inSeg2Pt1; seg2maxVal = inSeg2Pt1.x; + + } + + } else { + + // the segments are on a vertical line + if ( inSeg1Pt1.y < inSeg1Pt2.y ) { + + seg1min = inSeg1Pt1; seg1minVal = inSeg1Pt1.y; + seg1max = inSeg1Pt2; seg1maxVal = inSeg1Pt2.y; + + } else { + + seg1min = inSeg1Pt2; seg1minVal = inSeg1Pt2.y; + seg1max = inSeg1Pt1; seg1maxVal = inSeg1Pt1.y; + + } + if ( inSeg2Pt1.y < inSeg2Pt2.y ) { + + seg2min = inSeg2Pt1; seg2minVal = inSeg2Pt1.y; + seg2max = inSeg2Pt2; seg2maxVal = inSeg2Pt2.y; + + } else { + + seg2min = inSeg2Pt2; seg2minVal = inSeg2Pt2.y; + seg2max = inSeg2Pt1; seg2maxVal = inSeg2Pt1.y; + + } + + } + if ( seg1minVal <= seg2minVal ) { + + if ( seg1maxVal < seg2minVal ) return []; + if ( seg1maxVal === seg2minVal ) { + + if ( inExcludeAdjacentSegs ) return []; + return [ seg2min ]; + + } + if ( seg1maxVal <= seg2maxVal ) return [ seg2min, seg1max ]; + return [ seg2min, seg2max ]; + + } else { + + if ( seg1minVal > seg2maxVal ) return []; + if ( seg1minVal === seg2maxVal ) { + + if ( inExcludeAdjacentSegs ) return []; + return [ seg1min ]; + + } + if ( seg1maxVal <= seg2maxVal ) return [ seg1min, seg1max ]; + return [ seg1min, seg2max ]; + + } + + } + + } + + function isPointInsideAngle( inVertex, inLegFromPt, inLegToPt, inOtherPt ) { + + // The order of legs is important + + // translation of all points, so that Vertex is at (0,0) + var legFromPtX = inLegFromPt.x - inVertex.x, legFromPtY = inLegFromPt.y - inVertex.y; + var legToPtX = inLegToPt.x - inVertex.x, legToPtY = inLegToPt.y - inVertex.y; + var otherPtX = inOtherPt.x - inVertex.x, otherPtY = inOtherPt.y - inVertex.y; + + // main angle >0: < 180 deg.; 0: 180 deg.; <0: > 180 deg. + var from2toAngle = legFromPtX * legToPtY - legFromPtY * legToPtX; + var from2otherAngle = legFromPtX * otherPtY - legFromPtY * otherPtX; + + if ( Math.abs( from2toAngle ) > Number.EPSILON ) { + + // angle != 180 deg. + + var other2toAngle = otherPtX * legToPtY - otherPtY * legToPtX; + // console.log( "from2to: " + from2toAngle + ", from2other: " + from2otherAngle + ", other2to: " + other2toAngle ); + + if ( from2toAngle > 0 ) { + + // main angle < 180 deg. + return ( ( from2otherAngle >= 0 ) && ( other2toAngle >= 0 ) ); + + } else { + + // main angle > 180 deg. + return ( ( from2otherAngle >= 0 ) || ( other2toAngle >= 0 ) ); + + } + + } else { + + // angle == 180 deg. + // console.log( "from2to: 180 deg., from2other: " + from2otherAngle ); + return ( from2otherAngle > 0 ); + + } + + } + + + function removeHoles( contour, holes ) { + + var shape = contour.concat(); // work on this shape + var hole; + + function isCutLineInsideAngles( inShapeIdx, inHoleIdx ) { + + // Check if hole point lies within angle around shape point + var lastShapeIdx = shape.length - 1; + + var prevShapeIdx = inShapeIdx - 1; + if ( prevShapeIdx < 0 ) prevShapeIdx = lastShapeIdx; + + var nextShapeIdx = inShapeIdx + 1; + if ( nextShapeIdx > lastShapeIdx ) nextShapeIdx = 0; + + var insideAngle = isPointInsideAngle( shape[ inShapeIdx ], shape[ prevShapeIdx ], shape[ nextShapeIdx ], hole[ inHoleIdx ] ); + if ( ! insideAngle ) { + + // console.log( "Vertex (Shape): " + inShapeIdx + ", Point: " + hole[inHoleIdx].x + "/" + hole[inHoleIdx].y ); + return false; + + } + + // Check if shape point lies within angle around hole point + var lastHoleIdx = hole.length - 1; + + var prevHoleIdx = inHoleIdx - 1; + if ( prevHoleIdx < 0 ) prevHoleIdx = lastHoleIdx; + + var nextHoleIdx = inHoleIdx + 1; + if ( nextHoleIdx > lastHoleIdx ) nextHoleIdx = 0; + + insideAngle = isPointInsideAngle( hole[ inHoleIdx ], hole[ prevHoleIdx ], hole[ nextHoleIdx ], shape[ inShapeIdx ] ); + if ( ! insideAngle ) { + + // console.log( "Vertex (Hole): " + inHoleIdx + ", Point: " + shape[inShapeIdx].x + "/" + shape[inShapeIdx].y ); + return false; + + } + + return true; + + } + + function intersectsShapeEdge( inShapePt, inHolePt ) { + + // checks for intersections with shape edges + var sIdx, nextIdx, intersection; + for ( sIdx = 0; sIdx < shape.length; sIdx ++ ) { + + nextIdx = sIdx + 1; nextIdx %= shape.length; + intersection = intersect_segments_2D( inShapePt, inHolePt, shape[ sIdx ], shape[ nextIdx ], true ); + if ( intersection.length > 0 ) return true; + + } + + return false; + + } + + var indepHoles = []; + + function intersectsHoleEdge( inShapePt, inHolePt ) { + + // checks for intersections with hole edges + var ihIdx, chkHole, + hIdx, nextIdx, intersection; + for ( ihIdx = 0; ihIdx < indepHoles.length; ihIdx ++ ) { + + chkHole = holes[ indepHoles[ ihIdx ]]; + for ( hIdx = 0; hIdx < chkHole.length; hIdx ++ ) { + + nextIdx = hIdx + 1; nextIdx %= chkHole.length; + intersection = intersect_segments_2D( inShapePt, inHolePt, chkHole[ hIdx ], chkHole[ nextIdx ], true ); + if ( intersection.length > 0 ) return true; + + } + + } + return false; + + } + + var holeIndex, shapeIndex, + shapePt, holePt, + holeIdx, cutKey, failedCuts = [], + tmpShape1, tmpShape2, + tmpHole1, tmpHole2; + + for ( var h = 0, hl = holes.length; h < hl; h ++ ) { + + indepHoles.push( h ); + + } + + var minShapeIndex = 0; + var counter = indepHoles.length * 2; + while ( indepHoles.length > 0 ) { + + counter --; + if ( counter < 0 ) { + + console.log( "Infinite Loop! Holes left:" + indepHoles.length + ", Probably Hole outside Shape!" ); + break; + + } + + // search for shape-vertex and hole-vertex, + // which can be connected without intersections + for ( shapeIndex = minShapeIndex; shapeIndex < shape.length; shapeIndex ++ ) { + + shapePt = shape[ shapeIndex ]; + holeIndex = - 1; + + // search for hole which can be reached without intersections + for ( var h = 0; h < indepHoles.length; h ++ ) { + + holeIdx = indepHoles[ h ]; + + // prevent multiple checks + cutKey = shapePt.x + ":" + shapePt.y + ":" + holeIdx; + if ( failedCuts[ cutKey ] !== undefined ) continue; + + hole = holes[ holeIdx ]; + for ( var h2 = 0; h2 < hole.length; h2 ++ ) { + + holePt = hole[ h2 ]; + if ( ! isCutLineInsideAngles( shapeIndex, h2 ) ) continue; + if ( intersectsShapeEdge( shapePt, holePt ) ) continue; + if ( intersectsHoleEdge( shapePt, holePt ) ) continue; + + holeIndex = h2; + indepHoles.splice( h, 1 ); + + tmpShape1 = shape.slice( 0, shapeIndex + 1 ); + tmpShape2 = shape.slice( shapeIndex ); + tmpHole1 = hole.slice( holeIndex ); + tmpHole2 = hole.slice( 0, holeIndex + 1 ); + + shape = tmpShape1.concat( tmpHole1 ).concat( tmpHole2 ).concat( tmpShape2 ); + + minShapeIndex = shapeIndex; + + // Debug only, to show the selected cuts + // glob_CutLines.push( [ shapePt, holePt ] ); + + break; + + } + if ( holeIndex >= 0 ) break; // hole-vertex found + + failedCuts[ cutKey ] = true; // remember failure + + } + if ( holeIndex >= 0 ) break; // hole-vertex found + + } + + } + + return shape; /* shape with no holes */ + + } + + + var i, il, f, face, + key, index, + allPointsMap = {}; + + // To maintain reference to old shape, one must match coordinates, or offset the indices from original arrays. It's probably easier to do the first. + + var allpoints = contour.concat(); + + for ( var h = 0, hl = holes.length; h < hl; h ++ ) { + + Array.prototype.push.apply( allpoints, holes[ h ] ); + + } + + //console.log( "allpoints",allpoints, allpoints.length ); + + // prepare all points map + + for ( i = 0, il = allpoints.length; i < il; i ++ ) { + + key = allpoints[ i ].x + ":" + allpoints[ i ].y; + + if ( allPointsMap[ key ] !== undefined ) { + + console.warn( "THREE.ShapeUtils: Duplicate point", key, i ); + + } + + allPointsMap[ key ] = i; + + } + + // remove holes by cutting paths to holes and adding them to the shape + var shapeWithoutHoles = removeHoles( contour, holes ); + + var triangles = ShapeUtils.triangulate( shapeWithoutHoles, false ); // True returns indices for points of spooled shape + //console.log( "triangles",triangles, triangles.length ); + + // check all face vertices against all points map + + for ( i = 0, il = triangles.length; i < il; i ++ ) { + + face = triangles[ i ]; + + for ( f = 0; f < 3; f ++ ) { + + key = face[ f ].x + ":" + face[ f ].y; + + index = allPointsMap[ key ]; + + if ( index !== undefined ) { + + face[ f ] = index; + + } + + } + + } + + return triangles.concat(); + + }, + + isClockWise: function ( pts ) { + + return ShapeUtils.area( pts ) < 0; + + }, + + // Bezier Curves formulas obtained from + // http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + // Quad Bezier Functions + + b2: ( function () { + + function b2p0( t, p ) { + + var k = 1 - t; + return k * k * p; + + } + + function b2p1( t, p ) { + + return 2 * ( 1 - t ) * t * p; + + } + + function b2p2( t, p ) { + + return t * t * p; + + } + + return function b2( t, p0, p1, p2 ) { + + return b2p0( t, p0 ) + b2p1( t, p1 ) + b2p2( t, p2 ); + + }; + + } )(), + + // Cubic Bezier Functions + + b3: ( function () { + + function b3p0( t, p ) { + + var k = 1 - t; + return k * k * k * p; + + } + + function b3p1( t, p ) { + + var k = 1 - t; + return 3 * k * k * t * p; + + } + + function b3p2( t, p ) { + + var k = 1 - t; + return 3 * k * t * t * p; + + } + + function b3p3( t, p ) { + + return t * t * t * p; + + } + + return function b3( t, p0, p1, p2, p3 ) { + + return b3p0( t, p0 ) + b3p1( t, p1 ) + b3p2( t, p2 ) + b3p3( t, p3 ); + + }; + + } )() + + }; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * + * Creates extruded geometry from a path shape. + * + * parameters = { + * + * curveSegments: , // number of points on the curves + * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too + * amount: , // Depth to extrude the shape + * + * bevelEnabled: , // turn on bevel + * bevelThickness: , // how deep into the original shape bevel goes + * bevelSize: , // how far from shape outline is bevel + * bevelSegments: , // number of bevel layers + * + * extrudePath: // 3d spline path to extrude shape along. (creates Frames if .frames aren't defined) + * frames: // containing arrays of tangents, normals, binormals + * + * uvGenerator: // object that provides UV generator functions + * + * } + **/ + + function ExtrudeGeometry( shapes, options ) { + + if ( typeof( shapes ) === "undefined" ) { + + shapes = []; + return; + + } + + Geometry.call( this ); + + this.type = 'ExtrudeGeometry'; + + shapes = Array.isArray( shapes ) ? shapes : [ shapes ]; + + this.addShapeList( shapes, options ); + + this.computeFaceNormals(); + + // can't really use automatic vertex normals + // as then front and back sides get smoothed too + // should do separate smoothing just for sides + + //this.computeVertexNormals(); + + //console.log( "took", ( Date.now() - startTime ) ); + + } + + ExtrudeGeometry.prototype = Object.create( Geometry.prototype ); + ExtrudeGeometry.prototype.constructor = ExtrudeGeometry; + + ExtrudeGeometry.prototype.addShapeList = function ( shapes, options ) { + + var sl = shapes.length; + + for ( var s = 0; s < sl; s ++ ) { + + var shape = shapes[ s ]; + this.addShape( shape, options ); + + } + + }; + + ExtrudeGeometry.prototype.addShape = function ( shape, options ) { + + var amount = options.amount !== undefined ? options.amount : 100; + + var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6; // 10 + var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 2; // 8 + var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3; + + var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true; // false + + var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12; + + var steps = options.steps !== undefined ? options.steps : 1; + + var extrudePath = options.extrudePath; + var extrudePts, extrudeByPath = false; + + // Use default WorldUVGenerator if no UV generators are specified. + var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : ExtrudeGeometry.WorldUVGenerator; + + var splineTube, binormal, normal, position2; + if ( extrudePath ) { + + extrudePts = extrudePath.getSpacedPoints( steps ); + + extrudeByPath = true; + bevelEnabled = false; // bevels not supported for path extrusion + + // SETUP TNB variables + + // TODO1 - have a .isClosed in spline? + + splineTube = options.frames !== undefined ? options.frames : extrudePath.computeFrenetFrames( steps, false ); + + // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length); + + binormal = new Vector3(); + normal = new Vector3(); + position2 = new Vector3(); + + } + + // Safeguards if bevels are not enabled + + if ( ! bevelEnabled ) { + + bevelSegments = 0; + bevelThickness = 0; + bevelSize = 0; + + } + + // Variables initialization + + var ahole, h, hl; // looping of holes + var scope = this; + + var shapesOffset = this.vertices.length; + + var shapePoints = shape.extractPoints( curveSegments ); + + var vertices = shapePoints.shape; + var holes = shapePoints.holes; + + var reverse = ! ShapeUtils.isClockWise( vertices ); + + if ( reverse ) { + + vertices = vertices.reverse(); + + // Maybe we should also check if holes are in the opposite direction, just to be safe ... + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + if ( ShapeUtils.isClockWise( ahole ) ) { + + holes[ h ] = ahole.reverse(); + + } + + } + + reverse = false; // If vertices are in order now, we shouldn't need to worry about them again (hopefully)! + + } + + + var faces = ShapeUtils.triangulateShape( vertices, holes ); + + /* Vertices */ + + var contour = vertices; // vertices has all points but contour has only points of circumference + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + vertices = vertices.concat( ahole ); + + } + + + function scalePt2( pt, vec, size ) { + + if ( ! vec ) console.error( "THREE.ExtrudeGeometry: vec does not exist" ); + + return vec.clone().multiplyScalar( size ).add( pt ); + + } + + var b, bs, t, z, + vert, vlen = vertices.length, + face, flen = faces.length; + + + // Find directions for point movement + + + function getBevelVec( inPt, inPrev, inNext ) { + + // computes for inPt the corresponding point inPt' on a new contour + // shifted by 1 unit (length of normalized vector) to the left + // if we walk along contour clockwise, this new contour is outside the old one + // + // inPt' is the intersection of the two lines parallel to the two + // adjacent edges of inPt at a distance of 1 unit on the left side. + + var v_trans_x, v_trans_y, shrink_by = 1; // resulting translation vector for inPt + + // good reading for geometry algorithms (here: line-line intersection) + // http://geomalgorithms.com/a05-_intersect-1.html + + var v_prev_x = inPt.x - inPrev.x, v_prev_y = inPt.y - inPrev.y; + var v_next_x = inNext.x - inPt.x, v_next_y = inNext.y - inPt.y; + + var v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y ); + + // check for collinear edges + var collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x ); + + if ( Math.abs( collinear0 ) > Number.EPSILON ) { + + // not collinear + + // length of vectors for normalizing + + var v_prev_len = Math.sqrt( v_prev_lensq ); + var v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y ); + + // shift adjacent points by unit vectors to the left + + var ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len ); + var ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len ); + + var ptNextShift_x = ( inNext.x - v_next_y / v_next_len ); + var ptNextShift_y = ( inNext.y + v_next_x / v_next_len ); + + // scaling factor for v_prev to intersection point + + var sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y - + ( ptNextShift_y - ptPrevShift_y ) * v_next_x ) / + ( v_prev_x * v_next_y - v_prev_y * v_next_x ); + + // vector from inPt to intersection point + + v_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x ); + v_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y ); + + // Don't normalize!, otherwise sharp corners become ugly + // but prevent crazy spikes + var v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y ); + if ( v_trans_lensq <= 2 ) { + + return new Vector2( v_trans_x, v_trans_y ); + + } else { + + shrink_by = Math.sqrt( v_trans_lensq / 2 ); + + } + + } else { + + // handle special case of collinear edges + + var direction_eq = false; // assumes: opposite + if ( v_prev_x > Number.EPSILON ) { + + if ( v_next_x > Number.EPSILON ) { + + direction_eq = true; + + } + + } else { + + if ( v_prev_x < - Number.EPSILON ) { + + if ( v_next_x < - Number.EPSILON ) { + + direction_eq = true; + + } + + } else { + + if ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) { + + direction_eq = true; + + } + + } + + } + + if ( direction_eq ) { + + // console.log("Warning: lines are a straight sequence"); + v_trans_x = - v_prev_y; + v_trans_y = v_prev_x; + shrink_by = Math.sqrt( v_prev_lensq ); + + } else { + + // console.log("Warning: lines are a straight spike"); + v_trans_x = v_prev_x; + v_trans_y = v_prev_y; + shrink_by = Math.sqrt( v_prev_lensq / 2 ); + + } + + } + + return new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by ); + + } + + + var contourMovements = []; + + for ( var i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) { + + if ( j === il ) j = 0; + if ( k === il ) k = 0; + + // (j)---(i)---(k) + // console.log('i,j,k', i, j , k) + + contourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] ); + + } + + var holesMovements = [], oneHoleMovements, verticesMovements = contourMovements.concat(); + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + oneHoleMovements = []; + + for ( i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) { + + if ( j === il ) j = 0; + if ( k === il ) k = 0; + + // (j)---(i)---(k) + oneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] ); + + } + + holesMovements.push( oneHoleMovements ); + verticesMovements = verticesMovements.concat( oneHoleMovements ); + + } + + + // Loop bevelSegments, 1 for the front, 1 for the back + + for ( b = 0; b < bevelSegments; b ++ ) { + + //for ( b = bevelSegments; b > 0; b -- ) { + + t = b / bevelSegments; + z = bevelThickness * Math.cos( t * Math.PI / 2 ); + bs = bevelSize * Math.sin( t * Math.PI / 2 ); + + // contract shape + + for ( i = 0, il = contour.length; i < il; i ++ ) { + + vert = scalePt2( contour[ i ], contourMovements[ i ], bs ); + + v( vert.x, vert.y, - z ); + + } + + // expand holes + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + oneHoleMovements = holesMovements[ h ]; + + for ( i = 0, il = ahole.length; i < il; i ++ ) { + + vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs ); + + v( vert.x, vert.y, - z ); + + } + + } + + } + + bs = bevelSize; + + // Back facing vertices + + for ( i = 0; i < vlen; i ++ ) { + + vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ]; + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, 0 ); + + } else { + + // v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x ); + + normal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x ); + binormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y ); + + position2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal ); + + v( position2.x, position2.y, position2.z ); + + } + + } + + // Add stepped vertices... + // Including front facing vertices + + var s; + + for ( s = 1; s <= steps; s ++ ) { + + for ( i = 0; i < vlen; i ++ ) { + + vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ]; + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, amount / steps * s ); + + } else { + + // v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x ); + + normal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x ); + binormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y ); + + position2.copy( extrudePts[ s ] ).add( normal ).add( binormal ); + + v( position2.x, position2.y, position2.z ); + + } + + } + + } + + + // Add bevel segments planes + + //for ( b = 1; b <= bevelSegments; b ++ ) { + for ( b = bevelSegments - 1; b >= 0; b -- ) { + + t = b / bevelSegments; + z = bevelThickness * Math.cos ( t * Math.PI / 2 ); + bs = bevelSize * Math.sin( t * Math.PI / 2 ); + + // contract shape + + for ( i = 0, il = contour.length; i < il; i ++ ) { + + vert = scalePt2( contour[ i ], contourMovements[ i ], bs ); + v( vert.x, vert.y, amount + z ); + + } + + // expand holes + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + oneHoleMovements = holesMovements[ h ]; + + for ( i = 0, il = ahole.length; i < il; i ++ ) { + + vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs ); + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, amount + z ); + + } else { + + v( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z ); + + } + + } + + } + + } + + /* Faces */ + + // Top and bottom faces + + buildLidFaces(); + + // Sides faces + + buildSideFaces(); + + + ///// Internal functions + + function buildLidFaces() { + + if ( bevelEnabled ) { + + var layer = 0; // steps + 1 + var offset = vlen * layer; + + // Bottom faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset ); + + } + + layer = steps + bevelSegments * 2; + offset = vlen * layer; + + // Top faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset ); + + } + + } else { + + // Bottom faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 2 ], face[ 1 ], face[ 0 ] ); + + } + + // Top faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps ); + + } + + } + + } + + // Create faces for the z-sides of the shape + + function buildSideFaces() { + + var layeroffset = 0; + sidewalls( contour, layeroffset ); + layeroffset += contour.length; + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + sidewalls( ahole, layeroffset ); + + //, true + layeroffset += ahole.length; + + } + + } + + function sidewalls( contour, layeroffset ) { + + var j, k; + i = contour.length; + + while ( -- i >= 0 ) { + + j = i; + k = i - 1; + if ( k < 0 ) k = contour.length - 1; + + //console.log('b', i,j, i-1, k,vertices.length); + + var s = 0, sl = steps + bevelSegments * 2; + + for ( s = 0; s < sl; s ++ ) { + + var slen1 = vlen * s; + var slen2 = vlen * ( s + 1 ); + + var a = layeroffset + j + slen1, + b = layeroffset + k + slen1, + c = layeroffset + k + slen2, + d = layeroffset + j + slen2; + + f4( a, b, c, d, contour, s, sl, j, k ); + + } + + } + + } + + + function v( x, y, z ) { + + scope.vertices.push( new Vector3( x, y, z ) ); + + } + + function f3( a, b, c ) { + + a += shapesOffset; + b += shapesOffset; + c += shapesOffset; + + scope.faces.push( new Face3( a, b, c, null, null, 0 ) ); + + var uvs = uvgen.generateTopUV( scope, a, b, c ); + + scope.faceVertexUvs[ 0 ].push( uvs ); + + } + + function f4( a, b, c, d, wallContour, stepIndex, stepsLength, contourIndex1, contourIndex2 ) { + + a += shapesOffset; + b += shapesOffset; + c += shapesOffset; + d += shapesOffset; + + scope.faces.push( new Face3( a, b, d, null, null, 1 ) ); + scope.faces.push( new Face3( b, c, d, null, null, 1 ) ); + + var uvs = uvgen.generateSideWallUV( scope, a, b, c, d ); + + scope.faceVertexUvs[ 0 ].push( [ uvs[ 0 ], uvs[ 1 ], uvs[ 3 ] ] ); + scope.faceVertexUvs[ 0 ].push( [ uvs[ 1 ], uvs[ 2 ], uvs[ 3 ] ] ); + + } + + }; + + ExtrudeGeometry.WorldUVGenerator = { + + generateTopUV: function ( geometry, indexA, indexB, indexC ) { + + var vertices = geometry.vertices; + + var a = vertices[ indexA ]; + var b = vertices[ indexB ]; + var c = vertices[ indexC ]; + + return [ + new Vector2( a.x, a.y ), + new Vector2( b.x, b.y ), + new Vector2( c.x, c.y ) + ]; + + }, + + generateSideWallUV: function ( geometry, indexA, indexB, indexC, indexD ) { + + var vertices = geometry.vertices; + + var a = vertices[ indexA ]; + var b = vertices[ indexB ]; + var c = vertices[ indexC ]; + var d = vertices[ indexD ]; + + if ( Math.abs( a.y - b.y ) < 0.01 ) { + + return [ + new Vector2( a.x, 1 - a.z ), + new Vector2( b.x, 1 - b.z ), + new Vector2( c.x, 1 - c.z ), + new Vector2( d.x, 1 - d.z ) + ]; + + } else { + + return [ + new Vector2( a.y, 1 - a.z ), + new Vector2( b.y, 1 - b.z ), + new Vector2( c.y, 1 - c.z ), + new Vector2( d.y, 1 - d.z ) + ]; + + } + + } + }; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author alteredq / http://alteredqualia.com/ + * + * Text = 3D Text + * + * parameters = { + * font: , // font + * + * size: , // size of the text + * height: , // thickness to extrude text + * curveSegments: , // number of points on the curves + * + * bevelEnabled: , // turn on bevel + * bevelThickness: , // how deep into text bevel goes + * bevelSize: // how far from text outline is bevel + * } + */ + + function TextGeometry( text, parameters ) { + + parameters = parameters || {}; + + var font = parameters.font; + + if ( (font && font.isFont) === false ) { + + console.error( 'THREE.TextGeometry: font parameter is not an instance of THREE.Font.' ); + return new Geometry(); + + } + + var shapes = font.generateShapes( text, parameters.size, parameters.curveSegments ); + + // translate parameters to ExtrudeGeometry API + + parameters.amount = parameters.height !== undefined ? parameters.height : 50; + + // defaults + + if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10; + if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8; + if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false; + + ExtrudeGeometry.call( this, shapes, parameters ); + + this.type = 'TextGeometry'; + + } + + TextGeometry.prototype = Object.create( ExtrudeGeometry.prototype ); + TextGeometry.prototype.constructor = TextGeometry; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + * based on THREE.SphereGeometry + */ + + function SphereBufferGeometry( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength ) { + + BufferGeometry.call( this ); + + this.type = 'SphereBufferGeometry'; + + this.parameters = { + radius: radius, + widthSegments: widthSegments, + heightSegments: heightSegments, + phiStart: phiStart, + phiLength: phiLength, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + radius = radius || 50; + + widthSegments = Math.max( 3, Math.floor( widthSegments ) || 8 ); + heightSegments = Math.max( 2, Math.floor( heightSegments ) || 6 ); + + phiStart = phiStart !== undefined ? phiStart : 0; + phiLength = phiLength !== undefined ? phiLength : Math.PI * 2; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI; + + var thetaEnd = thetaStart + thetaLength; + + var vertexCount = ( ( widthSegments + 1 ) * ( heightSegments + 1 ) ); + + var positions = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var normals = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var uvs = new BufferAttribute( new Float32Array( vertexCount * 2 ), 2 ); + + var index = 0, vertices = [], normal = new Vector3(); + + for ( var y = 0; y <= heightSegments; y ++ ) { + + var verticesRow = []; + + var v = y / heightSegments; + + for ( var x = 0; x <= widthSegments; x ++ ) { + + var u = x / widthSegments; + + var px = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength ); + var py = radius * Math.cos( thetaStart + v * thetaLength ); + var pz = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength ); + + normal.set( px, py, pz ).normalize(); + + positions.setXYZ( index, px, py, pz ); + normals.setXYZ( index, normal.x, normal.y, normal.z ); + uvs.setXY( index, u, 1 - v ); + + verticesRow.push( index ); + + index ++; + + } + + vertices.push( verticesRow ); + + } + + var indices = []; + + for ( var y = 0; y < heightSegments; y ++ ) { + + for ( var x = 0; x < widthSegments; x ++ ) { + + var v1 = vertices[ y ][ x + 1 ]; + var v2 = vertices[ y ][ x ]; + var v3 = vertices[ y + 1 ][ x ]; + var v4 = vertices[ y + 1 ][ x + 1 ]; + + if ( y !== 0 || thetaStart > 0 ) indices.push( v1, v2, v4 ); + if ( y !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( v2, v3, v4 ); + + } + + } + + this.setIndex( new ( positions.count > 65535 ? Uint32Attribute : Uint16Attribute )( indices, 1 ) ); + this.addAttribute( 'position', positions ); + this.addAttribute( 'normal', normals ); + this.addAttribute( 'uv', uvs ); + + this.boundingSphere = new Sphere( new Vector3(), radius ); + + } + + SphereBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + SphereBufferGeometry.prototype.constructor = SphereBufferGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function SphereGeometry( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength ) { + + Geometry.call( this ); + + this.type = 'SphereGeometry'; + + this.parameters = { + radius: radius, + widthSegments: widthSegments, + heightSegments: heightSegments, + phiStart: phiStart, + phiLength: phiLength, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + this.fromBufferGeometry( new SphereBufferGeometry( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength ) ); + + } + + SphereGeometry.prototype = Object.create( Geometry.prototype ); + SphereGeometry.prototype.constructor = SphereGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function RingBufferGeometry( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength ) { + + BufferGeometry.call( this ); + + this.type = 'RingBufferGeometry'; + + this.parameters = { + innerRadius: innerRadius, + outerRadius: outerRadius, + thetaSegments: thetaSegments, + phiSegments: phiSegments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + innerRadius = innerRadius || 20; + outerRadius = outerRadius || 50; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; + + thetaSegments = thetaSegments !== undefined ? Math.max( 3, thetaSegments ) : 8; + phiSegments = phiSegments !== undefined ? Math.max( 1, phiSegments ) : 1; + + // these are used to calculate buffer length + var vertexCount = ( thetaSegments + 1 ) * ( phiSegments + 1 ); + var indexCount = thetaSegments * phiSegments * 2 * 3; + + // buffers + var indices = new BufferAttribute( new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ) , 1 ); + var vertices = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var normals = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var uvs = new BufferAttribute( new Float32Array( vertexCount * 2 ), 2 ); + + // some helper variables + var index = 0, indexOffset = 0, segment; + var radius = innerRadius; + var radiusStep = ( ( outerRadius - innerRadius ) / phiSegments ); + var vertex = new Vector3(); + var uv = new Vector2(); + var j, i; + + // generate vertices, normals and uvs + + // values are generate from the inside of the ring to the outside + + for ( j = 0; j <= phiSegments; j ++ ) { + + for ( i = 0; i <= thetaSegments; i ++ ) { + + segment = thetaStart + i / thetaSegments * thetaLength; + + // vertex + vertex.x = radius * Math.cos( segment ); + vertex.y = radius * Math.sin( segment ); + vertices.setXYZ( index, vertex.x, vertex.y, vertex.z ); + + // normal + normals.setXYZ( index, 0, 0, 1 ); + + // uv + uv.x = ( vertex.x / outerRadius + 1 ) / 2; + uv.y = ( vertex.y / outerRadius + 1 ) / 2; + uvs.setXY( index, uv.x, uv.y ); + + // increase index + index++; + + } + + // increase the radius for next row of vertices + radius += radiusStep; + + } + + // generate indices + + for ( j = 0; j < phiSegments; j ++ ) { + + var thetaSegmentLevel = j * ( thetaSegments + 1 ); + + for ( i = 0; i < thetaSegments; i ++ ) { + + segment = i + thetaSegmentLevel; + + // indices + var a = segment; + var b = segment + thetaSegments + 1; + var c = segment + thetaSegments + 2; + var d = segment + 1; + + // face one + indices.setX( indexOffset, a ); indexOffset++; + indices.setX( indexOffset, b ); indexOffset++; + indices.setX( indexOffset, c ); indexOffset++; + + // face two + indices.setX( indexOffset, a ); indexOffset++; + indices.setX( indexOffset, c ); indexOffset++; + indices.setX( indexOffset, d ); indexOffset++; + + } + + } + + // build geometry + + this.setIndex( indices ); + this.addAttribute( 'position', vertices ); + this.addAttribute( 'normal', normals ); + this.addAttribute( 'uv', uvs ); + + } + + RingBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + RingBufferGeometry.prototype.constructor = RingBufferGeometry; + + /** + * @author Kaleb Murphy + */ + + function RingGeometry( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength ) { + + Geometry.call( this ); + + this.type = 'RingGeometry'; + + this.parameters = { + innerRadius: innerRadius, + outerRadius: outerRadius, + thetaSegments: thetaSegments, + phiSegments: phiSegments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + this.fromBufferGeometry( new RingBufferGeometry( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength ) ); + + } + + RingGeometry.prototype = Object.create( Geometry.prototype ); + RingGeometry.prototype.constructor = RingGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as + */ + + function PlaneGeometry( width, height, widthSegments, heightSegments ) { + + Geometry.call( this ); + + this.type = 'PlaneGeometry'; + + this.parameters = { + width: width, + height: height, + widthSegments: widthSegments, + heightSegments: heightSegments + }; + + this.fromBufferGeometry( new PlaneBufferGeometry( width, height, widthSegments, heightSegments ) ); + + } + + PlaneGeometry.prototype = Object.create( Geometry.prototype ); + PlaneGeometry.prototype.constructor = PlaneGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + // points - to create a closed torus, one must use a set of points + // like so: [ a, b, c, d, a ], see first is the same as last. + // segments - the number of circumference segments to create + // phiStart - the starting radian + // phiLength - the radian (0 to 2PI) range of the lathed section + // 2PI is a closed lathe, less than 2PI is a portion. + + function LatheBufferGeometry( points, segments, phiStart, phiLength ) { + + BufferGeometry.call( this ); + + this.type = 'LatheBufferGeometry'; + + this.parameters = { + points: points, + segments: segments, + phiStart: phiStart, + phiLength: phiLength + }; + + segments = Math.floor( segments ) || 12; + phiStart = phiStart || 0; + phiLength = phiLength || Math.PI * 2; + + // clamp phiLength so it's in range of [ 0, 2PI ] + phiLength = _Math.clamp( phiLength, 0, Math.PI * 2 ); + + // these are used to calculate buffer length + var vertexCount = ( segments + 1 ) * points.length; + var indexCount = segments * points.length * 2 * 3; + + // buffers + var indices = new BufferAttribute( new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ) , 1 ); + var vertices = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var uvs = new BufferAttribute( new Float32Array( vertexCount * 2 ), 2 ); + + // helper variables + var index = 0, indexOffset = 0, base; + var inverseSegments = 1.0 / segments; + var vertex = new Vector3(); + var uv = new Vector2(); + var i, j; + + // generate vertices and uvs + + for ( i = 0; i <= segments; i ++ ) { + + var phi = phiStart + i * inverseSegments * phiLength; + + var sin = Math.sin( phi ); + var cos = Math.cos( phi ); + + for ( j = 0; j <= ( points.length - 1 ); j ++ ) { + + // vertex + vertex.x = points[ j ].x * sin; + vertex.y = points[ j ].y; + vertex.z = points[ j ].x * cos; + vertices.setXYZ( index, vertex.x, vertex.y, vertex.z ); + + // uv + uv.x = i / segments; + uv.y = j / ( points.length - 1 ); + uvs.setXY( index, uv.x, uv.y ); + + // increase index + index ++; + + } + + } + + // generate indices + + for ( i = 0; i < segments; i ++ ) { + + for ( j = 0; j < ( points.length - 1 ); j ++ ) { + + base = j + i * points.length; + + // indices + var a = base; + var b = base + points.length; + var c = base + points.length + 1; + var d = base + 1; + + // face one + indices.setX( indexOffset, a ); indexOffset++; + indices.setX( indexOffset, b ); indexOffset++; + indices.setX( indexOffset, d ); indexOffset++; + + // face two + indices.setX( indexOffset, b ); indexOffset++; + indices.setX( indexOffset, c ); indexOffset++; + indices.setX( indexOffset, d ); indexOffset++; + + } + + } + + // build geometry + + this.setIndex( indices ); + this.addAttribute( 'position', vertices ); + this.addAttribute( 'uv', uvs ); + + // generate normals + + this.computeVertexNormals(); + + // if the geometry is closed, we need to average the normals along the seam. + // because the corresponding vertices are identical (but still have different UVs). + + if( phiLength === Math.PI * 2 ) { + + var normals = this.attributes.normal.array; + var n1 = new Vector3(); + var n2 = new Vector3(); + var n = new Vector3(); + + // this is the buffer offset for the last line of vertices + base = segments * points.length * 3; + + for( i = 0, j = 0; i < points.length; i ++, j += 3 ) { + + // select the normal of the vertex in the first line + n1.x = normals[ j + 0 ]; + n1.y = normals[ j + 1 ]; + n1.z = normals[ j + 2 ]; + + // select the normal of the vertex in the last line + n2.x = normals[ base + j + 0 ]; + n2.y = normals[ base + j + 1 ]; + n2.z = normals[ base + j + 2 ]; + + // average normals + n.addVectors( n1, n2 ).normalize(); + + // assign the new values to both normals + normals[ j + 0 ] = normals[ base + j + 0 ] = n.x; + normals[ j + 1 ] = normals[ base + j + 1 ] = n.y; + normals[ j + 2 ] = normals[ base + j + 2 ] = n.z; + + } // next row + + } + + } + + LatheBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + LatheBufferGeometry.prototype.constructor = LatheBufferGeometry; + + /** + * @author astrodud / http://astrodud.isgreat.org/ + * @author zz85 / https://github.com/zz85 + * @author bhouston / http://clara.io + */ + + // points - to create a closed torus, one must use a set of points + // like so: [ a, b, c, d, a ], see first is the same as last. + // segments - the number of circumference segments to create + // phiStart - the starting radian + // phiLength - the radian (0 to 2PI) range of the lathed section + // 2PI is a closed lathe, less than 2PI is a portion. + + function LatheGeometry( points, segments, phiStart, phiLength ) { + + Geometry.call( this ); + + this.type = 'LatheGeometry'; + + this.parameters = { + points: points, + segments: segments, + phiStart: phiStart, + phiLength: phiLength + }; + + this.fromBufferGeometry( new LatheBufferGeometry( points, segments, phiStart, phiLength ) ); + this.mergeVertices(); + + } + + LatheGeometry.prototype = Object.create( Geometry.prototype ); + LatheGeometry.prototype.constructor = LatheGeometry; + + /** + * @author jonobr1 / http://jonobr1.com + * + * Creates a one-sided polygonal geometry from a path shape. Similar to + * ExtrudeGeometry. + * + * parameters = { + * + * curveSegments: , // number of points on the curves. NOT USED AT THE MOMENT. + * + * material: // material index for front and back faces + * uvGenerator: // object that provides UV generator functions + * + * } + **/ + + function ShapeGeometry( shapes, options ) { + + Geometry.call( this ); + + this.type = 'ShapeGeometry'; + + if ( Array.isArray( shapes ) === false ) shapes = [ shapes ]; + + this.addShapeList( shapes, options ); + + this.computeFaceNormals(); + + } + + ShapeGeometry.prototype = Object.create( Geometry.prototype ); + ShapeGeometry.prototype.constructor = ShapeGeometry; + + /** + * Add an array of shapes to THREE.ShapeGeometry. + */ + ShapeGeometry.prototype.addShapeList = function ( shapes, options ) { + + for ( var i = 0, l = shapes.length; i < l; i ++ ) { + + this.addShape( shapes[ i ], options ); + + } + + return this; + + }; + + /** + * Adds a shape to THREE.ShapeGeometry, based on THREE.ExtrudeGeometry. + */ + ShapeGeometry.prototype.addShape = function ( shape, options ) { + + if ( options === undefined ) options = {}; + var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12; + + var material = options.material; + var uvgen = options.UVGenerator === undefined ? ExtrudeGeometry.WorldUVGenerator : options.UVGenerator; + + // + + var i, l, hole; + + var shapesOffset = this.vertices.length; + var shapePoints = shape.extractPoints( curveSegments ); + + var vertices = shapePoints.shape; + var holes = shapePoints.holes; + + var reverse = ! ShapeUtils.isClockWise( vertices ); + + if ( reverse ) { + + vertices = vertices.reverse(); + + // Maybe we should also check if holes are in the opposite direction, just to be safe... + + for ( i = 0, l = holes.length; i < l; i ++ ) { + + hole = holes[ i ]; + + if ( ShapeUtils.isClockWise( hole ) ) { + + holes[ i ] = hole.reverse(); + + } + + } + + reverse = false; + + } + + var faces = ShapeUtils.triangulateShape( vertices, holes ); + + // Vertices + + for ( i = 0, l = holes.length; i < l; i ++ ) { + + hole = holes[ i ]; + vertices = vertices.concat( hole ); + + } + + // + + var vert, vlen = vertices.length; + var face, flen = faces.length; + + for ( i = 0; i < vlen; i ++ ) { + + vert = vertices[ i ]; + + this.vertices.push( new Vector3( vert.x, vert.y, 0 ) ); + + } + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + + var a = face[ 0 ] + shapesOffset; + var b = face[ 1 ] + shapesOffset; + var c = face[ 2 ] + shapesOffset; + + this.faces.push( new Face3( a, b, c, null, null, material ) ); + this.faceVertexUvs[ 0 ].push( uvgen.generateTopUV( this, a, b, c ) ); + + } + + }; + + /** + * @author WestLangley / http://github.com/WestLangley + */ + + function EdgesGeometry( geometry, thresholdAngle ) { + + BufferGeometry.call( this ); + + thresholdAngle = ( thresholdAngle !== undefined ) ? thresholdAngle : 1; + + var thresholdDot = Math.cos( _Math.DEG2RAD * thresholdAngle ); + + var edge = [ 0, 0 ], hash = {}; + + function sortFunction( a, b ) { + + return a - b; + + } + + var keys = [ 'a', 'b', 'c' ]; + + var geometry2; + + if ( (geometry && geometry.isBufferGeometry) ) { + + geometry2 = new Geometry(); + geometry2.fromBufferGeometry( geometry ); + + } else { + + geometry2 = geometry.clone(); + + } + + geometry2.mergeVertices(); + geometry2.computeFaceNormals(); + + var vertices = geometry2.vertices; + var faces = geometry2.faces; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = face[ keys[ j ] ]; + edge[ 1 ] = face[ keys[ ( j + 1 ) % 3 ] ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + hash[ key ] = { vert1: edge[ 0 ], vert2: edge[ 1 ], face1: i, face2: undefined }; + + } else { + + hash[ key ].face2 = i; + + } + + } + + } + + var coords = []; + + for ( var key in hash ) { + + var h = hash[ key ]; + + if ( h.face2 === undefined || faces[ h.face1 ].normal.dot( faces[ h.face2 ].normal ) <= thresholdDot ) { + + var vertex = vertices[ h.vert1 ]; + coords.push( vertex.x ); + coords.push( vertex.y ); + coords.push( vertex.z ); + + vertex = vertices[ h.vert2 ]; + coords.push( vertex.x ); + coords.push( vertex.y ); + coords.push( vertex.z ); + + } + + } + + this.addAttribute( 'position', new BufferAttribute( new Float32Array( coords ), 3 ) ); + + } + + EdgesGeometry.prototype = Object.create( BufferGeometry.prototype ); + EdgesGeometry.prototype.constructor = EdgesGeometry; + + /** + * @author Mugen87 / https://github.com/Mugen87 + */ + + function CylinderBufferGeometry( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) { + + BufferGeometry.call( this ); + + this.type = 'CylinderBufferGeometry'; + + this.parameters = { + radiusTop: radiusTop, + radiusBottom: radiusBottom, + height: height, + radialSegments: radialSegments, + heightSegments: heightSegments, + openEnded: openEnded, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + var scope = this; + + radiusTop = radiusTop !== undefined ? radiusTop : 20; + radiusBottom = radiusBottom !== undefined ? radiusBottom : 20; + height = height !== undefined ? height : 100; + + radialSegments = Math.floor( radialSegments ) || 8; + heightSegments = Math.floor( heightSegments ) || 1; + + openEnded = openEnded !== undefined ? openEnded : false; + thetaStart = thetaStart !== undefined ? thetaStart : 0.0; + thetaLength = thetaLength !== undefined ? thetaLength : 2.0 * Math.PI; + + // used to calculate buffer length + + var nbCap = 0; + + if ( openEnded === false ) { + + if ( radiusTop > 0 ) nbCap ++; + if ( radiusBottom > 0 ) nbCap ++; + + } + + var vertexCount = calculateVertexCount(); + var indexCount = calculateIndexCount(); + + // buffers + + var indices = new BufferAttribute( new ( indexCount > 65535 ? Uint32Array : Uint16Array )( indexCount ), 1 ); + var vertices = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var normals = new BufferAttribute( new Float32Array( vertexCount * 3 ), 3 ); + var uvs = new BufferAttribute( new Float32Array( vertexCount * 2 ), 2 ); + + // helper variables + + var index = 0, + indexOffset = 0, + indexArray = [], + halfHeight = height / 2; + + // group variables + var groupStart = 0; + + // generate geometry + + generateTorso(); + + if ( openEnded === false ) { + + if ( radiusTop > 0 ) generateCap( true ); + if ( radiusBottom > 0 ) generateCap( false ); + + } + + // build geometry + + this.setIndex( indices ); + this.addAttribute( 'position', vertices ); + this.addAttribute( 'normal', normals ); + this.addAttribute( 'uv', uvs ); + + // helper functions + + function calculateVertexCount() { + + var count = ( radialSegments + 1 ) * ( heightSegments + 1 ); + + if ( openEnded === false ) { + + count += ( ( radialSegments + 1 ) * nbCap ) + ( radialSegments * nbCap ); + + } + + return count; + + } + + function calculateIndexCount() { + + var count = radialSegments * heightSegments * 2 * 3; + + if ( openEnded === false ) { + + count += radialSegments * nbCap * 3; + + } + + return count; + + } + + function generateTorso() { + + var x, y; + var normal = new Vector3(); + var vertex = new Vector3(); + + var groupCount = 0; + + // this will be used to calculate the normal + var slope = ( radiusBottom - radiusTop ) / height; + + // generate vertices, normals and uvs + + for ( y = 0; y <= heightSegments; y ++ ) { + + var indexRow = []; + + var v = y / heightSegments; + + // calculate the radius of the current row + var radius = v * ( radiusBottom - radiusTop ) + radiusTop; + + for ( x = 0; x <= radialSegments; x ++ ) { + + var u = x / radialSegments; + + var theta = u * thetaLength + thetaStart; + + var sinTheta = Math.sin( theta ); + var cosTheta = Math.cos( theta ); + + // vertex + vertex.x = radius * sinTheta; + vertex.y = - v * height + halfHeight; + vertex.z = radius * cosTheta; + vertices.setXYZ( index, vertex.x, vertex.y, vertex.z ); + + // normal + normal.set( sinTheta, slope, cosTheta ).normalize(); + normals.setXYZ( index, normal.x, normal.y, normal.z ); + + // uv + uvs.setXY( index, u, 1 - v ); + + // save index of vertex in respective row + indexRow.push( index ); + + // increase index + index ++; + + } + + // now save vertices of the row in our index array + indexArray.push( indexRow ); + + } + + // generate indices + + for ( x = 0; x < radialSegments; x ++ ) { + + for ( y = 0; y < heightSegments; y ++ ) { + + // we use the index array to access the correct indices + var i1 = indexArray[ y ][ x ]; + var i2 = indexArray[ y + 1 ][ x ]; + var i3 = indexArray[ y + 1 ][ x + 1 ]; + var i4 = indexArray[ y ][ x + 1 ]; + + // face one + indices.setX( indexOffset, i1 ); indexOffset ++; + indices.setX( indexOffset, i2 ); indexOffset ++; + indices.setX( indexOffset, i4 ); indexOffset ++; + + // face two + indices.setX( indexOffset, i2 ); indexOffset ++; + indices.setX( indexOffset, i3 ); indexOffset ++; + indices.setX( indexOffset, i4 ); indexOffset ++; + + // update counters + groupCount += 6; + + } + + } + + // add a group to the geometry. this will ensure multi material support + scope.addGroup( groupStart, groupCount, 0 ); + + // calculate new start value for groups + groupStart += groupCount; + + } + + function generateCap( top ) { + + var x, centerIndexStart, centerIndexEnd; + + var uv = new Vector2(); + var vertex = new Vector3(); + + var groupCount = 0; + + var radius = ( top === true ) ? radiusTop : radiusBottom; + var sign = ( top === true ) ? 1 : - 1; + + // save the index of the first center vertex + centerIndexStart = index; + + // first we generate the center vertex data of the cap. + // because the geometry needs one set of uvs per face, + // we must generate a center vertex per face/segment + + for ( x = 1; x <= radialSegments; x ++ ) { + + // vertex + vertices.setXYZ( index, 0, halfHeight * sign, 0 ); + + // normal + normals.setXYZ( index, 0, sign, 0 ); + + // uv + uv.x = 0.5; + uv.y = 0.5; + + uvs.setXY( index, uv.x, uv.y ); + + // increase index + index ++; + + } + + // save the index of the last center vertex + centerIndexEnd = index; + + // now we generate the surrounding vertices, normals and uvs + + for ( x = 0; x <= radialSegments; x ++ ) { + + var u = x / radialSegments; + var theta = u * thetaLength + thetaStart; + + var cosTheta = Math.cos( theta ); + var sinTheta = Math.sin( theta ); + + // vertex + vertex.x = radius * sinTheta; + vertex.y = halfHeight * sign; + vertex.z = radius * cosTheta; + vertices.setXYZ( index, vertex.x, vertex.y, vertex.z ); + + // normal + normals.setXYZ( index, 0, sign, 0 ); + + // uv + uv.x = ( cosTheta * 0.5 ) + 0.5; + uv.y = ( sinTheta * 0.5 * sign ) + 0.5; + uvs.setXY( index, uv.x, uv.y ); + + // increase index + index ++; + + } + + // generate indices + + for ( x = 0; x < radialSegments; x ++ ) { + + var c = centerIndexStart + x; + var i = centerIndexEnd + x; + + if ( top === true ) { + + // face top + indices.setX( indexOffset, i ); indexOffset ++; + indices.setX( indexOffset, i + 1 ); indexOffset ++; + indices.setX( indexOffset, c ); indexOffset ++; + + } else { + + // face bottom + indices.setX( indexOffset, i + 1 ); indexOffset ++; + indices.setX( indexOffset, i ); indexOffset ++; + indices.setX( indexOffset, c ); indexOffset ++; + + } + + // update counters + groupCount += 3; + + } + + // add a group to the geometry. this will ensure multi material support + scope.addGroup( groupStart, groupCount, top === true ? 1 : 2 ); + + // calculate new start value for groups + groupStart += groupCount; + + } + + } + + CylinderBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + CylinderBufferGeometry.prototype.constructor = CylinderBufferGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function CylinderGeometry( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) { + + Geometry.call( this ); + + this.type = 'CylinderGeometry'; + + this.parameters = { + radiusTop: radiusTop, + radiusBottom: radiusBottom, + height: height, + radialSegments: radialSegments, + heightSegments: heightSegments, + openEnded: openEnded, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + this.fromBufferGeometry( new CylinderBufferGeometry( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) ); + this.mergeVertices(); + + } + + CylinderGeometry.prototype = Object.create( Geometry.prototype ); + CylinderGeometry.prototype.constructor = CylinderGeometry; + + /** + * @author abelnation / http://github.com/abelnation + */ + + function ConeGeometry( radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) { + + CylinderGeometry.call( this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ); + + this.type = 'ConeGeometry'; + + this.parameters = { + radius: radius, + height: height, + radialSegments: radialSegments, + heightSegments: heightSegments, + openEnded: openEnded, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + } + + ConeGeometry.prototype = Object.create( CylinderGeometry.prototype ); + ConeGeometry.prototype.constructor = ConeGeometry; + + /** + * @author: abelnation / http://github.com/abelnation + */ + + function ConeBufferGeometry( radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) { + + CylinderBufferGeometry.call( this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ); + + this.type = 'ConeBufferGeometry'; + + this.parameters = { + radius: radius, + height: height, + radialSegments: radialSegments, + heightSegments: heightSegments, + openEnded: openEnded, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + } + + ConeBufferGeometry.prototype = Object.create( CylinderBufferGeometry.prototype ); + ConeBufferGeometry.prototype.constructor = ConeBufferGeometry; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function CircleBufferGeometry( radius, segments, thetaStart, thetaLength ) { + + BufferGeometry.call( this ); + + this.type = 'CircleBufferGeometry'; + + this.parameters = { + radius: radius, + segments: segments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + radius = radius || 50; + segments = segments !== undefined ? Math.max( 3, segments ) : 8; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; + + var vertices = segments + 2; + + var positions = new Float32Array( vertices * 3 ); + var normals = new Float32Array( vertices * 3 ); + var uvs = new Float32Array( vertices * 2 ); + + // center data is already zero, but need to set a few extras + normals[ 2 ] = 1.0; + uvs[ 0 ] = 0.5; + uvs[ 1 ] = 0.5; + + for ( var s = 0, i = 3, ii = 2 ; s <= segments; s ++, i += 3, ii += 2 ) { + + var segment = thetaStart + s / segments * thetaLength; + + positions[ i ] = radius * Math.cos( segment ); + positions[ i + 1 ] = radius * Math.sin( segment ); + + normals[ i + 2 ] = 1; // normal z + + uvs[ ii ] = ( positions[ i ] / radius + 1 ) / 2; + uvs[ ii + 1 ] = ( positions[ i + 1 ] / radius + 1 ) / 2; + + } + + var indices = []; + + for ( var i = 1; i <= segments; i ++ ) { + + indices.push( i, i + 1, 0 ); + + } + + this.setIndex( new BufferAttribute( new Uint16Array( indices ), 1 ) ); + this.addAttribute( 'position', new BufferAttribute( positions, 3 ) ); + this.addAttribute( 'normal', new BufferAttribute( normals, 3 ) ); + this.addAttribute( 'uv', new BufferAttribute( uvs, 2 ) ); + + this.boundingSphere = new Sphere( new Vector3(), radius ); + + } + + CircleBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + CircleBufferGeometry.prototype.constructor = CircleBufferGeometry; + + /** + * @author hughes + */ + + function CircleGeometry( radius, segments, thetaStart, thetaLength ) { + + Geometry.call( this ); + + this.type = 'CircleGeometry'; + + this.parameters = { + radius: radius, + segments: segments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + this.fromBufferGeometry( new CircleBufferGeometry( radius, segments, thetaStart, thetaLength ) ); + + } + + CircleGeometry.prototype = Object.create( Geometry.prototype ); + CircleGeometry.prototype.constructor = CircleGeometry; + + /** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Cube.as + */ + + function BoxGeometry( width, height, depth, widthSegments, heightSegments, depthSegments ) { + + Geometry.call( this ); + + this.type = 'BoxGeometry'; + + this.parameters = { + width: width, + height: height, + depth: depth, + widthSegments: widthSegments, + heightSegments: heightSegments, + depthSegments: depthSegments + }; + + this.fromBufferGeometry( new BoxBufferGeometry( width, height, depth, widthSegments, heightSegments, depthSegments ) ); + this.mergeVertices(); + + } + + BoxGeometry.prototype = Object.create( Geometry.prototype ); + BoxGeometry.prototype.constructor = BoxGeometry; + + + + var Geometries = Object.freeze({ + WireframeGeometry: WireframeGeometry, + ParametricGeometry: ParametricGeometry, + ParametricBufferGeometry: ParametricBufferGeometry, + TetrahedronGeometry: TetrahedronGeometry, + TetrahedronBufferGeometry: TetrahedronBufferGeometry, + OctahedronGeometry: OctahedronGeometry, + OctahedronBufferGeometry: OctahedronBufferGeometry, + IcosahedronGeometry: IcosahedronGeometry, + IcosahedronBufferGeometry: IcosahedronBufferGeometry, + DodecahedronGeometry: DodecahedronGeometry, + DodecahedronBufferGeometry: DodecahedronBufferGeometry, + PolyhedronGeometry: PolyhedronGeometry, + PolyhedronBufferGeometry: PolyhedronBufferGeometry, + TubeGeometry: TubeGeometry, + TubeBufferGeometry: TubeBufferGeometry, + TorusKnotGeometry: TorusKnotGeometry, + TorusKnotBufferGeometry: TorusKnotBufferGeometry, + TorusGeometry: TorusGeometry, + TorusBufferGeometry: TorusBufferGeometry, + TextGeometry: TextGeometry, + SphereBufferGeometry: SphereBufferGeometry, + SphereGeometry: SphereGeometry, + RingGeometry: RingGeometry, + RingBufferGeometry: RingBufferGeometry, + PlaneBufferGeometry: PlaneBufferGeometry, + PlaneGeometry: PlaneGeometry, + LatheGeometry: LatheGeometry, + LatheBufferGeometry: LatheBufferGeometry, + ShapeGeometry: ShapeGeometry, + ExtrudeGeometry: ExtrudeGeometry, + EdgesGeometry: EdgesGeometry, + ConeGeometry: ConeGeometry, + ConeBufferGeometry: ConeBufferGeometry, + CylinderGeometry: CylinderGeometry, + CylinderBufferGeometry: CylinderBufferGeometry, + CircleBufferGeometry: CircleBufferGeometry, + CircleGeometry: CircleGeometry, + BoxBufferGeometry: BoxBufferGeometry, + BoxGeometry: BoxGeometry + }); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function ShadowMaterial() { + + ShaderMaterial.call( this, { + uniforms: UniformsUtils.merge( [ + UniformsLib[ "lights" ], + { + opacity: { value: 1.0 } + } + ] ), + vertexShader: ShaderChunk[ 'shadow_vert' ], + fragmentShader: ShaderChunk[ 'shadow_frag' ] + } ); + + this.lights = true; + this.transparent = true; + + Object.defineProperties( this, { + opacity: { + enumerable: true, + get: function () { + return this.uniforms.opacity.value; + }, + set: function ( value ) { + this.uniforms.opacity.value = value; + } + } + } ); + + } + + ShadowMaterial.prototype = Object.create( ShaderMaterial.prototype ); + ShadowMaterial.prototype.constructor = ShadowMaterial; + + ShadowMaterial.prototype.isShadowMaterial = true; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function RawShaderMaterial( parameters ) { + + ShaderMaterial.call( this, parameters ); + + this.type = 'RawShaderMaterial'; + + } + + RawShaderMaterial.prototype = Object.create( ShaderMaterial.prototype ); + RawShaderMaterial.prototype.constructor = RawShaderMaterial; + + RawShaderMaterial.prototype.isRawShaderMaterial = true; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function MultiMaterial( materials ) { + + this.uuid = _Math.generateUUID(); + + this.type = 'MultiMaterial'; + + this.materials = materials instanceof Array ? materials : []; + + this.visible = true; + + } + + MultiMaterial.prototype = { + + constructor: MultiMaterial, + + isMultiMaterial: true, + + toJSON: function ( meta ) { + + var output = { + metadata: { + version: 4.2, + type: 'material', + generator: 'MaterialExporter' + }, + uuid: this.uuid, + type: this.type, + materials: [] + }; + + var materials = this.materials; + + for ( var i = 0, l = materials.length; i < l; i ++ ) { + + var material = materials[ i ].toJSON( meta ); + delete material.metadata; + + output.materials.push( material ); + + } + + output.visible = this.visible; + + return output; + + }, + + clone: function () { + + var material = new this.constructor(); + + for ( var i = 0; i < this.materials.length; i ++ ) { + + material.materials.push( this.materials[ i ].clone() ); + + } + + material.visible = this.visible; + + return material; + + } + + }; + + /** + * @author WestLangley / http://github.com/WestLangley + * + * parameters = { + * color: , + * roughness: , + * metalness: , + * opacity: , + * + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * lightMapIntensity: + * + * aoMap: new THREE.Texture( ), + * aoMapIntensity: + * + * emissive: , + * emissiveIntensity: + * emissiveMap: new THREE.Texture( ), + * + * bumpMap: new THREE.Texture( ), + * bumpScale: , + * + * normalMap: new THREE.Texture( ), + * normalScale: , + * + * displacementMap: new THREE.Texture( ), + * displacementScale: , + * displacementBias: , + * + * roughnessMap: new THREE.Texture( ), + * + * metalnessMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ), + * envMapIntensity: + * + * refractionRatio: , + * + * wireframe: , + * wireframeLinewidth: , + * + * skinning: , + * morphTargets: , + * morphNormals: + * } + */ + + function MeshStandardMaterial( parameters ) { + + Material.call( this ); + + this.defines = { 'STANDARD': '' }; + + this.type = 'MeshStandardMaterial'; + + this.color = new Color( 0xffffff ); // diffuse + this.roughness = 0.5; + this.metalness = 0.5; + + this.map = null; + + this.lightMap = null; + this.lightMapIntensity = 1.0; + + this.aoMap = null; + this.aoMapIntensity = 1.0; + + this.emissive = new Color( 0x000000 ); + this.emissiveIntensity = 1.0; + this.emissiveMap = null; + + this.bumpMap = null; + this.bumpScale = 1; + + this.normalMap = null; + this.normalScale = new Vector2( 1, 1 ); + + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + + this.roughnessMap = null; + + this.metalnessMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.envMapIntensity = 1.0; + + this.refractionRatio = 0.98; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.skinning = false; + this.morphTargets = false; + this.morphNormals = false; + + this.setValues( parameters ); + + } + + MeshStandardMaterial.prototype = Object.create( Material.prototype ); + MeshStandardMaterial.prototype.constructor = MeshStandardMaterial; + + MeshStandardMaterial.prototype.isMeshStandardMaterial = true; + + MeshStandardMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.defines = { 'STANDARD': '' }; + + this.color.copy( source.color ); + this.roughness = source.roughness; + this.metalness = source.metalness; + + this.map = source.map; + + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + + this.emissive.copy( source.emissive ); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + + this.normalMap = source.normalMap; + this.normalScale.copy( source.normalScale ); + + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + + this.roughnessMap = source.roughnessMap; + + this.metalnessMap = source.metalnessMap; + + this.alphaMap = source.alphaMap; + + this.envMap = source.envMap; + this.envMapIntensity = source.envMapIntensity; + + this.refractionRatio = source.refractionRatio; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + + this.skinning = source.skinning; + this.morphTargets = source.morphTargets; + this.morphNormals = source.morphNormals; + + return this; + + }; + + /** + * @author WestLangley / http://github.com/WestLangley + * + * parameters = { + * reflectivity: + * } + */ + + function MeshPhysicalMaterial( parameters ) { + + MeshStandardMaterial.call( this ); + + this.defines = { 'PHYSICAL': '' }; + + this.type = 'MeshPhysicalMaterial'; + + this.reflectivity = 0.5; // maps to F0 = 0.04 + + this.clearCoat = 0.0; + this.clearCoatRoughness = 0.0; + + this.setValues( parameters ); + + } + + MeshPhysicalMaterial.prototype = Object.create( MeshStandardMaterial.prototype ); + MeshPhysicalMaterial.prototype.constructor = MeshPhysicalMaterial; + + MeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true; + + MeshPhysicalMaterial.prototype.copy = function ( source ) { + + MeshStandardMaterial.prototype.copy.call( this, source ); + + this.defines = { 'PHYSICAL': '' }; + + this.reflectivity = source.reflectivity; + + this.clearCoat = source.clearCoat; + this.clearCoatRoughness = source.clearCoatRoughness; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * specular: , + * shininess: , + * opacity: , + * + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * lightMapIntensity: + * + * aoMap: new THREE.Texture( ), + * aoMapIntensity: + * + * emissive: , + * emissiveIntensity: + * emissiveMap: new THREE.Texture( ), + * + * bumpMap: new THREE.Texture( ), + * bumpScale: , + * + * normalMap: new THREE.Texture( ), + * normalScale: , + * + * displacementMap: new THREE.Texture( ), + * displacementScale: , + * displacementBias: , + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * wireframe: , + * wireframeLinewidth: , + * + * skinning: , + * morphTargets: , + * morphNormals: + * } + */ + + function MeshPhongMaterial( parameters ) { + + Material.call( this ); + + this.type = 'MeshPhongMaterial'; + + this.color = new Color( 0xffffff ); // diffuse + this.specular = new Color( 0x111111 ); + this.shininess = 30; + + this.map = null; + + this.lightMap = null; + this.lightMapIntensity = 1.0; + + this.aoMap = null; + this.aoMapIntensity = 1.0; + + this.emissive = new Color( 0x000000 ); + this.emissiveIntensity = 1.0; + this.emissiveMap = null; + + this.bumpMap = null; + this.bumpScale = 1; + + this.normalMap = null; + this.normalScale = new Vector2( 1, 1 ); + + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.skinning = false; + this.morphTargets = false; + this.morphNormals = false; + + this.setValues( parameters ); + + } + + MeshPhongMaterial.prototype = Object.create( Material.prototype ); + MeshPhongMaterial.prototype.constructor = MeshPhongMaterial; + + MeshPhongMaterial.prototype.isMeshPhongMaterial = true; + + MeshPhongMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + this.specular.copy( source.specular ); + this.shininess = source.shininess; + + this.map = source.map; + + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + + this.emissive.copy( source.emissive ); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + + this.normalMap = source.normalMap; + this.normalScale.copy( source.normalScale ); + + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + + this.specularMap = source.specularMap; + + this.alphaMap = source.alphaMap; + + this.envMap = source.envMap; + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + + this.skinning = source.skinning; + this.morphTargets = source.morphTargets; + this.morphNormals = source.morphNormals; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * + * parameters = { + * opacity: , + * + * wireframe: , + * wireframeLinewidth: + * } + */ + + function MeshNormalMaterial( parameters ) { + + Material.call( this, parameters ); + + this.type = 'MeshNormalMaterial'; + + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.fog = false; + this.lights = false; + this.morphTargets = false; + + this.setValues( parameters ); + + } + + MeshNormalMaterial.prototype = Object.create( Material.prototype ); + MeshNormalMaterial.prototype.constructor = MeshNormalMaterial; + + MeshNormalMaterial.prototype.isMeshNormalMaterial = true; + + MeshNormalMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * lightMapIntensity: + * + * aoMap: new THREE.Texture( ), + * aoMapIntensity: + * + * emissive: , + * emissiveIntensity: + * emissiveMap: new THREE.Texture( ), + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * wireframe: , + * wireframeLinewidth: , + * + * skinning: , + * morphTargets: , + * morphNormals: + * } + */ + + function MeshLambertMaterial( parameters ) { + + Material.call( this ); + + this.type = 'MeshLambertMaterial'; + + this.color = new Color( 0xffffff ); // diffuse + + this.map = null; + + this.lightMap = null; + this.lightMapIntensity = 1.0; + + this.aoMap = null; + this.aoMapIntensity = 1.0; + + this.emissive = new Color( 0x000000 ); + this.emissiveIntensity = 1.0; + this.emissiveMap = null; + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.skinning = false; + this.morphTargets = false; + this.morphNormals = false; + + this.setValues( parameters ); + + } + + MeshLambertMaterial.prototype = Object.create( Material.prototype ); + MeshLambertMaterial.prototype.constructor = MeshLambertMaterial; + + MeshLambertMaterial.prototype.isMeshLambertMaterial = true; + + MeshLambertMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + + this.map = source.map; + + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + + this.emissive.copy( source.emissive ); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + + this.specularMap = source.specularMap; + + this.alphaMap = source.alphaMap; + + this.envMap = source.envMap; + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + + this.skinning = source.skinning; + this.morphTargets = source.morphTargets; + this.morphNormals = source.morphNormals; + + return this; + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * + * linewidth: , + * + * scale: , + * dashSize: , + * gapSize: + * } + */ + + function LineDashedMaterial( parameters ) { + + Material.call( this ); + + this.type = 'LineDashedMaterial'; + + this.color = new Color( 0xffffff ); + + this.linewidth = 1; + + this.scale = 1; + this.dashSize = 3; + this.gapSize = 1; + + this.lights = false; + + this.setValues( parameters ); + + } + + LineDashedMaterial.prototype = Object.create( Material.prototype ); + LineDashedMaterial.prototype.constructor = LineDashedMaterial; + + LineDashedMaterial.prototype.isLineDashedMaterial = true; + + LineDashedMaterial.prototype.copy = function ( source ) { + + Material.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + + this.linewidth = source.linewidth; + + this.scale = source.scale; + this.dashSize = source.dashSize; + this.gapSize = source.gapSize; + + return this; + + }; + + + + var Materials = Object.freeze({ + ShadowMaterial: ShadowMaterial, + SpriteMaterial: SpriteMaterial, + RawShaderMaterial: RawShaderMaterial, + ShaderMaterial: ShaderMaterial, + PointsMaterial: PointsMaterial, + MultiMaterial: MultiMaterial, + MeshPhysicalMaterial: MeshPhysicalMaterial, + MeshStandardMaterial: MeshStandardMaterial, + MeshPhongMaterial: MeshPhongMaterial, + MeshNormalMaterial: MeshNormalMaterial, + MeshLambertMaterial: MeshLambertMaterial, + MeshDepthMaterial: MeshDepthMaterial, + MeshBasicMaterial: MeshBasicMaterial, + LineDashedMaterial: LineDashedMaterial, + LineBasicMaterial: LineBasicMaterial, + Material: Material + }); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + var Cache = { + + enabled: false, + + files: {}, + + add: function ( key, file ) { + + if ( this.enabled === false ) return; + + // console.log( 'THREE.Cache', 'Adding key:', key ); + + this.files[ key ] = file; + + }, + + get: function ( key ) { + + if ( this.enabled === false ) return; + + // console.log( 'THREE.Cache', 'Checking key:', key ); + + return this.files[ key ]; + + }, + + remove: function ( key ) { + + delete this.files[ key ]; + + }, + + clear: function () { + + this.files = {}; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function LoadingManager( onLoad, onProgress, onError ) { + + var scope = this; + + var isLoading = false, itemsLoaded = 0, itemsTotal = 0; + + this.onStart = undefined; + this.onLoad = onLoad; + this.onProgress = onProgress; + this.onError = onError; + + this.itemStart = function ( url ) { + + itemsTotal ++; + + if ( isLoading === false ) { + + if ( scope.onStart !== undefined ) { + + scope.onStart( url, itemsLoaded, itemsTotal ); + + } + + } + + isLoading = true; + + }; + + this.itemEnd = function ( url ) { + + itemsLoaded ++; + + if ( scope.onProgress !== undefined ) { + + scope.onProgress( url, itemsLoaded, itemsTotal ); + + } + + if ( itemsLoaded === itemsTotal ) { + + isLoading = false; + + if ( scope.onLoad !== undefined ) { + + scope.onLoad(); + + } + + } + + }; + + this.itemError = function ( url ) { + + if ( scope.onError !== undefined ) { + + scope.onError( url ); + + } + + }; + + } + + var DefaultLoadingManager = new LoadingManager(); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function XHRLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( XHRLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + if ( url === undefined ) url = ''; + + if ( this.path !== undefined ) url = this.path + url; + + var scope = this; + + var cached = Cache.get( url ); + + if ( cached !== undefined ) { + + scope.manager.itemStart( url ); + + setTimeout( function () { + + if ( onLoad ) onLoad( cached ); + + scope.manager.itemEnd( url ); + + }, 0 ); + + return cached; + + } + + // Check for data: URI + var dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/; + var dataUriRegexResult = url.match( dataUriRegex ); + + // Safari can not handle Data URIs through XMLHttpRequest so process manually + if ( dataUriRegexResult ) { + + var mimeType = dataUriRegexResult[1]; + var isBase64 = !!dataUriRegexResult[2]; + var data = dataUriRegexResult[3]; + + data = window.decodeURIComponent(data); + + if( isBase64 ) { + data = window.atob(data); + } + + try { + + var response; + var responseType = ( this.responseType || '' ).toLowerCase(); + + switch ( responseType ) { + + case 'arraybuffer': + case 'blob': + + response = new ArrayBuffer( data.length ); + var view = new Uint8Array( response ); + for ( var i = 0; i < data.length; i ++ ) { + + view[ i ] = data.charCodeAt( i ); + + } + + if ( responseType === 'blob' ) { + + response = new Blob( [ response ], { "type" : mimeType } ); + + } + + break; + + case 'document': + + var parser = new DOMParser(); + response = parser.parseFromString( data, mimeType ); + + break; + + case 'json': + + response = JSON.parse( data ); + + break; + + default: // 'text' or other + + response = data; + + break; + + } + + // Wait for next browser tick + window.setTimeout( function() { + + if ( onLoad ) onLoad( response ); + + scope.manager.itemEnd( url ); + + }, 0); + + } catch ( error ) { + + // Wait for next browser tick + window.setTimeout( function() { + + if ( onError ) onError( error ); + + scope.manager.itemError( url ); + + }, 0); + + } + + } else { + + var request = new XMLHttpRequest(); + request.open( 'GET', url, true ); + + request.addEventListener( 'load', function ( event ) { + + var response = event.target.response; + + Cache.add( url, response ); + + if ( this.status === 200 ) { + + if ( onLoad ) onLoad( response ); + + scope.manager.itemEnd( url ); + + } else if ( this.status === 0 ) { + + // Some browsers return HTTP Status 0 when using non-http protocol + // e.g. 'file://' or 'data://'. Handle as success. + + console.warn( 'THREE.XHRLoader: HTTP Status 0 received.' ); + + if ( onLoad ) onLoad( response ); + + scope.manager.itemEnd( url ); + + } else { + + if ( onError ) onError( event ); + + scope.manager.itemError( url ); + + } + + }, false ); + + if ( onProgress !== undefined ) { + + request.addEventListener( 'progress', function ( event ) { + + onProgress( event ); + + }, false ); + + } + + request.addEventListener( 'error', function ( event ) { + + if ( onError ) onError( event ); + + scope.manager.itemError( url ); + + }, false ); + + if ( this.responseType !== undefined ) request.responseType = this.responseType; + if ( this.withCredentials !== undefined ) request.withCredentials = this.withCredentials; + + if ( request.overrideMimeType ) request.overrideMimeType( 'text/plain' ); + + request.send( null ); + + } + + scope.manager.itemStart( url ); + + return request; + + }, + + setPath: function ( value ) { + + this.path = value; + return this; + + }, + + setResponseType: function ( value ) { + + this.responseType = value; + return this; + + }, + + setWithCredentials: function ( value ) { + + this.withCredentials = value; + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * + * Abstract Base class to block based textures loader (dds, pvr, ...) + */ + + function CompressedTextureLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + // override in sub classes + this._parser = null; + + } + + Object.assign( CompressedTextureLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var images = []; + + var texture = new CompressedTexture(); + texture.image = images; + + var loader = new XHRLoader( this.manager ); + loader.setPath( this.path ); + loader.setResponseType( 'arraybuffer' ); + + function loadTexture( i ) { + + loader.load( url[ i ], function ( buffer ) { + + var texDatas = scope._parser( buffer, true ); + + images[ i ] = { + width: texDatas.width, + height: texDatas.height, + format: texDatas.format, + mipmaps: texDatas.mipmaps + }; + + loaded += 1; + + if ( loaded === 6 ) { + + if ( texDatas.mipmapCount === 1 ) + texture.minFilter = LinearFilter; + + texture.format = texDatas.format; + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } + + }, onProgress, onError ); + + } + + if ( Array.isArray( url ) ) { + + var loaded = 0; + + for ( var i = 0, il = url.length; i < il; ++ i ) { + + loadTexture( i ); + + } + + } else { + + // compressed cubemap texture stored in a single DDS file + + loader.load( url, function ( buffer ) { + + var texDatas = scope._parser( buffer, true ); + + if ( texDatas.isCubemap ) { + + var faces = texDatas.mipmaps.length / texDatas.mipmapCount; + + for ( var f = 0; f < faces; f ++ ) { + + images[ f ] = { mipmaps : [] }; + + for ( var i = 0; i < texDatas.mipmapCount; i ++ ) { + + images[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] ); + images[ f ].format = texDatas.format; + images[ f ].width = texDatas.width; + images[ f ].height = texDatas.height; + + } + + } + + } else { + + texture.image.width = texDatas.width; + texture.image.height = texDatas.height; + texture.mipmaps = texDatas.mipmaps; + + } + + if ( texDatas.mipmapCount === 1 ) { + + texture.minFilter = LinearFilter; + + } + + texture.format = texDatas.format; + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + }, onProgress, onError ); + + } + + return texture; + + }, + + setPath: function ( value ) { + + this.path = value; + return this; + + } + + } ); + + /** + * @author Nikos M. / https://github.com/foo123/ + * + * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...) + */ + + var DataTextureLoader = BinaryTextureLoader; + function BinaryTextureLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + // override in sub classes + this._parser = null; + + } + + Object.assign( BinaryTextureLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var texture = new DataTexture(); + + var loader = new XHRLoader( this.manager ); + loader.setResponseType( 'arraybuffer' ); + + loader.load( url, function ( buffer ) { + + var texData = scope._parser( buffer ); + + if ( ! texData ) return; + + if ( undefined !== texData.image ) { + + texture.image = texData.image; + + } else if ( undefined !== texData.data ) { + + texture.image.width = texData.width; + texture.image.height = texData.height; + texture.image.data = texData.data; + + } + + texture.wrapS = undefined !== texData.wrapS ? texData.wrapS : ClampToEdgeWrapping; + texture.wrapT = undefined !== texData.wrapT ? texData.wrapT : ClampToEdgeWrapping; + + texture.magFilter = undefined !== texData.magFilter ? texData.magFilter : LinearFilter; + texture.minFilter = undefined !== texData.minFilter ? texData.minFilter : LinearMipMapLinearFilter; + + texture.anisotropy = undefined !== texData.anisotropy ? texData.anisotropy : 1; + + if ( undefined !== texData.format ) { + + texture.format = texData.format; + + } + if ( undefined !== texData.type ) { + + texture.type = texData.type; + + } + + if ( undefined !== texData.mipmaps ) { + + texture.mipmaps = texData.mipmaps; + + } + + if ( 1 === texData.mipmapCount ) { + + texture.minFilter = LinearFilter; + + } + + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture, texData ); + + }, onProgress, onError ); + + + return texture; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function ImageLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( ImageLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var image = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'img' ); + image.onload = function () { + + image.onload = null; + + URL.revokeObjectURL( image.src ); + + if ( onLoad ) onLoad( image ); + + scope.manager.itemEnd( url ); + + }; + image.onerror = onError; + + if ( url.indexOf( 'data:' ) === 0 ) { + + image.src = url; + + } else { + + var loader = new XHRLoader(); + loader.setPath( this.path ); + loader.setResponseType( 'blob' ); + loader.setWithCredentials( this.withCredentials ); + loader.load( url, function ( blob ) { + + image.src = URL.createObjectURL( blob ); + + }, onProgress, onError ); + + } + + scope.manager.itemStart( url ); + + return image; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + return this; + + }, + + setWithCredentials: function ( value ) { + + this.withCredentials = value; + return this; + + }, + + setPath: function ( value ) { + + this.path = value; + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function CubeTextureLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( CubeTextureLoader.prototype, { + + load: function ( urls, onLoad, onProgress, onError ) { + + var texture = new CubeTexture(); + + var loader = new ImageLoader( this.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.setPath( this.path ); + + var loaded = 0; + + function loadTexture( i ) { + + loader.load( urls[ i ], function ( image ) { + + texture.images[ i ] = image; + + loaded ++; + + if ( loaded === 6 ) { + + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } + + }, undefined, onError ); + + } + + for ( var i = 0; i < urls.length; ++ i ) { + + loadTexture( i ); + + } + + return texture; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + return this; + + }, + + setPath: function ( value ) { + + this.path = value; + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function TextureLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( TextureLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var texture = new Texture(); + + var loader = new ImageLoader( this.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.setWithCredentials( this.withCredentials ); + loader.setPath( this.path ); + loader.load( url, function ( image ) { + + // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB. + var isJPEG = url.search( /\.(jpg|jpeg)$/ ) > 0 || url.search( /^data\:image\/jpeg/ ) === 0; + + texture.format = isJPEG ? RGBFormat : RGBAFormat; + texture.image = image; + texture.needsUpdate = true; + + if ( onLoad !== undefined ) { + + onLoad( texture ); + + } + + }, onProgress, onError ); + + return texture; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + return this; + + }, + + setWithCredentials: function ( value ) { + + this.withCredentials = value; + return this; + + }, + + setPath: function ( value ) { + + this.path = value; + return this; + + } + + + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Light( color, intensity ) { + + Object3D.call( this ); + + this.type = 'Light'; + + this.color = new Color( color ); + this.intensity = intensity !== undefined ? intensity : 1; + + this.receiveShadow = undefined; + + } + + Light.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Light, + + isLight: true, + + copy: function ( source ) { + + Object3D.prototype.copy.call( this, source ); + + this.color.copy( source.color ); + this.intensity = source.intensity; + + return this; + + }, + + toJSON: function ( meta ) { + + var data = Object3D.prototype.toJSON.call( this, meta ); + + data.object.color = this.color.getHex(); + data.object.intensity = this.intensity; + + if ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex(); + + if ( this.distance !== undefined ) data.object.distance = this.distance; + if ( this.angle !== undefined ) data.object.angle = this.angle; + if ( this.decay !== undefined ) data.object.decay = this.decay; + if ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra; + + if ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON(); + + return data; + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function HemisphereLight( skyColor, groundColor, intensity ) { + + Light.call( this, skyColor, intensity ); + + this.type = 'HemisphereLight'; + + this.castShadow = undefined; + + this.position.copy( Object3D.DefaultUp ); + this.updateMatrix(); + + this.groundColor = new Color( groundColor ); + + } + + HemisphereLight.prototype = Object.assign( Object.create( Light.prototype ), { + + constructor: HemisphereLight, + + isHemisphereLight: true, + + copy: function ( source ) { + + Light.prototype.copy.call( this, source ); + + this.groundColor.copy( source.groundColor ); + + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function LightShadow( camera ) { + + this.camera = camera; + + this.bias = 0; + this.radius = 1; + + this.mapSize = new Vector2( 512, 512 ); + + this.map = null; + this.matrix = new Matrix4(); + + } + + Object.assign( LightShadow.prototype, { + + copy: function ( source ) { + + this.camera = source.camera.clone(); + + this.bias = source.bias; + this.radius = source.radius; + + this.mapSize.copy( source.mapSize ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + toJSON: function () { + + var object = {}; + + if ( this.bias !== 0 ) object.bias = this.bias; + if ( this.radius !== 1 ) object.radius = this.radius; + if ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray(); + + object.camera = this.camera.toJSON( false ).object; + delete object.camera.matrix; + + return object; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function SpotLightShadow() { + + LightShadow.call( this, new PerspectiveCamera( 50, 1, 0.5, 500 ) ); + + } + + SpotLightShadow.prototype = Object.assign( Object.create( LightShadow.prototype ), { + + constructor: SpotLightShadow, + + isSpotLightShadow: true, + + update: function ( light ) { + + var fov = _Math.RAD2DEG * 2 * light.angle; + var aspect = this.mapSize.width / this.mapSize.height; + var far = light.distance || 500; + + var camera = this.camera; + + if ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) { + + camera.fov = fov; + camera.aspect = aspect; + camera.far = far; + camera.updateProjectionMatrix(); + + } + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function SpotLight( color, intensity, distance, angle, penumbra, decay ) { + + Light.call( this, color, intensity ); + + this.type = 'SpotLight'; + + this.position.copy( Object3D.DefaultUp ); + this.updateMatrix(); + + this.target = new Object3D(); + + Object.defineProperty( this, 'power', { + get: function () { + // intensity = power per solid angle. + // ref: equation (17) from http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf + return this.intensity * Math.PI; + }, + set: function ( power ) { + // intensity = power per solid angle. + // ref: equation (17) from http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf + this.intensity = power / Math.PI; + } + } ); + + this.distance = ( distance !== undefined ) ? distance : 0; + this.angle = ( angle !== undefined ) ? angle : Math.PI / 3; + this.penumbra = ( penumbra !== undefined ) ? penumbra : 0; + this.decay = ( decay !== undefined ) ? decay : 1; // for physically correct lights, should be 2. + + this.shadow = new SpotLightShadow(); + + } + + SpotLight.prototype = Object.assign( Object.create( Light.prototype ), { + + constructor: SpotLight, + + isSpotLight: true, + + copy: function ( source ) { + + Light.prototype.copy.call( this, source ); + + this.distance = source.distance; + this.angle = source.angle; + this.penumbra = source.penumbra; + this.decay = source.decay; + + this.target = source.target.clone(); + + this.shadow = source.shadow.clone(); + + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + + function PointLight( color, intensity, distance, decay ) { + + Light.call( this, color, intensity ); + + this.type = 'PointLight'; + + Object.defineProperty( this, 'power', { + get: function () { + // intensity = power per solid angle. + // ref: equation (15) from http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf + return this.intensity * 4 * Math.PI; + + }, + set: function ( power ) { + // intensity = power per solid angle. + // ref: equation (15) from http://www.frostbite.com/wp-content/uploads/2014/11/course_notes_moving_frostbite_to_pbr.pdf + this.intensity = power / ( 4 * Math.PI ); + } + } ); + + this.distance = ( distance !== undefined ) ? distance : 0; + this.decay = ( decay !== undefined ) ? decay : 1; // for physically correct lights, should be 2. + + this.shadow = new LightShadow( new PerspectiveCamera( 90, 1, 0.5, 500 ) ); + + } + + PointLight.prototype = Object.assign( Object.create( Light.prototype ), { + + constructor: PointLight, + + isPointLight: true, + + copy: function ( source ) { + + Light.prototype.copy.call( this, source ); + + this.distance = source.distance; + this.decay = source.decay; + + this.shadow = source.shadow.clone(); + + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function DirectionalLightShadow( light ) { + + LightShadow.call( this, new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) ); + + } + + DirectionalLightShadow.prototype = Object.assign( Object.create( LightShadow.prototype ), { + + constructor: DirectionalLightShadow + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function DirectionalLight( color, intensity ) { + + Light.call( this, color, intensity ); + + this.type = 'DirectionalLight'; + + this.position.copy( Object3D.DefaultUp ); + this.updateMatrix(); + + this.target = new Object3D(); + + this.shadow = new DirectionalLightShadow(); + + } + + DirectionalLight.prototype = Object.assign( Object.create( Light.prototype ), { + + constructor: DirectionalLight, + + isDirectionalLight: true, + + copy: function ( source ) { + + Light.prototype.copy.call( this, source ); + + this.target = source.target.clone(); + + this.shadow = source.shadow.clone(); + + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function AmbientLight( color, intensity ) { + + Light.call( this, color, intensity ); + + this.type = 'AmbientLight'; + + this.castShadow = undefined; + + } + + AmbientLight.prototype = Object.assign( Object.create( Light.prototype ), { + + constructor: AmbientLight, + + isAmbientLight: true, + + } ); + + /** + * @author tschw + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + */ + + var AnimationUtils = { + + // same as Array.prototype.slice, but also works on typed arrays + arraySlice: function( array, from, to ) { + + if ( AnimationUtils.isTypedArray( array ) ) { + + return new array.constructor( array.subarray( from, to ) ); + + } + + return array.slice( from, to ); + + }, + + // converts an array to a specific type + convertArray: function( array, type, forceClone ) { + + if ( ! array || // let 'undefined' and 'null' pass + ! forceClone && array.constructor === type ) return array; + + if ( typeof type.BYTES_PER_ELEMENT === 'number' ) { + + return new type( array ); // create typed array + + } + + return Array.prototype.slice.call( array ); // create Array + + }, + + isTypedArray: function( object ) { + + return ArrayBuffer.isView( object ) && + ! ( object instanceof DataView ); + + }, + + // returns an array by which times and values can be sorted + getKeyframeOrder: function( times ) { + + function compareTime( i, j ) { + + return times[ i ] - times[ j ]; + + } + + var n = times.length; + var result = new Array( n ); + for ( var i = 0; i !== n; ++ i ) result[ i ] = i; + + result.sort( compareTime ); + + return result; + + }, + + // uses the array previously returned by 'getKeyframeOrder' to sort data + sortedArray: function( values, stride, order ) { + + var nValues = values.length; + var result = new values.constructor( nValues ); + + for ( var i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) { + + var srcOffset = order[ i ] * stride; + + for ( var j = 0; j !== stride; ++ j ) { + + result[ dstOffset ++ ] = values[ srcOffset + j ]; + + } + + } + + return result; + + }, + + // function for parsing AOS keyframe formats + flattenJSON: function( jsonKeys, times, values, valuePropertyName ) { + + var i = 1, key = jsonKeys[ 0 ]; + + while ( key !== undefined && key[ valuePropertyName ] === undefined ) { + + key = jsonKeys[ i ++ ]; + + } + + if ( key === undefined ) return; // no data + + var value = key[ valuePropertyName ]; + if ( value === undefined ) return; // no data + + if ( Array.isArray( value ) ) { + + do { + + value = key[ valuePropertyName ]; + + if ( value !== undefined ) { + + times.push( key.time ); + values.push.apply( values, value ); // push all elements + + } + + key = jsonKeys[ i ++ ]; + + } while ( key !== undefined ); + + } else if ( value.toArray !== undefined ) { + // ...assume THREE.Math-ish + + do { + + value = key[ valuePropertyName ]; + + if ( value !== undefined ) { + + times.push( key.time ); + value.toArray( values, values.length ); + + } + + key = jsonKeys[ i ++ ]; + + } while ( key !== undefined ); + + } else { + // otherwise push as-is + + do { + + value = key[ valuePropertyName ]; + + if ( value !== undefined ) { + + times.push( key.time ); + values.push( value ); + + } + + key = jsonKeys[ i ++ ]; + + } while ( key !== undefined ); + + } + + } + + }; + + /** + * Abstract base class of interpolants over parametric samples. + * + * The parameter domain is one dimensional, typically the time or a path + * along a curve defined by the data. + * + * The sample values can have any dimensionality and derived classes may + * apply special interpretations to the data. + * + * This class provides the interval seek in a Template Method, deferring + * the actual interpolation to derived classes. + * + * Time complexity is O(1) for linear access crossing at most two points + * and O(log N) for random access, where N is the number of positions. + * + * References: + * + * http://www.oodesign.com/template-method-pattern.html + * + * @author tschw + */ + + function Interpolant( + parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + this.parameterPositions = parameterPositions; + this._cachedIndex = 0; + + this.resultBuffer = resultBuffer !== undefined ? + resultBuffer : new sampleValues.constructor( sampleSize ); + this.sampleValues = sampleValues; + this.valueSize = sampleSize; + + } + + Interpolant.prototype = { + + constructor: Interpolant, + + evaluate: function( t ) { + + var pp = this.parameterPositions, + i1 = this._cachedIndex, + + t1 = pp[ i1 ], + t0 = pp[ i1 - 1 ]; + + validate_interval: { + + seek: { + + var right; + + linear_scan: { + //- See http://jsperf.com/comparison-to-undefined/3 + //- slower code: + //- + //- if ( t >= t1 || t1 === undefined ) { + forward_scan: if ( ! ( t < t1 ) ) { + + for ( var giveUpAt = i1 + 2; ;) { + + if ( t1 === undefined ) { + + if ( t < t0 ) break forward_scan; + + // after end + + i1 = pp.length; + this._cachedIndex = i1; + return this.afterEnd_( i1 - 1, t, t0 ); + + } + + if ( i1 === giveUpAt ) break; // this loop + + t0 = t1; + t1 = pp[ ++ i1 ]; + + if ( t < t1 ) { + + // we have arrived at the sought interval + break seek; + + } + + } + + // prepare binary search on the right side of the index + right = pp.length; + break linear_scan; + + } + + //- slower code: + //- if ( t < t0 || t0 === undefined ) { + if ( ! ( t >= t0 ) ) { + + // looping? + + var t1global = pp[ 1 ]; + + if ( t < t1global ) { + + i1 = 2; // + 1, using the scan for the details + t0 = t1global; + + } + + // linear reverse scan + + for ( var giveUpAt = i1 - 2; ;) { + + if ( t0 === undefined ) { + + // before start + + this._cachedIndex = 0; + return this.beforeStart_( 0, t, t1 ); + + } + + if ( i1 === giveUpAt ) break; // this loop + + t1 = t0; + t0 = pp[ -- i1 - 1 ]; + + if ( t >= t0 ) { + + // we have arrived at the sought interval + break seek; + + } + + } + + // prepare binary search on the left side of the index + right = i1; + i1 = 0; + break linear_scan; + + } + + // the interval is valid + + break validate_interval; + + } // linear scan + + // binary search + + while ( i1 < right ) { + + var mid = ( i1 + right ) >>> 1; + + if ( t < pp[ mid ] ) { + + right = mid; + + } else { + + i1 = mid + 1; + + } + + } + + t1 = pp[ i1 ]; + t0 = pp[ i1 - 1 ]; + + // check boundary cases, again + + if ( t0 === undefined ) { + + this._cachedIndex = 0; + return this.beforeStart_( 0, t, t1 ); + + } + + if ( t1 === undefined ) { + + i1 = pp.length; + this._cachedIndex = i1; + return this.afterEnd_( i1 - 1, t0, t ); + + } + + } // seek + + this._cachedIndex = i1; + + this.intervalChanged_( i1, t0, t1 ); + + } // validate_interval + + return this.interpolate_( i1, t0, t, t1 ); + + }, + + settings: null, // optional, subclass-specific settings structure + // Note: The indirection allows central control of many interpolants. + + // --- Protected interface + + DefaultSettings_: {}, + + getSettings_: function() { + + return this.settings || this.DefaultSettings_; + + }, + + copySampleValue_: function( index ) { + + // copies a sample value to the result buffer + + var result = this.resultBuffer, + values = this.sampleValues, + stride = this.valueSize, + offset = index * stride; + + for ( var i = 0; i !== stride; ++ i ) { + + result[ i ] = values[ offset + i ]; + + } + + return result; + + }, + + // Template methods for derived classes: + + interpolate_: function( i1, t0, t, t1 ) { + + throw new Error( "call to abstract method" ); + // implementations shall return this.resultBuffer + + }, + + intervalChanged_: function( i1, t0, t1 ) { + + // empty + + } + + }; + + Object.assign( Interpolant.prototype, { + + beforeStart_: //( 0, t, t0 ), returns this.resultBuffer + Interpolant.prototype.copySampleValue_, + + afterEnd_: //( N-1, tN-1, t ), returns this.resultBuffer + Interpolant.prototype.copySampleValue_ + + } ); + + /** + * Fast and simple cubic spline interpolant. + * + * It was derived from a Hermitian construction setting the first derivative + * at each sample position to the linear slope between neighboring positions + * over their parameter interval. + * + * @author tschw + */ + + function CubicInterpolant( + parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + Interpolant.call( + this, parameterPositions, sampleValues, sampleSize, resultBuffer ); + + this._weightPrev = -0; + this._offsetPrev = -0; + this._weightNext = -0; + this._offsetNext = -0; + + } + + CubicInterpolant.prototype = + Object.assign( Object.create( Interpolant.prototype ), { + + constructor: CubicInterpolant, + + DefaultSettings_: { + + endingStart: ZeroCurvatureEnding, + endingEnd: ZeroCurvatureEnding + + }, + + intervalChanged_: function( i1, t0, t1 ) { + + var pp = this.parameterPositions, + iPrev = i1 - 2, + iNext = i1 + 1, + + tPrev = pp[ iPrev ], + tNext = pp[ iNext ]; + + if ( tPrev === undefined ) { + + switch ( this.getSettings_().endingStart ) { + + case ZeroSlopeEnding: + + // f'(t0) = 0 + iPrev = i1; + tPrev = 2 * t0 - t1; + + break; + + case WrapAroundEnding: + + // use the other end of the curve + iPrev = pp.length - 2; + tPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ]; + + break; + + default: // ZeroCurvatureEnding + + // f''(t0) = 0 a.k.a. Natural Spline + iPrev = i1; + tPrev = t1; + + } + + } + + if ( tNext === undefined ) { + + switch ( this.getSettings_().endingEnd ) { + + case ZeroSlopeEnding: + + // f'(tN) = 0 + iNext = i1; + tNext = 2 * t1 - t0; + + break; + + case WrapAroundEnding: + + // use the other end of the curve + iNext = 1; + tNext = t1 + pp[ 1 ] - pp[ 0 ]; + + break; + + default: // ZeroCurvatureEnding + + // f''(tN) = 0, a.k.a. Natural Spline + iNext = i1 - 1; + tNext = t0; + + } + + } + + var halfDt = ( t1 - t0 ) * 0.5, + stride = this.valueSize; + + this._weightPrev = halfDt / ( t0 - tPrev ); + this._weightNext = halfDt / ( tNext - t1 ); + this._offsetPrev = iPrev * stride; + this._offsetNext = iNext * stride; + + }, + + interpolate_: function( i1, t0, t, t1 ) { + + var result = this.resultBuffer, + values = this.sampleValues, + stride = this.valueSize, + + o1 = i1 * stride, o0 = o1 - stride, + oP = this._offsetPrev, oN = this._offsetNext, + wP = this._weightPrev, wN = this._weightNext, + + p = ( t - t0 ) / ( t1 - t0 ), + pp = p * p, + ppp = pp * p; + + // evaluate polynomials + + var sP = - wP * ppp + 2 * wP * pp - wP * p; + var s0 = ( 1 + wP ) * ppp + (-1.5 - 2 * wP ) * pp + ( -0.5 + wP ) * p + 1; + var s1 = (-1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p; + var sN = wN * ppp - wN * pp; + + // combine data linearly + + for ( var i = 0; i !== stride; ++ i ) { + + result[ i ] = + sP * values[ oP + i ] + + s0 * values[ o0 + i ] + + s1 * values[ o1 + i ] + + sN * values[ oN + i ]; + + } + + return result; + + } + + } ); + + /** + * @author tschw + */ + + function LinearInterpolant( + parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + Interpolant.call( + this, parameterPositions, sampleValues, sampleSize, resultBuffer ); + + } + + LinearInterpolant.prototype = + Object.assign( Object.create( Interpolant.prototype ), { + + constructor: LinearInterpolant, + + interpolate_: function( i1, t0, t, t1 ) { + + var result = this.resultBuffer, + values = this.sampleValues, + stride = this.valueSize, + + offset1 = i1 * stride, + offset0 = offset1 - stride, + + weight1 = ( t - t0 ) / ( t1 - t0 ), + weight0 = 1 - weight1; + + for ( var i = 0; i !== stride; ++ i ) { + + result[ i ] = + values[ offset0 + i ] * weight0 + + values[ offset1 + i ] * weight1; + + } + + return result; + + } + + } ); + + /** + * + * Interpolant that evaluates to the sample value at the position preceeding + * the parameter. + * + * @author tschw + */ + + function DiscreteInterpolant( + parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + Interpolant.call( + this, parameterPositions, sampleValues, sampleSize, resultBuffer ); + + } + + DiscreteInterpolant.prototype = + Object.assign( Object.create( Interpolant.prototype ), { + + constructor: DiscreteInterpolant, + + interpolate_: function( i1, t0, t, t1 ) { + + return this.copySampleValue_( i1 - 1 ); + + } + + } ); + + var KeyframeTrackPrototype; + + KeyframeTrackPrototype = { + + TimeBufferType: Float32Array, + ValueBufferType: Float32Array, + + DefaultInterpolation: InterpolateLinear, + + InterpolantFactoryMethodDiscrete: function( result ) { + + return new DiscreteInterpolant( + this.times, this.values, this.getValueSize(), result ); + + }, + + InterpolantFactoryMethodLinear: function( result ) { + + return new LinearInterpolant( + this.times, this.values, this.getValueSize(), result ); + + }, + + InterpolantFactoryMethodSmooth: function( result ) { + + return new CubicInterpolant( + this.times, this.values, this.getValueSize(), result ); + + }, + + setInterpolation: function( interpolation ) { + + var factoryMethod; + + switch ( interpolation ) { + + case InterpolateDiscrete: + + factoryMethod = this.InterpolantFactoryMethodDiscrete; + + break; + + case InterpolateLinear: + + factoryMethod = this.InterpolantFactoryMethodLinear; + + break; + + case InterpolateSmooth: + + factoryMethod = this.InterpolantFactoryMethodSmooth; + + break; + + } + + if ( factoryMethod === undefined ) { + + var message = "unsupported interpolation for " + + this.ValueTypeName + " keyframe track named " + this.name; + + if ( this.createInterpolant === undefined ) { + + // fall back to default, unless the default itself is messed up + if ( interpolation !== this.DefaultInterpolation ) { + + this.setInterpolation( this.DefaultInterpolation ); + + } else { + + throw new Error( message ); // fatal, in this case + + } + + } + + console.warn( message ); + return; + + } + + this.createInterpolant = factoryMethod; + + }, + + getInterpolation: function() { + + switch ( this.createInterpolant ) { + + case this.InterpolantFactoryMethodDiscrete: + + return InterpolateDiscrete; + + case this.InterpolantFactoryMethodLinear: + + return InterpolateLinear; + + case this.InterpolantFactoryMethodSmooth: + + return InterpolateSmooth; + + } + + }, + + getValueSize: function() { + + return this.values.length / this.times.length; + + }, + + // move all keyframes either forwards or backwards in time + shift: function( timeOffset ) { + + if( timeOffset !== 0.0 ) { + + var times = this.times; + + for( var i = 0, n = times.length; i !== n; ++ i ) { + + times[ i ] += timeOffset; + + } + + } + + return this; + + }, + + // scale all keyframe times by a factor (useful for frame <-> seconds conversions) + scale: function( timeScale ) { + + if( timeScale !== 1.0 ) { + + var times = this.times; + + for( var i = 0, n = times.length; i !== n; ++ i ) { + + times[ i ] *= timeScale; + + } + + } + + return this; + + }, + + // removes keyframes before and after animation without changing any values within the range [startTime, endTime]. + // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values + trim: function( startTime, endTime ) { + + var times = this.times, + nKeys = times.length, + from = 0, + to = nKeys - 1; + + while ( from !== nKeys && times[ from ] < startTime ) ++ from; + while ( to !== -1 && times[ to ] > endTime ) -- to; + + ++ to; // inclusive -> exclusive bound + + if( from !== 0 || to !== nKeys ) { + + // empty tracks are forbidden, so keep at least one keyframe + if ( from >= to ) to = Math.max( to , 1 ), from = to - 1; + + var stride = this.getValueSize(); + this.times = AnimationUtils.arraySlice( times, from, to ); + this.values = AnimationUtils. + arraySlice( this.values, from * stride, to * stride ); + + } + + return this; + + }, + + // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable + validate: function() { + + var valid = true; + + var valueSize = this.getValueSize(); + if ( valueSize - Math.floor( valueSize ) !== 0 ) { + + console.error( "invalid value size in track", this ); + valid = false; + + } + + var times = this.times, + values = this.values, + + nKeys = times.length; + + if( nKeys === 0 ) { + + console.error( "track is empty", this ); + valid = false; + + } + + var prevTime = null; + + for( var i = 0; i !== nKeys; i ++ ) { + + var currTime = times[ i ]; + + if ( typeof currTime === 'number' && isNaN( currTime ) ) { + + console.error( "time is not a valid number", this, i, currTime ); + valid = false; + break; + + } + + if( prevTime !== null && prevTime > currTime ) { + + console.error( "out of order keys", this, i, currTime, prevTime ); + valid = false; + break; + + } + + prevTime = currTime; + + } + + if ( values !== undefined ) { + + if ( AnimationUtils.isTypedArray( values ) ) { + + for ( var i = 0, n = values.length; i !== n; ++ i ) { + + var value = values[ i ]; + + if ( isNaN( value ) ) { + + console.error( "value is not a valid number", this, i, value ); + valid = false; + break; + + } + + } + + } + + } + + return valid; + + }, + + // removes equivalent sequential keys as common in morph target sequences + // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0) + optimize: function() { + + var times = this.times, + values = this.values, + stride = this.getValueSize(), + + smoothInterpolation = this.getInterpolation() === InterpolateSmooth, + + writeIndex = 1, + lastIndex = times.length - 1; + + for( var i = 1; i < lastIndex; ++ i ) { + + var keep = false; + + var time = times[ i ]; + var timeNext = times[ i + 1 ]; + + // remove adjacent keyframes scheduled at the same time + + if ( time !== timeNext && ( i !== 1 || time !== time[ 0 ] ) ) { + + if ( ! smoothInterpolation ) { + + // remove unnecessary keyframes same as their neighbors + + var offset = i * stride, + offsetP = offset - stride, + offsetN = offset + stride; + + for ( var j = 0; j !== stride; ++ j ) { + + var value = values[ offset + j ]; + + if ( value !== values[ offsetP + j ] || + value !== values[ offsetN + j ] ) { + + keep = true; + break; + + } + + } + + } else keep = true; + + } + + // in-place compaction + + if ( keep ) { + + if ( i !== writeIndex ) { + + times[ writeIndex ] = times[ i ]; + + var readOffset = i * stride, + writeOffset = writeIndex * stride; + + for ( var j = 0; j !== stride; ++ j ) + + values[ writeOffset + j ] = values[ readOffset + j ]; + + } + + ++ writeIndex; + + } + + } + + // flush last keyframe (compaction looks ahead) + + if ( lastIndex > 0 ) { + + times[ writeIndex ] = times[ lastIndex ]; + + for ( var readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) + + values[ writeOffset + j ] = values[ readOffset + j ]; + + ++ writeIndex; + + } + + if ( writeIndex !== times.length ) { + + this.times = AnimationUtils.arraySlice( times, 0, writeIndex ); + this.values = AnimationUtils.arraySlice( values, 0, writeIndex * stride ); + + } + + return this; + + } + + }; + + function KeyframeTrackConstructor( name, times, values, interpolation ) { + + if( name === undefined ) throw new Error( "track name is undefined" ); + + if( times === undefined || times.length === 0 ) { + + throw new Error( "no keyframes in track named " + name ); + + } + + this.name = name; + + this.times = AnimationUtils.convertArray( times, this.TimeBufferType ); + this.values = AnimationUtils.convertArray( values, this.ValueBufferType ); + + this.setInterpolation( interpolation || this.DefaultInterpolation ); + + this.validate(); + this.optimize(); + + } + + /** + * + * A Track of vectored keyframe values. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function VectorKeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.call( this, name, times, values, interpolation ); + + } + + VectorKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: VectorKeyframeTrack, + + ValueTypeName: 'vector' + + // ValueBufferType is inherited + + // DefaultInterpolation is inherited + + } ); + + /** + * Spherical linear unit quaternion interpolant. + * + * @author tschw + */ + + function QuaternionLinearInterpolant( + parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + Interpolant.call( + this, parameterPositions, sampleValues, sampleSize, resultBuffer ); + + } + + QuaternionLinearInterpolant.prototype = + Object.assign( Object.create( Interpolant.prototype ), { + + constructor: QuaternionLinearInterpolant, + + interpolate_: function( i1, t0, t, t1 ) { + + var result = this.resultBuffer, + values = this.sampleValues, + stride = this.valueSize, + + offset = i1 * stride, + + alpha = ( t - t0 ) / ( t1 - t0 ); + + for ( var end = offset + stride; offset !== end; offset += 4 ) { + + Quaternion.slerpFlat( result, 0, + values, offset - stride, values, offset, alpha ); + + } + + return result; + + } + + } ); + + /** + * + * A Track of quaternion keyframe values. + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function QuaternionKeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.call( this, name, times, values, interpolation ); + + } + + QuaternionKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: QuaternionKeyframeTrack, + + ValueTypeName: 'quaternion', + + // ValueBufferType is inherited + + DefaultInterpolation: InterpolateLinear, + + InterpolantFactoryMethodLinear: function( result ) { + + return new QuaternionLinearInterpolant( + this.times, this.values, this.getValueSize(), result ); + + }, + + InterpolantFactoryMethodSmooth: undefined // not yet implemented + + } ); + + /** + * + * A Track of numeric keyframe values. + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function NumberKeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.call( this, name, times, values, interpolation ); + + } + + NumberKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: NumberKeyframeTrack, + + ValueTypeName: 'number', + + // ValueBufferType is inherited + + // DefaultInterpolation is inherited + + } ); + + /** + * + * A Track that interpolates Strings + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function StringKeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.call( this, name, times, values, interpolation ); + + } + + StringKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: StringKeyframeTrack, + + ValueTypeName: 'string', + ValueBufferType: Array, + + DefaultInterpolation: InterpolateDiscrete, + + InterpolantFactoryMethodLinear: undefined, + + InterpolantFactoryMethodSmooth: undefined + + } ); + + /** + * + * A Track of Boolean keyframe values. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function BooleanKeyframeTrack( name, times, values ) { + + KeyframeTrackConstructor.call( this, name, times, values ); + + } + + BooleanKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: BooleanKeyframeTrack, + + ValueTypeName: 'bool', + ValueBufferType: Array, + + DefaultInterpolation: InterpolateDiscrete, + + InterpolantFactoryMethodLinear: undefined, + InterpolantFactoryMethodSmooth: undefined + + // Note: Actually this track could have a optimized / compressed + // representation of a single value and a custom interpolant that + // computes "firstValue ^ isOdd( index )". + + } ); + + /** + * + * A Track of keyframe values that represent color. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function ColorKeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.call( this, name, times, values, interpolation ); + + } + + ColorKeyframeTrack.prototype = + Object.assign( Object.create( KeyframeTrackPrototype ), { + + constructor: ColorKeyframeTrack, + + ValueTypeName: 'color' + + // ValueBufferType is inherited + + // DefaultInterpolation is inherited + + + // Note: Very basic implementation and nothing special yet. + // However, this is the place for color space parameterization. + + } ); + + /** + * + * A timed sequence of keyframes for a specific property. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function KeyframeTrack( name, times, values, interpolation ) { + + KeyframeTrackConstructor.apply( this, arguments ); + + } + + KeyframeTrack.prototype = KeyframeTrackPrototype; + KeyframeTrackPrototype.constructor = KeyframeTrack; + + // Static methods: + + Object.assign( KeyframeTrack, { + + // Serialization (in static context, because of constructor invocation + // and automatic invocation of .toJSON): + + parse: function( json ) { + + if( json.type === undefined ) { + + throw new Error( "track type undefined, can not parse" ); + + } + + var trackType = KeyframeTrack._getTrackTypeForValueTypeName( json.type ); + + if ( json.times === undefined ) { + + var times = [], values = []; + + AnimationUtils.flattenJSON( json.keys, times, values, 'value' ); + + json.times = times; + json.values = values; + + } + + // derived classes can define a static parse method + if ( trackType.parse !== undefined ) { + + return trackType.parse( json ); + + } else { + + // by default, we asssume a constructor compatible with the base + return new trackType( + json.name, json.times, json.values, json.interpolation ); + + } + + }, + + toJSON: function( track ) { + + var trackType = track.constructor; + + var json; + + // derived classes can define a static toJSON method + if ( trackType.toJSON !== undefined ) { + + json = trackType.toJSON( track ); + + } else { + + // by default, we assume the data can be serialized as-is + json = { + + 'name': track.name, + 'times': AnimationUtils.convertArray( track.times, Array ), + 'values': AnimationUtils.convertArray( track.values, Array ) + + }; + + var interpolation = track.getInterpolation(); + + if ( interpolation !== track.DefaultInterpolation ) { + + json.interpolation = interpolation; + + } + + } + + json.type = track.ValueTypeName; // mandatory + + return json; + + }, + + _getTrackTypeForValueTypeName: function( typeName ) { + + switch( typeName.toLowerCase() ) { + + case "scalar": + case "double": + case "float": + case "number": + case "integer": + + return NumberKeyframeTrack; + + case "vector": + case "vector2": + case "vector3": + case "vector4": + + return VectorKeyframeTrack; + + case "color": + + return ColorKeyframeTrack; + + case "quaternion": + + return QuaternionKeyframeTrack; + + case "bool": + case "boolean": + + return BooleanKeyframeTrack; + + case "string": + + return StringKeyframeTrack; + + } + + throw new Error( "Unsupported typeName: " + typeName ); + + } + + } ); + + /** + * + * Reusable set of Tracks that represent an animation. + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + */ + + function AnimationClip( name, duration, tracks ) { + + this.name = name; + this.tracks = tracks; + this.duration = ( duration !== undefined ) ? duration : -1; + + this.uuid = _Math.generateUUID(); + + // this means it should figure out its duration by scanning the tracks + if ( this.duration < 0 ) { + + this.resetDuration(); + + } + + this.optimize(); + + } + + AnimationClip.prototype = { + + constructor: AnimationClip, + + resetDuration: function() { + + var tracks = this.tracks, + duration = 0; + + for ( var i = 0, n = tracks.length; i !== n; ++ i ) { + + var track = this.tracks[ i ]; + + duration = Math.max( + duration, track.times[ track.times.length - 1 ] ); + + } + + this.duration = duration; + + }, + + trim: function() { + + for ( var i = 0; i < this.tracks.length; i ++ ) { + + this.tracks[ i ].trim( 0, this.duration ); + + } + + return this; + + }, + + optimize: function() { + + for ( var i = 0; i < this.tracks.length; i ++ ) { + + this.tracks[ i ].optimize(); + + } + + return this; + + } + + }; + + // Static methods: + + Object.assign( AnimationClip, { + + parse: function( json ) { + + var tracks = [], + jsonTracks = json.tracks, + frameTime = 1.0 / ( json.fps || 1.0 ); + + for ( var i = 0, n = jsonTracks.length; i !== n; ++ i ) { + + tracks.push( KeyframeTrack.parse( jsonTracks[ i ] ).scale( frameTime ) ); + + } + + return new AnimationClip( json.name, json.duration, tracks ); + + }, + + + toJSON: function( clip ) { + + var tracks = [], + clipTracks = clip.tracks; + + var json = { + + 'name': clip.name, + 'duration': clip.duration, + 'tracks': tracks + + }; + + for ( var i = 0, n = clipTracks.length; i !== n; ++ i ) { + + tracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) ); + + } + + return json; + + }, + + + CreateFromMorphTargetSequence: function( name, morphTargetSequence, fps, noLoop ) { + + var numMorphTargets = morphTargetSequence.length; + var tracks = []; + + for ( var i = 0; i < numMorphTargets; i ++ ) { + + var times = []; + var values = []; + + times.push( + ( i + numMorphTargets - 1 ) % numMorphTargets, + i, + ( i + 1 ) % numMorphTargets ); + + values.push( 0, 1, 0 ); + + var order = AnimationUtils.getKeyframeOrder( times ); + times = AnimationUtils.sortedArray( times, 1, order ); + values = AnimationUtils.sortedArray( values, 1, order ); + + // if there is a key at the first frame, duplicate it as the + // last frame as well for perfect loop. + if ( ! noLoop && times[ 0 ] === 0 ) { + + times.push( numMorphTargets ); + values.push( values[ 0 ] ); + + } + + tracks.push( + new NumberKeyframeTrack( + '.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']', + times, values + ).scale( 1.0 / fps ) ); + } + + return new AnimationClip( name, -1, tracks ); + + }, + + findByName: function( objectOrClipArray, name ) { + + var clipArray = objectOrClipArray; + + if ( ! Array.isArray( objectOrClipArray ) ) { + + var o = objectOrClipArray; + clipArray = o.geometry && o.geometry.animations || o.animations; + + } + + for ( var i = 0; i < clipArray.length; i ++ ) { + + if ( clipArray[ i ].name === name ) { + + return clipArray[ i ]; + + } + } + + return null; + + }, + + CreateClipsFromMorphTargetSequences: function( morphTargets, fps, noLoop ) { + + var animationToMorphTargets = {}; + + // tested with https://regex101.com/ on trick sequences + // such flamingo_flyA_003, flamingo_run1_003, crdeath0059 + var pattern = /^([\w-]*?)([\d]+)$/; + + // sort morph target names into animation groups based + // patterns like Walk_001, Walk_002, Run_001, Run_002 + for ( var i = 0, il = morphTargets.length; i < il; i ++ ) { + + var morphTarget = morphTargets[ i ]; + var parts = morphTarget.name.match( pattern ); + + if ( parts && parts.length > 1 ) { + + var name = parts[ 1 ]; + + var animationMorphTargets = animationToMorphTargets[ name ]; + if ( ! animationMorphTargets ) { + + animationToMorphTargets[ name ] = animationMorphTargets = []; + + } + + animationMorphTargets.push( morphTarget ); + + } + + } + + var clips = []; + + for ( var name in animationToMorphTargets ) { + + clips.push( AnimationClip.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) ); + + } + + return clips; + + }, + + // parse the animation.hierarchy format + parseAnimation: function( animation, bones ) { + + if ( ! animation ) { + + console.error( " no animation in JSONLoader data" ); + return null; + + } + + var addNonemptyTrack = function( + trackType, trackName, animationKeys, propertyName, destTracks ) { + + // only return track if there are actually keys. + if ( animationKeys.length !== 0 ) { + + var times = []; + var values = []; + + AnimationUtils.flattenJSON( + animationKeys, times, values, propertyName ); + + // empty keys are filtered out, so check again + if ( times.length !== 0 ) { + + destTracks.push( new trackType( trackName, times, values ) ); + + } + + } + + }; + + var tracks = []; + + var clipName = animation.name || 'default'; + // automatic length determination in AnimationClip. + var duration = animation.length || -1; + var fps = animation.fps || 30; + + var hierarchyTracks = animation.hierarchy || []; + + for ( var h = 0; h < hierarchyTracks.length; h ++ ) { + + var animationKeys = hierarchyTracks[ h ].keys; + + // skip empty tracks + if ( ! animationKeys || animationKeys.length === 0 ) continue; + + // process morph targets in a way exactly compatible + // with AnimationHandler.init( animation ) + if ( animationKeys[0].morphTargets ) { + + // figure out all morph targets used in this track + var morphTargetNames = {}; + for ( var k = 0; k < animationKeys.length; k ++ ) { + + if ( animationKeys[k].morphTargets ) { + + for ( var m = 0; m < animationKeys[k].morphTargets.length; m ++ ) { + + morphTargetNames[ animationKeys[k].morphTargets[m] ] = -1; + } + + } + + } + + // create a track for each morph target with all zero + // morphTargetInfluences except for the keys in which + // the morphTarget is named. + for ( var morphTargetName in morphTargetNames ) { + + var times = []; + var values = []; + + for ( var m = 0; + m !== animationKeys[k].morphTargets.length; ++ m ) { + + var animationKey = animationKeys[k]; + + times.push( animationKey.time ); + values.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 ); + + } + + tracks.push( new NumberKeyframeTrack( + '.morphTargetInfluence[' + morphTargetName + ']', times, values ) ); + + } + + duration = morphTargetNames.length * ( fps || 1.0 ); + + } else { + // ...assume skeletal animation + + var boneName = '.bones[' + bones[ h ].name + ']'; + + addNonemptyTrack( + VectorKeyframeTrack, boneName + '.position', + animationKeys, 'pos', tracks ); + + addNonemptyTrack( + QuaternionKeyframeTrack, boneName + '.quaternion', + animationKeys, 'rot', tracks ); + + addNonemptyTrack( + VectorKeyframeTrack, boneName + '.scale', + animationKeys, 'scl', tracks ); + + } + + } + + if ( tracks.length === 0 ) { + + return null; + + } + + var clip = new AnimationClip( clipName, duration, tracks ); + + return clip; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function MaterialLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + this.textures = {}; + + } + + Object.assign( MaterialLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new XHRLoader( scope.manager ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( JSON.parse( text ) ) ); + + }, onProgress, onError ); + + }, + + setTextures: function ( value ) { + + this.textures = value; + + }, + + parse: function ( json ) { + + var textures = this.textures; + + function getTexture( name ) { + + if ( textures[ name ] === undefined ) { + + console.warn( 'THREE.MaterialLoader: Undefined texture', name ); + + } + + return textures[ name ]; + + } + + var material = new Materials[ json.type ](); + + if ( json.uuid !== undefined ) material.uuid = json.uuid; + if ( json.name !== undefined ) material.name = json.name; + if ( json.color !== undefined ) material.color.setHex( json.color ); + if ( json.roughness !== undefined ) material.roughness = json.roughness; + if ( json.metalness !== undefined ) material.metalness = json.metalness; + if ( json.emissive !== undefined ) material.emissive.setHex( json.emissive ); + if ( json.specular !== undefined ) material.specular.setHex( json.specular ); + if ( json.shininess !== undefined ) material.shininess = json.shininess; + if ( json.uniforms !== undefined ) material.uniforms = json.uniforms; + if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader; + if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader; + if ( json.vertexColors !== undefined ) material.vertexColors = json.vertexColors; + if ( json.fog !== undefined ) material.fog = json.fog; + if ( json.shading !== undefined ) material.shading = json.shading; + if ( json.blending !== undefined ) material.blending = json.blending; + if ( json.side !== undefined ) material.side = json.side; + if ( json.opacity !== undefined ) material.opacity = json.opacity; + if ( json.transparent !== undefined ) material.transparent = json.transparent; + if ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest; + if ( json.depthTest !== undefined ) material.depthTest = json.depthTest; + if ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite; + if ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite; + if ( json.wireframe !== undefined ) material.wireframe = json.wireframe; + if ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth; + if ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap; + if ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin; + if ( json.skinning !== undefined ) material.skinning = json.skinning; + if ( json.morphTargets !== undefined ) material.morphTargets = json.morphTargets; + + // for PointsMaterial + + if ( json.size !== undefined ) material.size = json.size; + if ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation; + + // maps + + if ( json.map !== undefined ) material.map = getTexture( json.map ); + + if ( json.alphaMap !== undefined ) { + + material.alphaMap = getTexture( json.alphaMap ); + material.transparent = true; + + } + + if ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap ); + if ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale; + + if ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap ); + if ( json.normalScale !== undefined ) { + + var normalScale = json.normalScale; + + if ( Array.isArray( normalScale ) === false ) { + + // Blender exporter used to export a scalar. See #7459 + + normalScale = [ normalScale, normalScale ]; + + } + + material.normalScale = new Vector2().fromArray( normalScale ); + + } + + if ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap ); + if ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale; + if ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias; + + if ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap ); + if ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap ); + + if ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap ); + if ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity; + + if ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap ); + + if ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap ); + + if ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity; + + if ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap ); + if ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity; + + if ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap ); + if ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity; + + // MultiMaterial + + if ( json.materials !== undefined ) { + + for ( var i = 0, l = json.materials.length; i < l; i ++ ) { + + material.materials.push( this.parse( json.materials[ i ] ) ); + + } + + } + + return material; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function BufferGeometryLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( BufferGeometryLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new XHRLoader( scope.manager ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( JSON.parse( text ) ) ); + + }, onProgress, onError ); + + }, + + parse: function ( json ) { + + var geometry = new BufferGeometry(); + + var index = json.data.index; + + var TYPED_ARRAYS = { + 'Int8Array': Int8Array, + 'Uint8Array': Uint8Array, + 'Uint8ClampedArray': Uint8ClampedArray, + 'Int16Array': Int16Array, + 'Uint16Array': Uint16Array, + 'Int32Array': Int32Array, + 'Uint32Array': Uint32Array, + 'Float32Array': Float32Array, + 'Float64Array': Float64Array + }; + + if ( index !== undefined ) { + + var typedArray = new TYPED_ARRAYS[ index.type ]( index.array ); + geometry.setIndex( new BufferAttribute( typedArray, 1 ) ); + + } + + var attributes = json.data.attributes; + + for ( var key in attributes ) { + + var attribute = attributes[ key ]; + var typedArray = new TYPED_ARRAYS[ attribute.type ]( attribute.array ); + + geometry.addAttribute( key, new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized ) ); + + } + + var groups = json.data.groups || json.data.drawcalls || json.data.offsets; + + if ( groups !== undefined ) { + + for ( var i = 0, n = groups.length; i !== n; ++ i ) { + + var group = groups[ i ]; + + geometry.addGroup( group.start, group.count, group.materialIndex ); + + } + + } + + var boundingSphere = json.data.boundingSphere; + + if ( boundingSphere !== undefined ) { + + var center = new Vector3(); + + if ( boundingSphere.center !== undefined ) { + + center.fromArray( boundingSphere.center ); + + } + + geometry.boundingSphere = new Sphere( center, boundingSphere.radius ); + + } + + return geometry; + + } + + } ); + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function Loader() { + + this.onLoadStart = function () {}; + this.onLoadProgress = function () {}; + this.onLoadComplete = function () {}; + + } + + Loader.prototype = { + + constructor: Loader, + + crossOrigin: undefined, + + extractUrlBase: function ( url ) { + + var parts = url.split( '/' ); + + if ( parts.length === 1 ) return './'; + + parts.pop(); + + return parts.join( '/' ) + '/'; + + }, + + initMaterials: function ( materials, texturePath, crossOrigin ) { + + var array = []; + + for ( var i = 0; i < materials.length; ++ i ) { + + array[ i ] = this.createMaterial( materials[ i ], texturePath, crossOrigin ); + + } + + return array; + + }, + + createMaterial: ( function () { + + var color, textureLoader, materialLoader; + + return function createMaterial( m, texturePath, crossOrigin ) { + + if ( color === undefined ) color = new Color(); + if ( textureLoader === undefined ) textureLoader = new TextureLoader(); + if ( materialLoader === undefined ) materialLoader = new MaterialLoader(); + + // convert from old material format + + var textures = {}; + + function loadTexture( path, repeat, offset, wrap, anisotropy ) { + + var fullPath = texturePath + path; + var loader = Loader.Handlers.get( fullPath ); + + var texture; + + if ( loader !== null ) { + + texture = loader.load( fullPath ); + + } else { + + textureLoader.setCrossOrigin( crossOrigin ); + texture = textureLoader.load( fullPath ); + + } + + if ( repeat !== undefined ) { + + texture.repeat.fromArray( repeat ); + + if ( repeat[ 0 ] !== 1 ) texture.wrapS = RepeatWrapping; + if ( repeat[ 1 ] !== 1 ) texture.wrapT = RepeatWrapping; + + } + + if ( offset !== undefined ) { + + texture.offset.fromArray( offset ); + + } + + if ( wrap !== undefined ) { + + if ( wrap[ 0 ] === 'repeat' ) texture.wrapS = RepeatWrapping; + if ( wrap[ 0 ] === 'mirror' ) texture.wrapS = MirroredRepeatWrapping; + + if ( wrap[ 1 ] === 'repeat' ) texture.wrapT = RepeatWrapping; + if ( wrap[ 1 ] === 'mirror' ) texture.wrapT = MirroredRepeatWrapping; + + } + + if ( anisotropy !== undefined ) { + + texture.anisotropy = anisotropy; + + } + + var uuid = _Math.generateUUID(); + + textures[ uuid ] = texture; + + return uuid; + + } + + // + + var json = { + uuid: _Math.generateUUID(), + type: 'MeshLambertMaterial' + }; + + for ( var name in m ) { + + var value = m[ name ]; + + switch ( name ) { + case 'DbgColor': + case 'DbgIndex': + case 'opticalDensity': + case 'illumination': + break; + case 'DbgName': + json.name = value; + break; + case 'blending': + json.blending = BlendingMode[ value ]; + break; + case 'colorAmbient': + case 'mapAmbient': + console.warn( 'THREE.Loader.createMaterial:', name, 'is no longer supported.' ); + break; + case 'colorDiffuse': + json.color = color.fromArray( value ).getHex(); + break; + case 'colorSpecular': + json.specular = color.fromArray( value ).getHex(); + break; + case 'colorEmissive': + json.emissive = color.fromArray( value ).getHex(); + break; + case 'specularCoef': + json.shininess = value; + break; + case 'shading': + if ( value.toLowerCase() === 'basic' ) json.type = 'MeshBasicMaterial'; + if ( value.toLowerCase() === 'phong' ) json.type = 'MeshPhongMaterial'; + if ( value.toLowerCase() === 'standard' ) json.type = 'MeshStandardMaterial'; + break; + case 'mapDiffuse': + json.map = loadTexture( value, m.mapDiffuseRepeat, m.mapDiffuseOffset, m.mapDiffuseWrap, m.mapDiffuseAnisotropy ); + break; + case 'mapDiffuseRepeat': + case 'mapDiffuseOffset': + case 'mapDiffuseWrap': + case 'mapDiffuseAnisotropy': + break; + case 'mapEmissive': + json.emissiveMap = loadTexture( value, m.mapEmissiveRepeat, m.mapEmissiveOffset, m.mapEmissiveWrap, m.mapEmissiveAnisotropy ); + break; + case 'mapEmissiveRepeat': + case 'mapEmissiveOffset': + case 'mapEmissiveWrap': + case 'mapEmissiveAnisotropy': + break; + case 'mapLight': + json.lightMap = loadTexture( value, m.mapLightRepeat, m.mapLightOffset, m.mapLightWrap, m.mapLightAnisotropy ); + break; + case 'mapLightRepeat': + case 'mapLightOffset': + case 'mapLightWrap': + case 'mapLightAnisotropy': + break; + case 'mapAO': + json.aoMap = loadTexture( value, m.mapAORepeat, m.mapAOOffset, m.mapAOWrap, m.mapAOAnisotropy ); + break; + case 'mapAORepeat': + case 'mapAOOffset': + case 'mapAOWrap': + case 'mapAOAnisotropy': + break; + case 'mapBump': + json.bumpMap = loadTexture( value, m.mapBumpRepeat, m.mapBumpOffset, m.mapBumpWrap, m.mapBumpAnisotropy ); + break; + case 'mapBumpScale': + json.bumpScale = value; + break; + case 'mapBumpRepeat': + case 'mapBumpOffset': + case 'mapBumpWrap': + case 'mapBumpAnisotropy': + break; + case 'mapNormal': + json.normalMap = loadTexture( value, m.mapNormalRepeat, m.mapNormalOffset, m.mapNormalWrap, m.mapNormalAnisotropy ); + break; + case 'mapNormalFactor': + json.normalScale = [ value, value ]; + break; + case 'mapNormalRepeat': + case 'mapNormalOffset': + case 'mapNormalWrap': + case 'mapNormalAnisotropy': + break; + case 'mapSpecular': + json.specularMap = loadTexture( value, m.mapSpecularRepeat, m.mapSpecularOffset, m.mapSpecularWrap, m.mapSpecularAnisotropy ); + break; + case 'mapSpecularRepeat': + case 'mapSpecularOffset': + case 'mapSpecularWrap': + case 'mapSpecularAnisotropy': + break; + case 'mapMetalness': + json.metalnessMap = loadTexture( value, m.mapMetalnessRepeat, m.mapMetalnessOffset, m.mapMetalnessWrap, m.mapMetalnessAnisotropy ); + break; + case 'mapMetalnessRepeat': + case 'mapMetalnessOffset': + case 'mapMetalnessWrap': + case 'mapMetalnessAnisotropy': + break; + case 'mapRoughness': + json.roughnessMap = loadTexture( value, m.mapRoughnessRepeat, m.mapRoughnessOffset, m.mapRoughnessWrap, m.mapRoughnessAnisotropy ); + break; + case 'mapRoughnessRepeat': + case 'mapRoughnessOffset': + case 'mapRoughnessWrap': + case 'mapRoughnessAnisotropy': + break; + case 'mapAlpha': + json.alphaMap = loadTexture( value, m.mapAlphaRepeat, m.mapAlphaOffset, m.mapAlphaWrap, m.mapAlphaAnisotropy ); + break; + case 'mapAlphaRepeat': + case 'mapAlphaOffset': + case 'mapAlphaWrap': + case 'mapAlphaAnisotropy': + break; + case 'flipSided': + json.side = BackSide; + break; + case 'doubleSided': + json.side = DoubleSide; + break; + case 'transparency': + console.warn( 'THREE.Loader.createMaterial: transparency has been renamed to opacity' ); + json.opacity = value; + break; + case 'depthTest': + case 'depthWrite': + case 'colorWrite': + case 'opacity': + case 'reflectivity': + case 'transparent': + case 'visible': + case 'wireframe': + json[ name ] = value; + break; + case 'vertexColors': + if ( value === true ) json.vertexColors = VertexColors; + if ( value === 'face' ) json.vertexColors = FaceColors; + break; + default: + console.error( 'THREE.Loader.createMaterial: Unsupported', name, value ); + break; + } + + } + + if ( json.type === 'MeshBasicMaterial' ) delete json.emissive; + if ( json.type !== 'MeshPhongMaterial' ) delete json.specular; + + if ( json.opacity < 1 ) json.transparent = true; + + materialLoader.setTextures( textures ); + + return materialLoader.parse( json ); + + }; + + } )() + + }; + + Loader.Handlers = { + + handlers: [], + + add: function ( regex, loader ) { + + this.handlers.push( regex, loader ); + + }, + + get: function ( file ) { + + var handlers = this.handlers; + + for ( var i = 0, l = handlers.length; i < l; i += 2 ) { + + var regex = handlers[ i ]; + var loader = handlers[ i + 1 ]; + + if ( regex.test( file ) ) { + + return loader; + + } + + } + + return null; + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function JSONLoader( manager ) { + + if ( typeof manager === 'boolean' ) { + + console.warn( 'THREE.JSONLoader: showStatus parameter has been removed from constructor.' ); + manager = undefined; + + } + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + this.withCredentials = false; + + } + + Object.assign( JSONLoader.prototype, { + + load: function( url, onLoad, onProgress, onError ) { + + var scope = this; + + var texturePath = this.texturePath && ( typeof this.texturePath === "string" ) ? this.texturePath : Loader.prototype.extractUrlBase( url ); + + var loader = new XHRLoader( this.manager ); + loader.setWithCredentials( this.withCredentials ); + loader.load( url, function ( text ) { + + var json = JSON.parse( text ); + var metadata = json.metadata; + + if ( metadata !== undefined ) { + + var type = metadata.type; + + if ( type !== undefined ) { + + if ( type.toLowerCase() === 'object' ) { + + console.error( 'THREE.JSONLoader: ' + url + ' should be loaded with THREE.ObjectLoader instead.' ); + return; + + } + + if ( type.toLowerCase() === 'scene' ) { + + console.error( 'THREE.JSONLoader: ' + url + ' should be loaded with THREE.SceneLoader instead.' ); + return; + + } + + } + + } + + var object = scope.parse( json, texturePath ); + onLoad( object.geometry, object.materials ); + + }, onProgress, onError ); + + }, + + setTexturePath: function ( value ) { + + this.texturePath = value; + + }, + + parse: function ( json, texturePath ) { + + var geometry = new Geometry(), + scale = ( json.scale !== undefined ) ? 1.0 / json.scale : 1.0; + + parseModel( scale ); + + parseSkin(); + parseMorphing( scale ); + parseAnimations(); + + geometry.computeFaceNormals(); + geometry.computeBoundingSphere(); + + function parseModel( scale ) { + + function isBitSet( value, position ) { + + return value & ( 1 << position ); + + } + + var i, j, fi, + + offset, zLength, + + colorIndex, normalIndex, uvIndex, materialIndex, + + type, + isQuad, + hasMaterial, + hasFaceVertexUv, + hasFaceNormal, hasFaceVertexNormal, + hasFaceColor, hasFaceVertexColor, + + vertex, face, faceA, faceB, hex, normal, + + uvLayer, uv, u, v, + + faces = json.faces, + vertices = json.vertices, + normals = json.normals, + colors = json.colors, + + nUvLayers = 0; + + if ( json.uvs !== undefined ) { + + // disregard empty arrays + + for ( i = 0; i < json.uvs.length; i ++ ) { + + if ( json.uvs[ i ].length ) nUvLayers ++; + + } + + for ( i = 0; i < nUvLayers; i ++ ) { + + geometry.faceVertexUvs[ i ] = []; + + } + + } + + offset = 0; + zLength = vertices.length; + + while ( offset < zLength ) { + + vertex = new Vector3(); + + vertex.x = vertices[ offset ++ ] * scale; + vertex.y = vertices[ offset ++ ] * scale; + vertex.z = vertices[ offset ++ ] * scale; + + geometry.vertices.push( vertex ); + + } + + offset = 0; + zLength = faces.length; + + while ( offset < zLength ) { + + type = faces[ offset ++ ]; + + + isQuad = isBitSet( type, 0 ); + hasMaterial = isBitSet( type, 1 ); + hasFaceVertexUv = isBitSet( type, 3 ); + hasFaceNormal = isBitSet( type, 4 ); + hasFaceVertexNormal = isBitSet( type, 5 ); + hasFaceColor = isBitSet( type, 6 ); + hasFaceVertexColor = isBitSet( type, 7 ); + + // console.log("type", type, "bits", isQuad, hasMaterial, hasFaceVertexUv, hasFaceNormal, hasFaceVertexNormal, hasFaceColor, hasFaceVertexColor); + + if ( isQuad ) { + + faceA = new Face3(); + faceA.a = faces[ offset ]; + faceA.b = faces[ offset + 1 ]; + faceA.c = faces[ offset + 3 ]; + + faceB = new Face3(); + faceB.a = faces[ offset + 1 ]; + faceB.b = faces[ offset + 2 ]; + faceB.c = faces[ offset + 3 ]; + + offset += 4; + + if ( hasMaterial ) { + + materialIndex = faces[ offset ++ ]; + faceA.materialIndex = materialIndex; + faceB.materialIndex = materialIndex; + + } + + // to get face <=> uv index correspondence + + fi = geometry.faces.length; + + if ( hasFaceVertexUv ) { + + for ( i = 0; i < nUvLayers; i ++ ) { + + uvLayer = json.uvs[ i ]; + + geometry.faceVertexUvs[ i ][ fi ] = []; + geometry.faceVertexUvs[ i ][ fi + 1 ] = []; + + for ( j = 0; j < 4; j ++ ) { + + uvIndex = faces[ offset ++ ]; + + u = uvLayer[ uvIndex * 2 ]; + v = uvLayer[ uvIndex * 2 + 1 ]; + + uv = new Vector2( u, v ); + + if ( j !== 2 ) geometry.faceVertexUvs[ i ][ fi ].push( uv ); + if ( j !== 0 ) geometry.faceVertexUvs[ i ][ fi + 1 ].push( uv ); + + } + + } + + } + + if ( hasFaceNormal ) { + + normalIndex = faces[ offset ++ ] * 3; + + faceA.normal.set( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + faceB.normal.copy( faceA.normal ); + + } + + if ( hasFaceVertexNormal ) { + + for ( i = 0; i < 4; i ++ ) { + + normalIndex = faces[ offset ++ ] * 3; + + normal = new Vector3( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + + if ( i !== 2 ) faceA.vertexNormals.push( normal ); + if ( i !== 0 ) faceB.vertexNormals.push( normal ); + + } + + } + + + if ( hasFaceColor ) { + + colorIndex = faces[ offset ++ ]; + hex = colors[ colorIndex ]; + + faceA.color.setHex( hex ); + faceB.color.setHex( hex ); + + } + + + if ( hasFaceVertexColor ) { + + for ( i = 0; i < 4; i ++ ) { + + colorIndex = faces[ offset ++ ]; + hex = colors[ colorIndex ]; + + if ( i !== 2 ) faceA.vertexColors.push( new Color( hex ) ); + if ( i !== 0 ) faceB.vertexColors.push( new Color( hex ) ); + + } + + } + + geometry.faces.push( faceA ); + geometry.faces.push( faceB ); + + } else { + + face = new Face3(); + face.a = faces[ offset ++ ]; + face.b = faces[ offset ++ ]; + face.c = faces[ offset ++ ]; + + if ( hasMaterial ) { + + materialIndex = faces[ offset ++ ]; + face.materialIndex = materialIndex; + + } + + // to get face <=> uv index correspondence + + fi = geometry.faces.length; + + if ( hasFaceVertexUv ) { + + for ( i = 0; i < nUvLayers; i ++ ) { + + uvLayer = json.uvs[ i ]; + + geometry.faceVertexUvs[ i ][ fi ] = []; + + for ( j = 0; j < 3; j ++ ) { + + uvIndex = faces[ offset ++ ]; + + u = uvLayer[ uvIndex * 2 ]; + v = uvLayer[ uvIndex * 2 + 1 ]; + + uv = new Vector2( u, v ); + + geometry.faceVertexUvs[ i ][ fi ].push( uv ); + + } + + } + + } + + if ( hasFaceNormal ) { + + normalIndex = faces[ offset ++ ] * 3; + + face.normal.set( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + } + + if ( hasFaceVertexNormal ) { + + for ( i = 0; i < 3; i ++ ) { + + normalIndex = faces[ offset ++ ] * 3; + + normal = new Vector3( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + face.vertexNormals.push( normal ); + + } + + } + + + if ( hasFaceColor ) { + + colorIndex = faces[ offset ++ ]; + face.color.setHex( colors[ colorIndex ] ); + + } + + + if ( hasFaceVertexColor ) { + + for ( i = 0; i < 3; i ++ ) { + + colorIndex = faces[ offset ++ ]; + face.vertexColors.push( new Color( colors[ colorIndex ] ) ); + + } + + } + + geometry.faces.push( face ); + + } + + } + + } + + function parseSkin() { + + var influencesPerVertex = ( json.influencesPerVertex !== undefined ) ? json.influencesPerVertex : 2; + + if ( json.skinWeights ) { + + for ( var i = 0, l = json.skinWeights.length; i < l; i += influencesPerVertex ) { + + var x = json.skinWeights[ i ]; + var y = ( influencesPerVertex > 1 ) ? json.skinWeights[ i + 1 ] : 0; + var z = ( influencesPerVertex > 2 ) ? json.skinWeights[ i + 2 ] : 0; + var w = ( influencesPerVertex > 3 ) ? json.skinWeights[ i + 3 ] : 0; + + geometry.skinWeights.push( new Vector4( x, y, z, w ) ); + + } + + } + + if ( json.skinIndices ) { + + for ( var i = 0, l = json.skinIndices.length; i < l; i += influencesPerVertex ) { + + var a = json.skinIndices[ i ]; + var b = ( influencesPerVertex > 1 ) ? json.skinIndices[ i + 1 ] : 0; + var c = ( influencesPerVertex > 2 ) ? json.skinIndices[ i + 2 ] : 0; + var d = ( influencesPerVertex > 3 ) ? json.skinIndices[ i + 3 ] : 0; + + geometry.skinIndices.push( new Vector4( a, b, c, d ) ); + + } + + } + + geometry.bones = json.bones; + + if ( geometry.bones && geometry.bones.length > 0 && ( geometry.skinWeights.length !== geometry.skinIndices.length || geometry.skinIndices.length !== geometry.vertices.length ) ) { + + console.warn( 'When skinning, number of vertices (' + geometry.vertices.length + '), skinIndices (' + + geometry.skinIndices.length + '), and skinWeights (' + geometry.skinWeights.length + ') should match.' ); + + } + + } + + function parseMorphing( scale ) { + + if ( json.morphTargets !== undefined ) { + + for ( var i = 0, l = json.morphTargets.length; i < l; i ++ ) { + + geometry.morphTargets[ i ] = {}; + geometry.morphTargets[ i ].name = json.morphTargets[ i ].name; + geometry.morphTargets[ i ].vertices = []; + + var dstVertices = geometry.morphTargets[ i ].vertices; + var srcVertices = json.morphTargets[ i ].vertices; + + for ( var v = 0, vl = srcVertices.length; v < vl; v += 3 ) { + + var vertex = new Vector3(); + vertex.x = srcVertices[ v ] * scale; + vertex.y = srcVertices[ v + 1 ] * scale; + vertex.z = srcVertices[ v + 2 ] * scale; + + dstVertices.push( vertex ); + + } + + } + + } + + if ( json.morphColors !== undefined && json.morphColors.length > 0 ) { + + console.warn( 'THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.' ); + + var faces = geometry.faces; + var morphColors = json.morphColors[ 0 ].colors; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + faces[ i ].color.fromArray( morphColors, i * 3 ); + + } + + } + + } + + function parseAnimations() { + + var outputAnimations = []; + + // parse old style Bone/Hierarchy animations + var animations = []; + + if ( json.animation !== undefined ) { + + animations.push( json.animation ); + + } + + if ( json.animations !== undefined ) { + + if ( json.animations.length ) { + + animations = animations.concat( json.animations ); + + } else { + + animations.push( json.animations ); + + } + + } + + for ( var i = 0; i < animations.length; i ++ ) { + + var clip = AnimationClip.parseAnimation( animations[ i ], geometry.bones ); + if ( clip ) outputAnimations.push( clip ); + + } + + // parse implicit morph animations + if ( geometry.morphTargets ) { + + // TODO: Figure out what an appropraite FPS is for morph target animations -- defaulting to 10, but really it is completely arbitrary. + var morphAnimationClips = AnimationClip.CreateClipsFromMorphTargetSequences( geometry.morphTargets, 10 ); + outputAnimations = outputAnimations.concat( morphAnimationClips ); + + } + + if ( outputAnimations.length > 0 ) geometry.animations = outputAnimations; + + } + + if ( json.materials === undefined || json.materials.length === 0 ) { + + return { geometry: geometry }; + + } else { + + var materials = Loader.prototype.initMaterials( json.materials, texturePath, this.crossOrigin ); + + return { geometry: geometry, materials: materials }; + + } + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function ObjectLoader ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + this.texturePath = ''; + + } + + Object.assign( ObjectLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + if ( this.texturePath === '' ) { + + this.texturePath = url.substring( 0, url.lastIndexOf( '/' ) + 1 ); + + } + + var scope = this; + + var loader = new XHRLoader( scope.manager ); + loader.load( url, function ( text ) { + + scope.parse( JSON.parse( text ), onLoad ); + + }, onProgress, onError ); + + }, + + setTexturePath: function ( value ) { + + this.texturePath = value; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + }, + + parse: function ( json, onLoad ) { + + var geometries = this.parseGeometries( json.geometries ); + + var images = this.parseImages( json.images, function () { + + if ( onLoad !== undefined ) onLoad( object ); + + } ); + + var textures = this.parseTextures( json.textures, images ); + var materials = this.parseMaterials( json.materials, textures ); + + var object = this.parseObject( json.object, geometries, materials ); + + if ( json.animations ) { + + object.animations = this.parseAnimations( json.animations ); + + } + + if ( json.images === undefined || json.images.length === 0 ) { + + if ( onLoad !== undefined ) onLoad( object ); + + } + + return object; + + }, + + parseGeometries: function ( json ) { + + var geometries = {}; + + if ( json !== undefined ) { + + var geometryLoader = new JSONLoader(); + var bufferGeometryLoader = new BufferGeometryLoader(); + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var geometry; + var data = json[ i ]; + + switch ( data.type ) { + + case 'PlaneGeometry': + case 'PlaneBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.width, + data.height, + data.widthSegments, + data.heightSegments + ); + + break; + + case 'BoxGeometry': + case 'BoxBufferGeometry': + case 'CubeGeometry': // backwards compatible + + geometry = new Geometries[ data.type ]( + data.width, + data.height, + data.depth, + data.widthSegments, + data.heightSegments, + data.depthSegments + ); + + break; + + case 'CircleGeometry': + case 'CircleBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.segments, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'CylinderGeometry': + case 'CylinderBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radiusTop, + data.radiusBottom, + data.height, + data.radialSegments, + data.heightSegments, + data.openEnded, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'ConeGeometry': + case 'ConeBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.height, + data.radialSegments, + data.heightSegments, + data.openEnded, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'SphereGeometry': + case 'SphereBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.widthSegments, + data.heightSegments, + data.phiStart, + data.phiLength, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'DodecahedronGeometry': + case 'IcosahedronGeometry': + case 'OctahedronGeometry': + case 'TetrahedronGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.detail + ); + + break; + + case 'RingGeometry': + case 'RingBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.innerRadius, + data.outerRadius, + data.thetaSegments, + data.phiSegments, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'TorusGeometry': + case 'TorusBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.tube, + data.radialSegments, + data.tubularSegments, + data.arc + ); + + break; + + case 'TorusKnotGeometry': + case 'TorusKnotBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.radius, + data.tube, + data.tubularSegments, + data.radialSegments, + data.p, + data.q + ); + + break; + + case 'LatheGeometry': + case 'LatheBufferGeometry': + + geometry = new Geometries[ data.type ]( + data.points, + data.segments, + data.phiStart, + data.phiLength + ); + + break; + + case 'BufferGeometry': + + geometry = bufferGeometryLoader.parse( data ); + + break; + + case 'Geometry': + + geometry = geometryLoader.parse( data.data, this.texturePath ).geometry; + + break; + + default: + + console.warn( 'THREE.ObjectLoader: Unsupported geometry type "' + data.type + '"' ); + + continue; + + } + + geometry.uuid = data.uuid; + + if ( data.name !== undefined ) geometry.name = data.name; + + geometries[ data.uuid ] = geometry; + + } + + } + + return geometries; + + }, + + parseMaterials: function ( json, textures ) { + + var materials = {}; + + if ( json !== undefined ) { + + var loader = new MaterialLoader(); + loader.setTextures( textures ); + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var material = loader.parse( json[ i ] ); + materials[ material.uuid ] = material; + + } + + } + + return materials; + + }, + + parseAnimations: function ( json ) { + + var animations = []; + + for ( var i = 0; i < json.length; i ++ ) { + + var clip = AnimationClip.parse( json[ i ] ); + + animations.push( clip ); + + } + + return animations; + + }, + + parseImages: function ( json, onLoad ) { + + var scope = this; + var images = {}; + + function loadImage( url ) { + + scope.manager.itemStart( url ); + + return loader.load( url, function () { + + scope.manager.itemEnd( url ); + + }, undefined, function () { + + scope.manager.itemError( url ); + + } ); + + } + + if ( json !== undefined && json.length > 0 ) { + + var manager = new LoadingManager( onLoad ); + + var loader = new ImageLoader( manager ); + loader.setCrossOrigin( this.crossOrigin ); + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var image = json[ i ]; + var path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test( image.url ) ? image.url : scope.texturePath + image.url; + + images[ image.uuid ] = loadImage( path ); + + } + + } + + return images; + + }, + + parseTextures: function ( json, images ) { + + function parseConstant( value, type ) { + + if ( typeof( value ) === 'number' ) return value; + + console.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value ); + + return type[ value ]; + + } + + var textures = {}; + + if ( json !== undefined ) { + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var data = json[ i ]; + + if ( data.image === undefined ) { + + console.warn( 'THREE.ObjectLoader: No "image" specified for', data.uuid ); + + } + + if ( images[ data.image ] === undefined ) { + + console.warn( 'THREE.ObjectLoader: Undefined image', data.image ); + + } + + var texture = new Texture( images[ data.image ] ); + texture.needsUpdate = true; + + texture.uuid = data.uuid; + + if ( data.name !== undefined ) texture.name = data.name; + + if ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TextureMapping ); + + if ( data.offset !== undefined ) texture.offset.fromArray( data.offset ); + if ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat ); + if ( data.wrap !== undefined ) { + + texture.wrapS = parseConstant( data.wrap[ 0 ], TextureWrapping ); + texture.wrapT = parseConstant( data.wrap[ 1 ], TextureWrapping ); + + } + + if ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TextureFilter ); + if ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TextureFilter ); + if ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy; + + if ( data.flipY !== undefined ) texture.flipY = data.flipY; + + textures[ data.uuid ] = texture; + + } + + } + + return textures; + + }, + + parseObject: function () { + + var matrix = new Matrix4(); + + return function parseObject( data, geometries, materials ) { + + var object; + + function getGeometry( name ) { + + if ( geometries[ name ] === undefined ) { + + console.warn( 'THREE.ObjectLoader: Undefined geometry', name ); + + } + + return geometries[ name ]; + + } + + function getMaterial( name ) { + + if ( name === undefined ) return undefined; + + if ( materials[ name ] === undefined ) { + + console.warn( 'THREE.ObjectLoader: Undefined material', name ); + + } + + return materials[ name ]; + + } + + switch ( data.type ) { + + case 'Scene': + + object = new Scene(); + + if ( data.background !== undefined ) { + + if ( Number.isInteger( data.background ) ) { + + object.background = new Color( data.background ); + + } + + } + + if ( data.fog !== undefined ) { + + if ( data.fog.type === 'Fog' ) { + + object.fog = new Fog( data.fog.color, data.fog.near, data.fog.far ); + + } else if ( data.fog.type === 'FogExp2' ) { + + object.fog = new FogExp2( data.fog.color, data.fog.density ); + + } + + } + + break; + + case 'PerspectiveCamera': + + object = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far ); + + if ( data.focus !== undefined ) object.focus = data.focus; + if ( data.zoom !== undefined ) object.zoom = data.zoom; + if ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge; + if ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset; + if ( data.view !== undefined ) object.view = Object.assign( {}, data.view ); + + break; + + case 'OrthographicCamera': + + object = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far ); + + break; + + case 'AmbientLight': + + object = new AmbientLight( data.color, data.intensity ); + + break; + + case 'DirectionalLight': + + object = new DirectionalLight( data.color, data.intensity ); + + break; + + case 'PointLight': + + object = new PointLight( data.color, data.intensity, data.distance, data.decay ); + + break; + + case 'SpotLight': + + object = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay ); + + break; + + case 'HemisphereLight': + + object = new HemisphereLight( data.color, data.groundColor, data.intensity ); + + break; + + case 'Mesh': + + var geometry = getGeometry( data.geometry ); + var material = getMaterial( data.material ); + + if ( geometry.bones && geometry.bones.length > 0 ) { + + object = new SkinnedMesh( geometry, material ); + + } else { + + object = new Mesh( geometry, material ); + + } + + break; + + case 'LOD': + + object = new LOD(); + + break; + + case 'Line': + + object = new Line( getGeometry( data.geometry ), getMaterial( data.material ), data.mode ); + + break; + + case 'LineSegments': + + object = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) ); + + break; + + case 'PointCloud': + case 'Points': + + object = new Points( getGeometry( data.geometry ), getMaterial( data.material ) ); + + break; + + case 'Sprite': + + object = new Sprite( getMaterial( data.material ) ); + + break; + + case 'Group': + + object = new Group(); + + break; + + default: + + object = new Object3D(); + + } + + object.uuid = data.uuid; + + if ( data.name !== undefined ) object.name = data.name; + if ( data.matrix !== undefined ) { + + matrix.fromArray( data.matrix ); + matrix.decompose( object.position, object.quaternion, object.scale ); + + } else { + + if ( data.position !== undefined ) object.position.fromArray( data.position ); + if ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation ); + if ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion ); + if ( data.scale !== undefined ) object.scale.fromArray( data.scale ); + + } + + if ( data.castShadow !== undefined ) object.castShadow = data.castShadow; + if ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow; + + if ( data.shadow ) { + + if ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias; + if ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius; + if ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize ); + if ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera ); + + } + + if ( data.visible !== undefined ) object.visible = data.visible; + if ( data.userData !== undefined ) object.userData = data.userData; + + if ( data.children !== undefined ) { + + for ( var child in data.children ) { + + object.add( this.parseObject( data.children[ child ], geometries, materials ) ); + + } + + } + + if ( data.type === 'LOD' ) { + + var levels = data.levels; + + for ( var l = 0; l < levels.length; l ++ ) { + + var level = levels[ l ]; + var child = object.getObjectByProperty( 'uuid', level.object ); + + if ( child !== undefined ) { + + object.addLevel( child, level.distance ); + + } + + } + + } + + return object; + + }; + + }() + + } ); + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Extensible curve object + * + * Some common of Curve methods + * .getPoint(t), getTangent(t) + * .getPointAt(u), getTangentAt(u) + * .getPoints(), .getSpacedPoints() + * .getLength() + * .updateArcLengths() + * + * This following classes subclasses THREE.Curve: + * + * -- 2d classes -- + * THREE.LineCurve + * THREE.QuadraticBezierCurve + * THREE.CubicBezierCurve + * THREE.SplineCurve + * THREE.ArcCurve + * THREE.EllipseCurve + * + * -- 3d classes -- + * THREE.LineCurve3 + * THREE.QuadraticBezierCurve3 + * THREE.CubicBezierCurve3 + * THREE.SplineCurve3 + * + * A series of curves can be represented as a THREE.CurvePath + * + **/ + + /************************************************************** + * Abstract Curve base class + **************************************************************/ + + function Curve() {} + + Curve.prototype = { + + constructor: Curve, + + // Virtual base class method to overwrite and implement in subclasses + // - t [0 .. 1] + + getPoint: function ( t ) { + + console.warn( "THREE.Curve: Warning, getPoint() not implemented!" ); + return null; + + }, + + // Get point at relative position in curve according to arc length + // - u [0 .. 1] + + getPointAt: function ( u ) { + + var t = this.getUtoTmapping( u ); + return this.getPoint( t ); + + }, + + // Get sequence of points using getPoint( t ) + + getPoints: function ( divisions ) { + + if ( ! divisions ) divisions = 5; + + var points = []; + + for ( var d = 0; d <= divisions; d ++ ) { + + points.push( this.getPoint( d / divisions ) ); + + } + + return points; + + }, + + // Get sequence of points using getPointAt( u ) + + getSpacedPoints: function ( divisions ) { + + if ( ! divisions ) divisions = 5; + + var points = []; + + for ( var d = 0; d <= divisions; d ++ ) { + + points.push( this.getPointAt( d / divisions ) ); + + } + + return points; + + }, + + // Get total curve arc length + + getLength: function () { + + var lengths = this.getLengths(); + return lengths[ lengths.length - 1 ]; + + }, + + // Get list of cumulative segment lengths + + getLengths: function ( divisions ) { + + if ( ! divisions ) divisions = ( this.__arcLengthDivisions ) ? ( this.__arcLengthDivisions ) : 200; + + if ( this.cacheArcLengths + && ( this.cacheArcLengths.length === divisions + 1 ) + && ! this.needsUpdate ) { + + //console.log( "cached", this.cacheArcLengths ); + return this.cacheArcLengths; + + } + + this.needsUpdate = false; + + var cache = []; + var current, last = this.getPoint( 0 ); + var p, sum = 0; + + cache.push( 0 ); + + for ( p = 1; p <= divisions; p ++ ) { + + current = this.getPoint ( p / divisions ); + sum += current.distanceTo( last ); + cache.push( sum ); + last = current; + + } + + this.cacheArcLengths = cache; + + return cache; // { sums: cache, sum:sum }; Sum is in the last element. + + }, + + updateArcLengths: function() { + + this.needsUpdate = true; + this.getLengths(); + + }, + + // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant + + getUtoTmapping: function ( u, distance ) { + + var arcLengths = this.getLengths(); + + var i = 0, il = arcLengths.length; + + var targetArcLength; // The targeted u distance value to get + + if ( distance ) { + + targetArcLength = distance; + + } else { + + targetArcLength = u * arcLengths[ il - 1 ]; + + } + + //var time = Date.now(); + + // binary search for the index with largest value smaller than target u distance + + var low = 0, high = il - 1, comparison; + + while ( low <= high ) { + + i = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats + + comparison = arcLengths[ i ] - targetArcLength; + + if ( comparison < 0 ) { + + low = i + 1; + + } else if ( comparison > 0 ) { + + high = i - 1; + + } else { + + high = i; + break; + + // DONE + + } + + } + + i = high; + + //console.log('b' , i, low, high, Date.now()- time); + + if ( arcLengths[ i ] === targetArcLength ) { + + var t = i / ( il - 1 ); + return t; + + } + + // we could get finer grain at lengths, or use simple interpolation between two points + + var lengthBefore = arcLengths[ i ]; + var lengthAfter = arcLengths[ i + 1 ]; + + var segmentLength = lengthAfter - lengthBefore; + + // determine where we are between the 'before' and 'after' points + + var segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength; + + // add that fractional amount to t + + var t = ( i + segmentFraction ) / ( il - 1 ); + + return t; + + }, + + // Returns a unit vector tangent at t + // In case any sub curve does not implement its tangent derivation, + // 2 points a small delta apart will be used to find its gradient + // which seems to give a reasonable approximation + + getTangent: function( t ) { + + var delta = 0.0001; + var t1 = t - delta; + var t2 = t + delta; + + // Capping in case of danger + + if ( t1 < 0 ) t1 = 0; + if ( t2 > 1 ) t2 = 1; + + var pt1 = this.getPoint( t1 ); + var pt2 = this.getPoint( t2 ); + + var vec = pt2.clone().sub( pt1 ); + return vec.normalize(); + + }, + + getTangentAt: function ( u ) { + + var t = this.getUtoTmapping( u ); + return this.getTangent( t ); + + }, + + computeFrenetFrames: function ( segments, closed ) { + + // see http://www.cs.indiana.edu/pub/techreports/TR425.pdf + + var normal = new Vector3(); + + var tangents = []; + var normals = []; + var binormals = []; + + var vec = new Vector3(); + var mat = new Matrix4(); + + var i, u, theta; + + // compute the tangent vectors for each segment on the curve + + for ( i = 0; i <= segments; i ++ ) { + + u = i / segments; + + tangents[ i ] = this.getTangentAt( u ); + tangents[ i ].normalize(); + + } + + // select an initial normal vector perpendicular to the first tangent vector, + // and in the direction of the minimum tangent xyz component + + normals[ 0 ] = new Vector3(); + binormals[ 0 ] = new Vector3(); + var min = Number.MAX_VALUE; + var tx = Math.abs( tangents[ 0 ].x ); + var ty = Math.abs( tangents[ 0 ].y ); + var tz = Math.abs( tangents[ 0 ].z ); + + if ( tx <= min ) { + + min = tx; + normal.set( 1, 0, 0 ); + + } + + if ( ty <= min ) { + + min = ty; + normal.set( 0, 1, 0 ); + + } + + if ( tz <= min ) { + + normal.set( 0, 0, 1 ); + + } + + vec.crossVectors( tangents[ 0 ], normal ).normalize(); + + normals[ 0 ].crossVectors( tangents[ 0 ], vec ); + binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] ); + + + // compute the slowly-varying normal and binormal vectors for each segment on the curve + + for ( i = 1; i <= segments; i ++ ) { + + normals[ i ] = normals[ i - 1 ].clone(); + + binormals[ i ] = binormals[ i - 1 ].clone(); + + vec.crossVectors( tangents[ i - 1 ], tangents[ i ] ); + + if ( vec.length() > Number.EPSILON ) { + + vec.normalize(); + + theta = Math.acos( _Math.clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors + + normals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) ); + + } + + binormals[ i ].crossVectors( tangents[ i ], normals[ i ] ); + + } + + // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same + + if ( closed === true ) { + + theta = Math.acos( _Math.clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) ); + theta /= segments; + + if ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) { + + theta = - theta; + + } + + for ( i = 1; i <= segments; i ++ ) { + + // twist a little... + normals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) ); + binormals[ i ].crossVectors( tangents[ i ], normals[ i ] ); + + } + + } + + return { + tangents: tangents, + normals: normals, + binormals: binormals + }; + + } + + }; + + // TODO: Transformation for Curves? + + /************************************************************** + * 3D Curves + **************************************************************/ + + // A Factory method for creating new curve subclasses + + Curve.create = function ( constructor, getPointFunc ) { + + constructor.prototype = Object.create( Curve.prototype ); + constructor.prototype.constructor = constructor; + constructor.prototype.getPoint = getPointFunc; + + return constructor; + + }; + + /************************************************************** + * Line + **************************************************************/ + + function LineCurve( v1, v2 ) { + + this.v1 = v1; + this.v2 = v2; + + } + + LineCurve.prototype = Object.create( Curve.prototype ); + LineCurve.prototype.constructor = LineCurve; + + LineCurve.prototype.isLineCurve = true; + + LineCurve.prototype.getPoint = function ( t ) { + + if ( t === 1 ) { + + return this.v2.clone(); + + } + + var point = this.v2.clone().sub( this.v1 ); + point.multiplyScalar( t ).add( this.v1 ); + + return point; + + }; + + // Line curve is linear, so we can overwrite default getPointAt + + LineCurve.prototype.getPointAt = function ( u ) { + + return this.getPoint( u ); + + }; + + LineCurve.prototype.getTangent = function( t ) { + + var tangent = this.v2.clone().sub( this.v1 ); + + return tangent.normalize(); + + }; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * + **/ + + /************************************************************** + * Curved Path - a curve path is simply a array of connected + * curves, but retains the api of a curve + **************************************************************/ + + function CurvePath() { + + this.curves = []; + + this.autoClose = false; // Automatically closes the path + + } + + CurvePath.prototype = Object.assign( Object.create( Curve.prototype ), { + + constructor: CurvePath, + + add: function ( curve ) { + + this.curves.push( curve ); + + }, + + closePath: function () { + + // Add a line curve if start and end of lines are not connected + var startPoint = this.curves[ 0 ].getPoint( 0 ); + var endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 ); + + if ( ! startPoint.equals( endPoint ) ) { + + this.curves.push( new LineCurve( endPoint, startPoint ) ); + + } + + }, + + // To get accurate point with reference to + // entire path distance at time t, + // following has to be done: + + // 1. Length of each sub path have to be known + // 2. Locate and identify type of curve + // 3. Get t for the curve + // 4. Return curve.getPointAt(t') + + getPoint: function ( t ) { + + var d = t * this.getLength(); + var curveLengths = this.getCurveLengths(); + var i = 0; + + // To think about boundaries points. + + while ( i < curveLengths.length ) { + + if ( curveLengths[ i ] >= d ) { + + var diff = curveLengths[ i ] - d; + var curve = this.curves[ i ]; + + var segmentLength = curve.getLength(); + var u = segmentLength === 0 ? 0 : 1 - diff / segmentLength; + + return curve.getPointAt( u ); + + } + + i ++; + + } + + return null; + + // loop where sum != 0, sum > d , sum+1 1 && !points[ points.length - 1 ].equals( points[ 0 ] ) ) { + + points.push( points[ 0 ] ); + + } + + return points; + + }, + + /************************************************************** + * Create Geometries Helpers + **************************************************************/ + + /// Generate geometry from path points (for Line or Points objects) + + createPointsGeometry: function ( divisions ) { + + var pts = this.getPoints( divisions ); + return this.createGeometry( pts ); + + }, + + // Generate geometry from equidistant sampling along the path + + createSpacedPointsGeometry: function ( divisions ) { + + var pts = this.getSpacedPoints( divisions ); + return this.createGeometry( pts ); + + }, + + createGeometry: function ( points ) { + + var geometry = new Geometry(); + + for ( var i = 0, l = points.length; i < l; i ++ ) { + + var point = points[ i ]; + geometry.vertices.push( new Vector3( point.x, point.y, point.z || 0 ) ); + + } + + return geometry; + + } + + } ); + + /************************************************************** + * Ellipse curve + **************************************************************/ + + function EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) { + + this.aX = aX; + this.aY = aY; + + this.xRadius = xRadius; + this.yRadius = yRadius; + + this.aStartAngle = aStartAngle; + this.aEndAngle = aEndAngle; + + this.aClockwise = aClockwise; + + this.aRotation = aRotation || 0; + + } + + EllipseCurve.prototype = Object.create( Curve.prototype ); + EllipseCurve.prototype.constructor = EllipseCurve; + + EllipseCurve.prototype.isEllipseCurve = true; + + EllipseCurve.prototype.getPoint = function( t ) { + + var twoPi = Math.PI * 2; + var deltaAngle = this.aEndAngle - this.aStartAngle; + var samePoints = Math.abs( deltaAngle ) < Number.EPSILON; + + // ensures that deltaAngle is 0 .. 2 PI + while ( deltaAngle < 0 ) deltaAngle += twoPi; + while ( deltaAngle > twoPi ) deltaAngle -= twoPi; + + if ( deltaAngle < Number.EPSILON ) { + + if ( samePoints ) { + + deltaAngle = 0; + + } else { + + deltaAngle = twoPi; + + } + + } + + if ( this.aClockwise === true && ! samePoints ) { + + if ( deltaAngle === twoPi ) { + + deltaAngle = - twoPi; + + } else { + + deltaAngle = deltaAngle - twoPi; + + } + + } + + var angle = this.aStartAngle + t * deltaAngle; + var x = this.aX + this.xRadius * Math.cos( angle ); + var y = this.aY + this.yRadius * Math.sin( angle ); + + if ( this.aRotation !== 0 ) { + + var cos = Math.cos( this.aRotation ); + var sin = Math.sin( this.aRotation ); + + var tx = x - this.aX; + var ty = y - this.aY; + + // Rotate the point about the center of the ellipse. + x = tx * cos - ty * sin + this.aX; + y = tx * sin + ty * cos + this.aY; + + } + + return new Vector2( x, y ); + + }; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + */ + + var CurveUtils = { + + tangentQuadraticBezier: function ( t, p0, p1, p2 ) { + + return 2 * ( 1 - t ) * ( p1 - p0 ) + 2 * t * ( p2 - p1 ); + + }, + + // Puay Bing, thanks for helping with this derivative! + + tangentCubicBezier: function ( t, p0, p1, p2, p3 ) { + + return - 3 * p0 * ( 1 - t ) * ( 1 - t ) + + 3 * p1 * ( 1 - t ) * ( 1 - t ) - 6 * t * p1 * ( 1 - t ) + + 6 * t * p2 * ( 1 - t ) - 3 * t * t * p2 + + 3 * t * t * p3; + + }, + + tangentSpline: function ( t, p0, p1, p2, p3 ) { + + // To check if my formulas are correct + + var h00 = 6 * t * t - 6 * t; // derived from 2t^3 − 3t^2 + 1 + var h10 = 3 * t * t - 4 * t + 1; // t^3 − 2t^2 + t + var h01 = - 6 * t * t + 6 * t; // − 2t3 + 3t2 + var h11 = 3 * t * t - 2 * t; // t3 − t2 + + return h00 + h10 + h01 + h11; + + }, + + // Catmull-Rom + + interpolate: function( p0, p1, p2, p3, t ) { + + var v0 = ( p2 - p0 ) * 0.5; + var v1 = ( p3 - p1 ) * 0.5; + var t2 = t * t; + var t3 = t * t2; + return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1; + + } + + }; + + /************************************************************** + * Spline curve + **************************************************************/ + + function SplineCurve( points /* array of Vector2 */ ) { + + this.points = ( points === undefined ) ? [] : points; + + } + + SplineCurve.prototype = Object.create( Curve.prototype ); + SplineCurve.prototype.constructor = SplineCurve; + + SplineCurve.prototype.isSplineCurve = true; + + SplineCurve.prototype.getPoint = function ( t ) { + + var points = this.points; + var point = ( points.length - 1 ) * t; + + var intPoint = Math.floor( point ); + var weight = point - intPoint; + + var point0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ]; + var point1 = points[ intPoint ]; + var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ]; + var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ]; + + var interpolate = CurveUtils.interpolate; + + return new Vector2( + interpolate( point0.x, point1.x, point2.x, point3.x, weight ), + interpolate( point0.y, point1.y, point2.y, point3.y, weight ) + ); + + }; + + /************************************************************** + * Cubic Bezier curve + **************************************************************/ + + function CubicBezierCurve( v0, v1, v2, v3 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + + } + + CubicBezierCurve.prototype = Object.create( Curve.prototype ); + CubicBezierCurve.prototype.constructor = CubicBezierCurve; + + CubicBezierCurve.prototype.getPoint = function ( t ) { + + var b3 = ShapeUtils.b3; + + return new Vector2( + b3( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ), + b3( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ) + ); + + }; + + CubicBezierCurve.prototype.getTangent = function( t ) { + + var tangentCubicBezier = CurveUtils.tangentCubicBezier; + + return new Vector2( + tangentCubicBezier( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ), + tangentCubicBezier( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ) + ).normalize(); + + }; + + /************************************************************** + * Quadratic Bezier curve + **************************************************************/ + + + function QuadraticBezierCurve( v0, v1, v2 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + + } + + QuadraticBezierCurve.prototype = Object.create( Curve.prototype ); + QuadraticBezierCurve.prototype.constructor = QuadraticBezierCurve; + + + QuadraticBezierCurve.prototype.getPoint = function ( t ) { + + var b2 = ShapeUtils.b2; + + return new Vector2( + b2( t, this.v0.x, this.v1.x, this.v2.x ), + b2( t, this.v0.y, this.v1.y, this.v2.y ) + ); + + }; + + + QuadraticBezierCurve.prototype.getTangent = function( t ) { + + var tangentQuadraticBezier = CurveUtils.tangentQuadraticBezier; + + return new Vector2( + tangentQuadraticBezier( t, this.v0.x, this.v1.x, this.v2.x ), + tangentQuadraticBezier( t, this.v0.y, this.v1.y, this.v2.y ) + ).normalize(); + + }; + + var PathPrototype = Object.assign( Object.create( CurvePath.prototype ), { + + fromPoints: function ( vectors ) { + + this.moveTo( vectors[ 0 ].x, vectors[ 0 ].y ); + + for ( var i = 1, l = vectors.length; i < l; i ++ ) { + + this.lineTo( vectors[ i ].x, vectors[ i ].y ); + + } + + }, + + moveTo: function ( x, y ) { + + this.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying? + + }, + + lineTo: function ( x, y ) { + + var curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) ); + this.curves.push( curve ); + + this.currentPoint.set( x, y ); + + }, + + quadraticCurveTo: function ( aCPx, aCPy, aX, aY ) { + + var curve = new QuadraticBezierCurve( + this.currentPoint.clone(), + new Vector2( aCPx, aCPy ), + new Vector2( aX, aY ) + ); + + this.curves.push( curve ); + + this.currentPoint.set( aX, aY ); + + }, + + bezierCurveTo: function ( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) { + + var curve = new CubicBezierCurve( + this.currentPoint.clone(), + new Vector2( aCP1x, aCP1y ), + new Vector2( aCP2x, aCP2y ), + new Vector2( aX, aY ) + ); + + this.curves.push( curve ); + + this.currentPoint.set( aX, aY ); + + }, + + splineThru: function ( pts /*Array of Vector*/ ) { + + var npts = [ this.currentPoint.clone() ].concat( pts ); + + var curve = new SplineCurve( npts ); + this.curves.push( curve ); + + this.currentPoint.copy( pts[ pts.length - 1 ] ); + + }, + + arc: function ( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) { + + var x0 = this.currentPoint.x; + var y0 = this.currentPoint.y; + + this.absarc( aX + x0, aY + y0, aRadius, + aStartAngle, aEndAngle, aClockwise ); + + }, + + absarc: function ( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) { + + this.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise ); + + }, + + ellipse: function ( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) { + + var x0 = this.currentPoint.x; + var y0 = this.currentPoint.y; + + this.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ); + + }, + + absellipse: function ( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) { + + var curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ); + + if ( this.curves.length > 0 ) { + + // if a previous curve is present, attempt to join + var firstPoint = curve.getPoint( 0 ); + + if ( ! firstPoint.equals( this.currentPoint ) ) { + + this.lineTo( firstPoint.x, firstPoint.y ); + + } + + } + + this.curves.push( curve ); + + var lastPoint = curve.getPoint( 1 ); + this.currentPoint.copy( lastPoint ); + + } + + } ); + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Defines a 2d shape plane using paths. + **/ + + // STEP 1 Create a path. + // STEP 2 Turn path into shape. + // STEP 3 ExtrudeGeometry takes in Shape/Shapes + // STEP 3a - Extract points from each shape, turn to vertices + // STEP 3b - Triangulate each shape, add faces. + + function Shape() { + + Path.apply( this, arguments ); + + this.holes = []; + + } + + Shape.prototype = Object.assign( Object.create( PathPrototype ), { + + constructor: Shape, + + getPointsHoles: function ( divisions ) { + + var holesPts = []; + + for ( var i = 0, l = this.holes.length; i < l; i ++ ) { + + holesPts[ i ] = this.holes[ i ].getPoints( divisions ); + + } + + return holesPts; + + }, + + // Get points of shape and holes (keypoints based on segments parameter) + + extractAllPoints: function ( divisions ) { + + return { + + shape: this.getPoints( divisions ), + holes: this.getPointsHoles( divisions ) + + }; + + }, + + extractPoints: function ( divisions ) { + + return this.extractAllPoints( divisions ); + + } + + } ); + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Creates free form 2d path using series of points, lines or curves. + * + **/ + + function Path( points ) { + + CurvePath.call( this ); + this.currentPoint = new Vector2(); + + if ( points ) { + + this.fromPoints( points ); + + } + + } + + Path.prototype = PathPrototype; + PathPrototype.constructor = Path; + + + // minimal class for proxing functions to Path. Replaces old "extractSubpaths()" + function ShapePath() { + this.subPaths = []; + this.currentPath = null; + } + + ShapePath.prototype = { + moveTo: function ( x, y ) { + this.currentPath = new Path(); + this.subPaths.push(this.currentPath); + this.currentPath.moveTo( x, y ); + }, + lineTo: function ( x, y ) { + this.currentPath.lineTo( x, y ); + }, + quadraticCurveTo: function ( aCPx, aCPy, aX, aY ) { + this.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY ); + }, + bezierCurveTo: function ( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) { + this.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ); + }, + splineThru: function ( pts ) { + this.currentPath.splineThru( pts ); + }, + + toShapes: function ( isCCW, noHoles ) { + + function toShapesNoHoles( inSubpaths ) { + + var shapes = []; + + for ( var i = 0, l = inSubpaths.length; i < l; i ++ ) { + + var tmpPath = inSubpaths[ i ]; + + var tmpShape = new Shape(); + tmpShape.curves = tmpPath.curves; + + shapes.push( tmpShape ); + + } + + return shapes; + + } + + function isPointInsidePolygon( inPt, inPolygon ) { + + var polyLen = inPolygon.length; + + // inPt on polygon contour => immediate success or + // toggling of inside/outside at every single! intersection point of an edge + // with the horizontal line through inPt, left of inPt + // not counting lowerY endpoints of edges and whole edges on that line + var inside = false; + for ( var p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) { + + var edgeLowPt = inPolygon[ p ]; + var edgeHighPt = inPolygon[ q ]; + + var edgeDx = edgeHighPt.x - edgeLowPt.x; + var edgeDy = edgeHighPt.y - edgeLowPt.y; + + if ( Math.abs( edgeDy ) > Number.EPSILON ) { + + // not parallel + if ( edgeDy < 0 ) { + + edgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx; + edgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy; + + } + if ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) continue; + + if ( inPt.y === edgeLowPt.y ) { + + if ( inPt.x === edgeLowPt.x ) return true; // inPt is on contour ? + // continue; // no intersection or edgeLowPt => doesn't count !!! + + } else { + + var perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y ); + if ( perpEdge === 0 ) return true; // inPt is on contour ? + if ( perpEdge < 0 ) continue; + inside = ! inside; // true intersection left of inPt + + } + + } else { + + // parallel or collinear + if ( inPt.y !== edgeLowPt.y ) continue; // parallel + // edge lies on the same horizontal line as inPt + if ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) || + ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) ) return true; // inPt: Point on contour ! + // continue; + + } + + } + + return inside; + + } + + var isClockWise = ShapeUtils.isClockWise; + + var subPaths = this.subPaths; + if ( subPaths.length === 0 ) return []; + + if ( noHoles === true ) return toShapesNoHoles( subPaths ); + + + var solid, tmpPath, tmpShape, shapes = []; + + if ( subPaths.length === 1 ) { + + tmpPath = subPaths[ 0 ]; + tmpShape = new Shape(); + tmpShape.curves = tmpPath.curves; + shapes.push( tmpShape ); + return shapes; + + } + + var holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() ); + holesFirst = isCCW ? ! holesFirst : holesFirst; + + // console.log("Holes first", holesFirst); + + var betterShapeHoles = []; + var newShapes = []; + var newShapeHoles = []; + var mainIdx = 0; + var tmpPoints; + + newShapes[ mainIdx ] = undefined; + newShapeHoles[ mainIdx ] = []; + + for ( var i = 0, l = subPaths.length; i < l; i ++ ) { + + tmpPath = subPaths[ i ]; + tmpPoints = tmpPath.getPoints(); + solid = isClockWise( tmpPoints ); + solid = isCCW ? ! solid : solid; + + if ( solid ) { + + if ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) ) mainIdx ++; + + newShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints }; + newShapes[ mainIdx ].s.curves = tmpPath.curves; + + if ( holesFirst ) mainIdx ++; + newShapeHoles[ mainIdx ] = []; + + //console.log('cw', i); + + } else { + + newShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } ); + + //console.log('ccw', i); + + } + + } + + // only Holes? -> probably all Shapes with wrong orientation + if ( ! newShapes[ 0 ] ) return toShapesNoHoles( subPaths ); + + + if ( newShapes.length > 1 ) { + + var ambiguous = false; + var toChange = []; + + for ( var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) { + + betterShapeHoles[ sIdx ] = []; + + } + + for ( var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) { + + var sho = newShapeHoles[ sIdx ]; + + for ( var hIdx = 0; hIdx < sho.length; hIdx ++ ) { + + var ho = sho[ hIdx ]; + var hole_unassigned = true; + + for ( var s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) { + + if ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) { + + if ( sIdx !== s2Idx ) toChange.push( { froms: sIdx, tos: s2Idx, hole: hIdx } ); + if ( hole_unassigned ) { + + hole_unassigned = false; + betterShapeHoles[ s2Idx ].push( ho ); + + } else { + + ambiguous = true; + + } + + } + + } + if ( hole_unassigned ) { + + betterShapeHoles[ sIdx ].push( ho ); + + } + + } + + } + // console.log("ambiguous: ", ambiguous); + if ( toChange.length > 0 ) { + + // console.log("to change: ", toChange); + if ( ! ambiguous ) newShapeHoles = betterShapeHoles; + + } + + } + + var tmpHoles; + + for ( var i = 0, il = newShapes.length; i < il; i ++ ) { + + tmpShape = newShapes[ i ].s; + shapes.push( tmpShape ); + tmpHoles = newShapeHoles[ i ]; + + for ( var j = 0, jl = tmpHoles.length; j < jl; j ++ ) { + + tmpShape.holes.push( tmpHoles[ j ].h ); + + } + + } + + //console.log("shape", shapes); + + return shapes; + + } + }; + + /** + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author mrdoob / http://mrdoob.com/ + */ + + function Font( data ) { + + this.data = data; + + } + + Object.assign( Font.prototype, { + + isFont: true, + + generateShapes: function ( text, size, divisions ) { + + function createPaths( text ) { + + var chars = String( text ).split( '' ); + var scale = size / data.resolution; + var offset = 0; + + var paths = []; + + for ( var i = 0; i < chars.length; i ++ ) { + + var ret = createPath( chars[ i ], scale, offset ); + offset += ret.offset; + + paths.push( ret.path ); + + } + + return paths; + + } + + function createPath( c, scale, offset ) { + + var glyph = data.glyphs[ c ] || data.glyphs[ '?' ]; + + if ( ! glyph ) return; + + var path = new ShapePath(); + + var pts = [], b2 = ShapeUtils.b2, b3 = ShapeUtils.b3; + var x, y, cpx, cpy, cpx0, cpy0, cpx1, cpy1, cpx2, cpy2, laste; + + if ( glyph.o ) { + + var outline = glyph._cachedOutline || ( glyph._cachedOutline = glyph.o.split( ' ' ) ); + + for ( var i = 0, l = outline.length; i < l; ) { + + var action = outline[ i ++ ]; + + switch ( action ) { + + case 'm': // moveTo + + x = outline[ i ++ ] * scale + offset; + y = outline[ i ++ ] * scale; + + path.moveTo( x, y ); + + break; + + case 'l': // lineTo + + x = outline[ i ++ ] * scale + offset; + y = outline[ i ++ ] * scale; + + path.lineTo( x, y ); + + break; + + case 'q': // quadraticCurveTo + + cpx = outline[ i ++ ] * scale + offset; + cpy = outline[ i ++ ] * scale; + cpx1 = outline[ i ++ ] * scale + offset; + cpy1 = outline[ i ++ ] * scale; + + path.quadraticCurveTo( cpx1, cpy1, cpx, cpy ); + + laste = pts[ pts.length - 1 ]; + + if ( laste ) { + + cpx0 = laste.x; + cpy0 = laste.y; + + for ( var i2 = 1; i2 <= divisions; i2 ++ ) { + + var t = i2 / divisions; + b2( t, cpx0, cpx1, cpx ); + b2( t, cpy0, cpy1, cpy ); + + } + + } + + break; + + case 'b': // bezierCurveTo + + cpx = outline[ i ++ ] * scale + offset; + cpy = outline[ i ++ ] * scale; + cpx1 = outline[ i ++ ] * scale + offset; + cpy1 = outline[ i ++ ] * scale; + cpx2 = outline[ i ++ ] * scale + offset; + cpy2 = outline[ i ++ ] * scale; + + path.bezierCurveTo( cpx1, cpy1, cpx2, cpy2, cpx, cpy ); + + laste = pts[ pts.length - 1 ]; + + if ( laste ) { + + cpx0 = laste.x; + cpy0 = laste.y; + + for ( var i2 = 1; i2 <= divisions; i2 ++ ) { + + var t = i2 / divisions; + b3( t, cpx0, cpx1, cpx2, cpx ); + b3( t, cpy0, cpy1, cpy2, cpy ); + + } + + } + + break; + + } + + } + + } + + return { offset: glyph.ha * scale, path: path }; + + } + + // + + if ( size === undefined ) size = 100; + if ( divisions === undefined ) divisions = 4; + + var data = this.data; + + var paths = createPaths( text ); + var shapes = []; + + for ( var p = 0, pl = paths.length; p < pl; p ++ ) { + + Array.prototype.push.apply( shapes, paths[ p ].toShapes() ); + + } + + return shapes; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function FontLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( FontLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new XHRLoader( this.manager ); + loader.load( url, function ( text ) { + + var json; + + try { + + json = JSON.parse( text ); + + } catch ( e ) { + + console.warn( 'THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.' ); + json = JSON.parse( text.substring( 65, text.length - 2 ) ); + + } + + var font = scope.parse( json ); + + if ( onLoad ) onLoad( font ); + + }, onProgress, onError ); + + }, + + parse: function ( json ) { + + return new Font( json ); + + } + + } ); + + var context; + + function getAudioContext() { + + if ( context === undefined ) { + + context = new ( window.AudioContext || window.webkitAudioContext )(); + + } + + return context; + + } + + /** + * @author Reece Aaron Lecrivain / http://reecenotes.com/ + */ + + function AudioLoader( manager ) { + + this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager; + + } + + Object.assign( AudioLoader.prototype, { + + load: function ( url, onLoad, onProgress, onError ) { + + var loader = new XHRLoader( this.manager ); + loader.setResponseType( 'arraybuffer' ); + loader.load( url, function ( buffer ) { + + var context = getAudioContext(); + + context.decodeAudioData( buffer, function ( audioBuffer ) { + + onLoad( audioBuffer ); + + } ); + + }, onProgress, onError ); + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function StereoCamera() { + + this.type = 'StereoCamera'; + + this.aspect = 1; + + this.eyeSep = 0.064; + + this.cameraL = new PerspectiveCamera(); + this.cameraL.layers.enable( 1 ); + this.cameraL.matrixAutoUpdate = false; + + this.cameraR = new PerspectiveCamera(); + this.cameraR.layers.enable( 2 ); + this.cameraR.matrixAutoUpdate = false; + + } + + Object.assign( StereoCamera.prototype, { + + update: ( function () { + + var instance, focus, fov, aspect, near, far, zoom; + + var eyeRight = new Matrix4(); + var eyeLeft = new Matrix4(); + + return function update( camera ) { + + var needsUpdate = instance !== this || focus !== camera.focus || fov !== camera.fov || + aspect !== camera.aspect * this.aspect || near !== camera.near || + far !== camera.far || zoom !== camera.zoom; + + if ( needsUpdate ) { + + instance = this; + focus = camera.focus; + fov = camera.fov; + aspect = camera.aspect * this.aspect; + near = camera.near; + far = camera.far; + zoom = camera.zoom; + + // Off-axis stereoscopic effect based on + // http://paulbourke.net/stereographics/stereorender/ + + var projectionMatrix = camera.projectionMatrix.clone(); + var eyeSep = this.eyeSep / 2; + var eyeSepOnProjection = eyeSep * near / focus; + var ymax = ( near * Math.tan( _Math.DEG2RAD * fov * 0.5 ) ) / zoom; + var xmin, xmax; + + // translate xOffset + + eyeLeft.elements[ 12 ] = - eyeSep; + eyeRight.elements[ 12 ] = eyeSep; + + // for left eye + + xmin = - ymax * aspect + eyeSepOnProjection; + xmax = ymax * aspect + eyeSepOnProjection; + + projectionMatrix.elements[ 0 ] = 2 * near / ( xmax - xmin ); + projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin ); + + this.cameraL.projectionMatrix.copy( projectionMatrix ); + + // for right eye + + xmin = - ymax * aspect - eyeSepOnProjection; + xmax = ymax * aspect - eyeSepOnProjection; + + projectionMatrix.elements[ 0 ] = 2 * near / ( xmax - xmin ); + projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin ); + + this.cameraR.projectionMatrix.copy( projectionMatrix ); + + } + + this.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( eyeLeft ); + this.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( eyeRight ); + + }; + + } )() + + } ); + + /** + * Camera for rendering cube maps + * - renders scene into axis-aligned cube + * + * @author alteredq / http://alteredqualia.com/ + */ + + function CubeCamera( near, far, cubeResolution ) { + + Object3D.call( this ); + + this.type = 'CubeCamera'; + + var fov = 90, aspect = 1; + + var cameraPX = new PerspectiveCamera( fov, aspect, near, far ); + cameraPX.up.set( 0, - 1, 0 ); + cameraPX.lookAt( new Vector3( 1, 0, 0 ) ); + this.add( cameraPX ); + + var cameraNX = new PerspectiveCamera( fov, aspect, near, far ); + cameraNX.up.set( 0, - 1, 0 ); + cameraNX.lookAt( new Vector3( - 1, 0, 0 ) ); + this.add( cameraNX ); + + var cameraPY = new PerspectiveCamera( fov, aspect, near, far ); + cameraPY.up.set( 0, 0, 1 ); + cameraPY.lookAt( new Vector3( 0, 1, 0 ) ); + this.add( cameraPY ); + + var cameraNY = new PerspectiveCamera( fov, aspect, near, far ); + cameraNY.up.set( 0, 0, - 1 ); + cameraNY.lookAt( new Vector3( 0, - 1, 0 ) ); + this.add( cameraNY ); + + var cameraPZ = new PerspectiveCamera( fov, aspect, near, far ); + cameraPZ.up.set( 0, - 1, 0 ); + cameraPZ.lookAt( new Vector3( 0, 0, 1 ) ); + this.add( cameraPZ ); + + var cameraNZ = new PerspectiveCamera( fov, aspect, near, far ); + cameraNZ.up.set( 0, - 1, 0 ); + cameraNZ.lookAt( new Vector3( 0, 0, - 1 ) ); + this.add( cameraNZ ); + + var options = { format: RGBFormat, magFilter: LinearFilter, minFilter: LinearFilter }; + + this.renderTarget = new WebGLRenderTargetCube( cubeResolution, cubeResolution, options ); + + this.updateCubeMap = function ( renderer, scene ) { + + if ( this.parent === null ) this.updateMatrixWorld(); + + var renderTarget = this.renderTarget; + var generateMipmaps = renderTarget.texture.generateMipmaps; + + renderTarget.texture.generateMipmaps = false; + + renderTarget.activeCubeFace = 0; + renderer.render( scene, cameraPX, renderTarget ); + + renderTarget.activeCubeFace = 1; + renderer.render( scene, cameraNX, renderTarget ); + + renderTarget.activeCubeFace = 2; + renderer.render( scene, cameraPY, renderTarget ); + + renderTarget.activeCubeFace = 3; + renderer.render( scene, cameraNY, renderTarget ); + + renderTarget.activeCubeFace = 4; + renderer.render( scene, cameraPZ, renderTarget ); + + renderTarget.texture.generateMipmaps = generateMipmaps; + + renderTarget.activeCubeFace = 5; + renderer.render( scene, cameraNZ, renderTarget ); + + renderer.setRenderTarget( null ); + + }; + + } + + CubeCamera.prototype = Object.create( Object3D.prototype ); + CubeCamera.prototype.constructor = CubeCamera; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function AudioListener() { + + Object3D.call( this ); + + this.type = 'AudioListener'; + + this.context = getAudioContext(); + + this.gain = this.context.createGain(); + this.gain.connect( this.context.destination ); + + this.filter = null; + + } + + AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: AudioListener, + + getInput: function () { + + return this.gain; + + }, + + removeFilter: function ( ) { + + if ( this.filter !== null ) { + + this.gain.disconnect( this.filter ); + this.filter.disconnect( this.context.destination ); + this.gain.connect( this.context.destination ); + this.filter = null; + + } + + }, + + getFilter: function () { + + return this.filter; + + }, + + setFilter: function ( value ) { + + if ( this.filter !== null ) { + + this.gain.disconnect( this.filter ); + this.filter.disconnect( this.context.destination ); + + } else { + + this.gain.disconnect( this.context.destination ); + + } + + this.filter = value; + this.gain.connect( this.filter ); + this.filter.connect( this.context.destination ); + + }, + + getMasterVolume: function () { + + return this.gain.gain.value; + + }, + + setMasterVolume: function ( value ) { + + this.gain.gain.value = value; + + }, + + updateMatrixWorld: ( function () { + + var position = new Vector3(); + var quaternion = new Quaternion(); + var scale = new Vector3(); + + var orientation = new Vector3(); + + return function updateMatrixWorld( force ) { + + Object3D.prototype.updateMatrixWorld.call( this, force ); + + var listener = this.context.listener; + var up = this.up; + + this.matrixWorld.decompose( position, quaternion, scale ); + + orientation.set( 0, 0, - 1 ).applyQuaternion( quaternion ); + + listener.setPosition( position.x, position.y, position.z ); + listener.setOrientation( orientation.x, orientation.y, orientation.z, up.x, up.y, up.z ); + + }; + + } )() + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + * @author Reece Aaron Lecrivain / http://reecenotes.com/ + */ + + function Audio( listener ) { + + Object3D.call( this ); + + this.type = 'Audio'; + + this.context = listener.context; + this.source = this.context.createBufferSource(); + this.source.onended = this.onEnded.bind( this ); + + this.gain = this.context.createGain(); + this.gain.connect( listener.getInput() ); + + this.autoplay = false; + + this.startTime = 0; + this.playbackRate = 1; + this.isPlaying = false; + this.hasPlaybackControl = true; + this.sourceType = 'empty'; + + this.filters = []; + + } + + Audio.prototype = Object.assign( Object.create( Object3D.prototype ), { + + constructor: Audio, + + getOutput: function () { + + return this.gain; + + }, + + setNodeSource: function ( audioNode ) { + + this.hasPlaybackControl = false; + this.sourceType = 'audioNode'; + this.source = audioNode; + this.connect(); + + return this; + + }, + + setBuffer: function ( audioBuffer ) { + + this.source.buffer = audioBuffer; + this.sourceType = 'buffer'; + + if ( this.autoplay ) this.play(); + + return this; + + }, + + play: function () { + + if ( this.isPlaying === true ) { + + console.warn( 'THREE.Audio: Audio is already playing.' ); + return; + + } + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return; + + } + + var source = this.context.createBufferSource(); + + source.buffer = this.source.buffer; + source.loop = this.source.loop; + source.onended = this.source.onended; + source.start( 0, this.startTime ); + source.playbackRate.value = this.playbackRate; + + this.isPlaying = true; + + this.source = source; + + return this.connect(); + + }, + + pause: function () { + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return; + + } + + this.source.stop(); + this.startTime = this.context.currentTime; + this.isPlaying = false; + + return this; + + }, + + stop: function () { + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return; + + } + + this.source.stop(); + this.startTime = 0; + this.isPlaying = false; + + return this; + + }, + + connect: function () { + + if ( this.filters.length > 0 ) { + + this.source.connect( this.filters[ 0 ] ); + + for ( var i = 1, l = this.filters.length; i < l; i ++ ) { + + this.filters[ i - 1 ].connect( this.filters[ i ] ); + + } + + this.filters[ this.filters.length - 1 ].connect( this.getOutput() ); + + } else { + + this.source.connect( this.getOutput() ); + + } + + return this; + + }, + + disconnect: function () { + + if ( this.filters.length > 0 ) { + + this.source.disconnect( this.filters[ 0 ] ); + + for ( var i = 1, l = this.filters.length; i < l; i ++ ) { + + this.filters[ i - 1 ].disconnect( this.filters[ i ] ); + + } + + this.filters[ this.filters.length - 1 ].disconnect( this.getOutput() ); + + } else { + + this.source.disconnect( this.getOutput() ); + + } + + return this; + + }, + + getFilters: function () { + + return this.filters; + + }, + + setFilters: function ( value ) { + + if ( ! value ) value = []; + + if ( this.isPlaying === true ) { + + this.disconnect(); + this.filters = value; + this.connect(); + + } else { + + this.filters = value; + + } + + return this; + + }, + + getFilter: function () { + + return this.getFilters()[ 0 ]; + + }, + + setFilter: function ( filter ) { + + return this.setFilters( filter ? [ filter ] : [] ); + + }, + + setPlaybackRate: function ( value ) { + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return; + + } + + this.playbackRate = value; + + if ( this.isPlaying === true ) { + + this.source.playbackRate.value = this.playbackRate; + + } + + return this; + + }, + + getPlaybackRate: function () { + + return this.playbackRate; + + }, + + onEnded: function () { + + this.isPlaying = false; + + }, + + getLoop: function () { + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return false; + + } + + return this.source.loop; + + }, + + setLoop: function ( value ) { + + if ( this.hasPlaybackControl === false ) { + + console.warn( 'THREE.Audio: this Audio has no playback control.' ); + return; + + } + + this.source.loop = value; + + }, + + getVolume: function () { + + return this.gain.gain.value; + + }, + + + setVolume: function ( value ) { + + this.gain.gain.value = value; + + return this; + + } + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function PositionalAudio( listener ) { + + Audio.call( this, listener ); + + this.panner = this.context.createPanner(); + this.panner.connect( this.gain ); + + } + + PositionalAudio.prototype = Object.assign( Object.create( Audio.prototype ), { + + constructor: PositionalAudio, + + getOutput: function () { + + return this.panner; + + }, + + getRefDistance: function () { + + return this.panner.refDistance; + + }, + + setRefDistance: function ( value ) { + + this.panner.refDistance = value; + + }, + + getRolloffFactor: function () { + + return this.panner.rolloffFactor; + + }, + + setRolloffFactor: function ( value ) { + + this.panner.rolloffFactor = value; + + }, + + getDistanceModel: function () { + + return this.panner.distanceModel; + + }, + + setDistanceModel: function ( value ) { + + this.panner.distanceModel = value; + + }, + + getMaxDistance: function () { + + return this.panner.maxDistance; + + }, + + setMaxDistance: function ( value ) { + + this.panner.maxDistance = value; + + }, + + updateMatrixWorld: ( function () { + + var position = new Vector3(); + + return function updateMatrixWorld( force ) { + + Object3D.prototype.updateMatrixWorld.call( this, force ); + + position.setFromMatrixPosition( this.matrixWorld ); + + this.panner.setPosition( position.x, position.y, position.z ); + + }; + + } )() + + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function AudioAnalyser( audio, fftSize ) { + + this.analyser = audio.context.createAnalyser(); + this.analyser.fftSize = fftSize !== undefined ? fftSize : 2048; + + this.data = new Uint8Array( this.analyser.frequencyBinCount ); + + audio.getOutput().connect( this.analyser ); + + } + + Object.assign( AudioAnalyser.prototype, { + + getFrequencyData: function () { + + this.analyser.getByteFrequencyData( this.data ); + + return this.data; + + }, + + getAverageFrequency: function () { + + var value = 0, data = this.getFrequencyData(); + + for ( var i = 0; i < data.length; i ++ ) { + + value += data[ i ]; + + } + + return value / data.length; + + } + + } ); + + /** + * + * Buffered scene graph property that allows weighted accumulation. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function PropertyMixer( binding, typeName, valueSize ) { + + this.binding = binding; + this.valueSize = valueSize; + + var bufferType = Float64Array, + mixFunction; + + switch ( typeName ) { + + case 'quaternion': mixFunction = this._slerp; break; + + case 'string': + case 'bool': + + bufferType = Array, mixFunction = this._select; break; + + default: mixFunction = this._lerp; + + } + + this.buffer = new bufferType( valueSize * 4 ); + // layout: [ incoming | accu0 | accu1 | orig ] + // + // interpolators can use .buffer as their .result + // the data then goes to 'incoming' + // + // 'accu0' and 'accu1' are used frame-interleaved for + // the cumulative result and are compared to detect + // changes + // + // 'orig' stores the original state of the property + + this._mixBufferRegion = mixFunction; + + this.cumulativeWeight = 0; + + this.useCount = 0; + this.referenceCount = 0; + + } + + PropertyMixer.prototype = { + + constructor: PropertyMixer, + + // accumulate data in the 'incoming' region into 'accu' + accumulate: function( accuIndex, weight ) { + + // note: happily accumulating nothing when weight = 0, the caller knows + // the weight and shouldn't have made the call in the first place + + var buffer = this.buffer, + stride = this.valueSize, + offset = accuIndex * stride + stride, + + currentWeight = this.cumulativeWeight; + + if ( currentWeight === 0 ) { + + // accuN := incoming * weight + + for ( var i = 0; i !== stride; ++ i ) { + + buffer[ offset + i ] = buffer[ i ]; + + } + + currentWeight = weight; + + } else { + + // accuN := accuN + incoming * weight + + currentWeight += weight; + var mix = weight / currentWeight; + this._mixBufferRegion( buffer, offset, 0, mix, stride ); + + } + + this.cumulativeWeight = currentWeight; + + }, + + // apply the state of 'accu' to the binding when accus differ + apply: function( accuIndex ) { + + var stride = this.valueSize, + buffer = this.buffer, + offset = accuIndex * stride + stride, + + weight = this.cumulativeWeight, + + binding = this.binding; + + this.cumulativeWeight = 0; + + if ( weight < 1 ) { + + // accuN := accuN + original * ( 1 - cumulativeWeight ) + + var originalValueOffset = stride * 3; + + this._mixBufferRegion( + buffer, offset, originalValueOffset, 1 - weight, stride ); + + } + + for ( var i = stride, e = stride + stride; i !== e; ++ i ) { + + if ( buffer[ i ] !== buffer[ i + stride ] ) { + + // value has changed -> update scene graph + + binding.setValue( buffer, offset ); + break; + + } + + } + + }, + + // remember the state of the bound property and copy it to both accus + saveOriginalState: function() { + + var binding = this.binding; + + var buffer = this.buffer, + stride = this.valueSize, + + originalValueOffset = stride * 3; + + binding.getValue( buffer, originalValueOffset ); + + // accu[0..1] := orig -- initially detect changes against the original + for ( var i = stride, e = originalValueOffset; i !== e; ++ i ) { + + buffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ]; + + } + + this.cumulativeWeight = 0; + + }, + + // apply the state previously taken via 'saveOriginalState' to the binding + restoreOriginalState: function() { + + var originalValueOffset = this.valueSize * 3; + this.binding.setValue( this.buffer, originalValueOffset ); + + }, + + + // mix functions + + _select: function( buffer, dstOffset, srcOffset, t, stride ) { + + if ( t >= 0.5 ) { + + for ( var i = 0; i !== stride; ++ i ) { + + buffer[ dstOffset + i ] = buffer[ srcOffset + i ]; + + } + + } + + }, + + _slerp: function( buffer, dstOffset, srcOffset, t, stride ) { + + Quaternion.slerpFlat( buffer, dstOffset, + buffer, dstOffset, buffer, srcOffset, t ); + + }, + + _lerp: function( buffer, dstOffset, srcOffset, t, stride ) { + + var s = 1 - t; + + for ( var i = 0; i !== stride; ++ i ) { + + var j = dstOffset + i; + + buffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t; + + } + + } + + }; + + /** + * + * A reference to a real property in the scene graph. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function PropertyBinding( rootNode, path, parsedPath ) { + + this.path = path; + this.parsedPath = parsedPath || + PropertyBinding.parseTrackName( path ); + + this.node = PropertyBinding.findNode( + rootNode, this.parsedPath.nodeName ) || rootNode; + + this.rootNode = rootNode; + + } + + PropertyBinding.prototype = { + + constructor: PropertyBinding, + + getValue: function getValue_unbound( targetArray, offset ) { + + this.bind(); + this.getValue( targetArray, offset ); + + // Note: This class uses a State pattern on a per-method basis: + // 'bind' sets 'this.getValue' / 'setValue' and shadows the + // prototype version of these methods with one that represents + // the bound state. When the property is not found, the methods + // become no-ops. + + }, + + setValue: function getValue_unbound( sourceArray, offset ) { + + this.bind(); + this.setValue( sourceArray, offset ); + + }, + + // create getter / setter pair for a property in the scene graph + bind: function() { + + var targetObject = this.node, + parsedPath = this.parsedPath, + + objectName = parsedPath.objectName, + propertyName = parsedPath.propertyName, + propertyIndex = parsedPath.propertyIndex; + + if ( ! targetObject ) { + + targetObject = PropertyBinding.findNode( + this.rootNode, parsedPath.nodeName ) || this.rootNode; + + this.node = targetObject; + + } + + // set fail state so we can just 'return' on error + this.getValue = this._getValue_unavailable; + this.setValue = this._setValue_unavailable; + + // ensure there is a value node + if ( ! targetObject ) { + + console.error( " trying to update node for track: " + this.path + " but it wasn't found." ); + return; + + } + + if ( objectName ) { + + var objectIndex = parsedPath.objectIndex; + + // special cases were we need to reach deeper into the hierarchy to get the face materials.... + switch ( objectName ) { + + case 'materials': + + if ( ! targetObject.material ) { + + console.error( ' can not bind to material as node does not have a material', this ); + return; + + } + + if ( ! targetObject.material.materials ) { + + console.error( ' can not bind to material.materials as node.material does not have a materials array', this ); + return; + + } + + targetObject = targetObject.material.materials; + + break; + + case 'bones': + + if ( ! targetObject.skeleton ) { + + console.error( ' can not bind to bones as node does not have a skeleton', this ); + return; + + } + + // potential future optimization: skip this if propertyIndex is already an integer + // and convert the integer string to a true integer. + + targetObject = targetObject.skeleton.bones; + + // support resolving morphTarget names into indices. + for ( var i = 0; i < targetObject.length; i ++ ) { + + if ( targetObject[ i ].name === objectIndex ) { + + objectIndex = i; + break; + + } + + } + + break; + + default: + + if ( targetObject[ objectName ] === undefined ) { + + console.error( ' can not bind to objectName of node, undefined', this ); + return; + + } + + targetObject = targetObject[ objectName ]; + + } + + + if ( objectIndex !== undefined ) { + + if ( targetObject[ objectIndex ] === undefined ) { + + console.error( " trying to bind to objectIndex of objectName, but is undefined:", this, targetObject ); + return; + + } + + targetObject = targetObject[ objectIndex ]; + + } + + } + + // resolve property + var nodeProperty = targetObject[ propertyName ]; + + if ( nodeProperty === undefined ) { + + var nodeName = parsedPath.nodeName; + + console.error( " trying to update property for track: " + nodeName + + '.' + propertyName + " but it wasn't found.", targetObject ); + return; + + } + + // determine versioning scheme + var versioning = this.Versioning.None; + + if ( targetObject.needsUpdate !== undefined ) { // material + + versioning = this.Versioning.NeedsUpdate; + this.targetObject = targetObject; + + } else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform + + versioning = this.Versioning.MatrixWorldNeedsUpdate; + this.targetObject = targetObject; + + } + + // determine how the property gets bound + var bindingType = this.BindingType.Direct; + + if ( propertyIndex !== undefined ) { + // access a sub element of the property array (only primitives are supported right now) + + if ( propertyName === "morphTargetInfluences" ) { + // potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer. + + // support resolving morphTarget names into indices. + if ( ! targetObject.geometry ) { + + console.error( ' can not bind to morphTargetInfluences becasuse node does not have a geometry', this ); + return; + + } + + if ( ! targetObject.geometry.morphTargets ) { + + console.error( ' can not bind to morphTargetInfluences becasuse node does not have a geometry.morphTargets', this ); + return; + + } + + for ( var i = 0; i < this.node.geometry.morphTargets.length; i ++ ) { + + if ( targetObject.geometry.morphTargets[ i ].name === propertyIndex ) { + + propertyIndex = i; + break; + + } + + } + + } + + bindingType = this.BindingType.ArrayElement; + + this.resolvedProperty = nodeProperty; + this.propertyIndex = propertyIndex; + + } else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) { + // must use copy for Object3D.Euler/Quaternion + + bindingType = this.BindingType.HasFromToArray; + + this.resolvedProperty = nodeProperty; + + } else if ( nodeProperty.length !== undefined ) { + + bindingType = this.BindingType.EntireArray; + + this.resolvedProperty = nodeProperty; + + } else { + + this.propertyName = propertyName; + + } + + // select getter / setter + this.getValue = this.GetterByBindingType[ bindingType ]; + this.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ]; + + }, + + unbind: function() { + + this.node = null; + + // back to the prototype version of getValue / setValue + // note: avoiding to mutate the shape of 'this' via 'delete' + this.getValue = this._getValue_unbound; + this.setValue = this._setValue_unbound; + + } + + }; + + Object.assign( PropertyBinding.prototype, { // prototype, continued + + // these are used to "bind" a nonexistent property + _getValue_unavailable: function() {}, + _setValue_unavailable: function() {}, + + // initial state of these methods that calls 'bind' + _getValue_unbound: PropertyBinding.prototype.getValue, + _setValue_unbound: PropertyBinding.prototype.setValue, + + BindingType: { + Direct: 0, + EntireArray: 1, + ArrayElement: 2, + HasFromToArray: 3 + }, + + Versioning: { + None: 0, + NeedsUpdate: 1, + MatrixWorldNeedsUpdate: 2 + }, + + GetterByBindingType: [ + + function getValue_direct( buffer, offset ) { + + buffer[ offset ] = this.node[ this.propertyName ]; + + }, + + function getValue_array( buffer, offset ) { + + var source = this.resolvedProperty; + + for ( var i = 0, n = source.length; i !== n; ++ i ) { + + buffer[ offset ++ ] = source[ i ]; + + } + + }, + + function getValue_arrayElement( buffer, offset ) { + + buffer[ offset ] = this.resolvedProperty[ this.propertyIndex ]; + + }, + + function getValue_toArray( buffer, offset ) { + + this.resolvedProperty.toArray( buffer, offset ); + + } + + ], + + SetterByBindingTypeAndVersioning: [ + + [ + // Direct + + function setValue_direct( buffer, offset ) { + + this.node[ this.propertyName ] = buffer[ offset ]; + + }, + + function setValue_direct_setNeedsUpdate( buffer, offset ) { + + this.node[ this.propertyName ] = buffer[ offset ]; + this.targetObject.needsUpdate = true; + + }, + + function setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) { + + this.node[ this.propertyName ] = buffer[ offset ]; + this.targetObject.matrixWorldNeedsUpdate = true; + + } + + ], [ + + // EntireArray + + function setValue_array( buffer, offset ) { + + var dest = this.resolvedProperty; + + for ( var i = 0, n = dest.length; i !== n; ++ i ) { + + dest[ i ] = buffer[ offset ++ ]; + + } + + }, + + function setValue_array_setNeedsUpdate( buffer, offset ) { + + var dest = this.resolvedProperty; + + for ( var i = 0, n = dest.length; i !== n; ++ i ) { + + dest[ i ] = buffer[ offset ++ ]; + + } + + this.targetObject.needsUpdate = true; + + }, + + function setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) { + + var dest = this.resolvedProperty; + + for ( var i = 0, n = dest.length; i !== n; ++ i ) { + + dest[ i ] = buffer[ offset ++ ]; + + } + + this.targetObject.matrixWorldNeedsUpdate = true; + + } + + ], [ + + // ArrayElement + + function setValue_arrayElement( buffer, offset ) { + + this.resolvedProperty[ this.propertyIndex ] = buffer[ offset ]; + + }, + + function setValue_arrayElement_setNeedsUpdate( buffer, offset ) { + + this.resolvedProperty[ this.propertyIndex ] = buffer[ offset ]; + this.targetObject.needsUpdate = true; + + }, + + function setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) { + + this.resolvedProperty[ this.propertyIndex ] = buffer[ offset ]; + this.targetObject.matrixWorldNeedsUpdate = true; + + } + + ], [ + + // HasToFromArray + + function setValue_fromArray( buffer, offset ) { + + this.resolvedProperty.fromArray( buffer, offset ); + + }, + + function setValue_fromArray_setNeedsUpdate( buffer, offset ) { + + this.resolvedProperty.fromArray( buffer, offset ); + this.targetObject.needsUpdate = true; + + }, + + function setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) { + + this.resolvedProperty.fromArray( buffer, offset ); + this.targetObject.matrixWorldNeedsUpdate = true; + + } + + ] + + ] + + } ); + + PropertyBinding.Composite = + function( targetGroup, path, optionalParsedPath ) { + + var parsedPath = optionalParsedPath || + PropertyBinding.parseTrackName( path ); + + this._targetGroup = targetGroup; + this._bindings = targetGroup.subscribe_( path, parsedPath ); + + }; + + PropertyBinding.Composite.prototype = { + + constructor: PropertyBinding.Composite, + + getValue: function( array, offset ) { + + this.bind(); // bind all binding + + var firstValidIndex = this._targetGroup.nCachedObjects_, + binding = this._bindings[ firstValidIndex ]; + + // and only call .getValue on the first + if ( binding !== undefined ) binding.getValue( array, offset ); + + }, + + setValue: function( array, offset ) { + + var bindings = this._bindings; + + for ( var i = this._targetGroup.nCachedObjects_, + n = bindings.length; i !== n; ++ i ) { + + bindings[ i ].setValue( array, offset ); + + } + + }, + + bind: function() { + + var bindings = this._bindings; + + for ( var i = this._targetGroup.nCachedObjects_, + n = bindings.length; i !== n; ++ i ) { + + bindings[ i ].bind(); + + } + + }, + + unbind: function() { + + var bindings = this._bindings; + + for ( var i = this._targetGroup.nCachedObjects_, + n = bindings.length; i !== n; ++ i ) { + + bindings[ i ].unbind(); + + } + + } + + }; + + PropertyBinding.create = function( root, path, parsedPath ) { + + if ( ! ( (root && root.isAnimationObjectGroup) ) ) { + + return new PropertyBinding( root, path, parsedPath ); + + } else { + + return new PropertyBinding.Composite( root, path, parsedPath ); + + } + + }; + + PropertyBinding.parseTrackName = function( trackName ) { + + // matches strings in the form of: + // nodeName.property + // nodeName.property[accessor] + // nodeName.material.property[accessor] + // uuid.property[accessor] + // uuid.objectName[objectIndex].propertyName[propertyIndex] + // parentName/nodeName.property + // parentName/parentName/nodeName.property[index] + // .bone[Armature.DEF_cog].position + // scene:helium_balloon_model:helium_balloon_model.position + // created and tested via https://regex101.com/#javascript + + var re = /^((?:\w+[\/:])*)(\w+)?(?:\.(\w+)(?:\[(.+)\])?)?\.(\w+)(?:\[(.+)\])?$/; + var matches = re.exec( trackName ); + + if ( ! matches ) { + + throw new Error( "cannot parse trackName at all: " + trackName ); + + } + + var results = { + // directoryName: matches[ 1 ], // (tschw) currently unused + nodeName: matches[ 2 ], // allowed to be null, specified root node. + objectName: matches[ 3 ], + objectIndex: matches[ 4 ], + propertyName: matches[ 5 ], + propertyIndex: matches[ 6 ] // allowed to be null, specifies that the whole property is set. + }; + + if ( results.propertyName === null || results.propertyName.length === 0 ) { + + throw new Error( "can not parse propertyName from trackName: " + trackName ); + + } + + return results; + + }; + + PropertyBinding.findNode = function( root, nodeName ) { + + if ( ! nodeName || nodeName === "" || nodeName === "root" || nodeName === "." || nodeName === -1 || nodeName === root.name || nodeName === root.uuid ) { + + return root; + + } + + // search into skeleton bones. + if ( root.skeleton ) { + + var searchSkeleton = function( skeleton ) { + + for( var i = 0; i < skeleton.bones.length; i ++ ) { + + var bone = skeleton.bones[ i ]; + + if ( bone.name === nodeName ) { + + return bone; + + } + } + + return null; + + }; + + var bone = searchSkeleton( root.skeleton ); + + if ( bone ) { + + return bone; + + } + } + + // search into node subtree. + if ( root.children ) { + + var searchNodeSubtree = function( children ) { + + for( var i = 0; i < children.length; i ++ ) { + + var childNode = children[ i ]; + + if ( childNode.name === nodeName || childNode.uuid === nodeName ) { + + return childNode; + + } + + var result = searchNodeSubtree( childNode.children ); + + if ( result ) return result; + + } + + return null; + + }; + + var subTreeNode = searchNodeSubtree( root.children ); + + if ( subTreeNode ) { + + return subTreeNode; + + } + + } + + return null; + + }; + + /** + * + * A group of objects that receives a shared animation state. + * + * Usage: + * + * - Add objects you would otherwise pass as 'root' to the + * constructor or the .clipAction method of AnimationMixer. + * + * - Instead pass this object as 'root'. + * + * - You can also add and remove objects later when the mixer + * is running. + * + * Note: + * + * Objects of this class appear as one object to the mixer, + * so cache control of the individual objects must be done + * on the group. + * + * Limitation: + * + * - The animated properties must be compatible among the + * all objects in the group. + * + * - A single property can either be controlled through a + * target group or directly, but not both. + * + * @author tschw + */ + + function AnimationObjectGroup( var_args ) { + + this.uuid = _Math.generateUUID(); + + // cached objects followed by the active ones + this._objects = Array.prototype.slice.call( arguments ); + + this.nCachedObjects_ = 0; // threshold + // note: read by PropertyBinding.Composite + + var indices = {}; + this._indicesByUUID = indices; // for bookkeeping + + for ( var i = 0, n = arguments.length; i !== n; ++ i ) { + + indices[ arguments[ i ].uuid ] = i; + + } + + this._paths = []; // inside: string + this._parsedPaths = []; // inside: { we don't care, here } + this._bindings = []; // inside: Array< PropertyBinding > + this._bindingsIndicesByPath = {}; // inside: indices in these arrays + + var scope = this; + + this.stats = { + + objects: { + get total() { return scope._objects.length; }, + get inUse() { return this.total - scope.nCachedObjects_; } + }, + + get bindingsPerObject() { return scope._bindings.length; } + + }; + + } + + AnimationObjectGroup.prototype = { + + constructor: AnimationObjectGroup, + + isAnimationObjectGroup: true, + + add: function( var_args ) { + + var objects = this._objects, + nObjects = objects.length, + nCachedObjects = this.nCachedObjects_, + indicesByUUID = this._indicesByUUID, + paths = this._paths, + parsedPaths = this._parsedPaths, + bindings = this._bindings, + nBindings = bindings.length; + + for ( var i = 0, n = arguments.length; i !== n; ++ i ) { + + var object = arguments[ i ], + uuid = object.uuid, + index = indicesByUUID[ uuid ]; + + if ( index === undefined ) { + + // unknown object -> add it to the ACTIVE region + + index = nObjects ++; + indicesByUUID[ uuid ] = index; + objects.push( object ); + + // accounting is done, now do the same for all bindings + + for ( var j = 0, m = nBindings; j !== m; ++ j ) { + + bindings[ j ].push( + new PropertyBinding( + object, paths[ j ], parsedPaths[ j ] ) ); + + } + + } else if ( index < nCachedObjects ) { + + var knownObject = objects[ index ]; + + // move existing object to the ACTIVE region + + var firstActiveIndex = -- nCachedObjects, + lastCachedObject = objects[ firstActiveIndex ]; + + indicesByUUID[ lastCachedObject.uuid ] = index; + objects[ index ] = lastCachedObject; + + indicesByUUID[ uuid ] = firstActiveIndex; + objects[ firstActiveIndex ] = object; + + // accounting is done, now do the same for all bindings + + for ( var j = 0, m = nBindings; j !== m; ++ j ) { + + var bindingsForPath = bindings[ j ], + lastCached = bindingsForPath[ firstActiveIndex ], + binding = bindingsForPath[ index ]; + + bindingsForPath[ index ] = lastCached; + + if ( binding === undefined ) { + + // since we do not bother to create new bindings + // for objects that are cached, the binding may + // or may not exist + + binding = new PropertyBinding( + object, paths[ j ], parsedPaths[ j ] ); + + } + + bindingsForPath[ firstActiveIndex ] = binding; + + } + + } else if ( objects[ index ] !== knownObject) { + + console.error( "Different objects with the same UUID " + + "detected. Clean the caches or recreate your " + + "infrastructure when reloading scenes..." ); + + } // else the object is already where we want it to be + + } // for arguments + + this.nCachedObjects_ = nCachedObjects; + + }, + + remove: function( var_args ) { + + var objects = this._objects, + nCachedObjects = this.nCachedObjects_, + indicesByUUID = this._indicesByUUID, + bindings = this._bindings, + nBindings = bindings.length; + + for ( var i = 0, n = arguments.length; i !== n; ++ i ) { + + var object = arguments[ i ], + uuid = object.uuid, + index = indicesByUUID[ uuid ]; + + if ( index !== undefined && index >= nCachedObjects ) { + + // move existing object into the CACHED region + + var lastCachedIndex = nCachedObjects ++, + firstActiveObject = objects[ lastCachedIndex ]; + + indicesByUUID[ firstActiveObject.uuid ] = index; + objects[ index ] = firstActiveObject; + + indicesByUUID[ uuid ] = lastCachedIndex; + objects[ lastCachedIndex ] = object; + + // accounting is done, now do the same for all bindings + + for ( var j = 0, m = nBindings; j !== m; ++ j ) { + + var bindingsForPath = bindings[ j ], + firstActive = bindingsForPath[ lastCachedIndex ], + binding = bindingsForPath[ index ]; + + bindingsForPath[ index ] = firstActive; + bindingsForPath[ lastCachedIndex ] = binding; + + } + + } + + } // for arguments + + this.nCachedObjects_ = nCachedObjects; + + }, + + // remove & forget + uncache: function( var_args ) { + + var objects = this._objects, + nObjects = objects.length, + nCachedObjects = this.nCachedObjects_, + indicesByUUID = this._indicesByUUID, + bindings = this._bindings, + nBindings = bindings.length; + + for ( var i = 0, n = arguments.length; i !== n; ++ i ) { + + var object = arguments[ i ], + uuid = object.uuid, + index = indicesByUUID[ uuid ]; + + if ( index !== undefined ) { + + delete indicesByUUID[ uuid ]; + + if ( index < nCachedObjects ) { + + // object is cached, shrink the CACHED region + + var firstActiveIndex = -- nCachedObjects, + lastCachedObject = objects[ firstActiveIndex ], + lastIndex = -- nObjects, + lastObject = objects[ lastIndex ]; + + // last cached object takes this object's place + indicesByUUID[ lastCachedObject.uuid ] = index; + objects[ index ] = lastCachedObject; + + // last object goes to the activated slot and pop + indicesByUUID[ lastObject.uuid ] = firstActiveIndex; + objects[ firstActiveIndex ] = lastObject; + objects.pop(); + + // accounting is done, now do the same for all bindings + + for ( var j = 0, m = nBindings; j !== m; ++ j ) { + + var bindingsForPath = bindings[ j ], + lastCached = bindingsForPath[ firstActiveIndex ], + last = bindingsForPath[ lastIndex ]; + + bindingsForPath[ index ] = lastCached; + bindingsForPath[ firstActiveIndex ] = last; + bindingsForPath.pop(); + + } + + } else { + + // object is active, just swap with the last and pop + + var lastIndex = -- nObjects, + lastObject = objects[ lastIndex ]; + + indicesByUUID[ lastObject.uuid ] = index; + objects[ index ] = lastObject; + objects.pop(); + + // accounting is done, now do the same for all bindings + + for ( var j = 0, m = nBindings; j !== m; ++ j ) { + + var bindingsForPath = bindings[ j ]; + + bindingsForPath[ index ] = bindingsForPath[ lastIndex ]; + bindingsForPath.pop(); + + } + + } // cached or active + + } // if object is known + + } // for arguments + + this.nCachedObjects_ = nCachedObjects; + + }, + + // Internal interface used by befriended PropertyBinding.Composite: + + subscribe_: function( path, parsedPath ) { + // returns an array of bindings for the given path that is changed + // according to the contained objects in the group + + var indicesByPath = this._bindingsIndicesByPath, + index = indicesByPath[ path ], + bindings = this._bindings; + + if ( index !== undefined ) return bindings[ index ]; + + var paths = this._paths, + parsedPaths = this._parsedPaths, + objects = this._objects, + nObjects = objects.length, + nCachedObjects = this.nCachedObjects_, + bindingsForPath = new Array( nObjects ); + + index = bindings.length; + + indicesByPath[ path ] = index; + + paths.push( path ); + parsedPaths.push( parsedPath ); + bindings.push( bindingsForPath ); + + for ( var i = nCachedObjects, + n = objects.length; i !== n; ++ i ) { + + var object = objects[ i ]; + + bindingsForPath[ i ] = + new PropertyBinding( object, path, parsedPath ); + + } + + return bindingsForPath; + + }, + + unsubscribe_: function( path ) { + // tells the group to forget about a property path and no longer + // update the array previously obtained with 'subscribe_' + + var indicesByPath = this._bindingsIndicesByPath, + index = indicesByPath[ path ]; + + if ( index !== undefined ) { + + var paths = this._paths, + parsedPaths = this._parsedPaths, + bindings = this._bindings, + lastBindingsIndex = bindings.length - 1, + lastBindings = bindings[ lastBindingsIndex ], + lastBindingsPath = path[ lastBindingsIndex ]; + + indicesByPath[ lastBindingsPath ] = index; + + bindings[ index ] = lastBindings; + bindings.pop(); + + parsedPaths[ index ] = parsedPaths[ lastBindingsIndex ]; + parsedPaths.pop(); + + paths[ index ] = paths[ lastBindingsIndex ]; + paths.pop(); + + } + + } + + }; + + /** + * + * Action provided by AnimationMixer for scheduling clip playback on specific + * objects. + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + * + */ + + function AnimationAction( mixer, clip, localRoot ) { + + this._mixer = mixer; + this._clip = clip; + this._localRoot = localRoot || null; + + var tracks = clip.tracks, + nTracks = tracks.length, + interpolants = new Array( nTracks ); + + var interpolantSettings = { + endingStart: ZeroCurvatureEnding, + endingEnd: ZeroCurvatureEnding + }; + + for ( var i = 0; i !== nTracks; ++ i ) { + + var interpolant = tracks[ i ].createInterpolant( null ); + interpolants[ i ] = interpolant; + interpolant.settings = interpolantSettings; + + } + + this._interpolantSettings = interpolantSettings; + + this._interpolants = interpolants; // bound by the mixer + + // inside: PropertyMixer (managed by the mixer) + this._propertyBindings = new Array( nTracks ); + + this._cacheIndex = null; // for the memory manager + this._byClipCacheIndex = null; // for the memory manager + + this._timeScaleInterpolant = null; + this._weightInterpolant = null; + + this.loop = LoopRepeat; + this._loopCount = -1; + + // global mixer time when the action is to be started + // it's set back to 'null' upon start of the action + this._startTime = null; + + // scaled local time of the action + // gets clamped or wrapped to 0..clip.duration according to loop + this.time = 0; + + this.timeScale = 1; + this._effectiveTimeScale = 1; + + this.weight = 1; + this._effectiveWeight = 1; + + this.repetitions = Infinity; // no. of repetitions when looping + + this.paused = false; // false -> zero effective time scale + this.enabled = true; // true -> zero effective weight + + this.clampWhenFinished = false; // keep feeding the last frame? + + this.zeroSlopeAtStart = true; // for smooth interpolation w/o separate + this.zeroSlopeAtEnd = true; // clips for start, loop and end + + } + + AnimationAction.prototype = { + + constructor: AnimationAction, + + // State & Scheduling + + play: function() { + + this._mixer._activateAction( this ); + + return this; + + }, + + stop: function() { + + this._mixer._deactivateAction( this ); + + return this.reset(); + + }, + + reset: function() { + + this.paused = false; + this.enabled = true; + + this.time = 0; // restart clip + this._loopCount = -1; // forget previous loops + this._startTime = null; // forget scheduling + + return this.stopFading().stopWarping(); + + }, + + isRunning: function() { + + return this.enabled && ! this.paused && this.timeScale !== 0 && + this._startTime === null && this._mixer._isActiveAction( this ); + + }, + + // return true when play has been called + isScheduled: function() { + + return this._mixer._isActiveAction( this ); + + }, + + startAt: function( time ) { + + this._startTime = time; + + return this; + + }, + + setLoop: function( mode, repetitions ) { + + this.loop = mode; + this.repetitions = repetitions; + + return this; + + }, + + // Weight + + // set the weight stopping any scheduled fading + // although .enabled = false yields an effective weight of zero, this + // method does *not* change .enabled, because it would be confusing + setEffectiveWeight: function( weight ) { + + this.weight = weight; + + // note: same logic as when updated at runtime + this._effectiveWeight = this.enabled ? weight : 0; + + return this.stopFading(); + + }, + + // return the weight considering fading and .enabled + getEffectiveWeight: function() { + + return this._effectiveWeight; + + }, + + fadeIn: function( duration ) { + + return this._scheduleFading( duration, 0, 1 ); + + }, + + fadeOut: function( duration ) { + + return this._scheduleFading( duration, 1, 0 ); + + }, + + crossFadeFrom: function( fadeOutAction, duration, warp ) { + + fadeOutAction.fadeOut( duration ); + this.fadeIn( duration ); + + if( warp ) { + + var fadeInDuration = this._clip.duration, + fadeOutDuration = fadeOutAction._clip.duration, + + startEndRatio = fadeOutDuration / fadeInDuration, + endStartRatio = fadeInDuration / fadeOutDuration; + + fadeOutAction.warp( 1.0, startEndRatio, duration ); + this.warp( endStartRatio, 1.0, duration ); + + } + + return this; + + }, + + crossFadeTo: function( fadeInAction, duration, warp ) { + + return fadeInAction.crossFadeFrom( this, duration, warp ); + + }, + + stopFading: function() { + + var weightInterpolant = this._weightInterpolant; + + if ( weightInterpolant !== null ) { + + this._weightInterpolant = null; + this._mixer._takeBackControlInterpolant( weightInterpolant ); + + } + + return this; + + }, + + // Time Scale Control + + // set the weight stopping any scheduled warping + // although .paused = true yields an effective time scale of zero, this + // method does *not* change .paused, because it would be confusing + setEffectiveTimeScale: function( timeScale ) { + + this.timeScale = timeScale; + this._effectiveTimeScale = this.paused ? 0 :timeScale; + + return this.stopWarping(); + + }, + + // return the time scale considering warping and .paused + getEffectiveTimeScale: function() { + + return this._effectiveTimeScale; + + }, + + setDuration: function( duration ) { + + this.timeScale = this._clip.duration / duration; + + return this.stopWarping(); + + }, + + syncWith: function( action ) { + + this.time = action.time; + this.timeScale = action.timeScale; + + return this.stopWarping(); + + }, + + halt: function( duration ) { + + return this.warp( this._effectiveTimeScale, 0, duration ); + + }, + + warp: function( startTimeScale, endTimeScale, duration ) { + + var mixer = this._mixer, now = mixer.time, + interpolant = this._timeScaleInterpolant, + + timeScale = this.timeScale; + + if ( interpolant === null ) { + + interpolant = mixer._lendControlInterpolant(), + this._timeScaleInterpolant = interpolant; + + } + + var times = interpolant.parameterPositions, + values = interpolant.sampleValues; + + times[ 0 ] = now; + times[ 1 ] = now + duration; + + values[ 0 ] = startTimeScale / timeScale; + values[ 1 ] = endTimeScale / timeScale; + + return this; + + }, + + stopWarping: function() { + + var timeScaleInterpolant = this._timeScaleInterpolant; + + if ( timeScaleInterpolant !== null ) { + + this._timeScaleInterpolant = null; + this._mixer._takeBackControlInterpolant( timeScaleInterpolant ); + + } + + return this; + + }, + + // Object Accessors + + getMixer: function() { + + return this._mixer; + + }, + + getClip: function() { + + return this._clip; + + }, + + getRoot: function() { + + return this._localRoot || this._mixer._root; + + }, + + // Interna + + _update: function( time, deltaTime, timeDirection, accuIndex ) { + // called by the mixer + + var startTime = this._startTime; + + if ( startTime !== null ) { + + // check for scheduled start of action + + var timeRunning = ( time - startTime ) * timeDirection; + if ( timeRunning < 0 || timeDirection === 0 ) { + + return; // yet to come / don't decide when delta = 0 + + } + + // start + + this._startTime = null; // unschedule + deltaTime = timeDirection * timeRunning; + + } + + // apply time scale and advance time + + deltaTime *= this._updateTimeScale( time ); + var clipTime = this._updateTime( deltaTime ); + + // note: _updateTime may disable the action resulting in + // an effective weight of 0 + + var weight = this._updateWeight( time ); + + if ( weight > 0 ) { + + var interpolants = this._interpolants; + var propertyMixers = this._propertyBindings; + + for ( var j = 0, m = interpolants.length; j !== m; ++ j ) { + + interpolants[ j ].evaluate( clipTime ); + propertyMixers[ j ].accumulate( accuIndex, weight ); + + } + + } + + }, + + _updateWeight: function( time ) { + + var weight = 0; + + if ( this.enabled ) { + + weight = this.weight; + var interpolant = this._weightInterpolant; + + if ( interpolant !== null ) { + + var interpolantValue = interpolant.evaluate( time )[ 0 ]; + + weight *= interpolantValue; + + if ( time > interpolant.parameterPositions[ 1 ] ) { + + this.stopFading(); + + if ( interpolantValue === 0 ) { + + // faded out, disable + this.enabled = false; + + } + + } + + } + + } + + this._effectiveWeight = weight; + return weight; + + }, + + _updateTimeScale: function( time ) { + + var timeScale = 0; + + if ( ! this.paused ) { + + timeScale = this.timeScale; + + var interpolant = this._timeScaleInterpolant; + + if ( interpolant !== null ) { + + var interpolantValue = interpolant.evaluate( time )[ 0 ]; + + timeScale *= interpolantValue; + + if ( time > interpolant.parameterPositions[ 1 ] ) { + + this.stopWarping(); + + if ( timeScale === 0 ) { + + // motion has halted, pause + this.paused = true; + + } else { + + // warp done - apply final time scale + this.timeScale = timeScale; + + } + + } + + } + + } + + this._effectiveTimeScale = timeScale; + return timeScale; + + }, + + _updateTime: function( deltaTime ) { + + var time = this.time + deltaTime; + + if ( deltaTime === 0 ) return time; + + var duration = this._clip.duration, + + loop = this.loop, + loopCount = this._loopCount; + + if ( loop === LoopOnce ) { + + if ( loopCount === -1 ) { + // just started + + this.loopCount = 0; + this._setEndings( true, true, false ); + + } + + handle_stop: { + + if ( time >= duration ) { + + time = duration; + + } else if ( time < 0 ) { + + time = 0; + + } else break handle_stop; + + if ( this.clampWhenFinished ) this.paused = true; + else this.enabled = false; + + this._mixer.dispatchEvent( { + type: 'finished', action: this, + direction: deltaTime < 0 ? -1 : 1 + } ); + + } + + } else { // repetitive Repeat or PingPong + + var pingPong = ( loop === LoopPingPong ); + + if ( loopCount === -1 ) { + // just started + + if ( deltaTime >= 0 ) { + + loopCount = 0; + + this._setEndings( + true, this.repetitions === 0, pingPong ); + + } else { + + // when looping in reverse direction, the initial + // transition through zero counts as a repetition, + // so leave loopCount at -1 + + this._setEndings( + this.repetitions === 0, true, pingPong ); + + } + + } + + if ( time >= duration || time < 0 ) { + // wrap around + + var loopDelta = Math.floor( time / duration ); // signed + time -= duration * loopDelta; + + loopCount += Math.abs( loopDelta ); + + var pending = this.repetitions - loopCount; + + if ( pending < 0 ) { + // have to stop (switch state, clamp time, fire event) + + if ( this.clampWhenFinished ) this.paused = true; + else this.enabled = false; + + time = deltaTime > 0 ? duration : 0; + + this._mixer.dispatchEvent( { + type: 'finished', action: this, + direction: deltaTime > 0 ? 1 : -1 + } ); + + } else { + // keep running + + if ( pending === 0 ) { + // entering the last round + + var atStart = deltaTime < 0; + this._setEndings( atStart, ! atStart, pingPong ); + + } else { + + this._setEndings( false, false, pingPong ); + + } + + this._loopCount = loopCount; + + this._mixer.dispatchEvent( { + type: 'loop', action: this, loopDelta: loopDelta + } ); + + } + + } + + if ( pingPong && ( loopCount & 1 ) === 1 ) { + // invert time for the "pong round" + + this.time = time; + return duration - time; + + } + + } + + this.time = time; + return time; + + }, + + _setEndings: function( atStart, atEnd, pingPong ) { + + var settings = this._interpolantSettings; + + if ( pingPong ) { + + settings.endingStart = ZeroSlopeEnding; + settings.endingEnd = ZeroSlopeEnding; + + } else { + + // assuming for LoopOnce atStart == atEnd == true + + if ( atStart ) { + + settings.endingStart = this.zeroSlopeAtStart ? + ZeroSlopeEnding : ZeroCurvatureEnding; + + } else { + + settings.endingStart = WrapAroundEnding; + + } + + if ( atEnd ) { + + settings.endingEnd = this.zeroSlopeAtEnd ? + ZeroSlopeEnding : ZeroCurvatureEnding; + + } else { + + settings.endingEnd = WrapAroundEnding; + + } + + } + + }, + + _scheduleFading: function( duration, weightNow, weightThen ) { + + var mixer = this._mixer, now = mixer.time, + interpolant = this._weightInterpolant; + + if ( interpolant === null ) { + + interpolant = mixer._lendControlInterpolant(), + this._weightInterpolant = interpolant; + + } + + var times = interpolant.parameterPositions, + values = interpolant.sampleValues; + + times[ 0 ] = now; values[ 0 ] = weightNow; + times[ 1 ] = now + duration; values[ 1 ] = weightThen; + + return this; + + } + + }; + + /** + * + * Player for AnimationClips. + * + * + * @author Ben Houston / http://clara.io/ + * @author David Sarno / http://lighthaus.us/ + * @author tschw + */ + + function AnimationMixer( root ) { + + this._root = root; + this._initMemoryManager(); + this._accuIndex = 0; + + this.time = 0; + + this.timeScale = 1.0; + + } + + Object.assign( AnimationMixer.prototype, EventDispatcher.prototype, { + + // return an action for a clip optionally using a custom root target + // object (this method allocates a lot of dynamic memory in case a + // previously unknown clip/root combination is specified) + clipAction: function( clip, optionalRoot ) { + + var root = optionalRoot || this._root, + rootUuid = root.uuid, + + clipObject = typeof clip === 'string' ? + AnimationClip.findByName( root, clip ) : clip, + + clipUuid = clipObject !== null ? clipObject.uuid : clip, + + actionsForClip = this._actionsByClip[ clipUuid ], + prototypeAction = null; + + if ( actionsForClip !== undefined ) { + + var existingAction = + actionsForClip.actionByRoot[ rootUuid ]; + + if ( existingAction !== undefined ) { + + return existingAction; + + } + + // we know the clip, so we don't have to parse all + // the bindings again but can just copy + prototypeAction = actionsForClip.knownActions[ 0 ]; + + // also, take the clip from the prototype action + if ( clipObject === null ) + clipObject = prototypeAction._clip; + + } + + // clip must be known when specified via string + if ( clipObject === null ) return null; + + // allocate all resources required to run it + var newAction = new AnimationAction( this, clipObject, optionalRoot ); + + this._bindAction( newAction, prototypeAction ); + + // and make the action known to the memory manager + this._addInactiveAction( newAction, clipUuid, rootUuid ); + + return newAction; + + }, + + // get an existing action + existingAction: function( clip, optionalRoot ) { + + var root = optionalRoot || this._root, + rootUuid = root.uuid, + + clipObject = typeof clip === 'string' ? + AnimationClip.findByName( root, clip ) : clip, + + clipUuid = clipObject ? clipObject.uuid : clip, + + actionsForClip = this._actionsByClip[ clipUuid ]; + + if ( actionsForClip !== undefined ) { + + return actionsForClip.actionByRoot[ rootUuid ] || null; + + } + + return null; + + }, + + // deactivates all previously scheduled actions + stopAllAction: function() { + + var actions = this._actions, + nActions = this._nActiveActions, + bindings = this._bindings, + nBindings = this._nActiveBindings; + + this._nActiveActions = 0; + this._nActiveBindings = 0; + + for ( var i = 0; i !== nActions; ++ i ) { + + actions[ i ].reset(); + + } + + for ( var i = 0; i !== nBindings; ++ i ) { + + bindings[ i ].useCount = 0; + + } + + return this; + + }, + + // advance the time and update apply the animation + update: function( deltaTime ) { + + deltaTime *= this.timeScale; + + var actions = this._actions, + nActions = this._nActiveActions, + + time = this.time += deltaTime, + timeDirection = Math.sign( deltaTime ), + + accuIndex = this._accuIndex ^= 1; + + // run active actions + + for ( var i = 0; i !== nActions; ++ i ) { + + var action = actions[ i ]; + + if ( action.enabled ) { + + action._update( time, deltaTime, timeDirection, accuIndex ); + + } + + } + + // update scene graph + + var bindings = this._bindings, + nBindings = this._nActiveBindings; + + for ( var i = 0; i !== nBindings; ++ i ) { + + bindings[ i ].apply( accuIndex ); + + } + + return this; + + }, + + // return this mixer's root target object + getRoot: function() { + + return this._root; + + }, + + // free all resources specific to a particular clip + uncacheClip: function( clip ) { + + var actions = this._actions, + clipUuid = clip.uuid, + actionsByClip = this._actionsByClip, + actionsForClip = actionsByClip[ clipUuid ]; + + if ( actionsForClip !== undefined ) { + + // note: just calling _removeInactiveAction would mess up the + // iteration state and also require updating the state we can + // just throw away + + var actionsToRemove = actionsForClip.knownActions; + + for ( var i = 0, n = actionsToRemove.length; i !== n; ++ i ) { + + var action = actionsToRemove[ i ]; + + this._deactivateAction( action ); + + var cacheIndex = action._cacheIndex, + lastInactiveAction = actions[ actions.length - 1 ]; + + action._cacheIndex = null; + action._byClipCacheIndex = null; + + lastInactiveAction._cacheIndex = cacheIndex; + actions[ cacheIndex ] = lastInactiveAction; + actions.pop(); + + this._removeInactiveBindingsForAction( action ); + + } + + delete actionsByClip[ clipUuid ]; + + } + + }, + + // free all resources specific to a particular root target object + uncacheRoot: function( root ) { + + var rootUuid = root.uuid, + actionsByClip = this._actionsByClip; + + for ( var clipUuid in actionsByClip ) { + + var actionByRoot = actionsByClip[ clipUuid ].actionByRoot, + action = actionByRoot[ rootUuid ]; + + if ( action !== undefined ) { + + this._deactivateAction( action ); + this._removeInactiveAction( action ); + + } + + } + + var bindingsByRoot = this._bindingsByRootAndName, + bindingByName = bindingsByRoot[ rootUuid ]; + + if ( bindingByName !== undefined ) { + + for ( var trackName in bindingByName ) { + + var binding = bindingByName[ trackName ]; + binding.restoreOriginalState(); + this._removeInactiveBinding( binding ); + + } + + } + + }, + + // remove a targeted clip from the cache + uncacheAction: function( clip, optionalRoot ) { + + var action = this.existingAction( clip, optionalRoot ); + + if ( action !== null ) { + + this._deactivateAction( action ); + this._removeInactiveAction( action ); + + } + + } + + } ); + + // Implementation details: + + Object.assign( AnimationMixer.prototype, { + + _bindAction: function( action, prototypeAction ) { + + var root = action._localRoot || this._root, + tracks = action._clip.tracks, + nTracks = tracks.length, + bindings = action._propertyBindings, + interpolants = action._interpolants, + rootUuid = root.uuid, + bindingsByRoot = this._bindingsByRootAndName, + bindingsByName = bindingsByRoot[ rootUuid ]; + + if ( bindingsByName === undefined ) { + + bindingsByName = {}; + bindingsByRoot[ rootUuid ] = bindingsByName; + + } + + for ( var i = 0; i !== nTracks; ++ i ) { + + var track = tracks[ i ], + trackName = track.name, + binding = bindingsByName[ trackName ]; + + if ( binding !== undefined ) { + + bindings[ i ] = binding; + + } else { + + binding = bindings[ i ]; + + if ( binding !== undefined ) { + + // existing binding, make sure the cache knows + + if ( binding._cacheIndex === null ) { + + ++ binding.referenceCount; + this._addInactiveBinding( binding, rootUuid, trackName ); + + } + + continue; + + } + + var path = prototypeAction && prototypeAction. + _propertyBindings[ i ].binding.parsedPath; + + binding = new PropertyMixer( + PropertyBinding.create( root, trackName, path ), + track.ValueTypeName, track.getValueSize() ); + + ++ binding.referenceCount; + this._addInactiveBinding( binding, rootUuid, trackName ); + + bindings[ i ] = binding; + + } + + interpolants[ i ].resultBuffer = binding.buffer; + + } + + }, + + _activateAction: function( action ) { + + if ( ! this._isActiveAction( action ) ) { + + if ( action._cacheIndex === null ) { + + // this action has been forgotten by the cache, but the user + // appears to be still using it -> rebind + + var rootUuid = ( action._localRoot || this._root ).uuid, + clipUuid = action._clip.uuid, + actionsForClip = this._actionsByClip[ clipUuid ]; + + this._bindAction( action, + actionsForClip && actionsForClip.knownActions[ 0 ] ); + + this._addInactiveAction( action, clipUuid, rootUuid ); + + } + + var bindings = action._propertyBindings; + + // increment reference counts / sort out state + for ( var i = 0, n = bindings.length; i !== n; ++ i ) { + + var binding = bindings[ i ]; + + if ( binding.useCount ++ === 0 ) { + + this._lendBinding( binding ); + binding.saveOriginalState(); + + } + + } + + this._lendAction( action ); + + } + + }, + + _deactivateAction: function( action ) { + + if ( this._isActiveAction( action ) ) { + + var bindings = action._propertyBindings; + + // decrement reference counts / sort out state + for ( var i = 0, n = bindings.length; i !== n; ++ i ) { + + var binding = bindings[ i ]; + + if ( -- binding.useCount === 0 ) { + + binding.restoreOriginalState(); + this._takeBackBinding( binding ); + + } + + } + + this._takeBackAction( action ); + + } + + }, + + // Memory manager + + _initMemoryManager: function() { + + this._actions = []; // 'nActiveActions' followed by inactive ones + this._nActiveActions = 0; + + this._actionsByClip = {}; + // inside: + // { + // knownActions: Array< AnimationAction > - used as prototypes + // actionByRoot: AnimationAction - lookup + // } + + + this._bindings = []; // 'nActiveBindings' followed by inactive ones + this._nActiveBindings = 0; + + this._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer > + + + this._controlInterpolants = []; // same game as above + this._nActiveControlInterpolants = 0; + + var scope = this; + + this.stats = { + + actions: { + get total() { return scope._actions.length; }, + get inUse() { return scope._nActiveActions; } + }, + bindings: { + get total() { return scope._bindings.length; }, + get inUse() { return scope._nActiveBindings; } + }, + controlInterpolants: { + get total() { return scope._controlInterpolants.length; }, + get inUse() { return scope._nActiveControlInterpolants; } + } + + }; + + }, + + // Memory management for AnimationAction objects + + _isActiveAction: function( action ) { + + var index = action._cacheIndex; + return index !== null && index < this._nActiveActions; + + }, + + _addInactiveAction: function( action, clipUuid, rootUuid ) { + + var actions = this._actions, + actionsByClip = this._actionsByClip, + actionsForClip = actionsByClip[ clipUuid ]; + + if ( actionsForClip === undefined ) { + + actionsForClip = { + + knownActions: [ action ], + actionByRoot: {} + + }; + + action._byClipCacheIndex = 0; + + actionsByClip[ clipUuid ] = actionsForClip; + + } else { + + var knownActions = actionsForClip.knownActions; + + action._byClipCacheIndex = knownActions.length; + knownActions.push( action ); + + } + + action._cacheIndex = actions.length; + actions.push( action ); + + actionsForClip.actionByRoot[ rootUuid ] = action; + + }, + + _removeInactiveAction: function( action ) { + + var actions = this._actions, + lastInactiveAction = actions[ actions.length - 1 ], + cacheIndex = action._cacheIndex; + + lastInactiveAction._cacheIndex = cacheIndex; + actions[ cacheIndex ] = lastInactiveAction; + actions.pop(); + + action._cacheIndex = null; + + + var clipUuid = action._clip.uuid, + actionsByClip = this._actionsByClip, + actionsForClip = actionsByClip[ clipUuid ], + knownActionsForClip = actionsForClip.knownActions, + + lastKnownAction = + knownActionsForClip[ knownActionsForClip.length - 1 ], + + byClipCacheIndex = action._byClipCacheIndex; + + lastKnownAction._byClipCacheIndex = byClipCacheIndex; + knownActionsForClip[ byClipCacheIndex ] = lastKnownAction; + knownActionsForClip.pop(); + + action._byClipCacheIndex = null; + + + var actionByRoot = actionsForClip.actionByRoot, + rootUuid = ( actions._localRoot || this._root ).uuid; + + delete actionByRoot[ rootUuid ]; + + if ( knownActionsForClip.length === 0 ) { + + delete actionsByClip[ clipUuid ]; + + } + + this._removeInactiveBindingsForAction( action ); + + }, + + _removeInactiveBindingsForAction: function( action ) { + + var bindings = action._propertyBindings; + for ( var i = 0, n = bindings.length; i !== n; ++ i ) { + + var binding = bindings[ i ]; + + if ( -- binding.referenceCount === 0 ) { + + this._removeInactiveBinding( binding ); + + } + + } + + }, + + _lendAction: function( action ) { + + // [ active actions | inactive actions ] + // [ active actions >| inactive actions ] + // s a + // <-swap-> + // a s + + var actions = this._actions, + prevIndex = action._cacheIndex, + + lastActiveIndex = this._nActiveActions ++, + + firstInactiveAction = actions[ lastActiveIndex ]; + + action._cacheIndex = lastActiveIndex; + actions[ lastActiveIndex ] = action; + + firstInactiveAction._cacheIndex = prevIndex; + actions[ prevIndex ] = firstInactiveAction; + + }, + + _takeBackAction: function( action ) { + + // [ active actions | inactive actions ] + // [ active actions |< inactive actions ] + // a s + // <-swap-> + // s a + + var actions = this._actions, + prevIndex = action._cacheIndex, + + firstInactiveIndex = -- this._nActiveActions, + + lastActiveAction = actions[ firstInactiveIndex ]; + + action._cacheIndex = firstInactiveIndex; + actions[ firstInactiveIndex ] = action; + + lastActiveAction._cacheIndex = prevIndex; + actions[ prevIndex ] = lastActiveAction; + + }, + + // Memory management for PropertyMixer objects + + _addInactiveBinding: function( binding, rootUuid, trackName ) { + + var bindingsByRoot = this._bindingsByRootAndName, + bindingByName = bindingsByRoot[ rootUuid ], + + bindings = this._bindings; + + if ( bindingByName === undefined ) { + + bindingByName = {}; + bindingsByRoot[ rootUuid ] = bindingByName; + + } + + bindingByName[ trackName ] = binding; + + binding._cacheIndex = bindings.length; + bindings.push( binding ); + + }, + + _removeInactiveBinding: function( binding ) { + + var bindings = this._bindings, + propBinding = binding.binding, + rootUuid = propBinding.rootNode.uuid, + trackName = propBinding.path, + bindingsByRoot = this._bindingsByRootAndName, + bindingByName = bindingsByRoot[ rootUuid ], + + lastInactiveBinding = bindings[ bindings.length - 1 ], + cacheIndex = binding._cacheIndex; + + lastInactiveBinding._cacheIndex = cacheIndex; + bindings[ cacheIndex ] = lastInactiveBinding; + bindings.pop(); + + delete bindingByName[ trackName ]; + + remove_empty_map: { + + for ( var _ in bindingByName ) break remove_empty_map; + + delete bindingsByRoot[ rootUuid ]; + + } + + }, + + _lendBinding: function( binding ) { + + var bindings = this._bindings, + prevIndex = binding._cacheIndex, + + lastActiveIndex = this._nActiveBindings ++, + + firstInactiveBinding = bindings[ lastActiveIndex ]; + + binding._cacheIndex = lastActiveIndex; + bindings[ lastActiveIndex ] = binding; + + firstInactiveBinding._cacheIndex = prevIndex; + bindings[ prevIndex ] = firstInactiveBinding; + + }, + + _takeBackBinding: function( binding ) { + + var bindings = this._bindings, + prevIndex = binding._cacheIndex, + + firstInactiveIndex = -- this._nActiveBindings, + + lastActiveBinding = bindings[ firstInactiveIndex ]; + + binding._cacheIndex = firstInactiveIndex; + bindings[ firstInactiveIndex ] = binding; + + lastActiveBinding._cacheIndex = prevIndex; + bindings[ prevIndex ] = lastActiveBinding; + + }, + + + // Memory management of Interpolants for weight and time scale + + _lendControlInterpolant: function() { + + var interpolants = this._controlInterpolants, + lastActiveIndex = this._nActiveControlInterpolants ++, + interpolant = interpolants[ lastActiveIndex ]; + + if ( interpolant === undefined ) { + + interpolant = new LinearInterpolant( + new Float32Array( 2 ), new Float32Array( 2 ), + 1, this._controlInterpolantsResultBuffer ); + + interpolant.__cacheIndex = lastActiveIndex; + interpolants[ lastActiveIndex ] = interpolant; + + } + + return interpolant; + + }, + + _takeBackControlInterpolant: function( interpolant ) { + + var interpolants = this._controlInterpolants, + prevIndex = interpolant.__cacheIndex, + + firstInactiveIndex = -- this._nActiveControlInterpolants, + + lastActiveInterpolant = interpolants[ firstInactiveIndex ]; + + interpolant.__cacheIndex = firstInactiveIndex; + interpolants[ firstInactiveIndex ] = interpolant; + + lastActiveInterpolant.__cacheIndex = prevIndex; + interpolants[ prevIndex ] = lastActiveInterpolant; + + }, + + _controlInterpolantsResultBuffer: new Float32Array( 1 ) + + } ); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Uniform( value ) { + + if ( typeof value === 'string' ) { + + console.warn( 'THREE.Uniform: Type parameter is no longer needed.' ); + value = arguments[ 1 ]; + + } + + this.value = value; + + } + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function InstancedBufferGeometry() { + + BufferGeometry.call( this ); + + this.type = 'InstancedBufferGeometry'; + this.maxInstancedCount = undefined; + + } + + InstancedBufferGeometry.prototype = Object.create( BufferGeometry.prototype ); + InstancedBufferGeometry.prototype.constructor = InstancedBufferGeometry; + + InstancedBufferGeometry.prototype.isInstancedBufferGeometry = true; + + InstancedBufferGeometry.prototype.addGroup = function ( start, count, materialIndex ) { + + this.groups.push( { + + start: start, + count: count, + materialIndex: materialIndex + + } ); + + }; + + InstancedBufferGeometry.prototype.copy = function ( source ) { + + var index = source.index; + + if ( index !== null ) { + + this.setIndex( index.clone() ); + + } + + var attributes = source.attributes; + + for ( var name in attributes ) { + + var attribute = attributes[ name ]; + this.addAttribute( name, attribute.clone() ); + + } + + var groups = source.groups; + + for ( var i = 0, l = groups.length; i < l; i ++ ) { + + var group = groups[ i ]; + this.addGroup( group.start, group.count, group.materialIndex ); + + } + + return this; + + }; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function InterleavedBufferAttribute( interleavedBuffer, itemSize, offset, normalized ) { + + this.uuid = _Math.generateUUID(); + + this.data = interleavedBuffer; + this.itemSize = itemSize; + this.offset = offset; + + this.normalized = normalized === true; + + } + + + InterleavedBufferAttribute.prototype = { + + constructor: InterleavedBufferAttribute, + + isInterleavedBufferAttribute: true, + + get count() { + + return this.data.count; + + }, + + get array() { + + return this.data.array; + + }, + + setX: function ( index, x ) { + + this.data.array[ index * this.data.stride + this.offset ] = x; + + return this; + + }, + + setY: function ( index, y ) { + + this.data.array[ index * this.data.stride + this.offset + 1 ] = y; + + return this; + + }, + + setZ: function ( index, z ) { + + this.data.array[ index * this.data.stride + this.offset + 2 ] = z; + + return this; + + }, + + setW: function ( index, w ) { + + this.data.array[ index * this.data.stride + this.offset + 3 ] = w; + + return this; + + }, + + getX: function ( index ) { + + return this.data.array[ index * this.data.stride + this.offset ]; + + }, + + getY: function ( index ) { + + return this.data.array[ index * this.data.stride + this.offset + 1 ]; + + }, + + getZ: function ( index ) { + + return this.data.array[ index * this.data.stride + this.offset + 2 ]; + + }, + + getW: function ( index ) { + + return this.data.array[ index * this.data.stride + this.offset + 3 ]; + + }, + + setXY: function ( index, x, y ) { + + index = index * this.data.stride + this.offset; + + this.data.array[ index + 0 ] = x; + this.data.array[ index + 1 ] = y; + + return this; + + }, + + setXYZ: function ( index, x, y, z ) { + + index = index * this.data.stride + this.offset; + + this.data.array[ index + 0 ] = x; + this.data.array[ index + 1 ] = y; + this.data.array[ index + 2 ] = z; + + return this; + + }, + + setXYZW: function ( index, x, y, z, w ) { + + index = index * this.data.stride + this.offset; + + this.data.array[ index + 0 ] = x; + this.data.array[ index + 1 ] = y; + this.data.array[ index + 2 ] = z; + this.data.array[ index + 3 ] = w; + + return this; + + } + + }; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function InterleavedBuffer( array, stride ) { + + this.uuid = _Math.generateUUID(); + + this.array = array; + this.stride = stride; + this.count = array !== undefined ? array.length / stride : 0; + + this.dynamic = false; + this.updateRange = { offset: 0, count: - 1 }; + + this.version = 0; + + } + + InterleavedBuffer.prototype = { + + constructor: InterleavedBuffer, + + isInterleavedBuffer: true, + + set needsUpdate( value ) { + + if ( value === true ) this.version ++; + + }, + + setArray: function ( array ) { + + if ( Array.isArray( array ) ) { + + throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); + + } + + this.count = array !== undefined ? array.length / this.stride : 0; + this.array = array; + + }, + + setDynamic: function ( value ) { + + this.dynamic = value; + + return this; + + }, + + copy: function ( source ) { + + this.array = new source.array.constructor( source.array ); + this.count = source.count; + this.stride = source.stride; + this.dynamic = source.dynamic; + + return this; + + }, + + copyAt: function ( index1, attribute, index2 ) { + + index1 *= this.stride; + index2 *= attribute.stride; + + for ( var i = 0, l = this.stride; i < l; i ++ ) { + + this.array[ index1 + i ] = attribute.array[ index2 + i ]; + + } + + return this; + + }, + + set: function ( value, offset ) { + + if ( offset === undefined ) offset = 0; + + this.array.set( value, offset ); + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + } + + }; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function InstancedInterleavedBuffer( array, stride, meshPerAttribute ) { + + InterleavedBuffer.call( this, array, stride ); + + this.meshPerAttribute = meshPerAttribute || 1; + + } + + InstancedInterleavedBuffer.prototype = Object.create( InterleavedBuffer.prototype ); + InstancedInterleavedBuffer.prototype.constructor = InstancedInterleavedBuffer; + + InstancedInterleavedBuffer.prototype.isInstancedInterleavedBuffer = true; + + InstancedInterleavedBuffer.prototype.copy = function ( source ) { + + InterleavedBuffer.prototype.copy.call( this, source ); + + this.meshPerAttribute = source.meshPerAttribute; + + return this; + + }; + + /** + * @author benaadams / https://twitter.com/ben_a_adams + */ + + function InstancedBufferAttribute( array, itemSize, meshPerAttribute ) { + + BufferAttribute.call( this, array, itemSize ); + + this.meshPerAttribute = meshPerAttribute || 1; + + } + + InstancedBufferAttribute.prototype = Object.create( BufferAttribute.prototype ); + InstancedBufferAttribute.prototype.constructor = InstancedBufferAttribute; + + InstancedBufferAttribute.prototype.isInstancedBufferAttribute = true; + + InstancedBufferAttribute.prototype.copy = function ( source ) { + + BufferAttribute.prototype.copy.call( this, source ); + + this.meshPerAttribute = source.meshPerAttribute; + + return this; + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author bhouston / http://clara.io/ + * @author stephomi / http://stephaneginier.com/ + */ + + function Raycaster( origin, direction, near, far ) { + + this.ray = new Ray( origin, direction ); + // direction is assumed to be normalized (for accurate distance calculations) + + this.near = near || 0; + this.far = far || Infinity; + + this.params = { + Mesh: {}, + Line: {}, + LOD: {}, + Points: { threshold: 1 }, + Sprite: {} + }; + + Object.defineProperties( this.params, { + PointCloud: { + get: function () { + console.warn( 'THREE.Raycaster: params.PointCloud has been renamed to params.Points.' ); + return this.Points; + } + } + } ); + + } + + function ascSort( a, b ) { + + return a.distance - b.distance; + + } + + function intersectObject( object, raycaster, intersects, recursive ) { + + if ( object.visible === false ) return; + + object.raycast( raycaster, intersects ); + + if ( recursive === true ) { + + var children = object.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + intersectObject( children[ i ], raycaster, intersects, true ); + + } + + } + + } + + // + + Raycaster.prototype = { + + constructor: Raycaster, + + linePrecision: 1, + + set: function ( origin, direction ) { + + // direction is assumed to be normalized (for accurate distance calculations) + + this.ray.set( origin, direction ); + + }, + + setFromCamera: function ( coords, camera ) { + + if ( (camera && camera.isPerspectiveCamera) ) { + + this.ray.origin.setFromMatrixPosition( camera.matrixWorld ); + this.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize(); + + } else if ( (camera && camera.isOrthographicCamera) ) { + + this.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera + this.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ); + + } else { + + console.error( 'THREE.Raycaster: Unsupported camera type.' ); + + } + + }, + + intersectObject: function ( object, recursive ) { + + var intersects = []; + + intersectObject( object, this, intersects, recursive ); + + intersects.sort( ascSort ); + + return intersects; + + }, + + intersectObjects: function ( objects, recursive ) { + + var intersects = []; + + if ( Array.isArray( objects ) === false ) { + + console.warn( 'THREE.Raycaster.intersectObjects: objects is not an Array.' ); + return intersects; + + } + + for ( var i = 0, l = objects.length; i < l; i ++ ) { + + intersectObject( objects[ i ], this, intersects, recursive ); + + } + + intersects.sort( ascSort ); + + return intersects; + + } + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function Clock( autoStart ) { + + this.autoStart = ( autoStart !== undefined ) ? autoStart : true; + + this.startTime = 0; + this.oldTime = 0; + this.elapsedTime = 0; + + this.running = false; + + } + + Clock.prototype = { + + constructor: Clock, + + start: function () { + + this.startTime = ( performance || Date ).now(); + + this.oldTime = this.startTime; + this.elapsedTime = 0; + this.running = true; + + }, + + stop: function () { + + this.getElapsedTime(); + this.running = false; + + }, + + getElapsedTime: function () { + + this.getDelta(); + return this.elapsedTime; + + }, + + getDelta: function () { + + var diff = 0; + + if ( this.autoStart && ! this.running ) { + + this.start(); + + } + + if ( this.running ) { + + var newTime = ( performance || Date ).now(); + + diff = ( newTime - this.oldTime ) / 1000; + this.oldTime = newTime; + + this.elapsedTime += diff; + + } + + return diff; + + } + + }; + + /** + * Spline from Tween.js, slightly optimized (and trashed) + * http://sole.github.com/tween.js/examples/05_spline.html + * + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + + function Spline( points ) { + + this.points = points; + + var c = [], v3 = { x: 0, y: 0, z: 0 }, + point, intPoint, weight, w2, w3, + pa, pb, pc, pd; + + this.initFromArray = function ( a ) { + + this.points = []; + + for ( var i = 0; i < a.length; i ++ ) { + + this.points[ i ] = { x: a[ i ][ 0 ], y: a[ i ][ 1 ], z: a[ i ][ 2 ] }; + + } + + }; + + this.getPoint = function ( k ) { + + point = ( this.points.length - 1 ) * k; + intPoint = Math.floor( point ); + weight = point - intPoint; + + c[ 0 ] = intPoint === 0 ? intPoint : intPoint - 1; + c[ 1 ] = intPoint; + c[ 2 ] = intPoint > this.points.length - 2 ? this.points.length - 1 : intPoint + 1; + c[ 3 ] = intPoint > this.points.length - 3 ? this.points.length - 1 : intPoint + 2; + + pa = this.points[ c[ 0 ] ]; + pb = this.points[ c[ 1 ] ]; + pc = this.points[ c[ 2 ] ]; + pd = this.points[ c[ 3 ] ]; + + w2 = weight * weight; + w3 = weight * w2; + + v3.x = interpolate( pa.x, pb.x, pc.x, pd.x, weight, w2, w3 ); + v3.y = interpolate( pa.y, pb.y, pc.y, pd.y, weight, w2, w3 ); + v3.z = interpolate( pa.z, pb.z, pc.z, pd.z, weight, w2, w3 ); + + return v3; + + }; + + this.getControlPointsArray = function () { + + var i, p, l = this.points.length, + coords = []; + + for ( i = 0; i < l; i ++ ) { + + p = this.points[ i ]; + coords[ i ] = [ p.x, p.y, p.z ]; + + } + + return coords; + + }; + + // approximate length by summing linear segments + + this.getLength = function ( nSubDivisions ) { + + var i, index, nSamples, position, + point = 0, intPoint = 0, oldIntPoint = 0, + oldPosition = new Vector3(), + tmpVec = new Vector3(), + chunkLengths = [], + totalLength = 0; + + // first point has 0 length + + chunkLengths[ 0 ] = 0; + + if ( ! nSubDivisions ) nSubDivisions = 100; + + nSamples = this.points.length * nSubDivisions; + + oldPosition.copy( this.points[ 0 ] ); + + for ( i = 1; i < nSamples; i ++ ) { + + index = i / nSamples; + + position = this.getPoint( index ); + tmpVec.copy( position ); + + totalLength += tmpVec.distanceTo( oldPosition ); + + oldPosition.copy( position ); + + point = ( this.points.length - 1 ) * index; + intPoint = Math.floor( point ); + + if ( intPoint !== oldIntPoint ) { + + chunkLengths[ intPoint ] = totalLength; + oldIntPoint = intPoint; + + } + + } + + // last point ends with total length + + chunkLengths[ chunkLengths.length ] = totalLength; + + return { chunks: chunkLengths, total: totalLength }; + + }; + + this.reparametrizeByArcLength = function ( samplingCoef ) { + + var i, j, + index, indexCurrent, indexNext, + realDistance, + sampling, position, + newpoints = [], + tmpVec = new Vector3(), + sl = this.getLength(); + + newpoints.push( tmpVec.copy( this.points[ 0 ] ).clone() ); + + for ( i = 1; i < this.points.length; i ++ ) { + + //tmpVec.copy( this.points[ i - 1 ] ); + //linearDistance = tmpVec.distanceTo( this.points[ i ] ); + + realDistance = sl.chunks[ i ] - sl.chunks[ i - 1 ]; + + sampling = Math.ceil( samplingCoef * realDistance / sl.total ); + + indexCurrent = ( i - 1 ) / ( this.points.length - 1 ); + indexNext = i / ( this.points.length - 1 ); + + for ( j = 1; j < sampling - 1; j ++ ) { + + index = indexCurrent + j * ( 1 / sampling ) * ( indexNext - indexCurrent ); + + position = this.getPoint( index ); + newpoints.push( tmpVec.copy( position ).clone() ); + + } + + newpoints.push( tmpVec.copy( this.points[ i ] ).clone() ); + + } + + this.points = newpoints; + + }; + + // Catmull-Rom + + function interpolate( p0, p1, p2, p3, t, t2, t3 ) { + + var v0 = ( p2 - p0 ) * 0.5, + v1 = ( p3 - p1 ) * 0.5; + + return ( 2 * ( p1 - p2 ) + v0 + v1 ) * t3 + ( - 3 * ( p1 - p2 ) - 2 * v0 - v1 ) * t2 + v0 * t + p1; + + } + + } + + /** + * @author bhouston / http://clara.io + * @author WestLangley / http://github.com/WestLangley + * + * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system + * + * The poles (phi) are at the positive and negative y axis. + * The equator starts at positive z. + */ + + function Spherical( radius, phi, theta ) { + + this.radius = ( radius !== undefined ) ? radius : 1.0; + this.phi = ( phi !== undefined ) ? phi : 0; // up / down towards top and bottom pole + this.theta = ( theta !== undefined ) ? theta : 0; // around the equator of the sphere + + return this; + + } + + Spherical.prototype = { + + constructor: Spherical, + + set: function ( radius, phi, theta ) { + + this.radius = radius; + this.phi = phi; + this.theta = theta; + + return this; + + }, + + clone: function () { + + return new this.constructor().copy( this ); + + }, + + copy: function ( other ) { + + this.radius = other.radius; + this.phi = other.phi; + this.theta = other.theta; + + return this; + + }, + + // restrict phi to be betwee EPS and PI-EPS + makeSafe: function() { + + var EPS = 0.000001; + this.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) ); + + return this; + + }, + + setFromVector3: function( vec3 ) { + + this.radius = vec3.length(); + + if ( this.radius === 0 ) { + + this.theta = 0; + this.phi = 0; + + } else { + + this.theta = Math.atan2( vec3.x, vec3.z ); // equator angle around y-up axis + this.phi = Math.acos( _Math.clamp( vec3.y / this.radius, - 1, 1 ) ); // polar angle + + } + + return this; + + }, + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function MorphBlendMesh( geometry, material ) { + + Mesh.call( this, geometry, material ); + + this.animationsMap = {}; + this.animationsList = []; + + // prepare default animation + // (all frames played together in 1 second) + + var numFrames = this.geometry.morphTargets.length; + + var name = "__default"; + + var startFrame = 0; + var endFrame = numFrames - 1; + + var fps = numFrames / 1; + + this.createAnimation( name, startFrame, endFrame, fps ); + this.setAnimationWeight( name, 1 ); + + } + + MorphBlendMesh.prototype = Object.create( Mesh.prototype ); + MorphBlendMesh.prototype.constructor = MorphBlendMesh; + + MorphBlendMesh.prototype.createAnimation = function ( name, start, end, fps ) { + + var animation = { + + start: start, + end: end, + + length: end - start + 1, + + fps: fps, + duration: ( end - start ) / fps, + + lastFrame: 0, + currentFrame: 0, + + active: false, + + time: 0, + direction: 1, + weight: 1, + + directionBackwards: false, + mirroredLoop: false + + }; + + this.animationsMap[ name ] = animation; + this.animationsList.push( animation ); + + }; + + MorphBlendMesh.prototype.autoCreateAnimations = function ( fps ) { + + var pattern = /([a-z]+)_?(\d+)/i; + + var firstAnimation, frameRanges = {}; + + var geometry = this.geometry; + + for ( var i = 0, il = geometry.morphTargets.length; i < il; i ++ ) { + + var morph = geometry.morphTargets[ i ]; + var chunks = morph.name.match( pattern ); + + if ( chunks && chunks.length > 1 ) { + + var name = chunks[ 1 ]; + + if ( ! frameRanges[ name ] ) frameRanges[ name ] = { start: Infinity, end: - Infinity }; + + var range = frameRanges[ name ]; + + if ( i < range.start ) range.start = i; + if ( i > range.end ) range.end = i; + + if ( ! firstAnimation ) firstAnimation = name; + + } + + } + + for ( var name in frameRanges ) { + + var range = frameRanges[ name ]; + this.createAnimation( name, range.start, range.end, fps ); + + } + + this.firstAnimation = firstAnimation; + + }; + + MorphBlendMesh.prototype.setAnimationDirectionForward = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.direction = 1; + animation.directionBackwards = false; + + } + + }; + + MorphBlendMesh.prototype.setAnimationDirectionBackward = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.direction = - 1; + animation.directionBackwards = true; + + } + + }; + + MorphBlendMesh.prototype.setAnimationFPS = function ( name, fps ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.fps = fps; + animation.duration = ( animation.end - animation.start ) / animation.fps; + + } + + }; + + MorphBlendMesh.prototype.setAnimationDuration = function ( name, duration ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.duration = duration; + animation.fps = ( animation.end - animation.start ) / animation.duration; + + } + + }; + + MorphBlendMesh.prototype.setAnimationWeight = function ( name, weight ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.weight = weight; + + } + + }; + + MorphBlendMesh.prototype.setAnimationTime = function ( name, time ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.time = time; + + } + + }; + + MorphBlendMesh.prototype.getAnimationTime = function ( name ) { + + var time = 0; + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + time = animation.time; + + } + + return time; + + }; + + MorphBlendMesh.prototype.getAnimationDuration = function ( name ) { + + var duration = - 1; + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + duration = animation.duration; + + } + + return duration; + + }; + + MorphBlendMesh.prototype.playAnimation = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.time = 0; + animation.active = true; + + } else { + + console.warn( "THREE.MorphBlendMesh: animation[" + name + "] undefined in .playAnimation()" ); + + } + + }; + + MorphBlendMesh.prototype.stopAnimation = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.active = false; + + } + + }; + + MorphBlendMesh.prototype.update = function ( delta ) { + + for ( var i = 0, il = this.animationsList.length; i < il; i ++ ) { + + var animation = this.animationsList[ i ]; + + if ( ! animation.active ) continue; + + var frameTime = animation.duration / animation.length; + + animation.time += animation.direction * delta; + + if ( animation.mirroredLoop ) { + + if ( animation.time > animation.duration || animation.time < 0 ) { + + animation.direction *= - 1; + + if ( animation.time > animation.duration ) { + + animation.time = animation.duration; + animation.directionBackwards = true; + + } + + if ( animation.time < 0 ) { + + animation.time = 0; + animation.directionBackwards = false; + + } + + } + + } else { + + animation.time = animation.time % animation.duration; + + if ( animation.time < 0 ) animation.time += animation.duration; + + } + + var keyframe = animation.start + _Math.clamp( Math.floor( animation.time / frameTime ), 0, animation.length - 1 ); + var weight = animation.weight; + + if ( keyframe !== animation.currentFrame ) { + + this.morphTargetInfluences[ animation.lastFrame ] = 0; + this.morphTargetInfluences[ animation.currentFrame ] = 1 * weight; + + this.morphTargetInfluences[ keyframe ] = 0; + + animation.lastFrame = animation.currentFrame; + animation.currentFrame = keyframe; + + } + + var mix = ( animation.time % frameTime ) / frameTime; + + if ( animation.directionBackwards ) mix = 1 - mix; + + if ( animation.currentFrame !== animation.lastFrame ) { + + this.morphTargetInfluences[ animation.currentFrame ] = mix * weight; + this.morphTargetInfluences[ animation.lastFrame ] = ( 1 - mix ) * weight; + + } else { + + this.morphTargetInfluences[ animation.currentFrame ] = weight; + + } + + } + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + function ImmediateRenderObject( material ) { + + Object3D.call( this ); + + this.material = material; + this.render = function ( renderCallback ) {}; + + } + + ImmediateRenderObject.prototype = Object.create( Object3D.prototype ); + ImmediateRenderObject.prototype.constructor = ImmediateRenderObject; + + ImmediateRenderObject.prototype.isImmediateRenderObject = true; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function VertexNormalsHelper( object, size, hex, linewidth ) { + + this.object = object; + + this.size = ( size !== undefined ) ? size : 1; + + var color = ( hex !== undefined ) ? hex : 0xff0000; + + var width = ( linewidth !== undefined ) ? linewidth : 1; + + // + + var nNormals = 0; + + var objGeometry = this.object.geometry; + + if ( (objGeometry && objGeometry.isGeometry) ) { + + nNormals = objGeometry.faces.length * 3; + + } else if ( (objGeometry && objGeometry.isBufferGeometry) ) { + + nNormals = objGeometry.attributes.normal.count; + + } + + // + + var geometry = new BufferGeometry(); + + var positions = new Float32Attribute( nNormals * 2 * 3, 3 ); + + geometry.addAttribute( 'position', positions ); + + LineSegments.call( this, geometry, new LineBasicMaterial( { color: color, linewidth: width } ) ); + + // + + this.matrixAutoUpdate = false; + + this.update(); + + } + + VertexNormalsHelper.prototype = Object.create( LineSegments.prototype ); + VertexNormalsHelper.prototype.constructor = VertexNormalsHelper; + + VertexNormalsHelper.prototype.update = ( function () { + + var v1 = new Vector3(); + var v2 = new Vector3(); + var normalMatrix = new Matrix3(); + + return function update() { + + var keys = [ 'a', 'b', 'c' ]; + + this.object.updateMatrixWorld( true ); + + normalMatrix.getNormalMatrix( this.object.matrixWorld ); + + var matrixWorld = this.object.matrixWorld; + + var position = this.geometry.attributes.position; + + // + + var objGeometry = this.object.geometry; + + if ( (objGeometry && objGeometry.isGeometry) ) { + + var vertices = objGeometry.vertices; + + var faces = objGeometry.faces; + + var idx = 0; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0, jl = face.vertexNormals.length; j < jl; j ++ ) { + + var vertex = vertices[ face[ keys[ j ] ] ]; + + var normal = face.vertexNormals[ j ]; + + v1.copy( vertex ).applyMatrix4( matrixWorld ); + + v2.copy( normal ).applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 ); + + position.setXYZ( idx, v1.x, v1.y, v1.z ); + + idx = idx + 1; + + position.setXYZ( idx, v2.x, v2.y, v2.z ); + + idx = idx + 1; + + } + + } + + } else if ( (objGeometry && objGeometry.isBufferGeometry) ) { + + var objPos = objGeometry.attributes.position; + + var objNorm = objGeometry.attributes.normal; + + var idx = 0; + + // for simplicity, ignore index and drawcalls, and render every normal + + for ( var j = 0, jl = objPos.count; j < jl; j ++ ) { + + v1.set( objPos.getX( j ), objPos.getY( j ), objPos.getZ( j ) ).applyMatrix4( matrixWorld ); + + v2.set( objNorm.getX( j ), objNorm.getY( j ), objNorm.getZ( j ) ); + + v2.applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 ); + + position.setXYZ( idx, v1.x, v1.y, v1.z ); + + idx = idx + 1; + + position.setXYZ( idx, v2.x, v2.y, v2.z ); + + idx = idx + 1; + + } + + } + + position.needsUpdate = true; + + return this; + + }; + + }() ); + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function SpotLightHelper( light ) { + + Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + var geometry = new BufferGeometry(); + + var positions = [ + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 1, + 0, 0, 0, - 1, 0, 1, + 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, - 1, 1 + ]; + + for ( var i = 0, j = 1, l = 32; i < l; i ++, j ++ ) { + + var p1 = ( i / l ) * Math.PI * 2; + var p2 = ( j / l ) * Math.PI * 2; + + positions.push( + Math.cos( p1 ), Math.sin( p1 ), 1, + Math.cos( p2 ), Math.sin( p2 ), 1 + ); + + } + + geometry.addAttribute( 'position', new Float32Attribute( positions, 3 ) ); + + var material = new LineBasicMaterial( { fog: false } ); + + this.cone = new LineSegments( geometry, material ); + this.add( this.cone ); + + this.update(); + + } + + SpotLightHelper.prototype = Object.create( Object3D.prototype ); + SpotLightHelper.prototype.constructor = SpotLightHelper; + + SpotLightHelper.prototype.dispose = function () { + + this.cone.geometry.dispose(); + this.cone.material.dispose(); + + }; + + SpotLightHelper.prototype.update = function () { + + var vector = new Vector3(); + var vector2 = new Vector3(); + + return function update() { + + var coneLength = this.light.distance ? this.light.distance : 1000; + var coneWidth = coneLength * Math.tan( this.light.angle ); + + this.cone.scale.set( coneWidth, coneWidth, coneLength ); + + vector.setFromMatrixPosition( this.light.matrixWorld ); + vector2.setFromMatrixPosition( this.light.target.matrixWorld ); + + this.cone.lookAt( vector2.sub( vector ) ); + + this.cone.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + }; + + }(); + + /** + * @author Sean Griffin / http://twitter.com/sgrif + * @author Michael Guerrero / http://realitymeltdown.com + * @author mrdoob / http://mrdoob.com/ + * @author ikerr / http://verold.com + */ + + function SkeletonHelper( object ) { + + this.bones = this.getBoneList( object ); + + var geometry = new Geometry(); + + for ( var i = 0; i < this.bones.length; i ++ ) { + + var bone = this.bones[ i ]; + + if ( (bone.parent && bone.parent.isBone) ) { + + geometry.vertices.push( new Vector3() ); + geometry.vertices.push( new Vector3() ); + geometry.colors.push( new Color( 0, 0, 1 ) ); + geometry.colors.push( new Color( 0, 1, 0 ) ); + + } + + } + + geometry.dynamic = true; + + var material = new LineBasicMaterial( { vertexColors: VertexColors, depthTest: false, depthWrite: false, transparent: true } ); + + LineSegments.call( this, geometry, material ); + + this.root = object; + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + + this.update(); + + } + + + SkeletonHelper.prototype = Object.create( LineSegments.prototype ); + SkeletonHelper.prototype.constructor = SkeletonHelper; + + SkeletonHelper.prototype.getBoneList = function( object ) { + + var boneList = []; + + if ( (object && object.isBone) ) { + + boneList.push( object ); + + } + + for ( var i = 0; i < object.children.length; i ++ ) { + + boneList.push.apply( boneList, this.getBoneList( object.children[ i ] ) ); + + } + + return boneList; + + }; + + SkeletonHelper.prototype.update = function () { + + var geometry = this.geometry; + + var matrixWorldInv = new Matrix4().getInverse( this.root.matrixWorld ); + + var boneMatrix = new Matrix4(); + + var j = 0; + + for ( var i = 0; i < this.bones.length; i ++ ) { + + var bone = this.bones[ i ]; + + if ( (bone.parent && bone.parent.isBone) ) { + + boneMatrix.multiplyMatrices( matrixWorldInv, bone.matrixWorld ); + geometry.vertices[ j ].setFromMatrixPosition( boneMatrix ); + + boneMatrix.multiplyMatrices( matrixWorldInv, bone.parent.matrixWorld ); + geometry.vertices[ j + 1 ].setFromMatrixPosition( boneMatrix ); + + j += 2; + + } + + } + + geometry.verticesNeedUpdate = true; + + geometry.computeBoundingSphere(); + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + function PointLightHelper( light, sphereSize ) { + + this.light = light; + this.light.updateMatrixWorld(); + + var geometry = new SphereBufferGeometry( sphereSize, 4, 2 ); + var material = new MeshBasicMaterial( { wireframe: true, fog: false } ); + material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + Mesh.call( this, geometry, material ); + + this.matrix = this.light.matrixWorld; + this.matrixAutoUpdate = false; + + /* + var distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 ); + var distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } ); + + this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial ); + this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial ); + + var d = light.distance; + + if ( d === 0.0 ) { + + this.lightDistance.visible = false; + + } else { + + this.lightDistance.scale.set( d, d, d ); + + } + + this.add( this.lightDistance ); + */ + + } + + PointLightHelper.prototype = Object.create( Mesh.prototype ); + PointLightHelper.prototype.constructor = PointLightHelper; + + PointLightHelper.prototype.dispose = function () { + + this.geometry.dispose(); + this.material.dispose(); + + }; + + PointLightHelper.prototype.update = function () { + + this.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + /* + var d = this.light.distance; + + if ( d === 0.0 ) { + + this.lightDistance.visible = false; + + } else { + + this.lightDistance.visible = true; + this.lightDistance.scale.set( d, d, d ); + + } + */ + + }; + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + + function HemisphereLightHelper( light, sphereSize ) { + + Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + this.colors = [ new Color(), new Color() ]; + + var geometry = new SphereGeometry( sphereSize, 4, 2 ); + geometry.rotateX( - Math.PI / 2 ); + + for ( var i = 0, il = 8; i < il; i ++ ) { + + geometry.faces[ i ].color = this.colors[ i < 4 ? 0 : 1 ]; + + } + + var material = new MeshBasicMaterial( { vertexColors: FaceColors, wireframe: true } ); + + this.lightSphere = new Mesh( geometry, material ); + this.add( this.lightSphere ); + + this.update(); + + } + + HemisphereLightHelper.prototype = Object.create( Object3D.prototype ); + HemisphereLightHelper.prototype.constructor = HemisphereLightHelper; + + HemisphereLightHelper.prototype.dispose = function () { + + this.lightSphere.geometry.dispose(); + this.lightSphere.material.dispose(); + + }; + + HemisphereLightHelper.prototype.update = function () { + + var vector = new Vector3(); + + return function update() { + + this.colors[ 0 ].copy( this.light.color ).multiplyScalar( this.light.intensity ); + this.colors[ 1 ].copy( this.light.groundColor ).multiplyScalar( this.light.intensity ); + + this.lightSphere.lookAt( vector.setFromMatrixPosition( this.light.matrixWorld ).negate() ); + this.lightSphere.geometry.colorsNeedUpdate = true; + + }; + + }(); + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function GridHelper( size, divisions, color1, color2 ) { + + divisions = divisions || 1; + color1 = new Color( color1 !== undefined ? color1 : 0x444444 ); + color2 = new Color( color2 !== undefined ? color2 : 0x888888 ); + + var center = divisions / 2; + var step = ( size * 2 ) / divisions; + var vertices = [], colors = []; + + for ( var i = 0, j = 0, k = - size; i <= divisions; i ++, k += step ) { + + vertices.push( - size, 0, k, size, 0, k ); + vertices.push( k, 0, - size, k, 0, size ); + + var color = i === center ? color1 : color2; + + color.toArray( colors, j ); j += 3; + color.toArray( colors, j ); j += 3; + color.toArray( colors, j ); j += 3; + color.toArray( colors, j ); j += 3; + + } + + var geometry = new BufferGeometry(); + geometry.addAttribute( 'position', new Float32Attribute( vertices, 3 ) ); + geometry.addAttribute( 'color', new Float32Attribute( colors, 3 ) ); + + var material = new LineBasicMaterial( { vertexColors: VertexColors } ); + + LineSegments.call( this, geometry, material ); + + } + + GridHelper.prototype = Object.create( LineSegments.prototype ); + GridHelper.prototype.constructor = GridHelper; + + GridHelper.prototype.setColors = function () { + + console.error( 'THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.' ); + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function FaceNormalsHelper( object, size, hex, linewidth ) { + + // FaceNormalsHelper only supports THREE.Geometry + + this.object = object; + + this.size = ( size !== undefined ) ? size : 1; + + var color = ( hex !== undefined ) ? hex : 0xffff00; + + var width = ( linewidth !== undefined ) ? linewidth : 1; + + // + + var nNormals = 0; + + var objGeometry = this.object.geometry; + + if ( (objGeometry && objGeometry.isGeometry) ) { + + nNormals = objGeometry.faces.length; + + } else { + + console.warn( 'THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.' ); + + } + + // + + var geometry = new BufferGeometry(); + + var positions = new Float32Attribute( nNormals * 2 * 3, 3 ); + + geometry.addAttribute( 'position', positions ); + + LineSegments.call( this, geometry, new LineBasicMaterial( { color: color, linewidth: width } ) ); + + // + + this.matrixAutoUpdate = false; + this.update(); + + } + + FaceNormalsHelper.prototype = Object.create( LineSegments.prototype ); + FaceNormalsHelper.prototype.constructor = FaceNormalsHelper; + + FaceNormalsHelper.prototype.update = ( function () { + + var v1 = new Vector3(); + var v2 = new Vector3(); + var normalMatrix = new Matrix3(); + + return function update() { + + this.object.updateMatrixWorld( true ); + + normalMatrix.getNormalMatrix( this.object.matrixWorld ); + + var matrixWorld = this.object.matrixWorld; + + var position = this.geometry.attributes.position; + + // + + var objGeometry = this.object.geometry; + + var vertices = objGeometry.vertices; + + var faces = objGeometry.faces; + + var idx = 0; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + var normal = face.normal; + + v1.copy( vertices[ face.a ] ) + .add( vertices[ face.b ] ) + .add( vertices[ face.c ] ) + .divideScalar( 3 ) + .applyMatrix4( matrixWorld ); + + v2.copy( normal ).applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 ); + + position.setXYZ( idx, v1.x, v1.y, v1.z ); + + idx = idx + 1; + + position.setXYZ( idx, v2.x, v2.y, v2.z ); + + idx = idx + 1; + + } + + position.needsUpdate = true; + + return this; + + }; + + }() ); + + /** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + */ + + function DirectionalLightHelper( light, size ) { + + Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + if ( size === undefined ) size = 1; + + var geometry = new BufferGeometry(); + geometry.addAttribute( 'position', new Float32Attribute( [ + - size, size, 0, + size, size, 0, + size, - size, 0, + - size, - size, 0, + - size, size, 0 + ], 3 ) ); + + var material = new LineBasicMaterial( { fog: false } ); + + this.add( new Line( geometry, material ) ); + + geometry = new BufferGeometry(); + geometry.addAttribute( 'position', new Float32Attribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) ); + + this.add( new Line( geometry, material )); + + this.update(); + + } + + DirectionalLightHelper.prototype = Object.create( Object3D.prototype ); + DirectionalLightHelper.prototype.constructor = DirectionalLightHelper; + + DirectionalLightHelper.prototype.dispose = function () { + + var lightPlane = this.children[ 0 ]; + var targetLine = this.children[ 1 ]; + + lightPlane.geometry.dispose(); + lightPlane.material.dispose(); + targetLine.geometry.dispose(); + targetLine.material.dispose(); + + }; + + DirectionalLightHelper.prototype.update = function () { + + var v1 = new Vector3(); + var v2 = new Vector3(); + var v3 = new Vector3(); + + return function update() { + + v1.setFromMatrixPosition( this.light.matrixWorld ); + v2.setFromMatrixPosition( this.light.target.matrixWorld ); + v3.subVectors( v2, v1 ); + + var lightPlane = this.children[ 0 ]; + var targetLine = this.children[ 1 ]; + + lightPlane.lookAt( v3 ); + lightPlane.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + targetLine.lookAt( v3 ); + targetLine.scale.z = v3.length(); + + }; + + }(); + + /** + * @author alteredq / http://alteredqualia.com/ + * + * - shows frustum, line of sight and up of the camera + * - suitable for fast updates + * - based on frustum visualization in lightgl.js shadowmap example + * http://evanw.github.com/lightgl.js/tests/shadowmap.html + */ + + function CameraHelper( camera ) { + + var geometry = new Geometry(); + var material = new LineBasicMaterial( { color: 0xffffff, vertexColors: FaceColors } ); + + var pointMap = {}; + + // colors + + var hexFrustum = 0xffaa00; + var hexCone = 0xff0000; + var hexUp = 0x00aaff; + var hexTarget = 0xffffff; + var hexCross = 0x333333; + + // near + + addLine( "n1", "n2", hexFrustum ); + addLine( "n2", "n4", hexFrustum ); + addLine( "n4", "n3", hexFrustum ); + addLine( "n3", "n1", hexFrustum ); + + // far + + addLine( "f1", "f2", hexFrustum ); + addLine( "f2", "f4", hexFrustum ); + addLine( "f4", "f3", hexFrustum ); + addLine( "f3", "f1", hexFrustum ); + + // sides + + addLine( "n1", "f1", hexFrustum ); + addLine( "n2", "f2", hexFrustum ); + addLine( "n3", "f3", hexFrustum ); + addLine( "n4", "f4", hexFrustum ); + + // cone + + addLine( "p", "n1", hexCone ); + addLine( "p", "n2", hexCone ); + addLine( "p", "n3", hexCone ); + addLine( "p", "n4", hexCone ); + + // up + + addLine( "u1", "u2", hexUp ); + addLine( "u2", "u3", hexUp ); + addLine( "u3", "u1", hexUp ); + + // target + + addLine( "c", "t", hexTarget ); + addLine( "p", "c", hexCross ); + + // cross + + addLine( "cn1", "cn2", hexCross ); + addLine( "cn3", "cn4", hexCross ); + + addLine( "cf1", "cf2", hexCross ); + addLine( "cf3", "cf4", hexCross ); + + function addLine( a, b, hex ) { + + addPoint( a, hex ); + addPoint( b, hex ); + + } + + function addPoint( id, hex ) { + + geometry.vertices.push( new Vector3() ); + geometry.colors.push( new Color( hex ) ); + + if ( pointMap[ id ] === undefined ) { + + pointMap[ id ] = []; + + } + + pointMap[ id ].push( geometry.vertices.length - 1 ); + + } + + LineSegments.call( this, geometry, material ); + + this.camera = camera; + if( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix(); + + this.matrix = camera.matrixWorld; + this.matrixAutoUpdate = false; + + this.pointMap = pointMap; + + this.update(); + + } + + CameraHelper.prototype = Object.create( LineSegments.prototype ); + CameraHelper.prototype.constructor = CameraHelper; + + CameraHelper.prototype.update = function () { + + var geometry, pointMap; + + var vector = new Vector3(); + var camera = new Camera(); + + function setPoint( point, x, y, z ) { + + vector.set( x, y, z ).unproject( camera ); + + var points = pointMap[ point ]; + + if ( points !== undefined ) { + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + geometry.vertices[ points[ i ] ].copy( vector ); + + } + + } + + } + + return function update() { + + geometry = this.geometry; + pointMap = this.pointMap; + + var w = 1, h = 1; + + // we need just camera projection matrix + // world matrix must be identity + + camera.projectionMatrix.copy( this.camera.projectionMatrix ); + + // center / target + + setPoint( "c", 0, 0, - 1 ); + setPoint( "t", 0, 0, 1 ); + + // near + + setPoint( "n1", - w, - h, - 1 ); + setPoint( "n2", w, - h, - 1 ); + setPoint( "n3", - w, h, - 1 ); + setPoint( "n4", w, h, - 1 ); + + // far + + setPoint( "f1", - w, - h, 1 ); + setPoint( "f2", w, - h, 1 ); + setPoint( "f3", - w, h, 1 ); + setPoint( "f4", w, h, 1 ); + + // up + + setPoint( "u1", w * 0.7, h * 1.1, - 1 ); + setPoint( "u2", - w * 0.7, h * 1.1, - 1 ); + setPoint( "u3", 0, h * 2, - 1 ); + + // cross + + setPoint( "cf1", - w, 0, 1 ); + setPoint( "cf2", w, 0, 1 ); + setPoint( "cf3", 0, - h, 1 ); + setPoint( "cf4", 0, h, 1 ); + + setPoint( "cn1", - w, 0, - 1 ); + setPoint( "cn2", w, 0, - 1 ); + setPoint( "cn3", 0, - h, - 1 ); + setPoint( "cn4", 0, h, - 1 ); + + geometry.verticesNeedUpdate = true; + + }; + + }(); + + /** + * @author WestLangley / http://github.com/WestLangley + */ + + // a helper to show the world-axis-aligned bounding box for an object + + function BoundingBoxHelper( object, hex ) { + + var color = ( hex !== undefined ) ? hex : 0x888888; + + this.object = object; + + this.box = new Box3(); + + Mesh.call( this, new BoxGeometry( 1, 1, 1 ), new MeshBasicMaterial( { color: color, wireframe: true } ) ); + + } + + BoundingBoxHelper.prototype = Object.create( Mesh.prototype ); + BoundingBoxHelper.prototype.constructor = BoundingBoxHelper; + + BoundingBoxHelper.prototype.update = function () { + + this.box.setFromObject( this.object ); + + this.box.getSize( this.scale ); + + this.box.getCenter( this.position ); + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function BoxHelper( object, color ) { + + if ( color === undefined ) color = 0xffff00; + + var indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] ); + var positions = new Float32Array( 8 * 3 ); + + var geometry = new BufferGeometry(); + geometry.setIndex( new BufferAttribute( indices, 1 ) ); + geometry.addAttribute( 'position', new BufferAttribute( positions, 3 ) ); + + LineSegments.call( this, geometry, new LineBasicMaterial( { color: color } ) ); + + if ( object !== undefined ) { + + this.update( object ); + + } + + } + + BoxHelper.prototype = Object.create( LineSegments.prototype ); + BoxHelper.prototype.constructor = BoxHelper; + + BoxHelper.prototype.update = ( function () { + + var box = new Box3(); + + return function update( object ) { + + if ( (object && object.isBox3) ) { + + box.copy( object ); + + } else { + + box.setFromObject( object ); + + } + + if ( box.isEmpty() ) return; + + var min = box.min; + var max = box.max; + + /* + 5____4 + 1/___0/| + | 6__|_7 + 2/___3/ + + 0: max.x, max.y, max.z + 1: min.x, max.y, max.z + 2: min.x, min.y, max.z + 3: max.x, min.y, max.z + 4: max.x, max.y, min.z + 5: min.x, max.y, min.z + 6: min.x, min.y, min.z + 7: max.x, min.y, min.z + */ + + var position = this.geometry.attributes.position; + var array = position.array; + + array[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z; + array[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z; + array[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z; + array[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z; + array[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z; + array[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z; + array[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z; + array[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z; + + position.needsUpdate = true; + + this.geometry.computeBoundingSphere(); + + }; + + } )(); + + /** + * @author WestLangley / http://github.com/WestLangley + * @author zz85 / http://github.com/zz85 + * @author bhouston / http://clara.io + * + * Creates an arrow for visualizing directions + * + * Parameters: + * dir - Vector3 + * origin - Vector3 + * length - Number + * color - color in hex value + * headLength - Number + * headWidth - Number + */ + + var lineGeometry = new BufferGeometry(); + lineGeometry.addAttribute( 'position', new Float32Attribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) ); + + var coneGeometry = new CylinderBufferGeometry( 0, 0.5, 1, 5, 1 ); + coneGeometry.translate( 0, - 0.5, 0 ); + + function ArrowHelper( dir, origin, length, color, headLength, headWidth ) { + + // dir is assumed to be normalized + + Object3D.call( this ); + + if ( color === undefined ) color = 0xffff00; + if ( length === undefined ) length = 1; + if ( headLength === undefined ) headLength = 0.2 * length; + if ( headWidth === undefined ) headWidth = 0.2 * headLength; + + this.position.copy( origin ); + + this.line = new Line( lineGeometry, new LineBasicMaterial( { color: color } ) ); + this.line.matrixAutoUpdate = false; + this.add( this.line ); + + this.cone = new Mesh( coneGeometry, new MeshBasicMaterial( { color: color } ) ); + this.cone.matrixAutoUpdate = false; + this.add( this.cone ); + + this.setDirection( dir ); + this.setLength( length, headLength, headWidth ); + + } + + ArrowHelper.prototype = Object.create( Object3D.prototype ); + ArrowHelper.prototype.constructor = ArrowHelper; + + ArrowHelper.prototype.setDirection = ( function () { + + var axis = new Vector3(); + var radians; + + return function setDirection( dir ) { + + // dir is assumed to be normalized + + if ( dir.y > 0.99999 ) { + + this.quaternion.set( 0, 0, 0, 1 ); + + } else if ( dir.y < - 0.99999 ) { + + this.quaternion.set( 1, 0, 0, 0 ); + + } else { + + axis.set( dir.z, 0, - dir.x ).normalize(); + + radians = Math.acos( dir.y ); + + this.quaternion.setFromAxisAngle( axis, radians ); + + } + + }; + + }() ); + + ArrowHelper.prototype.setLength = function ( length, headLength, headWidth ) { + + if ( headLength === undefined ) headLength = 0.2 * length; + if ( headWidth === undefined ) headWidth = 0.2 * headLength; + + this.line.scale.set( 1, Math.max( 0, length - headLength ), 1 ); + this.line.updateMatrix(); + + this.cone.scale.set( headWidth, headLength, headWidth ); + this.cone.position.y = length; + this.cone.updateMatrix(); + + }; + + ArrowHelper.prototype.setColor = function ( color ) { + + this.line.material.color.copy( color ); + this.cone.material.color.copy( color ); + + }; + + /** + * @author sroucheray / http://sroucheray.org/ + * @author mrdoob / http://mrdoob.com/ + */ + + function AxisHelper( size ) { + + size = size || 1; + + var vertices = new Float32Array( [ + 0, 0, 0, size, 0, 0, + 0, 0, 0, 0, size, 0, + 0, 0, 0, 0, 0, size + ] ); + + var colors = new Float32Array( [ + 1, 0, 0, 1, 0.6, 0, + 0, 1, 0, 0.6, 1, 0, + 0, 0, 1, 0, 0.6, 1 + ] ); + + var geometry = new BufferGeometry(); + geometry.addAttribute( 'position', new BufferAttribute( vertices, 3 ) ); + geometry.addAttribute( 'color', new BufferAttribute( colors, 3 ) ); + + var material = new LineBasicMaterial( { vertexColors: VertexColors } ); + + LineSegments.call( this, geometry, material ); + + } + + AxisHelper.prototype = Object.create( LineSegments.prototype ); + AxisHelper.prototype.constructor = AxisHelper; + + /** + * @author zz85 https://github.com/zz85 + * + * Centripetal CatmullRom Curve - which is useful for avoiding + * cusps and self-intersections in non-uniform catmull rom curves. + * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf + * + * curve.type accepts centripetal(default), chordal and catmullrom + * curve.tension is used for catmullrom which defaults to 0.5 + */ + + var CatmullRomCurve3 = ( function() { + + var + tmp = new Vector3(), + px = new CubicPoly(), + py = new CubicPoly(), + pz = new CubicPoly(); + + /* + Based on an optimized c++ solution in + - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/ + - http://ideone.com/NoEbVM + + This CubicPoly class could be used for reusing some variables and calculations, + but for three.js curve use, it could be possible inlined and flatten into a single function call + which can be placed in CurveUtils. + */ + + function CubicPoly() {} + + /* + * Compute coefficients for a cubic polynomial + * p(s) = c0 + c1*s + c2*s^2 + c3*s^3 + * such that + * p(0) = x0, p(1) = x1 + * and + * p'(0) = t0, p'(1) = t1. + */ + CubicPoly.prototype.init = function( x0, x1, t0, t1 ) { + + this.c0 = x0; + this.c1 = t0; + this.c2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1; + this.c3 = 2 * x0 - 2 * x1 + t0 + t1; + + }; + + CubicPoly.prototype.initNonuniformCatmullRom = function( x0, x1, x2, x3, dt0, dt1, dt2 ) { + + // compute tangents when parameterized in [t1,t2] + var t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1; + var t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2; + + // rescale tangents for parametrization in [0,1] + t1 *= dt1; + t2 *= dt1; + + // initCubicPoly + this.init( x1, x2, t1, t2 ); + + }; + + // standard Catmull-Rom spline: interpolate between x1 and x2 with previous/following points x1/x4 + CubicPoly.prototype.initCatmullRom = function( x0, x1, x2, x3, tension ) { + + this.init( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) ); + + }; + + CubicPoly.prototype.calc = function( t ) { + + var t2 = t * t; + var t3 = t2 * t; + return this.c0 + this.c1 * t + this.c2 * t2 + this.c3 * t3; + + }; + + // Subclass Three.js curve + return Curve.create( + + function ( p /* array of Vector3 */ ) { + + this.points = p || []; + this.closed = false; + + }, + + function ( t ) { + + var points = this.points, + point, intPoint, weight, l; + + l = points.length; + + if ( l < 2 ) console.log( 'duh, you need at least 2 points' ); + + point = ( l - ( this.closed ? 0 : 1 ) ) * t; + intPoint = Math.floor( point ); + weight = point - intPoint; + + if ( this.closed ) { + + intPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / points.length ) + 1 ) * points.length; + + } else if ( weight === 0 && intPoint === l - 1 ) { + + intPoint = l - 2; + weight = 1; + + } + + var p0, p1, p2, p3; // 4 points + + if ( this.closed || intPoint > 0 ) { + + p0 = points[ ( intPoint - 1 ) % l ]; + + } else { + + // extrapolate first point + tmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] ); + p0 = tmp; + + } + + p1 = points[ intPoint % l ]; + p2 = points[ ( intPoint + 1 ) % l ]; + + if ( this.closed || intPoint + 2 < l ) { + + p3 = points[ ( intPoint + 2 ) % l ]; + + } else { + + // extrapolate last point + tmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] ); + p3 = tmp; + + } + + if ( this.type === undefined || this.type === 'centripetal' || this.type === 'chordal' ) { + + // init Centripetal / Chordal Catmull-Rom + var pow = this.type === 'chordal' ? 0.5 : 0.25; + var dt0 = Math.pow( p0.distanceToSquared( p1 ), pow ); + var dt1 = Math.pow( p1.distanceToSquared( p2 ), pow ); + var dt2 = Math.pow( p2.distanceToSquared( p3 ), pow ); + + // safety check for repeated points + if ( dt1 < 1e-4 ) dt1 = 1.0; + if ( dt0 < 1e-4 ) dt0 = dt1; + if ( dt2 < 1e-4 ) dt2 = dt1; + + px.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 ); + py.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 ); + pz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 ); + + } else if ( this.type === 'catmullrom' ) { + + var tension = this.tension !== undefined ? this.tension : 0.5; + px.initCatmullRom( p0.x, p1.x, p2.x, p3.x, tension ); + py.initCatmullRom( p0.y, p1.y, p2.y, p3.y, tension ); + pz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, tension ); + + } + + var v = new Vector3( + px.calc( weight ), + py.calc( weight ), + pz.calc( weight ) + ); + + return v; + + } + + ); + + } )(); + + /************************************************************** + * Closed Spline 3D curve + **************************************************************/ + + + function ClosedSplineCurve3( points ) { + + console.warn( 'THREE.ClosedSplineCurve3 has been deprecated. Please use THREE.CatmullRomCurve3.' ); + + CatmullRomCurve3.call( this, points ); + this.type = 'catmullrom'; + this.closed = true; + + } + + ClosedSplineCurve3.prototype = Object.create( CatmullRomCurve3.prototype ); + + /************************************************************** + * Spline 3D curve + **************************************************************/ + + + var SplineCurve3 = Curve.create( + + function ( points /* array of Vector3 */ ) { + + console.warn( 'THREE.SplineCurve3 will be deprecated. Please use THREE.CatmullRomCurve3' ); + this.points = ( points === undefined ) ? [] : points; + + }, + + function ( t ) { + + var points = this.points; + var point = ( points.length - 1 ) * t; + + var intPoint = Math.floor( point ); + var weight = point - intPoint; + + var point0 = points[ intPoint == 0 ? intPoint : intPoint - 1 ]; + var point1 = points[ intPoint ]; + var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ]; + var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ]; + + var interpolate = CurveUtils.interpolate; + + return new Vector3( + interpolate( point0.x, point1.x, point2.x, point3.x, weight ), + interpolate( point0.y, point1.y, point2.y, point3.y, weight ), + interpolate( point0.z, point1.z, point2.z, point3.z, weight ) + ); + + } + + ); + + /************************************************************** + * Cubic Bezier 3D curve + **************************************************************/ + + var CubicBezierCurve3 = Curve.create( + + function ( v0, v1, v2, v3 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + + }, + + function ( t ) { + + var b3 = ShapeUtils.b3; + + return new Vector3( + b3( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ), + b3( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ), + b3( t, this.v0.z, this.v1.z, this.v2.z, this.v3.z ) + ); + + } + + ); + + /************************************************************** + * Quadratic Bezier 3D curve + **************************************************************/ + + var QuadraticBezierCurve3 = Curve.create( + + function ( v0, v1, v2 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + + }, + + function ( t ) { + + var b2 = ShapeUtils.b2; + + return new Vector3( + b2( t, this.v0.x, this.v1.x, this.v2.x ), + b2( t, this.v0.y, this.v1.y, this.v2.y ), + b2( t, this.v0.z, this.v1.z, this.v2.z ) + ); + + } + + ); + + /************************************************************** + * Line3D + **************************************************************/ + + var LineCurve3 = Curve.create( + + function ( v1, v2 ) { + + this.v1 = v1; + this.v2 = v2; + + }, + + function ( t ) { + + if ( t === 1 ) { + + return this.v2.clone(); + + } + + var vector = new Vector3(); + + vector.subVectors( this.v2, this.v1 ); // diff + vector.multiplyScalar( t ); + vector.add( this.v1 ); + + return vector; + + } + + ); + + /************************************************************** + * Arc curve + **************************************************************/ + + function ArcCurve( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) { + + EllipseCurve.call( this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise ); + + } + + ArcCurve.prototype = Object.create( EllipseCurve.prototype ); + ArcCurve.prototype.constructor = ArcCurve; + + /** + * @author alteredq / http://alteredqualia.com/ + */ + + var SceneUtils = { + + createMultiMaterialObject: function ( geometry, materials ) { + + var group = new Group(); + + for ( var i = 0, l = materials.length; i < l; i ++ ) { + + group.add( new Mesh( geometry, materials[ i ] ) ); + + } + + return group; + + }, + + detach: function ( child, parent, scene ) { + + child.applyMatrix( parent.matrixWorld ); + parent.remove( child ); + scene.add( child ); + + }, + + attach: function ( child, scene, parent ) { + + var matrixWorldInverse = new Matrix4(); + matrixWorldInverse.getInverse( parent.matrixWorld ); + child.applyMatrix( matrixWorldInverse ); + + scene.remove( child ); + parent.add( child ); + + } + + }; + + /** + * @author mrdoob / http://mrdoob.com/ + */ + + function Face4 ( a, b, c, d, normal, color, materialIndex ) { + console.warn( 'THREE.Face4 has been removed. A THREE.Face3 will be created instead.' ); + return new Face3( a, b, c, normal, color, materialIndex ); + } + + var LineStrip = 0; + + var LinePieces = 1; + + function PointCloud ( geometry, material ) { + console.warn( 'THREE.PointCloud has been renamed to THREE.Points.' ); + return new Points( geometry, material ); + } + + function ParticleSystem ( geometry, material ) { + console.warn( 'THREE.ParticleSystem has been renamed to THREE.Points.' ); + return new Points( geometry, material ); + } + + function PointCloudMaterial ( parameters ) { + console.warn( 'THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.' ); + return new PointsMaterial( parameters ); + } + + function ParticleBasicMaterial ( parameters ) { + console.warn( 'THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.' ); + return new PointsMaterial( parameters ); + } + + function ParticleSystemMaterial ( parameters ) { + console.warn( 'THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.' ); + return new PointsMaterial( parameters ); + } + + function Vertex ( x, y, z ) { + console.warn( 'THREE.Vertex has been removed. Use THREE.Vector3 instead.' ); + return new Vector3( x, y, z ); + } + + // + + function EdgesHelper( object, hex ) { + console.warn( 'THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.' ); + return new LineSegments( new EdgesGeometry( object.geometry ), new LineBasicMaterial( { color: hex !== undefined ? hex : 0xffffff } ) ); + } + + function WireframeHelper( object, hex ) { + console.warn( 'THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.' ); + return new LineSegments( new WireframeGeometry( object.geometry ), new LineBasicMaterial( { color: hex !== undefined ? hex : 0xffffff } ) ); + } + + // + + Object.assign( Box2.prototype, { + center: function ( optionalTarget ) { + console.warn( 'THREE.Box2: .center() has been renamed to .getCenter().' ); + return this.getCenter( optionalTarget ); + }, + empty: function () { + console.warn( 'THREE.Box2: .empty() has been renamed to .isEmpty().' ); + return this.isEmpty(); + }, + isIntersectionBox: function ( box ) { + console.warn( 'THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().' ); + return this.intersectsBox( box ); + }, + size: function ( optionalTarget ) { + console.warn( 'THREE.Box2: .size() has been renamed to .getSize().' ); + return this.getSize( optionalTarget ); + } + } ); + + Object.assign( Box3.prototype, { + center: function ( optionalTarget ) { + console.warn( 'THREE.Box3: .center() has been renamed to .getCenter().' ); + return this.getCenter( optionalTarget ); + }, + empty: function () { + console.warn( 'THREE.Box3: .empty() has been renamed to .isEmpty().' ); + return this.isEmpty(); + }, + isIntersectionBox: function ( box ) { + console.warn( 'THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().' ); + return this.intersectsBox( box ); + }, + isIntersectionSphere: function ( sphere ) { + console.warn( 'THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().' ); + return this.intersectsSphere( sphere ); + }, + size: function ( optionalTarget ) { + console.warn( 'THREE.Box3: .size() has been renamed to .getSize().' ); + return this.getSize( optionalTarget ); + } + } ); + + Object.assign( Line3.prototype, { + center: function ( optionalTarget ) { + console.warn( 'THREE.Line3: .center() has been renamed to .getCenter().' ); + return this.getCenter( optionalTarget ); + } + } ); + + Object.assign( Matrix3.prototype, { + multiplyVector3: function ( vector ) { + console.warn( 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.' ); + return vector.applyMatrix3( this ); + }, + multiplyVector3Array: function ( a ) { + console.warn( 'THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.' ); + return this.applyToVector3Array( a ); + } + } ); + + Object.assign( Matrix4.prototype, { + extractPosition: function ( m ) { + console.warn( 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().' ); + return this.copyPosition( m ); + }, + setRotationFromQuaternion: function ( q ) { + console.warn( 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().' ); + return this.makeRotationFromQuaternion( q ); + }, + multiplyVector3: function ( vector ) { + console.warn( 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead.' ); + return vector.applyProjection( this ); + }, + multiplyVector4: function ( vector ) { + console.warn( 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.' ); + return vector.applyMatrix4( this ); + }, + multiplyVector3Array: function ( a ) { + console.warn( 'THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.' ); + return this.applyToVector3Array( a ); + }, + rotateAxis: function ( v ) { + console.warn( 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.' ); + v.transformDirection( this ); + }, + crossVector: function ( vector ) { + console.warn( 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.' ); + return vector.applyMatrix4( this ); + }, + translate: function ( v ) { + console.error( 'THREE.Matrix4: .translate() has been removed.' ); + }, + rotateX: function ( angle ) { + console.error( 'THREE.Matrix4: .rotateX() has been removed.' ); + }, + rotateY: function ( angle ) { + console.error( 'THREE.Matrix4: .rotateY() has been removed.' ); + }, + rotateZ: function ( angle ) { + console.error( 'THREE.Matrix4: .rotateZ() has been removed.' ); + }, + rotateByAxis: function ( axis, angle ) { + console.error( 'THREE.Matrix4: .rotateByAxis() has been removed.' ); + } + } ); + + Object.assign( Plane.prototype, { + isIntersectionLine: function ( line ) { + console.warn( 'THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().' ); + return this.intersectsLine( line ); + } + } ); + + Object.assign( Quaternion.prototype, { + multiplyVector3: function ( vector ) { + console.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' ); + return vector.applyQuaternion( this ); + } + } ); + + Object.assign( Ray.prototype, { + isIntersectionBox: function ( box ) { + console.warn( 'THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().' ); + return this.intersectsBox( box ); + }, + isIntersectionPlane: function ( plane ) { + console.warn( 'THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().' ); + return this.intersectsPlane( plane ); + }, + isIntersectionSphere: function ( sphere ) { + console.warn( 'THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().' ); + return this.intersectsSphere( sphere ); + } + } ); + + Object.assign( Shape.prototype, { + extrude: function ( options ) { + console.warn( 'THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.' ); + return new ExtrudeGeometry( this, options ); + }, + makeGeometry: function ( options ) { + console.warn( 'THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.' ); + return new ShapeGeometry( this, options ); + } + } ); + + Object.assign( Vector3.prototype, { + setEulerFromRotationMatrix: function () { + console.error( 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.' ); + }, + setEulerFromQuaternion: function () { + console.error( 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.' ); + }, + getPositionFromMatrix: function ( m ) { + console.warn( 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().' ); + return this.setFromMatrixPosition( m ); + }, + getScaleFromMatrix: function ( m ) { + console.warn( 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().' ); + return this.setFromMatrixScale( m ); + }, + getColumnFromMatrix: function ( index, matrix ) { + console.warn( 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().' ); + return this.setFromMatrixColumn( matrix, index ); + } + } ); + + // + + Object.assign( Object3D.prototype, { + getChildByName: function ( name ) { + console.warn( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' ); + return this.getObjectByName( name ); + }, + renderDepth: function ( value ) { + console.warn( 'THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.' ); + }, + translate: function ( distance, axis ) { + console.warn( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' ); + return this.translateOnAxis( axis, distance ); + } + } ); + + Object.defineProperties( Object3D.prototype, { + eulerOrder: { + get: function () { + console.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' ); + return this.rotation.order; + }, + set: function ( value ) { + console.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' ); + this.rotation.order = value; + } + }, + useQuaternion: { + get: function () { + console.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' ); + }, + set: function ( value ) { + console.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' ); + } + } + } ); + + Object.defineProperties( LOD.prototype, { + objects: { + get: function () { + console.warn( 'THREE.LOD: .objects has been renamed to .levels.' ); + return this.levels; + } + } + } ); + + // + + PerspectiveCamera.prototype.setLens = function ( focalLength, filmGauge ) { + + console.warn( "THREE.PerspectiveCamera.setLens is deprecated. " + + "Use .setFocalLength and .filmGauge for a photographic setup." ); + + if ( filmGauge !== undefined ) this.filmGauge = filmGauge; + this.setFocalLength( focalLength ); + + }; + + // + + Object.defineProperties( Light.prototype, { + onlyShadow: { + set: function ( value ) { + console.warn( 'THREE.Light: .onlyShadow has been removed.' ); + } + }, + shadowCameraFov: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraFov is now .shadow.camera.fov.' ); + this.shadow.camera.fov = value; + } + }, + shadowCameraLeft: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraLeft is now .shadow.camera.left.' ); + this.shadow.camera.left = value; + } + }, + shadowCameraRight: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraRight is now .shadow.camera.right.' ); + this.shadow.camera.right = value; + } + }, + shadowCameraTop: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraTop is now .shadow.camera.top.' ); + this.shadow.camera.top = value; + } + }, + shadowCameraBottom: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.' ); + this.shadow.camera.bottom = value; + } + }, + shadowCameraNear: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraNear is now .shadow.camera.near.' ); + this.shadow.camera.near = value; + } + }, + shadowCameraFar: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraFar is now .shadow.camera.far.' ); + this.shadow.camera.far = value; + } + }, + shadowCameraVisible: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.' ); + } + }, + shadowBias: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowBias is now .shadow.bias.' ); + this.shadow.bias = value; + } + }, + shadowDarkness: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowDarkness has been removed.' ); + } + }, + shadowMapWidth: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.' ); + this.shadow.mapSize.width = value; + } + }, + shadowMapHeight: { + set: function ( value ) { + console.warn( 'THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.' ); + this.shadow.mapSize.height = value; + } + } + } ); + + // + + Object.defineProperties( BufferAttribute.prototype, { + length: { + get: function () { + console.warn( 'THREE.BufferAttribute: .length has been deprecated. Please use .count.' ); + return this.array.length; + } + } + } ); + + Object.assign( BufferGeometry.prototype, { + addIndex: function ( index ) { + console.warn( 'THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().' ); + this.setIndex( index ); + }, + addDrawCall: function ( start, count, indexOffset ) { + if ( indexOffset !== undefined ) { + console.warn( 'THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.' ); + } + console.warn( 'THREE.BufferGeometry: .addDrawCall() is now .addGroup().' ); + this.addGroup( start, count ); + }, + clearDrawCalls: function () { + console.warn( 'THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().' ); + this.clearGroups(); + }, + computeTangents: function () { + console.warn( 'THREE.BufferGeometry: .computeTangents() has been removed.' ); + }, + computeOffsets: function () { + console.warn( 'THREE.BufferGeometry: .computeOffsets() has been removed.' ); + } + } ); + + Object.defineProperties( BufferGeometry.prototype, { + drawcalls: { + get: function () { + console.error( 'THREE.BufferGeometry: .drawcalls has been renamed to .groups.' ); + return this.groups; + } + }, + offsets: { + get: function () { + console.warn( 'THREE.BufferGeometry: .offsets has been renamed to .groups.' ); + return this.groups; + } + } + } ); + + // + + Object.defineProperties( Material.prototype, { + wrapAround: { + get: function () { + console.warn( 'THREE.' + this.type + ': .wrapAround has been removed.' ); + }, + set: function ( value ) { + console.warn( 'THREE.' + this.type + ': .wrapAround has been removed.' ); + } + }, + wrapRGB: { + get: function () { + console.warn( 'THREE.' + this.type + ': .wrapRGB has been removed.' ); + return new Color(); + } + } + } ); + + Object.defineProperties( MeshPhongMaterial.prototype, { + metal: { + get: function () { + console.warn( 'THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.' ); + return false; + }, + set: function ( value ) { + console.warn( 'THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead' ); + } + } + } ); + + Object.defineProperties( ShaderMaterial.prototype, { + derivatives: { + get: function () { + console.warn( 'THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' ); + return this.extensions.derivatives; + }, + set: function ( value ) { + console.warn( 'THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' ); + this.extensions.derivatives = value; + } + } + } ); + + // + + EventDispatcher.prototype = Object.assign( Object.create( { + + // Note: Extra base ensures these properties are not 'assign'ed. + + constructor: EventDispatcher, + + apply: function ( target ) { + + console.warn( "THREE.EventDispatcher: .apply is deprecated, " + + "just inherit or Object.assign the prototype to mix-in." ); + + Object.assign( target, this ); + + } + + } ), EventDispatcher.prototype ); + + // + + Object.defineProperties( Uniform.prototype, { + dynamic: { + set: function ( value ) { + console.warn( 'THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.' ); + } + }, + onUpdate: { + value: function () { + console.warn( 'THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.' ); + return this; + } + } + } ); + + // + + Object.assign( WebGLRenderer.prototype, { + supportsFloatTextures: function () { + console.warn( 'THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \'OES_texture_float\' ).' ); + return this.extensions.get( 'OES_texture_float' ); + }, + supportsHalfFloatTextures: function () { + console.warn( 'THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \'OES_texture_half_float\' ).' ); + return this.extensions.get( 'OES_texture_half_float' ); + }, + supportsStandardDerivatives: function () { + console.warn( 'THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \'OES_standard_derivatives\' ).' ); + return this.extensions.get( 'OES_standard_derivatives' ); + }, + supportsCompressedTextureS3TC: function () { + console.warn( 'THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \'WEBGL_compressed_texture_s3tc\' ).' ); + return this.extensions.get( 'WEBGL_compressed_texture_s3tc' ); + }, + supportsCompressedTexturePVRTC: function () { + console.warn( 'THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \'WEBGL_compressed_texture_pvrtc\' ).' ); + return this.extensions.get( 'WEBGL_compressed_texture_pvrtc' ); + }, + supportsBlendMinMax: function () { + console.warn( 'THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \'EXT_blend_minmax\' ).' ); + return this.extensions.get( 'EXT_blend_minmax' ); + }, + supportsVertexTextures: function () { + return this.capabilities.vertexTextures; + }, + supportsInstancedArrays: function () { + console.warn( 'THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \'ANGLE_instanced_arrays\' ).' ); + return this.extensions.get( 'ANGLE_instanced_arrays' ); + }, + enableScissorTest: function ( boolean ) { + console.warn( 'THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().' ); + this.setScissorTest( boolean ); + }, + initMaterial: function () { + console.warn( 'THREE.WebGLRenderer: .initMaterial() has been removed.' ); + }, + addPrePlugin: function () { + console.warn( 'THREE.WebGLRenderer: .addPrePlugin() has been removed.' ); + }, + addPostPlugin: function () { + console.warn( 'THREE.WebGLRenderer: .addPostPlugin() has been removed.' ); + }, + updateShadowMap: function () { + console.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' ); + } + } ); + + Object.defineProperties( WebGLRenderer.prototype, { + shadowMapEnabled: { + get: function () { + return this.shadowMap.enabled; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.' ); + this.shadowMap.enabled = value; + } + }, + shadowMapType: { + get: function () { + return this.shadowMap.type; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.' ); + this.shadowMap.type = value; + } + }, + shadowMapCullFace: { + get: function () { + return this.shadowMap.cullFace; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderer: .shadowMapCullFace is now .shadowMap.cullFace.' ); + this.shadowMap.cullFace = value; + } + } + } ); + + Object.defineProperties( WebGLShadowMap.prototype, { + cullFace: { + get: function () { + return this.renderReverseSided ? CullFaceFront : CullFaceBack; + }, + set: function ( cullFace ) { + var value = ( cullFace !== CullFaceBack ); + console.warn( "WebGLRenderer: .shadowMap.cullFace is deprecated. Set .shadowMap.renderReverseSided to " + value + "." ); + this.renderReverseSided = value; + } + } + } ); + + // + + Object.defineProperties( WebGLRenderTarget.prototype, { + wrapS: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' ); + return this.texture.wrapS; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' ); + this.texture.wrapS = value; + } + }, + wrapT: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' ); + return this.texture.wrapT; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' ); + this.texture.wrapT = value; + } + }, + magFilter: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' ); + return this.texture.magFilter; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' ); + this.texture.magFilter = value; + } + }, + minFilter: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' ); + return this.texture.minFilter; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' ); + this.texture.minFilter = value; + } + }, + anisotropy: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' ); + return this.texture.anisotropy; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' ); + this.texture.anisotropy = value; + } + }, + offset: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' ); + return this.texture.offset; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' ); + this.texture.offset = value; + } + }, + repeat: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' ); + return this.texture.repeat; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' ); + this.texture.repeat = value; + } + }, + format: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' ); + return this.texture.format; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' ); + this.texture.format = value; + } + }, + type: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' ); + return this.texture.type; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' ); + this.texture.type = value; + } + }, + generateMipmaps: { + get: function () { + console.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' ); + return this.texture.generateMipmaps; + }, + set: function ( value ) { + console.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' ); + this.texture.generateMipmaps = value; + } + } + } ); + + // + + Object.assign( Audio.prototype, { + load: function ( file ) { + console.warn( 'THREE.Audio: .load has been deprecated. Please use THREE.AudioLoader.' ); + var scope = this; + var audioLoader = new AudioLoader(); + audioLoader.load( file, function ( buffer ) { + scope.setBuffer( buffer ); + } ); + return this; + } + } ); + + Object.assign( AudioAnalyser.prototype, { + getData: function ( file ) { + console.warn( 'THREE.AudioAnalyser: .getData() is now .getFrequencyData().' ); + return this.getFrequencyData(); + } + } ); + + // + + var GeometryUtils = { + + merge: function ( geometry1, geometry2, materialIndexOffset ) { + + console.warn( 'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.' ); + + var matrix; + + if ( geometry2.isMesh ) { + + geometry2.matrixAutoUpdate && geometry2.updateMatrix(); + + matrix = geometry2.matrix; + geometry2 = geometry2.geometry; + + } + + geometry1.merge( geometry2, matrix, materialIndexOffset ); + + }, + + center: function ( geometry ) { + + console.warn( 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.' ); + return geometry.center(); + + } + + }; + + var ImageUtils = { + + crossOrigin: undefined, + + loadTexture: function ( url, mapping, onLoad, onError ) { + + console.warn( 'THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.' ); + + var loader = new TextureLoader(); + loader.setCrossOrigin( this.crossOrigin ); + + var texture = loader.load( url, onLoad, undefined, onError ); + + if ( mapping ) texture.mapping = mapping; + + return texture; + + }, + + loadTextureCube: function ( urls, mapping, onLoad, onError ) { + + console.warn( 'THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.' ); + + var loader = new CubeTextureLoader(); + loader.setCrossOrigin( this.crossOrigin ); + + var texture = loader.load( urls, onLoad, undefined, onError ); + + if ( mapping ) texture.mapping = mapping; + + return texture; + + }, + + loadCompressedTexture: function () { + + console.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' ); + + }, + + loadCompressedTextureCube: function () { + + console.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' ); + + } + + }; + + // + + function Projector () { + + console.error( 'THREE.Projector has been moved to /examples/js/renderers/Projector.js.' ); + + this.projectVector = function ( vector, camera ) { + + console.warn( 'THREE.Projector: .projectVector() is now vector.project().' ); + vector.project( camera ); + + }; + + this.unprojectVector = function ( vector, camera ) { + + console.warn( 'THREE.Projector: .unprojectVector() is now vector.unproject().' ); + vector.unproject( camera ); + + }; + + this.pickingRay = function ( vector, camera ) { + + console.error( 'THREE.Projector: .pickingRay() is now raycaster.setFromCamera().' ); + + }; + + } + + // + + function CanvasRenderer () { + + console.error( 'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js' ); + + this.domElement = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' ); + this.clear = function () {}; + this.render = function () {}; + this.setClearColor = function () {}; + this.setSize = function () {}; + + } + + exports.WebGLRenderTargetCube = WebGLRenderTargetCube; + exports.WebGLRenderTarget = WebGLRenderTarget; + exports.WebGLRenderer = WebGLRenderer; + exports.ShaderLib = ShaderLib; + exports.UniformsLib = UniformsLib; + exports.UniformsUtils = UniformsUtils; + exports.ShaderChunk = ShaderChunk; + exports.FogExp2 = FogExp2; + exports.Fog = Fog; + exports.Scene = Scene; + exports.LensFlare = LensFlare; + exports.Sprite = Sprite; + exports.LOD = LOD; + exports.SkinnedMesh = SkinnedMesh; + exports.Skeleton = Skeleton; + exports.Bone = Bone; + exports.Mesh = Mesh; + exports.LineSegments = LineSegments; + exports.Line = Line; + exports.Points = Points; + exports.Group = Group; + exports.VideoTexture = VideoTexture; + exports.DataTexture = DataTexture; + exports.CompressedTexture = CompressedTexture; + exports.CubeTexture = CubeTexture; + exports.CanvasTexture = CanvasTexture; + exports.DepthTexture = DepthTexture; + exports.TextureIdCount = TextureIdCount; + exports.Texture = Texture; + exports.MaterialIdCount = MaterialIdCount; + exports.CompressedTextureLoader = CompressedTextureLoader; + exports.BinaryTextureLoader = BinaryTextureLoader; + exports.DataTextureLoader = DataTextureLoader; + exports.CubeTextureLoader = CubeTextureLoader; + exports.TextureLoader = TextureLoader; + exports.ObjectLoader = ObjectLoader; + exports.MaterialLoader = MaterialLoader; + exports.BufferGeometryLoader = BufferGeometryLoader; + exports.DefaultLoadingManager = DefaultLoadingManager; + exports.LoadingManager = LoadingManager; + exports.JSONLoader = JSONLoader; + exports.ImageLoader = ImageLoader; + exports.FontLoader = FontLoader; + exports.XHRLoader = XHRLoader; + exports.Loader = Loader; + exports.Cache = Cache; + exports.AudioLoader = AudioLoader; + exports.SpotLightShadow = SpotLightShadow; + exports.SpotLight = SpotLight; + exports.PointLight = PointLight; + exports.HemisphereLight = HemisphereLight; + exports.DirectionalLightShadow = DirectionalLightShadow; + exports.DirectionalLight = DirectionalLight; + exports.AmbientLight = AmbientLight; + exports.LightShadow = LightShadow; + exports.Light = Light; + exports.StereoCamera = StereoCamera; + exports.PerspectiveCamera = PerspectiveCamera; + exports.OrthographicCamera = OrthographicCamera; + exports.CubeCamera = CubeCamera; + exports.Camera = Camera; + exports.AudioListener = AudioListener; + exports.PositionalAudio = PositionalAudio; + exports.getAudioContext = getAudioContext; + exports.AudioAnalyser = AudioAnalyser; + exports.Audio = Audio; + exports.VectorKeyframeTrack = VectorKeyframeTrack; + exports.StringKeyframeTrack = StringKeyframeTrack; + exports.QuaternionKeyframeTrack = QuaternionKeyframeTrack; + exports.NumberKeyframeTrack = NumberKeyframeTrack; + exports.ColorKeyframeTrack = ColorKeyframeTrack; + exports.BooleanKeyframeTrack = BooleanKeyframeTrack; + exports.PropertyMixer = PropertyMixer; + exports.PropertyBinding = PropertyBinding; + exports.KeyframeTrack = KeyframeTrack; + exports.AnimationUtils = AnimationUtils; + exports.AnimationObjectGroup = AnimationObjectGroup; + exports.AnimationMixer = AnimationMixer; + exports.AnimationClip = AnimationClip; + exports.Uniform = Uniform; + exports.InstancedBufferGeometry = InstancedBufferGeometry; + exports.BufferGeometry = BufferGeometry; + exports.GeometryIdCount = GeometryIdCount; + exports.Geometry = Geometry; + exports.InterleavedBufferAttribute = InterleavedBufferAttribute; + exports.InstancedInterleavedBuffer = InstancedInterleavedBuffer; + exports.InterleavedBuffer = InterleavedBuffer; + exports.InstancedBufferAttribute = InstancedBufferAttribute; + exports.DynamicBufferAttribute = DynamicBufferAttribute; + exports.Float64Attribute = Float64Attribute; + exports.Float32Attribute = Float32Attribute; + exports.Uint32Attribute = Uint32Attribute; + exports.Int32Attribute = Int32Attribute; + exports.Uint16Attribute = Uint16Attribute; + exports.Int16Attribute = Int16Attribute; + exports.Uint8ClampedAttribute = Uint8ClampedAttribute; + exports.Uint8Attribute = Uint8Attribute; + exports.Int8Attribute = Int8Attribute; + exports.BufferAttribute = BufferAttribute; + exports.Face3 = Face3; + exports.Object3DIdCount = Object3DIdCount; + exports.Object3D = Object3D; + exports.Raycaster = Raycaster; + exports.Layers = Layers; + exports.EventDispatcher = EventDispatcher; + exports.Clock = Clock; + exports.QuaternionLinearInterpolant = QuaternionLinearInterpolant; + exports.LinearInterpolant = LinearInterpolant; + exports.DiscreteInterpolant = DiscreteInterpolant; + exports.CubicInterpolant = CubicInterpolant; + exports.Interpolant = Interpolant; + exports.Triangle = Triangle; + exports.Spline = Spline; + exports.Math = _Math; + exports.Spherical = Spherical; + exports.Plane = Plane; + exports.Frustum = Frustum; + exports.Sphere = Sphere; + exports.Ray = Ray; + exports.Matrix4 = Matrix4; + exports.Matrix3 = Matrix3; + exports.Box3 = Box3; + exports.Box2 = Box2; + exports.Line3 = Line3; + exports.Euler = Euler; + exports.Vector4 = Vector4; + exports.Vector3 = Vector3; + exports.Vector2 = Vector2; + exports.Quaternion = Quaternion; + exports.ColorKeywords = ColorKeywords; + exports.Color = Color; + exports.MorphBlendMesh = MorphBlendMesh; + exports.ImmediateRenderObject = ImmediateRenderObject; + exports.VertexNormalsHelper = VertexNormalsHelper; + exports.SpotLightHelper = SpotLightHelper; + exports.SkeletonHelper = SkeletonHelper; + exports.PointLightHelper = PointLightHelper; + exports.HemisphereLightHelper = HemisphereLightHelper; + exports.GridHelper = GridHelper; + exports.FaceNormalsHelper = FaceNormalsHelper; + exports.DirectionalLightHelper = DirectionalLightHelper; + exports.CameraHelper = CameraHelper; + exports.BoundingBoxHelper = BoundingBoxHelper; + exports.BoxHelper = BoxHelper; + exports.ArrowHelper = ArrowHelper; + exports.AxisHelper = AxisHelper; + exports.ClosedSplineCurve3 = ClosedSplineCurve3; + exports.CatmullRomCurve3 = CatmullRomCurve3; + exports.SplineCurve3 = SplineCurve3; + exports.CubicBezierCurve3 = CubicBezierCurve3; + exports.QuadraticBezierCurve3 = QuadraticBezierCurve3; + exports.LineCurve3 = LineCurve3; + exports.ArcCurve = ArcCurve; + exports.EllipseCurve = EllipseCurve; + exports.SplineCurve = SplineCurve; + exports.CubicBezierCurve = CubicBezierCurve; + exports.QuadraticBezierCurve = QuadraticBezierCurve; + exports.LineCurve = LineCurve; + exports.Shape = Shape; + exports.ShapePath = ShapePath; + exports.Path = Path; + exports.Font = Font; + exports.CurvePath = CurvePath; + exports.Curve = Curve; + exports.ShapeUtils = ShapeUtils; + exports.SceneUtils = SceneUtils; + exports.CurveUtils = CurveUtils; + exports.WireframeGeometry = WireframeGeometry; + exports.ParametricGeometry = ParametricGeometry; + exports.ParametricBufferGeometry = ParametricBufferGeometry; + exports.TetrahedronGeometry = TetrahedronGeometry; + exports.TetrahedronBufferGeometry = TetrahedronBufferGeometry; + exports.OctahedronGeometry = OctahedronGeometry; + exports.OctahedronBufferGeometry = OctahedronBufferGeometry; + exports.IcosahedronGeometry = IcosahedronGeometry; + exports.IcosahedronBufferGeometry = IcosahedronBufferGeometry; + exports.DodecahedronGeometry = DodecahedronGeometry; + exports.DodecahedronBufferGeometry = DodecahedronBufferGeometry; + exports.PolyhedronGeometry = PolyhedronGeometry; + exports.PolyhedronBufferGeometry = PolyhedronBufferGeometry; + exports.TubeGeometry = TubeGeometry; + exports.TubeBufferGeometry = TubeBufferGeometry; + exports.TorusKnotGeometry = TorusKnotGeometry; + exports.TorusKnotBufferGeometry = TorusKnotBufferGeometry; + exports.TorusGeometry = TorusGeometry; + exports.TorusBufferGeometry = TorusBufferGeometry; + exports.TextGeometry = TextGeometry; + exports.SphereBufferGeometry = SphereBufferGeometry; + exports.SphereGeometry = SphereGeometry; + exports.RingGeometry = RingGeometry; + exports.RingBufferGeometry = RingBufferGeometry; + exports.PlaneBufferGeometry = PlaneBufferGeometry; + exports.PlaneGeometry = PlaneGeometry; + exports.LatheGeometry = LatheGeometry; + exports.LatheBufferGeometry = LatheBufferGeometry; + exports.ShapeGeometry = ShapeGeometry; + exports.ExtrudeGeometry = ExtrudeGeometry; + exports.EdgesGeometry = EdgesGeometry; + exports.ConeGeometry = ConeGeometry; + exports.ConeBufferGeometry = ConeBufferGeometry; + exports.CylinderGeometry = CylinderGeometry; + exports.CylinderBufferGeometry = CylinderBufferGeometry; + exports.CircleBufferGeometry = CircleBufferGeometry; + exports.CircleGeometry = CircleGeometry; + exports.BoxBufferGeometry = BoxBufferGeometry; + exports.BoxGeometry = BoxGeometry; + exports.ShadowMaterial = ShadowMaterial; + exports.SpriteMaterial = SpriteMaterial; + exports.RawShaderMaterial = RawShaderMaterial; + exports.ShaderMaterial = ShaderMaterial; + exports.PointsMaterial = PointsMaterial; + exports.MultiMaterial = MultiMaterial; + exports.MeshPhysicalMaterial = MeshPhysicalMaterial; + exports.MeshStandardMaterial = MeshStandardMaterial; + exports.MeshPhongMaterial = MeshPhongMaterial; + exports.MeshNormalMaterial = MeshNormalMaterial; + exports.MeshLambertMaterial = MeshLambertMaterial; + exports.MeshDepthMaterial = MeshDepthMaterial; + exports.MeshBasicMaterial = MeshBasicMaterial; + exports.LineDashedMaterial = LineDashedMaterial; + exports.LineBasicMaterial = LineBasicMaterial; + exports.Material = Material; + exports.REVISION = REVISION; + exports.MOUSE = MOUSE; + exports.CullFaceNone = CullFaceNone; + exports.CullFaceBack = CullFaceBack; + exports.CullFaceFront = CullFaceFront; + exports.CullFaceFrontBack = CullFaceFrontBack; + exports.FrontFaceDirectionCW = FrontFaceDirectionCW; + exports.FrontFaceDirectionCCW = FrontFaceDirectionCCW; + exports.BasicShadowMap = BasicShadowMap; + exports.PCFShadowMap = PCFShadowMap; + exports.PCFSoftShadowMap = PCFSoftShadowMap; + exports.FrontSide = FrontSide; + exports.BackSide = BackSide; + exports.DoubleSide = DoubleSide; + exports.FlatShading = FlatShading; + exports.SmoothShading = SmoothShading; + exports.NoColors = NoColors; + exports.FaceColors = FaceColors; + exports.VertexColors = VertexColors; + exports.NoBlending = NoBlending; + exports.NormalBlending = NormalBlending; + exports.AdditiveBlending = AdditiveBlending; + exports.SubtractiveBlending = SubtractiveBlending; + exports.MultiplyBlending = MultiplyBlending; + exports.CustomBlending = CustomBlending; + exports.BlendingMode = BlendingMode; + exports.AddEquation = AddEquation; + exports.SubtractEquation = SubtractEquation; + exports.ReverseSubtractEquation = ReverseSubtractEquation; + exports.MinEquation = MinEquation; + exports.MaxEquation = MaxEquation; + exports.ZeroFactor = ZeroFactor; + exports.OneFactor = OneFactor; + exports.SrcColorFactor = SrcColorFactor; + exports.OneMinusSrcColorFactor = OneMinusSrcColorFactor; + exports.SrcAlphaFactor = SrcAlphaFactor; + exports.OneMinusSrcAlphaFactor = OneMinusSrcAlphaFactor; + exports.DstAlphaFactor = DstAlphaFactor; + exports.OneMinusDstAlphaFactor = OneMinusDstAlphaFactor; + exports.DstColorFactor = DstColorFactor; + exports.OneMinusDstColorFactor = OneMinusDstColorFactor; + exports.SrcAlphaSaturateFactor = SrcAlphaSaturateFactor; + exports.NeverDepth = NeverDepth; + exports.AlwaysDepth = AlwaysDepth; + exports.LessDepth = LessDepth; + exports.LessEqualDepth = LessEqualDepth; + exports.EqualDepth = EqualDepth; + exports.GreaterEqualDepth = GreaterEqualDepth; + exports.GreaterDepth = GreaterDepth; + exports.NotEqualDepth = NotEqualDepth; + exports.MultiplyOperation = MultiplyOperation; + exports.MixOperation = MixOperation; + exports.AddOperation = AddOperation; + exports.NoToneMapping = NoToneMapping; + exports.LinearToneMapping = LinearToneMapping; + exports.ReinhardToneMapping = ReinhardToneMapping; + exports.Uncharted2ToneMapping = Uncharted2ToneMapping; + exports.CineonToneMapping = CineonToneMapping; + exports.UVMapping = UVMapping; + exports.CubeReflectionMapping = CubeReflectionMapping; + exports.CubeRefractionMapping = CubeRefractionMapping; + exports.EquirectangularReflectionMapping = EquirectangularReflectionMapping; + exports.EquirectangularRefractionMapping = EquirectangularRefractionMapping; + exports.SphericalReflectionMapping = SphericalReflectionMapping; + exports.CubeUVReflectionMapping = CubeUVReflectionMapping; + exports.CubeUVRefractionMapping = CubeUVRefractionMapping; + exports.TextureMapping = TextureMapping; + exports.RepeatWrapping = RepeatWrapping; + exports.ClampToEdgeWrapping = ClampToEdgeWrapping; + exports.MirroredRepeatWrapping = MirroredRepeatWrapping; + exports.TextureWrapping = TextureWrapping; + exports.NearestFilter = NearestFilter; + exports.NearestMipMapNearestFilter = NearestMipMapNearestFilter; + exports.NearestMipMapLinearFilter = NearestMipMapLinearFilter; + exports.LinearFilter = LinearFilter; + exports.LinearMipMapNearestFilter = LinearMipMapNearestFilter; + exports.LinearMipMapLinearFilter = LinearMipMapLinearFilter; + exports.TextureFilter = TextureFilter; + exports.UnsignedByteType = UnsignedByteType; + exports.ByteType = ByteType; + exports.ShortType = ShortType; + exports.UnsignedShortType = UnsignedShortType; + exports.IntType = IntType; + exports.UnsignedIntType = UnsignedIntType; + exports.FloatType = FloatType; + exports.HalfFloatType = HalfFloatType; + exports.UnsignedShort4444Type = UnsignedShort4444Type; + exports.UnsignedShort5551Type = UnsignedShort5551Type; + exports.UnsignedShort565Type = UnsignedShort565Type; + exports.UnsignedInt248Type = UnsignedInt248Type; + exports.AlphaFormat = AlphaFormat; + exports.RGBFormat = RGBFormat; + exports.RGBAFormat = RGBAFormat; + exports.LuminanceFormat = LuminanceFormat; + exports.LuminanceAlphaFormat = LuminanceAlphaFormat; + exports.RGBEFormat = RGBEFormat; + exports.DepthFormat = DepthFormat; + exports.DepthStencilFormat = DepthStencilFormat; + exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format; + exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format; + exports.RGBA_S3TC_DXT3_Format = RGBA_S3TC_DXT3_Format; + exports.RGBA_S3TC_DXT5_Format = RGBA_S3TC_DXT5_Format; + exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format; + exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format; + exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format; + exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format; + exports.RGB_ETC1_Format = RGB_ETC1_Format; + exports.LoopOnce = LoopOnce; + exports.LoopRepeat = LoopRepeat; + exports.LoopPingPong = LoopPingPong; + exports.InterpolateDiscrete = InterpolateDiscrete; + exports.InterpolateLinear = InterpolateLinear; + exports.InterpolateSmooth = InterpolateSmooth; + exports.ZeroCurvatureEnding = ZeroCurvatureEnding; + exports.ZeroSlopeEnding = ZeroSlopeEnding; + exports.WrapAroundEnding = WrapAroundEnding; + exports.TrianglesDrawMode = TrianglesDrawMode; + exports.TriangleStripDrawMode = TriangleStripDrawMode; + exports.TriangleFanDrawMode = TriangleFanDrawMode; + exports.LinearEncoding = LinearEncoding; + exports.sRGBEncoding = sRGBEncoding; + exports.GammaEncoding = GammaEncoding; + exports.RGBEEncoding = RGBEEncoding; + exports.LogLuvEncoding = LogLuvEncoding; + exports.RGBM7Encoding = RGBM7Encoding; + exports.RGBM16Encoding = RGBM16Encoding; + exports.RGBDEncoding = RGBDEncoding; + exports.BasicDepthPacking = BasicDepthPacking; + exports.RGBADepthPacking = RGBADepthPacking; + exports.CubeGeometry = BoxGeometry; + exports.Face4 = Face4; + exports.LineStrip = LineStrip; + exports.LinePieces = LinePieces; + exports.MeshFaceMaterial = MultiMaterial; + exports.PointCloud = PointCloud; + exports.Particle = Sprite; + exports.ParticleSystem = ParticleSystem; + exports.PointCloudMaterial = PointCloudMaterial; + exports.ParticleBasicMaterial = ParticleBasicMaterial; + exports.ParticleSystemMaterial = ParticleSystemMaterial; + exports.Vertex = Vertex; + exports.EdgesHelper = EdgesHelper; + exports.WireframeHelper = WireframeHelper; + exports.GeometryUtils = GeometryUtils; + exports.ImageUtils = ImageUtils; + exports.Projector = Projector; + exports.CanvasRenderer = CanvasRenderer; + + Object.defineProperty(exports, '__esModule', { value: true }); + + Object.defineProperty( exports, 'AudioContext', { + get: function () { + return exports.getAudioContext(); + } + }); + +}))); From dea108b5ca5886815c6d3b68b585ce0451ab434b Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:29:13 +0300 Subject: [PATCH 02/15] Add files via upload --- js/artoolkit.three.js | 59 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 53 insertions(+), 6 deletions(-) diff --git a/js/artoolkit.three.js b/js/artoolkit.three.js index 4f57e33e..2ef9144a 100644 --- a/js/artoolkit.three.js +++ b/js/artoolkit.three.js @@ -1,6 +1,6 @@ /* THREE.js ARToolKit integration */ -;(function() { +(function() { var integrate = function() { /** Helper for setting up a Three.js AR scene using the device camera as input. @@ -114,11 +114,10 @@ var scene = new THREE.Scene(); var camera = new THREE.Camera(); camera.matrixAutoUpdate = false; - camera.projectionMatrix.fromArray(this.getCameraMatrix()); + camera.projectionMatrix.elements.set(this.getCameraMatrix()); scene.add(camera); - var self = this; return { @@ -135,6 +134,9 @@ for (var i in self.threePatternMarkers) { self.threePatternMarkers[i].visible = false; } + for (var i in self.threeNFTMarkers) { + self.threeNFTMarkers[i].visible = false; + } for (var i in self.threeBarcodeMarkers) { self.threeBarcodeMarkers[i].visible = false; } @@ -188,6 +190,31 @@ return obj; }; + /** + Creates a Three.js marker Object3D for the given NFT marker UID. + The marker Object3D tracks the NFT marker when it's detected in the video. + + Use this after a successful artoolkit.loadNFTMarker call: + + arController.loadNFTMarker('DataNFT/pinball', function(markerUID) { + var markerRoot = arController.createThreeNFTMarker(markerUID); + markerRoot.add(myFancyModel); + arScene.scene.add(markerRoot); + }); + + @param {number} markerUID The UID of the marker to track. + @param {number} markerWidth The width of the marker, defaults to 1. + @return {THREE.Object3D} Three.Object3D that tracks the given marker. + */ + ARController.prototype.createThreeNFTMarker = function(markerUID, markerWidth) { + this.setupThree(); + var obj = new THREE.Object3D(); + obj.markerTracker = this.trackNFTMarkerId(markerUID, markerWidth); + obj.matrixAutoUpdate = false; + this.threeNFTMarkers[markerUID] = obj; + return obj; + }; + /** Creates a Three.js marker Object3D for the given multimarker UID. The marker Object3D tracks the multimarker when it's detected in the video. @@ -257,7 +284,22 @@ } if (obj) { - obj.matrix.fromArray(ev.data.matrix); + obj.matrix.elements.set(ev.data.matrix); + obj.visible = true; + } + }); + + /* + Listen to getNFTMarker events to keep track of Three.js markers. + */ + this.addEventListener('getNFTMarker', function(ev) { + var marker = ev.data.marker; + var obj; + + obj = this.threeNFTMarkers[ev.data.marker.id]; + + if (obj) { + obj.matrix.elements.set(ev.data.matrix); obj.visible = true; } }); @@ -268,7 +310,7 @@ this.addEventListener('getMultiMarker', function(ev) { var obj = this.threeMultiMarkers[ev.data.multiMarkerId]; if (obj) { - obj.matrix.fromArray(ev.data.matrix); + obj.matrix.elements.set(ev.data.matrix); obj.visible = true; } }); @@ -283,7 +325,7 @@ var obj = this.threeMultiMarkers[marker]; if (obj && obj.markers && obj.markers[subMarkerID]) { var sub = obj.markers[subMarkerID]; - sub.matrix.fromArray(ev.data.matrix); + sub.matrix.elements.set(ev.data.matrix); sub.visible = (subMarker.visible >= 0); } }); @@ -293,6 +335,11 @@ */ this.threePatternMarkers = {}; + /** + Index of Three.js NFT markers, maps markerID -> THREE.Object3D. + */ + this.threeNFTMarkers = {}; + /** Index of Three.js barcode markers, maps markerID -> THREE.Object3D. */ From edcc8f9283dab73171126f09e3b55feda0f42f5c Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:30:02 +0300 Subject: [PATCH 03/15] Add files via upload --- js/artoolkit.api.js | 457 ++++++++++++++++++++++++---------------- js/artoolkit.babylon.js | 340 ++++++++++++++++++++++++++++++ 2 files changed, 612 insertions(+), 185 deletions(-) create mode 100644 js/artoolkit.babylon.js diff --git a/js/artoolkit.api.js b/js/artoolkit.api.js index 2a2846b8..cd71d54b 100644 --- a/js/artoolkit.api.js +++ b/js/artoolkit.api.js @@ -1,12 +1,12 @@ -;(function() { - 'use strict'; +(function() { + 'use strict' /** The ARController is the main object for doing AR marker detection with JSARToolKit. To use an ARController, you need to tell it the dimensions to use for the AR processing canvas and - pass it an ARCameraParam to define the camera parameters to use when processing images. - The ARCameraParam defines the lens distortion and aspect ratio of the camera used. + pass it an ARCameraParam to define the camera parameters to use when processing images. + The ARCameraParam defines the lens distortion and aspect ratio of the camera used. See https://www.artoolworks.com/support/library/Calibrating_your_camera for more information about AR camera parameteters and how to make and use them. If you pass an image as the first argument, the ARController uses that as the image to process, @@ -22,9 +22,10 @@ @param {number} width The width of the images to process. @param {number} height The height of the images to process. - @param {ARCameraParam | string} camera The ARCameraParam to use for image processing. If this is a string, the ARController treats it as an URL and tries to load it as a ARCameraParam definition file, calling ARController#onload on success. + @param {ARCameraParam | string} camera The ARCameraParam to use for image processing. If this is a string, the ARController treats it as an URL and tries to load it as a ARCameraParam definition file, calling ARController#onload on success. */ var ARController = function(width, height, camera) { + var id; var w = width, h = height; this.orientation = 'landscape'; @@ -39,15 +40,23 @@ this.image = image; } + this.width = w; + this.height = h; + + this.nftMarkerCount = 0; + this.defaultMarkerWidth = 1; this.patternMarkers = {}; this.barcodeMarkers = {}; + this.nftMarkers = {}; this.transform_mat = new Float32Array(16); - this.canvas = document.createElement('canvas'); - this.canvas.width = w; - this.canvas.height = h; - this.ctx = this.canvas.getContext('2d'); + if (typeof document !== 'undefined') { + this.canvas = document.createElement('canvas'); + this.canvas.width = w; + this.canvas.height = h; + this.ctx = this.canvas.getContext('2d'); + } this.videoWidth = w; this.videoHeight = h; @@ -90,7 +99,7 @@ markers were found in the image. Next, a getMarker event is dispatched for each found marker square. Finally, getMultiMarker is dispatched for every found multimarker, followed by getMultiMarkerSub events dispatched for each of the markers in the multimarker. - + arController.addEventListener('markerNum', function(ev) { console.log("Detected " + ev.data + " markers.") }); @@ -105,39 +114,48 @@ arController.addEventListener('getMultiMarkerSub', function(ev) { console.log("Submarker for " + ev.data.multiMarkerId, ev.data.markerIndex, ev.data.marker); }); - - arController.process(image); + + arController.process(image); If no image is given, defaults to this.image. If the debugSetup has been called, draws debug markers on the debug canvas. - @param {HTMLImageElement|HTMLVideoElement} [image] The image to process [optional]. + @param {ImageElement | VideoElement} image The image to process [optional]. */ ARController.prototype.process = function(image) { this.detectMarker(image); - + var markerNum = this.getMarkerNum(); var k,o; for (k in this.patternMarkers) { - o = this.patternMarkers[k]; + o = this.patternMarkers[k] o.inPrevious = o.inCurrent; o.inCurrent = false; } for (k in this.barcodeMarkers) { - o = this.barcodeMarkers[k]; + o = this.barcodeMarkers[k] + o.inPrevious = o.inCurrent; + o.inCurrent = false; + } + for (k in this.nftMarkers) { + o = this.nftMarkers[k] o.inPrevious = o.inCurrent; o.inCurrent = false; } - var i, j, visible, multiEachMarkerInfo; + this.dispatchEvent({ + name: 'markerNum', + target: this, + data: markerNum + }); - for (i=0; i -1 && (markerInfo.id === markerInfo.idPatt || markerInfo.idMatrix === -1)) { visible = this.trackPatternMarkerId(markerInfo.idPatt); @@ -176,16 +194,38 @@ }); } + var nftMarkerCount = this.nftMarkerCount; + if( nftMarkerCount ) artoolkit.detectNFTMarker(this.id); + for (var i=0; i < nftMarkerCount; i++) { + var markerInfo = this.getNFTMarker(i); + + if (markerInfo.found) { + var visible = this.trackNFTMarkerId(i); + visible.matrix.set(markerInfo.pose); + visible.inCurrent = true; + this.transMatToGLMat(visible.matrix, this.transform_mat); + this.dispatchEvent({ + name: 'getNFTMarker', + target: this, + data: { + index: i, + marker: markerInfo, + matrix: this.transform_mat + } + }); + } + } + var multiMarkerCount = this.getMultiMarkerCount(); - for (i=0; i= 0) { visible = true; this.dispatchEvent({ @@ -200,8 +240,8 @@ } } if (visible) { - for (j=0; j= 0); + } + }); + + /** + Index of Babylon.js pattern markers, maps markerID -> Babylon.Object3D. + */ + this.BabylonPatternMarkers = {}; + + /** + Index of Babylon.js NFT markers, maps markerID -> Babylon.Object3D. + */ + this.BabylonNFTMarkers = {}; + + /** + Index of Babylon.js barcode markers, maps markerID -> Babylon.Object3D. + */ + this.BabylonBarcodeMarkers = {}; + + /** + Index of Babylon.js multimarkers, maps markerID -> Babylon.Object3D. + */ + this.BabylonMultiMarkers = {}; + }; + + }; + + + var tick = function() { + if (window.ARController) { + integrate(); + if (window.ARBabylonOnLoad) { + window.ARBabylonOnLoad(); + } + } else { + setTimeout(tick, 50); + } + }; + + tick(); + +})(); From 8fc5f82aa54b0c96a5f9d6fa9edf7a59d5722cf2 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:36:41 +0300 Subject: [PATCH 04/15] Add files via upload --- js/artoolkit.babylon.js | 139 +--------------------------------------- 1 file changed, 1 insertion(+), 138 deletions(-) diff --git a/js/artoolkit.babylon.js b/js/artoolkit.babylon.js index e06d4613..c32924e5 100644 --- a/js/artoolkit.babylon.js +++ b/js/artoolkit.babylon.js @@ -2,39 +2,7 @@ (function() { var integrate = function() { - /** - Helper for setting up a Babylon.js AR scene using the device camera as input. - Pass in the maximum dimensions of the video you want to process and onSuccess and onError callbacks. - On a successful initialization, the onSuccess callback is called with an BabylonARScene object. - The BabylonARScene object contains two Babylon.js scenes (one for the video image and other for the 3D scene) - and a couple of helper functions for doing video frame processing and AR rendering. - - Here's the structure of the BabylonARScene object: - { - scene: Babylon.Scene, // The 3D scene. Put your AR objects here. - camera: Babylon.Camera, // The 3D scene camera. - - arController: ARController, - - video: HTMLVideoElement, // The userMedia video element. - - videoScene: Babylon.Scene, // The userMedia video image scene. Shows the video feed. - videoCamera: Babylon.Camera, // Camera for the userMedia video scene. - - process: function(), // Process the current video frame and update the markers in the scene. - renderOn: function( Babylon.WebGLRenderer ) // Render the AR scene and video background on the given Babylon.js renderer. - } - - You should use the arScene.video.videoWidth and arScene.video.videoHeight to set the width and height of your renderer. - - In your frame loop, use arScene.process() and arScene.renderOn(renderer) to do frame processing and 3D rendering, respectively. - - @param {number} width - The maximum width of the userMedia video to request. - @param {number} height - The maximum height of the userMedia video to request. - @param {function} onSuccess - Called on successful initialization with an BabylonARScene object. - @param {function} onError - Called if the initialization fails with the error encountered. - */ ARController.getUserMediaBabylonScene = function(configuration) { var obj = {}; for (var i in configuration) { @@ -50,35 +18,7 @@ var video = this.getUserMediaARController(obj); return video; }; - - /** - Creates a Babylon.js scene for use with this ARController. - - Returns a BabylonARScene object that contains two Babylon.js scenes (one for the video image and other for the 3D scene) - and a couple of helper functions for doing video frame processing and AR rendering. - - Here's the structure of the BabylonARScene object: - { - scene: Babylon.Scene, // The 3D scene. Put your AR objects here. - camera: Babylon.Camera, // The 3D scene camera. - - arController: ARController, - - video: HTMLVideoElement, // The userMedia video element. - - videoScene: Babylon.Scene, // The userMedia video image scene. Shows the video feed. - videoCamera: Babylon.Camera, // Camera for the userMedia video scene. - - process: function(), // Process the current video frame and update the markers in the scene. - renderOn: function( Babylon.WebGLRenderer ) // Render the AR scene and video background on the given Babylon.js renderer. - } - - You should use the arScene.video.videoWidth and arScene.video.videoHeight to set the width and height of your renderer. - - In your frame loop, use arScene.process() and arScene.renderOn(renderer) to do frame processing and 3D rendering, respectively. - - @param video Video image to use as scene background. Defaults to this.image - */ + ARController.prototype.createBabylonScene = function(video) { video = video || this.image; @@ -137,23 +77,6 @@ }; }; - - /** - Creates a Babylon.js marker Object3D for the given marker UID. - The marker Object3D tracks the marker pattern when it's detected in the video. - - Use this after a successful artoolkit.loadMarker call: - - arController.loadMarker('/bin/Data/patt.hiro', function(markerUID) { - var markerRoot = arController.createBabylonMarker(markerUID); - markerRoot.add(myFancyHiroModel); - arScene.scene.add(markerRoot); - }); - - @param {number} markerUID The UID of the marker to track. - @param {number} markerWidth The width of the marker, defaults to 1. - @return {Babylon.Object3D} Babylon.Object3D that tracks the given marker. - */ ARController.prototype.createBabylonMarker = function(markerUID, arScene, markerWidth) { this.setupBabylon(); var obj = new BABYLON.AbstractMesh('markerRoot', arScene); @@ -162,22 +85,6 @@ return obj; }; - /** - Creates a Babylon.js marker Object3D for the given NFT marker UID. - The marker Object3D tracks the NFT marker when it's detected in the video. - - Use this after a successful artoolkit.loadNFTMarker call: - - arController.loadNFTMarker('DataNFT/pinball', function(markerUID) { - var markerRoot = arController.createBabylonNFTMarker(markerUID); - markerRoot.add(myFancyModel); - arScene.scene.add(markerRoot); - }); - - @param {number} markerUID The UID of the marker to track. - @param {number} markerWidth The width of the marker, defaults to 1. - @return {Babylon.Object3D} Babylon.Object3D that tracks the given marker. - */ ARController.prototype.createBabylonNFTMarker = function(markerUID, arScene, markerWidth) { this.setupBabylon(); var obj = new BABYLON.AbstractMesh('markerRoot', arScene); @@ -187,21 +94,6 @@ return obj; }; - /** - Creates a Babylon.js marker Object3D for the given multimarker UID. - The marker Object3D tracks the multimarker when it's detected in the video. - - Use this after a successful arController.loadMarker call: - - arController.loadMultiMarker('/bin/Data/multi-barcode-4x3.dat', function(markerUID) { - var markerRoot = arController.createBabylonMultiMarker(markerUID); - markerRoot.add(myFancyMultiMarkerModel); - arScene.scene.add(markerRoot); - }); - - @param {number} markerUID The UID of the marker to track. - @return {Babylon.Object3D} Babylon.Object3D that tracks the given marker. - */ ARController.prototype.createBabylonMultiMarker = function(markerUID, arScene) { this.setupBabylon(); var obj = new BABYLON.AbstractMesh('markerRoot', arScene); @@ -210,22 +102,6 @@ return obj; }; - /** - Creates a Babylon.js marker Object3D for the given barcode marker UID. - The marker Object3D tracks the marker pattern when it's detected in the video. - - var markerRoot20 = arController.createBabylonBarcodeMarker(20); - markerRoot20.add(myFancyNumber20Model); - arScene.scene.add(markerRoot20); - - var markerRoot5 = arController.createBabylonBarcodeMarker(5); - markerRoot5.add(myFancyNumber5Model); - arScene.scene.add(markerRoot5); - - @param {number} markerUID The UID of the barcode marker to track. - @param {number} markerWidth The width of the marker, defaults to 1. - @return {Babylon.Object3D} Babylon.Object3D that tracks the given marker. - */ ARController.prototype.createBabylonBarcodeMarker = function(markerUID, arScene, markerWidth) { this.setupBabylon(); var obj = new BABYLON.AbstractMesh('markerRoot', arScene); @@ -300,30 +176,17 @@ } }); - /** - Index of Babylon.js pattern markers, maps markerID -> Babylon.Object3D. - */ this.BabylonPatternMarkers = {}; - /** - Index of Babylon.js NFT markers, maps markerID -> Babylon.Object3D. - */ this.BabylonNFTMarkers = {}; - /** - Index of Babylon.js barcode markers, maps markerID -> Babylon.Object3D. - */ this.BabylonBarcodeMarkers = {}; - /** - Index of Babylon.js multimarkers, maps markerID -> Babylon.Object3D. - */ this.BabylonMultiMarkers = {}; }; }; - var tick = function() { if (window.ARController) { integrate(); From 8aed1637de8bad1c182d73cb28435c4f810f18e7 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:37:37 +0300 Subject: [PATCH 05/15] Add files via upload --- build/artoolkit.debug.js | 177586 +++++++++++++++++++++++------------- build/artoolkit.min.js | 27 +- 2 files changed, 115842 insertions(+), 61771 deletions(-) diff --git a/build/artoolkit.debug.js b/build/artoolkit.debug.js index 5b94e839..9d0aad4b 100644 --- a/build/artoolkit.debug.js +++ b/build/artoolkit.debug.js @@ -1635,12 +1635,14 @@ var memoryInitializer = null; // === Body === -var ASM_CONSTS = [function($0, $1, $2, $3) { { if (!artoolkit["multiEachMarkerInfo"]) { artoolkit["multiEachMarkerInfo"] = ({}); } var multiEachMarker = artoolkit["multiEachMarkerInfo"]; multiEachMarker['visible'] = $0; multiEachMarker['pattId'] = $1; multiEachMarker['pattType'] = $2; multiEachMarker['width'] = $3; } }, +var ASM_CONSTS = [function($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) { { var $a = arguments; var i = 0; if (!artoolkit["NFTMarkerInfo"]) { artoolkit["NFTMarkerInfo"] = ({ id: 0, error: -1, found: 0, pose: [0,0,0,0, 0,0,0,0, 0,0,0,0] }); } var markerInfo = artoolkit["NFTMarkerInfo"]; markerInfo["id"] = $a[i++]; markerInfo["error"] = $a[i++]; markerInfo["found"] = 1; markerInfo["pose"][0] = $a[i++]; markerInfo["pose"][1] = $a[i++]; markerInfo["pose"][2] = $a[i++]; markerInfo["pose"][3] = $a[i++]; markerInfo["pose"][4] = $a[i++]; markerInfo["pose"][5] = $a[i++]; markerInfo["pose"][6] = $a[i++]; markerInfo["pose"][7] = $a[i++]; markerInfo["pose"][8] = $a[i++]; markerInfo["pose"][9] = $a[i++]; markerInfo["pose"][10] = $a[i++]; markerInfo["pose"][11] = $a[i++]; } }, + function($0) { { var $a = arguments; var i = 0; if (!artoolkit["NFTMarkerInfo"]) { artoolkit["NFTMarkerInfo"] = ({ id: 0, error: -1, found: 0, pose: [0,0,0,0, 0,0,0,0, 0,0,0,0] }); } var markerInfo = artoolkit["NFTMarkerInfo"]; markerInfo["id"] = $a[i++]; markerInfo["error"] = -1; markerInfo["found"] = 0; markerInfo["pose"][0] = 0; markerInfo["pose"][1] = 0; markerInfo["pose"][2] = 0; markerInfo["pose"][3] = 0; markerInfo["pose"][4] = 0; markerInfo["pose"][5] = 0; markerInfo["pose"][6] = 0; markerInfo["pose"][7] = 0; markerInfo["pose"][8] = 0; markerInfo["pose"][9] = 0; markerInfo["pose"][10] = 0; markerInfo["pose"][11] = 0; } }, + function($0, $1, $2, $3) { { if (!artoolkit["multiEachMarkerInfo"]) { artoolkit["multiEachMarkerInfo"] = ({}); } var multiEachMarker = artoolkit["multiEachMarkerInfo"]; multiEachMarker['visible'] = $0; multiEachMarker['pattId'] = $1; multiEachMarker['pattType'] = $2; multiEachMarker['width'] = $3; } }, function($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32) { { var $a = arguments; var i = 12; if (!artoolkit["markerInfo"]) { artoolkit["markerInfo"] = ({ pos: [0,0], line: [[0,0,0], [0,0,0], [0,0,0], [0,0,0]], vertex: [[0,0], [0,0], [0,0], [0,0]] }); } var markerInfo = artoolkit["markerInfo"]; markerInfo["area"] = $0; markerInfo["id"] = $1; markerInfo["idPatt"] = $2; markerInfo["idMatrix"] = $3; markerInfo["dir"] = $4; markerInfo["dirPatt"] = $5; markerInfo["dirMatrix"] = $6; markerInfo["cf"] = $7; markerInfo["cfPatt"] = $8; markerInfo["cfMatrix"] = $9; markerInfo["pos"][0] = $10; markerInfo["pos"][1] = $11; markerInfo["line"][0][0] = $a[i++]; markerInfo["line"][0][1] = $a[i++]; markerInfo["line"][0][2] = $a[i++]; markerInfo["line"][1][0] = $a[i++]; markerInfo["line"][1][1] = $a[i++]; markerInfo["line"][1][2] = $a[i++]; markerInfo["line"][2][0] = $a[i++]; markerInfo["line"][2][1] = $a[i++]; markerInfo["line"][2][2] = $a[i++]; markerInfo["line"][3][0] = $a[i++]; markerInfo["line"][3][1] = $a[i++]; markerInfo["line"][3][2] = $a[i++]; markerInfo["vertex"][0][0] = $a[i++]; markerInfo["vertex"][0][1] = $a[i++]; markerInfo["vertex"][1][0] = $a[i++]; markerInfo["vertex"][1][1] = $a[i++]; markerInfo["vertex"][2][0] = $a[i++]; markerInfo["vertex"][2][1] = $a[i++]; markerInfo["vertex"][3][0] = $a[i++]; markerInfo["vertex"][3][1] = $a[i++]; markerInfo["errorCorrected"] = $a[i++]; } }, function($0, $1, $2, $3, $4) { { if (!artoolkit["frameMalloc"]) { artoolkit["frameMalloc"] = ({}); } var frameMalloc = artoolkit["frameMalloc"]; frameMalloc["framepointer"] = $1; frameMalloc["framesize"] = $2; frameMalloc["camera"] = $3; frameMalloc["transform"] = $4; } }]; -function _emscripten_asm_const_33(code, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32) { - return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32); +function _emscripten_asm_const_1(code, a0) { + return ASM_CONSTS[code](a0); } function _emscripten_asm_const_4(code, a0, a1, a2, a3) { @@ -1651,17 +1653,29 @@ function _emscripten_asm_const_5(code, a0, a1, a2, a3, a4) { return ASM_CONSTS[code](a0, a1, a2, a3, a4); } +function _emscripten_asm_const_14(code, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) { + return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); +} + +function _emscripten_asm_const_33(code, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32) { + return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32); +} + STATIC_BASE = 8; -STATICTOP = STATIC_BASE + 18336; - /* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_ARToolKitJS_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } }); +STATICTOP = STATIC_BASE + 57504; + /* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__I_000101() } }, { func: function() { __GLOBAL__sub_I_ARToolKitJS_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } }, { func: function() { __GLOBAL__sub_I_iostream_cpp() } }); -/* memory initializer */ allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,9,0,0,52,42,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,115,42,0,0,52,9,0,0,12,47,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,52,9,0,0,205,46,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,186,46,0,0,228,8,0,0,155,46,0,0,228,8,0,0,194,45,0,0,228,8,0,0,163,45,0,0,228,8,0,0,132,45,0,0,228,8,0,0,101,45,0,0,228,8,0,0,70,45,0,0,228,8,0,0,225,45,0,0,228,8,0,0,0,46,0,0,228,8,0,0,31,46,0,0,228,8,0,0,62,46,0,0,228,8,0,0,93,46,0,0,228,8,0,0,124,46,0,0,12,9,0,0,75,47,0,0,48,2,0,0,0,0,0,0,228,8,0,0,88,47,0,0,228,8,0,0,101,47,0,0,12,9,0,0,114,47,0,0,56,2,0,0,0,0,0,0,12,9,0,0,147,47,0,0,64,2,0,0,0,0,0,0,12,9,0,0,181,47,0,0,64,2,0,0,0,0,0,0,200,8,0,0,221,47,0,0,200,8,0,0,223,47,0,0,200,8,0,0,225,47,0,0,200,8,0,0,227,47,0,0,200,8,0,0,229,47,0,0,200,8,0,0,231,47,0,0,200,8,0,0,233,47,0,0,200,8,0,0,235,47,0,0,200,8,0,0,237,47,0,0,200,8,0,0,14,54,0,0,200,8,0,0,239,47,0,0,200,8,0,0,241,47,0,0,200,8,0,0,243,47,0,0,12,9,0,0,245,47,0,0,80,2,0,0,0,0,0,0,12,9,0,0,26,48,0,0,80,2,0,0,0,0,0,0,255,15,0,0,6,16,0,0,18,16,0,0,28,16,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,11,0,0,0,5,0,0,0,10,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,13,0,0,0,9,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0,0,67,0,0,0,5,0,0,0,10,0,0,0,20,0,0,0,40,0,0,0,80,0,0,0,35,0,0,0,70,0,0,0,15,0,0,0,30,0,0,0,60,0,0,0,120,0,0,0,115,0,0,0,101,0,0,0,73,0,0,0,17,0,0,0,34,0,0,0,68,0,0,0,11,0,0,0,22,0,0,0,44,0,0,0,88,0,0,0,51,0,0,0,102,0,0,0,79,0,0,0,29,0,0,0,58,0,0,0,116,0,0,0,107,0,0,0,85,0,0,0,41,0,0,0,82,0,0,0,39,0,0,0,78,0,0,0,31,0,0,0,62,0,0,0,124,0,0,0,123,0,0,0,117,0,0,0,105,0,0,0,81,0,0,0,33,0,0,0,66,0,0,0,7,0,0,0,14,0,0,0,28,0,0,0,56,0,0,0,112,0,0,0,99,0,0,0,69,0,0,0,9,0,0,0,18,0,0,0,36,0,0,0,72,0,0,0,19,0,0,0,38,0,0,0,76,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,91,0,0,0,53,0,0,0,106,0,0,0,87,0,0,0,45,0,0,0,90,0,0,0,55,0,0,0,110,0,0,0,95,0,0,0,61,0,0,0,122,0,0,0,119,0,0,0,109,0,0,0,89,0,0,0,49,0,0,0,98,0,0,0,71,0,0,0,13,0,0,0,26,0,0,0,52,0,0,0,104,0,0,0,83,0,0,0,37,0,0,0,74,0,0,0,23,0,0,0,46,0,0,0,92,0,0,0,59,0,0,0,118,0,0,0,111,0,0,0,93,0,0,0,57,0,0,0,114,0,0,0,103,0,0,0,77,0,0,0,25,0,0,0,50,0,0,0,100,0,0,0,75,0,0,0,21,0,0,0,42,0,0,0,84,0,0,0,43,0,0,0,86,0,0,0,47,0,0,0,94,0,0,0,63,0,0,0,126,0,0,0,127,0,0,0,125,0,0,0,121,0,0,0,113,0,0,0,97,0,0,0,65,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,14,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,14,0,0,0,8,0,0,0,56,0,0,0,3,0,0,0,63,0,0,0,15,0,0,0,31,0,0,0,9,0,0,0,90,0,0,0,57,0,0,0,21,0,0,0,4,0,0,0,28,0,0,0,64,0,0,0,67,0,0,0,16,0,0,0,112,0,0,0,32,0,0,0,97,0,0,0,10,0,0,0,108,0,0,0,91,0,0,0,70,0,0,0,58,0,0,0,38,0,0,0,22,0,0,0,47,0,0,0,5,0,0,0,54,0,0,0,29,0,0,0,19,0,0,0,65,0,0,0,95,0,0,0,68,0,0,0,45,0,0,0,17,0,0,0,43,0,0,0,113,0,0,0,115,0,0,0,33,0,0,0,77,0,0,0,98,0,0,0,117,0,0,0,11,0,0,0,87,0,0,0,109,0,0,0,35,0,0,0,92,0,0,0,74,0,0,0,71,0,0,0,79,0,0,0,59,0,0,0,104,0,0,0,39,0,0,0,100,0,0,0,23,0,0,0,82,0,0,0,48,0,0,0,119,0,0,0,6,0,0,0,126,0,0,0,55,0,0,0,13,0,0,0,30,0,0,0,62,0,0,0,20,0,0,0,89,0,0,0,66,0,0,0,27,0,0,0,96,0,0,0,111,0,0,0,69,0,0,0,107,0,0,0,46,0,0,0,37,0,0,0,18,0,0,0,53,0,0,0,44,0,0,0,94,0,0,0,114,0,0,0,42,0,0,0,116,0,0,0,76,0,0,0,34,0,0,0,86,0,0,0,78,0,0,0,73,0,0,0,99,0,0,0,103,0,0,0,118,0,0,0,81,0,0,0,12,0,0,0,125,0,0,0,88,0,0,0,61,0,0,0,110,0,0,0,26,0,0,0,36,0,0,0,106,0,0,0,93,0,0,0,52,0,0,0,75,0,0,0,41,0,0,0,72,0,0,0,85,0,0,0,80,0,0,0,102,0,0,0,60,0,0,0,124,0,0,0,105,0,0,0,25,0,0,0,40,0,0,0,51,0,0,0,101,0,0,0,84,0,0,0,24,0,0,0,123,0,0,0,83,0,0,0,50,0,0,0,49,0,0,0,122,0,0,0,120,0,0,0,121,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,136,0,0,0,5,0,0,0,144,0,0,0,6,0,0,0,152,0,0,0,9,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,112,2,0,0,168,2,0,0,200,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,0,0,0,0,32,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,96,2,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,0,0,0,0,80,2,0,0,3,0,0,0,7,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,216,2,0,0,3,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,2,0,0,3,0,0,0,9,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,240,10,0,0,96,11,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,139,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,131,65,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,211,0,0,0,1,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,121,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,143,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,169,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,187,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,209,0,0,0,69,114,114,111,114,58,32,108,97,98,101,108,105,110,103,32,119,111,114,107,32,111,118,101,114,102,108,111,119,46,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,40,37,100,41,32,114,101,113,117,101,115,116,101,100,46,10,0,85,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,108,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,114,101,113,117,101,115,116,101,100,46,32,83,101,116,32,116,111,32,109,97,110,117,97,108,46,10,0,76,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,46,10,0,77,65,78,85,65,76,0,65,85,84,79,95,77,69,68,73,65,78,0,65,85,84,79,95,79,84,83,85,0,65,85,84,79,95,65,68,65,80,84,73,86,69,65,85,84,79,95,66,82,65,67,75,69,84,73,78,71,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,109,97,114,107,101,114,32,99,111,117,110,116,115,32,45,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,43,46,10,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,109,101,100,105,97,110,0,79,116,115,117,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,37,115,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,63,63,63,32,49,10,0,63,63,63,32,50,10,0,63,63,63,32,51,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,112,97,115,115,101,100,32,116,111,32,97,114,73,109,97,103,101,80,114,111,99,72,105,115,116,40,41,46,10,0,0,0,0,1,0,1,1,1,0,2,4,255,255,5,3,1,0,2,255,6,7,255,3,1,2,2,3,2,3,2,3,3,0,255,4,6,7,5,255,1,4,5,4,4,5,5,4,5,7,6,6,6,7,7,7,6,255,2,4,6,7,5,3,255,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,255,255,3,255,5,6,255,255,9,10,255,12,255,255,15,255,17,18,255,20,255,255,23,24,255,255,27,255,29,30,255,255,1,2,255,4,255,255,7,8,255,255,11,255,13,14,255,16,255,255,19,255,21,22,255,255,25,26,255,28,255,255,31,69,114,114,111,114,58,32,117,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,58,32,78,85,76,76,32,112,97,116,116,72,97,110,100,108,101,46,10,0,69,114,114,111,114,58,32,99,97,110,39,116,32,108,111,97,100,32,112,97,116,116,101,114,110,32,102,114,111,109,32,78,85,76,76,32,98,117,102,102,101,114,46,10,0,69,114,114,111,114,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,46,10,0,32,9,10,13,0,80,97,116,116,101,114,110,32,68,97,116,97,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,46,10,0,114,98,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,115,32,102,105,108,101,32,34,37,115,34,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,102,105,108,101,32,108,101,110,103,116,104,46,0,69,114,114,111,114,58,32,115,117,112,112,108,105,101,100,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,97,112,112,101,97,114,32,116,111,32,98,101,32,97,110,32,65,82,84,111,111,108,75,105,116,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,114,101,97,100,32,102,114,111,109,32,102,105,108,101,46,0,69,114,114,111,114,58,32,105,99,112,71,101,116,74,95,85,95,88,99,0,69,114,114,111,114,58,32,109,97,108,108,111,99,10,0,69,114,114,111,114,32,49,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,50,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,51,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,52,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,53,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,54,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,55,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,114,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,46,10,0,37,115,37,115,10,0,37,100,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,110,117,109,98,101,114,32,111,102,32,109,97,114,107,101,114,32,99,111,110,102,105,103,115,32,116,111,32,114,101,97,100,46,10,0,79,117,116,32,111,102,32,109,101,109,111,114,121,33,33,10,0,37,108,108,117,37,99,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,112,97,116,116,101,114,110,32,39,37,115,39,32,115,112,101,99,105,102,105,101,100,32,105,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,104,105,108,101,32,105,110,32,98,97,114,99,111,100,101,45,111,110,108,121,32,109,111,100,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,100,105,114,101,99,116,111,114,121,32,110,97,109,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,108,111,97,100,32,112,97,116,116,101,114,110,32,39,37,115,39,46,10,0,37,108,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,112,97,116,116,101,114,110,32,119,105,100,116,104,46,10,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,37,102,32,37,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,76,105,110,101,115,32,50,32,45,32,52,32,109,117,115,116,32,98,101,32,109,97,114,107,101,114,32,116,114,97,110,115,102,111,114,109,46,10,0,97,114,103,108,67,97,109,101,114,97,70,114,117,115,116,117,109,40,41,58,32,97,114,80,97,114,97,109,68,101,99,111,109,112,77,97,116,40,41,32,105,110,100,105,99,97,116,101,100,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,46,10,0,108,111,97,100,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,32,37,115,32,102,111,114,32,99,97,109,101,114,97,46,10,0,42,42,42,32,67,97,109,101,114,97,32,80,97,114,97,109,101,116,101,114,32,114,101,115,105,122,101,100,32,102,114,111,109,32,37,100,44,32,37,100,46,32,42,42,42,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,114,97,109,76,84,67,114,101,97,116,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,99,114,101,97,116,105,110,103,32,51,68,32,104,97,110,100,108,101,0,108,111,97,100,77,97,114,107,101,114,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,37,115,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,97,114,107,101,114,46,10,0,99,111,110,102,105,103,32,100,97,116,97,32,108,111,97,100,32,101,114,114,111,114,32,33,33,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,117,108,116,105,109,97,114,107,101,114,46,10,0,80,97,116,116,101,114,110,32,100,101,116,101,99,116,105,111,110,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,80,97,116,116,101,114,110,32,114,97,116,105,111,32,115,105,122,101,32,115,101,116,32,116,111,32,37,102,46,10,0,76,97,98,101,108,105,110,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,111,110,46,0,111,102,102,46,0,68,101,98,117,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,10,0,73,109,97,103,101,32,112,114,111,99,46,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,118,105,115,105,98,108,101,39,93,32,61,32,36,48,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,73,100,39,93,32,61,32,36,49,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,84,121,112,101,39,93,32,61,32,36,50,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,119,105,100,116,104,39,93,32,61,32,36,51,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,49,50,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,112,111,115,58,32,91,48,44,48,93,44,32,108,105,110,101,58,32,91,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,93,44,32,118,101,114,116,101,120,58,32,91,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,97,114,101,97,34,93,32,61,32,36,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,80,97,116,116,34,93,32,61,32,36,50,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,77,97,116,114,105,120,34,93,32,61,32,36,51,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,34,93,32,61,32,36,52,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,80,97,116,116,34,93,32,61,32,36,53,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,77,97,116,114,105,120,34,93,32,61,32,36,54,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,34,93,32,61,32,36,55,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,80,97,116,116,34,93,32,61,32,36,56,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,77,97,116,114,105,120,34,93,32,61,32,36,57,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,48,93,32,61,32,36,49,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,49,93,32,61,32,36,49,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,67,111,114,114,101,99,116,101,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,115,101,116,117,112,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,116,116,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,65,108,108,111,99,97,116,101,100,32,118,105,100,101,111,70,114,97,109,101,83,105,122,101,32,37,100,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,102,114,97,109,101,77,97,108,108,111,99,32,61,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,112,111,105,110,116,101,114,34,93,32,61,32,36,49,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,115,105,122,101,34,93,32,61,32,36,50,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,99,97,109,101,114,97,34,93,32,61,32,36,51,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,116,114,97,110,115,102,111,114,109,34,93,32,61,32,36,52,59,32,125,0,115,101,116,117,112,0,116,101,97,114,100,111,119,110,0,95,97,100,100,77,97,114,107,101,114,0,95,97,100,100,77,117,108,116,105,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,67,111,117,110,116,0,95,108,111,97,100,67,97,109,101,114,97,0,115,101,116,77,97,114,107,101,114,73,110,102,111,68,105,114,0,115,101,116,77,97,114,107,101,114,73,110,102,111,86,101,114,116,101,120,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,67,111,110,116,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,82,111,98,117,115,116,0,100,101,116,101,99,116,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,69,97,99,104,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,0,115,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,80,114,111,99,101,115,115,105,110,103,73,109,97,103,101,0,115,101,116,76,111,103,76,101,118,101,108,0,103,101,116,76,111,103,76,101,118,101,108,0,115,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,115,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,115,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,103,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,115,101,116,84,104,114,101,115,104,111,108,100,0,103,101,116,84,104,114,101,115,104,111,108,100,0,115,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,103,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,115,101,116,80,97,116,116,82,97,116,105,111,0,103,101,116,80,97,116,116,82,97,116,105,111,0,115,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,103,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,115,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,103,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,115,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,103,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,69,82,82,79,82,95,65,82,67,79,78,84,82,79,76,76,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,85,76,84,73,77,65,82,75,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,65,82,75,69,82,95,73,78,68,69,88,95,79,85,84,95,79,70,95,66,79,85,78,68,83,0,65,82,95,68,69,66,85,71,95,68,73,83,65,66,76,69,0,65,82,95,68,69,66,85,71,95,69,78,65,66,76,69,0,65,82,95,68,69,70,65,85,76,84,95,68,69,66,85,71,95,77,79,68,69,0,65,82,95,76,65,66,69,76,73,78,71,95,87,72,73,84,69,95,82,69,71,73,79,78,0,65,82,95,76,65,66,69,76,73,78,71,95,66,76,65,67,75,95,82,69,71,73,79,78,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,77,79,68,69,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,82,65,77,69,95,73,77,65,71,69,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,73,69,76,68,95,73,77,65,71,69,0,65,82,95,68,69,70,65,85,76,84,95,73,77,65,71,69,95,80,82,79,67,95,77,79,68,69,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,68,69,84,69,67,84,73,79,78,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,68,69,70,65,85,76,84,95,80,65,84,84,69,82,78,95,68,69,84,69,67,84,73,79,78,95,77,79,68,69,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,78,79,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,95,86,50,0,65,82,95,68,69,70,65,85,76,84,95,77,65,82,75,69,82,95,69,88,84,82,65,67,84,73,79,78,95,77,79,68,69,0,65,82,95,77,65,88,95,76,79,79,80,95,67,79,85,78,84,0,65,82,95,76,79,79,80,95,66,82,69,65,75,95,84,72,82,69,83,72,0,65,82,95,76,79,71,95,76,69,86,69,76,95,68,69,66,85,71,0,65,82,95,76,79,71,95,76,69,86,69,76,95,73,78,70,79,0,65,82,95,76,79,71,95,76,69,86,69,76,95,87,65,82,78,0,65,82,95,76,79,71,95,76,69,86,69,76,95,69,82,82,79,82,0,65,82,95,76,79,71,95,76,69,86,69,76,95,82,69,76,95,73,78,70,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,72,65,77,77,73,78,71,54,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,80,65,82,73,84,89,54,53,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,57,95,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,53,95,53,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,77,65,78,85,65,76,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,77,69,68,73,65,78,0,65,82,95,76,65,66], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); -/* memory initializer */ allocate([69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,79,84,83,85,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,65,68,65,80,84,73,86,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,78,79,78,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,65,84,84,69,82,78,95,69,88,84,82,65,67,84,73,79,78,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,71,69,78,69,82,73,67,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,84,82,65,83,84,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,78,79,84,95,70,79,85,78,68,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,69,68,67,95,70,65,73,76,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,70,73,68,69,78,67,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,95,77,85,76,84,73,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,72,69,85,82,73,83,84,73,67,95,84,82,79,85,66,76,69,83,79,77,69,95,77,65,84,82,73,88,95,67,79,68,69,83,0,118,105,105,102,0,118,105,105,105,0,100,105,105,0,118,105,105,100,0,105,105,0,118,105,105,0,105,105,105,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,105,105,105,105,0,105,105,105,105,105,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,115,116,100,58,58,119,115,116,114,105,110,103,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,32,40,0,41,0,95,98,108,111,99,107,95,105,110,118,111,107,101,0,105,110,118,111,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,32,102,111,114,32,98,108,111,99,107,32,105,110,32,0,32,99,111,110,115,116,0,32,118,111,108,97,116,105,108,101,0,32,114,101,115,116,114,105,99,116,0,32,91,0,32,91,93,0,93,0,32,99,111,109,112,108,101,120,0,40,0,44,32,0,32,38,0,32,38,38,0,32,0,32,105,109,97,103,105,110,97,114,121,0,58,58,42,0,38,38,0,111,98,106,99,95,111,98,106,101,99,116,60,0,42,0,105,100,0,38,0,111,98,106,99,112,114,111,116,111,0,60,0,62,0,32,118,101,99,116,111,114,91,0,112,105,120,101,108,32,118,101,99,116,111,114,91,0,100,101,99,108,116,121,112,101,40,0,115,116,100,58,58,97,108,108,111,99,97,116,111,114,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,105,115,116,114,101,97,109,0,115,116,100,58,58,111,115,116,114,101,97,109,0,115,116,100,58,58,105,111,115,116,114,101,97,109,0,115,116,100,0,58,58,0,58,58,115,116,114,105,110,103,32,108,105,116,101,114,97,108,0,115,116,100,58,58,0,126,0,39,117,110,110,97,109,101,100,0,39,108,97,109,98,100,97,39,40,0,111,112,101,114,97,116,111,114,38,38,0,111,112,101,114,97,116,111,114,38,0,111,112,101,114,97,116,111,114,38,61,0,111,112,101,114,97,116,111,114,61,0,111,112,101,114,97,116,111,114,40,41,0,111,112,101,114,97,116,111,114,44,0,111,112,101,114,97,116,111,114,126,0,111,112,101,114,97,116,111,114,32,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,91,93,0,111,112,101,114,97,116,111,114,42,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,0,111,112,101,114,97,116,111,114,47,0,111,112,101,114,97,116,111,114,47,61,0,111,112,101,114,97,116,111,114,94,0,111,112,101,114,97,116,111,114,94,61,0,111,112,101,114,97,116,111,114,61,61,0,111,112,101,114,97,116,111,114,62,61,0,111,112,101,114,97,116,111,114,62,0,111,112,101,114,97,116,111,114,91,93,0,111,112,101,114,97,116,111,114,60,61,0,111,112,101,114,97,116,111,114,34,34,32,0,111,112,101,114,97,116,111,114,60,60,0,111,112,101,114,97,116,111,114,60,60,61,0,111,112,101,114,97,116,111,114,60,0,111,112,101,114,97,116,111,114,45,0,111,112,101,114,97,116,111,114,45,61,0,111,112,101,114,97,116,111,114,42,61,0,111,112,101,114,97,116,111,114,45,45,0,111,112,101,114,97,116,111,114,32,110,101,119,91,93,0,111,112,101,114,97,116,111,114,33,61,0,111,112,101,114,97,116,111,114,33,0,111,112,101,114,97,116,111,114,32,110,101,119,0,111,112,101,114,97,116,111,114,124,124,0,111,112,101,114,97,116,111,114,124,0,111,112,101,114,97,116,111,114,124,61,0,111,112,101,114,97,116,111,114,45,62,42,0,111,112,101,114,97,116,111,114,43,0,111,112,101,114,97,116,111,114,43,61,0,111,112,101,114,97,116,111,114,43,43,0,111,112,101,114,97,116,111,114,45,62,0,111,112,101,114,97,116,111,114,63,0,111,112,101,114,97,116,111,114,37,0,111,112,101,114,97,116,111,114,37,61,0,111,112,101,114,97,116,111,114,62,62,0,111,112,101,114,97,116,111,114,62,62,61,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,44,32,115,116,100,58,58,97,108,108,111,99,97,116,111,114,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,105,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,105,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,111,115,116,114,101,97,109,0,95,71,76,79,66,65,76,95,95,78,0,40,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,41,0,32,62,0,119,99,104,97,114,95,116,0,102,97,108,115,101,0,116,114,117,101,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,0,117,0,108,0,117,108,0,108,108,0,117,108,108,0,95,95,105,110,116,49,50,56,0,117,110,115,105,103,110,101,100,32,95,95,105,110,116,49,50,56,0,37,97,102,0,37,97,0,37,76,97,76,0,38,61,0,61,0,97,108,105,103,110,111,102,32,40,0,99,111,110,115,116,95,99,97,115,116,60,0,62,40,0,44,0,41,40,0,100,101,108,101,116,101,91,93,32,0,100,121,110,97,109,105,99,95,99,97,115,116,60,0,100,101,108,101,116,101,32,0,46,42,0,47,0,47,61,0,94,0,94,61,0,61,61,0,62,61,0,41,91,0,60,61,0,60,60,0,60,60,61,0,45,0,45,61,0,42,61,0,45,45,0,41,45,45,0,91,93,32,0,41,32,0,33,61,0,33,0,110,111,101,120,99,101,112,116,32,40,0,124,124,0,124,0,124,61,0,45,62,42,0,43,0,43,61,0,43,43,0,41,43,43,0,45,62,0,41,32,63,32,40,0,41,32,58,32,40,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,0,37,0,37,61,0,62,62,0,62,62,61,0,115,116,97,116,105,99,95,99,97,115,116,60,0,115,105,122,101,111,102,32,40,0,115,105,122,101,111,102,46,46,46,40,0,116,121,112,101,105,100,40,0,116,104,114,111,119,0,116,104,114,111,119,32,0,102,112,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,111,117,116,95,111,102,95,114,97,110,103,101,34,0,95,95,116,104,114,111,119,95,111,117,116,95,111,102,95,114,97,110,103,101,0,118,111,105,100,0,98,111,111,108,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,108,111,110,103,32,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,108,111,110,103,32,100,111,117,98,108,101,0,95,95,102,108,111,97,116,49,50,56,0,46,46,46,0,100,101,99,105,109,97,108,54,52,0,100,101,99,105,109,97,108,49,50,56,0,100,101,99,105,109,97,108,51,50,0,100,101,99,105,109,97,108,49,54,0,99,104,97,114,51,50,95,116,0,99,104,97,114,49,54,95,116,0,97,117,116,111,0,115,116,100,58,58,110,117,108,108,112,116,114,95,116,0,118,116,97,98,108,101,32,102,111,114,32,0,86,84,84,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,110,97,109,101,32,102,111,114,32,0,99,111,118,97,114,105,97,110,116,32,114,101,116,117,114,110,32,116,104,117,110,107,32,116,111,32,0,99,111,110,115,116,114,117,99,116,105,111,110,32,118,116,97,98,108,101,32,102,111,114,32,0,45,105,110,45,0,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,110,111,110,45,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,103,117,97,114,100,32,118,97,114,105,97,98,108,101,32,102,111,114,32,0,114,101,102,101,114,101,110,99,101,32,116,101,109,112,111,114,97,114,121,32,102,111,114,32,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,114,119,97], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); -/* memory initializer */ allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+17795); +/* memory initializer */ allocate([168,23,0,0,133,100,0,0,208,23,0,0,209,100,0,0,8,0,0,0,0,0,0,0,208,23,0,0,222,103,0,0,208,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,23,0,0,106,121,0,0,128,4,0,0,0,0,0,0,208,23,0,0,188,132,0,0,128,4,0,0,0,0,0,0,208,23,0,0,33,133,0,0,128,4,0,0,0,0,0,0,0,0,0,0,0,0,240,63,239,97,72,177,80,49,246,63,202,111,77,145,174,231,244,63,170,17,108,239,98,208,242,63,0,0,0,0,0,0,240,63,59,191,167,192,105,36,233,63,187,32,199,123,122,81,225,63,93,171,114,222,85,168,209,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,23,0,0,143,178,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,168,23,0,0,206,178,0,0,248,23,0,0,103,183,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,248,23,0,0,40,183,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,168,23,0,0,21,183,0,0,168,23,0,0,246,182,0,0,168,23,0,0,29,182,0,0,168,23,0,0,254,181,0,0,168,23,0,0,223,181,0,0,168,23,0,0,192,181,0,0,168,23,0,0,161,181,0,0,168,23,0,0,60,182,0,0,168,23,0,0,91,182,0,0,168,23,0,0,122,182,0,0,168,23,0,0,153,182,0,0,168,23,0,0,184,182,0,0,168,23,0,0,215,182,0,0,208,23,0,0,166,183,0,0,208,2,0,0,0,0,0,0,168,23,0,0,179,183,0,0,168,23,0,0,192,183,0,0,208,23,0,0,205,183,0,0,216,2,0,0,0,0,0,0,208,23,0,0,238,183,0,0,224,2,0,0,0,0,0,0,208,23,0,0,52,184,0,0,224,2,0,0,0,0,0,0,208,23,0,0,16,184,0,0,0,3,0,0,0,0,0,0,208,23,0,0,86,184,0,0,224,2,0,0,0,0,0,0,140,23,0,0,126,184,0,0,140,23,0,0,128,184,0,0,140,23,0,0,130,184,0,0,140,23,0,0,132,184,0,0,140,23,0,0,134,184,0,0,140,23,0,0,136,184,0,0,140,23,0,0,138,184,0,0,140,23,0,0,140,184,0,0,140,23,0,0,142,184,0,0,140,23,0,0,111,221,0,0,140,23,0,0,144,184,0,0,140,23,0,0,146,184,0,0,140,23,0,0,148,184,0,0,208,23,0,0,150,184,0,0,240,2,0,0,0,0,0,0,208,23,0,0,187,184,0,0,240,2,0,0,0,0,0,0,205,59,127,102,158,160,230,63,135,1,235,115,20,161,231,63,219,160,42,66,229,172,232,63,144,240,163,130,145,196,233,63,173,211,90,153,159,232,234,63,156,82,133,221,155,25,236,63,135,164,251,220,24,88,237,63,218,144,164,162,175,164,238,63,0,0,0,0,0,0,240,63,15,137,249,108,88,181,240,63,123,81,125,60,184,114,241,63,56,98,117,110,122,56,242,63,21,183,49,10,254,6,243,63,34,52,18,76,166,222,243,63,39,42,54,213,218,191,244,63,41,84,72,221,7,171,245,63,208,23,0,0,185,213,0,0,200,4,0,0,0,0,0,0,208,23,0,0,248,213,0,0,200,4,0,0,0,0,0,0,208,23,0,0,16,214,0,0,192,4,0,0,0,0,0,0,208,23,0,0,41,214,0,0,192,4,0,0,0,0,0,0,168,23,0,0,65,214,0,0,248,23,0,0,90,214,0,0,0,0,0,0,1,0,0,0,120,4,0,0,0,0,0,0,168,23,0,0,120,214,0,0,208,23,0,0,138,214,0,0,152,4,0,0,0,0,0,0,208,23,0,0,180,214,0,0,152,4,0,0,0,0,0,0,168,23,0,0,222,214,0,0,168,23,0,0,15,215,0,0,248,23,0,0,64,215,0,0,0,0,0,0,1,0,0,0,160,4,0,0,3,244,255,255,248,23,0,0,111,215,0,0,0,0,0,0,1,0,0,0,176,4,0,0,3,244,255,255,248,23,0,0,158,215,0,0,0,0,0,0,1,0,0,0,160,4,0,0,3,244,255,255,248,23,0,0,205,215,0,0,0,0,0,0,1,0,0,0,176,4,0,0,3,244,255,255,208,23,0,0,29,216,0,0,120,4,0,0,0,0,0,0,248,23,0,0,51,216,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,80,11,0,0,2,0,0,0,248,23,0,0,69,216,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,248,23,0,0,103,216,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,248,23,0,0,138,216,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,208,23,0,0,173,216,0,0,160,5,0,0,0,0,0,0,208,23,0,0,207,216,0,0,160,5,0,0,0,0,0,0,248,23,0,0,242,216,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,208,23,0,0,20,217,0,0,48,5,0,0,0,0,0,0,208,23,0,0,42,217,0,0,48,5,0,0,0,0,0,0,208,23,0,0,62,217,0,0,48,5,0,0,0,0,0,0,248,23,0,0,82,217,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,80,11,0,0,2,0,0,0,208,23,0,0,100,217,0,0,48,5,0,0,0,0,0,0,208,23,0,0,121,217,0,0,48,5,0,0,0,0,0,0,248,23,0,0,142,217,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,96,11,0,0,0,0,0,0,248,23,0,0,210,217,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,120,11,0,0,0,0,0,0,248,23,0,0,22,218,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,144,11,0,0,0,0,0,0,248,23,0,0,90,218,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,168,11,0,0,0,0,0,0,248,23,0,0,158,218,0,0,0,0,0,0,3,0,0,0,48,5,0,0,2,0,0,0,192,11,0,0,2,0,0,0,200,11,0,0,0,8,0,0,248,23,0,0,227,218,0,0,0,0,0,0,3,0,0,0,48,5,0,0,2,0,0,0,192,11,0,0,2,0,0,0,208,11,0,0,0,8,0,0,248,23,0,0,40,219,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,216,11,0,0,0,8,0,0,248,23,0,0,109,219,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,216,11,0,0,0,8,0,0,248,23,0,0,178,219,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,206,219,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,234,219,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,6,220,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,34,220,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,232,11,0,0,0,0,0,0,248,23,0,0,104,220,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,240,11,0,0,0,0,0,0,248,23,0,0,174,220,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,248,11,0,0,0,0,0,0,248,23,0,0,244,220,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,0,12,0,0,0,0,0,0,248,23,0,0,58,221,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,8,12,0,0,2,0,0,0,248,23,0,0,79,221,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,8,12,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,23,0,0,134,224,0,0,168,23,0,0,111,224,0,0,248,23,0,0,89,224,0,0,0,0,0,0,1,0,0,0,24,12,0,0,0,0,0,0,248,23,0,0,42,224,0,0,0,0,0,0,1,0,0,0,24,12,0,0,0,0,0,0,248,23,0,0,20,224,0,0,0,0,0,0,1,0,0,0,16,12,0,0,0,0,0,0,248,23,0,0,229,223,0,0,0,0,0,0,1,0,0,0,16,12,0,0,0,0,0,0,168,23,0,0,210,223,0,0,168,23,0,0,176,223,0,0,168,23,0,0,142,223,0,0,168,23,0,0,121,223,0,0,168,23,0,0,100,223,0,0,168,23,0,0,75,223,0,0,168,23,0,0,50,223,0,0,168,23,0,0,25,223,0,0,168,23,0,0,0,223,0,0,168,23,0,0,232,222,0,0,168,23,0,0,251,223,0,0,168,23,0,0,64,224,0,0,107,71,0,0,114,71,0,0,126,71,0,0,136,71,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,11,0,0,0,5,0,0,0,10,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,13,0,0,0,9,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0,0,67,0,0,0,5,0,0,0,10,0,0,0,20,0,0,0,40,0,0,0,80,0,0,0,35,0,0,0,70,0,0,0,15,0,0,0,30,0,0,0,60,0,0,0,120,0,0,0,115,0,0,0,101,0,0,0,73,0,0,0,17,0,0,0,34,0,0,0,68,0,0,0,11,0,0,0,22,0,0,0,44,0,0,0,88,0,0,0,51,0,0,0,102,0,0,0,79,0,0,0,29,0,0,0,58,0,0,0,116,0,0,0,107,0,0,0,85,0,0,0,41,0,0,0,82,0,0,0,39,0,0,0,78,0,0,0,31,0,0,0,62,0,0,0,124,0,0,0,123,0,0,0,117,0,0,0,105,0,0,0,81,0,0,0,33,0,0,0,66,0,0,0,7,0,0,0,14,0,0,0,28,0,0,0,56,0,0,0,112,0,0,0,99,0,0,0,69,0,0,0,9,0,0,0,18,0,0,0,36,0,0,0,72,0,0,0,19,0,0,0,38,0,0,0,76,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,91,0,0,0,53,0,0,0,106,0,0,0,87,0,0,0,45,0,0,0,90,0,0,0,55,0,0,0,110,0,0,0,95,0,0,0,61,0,0,0,122,0,0,0,119,0,0,0,109,0,0,0,89,0,0,0,49,0,0,0,98,0,0,0,71,0,0,0,13,0,0,0,26,0,0,0,52,0,0,0,104,0,0,0,83,0,0,0,37,0,0,0,74,0,0,0,23,0,0,0,46,0,0,0,92,0,0,0,59,0,0,0,118,0,0,0,111,0,0,0,93,0,0,0,57,0,0,0,114,0,0,0,103,0,0,0,77,0,0,0,25,0,0,0,50,0,0,0,100,0,0,0,75,0,0,0,21,0,0,0,42,0,0,0,84,0,0,0,43,0,0,0,86,0,0,0,47,0,0,0,94,0,0,0,63,0,0,0,126,0,0,0,127,0,0,0,125,0,0,0,121,0,0,0,113,0,0,0,97,0,0,0,65,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,14,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,14,0,0,0,8,0,0,0,56,0,0,0,3,0,0,0,63,0,0,0,15,0,0,0,31,0,0,0,9,0,0,0,90,0,0,0,57,0,0,0,21,0,0,0,4,0,0,0,28,0,0,0,64,0,0,0,67,0,0,0,16,0,0,0,112,0,0,0,32,0,0,0,97,0,0,0,10,0,0,0,108,0,0,0,91,0,0,0,70,0,0,0,58,0,0,0,38,0,0,0,22,0,0,0,47,0,0,0,5,0,0,0,54,0,0,0,29,0,0,0,19,0,0,0,65,0,0,0,95,0,0,0,68,0,0,0,45,0,0,0,17,0,0,0,43,0,0,0,113,0,0,0,115,0,0,0,33,0,0,0,77,0,0,0,98,0,0,0,117,0,0,0,11,0,0,0,87,0,0,0,109,0,0,0,35,0,0,0,92,0,0,0,74,0,0,0,71,0,0,0,79,0,0,0,59,0,0,0,104,0,0,0,39,0,0,0,100,0,0,0,23,0,0,0,82,0,0,0,48,0,0,0,119,0,0,0,6,0,0,0,126,0,0,0,55,0,0,0,13,0,0,0,30,0,0,0,62,0,0,0,20,0,0,0,89,0,0,0,66,0,0,0,27,0,0,0,96,0,0,0,111,0,0,0,69,0,0,0,107,0,0,0,46,0,0,0,37,0,0,0,18,0,0,0,53,0,0,0,44,0,0,0,94,0,0,0,114,0,0,0,42,0,0,0,116,0,0,0,76,0,0,0,34,0,0,0,86,0,0,0,78,0,0,0,73,0,0,0,99,0,0,0,103,0,0,0,118,0,0,0,81,0,0,0,12,0,0,0,125,0,0,0,88,0,0,0,61,0,0,0,110,0,0,0,26,0,0,0,36,0,0,0,106,0,0,0,93,0,0,0,52,0,0,0,75,0,0,0,41,0,0,0,72,0,0,0,85,0,0,0,80,0,0,0,102,0,0,0,60,0,0,0,124,0,0,0,105,0,0,0,25,0,0,0,40,0,0,0,51,0,0,0,101,0,0,0,84,0,0,0,24,0,0,0,123,0,0,0,83,0,0,0,50,0,0,0,49,0,0,0,122,0,0,0,120,0,0,0,121,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,136,0,0,0,5,0,0,0,144,0,0,0,6,0,0,0,152,0,0,0,9,0,0,0,176,0,0,0,0,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,32,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,185,82,140,62,142,90,231,62,185,82,140,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,178,190,185,62,18,220,160,190,144,190,57,62,18,220,160,190,144,190,57,190,0,0,0,128,178,190,185,190,18,220,160,62,144,190,57,190,18,220,160,62,144,190,57,62,210,114,24,191,0,0,0,0,210,114,152,190,58,6,4,191,210,114,152,62,58,6,4,191,210,114,24,63,0,0,0,128,210,114,152,62,58,6,4,63,210,114,152,190,58,6,4,63,0,0,0,128,86,184,61,191,102,77,36,63,86,184,189,190,102,77,36,63,86,184,189,62,0,0,0,0,86,184,61,63,102,77,36,191,86,184,189,62,102,77,36,191,86,184,189,190,12,233,88,63,0,0,0,128,12,233,216,62,153,217,59,63,12,233,216,190,153,217,59,63,12,233,88,191,0,0,0,0,12,233,216,190,153,217,59,191,12,233,216,62,153,217,59,191,0,0,0,0,252,83,110,63,241,101,78,191,13,84,238,62,241,101,78,191,13,84,238,190,0,0,0,128,252,83,110,191,241,101,78,63,13,84,238,190,241,101,78,63,13,84,238,62,0,0,128,191,0,0,0,0,0,0,0,191,208,179,93,191,0,0,0,63,208,179,93,191,0,0,128,63,0,0,0,128,0,0,0,63,208,179,93,63,0,0,0,191,208,179,93,63,0,0,0,0,72,0,0,0,7,0,0,0,11,0,0,0,12,0,0,0,2,0,0,0,13,0,0,0,0,0,0,0,88,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,3,0,0,0,16,0,0,0,185,134,0,0,207,134,0,0,8,135,0,0,40,135,0,0,77,135,0,0,103,135,0,0,134,135,0,0,163,135,0,0,203,135,0,0,234,135,0,0,1,136,0,0,23,136,0,0,43,136,0,0,104,136,0,0,152,136,0,0,180,136,0,0,215,136,0,0,14,137,0,0,69,137,0,0,92,137,0,0,124,137,0,0,166,137,0,0,243,137,0,0,14,138,0,0,57,138,0,0,85,138,0,0,122,138,0,0,160,138,0,0,197,138,0,0,216,138,0,0,237,138,0,0,0,139,0,0,19,139,0,0,56,139,0,0,77,139,0,0,97,139,0,0,130,139,0,0,152,139,0,0,199,139,0,0,239,139,0,0,16,140,0,0,49,140,0,0,96,140,0,0,113,140,0,0,141,140,0,0,203,140,0,0,242,140,0,0,25,141,0,0,45,141,0,0,91,141,0,0,119,141,0,0,156,141,0,0,190,141,0,0,232,141,0,0,19,142,0,0,49,142,0,0,95,142,0,0,135,142,0,0,174,142,0,0,219,142,0,0,11,143,0,0,53,143,0,0,98,143,0,0,142,143,0,0,177,143,0,0,207,143,0,0,237,143,0,0,35,144,0,0,77,144,0,0,108,144,0,0,143,144,0,0,182,144,0,0,203,144,0,0,223,144,0,0,2,145,0,0,18,145,0,0,80,145,0,0,146,145,0,0,188,145,0,0,232,145,0,0,15,146,0,0,43,146,0,0,86,146,0,0,113,146,0,0,133,146,0,0,156,146,0,0,169,146,0,0,209,146,0,0,6,147,0,0,66,147,0,0,112,147,0,0,145,147,0,0,184,147,0,0,209,147,0,0,249,147,0,0,28,148,0,0,52,148,0,0,88,148,0,0,125,148,0,0,131,148,0,0,188,148,0,0,246,148,0,0,21,149,0,0,36,149,0,0,65,149,0,0,95,149,0,0,124,149,0,0,149,149,0,0,174,149,0,0,240,149,0,0,42,150,0,0,96,150,0,0,148,150,0,0,168,150,0,0,191,150,0,0,229,150,0,0,39,151,0,0,99,151,0,0,148,151,0,0,184,151,0,0,230,151,0,0,1,152,0,0,57,152,0,0,100,152,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,16,0,0,0,9,0,0,0,2,0,0,0,3,0,0,0,10,0,0,0,17,0,0,0,24,0,0,0,32,0,0,0,25,0,0,0,18,0,0,0,11,0,0,0,4,0,0,0,5,0,0,0,12,0,0,0,19,0,0,0,26,0,0,0,33,0,0,0,40,0,0,0,48,0,0,0,41,0,0,0,34,0,0,0,27,0,0,0,20,0,0,0,13,0,0,0,6,0,0,0,7,0,0,0,14,0,0,0,21,0,0,0,28,0,0,0,35,0,0,0,42,0,0,0,49,0,0,0,56,0,0,0,57,0,0,0,50,0,0,0,43,0,0,0,36,0,0,0,29,0,0,0,22,0,0,0,15,0,0,0,23,0,0,0,30,0,0,0,37,0,0,0,44,0,0,0,51,0,0,0,58,0,0,0,59,0,0,0,52,0,0,0,45,0,0,0,38,0,0,0,31,0,0,0,39,0,0,0,46,0,0,0,53,0,0,0,60,0,0,0,61,0,0,0,54,0,0,0,47,0,0,0,55,0,0,0,62,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,64,6,0,0,128,62,0,0,0,0,0,0,136,19,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,0,0,0,255,255,255,255,253,255,255,255,249,255,255,255,241,255,255,255,225,255,255,255,193,255,255,255,129,255,255,255,1,255,255,255,1,254,255,255,1,252,255,255,1,248,255,255,1,240,255,255,1,224,255,255,1,192,255,255,1,128,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,253,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,48,3,0,0,104,3,0,0,136,3,0,0,48,3,0,0,104,3,0,0,104,3,0,0,144,3,0,0,104,3,0,0,48,3,0,0,104,3,0,0,144,3,0,0,104,3,0,0,48,3,0,0,104,3,0,0,104,3,0,0,8,2,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,8,2,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,1,0,0,0,0,0,0,0,192,2,0,0,17,0,0,0,18,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,32,3,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,1,0,0,0,0,0,0,0,240,2,0,0,19,0,0,0,23,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,152,3,0,0,19,0,0,0,24,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,168,3,0,0,19,0,0,0,25,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,216,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,220,25,0,0,76,26,0,0,188,26,0,0,188,26,0,0,172,68,0,0,44,35,0,0,44,29,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,162,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,5,0,0,0,154,207,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,5,0,0,0,146,203,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); +/* memory initializer */ allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+9000); +/* memory initializer */ allocate([56,4,0,0,26,0,0,0,27,0,0,0,1,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,9,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,10,0,0,0,5,0,0,0,0,0,0,0,72,4,0,0,26,0,0,0,28,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,6,0,0,0,11,0,0,0,7,0,0,0,0,0,0,0,88,4,0,0,29,0,0,0,30,0,0,0,3,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,14,0,0,0,9,0,0,0,0,0,0,0,104,4,0,0,29,0,0,0,31,0,0,0,4,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,15,0,0,0,12,0,0,0,13,0,0,0,16,0,0,0,17,0,0,0,10,0,0,0,15,0,0,0,11,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,211,0,0,0,1,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,121,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,143,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,169,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,187,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,4,0,0,29,0,0,0,32,0,0,0,5,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,15,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,15,0,0,0,11,0,0,0,0,0,0,0,200,4,0,0,26,0,0,0,33,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,11,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,208,4,0,0,34,0,0,0,35,0,0,0,248,255,255,255,248,255,255,255,208,4,0,0,36,0,0,0,37,0,0,0,8,0,0,0,0,0,0,0,232,4,0,0,38,0,0,0,39,0,0,0,248,255,255,255,248,255,255,255,232,4,0,0,40,0,0,0,41,0,0,0,4,0,0,0,0,0,0,0,0,5,0,0,42,0,0,0,43,0,0,0,252,255,255,255,252,255,255,255,0,5,0,0,44,0,0,0,45,0,0,0,4,0,0,0,0,0,0,0,24,5,0,0,46,0,0,0,47,0,0,0,252,255,255,255,252,255,255,255,24,5,0,0,48,0,0,0,49,0,0,0,0,0,0,0,152,4,0,0,50,0,0,0,51,0,0,0,0,0,0,0,16,6,0,0,52,0,0,0,53,0,0,0,54,0,0,0,1,0,0,0,6,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,6,0,0,55,0,0,0,56,0,0,0,54,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,57,0,0,0,58,0,0,0,54,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,59,0,0,0,60,0,0,0,54,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,61,0,0,0,62,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,63,0,0,0,64,0,0,0,54,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,65,0,0,0,66,0,0,0,54,0,0,0,18,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,240,6,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,7,0,0,67,0,0,0,68,0,0,0,54,0,0,0,26,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,24,7,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,7,0,0,69,0,0,0,70,0,0,0,54,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,7,0,0,71,0,0,0,72,0,0,0,54,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,73,0,0,0,74,0,0,0,54,0,0,0,34,0,0,0,35,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,36,0,0,0,11,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,7,0,0,75,0,0,0,76,0,0,0,54,0,0,0,37,0,0,0,38,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,39,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,7,0,0,77,0,0,0,78,0,0,0,54,0,0,0,40,0,0,0,41,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,42,0,0,0,23,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,7,0,0,79,0,0,0,80,0,0,0,54,0,0,0,43,0,0,0,44,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,45,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,81,0,0,0,82,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,83,0,0,0,84,0,0,0,54,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,8,0,0,85,0,0,0,86,0,0,0,54,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,8,0,0,87,0,0,0,88,0,0,0,54,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,8,0,0,89,0,0,0,90,0,0,0,54,0,0,0,18,0,0,0,6,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,8,0,0,91,0,0,0,92,0,0,0,54,0,0,0,19,0,0,0,7,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,93,0,0,0,94,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,95,0,0,0,96,0,0,0,54,0,0,0,12,0,0,0,20,0,0,0,13,0,0,0,21,0,0,0,14,0,0,0,1,0,0,0,22,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,97,0,0,0,98,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,46,0,0,0,47,0,0,0,13,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,99,0,0,0,100,0,0,0,54,0,0,0,49,0,0,0,50,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,0,0,0,0,96,6,0,0,101,0,0,0,102,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,0,0,0,0,48,5,0,0,103,0,0,0,104,0,0,0,54,0,0,0,0,0,0,0,64,5,0,0,103,0,0,0,105,0,0,0,54,0,0,0,23,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,15,0,0,0,24,0,0,0,16,0,0,0,25,0,0,0,17,0,0,0,5,0,0,0,26,0,0,0,14,0,0,0,0,0,0,0,96,5,0,0,103,0,0,0,106,0,0,0,54,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,53,0,0,0,54,0,0,0,16,0,0,0,55,0,0,0,0,0,0,0,128,5,0,0,103,0,0,0,107,0,0,0,54,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,56,0,0,0,57,0,0,0,18,0,0,0,58,0,0,0,0,0,0,0,160,5,0,0,103,0,0,0,108,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,192,5,0,0,103,0,0,0,109,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,208,5,0,0,103,0,0,0,110,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,197,88,159,83,66,75,0,64,73,50,163,34,168,17,197,88,33,123,252,115,98,104,197,88,191,69,11,48,126,24,159,83,252,115,65,109,84,98,159,83,179,65,65,45,18,23,66,75,98,104,84,98,126,88,66,75,33,59,186,40,195,20,0,64,197,88,159,83,66,75,0,64,73,50,163,34,168,17,73,50,191,69,179,65,33,59,73,50,130,39,55,27,224,13,163,34,11,48,65,45,186,40,163,34,55,27,191,18,142,9,168,17,126,24,18,23,195,20,168,17,224,13,142,9,223,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,114,114,111,114,58,32,108,97,98,101,108,105,110,103,32,119,111,114,107,32,111,118,101,114,102,108,111,119,46,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,40,37,100,41,32,114,101,113,117,101,115,116,101,100,46,10,0,85,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,108,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,114,101,113,117,101,115,116,101,100,46,32,83,101,116,32,116,111,32,109,97,110,117,97,108,46,10,0,76,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,46,10,0,77,65,78,85,65,76,0,65,85,84,79,95,77,69,68,73,65,78,0,65,85,84,79,95,79,84,83,85,0,65,85,84,79,95,65,68,65,80,84,73,86,69,65,85,84,79,95,66,82,65,67,75,69,84,73,78,71,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,109,97,114,107,101,114,32,99,111,117,110,116,115,32,45,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,43,46,10,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,109,101,100,105,97,110,0,79,116,115,117,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,37,115,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,63,63,63,32,49,10,0,63,63,63,32,50,10,0,63,63,63,32,51,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,112,97,115,115,101,100,32,116,111,32,97,114,73,109,97,103,101,80,114,111,99,72,105,115,116,40,41,46,10,0,0,0,0,1,0,1,1,1,0,2,4,255,255,5,3,1,0,2,255,6,7,255,3,1,2,2,3,2,3,2,3,3,0,255,4,6,7,5,255,1,4,5,4,4,5,5,4,5,7,6,6,6,7,7,7,6,255,2,4,6,7,5,3,255,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,255,255,3,255,5,6,255,255,9,10,255,12,255,255,15,255,17,18,255,20,255,255,23,24,255,255,27,255,29,30,255,255,1,2,255,4,255,255,7,8,255,255,11,255,13,14,255,16,255,255,19,255,21,22,255,255,25,26,255,28,255,255,31,69,114,114,111,114,58,32,117,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,58,32,78,85,76,76,32,112,97,116,116,72,97,110,100,108,101,46,10,0,69,114,114,111,114,58,32,99,97,110,39,116,32,108,111,97,100,32,112,97,116,116,101,114,110,32,102,114,111,109,32,78,85,76,76,32,98,117,102,102,101,114,46,10,0,69,114,114,111,114,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,46,10,0,32,9,10,13,0,80,97,116,116,101,114,110,32,68,97,116,97,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,115,32,102,105,108,101,32,34,37,115,34,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,102,105,108,101,32,108,101,110,103,116,104,46,0,69,114,114,111,114,58,32,115,117,112,112,108,105,101,100,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,97,112,112,101,97,114,32,116,111,32,98,101,32,97,110,32,65,82,84,111,111,108,75,105,116,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,114,101,97,100,32,102,114,111,109,32,102,105,108,101,46,0,69,114,114,111,114,58,32,105,99,112,71,101,116,74,95,85,95,88,99,0,69,114,114,111,114,58,32,109,97,108,108,111,99,10,0,69,114,114,111,114,32,49,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,50,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,51,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,52,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,53,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,54,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,55,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,110,117,109,98,101,114,32,111,102,32,109,97,114,107,101,114,32,99,111,110,102,105,103,115,32,116,111,32,114,101,97,100,46,10,0,37,108,108,117,37,99,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,112,97,116,116,101,114,110,32,39,37,115,39,32,115,112,101,99,105,102,105,101,100,32,105,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,104,105,108,101,32,105,110,32,98,97,114,99,111,100,101,45,111,110,108,121,32,109,111,100,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,100,105,114,101,99,116,111,114,121,32,110,97,109,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,108,111,97,100,32,112,97,116,116,101,114,110,32,39,37,115,39,46,10,0,37,108,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,112,97,116,116,101,114,110,32,119,105,100,116,104,46,10,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,37,102,32,37,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,76,105,110,101,115,32,50,32,45,32,52,32,109,117,115,116,32,98,101,32,109,97,114,107,101,114,32,116,114,97,110,115,102,111,114,109,46,10,0,97,114,103,108,67,97,109,101,114,97,70,114,117,115,116,117,109,40,41,58,32,97,114,80,97,114,97,109,68,101,99,111,109,112,77,97,116,40,41,32,105,110,100,105,99,97,116,101,100,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,46,10,0,37,115,37,115,0,46,105,115,101,116,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,102,105,108,101,32,39,37,115,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,105,109,97,103,101,83,101,116,46,10,0,73,109,97,103,101,115,101,116,32,99,111,110,116,97,105,110,115,32,37,100,32,105,109,97,103,101,115,46,10,0,70,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,114,101,97,100,105,110,103,32,39,37,115,37,115,39,32,105,110,32,65,82,84,111,111,108,75,105,116,32,118,52,46,120,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,74,80,69,71,32,102,105,108,101,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,74,80,69,71,32,102,105,108,101,32,104,101,97,100,101,114,46,10,0,37,102,0,70,105,108,101,32,111,112,101,110,32,101,114,114,111,114,46,32,37,115,10,0,82,101,97,100,32,101,114,114,111,114,33,33,10,0,114,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,39,58,32,0,37,115,37,115,10,0,37,100,0,10,35,35,35,32,83,117,114,102,97,99,101,32,78,111,46,37,100,32,35,35,35,10,0,37,115,0,32,32,82,101,97,100,32,73,109,97,103,101,83,101,116,46,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,105,115,101,116,39,46,10,0,32,32,32,32,101,110,100,46,10,0,32,32,82,101,97,100,32,70,101,97,116,117,114,101,83,101,116,46,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,102,115,101,116,39,46,10,0,32,32,82,101,97,100,32,77,97,114,107,101,114,83,101,116,46,10,0,109,114,107,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,109,114,107,39,46,10,0,37,102,32,37,102,32,37,102,32,37,102,0,84,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,106,112,103,0,80,101,114,102,111,114,109,97,110,99,101,32,119,97,114,110,105,110,103,58,32,75,80,77,32,112,114,111,99,101,115,115,105,110,103,32,105,115,32,110,111,116,32,117,115,105,110,103,32,97,32,109,111,110,111,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,107,112,109,68,101,108,101,116,101,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,80,116,114,49,47,114,101,102,68,97,116,97,83,101,116,80,116,114,50,46,10,0,107,112,109,68,101,108,101,116,101,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,80,116,114,46,10,0,114,98,0,107,112,109,76,111,97,100,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,102,105,108,101,110,97,109,101,47,114,101,102,68,97,116,97,83,101,116,80,116,114,46,10,0,69,114,114,111,114,32,108,111,97,100,105,110,103,32,75,80,77,32,100,97,116,97,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,102,105,108,101,32,39,37,115,37,115,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,108,111,97,100,105,110,103,32,75,80,77,32,100,97,116,97,58,32,101,114,114,111,114,32,114,101,97,100,105,110,103,32,100,97,116,97,46,10,0,107,112,109,67,104,97,110,103,101,80,97,103,101,78,111,79,102,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,46,10,0,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,107,112,109,72,97,110,100,108,101,47,114,101,102,68,97,116,97,83,101,116,46,10,0,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,40,41,58,32,114,101,102,68,97,116,97,83,101,116,46,10,0,112,111,105,110,116,115,45,37,100,10,0,107,112,109,77,97,116,99,104,105,110,103,40,41,58,32,78,85,76,76,32,107,112,109,72,97,110,100,108,101,47,105,110,73,109,97,103,101,46,10,0,80,97,103,101,91,37,100,93,32,32,112,114,101,58,37,51,100,44,32,97,102,116,58,37,51,100,44,32,101,114,114,111,114,32,61,32,37,102,10,0,79,117,116,32,111,102,32,109,101,109,111,114,121,33,33,10,0,37,115,46,37,115,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,68,111,71,95,115,99,97,108,101,95,105,110,118,97,114,105,97,110,116,95,100,101,116,101,99,116,111,114,46,99,112,112,0,80,121,114,97,109,105,100,32,105,115,32,110,111,116,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,73,109,97,103,101,115,46,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,76,97,112,108,97,99,105,97,110,32,112,121,114,97,109,105,100,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,110,117,109,79,99,116,97,118,101,115,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,97,110,121,32,108,101,118,101,108,115,0,65,115,115,101,114,116,105,111,110,32,96,100,121,110,97,109,105,99,95,99,97,115,116,60,99,111,110,115,116,32,66,105,110,111,109,105,97,108,80,121,114,97,109,105,100,51,50,102,42,62,40,112,121], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+11552); +/* memory initializer */ allocate([114,97,109,105,100,41,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,98,105,110,111,109,105,97,108,32,112,121,114,97,109,105,100,32,105,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,100,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,70,51,50,32,105,109,97,103,101,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,50,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,115,105,110,103,108,101,32,99,104,97,110,110,101,108,32,105,109,97,103,101,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,50,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,46,119,105,100,116,104,40,41,32,61,61,32,105,109,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,100,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,104,101,105,103,104,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,119,105,100,116,104,40,41,32,61,61,32,105,109,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,68,111,71,32,80,121,114,97,109,105,100,0,78,111,110,45,109,97,120,32,115,117,112,112,114,101,115,115,105,111,110,0,83,117,98,112,105,120,101,108,0,112,114,117,110,101,70,101,97,116,117,114,101,115,0,70,105,110,100,32,79,114,105,101,110,116,97,116,105,111,110,115,0,65,115,115,101,114,116,105,111,110,32,96,105,109,48,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,72,101,105,103,104,116,32,105,115,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,48,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,49,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,107,112,46,115,99,97,108,101,32,60,32,109,76,97,112,108,97,99,105,97,110,80,121,114,97,109,105,100,46,110,117,109,83,99,97,108,101,80,101,114,79,99,116,97,118,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,70,101,97,116,117,114,101,32,112,111,105,110,116,32,115,99,97,108,101,32,105,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,107,112,46,115,99,111,114,101,32,61,61,32,108,97,112,49,46,103,101,116,60,102,108,111,97,116,62,40,121,41,91,120,93,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,111,114,101,32,105,115,32,110,111,116,32,99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,32,116,104,101,32,68,111,71,32,105,109,97,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,66,117,99,107,101,116,115,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,66,117,99,107,101,116,115,88,96,32,102,97,105,108,101,100,32,105,110,32,0,66,117,99,107,101,116,115,32,97,114,101,32,110,111,116,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,66,117,99,107,101,116,115,91,48,93,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,66,117,99,107,101,116,115,89,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,109,70,101,97,116,117,114,101,80,111,105,110,116,115,46,115,105,122,101,40,41,32,60,61,32,109,77,97,120,78,117,109,70,101,97,116,117,114,101,80,111,105,110,116,115,96,32,102,97,105,108,101,100,32,105,110,32,0,84,111,111,32,109,97,110,121,32,102,101,97,116,117,114,101,32,112,111,105,110,116,115,0,65,115,115,101,114,116,105,111,110,32,96,98,117,99,107,101,116,91,48,93,46,102,105,114,115,116,32,62,61,32,98,117,99,107,101,116,91,110,93,46,102,105,114,115,116,96,32,102,97,105,108,101,100,32,105,110,32,0,110,116,104,95,101,108,101,109,101,110,116,32,102,97,105,108,101,100,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,68,111,71,95,115,99,97,108,101,95,105,110,118,97,114,105,97,110,116,95,100,101,116,101,99,116,111,114,46,104,0,87,105,100,116,104,47,104,101,105,103,104,116,32,97,114,101,32,110,111,116,32,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,41,32,38,38,32,40,40,108,97,112,49,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,115,105,122,101,115,32,97,114,101,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,120,45,49,41,32,62,61,32,48,32,38,38,32,40,120,43,49,41,32,60,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,40,121,45,49,41,32,62,61,32,48,32,38,38,32,40,121,43,49,41,32,60,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,119,105,100,116,104,40,41,62,62,49,41,32,61,61,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,100,105,109,101,110,115,105,111,110,115,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,119,105,100,116,104,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,120,45,49,41,32,62,61,32,48,32,38,38,32,40,120,43,49,41,32,60,32,105,109,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,121,45,49,41,32,62,61,32,48,32,38,38,32,40,121,43,49,41,32,60,32,105,109,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,119,105,100,116,104,40,41,32,61,61,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,120,95,100,105,118,95,50,45,48,46,53,102,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,120,95,100,105,118,95,50,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,102,111,114,32,105,110,116,101,114,112,111,108,97,116,105,111,110,0,65,115,115,101,114,116,105,111,110,32,96,121,95,100,105,118,95,50,45,48,46,53,102,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,121,95,100,105,118,95,50,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,102,111,114,32,105,110,116,101,114,112,111,108,97,116,105,111,110,0,65,115,115,101,114,116,105,111,110,32,96,120,95,100,105,118,95,50,43,48,46,53,102,32,60,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,95,100,105,118,95,50,43,48,46,53,102,32,60,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,119,105,100,116,104,40,41,32,61,61,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,110,116,41,115,116,100,58,58,102,108,111,111,114,40,120,41,32,61,61,32,40,105,110,116,41,120,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,105,110,116,101,114,112,111,108,97,116,101,46,104,0,102,108,111,111,114,40,41,32,97,110,100,32,99,97,115,116,32,110,111,116,32,116,104,101,32,115,97,109,101,0,65,115,115,101,114,116,105,111,110,32,96,40,105,110,116,41,115,116,100,58,58,102,108,111,111,114,40,121,41,32,61,61,32,40,105,110,116,41,121,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,112,32,62,61,32,48,32,38,38,32,121,112,32,60,32,104,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,121,112,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,121,112,95,112,108,117,115,95,49,32,62,61,32,48,32,38,38,32,121,112,95,112,108,117,115,95,49,32,60,32,104,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,121,112,95,112,108,117,115,95,49,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,120,112,32,62,61,32,48,32,38,38,32,120,112,32,60,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,120,112,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,120,112,95,112,108,117,115,95,49,32,62,61,32,48,32,38,38,32,120,112,95,112,108,117,115,95,49,32,60,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,120,112,95,112,108,117,115,95,49,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,119,48,32,62,61,32,48,32,38,38,32,119,48,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,79,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,119,49,32,62,61,32,48,32,38,38,32,119,49,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,119,50,32,62,61,32,48,32,38,38,32,119,50,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,119,51,32,62,61,32,48,32,38,38,32,119,51,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,119,48,43,119,49,43,119,50,43,119,51,41,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,60,32,109,73,109,97,103,101,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,110,100,101,120,32,105,115,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,114,111,119,32,60,32,109,72,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,105,109,97,103,101,46,104,0,114,111,119,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,78,54,118,105,115,105,111,110,50,53,71,97,117,115,115,105,97,110,83,99,97,108,101,83,112,97,99,101,80,121,114,97,109,105,100,69,0,79,99,116,97,118,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,83,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,78,54,118,105,115,105,111,110,49,56,66,105,110,111,109,105,97,108,80,121,114,97,109,105,100,51,50,102,69,0,65,115,115,101,114,116,105,111,110,32,96,119,105,100,116,104,32,62,61,32,53,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,103,97,117,115,115,105,97,110,95,115,99,97,108,101,95,115,112,97,99,101,95,112,121,114,97,109,105,100,46,99,112,112,0,73,109,97,103,101,32,105,115,32,116,111,111,32,115,109,97,108,108,0,65,115,115,101,114,116,105,111,110,32,96,104,101,105,103,104,116,32,62,61,32,53,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,85,73,78,84,56,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,109,117,115,116,32,98,101,32,103,114,97,121,115,99,97,108,101,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,109,117,115,116,32,104,97,118,101,32,49,32,99,104,97,110,110,101,108,0,65,115,115,101,114,116,105,111,110,32,96,109,80,121,114,97,109,105,100,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,79,99,116,97,118,101,115,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,32,121,101,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,119,105,100,116,104,40,41,32,61,61,32,109,80,121,114,97,109,105,100,91,48,93,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,111,102,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,112,121,114,97,109,105,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,104,101,105,103,104,116,40,41,32,61,61,32,109,80,121,114,97,109,105,100,91,48,93,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,115,116,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,115,116,105,110,97,116,105,111,110,32,105,109,97,103,101,32,115,104,111,117,108,100,32,98,101,32,97,32,102,108,111,97,116,0,85,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,85,110,115,117,112,112,111,114,116,101,100,32,105,109,97,103,101,32,116,121,112,101,0,78,54,118,105,115,105,111,110,57,69,120,99,101,112,116,105,111,110,69,0,65,115,115,101,114,116,105,111,110,32,96,105,109,46,119,105,100,116,104,40,41,32,61,61,32,105,109,46,115,116,101,112,40,41,47,115,105,122,101,111,102,40,102,108,111,97,116,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,111,114,105,101,110,116,97,116,105,111,110,95,97,115,115,105,103,110,109,101,110,116,46,99,112,112,0,83,116,101,112,32,115,105,122,101,32,109,117,115,116,32,98,101,32,101,113,117,97,108,32,116,111,32,119,105,100,116,104,32,102,111,114,32,110,111,119,0,65,115,115,101,114,116,105,111,110,32,96,120,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,60,32,109,71,114,97,100,105,101,110,116,115,91,111,99,116,97,118,101,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,43,115,99,97,108,101,93,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,116,104,101,32,105,109,97,103,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,121,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,121,32,60,32,109,71,114,97,100,105,101,110,116,115,91,111,99,116,97,118,101,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,43,115,99,97,108,101,93,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,116,104,101,32,105,109,97,103,101,32,104,101,105,103,104,116,0,65,115,115,101,114,116,105,111,110,32,96,103,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,50,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,99,104,97,110,110,101,108,115,32,115,104,111,117,108,100,32,98,101,32,50,0,65,115,115,101,114,116,105,111,110,32,96,109,97,120,95,104,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,77,97,120,105,109,117,109,32,98,105,110,32,115,104,111,117,108,100,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,104,105,115,116,32,33,61,32,78,85,76,76,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,111,114,105,101,110,116,97,116,105,111,110,95,97,115,115,105,103,110,109,101,110,116,46,104,0,72,105,115,116,111,103,114,97,109,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,40,102,98,105,110,43,48,46,53,102,41,32,62,32,48,32,38,38,32,40,102,98,105,110,45,48,46,53,102,41,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,99,105,109,97,108,32,98,105,110,32,112,111,115,105,116,105,111,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,97,103,110,105,116,117,100,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,77,97,103,110,105,116,117,100,101,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,98,105,110,115,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,98,105,110,115,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,119,49,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,49,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,119,50,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,50,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,98,49,32,62,61,32,48,32,38,38,32,98,49,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,98,49,32,98,105,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,50,32,62,61,32,48,32,38,38,32,98,50,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,98,50,32,98,105,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,66,117,105,108,100,32,80,121,114,97,109,105,100,0,69,120,116,114,97,99,116,32,70,101,97,116,117,114,101,115,0,91,37,115,93,32,91,37,115,93,32,91,37,115,93,32,58,32,70,111,117,110,100,32,37,100,32,102,101,97,116,117,114,101,115,32,105,110,32,113,117,101,114,121,0,98,111,111,108,32,118,105,115,105,111,110,58,58,86,105,115,117,97,108,68,97,116,97,98,97,115,101,60,118,105,115,105,111,110,58,58,70,82,69,65,75,69,120,116,114,97,99,116,111,114,44,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,83,116,111,114,101,44,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,77,97,116,99,104,101,114,60,57,54,62,32,62,58,58,113,117,101,114,121,40,99,111,110,115,116,32,118,105,115,105,111,110,58,58,71,97,117,115,115,105,97,110,83,99,97,108,101,83,112,97,99,101,80,121,114,97,109,105,100,32,42,41,32,91,70,69,65,84,85,82,69,95,69,88,84,82,65,67,84,79,82,32,61,32,118,105,115,105,111,110,58,58,70,82,69,65,75,69,120,116,114,97,99,116,111,114,44,32,83,84,79,82,69,32,61,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,83,116,111,114,101,44,32,77,65,84,67,72,69,82,32,61,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,77,97,116,99,104,101,114,60,57,54,62,93,0,70,105,110,100,32,77,97,116,99,104,101,115,32,40,49,41,0,72,111,117,103,104,32,86,111,116,105,110,103,32,40,49,41,0,70,105,110,100,32,72,111,117,103,104,32,77,97,116,99,104,101,115,32,40,49,41,0,69,115,116,105,109,97,116,101,32,72,111,109,111,103,114,97,112,104,121,32,40,49,41,0,70,105,110,100,32,73,110,108,105,101,114,115,32,40,49,41,0,70,105,110,100,32,77,97,116,99,104,101,115,32,40,50,41,0,72,111,117,103,104,32,86,111,116,105,110,103,32,40,50,41,0,70,105,110,100,32,72,111,117,103,104,32,77,97,116,99,104,101,115,32,40,50,41,0,69,115,116,105,109,97,116,101,32,72,111,109,111,103,114,97,112,104,121,32,40,50,41,0,70,105,110,100,32,73,110,108,105,101,114,115,32,40,50,41,0,65,115,115,101,114,116,105,111,110,32,96,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,102,101,97,116,117,114,101,95,109,97,116,99,104,101,114,45,105,110,108,105,110,101,46,104,0,70,97,105,108,101,100,32,116,111,32,99,111,109,112,117,116,101,32,109,97,116,114,105,120,32,105,110,118,101,114,115,101,0,65,115,115,101,114,116,105,111,110,32,96,98,101,115,116,95,105,110,100,101,120,32,33,61,32,115,116,100,58,58,110,117,109,101,114,105,99,95,108,105,109,105,116,115,60,115,105,122,101,95,116,62,58,58,109,97,120,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,83,111,109,101,116,104,105,110,103,32,115,116,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,77,97,116,99,104,101,115,46,115,105,122,101,40,41,32,60,61,32,102,101,97,116,117,114,101,115,49,45,62,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,109,97,116,99,104,101,115,32,115,104,111,117,108,100,32,98,101,32,108,111,119,101,114,0,65,115,115,101,114,116,105,111,110,32,96,104,121,112,46,115,105,122,101,40,41,32,62,61,32,57,42,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,104,111,109,111,103,114,97,112,104,121,95,101,115,116,105,109,97,116,105,111,110,47,114,111,98,117,115,116,95,104,111,109,111,103,114,97,112,104,121,46,104,0,104,121,112,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,57,42,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,0,65,115,115,101,114,116,105,111,110,32,96,116,109,112,95,105,46,115,105,122,101,40,41,32,62,61,32,110,117,109,95,112,111,105,110,116,115,96,32,102,97,105,108,101,100,32,105,110,32,0,116,109,112,95,105,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,110,117,109,95,112,111,105,110,116,115,0,65,115,115,101,114,116,105,111,110,32,96,104,121,112,95,99,111,115,116,115,46,115,105,122,101,40,41,32,62,61,32,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,104,121,112,95,99,111,115,116,115,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,0,65,115,115,101,114,116,105,111,110,32,96,110,32,60,61,32,105,110,95,109,97,116,99,104,101,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,118,105,115,117,97,108,95,100,97,116,97,98,97,115,101,46,104,0,83,104,111,117,108,100,32,98,101,32,116,104,101,32,115,97,109,101,0,65,115,115,101,114,116,105,111,110,32,96,100,105,115,116,66,105,110,65,110,103,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,100,105,115,116,66,105,110,65,110,103,108,101,32,109,117,115,116,32,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,111,111,116,46,103,101,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,98,105,110,97,114,121,95,104,105,101,114,97,114,99,104,105,99,97,108,95,99,108,117,115,116,101,114,105,110,103,46,104,0,82,111,111,116,32,99,97,110,110,111,116,32,98,101,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,109,105,110,105,32,33,61,32,45,49,96,32,102,97,105,108,101,100,32,105,110,32,0,77,105,110,105,109,117,109,32,105,110,100,101,120,32,110,111,116,32,115,101,116,0,65,115,115,101,114,116,105,111,110,32,96,100,101,116,101,99,116,111,114,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,116,101,99,116,111,114,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,46,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,105,115,32,101,109,112,116,121,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,91,48,93,46,119,105,100,116,104,40,41,32,61,61,32,100,101,116,101,99,116,111,114,45,62,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,97,110,100,32,100,101,116,101,99,116,111,114,32,115,105,122,101,32,109,105,115,109,97,116,99,104,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,91,48,93,46,104,101,105,103,104,116,40,41,32,61,61,32,100,101,116,101,99,116,111,114,45,62,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,68,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,46,115,105,122,101,40,41,32,61,61,32,110,117,109,95,105,110,100,105,99,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,115,105,122,101,32,119,114,111,110,103,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,91,105,93,32,33,61,32,45,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,105,115,32,105,110,118,97,108,105,100,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,91,105,93,32,60,32,110,117,109,95,105,110,100,105,99,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,105,99,101,115,91,97,115,115,105,103,110,109,101,110,116,91,105,93,93,32,60,32,110,117,109,95,102,101,97,116,117,114,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,116,45,62,115,101,99,111,110,100,46,115,105,122,101,40,41,32,33,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,67,108,117,115,116,101,114,32,109,117,115,116,32,104,97,118,101,32,97,116,108,101,97,115,101,116,32,49,32,102,101,97,116,117,114,101,0,65,115,115,101,114,116,105,111,110,32,96,109,75,32,61,61,32,109,67,101,110,116,101,114,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,107,109,101,100,111,105,100,115,46,104,0,107,32,115,104,111,117,108,100,32,109,97,116,99,104,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,99,108,117,115,116,101,114,32,99,101,110,116,101,114,115,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,102,101,97,116,117,114,101,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,102,101,97,116,117,114,101,115,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,105,110,100,105,99,101,115,32,60,61,32,110,117,109,95,102,101,97,116,117,114,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,77,111,114,101,32,105,110,100,105,99,101,115,32,116,104,97,110,32,102,101,97,116,117,114,101,115,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,105,110,100,105,99,101,115,32,62,61,32,109,75,96,32,102,97,105,108,101,100,32,105,110,32,0,78,111,116,32,101,110,111,117,103,104,32,102,101,97,116,117,114,101,115,0,65,115,115,105,103,110,109,101,110,116,32,115,105,122,101,32,105,115,32,105,110,99,111,114,114,101,99,116,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,99,101,110,116,101,114,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,84,104,101,114,101,32,109,117,115,116,32,98,101,32,97,116,32,108,101,97,115,116,32,49,32,99,101,110,116,101,114,0,78,83,116,51,95,95,49,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,78,54,118,105,115,105,111,110,56,75,101,121,102,114,97,109,101,73,76,105,57,54,69,69,69,69,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,78,54,118,105,115,105,111,110,56,75,101,121,102,114,97,109,101,73,76,105,57,54,69,69,69,78,83,95,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,83,51,95,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,83,51,95,69,69,69,69,0,65,115,115,101,114,116,105,111,110,32,96,115,105,122,101,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,104,111,117,103,104,95,115,105,109,105,108,97,114,105,116,121,95,118,111,116,105,110,103,46,99,112,112,0,115,105,122,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,101,102,73,109,97,103,101,87,105,100,116,104,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,101,102,73,109,97,103,101,72,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,104,101,105,103,104,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,62,61,32,109,77,105,110,88,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,60,32,109,77,97,120,88,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,32,62,61,32,109,77,105,110,89,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,121,32,60,32,109,77,97,120,89,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,97,110,103,108,101,32,62,32,45,80,73,96,32,102,97,105,108,101,100,32,105,110,32,0,97,110,103,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,97,110,103,108,101,32,60,61,32,80,73,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,62,61,32,109,77,105,110,83,99,97,108,101,96,32,102,97,105,108,101,100,32,105,110,32,0,115,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,60,32,109,77,97,120,83,99,97,108,101,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,110,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,117,116,105,108,115,47,112,97,114,116,105,97,108,95,115,111,114,116,46,104,0,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,107,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,107,32,109,117,115,116,32], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+21792); +/* memory initializer */ allocate([98,101,32,112,111,115,105,116,105,118,101,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,104,111,117,103,104,95,115,105,109,105,108,97,114,105,116,121,95,118,111,116,105,110,103,46,104,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,88,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,88,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,88,32,60,32,109,78,117,109,88,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,89,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,89,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,89,32,60,32,109,78,117,109,89,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,65,110,103,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,65,110,103,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,65,110,103,108,101,32,60,32,109,78,117,109,65,110,103,108,101,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,83,99,97,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,83,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,83,99,97,108,101,32,60,32,109,78,117,109,83,99,97,108,101,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,60,61,32,40,98,105,110,88,32,43,32,98,105,110,89,42,109,78,117,109,88,66,105,110,115,32,43,32,98,105,110,65,110,103,108,101,42,109,78,117,109,88,66,105,110,115,42,109,78,117,109,89,66,105,110,115,32,43,32,98,105,110,83,99,97,108,101,42,109,78,117,109,88,66,105,110,115,42,109,78,117,109,89,66,105,110,115,42,109,78,117,109,65,110,103,108,101,66,105,110,115,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,102,114,101,97,107,46,104,0,80,121,114,97,109,105,100,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,115,116,111,114,101,46,115,105,122,101,40,41,32,61,61,32,112,111,105,110,116,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,70,101,97,116,117,114,101,32,115,116,111,114,101,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,112,111,105,110,116,115,32,61,61,32,112,111,105,110,116,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,83,104,111,117,108,100,32,98,101,32,115,97,109,101,32,115,105,122,101,0,65,115,115,101,114,116,105,111,110,32,96,111,99,116,97,118,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,103,97,117,115,115,105,97,110,95,115,99,97,108,101,95,115,112,97,99,101,95,112,121,114,97,109,105,100,46,104,0,79,99,116,97,118,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,111,99,116,97,118,101,32,60,32,109,78,117,109,79,99,116,97,118,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,79,99,116,97,118,101,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,110,117,109,98,101,114,32,111,102,32,111,99,116,97,118,101,115,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,97,108,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,60,32,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,97,108,101,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,110,117,109,98,101,114,32,111,102,32,115,99,97,108,101,32,112,101,114,32,111,99,116,97,118,101,0,37,109,45,37,100,45,37,89,45,37,72,45,37,77,45,37,83,0,65,115,115,101,114,116,105,111,110,32,96,119,105,100,116,104,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,105,109,97,103,101,46,99,112,112,0,87,105,100,116,104,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,104,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,72,101,105,103,104,116,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,115,116,101,112,32,62,61,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,83,116,101,112,32,109,117,115,116,32,98,101,32,103,114,101,97,116,101,114,32,116,104,97,110,32,111,114,32,101,113,117,97,108,32,116,104,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,99,104,97,110,110,101,108,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,99,104,97,110,110,101,108,115,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,109,68,97,116,97,46,103,101,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,68,97,116,97,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,0,73,110,118,97,108,105,100,32,105,109,97,103,101,32,116,121,112,101,0,49,54,78,117,108,108,65,114,114,97,121,68,101,108,101,116,101,114,73,104,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,104,49,54,78,117,108,108,65,114,114,97,121,68,101,108,101,116,101,114,73,104,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,78,83,116,51,95,95,49,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,104,69,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,104,78,83,95,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,65,115,115,101,114,116,105,111,110,32,96,109,83,116,97,114,116,84,105,109,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,116,105,109,101,114,115,46,99,112,112,0,32,108,105,110,101,32,0,58,32,0,67,108,111,99,107,32,104,97,115,32,110,111,116,32,98,101,101,110,32,115,116,97,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,83,116,111,112,84,105,109,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,67,108,111,99,107,32,104,97,115,32,110,111,116,32,98,101,101,110,32,115,116,111,112,112,101,100,0,91,37,115,93,32,91,37,115,93,32,91,37,115,93,32,58,32,37,115,58,32,37,102,32,109,115,0,32,73,78,70,79,32,32,0,118,105,115,105,111,110,58,58,83,99,111,112,101,100,84,105,109,101,114,58,58,126,83,99,111,112,101,100,84,105,109,101,114,40,41,0,74,80,69,71,77,69,77,0,37,108,100,37,99,0,66,111,103,117,115,32,109,101,115,115,97,103,101,32,99,111,100,101,32,37,100,0,83,111,114,114,121,44,32,116,104,101,114,101,32,97,114,101,32,108,101,103,97,108,32,114,101,115,116,114,105,99,116,105,111,110,115,32,111,110,32,97,114,105,116,104,109,101,116,105,99,32,99,111,100,105,110,103,0,65,76,73,71,78,95,84,89,80,69,32,105,115,32,119,114,111,110,103,44,32,112,108,101,97,115,101,32,102,105,120,0,77,65,88,95,65,76,76,79,67,95,67,72,85,78,75,32,105,115,32,119,114,111,110,103,44,32,112,108,101,97,115,101,32,102,105,120,0,66,111,103,117,115,32,98,117,102,102,101,114,32,99,111,110,116,114,111,108,32,109,111,100,101,0,73,110,118,97,108,105,100,32,99,111,109,112,111,110,101,110,116,32,73,68,32,37,100,32,105,110,32,83,79,83,0,68,67,84,32,99,111,101,102,102,105,99,105,101,110,116,32,111,117,116,32,111,102,32,114,97,110,103,101,0,73,68,67,84,32,111,117,116,112,117,116,32,98,108,111,99,107,32,115,105,122,101,32,37,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,66,111,103,117,115,32,72,117,102,102,109,97,110,32,116,97,98,108,101,32,100,101,102,105,110,105,116,105,111,110,0,66,111,103,117,115,32,105,110,112,117,116,32,99,111,108,111,114,115,112,97,99,101,0,66,111,103,117,115,32,74,80,69,71,32,99,111,108,111,114,115,112,97,99,101,0,66,111,103,117,115,32,109,97,114,107,101,114,32,108,101,110,103,116,104,0,87,114,111,110,103,32,74,80,69,71,32,108,105,98,114,97,114,121,32,118,101,114,115,105,111,110,58,32,108,105,98,114,97,114,121,32,105,115,32,37,100,44,32,99,97,108,108,101,114,32,101,120,112,101,99,116,115,32,37,100,0,83,97,109,112,108,105,110,103,32,102,97,99,116,111,114,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,105,110,116,101,114,108,101,97,118,101,100,32,115,99,97,110,0,73,110,118,97,108,105,100,32,109,101,109,111,114,121,32,112,111,111,108,32,99,111,100,101,32,37,100,0,85,110,115,117,112,112,111,114,116,101,100,32,74,80,69,71,32,100,97,116,97,32,112,114,101,99,105,115,105,111,110,32,37,100,0,73,110,118,97,108,105,100,32,112,114,111,103,114,101,115,115,105,118,101,32,112,97,114,97,109,101,116,101,114,115,32,83,115,61,37,100,32,83,101,61,37,100,32,65,104,61,37,100,32,65,108,61,37,100,0,73,110,118,97,108,105,100,32,112,114,111,103,114,101,115,115,105,118,101,32,112,97,114,97,109,101,116,101,114,115,32,97,116,32,115,99,97,110,32,115,99,114,105,112,116,32,101,110,116,114,121,32,37,100,0,66,111,103,117,115,32,115,97,109,112,108,105,110,103,32,102,97,99,116,111,114,115,0,73,110,118,97,108,105,100,32,115,99,97,110,32,115,99,114,105,112,116,32,97,116,32,101,110,116,114,121,32,37,100,0,73,109,112,114,111,112,101,114,32,99,97,108,108,32,116,111,32,74,80,69,71,32,108,105,98,114,97,114,121,32,105,110,32,115,116,97,116,101,32,37,100,0,74,80,69,71,32,112,97,114,97,109,101,116,101,114,32,115,116,114,117,99,116,32,109,105,115,109,97,116,99,104,58,32,108,105,98,114,97,114,121,32,116,104,105,110,107,115,32,115,105,122,101,32,105,115,32,37,117,44,32,99,97,108,108,101,114,32,101,120,112,101,99,116,115,32,37,117,0,66,111,103,117,115,32,118,105,114,116,117,97,108,32,97,114,114,97,121,32,97,99,99,101,115,115,0,66,117,102,102,101,114,32,112,97,115,115,101,100,32,116,111,32,74,80,69,71,32,108,105,98,114,97,114,121,32,105,115,32,116,111,111,32,115,109,97,108,108,0,83,117,115,112,101,110,115,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,104,101,114,101,0,67,67,73,82,54,48,49,32,115,97,109,112,108,105,110,103,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,84,111,111,32,109,97,110,121,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,58,32,37,100,44,32,109,97,120,32,37,100,0,85,110,115,117,112,112,111,114,116,101,100,32,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,32,114,101,113,117,101,115,116,0,66,111,103,117,115,32,68,65,67,32,105,110,100,101,120,32,37,100,0,66,111,103,117,115,32,68,65,67,32,118,97,108,117,101,32,48,120,37,120,0,66,111,103,117,115,32,68,72,84,32,105,110,100,101,120,32,37,100,0,66,111,103,117,115,32,68,81,84,32,105,110,100,101,120,32,37,100,0,69,109,112,116,121,32,74,80,69,71,32,105,109,97,103,101,32,40,68,78,76,32,110,111,116,32,115,117,112,112,111,114,116,101,100,41,0,82,101,97,100,32,102,114,111,109,32,69,77,83,32,102,97,105,108,101,100,0,87,114,105,116,101,32,116,111,32,69,77,83,32,102,97,105,108,101,100,0,68,105,100,110,39,116,32,101,120,112,101,99,116,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,115,99,97,110,0,73,110,112,117,116,32,102,105,108,101,32,114,101,97,100,32,101,114,114,111,114,0,79,117,116,112,117,116,32,102,105,108,101,32,119,114,105,116,101,32,101,114,114,111,114,32,45,45,45,32,111,117,116,32,111,102,32,100,105,115,107,32,115,112,97,99,101,63,0,70,114,97,99,116,105,111,110,97,108,32,115,97,109,112,108,105,110,103,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,72,117,102,102,109,97,110,32,99,111,100,101,32,115,105,122,101,32,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,77,105,115,115,105,110,103,32,72,117,102,102,109,97,110,32,99,111,100,101,32,116,97,98,108,101,32,101,110,116,114,121,0,77,97,120,105,109,117,109,32,115,117,112,112,111,114,116,101,100,32,105,109,97,103,101,32,100,105,109,101,110,115,105,111,110,32,105,115,32,37,117,32,112,105,120,101,108,115,0,69,109,112,116,121,32,105,110,112,117,116,32,102,105,108,101,0,80,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,105,110,112,117,116,32,102,105,108,101,0,67,97,110,110,111,116,32,116,114,97,110,115,99,111,100,101,32,100,117,101,32,116,111,32,109,117,108,116,105,112,108,101,32,117,115,101,32,111,102,32,113,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,32,37,100,0,83,99,97,110,32,115,99,114,105,112,116,32,100,111,101,115,32,110,111,116,32,116,114,97,110,115,109,105,116,32,97,108,108,32,100,97,116,97,0,73,110,118,97,108,105,100,32,99,111,108,111,114,32,113,117,97,110,116,105,122,97,116,105,111,110,32,109,111,100,101,32,99,104,97,110,103,101,0,78,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,82,101,113,117,101,115,116,101,100,32,102,101,97,116,117,114,101,32,119,97,115,32,111,109,105,116,116,101,100,32,97,116,32,99,111,109,112,105,108,101,32,116,105,109,101,0,66,97,99,107,105,110,103,32,115,116,111,114,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,72,117,102,102,109,97,110,32,116,97,98,108,101,32,48,120,37,48,50,120,32,119,97,115,32,110,111,116,32,100,101,102,105,110,101,100,0,74,80,69,71,32,100,97,116,97,115,116,114,101,97,109,32,99,111,110,116,97,105,110,115,32,110,111,32,105,109,97,103,101,0,81,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,32,48,120,37,48,50,120,32,119,97,115,32,110,111,116,32,100,101,102,105,110,101,100,0,78,111,116,32,97,32,74,80,69,71,32,102,105,108,101,58,32,115,116,97,114,116,115,32,119,105,116,104,32,48,120,37,48,50,120,32,48,120,37,48,50,120,0,73,110,115,117,102,102,105,99,105,101,110,116,32,109,101,109,111,114,121,32,40,99,97,115,101,32,37,100,41,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,109,111,114,101,32,116,104,97,110,32,37,100,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,116,111,32,102,101,119,101,114,32,116,104,97,110,32,37,100,32,99,111,108,111,114,115,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,116,111,32,109,111,114,101,32,116,104,97,110,32,37,100,32,99,111,108,111,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,116,119,111,32,83,79,70,32,109,97,114,107,101,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,109,105,115,115,105,110,103,32,83,79,83,32,109,97,114,107,101,114,0,85,110,115,117,112,112,111,114,116,101,100,32,74,80,69,71,32,112,114,111,99,101,115,115,58,32,83,79,70,32,116,121,112,101,32,48,120,37,48,50,120,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,116,119,111,32,83,79,73,32,109,97,114,107,101,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,83,79,83,32,98,101,102,111,114,101,32,83,79,70,0,70,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,82,101,97,100,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,0,83,101,101,107,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,0,87,114,105,116,101,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,45,45,45,32,111,117,116,32,111,102,32,100,105,115,107,32,115,112,97,99,101,63,0,65,112,112,108,105,99,97,116,105,111,110,32,116,114,97,110,115,102,101,114,114,101,100,32,116,111,111,32,102,101,119,32,115,99,97,110,108,105,110,101,115,0,85,110,115,117,112,112,111,114,116,101,100,32,109,97,114,107,101,114,32,116,121,112,101,32,48,120,37,48,50,120,0,86,105,114,116,117,97,108,32,97,114,114,97,121,32,99,111,110,116,114,111,108,108,101,114,32,109,101,115,115,101,100,32,117,112,0,73,109,97,103,101,32,116,111,111,32,119,105,100,101,32,102,111,114,32,116,104,105,115,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,0,82,101,97,100,32,102,114,111,109,32,88,77,83,32,102,97,105,108,101,100,0,87,114,105,116,101,32,116,111,32,88,77,83,32,102,97,105,108,101,100,0,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,56,44,32,84,104,111,109,97,115,32,71,46,32,76,97,110,101,0,54,98,32,32,50,55,45,77,97,114,45,49,57,57,56,0,67,97,117,116,105,111,110,58,32,113,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,115,32,97,114,101,32,116,111,111,32,99,111,97,114,115,101,32,102,111,114,32,98,97,115,101,108,105,110,101,32,74,80,69,71,0,65,100,111,98,101,32,65,80,80,49,52,32,109,97,114,107,101,114,58,32,118,101,114,115,105,111,110,32,37,100,44,32,102,108,97,103,115,32,48,120,37,48,52,120,32,48,120,37,48,52,120,44,32,116,114,97,110,115,102,111,114,109,32,37,100,0,85,110,107,110,111,119,110,32,65,80,80,48,32,109,97,114,107,101,114,32,40,110,111,116,32,74,70,73,70,41,44,32,108,101,110,103,116,104,32,37,117,0,85,110,107,110,111,119,110,32,65,80,80,49,52,32,109,97,114,107,101,114,32,40,110,111,116,32,65,100,111,98,101,41,44,32,108,101,110,103,116,104,32,37,117,0,68,101,102,105,110,101,32,65,114,105,116,104,109,101,116,105,99,32,84,97,98,108,101,32,48,120,37,48,50,120,58,32,48,120,37,48,50,120,0,68,101,102,105,110,101,32,72,117,102,102,109,97,110,32,84,97,98,108,101,32,48,120,37,48,50,120,0,68,101,102,105,110,101,32,81,117,97,110,116,105,122,97,116,105,111,110,32,84,97,98,108,101,32,37,100,32,32,112,114,101,99,105,115,105,111,110,32,37,100,0,68,101,102,105,110,101,32,82,101,115,116,97,114,116,32,73,110,116,101,114,118,97,108,32,37,117,0,70,114,101,101,100,32,69,77,83,32,104,97,110,100,108,101,32,37,117,0,79,98,116,97,105,110,101,100,32,69,77,83,32,104,97,110,100,108,101,32,37,117,0,69,110,100,32,79,102,32,73,109,97,103,101,0,32,32,32,32,32,32,32,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,0,74,70,73,70,32,65,80,80,48,32,109,97,114,107,101,114,58,32,118,101,114,115,105,111,110,32,37,100,46,37,48,50,100,44,32,100,101,110,115,105,116,121,32,37,100,120,37,100,32,32,37,100,0,87,97,114,110,105,110,103,58,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,100,97,116,97,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,116,121,112,101,32,48,120,37,48,50,120,44,32,108,101,110,103,116,104,32,37,117,0,32,32,32,32,119,105,116,104,32,37,100,32,120,32,37,100,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,0,77,105,115,99,101,108,108,97,110,101,111,117,115,32,109,97,114,107,101,114,32,48,120,37,48,50,120,44,32,108,101,110,103,116,104,32,37,117,0,85,110,101,120,112,101,99,116,101,100,32,109,97,114,107,101,114,32,48,120,37,48,50,120,0,32,32,32,32,32,32,32,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,0,81,117,97,110,116,105,122,105,110,103,32,116,111,32,37,100,32,61,32,37,100,42,37,100,42,37,100,32,99,111,108,111,114,115,0,81,117,97,110,116,105,122,105,110,103,32,116,111,32,37,100,32,99,111,108,111,114,115,0,83,101,108,101,99,116,101,100,32,37,100,32,99,111,108,111,114,115,32,102,111,114,32,113,117,97,110,116,105,122,97,116,105,111,110,0,65,116,32,109,97,114,107,101,114,32,48,120,37,48,50,120,44,32,114,101,99,111,118,101,114,121,32,97,99,116,105,111,110,32,37,100,0,82,83,84,37,100,0,83,109,111,111,116,104,105,110,103,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,119,105,116,104,32,110,111,110,115,116,97,110,100,97,114,100,32,115,97,109,112,108,105,110,103,32,114,97,116,105,111,115,0,83,116,97,114,116,32,79,102,32,70,114,97,109,101,32,48,120,37,48,50,120,58,32,119,105,100,116,104,61,37,117,44,32,104,101,105,103,104,116,61,37,117,44,32,99,111,109,112,111,110,101,110,116,115,61,37,100,0,32,32,32,32,67,111,109,112,111,110,101,110,116,32,37,100,58,32,37,100,104,120,37,100,118,32,113,61,37,100,0,83,116,97,114,116,32,111,102,32,73,109,97,103,101,0,83,116,97,114,116,32,79,102,32,83,99,97,110,58,32,37,100,32,99,111,109,112,111,110,101,110,116,115,0,32,32,32,32,67,111,109,112,111,110,101,110,116,32,37,100,58,32,100,99,61,37,100,32,97,99,61,37,100,0,32,32,83,115,61,37,100,44,32,83,101,61,37,100,44,32,65,104,61,37,100,44,32,65,108,61,37,100,0,67,108,111,115,101,100,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,79,112,101,110,101,100,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,74,80,69,71,45,99,111,109,112,114,101,115,115,101,100,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,112,97,108,101,116,116,101,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,82,71,66,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,85,110,114,101,99,111,103,110,105,122,101,100,32,99,111,109,112,111,110,101,110,116,32,73,68,115,32,37,100,32,37,100,32,37,100,44,32,97,115,115,117,109,105,110,103,32,89,67,98,67,114,0,70,114,101,101,100,32,88,77,83,32,104,97,110,100,108,101,32,37,117,0,79,98,116,97,105,110,101,100,32,88,77,83,32,104,97,110,100,108,101,32,37,117,0,85,110,107,110,111,119,110,32,65,100,111,98,101,32,99,111,108,111,114,32,116,114,97,110,115,102,111,114,109,32,99,111,100,101,32,37,100,0,73,110,99,111,110,115,105,115,116,101,110,116,32,112,114,111,103,114,101,115,115,105,111,110,32,115,101,113,117,101,110,99,101,32,102,111,114,32,99,111,109,112,111,110,101,110,116,32,37,100,32,99,111,101,102,102,105,99,105,101,110,116,32,37,100,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,37,117,32,101,120,116,114,97,110,101,111,117,115,32,98,121,116,101,115,32,98,101,102,111,114,101,32,109,97,114,107,101,114,32,48,120,37,48,50,120,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,112,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,100,97,116,97,32,115,101,103,109,101,110,116,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,98,97,100,32,72,117,102,102,109,97,110,32,99,111,100,101,0,87,97,114,110,105,110,103,58,32,117,110,107,110,111,119,110,32,74,70,73,70,32,114,101,118,105,115,105,111,110,32,110,117,109,98,101,114,32,37,100,46,37,48,50,100,0,80,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,74,80,69,71,32,102,105,108,101,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,102,111,117,110,100,32,109,97,114,107,101,114,32,48,120,37,48,50,120,32,105,110,115,116,101,97,100,32,111,102,32,82,83,84,37,100,0,73,110,118,97,108,105,100,32,83,79,83,32,112,97,114,97,109,101,116,101,114,115,32,102,111,114,32,115,101,113,117,101,110,116,105,97,108,32,74,80,69,71,0,65,112,112,108,105,99,97,116,105,111,110,32,116,114,97,110,115,102,101,114,114,101,100,32,116,111,111,32,109,97,110,121,32,115,99,97,110,108,105,110,101,115,0,0,192,48,240,12,204,60,252,3,195,51,243,15,207,63,255,128,64,176,112,140,76,188,124,131,67,179,115,143,79,191,127,32,224,16,208,44,236,28,220,35,227,19,211,47,239,31,223,160,96,144,80,172,108,156,92,163,99,147,83,175,111,159,95,8,200,56,248,4,196,52,244,11,203,59,251,7,199,55,247,136,72,184,120,132,68,180,116,139,75,187,123,135,71,183,119,40,232,24,216,36,228,20,212,43,235,27,219,39,231,23,215,168,104,152,88,164,100,148,84,171,107,155,91,167,103,151,87,2,194,50,242,14,206,62,254,1,193,49,241,13,205,61,253,130,66,178,114,142,78,190,126,129,65,177,113,141,77,189,125,34,226,18,210,46,238,30,222,33,225,17,209,45,237,29,221,162,98,146,82,174,110,158,94,161,97,145,81,173,109,157,93,10,202,58,250,6,198,54,246,9,201,57,249,5,197,53,245,138,74,186,122,134,70,182,118,137,73,185,121,133,69,181,117,42,234,26,218,38,230,22,214,41,233,25,217,37,229,21,213,170,106,154,90,166,102,150,86,169,105,153,89,165,101,149,85,37,115,10,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,48,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,105,100,58,32,48,44,32,101,114,114,111,114,58,32,45,49,44,32,102,111,117,110,100,58,32,48,44,32,112,111,115,101,58,32,91,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,102,111,117,110,100,34,93,32,61,32,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,51,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,52,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,53,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,54,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,55,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,56,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,57,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,49,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,48,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,105,100,58,32,48,44,32,101,114,114,111,114,58,32,45,49,44,32,102,111,117,110,100,58,32,48,44,32,112,111,115,101,58,32,91,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,34,93,32,61,32,45,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,102,111,117,110,100,34,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,48,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,50,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,51,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,52,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,53,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,54,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,55,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,56,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,57,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,48,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,49,93,32,61,32,48,59,32,125,0,82,101,97,100,105,110,103,32,37,115,46,102,115,101,116,51,10,0,102,115,101,116,51,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,75,80,77,32,100,97,116,97,32,102,114,111,109,32,37,115,46,102,115,101,116,51,10,0,32,32,65,115,115,105,103,110,101,100,32,112,97,103,101,32,110,111,46,32,37,100,46,10,0,69,114,114,111,114,58,32,107,112,109,67,104,97,110,103,101,80,97,103,101,78,111,79,102,82,101,102,68,97,116,97,83,101,116,10,0,69,114,114,111,114,58,32,107,112,109,77,101,114,103,101,82,101,102,68,97,116,97,83,101,116,10,0,32,32,68,111,110,101,46,10,0,82,101,97,100,105,110,103,32,37,115,46,102,115,101,116,10,0,102,115,101,116,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,100,97,116,97,32,102,114,111,109,32,37,115,46,102,115,101,116,10,0,69,114,114,111,114,58,32,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,10,0,76,111,97,100,105,110,103,32,111,102,32,78,70,84,32,100,97,116,97,32,99,111,109,112,108,101,116,101,46,10,0,108,111,97,100,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,32,37,115,32,102,111,114,32,99,97,109,101,114,97,46,10,0,42,42,42,32,67,97,109,101,114,97,32,80,97,114,97,109,101,116,101,114,32,114,101,115,105,122,101,100,32,102,114,111,109,32,37,100,44,32,37,100,46,32,42,42,42,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,114,97,109,76,84,67,114,101,97,116,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,99,114,101,97,116,105,110,103,32,51,68,32,104,97,110,100,108,101,0,108,111,97,100,77,97,114,107,101,114,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,37,115,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,97,114,107,101,114,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,78,70,84,32,109,97,114,107,101,114,46,10,0,99,111,110,102,105,103,32,100,97,116,97,32,108,111,97,100,32,101,114,114,111,114,32,33,33,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,117,108,116,105,109,97,114,107,101,114,46,10,0,80,97,116,116,101,114,110,32,100,101,116,101,99,116,105,111,110,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,80,97,116,116,101,114,110,32,114,97,116,105,111,32,115,105,122,101,32,115,101,116,32,116,111,32,37,102,46,10,0,76,97,98,101,108,105,110,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,111,110,46,0,111,102,102,46,0,68,101,98,117,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,10,0,73,109,97,103,101,32,112,114,111,99,46,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,118,105,115,105,98,108,101,39,93,32,61,32,36,48,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,73,100,39,93,32,61,32,36,49,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,84,121,112,101,39,93,32,61,32,36,50,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,119,105,100,116,104,39,93,32,61,32,36,51,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,49,50,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,112,111,115,58,32,91,48,44,48,93,44,32,108,105,110,101,58,32,91,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,93,44,32,118,101,114,116,101,120,58,32,91,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,97,114,101,97,34,93,32,61,32,36,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,80,97,116,116,34,93,32,61,32,36,50,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,77,97,116,114,105,120,34,93,32,61,32,36,51,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,34,93,32,61,32,36,52,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,80,97,116,116,34,93,32,61,32,36,53,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,77,97,116,114,105,120,34,93,32,61,32,36,54,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,34,93,32,61,32,36,55,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,80,97,116,116,34,93,32,61,32,36,56,59,32,109,97,114,107], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+32032); +/* memory initializer */ allocate([101,114,73,110,102,111,91,34,99,102,77,97,116,114,105,120,34,93,32,61,32,36,57,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,48,93,32,61,32,36,49,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,49,93,32,61,32,36,49,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,67,111,114,114,101,99,116,101,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,115,101,116,117,112,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,116,116,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,65,108,108,111,99,97,116,101,100,32,118,105,100,101,111,70,114,97,109,101,83,105,122,101,32,37,100,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,102,114,97,109,101,77,97,108,108,111,99,32,61,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,112,111,105,110,116,101,114,34,93,32,61,32,36,49,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,115,105,122,101,34,93,32,61,32,36,50,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,99,97,109,101,114,97,34,93,32,61,32,36,51,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,116,114,97,110,115,102,111,114,109,34,93,32,61,32,36,52,59,32,125,0,115,101,116,117,112,0,116,101,97,114,100,111,119,110,0,115,101,116,117,112,65,82,50,0,95,97,100,100,77,97,114,107,101,114,0,95,97,100,100,77,117,108,116,105,77,97,114,107,101,114,0,95,97,100,100,78,70,84,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,67,111,117,110,116,0,95,108,111,97,100,67,97,109,101,114,97,0,115,101,116,77,97,114,107,101,114,73,110,102,111,68,105,114,0,115,101,116,77,97,114,107,101,114,73,110,102,111,86,101,114,116,101,120,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,67,111,110,116,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,82,111,98,117,115,116,0,100,101,116,101,99,116,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,78,117,109,0,100,101,116,101,99,116,78,70,84,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,69,97,99,104,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,0,103,101,116,78,70,84,77,97,114,107,101,114,0,115,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,80,114,111,99,101,115,115,105,110,103,73,109,97,103,101,0,115,101,116,76,111,103,76,101,118,101,108,0,103,101,116,76,111,103,76,101,118,101,108,0,115,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,115,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,115,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,103,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,115,101,116,84,104,114,101,115,104,111,108,100,0,103,101,116,84,104,114,101,115,104,111,108,100,0,115,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,103,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,115,101,116,80,97,116,116,82,97,116,105,111,0,103,101,116,80,97,116,116,82,97,116,105,111,0,115,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,103,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,115,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,103,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,115,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,103,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,69,82,82,79,82,95,65,82,67,79,78,84,82,79,76,76,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,85,76,84,73,77,65,82,75,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,65,82,75,69,82,95,73,78,68,69,88,95,79,85,84,95,79,70,95,66,79,85,78,68,83,0,65,82,95,68,69,66,85,71,95,68,73,83,65,66,76,69,0,65,82,95,68,69,66,85,71,95,69,78,65,66,76,69,0,65,82,95,68,69,70,65,85,76,84,95,68,69,66,85,71,95,77,79,68,69,0,65,82,95,76,65,66,69,76,73,78,71,95,87,72,73,84,69,95,82,69,71,73,79,78,0,65,82,95,76,65,66,69,76,73,78,71,95,66,76,65,67,75,95,82,69,71,73,79,78,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,77,79,68,69,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,82,65,77,69,95,73,77,65,71,69,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,73,69,76,68,95,73,77,65,71,69,0,65,82,95,68,69,70,65,85,76,84,95,73,77,65,71,69,95,80,82,79,67,95,77,79,68,69,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,68,69,84,69,67,84,73,79,78,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,68,69,70,65,85,76,84,95,80,65,84,84,69,82,78,95,68,69,84,69,67,84,73,79,78,95,77,79,68,69,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,78,79,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,95,86,50,0,65,82,95,68,69,70,65,85,76,84,95,77,65,82,75,69,82,95,69,88,84,82,65,67,84,73,79,78,95,77,79,68,69,0,65,82,95,77,65,88,95,76,79,79,80,95,67,79,85,78,84,0,65,82,95,76,79,79,80,95,66,82,69,65,75,95,84,72,82,69,83,72,0,65,82,95,76,79,71,95,76,69,86,69,76,95,68,69,66,85,71,0,65,82,95,76,79,71,95,76,69,86,69,76,95,73,78,70,79,0,65,82,95,76,79,71,95,76,69,86,69,76,95,87,65,82,78,0,65,82,95,76,79,71,95,76,69,86,69,76,95,69,82,82,79,82,0,65,82,95,76,79,71,95,76,69,86,69,76,95,82,69,76,95,73,78,70,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,72,65,77,77,73,78,71,54,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,80,65,82,73,84,89,54,53,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,57,95,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,53,95,53,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,77,65,78,85,65,76,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,77,69,68,73,65,78,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,79,84,83,85,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,65,68,65,80,84,73,86,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,78,79,78,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,65,84,84,69,82,78,95,69,88,84,82,65,67,84,73,79,78,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,71,69,78,69,82,73,67,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,84,82,65,83,84,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,78,79,84,95,70,79,85,78,68,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,69,68,67,95,70,65,73,76,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,70,73,68,69,78,67,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,95,77,85,76,84,73,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,72,69,85,82,73,83,84,73,67,95,84,82,79,85,66,76,69,83,79,77,69,95,77,65,84,82,73,88,95,67,79,68,69,83,0,118,105,105,102,0,118,105,105,105,0,100,105,105,0,118,105,105,100,0,105,105,0,118,105,105,0,105,105,105,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,105,105,105,105,0,105,105,105,105,105,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,115,116,100,58,58,119,115,116,114,105,110,103,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,32,40,0,41,0,95,98,108,111,99,107,95,105,110,118,111,107,101,0,105,110,118,111,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,32,102,111,114,32,98,108,111,99,107,32,105,110,32,0,32,99,111,110,115,116,0,32,118,111,108,97,116,105,108,101,0,32,114,101,115,116,114,105,99,116,0,32,91,0,32,91,93,0,93,0,32,99,111,109,112,108,101,120,0,40,0,44,32,0,32,38,0,32,38,38,0,32,0,32,105,109,97,103,105,110,97,114,121,0,58,58,42,0,38,38,0,111,98,106,99,95,111,98,106,101,99,116,60,0,42,0,105,100,0,38,0,111,98,106,99,112,114,111,116,111,0,60,0,62,0,32,118,101,99,116,111,114,91,0,112,105,120,101,108,32,118,101,99,116,111,114,91,0,100,101,99,108,116,121,112,101,40,0,115,116,100,58,58,97,108,108,111,99,97,116,111,114,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,105,115,116,114,101,97,109,0,115,116,100,58,58,111,115,116,114,101,97,109,0,115,116,100,58,58,105,111,115,116,114,101,97,109,0,115,116,100,0,58,58,0,58,58,115,116,114,105,110,103,32,108,105,116,101,114,97,108,0,115,116,100,58,58,0,126,0,39,117,110,110,97,109,101,100,0,39,108,97,109,98,100,97,39,40,0,111,112,101,114,97,116,111,114,38,38,0,111,112,101,114,97,116,111,114,38,0,111,112,101,114,97,116,111,114,38,61,0,111,112,101,114,97,116,111,114,61,0,111,112,101,114,97,116,111,114,40,41,0,111,112,101,114,97,116,111,114,44,0,111,112,101,114,97,116,111,114,126,0,111,112,101,114,97,116,111,114,32,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,91,93,0,111,112,101,114,97,116,111,114,42,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,0,111,112,101,114,97,116,111,114,47,0,111,112,101,114,97,116,111,114,47,61,0,111,112,101,114,97,116,111,114,94,0,111,112,101,114,97,116,111,114,94,61,0,111,112,101,114,97,116,111,114,61,61,0,111,112,101,114,97,116,111,114,62,61,0,111,112,101,114,97,116,111,114,62,0,111,112,101,114,97,116,111,114,91,93,0,111,112,101,114,97,116,111,114,60,61,0,111,112,101,114,97,116,111,114,34,34,32,0,111,112,101,114,97,116,111,114,60,60,0,111,112,101,114,97,116,111,114,60,60,61,0,111,112,101,114,97,116,111,114,60,0,111,112,101,114,97,116,111,114,45,0,111,112,101,114,97,116,111,114,45,61,0,111,112,101,114,97,116,111,114,42,61,0,111,112,101,114,97,116,111,114,45,45,0,111,112,101,114,97,116,111,114,32,110,101,119,91,93,0,111,112,101,114,97,116,111,114,33,61,0,111,112,101,114,97,116,111,114,33,0,111,112,101,114,97,116,111,114,32,110,101,119,0,111,112,101,114,97,116,111,114,124,124,0,111,112,101,114,97,116,111,114,124,0,111,112,101,114,97,116,111,114,124,61,0,111,112,101,114,97,116,111,114,45,62,42,0,111,112,101,114,97,116,111,114,43,0,111,112,101,114,97,116,111,114,43,61,0,111,112,101,114,97,116,111,114,43,43,0,111,112,101,114,97,116,111,114,45,62,0,111,112,101,114,97,116,111,114,63,0,111,112,101,114,97,116,111,114,37,0,111,112,101,114,97,116,111,114,37,61,0,111,112,101,114,97,116,111,114,62,62,0,111,112,101,114,97,116,111,114,62,62,61,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,44,32,115,116,100,58,58,97,108,108,111,99,97,116,111,114,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,105,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,105,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,111,115,116,114,101,97,109,0,95,71,76,79,66,65,76,95,95,78,0,40,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,41,0,32,62,0,119,99,104,97,114,95,116,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,117,0,117,108,0,117,108,108,0,95,95,105,110,116,49,50,56,0,117,110,115,105,103,110,101,100,32,95,95,105,110,116,49,50,56,0,37,97,102,0,37,97,0,37,76,97,76,0,38,61,0,61,0,97,108,105,103,110,111,102,32,40,0,99,111,110,115,116,95,99,97,115,116,60,0,62,40,0,44,0,41,40,0,100,101,108,101,116,101,91,93,32,0,100,121,110,97,109,105,99,95,99,97,115,116,60,0,100,101,108,101,116,101,32,0,46,42,0,47,0,47,61,0,94,0,94,61,0,61,61,0,62,61,0,41,91,0,60,61,0,60,60,0,60,60,61,0,45,0,45,61,0,42,61,0,45,45,0,41,45,45,0,91,93,32,0,41,32,0,33,61,0,33,0,110,111,101,120,99,101,112,116,32,40,0,124,124,0,124,0,124,61,0,45,62,42,0,43,0,43,61,0,43,43,0,41,43,43,0,45,62,0,41,32,63,32,40,0,41,32,58,32,40,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,0,37,0,37,61,0,62,62,0,62,62,61,0,115,116,97,116,105,99,95,99,97,115,116,60,0,115,105,122,101,111,102,32,40,0,115,105,122,101,111,102,46,46,46,40,0,116,121,112,101,105,100,40,0,116,104,114,111,119,0,116,104,114,111,119,32,0,102,112,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,111,117,116,95,111,102,95,114,97,110,103,101,34,0,95,95,116,104,114,111,119,95,111,117,116,95,111,102,95,114,97,110,103,101,0,118,111,105,100,0,98,111,111,108,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,108,111,110,103,32,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,108,111,110,103,32,100,111,117,98,108,101,0,95,95,102,108,111,97,116,49,50,56,0,46,46,46,0,100,101,99,105,109,97,108,54,52,0,100,101,99,105,109,97,108,49,50,56,0,100,101,99,105,109,97,108,51,50,0,100,101,99,105,109,97,108,49,54,0,99,104,97,114,51,50,95,116,0,99,104,97,114,49,54,95,116,0,97,117,116,111,0,115,116,100,58,58,110,117,108,108,112,116,114,95,116,0,118,116,97,98,108,101,32,102,111,114,32,0,86,84,84,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,110,97,109,101,32,102,111,114,32,0,99,111,118,97,114,105,97,110,116,32,114,101,116,117,114,110,32,116,104,117,110,107,32,116,111,32,0,99,111,110,115,116,114,117,99,116,105,111,110,32,118,116,97,98,108,101,32,102,111,114,32,0,45,105,110,45,0,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,110,111,110,45,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,103,117,97,114,100,32,118,97,114,105,97,98,108,101,32,102,111,114,32,0,114,101,102,101,114,101,110,99,101,32,116,101,109,112,111,114,97,114,121,32,102,111,114,32,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88,0,114,119,97,0,119,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,116,109,112,0,47,116,109,112,47,116,37,120,45,37,120], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+42272); +/* memory initializer */ allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,57,95,95,115,104,97,114,101,100,95,119,101,97,107,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+54170); @@ -1717,11 +1731,121 @@ function copyTempDouble(ptr) { Module["_i64Subtract"] = _i64Subtract; - function ___assert_fail(condition, filename, line, func) { - ABORT = true; - throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + var _fabsf=Math_abs; + + + Module["_i64Add"] = _i64Add; + + + function __ZSt18uncaught_exceptionv() { // std::uncaught_exception() + return !!__ZSt18uncaught_exceptionv.uncaught_exception; + } + + + + var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) { + if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; + for (var ptr in EXCEPTIONS.infos) { + var info = EXCEPTIONS.infos[ptr]; + if (info.adjusted === adjusted) { + return ptr; + } + } + return adjusted; + },addRef:function (ptr) { + if (!ptr) return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount++; + },decRef:function (ptr) { + if (!ptr) return; + var info = EXCEPTIONS.infos[ptr]; + assert(info.refcount > 0); + info.refcount--; + if (info.refcount === 0) { + if (info.destructor) { + Runtime.dynCall('vi', info.destructor, [ptr]); + } + delete EXCEPTIONS.infos[ptr]; + ___cxa_free_exception(ptr); + } + },clearRef:function (ptr) { + if (!ptr) return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount = 0; + }}; + function ___resumeException(ptr) { + if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } + EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); // exception refcount should be cleared, but don't free it + throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; + }function ___cxa_find_matching_catch() { + var thrown = EXCEPTIONS.last; + if (!thrown) { + // just pass through the null ptr + return ((asm["setTempRet0"](0),0)|0); + } + var info = EXCEPTIONS.infos[thrown]; + var throwntype = info.type; + if (!throwntype) { + // just pass through the thrown ptr + return ((asm["setTempRet0"](0),thrown)|0); + } + var typeArray = Array.prototype.slice.call(arguments); + + var pointer = Module['___cxa_is_pointer_type'](throwntype); + // can_catch receives a **, add indirection + if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); + HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown; + thrown = ___cxa_find_matching_catch.buffer; + // The different catch blocks are denoted by different types. + // Due to inheritance, those types may not precisely match the + // type of the thrown object. Find one which matches, and + // return the type of the catch block which should be called. + for (var i = 0; i < typeArray.length; i++) { + if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) { + thrown = HEAP32[((thrown)>>2)]; // undo indirection + info.adjusted = thrown; + return ((asm["setTempRet0"](typeArray[i]),thrown)|0); + } + } + // Shouldn't happen unless we have bogus data in typeArray + // or encounter a type for which emscripten doesn't have suitable + // typeinfo defined. Best-efforts match just in case. + thrown = HEAP32[((thrown)>>2)]; // undo indirection + return ((asm["setTempRet0"](throwntype),thrown)|0); + }function ___cxa_throw(ptr, type, destructor) { + EXCEPTIONS.infos[ptr] = { + ptr: ptr, + adjusted: ptr, + type: type, + destructor: destructor, + refcount: 0 + }; + EXCEPTIONS.last = ptr; + if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { + __ZSt18uncaught_exceptionv.uncaught_exception = 1; + } else { + __ZSt18uncaught_exceptionv.uncaught_exception++; + } + throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; } + function _pthread_mutex_lock() {} + + + function _free() { + } + Module["_free"] = _free; + + function _malloc(bytes) { + /* Over-allocate to make sure it is byte-aligned by 8. + * This will leak memory, but this is only the dummy + * implementation (replaced by dlmalloc normally) so + * not an issue. + */ + var ptr = Runtime.dynamicAlloc(bytes + 8); + return (ptr+8) & 0xFFFFFFF8; + } + Module["_malloc"] = _malloc; @@ -1872,185 +1996,7 @@ function copyTempDouble(ptr) { cb(); }); } - }function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - isVoid: true, // void return values can be optimized out sometimes - name: name, - 'argPackAdvance': 0, - 'fromWireType': function() { - return undefined; - }, - 'toWireType': function(destructors, o) { - // TODO: assert if anything else is given? - return undefined; - }, - }); - } - - - function __ZSt18uncaught_exceptionv() { // std::uncaught_exception() - return !!__ZSt18uncaught_exceptionv.uncaught_exception; - } - - - - var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) { - if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; - for (var ptr in EXCEPTIONS.infos) { - var info = EXCEPTIONS.infos[ptr]; - if (info.adjusted === adjusted) { - return ptr; - } - } - return adjusted; - },addRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount++; - },decRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - assert(info.refcount > 0); - info.refcount--; - if (info.refcount === 0) { - if (info.destructor) { - Runtime.dynCall('vi', info.destructor, [ptr]); - } - delete EXCEPTIONS.infos[ptr]; - ___cxa_free_exception(ptr); - } - },clearRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount = 0; - }}; - function ___resumeException(ptr) { - if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } - EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); // exception refcount should be cleared, but don't free it - throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; - }function ___cxa_find_matching_catch() { - var thrown = EXCEPTIONS.last; - if (!thrown) { - // just pass through the null ptr - return ((asm["setTempRet0"](0),0)|0); - } - var info = EXCEPTIONS.infos[thrown]; - var throwntype = info.type; - if (!throwntype) { - // just pass through the thrown ptr - return ((asm["setTempRet0"](0),thrown)|0); - } - var typeArray = Array.prototype.slice.call(arguments); - - var pointer = Module['___cxa_is_pointer_type'](throwntype); - // can_catch receives a **, add indirection - if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); - HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown; - thrown = ___cxa_find_matching_catch.buffer; - // The different catch blocks are denoted by different types. - // Due to inheritance, those types may not precisely match the - // type of the thrown object. Find one which matches, and - // return the type of the catch block which should be called. - for (var i = 0; i < typeArray.length; i++) { - if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) { - thrown = HEAP32[((thrown)>>2)]; // undo indirection - info.adjusted = thrown; - return ((asm["setTempRet0"](typeArray[i]),thrown)|0); - } - } - // Shouldn't happen unless we have bogus data in typeArray - // or encounter a type for which emscripten doesn't have suitable - // typeinfo defined. Best-efforts match just in case. - thrown = HEAP32[((thrown)>>2)]; // undo indirection - return ((asm["setTempRet0"](throwntype),thrown)|0); - }function ___cxa_throw(ptr, type, destructor) { - EXCEPTIONS.infos[ptr] = { - ptr: ptr, - adjusted: ptr, - type: type, - destructor: destructor, - refcount: 0 - }; - EXCEPTIONS.last = ptr; - if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { - __ZSt18uncaught_exceptionv.uncaught_exception = 1; - } else { - __ZSt18uncaught_exceptionv.uncaught_exception++; - } - throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; - } - - - Module["_memset"] = _memset; - - var _BDtoILow=true; - - - function getShiftFromSize(size) { - switch (size) { - case 1: return 0; - case 2: return 1; - case 4: return 2; - case 8: return 3; - default: - throw new TypeError('Unknown type size: ' + size); - } - }function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(wt) { - // ambiguous emscripten ABI: sometimes return values are - // true or false, and sometimes integers (0 or 1) - return !!wt; - }, - 'toWireType': function(destructors, o) { - return o ? trueValue : falseValue; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': function(pointer) { - // TODO: if heap is fixed (like in asm.js) this could be executed outside - var heap; - if (size === 1) { - heap = HEAP8; - } else if (size === 2) { - heap = HEAP16; - } else if (size === 4) { - heap = HEAP32; - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this['fromWireType'](heap[pointer >> shift]); - }, - destructorFunction: null, // This type does not need a destructor - }); - } - - - Module["_bitshift64Shl"] = _bitshift64Shl; - - function _abort() { - Module['abort'](); - } - - - function _free() { - } - Module["_free"] = _free; - - function _malloc(bytes) { - /* Over-allocate to make sure it is byte-aligned by 8. - * This will leak memory, but this is only the dummy - * implementation (replaced by dlmalloc normally) so - * not an issue. - */ - var ptr = Runtime.dynamicAlloc(bytes + 8); - return (ptr+8) & 0xFFFFFFF8; } - Module["_malloc"] = _malloc; function simpleReadValueFromPointer(pointer) { return this['fromWireType'](HEAPU32[pointer >> 2]); @@ -2157,162 +2103,48 @@ function copyTempDouble(ptr) { }); } - function ___lock() {} - - function ___unlock() {} - - var _emscripten_asm_const_int=true; + var _emscripten_check_longjmp=true; - - Module["_i64Add"] = _i64Add; + + function _realloc() { throw 'bad' } + Module["_realloc"] = _realloc; + Module["_saveSetjmp"] = _saveSetjmp; - var _fabs=Math_abs; + var _floorf=Math_floor; - var _sqrt=Math_sqrt; + var _emscripten_postinvoke=true; - function _embind_repr(v) { - if (v === null) { - return 'null'; - } - var t = typeof v; - if (t === 'object' || t === 'array' || t === 'function') { - return v.toString(); - } else { - return '' + v; - } - } - - function integerReadValueFromPointer(name, shift, signed) { - // integers are quite common, so generate very specialized functions - switch (shift) { - case 0: return signed ? - function readS8FromPointer(pointer) { return HEAP8[pointer]; } : - function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; - case 1: return signed ? - function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : - function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; - case 2: return signed ? - function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : - function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; - default: - throw new TypeError("Unknown integer type: " + name); - } - }function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32. - maxRange = 4294967295; - } + var PTHREAD_SPECIFIC={}; - var shift = getShiftFromSize(size); - - var fromWireType = function(value) { - return value; - }; - - if (minRange === 0) { - var bitshift = 32 - 8*size; - fromWireType = function(value) { - return (value << bitshift) >>> bitshift; - }; - } + var PTHREAD_SPECIFIC_NEXT_KEY=1; - registerType(primitiveType, { - name: name, - 'fromWireType': fromWireType, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following two if()s and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - if (value < minRange || value > maxRange) { - throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!'); - } - return value | 0; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), - destructorFunction: null, // This type does not need a destructor - }); + var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key, destructor) { + if (key == 0) { + return ERRNO_CODES.EINVAL; + } + HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY; + // values start at 0 + PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; + PTHREAD_SPECIFIC_NEXT_KEY++; + return 0; } + var _llvm_pow_f32=Math_pow; + - - var emval_free_list=[]; - - var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) { - if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { - emval_handle_array[handle] = undefined; - emval_free_list.push(handle); - } - } - - - - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - ++count; - } - } - return count; + function __exit(status) { + // void _exit(int status); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html + Module['exit'](status); + }function _exit(status) { + __exit(status); } + - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - return emval_handle_array[i]; - } - } - return null; - }function init_emval() { - Module['count_emval_handles'] = count_emval_handles; - Module['get_first_emval'] = get_first_emval; - }function __emval_register(value) { - - switch(value){ - case undefined :{ return 1; } - case null :{ return 2; } - case true :{ return 3; } - case false :{ return 4; } - default:{ - var handle = emval_free_list.length ? - emval_free_list.pop() : - emval_handle_array.length; - emval_handle_array[handle] = {refcount: 1, value: value}; - return handle; - } - } - }function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(handle) { - var rv = emval_handle_array[handle].value; - __emval_decref(handle); - return rv; - }, - 'toWireType': function(destructors, value) { - return __emval_register(value); - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: null, // This type does not need a destructor - // TODO: do we need a deleteObject here? write a test where - // emval is passed into JS via an interface - }); - } - - function ___cxa_allocate_exception(size) { - return _malloc(size); - } - - var _sin=Math_sin; - + var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; function ___setErrNo(value) { if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; @@ -2320,517 +2152,6 @@ function copyTempDouble(ptr) { return value; } - var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name) { - // long sysconf(int name); - // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html - switch(name) { - case 30: return PAGE_SIZE; - case 85: return totalMemory / PAGE_SIZE; - case 132: - case 133: - case 12: - case 137: - case 138: - case 15: - case 235: - case 16: - case 17: - case 18: - case 19: - case 20: - case 149: - case 13: - case 10: - case 236: - case 153: - case 9: - case 21: - case 22: - case 159: - case 154: - case 14: - case 77: - case 78: - case 139: - case 80: - case 81: - case 82: - case 68: - case 67: - case 164: - case 11: - case 29: - case 47: - case 48: - case 95: - case 52: - case 51: - case 46: - return 200809; - case 79: - return 0; - case 27: - case 246: - case 127: - case 128: - case 23: - case 24: - case 160: - case 161: - case 181: - case 182: - case 242: - case 183: - case 184: - case 243: - case 244: - case 245: - case 165: - case 178: - case 179: - case 49: - case 50: - case 168: - case 169: - case 175: - case 170: - case 171: - case 172: - case 97: - case 76: - case 32: - case 173: - case 35: - return -1; - case 176: - case 177: - case 7: - case 155: - case 8: - case 157: - case 125: - case 126: - case 92: - case 93: - case 129: - case 130: - case 131: - case 94: - case 91: - return 1; - case 74: - case 60: - case 69: - case 70: - case 4: - return 1024; - case 31: - case 42: - case 72: - return 32; - case 87: - case 26: - case 33: - return 2147483647; - case 34: - case 1: - return 47839; - case 38: - case 36: - return 99; - case 43: - case 37: - return 2048; - case 0: return 2097152; - case 3: return 65536; - case 28: return 32768; - case 44: return 32767; - case 75: return 16384; - case 39: return 1000; - case 89: return 700; - case 71: return 256; - case 40: return 255; - case 2: return 100; - case 180: return 64; - case 25: return 20; - case 5: return 16; - case 6: return 6; - case 73: return 4; - case 84: { - if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1; - return 1; - } - } - ___setErrNo(ERRNO_CODES.EINVAL); - return -1; - } - - - Module["_bitshift64Lshr"] = _bitshift64Lshr; - - - function __exit(status) { - // void _exit(int status); - // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html - Module['exit'](status); - }function _exit(status) { - __exit(status); - } - - var _llvm_ctlz_i32=true; - - - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: return function(pointer) { - return this['fromWireType'](HEAPF32[pointer >> 2]); - }; - case 3: return function(pointer) { - return this['fromWireType'](HEAPF64[pointer >> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - }function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - return value; - }, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following if() and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - return value; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': floatReadValueFromPointer(name, shift), - destructorFunction: null, // This type does not need a destructor - }); - } - - var _BDtoIHigh=true; - - function _pthread_cleanup_push(routine, arg) { - __ATEXIT__.push(function() { Runtime.dynCall('vi', routine, [arg]) }) - _pthread_cleanup_push.level = __ATEXIT__.length; - } - - - - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function"); - } - - /* - * Previously, the following line was just: - - function dummy() {}; - - * Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the - * correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which - * isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way - * to write a test for this behavior. -NRD 2013.02.22 - */ - var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){}); - dummy.prototype = constructor.prototype; - var obj = new dummy; - - var r = constructor.apply(obj, argumentList); - return (r instanceof Object) ? r : obj; - } - - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - }function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - // humanName: a human-readable string name for the function to be generated. - // argTypes: An array that contains the embind type objects for all types in the function signature. - // argTypes[0] is the type object for the function return value. - // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. - // argTypes[2...] are the actual function parameters. - // classType: The embind type object for the class to be bound, or null if this is not a method of a class. - // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. - // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. - var argCount = argTypes.length; - - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - - var isClassMethodFunc = (argTypes[1] !== null && classType !== null); - - // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. - // TODO: This omits argument count check - enable only at -O3 or similar. - // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { - // return FUNCTION_TABLE[fn]; - // } - - var argsList = ""; - var argsListWired = ""; - for(var i = 0; i < argCount - 2; ++i) { - argsList += (i!==0?", ":"")+"arg"+i; - argsListWired += (i!==0?", ":"")+"arg"+i+"Wired"; - } - - var invokerFnBody = - "return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" + - "if (arguments.length !== "+(argCount - 2)+") {\n" + - "throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" + - "}\n"; - - - // Determine if we need to use a dynamic stack to store the destructors for the function parameters. - // TODO: Remove this completely once all function invokers are being dynamically generated. - var needsDestructorStack = false; - - for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. - if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack - needsDestructorStack = true; - break; - } - } - - if (needsDestructorStack) { - invokerFnBody += - "var destructors = [];\n"; - } - - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - - - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n"; - } - - for(var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n"; - args1.push("argType"+i); - args2.push(argTypes[i+2]); - } - - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - - var returns = (argTypes[0].name !== "void"); - - invokerFnBody += - (returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n"; - - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method. - var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired")); - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n"; - args1.push(paramName+"_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\n" + - "return ret;\n"; - } else { - } - invokerFnBody += "}\n"; - - args1.push(invokerFnBody); - - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - } - - - function ensureOverloadTable(proto, methodName, humanName) { - if (undefined === proto[methodName].overloadTable) { - var prevFunc = proto[methodName]; - // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. - proto[methodName] = function() { - // TODO This check can be removed in -O3 level "unsafe" optimizations. - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - // Move the previous function into the overload table. - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - }function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - - // We are exposing a function with the same name as an existing function. Create an overload table and a function selector - // that routes between the two. - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - // Add the new function into the overload table. - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - if (undefined !== numArguments) { - Module[name].numArguments = numArguments; - } - } - } - - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(HEAP32[(firstElement >> 2) + i]); - } - return array; - } - - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError('Replacing nonexistant public symbol'); - } - // If there's an overload table for this symbol, replace the symbol in the overload table instead. - if (undefined !== Module[name].overloadTable && undefined !== numArguments) { - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - } - } - - function requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - - function makeDynCaller(dynCall) { - var args = []; - for (var i = 1; i < signature.length; ++i) { - args.push('a' + i); - } - - var name = 'dynCall_' + signature + '_' + rawFunction; - var body = 'return function ' + name + '(' + args.join(', ') + ') {\n'; - body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n'; - body += '};\n'; - - return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction); - } - - var fp; - if (Module['FUNCTION_TABLE_' + signature] !== undefined) { - fp = Module['FUNCTION_TABLE_' + signature][rawFunction]; - } else if (typeof FUNCTION_TABLE !== "undefined") { - fp = FUNCTION_TABLE[rawFunction]; - } else { - // asm.js does not give direct access to the function tables, - // and thus we must go through the dynCall interface which allows - // calling into a signature's function table by pointer value. - // - // https://github.com/dherman/asm.js/issues/83 - // - // This has three main penalties: - // - dynCall is another function call in the path from JavaScript to C++. - // - JITs may not predict through the function table indirection at runtime. - var dc = asm['dynCall_' + signature]; - if (dc === undefined) { - // We will always enter this branch if the signature - // contains 'f' and PRECISE_F32 is not enabled. - // - // Try again, replacing 'f' with 'd'. - dc = asm['dynCall_' + signature.replace(/f/g, 'd')]; - if (dc === undefined) { - throwBindingError("No dynCall invoker for signature: " + signature); - } - } - fp = makeDynCaller(dc); - } - - if (typeof fp !== "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - - - var UnboundTypeError=undefined; - - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - }function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - - throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', '])); - }function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { - var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - name = readLatin1String(name); - - rawInvoker = requireFunction(signature, rawInvoker); - - exposePublicSymbol(name, function() { - throwUnboundTypeError('Cannot call ' + name + ' due to unbound types', argTypes); - }, argCount - 1); - - whenDependentTypesAreResolved([], argTypes, function(argTypes) { - var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn), argCount - 1); - return []; - }); - } - - function __embind_register_constant(name, type, value) { - name = readLatin1String(name); - whenDependentTypesAreResolved([], [type], function(type) { - type = type[0]; - Module[name] = type['fromWireType'](value); - return []; - }); - } - - function _pthread_cleanup_pop() { - assert(_pthread_cleanup_push.level == __ATEXIT__.length, 'cannot pop if something else added meanwhile!'); - __ATEXIT__.pop(); - _pthread_cleanup_push.level = __ATEXIT__.length; - } - - - - - var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; - var PATH={splitPath:function (filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); @@ -5802,12 +5123,35 @@ function copyTempDouble(ptr) { return low; },getZero:function () { assert(SYSCALLS.get() === 0); - }};function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + }};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; try { - // open - var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO - var stream = FS.open(pathname, flags, mode); - return stream.fd; + // ioctl + var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); + switch (op) { + case 21505: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; + } + case 21506: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + var argp = SYSCALLS.get(); + HEAP32[((argp)>>2)]=0; + return 0; + } + case 21520: { + if (!stream.tty) return -ERRNO_CODES.ENOTTY; + return -ERRNO_CODES.EINVAL; // not supported + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + default: abort('bad ioctl syscall ' + op); + } } catch (e) { if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; @@ -5815,25 +5159,681 @@ function copyTempDouble(ptr) { } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - Module["_memcpy"] = _memcpy; + var ___tm_current=allocate(44, "i8", ALLOC_STATIC); + + + var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC); + + + var _tzname=allocate(8, "i32*", ALLOC_STATIC); + + var _daylight=allocate(1, "i32*", ALLOC_STATIC); + + var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() { + // TODO: Use (malleable) environment variables instead of system settings. + if (_tzset.called) return; + _tzset.called = true; + + HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60; + + var winter = new Date(2000, 0, 1); + var summer = new Date(2000, 6, 1); + HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset()); + + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + }; + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL); + var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL); + if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) { + // Northern hemisphere + HEAP32[((_tzname)>>2)]=winterNamePtr; + HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr; + } else { + HEAP32[((_tzname)>>2)]=summerNamePtr; + HEAP32[(((_tzname)+(4))>>2)]=winterNamePtr; + } + }function _localtime_r(time, tmPtr) { + _tzset(); + var date = new Date(HEAP32[((time)>>2)]*1000); + HEAP32[((tmPtr)>>2)]=date.getSeconds(); + HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes(); + HEAP32[(((tmPtr)+(8))>>2)]=date.getHours(); + HEAP32[(((tmPtr)+(12))>>2)]=date.getDate(); + HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth(); + HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900; + HEAP32[(((tmPtr)+(24))>>2)]=date.getDay(); + + var start = new Date(date.getFullYear(), 0, 1); + var yday = ((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24))|0; + HEAP32[(((tmPtr)+(28))>>2)]=yday; + HEAP32[(((tmPtr)+(36))>>2)]=-(date.getTimezoneOffset() * 60); + + // DST is in December in South + var summerOffset = new Date(2000, 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (date.getTimezoneOffset() == Math.min(winterOffset, summerOffset))|0; + HEAP32[(((tmPtr)+(32))>>2)]=dst; + + var zonePtr = HEAP32[(((_tzname)+(dst ? Runtime.QUANTUM_SIZE : 0))>>2)]; + HEAP32[(((tmPtr)+(40))>>2)]=zonePtr; + + return tmPtr; + }function _localtime(time) { + return _localtime_r(time, ___tm_current); + } - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + function _sysconf(name) { + // long sysconf(int name); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html + switch(name) { + case 30: return PAGE_SIZE; + case 85: return totalMemory / PAGE_SIZE; + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 80: + case 81: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809; + case 79: + return 0; + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + return -1; + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1; + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024; + case 31: + case 42: + case 72: + return 32; + case 87: + case 26: + case 33: + return 2147483647; + case 34: + case 1: + return 47839; + case 38: + case 36: + return 99; + case 43: + case 37: + return 2048; + case 0: return 2097152; + case 3: return 65536; + case 28: return 32768; + case 44: return 32767; + case 75: return 16384; + case 39: return 1000; + case 89: return 700; + case 71: return 256; + case 40: return 255; + case 2: return 100; + case 180: return 64; + case 25: return 20; + case 5: return 16; + case 6: return 6; + case 73: return 4; + case 84: { + if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1; + return 1; + } + } + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + + + Module["_bitshift64Lshr"] = _bitshift64Lshr; + + var _emscripten_prep_setjmp=true; + + var _emscripten_get_longjmp_result=true; + + var _emscripten_setjmp=true; + + function ___syscall33(which, varargs) {SYSCALLS.varargs = varargs; try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; + // access + var path = SYSCALLS.getStr(), amode = SYSCALLS.get(); + return SYSCALLS.doAccess(path, amode); } catch (e) { if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } - var _cos=Math_cos; + var _BDtoIHigh=true; + + function _pthread_cleanup_push(routine, arg) { + __ATEXIT__.push(function() { Runtime.dynCall('vi', routine, [arg]) }) + _pthread_cleanup_push.level = __ATEXIT__.length; + } + + function _pthread_cond_broadcast() { + return 0; + } + + + + + Module["_testSetjmp"] = _testSetjmp;function _longjmp(env, value) { + asm['setThrew'](env, value || 1); + throw 'longjmp'; + }function _emscripten_longjmp(env, value) { + _longjmp(env, value); + } + + + + + + var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) { + // WARNING: Arbitrary limit! + var MAX_ENV_VALUES = 64; + var TOTAL_ENV_SIZE = 1024; + + // Statically allocate memory for the environment. + var poolPtr; + var envPtr; + if (!___buildEnvironment.called) { + ___buildEnvironment.called = true; + // Set default values. Use string keys for Closure Compiler compatibility. + ENV['USER'] = ENV['LOGNAME'] = 'web_user'; + ENV['PATH'] = '/'; + ENV['PWD'] = '/'; + ENV['HOME'] = '/home/web_user'; + ENV['LANG'] = 'C'; + ENV['_'] = Module['thisProgram']; + // Allocate memory. + poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC); + envPtr = allocate(MAX_ENV_VALUES * 4, + 'i8*', ALLOC_STATIC); + HEAP32[((envPtr)>>2)]=poolPtr; + HEAP32[((_environ)>>2)]=envPtr; + } else { + envPtr = HEAP32[((_environ)>>2)]; + poolPtr = HEAP32[((envPtr)>>2)]; + } + + // Collect key=value lines. + var strings = []; + var totalSize = 0; + for (var key in env) { + if (typeof env[key] === 'string') { + var line = key + '=' + env[key]; + strings.push(line); + totalSize += line.length; + } + } + if (totalSize > TOTAL_ENV_SIZE) { + throw new Error('Environment size exceeded TOTAL_ENV_SIZE!'); + } + + // Make new. + var ptrSize = 4; + for (var i = 0; i < strings.length; i++) { + var line = strings[i]; + writeAsciiToMemory(line, poolPtr); + HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr; + poolPtr += line.length + 1; + } + HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0; + }var ENV={};function _getenv(name) { + // char *getenv(const char *name); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html + if (name === 0) return 0; + name = Pointer_stringify(name); + if (!ENV.hasOwnProperty(name)) return 0; + + if (_getenv.ret) _free(_getenv.ret); + _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL); + return _getenv.ret; + } + + + + function __isLeapYear(year) { + return year%4 === 0 && (year%100 !== 0 || year%400 === 0); + } + + function __arraySum(array, index) { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]); + return sum; + } + + + var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31]; + + var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) { + var newDate = new Date(date.getTime()); + while(days > 0) { + var leap = __isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + + if (days > daysInCurrentMonth-newDate.getDate()) { + // we spill over to next month + days -= (daysInCurrentMonth-newDate.getDate()+1); + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth+1) + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear()+1); + } + } else { + // we stay in current month + newDate.setDate(newDate.getDate()+days); + return newDate; + } + } + + return newDate; + }function _strftime(s, maxsize, format, tm) { + // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html + + var tm_zone = HEAP32[(((tm)+(40))>>2)]; + + var date = { + tm_sec: HEAP32[((tm)>>2)], + tm_min: HEAP32[(((tm)+(4))>>2)], + tm_hour: HEAP32[(((tm)+(8))>>2)], + tm_mday: HEAP32[(((tm)+(12))>>2)], + tm_mon: HEAP32[(((tm)+(16))>>2)], + tm_year: HEAP32[(((tm)+(20))>>2)], + tm_wday: HEAP32[(((tm)+(24))>>2)], + tm_yday: HEAP32[(((tm)+(28))>>2)], + tm_isdst: HEAP32[(((tm)+(32))>>2)], + tm_gmtoff: HEAP32[(((tm)+(36))>>2)], + tm_zone: tm_zone ? Pointer_stringify(tm_zone) : '' + }; + + var pattern = Pointer_stringify(format); + + // expand format + var EXPANSION_RULES_1 = { + '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 + '%D': '%m/%d/%y', // Equivalent to %m / %d / %y + '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d + '%h': '%b', // Equivalent to %b + '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation + '%R': '%H:%M', // Replaced by the time in 24-hour notation + '%T': '%H:%M:%S', // Replaced by the time + '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation + '%X': '%H:%M:%S' // Replaced by the locale's appropriate date representation + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]); + } + + var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + + function leadingSomething(value, digits, character) { + var str = typeof value === 'number' ? value.toString() : (value || ''); + while (str.length < digits) { + str = character[0]+str; + } + return str; + }; + + function leadingNulls(value, digits) { + return leadingSomething(value, digits, '0'); + }; + + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : (value > 0 ? 1 : 0); + }; + + var compare; + if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) { + compare = sgn(date1.getDate()-date2.getDate()); + } + } + return compare; + }; + + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: // Sunday + return new Date(janFourth.getFullYear()-1, 11, 29); + case 1: // Monday + return janFourth; + case 2: // Tuesday + return new Date(janFourth.getFullYear(), 0, 3); + case 3: // Wednesday + return new Date(janFourth.getFullYear(), 0, 2); + case 4: // Thursday + return new Date(janFourth.getFullYear(), 0, 1); + case 5: // Friday + return new Date(janFourth.getFullYear()-1, 11, 31); + case 6: // Saturday + return new Date(janFourth.getFullYear()-1, 11, 30); + } + }; + + function getWeekBasedYear(date) { + var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); + + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4); + + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + // this date is after the start of the first week of this year + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear()+1; + } else { + return thisDate.getFullYear(); + } + } else { + return thisDate.getFullYear()-1; + } + }; + + var EXPANSION_RULES_2 = { + '%a': function(date) { + return WEEKDAYS[date.tm_wday].substring(0,3); + }, + '%A': function(date) { + return WEEKDAYS[date.tm_wday]; + }, + '%b': function(date) { + return MONTHS[date.tm_mon].substring(0,3); + }, + '%B': function(date) { + return MONTHS[date.tm_mon]; + }, + '%C': function(date) { + var year = date.tm_year+1900; + return leadingNulls((year/100)|0,2); + }, + '%d': function(date) { + return leadingNulls(date.tm_mday, 2); + }, + '%e': function(date) { + return leadingSomething(date.tm_mday, 2, ' '); + }, + '%g': function(date) { + // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year. + // In this system, weeks begin on a Monday and week 1 of the year is the week that includes + // January 4th, which is also the week that includes the first Thursday of the year, and + // is also the first week that contains at least four days in the year. + // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of + // the last week of the preceding year; thus, for Saturday 2nd January 1999, + // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th, + // or 31st is a Monday, it and any following days are part of week 1 of the following year. + // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01. + + return getWeekBasedYear(date).toString().substring(2); + }, + '%G': function(date) { + return getWeekBasedYear(date); + }, + '%H': function(date) { + return leadingNulls(date.tm_hour, 2); + }, + '%I': function(date) { + return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 2); + }, + '%j': function(date) { + // Day of the year (001-366) + return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3); + }, + '%m': function(date) { + return leadingNulls(date.tm_mon+1, 2); + }, + '%M': function(date) { + return leadingNulls(date.tm_min, 2); + }, + '%n': function() { + return '\n'; + }, + '%p': function(date) { + if (date.tm_hour > 0 && date.tm_hour < 13) { + return 'AM'; + } else { + return 'PM'; + } + }, + '%S': function(date) { + return leadingNulls(date.tm_sec, 2); + }, + '%t': function() { + return '\t'; + }, + '%u': function(date) { + var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); + return day.getDay() || 7; + }, + '%U': function(date) { + // Replaced by the week number of the year as a decimal number [00,53]. + // The first Sunday of January is the first day of week 1; + // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] + var janFirst = new Date(date.tm_year+1900, 0, 1); + var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay()); + var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); + + // is target date after the first Sunday? + if (compareByDay(firstSunday, endDate) < 0) { + // calculate difference in days between first Sunday and endDate + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; + var firstSundayUntilEndJanuary = 31-firstSunday.getDate(); + var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); + return leadingNulls(Math.ceil(days/7), 2); + } + + return compareByDay(firstSunday, janFirst) === 0 ? '01': '00'; + }, + '%V': function(date) { + // Replaced by the week number of the year (Monday as the first day of the week) + // as a decimal number [01,53]. If the week containing 1 January has four + // or more days in the new year, then it is considered week 1. + // Otherwise, it is the last week of the previous year, and the next week is week 1. + // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday] + var janFourthThisYear = new Date(date.tm_year+1900, 0, 4); + var janFourthNextYear = new Date(date.tm_year+1901, 0, 4); + + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + + var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); + + if (compareByDay(endDate, firstWeekStartThisYear) < 0) { + // if given date is before this years first week, then it belongs to the 53rd week of last year + return '53'; + } + + if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { + // if given date is after next years first week, then it belongs to the 01th week of next year + return '01'; + } + + // given date is in between CW 01..53 of this calendar year + var daysDifference; + if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) { + // first CW of this year starts last year + daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate() + } else { + // first CW of this year starts this year + daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate(); + } + return leadingNulls(Math.ceil(daysDifference/7), 2); + }, + '%w': function(date) { + var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); + return day.getDay(); + }, + '%W': function(date) { + // Replaced by the week number of the year as a decimal number [00,53]. + // The first Monday of January is the first day of week 1; + // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] + var janFirst = new Date(date.tm_year, 0, 1); + var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1); + var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); + + // is target date after the first Monday? + if (compareByDay(firstMonday, endDate) < 0) { + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; + var firstMondayUntilEndJanuary = 31-firstMonday.getDate(); + var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); + return leadingNulls(Math.ceil(days/7), 2); + } + return compareByDay(firstMonday, janFirst) === 0 ? '01': '00'; + }, + '%y': function(date) { + // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year] + return (date.tm_year+1900).toString().substring(2); + }, + '%Y': function(date) { + // Replaced by the year as a decimal number (for example, 1997). [ tm_year] + return date.tm_year+1900; + }, + '%z': function(date) { + // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ). + // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + // convert from minutes into hhmm format (which means 60 minutes = 100 units) + off = (off / 60)*100 + (off % 60); + return (ahead ? '+' : '-') + String("0000" + off).slice(-4); + }, + '%Z': function(date) { + return date.tm_zone; + }, + '%%': function() { + return '%'; + } + }; + for (var rule in EXPANSION_RULES_2) { + if (pattern.indexOf(rule) >= 0) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date)); + } + } + + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + + writeArrayToMemory(bytes, s); + return bytes.length-1; + }function _strftime_l(s, maxsize, format, tm) { + return _strftime(s, maxsize, format, tm); // no locale support yet + } + + function _pthread_cleanup_pop() { + assert(_pthread_cleanup_push.level == __ATEXIT__.length, 'cannot pop if something else added meanwhile!'); + __ATEXIT__.pop(); + _pthread_cleanup_push.level = __ATEXIT__.length; + } + + var _emscripten_asm_const_int=true; + + function _pthread_mutex_unlock() {} + + + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src+num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; function _sbrk(bytes) { // Implement a Linux-like 'memory area' for our 'process'. @@ -5859,44 +5859,17 @@ function copyTempDouble(ptr) { Module["_memmove"] = _memmove; - var _BItoD=true; + function ___cxa_allocate_exception(size) { + return _malloc(size); + } - function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get(); - switch (op) { - case 21505: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return 0; - } - case 21506: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - var argp = SYSCALLS.get(); - HEAP32[((argp)>>2)]=0; - return 0; - } - case 21520: { - if (!stream.tty) return -ERRNO_CODES.ENOTTY; - return -ERRNO_CODES.EINVAL; // not supported - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - default: abort('bad ioctl syscall ' + op); - } - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } + var _emscripten_preinvoke=true; - var _ceilf=Math_ceil; + var _BItoD=true; + + function _pthread_cond_wait() { + return 0; + } function __embind_register_memory_view(rawType, dataTypeIndex, name) { var typeMapping = [ @@ -5931,21466 +5904,52607 @@ function copyTempDouble(ptr) { }); } - function _time(ptr) { - var ret = (Date.now()/1000)|0; - if (ptr) { - HEAP32[((ptr)>>2)]=ret; + function ___cxa_guard_release() {} + + var _cosf=Math_cos; + + + function getShiftFromSize(size) { + switch (size) { + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 8: return 3; + default: + throw new TypeError('Unknown type size: ' + size); } - return ret; + }function __embind_register_bool(rawType, name, size, trueValue, falseValue) { + var shift = getShiftFromSize(size); + + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + 'toWireType': function(destructors, o) { + return o ? trueValue : falseValue; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': function(pointer) { + // TODO: if heap is fixed (like in asm.js) this could be executed outside + var heap; + if (size === 1) { + heap = HEAP8; + } else if (size === 2) { + heap = HEAP16; + } else if (size === 4) { + heap = HEAP32; + } else { + throw new TypeError("Unknown boolean type size: " + name); + } + return this['fromWireType'](heap[pointer >> shift]); + }, + destructorFunction: null, // This type does not need a destructor + }); } - function _pthread_self() { - //FIXME: assumes only a single thread - return 0; + var _emscripten_cleanup_setjmp=true; + + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, // void return values can be optimized out sometimes + name: name, + 'argPackAdvance': 0, + 'fromWireType': function() { + return undefined; + }, + 'toWireType': function(destructors, o) { + // TODO: assert if anything else is given? + return undefined; + }, + }); } - function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - var offset = offset_low; - assert(offset_high === 0); - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } + + Module["_memset"] = _memset; - function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - return SYSCALLS.doWritev(stream, iov, iovcnt); - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } + var _BDtoILow=true; - function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; - try { - // fcntl64 - var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -ERRNO_CODES.EINVAL; - } - var newStream; - newStream = FS.open(stream.path, stream.flags, 0, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; - } - case 12: - case 12: { - var arg = SYSCALLS.get(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)]=2; - return 0; - } - case 13: - case 14: - case 13: - case 14: - return 0; // Pretend that the locking is successful. - case 16: - case 8: - return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. - case 9: - // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. - ___setErrNo(ERRNO_CODES.EINVAL); - return -1; - default: { - return -ERRNO_CODES.EINVAL; - } - } - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } + var _logf=Math_log; - function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; - try { - // readv - var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - return SYSCALLS.doReadv(stream, iov, iovcnt); - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - var ___dso_handle=allocate(1, "i32*", ALLOC_STATIC); -embind_init_charCodes() -BindingError = Module['BindingError'] = extendError(Error, 'BindingError'); -InternalError = Module['InternalError'] = extendError(Error, 'InternalError'); -init_emval(); -UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError'); -FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink; -__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() }); -if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); } -STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); - -staticSealed = true; // seal the static portion of memory - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - - var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC); - - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_dii(x) { Module["printErr"]("Invalid function pointer called with signature 'dii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_di(x) { Module["printErr"]("Invalid function pointer called with signature 'di'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + + Module["_bitshift64Shl"] = _bitshift64Shl; -function nullFunc_iiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + function _abort() { + Module['abort'](); + } -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + function ___assert_fail(condition, filename, line, func) { + ABORT = true; + throw 'Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + stackTrace(); + } -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + function _pthread_once(ptr, func) { + if (!_pthread_once.seen) _pthread_once.seen = {}; + if (ptr in _pthread_once.seen) return; + Runtime.dynCall('v', func); + _pthread_once.seen[ptr] = 1; + } -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + function ___lock() {} -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + function ___unlock() {} -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + function _pthread_getspecific(key) { + return PTHREAD_SPECIFIC[key] || 0; + } -function invoke_dii(index,a1,a2) { - try { - return Module["dynCall_dii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _fabs=Math_abs; -function invoke_vid(index,a1,a2) { - try { - Module["dynCall_vid"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _sqrt=Math_sqrt; -function invoke_di(index,a1) { - try { - return Module["dynCall_di"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _sqrtf=Math_sqrt; -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + + function _embind_repr(v) { + if (v === null) { + return 'null'; + } + var t = typeof v; + if (t === 'object' || t === 'array' || t === 'function') { + return v.toString(); + } else { + return '' + v; + } + } + + function integerReadValueFromPointer(name, shift, signed) { + // integers are quite common, so generate very specialized functions + switch (shift) { + case 0: return signed ? + function readS8FromPointer(pointer) { return HEAP8[pointer]; } : + function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; + case 1: return signed ? + function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : + function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; + case 2: return signed ? + function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : + function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; + default: + throw new TypeError("Unknown integer type: " + name); + } + }function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { + name = readLatin1String(name); + if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32. + maxRange = 4294967295; + } + + var shift = getShiftFromSize(size); + + var fromWireType = function(value) { + return value; + }; + + if (minRange === 0) { + var bitshift = 32 - 8*size; + fromWireType = function(value) { + return (value << bitshift) >>> bitshift; + }; + } + + registerType(primitiveType, { + name: name, + 'fromWireType': fromWireType, + 'toWireType': function(destructors, value) { + // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could + // avoid the following two if()s and assume value is of proper type. + if (typeof value !== "number" && typeof value !== "boolean") { + throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); + } + if (value < minRange || value > maxRange) { + throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!'); + } + return value | 0; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), + destructorFunction: null, // This type does not need a destructor + }); + } -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + function _pthread_setspecific(key, value) { + if (!(key in PTHREAD_SPECIFIC)) { + return ERRNO_CODES.EINVAL; + } + PTHREAD_SPECIFIC[key] = value; + return 0; + } -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _atan2f=Math_atan2; -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _sin=Math_sin; -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _ceilf=Math_ceil; -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + + + var emval_free_list=[]; + + var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) { + if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { + emval_handle_array[handle] = undefined; + emval_free_list.push(handle); + } + } + + + + function count_emval_handles() { + var count = 0; + for (var i = 5; i < emval_handle_array.length; ++i) { + if (emval_handle_array[i] !== undefined) { + ++count; + } + } + return count; + } + + function get_first_emval() { + for (var i = 5; i < emval_handle_array.length; ++i) { + if (emval_handle_array[i] !== undefined) { + return emval_handle_array[i]; + } + } + return null; + }function init_emval() { + Module['count_emval_handles'] = count_emval_handles; + Module['get_first_emval'] = get_first_emval; + }function __emval_register(value) { + + switch(value){ + case undefined :{ return 1; } + case null :{ return 2; } + case true :{ return 3; } + case false :{ return 4; } + default:{ + var handle = emval_free_list.length ? + emval_free_list.pop() : + emval_handle_array.length; + + emval_handle_array[handle] = {refcount: 1, value: value}; + return handle; + } + } + }function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(handle) { + var rv = emval_handle_array[handle].value; + __emval_decref(handle); + return rv; + }, + 'toWireType': function(destructors, value) { + return __emval_register(value); + }, + 'argPackAdvance': 8, + 'readValueFromPointer': simpleReadValueFromPointer, + destructorFunction: null, // This type does not need a destructor + + // TODO: do we need a deleteObject here? write a test where + // emval is passed into JS via an interface + }); + } -function invoke_viid(index,a1,a2,a3) { - try { - Module["dynCall_viid"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} -function invoke_iiiii(index,a1,a2,a3,a4) { - try { - return Module["dynCall_iiiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + var _llvm_ctlz_i32=true; -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); - } -} + + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: return function(pointer) { + return this['fromWireType'](HEAPF32[pointer >> 2]); + }; + case 3: return function(pointer) { + return this['fromWireType'](HEAPF64[pointer >> 3]); + }; + default: + throw new TypeError("Unknown float type: " + name); + } + }function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + 'fromWireType': function(value) { + return value; + }, + 'toWireType': function(destructors, value) { + // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could + // avoid the following if() and assume value is of proper type. + if (typeof value !== "number" && typeof value !== "boolean") { + throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); + } + return value; + }, + 'argPackAdvance': 8, + 'readValueFromPointer': floatReadValueFromPointer(name, shift), + destructorFunction: null, // This type does not need a destructor + }); + } -function invoke_iii(index,a1,a2) { + function ___syscall10(which, varargs) {SYSCALLS.varargs = varargs; try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); + // unlink + var path = SYSCALLS.getStr(); + FS.unlink(path); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - asm["setThrew"](1, 0); } -} -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; + function ___cxa_guard_acquire(variable) { + if (!HEAP8[((variable)>>0)]) { // ignore SAFE_HEAP stuff because llvm mixes i64 and i8 here + HEAP8[((variable)>>0)]=1; + return 1; + } + return 0; + } -Module.asmLibraryArg = { "abort": abort, "assert": assert, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_dii": nullFunc_dii, "nullFunc_vid": nullFunc_vid, "nullFunc_di": nullFunc_di, "nullFunc_i": nullFunc_i, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viii": nullFunc_viii, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_viiii": nullFunc_viiii, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_dii": invoke_dii, "invoke_vid": invoke_vid, "invoke_di": invoke_di, "invoke_i": invoke_i, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_iiiii": invoke_iiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_iii": invoke_iii, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "___syscall221": ___syscall221, "_sin": _sin, "floatReadValueFromPointer": floatReadValueFromPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "___syscall54": ___syscall54, "__embind_register_memory_view": __embind_register_memory_view, "throwInternalError": throwInternalError, "get_first_emval": get_first_emval, "_abort": _abort, "_pthread_cleanup_push": _pthread_cleanup_push, "extendError": extendError, "__embind_register_integer": __embind_register_integer, "___assert_fail": ___assert_fail, "init_emval": init_emval, "___cxa_allocate_exception": ___cxa_allocate_exception, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_ceilf": _ceilf, "getShiftFromSize": getShiftFromSize, "__embind_register_function": __embind_register_function, "__embind_register_emval": __embind_register_emval, "_emscripten_asm_const_33": _emscripten_asm_const_33, "__embind_register_constant": __embind_register_constant, "___setErrNo": ___setErrNo, "__emval_register": __emval_register, "_sbrk": _sbrk, "readLatin1String": readLatin1String, "__embind_register_void": __embind_register_void, "_emscripten_memcpy_big": _emscripten_memcpy_big, "__embind_register_bool": __embind_register_bool, "___resumeException": ___resumeException, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "_sysconf": _sysconf, "_embind_repr": _embind_repr, "__embind_register_std_wstring": __embind_register_std_wstring, "createNamedFunction": createNamedFunction, "embind_init_charCodes": embind_init_charCodes, "_cos": _cos, "getTypeName": getTypeName, "throwUnboundTypeError": throwUnboundTypeError, "_pthread_self": _pthread_self, "craftInvokerFunction": craftInvokerFunction, "__emval_decref": __emval_decref, "_sqrt": _sqrt, "__embind_register_float": __embind_register_float, "makeLegalFunctionName": makeLegalFunctionName, "integerReadValueFromPointer": integerReadValueFromPointer, "___unlock": ___unlock, "heap32VectorToArray": heap32VectorToArray, "_pthread_cleanup_pop": _pthread_cleanup_pop, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "_exit": _exit, "___syscall5": ___syscall5, "_emscripten_asm_const_4": _emscripten_asm_const_4, "___cxa_atexit": ___cxa_atexit, "registerType": registerType, "___cxa_throw": ___cxa_throw, "__exit": __exit, "___lock": ___lock, "___syscall6": ___syscall6, "throwBindingError": throwBindingError, "ensureOverloadTable": ensureOverloadTable, "count_emval_handles": count_emval_handles, "_time": _time, "requireFunction": requireFunction, "runDestructors": runDestructors, "new_": new_, "_atexit": _atexit, "___syscall140": ___syscall140, "exposePublicSymbol": exposePublicSymbol, "_emscripten_asm_const_5": _emscripten_asm_const_5, "__embind_register_std_string": __embind_register_std_string, "replacePublicSymbol": replacePublicSymbol, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle }; -// EMSCRIPTEN_START_ASM -var asm = (function(global, env, buffer) { - 'use asm'; - var Int8View = global.Int8Array; - var Int16View = global.Int16Array; - var Int32View = global.Int32Array; - var Uint8View = global.Uint8Array; - var Uint16View = global.Uint16Array; - var Uint32View = global.Uint32Array; - var Float32View = global.Float32Array; - var Float64View = global.Float64Array; - var HEAP8 = new Int8View(buffer); - var HEAP16 = new Int16View(buffer); - var HEAP32 = new Int32View(buffer); - var HEAPU8 = new Uint8View(buffer); - var HEAPU16 = new Uint16View(buffer); - var HEAPU32 = new Uint32View(buffer); - var HEAPF32 = new Float32View(buffer); - var HEAPF64 = new Float64View(buffer); - var byteLength = global.byteLength; - - - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var cttz_i8=env.cttz_i8|0; - var ___dso_handle=env.___dso_handle|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; - - var tempRet0 = 0; - var tempRet1 = 0; - var tempRet2 = 0; - var tempRet3 = 0; - var tempRet4 = 0; - var tempRet5 = 0; - var tempRet6 = 0; - var tempRet7 = 0; - var tempRet8 = 0; - var tempRet9 = 0; - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_dii=env.nullFunc_dii; - var nullFunc_vid=env.nullFunc_vid; - var nullFunc_di=env.nullFunc_di; - var nullFunc_i=env.nullFunc_i; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_v=env.nullFunc_v; - var nullFunc_viid=env.nullFunc_viid; - var nullFunc_iiiii=env.nullFunc_iiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_viiii=env.nullFunc_viiii; - var invoke_iiii=env.invoke_iiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_dii=env.invoke_dii; - var invoke_vid=env.invoke_vid; - var invoke_di=env.invoke_di; - var invoke_i=env.invoke_i; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_ii=env.invoke_ii; - var invoke_viii=env.invoke_viii; - var invoke_v=env.invoke_v; - var invoke_viid=env.invoke_viid; - var invoke_iiiii=env.invoke_iiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var invoke_iii=env.invoke_iii; - var invoke_viiii=env.invoke_viiii; - var _fabs=env._fabs; - var ___syscall221=env.___syscall221; - var _sin=env._sin; - var floatReadValueFromPointer=env.floatReadValueFromPointer; - var simpleReadValueFromPointer=env.simpleReadValueFromPointer; - var ___syscall54=env.___syscall54; - var __embind_register_memory_view=env.__embind_register_memory_view; - var throwInternalError=env.throwInternalError; - var get_first_emval=env.get_first_emval; - var _abort=env._abort; - var _pthread_cleanup_push=env._pthread_cleanup_push; - var extendError=env.extendError; - var __embind_register_integer=env.__embind_register_integer; - var ___assert_fail=env.___assert_fail; - var init_emval=env.init_emval; - var ___cxa_allocate_exception=env.___cxa_allocate_exception; - var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv; - var _ceilf=env._ceilf; - var getShiftFromSize=env.getShiftFromSize; - var __embind_register_function=env.__embind_register_function; - var __embind_register_emval=env.__embind_register_emval; - var _emscripten_asm_const_33=env._emscripten_asm_const_33; - var __embind_register_constant=env.__embind_register_constant; - var ___setErrNo=env.___setErrNo; - var __emval_register=env.__emval_register; - var _sbrk=env._sbrk; - var readLatin1String=env.readLatin1String; - var __embind_register_void=env.__embind_register_void; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var __embind_register_bool=env.__embind_register_bool; - var ___resumeException=env.___resumeException; - var ___cxa_find_matching_catch=env.___cxa_find_matching_catch; - var _sysconf=env._sysconf; - var _embind_repr=env._embind_repr; - var __embind_register_std_wstring=env.__embind_register_std_wstring; - var createNamedFunction=env.createNamedFunction; - var embind_init_charCodes=env.embind_init_charCodes; - var _cos=env._cos; - var getTypeName=env.getTypeName; - var throwUnboundTypeError=env.throwUnboundTypeError; - var _pthread_self=env._pthread_self; - var craftInvokerFunction=env.craftInvokerFunction; - var __emval_decref=env.__emval_decref; - var _sqrt=env._sqrt; - var __embind_register_float=env.__embind_register_float; - var makeLegalFunctionName=env.makeLegalFunctionName; - var integerReadValueFromPointer=env.integerReadValueFromPointer; - var ___unlock=env.___unlock; - var heap32VectorToArray=env.heap32VectorToArray; - var _pthread_cleanup_pop=env._pthread_cleanup_pop; - var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved; - var _exit=env._exit; - var ___syscall5=env.___syscall5; - var _emscripten_asm_const_4=env._emscripten_asm_const_4; - var ___cxa_atexit=env.___cxa_atexit; - var registerType=env.registerType; - var ___cxa_throw=env.___cxa_throw; - var __exit=env.__exit; - var ___lock=env.___lock; - var ___syscall6=env.___syscall6; - var throwBindingError=env.throwBindingError; - var ensureOverloadTable=env.ensureOverloadTable; - var count_emval_handles=env.count_emval_handles; - var _time=env._time; - var requireFunction=env.requireFunction; - var runDestructors=env.runDestructors; - var new_=env.new_; - var _atexit=env._atexit; - var ___syscall140=env.___syscall140; - var exposePublicSymbol=env.exposePublicSymbol; - var _emscripten_asm_const_5=env._emscripten_asm_const_5; - var __embind_register_std_string=env.__embind_register_std_string; - var replacePublicSymbol=env.replacePublicSymbol; - var ___syscall145=env.___syscall145; - var ___syscall146=env.___syscall146; - var tempFloat = 0.0; - -function _emscripten_replace_memory(newBuffer) { - if ((byteLength(newBuffer) & 0xffffff || byteLength(newBuffer) <= 0xffffff) || byteLength(newBuffer) > 0x80000000) return false; - HEAP8 = new Int8View(newBuffer); - HEAP16 = new Int16View(newBuffer); - HEAP32 = new Int32View(newBuffer); - HEAPU8 = new Uint8View(newBuffer); - HEAPU16 = new Uint16View(newBuffer); - HEAPU32 = new Uint32View(newBuffer); - HEAPF32 = new Float32View(newBuffer); - HEAPF64 = new Float64View(newBuffer); - buffer = newBuffer; - return true; -} - -// EMSCRIPTEN_START_FUNCS - -function __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i105 = 0, $$0$i$i$i113 = 0, $$0$i$i$i123 = 0, $$0$i$i$i131 = 0, $$0$i$i$i136 = 0, $$0$i$i$i148 = 0, $$0$i$i$i153 = 0, $$0$i$i$i17 = 0, $$0$i$i$i181 = 0, $$0$i$i$i191509 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i29 = 0, $$0$i$i$i31 = 0, $$0$i$i$i38 = 0, $$0$i$i$i43 = 0, $$0$i$i$i51 = 0, $$0$i$i$i56 = 0, $$0$i$i$i61 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i87 = 0, $$0$i$i$i95 = 0, $$01$i$i = 0, $$03$i$i = 0, $$08$i = 0, $$1$i$i = 0, $$1$i263 = 0, $$12$i$i = 0, $$13$i259$ph = 0, $$14$i$i = 0, $$2$i$i = 0, $$in = 0, $$lcssa667 = 0, $$lcssa674 = 0, $$lcssa682 = 0, $$lcssa690 = 0, $$lcssa698 = 0, $$lcssa706 = 0, $$ph390 = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i203 = 0, $$pre$i$i$i21$i = 0, $$pre$i$i$i36$i = 0, $$pre$i$i$i52$i = 0, $$pre$i$i$i71$i = 0, $0 = 0, $1 = 0, $10 = 0, $1001 = 0, $1003 = 0, $1006 = 0, $101 = 0, $1010 = 0, $1013 = 0, $1018 = 0, $1019 = 0, $1022 = 0, $1023 = 0, $1025 = 0, $1026 = 0, $1035 = 0, $1038 = 0, $104 = 0, $1043 = 0, $1044 = 0, $1049 = 0, $1051 = 0, $1054 = 0, $1058 = 0, $1061 = 0, $1066 = 0, $1067 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1073 = 0, $1074 = 0, $108 = 0, $1083 = 0, $1086 = 0, $1094 = 0, $1096 = 0, $11 = 0, $1100 = 0, $1101 = 0, $1103 = 0, $1110 = 0, $1112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1126 = 0, $1129 = 0, $113 = 0, $1132 = 0, $1133 = 0, $1139 = 0, $1141 = 0, $1145 = 0, $115 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1159 = 0, $1161 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1168 = 0, $117 = 0, $1178 = 0, $1179 = 0, $1180 = 0, $1181 = 0, $1184 = 0, $1187 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1205 = 0, $1210 = 0, $1217 = 0, $1219 = 0, $122 = 0, $1223 = 0, $1226 = 0, $1228 = 0, $123 = 0, $1233 = 0, $1237 = 0, $124 = 0, $1245 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $126 = 0, $1269 = 0, $1270 = 0, $1271 = 0, $1274 = 0, $1277 = 0, $1283 = 0, $1289 = 0, $1290 = 0, $1291 = 0, $1297 = 0, $1299 = 0, $13 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1306 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $1322 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1346 = 0, $1351 = 0, $1358 = 0, $136 = 0, $1360 = 0, $1364 = 0, $1367 = 0, $1369 = 0, $1374 = 0, $1378 = 0, $1386 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1397 = 0, $14 = 0, $1402 = 0, $1409 = 0, $1411 = 0, $1415 = 0, $1418 = 0, $1420 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1432 = 0, $1436 = 0, $1439 = 0, $1443 = 0, $1444 = 0, $1446 = 0, $1449 = 0, $1455 = 0, $1458 = 0, $147 = 0, $1470 = 0, $1474 = 0, $1475 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $15 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1508 = 0, $1511 = 0, $1517 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1531 = 0, $1533 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1540 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1556 = 0, $1559 = 0, $1562 = 0, $1563 = 0, $1568 = 0, $1569 = 0, $1570 = 0, $1571 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1577 = 0, $1582 = 0, $1589 = 0, $1591 = 0, $1595 = 0, $1598 = 0, $16 = 0, $1600 = 0, $1605 = 0, $1609 = 0, $1617 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1646 = 0, $1649 = 0, $165 = 0, $1655 = 0, $166 = 0, $1661 = 0, $1662 = 0, $1668 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $168 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1693 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1700 = 0, $1705 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1729 = 0, $1732 = 0, $1743 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1753 = 0, $1755 = 0, $1766 = 0, $1768 = 0, $1769 = 0, $1776 = 0, $1778 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $1792 = 0, $1795 = 0, $1798 = 0, $1799 = 0, $18 = 0, $1805 = 0, $1807 = 0, $181 = 0, $1811 = 0, $1813 = 0, $1815 = 0, $1817 = 0, $1818 = 0, $182 = 0, $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1831 = 0, $1832 = 0, $1834 = 0, $1839 = 0, $1846 = 0, $1848 = 0, $1853 = 0, $1858 = 0, $186 = 0, $1860 = 0, $1866 = 0, $1869 = 0, $1871 = 0, $1881 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1889 = 0, $189 = 0, $1891 = 0, $1892 = 0, $1894 = 0, $1895 = 0, $1897 = 0, $19 = 0, $1903 = 0, $1912 = 0, $1915 = 0, $1917 = 0, $1927 = 0, $1930 = 0, $1933 = 0, $1935 = 0, $1942 = 0, $1945 = 0, $1947 = 0, $195 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1961 = 0, $1963 = 0, $1966 = 0, $1967 = 0, $197 = 0, $1970 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1977 = 0, $1984 = 0, $1986 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2003 = 0, $2006 = 0, $2007 = 0, $2013 = 0, $2015 = 0, $2019 = 0, $202 = 0, $2023 = 0, $2027 = 0, $2029 = 0, $2033 = 0, $2034 = 0, $2036 = 0, $204 = 0, $2043 = 0, $2045 = 0, $205 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2059 = 0, $2062 = 0, $2065 = 0, $2066 = 0, $2072 = 0, $2074 = 0, $2078 = 0, $208 = 0, $2080 = 0, $2082 = 0, $2083 = 0, $209 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2097 = 0, $2099 = 0, $21 = 0, $211 = 0, $2110 = 0, $2113 = 0, $2114 = 0, $2115 = 0, $2117 = 0, $212 = 0, $2124 = 0, $2126 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $214 = 0, $2140 = 0, $2143 = 0, $2146 = 0, $2147 = 0, $2153 = 0, $2155 = 0, $2159 = 0, $2161 = 0, $2163 = 0, $2169 = 0, $2170 = 0, $2171 = 0, $2177 = 0, $2179 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2186 = 0, $219 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $2202 = 0, $2205 = 0, $2208 = 0, $2209 = 0, $2214 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $2220 = 0, $2221 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2238 = 0, $2241 = 0, $2247 = 0, $2251 = 0, $2253 = 0, $2257 = 0, $2258 = 0, $226 = 0, $2260 = 0, $2267 = 0, $2269 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2283 = 0, $2286 = 0, $2289 = 0, $2290 = 0, $2296 = 0, $2298 = 0, $23 = 0, $2308 = 0, $2309 = 0, $2311 = 0, $2317 = 0, $2318 = 0, $2322 = 0, $2326 = 0, $2329 = 0, $233 = 0, $2332 = 0, $2335 = 0, $2337 = 0, $2347 = 0, $2348 = 0, $2351 = 0, $2354 = 0, $2355 = 0, $2357 = 0, $2364 = 0, $2365 = 0, $2366 = 0, $2367 = 0, $2371 = 0, $2373 = 0, $2376 = 0, $2377 = 0, $238 = 0, $2382 = 0, $2385 = 0, $2386 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2398 = 0, $24 = 0, $240 = 0, $2402 = 0, $2405 = 0, $2408 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2432 = 0, $2434 = 0, $2438 = 0, $2441 = 0, $2444 = 0, $2446 = 0, $2459 = 0, $2461 = 0, $2465 = 0, $2466 = 0, $2468 = 0, $2475 = 0, $2477 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2491 = 0, $2494 = 0, $2497 = 0, $2498 = 0, $25 = 0, $250 = 0, $2504 = 0, $2506 = 0, $2510 = 0, $2512 = 0, $2516 = 0, $2518 = 0, $2522 = 0, $2523 = 0, $2525 = 0, $2532 = 0, $2534 = 0, $254 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2548 = 0, $255 = 0, $2551 = 0, $2554 = 0, $2555 = 0, $2561 = 0, $2563 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $258 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $264 = 0, $269 = 0, $27 = 0, $276 = 0, $278 = 0, $28 = 0, $283 = 0, $288 = 0, $29 = 0, $290 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $308 = 0, $309 = 0, $31 = 0, $318 = 0, $32 = 0, $321 = 0, $324 = 0, $326 = 0, $33 = 0, $336 = 0, $34 = 0, $341 = 0, $342 = 0, $344 = 0, $345 = 0, $35 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $359 = 0, $36 = 0, $360 = 0, $365 = 0, $367 = 0, $37 = 0, $370 = 0, $374 = 0, $377 = 0, $38 = 0, $382 = 0, $383 = 0, $386 = 0, $387 = 0, $389 = 0, $39 = 0, $390 = 0, $399 = 0, $4 = 0, $40 = 0, $402 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $415 = 0, $416 = 0, $418 = 0, $42 = 0, $422 = 0, $424 = 0, $429 = 0, $43 = 0, $434 = 0, $436 = 0, $44 = 0, $441 = 0, $442 = 0, $443 = 0, $446 = 0, $449 = 0, $45 = 0, $451 = 0, $458 = 0, $46 = 0, $465 = 0, $467 = 0, $47 = 0, $470 = 0, $474 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $486 = 0, $487 = 0, $489 = 0, $49 = 0, $490 = 0, $499 = 0, $5 = 0, $50 = 0, $502 = 0, $510 = 0, $512 = 0, $516 = 0, $517 = 0, $519 = 0, $526 = 0, $528 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $542 = 0, $545 = 0, $548 = 0, $549 = 0, $555 = 0, $557 = 0, $56 = 0, $561 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $57 = 0, $571 = 0, $574 = 0, $575 = 0, $577 = 0, $584 = 0, $586 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $6 = 0, $600 = 0, $603 = 0, $606 = 0, $607 = 0, $613 = 0, $615 = 0, $620 = 0, $624 = 0, $626 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $64 = 0, $641 = 0, $644 = 0, $648 = 0, $657 = 0, $658 = 0, $664 = 0, $669 = 0, $679 = 0, $681 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $698 = 0, $7 = 0, $70 = 0, $703 = 0, $705 = 0, $716 = 0, $718 = 0, $72 = 0, $722 = 0, $723 = 0, $725 = 0, $73 = 0, $732 = 0, $734 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $748 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $76 = 0, $761 = 0, $763 = 0, $767 = 0, $768 = 0, $77 = 0, $771 = 0, $772 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $783 = 0, $79 = 0, $790 = 0, $792 = 0, $8 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $806 = 0, $809 = 0, $812 = 0, $813 = 0, $819 = 0, $82 = 0, $821 = 0, $826 = 0, $827 = 0, $829 = 0, $831 = 0, $832 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $846 = 0, $856 = 0, $857 = 0, $858 = 0, $86 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $883 = 0, $885 = 0, $888 = 0, $892 = 0, $895 = 0, $9 = 0, $900 = 0, $901 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $917 = 0, $920 = 0, $925 = 0, $926 = 0, $929 = 0, $934 = 0, $936 = 0, $939 = 0, $943 = 0, $946 = 0, $95 = 0, $951 = 0, $952 = 0, $955 = 0, $956 = 0, $958 = 0, $959 = 0, $96 = 0, $968 = 0, $97 = 0, $971 = 0, $976 = 0, $979 = 0, $98 = 0, $981 = 0, $991 = 0, $994 = 0, $__p$0$i$i$i508 = 0, $__p$0$ph$i$i$i = 0, $__v$i$i$i = 0, $args = 0, $cv = 0, $k$0$i515 = 0, $k$0560 = 0, $k11$0540 = 0, $k15$0543 = 0, $k2$0$i516 = 0, $k20$0550 = 0, $k5$0533 = 0, $k8$0536 = 0, $num1$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $phitmp$i$i$i$i$i$i$i240 = 0, $phitmp$i2$i$i$i$i$i$i243 = 0, $proto = 0, $ref_qual$0$i$ph$ph = 0, $ref_qual$0$i$ph521 = 0, $ref_qual$0$i$ph521$lcssa = 0, $t$0$i = 0, $t$1$i$be = 0, $t$1$i$ph$ph = 0, $t$1$i$ph520 = 0, $t$1$i518 = 0, $t$1$i518$lcssa = 0, $t12$0$i = 0, $template_args = 0, $type = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 784 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i$i = sp + 752 | 0; - $0 = sp + 728 | 0; - $1 = sp + 716 | 0; - $2 = sp + 704 | 0; - $3 = sp + 680 | 0; - $4 = sp + 656 | 0; - $5 = sp + 632 | 0; - $6 = sp + 620 | 0; - $num1$i = sp + 608 | 0; - $7 = sp + 596 | 0; - $8 = sp + 584 | 0; - $9 = sp + 572 | 0; - $cv = sp + 568 | 0; - $10 = sp + 552 | 0; - $11 = sp + 544 | 0; - $12 = sp + 528 | 0; - $13 = sp + 520 | 0; - $14 = sp + 504 | 0; - $15 = sp + 496 | 0; - $16 = sp + 480 | 0; - $17 = sp + 472 | 0; - $18 = sp + 456 | 0; - $19 = sp + 452 | 0; - $20 = sp + 440 | 0; - $21 = sp + 428 | 0; - $22 = sp + 416 | 0; - $23 = sp + 404 | 0; - $args = sp + 392 | 0; - $24 = sp + 376 | 0; - $25 = sp + 368 | 0; - $type = sp + 356 | 0; - $26 = sp + 344 | 0; - $27 = sp + 320 | 0; - $28 = sp + 308 | 0; - $29 = sp + 296 | 0; - $30 = sp + 284 | 0; - $proto = sp + 272 | 0; - $31 = sp + 248 | 0; - $32 = sp + 236 | 0; - $33 = sp + 224 | 0; - $34 = sp + 212 | 0; - $35 = sp + 200 | 0; - $36 = sp + 176 | 0; - $37 = sp + 164 | 0; - $38 = sp + 152 | 0; - $39 = sp + 136 | 0; - $40 = sp + 128 | 0; - $41 = sp + 112 | 0; - $42 = sp + 108 | 0; - $template_args = sp + 96 | 0; - $43 = sp + 80 | 0; - $44 = sp + 72 | 0; - $45 = sp + 56 | 0; - $46 = sp + 48 | 0; - $47 = sp + 32 | 0; - $48 = sp + 24 | 0; - $49 = sp + 8 | 0; - $50 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { - switch (HEAP8[$first >> 0] | 0) { - case 75: - case 86: - case 114: - { - HEAP32[$cv >> 2] = 0; - $54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) | 0; - if (($54 | 0) == ($first | 0)) { - $$0 = $first; - break L1; + function new_(constructor, argumentList) { + if (!(constructor instanceof Function)) { + throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function"); + } + + /* + * Previously, the following line was just: + + function dummy() {}; + + * Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the + * correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which + * isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way + * to write a test for this behavior. -NRD 2013.02.22 + */ + var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){}); + dummy.prototype = constructor.prototype; + var obj = new dummy; + + var r = constructor.apply(obj, argumentList); + return (r instanceof Object) ? r : obj; } - $56 = HEAP8[$54 >> 0] | 0; - $57 = $db + 4 | 0; - $63 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $64 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0; - $70 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($64 | 0) == ($54 | 0)) { - $$0 = $first; - break L1; + + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + }function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { + // humanName: a human-readable string name for the function to be generated. + // argTypes: An array that contains the embind type objects for all types in the function signature. + // argTypes[0] is the type object for the function return value. + // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. + // argTypes[2...] are the actual function parameters. + // classType: The embind type object for the class to be bound, or null if this is not a method of a class. + // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. + // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. + var argCount = argTypes.length; + + if (argCount < 2) { + throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); + } + + var isClassMethodFunc = (argTypes[1] !== null && classType !== null); + + // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. + // TODO: This omits argument count check - enable only at -O3 or similar. + // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { + // return FUNCTION_TABLE[fn]; + // } + + var argsList = ""; + var argsListWired = ""; + for(var i = 0; i < argCount - 2; ++i) { + argsList += (i!==0?", ":"")+"arg"+i; + argsListWired += (i!==0?", ":"")+"arg"+i+"Wired"; + } + + var invokerFnBody = + "return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" + + "if (arguments.length !== "+(argCount - 2)+") {\n" + + "throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" + + "}\n"; + + + // Determine if we need to use a dynamic stack to store the destructors for the function parameters. + // TODO: Remove this completely once all function invokers are being dynamically generated. + var needsDestructorStack = false; + + for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. + if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack + needsDestructorStack = true; + break; + } + } + + if (needsDestructorStack) { + invokerFnBody += + "var destructors = [];\n"; + } + + var dtorStack = needsDestructorStack ? "destructors" : "null"; + var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; + var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; + + + if (isClassMethodFunc) { + invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n"; + } + + for(var i = 0; i < argCount - 2; ++i) { + invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n"; + args1.push("argType"+i); + args2.push(argTypes[i+2]); + } + + if (isClassMethodFunc) { + argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; + } + + var returns = (argTypes[0].name !== "void"); + + invokerFnBody += + (returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n"; + + if (needsDestructorStack) { + invokerFnBody += "runDestructors(destructors);\n"; + } else { + for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method. + var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired")); + if (argTypes[i].destructorFunction !== null) { + invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n"; + args1.push(paramName+"_dtor"); + args2.push(argTypes[i].destructorFunction); + } + } + } + + if (returns) { + invokerFnBody += "var ret = retType.fromWireType(rv);\n" + + "return ret;\n"; + } else { + } + invokerFnBody += "}\n"; + + args1.push(invokerFnBody); + + var invokerFunction = new_(Function, args1).apply(null, args2); + return invokerFunction; } - $72 = $56 << 24 >> 24 == 70; - $73 = $db + 20 | 0; - $74 = HEAP32[$73 >> 2] | 0; - if ($72) { - $75 = $74 + -16 | 0; - $77 = $74; - do { - $76 = $77 + -16 | 0; - HEAP32[$73 >> 2] = $76; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($76); - $77 = HEAP32[$73 >> 2] | 0; - } while (($77 | 0) != ($75 | 0)); - $86 = $75; - } else $86 = $74; - $79 = $db + 16 | 0; - $82 = HEAP32[$db + 12 >> 2] | 0; - $84 = HEAP32[$db + 24 >> 2] | 0; - if ($86 >>> 0 < $84 >>> 0) { - HEAP32[$86 >> 2] = 0; - HEAP32[$86 + 4 >> 2] = 0; - HEAP32[$86 + 8 >> 2] = 0; - HEAP32[$86 + 12 >> 2] = $82; - HEAP32[$73 >> 2] = (HEAP32[$73 >> 2] | 0) + 16; - } else { - $95 = HEAP32[$79 >> 2] | 0; - $96 = $86 - $95 | 0; - $97 = $96 >> 4; - $98 = $97 + 1 | 0; - if (($96 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($79); - $101 = $84 - $95 | 0; - if ($101 >> 4 >>> 0 < 1073741823) { - $104 = $101 >> 3; - $$0$i$i$i38 = $104 >>> 0 < $98 >>> 0 ? $98 : $104; - } else $$0$i$i$i38 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i38, $97, $db + 28 | 0); - $107 = $__v$i$i$i + 8 | 0; - $108 = HEAP32[$107 >> 2] | 0; - HEAP32[$108 >> 2] = 0; - HEAP32[$108 + 4 >> 2] = 0; - HEAP32[$108 + 8 >> 2] = 0; - HEAP32[$108 + 12 >> 2] = $82; - HEAP32[$107 >> 2] = $108 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($79, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + + + function ensureOverloadTable(proto, methodName, humanName) { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. + proto[methodName] = function() { + // TODO This check can be removed in -O3 level "unsafe" optimizations. + if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { + throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); + } + return proto[methodName].overloadTable[arguments.length].apply(this, arguments); + }; + // Move the previous function into the overload table. + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + }function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { + throwBindingError("Cannot register public name '" + name + "' twice"); + } + + // We are exposing a function with the same name as an existing function. Create an overload table and a function selector + // that routes between the two. + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); + } + // Add the new function into the overload table. + Module[name].overloadTable[numArguments] = value; + } + else { + Module[name] = value; + if (undefined !== numArguments) { + Module[name].numArguments = numArguments; + } + } } - $113 = HEAP32[$cv >> 2] | 0; - $115 = ($113 & 1 | 0) == 0; - $117 = ($113 & 2 | 0) == 0; - $119 = ($113 & 4 | 0) == 0; - $120 = $__v$i$i$i + 8 | 0; - if ($63 >>> 0 < $70 >>> 0) $k$0560 = $63; else { - $$0 = $64; - break L1; + + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + array.push(HEAP32[(firstElement >> 2) + i]); + } + return array; } - while (1) { - if ($72) { - $122 = HEAP32[$db >> 2] | 0; - $123 = $122 + ($k$0560 * 24 | 0) + 12 | 0; - $124 = HEAP8[$123 >> 0] | 0; - $126 = ($124 & 1) == 0; - if ($126) { - $$in = ($124 & 255) >>> 1; - $136 = $123 + 1 | 0; - } else { - $$in = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0; - $136 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0; + + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError('Replacing nonexistant public symbol'); } - $134 = $$in + -2 | 0; - if ((HEAP8[$136 + $134 >> 0] | 0) == 38) $p$0 = $$in + -3 | 0; else { - if ($126) { - $147 = ($124 & 255) >>> 1; - $149 = $123 + 1 | 0; - } else { - $147 = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0; - $149 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0; - } - $p$0 = (HEAP8[$149 + ($147 + -1) >> 0] | 0) == 38 ? $134 : $$in; + // If there's an overload table for this symbol, replace the symbol in the overload table instead. + if (undefined !== Module[name].overloadTable && undefined !== numArguments) { + Module[name].overloadTable[numArguments] = value; } - if ($115) $p$1 = $p$0; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($123, $p$0, 12669) | 0; - $p$1 = $p$0 + 6 | 0; + else { + Module[name] = value; } - if ($117) $p$2 = $p$1; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$1, 12676) | 0; - $p$2 = $p$1 + 9 | 0; + } + + function requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + + function makeDynCaller(dynCall) { + var args = []; + for (var i = 1; i < signature.length; ++i) { + args.push('a' + i); + } + + var name = 'dynCall_' + signature + '_' + rawFunction; + var body = 'return function ' + name + '(' + args.join(', ') + ') {\n'; + body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n'; + body += '};\n'; + + return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction); } - if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$2, 12686) | 0; - } else { - if (!$115) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12669) | 0; - if (!$117) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12676) | 0; - if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12686) | 0; - } - $164 = HEAP32[$73 >> 2] | 0; - $165 = $164 + -16 | 0; - $166 = HEAP32[$db >> 2] | 0; - $167 = $166 + ($k$0560 * 24 | 0) | 0; - $168 = $164 + -12 | 0; - $169 = HEAP32[$168 >> 2] | 0; - if (($169 | 0) == (HEAP32[$164 + -8 >> 2] | 0)) { - $181 = $169 - (HEAP32[$165 >> 2] | 0) | 0; - $182 = ($181 | 0) / 24 | 0; - $183 = $182 + 1 | 0; - if (($181 | 0) < -24) { - $$lcssa706 = $165; - break; + + var fp; + if (Module['FUNCTION_TABLE_' + signature] !== undefined) { + fp = Module['FUNCTION_TABLE_' + signature][rawFunction]; + } else if (typeof FUNCTION_TABLE !== "undefined") { + fp = FUNCTION_TABLE[rawFunction]; + } else { + // asm.js does not give direct access to the function tables, + // and thus we must go through the dynCall interface which allows + // calling into a signature's function table by pointer value. + // + // https://github.com/dherman/asm.js/issues/83 + // + // This has three main penalties: + // - dynCall is another function call in the path from JavaScript to C++. + // - JITs may not predict through the function table indirection at runtime. + var dc = asm['dynCall_' + signature]; + if (dc === undefined) { + // We will always enter this branch if the signature + // contains 'f' and PRECISE_F32 is not enabled. + // + // Try again, replacing 'f' with 'd'. + dc = asm['dynCall_' + signature.replace(/f/g, 'd')]; + if (dc === undefined) { + throwBindingError("No dynCall invoker for signature: " + signature); + } + } + fp = makeDynCaller(dc); } - if ($182 >>> 0 < 1073741823) { - $186 = $182 << 1; - $$0$i$i$i43 = $186 >>> 0 < $183 >>> 0 ? $183 : $186; - } else $$0$i$i$i43 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i43, $182, $164 + -4 | 0); - $189 = HEAP32[$120 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189, $167); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0); - HEAP32[$120 >> 2] = $189 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($165, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169, $167); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0); - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 24; - } - $k$0560 = $k$0560 + 1 | 0; - if ($k$0560 >>> 0 >= $70 >>> 0) { - $$0 = $64; - break L1; - } + + if (typeof fp !== "function") { + throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); + } + return fp; } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa706); - break; - } - default: - {} - } - $195 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($195 | 0) == ($first | 0)) { - $197 = HEAP8[$first >> 0] | 0; - L65 : do switch ($197 << 24 >> 24 | 0) { - case 65: - { - do if ($197 << 24 >> 24 == 65) { - $200 = $first + 1 | 0; - if (($200 | 0) == ($last | 0)) $$0$i = $first; else { - $202 = HEAP8[$200 >> 0] | 0; - if ($202 << 24 >> 24 == 95) { - $204 = $first + 2 | 0; - $205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($204, $last, $db) | 0; - if (($205 | 0) == ($204 | 0)) { - $$0$i = $first; - break; - } - $208 = $db + 4 | 0; - $209 = HEAP32[$208 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($209 | 0)) { - $$0$i = $first; - break; - } - $211 = $209 + -12 | 0; - $212 = HEAP8[$211 >> 0] | 0; - $214 = ($212 & 1) == 0; - $219 = $214 ? ($212 & 255) >>> 1 : HEAP32[$209 + -8 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, $214 ? $211 + 1 | 0 : HEAP32[$209 + -4 >> 2] | 0, $219 >>> 0 < 2 ? $219 : 2); - $226 = HEAP8[$__v$i$i$i >> 0] | 0; - $228 = ($226 & 1) == 0; - $233 = $228 ? ($226 & 255) >>> 1 : HEAP32[$__v$i$i$i + 4 >> 2] | 0; - $238 = $233 >>> 0 > 2; - $240 = _memcmp($228 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, 12696, $238 ? 2 : $233) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); - if (!((($240 | 0) == 0 ? ($233 >>> 0 < 2 ? -1 : $238 & 1) : $240) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$208 >> 2] | 0) + -12 | 0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$208 >> 2] | 0) + -12 | 0, 0, 12699) | 0; - $$0$i = $205; - break; - } - if (($202 + -49 & 255) < 9) { - $250 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($200, $last) | 0; - if (($250 | 0) == ($last | 0)) { - $$0$i = $first; - break; - } - if ((HEAP8[$250 >> 0] | 0) != 95) { - $$0$i = $first; - break; - } - $254 = $250 + 1 | 0; - $255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($254, $last, $db) | 0; - if (($255 | 0) == ($254 | 0)) { - $$0$i = $first; - break; - } - $258 = $db + 4 | 0; - $259 = HEAP32[$258 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($259 | 0)) { - $$0$i = $first; - break; + + + var UnboundTypeError=undefined; + + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + }function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + + throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', '])); + }function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + + rawInvoker = requireFunction(signature, rawInvoker); + + exposePublicSymbol(name, function() { + throwUnboundTypeError('Cannot call ' + name + ' due to unbound types', argTypes); + }, argCount - 1); + + whenDependentTypesAreResolved([], argTypes, function(argTypes) { + var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */); + replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn), argCount - 1); + return []; + }); + } + + function __embind_register_constant(name, type, value) { + name = readLatin1String(name); + whenDependentTypesAreResolved([], [type], function(type) { + type = type[0]; + Module[name] = type['fromWireType'](value); + return []; + }); + } + + function ___cxa_begin_catch(ptr) { + __ZSt18uncaught_exceptionv.uncaught_exception--; + EXCEPTIONS.caught.push(ptr); + EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); + return ptr; + } + + var _sinf=Math_sin; + + function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs; + try { + // open + var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO + var stream = FS.open(pathname, flags, mode); + return stream.fd; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; + try { + // close + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + + var _cos=Math_cos; + + function _gettimeofday(ptr) { + var now = Date.now(); + HEAP32[((ptr)>>2)]=(now/1000)|0; // seconds + HEAP32[(((ptr)+(4))>>2)]=((now % 1000)*1000)|0; // microseconds + return 0; + } + + function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs; + try { + // fcntl64 + var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get(); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -ERRNO_CODES.EINVAL; + } + var newStream; + newStream = FS.open(stream.path, stream.flags, 0, arg); + return newStream.fd; } - $261 = $259 + -12 | 0; - $262 = HEAP8[$261 >> 0] | 0; - $264 = ($262 & 1) == 0; - $269 = $264 ? ($262 & 255) >>> 1 : HEAP32[$259 + -8 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $264 ? $261 + 1 | 0 : HEAP32[$259 + -4 >> 2] | 0, $269 >>> 0 < 2 ? $269 : 2); - $276 = HEAP8[$0 >> 0] | 0; - $278 = ($276 & 1) == 0; - $283 = $278 ? ($276 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0; - $288 = $283 >>> 0 > 2; - $290 = _memcmp($278 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 12696, $288 ? 2 : $283) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - if (!((($290 | 0) == 0 ? ($283 >>> 0 < 2 ? -1 : $288 & 1) : $290) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$258 >> 2] | 0) + -12 | 0); - $298 = (HEAP32[$258 >> 2] | 0) + -12 | 0; - $301 = $250 - $200 | 0; - if ($301 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($3); - if ($301 >>> 0 < 11) { - HEAP8[$3 >> 0] = $301 << 1; - $__p$0$ph$i$i$i = $3 + 1 | 0; - } else { - $308 = $301 + 16 & -16; - $309 = _malloc($308) | 0; - HEAP32[$3 + 8 >> 2] = $309; - HEAP32[$3 >> 2] = $308 | 1; - HEAP32[$3 + 4 >> 2] = $301; - $__p$0$ph$i$i$i = $309; + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; } - if (($200 | 0) != ($250 | 0)) { - $$0$i$i$i191509 = $200; - $__p$0$i$i$i508 = $__p$0$ph$i$i$i; - while (1) { - HEAP8[$__p$0$i$i$i508 >> 0] = HEAP8[$$0$i$i$i191509 >> 0] | 0; - $$0$i$i$i191509 = $$0$i$i$i191509 + 1 | 0; - if (($$0$i$i$i191509 | 0) == ($250 | 0)) break; else $__p$0$i$i$i508 = $__p$0$i$i$i508 + 1 | 0; - } + case 12: + case 12: { + var arg = SYSCALLS.get(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg)+(offset))>>1)]=2; + return 0; } - HEAP8[$__p$0$ph$i$i$i + $301 >> 0] = 0; - $318 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 12696) | 0; - HEAP32[$2 >> 2] = HEAP32[$318 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$318 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$318 + 8 >> 2]; - HEAP32[$318 >> 2] = 0; - HEAP32[$318 + 4 >> 2] = 0; - HEAP32[$318 + 8 >> 2] = 0; - $321 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12703) | 0; - HEAP32[$1 >> 2] = HEAP32[$321 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$321 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$321 + 8 >> 2]; - HEAP32[$321 >> 2] = 0; - HEAP32[$321 + 4 >> 2] = 0; - HEAP32[$321 + 8 >> 2] = 0; - $324 = HEAP8[$1 >> 0] | 0; - $326 = ($324 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($298, 0, $326 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $326 ? ($324 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$0$i = $255; - break; - } - $336 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($200, $last, $db) | 0; - if (($336 | 0) == ($200 | 0) | ($336 | 0) == ($last | 0)) $$0$i = $first; else if ((HEAP8[$336 >> 0] | 0) == 95) { - $341 = $336 + 1 | 0; - $342 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($341, $last, $db) | 0; - if (($342 | 0) == ($341 | 0)) $$0$i = $first; else { - $344 = $db + 4 | 0; - $345 = HEAP32[$344 >> 2] | 0; - if ((($345 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($4, $345 + -24 | 0); - $353 = HEAP32[$344 >> 2] | 0; - $354 = $353 + -24 | 0; - $356 = $353; - do { - $355 = $356 + -24 | 0; - HEAP32[$344 >> 2] = $355; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($355); - $356 = HEAP32[$344 >> 2] | 0; - } while (($356 | 0) != ($354 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($5, $353 + -48 | 0); - $359 = HEAP32[$344 >> 2] | 0; - $360 = $359 + -24 | 0; - do if (!(HEAP8[$360 >> 0] & 1)) { - HEAP8[$360 + 1 >> 0] = 0; - HEAP8[$360 >> 0] = 0; - } else { - $365 = $359 + -16 | 0; - HEAP8[HEAP32[$365 >> 2] >> 0] = 0; - $367 = $359 + -20 | 0; - HEAP32[$367 >> 2] = 0; - $$pre$i$i$i$i203 = HEAP8[$360 >> 0] | 0; - if (!($$pre$i$i$i$i203 & 1)) { - $374 = $$pre$i$i$i$i203; - $383 = 10; - } else { - $370 = HEAP32[$360 >> 2] | 0; - $374 = $370 & 255; - $383 = ($370 & -2) + -1 | 0; - } - if (!($374 & 1)) { - $377 = ($374 & 255) >>> 1; - if (($374 & 255) < 22) { - $2567 = 1; - $382 = 10; - $402 = $377; - } else { - $2567 = 1; - $382 = ($377 + 16 & 240) + -1 | 0; - $402 = $377; - } - } else { - $2567 = 0; - $382 = 10; - $402 = 0; - } - if (($382 | 0) != ($383 | 0)) { - if (($382 | 0) == 10) { - $389 = $360 + 1 | 0; - $390 = HEAP32[$365 >> 2] | 0; - if ($2567) { - _memcpy($389 | 0, $390 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0; - _free($390); - } else { - HEAP8[$389 >> 0] = HEAP8[$390 >> 0] | 0; - _free($390); - } - HEAP8[$360 >> 0] = $402 << 1; - break; - } - $386 = $382 + 1 | 0; - $387 = _malloc($386) | 0; - if (!($382 >>> 0 <= $383 >>> 0 & ($387 | 0) == 0)) { - if ($2567) _memcpy($387 | 0, $360 + 1 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0; else { - $399 = HEAP32[$365 >> 2] | 0; - HEAP8[$387 >> 0] = HEAP8[$399 >> 0] | 0; - _free($399); - } - HEAP32[$360 >> 2] = $386 | 1; - HEAP32[$367 >> 2] = $402; - HEAP32[$365 >> 2] = $387; - } - } - } while (0); - HEAP32[$360 >> 2] = HEAP32[$4 >> 2]; - HEAP32[$360 + 4 >> 2] = HEAP32[$4 + 4 >> 2]; - HEAP32[$360 + 8 >> 2] = HEAP32[$4 + 8 >> 2]; - HEAP32[$4 >> 2] = 0; - HEAP32[$4 + 4 >> 2] = 0; - HEAP32[$4 + 8 >> 2] = 0; - $407 = $4 + 12 | 0; - $408 = HEAP8[$407 >> 0] | 0; - $410 = ($408 & 1) == 0; - $411 = $4 + 16 | 0; - $415 = $410 ? ($408 & 255) >>> 1 : HEAP32[$411 >> 2] | 0; - $416 = $4 + 20 | 0; - $418 = $407 + 1 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $410 ? $418 : HEAP32[$416 >> 2] | 0, $415 >>> 0 < 2 ? $415 : 2); - $422 = HEAP8[$6 >> 0] | 0; - $424 = ($422 & 1) == 0; - $429 = $424 ? ($422 & 255) >>> 1 : HEAP32[$6 + 4 >> 2] | 0; - $434 = $429 >>> 0 > 2; - $436 = _memcmp($424 ? $6 + 1 | 0 : HEAP32[$6 + 8 >> 2] | 0, 12696, $434 ? 2 : $429) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - if (!((($436 | 0) == 0 ? ($429 >>> 0 < 2 ? -1 : $434 & 1) : $436) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($407); - $441 = HEAP32[$344 >> 2] | 0; - $442 = $441 + -12 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($9, $5); - $443 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($9, 0, 12696) | 0; - HEAP32[$8 >> 2] = HEAP32[$443 >> 2]; - HEAP32[$8 + 4 >> 2] = HEAP32[$443 + 4 >> 2]; - HEAP32[$8 + 8 >> 2] = HEAP32[$443 + 8 >> 2]; - HEAP32[$443 >> 2] = 0; - HEAP32[$443 + 4 >> 2] = 0; - HEAP32[$443 + 8 >> 2] = 0; - $446 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 12703) | 0; - HEAP32[$7 >> 2] = HEAP32[$446 >> 2]; - HEAP32[$7 + 4 >> 2] = HEAP32[$446 + 4 >> 2]; - HEAP32[$7 + 8 >> 2] = HEAP32[$446 + 8 >> 2]; - HEAP32[$446 >> 2] = 0; - HEAP32[$446 + 4 >> 2] = 0; - HEAP32[$446 + 8 >> 2] = 0; - $449 = HEAP8[$407 >> 0] | 0; - $451 = ($449 & 1) == 0; - $458 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $451 ? $418 : HEAP32[$416 >> 2] | 0, $451 ? ($449 & 255) >>> 1 : HEAP32[$411 >> 2] | 0) | 0; - HEAP32[$num1$i >> 2] = HEAP32[$458 >> 2]; - HEAP32[$num1$i + 4 >> 2] = HEAP32[$458 + 4 >> 2]; - HEAP32[$num1$i + 8 >> 2] = HEAP32[$458 + 8 >> 2]; - HEAP32[$458 >> 2] = 0; - HEAP32[$458 + 4 >> 2] = 0; - HEAP32[$458 + 8 >> 2] = 0; - do if (!(HEAP8[$442 >> 0] & 1)) { - HEAP8[$442 + 1 >> 0] = 0; - HEAP8[$442 >> 0] = 0; - } else { - $465 = $441 + -4 | 0; - HEAP8[HEAP32[$465 >> 2] >> 0] = 0; - $467 = $441 + -8 | 0; - HEAP32[$467 >> 2] = 0; - $$pre$i$i$i36$i = HEAP8[$442 >> 0] | 0; - if (!($$pre$i$i$i36$i & 1)) { - $474 = $$pre$i$i$i36$i; - $483 = 10; - } else { - $470 = HEAP32[$442 >> 2] | 0; - $474 = $470 & 255; - $483 = ($470 & -2) + -1 | 0; - } - do if (!($474 & 1)) { - $477 = ($474 & 255) >>> 1; - if (($474 & 255) < 22) { - $2568 = 1; - $482 = 10; - $502 = $477; - break; - } - $2568 = 1; - $482 = ($477 + 16 & 240) + -1 | 0; - $502 = $477; - } else { - $2568 = 0; - $482 = 10; - $502 = 0; - } while (0); - if (($482 | 0) != ($483 | 0)) { - if (($482 | 0) == 10) { - $489 = $442 + 1 | 0; - $490 = HEAP32[$465 >> 2] | 0; - if ($2568) { - _memcpy($489 | 0, $490 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0; - _free($490); - } else { - HEAP8[$489 >> 0] = HEAP8[$490 >> 0] | 0; - _free($490); - } - HEAP8[$442 >> 0] = $502 << 1; - break; - } - $486 = $482 + 1 | 0; - $487 = _malloc($486) | 0; - if ($482 >>> 0 <= $483 >>> 0 & ($487 | 0) == 0) break; - if ($2568) _memcpy($487 | 0, $442 + 1 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0; else { - $499 = HEAP32[$465 >> 2] | 0; - HEAP8[$487 >> 0] = HEAP8[$499 >> 0] | 0; - _free($499); - } - HEAP32[$442 >> 2] = $486 | 1; - HEAP32[$467 >> 2] = $502; - HEAP32[$465 >> 2] = $487; - } - } while (0); - HEAP32[$442 >> 2] = HEAP32[$num1$i >> 2]; - HEAP32[$442 + 4 >> 2] = HEAP32[$num1$i + 4 >> 2]; - HEAP32[$442 + 8 >> 2] = HEAP32[$num1$i + 8 >> 2]; - HEAP32[$num1$i >> 2] = 0; - HEAP32[$num1$i + 4 >> 2] = 0; - HEAP32[$num1$i + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); - $$0$i = $342; - } + case 13: + case 14: + case 13: + case 14: + return 0; // Pretend that the locking is successful. + case 16: + case 8: + return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet. + case 9: + // musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves. + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + default: { + return -ERRNO_CODES.EINVAL; } - } else $$0$i = $first; } - } else $$0$i = $first; while (0); - if (($$0$i | 0) == ($first | 0)) { - $$0 = $first; - break L1; - } - $510 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($510 | 0)) { - $$0 = $first; - break L1; - } - $512 = $db + 16 | 0; - HEAP32[$11 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($10, $510 + -24 | 0, $11); - $516 = $db + 20 | 0; - $517 = HEAP32[$516 >> 2] | 0; - $519 = HEAP32[$db + 24 >> 2] | 0; - if ($517 >>> 0 < $519 >>> 0) { - HEAP32[$517 + 12 >> 2] = HEAP32[$10 + 12 >> 2]; - HEAP32[$517 >> 2] = HEAP32[$10 >> 2]; - $526 = $10 + 4 | 0; - HEAP32[$517 + 4 >> 2] = HEAP32[$526 >> 2]; - $528 = $10 + 8 | 0; - HEAP32[$517 + 8 >> 2] = HEAP32[$528 >> 2]; - HEAP32[$528 >> 2] = 0; - HEAP32[$526 >> 2] = 0; - HEAP32[$10 >> 2] = 0; - HEAP32[$516 >> 2] = (HEAP32[$516 >> 2] | 0) + 16; - } else { - $536 = HEAP32[$512 >> 2] | 0; - $537 = $517 - $536 | 0; - $538 = $537 >> 4; - $539 = $538 + 1 | 0; - if (($537 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($512); - $542 = $519 - $536 | 0; - if ($542 >> 4 >>> 0 < 1073741823) { - $545 = $542 >> 3; - $$0$i$i$i56 = $545 >>> 0 < $539 >>> 0 ? $539 : $545; - } else $$0$i$i$i56 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i56, $538, $db + 28 | 0); - $548 = $__v$i$i$i + 8 | 0; - $549 = HEAP32[$548 >> 2] | 0; - HEAP32[$549 + 12 >> 2] = HEAP32[$10 + 12 >> 2]; - HEAP32[$549 >> 2] = HEAP32[$10 >> 2]; - $555 = $10 + 4 | 0; - HEAP32[$549 + 4 >> 2] = HEAP32[$555 >> 2]; - $557 = $10 + 8 | 0; - HEAP32[$549 + 8 >> 2] = HEAP32[$557 >> 2]; - HEAP32[$557 >> 2] = 0; - HEAP32[$555 >> 2] = 0; - HEAP32[$10 >> 2] = 0; - HEAP32[$548 >> 2] = $549 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($512, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($10); - $$0 = $$0$i; - break L1; - break; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall265(which, varargs) {SYSCALLS.varargs = varargs; + try { + // clock_nanosleep + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function _time(ptr) { + var ret = (Date.now()/1000)|0; + if (ptr) { + HEAP32[((ptr)>>2)]=ret; + } + return ret; } - case 67: - { - $561 = $first + 1 | 0; - $562 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($561, $last, $db) | 0; - if (($562 | 0) == ($561 | 0)) { - $$0 = $first; - break L1; + + function _pthread_self() { + //FIXME: assumes only a single thread + return 0; + } + + function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; + try { + // llseek + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[((result)>>2)]=stream.position; + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; + try { + // writev + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doWritev(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + + function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs; + try { + // readv + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); + return -e.errno; + } + } + + var ___dso_handle=allocate(1, "i32*", ALLOC_STATIC); +embind_init_charCodes() +BindingError = Module['BindingError'] = extendError(Error, 'BindingError'); +InternalError = Module['InternalError'] = extendError(Error, 'InternalError'); +FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink; +__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() }); +if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); } +___buildEnvironment(ENV); +init_emval(); +UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError'); +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + +staticSealed = true; // seal the static portion of memory + +STACK_MAX = STACK_BASE + TOTAL_STACK; + +DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); + +assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + + var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC); + + +function nullFunc_iiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiiiid(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiiid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_di(x) { Module["printErr"]("Invalid function pointer called with signature 'di'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_dii(x) { Module["printErr"]("Invalid function pointer called with signature 'dii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_iiiiid(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiiid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } + +function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viiiii(index,a1,a2,a3,a4,a5) { + try { + Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_vid(index,a1,a2) { + try { + Module["dynCall_vid"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6) { + try { + return Module["dynCall_iiiiiid"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_vi(index,a1) { + try { + Module["dynCall_vi"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_vii(index,a1,a2) { + try { + Module["dynCall_vii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_ii(index,a1) { + try { + return Module["dynCall_ii"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiiii(index,a1,a2,a3,a4,a5) { + try { + return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiii(index,a1,a2,a3) { + try { + return Module["dynCall_iiii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { + try { + Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_di(index,a1) { + try { + return Module["dynCall_di"](index,a1); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) { + try { + return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7) { + try { + Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iii(index,a1,a2) { + try { + return Module["dynCall_iii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_dii(index,a1,a2) { + try { + return Module["dynCall_dii"](index,a1,a2); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiii(index,a1,a2,a3,a4) { + try { + return Module["dynCall_iiiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viii(index,a1,a2,a3) { + try { + Module["dynCall_viii"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viid(index,a1,a2,a3) { + try { + Module["dynCall_viid"](index,a1,a2,a3); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_iiiiid(index,a1,a2,a3,a4,a5) { + try { + return Module["dynCall_iiiiid"](index,a1,a2,a3,a4,a5); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +function invoke_viiii(index,a1,a2,a3,a4) { + try { + Module["dynCall_viiii"](index,a1,a2,a3,a4); + } catch(e) { + if (typeof e !== 'number' && e !== 'longjmp') throw e; + asm["setThrew"](1, 0); + } +} + +Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; + +Module.asmLibraryArg = { "abort": abort, "assert": assert, "nullFunc_iiiiiiii": nullFunc_iiiiiiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vid": nullFunc_vid, "nullFunc_iiiiiid": nullFunc_iiiiiid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_iiiiiii": nullFunc_iiiiiii, "nullFunc_ii": nullFunc_ii, "nullFunc_iiiiii": nullFunc_iiiiii, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_di": nullFunc_di, "nullFunc_iiiiiiiii": nullFunc_iiiiiiiii, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_dii": nullFunc_dii, "nullFunc_i": nullFunc_i, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_iiiiid": nullFunc_iiiiid, "nullFunc_viiii": nullFunc_viiii, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_viiiii": invoke_viiiii, "invoke_vid": invoke_vid, "invoke_iiiiiid": invoke_iiiiiid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_ii": invoke_ii, "invoke_iiiiii": invoke_iiiiii, "invoke_iiii": invoke_iiii, "invoke_viiiiii": invoke_viiiiii, "invoke_di": invoke_di, "invoke_iiiiiiiii": invoke_iiiiiiiii, "invoke_viiiiiii": invoke_viiiiiii, "invoke_iii": invoke_iii, "invoke_dii": invoke_dii, "invoke_i": invoke_i, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_iiiiid": invoke_iiiiid, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "___syscall221": ___syscall221, "floatReadValueFromPointer": floatReadValueFromPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "_sqrtf": _sqrtf, "throwInternalError": throwInternalError, "get_first_emval": get_first_emval, "___cxa_guard_acquire": ___cxa_guard_acquire, "___assert_fail": ___assert_fail, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_longjmp": _longjmp, "getShiftFromSize": getShiftFromSize, "__addDays": __addDays, "_sbrk": _sbrk, "___cxa_begin_catch": ___cxa_begin_catch, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_sysconf": _sysconf, "__embind_register_std_string": __embind_register_std_string, "_cos": _cos, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "__isLeapYear": __isLeapYear, "___cxa_atexit": ___cxa_atexit, "_pthread_cleanup_push": _pthread_cleanup_push, "__embind_register_constant": __embind_register_constant, "___syscall140": ___syscall140, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "_pthread_cleanup_pop": _pthread_cleanup_pop, "_atan2f": _atan2f, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "___cxa_guard_release": ___cxa_guard_release, "___setErrNo": ___setErrNo, "_llvm_pow_f32": _llvm_pow_f32, "__embind_register_bool": __embind_register_bool, "___resumeException": ___resumeException, "createNamedFunction": createNamedFunction, "__embind_register_emval": __embind_register_emval, "___buildEnvironment": ___buildEnvironment, "__emval_decref": __emval_decref, "_pthread_once": _pthread_once, "_emscripten_asm_const_14": _emscripten_asm_const_14, "heap32VectorToArray": heap32VectorToArray, "_logf": _logf, "___syscall10": ___syscall10, "___lock": ___lock, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "ensureOverloadTable": ensureOverloadTable, "_time": _time, "_pthread_mutex_lock": _pthread_mutex_lock, "_gettimeofday": _gettimeofday, "new_": new_, "_exit": _exit, "_emscripten_asm_const_4": _emscripten_asm_const_4, "replacePublicSymbol": replacePublicSymbol, "_emscripten_asm_const_1": _emscripten_asm_const_1, "___syscall265": ___syscall265, "integerReadValueFromPointer": integerReadValueFromPointer, "__embind_register_integer": __embind_register_integer, "___cxa_allocate_exception": ___cxa_allocate_exception, "_ceilf": _ceilf, "_localtime_r": _localtime_r, "_tzset": _tzset, "_fabsf": _fabsf, "embind_init_charCodes": embind_init_charCodes, "_embind_repr": _embind_repr, "_pthread_getspecific": _pthread_getspecific, "_sinf": _sinf, "throwUnboundTypeError": throwUnboundTypeError, "craftInvokerFunction": craftInvokerFunction, "_getenv": _getenv, "runDestructors": runDestructors, "_floorf": _floorf, "makeLegalFunctionName": makeLegalFunctionName, "___syscall33": ___syscall33, "_pthread_key_create": _pthread_key_create, "init_emval": init_emval, "_pthread_cond_broadcast": _pthread_cond_broadcast, "_abort": _abort, "throwBindingError": throwBindingError, "getTypeName": getTypeName, "_localtime": _localtime, "_strftime": _strftime, "_pthread_cond_wait": _pthread_cond_wait, "_sin": _sin, "_cosf": _cosf, "__embind_register_memory_view": __embind_register_memory_view, "extendError": extendError, "__embind_register_void": __embind_register_void, "__embind_register_function": __embind_register_function, "_emscripten_asm_const_33": _emscripten_asm_const_33, "_strftime_l": _strftime_l, "__emval_register": __emval_register, "__embind_register_std_wstring": __embind_register_std_wstring, "__exit": __exit, "__arraySum": __arraySum, "readLatin1String": readLatin1String, "_pthread_self": _pthread_self, "_pthread_mutex_unlock": _pthread_mutex_unlock, "__embind_register_float": __embind_register_float, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_asm_const_5": _emscripten_asm_const_5, "_pthread_setspecific": _pthread_setspecific, "registerType": registerType, "___cxa_throw": ___cxa_throw, "count_emval_handles": count_emval_handles, "requireFunction": requireFunction, "_emscripten_longjmp": _emscripten_longjmp, "_atexit": _atexit, "_sqrt": _sqrt, "exposePublicSymbol": exposePublicSymbol, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle }; +// EMSCRIPTEN_START_ASM +var asm = (function(global, env, buffer) { + 'use asm'; + + + var Int8View = global.Int8Array; + var Int16View = global.Int16Array; + var Int32View = global.Int32Array; + var Uint8View = global.Uint8Array; + var Uint16View = global.Uint16Array; + var Uint32View = global.Uint32Array; + var Float32View = global.Float32Array; + var Float64View = global.Float64Array; + var HEAP8 = new Int8View(buffer); + var HEAP16 = new Int16View(buffer); + var HEAP32 = new Int32View(buffer); + var HEAPU8 = new Uint8View(buffer); + var HEAPU16 = new Uint16View(buffer); + var HEAPU32 = new Uint32View(buffer); + var HEAPF32 = new Float32View(buffer); + var HEAPF64 = new Float64View(buffer); + var byteLength = global.byteLength; + + + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var cttz_i8=env.cttz_i8|0; + var ___dso_handle=env.___dso_handle|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; + + var tempRet0 = 0; + var tempRet1 = 0; + var tempRet2 = 0; + var tempRet3 = 0; + var tempRet4 = 0; + var tempRet5 = 0; + var tempRet6 = 0; + var tempRet7 = 0; + var tempRet8 = 0; + var tempRet9 = 0; + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_clz32=global.Math.clz32; + var abort=env.abort; + var assert=env.assert; + var nullFunc_iiiiiiii=env.nullFunc_iiiiiiii; + var nullFunc_viiiii=env.nullFunc_viiiii; + var nullFunc_vid=env.nullFunc_vid; + var nullFunc_iiiiiid=env.nullFunc_iiiiiid; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_iiiiiii=env.nullFunc_iiiiiii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_iiiiii=env.nullFunc_iiiiii; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_viiiiii=env.nullFunc_viiiiii; + var nullFunc_di=env.nullFunc_di; + var nullFunc_iiiiiiiii=env.nullFunc_iiiiiiiii; + var nullFunc_viiiiiii=env.nullFunc_viiiiiii; + var nullFunc_iii=env.nullFunc_iii; + var nullFunc_dii=env.nullFunc_dii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_iiiii=env.nullFunc_iiiii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_v=env.nullFunc_v; + var nullFunc_viid=env.nullFunc_viid; + var nullFunc_iiiiid=env.nullFunc_iiiiid; + var nullFunc_viiii=env.nullFunc_viiii; + var invoke_iiiiiiii=env.invoke_iiiiiiii; + var invoke_viiiii=env.invoke_viiiii; + var invoke_vid=env.invoke_vid; + var invoke_iiiiiid=env.invoke_iiiiiid; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_iiiiiii=env.invoke_iiiiiii; + var invoke_ii=env.invoke_ii; + var invoke_iiiiii=env.invoke_iiiiii; + var invoke_iiii=env.invoke_iiii; + var invoke_viiiiii=env.invoke_viiiiii; + var invoke_di=env.invoke_di; + var invoke_iiiiiiiii=env.invoke_iiiiiiiii; + var invoke_viiiiiii=env.invoke_viiiiiii; + var invoke_iii=env.invoke_iii; + var invoke_dii=env.invoke_dii; + var invoke_i=env.invoke_i; + var invoke_iiiii=env.invoke_iiiii; + var invoke_viii=env.invoke_viii; + var invoke_v=env.invoke_v; + var invoke_viid=env.invoke_viid; + var invoke_iiiiid=env.invoke_iiiiid; + var invoke_viiii=env.invoke_viiii; + var _fabs=env._fabs; + var ___syscall221=env.___syscall221; + var floatReadValueFromPointer=env.floatReadValueFromPointer; + var simpleReadValueFromPointer=env.simpleReadValueFromPointer; + var _sqrtf=env._sqrtf; + var throwInternalError=env.throwInternalError; + var get_first_emval=env.get_first_emval; + var ___cxa_guard_acquire=env.___cxa_guard_acquire; + var ___assert_fail=env.___assert_fail; + var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv; + var _longjmp=env._longjmp; + var getShiftFromSize=env.getShiftFromSize; + var __addDays=env.__addDays; + var _sbrk=env._sbrk; + var ___cxa_begin_catch=env.___cxa_begin_catch; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _sysconf=env._sysconf; + var __embind_register_std_string=env.__embind_register_std_string; + var _cos=env._cos; + var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved; + var __isLeapYear=env.__isLeapYear; + var ___cxa_atexit=env.___cxa_atexit; + var _pthread_cleanup_push=env._pthread_cleanup_push; + var __embind_register_constant=env.__embind_register_constant; + var ___syscall140=env.___syscall140; + var ___syscall145=env.___syscall145; + var ___syscall146=env.___syscall146; + var _pthread_cleanup_pop=env._pthread_cleanup_pop; + var _atan2f=env._atan2f; + var ___cxa_find_matching_catch=env.___cxa_find_matching_catch; + var ___cxa_guard_release=env.___cxa_guard_release; + var ___setErrNo=env.___setErrNo; + var _llvm_pow_f32=env._llvm_pow_f32; + var __embind_register_bool=env.__embind_register_bool; + var ___resumeException=env.___resumeException; + var createNamedFunction=env.createNamedFunction; + var __embind_register_emval=env.__embind_register_emval; + var ___buildEnvironment=env.___buildEnvironment; + var __emval_decref=env.__emval_decref; + var _pthread_once=env._pthread_once; + var _emscripten_asm_const_14=env._emscripten_asm_const_14; + var heap32VectorToArray=env.heap32VectorToArray; + var _logf=env._logf; + var ___syscall10=env.___syscall10; + var ___lock=env.___lock; + var ___syscall6=env.___syscall6; + var ___syscall5=env.___syscall5; + var ensureOverloadTable=env.ensureOverloadTable; + var _time=env._time; + var _pthread_mutex_lock=env._pthread_mutex_lock; + var _gettimeofday=env._gettimeofday; + var new_=env.new_; + var _exit=env._exit; + var _emscripten_asm_const_4=env._emscripten_asm_const_4; + var replacePublicSymbol=env.replacePublicSymbol; + var _emscripten_asm_const_1=env._emscripten_asm_const_1; + var ___syscall265=env.___syscall265; + var integerReadValueFromPointer=env.integerReadValueFromPointer; + var __embind_register_integer=env.__embind_register_integer; + var ___cxa_allocate_exception=env.___cxa_allocate_exception; + var _ceilf=env._ceilf; + var _localtime_r=env._localtime_r; + var _tzset=env._tzset; + var _fabsf=env._fabsf; + var embind_init_charCodes=env.embind_init_charCodes; + var _embind_repr=env._embind_repr; + var _pthread_getspecific=env._pthread_getspecific; + var _sinf=env._sinf; + var throwUnboundTypeError=env.throwUnboundTypeError; + var craftInvokerFunction=env.craftInvokerFunction; + var _getenv=env._getenv; + var runDestructors=env.runDestructors; + var _floorf=env._floorf; + var makeLegalFunctionName=env.makeLegalFunctionName; + var ___syscall33=env.___syscall33; + var _pthread_key_create=env._pthread_key_create; + var init_emval=env.init_emval; + var _pthread_cond_broadcast=env._pthread_cond_broadcast; + var _abort=env._abort; + var throwBindingError=env.throwBindingError; + var getTypeName=env.getTypeName; + var _localtime=env._localtime; + var _strftime=env._strftime; + var _pthread_cond_wait=env._pthread_cond_wait; + var _sin=env._sin; + var _cosf=env._cosf; + var __embind_register_memory_view=env.__embind_register_memory_view; + var extendError=env.extendError; + var __embind_register_void=env.__embind_register_void; + var __embind_register_function=env.__embind_register_function; + var _emscripten_asm_const_33=env._emscripten_asm_const_33; + var _strftime_l=env._strftime_l; + var __emval_register=env.__emval_register; + var __embind_register_std_wstring=env.__embind_register_std_wstring; + var __exit=env.__exit; + var __arraySum=env.__arraySum; + var readLatin1String=env.readLatin1String; + var _pthread_self=env._pthread_self; + var _pthread_mutex_unlock=env._pthread_mutex_unlock; + var __embind_register_float=env.__embind_register_float; + var ___syscall54=env.___syscall54; + var ___unlock=env.___unlock; + var _emscripten_asm_const_5=env._emscripten_asm_const_5; + var _pthread_setspecific=env._pthread_setspecific; + var registerType=env.registerType; + var ___cxa_throw=env.___cxa_throw; + var count_emval_handles=env.count_emval_handles; + var requireFunction=env.requireFunction; + var _emscripten_longjmp=env._emscripten_longjmp; + var _atexit=env._atexit; + var _sqrt=env._sqrt; + var exposePublicSymbol=env.exposePublicSymbol; + var tempFloat = 0.0; + +function _emscripten_replace_memory(newBuffer) { + if ((byteLength(newBuffer) & 0xffffff || byteLength(newBuffer) <= 0xffffff) || byteLength(newBuffer) > 0x80000000) return false; + HEAP8 = new Int8View(newBuffer); + HEAP16 = new Int16View(newBuffer); + HEAP32 = new Int32View(newBuffer); + HEAPU8 = new Uint8View(newBuffer); + HEAPU16 = new Uint16View(newBuffer); + HEAPU32 = new Uint32View(newBuffer); + HEAPF32 = new Float32View(newBuffer); + HEAPF64 = new Float64View(newBuffer); + buffer = newBuffer; + return true; +} + +// EMSCRIPTEN_START_FUNCS +function __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i105 = 0, $$0$i$i$i113 = 0, $$0$i$i$i123 = 0, $$0$i$i$i131 = 0, $$0$i$i$i136 = 0, $$0$i$i$i148 = 0, $$0$i$i$i153 = 0, $$0$i$i$i17 = 0, $$0$i$i$i181 = 0, $$0$i$i$i191509 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i29 = 0, $$0$i$i$i31 = 0, $$0$i$i$i38 = 0, $$0$i$i$i43 = 0, $$0$i$i$i51 = 0, $$0$i$i$i56 = 0, $$0$i$i$i61 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i87 = 0, $$0$i$i$i95 = 0, $$01$i$i = 0, $$03$i$i = 0, $$08$i = 0, $$1$i$i = 0, $$1$i263 = 0, $$12$i$i = 0, $$13$i259$ph = 0, $$14$i$i = 0, $$2$i$i = 0, $$in = 0, $$lcssa667 = 0, $$lcssa674 = 0, $$lcssa682 = 0, $$lcssa690 = 0, $$lcssa698 = 0, $$lcssa706 = 0, $$ph390 = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i203 = 0, $$pre$i$i$i21$i = 0, $$pre$i$i$i36$i = 0, $$pre$i$i$i52$i = 0, $$pre$i$i$i71$i = 0, $0 = 0, $1 = 0, $10 = 0, $1001 = 0, $1003 = 0, $1006 = 0, $101 = 0, $1010 = 0, $1013 = 0, $1018 = 0, $1019 = 0, $1022 = 0, $1023 = 0, $1025 = 0, $1026 = 0, $1035 = 0, $1038 = 0, $104 = 0, $1043 = 0, $1044 = 0, $1049 = 0, $1051 = 0, $1054 = 0, $1058 = 0, $1061 = 0, $1066 = 0, $1067 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1073 = 0, $1074 = 0, $108 = 0, $1083 = 0, $1086 = 0, $1094 = 0, $1096 = 0, $11 = 0, $1100 = 0, $1101 = 0, $1103 = 0, $1110 = 0, $1112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1126 = 0, $1129 = 0, $113 = 0, $1132 = 0, $1133 = 0, $1139 = 0, $1141 = 0, $1145 = 0, $115 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1159 = 0, $1161 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1168 = 0, $117 = 0, $1178 = 0, $1179 = 0, $1180 = 0, $1181 = 0, $1184 = 0, $1187 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1205 = 0, $1210 = 0, $1217 = 0, $1219 = 0, $122 = 0, $1223 = 0, $1226 = 0, $1228 = 0, $123 = 0, $1233 = 0, $1237 = 0, $124 = 0, $1245 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $126 = 0, $1269 = 0, $1270 = 0, $1271 = 0, $1274 = 0, $1277 = 0, $1283 = 0, $1289 = 0, $1290 = 0, $1291 = 0, $1297 = 0, $1299 = 0, $13 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1306 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $1322 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1346 = 0, $1351 = 0, $1358 = 0, $136 = 0, $1360 = 0, $1364 = 0, $1367 = 0, $1369 = 0, $1374 = 0, $1378 = 0, $1386 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1397 = 0, $14 = 0, $1402 = 0, $1409 = 0, $1411 = 0, $1415 = 0, $1418 = 0, $1420 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1432 = 0, $1436 = 0, $1439 = 0, $1443 = 0, $1444 = 0, $1446 = 0, $1449 = 0, $1455 = 0, $1458 = 0, $147 = 0, $1470 = 0, $1474 = 0, $1475 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $15 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1508 = 0, $1511 = 0, $1517 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1531 = 0, $1533 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1540 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1556 = 0, $1559 = 0, $1562 = 0, $1563 = 0, $1568 = 0, $1569 = 0, $1570 = 0, $1571 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1577 = 0, $1582 = 0, $1589 = 0, $1591 = 0, $1595 = 0, $1598 = 0, $16 = 0, $1600 = 0, $1605 = 0, $1609 = 0, $1617 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1646 = 0, $1649 = 0, $165 = 0, $1655 = 0, $166 = 0, $1661 = 0, $1662 = 0, $1668 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $168 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1693 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1700 = 0, $1705 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1729 = 0, $1732 = 0, $1743 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1753 = 0, $1755 = 0, $1766 = 0, $1768 = 0, $1769 = 0, $1776 = 0, $1778 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $1792 = 0, $1795 = 0, $1798 = 0, $1799 = 0, $18 = 0, $1805 = 0, $1807 = 0, $181 = 0, $1811 = 0, $1813 = 0, $1815 = 0, $1817 = 0, $1818 = 0, $182 = 0, $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1831 = 0, $1832 = 0, $1834 = 0, $1839 = 0, $1846 = 0, $1848 = 0, $1853 = 0, $1858 = 0, $186 = 0, $1860 = 0, $1866 = 0, $1869 = 0, $1871 = 0, $1881 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1889 = 0, $189 = 0, $1891 = 0, $1892 = 0, $1894 = 0, $1895 = 0, $1897 = 0, $19 = 0, $1903 = 0, $1912 = 0, $1915 = 0, $1917 = 0, $1927 = 0, $1930 = 0, $1933 = 0, $1935 = 0, $1942 = 0, $1945 = 0, $1947 = 0, $195 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1961 = 0, $1963 = 0, $1966 = 0, $1967 = 0, $197 = 0, $1970 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1977 = 0, $1984 = 0, $1986 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2003 = 0, $2006 = 0, $2007 = 0, $2013 = 0, $2015 = 0, $2019 = 0, $202 = 0, $2023 = 0, $2027 = 0, $2029 = 0, $2033 = 0, $2034 = 0, $2036 = 0, $204 = 0, $2043 = 0, $2045 = 0, $205 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2059 = 0, $2062 = 0, $2065 = 0, $2066 = 0, $2072 = 0, $2074 = 0, $2078 = 0, $208 = 0, $2080 = 0, $2082 = 0, $2083 = 0, $209 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2097 = 0, $2099 = 0, $21 = 0, $211 = 0, $2110 = 0, $2113 = 0, $2114 = 0, $2115 = 0, $2117 = 0, $212 = 0, $2124 = 0, $2126 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $214 = 0, $2140 = 0, $2143 = 0, $2146 = 0, $2147 = 0, $2153 = 0, $2155 = 0, $2159 = 0, $2161 = 0, $2163 = 0, $2169 = 0, $2170 = 0, $2171 = 0, $2177 = 0, $2179 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2186 = 0, $219 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $2202 = 0, $2205 = 0, $2208 = 0, $2209 = 0, $2214 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $2220 = 0, $2221 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2238 = 0, $2241 = 0, $2247 = 0, $2251 = 0, $2253 = 0, $2257 = 0, $2258 = 0, $226 = 0, $2260 = 0, $2267 = 0, $2269 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2283 = 0, $2286 = 0, $2289 = 0, $2290 = 0, $2296 = 0, $2298 = 0, $23 = 0, $2308 = 0, $2309 = 0, $2311 = 0, $2317 = 0, $2318 = 0, $2322 = 0, $2326 = 0, $2329 = 0, $233 = 0, $2332 = 0, $2335 = 0, $2337 = 0, $2347 = 0, $2348 = 0, $2351 = 0, $2354 = 0, $2355 = 0, $2357 = 0, $2364 = 0, $2365 = 0, $2366 = 0, $2367 = 0, $2371 = 0, $2373 = 0, $2376 = 0, $2377 = 0, $238 = 0, $2382 = 0, $2385 = 0, $2386 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2398 = 0, $24 = 0, $240 = 0, $2402 = 0, $2405 = 0, $2408 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2432 = 0, $2434 = 0, $2438 = 0, $2441 = 0, $2444 = 0, $2446 = 0, $2459 = 0, $2461 = 0, $2465 = 0, $2466 = 0, $2468 = 0, $2475 = 0, $2477 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2491 = 0, $2494 = 0, $2497 = 0, $2498 = 0, $25 = 0, $250 = 0, $2504 = 0, $2506 = 0, $2510 = 0, $2512 = 0, $2516 = 0, $2518 = 0, $2522 = 0, $2523 = 0, $2525 = 0, $2532 = 0, $2534 = 0, $254 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2548 = 0, $255 = 0, $2551 = 0, $2554 = 0, $2555 = 0, $2561 = 0, $2563 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $258 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $264 = 0, $269 = 0, $27 = 0, $276 = 0, $278 = 0, $28 = 0, $283 = 0, $288 = 0, $29 = 0, $290 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $308 = 0, $309 = 0, $31 = 0, $318 = 0, $32 = 0, $321 = 0, $324 = 0, $326 = 0, $33 = 0, $336 = 0, $34 = 0, $341 = 0, $342 = 0, $344 = 0, $345 = 0, $35 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $359 = 0, $36 = 0, $360 = 0, $365 = 0, $367 = 0, $37 = 0, $370 = 0, $374 = 0, $377 = 0, $38 = 0, $382 = 0, $383 = 0, $386 = 0, $387 = 0, $389 = 0, $39 = 0, $390 = 0, $399 = 0, $4 = 0, $40 = 0, $402 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $415 = 0, $416 = 0, $418 = 0, $42 = 0, $422 = 0, $424 = 0, $429 = 0, $43 = 0, $434 = 0, $436 = 0, $44 = 0, $441 = 0, $442 = 0, $443 = 0, $446 = 0, $449 = 0, $45 = 0, $451 = 0, $458 = 0, $46 = 0, $465 = 0, $467 = 0, $47 = 0, $470 = 0, $474 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $486 = 0, $487 = 0, $489 = 0, $49 = 0, $490 = 0, $499 = 0, $5 = 0, $50 = 0, $502 = 0, $510 = 0, $512 = 0, $516 = 0, $517 = 0, $519 = 0, $526 = 0, $528 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $542 = 0, $545 = 0, $548 = 0, $549 = 0, $555 = 0, $557 = 0, $56 = 0, $561 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $57 = 0, $571 = 0, $574 = 0, $575 = 0, $577 = 0, $584 = 0, $586 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $6 = 0, $600 = 0, $603 = 0, $606 = 0, $607 = 0, $613 = 0, $615 = 0, $620 = 0, $624 = 0, $626 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $64 = 0, $641 = 0, $644 = 0, $648 = 0, $657 = 0, $658 = 0, $664 = 0, $669 = 0, $679 = 0, $681 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $698 = 0, $7 = 0, $70 = 0, $703 = 0, $705 = 0, $716 = 0, $718 = 0, $72 = 0, $722 = 0, $723 = 0, $725 = 0, $73 = 0, $732 = 0, $734 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $748 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $76 = 0, $761 = 0, $763 = 0, $767 = 0, $768 = 0, $77 = 0, $771 = 0, $772 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $783 = 0, $79 = 0, $790 = 0, $792 = 0, $8 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $806 = 0, $809 = 0, $812 = 0, $813 = 0, $819 = 0, $82 = 0, $821 = 0, $826 = 0, $827 = 0, $829 = 0, $831 = 0, $832 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $846 = 0, $856 = 0, $857 = 0, $858 = 0, $86 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $883 = 0, $885 = 0, $888 = 0, $892 = 0, $895 = 0, $9 = 0, $900 = 0, $901 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $917 = 0, $920 = 0, $925 = 0, $926 = 0, $929 = 0, $934 = 0, $936 = 0, $939 = 0, $943 = 0, $946 = 0, $95 = 0, $951 = 0, $952 = 0, $955 = 0, $956 = 0, $958 = 0, $959 = 0, $96 = 0, $968 = 0, $97 = 0, $971 = 0, $976 = 0, $979 = 0, $98 = 0, $981 = 0, $991 = 0, $994 = 0, $__p$0$i$i$i508 = 0, $__p$0$ph$i$i$i = 0, $__v$i$i$i = 0, $args = 0, $cv = 0, $k$0$i515 = 0, $k$0560 = 0, $k11$0540 = 0, $k15$0543 = 0, $k2$0$i516 = 0, $k20$0550 = 0, $k5$0533 = 0, $k8$0536 = 0, $num1$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $phitmp$i$i$i$i$i$i$i240 = 0, $phitmp$i2$i$i$i$i$i$i243 = 0, $proto = 0, $ref_qual$0$i$ph$ph = 0, $ref_qual$0$i$ph521 = 0, $ref_qual$0$i$ph521$lcssa = 0, $t$0$i = 0, $t$1$i$be = 0, $t$1$i$ph$ph = 0, $t$1$i$ph520 = 0, $t$1$i518 = 0, $t$1$i518$lcssa = 0, $t12$0$i = 0, $template_args = 0, $type = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 784 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i$i = sp + 752 | 0; + $0 = sp + 728 | 0; + $1 = sp + 716 | 0; + $2 = sp + 704 | 0; + $3 = sp + 680 | 0; + $4 = sp + 656 | 0; + $5 = sp + 632 | 0; + $6 = sp + 620 | 0; + $num1$i = sp + 608 | 0; + $7 = sp + 596 | 0; + $8 = sp + 584 | 0; + $9 = sp + 572 | 0; + $cv = sp + 568 | 0; + $10 = sp + 552 | 0; + $11 = sp + 544 | 0; + $12 = sp + 528 | 0; + $13 = sp + 520 | 0; + $14 = sp + 504 | 0; + $15 = sp + 496 | 0; + $16 = sp + 480 | 0; + $17 = sp + 472 | 0; + $18 = sp + 456 | 0; + $19 = sp + 452 | 0; + $20 = sp + 440 | 0; + $21 = sp + 428 | 0; + $22 = sp + 416 | 0; + $23 = sp + 404 | 0; + $args = sp + 392 | 0; + $24 = sp + 376 | 0; + $25 = sp + 368 | 0; + $type = sp + 356 | 0; + $26 = sp + 344 | 0; + $27 = sp + 320 | 0; + $28 = sp + 308 | 0; + $29 = sp + 296 | 0; + $30 = sp + 284 | 0; + $proto = sp + 272 | 0; + $31 = sp + 248 | 0; + $32 = sp + 236 | 0; + $33 = sp + 224 | 0; + $34 = sp + 212 | 0; + $35 = sp + 200 | 0; + $36 = sp + 176 | 0; + $37 = sp + 164 | 0; + $38 = sp + 152 | 0; + $39 = sp + 136 | 0; + $40 = sp + 128 | 0; + $41 = sp + 112 | 0; + $42 = sp + 108 | 0; + $template_args = sp + 96 | 0; + $43 = sp + 80 | 0; + $44 = sp + 72 | 0; + $45 = sp + 56 | 0; + $46 = sp + 48 | 0; + $47 = sp + 32 | 0; + $48 = sp + 24 | 0; + $49 = sp + 8 | 0; + $50 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { + switch (HEAP8[$first >> 0] | 0) { + case 75: + case 86: + case 114: + { + HEAP32[$cv >> 2] = 0; + $54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) | 0; + if (($54 | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $56 = HEAP8[$54 >> 0] | 0; + $57 = $db + 4 | 0; + $63 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $64 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0; + $70 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($64 | 0) == ($54 | 0)) { + $$0 = $first; + break L1; + } + $72 = $56 << 24 >> 24 == 70; + $73 = $db + 20 | 0; + $74 = HEAP32[$73 >> 2] | 0; + if ($72) { + $75 = $74 + -16 | 0; + $77 = $74; + do { + $76 = $77 + -16 | 0; + HEAP32[$73 >> 2] = $76; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($76); + $77 = HEAP32[$73 >> 2] | 0; + } while (($77 | 0) != ($75 | 0)); + $86 = $75; + } else $86 = $74; + $79 = $db + 16 | 0; + $82 = HEAP32[$db + 12 >> 2] | 0; + $84 = HEAP32[$db + 24 >> 2] | 0; + if ($86 >>> 0 < $84 >>> 0) { + HEAP32[$86 >> 2] = 0; + HEAP32[$86 + 4 >> 2] = 0; + HEAP32[$86 + 8 >> 2] = 0; + HEAP32[$86 + 12 >> 2] = $82; + HEAP32[$73 >> 2] = (HEAP32[$73 >> 2] | 0) + 16; + } else { + $95 = HEAP32[$79 >> 2] | 0; + $96 = $86 - $95 | 0; + $97 = $96 >> 4; + $98 = $97 + 1 | 0; + if (($96 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($79); + $101 = $84 - $95 | 0; + if ($101 >> 4 >>> 0 < 1073741823) { + $104 = $101 >> 3; + $$0$i$i$i38 = $104 >>> 0 < $98 >>> 0 ? $98 : $104; + } else $$0$i$i$i38 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i38, $97, $db + 28 | 0); + $107 = $__v$i$i$i + 8 | 0; + $108 = HEAP32[$107 >> 2] | 0; + HEAP32[$108 >> 2] = 0; + HEAP32[$108 + 4 >> 2] = 0; + HEAP32[$108 + 8 >> 2] = 0; + HEAP32[$108 + 12 >> 2] = $82; + HEAP32[$107 >> 2] = $108 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($79, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $113 = HEAP32[$cv >> 2] | 0; + $115 = ($113 & 1 | 0) == 0; + $117 = ($113 & 2 | 0) == 0; + $119 = ($113 & 4 | 0) == 0; + $120 = $__v$i$i$i + 8 | 0; + if ($63 >>> 0 < $70 >>> 0) $k$0560 = $63; else { + $$0 = $64; + break L1; + } + while (1) { + if ($72) { + $122 = HEAP32[$db >> 2] | 0; + $123 = $122 + ($k$0560 * 24 | 0) + 12 | 0; + $124 = HEAP8[$123 >> 0] | 0; + $126 = ($124 & 1) == 0; + if ($126) { + $$in = ($124 & 255) >>> 1; + $136 = $123 + 1 | 0; + } else { + $$in = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0; + $136 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0; + } + $134 = $$in + -2 | 0; + if ((HEAP8[$136 + $134 >> 0] | 0) == 38) $p$0 = $$in + -3 | 0; else { + if ($126) { + $147 = ($124 & 255) >>> 1; + $149 = $123 + 1 | 0; + } else { + $147 = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0; + $149 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0; + } + $p$0 = (HEAP8[$149 + ($147 + -1) >> 0] | 0) == 38 ? $134 : $$in; + } + if ($115) $p$1 = $p$0; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($123, $p$0, 47838) | 0; + $p$1 = $p$0 + 6 | 0; + } + if ($117) $p$2 = $p$1; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$1, 47845) | 0; + $p$2 = $p$1 + 9 | 0; + } + if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$2, 47855) | 0; + } else { + if (!$115) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 47838) | 0; + if (!$117) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 47845) | 0; + if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 47855) | 0; + } + $164 = HEAP32[$73 >> 2] | 0; + $165 = $164 + -16 | 0; + $166 = HEAP32[$db >> 2] | 0; + $167 = $166 + ($k$0560 * 24 | 0) | 0; + $168 = $164 + -12 | 0; + $169 = HEAP32[$168 >> 2] | 0; + if (($169 | 0) == (HEAP32[$164 + -8 >> 2] | 0)) { + $181 = $169 - (HEAP32[$165 >> 2] | 0) | 0; + $182 = ($181 | 0) / 24 | 0; + $183 = $182 + 1 | 0; + if (($181 | 0) < -24) { + $$lcssa706 = $165; + break; + } + if ($182 >>> 0 < 1073741823) { + $186 = $182 << 1; + $$0$i$i$i43 = $186 >>> 0 < $183 >>> 0 ? $183 : $186; + } else $$0$i$i$i43 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i43, $182, $164 + -4 | 0); + $189 = HEAP32[$120 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189, $167); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0); + HEAP32[$120 >> 2] = $189 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($165, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169, $167); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0); + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 24; + } + $k$0560 = $k$0560 + 1 | 0; + if ($k$0560 >>> 0 >= $70 >>> 0) { + $$0 = $64; + break L1; + } + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa706); + break; + } + default: + {} + } + $195 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($195 | 0) == ($first | 0)) { + $197 = HEAP8[$first >> 0] | 0; + L65 : do switch ($197 << 24 >> 24 | 0) { + case 65: + { + do if ($197 << 24 >> 24 == 65) { + $200 = $first + 1 | 0; + if (($200 | 0) == ($last | 0)) $$0$i = $first; else { + $202 = HEAP8[$200 >> 0] | 0; + if ($202 << 24 >> 24 == 95) { + $204 = $first + 2 | 0; + $205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($204, $last, $db) | 0; + if (($205 | 0) == ($204 | 0)) { + $$0$i = $first; + break; + } + $208 = $db + 4 | 0; + $209 = HEAP32[$208 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($209 | 0)) { + $$0$i = $first; + break; + } + $211 = $209 + -12 | 0; + $212 = HEAP8[$211 >> 0] | 0; + $214 = ($212 & 1) == 0; + $219 = $214 ? ($212 & 255) >>> 1 : HEAP32[$209 + -8 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, $214 ? $211 + 1 | 0 : HEAP32[$209 + -4 >> 2] | 0, $219 >>> 0 < 2 ? $219 : 2); + $226 = HEAP8[$__v$i$i$i >> 0] | 0; + $228 = ($226 & 1) == 0; + $233 = $228 ? ($226 & 255) >>> 1 : HEAP32[$__v$i$i$i + 4 >> 2] | 0; + $238 = $233 >>> 0 > 2; + $240 = _memcmp($228 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, 47865, $238 ? 2 : $233) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); + if (!((($240 | 0) == 0 ? ($233 >>> 0 < 2 ? -1 : $238 & 1) : $240) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$208 >> 2] | 0) + -12 | 0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$208 >> 2] | 0) + -12 | 0, 0, 47868) | 0; + $$0$i = $205; + break; + } + if (($202 + -49 & 255) < 9) { + $250 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($200, $last) | 0; + if (($250 | 0) == ($last | 0)) { + $$0$i = $first; + break; + } + if ((HEAP8[$250 >> 0] | 0) != 95) { + $$0$i = $first; + break; + } + $254 = $250 + 1 | 0; + $255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($254, $last, $db) | 0; + if (($255 | 0) == ($254 | 0)) { + $$0$i = $first; + break; + } + $258 = $db + 4 | 0; + $259 = HEAP32[$258 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($259 | 0)) { + $$0$i = $first; + break; + } + $261 = $259 + -12 | 0; + $262 = HEAP8[$261 >> 0] | 0; + $264 = ($262 & 1) == 0; + $269 = $264 ? ($262 & 255) >>> 1 : HEAP32[$259 + -8 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $264 ? $261 + 1 | 0 : HEAP32[$259 + -4 >> 2] | 0, $269 >>> 0 < 2 ? $269 : 2); + $276 = HEAP8[$0 >> 0] | 0; + $278 = ($276 & 1) == 0; + $283 = $278 ? ($276 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0; + $288 = $283 >>> 0 > 2; + $290 = _memcmp($278 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 47865, $288 ? 2 : $283) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + if (!((($290 | 0) == 0 ? ($283 >>> 0 < 2 ? -1 : $288 & 1) : $290) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$258 >> 2] | 0) + -12 | 0); + $298 = (HEAP32[$258 >> 2] | 0) + -12 | 0; + $301 = $250 - $200 | 0; + if ($301 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($3); + if ($301 >>> 0 < 11) { + HEAP8[$3 >> 0] = $301 << 1; + $__p$0$ph$i$i$i = $3 + 1 | 0; + } else { + $308 = $301 + 16 & -16; + $309 = _malloc($308) | 0; + HEAP32[$3 + 8 >> 2] = $309; + HEAP32[$3 >> 2] = $308 | 1; + HEAP32[$3 + 4 >> 2] = $301; + $__p$0$ph$i$i$i = $309; + } + if (($200 | 0) != ($250 | 0)) { + $$0$i$i$i191509 = $200; + $__p$0$i$i$i508 = $__p$0$ph$i$i$i; + while (1) { + HEAP8[$__p$0$i$i$i508 >> 0] = HEAP8[$$0$i$i$i191509 >> 0] | 0; + $$0$i$i$i191509 = $$0$i$i$i191509 + 1 | 0; + if (($$0$i$i$i191509 | 0) == ($250 | 0)) break; else $__p$0$i$i$i508 = $__p$0$i$i$i508 + 1 | 0; + } + } + HEAP8[$__p$0$ph$i$i$i + $301 >> 0] = 0; + $318 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 47865) | 0; + HEAP32[$2 >> 2] = HEAP32[$318 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$318 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$318 + 8 >> 2]; + HEAP32[$318 >> 2] = 0; + HEAP32[$318 + 4 >> 2] = 0; + HEAP32[$318 + 8 >> 2] = 0; + $321 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47872) | 0; + HEAP32[$1 >> 2] = HEAP32[$321 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$321 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$321 + 8 >> 2]; + HEAP32[$321 >> 2] = 0; + HEAP32[$321 + 4 >> 2] = 0; + HEAP32[$321 + 8 >> 2] = 0; + $324 = HEAP8[$1 >> 0] | 0; + $326 = ($324 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($298, 0, $326 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $326 ? ($324 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$0$i = $255; + break; + } + $336 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($200, $last, $db) | 0; + if (($336 | 0) == ($200 | 0) | ($336 | 0) == ($last | 0)) $$0$i = $first; else if ((HEAP8[$336 >> 0] | 0) == 95) { + $341 = $336 + 1 | 0; + $342 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($341, $last, $db) | 0; + if (($342 | 0) == ($341 | 0)) $$0$i = $first; else { + $344 = $db + 4 | 0; + $345 = HEAP32[$344 >> 2] | 0; + if ((($345 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($4, $345 + -24 | 0); + $353 = HEAP32[$344 >> 2] | 0; + $354 = $353 + -24 | 0; + $356 = $353; + do { + $355 = $356 + -24 | 0; + HEAP32[$344 >> 2] = $355; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($355); + $356 = HEAP32[$344 >> 2] | 0; + } while (($356 | 0) != ($354 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($5, $353 + -48 | 0); + $359 = HEAP32[$344 >> 2] | 0; + $360 = $359 + -24 | 0; + do if (!(HEAP8[$360 >> 0] & 1)) { + HEAP8[$360 + 1 >> 0] = 0; + HEAP8[$360 >> 0] = 0; + } else { + $365 = $359 + -16 | 0; + HEAP8[HEAP32[$365 >> 2] >> 0] = 0; + $367 = $359 + -20 | 0; + HEAP32[$367 >> 2] = 0; + $$pre$i$i$i$i203 = HEAP8[$360 >> 0] | 0; + if (!($$pre$i$i$i$i203 & 1)) { + $374 = $$pre$i$i$i$i203; + $383 = 10; + } else { + $370 = HEAP32[$360 >> 2] | 0; + $374 = $370 & 255; + $383 = ($370 & -2) + -1 | 0; + } + if (!($374 & 1)) { + $377 = ($374 & 255) >>> 1; + if (($374 & 255) < 22) { + $2567 = 1; + $382 = 10; + $402 = $377; + } else { + $2567 = 1; + $382 = ($377 + 16 & 240) + -1 | 0; + $402 = $377; + } + } else { + $2567 = 0; + $382 = 10; + $402 = 0; + } + if (($382 | 0) != ($383 | 0)) { + if (($382 | 0) == 10) { + $389 = $360 + 1 | 0; + $390 = HEAP32[$365 >> 2] | 0; + if ($2567) { + _memcpy($389 | 0, $390 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0; + _free($390); + } else { + HEAP8[$389 >> 0] = HEAP8[$390 >> 0] | 0; + _free($390); + } + HEAP8[$360 >> 0] = $402 << 1; + break; + } + $386 = $382 + 1 | 0; + $387 = _malloc($386) | 0; + if (!($382 >>> 0 <= $383 >>> 0 & ($387 | 0) == 0)) { + if ($2567) _memcpy($387 | 0, $360 + 1 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0; else { + $399 = HEAP32[$365 >> 2] | 0; + HEAP8[$387 >> 0] = HEAP8[$399 >> 0] | 0; + _free($399); + } + HEAP32[$360 >> 2] = $386 | 1; + HEAP32[$367 >> 2] = $402; + HEAP32[$365 >> 2] = $387; + } + } + } while (0); + HEAP32[$360 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$360 + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$360 + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + $407 = $4 + 12 | 0; + $408 = HEAP8[$407 >> 0] | 0; + $410 = ($408 & 1) == 0; + $411 = $4 + 16 | 0; + $415 = $410 ? ($408 & 255) >>> 1 : HEAP32[$411 >> 2] | 0; + $416 = $4 + 20 | 0; + $418 = $407 + 1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $410 ? $418 : HEAP32[$416 >> 2] | 0, $415 >>> 0 < 2 ? $415 : 2); + $422 = HEAP8[$6 >> 0] | 0; + $424 = ($422 & 1) == 0; + $429 = $424 ? ($422 & 255) >>> 1 : HEAP32[$6 + 4 >> 2] | 0; + $434 = $429 >>> 0 > 2; + $436 = _memcmp($424 ? $6 + 1 | 0 : HEAP32[$6 + 8 >> 2] | 0, 47865, $434 ? 2 : $429) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + if (!((($436 | 0) == 0 ? ($429 >>> 0 < 2 ? -1 : $434 & 1) : $436) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($407); + $441 = HEAP32[$344 >> 2] | 0; + $442 = $441 + -12 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($9, $5); + $443 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($9, 0, 47865) | 0; + HEAP32[$8 >> 2] = HEAP32[$443 >> 2]; + HEAP32[$8 + 4 >> 2] = HEAP32[$443 + 4 >> 2]; + HEAP32[$8 + 8 >> 2] = HEAP32[$443 + 8 >> 2]; + HEAP32[$443 >> 2] = 0; + HEAP32[$443 + 4 >> 2] = 0; + HEAP32[$443 + 8 >> 2] = 0; + $446 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 47872) | 0; + HEAP32[$7 >> 2] = HEAP32[$446 >> 2]; + HEAP32[$7 + 4 >> 2] = HEAP32[$446 + 4 >> 2]; + HEAP32[$7 + 8 >> 2] = HEAP32[$446 + 8 >> 2]; + HEAP32[$446 >> 2] = 0; + HEAP32[$446 + 4 >> 2] = 0; + HEAP32[$446 + 8 >> 2] = 0; + $449 = HEAP8[$407 >> 0] | 0; + $451 = ($449 & 1) == 0; + $458 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $451 ? $418 : HEAP32[$416 >> 2] | 0, $451 ? ($449 & 255) >>> 1 : HEAP32[$411 >> 2] | 0) | 0; + HEAP32[$num1$i >> 2] = HEAP32[$458 >> 2]; + HEAP32[$num1$i + 4 >> 2] = HEAP32[$458 + 4 >> 2]; + HEAP32[$num1$i + 8 >> 2] = HEAP32[$458 + 8 >> 2]; + HEAP32[$458 >> 2] = 0; + HEAP32[$458 + 4 >> 2] = 0; + HEAP32[$458 + 8 >> 2] = 0; + do if (!(HEAP8[$442 >> 0] & 1)) { + HEAP8[$442 + 1 >> 0] = 0; + HEAP8[$442 >> 0] = 0; + } else { + $465 = $441 + -4 | 0; + HEAP8[HEAP32[$465 >> 2] >> 0] = 0; + $467 = $441 + -8 | 0; + HEAP32[$467 >> 2] = 0; + $$pre$i$i$i36$i = HEAP8[$442 >> 0] | 0; + if (!($$pre$i$i$i36$i & 1)) { + $474 = $$pre$i$i$i36$i; + $483 = 10; + } else { + $470 = HEAP32[$442 >> 2] | 0; + $474 = $470 & 255; + $483 = ($470 & -2) + -1 | 0; + } + do if (!($474 & 1)) { + $477 = ($474 & 255) >>> 1; + if (($474 & 255) < 22) { + $2568 = 1; + $482 = 10; + $502 = $477; + break; + } + $2568 = 1; + $482 = ($477 + 16 & 240) + -1 | 0; + $502 = $477; + } else { + $2568 = 0; + $482 = 10; + $502 = 0; + } while (0); + if (($482 | 0) != ($483 | 0)) { + if (($482 | 0) == 10) { + $489 = $442 + 1 | 0; + $490 = HEAP32[$465 >> 2] | 0; + if ($2568) { + _memcpy($489 | 0, $490 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0; + _free($490); + } else { + HEAP8[$489 >> 0] = HEAP8[$490 >> 0] | 0; + _free($490); + } + HEAP8[$442 >> 0] = $502 << 1; + break; + } + $486 = $482 + 1 | 0; + $487 = _malloc($486) | 0; + if ($482 >>> 0 <= $483 >>> 0 & ($487 | 0) == 0) break; + if ($2568) _memcpy($487 | 0, $442 + 1 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0; else { + $499 = HEAP32[$465 >> 2] | 0; + HEAP8[$487 >> 0] = HEAP8[$499 >> 0] | 0; + _free($499); + } + HEAP32[$442 >> 2] = $486 | 1; + HEAP32[$467 >> 2] = $502; + HEAP32[$465 >> 2] = $487; + } + } while (0); + HEAP32[$442 >> 2] = HEAP32[$num1$i >> 2]; + HEAP32[$442 + 4 >> 2] = HEAP32[$num1$i + 4 >> 2]; + HEAP32[$442 + 8 >> 2] = HEAP32[$num1$i + 8 >> 2]; + HEAP32[$num1$i >> 2] = 0; + HEAP32[$num1$i + 4 >> 2] = 0; + HEAP32[$num1$i + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); + $$0$i = $342; + } + } + } else $$0$i = $first; + } + } else $$0$i = $first; while (0); + if (($$0$i | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $510 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($510 | 0)) { + $$0 = $first; + break L1; + } + $512 = $db + 16 | 0; + HEAP32[$11 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($10, $510 + -24 | 0, $11); + $516 = $db + 20 | 0; + $517 = HEAP32[$516 >> 2] | 0; + $519 = HEAP32[$db + 24 >> 2] | 0; + if ($517 >>> 0 < $519 >>> 0) { + HEAP32[$517 + 12 >> 2] = HEAP32[$10 + 12 >> 2]; + HEAP32[$517 >> 2] = HEAP32[$10 >> 2]; + $526 = $10 + 4 | 0; + HEAP32[$517 + 4 >> 2] = HEAP32[$526 >> 2]; + $528 = $10 + 8 | 0; + HEAP32[$517 + 8 >> 2] = HEAP32[$528 >> 2]; + HEAP32[$528 >> 2] = 0; + HEAP32[$526 >> 2] = 0; + HEAP32[$10 >> 2] = 0; + HEAP32[$516 >> 2] = (HEAP32[$516 >> 2] | 0) + 16; + } else { + $536 = HEAP32[$512 >> 2] | 0; + $537 = $517 - $536 | 0; + $538 = $537 >> 4; + $539 = $538 + 1 | 0; + if (($537 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($512); + $542 = $519 - $536 | 0; + if ($542 >> 4 >>> 0 < 1073741823) { + $545 = $542 >> 3; + $$0$i$i$i56 = $545 >>> 0 < $539 >>> 0 ? $539 : $545; + } else $$0$i$i$i56 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i56, $538, $db + 28 | 0); + $548 = $__v$i$i$i + 8 | 0; + $549 = HEAP32[$548 >> 2] | 0; + HEAP32[$549 + 12 >> 2] = HEAP32[$10 + 12 >> 2]; + HEAP32[$549 >> 2] = HEAP32[$10 >> 2]; + $555 = $10 + 4 | 0; + HEAP32[$549 + 4 >> 2] = HEAP32[$555 >> 2]; + $557 = $10 + 8 | 0; + HEAP32[$549 + 8 >> 2] = HEAP32[$557 >> 2]; + HEAP32[$557 >> 2] = 0; + HEAP32[$555 >> 2] = 0; + HEAP32[$10 >> 2] = 0; + HEAP32[$548 >> 2] = $549 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($512, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($10); + $$0 = $$0$i; + break L1; + break; + } + case 67: + { + $561 = $first + 1 | 0; + $562 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($561, $last, $db) | 0; + if (($562 | 0) == ($561 | 0)) { + $$0 = $first; + break L1; + } + $565 = $db + 4 | 0; + $566 = HEAP32[$565 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($566 | 0)) { + $$0 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($566 + -24 | 0, 47874) | 0; + $569 = $db + 16 | 0; + $571 = (HEAP32[$565 >> 2] | 0) + -24 | 0; + HEAP32[$13 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $571, $13); + $574 = $db + 20 | 0; + $575 = HEAP32[$574 >> 2] | 0; + $577 = HEAP32[$db + 24 >> 2] | 0; + if ($575 >>> 0 < $577 >>> 0) { + HEAP32[$575 + 12 >> 2] = HEAP32[$12 + 12 >> 2]; + HEAP32[$575 >> 2] = HEAP32[$12 >> 2]; + $584 = $12 + 4 | 0; + HEAP32[$575 + 4 >> 2] = HEAP32[$584 >> 2]; + $586 = $12 + 8 | 0; + HEAP32[$575 + 8 >> 2] = HEAP32[$586 >> 2]; + HEAP32[$586 >> 2] = 0; + HEAP32[$584 >> 2] = 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$574 >> 2] = (HEAP32[$574 >> 2] | 0) + 16; + } else { + $594 = HEAP32[$569 >> 2] | 0; + $595 = $575 - $594 | 0; + $596 = $595 >> 4; + $597 = $596 + 1 | 0; + if (($595 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($569); + $600 = $577 - $594 | 0; + if ($600 >> 4 >>> 0 < 1073741823) { + $603 = $600 >> 3; + $$0$i$i$i61 = $603 >>> 0 < $597 >>> 0 ? $597 : $603; + } else $$0$i$i$i61 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i61, $596, $db + 28 | 0); + $606 = $__v$i$i$i + 8 | 0; + $607 = HEAP32[$606 >> 2] | 0; + HEAP32[$607 + 12 >> 2] = HEAP32[$12 + 12 >> 2]; + HEAP32[$607 >> 2] = HEAP32[$12 >> 2]; + $613 = $12 + 4 | 0; + HEAP32[$607 + 4 >> 2] = HEAP32[$613 >> 2]; + $615 = $12 + 8 | 0; + HEAP32[$607 + 8 >> 2] = HEAP32[$615 >> 2]; + HEAP32[$615 >> 2] = 0; + HEAP32[$613 >> 2] = 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$606 >> 2] = $607 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($569, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12); + $$0 = $562; + break L1; + break; + } + case 70: + { + do if ($197 << 24 >> 24 == 70) { + $620 = $first + 1 | 0; + if (($620 | 0) != ($last | 0)) { + if ((HEAP8[$620 >> 0] | 0) == 89) { + $624 = $first + 2 | 0; + if (($624 | 0) == ($last | 0)) break; else $t$0$i = $624; + } else $t$0$i = $620; + $626 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$0$i, $last, $db) | 0; + if (($626 | 0) != ($t$0$i | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, 47883, 1); + $628 = $db + 4 | 0; + $629 = $__v$i$i$i + 4 | 0; + $630 = $0 + 8 | 0; + $631 = $0 + 1 | 0; + $632 = $0 + 4 | 0; + L191 : do if (($626 | 0) == ($last | 0)) label = 144; else { + $ref_qual$0$i$ph521 = 0; + $t$1$i$ph520 = $626; + L192 : while (1) { + $t$1$i518 = $t$1$i$ph520; + L194 : while (1) { + switch (HEAP8[$t$1$i518 >> 0] | 0) { + case 69: + { + $ref_qual$0$i$ph521$lcssa = $ref_qual$0$i$ph521; + $t$1$i518$lcssa = $t$1$i518; + break L192; + break; + } + case 118: + { + $t$1$i$be = $t$1$i518 + 1 | 0; + break; + } + case 82: + { + $644 = $t$1$i518 + 1 | 0; + if (($644 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$644 >> 0] | 0) == 69) { + $ref_qual$0$i$ph$ph = 1; + $t$1$i$ph$ph = $644; + break L194; + } else label = 154; + break; + } + case 79: + { + $648 = $t$1$i518 + 1 | 0; + if (($648 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$648 >> 0] | 0) == 69) { + $ref_qual$0$i$ph$ph = 2; + $t$1$i$ph$ph = $648; + break L194; + } else label = 154; + break; + } + default: + label = 154; + } + if ((label | 0) == 154) { + label = 0; + $657 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $658 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1$i518, $last, $db) | 0; + $664 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($658 | 0) == ($t$1$i518 | 0) | ($658 | 0) == ($last | 0)) break L191; + if ($657 >>> 0 < $664 >>> 0) { + $k$0$i515 = $657; + do { + $669 = HEAP8[$__v$i$i$i >> 0] | 0; + if ((($669 & 1) == 0 ? ($669 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47885) | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k$0$i515 * 24 | 0) | 0); + $679 = HEAP8[$0 >> 0] | 0; + $681 = ($679 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($__v$i$i$i, $681 ? $631 : HEAP32[$630 >> 2] | 0, $681 ? ($679 & 255) >>> 1 : HEAP32[$632 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $k$0$i515 = $k$0$i515 + 1 | 0; + } while ($k$0$i515 >>> 0 < $664 >>> 0); + } + if ($657 >>> 0 < $664 >>> 0) { + $k2$0$i516 = $657; + do { + $690 = HEAP32[$628 >> 2] | 0; + $691 = $690 + -24 | 0; + $693 = $690; + do { + $692 = $693 + -24 | 0; + HEAP32[$628 >> 2] = $692; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($692); + $693 = HEAP32[$628 >> 2] | 0; + } while (($693 | 0) != ($691 | 0)); + $k2$0$i516 = $k2$0$i516 + 1 | 0; + } while ($k2$0$i516 >>> 0 < $664 >>> 0); + $t$1$i$be = $658; + } else $t$1$i$be = $658; + } + if (($t$1$i$be | 0) == ($last | 0)) { + label = 144; + break L191; + } else $t$1$i518 = $t$1$i$be; + } + if (($t$1$i$ph$ph | 0) == ($last | 0)) { + label = 144; + break L191; + } else { + $ref_qual$0$i$ph521 = $ref_qual$0$i$ph$ph; + $t$1$i$ph520 = $t$1$i$ph$ph; + } + } + $641 = $t$1$i518$lcssa + 1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47788) | 0; + switch ($ref_qual$0$i$ph521$lcssa | 0) { + case 1: + { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47888) | 0; + break; + } + case 2: + { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47891) | 0; + break; + } + default: + {} + } + $698 = HEAP32[$628 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) != ($698 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($698 + -24 | 0, 47895) | 0; + $703 = HEAP8[$__v$i$i$i >> 0] | 0; + $705 = ($703 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj((HEAP32[$628 >> 2] | 0) + -12 | 0, 0, $705 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, $705 ? ($703 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); + if (($641 | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $716 = HEAP32[$628 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($716 | 0)) { + $$0 = $first; + break L1; + } + $718 = $db + 16 | 0; + HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $716 + -24 | 0, $15); + $722 = $db + 20 | 0; + $723 = HEAP32[$722 >> 2] | 0; + $725 = HEAP32[$db + 24 >> 2] | 0; + if ($723 >>> 0 < $725 >>> 0) { + HEAP32[$723 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; + HEAP32[$723 >> 2] = HEAP32[$14 >> 2]; + $732 = $14 + 4 | 0; + HEAP32[$723 + 4 >> 2] = HEAP32[$732 >> 2]; + $734 = $14 + 8 | 0; + HEAP32[$723 + 8 >> 2] = HEAP32[$734 >> 2]; + HEAP32[$734 >> 2] = 0; + HEAP32[$732 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$722 >> 2] = (HEAP32[$722 >> 2] | 0) + 16; + } else { + $742 = HEAP32[$718 >> 2] | 0; + $743 = $723 - $742 | 0; + $744 = $743 >> 4; + $745 = $744 + 1 | 0; + if (($743 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($718); + $748 = $725 - $742 | 0; + if ($748 >> 4 >>> 0 < 1073741823) { + $751 = $748 >> 3; + $$0$i$i$i66 = $751 >>> 0 < $745 >>> 0 ? $745 : $751; + } else $$0$i$i$i66 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i66, $744, $db + 28 | 0); + $754 = $__v$i$i$i + 8 | 0; + $755 = HEAP32[$754 >> 2] | 0; + HEAP32[$755 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; + HEAP32[$755 >> 2] = HEAP32[$14 >> 2]; + $761 = $14 + 4 | 0; + HEAP32[$755 + 4 >> 2] = HEAP32[$761 >> 2]; + $763 = $14 + 8 | 0; + HEAP32[$755 + 8 >> 2] = HEAP32[$763 >> 2]; + HEAP32[$763 >> 2] = 0; + HEAP32[$761 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$754 >> 2] = $755 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($718, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14); + $$0 = $641; + break L1; + } + } while (0); + if ((label | 0) == 144) { + $635 = HEAP32[$628 >> 2] | 0; + $636 = $635 + -24 | 0; + $638 = $635; + do { + $637 = $638 + -24 | 0; + HEAP32[$628 >> 2] = $637; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($637); + $638 = HEAP32[$628 >> 2] | 0; + } while (($638 | 0) != ($636 | 0)); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); + } + } + } while (0); + $$0 = $first; + break L1; + break; + } + case 71: + { + $767 = $first + 1 | 0; + $768 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($767, $last, $db) | 0; + if (($768 | 0) == ($767 | 0)) { + $$0 = $first; + break L1; + } + $771 = $db + 4 | 0; + $772 = HEAP32[$771 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($772 | 0)) { + $$0 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($772 + -24 | 0, 47897) | 0; + $775 = $db + 16 | 0; + $777 = (HEAP32[$771 >> 2] | 0) + -24 | 0; + HEAP32[$17 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($16, $777, $17); + $780 = $db + 20 | 0; + $781 = HEAP32[$780 >> 2] | 0; + $783 = HEAP32[$db + 24 >> 2] | 0; + if ($781 >>> 0 < $783 >>> 0) { + HEAP32[$781 + 12 >> 2] = HEAP32[$16 + 12 >> 2]; + HEAP32[$781 >> 2] = HEAP32[$16 >> 2]; + $790 = $16 + 4 | 0; + HEAP32[$781 + 4 >> 2] = HEAP32[$790 >> 2]; + $792 = $16 + 8 | 0; + HEAP32[$781 + 8 >> 2] = HEAP32[$792 >> 2]; + HEAP32[$792 >> 2] = 0; + HEAP32[$790 >> 2] = 0; + HEAP32[$16 >> 2] = 0; + HEAP32[$780 >> 2] = (HEAP32[$780 >> 2] | 0) + 16; + } else { + $800 = HEAP32[$775 >> 2] | 0; + $801 = $781 - $800 | 0; + $802 = $801 >> 4; + $803 = $802 + 1 | 0; + if (($801 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($775); + $806 = $783 - $800 | 0; + if ($806 >> 4 >>> 0 < 1073741823) { + $809 = $806 >> 3; + $$0$i$i$i71 = $809 >>> 0 < $803 >>> 0 ? $803 : $809; + } else $$0$i$i$i71 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i71, $802, $db + 28 | 0); + $812 = $__v$i$i$i + 8 | 0; + $813 = HEAP32[$812 >> 2] | 0; + HEAP32[$813 + 12 >> 2] = HEAP32[$16 + 12 >> 2]; + HEAP32[$813 >> 2] = HEAP32[$16 >> 2]; + $819 = $16 + 4 | 0; + HEAP32[$813 + 4 >> 2] = HEAP32[$819 >> 2]; + $821 = $16 + 8 | 0; + HEAP32[$813 + 8 >> 2] = HEAP32[$821 >> 2]; + HEAP32[$821 >> 2] = 0; + HEAP32[$819 >> 2] = 0; + HEAP32[$16 >> 2] = 0; + HEAP32[$812 >> 2] = $813 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($775, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($16); + $$0 = $768; + break L1; + break; + } + case 77: + { + if ($197 << 24 >> 24 == 77) { + $826 = $first + 1 | 0; + $827 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($826, $last, $db) | 0; + if (($827 | 0) == ($826 | 0)) $$08$i = $first; else { + $829 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($827, $last, $db) | 0; + if (($829 | 0) == ($827 | 0)) $$08$i = $first; else { + $831 = $db + 4 | 0; + $832 = HEAP32[$831 >> 2] | 0; + if ((($832 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$08$i = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($__v$i$i$i, $832 + -24 | 0); + $840 = HEAP32[$831 >> 2] | 0; + $841 = $840 + -24 | 0; + $843 = $840; + do { + $842 = $843 + -24 | 0; + HEAP32[$831 >> 2] = $842; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($842); + $843 = HEAP32[$831 >> 2] | 0; + } while (($843 | 0) != ($841 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($0, $840 + -48 | 0); + $846 = $__v$i$i$i + 12 | 0; + $856 = HEAP32[$831 >> 2] | 0; + $857 = $856 + -24 | 0; + if ((HEAP8[((HEAP8[$846 >> 0] & 1) == 0 ? $846 + 1 | 0 : HEAP32[$__v$i$i$i + 20 >> 2] | 0) >> 0] | 0) == 40) { + $858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47883) | 0; + HEAP32[$3 >> 2] = HEAP32[$858 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$858 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$858 + 8 >> 2]; + HEAP32[$858 >> 2] = 0; + HEAP32[$858 + 4 >> 2] = 0; + HEAP32[$858 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $0); + $861 = HEAP8[$4 >> 0] | 0; + $863 = ($861 & 1) == 0; + $873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($3, $863 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0; + HEAP32[$2 >> 2] = HEAP32[$873 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$873 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$873 + 8 >> 2]; + HEAP32[$873 >> 2] = 0; + HEAP32[$873 + 4 >> 2] = 0; + HEAP32[$873 + 8 >> 2] = 0; + $876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47908) | 0; + HEAP32[$1 >> 2] = HEAP32[$876 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$876 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$876 + 8 >> 2]; + HEAP32[$876 >> 2] = 0; + HEAP32[$876 + 4 >> 2] = 0; + HEAP32[$876 + 8 >> 2] = 0; + do if (!(HEAP8[$857 >> 0] & 1)) { + HEAP8[$857 + 1 >> 0] = 0; + HEAP8[$857 >> 0] = 0; + } else { + $883 = $856 + -16 | 0; + HEAP8[HEAP32[$883 >> 2] >> 0] = 0; + $885 = $856 + -20 | 0; + HEAP32[$885 >> 2] = 0; + $$pre$i$i$i$i = HEAP8[$857 >> 0] | 0; + if (!($$pre$i$i$i$i & 1)) { + $892 = $$pre$i$i$i$i; + $901 = 10; + } else { + $888 = HEAP32[$857 >> 2] | 0; + $892 = $888 & 255; + $901 = ($888 & -2) + -1 | 0; + } + if (!($892 & 1)) { + $895 = ($892 & 255) >>> 1; + if (($892 & 255) < 22) { + $2569 = 1; + $900 = 10; + $920 = $895; + } else { + $2569 = 1; + $900 = ($895 + 16 & 240) + -1 | 0; + $920 = $895; + } + } else { + $2569 = 0; + $900 = 10; + $920 = 0; + } + if (($900 | 0) != ($901 | 0)) { + if (($900 | 0) == 10) { + $907 = $857 + 1 | 0; + $908 = HEAP32[$883 >> 2] | 0; + if ($2569) { + _memcpy($907 | 0, $908 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0; + _free($908); + } else { + HEAP8[$907 >> 0] = HEAP8[$908 >> 0] | 0; + _free($908); + } + HEAP8[$857 >> 0] = $920 << 1; + break; + } + $904 = $900 + 1 | 0; + $905 = _malloc($904) | 0; + if (!($900 >>> 0 <= $901 >>> 0 & ($905 | 0) == 0)) { + if ($2569) _memcpy($905 | 0, $857 + 1 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0; else { + $917 = HEAP32[$883 >> 2] | 0; + HEAP8[$905 >> 0] = HEAP8[$917 >> 0] | 0; + _free($917); + } + HEAP32[$857 >> 2] = $904 | 1; + HEAP32[$885 >> 2] = $920; + HEAP32[$883 >> 2] = $905; + } + } + } while (0); + HEAP32[$857 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$857 + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$857 + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $925 = HEAP32[$831 >> 2] | 0; + $926 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($846, 0, 47788) | 0; + HEAP32[$5 >> 2] = HEAP32[$926 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$926 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$926 + 8 >> 2]; + HEAP32[$926 >> 2] = 0; + HEAP32[$926 + 4 >> 2] = 0; + HEAP32[$926 + 8 >> 2] = 0; + $929 = $925 + -12 | 0; + do if (!(HEAP8[$929 >> 0] & 1)) { + HEAP8[$929 + 1 >> 0] = 0; + HEAP8[$929 >> 0] = 0; + } else { + $934 = $925 + -4 | 0; + HEAP8[HEAP32[$934 >> 2] >> 0] = 0; + $936 = $925 + -8 | 0; + HEAP32[$936 >> 2] = 0; + $$pre$i$i$i21$i = HEAP8[$929 >> 0] | 0; + if (!($$pre$i$i$i21$i & 1)) { + $943 = $$pre$i$i$i21$i; + $952 = 10; + } else { + $939 = HEAP32[$929 >> 2] | 0; + $943 = $939 & 255; + $952 = ($939 & -2) + -1 | 0; + } + if (!($943 & 1)) { + $946 = ($943 & 255) >>> 1; + if (($943 & 255) < 22) { + $2570 = 1; + $951 = 10; + $971 = $946; + } else { + $2570 = 1; + $951 = ($946 + 16 & 240) + -1 | 0; + $971 = $946; + } + } else { + $2570 = 0; + $951 = 10; + $971 = 0; + } + if (($951 | 0) != ($952 | 0)) { + if (($951 | 0) == 10) { + $958 = $929 + 1 | 0; + $959 = HEAP32[$934 >> 2] | 0; + if ($2570) { + _memcpy($958 | 0, $959 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0; + _free($959); + } else { + HEAP8[$958 >> 0] = HEAP8[$959 >> 0] | 0; + _free($959); + } + HEAP8[$929 >> 0] = $971 << 1; + break; + } + $955 = $951 + 1 | 0; + $956 = _malloc($955) | 0; + if (!($951 >>> 0 <= $952 >>> 0 & ($956 | 0) == 0)) { + if ($2570) _memcpy($956 | 0, $929 + 1 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0; else { + $968 = HEAP32[$934 >> 2] | 0; + HEAP8[$956 >> 0] = HEAP8[$968 >> 0] | 0; + _free($968); + } + HEAP32[$929 >> 2] = $955 | 1; + HEAP32[$936 >> 2] = $971; + HEAP32[$934 >> 2] = $956; + } + } + } while (0); + HEAP32[$929 >> 2] = HEAP32[$5 >> 2]; + HEAP32[$929 + 4 >> 2] = HEAP32[$5 + 4 >> 2]; + HEAP32[$929 + 8 >> 2] = HEAP32[$5 + 8 >> 2]; + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + } else { + $976 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 47895) | 0; + HEAP32[$7 >> 2] = HEAP32[$976 >> 2]; + HEAP32[$7 + 4 >> 2] = HEAP32[$976 + 4 >> 2]; + HEAP32[$7 + 8 >> 2] = HEAP32[$976 + 8 >> 2]; + HEAP32[$976 >> 2] = 0; + HEAP32[$976 + 4 >> 2] = 0; + HEAP32[$976 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($8, $0); + $979 = HEAP8[$8 >> 0] | 0; + $981 = ($979 & 1) == 0; + $991 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $981 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $981 ? ($979 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0; + HEAP32[$num1$i >> 2] = HEAP32[$991 >> 2]; + HEAP32[$num1$i + 4 >> 2] = HEAP32[$991 + 4 >> 2]; + HEAP32[$num1$i + 8 >> 2] = HEAP32[$991 + 8 >> 2]; + HEAP32[$991 >> 2] = 0; + HEAP32[$991 + 4 >> 2] = 0; + HEAP32[$991 + 8 >> 2] = 0; + $994 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($num1$i, 47908) | 0; + HEAP32[$6 >> 2] = HEAP32[$994 >> 2]; + HEAP32[$6 + 4 >> 2] = HEAP32[$994 + 4 >> 2]; + HEAP32[$6 + 8 >> 2] = HEAP32[$994 + 8 >> 2]; + HEAP32[$994 >> 2] = 0; + HEAP32[$994 + 4 >> 2] = 0; + HEAP32[$994 + 8 >> 2] = 0; + do if (!(HEAP8[$857 >> 0] & 1)) { + HEAP8[$857 + 1 >> 0] = 0; + HEAP8[$857 >> 0] = 0; + } else { + $1001 = $856 + -16 | 0; + HEAP8[HEAP32[$1001 >> 2] >> 0] = 0; + $1003 = $856 + -20 | 0; + HEAP32[$1003 >> 2] = 0; + $$pre$i$i$i52$i = HEAP8[$857 >> 0] | 0; + if (!($$pre$i$i$i52$i & 1)) { + $1010 = $$pre$i$i$i52$i; + $1019 = 10; + } else { + $1006 = HEAP32[$857 >> 2] | 0; + $1010 = $1006 & 255; + $1019 = ($1006 & -2) + -1 | 0; + } + if (!($1010 & 1)) { + $1013 = ($1010 & 255) >>> 1; + if (($1010 & 255) < 22) { + $1018 = 10; + $1038 = $1013; + $2571 = 1; + } else { + $1018 = ($1013 + 16 & 240) + -1 | 0; + $1038 = $1013; + $2571 = 1; + } + } else { + $1018 = 10; + $1038 = 0; + $2571 = 0; + } + if (($1018 | 0) != ($1019 | 0)) { + if (($1018 | 0) == 10) { + $1025 = $857 + 1 | 0; + $1026 = HEAP32[$1001 >> 2] | 0; + if ($2571) { + _memcpy($1025 | 0, $1026 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0; + _free($1026); + } else { + HEAP8[$1025 >> 0] = HEAP8[$1026 >> 0] | 0; + _free($1026); + } + HEAP8[$857 >> 0] = $1038 << 1; + break; + } + $1022 = $1018 + 1 | 0; + $1023 = _malloc($1022) | 0; + if (!($1018 >>> 0 <= $1019 >>> 0 & ($1023 | 0) == 0)) { + if ($2571) _memcpy($1023 | 0, $857 + 1 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0; else { + $1035 = HEAP32[$1001 >> 2] | 0; + HEAP8[$1023 >> 0] = HEAP8[$1035 >> 0] | 0; + _free($1035); + } + HEAP32[$857 >> 2] = $1022 | 1; + HEAP32[$1003 >> 2] = $1038; + HEAP32[$1001 >> 2] = $1023; + } + } + } while (0); + HEAP32[$857 >> 2] = HEAP32[$6 >> 2]; + HEAP32[$857 + 4 >> 2] = HEAP32[$6 + 4 >> 2]; + HEAP32[$857 + 8 >> 2] = HEAP32[$6 + 8 >> 2]; + HEAP32[$6 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + $1043 = HEAP32[$831 >> 2] | 0; + $1044 = $1043 + -12 | 0; + do if (!(HEAP8[$1044 >> 0] & 1)) { + HEAP8[$1044 + 1 >> 0] = 0; + HEAP8[$1044 >> 0] = 0; + } else { + $1049 = $1043 + -4 | 0; + HEAP8[HEAP32[$1049 >> 2] >> 0] = 0; + $1051 = $1043 + -8 | 0; + HEAP32[$1051 >> 2] = 0; + $$pre$i$i$i71$i = HEAP8[$1044 >> 0] | 0; + if (!($$pre$i$i$i71$i & 1)) { + $1058 = $$pre$i$i$i71$i; + $1067 = 10; + } else { + $1054 = HEAP32[$1044 >> 2] | 0; + $1058 = $1054 & 255; + $1067 = ($1054 & -2) + -1 | 0; + } + if (!($1058 & 1)) { + $1061 = ($1058 & 255) >>> 1; + if (($1058 & 255) < 22) { + $1066 = 10; + $1086 = $1061; + $2572 = 1; + } else { + $1066 = ($1061 + 16 & 240) + -1 | 0; + $1086 = $1061; + $2572 = 1; + } + } else { + $1066 = 10; + $1086 = 0; + $2572 = 0; + } + if (($1066 | 0) != ($1067 | 0)) { + if (($1066 | 0) == 10) { + $1073 = $1044 + 1 | 0; + $1074 = HEAP32[$1049 >> 2] | 0; + if ($2572) { + _memcpy($1073 | 0, $1074 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0; + _free($1074); + } else { + HEAP8[$1073 >> 0] = HEAP8[$1074 >> 0] | 0; + _free($1074); + } + HEAP8[$1044 >> 0] = $1086 << 1; + break; + } + $1070 = $1066 + 1 | 0; + $1071 = _malloc($1070) | 0; + if (!($1066 >>> 0 <= $1067 >>> 0 & ($1071 | 0) == 0)) { + if ($2572) _memcpy($1071 | 0, $1044 + 1 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0; else { + $1083 = HEAP32[$1049 >> 2] | 0; + HEAP8[$1071 >> 0] = HEAP8[$1083 >> 0] | 0; + _free($1083); + } + HEAP32[$1044 >> 2] = $1070 | 1; + HEAP32[$1051 >> 2] = $1086; + HEAP32[$1049 >> 2] = $1071; + } + } + } while (0); + HEAP32[$1044 >> 2] = HEAP32[$846 >> 2]; + HEAP32[$1044 + 4 >> 2] = HEAP32[$846 + 4 >> 2]; + HEAP32[$1044 + 8 >> 2] = HEAP32[$846 + 8 >> 2]; + HEAP32[$846 >> 2] = 0; + HEAP32[$846 + 4 >> 2] = 0; + HEAP32[$846 + 8 >> 2] = 0; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($__v$i$i$i); + $$08$i = $829; + } + } + } + } else $$08$i = $first; + if (($$08$i | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $1094 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1094 | 0)) { + $$0 = $first; + break L1; + } + $1096 = $db + 16 | 0; + HEAP32[$19 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($18, $1094 + -24 | 0, $19); + $1100 = $db + 20 | 0; + $1101 = HEAP32[$1100 >> 2] | 0; + $1103 = HEAP32[$db + 24 >> 2] | 0; + if ($1101 >>> 0 < $1103 >>> 0) { + HEAP32[$1101 + 12 >> 2] = HEAP32[$18 + 12 >> 2]; + HEAP32[$1101 >> 2] = HEAP32[$18 >> 2]; + $1110 = $18 + 4 | 0; + HEAP32[$1101 + 4 >> 2] = HEAP32[$1110 >> 2]; + $1112 = $18 + 8 | 0; + HEAP32[$1101 + 8 >> 2] = HEAP32[$1112 >> 2]; + HEAP32[$1112 >> 2] = 0; + HEAP32[$1110 >> 2] = 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$1100 >> 2] = (HEAP32[$1100 >> 2] | 0) + 16; + } else { + $1120 = HEAP32[$1096 >> 2] | 0; + $1121 = $1101 - $1120 | 0; + $1122 = $1121 >> 4; + $1123 = $1122 + 1 | 0; + if (($1121 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1096); + $1126 = $1103 - $1120 | 0; + if ($1126 >> 4 >>> 0 < 1073741823) { + $1129 = $1126 >> 3; + $$0$i$i$i76 = $1129 >>> 0 < $1123 >>> 0 ? $1123 : $1129; + } else $$0$i$i$i76 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i76, $1122, $db + 28 | 0); + $1132 = $__v$i$i$i + 8 | 0; + $1133 = HEAP32[$1132 >> 2] | 0; + HEAP32[$1133 + 12 >> 2] = HEAP32[$18 + 12 >> 2]; + HEAP32[$1133 >> 2] = HEAP32[$18 >> 2]; + $1139 = $18 + 4 | 0; + HEAP32[$1133 + 4 >> 2] = HEAP32[$1139 >> 2]; + $1141 = $18 + 8 | 0; + HEAP32[$1133 + 8 >> 2] = HEAP32[$1141 >> 2]; + HEAP32[$1141 >> 2] = 0; + HEAP32[$1139 >> 2] = 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$1132 >> 2] = $1133 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1096, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18); + $$0 = $$08$i; + break L1; + break; + } + case 79: + { + $1145 = $db + 4 | 0; + $1151 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $1152 = $first + 1 | 0; + $1153 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1152, $last, $db) | 0; + $1159 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($1153 | 0) == ($1152 | 0)) { + $$0 = $first; + break L1; + } + $1161 = $db + 16 | 0; + $1164 = HEAP32[$db + 12 >> 2] | 0; + $1165 = $db + 20 | 0; + $1166 = HEAP32[$1165 >> 2] | 0; + $1168 = HEAP32[$db + 24 >> 2] | 0; + if ($1166 >>> 0 < $1168 >>> 0) { + HEAP32[$1166 >> 2] = 0; + HEAP32[$1166 + 4 >> 2] = 0; + HEAP32[$1166 + 8 >> 2] = 0; + HEAP32[$1166 + 12 >> 2] = $1164; + HEAP32[$1165 >> 2] = (HEAP32[$1165 >> 2] | 0) + 16; + } else { + $1178 = HEAP32[$1161 >> 2] | 0; + $1179 = $1166 - $1178 | 0; + $1180 = $1179 >> 4; + $1181 = $1180 + 1 | 0; + if (($1179 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1161); + $1184 = $1168 - $1178 | 0; + if ($1184 >> 4 >>> 0 < 1073741823) { + $1187 = $1184 >> 3; + $$0$i$i$i81 = $1187 >>> 0 < $1181 >>> 0 ? $1181 : $1187; + } else $$0$i$i$i81 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i81, $1180, $db + 28 | 0); + $1190 = $__v$i$i$i + 8 | 0; + $1191 = HEAP32[$1190 >> 2] | 0; + HEAP32[$1191 >> 2] = 0; + HEAP32[$1191 + 4 >> 2] = 0; + HEAP32[$1191 + 8 >> 2] = 0; + HEAP32[$1191 + 12 >> 2] = $1164; + HEAP32[$1190 >> 2] = $1191 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1161, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $1196 = $20 + 4 | 0; + $1197 = $20 + 8 | 0; + $1198 = $20 + 1 | 0; + $1199 = $__v$i$i$i + 8 | 0; + if ($1151 >>> 0 < $1159 >>> 0) $k5$0533 = $1151; else { + $$0 = $1153; + break L1; + } + while (1) { + $1201 = HEAP32[$db >> 2] | 0; + $1202 = $1201 + ($k5$0533 * 24 | 0) + 12 | 0; + $1203 = HEAP8[$1202 >> 0] | 0; + $1205 = ($1203 & 1) == 0; + $1210 = $1205 ? ($1203 & 255) >>> 1 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 16 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($20, $1205 ? $1202 + 1 | 0 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0, $1210 >>> 0 < 2 ? $1210 : 2); + $1217 = HEAP8[$20 >> 0] | 0; + $1219 = ($1217 & 1) == 0; + $1223 = $1219 ? ($1217 & 255) >>> 1 : HEAP32[$1196 >> 2] | 0; + $1226 = $1223 >>> 0 > 2; + $1228 = _memcmp($1219 ? $1198 : HEAP32[$1197 >> 2] | 0, 47865, $1226 ? 2 : $1223) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); + $1233 = HEAP32[$db >> 2] | 0; + if (!((($1228 | 0) == 0 ? ($1223 >>> 0 < 2 ? -1 : $1226 & 1) : $1228) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 47785) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } else { + $1237 = $1233 + ($k5$0533 * 24 | 0) + 12 | 0; + if (!(HEAP8[$1237 >> 0] & 1)) $1245 = $1237 + 1 | 0; else $1245 = HEAP32[$1233 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0; + if ((HEAP8[$1245 >> 0] | 0) == 40) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 47883) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) | 0, 47912) | 0; + $1252 = HEAP32[$1165 >> 2] | 0; + $1253 = $1252 + -16 | 0; + $1254 = HEAP32[$db >> 2] | 0; + $1255 = $1254 + ($k5$0533 * 24 | 0) | 0; + $1256 = $1252 + -12 | 0; + $1257 = HEAP32[$1256 >> 2] | 0; + if (($1257 | 0) == (HEAP32[$1252 + -8 >> 2] | 0)) { + $1269 = $1257 - (HEAP32[$1253 >> 2] | 0) | 0; + $1270 = ($1269 | 0) / 24 | 0; + $1271 = $1270 + 1 | 0; + if (($1269 | 0) < -24) { + $$lcssa667 = $1253; + break; + } + if ($1270 >>> 0 < 1073741823) { + $1274 = $1270 << 1; + $$0$i$i$i87 = $1274 >>> 0 < $1271 >>> 0 ? $1271 : $1274; + } else $$0$i$i$i87 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i87, $1270, $1252 + -4 | 0); + $1277 = HEAP32[$1199 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277, $1255); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0); + HEAP32[$1199 >> 2] = $1277 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1253, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257, $1255); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0); + HEAP32[$1256 >> 2] = (HEAP32[$1256 >> 2] | 0) + 24; + } + $k5$0533 = $k5$0533 + 1 | 0; + if ($k5$0533 >>> 0 >= $1159 >>> 0) { + $$0 = $1153; + break L1; + } + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa667); + break; + } + case 80: + { + $1283 = $db + 4 | 0; + $1289 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $1290 = $first + 1 | 0; + $1291 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1290, $last, $db) | 0; + $1297 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($1291 | 0) == ($1290 | 0)) { + $$0 = $first; + break L1; + } + $1299 = $db + 16 | 0; + $1302 = HEAP32[$db + 12 >> 2] | 0; + $1303 = $db + 20 | 0; + $1304 = HEAP32[$1303 >> 2] | 0; + $1306 = HEAP32[$db + 24 >> 2] | 0; + if ($1304 >>> 0 < $1306 >>> 0) { + HEAP32[$1304 >> 2] = 0; + HEAP32[$1304 + 4 >> 2] = 0; + HEAP32[$1304 + 8 >> 2] = 0; + HEAP32[$1304 + 12 >> 2] = $1302; + HEAP32[$1303 >> 2] = (HEAP32[$1303 >> 2] | 0) + 16; + } else { + $1316 = HEAP32[$1299 >> 2] | 0; + $1317 = $1304 - $1316 | 0; + $1318 = $1317 >> 4; + $1319 = $1318 + 1 | 0; + if (($1317 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1299); + $1322 = $1306 - $1316 | 0; + if ($1322 >> 4 >>> 0 < 1073741823) { + $1325 = $1322 >> 3; + $$0$i$i$i95 = $1325 >>> 0 < $1319 >>> 0 ? $1319 : $1325; + } else $$0$i$i$i95 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i95, $1318, $db + 28 | 0); + $1328 = $__v$i$i$i + 8 | 0; + $1329 = HEAP32[$1328 >> 2] | 0; + HEAP32[$1329 >> 2] = 0; + HEAP32[$1329 + 4 >> 2] = 0; + HEAP32[$1329 + 8 >> 2] = 0; + HEAP32[$1329 + 12 >> 2] = $1302; + HEAP32[$1328 >> 2] = $1329 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1299, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $1334 = $21 + 4 | 0; + $1335 = $21 + 8 | 0; + $1336 = $21 + 1 | 0; + $1337 = $22 + 4 | 0; + $1338 = $22 + 8 | 0; + $1339 = $22 + 1 | 0; + $1340 = $__v$i$i$i + 8 | 0; + if ($1289 >>> 0 < $1297 >>> 0) $k8$0536 = $1289; else { + $$0 = $1291; + break L1; + } + while (1) { + $1342 = HEAP32[$db >> 2] | 0; + $1343 = $1342 + ($k8$0536 * 24 | 0) + 12 | 0; + $1344 = HEAP8[$1343 >> 0] | 0; + $1346 = ($1344 & 1) == 0; + $1351 = $1346 ? ($1344 & 255) >>> 1 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 16 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($21, $1346 ? $1343 + 1 | 0 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0, $1351 >>> 0 < 2 ? $1351 : 2); + $1358 = HEAP8[$21 >> 0] | 0; + $1360 = ($1358 & 1) == 0; + $1364 = $1360 ? ($1358 & 255) >>> 1 : HEAP32[$1334 >> 2] | 0; + $1367 = $1364 >>> 0 > 2; + $1369 = _memcmp($1360 ? $1336 : HEAP32[$1335 >> 2] | 0, 47865, $1367 ? 2 : $1364) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); + $1374 = HEAP32[$db >> 2] | 0; + if (!((($1369 | 0) == 0 ? ($1364 >>> 0 < 2 ? -1 : $1367 & 1) : $1369) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 47785) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } else { + $1378 = $1374 + ($k8$0536 * 24 | 0) + 12 | 0; + if (!(HEAP8[$1378 >> 0] & 1)) $1386 = $1378 + 1 | 0; else $1386 = HEAP32[$1374 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0; + if ((HEAP8[$1386 >> 0] | 0) == 40) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 47883) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } + } + $1393 = HEAP32[$db >> 2] | 0; + $1394 = $1393 + ($k8$0536 * 24 | 0) | 0; + do if ((HEAP8[$1290 >> 0] | 0) == 85) { + $1395 = HEAP8[$1394 >> 0] | 0; + $1397 = ($1395 & 1) == 0; + $1402 = $1397 ? ($1395 & 255) >>> 1 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, $1397 ? $1394 + 1 | 0 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0, $1402 >>> 0 < 12 ? $1402 : 12); + $1409 = HEAP8[$22 >> 0] | 0; + $1411 = ($1409 & 1) == 0; + $1415 = $1411 ? ($1409 & 255) >>> 1 : HEAP32[$1337 >> 2] | 0; + $1418 = $1415 >>> 0 > 12; + $1420 = _memcmp($1411 ? $1339 : HEAP32[$1338 >> 2] | 0, 47915, $1418 ? 12 : $1415) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); + $1425 = HEAP32[$db >> 2] | 0; + $1426 = $1425 + ($k8$0536 * 24 | 0) | 0; + if (!((($1420 | 0) == 0 ? ($1415 >>> 0 < 12 ? -1 : $1418 & 1) : $1420) | 0)) { + $1428 = HEAP8[$1426 >> 0] | 0; + if (!($1428 & 1)) { + $1432 = ($1428 & 255) >>> 1; + $1443 = $1432 >>> 0 < 11 ? $1432 : 11; + $1444 = $1432; + $1446 = 10; + $1449 = $1428; + } else { + $1436 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0; + $1439 = HEAP32[$1426 >> 2] | 0; + $1443 = $1436 >>> 0 < 11 ? $1436 : 11; + $1444 = $1436; + $1446 = ($1439 & -2) + -1 | 0; + $1449 = $1439 & 255; + } + if (($1443 - $1444 + $1446 | 0) >>> 0 < 2) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($1426, $1446, 2 - $1443 + $1444 - $1446 | 0, $1444, 0, $1443, 2, 47930); + break; + } + if (!($1449 & 1)) $1458 = $1426 + 1 | 0; else $1458 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0; + do if (($1443 | 0) == 2) { + $$1$i$i = 0; + $$12$i$i = 47930; + $$14$i$i = 2; + $2573 = 2; + label = 339; + } else { + $1455 = $1444 - $1443 | 0; + if (($1444 | 0) == ($1443 | 0)) { + $$1$i$i = 0; + $$12$i$i = 47930; + $$14$i$i = 2; + $2573 = $1443; + label = 339; + } else { + if ($1443 >>> 0 > 2) { + HEAP8[$1458 >> 0] = 105; + HEAP8[$1458 + 1 >> 0] = 100; + _memmove($1458 + 2 | 0, $1458 + $1443 | 0, $1455 | 0) | 0; + $$2$i$i = 2; + $1474 = $1443; + break; + } + do if ($1458 >>> 0 < 47930 >>> 0 & ($1458 + $1444 | 0) >>> 0 > 47930 >>> 0) if (($1458 + $1443 | 0) >>> 0 > 47930 >>> 0) { + _memcpy($1458 | 0, 47930, $1443 | 0) | 0; + $$0$i$i = $1443; + $$01$i$i = 47932; + $$03$i$i = 2 - $1443 | 0; + $1470 = 0; + break; + } else { + $$0$i$i = 0; + $$01$i$i = 47930 + (2 - $1443) | 0; + $$03$i$i = 2; + $1470 = $1443; + break; + } else { + $$0$i$i = 0; + $$01$i$i = 47930; + $$03$i$i = 2; + $1470 = $1443; + } while (0); + _memmove($1458 + ($$0$i$i + $$03$i$i) | 0, $1458 + ($$0$i$i + $1470) | 0, $1455 | 0) | 0; + $$1$i$i = $$0$i$i; + $$12$i$i = $$01$i$i; + $$14$i$i = $$03$i$i; + $2573 = $1470; + label = 339; + } + } while (0); + if ((label | 0) == 339) { + label = 0; + _memmove($1458 + $$1$i$i | 0, $$12$i$i | 0, $$14$i$i | 0) | 0; + $$2$i$i = $$14$i$i; + $1474 = $2573; + } + $1475 = $$2$i$i - $1474 + $1444 | 0; + if (!(HEAP8[$1426 >> 0] & 1)) HEAP8[$1426 >> 0] = $1475 << 1; else HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] = $1475; + HEAP8[$1458 + $1475 >> 0] = 0; + } else { + $1427 = $1426; + label = 322; + } + } else { + $1427 = $1394; + label = 322; + } while (0); + if ((label | 0) == 322) { + label = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1427, 47928) | 0; + } + $1486 = HEAP32[$1303 >> 2] | 0; + $1487 = $1486 + -16 | 0; + $1488 = HEAP32[$db >> 2] | 0; + $1489 = $1488 + ($k8$0536 * 24 | 0) | 0; + $1490 = $1486 + -12 | 0; + $1491 = HEAP32[$1490 >> 2] | 0; + if (($1491 | 0) == (HEAP32[$1486 + -8 >> 2] | 0)) { + $1503 = $1491 - (HEAP32[$1487 >> 2] | 0) | 0; + $1504 = ($1503 | 0) / 24 | 0; + $1505 = $1504 + 1 | 0; + if (($1503 | 0) < -24) { + $$lcssa674 = $1487; + break; + } + if ($1504 >>> 0 < 1073741823) { + $1508 = $1504 << 1; + $$0$i$i$i105 = $1508 >>> 0 < $1505 >>> 0 ? $1505 : $1508; + } else $$0$i$i$i105 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i105, $1504, $1486 + -4 | 0); + $1511 = HEAP32[$1340 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511, $1489); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0); + HEAP32[$1340 >> 2] = $1511 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1487, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491, $1489); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0); + HEAP32[$1490 >> 2] = (HEAP32[$1490 >> 2] | 0) + 24; + } + $k8$0536 = $k8$0536 + 1 | 0; + if ($k8$0536 >>> 0 >= $1297 >>> 0) { + $$0 = $1291; + break L1; + } + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa674); + break; + } + case 82: + { + $1517 = $db + 4 | 0; + $1523 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $1524 = $first + 1 | 0; + $1525 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1524, $last, $db) | 0; + $1531 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($1525 | 0) == ($1524 | 0)) { + $$0 = $first; + break L1; + } + $1533 = $db + 16 | 0; + $1536 = HEAP32[$db + 12 >> 2] | 0; + $1537 = $db + 20 | 0; + $1538 = HEAP32[$1537 >> 2] | 0; + $1540 = HEAP32[$db + 24 >> 2] | 0; + if ($1538 >>> 0 < $1540 >>> 0) { + HEAP32[$1538 >> 2] = 0; + HEAP32[$1538 + 4 >> 2] = 0; + HEAP32[$1538 + 8 >> 2] = 0; + HEAP32[$1538 + 12 >> 2] = $1536; + HEAP32[$1537 >> 2] = (HEAP32[$1537 >> 2] | 0) + 16; + } else { + $1550 = HEAP32[$1533 >> 2] | 0; + $1551 = $1538 - $1550 | 0; + $1552 = $1551 >> 4; + $1553 = $1552 + 1 | 0; + if (($1551 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1533); + $1556 = $1540 - $1550 | 0; + if ($1556 >> 4 >>> 0 < 1073741823) { + $1559 = $1556 >> 3; + $$0$i$i$i113 = $1559 >>> 0 < $1553 >>> 0 ? $1553 : $1559; + } else $$0$i$i$i113 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i113, $1552, $db + 28 | 0); + $1562 = $__v$i$i$i + 8 | 0; + $1563 = HEAP32[$1562 >> 2] | 0; + HEAP32[$1563 >> 2] = 0; + HEAP32[$1563 + 4 >> 2] = 0; + HEAP32[$1563 + 8 >> 2] = 0; + HEAP32[$1563 + 12 >> 2] = $1536; + HEAP32[$1562 >> 2] = $1563 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1533, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $1568 = $23 + 4 | 0; + $1569 = $23 + 8 | 0; + $1570 = $23 + 1 | 0; + $1571 = $__v$i$i$i + 8 | 0; + if ($1523 >>> 0 < $1531 >>> 0) $k11$0540 = $1523; else { + $$0 = $1525; + break L1; + } + while (1) { + $1573 = HEAP32[$db >> 2] | 0; + $1574 = $1573 + ($k11$0540 * 24 | 0) + 12 | 0; + $1575 = HEAP8[$1574 >> 0] | 0; + $1577 = ($1575 & 1) == 0; + $1582 = $1577 ? ($1575 & 255) >>> 1 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 16 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($23, $1577 ? $1574 + 1 | 0 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0, $1582 >>> 0 < 2 ? $1582 : 2); + $1589 = HEAP8[$23 >> 0] | 0; + $1591 = ($1589 & 1) == 0; + $1595 = $1591 ? ($1589 & 255) >>> 1 : HEAP32[$1568 >> 2] | 0; + $1598 = $1595 >>> 0 > 2; + $1600 = _memcmp($1591 ? $1570 : HEAP32[$1569 >> 2] | 0, 47865, $1598 ? 2 : $1595) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); + $1605 = HEAP32[$db >> 2] | 0; + if (!((($1600 | 0) == 0 ? ($1595 >>> 0 < 2 ? -1 : $1598 & 1) : $1600) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 47785) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } else { + $1609 = $1605 + ($k11$0540 * 24 | 0) + 12 | 0; + if (!(HEAP8[$1609 >> 0] & 1)) $1617 = $1609 + 1 | 0; else $1617 = HEAP32[$1605 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0; + if ((HEAP8[$1617 >> 0] | 0) == 40) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 47883) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 47788) | 0; + } + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) | 0, 47933) | 0; + $1624 = HEAP32[$1537 >> 2] | 0; + $1625 = $1624 + -16 | 0; + $1626 = HEAP32[$db >> 2] | 0; + $1627 = $1626 + ($k11$0540 * 24 | 0) | 0; + $1628 = $1624 + -12 | 0; + $1629 = HEAP32[$1628 >> 2] | 0; + if (($1629 | 0) == (HEAP32[$1624 + -8 >> 2] | 0)) { + $1641 = $1629 - (HEAP32[$1625 >> 2] | 0) | 0; + $1642 = ($1641 | 0) / 24 | 0; + $1643 = $1642 + 1 | 0; + if (($1641 | 0) < -24) { + $$lcssa682 = $1625; + break; + } + if ($1642 >>> 0 < 1073741823) { + $1646 = $1642 << 1; + $$0$i$i$i123 = $1646 >>> 0 < $1643 >>> 0 ? $1643 : $1646; + } else $$0$i$i$i123 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i123, $1642, $1624 + -4 | 0); + $1649 = HEAP32[$1571 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649, $1627); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0); + HEAP32[$1571 >> 2] = $1649 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1625, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629, $1627); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0); + HEAP32[$1628 >> 2] = (HEAP32[$1628 >> 2] | 0) + 24; + } + $k11$0540 = $k11$0540 + 1 | 0; + if ($k11$0540 >>> 0 >= $1531 >>> 0) { + $$0 = $1525; + break L1; + } + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa682); + break; + } + case 84: + { + $1655 = $db + 4 | 0; + $1661 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $1662 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + $1668 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($1662 | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $1670 = $db + 16 | 0; + $1671 = $db + 12 | 0; + $1673 = HEAP32[$1671 >> 2] | 0; + $1674 = $db + 20 | 0; + $1675 = HEAP32[$1674 >> 2] | 0; + $1676 = $db + 24 | 0; + $1677 = HEAP32[$1676 >> 2] | 0; + if ($1675 >>> 0 < $1677 >>> 0) { + HEAP32[$1675 >> 2] = 0; + HEAP32[$1675 + 4 >> 2] = 0; + HEAP32[$1675 + 8 >> 2] = 0; + HEAP32[$1675 + 12 >> 2] = $1673; + HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16; + } else { + $1687 = HEAP32[$1670 >> 2] | 0; + $1688 = $1675 - $1687 | 0; + $1689 = $1688 >> 4; + $1690 = $1689 + 1 | 0; + if (($1688 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670); + $1693 = $1677 - $1687 | 0; + if ($1693 >> 4 >>> 0 < 1073741823) { + $1696 = $1693 >> 3; + $$0$i$i$i131 = $1696 >>> 0 < $1690 >>> 0 ? $1690 : $1696; + } else $$0$i$i$i131 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i131, $1689, $db + 28 | 0); + $1699 = $__v$i$i$i + 8 | 0; + $1700 = HEAP32[$1699 >> 2] | 0; + HEAP32[$1700 >> 2] = 0; + HEAP32[$1700 + 4 >> 2] = 0; + HEAP32[$1700 + 8 >> 2] = 0; + HEAP32[$1700 + 12 >> 2] = $1673; + HEAP32[$1699 >> 2] = $1700 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $1705 = $__v$i$i$i + 8 | 0; + L522 : do if ($1661 >>> 0 < $1668 >>> 0) { + $k15$0543 = $1661; + while (1) { + $1707 = HEAP32[$1674 >> 2] | 0; + $1708 = $1707 + -16 | 0; + $1709 = HEAP32[$db >> 2] | 0; + $1710 = $1709 + ($k15$0543 * 24 | 0) | 0; + $1711 = $1707 + -12 | 0; + $1712 = HEAP32[$1711 >> 2] | 0; + if (($1712 | 0) == (HEAP32[$1707 + -8 >> 2] | 0)) { + $1724 = $1712 - (HEAP32[$1708 >> 2] | 0) | 0; + $1725 = ($1724 | 0) / 24 | 0; + $1726 = $1725 + 1 | 0; + if (($1724 | 0) < -24) { + $$lcssa690 = $1708; + break; + } + if ($1725 >>> 0 < 1073741823) { + $1729 = $1725 << 1; + $$0$i$i$i136 = $1729 >>> 0 < $1726 >>> 0 ? $1726 : $1729; + } else $$0$i$i$i136 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i136, $1725, $1707 + -4 | 0); + $1732 = HEAP32[$1705 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732, $1710); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0); + HEAP32[$1705 >> 2] = $1732 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1708, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712, $1710); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0); + HEAP32[$1711 >> 2] = (HEAP32[$1711 >> 2] | 0) + 24; + } + $k15$0543 = $k15$0543 + 1 | 0; + if ($k15$0543 >>> 0 >= $1668 >>> 0) break L522; + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa690); + } while (0); + if (!(($1668 | 0) == ($1661 + 1 | 0) & (HEAP8[$db + 63 >> 0] | 0) != 0)) { + $$0 = $1662; + break L1; + } + $1743 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0; + if (($1743 | 0) == ($1662 | 0)) { + $$0 = $1662; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, (HEAP32[$1655 >> 2] | 0) + -24 | 0); + $1747 = HEAP32[$1655 >> 2] | 0; + $1748 = $1747 + -24 | 0; + $1750 = $1747; + do { + $1749 = $1750 + -24 | 0; + HEAP32[$1655 >> 2] = $1749; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1749); + $1750 = HEAP32[$1655 >> 2] | 0; + } while (($1750 | 0) != ($1748 | 0)); + $1753 = HEAP8[$args >> 0] | 0; + $1755 = ($1753 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1747 + -48 | 0, $1755 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $1755 ? ($1753 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; + $1766 = (HEAP32[$1655 >> 2] | 0) + -24 | 0; + HEAP32[$25 >> 2] = HEAP32[$1671 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($24, $1766, $25); + $1768 = HEAP32[$1674 >> 2] | 0; + $1769 = HEAP32[$1676 >> 2] | 0; + if ($1768 >>> 0 < $1769 >>> 0) { + HEAP32[$1768 + 12 >> 2] = HEAP32[$24 + 12 >> 2]; + HEAP32[$1768 >> 2] = HEAP32[$24 >> 2]; + $1776 = $24 + 4 | 0; + HEAP32[$1768 + 4 >> 2] = HEAP32[$1776 >> 2]; + $1778 = $24 + 8 | 0; + HEAP32[$1768 + 8 >> 2] = HEAP32[$1778 >> 2]; + HEAP32[$1778 >> 2] = 0; + HEAP32[$1776 >> 2] = 0; + HEAP32[$24 >> 2] = 0; + HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16; + } else { + $1786 = HEAP32[$1670 >> 2] | 0; + $1787 = $1768 - $1786 | 0; + $1788 = $1787 >> 4; + $1789 = $1788 + 1 | 0; + if (($1787 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670); + $1792 = $1769 - $1786 | 0; + if ($1792 >> 4 >>> 0 < 1073741823) { + $1795 = $1792 >> 3; + $$0$i$i$i148 = $1795 >>> 0 < $1789 >>> 0 ? $1789 : $1795; + } else $$0$i$i$i148 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i148, $1788, $db + 28 | 0); + $1798 = $__v$i$i$i + 8 | 0; + $1799 = HEAP32[$1798 >> 2] | 0; + HEAP32[$1799 + 12 >> 2] = HEAP32[$24 + 12 >> 2]; + HEAP32[$1799 >> 2] = HEAP32[$24 >> 2]; + $1805 = $24 + 4 | 0; + HEAP32[$1799 + 4 >> 2] = HEAP32[$1805 >> 2]; + $1807 = $24 + 8 | 0; + HEAP32[$1799 + 8 >> 2] = HEAP32[$1807 >> 2]; + HEAP32[$1807 >> 2] = 0; + HEAP32[$1805 >> 2] = 0; + HEAP32[$24 >> 2] = 0; + HEAP32[$1798 >> 2] = $1799 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($24); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$0 = $1743; + break L1; + break; + } + case 85: + { + $1811 = $first + 1 | 0; + if (($1811 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + $1813 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1811, $last, $db) | 0; + if (($1813 | 0) == ($1811 | 0)) { + $$0 = $first; + break L1; + } + $1815 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1813, $last, $db) | 0; + if (($1815 | 0) == ($1813 | 0)) { + $$0 = $first; + break L1; + } + $1817 = $db + 4 | 0; + $1818 = HEAP32[$1817 >> 2] | 0; + if ((($1818 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($type, $1818 + -24 | 0); + $1826 = HEAP32[$1817 >> 2] | 0; + $1827 = $1826 + -24 | 0; + $1829 = $1826; + do { + $1828 = $1829 + -24 | 0; + HEAP32[$1817 >> 2] = $1828; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1828); + $1829 = HEAP32[$1817 >> 2] | 0; + } while (($1829 | 0) != ($1827 | 0)); + $1831 = $1826 + -48 | 0; + $1832 = HEAP8[$1831 >> 0] | 0; + $1834 = ($1832 & 1) == 0; + $1839 = $1834 ? ($1832 & 255) >>> 1 : HEAP32[$1826 + -44 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($26, $1834 ? $1831 + 1 | 0 : HEAP32[$1826 + -40 >> 2] | 0, $1839 >>> 0 < 9 ? $1839 : 9); + $1846 = HEAP8[$26 >> 0] | 0; + $1848 = ($1846 & 1) == 0; + $1853 = $1848 ? ($1846 & 255) >>> 1 : HEAP32[$26 + 4 >> 2] | 0; + $1858 = $1853 >>> 0 > 9; + $1860 = _memcmp($1848 ? $26 + 1 | 0 : HEAP32[$26 + 8 >> 2] | 0, 47935, $1858 ? 9 : $1853) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26); + $1866 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; + if (!((($1860 | 0) == 0 ? ($1853 >>> 0 < 9 ? -1 : $1858 & 1) : $1860) | 0)) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($proto, $1866); + $1884 = HEAP32[$1817 >> 2] | 0; + $1885 = $1884 + -24 | 0; + $1887 = $1884; + do { + $1886 = $1887 + -24 | 0; + HEAP32[$1817 >> 2] = $1886; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1886); + $1887 = HEAP32[$1817 >> 2] | 0; + } while (($1887 | 0) != ($1885 | 0)); + $1889 = HEAP8[$proto >> 0] | 0; + $1891 = ($1889 & 1) == 0; + $1892 = $proto + 8 | 0; + $1894 = $proto + 1 | 0; + $1895 = $1891 ? $1894 : HEAP32[$1892 >> 2] | 0; + $1897 = $proto + 4 | 0; + $1903 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1895 + 9 | 0, $1895 + ($1891 ? ($1889 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0, $db) | 0; + if (($1903 | 0) == (((HEAP8[$proto >> 0] & 1) == 0 ? $1894 : HEAP32[$1892 >> 2] | 0) + 9 | 0)) { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($38, $type, 47895); + $1933 = HEAP8[$proto >> 0] | 0; + $1935 = ($1933 & 1) == 0; + $1942 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($38, $1935 ? $1894 : HEAP32[$1892 >> 2] | 0, $1935 ? ($1933 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0; + HEAP32[$37 >> 2] = HEAP32[$1942 >> 2]; + HEAP32[$37 + 4 >> 2] = HEAP32[$1942 + 4 >> 2]; + HEAP32[$37 + 8 >> 2] = HEAP32[$1942 + 8 >> 2]; + HEAP32[$1942 >> 2] = 0; + HEAP32[$1942 + 4 >> 2] = 0; + HEAP32[$1942 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37); + $1945 = HEAP32[$1817 >> 2] | 0; + $1947 = HEAP32[$db + 8 >> 2] | 0; + if ($1945 >>> 0 < $1947 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1945, $36); + HEAP32[$1817 >> 2] = (HEAP32[$1817 >> 2] | 0) + 24; + } else { + $1954 = HEAP32[$db >> 2] | 0; + $1955 = $1945 - $1954 | 0; + $1956 = ($1955 | 0) / 24 | 0; + $1957 = $1956 + 1 | 0; + if (($1955 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1961 = ($1947 - $1954 | 0) / 24 | 0; + if ($1961 >>> 0 < 1073741823) { + $1963 = $1961 << 1; + $$0$i$i$i181 = $1963 >>> 0 < $1957 >>> 0 ? $1957 : $1963; + } else $$0$i$i$i181 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i181, $1956, $db + 12 | 0); + $1966 = $__v$i$i$i + 8 | 0; + $1967 = HEAP32[$1966 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1967, $36); + HEAP32[$1966 >> 2] = $1967 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38); + } else { + $1912 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($34, $type, 47945); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($35, (HEAP32[$1817 >> 2] | 0) + -24 | 0); + $1915 = HEAP8[$35 >> 0] | 0; + $1917 = ($1915 & 1) == 0; + $1927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($34, $1917 ? $35 + 1 | 0 : HEAP32[$35 + 8 >> 2] | 0, $1917 ? ($1915 & 255) >>> 1 : HEAP32[$35 + 4 >> 2] | 0) | 0; + HEAP32[$33 >> 2] = HEAP32[$1927 >> 2]; + HEAP32[$33 + 4 >> 2] = HEAP32[$1927 + 4 >> 2]; + HEAP32[$33 + 8 >> 2] = HEAP32[$1927 + 8 >> 2]; + HEAP32[$1927 >> 2] = 0; + HEAP32[$1927 + 4 >> 2] = 0; + HEAP32[$1927 + 8 >> 2] = 0; + $1930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($33, 47947) | 0; + HEAP32[$32 >> 2] = HEAP32[$1930 >> 2]; + HEAP32[$32 + 4 >> 2] = HEAP32[$1930 + 4 >> 2]; + HEAP32[$32 + 8 >> 2] = HEAP32[$1930 + 8 >> 2]; + HEAP32[$1930 >> 2] = 0; + HEAP32[$1930 + 4 >> 2] = 0; + HEAP32[$1930 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($31, $32); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1912, $31); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($proto); + } else { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($29, $type, 47895); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($30, (HEAP32[$1817 >> 2] | 0) + -24 | 0); + $1869 = HEAP8[$30 >> 0] | 0; + $1871 = ($1869 & 1) == 0; + $1881 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($29, $1871 ? $30 + 1 | 0 : HEAP32[$30 + 8 >> 2] | 0, $1871 ? ($1869 & 255) >>> 1 : HEAP32[$30 + 4 >> 2] | 0) | 0; + HEAP32[$28 >> 2] = HEAP32[$1881 >> 2]; + HEAP32[$28 + 4 >> 2] = HEAP32[$1881 + 4 >> 2]; + HEAP32[$28 + 8 >> 2] = HEAP32[$1881 + 8 >> 2]; + HEAP32[$1881 >> 2] = 0; + HEAP32[$1881 + 4 >> 2] = 0; + HEAP32[$1881 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($27, $28); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1866, $27); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29); + } + $1970 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; + HEAP32[$40 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($39, $1970, $40); + $1973 = $db + 16 | 0; + $1974 = $db + 20 | 0; + $1975 = HEAP32[$1974 >> 2] | 0; + $1977 = HEAP32[$db + 24 >> 2] | 0; + if ($1975 >>> 0 < $1977 >>> 0) { + HEAP32[$1975 + 12 >> 2] = HEAP32[$39 + 12 >> 2]; + HEAP32[$1975 >> 2] = HEAP32[$39 >> 2]; + $1984 = $39 + 4 | 0; + HEAP32[$1975 + 4 >> 2] = HEAP32[$1984 >> 2]; + $1986 = $39 + 8 | 0; + HEAP32[$1975 + 8 >> 2] = HEAP32[$1986 >> 2]; + HEAP32[$1986 >> 2] = 0; + HEAP32[$1984 >> 2] = 0; + HEAP32[$39 >> 2] = 0; + HEAP32[$1974 >> 2] = (HEAP32[$1974 >> 2] | 0) + 16; + } else { + $1994 = HEAP32[$1973 >> 2] | 0; + $1995 = $1975 - $1994 | 0; + $1996 = $1995 >> 4; + $1997 = $1996 + 1 | 0; + if (($1995 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1973); + $2000 = $1977 - $1994 | 0; + if ($2000 >> 4 >>> 0 < 1073741823) { + $2003 = $2000 >> 3; + $$0$i$i$i153 = $2003 >>> 0 < $1997 >>> 0 ? $1997 : $2003; + } else $$0$i$i$i153 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i153, $1996, $db + 28 | 0); + $2006 = $__v$i$i$i + 8 | 0; + $2007 = HEAP32[$2006 >> 2] | 0; + HEAP32[$2007 + 12 >> 2] = HEAP32[$39 + 12 >> 2]; + HEAP32[$2007 >> 2] = HEAP32[$39 >> 2]; + $2013 = $39 + 4 | 0; + HEAP32[$2007 + 4 >> 2] = HEAP32[$2013 >> 2]; + $2015 = $39 + 8 | 0; + HEAP32[$2007 + 8 >> 2] = HEAP32[$2015 >> 2]; + HEAP32[$2015 >> 2] = 0; + HEAP32[$2013 >> 2] = 0; + HEAP32[$39 >> 2] = 0; + HEAP32[$2006 >> 2] = $2007 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1973, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($39); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($type); + $$0 = $1815; + break L1; + break; + } + case 83: + { + $2019 = $first + 1 | 0; + if (($2019 | 0) != ($last | 0)) if ((HEAP8[$2019 >> 0] | 0) == 116) { + $2023 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($2023 | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $2027 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2027 | 0)) { + $$0 = $first; + break L1; + } + $2029 = $db + 16 | 0; + HEAP32[$42 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($41, $2027 + -24 | 0, $42); + $2033 = $db + 20 | 0; + $2034 = HEAP32[$2033 >> 2] | 0; + $2036 = HEAP32[$db + 24 >> 2] | 0; + if ($2034 >>> 0 < $2036 >>> 0) { + HEAP32[$2034 + 12 >> 2] = HEAP32[$41 + 12 >> 2]; + HEAP32[$2034 >> 2] = HEAP32[$41 >> 2]; + $2043 = $41 + 4 | 0; + HEAP32[$2034 + 4 >> 2] = HEAP32[$2043 >> 2]; + $2045 = $41 + 8 | 0; + HEAP32[$2034 + 8 >> 2] = HEAP32[$2045 >> 2]; + HEAP32[$2045 >> 2] = 0; + HEAP32[$2043 >> 2] = 0; + HEAP32[$41 >> 2] = 0; + HEAP32[$2033 >> 2] = (HEAP32[$2033 >> 2] | 0) + 16; + } else { + $2053 = HEAP32[$2029 >> 2] | 0; + $2054 = $2034 - $2053 | 0; + $2055 = $2054 >> 4; + $2056 = $2055 + 1 | 0; + if (($2054 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2029); + $2059 = $2036 - $2053 | 0; + if ($2059 >> 4 >>> 0 < 1073741823) { + $2062 = $2059 >> 3; + $$0$i$i$i51 = $2062 >>> 0 < $2056 >>> 0 ? $2056 : $2062; + } else $$0$i$i$i51 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i51, $2055, $db + 28 | 0); + $2065 = $__v$i$i$i + 8 | 0; + $2066 = HEAP32[$2065 >> 2] | 0; + HEAP32[$2066 + 12 >> 2] = HEAP32[$41 + 12 >> 2]; + HEAP32[$2066 >> 2] = HEAP32[$41 >> 2]; + $2072 = $41 + 4 | 0; + HEAP32[$2066 + 4 >> 2] = HEAP32[$2072 >> 2]; + $2074 = $41 + 8 | 0; + HEAP32[$2066 + 8 >> 2] = HEAP32[$2074 >> 2]; + HEAP32[$2074 >> 2] = 0; + HEAP32[$2072 >> 2] = 0; + HEAP32[$41 >> 2] = 0; + HEAP32[$2065 >> 2] = $2066 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2029, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($41); + $$0 = $2023; + break L1; + } + $2078 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($2078 | 0) == ($first | 0)) { + $$0 = $first; + break L1; + } + $2080 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($2078, $last, $db) | 0; + if (($2080 | 0) == ($2078 | 0)) { + $$0 = $2078; + break L1; + } + $2082 = $db + 4 | 0; + $2083 = HEAP32[$2082 >> 2] | 0; + if ((($2083 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0 = $2078; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($template_args, $2083 + -24 | 0); + $2091 = HEAP32[$2082 >> 2] | 0; + $2092 = $2091 + -24 | 0; + $2094 = $2091; + do { + $2093 = $2094 + -24 | 0; + HEAP32[$2082 >> 2] = $2093; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2093); + $2094 = HEAP32[$2082 >> 2] | 0; + } while (($2094 | 0) != ($2092 | 0)); + $2097 = HEAP8[$template_args >> 0] | 0; + $2099 = ($2097 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2091 + -48 | 0, $2099 ? $template_args + 1 | 0 : HEAP32[$template_args + 8 >> 2] | 0, $2099 ? ($2097 & 255) >>> 1 : HEAP32[$template_args + 4 >> 2] | 0) | 0; + $2110 = (HEAP32[$2082 >> 2] | 0) + -24 | 0; + HEAP32[$44 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($43, $2110, $44); + $2113 = $db + 16 | 0; + $2114 = $db + 20 | 0; + $2115 = HEAP32[$2114 >> 2] | 0; + $2117 = HEAP32[$db + 24 >> 2] | 0; + if ($2115 >>> 0 < $2117 >>> 0) { + HEAP32[$2115 + 12 >> 2] = HEAP32[$43 + 12 >> 2]; + HEAP32[$2115 >> 2] = HEAP32[$43 >> 2]; + $2124 = $43 + 4 | 0; + HEAP32[$2115 + 4 >> 2] = HEAP32[$2124 >> 2]; + $2126 = $43 + 8 | 0; + HEAP32[$2115 + 8 >> 2] = HEAP32[$2126 >> 2]; + HEAP32[$2126 >> 2] = 0; + HEAP32[$2124 >> 2] = 0; + HEAP32[$43 >> 2] = 0; + HEAP32[$2114 >> 2] = (HEAP32[$2114 >> 2] | 0) + 16; + } else { + $2134 = HEAP32[$2113 >> 2] | 0; + $2135 = $2115 - $2134 | 0; + $2136 = $2135 >> 4; + $2137 = $2136 + 1 | 0; + if (($2135 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2113); + $2140 = $2117 - $2134 | 0; + if ($2140 >> 4 >>> 0 < 1073741823) { + $2143 = $2140 >> 3; + $$0$i$i$i31 = $2143 >>> 0 < $2137 >>> 0 ? $2137 : $2143; + } else $$0$i$i$i31 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i31, $2136, $db + 28 | 0); + $2146 = $__v$i$i$i + 8 | 0; + $2147 = HEAP32[$2146 >> 2] | 0; + HEAP32[$2147 + 12 >> 2] = HEAP32[$43 + 12 >> 2]; + HEAP32[$2147 >> 2] = HEAP32[$43 >> 2]; + $2153 = $43 + 4 | 0; + HEAP32[$2147 + 4 >> 2] = HEAP32[$2153 >> 2]; + $2155 = $43 + 8 | 0; + HEAP32[$2147 + 8 >> 2] = HEAP32[$2155 >> 2]; + HEAP32[$2155 >> 2] = 0; + HEAP32[$2153 >> 2] = 0; + HEAP32[$43 >> 2] = 0; + HEAP32[$2146 >> 2] = $2147 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2113, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($43); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($template_args); + $$0 = $2080; + break L1; + break; + } + case 68: + { + $2159 = $first + 1 | 0; + if (($2159 | 0) != ($last | 0)) { + $2161 = HEAP8[$2159 >> 0] | 0; + switch ($2161 << 24 >> 24 | 0) { + case 112: + { + $2163 = $db + 4 | 0; + $2169 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $2170 = $first + 2 | 0; + $2171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2170, $last, $db) | 0; + $2177 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (($2171 | 0) == ($2170 | 0)) break L65; + $2179 = $db + 16 | 0; + $2182 = HEAP32[$db + 12 >> 2] | 0; + $2183 = $db + 20 | 0; + $2184 = HEAP32[$2183 >> 2] | 0; + $2186 = HEAP32[$db + 24 >> 2] | 0; + if ($2184 >>> 0 < $2186 >>> 0) { + HEAP32[$2184 >> 2] = 0; + HEAP32[$2184 + 4 >> 2] = 0; + HEAP32[$2184 + 8 >> 2] = 0; + HEAP32[$2184 + 12 >> 2] = $2182; + HEAP32[$2183 >> 2] = (HEAP32[$2183 >> 2] | 0) + 16; + } else { + $2196 = HEAP32[$2179 >> 2] | 0; + $2197 = $2184 - $2196 | 0; + $2198 = $2197 >> 4; + $2199 = $2198 + 1 | 0; + if (($2197 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2179); + $2202 = $2186 - $2196 | 0; + if ($2202 >> 4 >>> 0 < 1073741823) { + $2205 = $2202 >> 3; + $$0$i$i$i29 = $2205 >>> 0 < $2199 >>> 0 ? $2199 : $2205; + } else $$0$i$i$i29 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i29, $2198, $db + 28 | 0); + $2208 = $__v$i$i$i + 8 | 0; + $2209 = HEAP32[$2208 >> 2] | 0; + HEAP32[$2209 >> 2] = 0; + HEAP32[$2209 + 4 >> 2] = 0; + HEAP32[$2209 + 8 >> 2] = 0; + HEAP32[$2209 + 12 >> 2] = $2182; + HEAP32[$2208 >> 2] = $2209 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2179, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + $2214 = $__v$i$i$i + 8 | 0; + if ($2169 >>> 0 < $2177 >>> 0) $k20$0550 = $2169; else { + $$0 = $2171; + break L1; + } + while (1) { + $2216 = HEAP32[$2183 >> 2] | 0; + $2217 = $2216 + -16 | 0; + $2218 = HEAP32[$db >> 2] | 0; + $2219 = $2218 + ($k20$0550 * 24 | 0) | 0; + $2220 = $2216 + -12 | 0; + $2221 = HEAP32[$2220 >> 2] | 0; + if (($2221 | 0) == (HEAP32[$2216 + -8 >> 2] | 0)) { + $2233 = $2221 - (HEAP32[$2217 >> 2] | 0) | 0; + $2234 = ($2233 | 0) / 24 | 0; + $2235 = $2234 + 1 | 0; + if (($2233 | 0) < -24) { + $$lcssa698 = $2217; + break; + } + if ($2234 >>> 0 < 1073741823) { + $2238 = $2234 << 1; + $$0$i$i$i27 = $2238 >>> 0 < $2235 >>> 0 ? $2235 : $2238; + } else $$0$i$i$i27 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i27, $2234, $2216 + -4 | 0); + $2241 = HEAP32[$2214 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241, $2219); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0); + HEAP32[$2214 >> 2] = $2241 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($2217, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221, $2219); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0); + HEAP32[$2220 >> 2] = (HEAP32[$2220 >> 2] | 0) + 24; + } + $k20$0550 = $k20$0550 + 1 | 0; + if ($k20$0550 >>> 0 >= $2177 >>> 0) { + $$0 = $2171; + break L1; + } + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa698); + break; + } + case 84: + case 116: + { + $2247 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($2247 | 0) == ($first | 0)) break L65; + $2251 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2251 | 0)) { + $$0 = $first; + break L1; + } + $2253 = $db + 16 | 0; + HEAP32[$46 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($45, $2251 + -24 | 0, $46); + $2257 = $db + 20 | 0; + $2258 = HEAP32[$2257 >> 2] | 0; + $2260 = HEAP32[$db + 24 >> 2] | 0; + if ($2258 >>> 0 < $2260 >>> 0) { + HEAP32[$2258 + 12 >> 2] = HEAP32[$45 + 12 >> 2]; + HEAP32[$2258 >> 2] = HEAP32[$45 >> 2]; + $2267 = $45 + 4 | 0; + HEAP32[$2258 + 4 >> 2] = HEAP32[$2267 >> 2]; + $2269 = $45 + 8 | 0; + HEAP32[$2258 + 8 >> 2] = HEAP32[$2269 >> 2]; + HEAP32[$2269 >> 2] = 0; + HEAP32[$2267 >> 2] = 0; + HEAP32[$45 >> 2] = 0; + HEAP32[$2257 >> 2] = (HEAP32[$2257 >> 2] | 0) + 16; + } else { + $2277 = HEAP32[$2253 >> 2] | 0; + $2278 = $2258 - $2277 | 0; + $2279 = $2278 >> 4; + $2280 = $2279 + 1 | 0; + if (($2278 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2253); + $2283 = $2260 - $2277 | 0; + if ($2283 >> 4 >>> 0 < 1073741823) { + $2286 = $2283 >> 3; + $$0$i$i$i22 = $2286 >>> 0 < $2280 >>> 0 ? $2280 : $2286; + } else $$0$i$i$i22 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i22, $2279, $db + 28 | 0); + $2289 = $__v$i$i$i + 8 | 0; + $2290 = HEAP32[$2289 >> 2] | 0; + HEAP32[$2290 + 12 >> 2] = HEAP32[$45 + 12 >> 2]; + HEAP32[$2290 >> 2] = HEAP32[$45 >> 2]; + $2296 = $45 + 4 | 0; + HEAP32[$2290 + 4 >> 2] = HEAP32[$2296 >> 2]; + $2298 = $45 + 8 | 0; + HEAP32[$2290 + 8 >> 2] = HEAP32[$2298 >> 2]; + HEAP32[$2298 >> 2] = 0; + HEAP32[$2296 >> 2] = 0; + HEAP32[$45 >> 2] = 0; + HEAP32[$2289 >> 2] = $2290 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2253, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($45); + $$0 = $2247; + break L1; + break; + } + case 118: + { + L662 : do if (($last - $first | 0) > 3 & $197 << 24 >> 24 == 68 & $2161 << 24 >> 24 == 118) { + $2308 = $first + 2 | 0; + $2309 = HEAP8[$2308 >> 0] | 0; + if (($2309 + -49 & 255) < 9) { + $2311 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($2308, $last) | 0; + if (($2311 | 0) == ($last | 0)) { + $$1$i263 = $first; + break; + } + if ((HEAP8[$2311 >> 0] | 0) != 95) { + $$1$i263 = $first; + break; + } + $2317 = $2311 - $2308 | 0; + $2318 = $2311 + 1 | 0; + if (($2318 | 0) == ($last | 0)) { + $$1$i263 = $first; + break; + } + if ((HEAP8[$2318 >> 0] | 0) != 112) { + $2322 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2318, $last, $db) | 0; + if (($2322 | 0) == ($2318 | 0)) { + $$1$i263 = $first; + break; + } + $2326 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2326 | 0)) { + $$1$i263 = $first; + break; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $2308, $2317); + $2329 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 47949) | 0; + HEAP32[$1 >> 2] = HEAP32[$2329 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$2329 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$2329 + 8 >> 2]; + HEAP32[$2329 >> 2] = 0; + HEAP32[$2329 + 4 >> 2] = 0; + HEAP32[$2329 + 8 >> 2] = 0; + $2332 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47872) | 0; + HEAP32[$0 >> 2] = HEAP32[$2332 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$2332 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$2332 + 8 >> 2]; + HEAP32[$2332 >> 2] = 0; + HEAP32[$2332 + 4 >> 2] = 0; + HEAP32[$2332 + 8 >> 2] = 0; + $2335 = HEAP8[$0 >> 0] | 0; + $2337 = ($2335 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2326 + -24 | 0, $2337 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $2337 ? ($2335 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$1$i263 = $2322; + break; + } + $2347 = $2311 + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $2308, $2317); + $2348 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 47958) | 0; + HEAP32[$5 >> 2] = HEAP32[$2348 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$2348 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$2348 + 8 >> 2]; + HEAP32[$2348 >> 2] = 0; + HEAP32[$2348 + 4 >> 2] = 0; + HEAP32[$2348 + 8 >> 2] = 0; + $2351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 47872) | 0; + HEAP32[$4 >> 2] = HEAP32[$2351 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$2351 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$2351 + 8 >> 2]; + HEAP32[$2351 >> 2] = 0; + HEAP32[$2351 + 4 >> 2] = 0; + HEAP32[$2351 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4); + $2354 = $db + 4 | 0; + $2355 = HEAP32[$2354 >> 2] | 0; + $2357 = HEAP32[$db + 8 >> 2] | 0; + if ($2355 >>> 0 < $2357 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2355, $3); + HEAP32[$2354 >> 2] = (HEAP32[$2354 >> 2] | 0) + 24; + } else { + $2364 = HEAP32[$db >> 2] | 0; + $2365 = $2355 - $2364 | 0; + $2366 = ($2365 | 0) / 24 | 0; + $2367 = $2366 + 1 | 0; + if (($2365 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $2371 = ($2357 - $2364 | 0) / 24 | 0; + if ($2371 >>> 0 < 1073741823) { + $2373 = $2371 << 1; + $$0$i$i$i$i = $2373 >>> 0 < $2367 >>> 0 ? $2367 : $2373; + } else $$0$i$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i$i, $2366, $db + 12 | 0); + $2376 = $__v$i$i$i + 8 | 0; + $2377 = HEAP32[$2376 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2377, $3); + HEAP32[$2376 >> 2] = $2377 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + $$1$i263 = $2347; + break; + } + HEAP32[$num1$i >> 2] = 0; + HEAP32[$num1$i + 4 >> 2] = 0; + HEAP32[$num1$i + 8 >> 2] = 0; + if ($2309 << 24 >> 24 == 95) { + $t12$0$i = $2308; + label = 521; + } else { + $2382 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($2308, $last, $db) | 0; + if (($2382 | 0) == ($2308 | 0)) { + $t12$0$i = $2308; + label = 521; + } else { + $2385 = $db + 4 | 0; + $2386 = HEAP32[$2385 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) != ($2386 | 0)) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $2386 + -24 | 0); + L689 : do if (!(HEAP8[$num1$i >> 0] & 1)) { + HEAP8[$num1$i + 1 >> 0] = 0; + HEAP8[$num1$i >> 0] = 0; + } else { + $2393 = $num1$i + 8 | 0; + $2394 = HEAP32[$2393 >> 2] | 0; + HEAP8[$2394 >> 0] = 0; + $2395 = $num1$i + 4 | 0; + HEAP32[$2395 >> 2] = 0; + $2396 = HEAP32[$num1$i >> 2] | 0; + $phitmp$i$i$i$i$i$i$i240 = ($2396 & -2) + -1 | 0; + $2398 = $2396 & 255; + do if (!($2398 & 1)) { + $2402 = $2396 >>> 1 & 127; + if (($2398 & 255) < 22) { + _memcpy($num1$i + 1 | 0, $2394 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0; + _free($2394); + $$ph390 = $2402; + break; + } + $2405 = $2402 + 16 & 240; + $phitmp$i2$i$i$i$i$i$i243 = $2405 + -1 | 0; + if (($phitmp$i2$i$i$i$i$i$i243 | 0) == ($phitmp$i$i$i$i$i$i$i240 | 0)) break L689; + $2408 = _malloc($2405) | 0; + if ($phitmp$i2$i$i$i$i$i$i243 >>> 0 <= $phitmp$i$i$i$i$i$i$i240 >>> 0 & ($2408 | 0) == 0) break L689; + _memcpy($2408 | 0, $num1$i + 1 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0; + HEAP32[$num1$i >> 2] = $2405 | 1; + HEAP32[$2395 >> 2] = $2402; + HEAP32[$2393 >> 2] = $2408; + break L689; + } else { + HEAP8[$num1$i + 1 >> 0] = 0; + _free($2394); + $$ph390 = 0; + } while (0); + HEAP8[$num1$i >> 0] = $$ph390 << 1; + } while (0); + HEAP32[$num1$i >> 2] = HEAP32[$7 >> 2]; + HEAP32[$num1$i + 4 >> 2] = HEAP32[$7 + 4 >> 2]; + HEAP32[$num1$i + 8 >> 2] = HEAP32[$7 + 8 >> 2]; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + $2424 = HEAP32[$2385 >> 2] | 0; + $2425 = $2424 + -24 | 0; + $2427 = $2424; + do { + $2426 = $2427 + -24 | 0; + HEAP32[$2385 >> 2] = $2426; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2426); + $2427 = HEAP32[$2385 >> 2] | 0; + } while (($2427 | 0) != ($2425 | 0)); + $t12$0$i = $2382; + label = 521; + } + } + } + do if ((label | 0) == 521) { + if (($t12$0$i | 0) == ($last | 0)) $$13$i259$ph = $first; else if ((HEAP8[$t12$0$i >> 0] | 0) == 95) { + $2432 = $t12$0$i + 1 | 0; + if (($2432 | 0) == ($last | 0)) $$13$i259$ph = $first; else { + $2434 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2432, $last, $db) | 0; + if (($2434 | 0) == ($2432 | 0)) $$13$i259$ph = $first; else { + $2438 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2438 | 0)) break; + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($9, 47949, $num1$i); + $2441 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($9, 47872) | 0; + HEAP32[$8 >> 2] = HEAP32[$2441 >> 2]; + HEAP32[$8 + 4 >> 2] = HEAP32[$2441 + 4 >> 2]; + HEAP32[$8 + 8 >> 2] = HEAP32[$2441 + 8 >> 2]; + HEAP32[$2441 >> 2] = 0; + HEAP32[$2441 + 4 >> 2] = 0; + HEAP32[$2441 + 8 >> 2] = 0; + $2444 = HEAP8[$8 >> 0] | 0; + $2446 = ($2444 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2438 + -24 | 0, $2446 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $2446 ? ($2444 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); + $$13$i259$ph = $2434; + } + } + } else $$13$i259$ph = $first; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); + $$1$i263 = $$13$i259$ph; + break L662; + } while (0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); + $$1$i263 = $first; + } else $$1$i263 = $first; while (0); + if (($$1$i263 | 0) == ($first | 0)) break L65; + $2459 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2459 | 0)) { + $$0 = $first; + break L1; + } + $2461 = $db + 16 | 0; + HEAP32[$48 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($47, $2459 + -24 | 0, $48); + $2465 = $db + 20 | 0; + $2466 = HEAP32[$2465 >> 2] | 0; + $2468 = HEAP32[$db + 24 >> 2] | 0; + if ($2466 >>> 0 < $2468 >>> 0) { + HEAP32[$2466 + 12 >> 2] = HEAP32[$47 + 12 >> 2]; + HEAP32[$2466 >> 2] = HEAP32[$47 >> 2]; + $2475 = $47 + 4 | 0; + HEAP32[$2466 + 4 >> 2] = HEAP32[$2475 >> 2]; + $2477 = $47 + 8 | 0; + HEAP32[$2466 + 8 >> 2] = HEAP32[$2477 >> 2]; + HEAP32[$2477 >> 2] = 0; + HEAP32[$2475 >> 2] = 0; + HEAP32[$47 >> 2] = 0; + HEAP32[$2465 >> 2] = (HEAP32[$2465 >> 2] | 0) + 16; + } else { + $2485 = HEAP32[$2461 >> 2] | 0; + $2486 = $2466 - $2485 | 0; + $2487 = $2486 >> 4; + $2488 = $2487 + 1 | 0; + if (($2486 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2461); + $2491 = $2468 - $2485 | 0; + if ($2491 >> 4 >>> 0 < 1073741823) { + $2494 = $2491 >> 3; + $$0$i$i$i17 = $2494 >>> 0 < $2488 >>> 0 ? $2488 : $2494; + } else $$0$i$i$i17 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i17, $2487, $db + 28 | 0); + $2497 = $__v$i$i$i + 8 | 0; + $2498 = HEAP32[$2497 >> 2] | 0; + HEAP32[$2498 + 12 >> 2] = HEAP32[$47 + 12 >> 2]; + HEAP32[$2498 >> 2] = HEAP32[$47 >> 2]; + $2504 = $47 + 4 | 0; + HEAP32[$2498 + 4 >> 2] = HEAP32[$2504 >> 2]; + $2506 = $47 + 8 | 0; + HEAP32[$2498 + 8 >> 2] = HEAP32[$2506 >> 2]; + HEAP32[$2506 >> 2] = 0; + HEAP32[$2504 >> 2] = 0; + HEAP32[$47 >> 2] = 0; + HEAP32[$2497 >> 2] = $2498 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2461, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($47); + $$0 = $$1$i263; + break L1; + break; + } + default: + break L65; + } + } + break; + } + default: + {} + } while (0); + $2510 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($2510 | 0) == ($first | 0)) { + $2512 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($2512 | 0) == ($first | 0)) $$0 = $first; else { + $2516 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($2516 | 0)) $$0 = $first; else { + $2518 = $db + 16 | 0; + HEAP32[$50 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($49, $2516 + -24 | 0, $50); + $2522 = $db + 20 | 0; + $2523 = HEAP32[$2522 >> 2] | 0; + $2525 = HEAP32[$db + 24 >> 2] | 0; + if ($2523 >>> 0 < $2525 >>> 0) { + HEAP32[$2523 + 12 >> 2] = HEAP32[$49 + 12 >> 2]; + HEAP32[$2523 >> 2] = HEAP32[$49 >> 2]; + $2532 = $49 + 4 | 0; + HEAP32[$2523 + 4 >> 2] = HEAP32[$2532 >> 2]; + $2534 = $49 + 8 | 0; + HEAP32[$2523 + 8 >> 2] = HEAP32[$2534 >> 2]; + HEAP32[$2534 >> 2] = 0; + HEAP32[$2532 >> 2] = 0; + HEAP32[$49 >> 2] = 0; + HEAP32[$2522 >> 2] = (HEAP32[$2522 >> 2] | 0) + 16; + } else { + $2542 = HEAP32[$2518 >> 2] | 0; + $2543 = $2523 - $2542 | 0; + $2544 = $2543 >> 4; + $2545 = $2544 + 1 | 0; + if (($2543 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2518); + $2548 = $2525 - $2542 | 0; + if ($2548 >> 4 >>> 0 < 1073741823) { + $2551 = $2548 >> 3; + $$0$i$i$i = $2551 >>> 0 < $2545 >>> 0 ? $2545 : $2551; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i, $2544, $db + 28 | 0); + $2554 = $__v$i$i$i + 8 | 0; + $2555 = HEAP32[$2554 >> 2] | 0; + HEAP32[$2555 + 12 >> 2] = HEAP32[$49 + 12 >> 2]; + HEAP32[$2555 >> 2] = HEAP32[$49 >> 2]; + $2561 = $49 + 4 | 0; + HEAP32[$2555 + 4 >> 2] = HEAP32[$2561 >> 2]; + $2563 = $49 + 8 | 0; + HEAP32[$2555 + 8 >> 2] = HEAP32[$2563 >> 2]; + HEAP32[$2563 >> 2] = 0; + HEAP32[$2561 >> 2] = 0; + HEAP32[$49 >> 2] = 0; + HEAP32[$2554 >> 2] = $2555 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2518, $__v$i$i$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($49); + $$0 = $2512; + } + } + } else $$0 = $2510; + } else $$0 = $195; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i299 = 0, $$0$i$i$i$i348 = 0, $$0$i254 = 0, $$019$i = 0, $$02$i = 0, $$02$i310 = 0, $$02$i317 = 0, $$03$i = 0, $$03$i174 = 0, $$03$i189 = 0, $$03$i200 = 0, $$03$i211 = 0, $$03$i265 = 0, $$03$i456 = 0, $$03$i486 = 0, $$06$i = 0, $$06$i248 = 0, $$06$i345 = 0, $$06$i426 = 0, $$2$i302 = 0, $$2$i398 = 0, $$221$i = 0, $$311$i = 0, $$9$i = 0, $$first$i = 0, $$ph518 = 0, $$ph520524 = 0, $$phi$trans$insert = 0, $$pre$i$i$i = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i372 = 0, $$pre$i$i$i$i436 = 0, $$pre$i$i$i$i466 = 0, $$pre$i$i$i87 = 0, $$pre$phi511Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1022 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $103 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1043 = 0, $1047 = 0, $1050 = 0, $1053 = 0, $106 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1076 = 0, $1079 = 0, $1081 = 0, $109 = 0, $1091 = 0, $1093 = 0, $11 = 0, $110 = 0, $1103 = 0, $1106 = 0, $1108 = 0, $112 = 0, $1120 = 0, $1122 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1136 = 0, $1138 = 0, $1141 = 0, $1142 = 0, $1145 = 0, $1146 = 0, $1148 = 0, $1149 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1155 = 0, $1159 = 0, $1161 = 0, $1162 = 0, $1165 = 0, $1172 = 0, $1174 = 0, $1177 = 0, $1181 = 0, $1184 = 0, $1189 = 0, $1190 = 0, $1193 = 0, $1194 = 0, $1196 = 0, $1197 = 0, $12 = 0, $1206 = 0, $1209 = 0, $121 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1222 = 0, $1223 = 0, $1225 = 0, $1226 = 0, $1231 = 0, $1232 = 0, $1234 = 0, $1235 = 0, $1237 = 0, $1238 = 0, $1240 = 0, $1244 = 0, $1245 = 0, $1247 = 0, $1251 = 0, $1253 = 0, $1254 = 0, $1257 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1269 = 0, $1270 = 0, $1272 = 0, $1274 = 0, $1275 = 0, $128 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $129 = 0, $1291 = 0, $1293 = 0, $13 = 0, $1306 = 0, $1307 = 0, $1309 = 0, $1311 = 0, $1313 = 0, $1314 = 0, $132 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1330 = 0, $1331 = 0, $1335 = 0, $1336 = 0, $1339 = 0, $1341 = 0, $1351 = 0, $1354 = 0, $1357 = 0, $1359 = 0, $1369 = 0, $1372 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1379 = 0, $1380 = 0, $1381 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $139 = 0, $1398 = 0, $1399 = 0, $14 = 0, $1401 = 0, $1403 = 0, $1404 = 0, $141 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1417 = 0, $1418 = 0, $1421 = 0, $1424 = 0, $1426 = 0, $1436 = 0, $1439 = 0, $144 = 0, $1442 = 0, $1443 = 0, $1445 = 0, $1446 = 0, $1448 = 0, $1449 = 0, $1451 = 0, $1452 = 0, $1463 = 0, $1464 = 0, $1466 = 0, $1468 = 0, $1469 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1482 = 0, $1483 = 0, $1486 = 0, $1489 = 0, $1491 = 0, $15 = 0, $1501 = 0, $1504 = 0, $151 = 0, $1513 = 0, $1514 = 0, $1523 = 0, $1524 = 0, $1528 = 0, $1530 = 0, $1531 = 0, $1534 = 0, $1543 = 0, $1544 = 0, $1548 = 0, $1550 = 0, $1551 = 0, $1554 = 0, $156 = 0, $1569 = 0, $157 = 0, $1572 = 0, $1578 = 0, $1579 = 0, $1581 = 0, $1585 = 0, $1591 = 0, $1593 = 0, $16 = 0, $160 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1609 = 0, $161 = 0, $1612 = 0, $1614 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $163 = 0, $1632 = 0, $1634 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1648 = 0, $1650 = 0, $1653 = 0, $1654 = 0, $1662 = 0, $1665 = 0, $1669 = 0, $1671 = 0, $1672 = 0, $1675 = 0, $1685 = 0, $1687 = 0, $1693 = 0, $1695 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1702 = 0, $1703 = 0, $1705 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1719 = 0, $1721 = 0, $1724 = 0, $1725 = 0, $173 = 0, $1734 = 0, $1735 = 0, $1739 = 0, $1741 = 0, $1742 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1751 = 0, $176 = 0, $18 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $214 = 0, $217 = 0, $22 = 0, $222 = 0, $223 = 0, $226 = 0, $227 = 0, $229 = 0, $23 = 0, $230 = 0, $239 = 0, $24 = 0, $242 = 0, $25 = 0, $256 = 0, $257 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $275 = 0, $276 = 0, $279 = 0, $28 = 0, $282 = 0, $284 = 0, $29 = 0, $294 = 0, $297 = 0, $3 = 0, $30 = 0, $305 = 0, $306 = 0, $31 = 0, $310 = 0, $311 = 0, $314 = 0, $315 = 0, $317 = 0, $32 = 0, $327 = 0, $33 = 0, $330 = 0, $335 = 0, $337 = 0, $34 = 0, $340 = 0, $344 = 0, $347 = 0, $35 = 0, $352 = 0, $353 = 0, $356 = 0, $357 = 0, $359 = 0, $36 = 0, $360 = 0, $369 = 0, $37 = 0, $372 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $384 = 0, $388 = 0, $39 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $402 = 0, $41 = 0, $412 = 0, $416 = 0, $417 = 0, $419 = 0, $42 = 0, $420 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $436 = 0, $438 = 0, $44 = 0, $442 = 0, $443 = 0, $445 = 0, $449 = 0, $45 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $464 = 0, $466 = 0, $469 = 0, $47 = 0, $470 = 0, $473 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $49 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $496 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $503 = 0, $505 = 0, $51 = 0, $515 = 0, $518 = 0, $52 = 0, $524 = 0, $525 = 0, $528 = 0, $529 = 0, $53 = 0, $531 = 0, $534 = 0, $539 = 0, $54 = 0, $541 = 0, $55 = 0, $551 = 0, $558 = 0, $56 = 0, $560 = 0, $563 = 0, $567 = 0, $57 = 0, $570 = 0, $575 = 0, $576 = 0, $579 = 0, $58 = 0, $580 = 0, $582 = 0, $583 = 0, $59 = 0, $592 = 0, $595 = 0, $6 = 0, $60 = 0, $606 = 0, $607 = 0, $609 = 0, $61 = 0, $611 = 0, $612 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $625 = 0, $626 = 0, $629 = 0, $63 = 0, $632 = 0, $634 = 0, $64 = 0, $644 = 0, $647 = 0, $65 = 0, $650 = 0, $651 = 0, $653 = 0, $654 = 0, $657 = 0, $658 = 0, $66 = 0, $660 = 0, $663 = 0, $668 = 0, $67 = 0, $670 = 0, $68 = 0, $680 = 0, $687 = 0, $689 = 0, $69 = 0, $692 = 0, $696 = 0, $699 = 0, $7 = 0, $70 = 0, $704 = 0, $705 = 0, $708 = 0, $709 = 0, $71 = 0, $711 = 0, $712 = 0, $72 = 0, $721 = 0, $724 = 0, $73 = 0, $736 = 0, $737 = 0, $739 = 0, $74 = 0, $741 = 0, $742 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $756 = 0, $758 = 0, $76 = 0, $77 = 0, $774 = 0, $775 = 0, $777 = 0, $779 = 0, $78 = 0, $780 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $794 = 0, $796 = 0, $8 = 0, $80 = 0, $806 = 0, $807 = 0, $809 = 0, $81 = 0, $810 = 0, $815 = 0, $816 = 0, $818 = 0, $819 = 0, $821 = 0, $822 = 0, $827 = 0, $828 = 0, $83 = 0, $830 = 0, $831 = 0, $836 = 0, $837 = 0, $839 = 0, $841 = 0, $842 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $857 = 0, $858 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $879 = 0, $880 = 0, $881 = 0, $886 = 0, $887 = 0, $889 = 0, $890 = 0, $892 = 0, $893 = 0, $895 = 0, $896 = 0, $9 = 0, $90 = 0, $901 = 0, $902 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $910 = 0, $911 = 0, $913 = 0, $917 = 0, $918 = 0, $920 = 0, $924 = 0, $926 = 0, $927 = 0, $930 = 0, $936 = 0, $940 = 0, $943 = 0, $945 = 0, $946 = 0, $947 = 0, $954 = 0, $955 = 0, $961 = 0, $976 = 0, $977 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $989 = 0, $993 = 0, $996 = 0, $999 = 0, $has_expr_list$0$off0$i = 0, $has_expr_list$0$off0$i$lcssa = 0, $has_init$0$off0$i513 = 0, $k$0$i621 = 0, $k$0$i622 = 0, $k1$0$i618 = 0, $op1 = 0, $op18 = 0, $op2 = 0, $op27 = 0, $op3 = 0, $parsed_gs$0$off0 = 0, $parsed_gs$0$off0$i = 0, $phitmp$i$i$i$i$i$i$i273 = 0, $phitmp$i$i$i$i$i$i32$i = 0, $phitmp$i2$i$i$i$i$i$i276 = 0, $phitmp$i2$i$i$i$i$i35$i = 0, $t$0 = 0, $t$0$i = 0, $t$0$i267 = 0, $t$0$i349567 = 0, $t$0$i390$lcssa = 0, $t$0$i390556 = 0, $t$1$i = 0, $t$1$i$lcssa = 0, $t$1$i350 = 0, $t$2$i = 0, $t$2$i351 = 0, $t$3$i512 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0, $t$1$i$looptemp = 0, $t$2$i$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1168 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 1144 | 0; + $1 = sp + 1120 | 0; + $2 = sp + 1096 | 0; + $3 = sp + 1084 | 0; + $4 = sp + 1072 | 0; + $5 = sp + 1048 | 0; + $6 = sp + 1032 | 0; + $7 = sp + 900 | 0; + $8 = sp + 632 | 0; + $9 = sp + 620 | 0; + $10 = sp + 584 | 0; + $11 = sp + 560 | 0; + $12 = sp + 524 | 0; + $13 = sp + 1020 | 0; + $14 = sp + 1008 | 0; + $15 = sp + 996 | 0; + $16 = sp + 984 | 0; + $17 = sp + 972 | 0; + $18 = sp + 960 | 0; + $19 = sp + 948 | 0; + $20 = sp + 936 | 0; + $21 = sp + 924 | 0; + $22 = sp + 912 | 0; + $23 = sp + 888 | 0; + $24 = sp + 876 | 0; + $25 = sp + 864 | 0; + $26 = sp + 852 | 0; + $27 = sp + 840 | 0; + $28 = sp + 828 | 0; + $29 = sp + 816 | 0; + $30 = sp + 804 | 0; + $31 = sp + 792 | 0; + $32 = sp + 780 | 0; + $33 = sp + 768 | 0; + $34 = sp + 756 | 0; + $35 = sp + 744 | 0; + $op2 = sp + 732 | 0; + $op1 = sp + 720 | 0; + $36 = sp + 696 | 0; + $37 = sp + 680 | 0; + $38 = sp + 668 | 0; + $39 = sp + 656 | 0; + $40 = sp + 644 | 0; + $41 = sp + 608 | 0; + $42 = sp + 596 | 0; + $43 = sp + 548 | 0; + $44 = sp + 536 | 0; + $45 = sp + 512 | 0; + $46 = sp + 500 | 0; + $47 = sp + 488 | 0; + $48 = sp + 476 | 0; + $49 = sp + 464 | 0; + $50 = sp + 440 | 0; + $51 = sp + 424 | 0; + $52 = sp + 412 | 0; + $53 = sp + 400 | 0; + $54 = sp + 388 | 0; + $55 = sp + 376 | 0; + $56 = sp + 364 | 0; + $57 = sp + 352 | 0; + $58 = sp + 340 | 0; + $59 = sp + 328 | 0; + $60 = sp + 316 | 0; + $61 = sp + 304 | 0; + $62 = sp + 292 | 0; + $63 = sp + 280 | 0; + $64 = sp + 256 | 0; + $65 = sp + 240 | 0; + $66 = sp + 228 | 0; + $67 = sp + 216 | 0; + $68 = sp + 204 | 0; + $op3 = sp + 192 | 0; + $op27 = sp + 180 | 0; + $op18 = sp + 168 | 0; + $69 = sp + 144 | 0; + $70 = sp + 132 | 0; + $71 = sp + 120 | 0; + $72 = sp + 108 | 0; + $73 = sp + 96 | 0; + $74 = sp + 84 | 0; + $75 = sp + 72 | 0; + $76 = sp + 60 | 0; + $77 = sp + 48 | 0; + $78 = sp + 36 | 0; + $79 = sp + 24 | 0; + $80 = sp; + $81 = $last; + $83 = $81 - $first | 0; + L1 : do if (($83 | 0) > 1) { + $85 = ($83 | 0) > 3; + if ($85) if ((HEAP8[$first >> 0] | 0) == 103) { + $90 = (HEAP8[$first + 1 >> 0] | 0) == 115; + $parsed_gs$0$off0 = $90; + $t$0 = $90 ? $first + 2 | 0 : $first; + } else { + $parsed_gs$0$off0 = 0; + $t$0 = $first; + } else { + $parsed_gs$0$off0 = 0; + $t$0 = $first; + } + do switch (HEAP8[$t$0 >> 0] | 0) { + case 76: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 84: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 102: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 97: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 97: + { + $100 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 47912, 2); + $101 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($100, $last, $13, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13); + $$0 = ($101 | 0) == ($100 | 0) ? $first : $101; + break L1; + break; + } + case 100: + { + $103 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 47933, 1); + $104 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($103, $last, $14, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14); + $$0 = ($104 | 0) == ($103 | 0) ? $first : $104; + break L1; + break; + } + case 110: + { + $106 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 47933, 1); + $107 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($106, $last, $15, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15); + $$0 = ($107 | 0) == ($106 | 0) ? $first : $107; + break L1; + break; + } + case 78: + { + $109 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 49041, 2); + $110 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($109, $last, $16, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16); + $$0 = ($110 | 0) == ($109 | 0) ? $first : $110; + break L1; + break; + } + case 83: + { + $112 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 49044, 1); + $113 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($112, $last, $17, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17); + $$0 = ($113 | 0) == ($112 | 0) ? $first : $113; + break L1; + break; + } + case 116: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { + $121 = $first + 2 | 0; + $122 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($121, $last, $db) | 0; + if (($122 | 0) == ($121 | 0)) $$03$i486 = $first; else { + $126 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($126 | 0)) $$03$i486 = $first; else { + $128 = $126 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $128); + $129 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 49046) | 0; + HEAP32[$1 >> 2] = HEAP32[$129 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$129 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$129 + 8 >> 2]; + HEAP32[$129 >> 2] = 0; + HEAP32[$129 + 4 >> 2] = 0; + HEAP32[$129 + 8 >> 2] = 0; + $132 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$132 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$132 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$132 + 8 >> 2]; + HEAP32[$132 >> 2] = 0; + HEAP32[$132 + 4 >> 2] = 0; + HEAP32[$132 + 8 >> 2] = 0; + do if (!(HEAP8[$128 >> 0] & 1)) { + HEAP8[$128 + 1 >> 0] = 0; + HEAP8[$128 >> 0] = 0; + } else { + $139 = $126 + -16 | 0; + HEAP8[HEAP32[$139 >> 2] >> 0] = 0; + $141 = $126 + -20 | 0; + HEAP32[$141 >> 2] = 0; + $$pre$i$i$i$i466 = HEAP8[$128 >> 0] | 0; + if (!($$pre$i$i$i$i466 & 1)) { + $148 = $$pre$i$i$i$i466; + $157 = 10; + } else { + $144 = HEAP32[$128 >> 2] | 0; + $148 = $144 & 255; + $157 = ($144 & -2) + -1 | 0; + } + if (!($148 & 1)) { + $151 = ($148 & 255) >>> 1; + if (($148 & 255) < 22) { + $156 = 10; + $1746 = 1; + $176 = $151; + } else { + $156 = ($151 + 16 & 240) + -1 | 0; + $1746 = 1; + $176 = $151; + } + } else { + $156 = 10; + $1746 = 0; + $176 = 0; + } + if (($156 | 0) != ($157 | 0)) { + if (($156 | 0) == 10) { + $163 = $128 + 1 | 0; + $164 = HEAP32[$139 >> 2] | 0; + if ($1746) { + _memcpy($163 | 0, $164 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0; + _free($164); + } else { + HEAP8[$163 >> 0] = HEAP8[$164 >> 0] | 0; + _free($164); + } + HEAP8[$128 >> 0] = $176 << 1; + break; + } + $160 = $156 + 1 | 0; + $161 = _malloc($160) | 0; + if (!($156 >>> 0 <= $157 >>> 0 & ($161 | 0) == 0)) { + if ($1746) _memcpy($161 | 0, $128 + 1 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0; else { + $173 = HEAP32[$139 >> 2] | 0; + HEAP8[$161 >> 0] = HEAP8[$173 >> 0] | 0; + _free($173); + } + HEAP32[$128 >> 2] = $160 | 1; + HEAP32[$141 >> 2] = $176; + HEAP32[$139 >> 2] = $161; + } + } + } while (0); + HEAP32[$128 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$128 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$128 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$03$i486 = $122; + } + } + } else $$03$i486 = $first; else $$03$i486 = $first; else $$03$i486 = $first; + $$0 = $$03$i486; + break L1; + break; + } + case 122: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 122) { + $187 = $first + 2 | 0; + $188 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($187, $last, $db) | 0; + if (($188 | 0) == ($187 | 0)) $$03$i456 = $first; else { + $192 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($192 | 0)) $$03$i456 = $first; else { + $194 = $192 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $194); + $195 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 49046) | 0; + HEAP32[$1 >> 2] = HEAP32[$195 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$195 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$195 + 8 >> 2]; + HEAP32[$195 >> 2] = 0; + HEAP32[$195 + 4 >> 2] = 0; + HEAP32[$195 + 8 >> 2] = 0; + $198 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$198 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$198 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$198 + 8 >> 2]; + HEAP32[$198 >> 2] = 0; + HEAP32[$198 + 4 >> 2] = 0; + HEAP32[$198 + 8 >> 2] = 0; + do if (!(HEAP8[$194 >> 0] & 1)) { + HEAP8[$194 + 1 >> 0] = 0; + HEAP8[$194 >> 0] = 0; + } else { + $205 = $192 + -16 | 0; + HEAP8[HEAP32[$205 >> 2] >> 0] = 0; + $207 = $192 + -20 | 0; + HEAP32[$207 >> 2] = 0; + $$pre$i$i$i$i436 = HEAP8[$194 >> 0] | 0; + if (!($$pre$i$i$i$i436 & 1)) { + $214 = $$pre$i$i$i$i436; + $223 = 10; + } else { + $210 = HEAP32[$194 >> 2] | 0; + $214 = $210 & 255; + $223 = ($210 & -2) + -1 | 0; + } + if (!($214 & 1)) { + $217 = ($214 & 255) >>> 1; + if (($214 & 255) < 22) { + $1747 = 1; + $222 = 10; + $242 = $217; + } else { + $1747 = 1; + $222 = ($217 + 16 & 240) + -1 | 0; + $242 = $217; + } + } else { + $1747 = 0; + $222 = 10; + $242 = 0; + } + if (($222 | 0) != ($223 | 0)) { + if (($222 | 0) == 10) { + $229 = $194 + 1 | 0; + $230 = HEAP32[$205 >> 2] | 0; + if ($1747) { + _memcpy($229 | 0, $230 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0; + _free($230); + } else { + HEAP8[$229 >> 0] = HEAP8[$230 >> 0] | 0; + _free($230); + } + HEAP8[$194 >> 0] = $242 << 1; + break; + } + $226 = $222 + 1 | 0; + $227 = _malloc($226) | 0; + if (!($222 >>> 0 <= $223 >>> 0 & ($227 | 0) == 0)) { + if ($1747) _memcpy($227 | 0, $194 + 1 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0; else { + $239 = HEAP32[$205 >> 2] | 0; + HEAP8[$227 >> 0] = HEAP8[$239 >> 0] | 0; + _free($239); + } + HEAP32[$194 >> 2] = $226 | 1; + HEAP32[$207 >> 2] = $242; + HEAP32[$205 >> 2] = $227; + } + } + } while (0); + HEAP32[$194 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$194 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$194 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$03$i456 = $188; + } + } + } else $$03$i456 = $first; else $$03$i456 = $first; else $$03$i456 = $first; + $$0 = $$03$i456; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 99: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 99: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { + $256 = $first + 2 | 0; + $257 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($256, $last, $db) | 0; + if (($257 | 0) == ($256 | 0)) $$06$i426 = $first; else { + $259 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($257, $last, $db) | 0; + if (($259 | 0) == ($257 | 0)) $$06$i426 = $first; else { + $261 = $db + 4 | 0; + $262 = HEAP32[$261 >> 2] | 0; + if ((($262 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i426 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $262 + -24 | 0); + $270 = HEAP32[$261 >> 2] | 0; + $271 = $270 + -24 | 0; + $273 = $270; + do { + $272 = $273 + -24 | 0; + HEAP32[$261 >> 2] = $272; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272); + $273 = HEAP32[$261 >> 2] | 0; + } while (($273 | 0) != ($271 | 0)); + $275 = $270 + -48 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $275); + $276 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 49056) | 0; + HEAP32[$5 >> 2] = HEAP32[$276 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$276 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$276 + 8 >> 2]; + HEAP32[$276 >> 2] = 0; + HEAP32[$276 + 4 >> 2] = 0; + HEAP32[$276 + 8 >> 2] = 0; + $279 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 49068) | 0; + HEAP32[$4 >> 2] = HEAP32[$279 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$279 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$279 + 8 >> 2]; + HEAP32[$279 >> 2] = 0; + HEAP32[$279 + 4 >> 2] = 0; + HEAP32[$279 + 8 >> 2] = 0; + $282 = HEAP8[$0 >> 0] | 0; + $284 = ($282 & 1) == 0; + $294 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $284 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $284 ? ($282 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + HEAP32[$3 >> 2] = HEAP32[$294 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$294 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$294 + 8 >> 2]; + HEAP32[$294 >> 2] = 0; + HEAP32[$294 + 4 >> 2] = 0; + HEAP32[$294 + 8 >> 2] = 0; + $297 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 47788) | 0; + HEAP32[$2 >> 2] = HEAP32[$297 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$297 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$297 + 8 >> 2]; + HEAP32[$297 >> 2] = 0; + HEAP32[$297 + 4 >> 2] = 0; + HEAP32[$297 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($275, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$06$i426 = $259; + } + } + } + } else $$06$i426 = $first; else $$06$i426 = $first; else $$06$i426 = $first; + $$0 = $$06$i426; + break L1; + break; + } + case 108: + { + L97 : do if ($85) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 108) { + $305 = $first + 2 | 0; + $306 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($305, $last, $db) | 0; + if (($306 | 0) == ($305 | 0) | ($306 | 0) == ($last | 0)) $$2$i398 = $first; else { + $310 = $db + 4 | 0; + $311 = HEAP32[$310 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($311 | 0)) $$2$i398 = $first; else { + $314 = $311 + -12 | 0; + $315 = HEAP8[$314 >> 0] | 0; + $317 = ($315 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($311 + -24 | 0, $317 ? $314 + 1 | 0 : HEAP32[$311 + -4 >> 2] | 0, $317 ? ($315 & 255) >>> 1 : HEAP32[$311 + -8 >> 2] | 0) | 0; + $327 = HEAP32[$310 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + $330 = $327 + -12 | 0; + do if (!(HEAP8[$330 >> 0] & 1)) { + HEAP8[$330 + 1 >> 0] = 0; + HEAP8[$330 >> 0] = 0; + } else { + $335 = $327 + -4 | 0; + HEAP8[HEAP32[$335 >> 2] >> 0] = 0; + $337 = $327 + -8 | 0; + HEAP32[$337 >> 2] = 0; + $$pre$i$i$i$i372 = HEAP8[$330 >> 0] | 0; + if (!($$pre$i$i$i$i372 & 1)) { + $344 = $$pre$i$i$i$i372; + $353 = 10; + } else { + $340 = HEAP32[$330 >> 2] | 0; + $344 = $340 & 255; + $353 = ($340 & -2) + -1 | 0; + } + if (!($344 & 1)) { + $347 = ($344 & 255) >>> 1; + if (($344 & 255) < 22) { + $1748 = 1; + $352 = 10; + $372 = $347; + } else { + $1748 = 1; + $352 = ($347 + 16 & 240) + -1 | 0; + $372 = $347; + } + } else { + $1748 = 0; + $352 = 10; + $372 = 0; + } + if (($352 | 0) != ($353 | 0)) { + if (($352 | 0) == 10) { + $359 = $330 + 1 | 0; + $360 = HEAP32[$335 >> 2] | 0; + if ($1748) { + _memcpy($359 | 0, $360 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0; + _free($360); + } else { + HEAP8[$359 >> 0] = HEAP8[$360 >> 0] | 0; + _free($360); + } + HEAP8[$330 >> 0] = $372 << 1; + break; + } + $356 = $352 + 1 | 0; + $357 = _malloc($356) | 0; + if (!($352 >>> 0 <= $353 >>> 0 & ($357 | 0) == 0)) { + if ($1748) _memcpy($357 | 0, $330 + 1 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0; else { + $369 = HEAP32[$335 >> 2] | 0; + HEAP8[$357 >> 0] = HEAP8[$369 >> 0] | 0; + _free($369); + } + HEAP32[$330 >> 2] = $356 | 1; + HEAP32[$337 >> 2] = $372; + HEAP32[$335 >> 2] = $357; + } + } + } while (0); + HEAP32[$330 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$330 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$330 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$310 >> 2] | 0) + -24 | 0, 47883) | 0; + $379 = $1 + 4 | 0; + $380 = $1 + 8 | 0; + $381 = $1 + 1 | 0; + L127 : do if ((HEAP8[$306 >> 0] | 0) == 69) $t$0$i390$lcssa = $306; else { + $t$0$i390556 = $306; + while (1) { + $384 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i390556, $last, $db) | 0; + if (($384 | 0) == ($t$0$i390556 | 0) | ($384 | 0) == ($last | 0)) { + $$2$i398 = $first; + break L97; + } + $388 = HEAP32[$310 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($388 | 0)) { + $$2$i398 = $first; + break L97; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $388 + -24 | 0); + $391 = HEAP32[$310 >> 2] | 0; + $392 = $391 + -24 | 0; + $394 = $391; + do { + $393 = $394 + -24 | 0; + HEAP32[$310 >> 2] = $393; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($393); + $394 = HEAP32[$310 >> 2] | 0; + } while (($394 | 0) != ($392 | 0)); + $396 = HEAP8[$1 >> 0] | 0; + $398 = ($396 & 1) == 0; + $402 = $398 ? ($396 & 255) >>> 1 : HEAP32[$379 >> 2] | 0; + if ($402) { + if ((HEAP32[$db >> 2] | 0) == ($392 | 0)) break; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($391 + -48 | 0, $398 ? $381 : HEAP32[$380 >> 2] | 0, $402) | 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + if ((HEAP8[$384 >> 0] | 0) == 69) { + $t$0$i390$lcssa = $384; + break L127; + } else $t$0$i390556 = $384; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + $$2$i398 = $first; + break L97; + } while (0); + $412 = HEAP32[$310 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($412 | 0)) $$2$i398 = $first; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($412 + -24 | 0, 47788) | 0; + $$2$i398 = $t$0$i390$lcssa + 1 | 0; + } + } + } + } else $$2$i398 = $first; else $$2$i398 = $first; else $$2$i398 = $first; while (0); + $$0 = $$2$i398; + break L1; + break; + } + case 109: + { + $416 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 49071, 1); + $417 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($416, $last, $18, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18); + $$0 = ($417 | 0) == ($416 | 0) ? $first : $417; + break L1; + break; + } + case 111: + { + $419 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($19, 48097, 1); + $420 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($419, $last, $19, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($19); + $$0 = ($420 | 0) == ($419 | 0) ? $first : $420; + break L1; + break; + } + case 118: + { + L146 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 118) { + $428 = $db + 63 | 0; + $429 = HEAP8[$428 >> 0] | 0; + HEAP8[$428 >> 0] = 0; + $430 = $first + 2 | 0; + $431 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($430, $last, $db) | 0; + HEAP8[$428 >> 0] = $429; + if (($431 | 0) == ($430 | 0) | ($431 | 0) == ($last | 0)) $$311$i = $first; else { + if ((HEAP8[$431 >> 0] | 0) == 95) { + $438 = $431 + 1 | 0; + if (($438 | 0) == ($last | 0)) { + $$311$i = $first; + break; + } + do if ((HEAP8[$438 >> 0] | 0) == 69) { + $442 = $db + 4 | 0; + $443 = HEAP32[$442 >> 2] | 0; + $445 = HEAP32[$db + 8 >> 2] | 0; + if ($443 >>> 0 < $445 >>> 0) { + HEAP32[$443 >> 2] = 0; + HEAP32[$443 + 4 >> 2] = 0; + HEAP32[$443 + 8 >> 2] = 0; + HEAP32[$443 + 12 >> 2] = 0; + HEAP32[$443 + 16 >> 2] = 0; + HEAP32[$443 + 20 >> 2] = 0; + HEAP32[$443 >> 2] = 0; + HEAP32[$443 + 4 >> 2] = 0; + HEAP32[$443 + 8 >> 2] = 0; + $449 = $443 + 12 | 0; + HEAP32[$449 >> 2] = 0; + HEAP32[$449 + 4 >> 2] = 0; + HEAP32[$449 + 8 >> 2] = 0; + HEAP32[$442 >> 2] = (HEAP32[$442 >> 2] | 0) + 24; + $t$1$i350 = $438; + break; + } + $457 = HEAP32[$db >> 2] | 0; + $458 = $443 - $457 | 0; + $459 = ($458 | 0) / 24 | 0; + $460 = $459 + 1 | 0; + if (($458 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $464 = ($445 - $457 | 0) / 24 | 0; + if ($464 >>> 0 < 1073741823) { + $466 = $464 << 1; + $$0$i$i$i$i348 = $466 >>> 0 < $460 >>> 0 ? $460 : $466; + } else $$0$i$i$i$i348 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i348, $459, $db + 12 | 0); + $469 = $0 + 8 | 0; + $470 = HEAP32[$469 >> 2] | 0; + HEAP32[$470 >> 2] = 0; + HEAP32[$470 + 4 >> 2] = 0; + HEAP32[$470 + 8 >> 2] = 0; + HEAP32[$470 + 12 >> 2] = 0; + HEAP32[$470 + 16 >> 2] = 0; + HEAP32[$470 + 20 >> 2] = 0; + HEAP32[$470 >> 2] = 0; + HEAP32[$470 + 4 >> 2] = 0; + HEAP32[$470 + 8 >> 2] = 0; + $473 = $470 + 12 | 0; + HEAP32[$473 >> 2] = 0; + HEAP32[$473 + 4 >> 2] = 0; + HEAP32[$473 + 8 >> 2] = 0; + HEAP32[$469 >> 2] = $470 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + $t$1$i350 = $438; + } else { + $t$0$i349567 = $438; + while (1) { + $477 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i349567, $last, $db) | 0; + if (($477 | 0) == ($t$0$i349567 | 0) | ($477 | 0) == ($last | 0)) { + $$311$i = $first; + break L146; + } + if ((HEAP8[$477 >> 0] | 0) == 69) { + $t$1$i350 = $477; + break; + } else $t$0$i349567 = $477; + } + } while (0); + $t$2$i351 = $t$1$i350 + 1 | 0; + } else { + $436 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($431, $last, $db) | 0; + if (($436 | 0) == ($431 | 0)) { + $$311$i = $first; + break; + } else $t$2$i351 = $436; + } + $482 = $db + 4 | 0; + $483 = HEAP32[$482 >> 2] | 0; + if ((($483 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$311$i = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $483 + -24 | 0); + $491 = HEAP32[$482 >> 2] | 0; + $492 = $491 + -24 | 0; + $494 = $491; + do { + $493 = $494 + -24 | 0; + HEAP32[$482 >> 2] = $493; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($493); + $494 = HEAP32[$482 >> 2] | 0; + } while (($494 | 0) != ($492 | 0)); + $496 = $491 + -48 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $496); + $497 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($7, 0, 47883) | 0; + HEAP32[$6 >> 2] = HEAP32[$497 >> 2]; + HEAP32[$6 + 4 >> 2] = HEAP32[$497 + 4 >> 2]; + HEAP32[$6 + 8 >> 2] = HEAP32[$497 + 8 >> 2]; + HEAP32[$497 >> 2] = 0; + HEAP32[$497 + 4 >> 2] = 0; + HEAP32[$497 + 8 >> 2] = 0; + $500 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 49073) | 0; + HEAP32[$5 >> 2] = HEAP32[$500 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$500 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$500 + 8 >> 2]; + HEAP32[$500 >> 2] = 0; + HEAP32[$500 + 4 >> 2] = 0; + HEAP32[$500 + 8 >> 2] = 0; + $503 = HEAP8[$1 >> 0] | 0; + $505 = ($503 & 1) == 0; + $515 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($5, $505 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $505 ? ($503 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; + HEAP32[$4 >> 2] = HEAP32[$515 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$515 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$515 + 8 >> 2]; + HEAP32[$515 >> 2] = 0; + HEAP32[$515 + 4 >> 2] = 0; + HEAP32[$515 + 8 >> 2] = 0; + $518 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($4, 47788) | 0; + HEAP32[$3 >> 2] = HEAP32[$518 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$518 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$518 + 8 >> 2]; + HEAP32[$518 >> 2] = 0; + HEAP32[$518 + 4 >> 2] = 0; + HEAP32[$518 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($496, $2); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + $$311$i = $t$2$i351; + } + } + } else $$311$i = $first; else $$311$i = $first; else $$311$i = $first; while (0); + $$0 = $$311$i; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 100: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 97: + { + $524 = $t$0 + 2 | 0; + $525 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($524, $last, $db) | 0; + if (($525 | 0) == ($524 | 0)) { + $$0 = $first; + break L1; + } + $528 = $db + 4 | 0; + $529 = HEAP32[$528 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($529 | 0)) { + $$0 = $first; + break L1; + } + $531 = $529 + -24 | 0; + if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, 48071, 2); else { + HEAP32[$22 >> 2] = 0; + HEAP32[$22 + 4 >> 2] = 0; + HEAP32[$22 + 8 >> 2] = 0; + } + $534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 49076) | 0; + HEAP32[$21 >> 2] = HEAP32[$534 >> 2]; + HEAP32[$21 + 4 >> 2] = HEAP32[$534 + 4 >> 2]; + HEAP32[$21 + 8 >> 2] = HEAP32[$534 + 8 >> 2]; + HEAP32[$534 >> 2] = 0; + HEAP32[$534 + 4 >> 2] = 0; + HEAP32[$534 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, (HEAP32[$528 >> 2] | 0) + -24 | 0); + $539 = HEAP8[$23 >> 0] | 0; + $541 = ($539 & 1) == 0; + $551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $541 ? $23 + 1 | 0 : HEAP32[$23 + 8 >> 2] | 0, $541 ? ($539 & 255) >>> 1 : HEAP32[$23 + 4 >> 2] | 0) | 0; + HEAP32[$20 >> 2] = HEAP32[$551 >> 2]; + HEAP32[$20 + 4 >> 2] = HEAP32[$551 + 4 >> 2]; + HEAP32[$20 + 8 >> 2] = HEAP32[$551 + 8 >> 2]; + HEAP32[$551 >> 2] = 0; + HEAP32[$551 + 4 >> 2] = 0; + HEAP32[$551 + 8 >> 2] = 0; + do if (!(HEAP8[$531 >> 0] & 1)) { + HEAP8[$531 + 1 >> 0] = 0; + HEAP8[$531 >> 0] = 0; + } else { + $558 = $529 + -16 | 0; + HEAP8[HEAP32[$558 >> 2] >> 0] = 0; + $560 = $529 + -20 | 0; + HEAP32[$560 >> 2] = 0; + $$pre$i$i$i = HEAP8[$531 >> 0] | 0; + if (!($$pre$i$i$i & 1)) { + $567 = $$pre$i$i$i; + $576 = 10; + } else { + $563 = HEAP32[$531 >> 2] | 0; + $567 = $563 & 255; + $576 = ($563 & -2) + -1 | 0; + } + if (!($567 & 1)) { + $570 = ($567 & 255) >>> 1; + if (($567 & 255) < 22) { + $1749 = 1; + $575 = 10; + $595 = $570; + } else { + $1749 = 1; + $575 = ($570 + 16 & 240) + -1 | 0; + $595 = $570; + } + } else { + $1749 = 0; + $575 = 10; + $595 = 0; + } + if (($575 | 0) != ($576 | 0)) { + if (($575 | 0) == 10) { + $582 = $531 + 1 | 0; + $583 = HEAP32[$558 >> 2] | 0; + if ($1749) { + _memcpy($582 | 0, $583 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0; + _free($583); + } else { + HEAP8[$582 >> 0] = HEAP8[$583 >> 0] | 0; + _free($583); + } + HEAP8[$531 >> 0] = $595 << 1; + break; + } + $579 = $575 + 1 | 0; + $580 = _malloc($579) | 0; + if (!($575 >>> 0 <= $576 >>> 0 & ($580 | 0) == 0)) { + if ($1749) _memcpy($580 | 0, $531 + 1 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0; else { + $592 = HEAP32[$558 >> 2] | 0; + HEAP8[$580 >> 0] = HEAP8[$592 >> 0] | 0; + _free($592); + } + HEAP32[$531 >> 2] = $579 | 1; + HEAP32[$560 >> 2] = $595; + HEAP32[$558 >> 2] = $580; + } + } + } while (0); + HEAP32[$531 >> 2] = HEAP32[$20 >> 2]; + HEAP32[$531 + 4 >> 2] = HEAP32[$20 + 4 >> 2]; + HEAP32[$531 + 8 >> 2] = HEAP32[$20 + 8 >> 2]; + HEAP32[$20 >> 2] = 0; + HEAP32[$20 + 4 >> 2] = 0; + HEAP32[$20 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); + $$0 = $525; + break L1; + break; + } + case 99: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { + $606 = $first + 2 | 0; + $607 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($606, $last, $db) | 0; + if (($607 | 0) == ($606 | 0)) $$06$i345 = $first; else { + $609 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($607, $last, $db) | 0; + if (($609 | 0) == ($607 | 0)) $$06$i345 = $first; else { + $611 = $db + 4 | 0; + $612 = HEAP32[$611 >> 2] | 0; + if ((($612 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i345 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $612 + -24 | 0); + $620 = HEAP32[$611 >> 2] | 0; + $621 = $620 + -24 | 0; + $623 = $620; + do { + $622 = $623 + -24 | 0; + HEAP32[$611 >> 2] = $622; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($622); + $623 = HEAP32[$611 >> 2] | 0; + } while (($623 | 0) != ($621 | 0)); + $625 = $620 + -48 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $625); + $626 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 49086) | 0; + HEAP32[$5 >> 2] = HEAP32[$626 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$626 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$626 + 8 >> 2]; + HEAP32[$626 >> 2] = 0; + HEAP32[$626 + 4 >> 2] = 0; + HEAP32[$626 + 8 >> 2] = 0; + $629 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 49068) | 0; + HEAP32[$4 >> 2] = HEAP32[$629 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$629 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$629 + 8 >> 2]; + HEAP32[$629 >> 2] = 0; + HEAP32[$629 + 4 >> 2] = 0; + HEAP32[$629 + 8 >> 2] = 0; + $632 = HEAP8[$0 >> 0] | 0; + $634 = ($632 & 1) == 0; + $644 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $634 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $634 ? ($632 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + HEAP32[$3 >> 2] = HEAP32[$644 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$644 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$644 + 8 >> 2]; + HEAP32[$644 >> 2] = 0; + HEAP32[$644 + 4 >> 2] = 0; + HEAP32[$644 + 8 >> 2] = 0; + $647 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 47788) | 0; + HEAP32[$2 >> 2] = HEAP32[$647 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$647 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$647 + 8 >> 2]; + HEAP32[$647 >> 2] = 0; + HEAP32[$647 + 4 >> 2] = 0; + HEAP32[$647 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($625, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$06$i345 = $609; + } + } + } + } else $$06$i345 = $first; else $$06$i345 = $first; else $$06$i345 = $first; + $$0 = $$06$i345; + break L1; + break; + } + case 101: + { + $650 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($24, 47928, 1); + $651 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($650, $last, $24, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24); + $$0 = ($651 | 0) == ($650 | 0) ? $first : $651; + break L1; + break; + } + case 108: + { + $653 = $t$0 + 2 | 0; + $654 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($653, $last, $db) | 0; + if (($654 | 0) == ($653 | 0)) { + $$0 = $first; + break L1; + } + $657 = $db + 4 | 0; + $658 = HEAP32[$657 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($658 | 0)) { + $$0 = $first; + break L1; + } + $660 = $658 + -24 | 0; + if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($27, 48071, 2); else { + HEAP32[$27 >> 2] = 0; + HEAP32[$27 + 4 >> 2] = 0; + HEAP32[$27 + 8 >> 2] = 0; + } + $663 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($27, 49100) | 0; + HEAP32[$26 >> 2] = HEAP32[$663 >> 2]; + HEAP32[$26 + 4 >> 2] = HEAP32[$663 + 4 >> 2]; + HEAP32[$26 + 8 >> 2] = HEAP32[$663 + 8 >> 2]; + HEAP32[$663 >> 2] = 0; + HEAP32[$663 + 4 >> 2] = 0; + HEAP32[$663 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($28, (HEAP32[$657 >> 2] | 0) + -24 | 0); + $668 = HEAP8[$28 >> 0] | 0; + $670 = ($668 & 1) == 0; + $680 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $670 ? $28 + 1 | 0 : HEAP32[$28 + 8 >> 2] | 0, $670 ? ($668 & 255) >>> 1 : HEAP32[$28 + 4 >> 2] | 0) | 0; + HEAP32[$25 >> 2] = HEAP32[$680 >> 2]; + HEAP32[$25 + 4 >> 2] = HEAP32[$680 + 4 >> 2]; + HEAP32[$25 + 8 >> 2] = HEAP32[$680 + 8 >> 2]; + HEAP32[$680 >> 2] = 0; + HEAP32[$680 + 4 >> 2] = 0; + HEAP32[$680 + 8 >> 2] = 0; + do if (!(HEAP8[$660 >> 0] & 1)) { + HEAP8[$660 + 1 >> 0] = 0; + HEAP8[$660 >> 0] = 0; + } else { + $687 = $658 + -16 | 0; + HEAP8[HEAP32[$687 >> 2] >> 0] = 0; + $689 = $658 + -20 | 0; + HEAP32[$689 >> 2] = 0; + $$pre$i$i$i87 = HEAP8[$660 >> 0] | 0; + if (!($$pre$i$i$i87 & 1)) { + $696 = $$pre$i$i$i87; + $705 = 10; + } else { + $692 = HEAP32[$660 >> 2] | 0; + $696 = $692 & 255; + $705 = ($692 & -2) + -1 | 0; + } + if (!($696 & 1)) { + $699 = ($696 & 255) >>> 1; + if (($696 & 255) < 22) { + $1750 = 1; + $704 = 10; + $724 = $699; + } else { + $1750 = 1; + $704 = ($699 + 16 & 240) + -1 | 0; + $724 = $699; + } + } else { + $1750 = 0; + $704 = 10; + $724 = 0; + } + if (($704 | 0) != ($705 | 0)) { + if (($704 | 0) == 10) { + $711 = $660 + 1 | 0; + $712 = HEAP32[$687 >> 2] | 0; + if ($1750) { + _memcpy($711 | 0, $712 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0; + _free($712); + } else { + HEAP8[$711 >> 0] = HEAP8[$712 >> 0] | 0; + _free($712); + } + HEAP8[$660 >> 0] = $724 << 1; + break; + } + $708 = $704 + 1 | 0; + $709 = _malloc($708) | 0; + if (!($704 >>> 0 <= $705 >>> 0 & ($709 | 0) == 0)) { + if ($1750) _memcpy($709 | 0, $660 + 1 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0; else { + $721 = HEAP32[$687 >> 2] | 0; + HEAP8[$709 >> 0] = HEAP8[$721 >> 0] | 0; + _free($721); + } + HEAP32[$660 >> 2] = $708 | 1; + HEAP32[$689 >> 2] = $724; + HEAP32[$687 >> 2] = $709; + } + } + } while (0); + HEAP32[$660 >> 2] = HEAP32[$25 >> 2]; + HEAP32[$660 + 4 >> 2] = HEAP32[$25 + 4 >> 2]; + HEAP32[$660 + 8 >> 2] = HEAP32[$25 + 8 >> 2]; + HEAP32[$25 >> 2] = 0; + HEAP32[$25 + 4 >> 2] = 0; + HEAP32[$25 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($25); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($27); + $$0 = $654; + break L1; + break; + } + case 110: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 115: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 115) { + $736 = $first + 2 | 0; + $737 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($736, $last, $db) | 0; + if (($737 | 0) == ($736 | 0)) $$02$i317 = $first; else { + $739 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($737, $last, $db) | 0; + if (($739 | 0) == ($737 | 0)) $$02$i317 = $first; else { + $741 = $db + 4 | 0; + $742 = HEAP32[$741 >> 2] | 0; + if ((($742 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i317 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $742 + -24 | 0); + $750 = HEAP32[$741 >> 2] | 0; + $751 = $750 + -24 | 0; + $753 = $750; + do { + $752 = $753 + -24 | 0; + HEAP32[$741 >> 2] = $752; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($752); + $753 = HEAP32[$741 >> 2] | 0; + } while (($753 | 0) != ($751 | 0)); + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 49108, $0); + $756 = HEAP8[$1 >> 0] | 0; + $758 = ($756 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($750 + -48 | 0, $758 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $758 ? ($756 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$02$i317 = $739; + } + } + } + } else $$02$i317 = $first; else $$02$i317 = $first; else $$02$i317 = $first; + $$0 = $$02$i317; + break L1; + break; + } + case 116: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { + $774 = $first + 2 | 0; + $775 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($774, $last, $db) | 0; + if (($775 | 0) == ($774 | 0)) $$02$i310 = $first; else { + $777 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($775, $last, $db) | 0; + if (($777 | 0) == ($775 | 0)) $$02$i310 = $first; else { + $779 = $db + 4 | 0; + $780 = HEAP32[$779 >> 2] | 0; + if ((($780 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i310 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $780 + -24 | 0); + $788 = HEAP32[$779 >> 2] | 0; + $789 = $788 + -24 | 0; + $791 = $788; + do { + $790 = $791 + -24 | 0; + HEAP32[$779 >> 2] = $790; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($790); + $791 = HEAP32[$779 >> 2] | 0; + } while (($791 | 0) != ($789 | 0)); + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 54710, $0); + $794 = HEAP8[$1 >> 0] | 0; + $796 = ($794 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($788 + -48 | 0, $796 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $796 ? ($794 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$02$i310 = $777; + } + } + } + } else $$02$i310 = $first; else $$02$i310 = $first; else $$02$i310 = $first; + $$0 = $$02$i310; + break L1; + break; + } + case 118: + { + $806 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($29, 49111, 1); + $807 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($806, $last, $29, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29); + $$0 = ($807 | 0) == ($806 | 0) ? $first : $807; + break L1; + break; + } + case 86: + { + $809 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($30, 49113, 2); + $810 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($809, $last, $30, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30); + $$0 = ($810 | 0) == ($809 | 0) ? $first : $810; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 101: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 111: + { + $815 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($31, 49116, 1); + $816 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($815, $last, $31, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($31); + $$0 = ($816 | 0) == ($815 | 0) ? $first : $816; + break L1; + break; + } + case 79: + { + $818 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($32, 49118, 2); + $819 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($818, $last, $32, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32); + $$0 = ($819 | 0) == ($818 | 0) ? $first : $819; + break L1; + break; + } + case 113: + { + $821 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($33, 49121, 2); + $822 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($821, $last, $33, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33); + $$0 = ($822 | 0) == ($821 | 0) ? $first : $822; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 103: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 101: + { + $827 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($34, 49124, 2); + $828 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($827, $last, $34, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34); + $$0 = ($828 | 0) == ($827 | 0) ? $first : $828; + break L1; + break; + } + case 116: + { + $830 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($35, 47947, 1); + $831 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($830, $last, $35, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35); + $$0 = ($831 | 0) == ($830 | 0) ? $first : $831; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 105: + { + if ((HEAP8[$t$0 + 1 >> 0] | 0) != 120) { + $$0 = $first; + break L1; + } + $836 = $first + 2 | 0; + $837 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($836, $last, $db) | 0; + if (($837 | 0) == ($836 | 0)) { + $$0 = $first; + break L1; + } + $839 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($837, $last, $db) | 0; + $841 = $db + 4 | 0; + $842 = HEAP32[$841 >> 2] | 0; + if (($839 | 0) == ($837 | 0)) { + $879 = $842 + -24 | 0; + $881 = $842; + while (1) { + $880 = $881 + -24 | 0; + HEAP32[$841 >> 2] = $880; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($880); + $881 = HEAP32[$841 >> 2] | 0; + if (($881 | 0) == ($879 | 0)) { + $$0 = $first; + break L1; + } + } + } + if ((($842 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $842 + -24 | 0); + $850 = HEAP32[$841 >> 2] | 0; + $851 = $850 + -24 | 0; + $853 = $850; + do { + $852 = $853 + -24 | 0; + HEAP32[$841 >> 2] = $852; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($852); + $853 = HEAP32[$841 >> 2] | 0; + } while (($853 | 0) != ($851 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $850 + -48 | 0); + $857 = (HEAP32[$841 >> 2] | 0) + -24 | 0; + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($40, 47883, $op1); + $858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($40, 49127) | 0; + HEAP32[$39 >> 2] = HEAP32[$858 >> 2]; + HEAP32[$39 + 4 >> 2] = HEAP32[$858 + 4 >> 2]; + HEAP32[$39 + 8 >> 2] = HEAP32[$858 + 8 >> 2]; + HEAP32[$858 >> 2] = 0; + HEAP32[$858 + 4 >> 2] = 0; + HEAP32[$858 + 8 >> 2] = 0; + $861 = HEAP8[$op2 >> 0] | 0; + $863 = ($861 & 1) == 0; + $873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($39, $863 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0; + HEAP32[$38 >> 2] = HEAP32[$873 >> 2]; + HEAP32[$38 + 4 >> 2] = HEAP32[$873 + 4 >> 2]; + HEAP32[$38 + 8 >> 2] = HEAP32[$873 + 8 >> 2]; + HEAP32[$873 >> 2] = 0; + HEAP32[$873 + 4 >> 2] = 0; + HEAP32[$873 + 8 >> 2] = 0; + $876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($38, 47872) | 0; + HEAP32[$37 >> 2] = HEAP32[$876 >> 2]; + HEAP32[$37 + 4 >> 2] = HEAP32[$876 + 4 >> 2]; + HEAP32[$37 + 8 >> 2] = HEAP32[$876 + 8 >> 2]; + HEAP32[$876 >> 2] = 0; + HEAP32[$876 + 4 >> 2] = 0; + HEAP32[$876 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($857, $36); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($39); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($40); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2); + $$0 = $839; + break L1; + break; + } + case 108: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 101: + { + $886 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($41, 49130, 2); + $887 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($886, $last, $41, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($41); + $$0 = ($887 | 0) == ($886 | 0) ? $first : $887; + break L1; + break; + } + case 115: + { + $889 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($42, 49133, 2); + $890 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($889, $last, $42, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($42); + $$0 = ($890 | 0) == ($889 | 0) ? $first : $890; + break L1; + break; + } + case 83: + { + $892 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($43, 49136, 3); + $893 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($892, $last, $43, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($43); + $$0 = ($893 | 0) == ($892 | 0) ? $first : $893; + break L1; + break; + } + case 116: + { + $895 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($44, 47945, 1); + $896 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($895, $last, $44, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($44); + $$0 = ($896 | 0) == ($895 | 0) ? $first : $896; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 109: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 105: + { + $901 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($45, 49140, 1); + $902 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($901, $last, $45, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($45); + $$0 = ($902 | 0) == ($901 | 0) ? $first : $902; + break L1; + break; + } + case 73: + { + $904 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($46, 49142, 2); + $905 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($904, $last, $46, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($46); + $$0 = ($905 | 0) == ($904 | 0) ? $first : $905; + break L1; + break; + } + case 108: + { + $907 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($47, 47928, 1); + $908 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($907, $last, $47, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($47); + $$0 = ($908 | 0) == ($907 | 0) ? $first : $908; + break L1; + break; + } + case 76: + { + $910 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($48, 49145, 2); + $911 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($910, $last, $48, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($48); + $$0 = ($911 | 0) == ($910 | 0) ? $first : $911; + break L1; + break; + } + case 109: + { + $913 = $first + 2 | 0; + if (($913 | 0) != ($last | 0)) if ((HEAP8[$913 >> 0] | 0) == 95) { + $917 = $first + 3 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($49, 49148, 2); + $918 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($917, $last, $49, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($49); + $$0 = ($918 | 0) == ($917 | 0) ? $first : $918; + break L1; + } + $920 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($913, $last, $db) | 0; + if (($920 | 0) == ($913 | 0)) { + $$0 = $first; + break L1; + } + $924 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($924 | 0)) { + $$0 = $first; + break L1; + } + $926 = $924 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($53, $926); + $927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($53, 0, 47883) | 0; + HEAP32[$52 >> 2] = HEAP32[$927 >> 2]; + HEAP32[$52 + 4 >> 2] = HEAP32[$927 + 4 >> 2]; + HEAP32[$52 + 8 >> 2] = HEAP32[$927 + 8 >> 2]; + HEAP32[$927 >> 2] = 0; + HEAP32[$927 + 4 >> 2] = 0; + HEAP32[$927 + 8 >> 2] = 0; + $930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($52, 49151) | 0; + HEAP32[$51 >> 2] = HEAP32[$930 >> 2]; + HEAP32[$51 + 4 >> 2] = HEAP32[$930 + 4 >> 2]; + HEAP32[$51 + 8 >> 2] = HEAP32[$930 + 8 >> 2]; + HEAP32[$930 >> 2] = 0; + HEAP32[$930 + 4 >> 2] = 0; + HEAP32[$930 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($50, $51); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($926, $50); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($50); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($51); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($52); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($53); + $$0 = $920; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 110: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 119: + case 97: + { + L323 : do if ($85) { + $936 = HEAP8[$first >> 0] | 0; + if ($936 << 24 >> 24 == 103) { + $940 = (HEAP8[$first + 1 >> 0] | 0) == 115; + $$first$i = $940 ? $first + 2 | 0 : $first; + $943 = HEAP8[$$first$i >> 0] | 0; + $parsed_gs$0$off0$i = $940; + $t$0$i267 = $$first$i; + } else { + $943 = $936; + $parsed_gs$0$off0$i = 0; + $t$0$i267 = $first; + } + if ($943 << 24 >> 24 == 110) { + $945 = HEAP8[$t$0$i267 + 1 >> 0] | 0; + switch ($945 << 24 >> 24) { + case 97: + case 119: + break; + default: + { + $$221$i = $first; + label = 319; + break L323; + } + } + $946 = $945 << 24 >> 24 == 97; + $947 = $t$0$i267 + 2 | 0; + if (($947 | 0) == ($last | 0)) $$9$i = $first; else { + $has_expr_list$0$off0$i = 0; + $t$1$i = $947; + while (1) { + if ((HEAP8[$t$1$i >> 0] | 0) == 95) { + $has_expr_list$0$off0$i$lcssa = $has_expr_list$0$off0$i; + $t$1$i$lcssa = $t$1$i; + break; + } + $t$1$i$looptemp = $t$1$i; + $t$1$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$1$i, $last, $db) | 0; + if (($t$1$i | 0) == ($t$1$i$looptemp | 0) | ($t$1$i | 0) == ($last | 0)) { + $$9$i = $first; + break L323; + } else $has_expr_list$0$off0$i = 1; + } + $954 = $t$1$i$lcssa + 1 | 0; + $955 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($954, $last, $db) | 0; + if (($955 | 0) == ($954 | 0) | ($955 | 0) == ($last | 0)) $$9$i = $first; else { + $961 = HEAP8[$955 >> 0] | 0; + L335 : do if (($81 - $955 | 0) > 2 & $961 << 24 >> 24 == 112) { + if ((HEAP8[$955 + 1 >> 0] | 0) != 105) { + $$9$i = $first; + break L323; + } + $t$2$i = $955 + 2 | 0; + while (1) { + if ((HEAP8[$t$2$i >> 0] | 0) == 69) { + $has_init$0$off0$i513 = 1; + $t$3$i512 = $t$2$i; + break L335; + } + $t$2$i$looptemp = $t$2$i; + $t$2$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$2$i, $last, $db) | 0; + if (($t$2$i | 0) == ($t$2$i$looptemp | 0) | ($t$2$i | 0) == ($last | 0)) { + $$9$i = $first; + break L323; + } + } + } else if ($961 << 24 >> 24 == 69) { + $has_init$0$off0$i513 = 0; + $t$3$i512 = $955; + } else { + $$9$i = $first; + break L323; + } while (0); + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + if ($has_init$0$off0$i513) { + $976 = $db + 4 | 0; + $977 = HEAP32[$976 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) != ($977 | 0)) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $977 + -24 | 0); + L346 : do if (!(HEAP8[$1 >> 0] & 1)) { + HEAP8[$1 + 1 >> 0] = 0; + HEAP8[$1 >> 0] = 0; + } else { + $984 = $1 + 8 | 0; + $985 = HEAP32[$984 >> 2] | 0; + HEAP8[$985 >> 0] = 0; + $986 = $1 + 4 | 0; + HEAP32[$986 >> 2] = 0; + $987 = HEAP32[$1 >> 2] | 0; + $phitmp$i$i$i$i$i$i$i273 = ($987 & -2) + -1 | 0; + $989 = $987 & 255; + do if (!($989 & 1)) { + $993 = $987 >>> 1 & 127; + if (($989 & 255) < 22) { + _memcpy($1 + 1 | 0, $985 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0; + _free($985); + $$ph518 = $993; + break; + } + $996 = $993 + 16 & 240; + $phitmp$i2$i$i$i$i$i$i276 = $996 + -1 | 0; + if (($phitmp$i2$i$i$i$i$i$i276 | 0) == ($phitmp$i$i$i$i$i$i$i273 | 0)) break L346; + $999 = _malloc($996) | 0; + if ($phitmp$i2$i$i$i$i$i$i276 >>> 0 <= $phitmp$i$i$i$i$i$i$i273 >>> 0 & ($999 | 0) == 0) break L346; + _memcpy($999 | 0, $1 + 1 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0; + HEAP32[$1 >> 2] = $996 | 1; + HEAP32[$986 >> 2] = $993; + HEAP32[$984 >> 2] = $999; + break L346; + } else { + HEAP8[$1 + 1 >> 0] = 0; + _free($985); + $$ph518 = 0; + } while (0); + HEAP8[$1 >> 0] = $$ph518 << 1; + } while (0); + HEAP32[$1 >> 2] = HEAP32[$2 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$2 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$2 + 8 >> 2]; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $1015 = HEAP32[$976 >> 2] | 0; + $1016 = $1015 + -24 | 0; + $1018 = $1015; + do { + $1017 = $1018 + -24 | 0; + HEAP32[$976 >> 2] = $1017; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1017); + $1018 = HEAP32[$976 >> 2] | 0; + } while (($1018 | 0) != ($1016 | 0)); + $$pre$phi511Z2D = $976; + $$pre$phiZ2D = $db; + $1022 = $1016; + label = 283; + } + } else { + $$phi$trans$insert = $db + 4 | 0; + $$pre$phi511Z2D = $$phi$trans$insert; + $$pre$phiZ2D = $db; + $1022 = HEAP32[$$phi$trans$insert >> 2] | 0; + label = 283; + } + if ((label | 0) == 283) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) != ($1022 | 0)) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1022 + -24 | 0); + $1024 = HEAP32[$$pre$phi511Z2D >> 2] | 0; + $1025 = $1024 + -24 | 0; + $1027 = $1024; + do { + $1026 = $1027 + -24 | 0; + HEAP32[$$pre$phi511Z2D >> 2] = $1026; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1026); + $1027 = HEAP32[$$pre$phi511Z2D >> 2] | 0; + } while (($1027 | 0) != ($1025 | 0)); + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + if ($has_expr_list$0$off0$i$lcssa) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) == ($1025 | 0)) { + $$019$i = $first; + $$2$i302 = 0; + } else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($5, $1024 + -48 | 0); + L371 : do if (!(HEAP8[$4 >> 0] & 1)) { + HEAP8[$4 + 1 >> 0] = 0; + HEAP8[$4 >> 0] = 0; + } else { + $1038 = $4 + 8 | 0; + $1039 = HEAP32[$1038 >> 2] | 0; + HEAP8[$1039 >> 0] = 0; + $1040 = $4 + 4 | 0; + HEAP32[$1040 >> 2] = 0; + $1041 = HEAP32[$4 >> 2] | 0; + $phitmp$i$i$i$i$i$i32$i = ($1041 & -2) + -1 | 0; + $1043 = $1041 & 255; + do if (!($1043 & 1)) { + $1047 = $1041 >>> 1 & 127; + if (($1043 & 255) < 22) { + _memcpy($4 + 1 | 0, $1039 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0; + _free($1039); + $$ph520524 = $1047; + break; + } + $1050 = $1047 + 16 & 240; + $phitmp$i2$i$i$i$i$i35$i = $1050 + -1 | 0; + if (($phitmp$i2$i$i$i$i$i35$i | 0) == ($phitmp$i$i$i$i$i$i32$i | 0)) break L371; + $1053 = _malloc($1050) | 0; + if ($phitmp$i2$i$i$i$i$i35$i >>> 0 <= $phitmp$i$i$i$i$i$i32$i >>> 0 & ($1053 | 0) == 0) break L371; + _memcpy($1053 | 0, $4 + 1 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0; + HEAP32[$4 >> 2] = $1050 | 1; + HEAP32[$1040 >> 2] = $1047; + HEAP32[$1038 >> 2] = $1053; + break L371; + } else { + HEAP8[$4 + 1 >> 0] = 0; + _free($1039); + $$ph520524 = 0; + } while (0); + HEAP8[$4 >> 0] = $$ph520524 << 1; + } while (0); + HEAP32[$4 >> 2] = HEAP32[$5 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$5 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$5 + 8 >> 2]; + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + $1069 = HEAP32[$$pre$phi511Z2D >> 2] | 0; + $1070 = $1069 + -24 | 0; + $1072 = $1069; + do { + $1071 = $1072 + -24 | 0; + HEAP32[$$pre$phi511Z2D >> 2] = $1071; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1071); + $1072 = HEAP32[$$pre$phi511Z2D >> 2] | 0; + } while (($1072 | 0) != ($1070 | 0)); + label = 300; + } else label = 300; + if ((label | 0) == 300) { + HEAP32[$6 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + if ($parsed_gs$0$off0$i) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($6, 48071, 2); + if ($946) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 49155) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 47895) | 0; + if ($has_expr_list$0$off0$i$lcssa) { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($8, 47883, $4); + $1076 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 49159) | 0; + HEAP32[$7 >> 2] = HEAP32[$1076 >> 2]; + HEAP32[$7 + 4 >> 2] = HEAP32[$1076 + 4 >> 2]; + HEAP32[$7 + 8 >> 2] = HEAP32[$1076 + 8 >> 2]; + HEAP32[$1076 >> 2] = 0; + HEAP32[$1076 + 4 >> 2] = 0; + HEAP32[$1076 + 8 >> 2] = 0; + $1079 = HEAP8[$7 >> 0] | 0; + $1081 = ($1079 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1081 ? $7 + 1 | 0 : HEAP32[$7 + 8 >> 2] | 0, $1081 ? ($1079 & 255) >>> 1 : HEAP32[$7 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); + } + $1091 = HEAP8[$3 >> 0] | 0; + $1093 = ($1091 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1093 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $1093 ? ($1091 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; + if ($has_init$0$off0$i513) { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($10, 47785, $1); + $1103 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($10, 47788) | 0; + HEAP32[$9 >> 2] = HEAP32[$1103 >> 2]; + HEAP32[$9 + 4 >> 2] = HEAP32[$1103 + 4 >> 2]; + HEAP32[$9 + 8 >> 2] = HEAP32[$1103 + 8 >> 2]; + HEAP32[$1103 >> 2] = 0; + HEAP32[$1103 + 4 >> 2] = 0; + HEAP32[$1103 + 8 >> 2] = 0; + $1106 = HEAP8[$9 >> 0] | 0; + $1108 = ($1106 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1108 ? $9 + 1 | 0 : HEAP32[$9 + 8 >> 2] | 0, $1108 ? ($1106 & 255) >>> 1 : HEAP32[$9 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10); + }; + HEAP32[$12 >> 2] = HEAP32[$6 >> 2]; + HEAP32[$12 + 4 >> 2] = HEAP32[$6 + 4 >> 2]; + HEAP32[$12 + 8 >> 2] = HEAP32[$6 + 8 >> 2]; + HEAP32[$6 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($11, $12); + $1120 = HEAP32[$$pre$phi511Z2D >> 2] | 0; + $1122 = HEAP32[$db + 8 >> 2] | 0; + if ($1120 >>> 0 < $1122 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1120, $11); + HEAP32[$$pre$phi511Z2D >> 2] = (HEAP32[$$pre$phi511Z2D >> 2] | 0) + 24; + } else { + $1129 = HEAP32[$$pre$phiZ2D >> 2] | 0; + $1130 = $1120 - $1129 | 0; + $1131 = ($1130 | 0) / 24 | 0; + $1132 = $1131 + 1 | 0; + if (($1130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1136 = ($1122 - $1129 | 0) / 24 | 0; + if ($1136 >>> 0 < 1073741823) { + $1138 = $1136 << 1; + $$0$i$i$i$i299 = $1138 >>> 0 < $1132 >>> 0 ? $1132 : $1138; + } else $$0$i$i$i$i299 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i299, $1131, $db + 12 | 0); + $1141 = $0 + 8 | 0; + $1142 = HEAP32[$1141 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1142, $11); + HEAP32[$1141 >> 2] = $1142 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + $$019$i = $t$3$i512 + 1 | 0; + $$2$i302 = 1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + if ($$2$i302) { + $$221$i = $$019$i; + label = 319; + break; + } else { + $$9$i = $first; + break; + } + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + $$9$i = $first; + } + } + } else { + $$221$i = $first; + label = 319; + } + } else { + $$221$i = $first; + label = 319; + } while (0); + if ((label | 0) == 319) $$9$i = $$221$i; + $$0 = $$9$i; + break L1; + break; + } + case 101: + { + $1145 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($54, 49162, 2); + $1146 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1145, $last, $54, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($54); + $$0 = ($1146 | 0) == ($1145 | 0) ? $first : $1146; + break L1; + break; + } + case 103: + { + $1148 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($55, 49140, 1); + $1149 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1148, $last, $55, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($55); + $$0 = ($1149 | 0) == ($1148 | 0) ? $first : $1149; + break L1; + break; + } + case 116: + { + $1151 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($56, 49165, 1); + $1152 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1151, $last, $56, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($56); + $$0 = ($1152 | 0) == ($1151 | 0) ? $first : $1152; + break L1; + break; + } + case 120: + { + $1154 = $first + 2 | 0; + $1155 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1154, $last, $db) | 0; + if (($1155 | 0) == ($1154 | 0)) $$03$i265 = $1154; else { + $1159 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1159 | 0)) $$03$i265 = $1154; else { + $1161 = $1159 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1161); + $1162 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 49167) | 0; + HEAP32[$1 >> 2] = HEAP32[$1162 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1162 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1162 + 8 >> 2]; + HEAP32[$1162 >> 2] = 0; + HEAP32[$1162 + 4 >> 2] = 0; + HEAP32[$1162 + 8 >> 2] = 0; + $1165 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$1165 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$1165 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$1165 + 8 >> 2]; + HEAP32[$1165 >> 2] = 0; + HEAP32[$1165 + 4 >> 2] = 0; + HEAP32[$1165 + 8 >> 2] = 0; + do if (!(HEAP8[$1161 >> 0] & 1)) { + HEAP8[$1161 + 1 >> 0] = 0; + HEAP8[$1161 >> 0] = 0; + } else { + $1172 = $1159 + -16 | 0; + HEAP8[HEAP32[$1172 >> 2] >> 0] = 0; + $1174 = $1159 + -20 | 0; + HEAP32[$1174 >> 2] = 0; + $$pre$i$i$i$i = HEAP8[$1161 >> 0] | 0; + if (!($$pre$i$i$i$i & 1)) { + $1181 = $$pre$i$i$i$i; + $1190 = 10; + } else { + $1177 = HEAP32[$1161 >> 2] | 0; + $1181 = $1177 & 255; + $1190 = ($1177 & -2) + -1 | 0; + } + if (!($1181 & 1)) { + $1184 = ($1181 & 255) >>> 1; + if (($1181 & 255) < 22) { + $1189 = 10; + $1209 = $1184; + $1751 = 1; + } else { + $1189 = ($1184 + 16 & 240) + -1 | 0; + $1209 = $1184; + $1751 = 1; + } + } else { + $1189 = 10; + $1209 = 0; + $1751 = 0; + } + if (($1189 | 0) != ($1190 | 0)) { + if (($1189 | 0) == 10) { + $1196 = $1161 + 1 | 0; + $1197 = HEAP32[$1172 >> 2] | 0; + if ($1751) { + _memcpy($1196 | 0, $1197 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0; + _free($1197); + } else { + HEAP8[$1196 >> 0] = HEAP8[$1197 >> 0] | 0; + _free($1197); + } + HEAP8[$1161 >> 0] = $1209 << 1; + break; + } + $1193 = $1189 + 1 | 0; + $1194 = _malloc($1193) | 0; + if (!($1189 >>> 0 <= $1190 >>> 0 & ($1194 | 0) == 0)) { + if ($1751) _memcpy($1194 | 0, $1161 + 1 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0; else { + $1206 = HEAP32[$1172 >> 2] | 0; + HEAP8[$1194 >> 0] = HEAP8[$1206 >> 0] | 0; + _free($1206); + } + HEAP32[$1161 >> 2] = $1193 | 1; + HEAP32[$1174 >> 2] = $1209; + HEAP32[$1172 >> 2] = $1194; + } + } + } while (0); + HEAP32[$1161 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$1161 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$1161 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$03$i265 = $1155; + } + } + $$0 = ($$03$i265 | 0) == ($1154 | 0) ? $first : $$03$i265; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 111: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 110: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 111: + { + $1219 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($57, 49178, 2); + $1220 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1219, $last, $57, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($57); + $$0 = ($1220 | 0) == ($1219 | 0) ? $first : $1220; + break L1; + break; + } + case 114: + { + $1222 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($58, 49181, 1); + $1223 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1222, $last, $58, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($58); + $$0 = ($1223 | 0) == ($1222 | 0) ? $first : $1223; + break L1; + break; + } + case 82: + { + $1225 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($59, 49183, 2); + $1226 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1225, $last, $59, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($59); + $$0 = ($1226 | 0) == ($1225 | 0) ? $first : $1226; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 112: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 109: + { + $1231 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($60, 49186, 3); + $1232 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1231, $last, $60, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($60); + $$0 = ($1232 | 0) == ($1231 | 0) ? $first : $1232; + break L1; + break; + } + case 108: + { + $1234 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($61, 49190, 1); + $1235 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1234, $last, $61, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($61); + $$0 = ($1235 | 0) == ($1234 | 0) ? $first : $1235; + break L1; + break; + } + case 76: + { + $1237 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($62, 49192, 2); + $1238 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1237, $last, $62, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($62); + $$0 = ($1238 | 0) == ($1237 | 0) ? $first : $1238; + break L1; + break; + } + case 112: + { + $1240 = $first + 2 | 0; + if (($1240 | 0) != ($last | 0)) if ((HEAP8[$1240 >> 0] | 0) == 95) { + $1244 = $first + 3 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($63, 49195, 2); + $1245 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1244, $last, $63, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($63); + $$0 = ($1245 | 0) == ($1244 | 0) ? $first : $1245; + break L1; + } + $1247 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1240, $last, $db) | 0; + if (($1247 | 0) == ($1240 | 0)) { + $$0 = $first; + break L1; + } + $1251 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1251 | 0)) { + $$0 = $first; + break L1; + } + $1253 = $1251 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($67, $1253); + $1254 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($67, 0, 47883) | 0; + HEAP32[$66 >> 2] = HEAP32[$1254 >> 2]; + HEAP32[$66 + 4 >> 2] = HEAP32[$1254 + 4 >> 2]; + HEAP32[$66 + 8 >> 2] = HEAP32[$1254 + 8 >> 2]; + HEAP32[$1254 >> 2] = 0; + HEAP32[$1254 + 4 >> 2] = 0; + HEAP32[$1254 + 8 >> 2] = 0; + $1257 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($66, 49198) | 0; + HEAP32[$65 >> 2] = HEAP32[$1257 >> 2]; + HEAP32[$65 + 4 >> 2] = HEAP32[$1257 + 4 >> 2]; + HEAP32[$65 + 8 >> 2] = HEAP32[$1257 + 8 >> 2]; + HEAP32[$1257 >> 2] = 0; + HEAP32[$1257 + 4 >> 2] = 0; + HEAP32[$1257 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($64, $65); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1253, $64); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($64); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($65); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($66); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($67); + $$0 = $1247; + break L1; + break; + } + case 115: + { + $1260 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($68, 49190, 1); + $1261 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1260, $last, $68, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($68); + $$0 = ($1261 | 0) == ($1260 | 0) ? $first : $1261; + break L1; + break; + } + case 116: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 112) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { + $1269 = $first + 2 | 0; + $1270 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1269, $last, $db) | 0; + if (($1270 | 0) == ($1269 | 0)) $$0$i254 = $first; else { + $1272 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1270, $last, $db) | 0; + if (($1272 | 0) == ($1270 | 0)) $$0$i254 = $first; else { + $1274 = $db + 4 | 0; + $1275 = HEAP32[$1274 >> 2] | 0; + if ((($1275 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i254 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1275 + -24 | 0); + $1283 = HEAP32[$1274 >> 2] | 0; + $1284 = $1283 + -24 | 0; + $1286 = $1283; + do { + $1285 = $1286 + -24 | 0; + HEAP32[$1274 >> 2] = $1285; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1285); + $1286 = HEAP32[$1274 >> 2] | 0; + } while (($1286 | 0) != ($1284 | 0)); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1283 + -48 | 0, 49202) | 0; + $1291 = HEAP8[$0 >> 0] | 0; + $1293 = ($1291 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$1274 >> 2] | 0) + -24 | 0, $1293 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1293 ? ($1291 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$0$i254 = $1272; + } + } + } + } else $$0$i254 = $first; else $$0$i254 = $first; else $$0$i254 = $first; + $$0 = $$0$i254; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 113: + { + if ((HEAP8[$t$0 + 1 >> 0] | 0) != 117) { + $$0 = $first; + break L1; + } + $1306 = $first + 2 | 0; + $1307 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1306, $last, $db) | 0; + if (($1307 | 0) == ($1306 | 0)) { + $$0 = $first; + break L1; + } + $1309 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1307, $last, $db) | 0; + if (($1309 | 0) == ($1307 | 0)) { + $1383 = $db + 4 | 0; + $1384 = HEAP32[$1383 >> 2] | 0; + $1385 = $1384 + -24 | 0; + $1387 = $1384; + while (1) { + $1386 = $1387 + -24 | 0; + HEAP32[$1383 >> 2] = $1386; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1386); + $1387 = HEAP32[$1383 >> 2] | 0; + if (($1387 | 0) == ($1385 | 0)) { + $$0 = $first; + break L1; + } + } + } + $1311 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1309, $last, $db) | 0; + $1313 = $db + 4 | 0; + $1314 = HEAP32[$1313 >> 2] | 0; + if (($1311 | 0) == ($1309 | 0)) { + $1375 = $1314 + -24 | 0; + $1377 = $1314; + do { + $1376 = $1377 + -24 | 0; + HEAP32[$1313 >> 2] = $1376; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1376); + $1377 = HEAP32[$1313 >> 2] | 0; + } while (($1377 | 0) != ($1375 | 0)); + $1379 = $1314 + -48 | 0; + $1381 = $1375; + while (1) { + $1380 = $1381 + -24 | 0; + HEAP32[$1313 >> 2] = $1380; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1380); + $1381 = HEAP32[$1313 >> 2] | 0; + if (($1381 | 0) == ($1379 | 0)) { + $$0 = $first; + break L1; + } + } + } + if ((($1314 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 3) { + $$0 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op3, $1314 + -24 | 0); + $1322 = HEAP32[$1313 >> 2] | 0; + $1323 = $1322 + -24 | 0; + $1325 = $1322; + do { + $1324 = $1325 + -24 | 0; + HEAP32[$1313 >> 2] = $1324; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1324); + $1325 = HEAP32[$1313 >> 2] | 0; + } while (($1325 | 0) != ($1323 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op27, $1322 + -48 | 0); + $1328 = HEAP32[$1313 >> 2] | 0; + $1329 = $1328 + -24 | 0; + $1331 = $1328; + do { + $1330 = $1331 + -24 | 0; + HEAP32[$1313 >> 2] = $1330; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1330); + $1331 = HEAP32[$1313 >> 2] | 0; + } while (($1331 | 0) != ($1329 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op18, $1328 + -48 | 0); + $1335 = (HEAP32[$1313 >> 2] | 0) + -24 | 0; + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($75, 47883, $op18); + $1336 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($75, 49205) | 0; + HEAP32[$74 >> 2] = HEAP32[$1336 >> 2]; + HEAP32[$74 + 4 >> 2] = HEAP32[$1336 + 4 >> 2]; + HEAP32[$74 + 8 >> 2] = HEAP32[$1336 + 8 >> 2]; + HEAP32[$1336 >> 2] = 0; + HEAP32[$1336 + 4 >> 2] = 0; + HEAP32[$1336 + 8 >> 2] = 0; + $1339 = HEAP8[$op27 >> 0] | 0; + $1341 = ($1339 & 1) == 0; + $1351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($74, $1341 ? $op27 + 1 | 0 : HEAP32[$op27 + 8 >> 2] | 0, $1341 ? ($1339 & 255) >>> 1 : HEAP32[$op27 + 4 >> 2] | 0) | 0; + HEAP32[$73 >> 2] = HEAP32[$1351 >> 2]; + HEAP32[$73 + 4 >> 2] = HEAP32[$1351 + 4 >> 2]; + HEAP32[$73 + 8 >> 2] = HEAP32[$1351 + 8 >> 2]; + HEAP32[$1351 >> 2] = 0; + HEAP32[$1351 + 4 >> 2] = 0; + HEAP32[$1351 + 8 >> 2] = 0; + $1354 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($73, 49211) | 0; + HEAP32[$72 >> 2] = HEAP32[$1354 >> 2]; + HEAP32[$72 + 4 >> 2] = HEAP32[$1354 + 4 >> 2]; + HEAP32[$72 + 8 >> 2] = HEAP32[$1354 + 8 >> 2]; + HEAP32[$1354 >> 2] = 0; + HEAP32[$1354 + 4 >> 2] = 0; + HEAP32[$1354 + 8 >> 2] = 0; + $1357 = HEAP8[$op3 >> 0] | 0; + $1359 = ($1357 & 1) == 0; + $1369 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($72, $1359 ? $op3 + 1 | 0 : HEAP32[$op3 + 8 >> 2] | 0, $1359 ? ($1357 & 255) >>> 1 : HEAP32[$op3 + 4 >> 2] | 0) | 0; + HEAP32[$71 >> 2] = HEAP32[$1369 >> 2]; + HEAP32[$71 + 4 >> 2] = HEAP32[$1369 + 4 >> 2]; + HEAP32[$71 + 8 >> 2] = HEAP32[$1369 + 8 >> 2]; + HEAP32[$1369 >> 2] = 0; + HEAP32[$1369 + 4 >> 2] = 0; + HEAP32[$1369 + 8 >> 2] = 0; + $1372 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($71, 47788) | 0; + HEAP32[$70 >> 2] = HEAP32[$1372 >> 2]; + HEAP32[$70 + 4 >> 2] = HEAP32[$1372 + 4 >> 2]; + HEAP32[$70 + 8 >> 2] = HEAP32[$1372 + 8 >> 2]; + HEAP32[$1372 >> 2] = 0; + HEAP32[$1372 + 4 >> 2] = 0; + HEAP32[$1372 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($69, $70); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1335, $69); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($70); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($71); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($72); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($73); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($74); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($75); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op18); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op27); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op3); + $$0 = $1311; + break L1; + break; + } + case 114: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 99: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 114) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { + $1398 = $first + 2 | 0; + $1399 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1398, $last, $db) | 0; + if (($1399 | 0) == ($1398 | 0)) $$06$i248 = $first; else { + $1401 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1399, $last, $db) | 0; + if (($1401 | 0) == ($1399 | 0)) $$06$i248 = $first; else { + $1403 = $db + 4 | 0; + $1404 = HEAP32[$1403 >> 2] | 0; + if ((($1404 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i248 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1404 + -24 | 0); + $1412 = HEAP32[$1403 >> 2] | 0; + $1413 = $1412 + -24 | 0; + $1415 = $1412; + do { + $1414 = $1415 + -24 | 0; + HEAP32[$1403 >> 2] = $1414; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1414); + $1415 = HEAP32[$1403 >> 2] | 0; + } while (($1415 | 0) != ($1413 | 0)); + $1417 = $1412 + -48 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1417); + $1418 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 49217) | 0; + HEAP32[$5 >> 2] = HEAP32[$1418 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$1418 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$1418 + 8 >> 2]; + HEAP32[$1418 >> 2] = 0; + HEAP32[$1418 + 4 >> 2] = 0; + HEAP32[$1418 + 8 >> 2] = 0; + $1421 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 49068) | 0; + HEAP32[$4 >> 2] = HEAP32[$1421 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$1421 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$1421 + 8 >> 2]; + HEAP32[$1421 >> 2] = 0; + HEAP32[$1421 + 4 >> 2] = 0; + HEAP32[$1421 + 8 >> 2] = 0; + $1424 = HEAP8[$0 >> 0] | 0; + $1426 = ($1424 & 1) == 0; + $1436 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1426 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1426 ? ($1424 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + HEAP32[$3 >> 2] = HEAP32[$1436 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$1436 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$1436 + 8 >> 2]; + HEAP32[$1436 >> 2] = 0; + HEAP32[$1436 + 4 >> 2] = 0; + HEAP32[$1436 + 8 >> 2] = 0; + $1439 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 47788) | 0; + HEAP32[$2 >> 2] = HEAP32[$1439 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1439 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1439 + 8 >> 2]; + HEAP32[$1439 >> 2] = 0; + HEAP32[$1439 + 4 >> 2] = 0; + HEAP32[$1439 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1417, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$06$i248 = $1401; + } + } + } + } else $$06$i248 = $first; else $$06$i248 = $first; else $$06$i248 = $first; + $$0 = $$06$i248; + break L1; + break; + } + case 109: + { + $1442 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($76, 49235, 1); + $1443 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1442, $last, $76, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($76); + $$0 = ($1443 | 0) == ($1442 | 0) ? $first : $1443; + break L1; + break; + } + case 77: + { + $1445 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($77, 49237, 2); + $1446 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1445, $last, $77, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($77); + $$0 = ($1446 | 0) == ($1445 | 0) ? $first : $1446; + break L1; + break; + } + case 115: + { + $1448 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($78, 49240, 2); + $1449 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1448, $last, $78, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($78); + $$0 = ($1449 | 0) == ($1448 | 0) ? $first : $1449; + break L1; + break; + } + case 83: + { + $1451 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($79, 49243, 3); + $1452 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1451, $last, $79, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($79); + STACKTOP = sp; + return (($1452 | 0) == ($1451 | 0) ? $first : $1452) | 0; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 115: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 99: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { + $1463 = $first + 2 | 0; + $1464 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1463, $last, $db) | 0; + if (($1464 | 0) == ($1463 | 0)) $$06$i = $first; else { + $1466 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1464, $last, $db) | 0; + if (($1466 | 0) == ($1464 | 0)) $$06$i = $first; else { + $1468 = $db + 4 | 0; + $1469 = HEAP32[$1468 >> 2] | 0; + if ((($1469 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1469 + -24 | 0); + $1477 = HEAP32[$1468 >> 2] | 0; + $1478 = $1477 + -24 | 0; + $1480 = $1477; + do { + $1479 = $1480 + -24 | 0; + HEAP32[$1468 >> 2] = $1479; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1479); + $1480 = HEAP32[$1468 >> 2] | 0; + } while (($1480 | 0) != ($1478 | 0)); + $1482 = $1477 + -48 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1482); + $1483 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 49247) | 0; + HEAP32[$5 >> 2] = HEAP32[$1483 >> 2]; + HEAP32[$5 + 4 >> 2] = HEAP32[$1483 + 4 >> 2]; + HEAP32[$5 + 8 >> 2] = HEAP32[$1483 + 8 >> 2]; + HEAP32[$1483 >> 2] = 0; + HEAP32[$1483 + 4 >> 2] = 0; + HEAP32[$1483 + 8 >> 2] = 0; + $1486 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 49068) | 0; + HEAP32[$4 >> 2] = HEAP32[$1486 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$1486 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$1486 + 8 >> 2]; + HEAP32[$1486 >> 2] = 0; + HEAP32[$1486 + 4 >> 2] = 0; + HEAP32[$1486 + 8 >> 2] = 0; + $1489 = HEAP8[$0 >> 0] | 0; + $1491 = ($1489 & 1) == 0; + $1501 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1491 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1491 ? ($1489 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + HEAP32[$3 >> 2] = HEAP32[$1501 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$1501 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$1501 + 8 >> 2]; + HEAP32[$1501 >> 2] = 0; + HEAP32[$1501 + 4 >> 2] = 0; + HEAP32[$1501 + 8 >> 2] = 0; + $1504 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 47788) | 0; + HEAP32[$2 >> 2] = HEAP32[$1504 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1504 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1504 + 8 >> 2]; + HEAP32[$1504 >> 2] = 0; + HEAP32[$1504 + 4 >> 2] = 0; + HEAP32[$1504 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1482, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $$06$i = $1466; + } + } + } + } else $$06$i = $first; else $$06$i = $first; else $$06$i = $first; + $$0 = $$06$i; + break L1; + break; + } + case 112: + { + if (($83 | 0) <= 2) { + $$0 = $first; + break L1; + } + if ((HEAP8[$first >> 0] | 0) != 115) { + $$0 = $first; + break L1; + } + if ((HEAP8[$first + 1 >> 0] | 0) != 112) { + $$0 = $first; + break L1; + } + $1513 = $first + 2 | 0; + $1514 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1513, $last, $db) | 0; + $$0 = ($1514 | 0) == ($1513 | 0) ? $first : $1514; + break L1; + break; + } + case 114: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + case 116: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { + $1523 = $first + 2 | 0; + $1524 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1523, $last, $db) | 0; + if (($1524 | 0) == ($1523 | 0)) $$03$i211 = $first; else { + $1528 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1528 | 0)) $$03$i211 = $first; else { + $1530 = $1528 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1530); + $1531 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 49260) | 0; + HEAP32[$2 >> 2] = HEAP32[$1531 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1531 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1531 + 8 >> 2]; + HEAP32[$1531 >> 2] = 0; + HEAP32[$1531 + 4 >> 2] = 0; + HEAP32[$1531 + 8 >> 2] = 0; + $1534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$1534 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1534 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1534 + 8 >> 2]; + HEAP32[$1534 >> 2] = 0; + HEAP32[$1534 + 4 >> 2] = 0; + HEAP32[$1534 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1530, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$03$i211 = $1524; + } + } + } else $$03$i211 = $first; else $$03$i211 = $first; else $$03$i211 = $first; + $$0 = $$03$i211; + break L1; + break; + } + case 122: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 122) { + $1543 = $first + 2 | 0; + $1544 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1543, $last, $db) | 0; + if (($1544 | 0) == ($1543 | 0)) $$03$i200 = $first; else { + $1548 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1548 | 0)) $$03$i200 = $first; else { + $1550 = $1548 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1550); + $1551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 49260) | 0; + HEAP32[$2 >> 2] = HEAP32[$1551 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1551 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1551 + 8 >> 2]; + HEAP32[$1551 >> 2] = 0; + HEAP32[$1551 + 4 >> 2] = 0; + HEAP32[$1551 + 8 >> 2] = 0; + $1554 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$1554 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1554 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1554 + 8 >> 2]; + HEAP32[$1554 >> 2] = 0; + HEAP32[$1554 + 4 >> 2] = 0; + HEAP32[$1554 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1550, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$03$i200 = $1544; + } + } + } else $$03$i200 = $first; else $$03$i200 = $first; else $$03$i200 = $first; + $$0 = $$03$i200; + break L1; + break; + } + case 90: + { + if (($81 - $t$0 | 0) <= 2) { + $$0 = $first; + break L1; + } + switch (HEAP8[$t$0 + 2 >> 0] | 0) { + case 84: + break; + case 102: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) { + $1662 = $first + 2 | 0; + if ((HEAP8[$1662 >> 0] | 0) == 102) { + $1665 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0; + if (($1665 | 0) == ($1662 | 0)) $$03$i174 = $first; else { + $1669 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1669 | 0)) $$03$i174 = $first; else { + $1671 = $1669 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1671); + $1672 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 49269) | 0; + HEAP32[$2 >> 2] = HEAP32[$1672 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1672 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1672 + 8 >> 2]; + HEAP32[$1672 >> 2] = 0; + HEAP32[$1672 + 4 >> 2] = 0; + HEAP32[$1672 + 8 >> 2] = 0; + $1675 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$1675 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1675 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1675 + 8 >> 2]; + HEAP32[$1675 >> 2] = 0; + HEAP32[$1675 + 4 >> 2] = 0; + HEAP32[$1675 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1671, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$03$i174 = $1665; + } + } + } else $$03$i174 = $first; + } else $$03$i174 = $first; else $$03$i174 = $first; else $$03$i174 = $first; + $$0 = $$03$i174; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) { + $1569 = $first + 2 | 0; + if ((HEAP8[$1569 >> 0] | 0) == 84) { + $1572 = $db + 4 | 0; + $1578 = ((HEAP32[$1572 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $1579 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($1569, $last, $db) | 0; + $1581 = HEAP32[$db >> 2] | 0; + $1585 = ((HEAP32[$1572 >> 2] | 0) - $1581 | 0) / 24 | 0; + if (($1579 | 0) == ($1569 | 0)) $$03$i = $first; else { + HEAP8[$1 >> 0] = 20; + dest = $1 + 1 | 0; + src = 49269; + stop = dest + 10 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$1 + 11 >> 0] = 0; + if (($1578 | 0) != ($1585 | 0)) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1581 + ($1578 * 24 | 0) | 0); + $1591 = HEAP8[$2 >> 0] | 0; + $1593 = ($1591 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1593 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $1593 ? ($1591 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $1603 = $3 + 8 | 0; + $1604 = $3 + 1 | 0; + $1605 = $3 + 4 | 0; + $k$0$i621 = $1578 + 1 | 0; + if (($k$0$i621 | 0) != ($1585 | 0)) { + $k$0$i622 = $k$0$i621; + do { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0$i622 * 24 | 0) | 0); + $1609 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($4, 0, 47885) | 0; + HEAP32[$3 >> 2] = HEAP32[$1609 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$1609 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$1609 + 8 >> 2]; + HEAP32[$1609 >> 2] = 0; + HEAP32[$1609 + 4 >> 2] = 0; + HEAP32[$1609 + 8 >> 2] = 0; + $1612 = HEAP8[$3 >> 0] | 0; + $1614 = ($1612 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1614 ? $1604 : HEAP32[$1603 >> 2] | 0, $1614 ? ($1612 & 255) >>> 1 : HEAP32[$1605 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + $k$0$i622 = $k$0$i622 + 1 | 0; + } while (($k$0$i622 | 0) != ($1585 | 0)); + } + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + if (($1585 | 0) != ($1578 | 0)) { + $k1$0$i618 = $1585; + do { + $1623 = HEAP32[$1572 >> 2] | 0; + $1624 = $1623 + -24 | 0; + $1626 = $1623; + do { + $1625 = $1626 + -24 | 0; + HEAP32[$1572 >> 2] = $1625; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1625); + $1626 = HEAP32[$1572 >> 2] | 0; + } while (($1626 | 0) != ($1624 | 0)); + $k1$0$i618 = $k1$0$i618 + -1 | 0; + } while (($k1$0$i618 | 0) != ($1578 | 0)); + }; + HEAP32[$6 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$6 + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$6 + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($5, $6); + $1632 = HEAP32[$1572 >> 2] | 0; + $1634 = HEAP32[$db + 8 >> 2] | 0; + if ($1632 >>> 0 < $1634 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1632, $5); + HEAP32[$1572 >> 2] = (HEAP32[$1572 >> 2] | 0) + 24; + } else { + $1641 = HEAP32[$db >> 2] | 0; + $1642 = $1632 - $1641 | 0; + $1643 = ($1642 | 0) / 24 | 0; + $1644 = $1643 + 1 | 0; + if (($1642 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1648 = ($1634 - $1641 | 0) / 24 | 0; + if ($1648 >>> 0 < 1073741823) { + $1650 = $1648 << 1; + $$0$i$i$i$i = $1650 >>> 0 < $1644 >>> 0 ? $1644 : $1650; + } else $$0$i$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i, $1643, $db + 12 | 0); + $1653 = $0 + 8 | 0; + $1654 = HEAP32[$1653 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1654, $5); + HEAP32[$1653 >> 2] = $1654 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + $$03$i = $1579; + } + } else $$03$i = $first; + } else $$03$i = $first; else $$03$i = $first; else $$03$i = $first; + $$0 = $$03$i; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 116: + { + switch (HEAP8[$t$0 + 1 >> 0] | 0) { + case 105: + case 101: + { + L600 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) { + $1685 = HEAP8[$first + 1 >> 0] | 0; + switch ($1685 << 24 >> 24) { + case 105: + case 101: + break; + default: + { + $$03$i189 = $first; + break L600; + } + } + $1687 = $first + 2 | 0; + if ($1685 << 24 >> 24 == 101) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0; else $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0; + if (($t$0$i | 0) == ($1687 | 0)) $$03$i189 = $first; else { + $1693 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1693 | 0)) $$03$i189 = $first; else { + $1695 = $1693 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1695); + $1696 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 49280) | 0; + HEAP32[$2 >> 2] = HEAP32[$1696 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$1696 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$1696 + 8 >> 2]; + HEAP32[$1696 >> 2] = 0; + HEAP32[$1696 + 4 >> 2] = 0; + HEAP32[$1696 + 8 >> 2] = 0; + $1699 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$1699 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1699 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1699 + 8 >> 2]; + HEAP32[$1699 >> 2] = 0; + HEAP32[$1699 + 4 >> 2] = 0; + HEAP32[$1699 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1695, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$03$i189 = $t$0$i; + } + } + } else $$03$i189 = $first; else $$03$i189 = $first; while (0); + $$0 = $$03$i189; + break L1; + break; + } + case 114: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($80, 49288); + $1702 = $db + 4 | 0; + $1703 = HEAP32[$1702 >> 2] | 0; + $1705 = HEAP32[$db + 8 >> 2] | 0; + if ($1703 >>> 0 < $1705 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1703, $80); + HEAP32[$1702 >> 2] = (HEAP32[$1702 >> 2] | 0) + 24; + } else { + $1712 = HEAP32[$db >> 2] | 0; + $1713 = $1703 - $1712 | 0; + $1714 = ($1713 | 0) / 24 | 0; + $1715 = $1714 + 1 | 0; + if (($1713 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1719 = ($1705 - $1712 | 0) / 24 | 0; + if ($1719 >>> 0 < 1073741823) { + $1721 = $1719 << 1; + $$0$i$i$i = $1721 >>> 0 < $1715 >>> 0 ? $1715 : $1721; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $1714, $db + 12 | 0); + $1724 = $0 + 8 | 0; + $1725 = HEAP32[$1724 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1725, $80); + HEAP32[$1724 >> 2] = $1725 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($80); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 119: + { + if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) if ((HEAP8[$first + 1 >> 0] | 0) == 119) { + $1734 = $first + 2 | 0; + $1735 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1734, $last, $db) | 0; + if (($1735 | 0) == ($1734 | 0)) $$02$i = $first; else { + $1739 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1739 | 0)) $$02$i = $first; else { + $1741 = $1739 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1741); + $1742 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 49294) | 0; + HEAP32[$1 >> 2] = HEAP32[$1742 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$1742 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$1742 + 8 >> 2]; + HEAP32[$1742 >> 2] = 0; + HEAP32[$1742 + 4 >> 2] = 0; + HEAP32[$1742 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1741, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$02$i = $1735; + } + } + } else $$02$i = $first; else $$02$i = $first; else $$02$i = $first; + $$0 = $$02$i; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 57: + case 56: + case 55: + case 54: + case 53: + case 52: + case 51: + case 50: + case 49: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } while (0); + } else $$0 = $first; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i100 = 0, $$0$i$i$i105 = 0, $$0$i$i$i110 = 0, $$0$i$i$i115 = 0, $$0$i$i$i120 = 0, $$0$i$i$i125 = 0, $$0$i$i$i130 = 0, $$0$i$i$i135 = 0, $$0$i$i$i140 = 0, $$0$i$i$i145 = 0, $$0$i$i$i15 = 0, $$0$i$i$i150 = 0, $$0$i$i$i155 = 0, $$0$i$i$i160 = 0, $$0$i$i$i165 = 0, $$0$i$i$i170 = 0, $$0$i$i$i175 = 0, $$0$i$i$i180 = 0, $$0$i$i$i185 = 0, $$0$i$i$i190 = 0, $$0$i$i$i195 = 0, $$0$i$i$i20 = 0, $$0$i$i$i200 = 0, $$0$i$i$i205 = 0, $$0$i$i$i210 = 0, $$0$i$i$i215 = 0, $$0$i$i$i220 = 0, $$0$i$i$i225 = 0, $$0$i$i$i25 = 0, $$0$i$i$i30 = 0, $$0$i$i$i35 = 0, $$0$i$i$i40 = 0, $$0$i$i$i45 = 0, $$0$i$i$i5 = 0, $$0$i$i$i50 = 0, $$0$i$i$i55 = 0, $$0$i$i$i60 = 0, $$0$i$i$i65 = 0, $$0$i$i$i70 = 0, $$0$i$i$i75 = 0, $$0$i$i$i80 = 0, $$0$i$i$i85 = 0, $$0$i$i$i90 = 0, $$0$i$i$i95 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1009 = 0, $1011 = 0, $1014 = 0, $1015 = 0, $1021 = 0, $1022 = 0, $1024 = 0, $103 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1038 = 0, $104 = 0, $1040 = 0, $1043 = 0, $1044 = 0, $1047 = 0, $1048 = 0, $1050 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $1060 = 0, $1064 = 0, $1066 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1073 = 0, $1074 = 0, $1076 = 0, $108 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1090 = 0, $1092 = 0, $1095 = 0, $1096 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1102 = 0, $1109 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1116 = 0, $1118 = 0, $1121 = 0, $1122 = 0, $1125 = 0, $1126 = 0, $1128 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1142 = 0, $1144 = 0, $1147 = 0, $1148 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1168 = 0, $117 = 0, $1170 = 0, $1173 = 0, $1174 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1183 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1197 = 0, $1199 = 0, $12 = 0, $120 = 0, $1202 = 0, $1203 = 0, $1209 = 0, $1210 = 0, $1212 = 0, $1219 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1226 = 0, $1228 = 0, $1231 = 0, $1232 = 0, $1235 = 0, $1236 = 0, $1238 = 0, $124 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1252 = 0, $1254 = 0, $1257 = 0, $1258 = 0, $126 = 0, $1261 = 0, $1262 = 0, $1264 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1278 = 0, $1280 = 0, $1283 = 0, $1284 = 0, $1287 = 0, $1288 = 0, $129 = 0, $1290 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1304 = 0, $1306 = 0, $1309 = 0, $1310 = 0, $1316 = 0, $1317 = 0, $1321 = 0, $133 = 0, $134 = 0, $136 = 0, $14 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $15 = 0, $150 = 0, $152 = 0, $155 = 0, $156 = 0, $16 = 0, $162 = 0, $163 = 0, $165 = 0, $17 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $179 = 0, $18 = 0, $181 = 0, $184 = 0, $185 = 0, $188 = 0, $189 = 0, $19 = 0, $191 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $211 = 0, $214 = 0, $215 = 0, $217 = 0, $22 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $23 = 0, $231 = 0, $233 = 0, $236 = 0, $237 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $247 = 0, $25 = 0, $254 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $27 = 0, $271 = 0, $273 = 0, $276 = 0, $277 = 0, $28 = 0, $280 = 0, $281 = 0, $283 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $297 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $33 = 0, $330 = 0, $332 = 0, $335 = 0, $336 = 0, $339 = 0, $34 = 0, $340 = 0, $342 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $356 = 0, $358 = 0, $36 = 0, $361 = 0, $362 = 0, $365 = 0, $366 = 0, $368 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $38 = 0, $382 = 0, $384 = 0, $387 = 0, $388 = 0, $39 = 0, $394 = 0, $395 = 0, $397 = 0, $4 = 0, $40 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $41 = 0, $411 = 0, $413 = 0, $416 = 0, $417 = 0, $42 = 0, $420 = 0, $421 = 0, $423 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $437 = 0, $439 = 0, $44 = 0, $442 = 0, $443 = 0, $446 = 0, $447 = 0, $449 = 0, $45 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $463 = 0, $465 = 0, $468 = 0, $469 = 0, $475 = 0, $476 = 0, $478 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $492 = 0, $494 = 0, $497 = 0, $498 = 0, $5 = 0, $501 = 0, $502 = 0, $504 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $518 = 0, $520 = 0, $523 = 0, $524 = 0, $530 = 0, $531 = 0, $533 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $547 = 0, $549 = 0, $55 = 0, $552 = 0, $553 = 0, $559 = 0, $56 = 0, $560 = 0, $562 = 0, $569 = 0, $570 = 0, $571 = 0, $572 = 0, $576 = 0, $578 = 0, $58 = 0, $581 = 0, $582 = 0, $585 = 0, $586 = 0, $590 = 0, $593 = 0, $594 = 0, $596 = 0, $6 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $610 = 0, $612 = 0, $615 = 0, $616 = 0, $619 = 0, $620 = 0, $622 = 0, $629 = 0, $630 = 0, $631 = 0, $632 = 0, $636 = 0, $638 = 0, $641 = 0, $642 = 0, $645 = 0, $646 = 0, $648 = 0, $65 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $66 = 0, $662 = 0, $664 = 0, $667 = 0, $668 = 0, $67 = 0, $674 = 0, $675 = 0, $677 = 0, $68 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $691 = 0, $693 = 0, $696 = 0, $697 = 0, $7 = 0, $700 = 0, $701 = 0, $703 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $717 = 0, $719 = 0, $72 = 0, $722 = 0, $723 = 0, $726 = 0, $727 = 0, $729 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $743 = 0, $745 = 0, $748 = 0, $749 = 0, $752 = 0, $753 = 0, $755 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $769 = 0, $77 = 0, $771 = 0, $774 = 0, $775 = 0, $778 = 0, $779 = 0, $78 = 0, $781 = 0, $788 = 0, $789 = 0, $790 = 0, $791 = 0, $795 = 0, $797 = 0, $8 = 0, $800 = 0, $801 = 0, $807 = 0, $808 = 0, $81 = 0, $810 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $824 = 0, $826 = 0, $829 = 0, $830 = 0, $833 = 0, $834 = 0, $836 = 0, $84 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $850 = 0, $852 = 0, $855 = 0, $856 = 0, $859 = 0, $860 = 0, $862 = 0, $869 = 0, $870 = 0, $871 = 0, $872 = 0, $876 = 0, $878 = 0, $881 = 0, $882 = 0, $885 = 0, $886 = 0, $888 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $9 = 0, $902 = 0, $904 = 0, $907 = 0, $908 = 0, $91 = 0, $911 = 0, $912 = 0, $914 = 0, $92 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $928 = 0, $93 = 0, $930 = 0, $933 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $957 = 0, $959 = 0, $962 = 0, $963 = 0, $966 = 0, $967 = 0, $969 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $983 = 0, $985 = 0, $988 = 0, $989 = 0, $992 = 0, $993 = 0, $995 = 0, $__v$i$i224 = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1136 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i224 = sp + 1104 | 0; + $0 = sp + 1080 | 0; + $1 = sp + 1056 | 0; + $2 = sp + 1032 | 0; + $3 = sp + 1008 | 0; + $4 = sp + 984 | 0; + $5 = sp + 960 | 0; + $6 = sp + 936 | 0; + $7 = sp + 912 | 0; + $8 = sp + 888 | 0; + $9 = sp + 864 | 0; + $10 = sp + 840 | 0; + $11 = sp + 816 | 0; + $12 = sp + 792 | 0; + $13 = sp + 768 | 0; + $14 = sp + 744 | 0; + $15 = sp + 720 | 0; + $16 = sp + 696 | 0; + $17 = sp + 672 | 0; + $18 = sp + 648 | 0; + $19 = sp + 624 | 0; + $20 = sp + 600 | 0; + $21 = sp + 576 | 0; + $22 = sp + 552 | 0; + $23 = sp + 528 | 0; + $24 = sp + 504 | 0; + $25 = sp + 480 | 0; + $26 = sp + 456 | 0; + $27 = sp + 432 | 0; + $28 = sp + 408 | 0; + $29 = sp + 384 | 0; + $30 = sp + 360 | 0; + $31 = sp + 336 | 0; + $32 = sp + 312 | 0; + $33 = sp + 288 | 0; + $34 = sp + 264 | 0; + $35 = sp + 240 | 0; + $36 = sp + 216 | 0; + $37 = sp + 192 | 0; + $38 = sp + 168 | 0; + $39 = sp + 144 | 0; + $40 = sp + 120 | 0; + $41 = sp + 96 | 0; + $42 = sp + 72 | 0; + $43 = sp + 48 | 0; + $44 = sp + 24 | 0; + $45 = sp; + L1 : do if (($last - $first | 0) > 1) do switch (HEAP8[$first >> 0] | 0) { + case 97: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($0, 48118); + $55 = $db + 4 | 0; + $56 = HEAP32[$55 >> 2] | 0; + $58 = HEAP32[$db + 8 >> 2] | 0; + if ($56 >>> 0 < $58 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($56, $0); + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 24; + } else { + $65 = HEAP32[$db >> 2] | 0; + $66 = $56 - $65 | 0; + $67 = ($66 | 0) / 24 | 0; + $68 = $67 + 1 | 0; + if (($66 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $72 = ($58 - $65 | 0) / 24 | 0; + if ($72 >>> 0 < 1073741823) { + $74 = $72 << 1; + $$0$i$i$i = $74 >>> 0 < $68 >>> 0 ? $68 : $74; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i, $67, $db + 12 | 0); + $77 = $__v$i$i224 + 8 | 0; + $78 = HEAP32[$77 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($78, $0); + HEAP32[$77 >> 2] = $78 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 110: + case 100: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($1, 48129); + $81 = $db + 4 | 0; + $82 = HEAP32[$81 >> 2] | 0; + $84 = HEAP32[$db + 8 >> 2] | 0; + if ($82 >>> 0 < $84 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1); + HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 24; + } else { + $91 = HEAP32[$db >> 2] | 0; + $92 = $82 - $91 | 0; + $93 = ($92 | 0) / 24 | 0; + $94 = $93 + 1 | 0; + if (($92 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $98 = ($84 - $91 | 0) / 24 | 0; + if ($98 >>> 0 < 1073741823) { + $100 = $98 << 1; + $$0$i$i$i5 = $100 >>> 0 < $94 >>> 0 ? $94 : $100; + } else $$0$i$i$i5 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i5, $93, $db + 12 | 0); + $103 = $__v$i$i224 + 8 | 0; + $104 = HEAP32[$103 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($104, $1); + HEAP32[$103 >> 2] = $104 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 78: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($2, 48139); + $107 = $db + 4 | 0; + $108 = HEAP32[$107 >> 2] | 0; + $110 = HEAP32[$db + 8 >> 2] | 0; + if ($108 >>> 0 < $110 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($108, $2); + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + 24; + } else { + $117 = HEAP32[$db >> 2] | 0; + $118 = $108 - $117 | 0; + $119 = ($118 | 0) / 24 | 0; + $120 = $119 + 1 | 0; + if (($118 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $124 = ($110 - $117 | 0) / 24 | 0; + if ($124 >>> 0 < 1073741823) { + $126 = $124 << 1; + $$0$i$i$i10 = $126 >>> 0 < $120 >>> 0 ? $120 : $126; + } else $$0$i$i$i10 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i10, $119, $db + 12 | 0); + $129 = $__v$i$i224 + 8 | 0; + $130 = HEAP32[$129 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($130, $2); + HEAP32[$129 >> 2] = $130 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 83: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($3, 48150); + $133 = $db + 4 | 0; + $134 = HEAP32[$133 >> 2] | 0; + $136 = HEAP32[$db + 8 >> 2] | 0; + if ($134 >>> 0 < $136 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($134, $3); + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 24; + } else { + $143 = HEAP32[$db >> 2] | 0; + $144 = $134 - $143 | 0; + $145 = ($144 | 0) / 24 | 0; + $146 = $145 + 1 | 0; + if (($144 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $150 = ($136 - $143 | 0) / 24 | 0; + if ($150 >>> 0 < 1073741823) { + $152 = $150 << 1; + $$0$i$i$i15 = $152 >>> 0 < $146 >>> 0 ? $146 : $152; + } else $$0$i$i$i15 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i15, $145, $db + 12 | 0); + $155 = $__v$i$i224 + 8 | 0; + $156 = HEAP32[$155 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($156, $3); + HEAP32[$155 >> 2] = $156 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 99: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 108: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($4, 48160); + $162 = $db + 4 | 0; + $163 = HEAP32[$162 >> 2] | 0; + $165 = HEAP32[$db + 8 >> 2] | 0; + if ($163 >>> 0 < $165 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $4); + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 24; + } else { + $172 = HEAP32[$db >> 2] | 0; + $173 = $163 - $172 | 0; + $174 = ($173 | 0) / 24 | 0; + $175 = $174 + 1 | 0; + if (($173 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $179 = ($165 - $172 | 0) / 24 | 0; + if ($179 >>> 0 < 1073741823) { + $181 = $179 << 1; + $$0$i$i$i20 = $181 >>> 0 < $175 >>> 0 ? $175 : $181; + } else $$0$i$i$i20 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i20, $174, $db + 12 | 0); + $184 = $__v$i$i224 + 8 | 0; + $185 = HEAP32[$184 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($185, $4); + HEAP32[$184 >> 2] = $185 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 109: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($5, 48171); + $188 = $db + 4 | 0; + $189 = HEAP32[$188 >> 2] | 0; + $191 = HEAP32[$db + 8 >> 2] | 0; + if ($189 >>> 0 < $191 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($189, $5); + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 24; + } else { + $198 = HEAP32[$db >> 2] | 0; + $199 = $189 - $198 | 0; + $200 = ($199 | 0) / 24 | 0; + $201 = $200 + 1 | 0; + if (($199 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $205 = ($191 - $198 | 0) / 24 | 0; + if ($205 >>> 0 < 1073741823) { + $207 = $205 << 1; + $$0$i$i$i25 = $207 >>> 0 < $201 >>> 0 ? $201 : $207; + } else $$0$i$i$i25 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i25, $200, $db + 12 | 0); + $210 = $__v$i$i224 + 8 | 0; + $211 = HEAP32[$210 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($211, $5); + HEAP32[$210 >> 2] = $211 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 111: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($6, 48181); + $214 = $db + 4 | 0; + $215 = HEAP32[$214 >> 2] | 0; + $217 = HEAP32[$db + 8 >> 2] | 0; + if ($215 >>> 0 < $217 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($215, $6); + HEAP32[$214 >> 2] = (HEAP32[$214 >> 2] | 0) + 24; + } else { + $224 = HEAP32[$db >> 2] | 0; + $225 = $215 - $224 | 0; + $226 = ($225 | 0) / 24 | 0; + $227 = $226 + 1 | 0; + if (($225 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $231 = ($217 - $224 | 0) / 24 | 0; + if ($231 >>> 0 < 1073741823) { + $233 = $231 << 1; + $$0$i$i$i30 = $233 >>> 0 < $227 >>> 0 ? $227 : $233; + } else $$0$i$i$i30 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i30, $226, $db + 12 | 0); + $236 = $__v$i$i224 + 8 | 0; + $237 = HEAP32[$236 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($237, $6); + HEAP32[$236 >> 2] = $237 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 118: + { + $240 = $db + 63 | 0; + $241 = HEAP8[$240 >> 0] | 0; + HEAP8[$240 >> 0] = 0; + $242 = $first + 2 | 0; + $243 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($242, $last, $db) | 0; + HEAP8[$240 >> 0] = $241; + if (($243 | 0) == ($242 | 0)) { + $$0 = $first; + break L1; + } + $247 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($247 | 0)) { + $$0 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($247 + -24 | 0, 0, 48191) | 0; + HEAP8[$db + 60 >> 0] = 1; + $$0 = $243; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 100: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($7, 48201); + $254 = $db + 4 | 0; + $255 = HEAP32[$254 >> 2] | 0; + $257 = HEAP32[$db + 8 >> 2] | 0; + if ($255 >>> 0 < $257 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($255, $7); + HEAP32[$254 >> 2] = (HEAP32[$254 >> 2] | 0) + 24; + } else { + $264 = HEAP32[$db >> 2] | 0; + $265 = $255 - $264 | 0; + $266 = ($265 | 0) / 24 | 0; + $267 = $266 + 1 | 0; + if (($265 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $271 = ($257 - $264 | 0) / 24 | 0; + if ($271 >>> 0 < 1073741823) { + $273 = $271 << 1; + $$0$i$i$i35 = $273 >>> 0 < $267 >>> 0 ? $267 : $273; + } else $$0$i$i$i35 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i35, $266, $db + 12 | 0); + $276 = $__v$i$i224 + 8 | 0; + $277 = HEAP32[$276 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($277, $7); + HEAP32[$276 >> 2] = $277 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($8, 48219); + $280 = $db + 4 | 0; + $281 = HEAP32[$280 >> 2] | 0; + $283 = HEAP32[$db + 8 >> 2] | 0; + if ($281 >>> 0 < $283 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($281, $8); + HEAP32[$280 >> 2] = (HEAP32[$280 >> 2] | 0) + 24; + } else { + $290 = HEAP32[$db >> 2] | 0; + $291 = $281 - $290 | 0; + $292 = ($291 | 0) / 24 | 0; + $293 = $292 + 1 | 0; + if (($291 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $297 = ($283 - $290 | 0) / 24 | 0; + if ($297 >>> 0 < 1073741823) { + $299 = $297 << 1; + $$0$i$i$i40 = $299 >>> 0 < $293 >>> 0 ? $293 : $299; + } else $$0$i$i$i40 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i40, $292, $db + 12 | 0); + $302 = $__v$i$i224 + 8 | 0; + $303 = HEAP32[$302 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($303, $8); + HEAP32[$302 >> 2] = $303 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 108: + { + $306 = _malloc(16) | 0; + HEAP32[$9 + 8 >> 2] = $306; + HEAP32[$9 >> 2] = 17; + HEAP32[$9 + 4 >> 2] = 15; + dest = $306; + src = 48229; + stop = dest + 15 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$306 + 15 >> 0] = 0; + $310 = $9 + 12 | 0; + HEAP32[$310 >> 2] = 0; + HEAP32[$310 + 4 >> 2] = 0; + HEAP32[$310 + 8 >> 2] = 0; + $313 = $db + 4 | 0; + $314 = HEAP32[$313 >> 2] | 0; + $316 = HEAP32[$db + 8 >> 2] | 0; + if ($314 >>> 0 < $316 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($314, $9); + HEAP32[$313 >> 2] = (HEAP32[$313 >> 2] | 0) + 24; + } else { + $323 = HEAP32[$db >> 2] | 0; + $324 = $314 - $323 | 0; + $325 = ($324 | 0) / 24 | 0; + $326 = $325 + 1 | 0; + if (($324 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $330 = ($316 - $323 | 0) / 24 | 0; + if ($330 >>> 0 < 1073741823) { + $332 = $330 << 1; + $$0$i$i$i45 = $332 >>> 0 < $326 >>> 0 ? $326 : $332; + } else $$0$i$i$i45 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i45, $325, $db + 12 | 0); + $335 = $__v$i$i224 + 8 | 0; + $336 = HEAP32[$335 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($336, $9); + HEAP32[$335 >> 2] = $336 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 118: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($10, 48245); + $339 = $db + 4 | 0; + $340 = HEAP32[$339 >> 2] | 0; + $342 = HEAP32[$db + 8 >> 2] | 0; + if ($340 >>> 0 < $342 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($340, $10); + HEAP32[$339 >> 2] = (HEAP32[$339 >> 2] | 0) + 24; + } else { + $349 = HEAP32[$db >> 2] | 0; + $350 = $340 - $349 | 0; + $351 = ($350 | 0) / 24 | 0; + $352 = $351 + 1 | 0; + if (($350 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $356 = ($342 - $349 | 0) / 24 | 0; + if ($356 >>> 0 < 1073741823) { + $358 = $356 << 1; + $$0$i$i$i50 = $358 >>> 0 < $352 >>> 0 ? $352 : $358; + } else $$0$i$i$i50 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i50, $351, $db + 12 | 0); + $361 = $__v$i$i224 + 8 | 0; + $362 = HEAP32[$361 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($362, $10); + HEAP32[$361 >> 2] = $362 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 86: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($11, 48255); + $365 = $db + 4 | 0; + $366 = HEAP32[$365 >> 2] | 0; + $368 = HEAP32[$db + 8 >> 2] | 0; + if ($366 >>> 0 < $368 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($366, $11); + HEAP32[$365 >> 2] = (HEAP32[$365 >> 2] | 0) + 24; + } else { + $375 = HEAP32[$db >> 2] | 0; + $376 = $366 - $375 | 0; + $377 = ($376 | 0) / 24 | 0; + $378 = $377 + 1 | 0; + if (($376 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $382 = ($368 - $375 | 0) / 24 | 0; + if ($382 >>> 0 < 1073741823) { + $384 = $382 << 1; + $$0$i$i$i55 = $384 >>> 0 < $378 >>> 0 ? $378 : $384; + } else $$0$i$i$i55 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i55, $377, $db + 12 | 0); + $387 = $__v$i$i224 + 8 | 0; + $388 = HEAP32[$387 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($388, $11); + HEAP32[$387 >> 2] = $388 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 101: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 111: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 48266); + $394 = $db + 4 | 0; + $395 = HEAP32[$394 >> 2] | 0; + $397 = HEAP32[$db + 8 >> 2] | 0; + if ($395 >>> 0 < $397 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($395, $12); + HEAP32[$394 >> 2] = (HEAP32[$394 >> 2] | 0) + 24; + } else { + $404 = HEAP32[$db >> 2] | 0; + $405 = $395 - $404 | 0; + $406 = ($405 | 0) / 24 | 0; + $407 = $406 + 1 | 0; + if (($405 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $411 = ($397 - $404 | 0) / 24 | 0; + if ($411 >>> 0 < 1073741823) { + $413 = $411 << 1; + $$0$i$i$i60 = $413 >>> 0 < $407 >>> 0 ? $407 : $413; + } else $$0$i$i$i60 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i60, $406, $db + 12 | 0); + $416 = $__v$i$i224 + 8 | 0; + $417 = HEAP32[$416 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($417, $12); + HEAP32[$416 >> 2] = $417 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 79: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($13, 48276); + $420 = $db + 4 | 0; + $421 = HEAP32[$420 >> 2] | 0; + $423 = HEAP32[$db + 8 >> 2] | 0; + if ($421 >>> 0 < $423 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($421, $13); + HEAP32[$420 >> 2] = (HEAP32[$420 >> 2] | 0) + 24; + } else { + $430 = HEAP32[$db >> 2] | 0; + $431 = $421 - $430 | 0; + $432 = ($431 | 0) / 24 | 0; + $433 = $432 + 1 | 0; + if (($431 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $437 = ($423 - $430 | 0) / 24 | 0; + if ($437 >>> 0 < 1073741823) { + $439 = $437 << 1; + $$0$i$i$i65 = $439 >>> 0 < $433 >>> 0 ? $433 : $439; + } else $$0$i$i$i65 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i65, $432, $db + 12 | 0); + $442 = $__v$i$i224 + 8 | 0; + $443 = HEAP32[$442 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($443, $13); + HEAP32[$442 >> 2] = $443 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 113: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($14, 48287); + $446 = $db + 4 | 0; + $447 = HEAP32[$446 >> 2] | 0; + $449 = HEAP32[$db + 8 >> 2] | 0; + if ($447 >>> 0 < $449 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($447, $14); + HEAP32[$446 >> 2] = (HEAP32[$446 >> 2] | 0) + 24; + } else { + $456 = HEAP32[$db >> 2] | 0; + $457 = $447 - $456 | 0; + $458 = ($457 | 0) / 24 | 0; + $459 = $458 + 1 | 0; + if (($457 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $463 = ($449 - $456 | 0) / 24 | 0; + if ($463 >>> 0 < 1073741823) { + $465 = $463 << 1; + $$0$i$i$i70 = $465 >>> 0 < $459 >>> 0 ? $459 : $465; + } else $$0$i$i$i70 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i70, $458, $db + 12 | 0); + $468 = $__v$i$i224 + 8 | 0; + $469 = HEAP32[$468 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($469, $14); + HEAP32[$468 >> 2] = $469 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 103: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($15, 48298); + $475 = $db + 4 | 0; + $476 = HEAP32[$475 >> 2] | 0; + $478 = HEAP32[$db + 8 >> 2] | 0; + if ($476 >>> 0 < $478 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($476, $15); + HEAP32[$475 >> 2] = (HEAP32[$475 >> 2] | 0) + 24; + } else { + $485 = HEAP32[$db >> 2] | 0; + $486 = $476 - $485 | 0; + $487 = ($486 | 0) / 24 | 0; + $488 = $487 + 1 | 0; + if (($486 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $492 = ($478 - $485 | 0) / 24 | 0; + if ($492 >>> 0 < 1073741823) { + $494 = $492 << 1; + $$0$i$i$i75 = $494 >>> 0 < $488 >>> 0 ? $488 : $494; + } else $$0$i$i$i75 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i75, $487, $db + 12 | 0); + $497 = $__v$i$i224 + 8 | 0; + $498 = HEAP32[$497 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($498, $15); + HEAP32[$497 >> 2] = $498 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 116: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($16, 48309); + $501 = $db + 4 | 0; + $502 = HEAP32[$501 >> 2] | 0; + $504 = HEAP32[$db + 8 >> 2] | 0; + if ($502 >>> 0 < $504 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($502, $16); + HEAP32[$501 >> 2] = (HEAP32[$501 >> 2] | 0) + 24; + } else { + $511 = HEAP32[$db >> 2] | 0; + $512 = $502 - $511 | 0; + $513 = ($512 | 0) / 24 | 0; + $514 = $513 + 1 | 0; + if (($512 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $518 = ($504 - $511 | 0) / 24 | 0; + if ($518 >>> 0 < 1073741823) { + $520 = $518 << 1; + $$0$i$i$i80 = $520 >>> 0 < $514 >>> 0 ? $514 : $520; + } else $$0$i$i$i80 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i80, $513, $db + 12 | 0); + $523 = $__v$i$i224 + 8 | 0; + $524 = HEAP32[$523 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($524, $16); + HEAP32[$523 >> 2] = $524 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 105: + { + if ((HEAP8[$first + 1 >> 0] | 0) != 120) { + $$0 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($17, 48319); + $530 = $db + 4 | 0; + $531 = HEAP32[$530 >> 2] | 0; + $533 = HEAP32[$db + 8 >> 2] | 0; + if ($531 >>> 0 < $533 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($531, $17); + HEAP32[$530 >> 2] = (HEAP32[$530 >> 2] | 0) + 24; + } else { + $540 = HEAP32[$db >> 2] | 0; + $541 = $531 - $540 | 0; + $542 = ($541 | 0) / 24 | 0; + $543 = $542 + 1 | 0; + if (($541 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $547 = ($533 - $540 | 0) / 24 | 0; + if ($547 >>> 0 < 1073741823) { + $549 = $547 << 1; + $$0$i$i$i85 = $549 >>> 0 < $543 >>> 0 ? $543 : $549; + } else $$0$i$i$i85 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i85, $542, $db + 12 | 0); + $552 = $__v$i$i224 + 8 | 0; + $553 = HEAP32[$552 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($553, $17); + HEAP32[$552 >> 2] = $553 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 108: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($18, 48330); + $559 = $db + 4 | 0; + $560 = HEAP32[$559 >> 2] | 0; + $562 = HEAP32[$db + 8 >> 2] | 0; + if ($560 >>> 0 < $562 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($560, $18); + HEAP32[$559 >> 2] = (HEAP32[$559 >> 2] | 0) + 24; + } else { + $569 = HEAP32[$db >> 2] | 0; + $570 = $560 - $569 | 0; + $571 = ($570 | 0) / 24 | 0; + $572 = $571 + 1 | 0; + if (($570 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $576 = ($562 - $569 | 0) / 24 | 0; + if ($576 >>> 0 < 1073741823) { + $578 = $576 << 1; + $$0$i$i$i90 = $578 >>> 0 < $572 >>> 0 ? $572 : $578; + } else $$0$i$i$i90 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i90, $571, $db + 12 | 0); + $581 = $__v$i$i224 + 8 | 0; + $582 = HEAP32[$581 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($582, $18); + HEAP32[$581 >> 2] = $582 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 105: + { + $585 = $first + 2 | 0; + $586 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($585, $last, $db) | 0; + if (($586 | 0) == ($585 | 0)) { + $$0 = $first; + break L1; + } + $590 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($590 | 0)) { + $$0 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($590 + -24 | 0, 0, 48341) | 0; + $$0 = $586; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 48353); + $593 = $db + 4 | 0; + $594 = HEAP32[$593 >> 2] | 0; + $596 = HEAP32[$db + 8 >> 2] | 0; + if ($594 >>> 0 < $596 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($594, $19); + HEAP32[$593 >> 2] = (HEAP32[$593 >> 2] | 0) + 24; + } else { + $603 = HEAP32[$db >> 2] | 0; + $604 = $594 - $603 | 0; + $605 = ($604 | 0) / 24 | 0; + $606 = $605 + 1 | 0; + if (($604 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $610 = ($596 - $603 | 0) / 24 | 0; + if ($610 >>> 0 < 1073741823) { + $612 = $610 << 1; + $$0$i$i$i95 = $612 >>> 0 < $606 >>> 0 ? $606 : $612; + } else $$0$i$i$i95 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i95, $605, $db + 12 | 0); + $615 = $__v$i$i224 + 8 | 0; + $616 = HEAP32[$615 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($616, $19); + HEAP32[$615 >> 2] = $616 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 83: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($20, 48364); + $619 = $db + 4 | 0; + $620 = HEAP32[$619 >> 2] | 0; + $622 = HEAP32[$db + 8 >> 2] | 0; + if ($620 >>> 0 < $622 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($620, $20); + HEAP32[$619 >> 2] = (HEAP32[$619 >> 2] | 0) + 24; + } else { + $629 = HEAP32[$db >> 2] | 0; + $630 = $620 - $629 | 0; + $631 = ($630 | 0) / 24 | 0; + $632 = $631 + 1 | 0; + if (($630 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $636 = ($622 - $629 | 0) / 24 | 0; + if ($636 >>> 0 < 1073741823) { + $638 = $636 << 1; + $$0$i$i$i100 = $638 >>> 0 < $632 >>> 0 ? $632 : $638; + } else $$0$i$i$i100 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i100, $631, $db + 12 | 0); + $641 = $__v$i$i224 + 8 | 0; + $642 = HEAP32[$641 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($642, $20); + HEAP32[$641 >> 2] = $642 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 116: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 48376); + $645 = $db + 4 | 0; + $646 = HEAP32[$645 >> 2] | 0; + $648 = HEAP32[$db + 8 >> 2] | 0; + if ($646 >>> 0 < $648 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($646, $21); + HEAP32[$645 >> 2] = (HEAP32[$645 >> 2] | 0) + 24; + } else { + $655 = HEAP32[$db >> 2] | 0; + $656 = $646 - $655 | 0; + $657 = ($656 | 0) / 24 | 0; + $658 = $657 + 1 | 0; + if (($656 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $662 = ($648 - $655 | 0) / 24 | 0; + if ($662 >>> 0 < 1073741823) { + $664 = $662 << 1; + $$0$i$i$i105 = $664 >>> 0 < $658 >>> 0 ? $658 : $664; + } else $$0$i$i$i105 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i105, $657, $db + 12 | 0); + $667 = $__v$i$i224 + 8 | 0; + $668 = HEAP32[$667 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($668, $21); + HEAP32[$667 >> 2] = $668 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 109: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 105: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($22, 48386); + $674 = $db + 4 | 0; + $675 = HEAP32[$674 >> 2] | 0; + $677 = HEAP32[$db + 8 >> 2] | 0; + if ($675 >>> 0 < $677 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($675, $22); + HEAP32[$674 >> 2] = (HEAP32[$674 >> 2] | 0) + 24; + } else { + $684 = HEAP32[$db >> 2] | 0; + $685 = $675 - $684 | 0; + $686 = ($685 | 0) / 24 | 0; + $687 = $686 + 1 | 0; + if (($685 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $691 = ($677 - $684 | 0) / 24 | 0; + if ($691 >>> 0 < 1073741823) { + $693 = $691 << 1; + $$0$i$i$i110 = $693 >>> 0 < $687 >>> 0 ? $687 : $693; + } else $$0$i$i$i110 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i110, $686, $db + 12 | 0); + $696 = $__v$i$i224 + 8 | 0; + $697 = HEAP32[$696 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($697, $22); + HEAP32[$696 >> 2] = $697 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 73: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($23, 48396); + $700 = $db + 4 | 0; + $701 = HEAP32[$700 >> 2] | 0; + $703 = HEAP32[$db + 8 >> 2] | 0; + if ($701 >>> 0 < $703 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($701, $23); + HEAP32[$700 >> 2] = (HEAP32[$700 >> 2] | 0) + 24; + } else { + $710 = HEAP32[$db >> 2] | 0; + $711 = $701 - $710 | 0; + $712 = ($711 | 0) / 24 | 0; + $713 = $712 + 1 | 0; + if (($711 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $717 = ($703 - $710 | 0) / 24 | 0; + if ($717 >>> 0 < 1073741823) { + $719 = $717 << 1; + $$0$i$i$i115 = $719 >>> 0 < $713 >>> 0 ? $713 : $719; + } else $$0$i$i$i115 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i115, $712, $db + 12 | 0); + $722 = $__v$i$i224 + 8 | 0; + $723 = HEAP32[$722 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($723, $23); + HEAP32[$722 >> 2] = $723 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 108: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 48219); + $726 = $db + 4 | 0; + $727 = HEAP32[$726 >> 2] | 0; + $729 = HEAP32[$db + 8 >> 2] | 0; + if ($727 >>> 0 < $729 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($727, $24); + HEAP32[$726 >> 2] = (HEAP32[$726 >> 2] | 0) + 24; + } else { + $736 = HEAP32[$db >> 2] | 0; + $737 = $727 - $736 | 0; + $738 = ($737 | 0) / 24 | 0; + $739 = $738 + 1 | 0; + if (($737 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $743 = ($729 - $736 | 0) / 24 | 0; + if ($743 >>> 0 < 1073741823) { + $745 = $743 << 1; + $$0$i$i$i120 = $745 >>> 0 < $739 >>> 0 ? $739 : $745; + } else $$0$i$i$i120 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i120, $738, $db + 12 | 0); + $748 = $__v$i$i224 + 8 | 0; + $749 = HEAP32[$748 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($749, $24); + HEAP32[$748 >> 2] = $749 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 76: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($25, 48407); + $752 = $db + 4 | 0; + $753 = HEAP32[$752 >> 2] | 0; + $755 = HEAP32[$db + 8 >> 2] | 0; + if ($753 >>> 0 < $755 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($753, $25); + HEAP32[$752 >> 2] = (HEAP32[$752 >> 2] | 0) + 24; + } else { + $762 = HEAP32[$db >> 2] | 0; + $763 = $753 - $762 | 0; + $764 = ($763 | 0) / 24 | 0; + $765 = $764 + 1 | 0; + if (($763 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $769 = ($755 - $762 | 0) / 24 | 0; + if ($769 >>> 0 < 1073741823) { + $771 = $769 << 1; + $$0$i$i$i125 = $771 >>> 0 < $765 >>> 0 ? $765 : $771; + } else $$0$i$i$i125 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i125, $764, $db + 12 | 0); + $774 = $__v$i$i224 + 8 | 0; + $775 = HEAP32[$774 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($775, $25); + HEAP32[$774 >> 2] = $775 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 109: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($26, 48418); + $778 = $db + 4 | 0; + $779 = HEAP32[$778 >> 2] | 0; + $781 = HEAP32[$db + 8 >> 2] | 0; + if ($779 >>> 0 < $781 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($779, $26); + HEAP32[$778 >> 2] = (HEAP32[$778 >> 2] | 0) + 24; + } else { + $788 = HEAP32[$db >> 2] | 0; + $789 = $779 - $788 | 0; + $790 = ($789 | 0) / 24 | 0; + $791 = $790 + 1 | 0; + if (($789 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $795 = ($781 - $788 | 0) / 24 | 0; + if ($795 >>> 0 < 1073741823) { + $797 = $795 << 1; + $$0$i$i$i130 = $797 >>> 0 < $791 >>> 0 ? $791 : $797; + } else $$0$i$i$i130 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i130, $790, $db + 12 | 0); + $800 = $__v$i$i224 + 8 | 0; + $801 = HEAP32[$800 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($801, $26); + HEAP32[$800 >> 2] = $801 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 110: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($27, 48429); + $807 = $db + 4 | 0; + $808 = HEAP32[$807 >> 2] | 0; + $810 = HEAP32[$db + 8 >> 2] | 0; + if ($808 >>> 0 < $810 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($808, $27); + HEAP32[$807 >> 2] = (HEAP32[$807 >> 2] | 0) + 24; + } else { + $817 = HEAP32[$db >> 2] | 0; + $818 = $808 - $817 | 0; + $819 = ($818 | 0) / 24 | 0; + $820 = $819 + 1 | 0; + if (($818 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $824 = ($810 - $817 | 0) / 24 | 0; + if ($824 >>> 0 < 1073741823) { + $826 = $824 << 1; + $$0$i$i$i135 = $826 >>> 0 < $820 >>> 0 ? $820 : $826; + } else $$0$i$i$i135 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i135, $819, $db + 12 | 0); + $829 = $__v$i$i224 + 8 | 0; + $830 = HEAP32[$829 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($830, $27); + HEAP32[$829 >> 2] = $830 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($28, 48444); + $833 = $db + 4 | 0; + $834 = HEAP32[$833 >> 2] | 0; + $836 = HEAP32[$db + 8 >> 2] | 0; + if ($834 >>> 0 < $836 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($834, $28); + HEAP32[$833 >> 2] = (HEAP32[$833 >> 2] | 0) + 24; + } else { + $843 = HEAP32[$db >> 2] | 0; + $844 = $834 - $843 | 0; + $845 = ($844 | 0) / 24 | 0; + $846 = $845 + 1 | 0; + if (($844 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $850 = ($836 - $843 | 0) / 24 | 0; + if ($850 >>> 0 < 1073741823) { + $852 = $850 << 1; + $$0$i$i$i140 = $852 >>> 0 < $846 >>> 0 ? $846 : $852; + } else $$0$i$i$i140 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i140, $845, $db + 12 | 0); + $855 = $__v$i$i224 + 8 | 0; + $856 = HEAP32[$855 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($856, $28); + HEAP32[$855 >> 2] = $856 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 103: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($29, 48386); + $859 = $db + 4 | 0; + $860 = HEAP32[$859 >> 2] | 0; + $862 = HEAP32[$db + 8 >> 2] | 0; + if ($860 >>> 0 < $862 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($860, $29); + HEAP32[$859 >> 2] = (HEAP32[$859 >> 2] | 0) + 24; + } else { + $869 = HEAP32[$db >> 2] | 0; + $870 = $860 - $869 | 0; + $871 = ($870 | 0) / 24 | 0; + $872 = $871 + 1 | 0; + if (($870 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $876 = ($862 - $869 | 0) / 24 | 0; + if ($876 >>> 0 < 1073741823) { + $878 = $876 << 1; + $$0$i$i$i145 = $878 >>> 0 < $872 >>> 0 ? $872 : $878; + } else $$0$i$i$i145 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i145, $871, $db + 12 | 0); + $881 = $__v$i$i224 + 8 | 0; + $882 = HEAP32[$881 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($882, $29); + HEAP32[$881 >> 2] = $882 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($29); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 116: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($30, 48455); + $885 = $db + 4 | 0; + $886 = HEAP32[$885 >> 2] | 0; + $888 = HEAP32[$db + 8 >> 2] | 0; + if ($886 >>> 0 < $888 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($886, $30); + HEAP32[$885 >> 2] = (HEAP32[$885 >> 2] | 0) + 24; + } else { + $895 = HEAP32[$db >> 2] | 0; + $896 = $886 - $895 | 0; + $897 = ($896 | 0) / 24 | 0; + $898 = $897 + 1 | 0; + if (($896 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $902 = ($888 - $895 | 0) / 24 | 0; + if ($902 >>> 0 < 1073741823) { + $904 = $902 << 1; + $$0$i$i$i150 = $904 >>> 0 < $898 >>> 0 ? $898 : $904; + } else $$0$i$i$i150 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i150, $897, $db + 12 | 0); + $907 = $__v$i$i224 + 8 | 0; + $908 = HEAP32[$907 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($908, $30); + HEAP32[$907 >> 2] = $908 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($30); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 119: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($31, 48465); + $911 = $db + 4 | 0; + $912 = HEAP32[$911 >> 2] | 0; + $914 = HEAP32[$db + 8 >> 2] | 0; + if ($912 >>> 0 < $914 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($912, $31); + HEAP32[$911 >> 2] = (HEAP32[$911 >> 2] | 0) + 24; + } else { + $921 = HEAP32[$db >> 2] | 0; + $922 = $912 - $921 | 0; + $923 = ($922 | 0) / 24 | 0; + $924 = $923 + 1 | 0; + if (($922 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $928 = ($914 - $921 | 0) / 24 | 0; + if ($928 >>> 0 < 1073741823) { + $930 = $928 << 1; + $$0$i$i$i155 = $930 >>> 0 < $924 >>> 0 ? $924 : $930; + } else $$0$i$i$i155 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i155, $923, $db + 12 | 0); + $933 = $__v$i$i224 + 8 | 0; + $934 = HEAP32[$933 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($934, $31); + HEAP32[$933 >> 2] = $934 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 111: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 111: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($32, 48478); + $940 = $db + 4 | 0; + $941 = HEAP32[$940 >> 2] | 0; + $943 = HEAP32[$db + 8 >> 2] | 0; + if ($941 >>> 0 < $943 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($941, $32); + HEAP32[$940 >> 2] = (HEAP32[$940 >> 2] | 0) + 24; + } else { + $950 = HEAP32[$db >> 2] | 0; + $951 = $941 - $950 | 0; + $952 = ($951 | 0) / 24 | 0; + $953 = $952 + 1 | 0; + if (($951 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $957 = ($943 - $950 | 0) / 24 | 0; + if ($957 >>> 0 < 1073741823) { + $959 = $957 << 1; + $$0$i$i$i160 = $959 >>> 0 < $953 >>> 0 ? $953 : $959; + } else $$0$i$i$i160 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i160, $952, $db + 12 | 0); + $962 = $__v$i$i224 + 8 | 0; + $963 = HEAP32[$962 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($963, $32); + HEAP32[$962 >> 2] = $963 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($32); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 114: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($33, 48489); + $966 = $db + 4 | 0; + $967 = HEAP32[$966 >> 2] | 0; + $969 = HEAP32[$db + 8 >> 2] | 0; + if ($967 >>> 0 < $969 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($967, $33); + HEAP32[$966 >> 2] = (HEAP32[$966 >> 2] | 0) + 24; + } else { + $976 = HEAP32[$db >> 2] | 0; + $977 = $967 - $976 | 0; + $978 = ($977 | 0) / 24 | 0; + $979 = $978 + 1 | 0; + if (($977 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $983 = ($969 - $976 | 0) / 24 | 0; + if ($983 >>> 0 < 1073741823) { + $985 = $983 << 1; + $$0$i$i$i165 = $985 >>> 0 < $979 >>> 0 ? $979 : $985; + } else $$0$i$i$i165 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i165, $978, $db + 12 | 0); + $988 = $__v$i$i224 + 8 | 0; + $989 = HEAP32[$988 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($989, $33); + HEAP32[$988 >> 2] = $989 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($33); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 82: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($34, 48499); + $992 = $db + 4 | 0; + $993 = HEAP32[$992 >> 2] | 0; + $995 = HEAP32[$db + 8 >> 2] | 0; + if ($993 >>> 0 < $995 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($993, $34); + HEAP32[$992 >> 2] = (HEAP32[$992 >> 2] | 0) + 24; + } else { + $1002 = HEAP32[$db >> 2] | 0; + $1003 = $993 - $1002 | 0; + $1004 = ($1003 | 0) / 24 | 0; + $1005 = $1004 + 1 | 0; + if (($1003 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1009 = ($995 - $1002 | 0) / 24 | 0; + if ($1009 >>> 0 < 1073741823) { + $1011 = $1009 << 1; + $$0$i$i$i170 = $1011 >>> 0 < $1005 >>> 0 ? $1005 : $1011; + } else $$0$i$i$i170 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i170, $1004, $db + 12 | 0); + $1014 = $__v$i$i224 + 8 | 0; + $1015 = HEAP32[$1014 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1015, $34); + HEAP32[$1014 >> 2] = $1015 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($34); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 112: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 109: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($35, 48510); + $1021 = $db + 4 | 0; + $1022 = HEAP32[$1021 >> 2] | 0; + $1024 = HEAP32[$db + 8 >> 2] | 0; + if ($1022 >>> 0 < $1024 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1022, $35); + HEAP32[$1021 >> 2] = (HEAP32[$1021 >> 2] | 0) + 24; + } else { + $1031 = HEAP32[$db >> 2] | 0; + $1032 = $1022 - $1031 | 0; + $1033 = ($1032 | 0) / 24 | 0; + $1034 = $1033 + 1 | 0; + if (($1032 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1038 = ($1024 - $1031 | 0) / 24 | 0; + if ($1038 >>> 0 < 1073741823) { + $1040 = $1038 << 1; + $$0$i$i$i175 = $1040 >>> 0 < $1034 >>> 0 ? $1034 : $1040; + } else $$0$i$i$i175 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i175, $1033, $db + 12 | 0); + $1043 = $__v$i$i224 + 8 | 0; + $1044 = HEAP32[$1043 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1044, $35); + HEAP32[$1043 >> 2] = $1044 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($35); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 108: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($36, 48522); + $1047 = $db + 4 | 0; + $1048 = HEAP32[$1047 >> 2] | 0; + $1050 = HEAP32[$db + 8 >> 2] | 0; + if ($1048 >>> 0 < $1050 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1048, $36); + HEAP32[$1047 >> 2] = (HEAP32[$1047 >> 2] | 0) + 24; + } else { + $1057 = HEAP32[$db >> 2] | 0; + $1058 = $1048 - $1057 | 0; + $1059 = ($1058 | 0) / 24 | 0; + $1060 = $1059 + 1 | 0; + if (($1058 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1064 = ($1050 - $1057 | 0) / 24 | 0; + if ($1064 >>> 0 < 1073741823) { + $1066 = $1064 << 1; + $$0$i$i$i180 = $1066 >>> 0 < $1060 >>> 0 ? $1060 : $1066; + } else $$0$i$i$i180 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i180, $1059, $db + 12 | 0); + $1069 = $__v$i$i224 + 8 | 0; + $1070 = HEAP32[$1069 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1070, $36); + HEAP32[$1069 >> 2] = $1070 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 76: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($37, 48532); + $1073 = $db + 4 | 0; + $1074 = HEAP32[$1073 >> 2] | 0; + $1076 = HEAP32[$db + 8 >> 2] | 0; + if ($1074 >>> 0 < $1076 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1074, $37); + HEAP32[$1073 >> 2] = (HEAP32[$1073 >> 2] | 0) + 24; + } else { + $1083 = HEAP32[$db >> 2] | 0; + $1084 = $1074 - $1083 | 0; + $1085 = ($1084 | 0) / 24 | 0; + $1086 = $1085 + 1 | 0; + if (($1084 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1090 = ($1076 - $1083 | 0) / 24 | 0; + if ($1090 >>> 0 < 1073741823) { + $1092 = $1090 << 1; + $$0$i$i$i185 = $1092 >>> 0 < $1086 >>> 0 ? $1086 : $1092; + } else $$0$i$i$i185 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i185, $1085, $db + 12 | 0); + $1095 = $__v$i$i224 + 8 | 0; + $1096 = HEAP32[$1095 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1096, $37); + HEAP32[$1095 >> 2] = $1096 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($37); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 112: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($38, 48543); + $1099 = $db + 4 | 0; + $1100 = HEAP32[$1099 >> 2] | 0; + $1102 = HEAP32[$db + 8 >> 2] | 0; + if ($1100 >>> 0 < $1102 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1100, $38); + HEAP32[$1099 >> 2] = (HEAP32[$1099 >> 2] | 0) + 24; + } else { + $1109 = HEAP32[$db >> 2] | 0; + $1110 = $1100 - $1109 | 0; + $1111 = ($1110 | 0) / 24 | 0; + $1112 = $1111 + 1 | 0; + if (($1110 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1116 = ($1102 - $1109 | 0) / 24 | 0; + if ($1116 >>> 0 < 1073741823) { + $1118 = $1116 << 1; + $$0$i$i$i190 = $1118 >>> 0 < $1112 >>> 0 ? $1112 : $1118; + } else $$0$i$i$i190 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i190, $1111, $db + 12 | 0); + $1121 = $__v$i$i224 + 8 | 0; + $1122 = HEAP32[$1121 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1122, $38); + HEAP32[$1121 >> 2] = $1122 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($38); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($39, 48522); + $1125 = $db + 4 | 0; + $1126 = HEAP32[$1125 >> 2] | 0; + $1128 = HEAP32[$db + 8 >> 2] | 0; + if ($1126 >>> 0 < $1128 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1126, $39); + HEAP32[$1125 >> 2] = (HEAP32[$1125 >> 2] | 0) + 24; + } else { + $1135 = HEAP32[$db >> 2] | 0; + $1136 = $1126 - $1135 | 0; + $1137 = ($1136 | 0) / 24 | 0; + $1138 = $1137 + 1 | 0; + if (($1136 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1142 = ($1128 - $1135 | 0) / 24 | 0; + if ($1142 >>> 0 < 1073741823) { + $1144 = $1142 << 1; + $$0$i$i$i195 = $1144 >>> 0 < $1138 >>> 0 ? $1138 : $1144; + } else $$0$i$i$i195 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i195, $1137, $db + 12 | 0); + $1147 = $__v$i$i224 + 8 | 0; + $1148 = HEAP32[$1147 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1148, $39); + HEAP32[$1147 >> 2] = $1148 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($39); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 116: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($40, 48554); + $1151 = $db + 4 | 0; + $1152 = HEAP32[$1151 >> 2] | 0; + $1154 = HEAP32[$db + 8 >> 2] | 0; + if ($1152 >>> 0 < $1154 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1152, $40); + HEAP32[$1151 >> 2] = (HEAP32[$1151 >> 2] | 0) + 24; + } else { + $1161 = HEAP32[$db >> 2] | 0; + $1162 = $1152 - $1161 | 0; + $1163 = ($1162 | 0) / 24 | 0; + $1164 = $1163 + 1 | 0; + if (($1162 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1168 = ($1154 - $1161 | 0) / 24 | 0; + if ($1168 >>> 0 < 1073741823) { + $1170 = $1168 << 1; + $$0$i$i$i200 = $1170 >>> 0 < $1164 >>> 0 ? $1164 : $1170; + } else $$0$i$i$i200 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i200, $1163, $db + 12 | 0); + $1173 = $__v$i$i224 + 8 | 0; + $1174 = HEAP32[$1173 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1174, $40); + HEAP32[$1173 >> 2] = $1174 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($40); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 113: + { + if ((HEAP8[$first + 1 >> 0] | 0) != 117) { + $$0 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($41, 48565); + $1180 = $db + 4 | 0; + $1181 = HEAP32[$1180 >> 2] | 0; + $1183 = HEAP32[$db + 8 >> 2] | 0; + if ($1181 >>> 0 < $1183 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1181, $41); + HEAP32[$1180 >> 2] = (HEAP32[$1180 >> 2] | 0) + 24; + } else { + $1190 = HEAP32[$db >> 2] | 0; + $1191 = $1181 - $1190 | 0; + $1192 = ($1191 | 0) / 24 | 0; + $1193 = $1192 + 1 | 0; + if (($1191 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1197 = ($1183 - $1190 | 0) / 24 | 0; + if ($1197 >>> 0 < 1073741823) { + $1199 = $1197 << 1; + $$0$i$i$i205 = $1199 >>> 0 < $1193 >>> 0 ? $1193 : $1199; + } else $$0$i$i$i205 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i205, $1192, $db + 12 | 0); + $1202 = $__v$i$i224 + 8 | 0; + $1203 = HEAP32[$1202 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1203, $41); + HEAP32[$1202 >> 2] = $1203 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($41); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 114: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 109: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($42, 48575); + $1209 = $db + 4 | 0; + $1210 = HEAP32[$1209 >> 2] | 0; + $1212 = HEAP32[$db + 8 >> 2] | 0; + if ($1210 >>> 0 < $1212 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1210, $42); + HEAP32[$1209 >> 2] = (HEAP32[$1209 >> 2] | 0) + 24; + } else { + $1219 = HEAP32[$db >> 2] | 0; + $1220 = $1210 - $1219 | 0; + $1221 = ($1220 | 0) / 24 | 0; + $1222 = $1221 + 1 | 0; + if (($1220 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1226 = ($1212 - $1219 | 0) / 24 | 0; + if ($1226 >>> 0 < 1073741823) { + $1228 = $1226 << 1; + $$0$i$i$i210 = $1228 >>> 0 < $1222 >>> 0 ? $1222 : $1228; + } else $$0$i$i$i210 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i210, $1221, $db + 12 | 0); + $1231 = $__v$i$i224 + 8 | 0; + $1232 = HEAP32[$1231 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1232, $42); + HEAP32[$1231 >> 2] = $1232 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($42); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 77: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($43, 48585); + $1235 = $db + 4 | 0; + $1236 = HEAP32[$1235 >> 2] | 0; + $1238 = HEAP32[$db + 8 >> 2] | 0; + if ($1236 >>> 0 < $1238 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1236, $43); + HEAP32[$1235 >> 2] = (HEAP32[$1235 >> 2] | 0) + 24; + } else { + $1245 = HEAP32[$db >> 2] | 0; + $1246 = $1236 - $1245 | 0; + $1247 = ($1246 | 0) / 24 | 0; + $1248 = $1247 + 1 | 0; + if (($1246 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1252 = ($1238 - $1245 | 0) / 24 | 0; + if ($1252 >>> 0 < 1073741823) { + $1254 = $1252 << 1; + $$0$i$i$i215 = $1254 >>> 0 < $1248 >>> 0 ? $1248 : $1254; + } else $$0$i$i$i215 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i215, $1247, $db + 12 | 0); + $1257 = $__v$i$i224 + 8 | 0; + $1258 = HEAP32[$1257 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1258, $43); + HEAP32[$1257 >> 2] = $1258 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($43); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($44, 48596); + $1261 = $db + 4 | 0; + $1262 = HEAP32[$1261 >> 2] | 0; + $1264 = HEAP32[$db + 8 >> 2] | 0; + if ($1262 >>> 0 < $1264 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1262, $44); + HEAP32[$1261 >> 2] = (HEAP32[$1261 >> 2] | 0) + 24; + } else { + $1271 = HEAP32[$db >> 2] | 0; + $1272 = $1262 - $1271 | 0; + $1273 = ($1272 | 0) / 24 | 0; + $1274 = $1273 + 1 | 0; + if (($1272 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1278 = ($1264 - $1271 | 0) / 24 | 0; + if ($1278 >>> 0 < 1073741823) { + $1280 = $1278 << 1; + $$0$i$i$i220 = $1280 >>> 0 < $1274 >>> 0 ? $1274 : $1280; + } else $$0$i$i$i220 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i220, $1273, $db + 12 | 0); + $1283 = $__v$i$i224 + 8 | 0; + $1284 = HEAP32[$1283 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1284, $44); + HEAP32[$1283 >> 2] = $1284 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($44); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 83: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($45, 48607); + $1287 = $db + 4 | 0; + $1288 = HEAP32[$1287 >> 2] | 0; + $1290 = HEAP32[$db + 8 >> 2] | 0; + if ($1288 >>> 0 < $1290 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1288, $45); + HEAP32[$1287 >> 2] = (HEAP32[$1287 >> 2] | 0) + 24; + } else { + $1297 = HEAP32[$db >> 2] | 0; + $1298 = $1288 - $1297 | 0; + $1299 = ($1298 | 0) / 24 | 0; + $1300 = $1299 + 1 | 0; + if (($1298 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $1304 = ($1290 - $1297 | 0) / 24 | 0; + if ($1304 >>> 0 < 1073741823) { + $1306 = $1304 << 1; + $$0$i$i$i225 = $1306 >>> 0 < $1300 >>> 0 ? $1300 : $1306; + } else $$0$i$i$i225 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i225, $1299, $db + 12 | 0); + $1309 = $__v$i$i224 + 8 | 0; + $1310 = HEAP32[$1309 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1310, $45); + HEAP32[$1309 >> 2] = $1310 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 118: + { + if (((HEAP8[$first + 1 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { + $$0 = $first; + break L1; + } + $1316 = $first + 2 | 0; + $1317 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1316, $last, $db) | 0; + if (($1317 | 0) == ($1316 | 0)) { + $$0 = $first; + break L1; + } + $1321 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($1321 | 0)) { + $$0 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($1321 + -24 | 0, 0, 48191) | 0; + $$0 = $1317; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } while (0); else $$0 = $first; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _kpmUtilGenBWImage($image, $pixFormat, $xsize, $ysize, $procMode, $newXsize, $newYsize) { + $image = $image | 0; + $pixFormat = $pixFormat | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $procMode = $procMode | 0; + $newXsize = $newXsize | 0; + $newYsize = $newYsize | 0; + var $$0 = 0, $$0$i339 = 0, $$1$i335 = 0, $$10$i374 = 0, $$11$i370 = 0, $$2$i346 = 0, $$3$i342 = 0, $$4$i353 = 0, $$5$i349 = 0, $$6$i360 = 0, $$7$i356 = 0, $$8$i367 = 0, $$9$i363 = 0, $$pn$i445 = 0, $$pn23$i433 = 0, $$pn36$i421 = 0, $$pn49$i409 = 0, $$pn50$i397 = 0, $$pn51$i385 = 0, $1 = 0, $1024 = 0, $1025 = 0, $1027 = 0, $1030 = 0, $1033 = 0, $1034 = 0, $108 = 0, $109 = 0, $1096 = 0, $1099 = 0, $110 = 0, $1100 = 0, $111 = 0, $113 = 0, $116 = 0, $1162 = 0, $1165 = 0, $1166 = 0, $119 = 0, $121 = 0, $122 = 0, $1228 = 0, $1231 = 0, $1232 = 0, $1235 = 0, $1238 = 0, $1239 = 0, $1267 = 0, $1297 = 0, $1325 = 0, $1326 = 0, $1328 = 0, $1331 = 0, $1334 = 0, $1335 = 0, $141 = 0, $144 = 0, $1460 = 0, $1463 = 0, $1464 = 0, $148 = 0, $156 = 0, $1589 = 0, $1592 = 0, $1593 = 0, $160 = 0, $166 = 0, $169 = 0, $1719 = 0, $1722 = 0, $1723 = 0, $1726 = 0, $1729 = 0, $173 = 0, $1730 = 0, $1781 = 0, $1835 = 0, $1886 = 0, $1887 = 0, $1889 = 0, $1892 = 0, $1895 = 0, $1896 = 0, $209 = 0, $2108 = 0, $2111 = 0, $2112 = 0, $212 = 0, $216 = 0, $2324 = 0, $2327 = 0, $2328 = 0, $2542 = 0, $2545 = 0, $2546 = 0, $2549 = 0, $2552 = 0, $2553 = 0, $258 = 0, $261 = 0, $2635 = 0, $265 = 0, $2721 = 0, $29 = 0, $31 = 0, $332 = 0, $335 = 0, $337 = 0, $338 = 0, $357 = 0, $360 = 0, $364 = 0, $372 = 0, $376 = 0, $382 = 0, $385 = 0, $389 = 0, $425 = 0, $428 = 0, $432 = 0, $470 = 0, $473 = 0, $477 = 0, $5 = 0, $53 = 0, $541 = 0, $544 = 0, $546 = 0, $547 = 0, $55 = 0, $567 = 0, $570 = 0, $574 = 0, $580 = 0, $583 = 0, $587 = 0, $593 = 0, $596 = 0, $600 = 0, $637 = 0, $640 = 0, $644 = 0, $686 = 0, $689 = 0, $693 = 0, $7 = 0, $758 = 0, $76 = 0, $761 = 0, $763 = 0, $764 = 0, $767 = 0, $769 = 0, $772 = 0, $774 = 0, $775 = 0, $78 = 0, $786 = 0, $793 = 0, $80 = 0, $809 = 0, $82 = 0, $826 = 0, $85 = 0, $857 = 0, $869 = 0, $873 = 0, $877 = 0, $894 = 0, $911 = 0, $942 = 0, $953 = 0, $960 = 0, $976 = 0, $993 = 0, $i$0$i126270 = 0, $i$0$i21451 = 0, $i$0$i336 = 0, $i$0$i3381 = 0, $i$0$i66512 = 0, $i$1$i136279 = 0, $i$1$i29461 = 0, $i$1$i343 = 0, $i$1$i5393 = 0, $i$1$i76523 = 0, $i$2$i146291 = 0, $i$2$i350 = 0, $i$2$i36471 = 0, $i$2$i7405 = 0, $i$2$i86534 = 0, $i$3$i100545 = 0, $i$3$i160303 = 0, $i$3$i357 = 0, $i$3$i44481 = 0, $i$3$i9417 = 0, $i$4$i108556 = 0, $i$4$i11429 = 0, $i$4$i168315 = 0, $i$4$i364 = 0, $i$4$i50491 = 0, $i$5$i116567 = 0, $i$5$i13441 = 0, $i$5$i176327 = 0, $i$5$i371 = 0, $i$5$i56501 = 0, $j$0$i121272 = 0, $j$0$i17456 = 0, $j$0$i2386 = 0, $j$0$i340 = 0, $j$0$i61517 = 0, $j$1$i131284 = 0, $j$1$i25466 = 0, $j$1$i347 = 0, $j$1$i4398 = 0, $j$1$i71528 = 0, $j$2$i141296 = 0, $j$2$i32476 = 0, $j$2$i354 = 0, $j$2$i6410 = 0, $j$2$i81539 = 0, $j$3$i155308 = 0, $j$3$i361 = 0, $j$3$i40486 = 0, $j$3$i8422 = 0, $j$3$i95550 = 0, $j$4$i103561 = 0, $j$4$i10434 = 0, $j$4$i163320 = 0, $j$4$i368 = 0, $j$4$i46496 = 0, $j$5$i111572 = 0, $j$5$i12446 = 0, $j$5$i171332 = 0, $j$5$i375 = 0, $j$5$i52506 = 0, $p$0$i120271 = 0, $p$0$i16455 = 0, $p$0$i338 = 0, $p$0$i60516 = 0, $p$1$i125269 = 0, $p$1$i20450 = 0, $p$1$i334 = 0, $p$1$i65511 = 0, $p$10$i110571 = 0, $p$10$i170331 = 0, $p$10$i373 = 0, $p$10$i51505 = 0, $p$11$i115566 = 0, $p$11$i175326 = 0, $p$11$i369 = 0, $p$11$i55500 = 0, $p$2$i130283 = 0, $p$2$i24465 = 0, $p$2$i345 = 0, $p$2$i70527 = 0, $p$3$i135278 = 0, $p$3$i28460 = 0, $p$3$i341 = 0, $p$3$i75522 = 0, $p$4$i140295 = 0, $p$4$i31475 = 0, $p$4$i352 = 0, $p$4$i80538 = 0, $p$5$i145290 = 0, $p$5$i348 = 0, $p$5$i35470 = 0, $p$5$i85533 = 0, $p$6$i154307 = 0, $p$6$i359 = 0, $p$6$i39485 = 0, $p$6$i94549 = 0, $p$7$i159302 = 0, $p$7$i355 = 0, $p$7$i43480 = 0, $p$7$i99544 = 0, $p$8$i102560 = 0, $p$8$i162319 = 0, $p$8$i366 = 0, $p$8$i45495 = 0, $p$9$i107555 = 0, $p$9$i167314 = 0, $p$9$i362 = 0, $p$9$i49490 = 0, $p1$0$i124268 = 0, $p1$0$i19449 = 0, $p1$0$i376 = 0, $p1$0$i64510 = 0, $p1$1$i134277 = 0, $p1$1$i27459 = 0, $p1$1$i388 = 0, $p1$1$i74521 = 0, $p1$2$i144289 = 0, $p1$2$i34469 = 0, $p1$2$i400 = 0, $p1$2$i84532 = 0, $p1$3$i158301 = 0, $p1$3$i412 = 0, $p1$3$i42479 = 0, $p1$3$i98543 = 0, $p1$4$i106554 = 0, $p1$4$i166313 = 0, $p1$4$i424 = 0, $p1$4$i48489 = 0, $p1$5$i114565 = 0, $p1$5$i174325 = 0, $p1$5$i436 = 0, $p1$5$i54499 = 0, $p2$0$i122265 = 0, $p2$0$i18448 = 0, $p2$0$i377 = 0, $p2$0$i62508 = 0, $p2$1$i132274 = 0, $p2$1$i26458 = 0, $p2$1$i389 = 0, $p2$1$i72519 = 0, $p2$2$i142286 = 0, $p2$2$i33468 = 0, $p2$2$i401 = 0, $p2$2$i82530 = 0, $p2$3$i156298 = 0, $p2$3$i413 = 0, $p2$3$i41478 = 0, $p2$3$i96541 = 0, $p2$4$i104552 = 0, $p2$4$i164310 = 0, $p2$4$i425 = 0, $p2$4$i47488 = 0, $p2$5$i112563 = 0, $p2$5$i172322 = 0, $p2$5$i437 = 0, $p2$5$i53498 = 0, $p3$0$i123266 = 0, $p3$0$i378 = 0, $p3$0$i63509 = 0, $p3$1$i133275 = 0, $p3$1$i390 = 0, $p3$1$i73520 = 0, $p3$2$i143287 = 0, $p3$2$i402 = 0, $p3$2$i83531 = 0, $p3$3$i157299 = 0, $p3$3$i414 = 0, $p3$3$i97542 = 0, $p3$4$i105553 = 0, $p3$4$i165311 = 0, $p3$4$i426 = 0, $p3$5$i113564 = 0, $p3$5$i173323 = 0, $p3$5$i438 = 0, $p4$0$i267 = 0, $p4$1$i276 = 0, $p4$2$i288 = 0, $p4$3$i300 = 0, $p4$4$i312 = 0, $p4$5$i324 = 0, $q1$1$i380 = 0, $q1$11$i440 = 0, $q1$3$i392 = 0, $q1$5$i404 = 0, $q1$7$i416 = 0, $q1$9$i428 = 0, $q2$1$i379 = 0, $q2$11$i439 = 0, $q2$3$i391 = 0, $q2$5$i403 = 0, $q2$7$i415 = 0, $q2$9$i427 = 0, $smax$i = 0, $smax$i118 = 0, $smax$i14 = 0, $smax$i58 = 0, $smax22$i = 0, $smax22$i128 = 0, $smax22$i68 = 0, $smax24$i = 0, $smax24$i138 = 0, $smax24$i78 = 0, $smax26$i = 0, $smax26$i152 = 0, $smax26$i92 = 0, $smax28$i = 0, $smax28$i150 = 0, $smax28$i90 = 0, $smax29$i = 0, $smax30$i = 0, $smax30$i148 = 0, $smax30$i88 = 0, $smax32$i = 0, $smax35$i = 0, $smax38$i = 0, $smax41$i = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + L1 : do switch ($procMode | 0) { + case 1: + { + HEAP32[$newXsize >> 2] = $xsize; + HEAP32[$newYsize >> 2] = $ysize; + $1 = _malloc(Math_imul($ysize, $xsize) | 0) | 0; + if (!$1) { + _arLog(3, 21359, sp); + _exit(1); + } + if ($pixFormat >>> 0 < 2) { + $smax$i = ($xsize | 0) > 0 ? $xsize : 0; + $5 = $smax$i * 3 | 0; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $7 = ($xsize | 0) > 0; + $$0$i339 = $image; + $j$0$i340 = 0; + $p$0$i338 = $1; + while (1) { + if ($7) { + $$1$i335 = $$0$i339; + $i$0$i336 = 0; + $p$1$i334 = $p$0$i338; + while (1) { + HEAP8[$p$1$i334 >> 0] = (((HEAPU8[$$1$i335 + 1 >> 0] | 0) + (HEAPU8[$$1$i335 >> 0] | 0) + (HEAPU8[$$1$i335 + 2 >> 0] | 0) | 0) >>> 0) / 3 | 0; + $i$0$i336 = $i$0$i336 + 1 | 0; + if (($i$0$i336 | 0) >= ($xsize | 0)) break; else { + $$1$i335 = $$1$i335 + 3 | 0; + $p$1$i334 = $p$1$i334 + 1 | 0; + } + } + } + $j$0$i340 = $j$0$i340 + 1 | 0; + if (($j$0$i340 | 0) >= ($ysize | 0)) { + $$0 = $1; + break L1; + } else { + $$0$i339 = $$0$i339 + $5 | 0; + $p$0$i338 = $p$0$i338 + $smax$i | 0; + } + } + } + if (($pixFormat & -2 | 0) == 2) { + $smax29$i = ($xsize | 0) > 0 ? $xsize : 0; + $29 = $smax29$i << 2; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $31 = ($xsize | 0) > 0; + $$2$i346 = $image; + $j$1$i347 = 0; + $p$2$i345 = $1; + while (1) { + if ($31) { + $$3$i342 = $$2$i346; + $i$1$i343 = 0; + $p$3$i341 = $p$2$i345; + while (1) { + HEAP8[$p$3$i341 >> 0] = (((HEAPU8[$$3$i342 + 1 >> 0] | 0) + (HEAPU8[$$3$i342 >> 0] | 0) + (HEAPU8[$$3$i342 + 2 >> 0] | 0) | 0) >>> 0) / 3 | 0; + $i$1$i343 = $i$1$i343 + 1 | 0; + if (($i$1$i343 | 0) >= ($xsize | 0)) break; else { + $$3$i342 = $$3$i342 + 4 | 0; + $p$3$i341 = $p$3$i341 + 1 | 0; + } + } + } + $j$1$i347 = $j$1$i347 + 1 | 0; + if (($j$1$i347 | 0) >= ($ysize | 0)) { + $$0 = $1; + break L1; + } else { + $$2$i346 = $$2$i346 + $29 | 0; + $p$2$i345 = $p$2$i345 + $smax29$i | 0; + } + } + } + if (($pixFormat & -3 | 0) == 4) { + $smax32$i = ($xsize | 0) > 0 ? $xsize : 0; + $53 = $smax32$i << 2; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $55 = ($xsize | 0) > 0; + $$4$i353 = $image; + $j$2$i354 = 0; + $p$4$i352 = $1; + while (1) { + if ($55) { + $$5$i349 = $$4$i353; + $i$2$i350 = 0; + $p$5$i348 = $p$4$i352; + while (1) { + HEAP8[$p$5$i348 >> 0] = (((HEAPU8[$$5$i349 + 2 >> 0] | 0) + (HEAPU8[$$5$i349 + 1 >> 0] | 0) + (HEAPU8[$$5$i349 + 3 >> 0] | 0) | 0) >>> 0) / 3 | 0; + $i$2$i350 = $i$2$i350 + 1 | 0; + if (($i$2$i350 | 0) >= ($xsize | 0)) break; else { + $$5$i349 = $$5$i349 + 4 | 0; + $p$5$i348 = $p$5$i348 + 1 | 0; + } + } + } + $j$2$i354 = $j$2$i354 + 1 | 0; + if (($j$2$i354 | 0) >= ($ysize | 0)) { + $$0 = $1; + break L1; + } else { + $$4$i353 = $$4$i353 + $53 | 0; + $p$4$i352 = $p$4$i352 + $smax32$i | 0; + } + } + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $smax35$i = ($xsize | 0) > 0 ? $xsize : 0; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $85 = ($xsize | 0) > 0; + $$6$i360 = $image; + $j$3$i361 = 0; + $p$6$i359 = $1; + while (1) { + if ($85) { + $$7$i356 = $$6$i360; + $i$3$i357 = 0; + $p$7$i355 = $p$6$i359; + while (1) { + HEAP8[$p$7$i355 >> 0] = HEAP8[$$7$i356 >> 0] | 0; + $i$3$i357 = $i$3$i357 + 1 | 0; + if (($i$3$i357 | 0) >= ($xsize | 0)) break; else { + $$7$i356 = $$7$i356 + 1 | 0; + $p$7$i355 = $p$7$i355 + 1 | 0; + } + } + } + $j$3$i361 = $j$3$i361 + 1 | 0; + if (($j$3$i361 | 0) >= ($ysize | 0)) { + $$0 = $1; + break; + } else { + $$6$i360 = $$6$i360 + $smax35$i | 0; + $p$6$i359 = $p$6$i359 + $smax35$i | 0; + } + } + break; + } + case 7: + { + $smax38$i = ($xsize | 0) > 0 ? $xsize : 0; + $80 = $smax38$i << 1; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $82 = ($xsize | 0) > 0; + $$8$i367 = $image; + $j$4$i368 = 0; + $p$8$i366 = $1; + while (1) { + if ($82) { + $$9$i363 = $$8$i367; + $i$4$i364 = 0; + $p$9$i362 = $p$8$i366; + while (1) { + HEAP8[$p$9$i362 >> 0] = HEAP8[$$9$i363 + 1 >> 0] | 0; + $i$4$i364 = $i$4$i364 + 1 | 0; + if (($i$4$i364 | 0) >= ($xsize | 0)) break; else { + $$9$i363 = $$9$i363 + 2 | 0; + $p$9$i362 = $p$9$i362 + 1 | 0; + } + } + } + $j$4$i368 = $j$4$i368 + 1 | 0; + if (($j$4$i368 | 0) >= ($ysize | 0)) { + $$0 = $1; + break; + } else { + $$8$i367 = $$8$i367 + $80 | 0; + $p$8$i366 = $p$8$i366 + $smax38$i | 0; + } + } + break; + } + case 8: + { + $smax41$i = ($xsize | 0) > 0 ? $xsize : 0; + $76 = $smax41$i << 1; + if (($ysize | 0) <= 0) { + $$0 = $1; + break L1; + } + $78 = ($xsize | 0) > 0; + $$10$i374 = $image; + $j$5$i375 = 0; + $p$10$i373 = $1; + while (1) { + if ($78) { + $$11$i370 = $$10$i374; + $i$5$i371 = 0; + $p$11$i369 = $p$10$i373; + while (1) { + HEAP8[$p$11$i369 >> 0] = HEAP8[$$11$i370 >> 0] | 0; + $i$5$i371 = $i$5$i371 + 1 | 0; + if (($i$5$i371 | 0) >= ($xsize | 0)) break; else { + $$11$i370 = $$11$i370 + 2 | 0; + $p$11$i369 = $p$11$i369 + 1 | 0; + } + } + } + $j$5$i375 = $j$5$i375 + 1 | 0; + if (($j$5$i375 | 0) >= ($ysize | 0)) { + $$0 = $1; + break; + } else { + $$10$i374 = $$10$i374 + $76 | 0; + $p$10$i373 = $p$10$i373 + $smax41$i | 0; + } + } + break; + } + default: + { + $$0 = $1; + break L1; + } + } + break; + } + case 5: + { + $108 = ($xsize | 0) / 3 | 0; + $109 = $108 << 1; + HEAP32[$newXsize >> 2] = $109; + $110 = ($ysize | 0) / 3 | 0; + $111 = $110 << 1; + HEAP32[$newYsize >> 2] = $111; + $113 = _malloc(Math_imul($111, $109) | 0) | 0; + if (!$113) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + if ($pixFormat >>> 0 < 2) { + $116 = $xsize * 3 | 0; + $119 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $121 = ($xsize | 0) > 2; + $$pn51$i385 = $113; + $j$0$i2386 = 0; + while (1) { + $122 = $j$0$i2386 * 3 | 0; + if ($121) { + $i$0$i3381 = 0; + $p1$0$i376 = $image + (Math_imul($122, $116) | 0) | 0; + $p2$0$i377 = $image + (Math_imul($122 + 1 | 0, $116) | 0) | 0; + $p3$0$i378 = $image + (Math_imul($122 + 2 | 0, $116) | 0) | 0; + $q1$1$i380 = $$pn51$i385; + $q2$1$i379 = $$pn51$i385 + $109 | 0; + while (1) { + $141 = $p1$0$i376 + 3 | 0; + $144 = $p1$0$i376 + 4 | 0; + $148 = $p1$0$i376 + 5 | 0; + $156 = $p2$0$i377 + 1 | 0; + $160 = $p2$0$i377 + 2 | 0; + $166 = $p2$0$i377 + 3 | 0; + $169 = $p2$0$i377 + 4 | 0; + $173 = $p2$0$i377 + 5 | 0; + HEAP8[$q1$1$i380 >> 0] = ((HEAPU8[$169 >> 0] | 0) + (HEAPU8[$166 >> 0] | 0) + (HEAPU8[$173 >> 0] | 0) + ((HEAPU8[$p1$0$i376 + 1 >> 0] | 0) + (HEAPU8[$p1$0$i376 >> 0] | 0) + (HEAPU8[$p1$0$i376 + 2 >> 0] | 0) + (((HEAPU8[$144 >> 0] | 0) + (HEAPU8[$141 >> 0] | 0) + (HEAPU8[$148 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$156 >> 0] | 0) + (HEAPU8[$p2$0$i377 >> 0] | 0) + (HEAPU8[$160 >> 0] | 0) | 0) >>> 1) << 2) & -4 | 0) / 27 | 0; + $209 = $p3$0$i378 + 3 | 0; + $212 = $p3$0$i378 + 4 | 0; + $216 = $p3$0$i378 + 5 | 0; + HEAP8[$q2$1$i379 >> 0] = ((HEAPU8[$p3$0$i378 >> 0] | 0) + (((HEAPU8[$156 >> 0] | 0) + (HEAPU8[$p2$0$i377 >> 0] | 0) + (HEAPU8[$160 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$169 >> 0] | 0) + (HEAPU8[$166 >> 0] | 0) + (HEAPU8[$173 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$0$i378 + 1 >> 0] | 0) + (HEAPU8[$p3$0$i378 + 2 >> 0] | 0) + (((HEAPU8[$212 >> 0] | 0) + (HEAPU8[$209 >> 0] | 0) + (HEAPU8[$216 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + $258 = $p2$0$i377 + 6 | 0; + $261 = $p2$0$i377 + 7 | 0; + $265 = $p2$0$i377 + 8 | 0; + HEAP8[$q1$1$i380 + 1 >> 0] = ((HEAPU8[$p1$0$i376 + 7 >> 0] | 0) + (HEAPU8[$p1$0$i376 + 6 >> 0] | 0) + (((HEAPU8[$144 >> 0] | 0) + (HEAPU8[$141 >> 0] | 0) + (HEAPU8[$148 >> 0] | 0) | 0) >>> 1) + (HEAPU8[$p1$0$i376 + 8 >> 0] | 0) + (((HEAPU8[$169 >> 0] | 0) + (HEAPU8[$166 >> 0] | 0) + (HEAPU8[$173 >> 0] | 0) | 0) >>> 2) + (((HEAPU8[$261 >> 0] | 0) + (HEAPU8[$258 >> 0] | 0) + (HEAPU8[$265 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + HEAP8[$q2$1$i379 + 1 >> 0] = ((((HEAPU8[$261 >> 0] | 0) + (HEAPU8[$258 >> 0] | 0) + (HEAPU8[$265 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$169 >> 0] | 0) + (HEAPU8[$166 >> 0] | 0) + (HEAPU8[$173 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$0$i378 + 6 >> 0] | 0) + (((HEAPU8[$212 >> 0] | 0) + (HEAPU8[$209 >> 0] | 0) + (HEAPU8[$216 >> 0] | 0) | 0) >>> 1) + (HEAPU8[$p3$0$i378 + 7 >> 0] | 0) + (HEAPU8[$p3$0$i378 + 8 >> 0] | 0) << 2 | 0) / 27 | 0; + $i$0$i3381 = $i$0$i3381 + 1 | 0; + if (($i$0$i3381 | 0) >= ($108 | 0)) break; else { + $p1$0$i376 = $p1$0$i376 + 9 | 0; + $p2$0$i377 = $p2$0$i377 + 9 | 0; + $p3$0$i378 = $p3$0$i378 + 9 | 0; + $q1$1$i380 = $q1$1$i380 + 2 | 0; + $q2$1$i379 = $q2$1$i379 + 2 | 0; + } + } + } + $j$0$i2386 = $j$0$i2386 + 1 | 0; + if (($j$0$i2386 | 0) >= ($110 | 0)) { + $$0 = $113; + break L1; + } else $$pn51$i385 = $$pn51$i385 + $119 | 0; + } + } + if (($pixFormat & -2 | 0) == 2) { + $332 = $xsize << 2; + $335 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $337 = ($xsize | 0) > 2; + $$pn50$i397 = $113; + $j$1$i4398 = 0; + while (1) { + $338 = $j$1$i4398 * 3 | 0; + if ($337) { + $i$1$i5393 = 0; + $p1$1$i388 = $image + (Math_imul($338, $332) | 0) | 0; + $p2$1$i389 = $image + (Math_imul($338 + 1 | 0, $332) | 0) | 0; + $p3$1$i390 = $image + (Math_imul($338 + 2 | 0, $332) | 0) | 0; + $q1$3$i392 = $$pn50$i397; + $q2$3$i391 = $$pn50$i397 + $109 | 0; + while (1) { + $357 = $p1$1$i388 + 4 | 0; + $360 = $p1$1$i388 + 5 | 0; + $364 = $p1$1$i388 + 6 | 0; + $372 = $p2$1$i389 + 1 | 0; + $376 = $p2$1$i389 + 2 | 0; + $382 = $p2$1$i389 + 4 | 0; + $385 = $p2$1$i389 + 5 | 0; + $389 = $p2$1$i389 + 6 | 0; + HEAP8[$q1$3$i392 >> 0] = ((HEAPU8[$385 >> 0] | 0) + (HEAPU8[$382 >> 0] | 0) + (HEAPU8[$389 >> 0] | 0) + ((HEAPU8[$p1$1$i388 + 1 >> 0] | 0) + (HEAPU8[$p1$1$i388 >> 0] | 0) + (HEAPU8[$p1$1$i388 + 2 >> 0] | 0) + (((HEAPU8[$360 >> 0] | 0) + (HEAPU8[$357 >> 0] | 0) + (HEAPU8[$364 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$372 >> 0] | 0) + (HEAPU8[$p2$1$i389 >> 0] | 0) + (HEAPU8[$376 >> 0] | 0) | 0) >>> 1) << 2) & -4 | 0) / 27 | 0; + $425 = $p3$1$i390 + 4 | 0; + $428 = $p3$1$i390 + 5 | 0; + $432 = $p3$1$i390 + 6 | 0; + HEAP8[$q2$3$i391 >> 0] = ((HEAPU8[$p3$1$i390 >> 0] | 0) + (((HEAPU8[$372 >> 0] | 0) + (HEAPU8[$p2$1$i389 >> 0] | 0) + (HEAPU8[$376 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$385 >> 0] | 0) + (HEAPU8[$382 >> 0] | 0) + (HEAPU8[$389 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$1$i390 + 1 >> 0] | 0) + (HEAPU8[$p3$1$i390 + 2 >> 0] | 0) + (((HEAPU8[$428 >> 0] | 0) + (HEAPU8[$425 >> 0] | 0) + (HEAPU8[$432 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + $470 = $p2$1$i389 + 8 | 0; + $473 = $p2$1$i389 + 9 | 0; + $477 = $p2$1$i389 + 10 | 0; + HEAP8[$q1$3$i392 + 1 >> 0] = ((((HEAPU8[$360 >> 0] | 0) + (HEAPU8[$357 >> 0] | 0) + (HEAPU8[$364 >> 0] | 0) | 0) >>> 1) + ((HEAPU8[$p1$1$i388 + 8 >> 0] | 0) * 3 | 0) + (((HEAPU8[$385 >> 0] | 0) + (HEAPU8[$382 >> 0] | 0) + (HEAPU8[$389 >> 0] | 0) | 0) >>> 2) + (((HEAPU8[$473 >> 0] | 0) + (HEAPU8[$470 >> 0] | 0) + (HEAPU8[$477 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + HEAP8[$q2$3$i391 + 1 >> 0] = ((((HEAPU8[$473 >> 0] | 0) + (HEAPU8[$470 >> 0] | 0) + (HEAPU8[$477 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$385 >> 0] | 0) + (HEAPU8[$382 >> 0] | 0) + (HEAPU8[$389 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$1$i390 + 8 >> 0] | 0) + (((HEAPU8[$428 >> 0] | 0) + (HEAPU8[$425 >> 0] | 0) + (HEAPU8[$432 >> 0] | 0) | 0) >>> 1) + (HEAPU8[$p3$1$i390 + 9 >> 0] | 0) + (HEAPU8[$p3$1$i390 + 10 >> 0] | 0) << 2 | 0) / 27 | 0; + $i$1$i5393 = $i$1$i5393 + 1 | 0; + if (($i$1$i5393 | 0) >= ($108 | 0)) break; else { + $p1$1$i388 = $p1$1$i388 + 12 | 0; + $p2$1$i389 = $p2$1$i389 + 12 | 0; + $p3$1$i390 = $p3$1$i390 + 12 | 0; + $q1$3$i392 = $q1$3$i392 + 2 | 0; + $q2$3$i391 = $q2$3$i391 + 2 | 0; + } + } + } + $j$1$i4398 = $j$1$i4398 + 1 | 0; + if (($j$1$i4398 | 0) >= ($110 | 0)) { + $$0 = $113; + break L1; + } else $$pn50$i397 = $$pn50$i397 + $335 | 0; + } + } + if (($pixFormat & -3 | 0) == 4) { + $541 = $xsize << 2; + $544 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $546 = ($xsize | 0) > 2; + $$pn49$i409 = $113; + $j$2$i6410 = 0; + while (1) { + $547 = $j$2$i6410 * 3 | 0; + if ($546) { + $i$2$i7405 = 0; + $p1$2$i400 = $image + (Math_imul($547, $541) | 0) | 0; + $p2$2$i401 = $image + (Math_imul($547 + 1 | 0, $541) | 0) | 0; + $p3$2$i402 = $image + (Math_imul($547 + 2 | 0, $541) | 0) | 0; + $q1$5$i404 = $$pn49$i409; + $q2$5$i403 = $$pn49$i409 + $109 | 0; + while (1) { + $567 = $p1$2$i400 + 5 | 0; + $570 = $p1$2$i400 + 6 | 0; + $574 = $p1$2$i400 + 7 | 0; + $580 = $p2$2$i401 + 1 | 0; + $583 = $p2$2$i401 + 2 | 0; + $587 = $p2$2$i401 + 3 | 0; + $593 = $p2$2$i401 + 5 | 0; + $596 = $p2$2$i401 + 6 | 0; + $600 = $p2$2$i401 + 7 | 0; + HEAP8[$q1$5$i404 >> 0] = ((HEAPU8[$596 >> 0] | 0) + (HEAPU8[$593 >> 0] | 0) + (HEAPU8[$600 >> 0] | 0) + ((HEAPU8[$p1$2$i400 + 2 >> 0] | 0) + (HEAPU8[$p1$2$i400 + 1 >> 0] | 0) + (HEAPU8[$p1$2$i400 + 3 >> 0] | 0) + (((HEAPU8[$570 >> 0] | 0) + (HEAPU8[$567 >> 0] | 0) + (HEAPU8[$574 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$583 >> 0] | 0) + (HEAPU8[$580 >> 0] | 0) + (HEAPU8[$587 >> 0] | 0) | 0) >>> 1) << 2) & -4 | 0) / 27 | 0; + $637 = $p3$2$i402 + 5 | 0; + $640 = $p3$2$i402 + 6 | 0; + $644 = $p3$2$i402 + 7 | 0; + HEAP8[$q2$5$i403 >> 0] = ((HEAPU8[$p3$2$i402 + 1 >> 0] | 0) + (((HEAPU8[$583 >> 0] | 0) + (HEAPU8[$580 >> 0] | 0) + (HEAPU8[$587 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$596 >> 0] | 0) + (HEAPU8[$593 >> 0] | 0) + (HEAPU8[$600 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$2$i402 + 2 >> 0] | 0) + (HEAPU8[$p3$2$i402 + 3 >> 0] | 0) + (((HEAPU8[$640 >> 0] | 0) + (HEAPU8[$637 >> 0] | 0) + (HEAPU8[$644 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + $686 = $p2$2$i401 + 9 | 0; + $689 = $p2$2$i401 + 10 | 0; + $693 = $p2$2$i401 + 11 | 0; + HEAP8[$q1$5$i404 + 1 >> 0] = ((HEAPU8[$p1$2$i400 + 10 >> 0] | 0) + (HEAPU8[$p1$2$i400 + 9 >> 0] | 0) + (((HEAPU8[$570 >> 0] | 0) + (HEAPU8[$567 >> 0] | 0) + (HEAPU8[$574 >> 0] | 0) | 0) >>> 1) + (HEAPU8[$p1$2$i400 + 11 >> 0] | 0) + (((HEAPU8[$596 >> 0] | 0) + (HEAPU8[$593 >> 0] | 0) + (HEAPU8[$600 >> 0] | 0) | 0) >>> 2) + (((HEAPU8[$689 >> 0] | 0) + (HEAPU8[$686 >> 0] | 0) + (HEAPU8[$693 >> 0] | 0) | 0) >>> 1) << 2 | 0) / 27 | 0; + HEAP8[$q2$5$i403 + 1 >> 0] = ((((HEAPU8[$689 >> 0] | 0) + (HEAPU8[$686 >> 0] | 0) + (HEAPU8[$693 >> 0] | 0) | 0) >>> 1) + (((HEAPU8[$596 >> 0] | 0) + (HEAPU8[$593 >> 0] | 0) + (HEAPU8[$600 >> 0] | 0) | 0) >>> 2) + (HEAPU8[$p3$2$i402 + 9 >> 0] | 0) + (((HEAPU8[$640 >> 0] | 0) + (HEAPU8[$637 >> 0] | 0) + (HEAPU8[$644 >> 0] | 0) | 0) >>> 1) + (HEAPU8[$p3$2$i402 + 10 >> 0] | 0) + (HEAPU8[$p3$2$i402 + 11 >> 0] | 0) << 2 | 0) / 27 | 0; + $i$2$i7405 = $i$2$i7405 + 1 | 0; + if (($i$2$i7405 | 0) >= ($108 | 0)) break; else { + $p1$2$i400 = $p1$2$i400 + 12 | 0; + $p2$2$i401 = $p2$2$i401 + 12 | 0; + $p3$2$i402 = $p3$2$i402 + 12 | 0; + $q1$5$i404 = $q1$5$i404 + 2 | 0; + $q2$5$i403 = $q2$5$i403 + 2 | 0; + } + } + } + $j$2$i6410 = $j$2$i6410 + 1 | 0; + if (($j$2$i6410 | 0) >= ($110 | 0)) { + $$0 = $113; + break L1; + } else $$pn49$i409 = $$pn49$i409 + $544 | 0; + } + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $772 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $774 = ($xsize | 0) > 2; + $$pn36$i421 = $113; + $j$3$i8422 = 0; + while (1) { + $775 = $j$3$i8422 * 3 | 0; + if ($774) { + $i$3$i9417 = 0; + $p1$3$i412 = $image + (Math_imul($775, $xsize) | 0) | 0; + $p2$3$i413 = $image + (Math_imul($775 + 1 | 0, $xsize) | 0) | 0; + $p3$3$i414 = $image + (Math_imul($775 + 2 | 0, $xsize) | 0) | 0; + $q1$7$i416 = $$pn36$i421; + $q2$7$i415 = $$pn36$i421 + $109 | 0; + while (1) { + $786 = $p1$3$i412 + 1 | 0; + $793 = $p2$3$i413 + 1 | 0; + HEAP8[$q1$7$i416 >> 0] = (((HEAPU8[$786 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$3$i412 >> 0] | 0) + ((HEAPU8[$p2$3$i413 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$793 >> 0] | 0) >>> 2 & 255) << 2 >>> 0) / 9 | 0; + $809 = $p3$3$i414 + 1 | 0; + HEAP8[$q2$7$i415 >> 0] = (((HEAPU8[$793 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$p2$3$i413 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$3$i414 >> 0] | 0) + ((HEAPU8[$809 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + $826 = $p2$3$i413 + 2 | 0; + HEAP8[$q1$7$i416 + 1 >> 0] = (((HEAPU8[$786 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$3$i412 + 2 >> 0] | 0) + ((HEAPU8[$793 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$826 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + HEAP8[$q2$7$i415 + 1 >> 0] = (((HEAPU8[$826 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$793 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$809 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$3$i414 + 2 >> 0] | 0) << 2 >>> 0) / 9 | 0; + $i$3$i9417 = $i$3$i9417 + 1 | 0; + if (($i$3$i9417 | 0) >= ($108 | 0)) break; else { + $p1$3$i412 = $p1$3$i412 + 3 | 0; + $p2$3$i413 = $p2$3$i413 + 3 | 0; + $p3$3$i414 = $p3$3$i414 + 3 | 0; + $q1$7$i416 = $q1$7$i416 + 2 | 0; + $q2$7$i415 = $q2$7$i415 + 2 | 0; + } + } + } + $j$3$i8422 = $j$3$i8422 + 1 | 0; + if (($j$3$i8422 | 0) >= ($110 | 0)) { + $$0 = $113; + break; + } else $$pn36$i421 = $$pn36$i421 + $772 | 0; + } + break; + } + case 7: + { + $764 = $xsize << 1; + $767 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $769 = ($xsize | 0) > 2; + $$pn23$i433 = $113; + $j$4$i10434 = 0; + while (1) { + $857 = $j$4$i10434 * 3 | 0; + if ($769) { + $i$4$i11429 = 0; + $p1$4$i424 = $image + (Math_imul($857, $764) | 0) | 0; + $p2$4$i425 = $image + (Math_imul($857 + 1 | 0, $764) | 0) | 0; + $p3$4$i426 = $image + (Math_imul($857 + 2 | 0, $764) | 0) | 0; + $q1$9$i428 = $$pn23$i433; + $q2$9$i427 = $$pn23$i433 + $109 | 0; + while (1) { + $869 = $p1$4$i424 + 3 | 0; + $873 = $p2$4$i425 + 1 | 0; + $877 = $p2$4$i425 + 3 | 0; + HEAP8[$q1$9$i428 >> 0] = (((HEAPU8[$869 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$4$i424 + 1 >> 0] | 0) + ((HEAPU8[$873 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$877 >> 0] | 0) >>> 2 & 255) << 2 >>> 0) / 9 | 0; + $894 = $p3$4$i426 + 3 | 0; + HEAP8[$q2$9$i427 >> 0] = (((HEAPU8[$877 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$873 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$4$i426 + 1 >> 0] | 0) + ((HEAPU8[$894 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + $911 = $p2$4$i425 + 5 | 0; + HEAP8[$q1$9$i428 + 1 >> 0] = (((HEAPU8[$869 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$4$i424 + 5 >> 0] | 0) + ((HEAPU8[$877 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$911 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + HEAP8[$q2$9$i427 + 1 >> 0] = (((HEAPU8[$911 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$877 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$894 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$4$i426 + 5 >> 0] | 0) << 2 >>> 0) / 9 | 0; + $i$4$i11429 = $i$4$i11429 + 1 | 0; + if (($i$4$i11429 | 0) >= ($108 | 0)) break; else { + $p1$4$i424 = $p1$4$i424 + 6 | 0; + $p2$4$i425 = $p2$4$i425 + 6 | 0; + $p3$4$i426 = $p3$4$i426 + 6 | 0; + $q1$9$i428 = $q1$9$i428 + 2 | 0; + $q2$9$i427 = $q2$9$i427 + 2 | 0; + } + } + } + $j$4$i10434 = $j$4$i10434 + 1 | 0; + if (($j$4$i10434 | 0) >= ($110 | 0)) { + $$0 = $113; + break; + } else $$pn23$i433 = $$pn23$i433 + $767 | 0; + } + break; + } + case 8: + { + $758 = $xsize << 1; + $761 = (($xsize | 0) > 2 ? $109 : 0) + $109 | 0; + if (($ysize | 0) <= 2) { + $$0 = $113; + break L1; + } + $763 = ($xsize | 0) > 2; + $$pn$i445 = $113; + $j$5$i12446 = 0; + while (1) { + $942 = $j$5$i12446 * 3 | 0; + if ($763) { + $i$5$i13441 = 0; + $p1$5$i436 = $image + (Math_imul($942, $758) | 0) | 0; + $p2$5$i437 = $image + (Math_imul($942 + 1 | 0, $758) | 0) | 0; + $p3$5$i438 = $image + (Math_imul($942 + 2 | 0, $758) | 0) | 0; + $q1$11$i440 = $$pn$i445; + $q2$11$i439 = $$pn$i445 + $109 | 0; + while (1) { + $953 = $p1$5$i436 + 2 | 0; + $960 = $p2$5$i437 + 2 | 0; + HEAP8[$q1$11$i440 >> 0] = (((HEAPU8[$953 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$5$i436 >> 0] | 0) + ((HEAPU8[$p2$5$i437 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$960 >> 0] | 0) >>> 2 & 255) << 2 >>> 0) / 9 | 0; + $976 = $p3$5$i438 + 2 | 0; + HEAP8[$q2$11$i439 >> 0] = (((HEAPU8[$960 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$p2$5$i437 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$5$i438 >> 0] | 0) + ((HEAPU8[$976 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + $993 = $p2$5$i437 + 4 | 0; + HEAP8[$q1$11$i440 + 1 >> 0] = (((HEAPU8[$953 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p1$5$i436 + 4 >> 0] | 0) + ((HEAPU8[$960 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$993 >> 0] | 0) >>> 1 & 255) << 2 >>> 0) / 9 | 0; + HEAP8[$q2$11$i439 + 1 >> 0] = (((HEAPU8[$993 >> 0] | 0) >>> 1 & 255) + ((HEAPU8[$960 >> 0] | 0) >>> 2 & 255) + ((HEAPU8[$976 >> 0] | 0) >>> 1 & 255) + (HEAPU8[$p3$5$i438 + 4 >> 0] | 0) << 2 >>> 0) / 9 | 0; + $i$5$i13441 = $i$5$i13441 + 1 | 0; + if (($i$5$i13441 | 0) >= ($108 | 0)) break; else { + $p1$5$i436 = $p1$5$i436 + 6 | 0; + $p2$5$i437 = $p2$5$i437 + 6 | 0; + $p3$5$i438 = $p3$5$i438 + 6 | 0; + $q1$11$i440 = $q1$11$i440 + 2 | 0; + $q2$11$i439 = $q2$11$i439 + 2 | 0; + } + } + } + $j$5$i12446 = $j$5$i12446 + 1 | 0; + if (($j$5$i12446 | 0) >= ($110 | 0)) { + $$0 = $113; + break; + } else $$pn$i445 = $$pn$i445 + $761 | 0; + } + break; + } + default: + { + $$0 = $113; + break L1; + } + } + break; + } + case 2: + { + $1024 = ($xsize | 0) / 2 | 0; + HEAP32[$newXsize >> 2] = $1024; + $1025 = ($ysize | 0) / 2 | 0; + HEAP32[$newYsize >> 2] = $1025; + $1027 = _malloc(Math_imul($1025, $1024) | 0) | 0; + if (!$1027) { + _arLog(3, 21359, $vararg_buffer3); + _exit(1); + } + if ($pixFormat >>> 0 < 2) { + $1030 = $xsize * 3 | 0; + $smax$i14 = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1033 = ($xsize | 0) > 1; + $j$0$i17456 = 0; + $p$0$i16455 = $1027; + while (1) { + $1034 = $j$0$i17456 << 1; + if ($1033) { + $i$0$i21451 = 0; + $p$1$i20450 = $p$0$i16455; + $p1$0$i19449 = $image + (Math_imul($1034, $1030) | 0) | 0; + $p2$0$i18448 = $image + (Math_imul($1034 | 1, $1030) | 0) | 0; + while (1) { + HEAP8[$p$1$i20450 >> 0] = ((HEAPU8[$p1$0$i19449 + 1 >> 0] | 0) + (HEAPU8[$p1$0$i19449 >> 0] | 0) + (HEAPU8[$p1$0$i19449 + 2 >> 0] | 0) + (HEAPU8[$p1$0$i19449 + 3 >> 0] | 0) + (HEAPU8[$p1$0$i19449 + 4 >> 0] | 0) + (HEAPU8[$p1$0$i19449 + 5 >> 0] | 0) + (HEAPU8[$p2$0$i18448 >> 0] | 0) + (HEAPU8[$p2$0$i18448 + 1 >> 0] | 0) + (HEAPU8[$p2$0$i18448 + 2 >> 0] | 0) + (HEAPU8[$p2$0$i18448 + 3 >> 0] | 0) + (HEAPU8[$p2$0$i18448 + 4 >> 0] | 0) + (HEAPU8[$p2$0$i18448 + 5 >> 0] | 0) | 0) / 12 | 0; + $i$0$i21451 = $i$0$i21451 + 1 | 0; + if (($i$0$i21451 | 0) >= ($1024 | 0)) break; else { + $p$1$i20450 = $p$1$i20450 + 1 | 0; + $p1$0$i19449 = $p1$0$i19449 + 6 | 0; + $p2$0$i18448 = $p2$0$i18448 + 6 | 0; + } + } + } + $j$0$i17456 = $j$0$i17456 + 1 | 0; + if (($j$0$i17456 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break L1; + } else $p$0$i16455 = $p$0$i16455 + $smax$i14 | 0; + } + } + if (($pixFormat & -2 | 0) == 2) { + $1096 = $xsize << 2; + $smax22$i = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1099 = ($xsize | 0) > 1; + $j$1$i25466 = 0; + $p$2$i24465 = $1027; + while (1) { + $1100 = $j$1$i25466 << 1; + if ($1099) { + $i$1$i29461 = 0; + $p$3$i28460 = $p$2$i24465; + $p1$1$i27459 = $image + (Math_imul($1100, $1096) | 0) | 0; + $p2$1$i26458 = $image + (Math_imul($1100 | 1, $1096) | 0) | 0; + while (1) { + HEAP8[$p$3$i28460 >> 0] = ((HEAPU8[$p1$1$i27459 + 1 >> 0] | 0) + (HEAPU8[$p1$1$i27459 >> 0] | 0) + (HEAPU8[$p1$1$i27459 + 2 >> 0] | 0) + (HEAPU8[$p1$1$i27459 + 4 >> 0] | 0) + (HEAPU8[$p1$1$i27459 + 5 >> 0] | 0) + (HEAPU8[$p1$1$i27459 + 6 >> 0] | 0) + (HEAPU8[$p2$1$i26458 >> 0] | 0) + (HEAPU8[$p2$1$i26458 + 1 >> 0] | 0) + (HEAPU8[$p2$1$i26458 + 2 >> 0] | 0) + (HEAPU8[$p2$1$i26458 + 4 >> 0] | 0) + (HEAPU8[$p2$1$i26458 + 5 >> 0] | 0) + (HEAPU8[$p2$1$i26458 + 6 >> 0] | 0) | 0) / 12 | 0; + $i$1$i29461 = $i$1$i29461 + 1 | 0; + if (($i$1$i29461 | 0) >= ($1024 | 0)) break; else { + $p$3$i28460 = $p$3$i28460 + 1 | 0; + $p1$1$i27459 = $p1$1$i27459 + 8 | 0; + $p2$1$i26458 = $p2$1$i26458 + 8 | 0; + } + } + } + $j$1$i25466 = $j$1$i25466 + 1 | 0; + if (($j$1$i25466 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break L1; + } else $p$2$i24465 = $p$2$i24465 + $smax22$i | 0; + } + } + if (($pixFormat & -3 | 0) == 4) { + $1162 = $xsize << 2; + $smax24$i = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1165 = ($xsize | 0) > 1; + $j$2$i32476 = 0; + $p$4$i31475 = $1027; + while (1) { + $1166 = $j$2$i32476 << 1; + if ($1165) { + $i$2$i36471 = 0; + $p$5$i35470 = $p$4$i31475; + $p1$2$i34469 = $image + (Math_imul($1166, $1162) | 0) | 0; + $p2$2$i33468 = $image + (Math_imul($1166 | 1, $1162) | 0) | 0; + while (1) { + HEAP8[$p$5$i35470 >> 0] = ((HEAPU8[$p1$2$i34469 + 2 >> 0] | 0) + (HEAPU8[$p1$2$i34469 + 1 >> 0] | 0) + (HEAPU8[$p1$2$i34469 + 3 >> 0] | 0) + (HEAPU8[$p1$2$i34469 + 5 >> 0] | 0) + (HEAPU8[$p1$2$i34469 + 6 >> 0] | 0) + (HEAPU8[$p1$2$i34469 + 7 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 1 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 2 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 3 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 5 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 6 >> 0] | 0) + (HEAPU8[$p2$2$i33468 + 7 >> 0] | 0) | 0) / 12 | 0; + $i$2$i36471 = $i$2$i36471 + 1 | 0; + if (($i$2$i36471 | 0) >= ($1024 | 0)) break; else { + $p$5$i35470 = $p$5$i35470 + 1 | 0; + $p1$2$i34469 = $p1$2$i34469 + 8 | 0; + $p2$2$i33468 = $p2$2$i33468 + 8 | 0; + } + } + } + $j$2$i32476 = $j$2$i32476 + 1 | 0; + if (($j$2$i32476 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break L1; + } else $p$4$i31475 = $p$4$i31475 + $smax24$i | 0; + } + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $smax26$i = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1238 = ($xsize | 0) > 1; + $j$3$i40486 = 0; + $p$6$i39485 = $1027; + while (1) { + $1239 = $j$3$i40486 << 1; + if ($1238) { + $i$3$i44481 = 0; + $p$7$i43480 = $p$6$i39485; + $p1$3$i42479 = $image + (Math_imul($1239, $xsize) | 0) | 0; + $p2$3$i41478 = $image + (Math_imul($1239 | 1, $xsize) | 0) | 0; + while (1) { + HEAP8[$p$7$i43480 >> 0] = ((HEAPU8[$p1$3$i42479 + 1 >> 0] | 0) + (HEAPU8[$p1$3$i42479 >> 0] | 0) + (HEAPU8[$p2$3$i41478 >> 0] | 0) + (HEAPU8[$p2$3$i41478 + 1 >> 0] | 0) | 0) >>> 2; + $i$3$i44481 = $i$3$i44481 + 1 | 0; + if (($i$3$i44481 | 0) >= ($1024 | 0)) break; else { + $p$7$i43480 = $p$7$i43480 + 1 | 0; + $p1$3$i42479 = $p1$3$i42479 + 2 | 0; + $p2$3$i41478 = $p2$3$i41478 + 2 | 0; + } + } + } + $j$3$i40486 = $j$3$i40486 + 1 | 0; + if (($j$3$i40486 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break; + } else $p$6$i39485 = $p$6$i39485 + $smax26$i | 0; + } + break; + } + case 7: + { + $1232 = $xsize << 1; + $smax28$i = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1235 = ($xsize | 0) > 1; + $j$4$i46496 = 0; + $p$8$i45495 = $1027; + while (1) { + $1267 = $j$4$i46496 << 1; + if ($1235) { + $i$4$i50491 = 0; + $p$9$i49490 = $p$8$i45495; + $p1$4$i48489 = $image + (Math_imul($1267, $1232) | 0) | 0; + $p2$4$i47488 = $image + (Math_imul($1267 | 1, $1232) | 0) | 0; + while (1) { + HEAP8[$p$9$i49490 >> 0] = ((HEAPU8[$p1$4$i48489 + 3 >> 0] | 0) + (HEAPU8[$p1$4$i48489 + 1 >> 0] | 0) + (HEAPU8[$p2$4$i47488 + 1 >> 0] | 0) + (HEAPU8[$p2$4$i47488 + 3 >> 0] | 0) | 0) >>> 2; + $i$4$i50491 = $i$4$i50491 + 1 | 0; + if (($i$4$i50491 | 0) >= ($1024 | 0)) break; else { + $p$9$i49490 = $p$9$i49490 + 1 | 0; + $p1$4$i48489 = $p1$4$i48489 + 4 | 0; + $p2$4$i47488 = $p2$4$i47488 + 4 | 0; + } + } + } + $j$4$i46496 = $j$4$i46496 + 1 | 0; + if (($j$4$i46496 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break; + } else $p$8$i45495 = $p$8$i45495 + $smax28$i | 0; + } + break; + } + case 8: + { + $1228 = $xsize << 1; + $smax30$i = ($1024 | 0) > 0 ? $1024 : 0; + if (($ysize | 0) <= 1) { + $$0 = $1027; + break L1; + } + $1231 = ($xsize | 0) > 1; + $j$5$i52506 = 0; + $p$10$i51505 = $1027; + while (1) { + $1297 = $j$5$i52506 << 1; + if ($1231) { + $i$5$i56501 = 0; + $p$11$i55500 = $p$10$i51505; + $p1$5$i54499 = $image + (Math_imul($1297, $1228) | 0) | 0; + $p2$5$i53498 = $image + (Math_imul($1297 | 1, $1228) | 0) | 0; + while (1) { + HEAP8[$p$11$i55500 >> 0] = ((HEAPU8[$p1$5$i54499 + 2 >> 0] | 0) + (HEAPU8[$p1$5$i54499 >> 0] | 0) + (HEAPU8[$p2$5$i53498 >> 0] | 0) + (HEAPU8[$p2$5$i53498 + 2 >> 0] | 0) | 0) >>> 2; + $i$5$i56501 = $i$5$i56501 + 1 | 0; + if (($i$5$i56501 | 0) >= ($1024 | 0)) break; else { + $p$11$i55500 = $p$11$i55500 + 1 | 0; + $p1$5$i54499 = $p1$5$i54499 + 4 | 0; + $p2$5$i53498 = $p2$5$i53498 + 4 | 0; + } + } + } + $j$5$i52506 = $j$5$i52506 + 1 | 0; + if (($j$5$i52506 | 0) >= ($1025 | 0)) { + $$0 = $1027; + break; + } else $p$10$i51505 = $p$10$i51505 + $smax30$i | 0; + } + break; + } + default: + { + $$0 = $1027; + break L1; + } + } + break; + } + case 4: + { + $1325 = ($xsize | 0) / 3 | 0; + HEAP32[$newXsize >> 2] = $1325; + $1326 = ($ysize | 0) / 3 | 0; + HEAP32[$newYsize >> 2] = $1326; + $1328 = _malloc(Math_imul($1326, $1325) | 0) | 0; + if (!$1328) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); + } + if ($pixFormat >>> 0 < 2) { + $1331 = $xsize * 3 | 0; + $smax$i58 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1334 = ($xsize | 0) > 2; + $j$0$i61517 = 0; + $p$0$i60516 = $1328; + while (1) { + $1335 = $j$0$i61517 * 3 | 0; + if ($1334) { + $i$0$i66512 = 0; + $p$1$i65511 = $p$0$i60516; + $p1$0$i64510 = $image + (Math_imul($1335, $1331) | 0) | 0; + $p2$0$i62508 = $image + (Math_imul($1335 + 1 | 0, $1331) | 0) | 0; + $p3$0$i63509 = $image + (Math_imul($1335 + 2 | 0, $1331) | 0) | 0; + while (1) { + HEAP8[$p$1$i65511 >> 0] = ((HEAPU8[$p1$0$i64510 + 1 >> 0] | 0) + (HEAPU8[$p1$0$i64510 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 2 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 3 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 4 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 5 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 6 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 7 >> 0] | 0) + (HEAPU8[$p1$0$i64510 + 8 >> 0] | 0) + (HEAPU8[$p2$0$i62508 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 1 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 2 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 3 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 4 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 5 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 6 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 7 >> 0] | 0) + (HEAPU8[$p2$0$i62508 + 8 >> 0] | 0) + (HEAPU8[$p3$0$i63509 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 1 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 2 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 3 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 4 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 5 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 6 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 7 >> 0] | 0) + (HEAPU8[$p3$0$i63509 + 8 >> 0] | 0) | 0) / 27 | 0; + $i$0$i66512 = $i$0$i66512 + 1 | 0; + if (($i$0$i66512 | 0) >= ($1325 | 0)) break; else { + $p$1$i65511 = $p$1$i65511 + 1 | 0; + $p1$0$i64510 = $p1$0$i64510 + 9 | 0; + $p2$0$i62508 = $p2$0$i62508 + 9 | 0; + $p3$0$i63509 = $p3$0$i63509 + 9 | 0; + } + } + } + $j$0$i61517 = $j$0$i61517 + 1 | 0; + if (($j$0$i61517 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break L1; + } else $p$0$i60516 = $p$0$i60516 + $smax$i58 | 0; + } + } + if (($pixFormat & -2 | 0) == 2) { + $1460 = $xsize << 2; + $smax22$i68 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1463 = ($xsize | 0) > 2; + $j$1$i71528 = 0; + $p$2$i70527 = $1328; + while (1) { + $1464 = $j$1$i71528 * 3 | 0; + if ($1463) { + $i$1$i76523 = 0; + $p$3$i75522 = $p$2$i70527; + $p1$1$i74521 = $image + (Math_imul($1464, $1460) | 0) | 0; + $p2$1$i72519 = $image + (Math_imul($1464 + 1 | 0, $1460) | 0) | 0; + $p3$1$i73520 = $image + (Math_imul($1464 + 2 | 0, $1460) | 0) | 0; + while (1) { + HEAP8[$p$3$i75522 >> 0] = ((HEAPU8[$p1$1$i74521 + 1 >> 0] | 0) + (HEAPU8[$p1$1$i74521 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 2 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 4 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 5 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 6 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 8 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 9 >> 0] | 0) + (HEAPU8[$p1$1$i74521 + 10 >> 0] | 0) + (HEAPU8[$p2$1$i72519 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 1 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 2 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 4 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 5 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 6 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 8 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 9 >> 0] | 0) + (HEAPU8[$p2$1$i72519 + 10 >> 0] | 0) + (HEAPU8[$p3$1$i73520 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 1 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 2 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 4 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 5 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 6 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 8 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 9 >> 0] | 0) + (HEAPU8[$p3$1$i73520 + 10 >> 0] | 0) | 0) / 27 | 0; + $i$1$i76523 = $i$1$i76523 + 1 | 0; + if (($i$1$i76523 | 0) >= ($1325 | 0)) break; else { + $p$3$i75522 = $p$3$i75522 + 1 | 0; + $p1$1$i74521 = $p1$1$i74521 + 12 | 0; + $p2$1$i72519 = $p2$1$i72519 + 12 | 0; + $p3$1$i73520 = $p3$1$i73520 + 12 | 0; + } + } + } + $j$1$i71528 = $j$1$i71528 + 1 | 0; + if (($j$1$i71528 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break L1; + } else $p$2$i70527 = $p$2$i70527 + $smax22$i68 | 0; + } + } + if (($pixFormat & -3 | 0) == 4) { + $1589 = $xsize << 2; + $smax24$i78 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1592 = ($xsize | 0) > 2; + $j$2$i81539 = 0; + $p$4$i80538 = $1328; + while (1) { + $1593 = $j$2$i81539 * 3 | 0; + if ($1592) { + $i$2$i86534 = 0; + $p$5$i85533 = $p$4$i80538; + $p1$2$i84532 = $image + (Math_imul($1593, $1589) | 0) | 0; + $p2$2$i82530 = $image + (Math_imul($1593 + 1 | 0, $1589) | 0) | 0; + $p3$2$i83531 = $image + (Math_imul($1593 + 2 | 0, $1589) | 0) | 0; + while (1) { + HEAP8[$p$5$i85533 >> 0] = ((HEAPU8[$p1$2$i84532 + 2 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 1 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 3 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 5 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 6 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 7 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 9 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 10 >> 0] | 0) + (HEAPU8[$p1$2$i84532 + 11 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 1 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 2 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 3 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 5 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 6 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 7 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 9 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 10 >> 0] | 0) + (HEAPU8[$p2$2$i82530 + 11 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 1 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 2 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 3 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 5 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 6 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 7 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 9 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 10 >> 0] | 0) + (HEAPU8[$p3$2$i83531 + 11 >> 0] | 0) | 0) / 27 | 0; + $i$2$i86534 = $i$2$i86534 + 1 | 0; + if (($i$2$i86534 | 0) >= ($1325 | 0)) break; else { + $p$5$i85533 = $p$5$i85533 + 1 | 0; + $p1$2$i84532 = $p1$2$i84532 + 12 | 0; + $p2$2$i82530 = $p2$2$i82530 + 12 | 0; + $p3$2$i83531 = $p3$2$i83531 + 12 | 0; + } + } + } + $j$2$i81539 = $j$2$i81539 + 1 | 0; + if (($j$2$i81539 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break L1; + } else $p$4$i80538 = $p$4$i80538 + $smax24$i78 | 0; + } + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $smax26$i92 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1729 = ($xsize | 0) > 2; + $j$3$i95550 = 0; + $p$6$i94549 = $1328; + while (1) { + $1730 = $j$3$i95550 * 3 | 0; + if ($1729) { + $i$3$i100545 = 0; + $p$7$i99544 = $p$6$i94549; + $p1$3$i98543 = $image + (Math_imul($1730, $xsize) | 0) | 0; + $p2$3$i96541 = $image + (Math_imul($1730 + 1 | 0, $xsize) | 0) | 0; + $p3$3$i97542 = $image + (Math_imul($1730 + 2 | 0, $xsize) | 0) | 0; + while (1) { + HEAP8[$p$7$i99544 >> 0] = ((HEAPU8[$p1$3$i98543 + 1 >> 0] | 0) + (HEAPU8[$p1$3$i98543 >> 0] | 0) + (HEAPU8[$p1$3$i98543 + 2 >> 0] | 0) + (HEAPU8[$p2$3$i96541 >> 0] | 0) + (HEAPU8[$p2$3$i96541 + 1 >> 0] | 0) + (HEAPU8[$p2$3$i96541 + 2 >> 0] | 0) + (HEAPU8[$p3$3$i97542 >> 0] | 0) + (HEAPU8[$p3$3$i97542 + 1 >> 0] | 0) + (HEAPU8[$p3$3$i97542 + 2 >> 0] | 0) | 0) / 9 | 0; + $i$3$i100545 = $i$3$i100545 + 1 | 0; + if (($i$3$i100545 | 0) >= ($1325 | 0)) break; else { + $p$7$i99544 = $p$7$i99544 + 1 | 0; + $p1$3$i98543 = $p1$3$i98543 + 3 | 0; + $p2$3$i96541 = $p2$3$i96541 + 3 | 0; + $p3$3$i97542 = $p3$3$i97542 + 3 | 0; + } + } + } + $j$3$i95550 = $j$3$i95550 + 1 | 0; + if (($j$3$i95550 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break; + } else $p$6$i94549 = $p$6$i94549 + $smax26$i92 | 0; + } + break; + } + case 7: + { + $1723 = $xsize << 1; + $smax28$i90 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1726 = ($xsize | 0) > 2; + $j$4$i103561 = 0; + $p$8$i102560 = $1328; + while (1) { + $1781 = $j$4$i103561 * 3 | 0; + if ($1726) { + $i$4$i108556 = 0; + $p$9$i107555 = $p$8$i102560; + $p1$4$i106554 = $image + (Math_imul($1781, $1723) | 0) | 0; + $p2$4$i104552 = $image + (Math_imul($1781 + 1 | 0, $1723) | 0) | 0; + $p3$4$i105553 = $image + (Math_imul($1781 + 2 | 0, $1723) | 0) | 0; + while (1) { + HEAP8[$p$9$i107555 >> 0] = ((HEAPU8[$p1$4$i106554 + 3 >> 0] | 0) + (HEAPU8[$p1$4$i106554 + 1 >> 0] | 0) + (HEAPU8[$p1$4$i106554 + 5 >> 0] | 0) + (HEAPU8[$p2$4$i104552 + 1 >> 0] | 0) + (HEAPU8[$p2$4$i104552 + 3 >> 0] | 0) + (HEAPU8[$p2$4$i104552 + 5 >> 0] | 0) + (HEAPU8[$p3$4$i105553 + 1 >> 0] | 0) + (HEAPU8[$p3$4$i105553 + 3 >> 0] | 0) + (HEAPU8[$p3$4$i105553 + 5 >> 0] | 0) | 0) / 9 | 0; + $i$4$i108556 = $i$4$i108556 + 1 | 0; + if (($i$4$i108556 | 0) >= ($1325 | 0)) break; else { + $p$9$i107555 = $p$9$i107555 + 1 | 0; + $p1$4$i106554 = $p1$4$i106554 + 6 | 0; + $p2$4$i104552 = $p2$4$i104552 + 6 | 0; + $p3$4$i105553 = $p3$4$i105553 + 6 | 0; + } + } + } + $j$4$i103561 = $j$4$i103561 + 1 | 0; + if (($j$4$i103561 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break; + } else $p$8$i102560 = $p$8$i102560 + $smax28$i90 | 0; + } + break; + } + case 8: + { + $1719 = $xsize << 1; + $smax30$i88 = ($1325 | 0) > 0 ? $1325 : 0; + if (($ysize | 0) <= 2) { + $$0 = $1328; + break L1; + } + $1722 = ($xsize | 0) > 2; + $j$5$i111572 = 0; + $p$10$i110571 = $1328; + while (1) { + $1835 = $j$5$i111572 * 3 | 0; + if ($1722) { + $i$5$i116567 = 0; + $p$11$i115566 = $p$10$i110571; + $p1$5$i114565 = $image + (Math_imul($1835, $1719) | 0) | 0; + $p2$5$i112563 = $image + (Math_imul($1835 + 1 | 0, $1719) | 0) | 0; + $p3$5$i113564 = $image + (Math_imul($1835 + 2 | 0, $1719) | 0) | 0; + while (1) { + HEAP8[$p$11$i115566 >> 0] = ((HEAPU8[$p1$5$i114565 + 2 >> 0] | 0) + (HEAPU8[$p1$5$i114565 >> 0] | 0) + (HEAPU8[$p1$5$i114565 + 4 >> 0] | 0) + (HEAPU8[$p2$5$i112563 >> 0] | 0) + (HEAPU8[$p2$5$i112563 + 2 >> 0] | 0) + (HEAPU8[$p2$5$i112563 + 4 >> 0] | 0) + (HEAPU8[$p3$5$i113564 >> 0] | 0) + (HEAPU8[$p3$5$i113564 + 2 >> 0] | 0) + (HEAPU8[$p3$5$i113564 + 4 >> 0] | 0) | 0) / 9 | 0; + $i$5$i116567 = $i$5$i116567 + 1 | 0; + if (($i$5$i116567 | 0) >= ($1325 | 0)) break; else { + $p$11$i115566 = $p$11$i115566 + 1 | 0; + $p1$5$i114565 = $p1$5$i114565 + 6 | 0; + $p2$5$i112563 = $p2$5$i112563 + 6 | 0; + $p3$5$i113564 = $p3$5$i113564 + 6 | 0; + } + } + } + $j$5$i111572 = $j$5$i111572 + 1 | 0; + if (($j$5$i111572 | 0) >= ($1326 | 0)) { + $$0 = $1328; + break; + } else $p$10$i110571 = $p$10$i110571 + $smax30$i88 | 0; + } + break; + } + default: + { + $$0 = $1328; + break L1; + } + } + break; + } + default: + { + $1886 = ($xsize | 0) / 4 | 0; + HEAP32[$newXsize >> 2] = $1886; + $1887 = ($ysize | 0) / 4 | 0; + HEAP32[$newYsize >> 2] = $1887; + $1889 = _malloc(Math_imul($1887, $1886) | 0) | 0; + if (!$1889) { + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } + if ($pixFormat >>> 0 < 2) { + $1892 = $xsize * 3 | 0; + $smax$i118 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $1895 = ($xsize | 0) > 3; + $j$0$i121272 = 0; + $p$0$i120271 = $1889; + while (1) { + $1896 = $j$0$i121272 << 2; + if ($1895) { + $i$0$i126270 = 0; + $p$1$i125269 = $p$0$i120271; + $p1$0$i124268 = $image + (Math_imul($1896, $1892) | 0) | 0; + $p2$0$i122265 = $image + (Math_imul($1896 | 1, $1892) | 0) | 0; + $p3$0$i123266 = $image + (Math_imul($1896 | 2, $1892) | 0) | 0; + $p4$0$i267 = $image + (Math_imul($1896 | 3, $1892) | 0) | 0; + while (1) { + HEAP8[$p$1$i125269 >> 0] = ((HEAPU8[$p1$0$i124268 + 1 >> 0] | 0) + (HEAPU8[$p1$0$i124268 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 2 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 3 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 4 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 5 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 6 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 7 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 8 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 9 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 10 >> 0] | 0) + (HEAPU8[$p1$0$i124268 + 11 >> 0] | 0) + (HEAPU8[$p2$0$i122265 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 1 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 2 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 3 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 4 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 5 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 6 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 7 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 8 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 9 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 10 >> 0] | 0) + (HEAPU8[$p2$0$i122265 + 11 >> 0] | 0) + (HEAPU8[$p3$0$i123266 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 1 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 2 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 3 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 4 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 5 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 6 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 7 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 8 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 9 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 10 >> 0] | 0) + (HEAPU8[$p3$0$i123266 + 11 >> 0] | 0) + (HEAPU8[$p4$0$i267 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 1 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 2 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 3 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 4 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 5 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 6 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 7 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 8 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 9 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 10 >> 0] | 0) + (HEAPU8[$p4$0$i267 + 11 >> 0] | 0) | 0) / 48 | 0; + $i$0$i126270 = $i$0$i126270 + 1 | 0; + if (($i$0$i126270 | 0) >= ($1886 | 0)) break; else { + $p$1$i125269 = $p$1$i125269 + 1 | 0; + $p1$0$i124268 = $p1$0$i124268 + 12 | 0; + $p2$0$i122265 = $p2$0$i122265 + 12 | 0; + $p3$0$i123266 = $p3$0$i123266 + 12 | 0; + $p4$0$i267 = $p4$0$i267 + 12 | 0; + } + } + } + $j$0$i121272 = $j$0$i121272 + 1 | 0; + if (($j$0$i121272 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break L1; + } else $p$0$i120271 = $p$0$i120271 + $smax$i118 | 0; + } + } + if (($pixFormat & -2 | 0) == 2) { + $2108 = $xsize << 2; + $smax22$i128 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $2111 = ($xsize | 0) > 3; + $j$1$i131284 = 0; + $p$2$i130283 = $1889; + while (1) { + $2112 = $j$1$i131284 << 2; + if ($2111) { + $i$1$i136279 = 0; + $p$3$i135278 = $p$2$i130283; + $p1$1$i134277 = $image + (Math_imul($2112, $2108) | 0) | 0; + $p2$1$i132274 = $image + (Math_imul($2112 | 1, $2108) | 0) | 0; + $p3$1$i133275 = $image + (Math_imul($2112 | 2, $2108) | 0) | 0; + $p4$1$i276 = $image + (Math_imul($2112 | 3, $2108) | 0) | 0; + while (1) { + HEAP8[$p$3$i135278 >> 0] = ((HEAPU8[$p1$1$i134277 + 1 >> 0] | 0) + (HEAPU8[$p1$1$i134277 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 2 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 4 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 5 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 6 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 8 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 9 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 10 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 12 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 13 >> 0] | 0) + (HEAPU8[$p1$1$i134277 + 14 >> 0] | 0) + (HEAPU8[$p2$1$i132274 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 1 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 2 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 4 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 5 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 6 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 8 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 9 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 10 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 12 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 13 >> 0] | 0) + (HEAPU8[$p2$1$i132274 + 14 >> 0] | 0) + (HEAPU8[$p3$1$i133275 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 1 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 2 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 4 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 5 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 6 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 8 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 9 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 10 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 12 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 13 >> 0] | 0) + (HEAPU8[$p3$1$i133275 + 14 >> 0] | 0) + (HEAPU8[$p4$1$i276 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 1 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 2 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 4 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 5 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 6 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 8 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 9 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 10 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 12 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 13 >> 0] | 0) + (HEAPU8[$p4$1$i276 + 14 >> 0] | 0) | 0) / 48 | 0; + $i$1$i136279 = $i$1$i136279 + 1 | 0; + if (($i$1$i136279 | 0) >= ($1886 | 0)) break; else { + $p$3$i135278 = $p$3$i135278 + 1 | 0; + $p1$1$i134277 = $p1$1$i134277 + 16 | 0; + $p2$1$i132274 = $p2$1$i132274 + 16 | 0; + $p3$1$i133275 = $p3$1$i133275 + 16 | 0; + $p4$1$i276 = $p4$1$i276 + 16 | 0; + } + } + } + $j$1$i131284 = $j$1$i131284 + 1 | 0; + if (($j$1$i131284 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break L1; + } else $p$2$i130283 = $p$2$i130283 + $smax22$i128 | 0; + } + } + if (($pixFormat & -3 | 0) == 4) { + $2324 = $xsize << 2; + $smax24$i138 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $2327 = ($xsize | 0) > 3; + $j$2$i141296 = 0; + $p$4$i140295 = $1889; + while (1) { + $2328 = $j$2$i141296 << 2; + if ($2327) { + $i$2$i146291 = 0; + $p$5$i145290 = $p$4$i140295; + $p1$2$i144289 = $image + (Math_imul($2328, $2324) | 0) | 0; + $p2$2$i142286 = $image + (Math_imul($2328 | 1, $2324) | 0) | 0; + $p3$2$i143287 = $image + (Math_imul($2328 | 2, $2324) | 0) | 0; + $p4$2$i288 = $image + (Math_imul($2328 | 3, $2324) | 0) | 0; + while (1) { + HEAP8[$p$5$i145290 >> 0] = ((HEAPU8[$p1$2$i144289 + 2 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 1 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 3 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 5 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 6 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 7 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 9 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 10 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 11 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 13 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 14 >> 0] | 0) + (HEAPU8[$p1$2$i144289 + 15 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 1 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 2 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 3 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 5 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 6 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 7 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 9 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 10 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 11 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 13 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 14 >> 0] | 0) + (HEAPU8[$p2$2$i142286 + 15 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 1 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 2 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 3 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 5 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 6 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 7 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 9 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 10 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 11 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 13 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 14 >> 0] | 0) + (HEAPU8[$p3$2$i143287 + 15 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 1 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 2 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 3 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 5 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 6 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 7 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 9 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 10 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 11 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 13 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 14 >> 0] | 0) + (HEAPU8[$p4$2$i288 + 15 >> 0] | 0) | 0) / 48 | 0; + $i$2$i146291 = $i$2$i146291 + 1 | 0; + if (($i$2$i146291 | 0) >= ($1886 | 0)) break; else { + $p$5$i145290 = $p$5$i145290 + 1 | 0; + $p1$2$i144289 = $p1$2$i144289 + 16 | 0; + $p2$2$i142286 = $p2$2$i142286 + 16 | 0; + $p3$2$i143287 = $p3$2$i143287 + 16 | 0; + $p4$2$i288 = $p4$2$i288 + 16 | 0; + } + } + } + $j$2$i141296 = $j$2$i141296 + 1 | 0; + if (($j$2$i141296 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break L1; + } else $p$4$i140295 = $p$4$i140295 + $smax24$i138 | 0; + } + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $smax26$i152 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $2552 = ($xsize | 0) > 3; + $j$3$i155308 = 0; + $p$6$i154307 = $1889; + while (1) { + $2553 = $j$3$i155308 << 2; + if ($2552) { + $i$3$i160303 = 0; + $p$7$i159302 = $p$6$i154307; + $p1$3$i158301 = $image + (Math_imul($2553, $xsize) | 0) | 0; + $p2$3$i156298 = $image + (Math_imul($2553 | 1, $xsize) | 0) | 0; + $p3$3$i157299 = $image + (Math_imul($2553 | 2, $xsize) | 0) | 0; + $p4$3$i300 = $image + (Math_imul($2553 | 3, $xsize) | 0) | 0; + while (1) { + HEAP8[$p$7$i159302 >> 0] = ((HEAPU8[$p1$3$i158301 + 1 >> 0] | 0) + (HEAPU8[$p1$3$i158301 >> 0] | 0) + (HEAPU8[$p1$3$i158301 + 2 >> 0] | 0) + (HEAPU8[$p1$3$i158301 + 3 >> 0] | 0) + (HEAPU8[$p2$3$i156298 >> 0] | 0) + (HEAPU8[$p2$3$i156298 + 1 >> 0] | 0) + (HEAPU8[$p2$3$i156298 + 2 >> 0] | 0) + (HEAPU8[$p2$3$i156298 + 3 >> 0] | 0) + (HEAPU8[$p3$3$i157299 >> 0] | 0) + (HEAPU8[$p3$3$i157299 + 1 >> 0] | 0) + (HEAPU8[$p3$3$i157299 + 2 >> 0] | 0) + (HEAPU8[$p3$3$i157299 + 3 >> 0] | 0) + (HEAPU8[$p4$3$i300 >> 0] | 0) + (HEAPU8[$p4$3$i300 + 1 >> 0] | 0) + (HEAPU8[$p4$3$i300 + 2 >> 0] | 0) + (HEAPU8[$p4$3$i300 + 3 >> 0] | 0) | 0) / 16 | 0; + $i$3$i160303 = $i$3$i160303 + 1 | 0; + if (($i$3$i160303 | 0) >= ($1886 | 0)) break; else { + $p$7$i159302 = $p$7$i159302 + 1 | 0; + $p1$3$i158301 = $p1$3$i158301 + 4 | 0; + $p2$3$i156298 = $p2$3$i156298 + 4 | 0; + $p3$3$i157299 = $p3$3$i157299 + 4 | 0; + $p4$3$i300 = $p4$3$i300 + 4 | 0; + } + } + } + $j$3$i155308 = $j$3$i155308 + 1 | 0; + if (($j$3$i155308 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break; + } else $p$6$i154307 = $p$6$i154307 + $smax26$i152 | 0; + } + break; + } + case 7: + { + $2546 = $xsize << 1; + $smax28$i150 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $2549 = ($xsize | 0) > 3; + $j$4$i163320 = 0; + $p$8$i162319 = $1889; + while (1) { + $2635 = $j$4$i163320 << 2; + if ($2549) { + $i$4$i168315 = 0; + $p$9$i167314 = $p$8$i162319; + $p1$4$i166313 = $image + (Math_imul($2635, $2546) | 0) | 0; + $p2$4$i164310 = $image + (Math_imul($2635 | 1, $2546) | 0) | 0; + $p3$4$i165311 = $image + (Math_imul($2635 | 2, $2546) | 0) | 0; + $p4$4$i312 = $image + (Math_imul($2635 | 3, $2546) | 0) | 0; + while (1) { + HEAP8[$p$9$i167314 >> 0] = ((HEAPU8[$p1$4$i166313 + 3 >> 0] | 0) + (HEAPU8[$p1$4$i166313 + 1 >> 0] | 0) + (HEAPU8[$p1$4$i166313 + 5 >> 0] | 0) + (HEAPU8[$p1$4$i166313 + 7 >> 0] | 0) + (HEAPU8[$p2$4$i164310 + 1 >> 0] | 0) + (HEAPU8[$p2$4$i164310 + 3 >> 0] | 0) + (HEAPU8[$p2$4$i164310 + 5 >> 0] | 0) + (HEAPU8[$p2$4$i164310 + 7 >> 0] | 0) + (HEAPU8[$p3$4$i165311 + 1 >> 0] | 0) + (HEAPU8[$p3$4$i165311 + 3 >> 0] | 0) + (HEAPU8[$p3$4$i165311 + 5 >> 0] | 0) + (HEAPU8[$p3$4$i165311 + 7 >> 0] | 0) + (HEAPU8[$p4$4$i312 + 1 >> 0] | 0) + (HEAPU8[$p4$4$i312 + 3 >> 0] | 0) + (HEAPU8[$p4$4$i312 + 5 >> 0] | 0) + (HEAPU8[$p4$4$i312 + 7 >> 0] | 0) | 0) / 16 | 0; + $i$4$i168315 = $i$4$i168315 + 1 | 0; + if (($i$4$i168315 | 0) >= ($1886 | 0)) break; else { + $p$9$i167314 = $p$9$i167314 + 1 | 0; + $p1$4$i166313 = $p1$4$i166313 + 8 | 0; + $p2$4$i164310 = $p2$4$i164310 + 8 | 0; + $p3$4$i165311 = $p3$4$i165311 + 8 | 0; + $p4$4$i312 = $p4$4$i312 + 8 | 0; + } + } + } + $j$4$i163320 = $j$4$i163320 + 1 | 0; + if (($j$4$i163320 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break; + } else $p$8$i162319 = $p$8$i162319 + $smax28$i150 | 0; + } + break; + } + case 8: + { + $2542 = $xsize << 1; + $smax30$i148 = ($1886 | 0) > 0 ? $1886 : 0; + if (($ysize | 0) <= 3) { + $$0 = $1889; + break L1; + } + $2545 = ($xsize | 0) > 3; + $j$5$i171332 = 0; + $p$10$i170331 = $1889; + while (1) { + $2721 = $j$5$i171332 << 2; + if ($2545) { + $i$5$i176327 = 0; + $p$11$i175326 = $p$10$i170331; + $p1$5$i174325 = $image + (Math_imul($2721, $2542) | 0) | 0; + $p2$5$i172322 = $image + (Math_imul($2721 | 1, $2542) | 0) | 0; + $p3$5$i173323 = $image + (Math_imul($2721 | 2, $2542) | 0) | 0; + $p4$5$i324 = $image + (Math_imul($2721 | 3, $2542) | 0) | 0; + while (1) { + HEAP8[$p$11$i175326 >> 0] = ((HEAPU8[$p1$5$i174325 + 2 >> 0] | 0) + (HEAPU8[$p1$5$i174325 >> 0] | 0) + (HEAPU8[$p1$5$i174325 + 4 >> 0] | 0) + (HEAPU8[$p1$5$i174325 + 6 >> 0] | 0) + (HEAPU8[$p2$5$i172322 >> 0] | 0) + (HEAPU8[$p2$5$i172322 + 2 >> 0] | 0) + (HEAPU8[$p2$5$i172322 + 4 >> 0] | 0) + (HEAPU8[$p2$5$i172322 + 6 >> 0] | 0) + (HEAPU8[$p3$5$i173323 >> 0] | 0) + (HEAPU8[$p3$5$i173323 + 2 >> 0] | 0) + (HEAPU8[$p3$5$i173323 + 4 >> 0] | 0) + (HEAPU8[$p3$5$i173323 + 6 >> 0] | 0) + (HEAPU8[$p4$5$i324 >> 0] | 0) + (HEAPU8[$p4$5$i324 + 2 >> 0] | 0) + (HEAPU8[$p4$5$i324 + 4 >> 0] | 0) + (HEAPU8[$p4$5$i324 + 6 >> 0] | 0) | 0) / 16 | 0; + $i$5$i176327 = $i$5$i176327 + 1 | 0; + if (($i$5$i176327 | 0) >= ($1886 | 0)) break; else { + $p$11$i175326 = $p$11$i175326 + 1 | 0; + $p1$5$i174325 = $p1$5$i174325 + 8 | 0; + $p2$5$i172322 = $p2$5$i172322 + 8 | 0; + $p3$5$i173323 = $p3$5$i173323 + 8 | 0; + $p4$5$i324 = $p4$5$i324 + 8 | 0; + } + } + } + $j$5$i171332 = $j$5$i171332 + 1 | 0; + if (($j$5$i171332 | 0) >= ($1887 | 0)) { + $$0 = $1889; + break; + } else $p$10$i170331 = $p$10$i170331 + $smax30$i148 | 0; + } + break; + } + default: + { + $$0 = $1889; + break L1; + } + } + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} +function _arPattGetImage2($imageProcMode, $pattDetectMode, $patt_size, $sample_size, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) { + $imageProcMode = $imageProcMode | 0; + $pattDetectMode = $pattDetectMode | 0; + $patt_size = $patt_size | 0; + $sample_size = $sample_size | 0; + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $pixelFormat = $pixelFormat | 0; + $paramLTf = $paramLTf | 0; + $vertex = $vertex | 0; + $pattRatio = +$pattRatio; + $ext_patt = $ext_patt | 0; + var $$0 = 0, $100 = 0, $1001 = 0, $1005 = 0, $1009 = 0, $1012 = 0, $1023 = 0.0, $1028 = 0.0, $103 = 0.0, $1035 = 0.0, $104 = 0.0, $1045 = 0.0, $1054 = 0.0, $1055 = 0.0, $106 = 0, $107 = 0, $1074 = 0, $108 = 0, $1084 = 0, $1090 = 0.0, $1096 = 0.0, $1097 = 0.0, $110 = 0.0, $1101 = 0, $1107 = 0, $111 = 0.0, $1111 = 0, $1113 = 0, $1119 = 0, $112 = 0.0, $1120 = 0, $1124 = 0, $1128 = 0, $113 = 0, $1132 = 0, $1135 = 0, $114 = 0, $1146 = 0.0, $115 = 0, $1151 = 0.0, $1158 = 0.0, $116 = 0, $1168 = 0.0, $117 = 0, $1177 = 0.0, $1178 = 0.0, $118 = 0, $119 = 0, $1199 = 0, $120 = 0, $1203 = 0, $121 = 0, $1211 = 0, $1212 = 0, $1217 = 0, $1225 = 0, $123 = 0, $1231 = 0, $124 = 0.0, $1242 = 0.0, $1247 = 0.0, $125 = 0.0, $1254 = 0.0, $126 = 0.0, $1264 = 0.0, $127 = 0, $1273 = 0.0, $1274 = 0.0, $128 = 0, $129 = 0, $1295 = 0, $1299 = 0, $130 = 0, $1307 = 0, $1308 = 0, $131 = 0, $1313 = 0, $132 = 0, $1321 = 0, $1327 = 0, $133 = 0, $1338 = 0.0, $134 = 0, $1343 = 0.0, $135 = 0, $1350 = 0.0, $1360 = 0.0, $1369 = 0.0, $137 = 0, $1370 = 0.0, $138 = 0.0, $139 = 0.0, $1391 = 0, $140 = 0.0, $1402 = 0, $1403 = 0, $1408 = 0, $141 = 0, $1413 = 0, $1419 = 0, $142 = 0, $143 = 0, $1433 = 0, $1436 = 0.0, $1437 = 0.0, $1438 = 0.0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1456 = 0.0, $146 = 0, $1461 = 0.0, $1468 = 0.0, $147 = 0, $1478 = 0.0, $148 = 0, $1487 = 0.0, $1488 = 0.0, $149 = 0, $1509 = 0, $151 = 0, $152 = 0.0, $1528 = 0, $153 = 0.0, $1537 = 0.0, $1538 = 0.0, $1539 = 0.0, $154 = 0.0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $155 = 0, $1550 = 0, $1555 = 0.0, $156 = 0, $1560 = 0.0, $1567 = 0.0, $157 = 0, $1577 = 0.0, $158 = 0, $1586 = 0.0, $1587 = 0.0, $159 = 0, $160 = 0, $1608 = 0, $161 = 0, $162 = 0, $1627 = 0, $163 = 0, $1636 = 0.0, $1637 = 0.0, $1638 = 0.0, $1639 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1649 = 0, $165 = 0, $1654 = 0.0, $1659 = 0.0, $166 = 0.0, $1666 = 0.0, $167 = 0.0, $1676 = 0.0, $168 = 0.0, $1685 = 0.0, $1686 = 0.0, $169 = 0, $170 = 0, $1707 = 0, $171 = 0, $172 = 0, $1727 = 0, $173 = 0, $1734 = 0.0, $1735 = 0.0, $1736 = 0.0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1747 = 0, $1748 = 0.0, $1749 = 0.0, $175 = 0, $1750 = 0.0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1761 = 0, $1762 = 0.0, $1763 = 0.0, $1764 = 0.0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, $1775 = 0, $1776 = 0.0, $1777 = 0.0, $1778 = 0.0, $1779 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1789 = 0, $179 = 0, $1790 = 0.0, $1791 = 0.0, $1792 = 0.0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $180 = 0.0, $1800 = 0, $1801 = 0, $1803 = 0, $1804 = 0.0, $1805 = 0.0, $1806 = 0.0, $1807 = 0, $1808 = 0, $1809 = 0, $181 = 0.0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1817 = 0, $182 = 0.0, $1822 = 0.0, $1827 = 0.0, $183 = 0, $1834 = 0.0, $184 = 0, $1844 = 0.0, $185 = 0, $1853 = 0.0, $1854 = 0.0, $186 = 0, $187 = 0, $1875 = 0, $188 = 0, $1882 = 0, $189 = 0, $1893 = 0.0, $1898 = 0.0, $190 = 0, $1905 = 0.0, $191 = 0, $1915 = 0.0, $1924 = 0.0, $1925 = 0.0, $193 = 0, $194 = 0.0, $1948 = 0, $195 = 0.0, $1955 = 0, $196 = 0.0, $1966 = 0.0, $197 = 0, $1971 = 0.0, $1978 = 0.0, $198 = 0, $1988 = 0.0, $199 = 0, $1997 = 0.0, $1998 = 0.0, $200 = 0, $201 = 0, $202 = 0, $2020 = 0, $2027 = 0, $203 = 0, $2038 = 0.0, $204 = 0, $2043 = 0.0, $205 = 0, $2050 = 0.0, $2060 = 0.0, $2069 = 0.0, $207 = 0, $2070 = 0.0, $208 = 0.0, $209 = 0.0, $2091 = 0, $2094 = 0, $210 = 0.0, $2102 = 0, $211 = 0, $2117 = 0, $212 = 0, $2128 = 0.0, $213 = 0, $2133 = 0.0, $214 = 0, $2140 = 0.0, $215 = 0, $2150 = 0.0, $2159 = 0.0, $216 = 0, $2160 = 0.0, $217 = 0, $218 = 0, $2181 = 0, $2184 = 0, $219 = 0, $2192 = 0, $2207 = 0, $221 = 0, $2218 = 0.0, $222 = 0.0, $2223 = 0.0, $223 = 0.0, $2230 = 0.0, $224 = 0.0, $2240 = 0.0, $2249 = 0.0, $225 = 0, $2250 = 0.0, $226 = 0, $227 = 0, $2271 = 0, $2274 = 0, $228 = 0, $229 = 0, $2293 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $250 = 0.0, $251 = 0.0, $252 = 0.0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $260 = 0, $261 = 0, $263 = 0, $264 = 0.0, $265 = 0.0, $266 = 0.0, $267 = 0, $268 = 0, $269 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $278 = 0, $284 = 0.0, $289 = 0.0, $29 = 0.0, $296 = 0.0, $306 = 0.0, $31 = 0.0, $315 = 0.0, $316 = 0.0, $32 = 0.0, $337 = 0, $346 = 0, $347 = 0, $35 = 0.0, $355 = 0, $362 = 0, $37 = 0.0, $373 = 0.0, $378 = 0.0, $38 = 0.0, $385 = 0.0, $395 = 0.0, $404 = 0.0, $405 = 0.0, $41 = 0, $426 = 0, $43 = 0.0, $434 = 0, $435 = 0, $443 = 0, $45 = 0.0, $451 = 0, $46 = 0.0, $462 = 0.0, $467 = 0.0, $474 = 0.0, $484 = 0.0, $49 = 0.0, $493 = 0.0, $494 = 0.0, $51 = 0.0, $515 = 0, $52 = 0.0, $524 = 0, $525 = 0, $533 = 0, $540 = 0, $55 = 0, $551 = 0.0, $556 = 0.0, $56 = 0.0, $563 = 0.0, $573 = 0.0, $58 = 0.0, $582 = 0.0, $583 = 0.0, $604 = 0, $61 = 0, $612 = 0, $613 = 0, $62 = 0.0, $621 = 0, $629 = 0, $64 = 0.0, $640 = 0.0, $645 = 0.0, $652 = 0.0, $662 = 0.0, $67 = 0, $671 = 0.0, $672 = 0.0, $693 = 0, $702 = 0, $703 = 0, $711 = 0, $719 = 0, $73 = 0, $730 = 0.0, $735 = 0.0, $742 = 0.0, $752 = 0.0, $761 = 0.0, $762 = 0.0, $77 = 0, $783 = 0, $785 = 0, $790 = 0, $791 = 0, $795 = 0, $799 = 0, $810 = 0.0, $815 = 0.0, $822 = 0.0, $832 = 0.0, $841 = 0.0, $842 = 0.0, $863 = 0, $872 = 0, $873 = 0, $881 = 0, $889 = 0, $900 = 0.0, $905 = 0.0, $912 = 0.0, $922 = 0.0, $931 = 0.0, $932 = 0.0, $951 = 0, $954 = 0, $959 = 0.0, $973 = 0.0, $974 = 0.0, $978 = 0, $984 = 0, $988 = 0, $99 = 0, $990 = 0, $996 = 0, $997 = 0, $ext_patt2$0 = 0, $i$10291 = 0, $i$11297 = 0, $i$12303 = 0, $i$1237 = 0, $i$13236 = 0, $i$14312 = 0, $i$15318 = 0, $i$16324 = 0, $i$17330 = 0, $i$18336 = 0, $i$19342 = 0, $i$20348 = 0, $i$21354 = 0, $i$22360 = 0, $i$2243 = 0, $i$23309 = 0, $i$3249 = 0, $i$4255 = 0, $i$5261 = 0, $i$6267 = 0, $i$7273 = 0, $i$8279 = 0, $i$9285 = 0, $j$0241 = 0, $j$10301 = 0, $j$11307 = 0, $j$12316 = 0, $j$1247 = 0, $j$13322 = 0, $j$14328 = 0, $j$15334 = 0, $j$16340 = 0, $j$17346 = 0, $j$18352 = 0, $j$19358 = 0, $j$20364 = 0, $j$2253 = 0, $j$3259 = 0, $j$4265 = 0, $j$5271 = 0, $j$6277 = 0, $j$7283 = 0, $j$8289 = 0, $j$9295 = 0, $local = 0, $para = 0, $sample_size$xdiv2$2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $world = 0, $xc$0 = 0, $xc$1 = 0, $xc$10 = 0, $xc$11 = 0, $xc$12 = 0, $xc$13 = 0, $xc$14 = 0, $xc$15 = 0, $xc$16 = 0, $xc$17 = 0, $xc$18 = 0, $xc$19 = 0, $xc$2 = 0, $xc$20 = 0, $xc$3 = 0, $xc$4 = 0, $xc$5 = 0, $xc$6 = 0, $xc$7 = 0, $xc$8 = 0, $xc$9 = 0, $xc2 = 0, $xdiv2$0 = 0, $xdiv2$0$lcssa = 0, $xdiv2$1 = 0, $xdiv2$1$lcssa = 0, $xdiv2$2 = 0, $yc$0 = 0, $yc$1 = 0, $yc$10 = 0, $yc$11 = 0, $yc$12 = 0, $yc$13 = 0, $yc$14 = 0, $yc$15 = 0, $yc$16 = 0, $yc$17 = 0, $yc$18 = 0, $yc$19 = 0, $yc$2 = 0, $yc$20 = 0, $yc$3 = 0, $yc$4 = 0, $yc$5 = 0, $yc$6 = 0, $yc$7 = 0, $yc$8 = 0, $yc$9 = 0, $yc2 = 0, $ydiv2$0 = 0, $ydiv2$1 = 0, $ydiv2$2 = 0, $ydiv2$3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer5 = sp + 224 | 0; + $vararg_buffer3 = sp + 216 | 0; + $vararg_buffer1 = sp + 208 | 0; + $vararg_buffer = sp + 200 | 0; + $world = sp + 136 | 0; + $local = sp + 72 | 0; + $para = sp; + $xc2 = sp + 232 | 0; + $yc2 = sp + 228 | 0; + HEAPF64[$world >> 3] = 100.0; + HEAPF64[$world + 8 >> 3] = 100.0; + HEAPF64[$world + 16 >> 3] = 110.0; + HEAPF64[$world + 24 >> 3] = 100.0; + HEAPF64[$world + 32 >> 3] = 110.0; + HEAPF64[$world + 40 >> 3] = 110.0; + HEAPF64[$world + 48 >> 3] = 100.0; + HEAPF64[$world + 56 >> 3] = 110.0; + HEAPF64[$local >> 3] = +HEAPF64[$vertex >> 3]; + HEAPF64[$local + 8 >> 3] = +HEAPF64[$vertex + 8 >> 3]; + HEAPF64[$local + 16 >> 3] = +HEAPF64[$vertex + 16 >> 3]; + HEAPF64[$local + 24 >> 3] = +HEAPF64[$vertex + 24 >> 3]; + HEAPF64[$local + 32 >> 3] = +HEAPF64[$vertex + 32 >> 3]; + HEAPF64[$local + 40 >> 3] = +HEAPF64[$vertex + 40 >> 3]; + HEAPF64[$local + 48 >> 3] = +HEAPF64[$vertex + 48 >> 3]; + HEAPF64[$local + 56 >> 3] = +HEAPF64[$vertex + 56 >> 3]; + _get_cpara($world, $local, $para); + $29 = +HEAPF64[$local >> 3]; + $31 = +HEAPF64[$local + 16 >> 3]; + $32 = $29 - $31; + $35 = +HEAPF64[$local + 8 >> 3]; + $37 = +HEAPF64[$local + 24 >> 3]; + $38 = $35 - $37; + $41 = ~~($32 * $32 + $38 * $38); + $43 = +HEAPF64[$local + 32 >> 3]; + $45 = +HEAPF64[$local + 48 >> 3]; + $46 = $43 - $45; + $49 = +HEAPF64[$local + 40 >> 3]; + $51 = +HEAPF64[$local + 56 >> 3]; + $52 = $49 - $51; + $55 = ~~($46 * $46 + $52 * $52); + $56 = $31 - $43; + $58 = $37 - $49; + $61 = ~~($56 * $56 + $58 * $58); + $62 = $45 - $29; + $64 = $51 - $35; + $67 = ~~($62 * $62 + $64 * $64); + $73 = ~~(+((($55 | 0) > ($41 | 0) ? $55 : $41) | 0) * $pattRatio * $pattRatio); + $77 = ~~(+((($67 | 0) > ($61 | 0) ? $67 : $61) | 0) * $pattRatio * $pattRatio); + if (!$imageProcMode) { + $xdiv2$0 = $patt_size; + while (1) if (($xdiv2$0 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$0, $xdiv2$0) | 0) < ($73 | 0)) $xdiv2$0 = $xdiv2$0 << 1; else { + $xdiv2$0$lcssa = $xdiv2$0; + break; + } + $ydiv2$0 = $patt_size; + while (1) if (($ydiv2$0 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$0, $ydiv2$0) | 0) < ($77 | 0)) $ydiv2$0 = $ydiv2$0 << 1; else { + $xdiv2$2 = $xdiv2$0$lcssa; + $ydiv2$2 = $ydiv2$0; + break; + } + } else { + $xdiv2$1 = $patt_size; + while (1) if (($xdiv2$1 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$1 << 2, $xdiv2$1) | 0) < ($73 | 0)) $xdiv2$1 = $xdiv2$1 << 1; else { + $xdiv2$1$lcssa = $xdiv2$1; + break; + } + $ydiv2$1 = $patt_size; + while (1) if (($ydiv2$1 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$1 << 2, $ydiv2$1) | 0) < ($77 | 0)) $ydiv2$1 = $ydiv2$1 << 1; else { + $xdiv2$2 = $xdiv2$1$lcssa; + $ydiv2$2 = $ydiv2$1; + break; + } + } + $sample_size$xdiv2$2 = ($xdiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $xdiv2$2; + $ydiv2$3 = ($ydiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $ydiv2$2; + $99 = ($sample_size$xdiv2$2 | 0) / ($patt_size | 0) | 0; + $100 = ($ydiv2$3 | 0) / ($patt_size | 0) | 0; + $103 = (1.0 - $pattRatio) * .5 * 10.0; + $104 = $pattRatio * 10.0; + $106 = Math_imul($patt_size, $patt_size) | 0; + L13 : do if (!$pattDetectMode) { + $107 = $106 * 3 | 0; + $108 = _calloc($107, 4) | 0; + if (!$108) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } + do switch ($pixelFormat | 0) { + case 0: + { + $264 = $103 + 100.0; + $265 = +($ydiv2$3 | 0); + $266 = +($sample_size$xdiv2$2 | 0); + $267 = $para + 48 | 0; + $268 = $para + 56 | 0; + $269 = $para + 64 | 0; + $270 = $para + 8 | 0; + $271 = $para + 16 | 0; + $272 = $para + 24 | 0; + $273 = $para + 32 | 0; + $274 = $para + 40 | 0; + $275 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $277 = ($sample_size$xdiv2$2 | 0) > 0; + $j$0241 = 0; + do { + $284 = $264 + $104 * (+($j$0241 | 0) + .5) / $265; + if ($277) { + $i$1237 = 0; + do { + $289 = $264 + $104 * (+($i$1237 | 0) + .5) / $266; + $296 = +HEAPF64[$269 >> 3] + (+HEAPF64[$267 >> 3] * $289 + $284 * +HEAPF64[$268 >> 3]); + if ($296 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $306 = (+HEAPF64[$271 >> 3] + ($289 * +HEAPF64[$para >> 3] + $284 * +HEAPF64[$270 >> 3])) / $296; + HEAPF32[$xc2 >> 2] = $306; + $315 = (+HEAPF64[$274 >> 3] + ($289 * +HEAPF64[$272 >> 3] + $284 * +HEAPF64[$273 >> 3])) / $296; + HEAPF32[$yc2 >> 2] = $315; + _arParamIdeal2ObservLTf($paramLTf, $306, $315, $xc2, $yc2) | 0; + $316 = +HEAPF32[$xc2 >> 2]; + if ($275) { + $xc$0 = ((~~($316 + 1.0) | 0) / 2 | 0) << 1; + $yc$0 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$0 = ~~($316 + .5); + $yc$0 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$0 | 0) > -1) if (($yc$0 | 0) < ($ysize | 0) & (($yc$0 | 0) > -1 & ($xc$0 | 0) < ($xsize | 0))) { + $337 = ((Math_imul($yc$0, $xsize) | 0) + $xc$0 | 0) * 3 | 0; + $346 = ((Math_imul(($j$0241 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$1237 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $347 = $108 + ($346 << 2) | 0; + HEAP32[$347 >> 2] = (HEAP32[$347 >> 2] | 0) + (HEAPU8[$image + ($337 + 2) >> 0] | 0); + $355 = $108 + ($346 + 1 << 2) | 0; + HEAP32[$355 >> 2] = (HEAP32[$355 >> 2] | 0) + (HEAPU8[$image + ($337 + 1) >> 0] | 0); + $362 = $108 + ($346 + 2 << 2) | 0; + HEAP32[$362 >> 2] = (HEAP32[$362 >> 2] | 0) + (HEAPU8[$image + $337 >> 0] | 0); + } + $i$1237 = $i$1237 + 1 | 0; + } while (($i$1237 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$0241 = $j$0241 + 1 | 0; + } while (($j$0241 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 1: + { + $250 = $103 + 100.0; + $251 = +($ydiv2$3 | 0); + $252 = +($sample_size$xdiv2$2 | 0); + $253 = $para + 48 | 0; + $254 = $para + 56 | 0; + $255 = $para + 64 | 0; + $256 = $para + 8 | 0; + $257 = $para + 16 | 0; + $258 = $para + 24 | 0; + $259 = $para + 32 | 0; + $260 = $para + 40 | 0; + $261 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $263 = ($sample_size$xdiv2$2 | 0) > 0; + $j$1247 = 0; + do { + $373 = $250 + $104 * (+($j$1247 | 0) + .5) / $251; + if ($263) { + $i$2243 = 0; + do { + $378 = $250 + $104 * (+($i$2243 | 0) + .5) / $252; + $385 = +HEAPF64[$255 >> 3] + (+HEAPF64[$253 >> 3] * $378 + $373 * +HEAPF64[$254 >> 3]); + if ($385 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $395 = (+HEAPF64[$257 >> 3] + ($378 * +HEAPF64[$para >> 3] + $373 * +HEAPF64[$256 >> 3])) / $385; + HEAPF32[$xc2 >> 2] = $395; + $404 = (+HEAPF64[$260 >> 3] + ($378 * +HEAPF64[$258 >> 3] + $373 * +HEAPF64[$259 >> 3])) / $385; + HEAPF32[$yc2 >> 2] = $404; + _arParamIdeal2ObservLTf($paramLTf, $395, $404, $xc2, $yc2) | 0; + $405 = +HEAPF32[$xc2 >> 2]; + if ($261) { + $xc$1 = ((~~($405 + 1.0) | 0) / 2 | 0) << 1; + $yc$1 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$1 = ~~($405 + .5); + $yc$1 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$1 | 0) > -1) if (($yc$1 | 0) < ($ysize | 0) & (($yc$1 | 0) > -1 & ($xc$1 | 0) < ($xsize | 0))) { + $426 = ((Math_imul($yc$1, $xsize) | 0) + $xc$1 | 0) * 3 | 0; + $434 = ((Math_imul(($j$1247 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$2243 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $435 = $108 + ($434 << 2) | 0; + HEAP32[$435 >> 2] = (HEAP32[$435 >> 2] | 0) + (HEAPU8[$image + $426 >> 0] | 0); + $443 = $108 + ($434 + 1 << 2) | 0; + HEAP32[$443 >> 2] = (HEAP32[$443 >> 2] | 0) + (HEAPU8[$image + ($426 + 1) >> 0] | 0); + $451 = $108 + ($434 + 2 << 2) | 0; + HEAP32[$451 >> 2] = (HEAP32[$451 >> 2] | 0) + (HEAPU8[$image + ($426 + 2) >> 0] | 0); + } + $i$2243 = $i$2243 + 1 | 0; + } while (($i$2243 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$1247 = $j$1247 + 1 | 0; + } while (($j$1247 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 2: + { + $236 = $103 + 100.0; + $237 = +($ydiv2$3 | 0); + $238 = +($sample_size$xdiv2$2 | 0); + $239 = $para + 48 | 0; + $240 = $para + 56 | 0; + $241 = $para + 64 | 0; + $242 = $para + 8 | 0; + $243 = $para + 16 | 0; + $244 = $para + 24 | 0; + $245 = $para + 32 | 0; + $246 = $para + 40 | 0; + $247 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $249 = ($sample_size$xdiv2$2 | 0) > 0; + $j$2253 = 0; + do { + $462 = $236 + $104 * (+($j$2253 | 0) + .5) / $237; + if ($249) { + $i$3249 = 0; + do { + $467 = $236 + $104 * (+($i$3249 | 0) + .5) / $238; + $474 = +HEAPF64[$241 >> 3] + (+HEAPF64[$239 >> 3] * $467 + $462 * +HEAPF64[$240 >> 3]); + if ($474 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $484 = (+HEAPF64[$243 >> 3] + ($467 * +HEAPF64[$para >> 3] + $462 * +HEAPF64[$242 >> 3])) / $474; + HEAPF32[$xc2 >> 2] = $484; + $493 = (+HEAPF64[$246 >> 3] + ($467 * +HEAPF64[$244 >> 3] + $462 * +HEAPF64[$245 >> 3])) / $474; + HEAPF32[$yc2 >> 2] = $493; + _arParamIdeal2ObservLTf($paramLTf, $484, $493, $xc2, $yc2) | 0; + $494 = +HEAPF32[$xc2 >> 2]; + if ($247) { + $xc$2 = ((~~($494 + 1.0) | 0) / 2 | 0) << 1; + $yc$2 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$2 = ~~($494 + .5); + $yc$2 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$2 | 0) > -1) if (($yc$2 | 0) < ($ysize | 0) & (($yc$2 | 0) > -1 & ($xc$2 | 0) < ($xsize | 0))) { + $515 = (Math_imul($yc$2, $xsize) | 0) + $xc$2 << 2; + $524 = ((Math_imul(($j$2253 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$3249 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $525 = $108 + ($524 << 2) | 0; + HEAP32[$525 >> 2] = (HEAP32[$525 >> 2] | 0) + (HEAPU8[$image + ($515 | 2) >> 0] | 0); + $533 = $108 + ($524 + 1 << 2) | 0; + HEAP32[$533 >> 2] = (HEAP32[$533 >> 2] | 0) + (HEAPU8[$image + ($515 | 1) >> 0] | 0); + $540 = $108 + ($524 + 2 << 2) | 0; + HEAP32[$540 >> 2] = (HEAP32[$540 >> 2] | 0) + (HEAPU8[$image + $515 >> 0] | 0); + } + $i$3249 = $i$3249 + 1 | 0; + } while (($i$3249 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$2253 = $j$2253 + 1 | 0; + } while (($j$2253 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 3: + { + $222 = $103 + 100.0; + $223 = +($ydiv2$3 | 0); + $224 = +($sample_size$xdiv2$2 | 0); + $225 = $para + 48 | 0; + $226 = $para + 56 | 0; + $227 = $para + 64 | 0; + $228 = $para + 8 | 0; + $229 = $para + 16 | 0; + $230 = $para + 24 | 0; + $231 = $para + 32 | 0; + $232 = $para + 40 | 0; + $233 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $235 = ($sample_size$xdiv2$2 | 0) > 0; + $j$3259 = 0; + do { + $551 = $222 + $104 * (+($j$3259 | 0) + .5) / $223; + if ($235) { + $i$4255 = 0; + do { + $556 = $222 + $104 * (+($i$4255 | 0) + .5) / $224; + $563 = +HEAPF64[$227 >> 3] + (+HEAPF64[$225 >> 3] * $556 + $551 * +HEAPF64[$226 >> 3]); + if ($563 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $573 = (+HEAPF64[$229 >> 3] + ($556 * +HEAPF64[$para >> 3] + $551 * +HEAPF64[$228 >> 3])) / $563; + HEAPF32[$xc2 >> 2] = $573; + $582 = (+HEAPF64[$232 >> 3] + ($556 * +HEAPF64[$230 >> 3] + $551 * +HEAPF64[$231 >> 3])) / $563; + HEAPF32[$yc2 >> 2] = $582; + _arParamIdeal2ObservLTf($paramLTf, $573, $582, $xc2, $yc2) | 0; + $583 = +HEAPF32[$xc2 >> 2]; + if ($233) { + $xc$3 = ((~~($583 + 1.0) | 0) / 2 | 0) << 1; + $yc$3 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$3 = ~~($583 + .5); + $yc$3 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$3 | 0) > -1) if (($yc$3 | 0) < ($ysize | 0) & (($yc$3 | 0) > -1 & ($xc$3 | 0) < ($xsize | 0))) { + $604 = (Math_imul($yc$3, $xsize) | 0) + $xc$3 << 2; + $612 = ((Math_imul(($j$3259 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$4255 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $613 = $108 + ($612 << 2) | 0; + HEAP32[$613 >> 2] = (HEAP32[$613 >> 2] | 0) + (HEAPU8[$image + $604 >> 0] | 0); + $621 = $108 + ($612 + 1 << 2) | 0; + HEAP32[$621 >> 2] = (HEAP32[$621 >> 2] | 0) + (HEAPU8[$image + ($604 | 1) >> 0] | 0); + $629 = $108 + ($612 + 2 << 2) | 0; + HEAP32[$629 >> 2] = (HEAP32[$629 >> 2] | 0) + (HEAPU8[$image + ($604 | 2) >> 0] | 0); + } + $i$4255 = $i$4255 + 1 | 0; + } while (($i$4255 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$3259 = $j$3259 + 1 | 0; + } while (($j$3259 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 4: + { + $208 = $103 + 100.0; + $209 = +($ydiv2$3 | 0); + $210 = +($sample_size$xdiv2$2 | 0); + $211 = $para + 48 | 0; + $212 = $para + 56 | 0; + $213 = $para + 64 | 0; + $214 = $para + 8 | 0; + $215 = $para + 16 | 0; + $216 = $para + 24 | 0; + $217 = $para + 32 | 0; + $218 = $para + 40 | 0; + $219 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $221 = ($sample_size$xdiv2$2 | 0) > 0; + $j$4265 = 0; + do { + $640 = $208 + $104 * (+($j$4265 | 0) + .5) / $209; + if ($221) { + $i$5261 = 0; + do { + $645 = $208 + $104 * (+($i$5261 | 0) + .5) / $210; + $652 = +HEAPF64[$213 >> 3] + (+HEAPF64[$211 >> 3] * $645 + $640 * +HEAPF64[$212 >> 3]); + if ($652 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $662 = (+HEAPF64[$215 >> 3] + ($645 * +HEAPF64[$para >> 3] + $640 * +HEAPF64[$214 >> 3])) / $652; + HEAPF32[$xc2 >> 2] = $662; + $671 = (+HEAPF64[$218 >> 3] + ($645 * +HEAPF64[$216 >> 3] + $640 * +HEAPF64[$217 >> 3])) / $652; + HEAPF32[$yc2 >> 2] = $671; + _arParamIdeal2ObservLTf($paramLTf, $662, $671, $xc2, $yc2) | 0; + $672 = +HEAPF32[$xc2 >> 2]; + if ($219) { + $xc$4 = ((~~($672 + 1.0) | 0) / 2 | 0) << 1; + $yc$4 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$4 = ~~($672 + .5); + $yc$4 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$4 | 0) > -1) if (($yc$4 | 0) < ($ysize | 0) & (($yc$4 | 0) > -1 & ($xc$4 | 0) < ($xsize | 0))) { + $693 = (Math_imul($yc$4, $xsize) | 0) + $xc$4 << 2; + $702 = ((Math_imul(($j$4265 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$5261 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $703 = $108 + ($702 << 2) | 0; + HEAP32[$703 >> 2] = (HEAP32[$703 >> 2] | 0) + (HEAPU8[$image + ($693 | 1) >> 0] | 0); + $711 = $108 + ($702 + 1 << 2) | 0; + HEAP32[$711 >> 2] = (HEAP32[$711 >> 2] | 0) + (HEAPU8[$image + ($693 | 2) >> 0] | 0); + $719 = $108 + ($702 + 2 << 2) | 0; + HEAP32[$719 >> 2] = (HEAP32[$719 >> 2] | 0) + (HEAPU8[$image + ($693 | 3) >> 0] | 0); + } + $i$5261 = $i$5261 + 1 | 0; + } while (($i$5261 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$4265 = $j$4265 + 1 | 0; + } while (($j$4265 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 5: + case 12: + case 13: + case 14: + { + $194 = $103 + 100.0; + $195 = +($ydiv2$3 | 0); + $196 = +($sample_size$xdiv2$2 | 0); + $197 = $para + 48 | 0; + $198 = $para + 56 | 0; + $199 = $para + 64 | 0; + $200 = $para + 8 | 0; + $201 = $para + 16 | 0; + $202 = $para + 24 | 0; + $203 = $para + 32 | 0; + $204 = $para + 40 | 0; + $205 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $207 = ($sample_size$xdiv2$2 | 0) > 0; + $j$5271 = 0; + do { + $730 = $194 + $104 * (+($j$5271 | 0) + .5) / $195; + if ($207) { + $i$6267 = 0; + do { + $735 = $194 + $104 * (+($i$6267 | 0) + .5) / $196; + $742 = +HEAPF64[$199 >> 3] + (+HEAPF64[$197 >> 3] * $735 + $730 * +HEAPF64[$198 >> 3]); + if ($742 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $752 = (+HEAPF64[$201 >> 3] + ($735 * +HEAPF64[$para >> 3] + $730 * +HEAPF64[$200 >> 3])) / $742; + HEAPF32[$xc2 >> 2] = $752; + $761 = (+HEAPF64[$204 >> 3] + ($735 * +HEAPF64[$202 >> 3] + $730 * +HEAPF64[$203 >> 3])) / $742; + HEAPF32[$yc2 >> 2] = $761; + _arParamIdeal2ObservLTf($paramLTf, $752, $761, $xc2, $yc2) | 0; + $762 = +HEAPF32[$xc2 >> 2]; + if ($205) { + $xc$5 = ((~~($762 + 1.0) | 0) / 2 | 0) << 1; + $yc$5 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$5 = ~~($762 + .5); + $yc$5 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$5 | 0) > -1) if (($yc$5 | 0) < ($ysize | 0) & (($yc$5 | 0) > -1 & ($xc$5 | 0) < ($xsize | 0))) { + $783 = $image + ((Math_imul($yc$5, $xsize) | 0) + $xc$5) | 0; + $785 = HEAPU8[$783 >> 0] | 0; + $790 = ((Math_imul(($j$5271 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$6267 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $791 = $108 + ($790 << 2) | 0; + HEAP32[$791 >> 2] = (HEAP32[$791 >> 2] | 0) + $785; + $795 = $108 + ($790 + 1 << 2) | 0; + HEAP32[$795 >> 2] = (HEAP32[$795 >> 2] | 0) + $785; + $799 = $108 + ($790 + 2 << 2) | 0; + HEAP32[$799 >> 2] = (HEAP32[$799 >> 2] | 0) + $785; + } + $i$6267 = $i$6267 + 1 | 0; + } while (($i$6267 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$5271 = $j$5271 + 1 | 0; + } while (($j$5271 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 6: + { + $180 = $103 + 100.0; + $181 = +($ydiv2$3 | 0); + $182 = +($sample_size$xdiv2$2 | 0); + $183 = $para + 48 | 0; + $184 = $para + 56 | 0; + $185 = $para + 64 | 0; + $186 = $para + 8 | 0; + $187 = $para + 16 | 0; + $188 = $para + 24 | 0; + $189 = $para + 32 | 0; + $190 = $para + 40 | 0; + $191 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $193 = ($sample_size$xdiv2$2 | 0) > 0; + $j$6277 = 0; + do { + $810 = $180 + $104 * (+($j$6277 | 0) + .5) / $181; + if ($193) { + $i$7273 = 0; + do { + $815 = $180 + $104 * (+($i$7273 | 0) + .5) / $182; + $822 = +HEAPF64[$185 >> 3] + (+HEAPF64[$183 >> 3] * $815 + $810 * +HEAPF64[$184 >> 3]); + if ($822 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $832 = (+HEAPF64[$187 >> 3] + ($815 * +HEAPF64[$para >> 3] + $810 * +HEAPF64[$186 >> 3])) / $822; + HEAPF32[$xc2 >> 2] = $832; + $841 = (+HEAPF64[$190 >> 3] + ($815 * +HEAPF64[$188 >> 3] + $810 * +HEAPF64[$189 >> 3])) / $822; + HEAPF32[$yc2 >> 2] = $841; + _arParamIdeal2ObservLTf($paramLTf, $832, $841, $xc2, $yc2) | 0; + $842 = +HEAPF32[$xc2 >> 2]; + if ($191) { + $xc$6 = ((~~($842 + 1.0) | 0) / 2 | 0) << 1; + $yc$6 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$6 = ~~($842 + .5); + $yc$6 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$6 | 0) > -1) if (($yc$6 | 0) < ($ysize | 0) & (($yc$6 | 0) > -1 & ($xc$6 | 0) < ($xsize | 0))) { + $863 = (Math_imul($yc$6, $xsize) | 0) + $xc$6 << 2; + $872 = ((Math_imul(($j$6277 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$7273 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $873 = $108 + ($872 << 2) | 0; + HEAP32[$873 >> 2] = (HEAP32[$873 >> 2] | 0) + (HEAPU8[$image + ($863 | 3) >> 0] | 0); + $881 = $108 + ($872 + 1 << 2) | 0; + HEAP32[$881 >> 2] = (HEAP32[$881 >> 2] | 0) + (HEAPU8[$image + ($863 | 2) >> 0] | 0); + $889 = $108 + ($872 + 2 << 2) | 0; + HEAP32[$889 >> 2] = (HEAP32[$889 >> 2] | 0) + (HEAPU8[$image + ($863 | 1) >> 0] | 0); + } + $i$7273 = $i$7273 + 1 | 0; + } while (($i$7273 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$6277 = $j$6277 + 1 | 0; + } while (($j$6277 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 7: + { + $166 = $103 + 100.0; + $167 = +($ydiv2$3 | 0); + $168 = +($sample_size$xdiv2$2 | 0); + $169 = $para + 48 | 0; + $170 = $para + 56 | 0; + $171 = $para + 64 | 0; + $172 = $para + 8 | 0; + $173 = $para + 16 | 0; + $174 = $para + 24 | 0; + $175 = $para + 32 | 0; + $176 = $para + 40 | 0; + $177 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $179 = ($sample_size$xdiv2$2 | 0) > 0; + $j$7283 = 0; + do { + $900 = $166 + $104 * (+($j$7283 | 0) + .5) / $167; + if ($179) { + $i$8279 = 0; + do { + $905 = $166 + $104 * (+($i$8279 | 0) + .5) / $168; + $912 = +HEAPF64[$171 >> 3] + (+HEAPF64[$169 >> 3] * $905 + $900 * +HEAPF64[$170 >> 3]); + if ($912 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $922 = (+HEAPF64[$173 >> 3] + ($905 * +HEAPF64[$para >> 3] + $900 * +HEAPF64[$172 >> 3])) / $912; + HEAPF32[$xc2 >> 2] = $922; + $931 = (+HEAPF64[$176 >> 3] + ($905 * +HEAPF64[$174 >> 3] + $900 * +HEAPF64[$175 >> 3])) / $912; + HEAPF32[$yc2 >> 2] = $931; + _arParamIdeal2ObservLTf($paramLTf, $922, $931, $xc2, $yc2) | 0; + $932 = +HEAPF32[$xc2 >> 2]; + if ($177) { + $xc$7 = ((~~($932 + 1.0) | 0) / 2 | 0) << 1; + $yc$7 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$7 = ~~($932 + .5); + $yc$7 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$7 | 0) > -1) if (($yc$7 | 0) < ($ysize | 0) & (($yc$7 | 0) > -1 & ($xc$7 | 0) < ($xsize | 0))) { + $951 = Math_imul($yc$7, $xsize) | 0; + $954 = ($xc$7 & 65534) + $951 << 1; + $959 = +((HEAPU8[$image + $954 >> 0] | 0) + -128 | 0); + $973 = +((HEAPU8[$image + ($954 + 2) >> 0] | 0) + -128 | 0); + $974 = +((HEAPU8[$image + ($951 + $xc$7 << 1 | 1) >> 0] | 0) + -16 | 0) * 298.0820007324219; + $978 = ~~($959 * 516.4110107421875 + $974) >> 8; + $984 = ~~($974 - $959 * 100.29100036621094 - $973 * 208.1199951171875) >> 8; + $988 = ~~($974 + $973 * 408.5830078125) >> 8; + $990 = ($978 | 0) > 0 ? $978 : 0; + $996 = ((Math_imul(($j$7283 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$8279 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $997 = $108 + ($996 << 2) | 0; + HEAP32[$997 >> 2] = (($990 | 0) < 255 ? $990 : 255) + (HEAP32[$997 >> 2] | 0); + $1001 = ($984 | 0) > 0 ? $984 : 0; + $1005 = $108 + ($996 + 1 << 2) | 0; + HEAP32[$1005 >> 2] = (($1001 | 0) < 255 ? $1001 : 255) + (HEAP32[$1005 >> 2] | 0); + $1009 = ($988 | 0) > 0 ? $988 : 0; + $1012 = $108 + ($996 + 2 << 2) | 0; + HEAP32[$1012 >> 2] = (($1009 | 0) < 255 ? $1009 : 255) + (HEAP32[$1012 >> 2] | 0); + } + $i$8279 = $i$8279 + 1 | 0; + } while (($i$8279 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$7283 = $j$7283 + 1 | 0; + } while (($j$7283 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 8: + { + $152 = $103 + 100.0; + $153 = +($ydiv2$3 | 0); + $154 = +($sample_size$xdiv2$2 | 0); + $155 = $para + 48 | 0; + $156 = $para + 56 | 0; + $157 = $para + 64 | 0; + $158 = $para + 8 | 0; + $159 = $para + 16 | 0; + $160 = $para + 24 | 0; + $161 = $para + 32 | 0; + $162 = $para + 40 | 0; + $163 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $165 = ($sample_size$xdiv2$2 | 0) > 0; + $j$8289 = 0; + do { + $1023 = $152 + $104 * (+($j$8289 | 0) + .5) / $153; + if ($165) { + $i$9285 = 0; + do { + $1028 = $152 + $104 * (+($i$9285 | 0) + .5) / $154; + $1035 = +HEAPF64[$157 >> 3] + (+HEAPF64[$155 >> 3] * $1028 + $1023 * +HEAPF64[$156 >> 3]); + if ($1035 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $1045 = (+HEAPF64[$159 >> 3] + ($1028 * +HEAPF64[$para >> 3] + $1023 * +HEAPF64[$158 >> 3])) / $1035; + HEAPF32[$xc2 >> 2] = $1045; + $1054 = (+HEAPF64[$162 >> 3] + ($1028 * +HEAPF64[$160 >> 3] + $1023 * +HEAPF64[$161 >> 3])) / $1035; + HEAPF32[$yc2 >> 2] = $1054; + _arParamIdeal2ObservLTf($paramLTf, $1045, $1054, $xc2, $yc2) | 0; + $1055 = +HEAPF32[$xc2 >> 2]; + if ($163) { + $xc$8 = ((~~($1055 + 1.0) | 0) / 2 | 0) << 1; + $yc$8 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$8 = ~~($1055 + .5); + $yc$8 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$8 | 0) > -1) if (($yc$8 | 0) < ($ysize | 0) & (($yc$8 | 0) > -1 & ($xc$8 | 0) < ($xsize | 0))) { + $1074 = Math_imul($yc$8, $xsize) | 0; + $1084 = ($xc$8 & 65534) + $1074 << 1; + $1090 = +((HEAPU8[$image + ($1084 | 1) >> 0] | 0) + -128 | 0); + $1096 = +((HEAPU8[$image + ($1084 + 3) >> 0] | 0) + -128 | 0); + $1097 = +((HEAPU8[$image + ($1074 + $xc$8 << 1) >> 0] | 0) + -16 | 0) * 298.0820007324219; + $1101 = ~~($1097 + $1090 * 516.4110107421875) >> 8; + $1107 = ~~($1097 - $1090 * 100.29100036621094 - $1096 * 208.1199951171875) >> 8; + $1111 = ~~($1097 + $1096 * 408.5830078125) >> 8; + $1113 = ($1101 | 0) > 0 ? $1101 : 0; + $1119 = ((Math_imul(($j$8289 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$9285 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $1120 = $108 + ($1119 << 2) | 0; + HEAP32[$1120 >> 2] = (($1113 | 0) < 255 ? $1113 : 255) + (HEAP32[$1120 >> 2] | 0); + $1124 = ($1107 | 0) > 0 ? $1107 : 0; + $1128 = $108 + ($1119 + 1 << 2) | 0; + HEAP32[$1128 >> 2] = (($1124 | 0) < 255 ? $1124 : 255) + (HEAP32[$1128 >> 2] | 0); + $1132 = ($1111 | 0) > 0 ? $1111 : 0; + $1135 = $108 + ($1119 + 2 << 2) | 0; + HEAP32[$1135 >> 2] = (($1132 | 0) < 255 ? $1132 : 255) + (HEAP32[$1135 >> 2] | 0); + } + $i$9285 = $i$9285 + 1 | 0; + } while (($i$9285 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$8289 = $j$8289 + 1 | 0; + } while (($j$8289 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 9: + { + $138 = $103 + 100.0; + $139 = +($ydiv2$3 | 0); + $140 = +($sample_size$xdiv2$2 | 0); + $141 = $para + 48 | 0; + $142 = $para + 56 | 0; + $143 = $para + 64 | 0; + $144 = $para + 8 | 0; + $145 = $para + 16 | 0; + $146 = $para + 24 | 0; + $147 = $para + 32 | 0; + $148 = $para + 40 | 0; + $149 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $151 = ($sample_size$xdiv2$2 | 0) > 0; + $j$9295 = 0; + do { + $1146 = $138 + $104 * (+($j$9295 | 0) + .5) / $139; + if ($151) { + $i$10291 = 0; + do { + $1151 = $138 + $104 * (+($i$10291 | 0) + .5) / $140; + $1158 = +HEAPF64[$143 >> 3] + (+HEAPF64[$141 >> 3] * $1151 + $1146 * +HEAPF64[$142 >> 3]); + if ($1158 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $1168 = (+HEAPF64[$145 >> 3] + ($1151 * +HEAPF64[$para >> 3] + $1146 * +HEAPF64[$144 >> 3])) / $1158; + HEAPF32[$xc2 >> 2] = $1168; + $1177 = (+HEAPF64[$148 >> 3] + ($1151 * +HEAPF64[$146 >> 3] + $1146 * +HEAPF64[$147 >> 3])) / $1158; + HEAPF32[$yc2 >> 2] = $1177; + _arParamIdeal2ObservLTf($paramLTf, $1168, $1177, $xc2, $yc2) | 0; + $1178 = +HEAPF32[$xc2 >> 2]; + if ($149) { + $xc$9 = ((~~($1178 + 1.0) | 0) / 2 | 0) << 1; + $yc$9 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$9 = ~~($1178 + .5); + $yc$9 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$9 | 0) > -1) if (($yc$9 | 0) < ($ysize | 0) & (($yc$9 | 0) > -1 & ($xc$9 | 0) < ($xsize | 0))) { + $1199 = (Math_imul($yc$9, $xsize) | 0) + $xc$9 << 1; + $1203 = HEAPU8[$image + ($1199 | 1) >> 0] | 0; + $1211 = ((Math_imul(($j$9295 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$10291 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $1212 = $108 + ($1211 << 2) | 0; + HEAP32[$1212 >> 2] = ($1203 << 3 & 248 | 4) + (HEAP32[$1212 >> 2] | 0); + $1217 = HEAPU8[$image + $1199 >> 0] | 0; + $1225 = $108 + ($1211 + 1 << 2) | 0; + HEAP32[$1225 >> 2] = ($1217 << 5 & 224 | $1203 >>> 3 & 28 | 2) + (HEAP32[$1225 >> 2] | 0); + $1231 = $108 + ($1211 + 2 << 2) | 0; + HEAP32[$1231 >> 2] = ($1217 & 248 | 4) + (HEAP32[$1231 >> 2] | 0); + } + $i$10291 = $i$10291 + 1 | 0; + } while (($i$10291 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$9295 = $j$9295 + 1 | 0; + } while (($j$9295 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 10: + { + $124 = $103 + 100.0; + $125 = +($ydiv2$3 | 0); + $126 = +($sample_size$xdiv2$2 | 0); + $127 = $para + 48 | 0; + $128 = $para + 56 | 0; + $129 = $para + 64 | 0; + $130 = $para + 8 | 0; + $131 = $para + 16 | 0; + $132 = $para + 24 | 0; + $133 = $para + 32 | 0; + $134 = $para + 40 | 0; + $135 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $137 = ($sample_size$xdiv2$2 | 0) > 0; + $j$10301 = 0; + do { + $1242 = $124 + $104 * (+($j$10301 | 0) + .5) / $125; + if ($137) { + $i$11297 = 0; + do { + $1247 = $124 + $104 * (+($i$11297 | 0) + .5) / $126; + $1254 = +HEAPF64[$129 >> 3] + (+HEAPF64[$127 >> 3] * $1247 + $1242 * +HEAPF64[$128 >> 3]); + if ($1254 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $1264 = (+HEAPF64[$131 >> 3] + ($1247 * +HEAPF64[$para >> 3] + $1242 * +HEAPF64[$130 >> 3])) / $1254; + HEAPF32[$xc2 >> 2] = $1264; + $1273 = (+HEAPF64[$134 >> 3] + ($1247 * +HEAPF64[$132 >> 3] + $1242 * +HEAPF64[$133 >> 3])) / $1254; + HEAPF32[$yc2 >> 2] = $1273; + _arParamIdeal2ObservLTf($paramLTf, $1264, $1273, $xc2, $yc2) | 0; + $1274 = +HEAPF32[$xc2 >> 2]; + if ($135) { + $xc$10 = ((~~($1274 + 1.0) | 0) / 2 | 0) << 1; + $yc$10 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$10 = ~~($1274 + .5); + $yc$10 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$10 | 0) > -1) if (($yc$10 | 0) < ($ysize | 0) & (($yc$10 | 0) > -1 & ($xc$10 | 0) < ($xsize | 0))) { + $1295 = (Math_imul($yc$10, $xsize) | 0) + $xc$10 << 1; + $1299 = HEAPU8[$image + ($1295 | 1) >> 0] | 0; + $1307 = ((Math_imul(($j$10301 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$11297 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $1308 = $108 + ($1307 << 2) | 0; + HEAP32[$1308 >> 2] = ($1299 << 2 & 248 | 4) + (HEAP32[$1308 >> 2] | 0); + $1313 = HEAPU8[$image + $1295 >> 0] | 0; + $1321 = $108 + ($1307 + 1 << 2) | 0; + HEAP32[$1321 >> 2] = ($1313 << 5 & 224 | $1299 >>> 3 & 24 | 4) + (HEAP32[$1321 >> 2] | 0); + $1327 = $108 + ($1307 + 2 << 2) | 0; + HEAP32[$1327 >> 2] = ($1313 & 248 | 4) + (HEAP32[$1327 >> 2] | 0); + } + $i$11297 = $i$11297 + 1 | 0; + } while (($i$11297 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$10301 = $j$10301 + 1 | 0; + } while (($j$10301 | 0) < ($ydiv2$3 | 0)); + } + break; + } + case 11: + { + $110 = $103 + 100.0; + $111 = +($ydiv2$3 | 0); + $112 = +($sample_size$xdiv2$2 | 0); + $113 = $para + 48 | 0; + $114 = $para + 56 | 0; + $115 = $para + 64 | 0; + $116 = $para + 8 | 0; + $117 = $para + 16 | 0; + $118 = $para + 24 | 0; + $119 = $para + 32 | 0; + $120 = $para + 40 | 0; + $121 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $123 = ($sample_size$xdiv2$2 | 0) > 0; + $j$11307 = 0; + do { + $1338 = $110 + $104 * (+($j$11307 | 0) + .5) / $111; + if ($123) { + $i$12303 = 0; + do { + $1343 = $110 + $104 * (+($i$12303 | 0) + .5) / $112; + $1350 = +HEAPF64[$115 >> 3] + (+HEAPF64[$113 >> 3] * $1343 + $1338 * +HEAPF64[$114 >> 3]); + if ($1350 == 0.0) { + $ext_patt2$0 = $108; + label = 278; + break L13; + } + $1360 = (+HEAPF64[$117 >> 3] + ($1343 * +HEAPF64[$para >> 3] + $1338 * +HEAPF64[$116 >> 3])) / $1350; + HEAPF32[$xc2 >> 2] = $1360; + $1369 = (+HEAPF64[$120 >> 3] + ($1343 * +HEAPF64[$118 >> 3] + $1338 * +HEAPF64[$119 >> 3])) / $1350; + HEAPF32[$yc2 >> 2] = $1369; + _arParamIdeal2ObservLTf($paramLTf, $1360, $1369, $xc2, $yc2) | 0; + $1370 = +HEAPF32[$xc2 >> 2]; + if ($121) { + $xc$11 = ((~~($1370 + 1.0) | 0) / 2 | 0) << 1; + $yc$11 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$11 = ~~($1370 + .5); + $yc$11 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$11 | 0) > -1) if (($yc$11 | 0) < ($ysize | 0) & (($yc$11 | 0) > -1 & ($xc$11 | 0) < ($xsize | 0))) { + $1391 = (Math_imul($yc$11, $xsize) | 0) + $xc$11 << 1; + $1402 = ((Math_imul(($j$11307 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$12303 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; + $1403 = $108 + ($1402 << 2) | 0; + HEAP32[$1403 >> 2] = (HEAP32[$1403 >> 2] | 0) + ((HEAPU8[$image + ($1391 | 1) >> 0] | 0) & 240 | 8); + $1408 = HEAPU8[$image + $1391 >> 0] | 0; + $1413 = $108 + ($1402 + 1 << 2) | 0; + HEAP32[$1413 >> 2] = ($1408 << 4 & 240 | 8) + (HEAP32[$1413 >> 2] | 0); + $1419 = $108 + ($1402 + 2 << 2) | 0; + HEAP32[$1419 >> 2] = ($1408 & 240 | 8) + (HEAP32[$1419 >> 2] | 0); + } + $i$12303 = $i$12303 + 1 | 0; + } while (($i$12303 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$11307 = $j$11307 + 1 | 0; + } while (($j$11307 | 0) < ($ydiv2$3 | 0)); + } + break; + } + default: + { + _arLog(3, 18803, $vararg_buffer1); + $ext_patt2$0 = $108; + label = 278; + break L13; + } + } while (0); + $278 = Math_imul($100, $99) | 0; + if ($106) { + $i$13236 = 0; + do { + HEAP8[$ext_patt + $i$13236 >> 0] = ((HEAP32[$108 + ($i$13236 << 2) >> 2] | 0) >>> 0) / ($278 >>> 0) | 0; + $i$13236 = $i$13236 + 1 | 0; + } while (($i$13236 | 0) < ($107 | 0)); + } + _free($108); + $$0 = 0; + } else { + $1433 = _calloc($106, 4) | 0; + if (!$1433) { + _arLog(3, 21359, $vararg_buffer3); + _exit(1); + } + L233 : do if ($pixelFormat >>> 0 < 2) { + $1436 = $103 + 100.0; + $1437 = +($ydiv2$3 | 0); + $1438 = +($sample_size$xdiv2$2 | 0); + $1439 = $para + 48 | 0; + $1440 = $para + 56 | 0; + $1441 = $para + 64 | 0; + $1442 = $para + 8 | 0; + $1443 = $para + 16 | 0; + $1444 = $para + 24 | 0; + $1445 = $para + 32 | 0; + $1446 = $para + 40 | 0; + $1447 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) > 0) { + $1449 = ($sample_size$xdiv2$2 | 0) > 0; + $j$12316 = 0; + do { + $1456 = $1436 + $104 * (+($j$12316 | 0) + .5) / $1437; + if ($1449) { + $i$14312 = 0; + do { + $1461 = $1436 + $104 * (+($i$14312 | 0) + .5) / $1438; + $1468 = +HEAPF64[$1441 >> 3] + (+HEAPF64[$1439 >> 3] * $1461 + $1456 * +HEAPF64[$1440 >> 3]); + if ($1468 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1478 = (+HEAPF64[$1443 >> 3] + ($1461 * +HEAPF64[$para >> 3] + $1456 * +HEAPF64[$1442 >> 3])) / $1468; + HEAPF32[$xc2 >> 2] = $1478; + $1487 = (+HEAPF64[$1446 >> 3] + ($1461 * +HEAPF64[$1444 >> 3] + $1456 * +HEAPF64[$1445 >> 3])) / $1468; + HEAPF32[$yc2 >> 2] = $1487; + _arParamIdeal2ObservLTf($paramLTf, $1478, $1487, $xc2, $yc2) | 0; + $1488 = +HEAPF32[$xc2 >> 2]; + if ($1447) { + $xc$12 = ((~~($1488 + 1.0) | 0) / 2 | 0) << 1; + $yc$12 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$12 = ~~($1488 + .5); + $yc$12 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$12 | 0) > -1) if (($yc$12 | 0) < ($ysize | 0) & (($yc$12 | 0) > -1 & ($xc$12 | 0) < ($xsize | 0))) { + $1509 = ((Math_imul($yc$12, $xsize) | 0) + $xc$12 | 0) * 3 | 0; + $1528 = $1433 + ((Math_imul(($j$12316 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$14312 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$1528 >> 2] = (HEAP32[$1528 >> 2] | 0) + ((((HEAPU8[$image + ($1509 + 1) >> 0] | 0) + (HEAPU8[$image + $1509 >> 0] | 0) + (HEAPU8[$image + ($1509 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0); + } + $i$14312 = $i$14312 + 1 | 0; + } while (($i$14312 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$12316 = $j$12316 + 1 | 0; + } while (($j$12316 | 0) < ($ydiv2$3 | 0)); + } + } else { + if (($pixelFormat & -2 | 0) == 2) { + $1537 = $103 + 100.0; + $1538 = +($ydiv2$3 | 0); + $1539 = +($sample_size$xdiv2$2 | 0); + $1540 = $para + 48 | 0; + $1541 = $para + 56 | 0; + $1542 = $para + 64 | 0; + $1543 = $para + 8 | 0; + $1544 = $para + 16 | 0; + $1545 = $para + 24 | 0; + $1546 = $para + 32 | 0; + $1547 = $para + 40 | 0; + $1548 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break; + $1550 = ($sample_size$xdiv2$2 | 0) > 0; + $j$13322 = 0; + while (1) { + $1555 = $1537 + $104 * (+($j$13322 | 0) + .5) / $1538; + if ($1550) { + $i$15318 = 0; + do { + $1560 = $1537 + $104 * (+($i$15318 | 0) + .5) / $1539; + $1567 = +HEAPF64[$1542 >> 3] + (+HEAPF64[$1540 >> 3] * $1560 + $1555 * +HEAPF64[$1541 >> 3]); + if ($1567 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1577 = (+HEAPF64[$1544 >> 3] + ($1560 * +HEAPF64[$para >> 3] + $1555 * +HEAPF64[$1543 >> 3])) / $1567; + HEAPF32[$xc2 >> 2] = $1577; + $1586 = (+HEAPF64[$1547 >> 3] + ($1560 * +HEAPF64[$1545 >> 3] + $1555 * +HEAPF64[$1546 >> 3])) / $1567; + HEAPF32[$yc2 >> 2] = $1586; + _arParamIdeal2ObservLTf($paramLTf, $1577, $1586, $xc2, $yc2) | 0; + $1587 = +HEAPF32[$xc2 >> 2]; + if ($1548) { + $xc$13 = ((~~($1587 + 1.0) | 0) / 2 | 0) << 1; + $yc$13 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$13 = ~~($1587 + .5); + $yc$13 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$13 | 0) > -1) if (($yc$13 | 0) < ($ysize | 0) & (($yc$13 | 0) > -1 & ($xc$13 | 0) < ($xsize | 0))) { + $1608 = (Math_imul($yc$13, $xsize) | 0) + $xc$13 << 2; + $1627 = $1433 + ((Math_imul(($j$13322 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$15318 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$1627 >> 2] = (HEAP32[$1627 >> 2] | 0) + ((((HEAPU8[$image + ($1608 | 1) >> 0] | 0) + (HEAPU8[$image + $1608 >> 0] | 0) + (HEAPU8[$image + ($1608 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0); + } + $i$15318 = $i$15318 + 1 | 0; + } while (($i$15318 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$13322 = $j$13322 + 1 | 0; + if (($j$13322 | 0) >= ($ydiv2$3 | 0)) break L233; + } + } + if (($pixelFormat & -3 | 0) == 4) { + $1636 = $103 + 100.0; + $1637 = +($ydiv2$3 | 0); + $1638 = +($sample_size$xdiv2$2 | 0); + $1639 = $para + 48 | 0; + $1640 = $para + 56 | 0; + $1641 = $para + 64 | 0; + $1642 = $para + 8 | 0; + $1643 = $para + 16 | 0; + $1644 = $para + 24 | 0; + $1645 = $para + 32 | 0; + $1646 = $para + 40 | 0; + $1647 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break; + $1649 = ($sample_size$xdiv2$2 | 0) > 0; + $j$14328 = 0; + while (1) { + $1654 = $1636 + $104 * (+($j$14328 | 0) + .5) / $1637; + if ($1649) { + $i$16324 = 0; + do { + $1659 = $1636 + $104 * (+($i$16324 | 0) + .5) / $1638; + $1666 = +HEAPF64[$1641 >> 3] + (+HEAPF64[$1639 >> 3] * $1659 + $1654 * +HEAPF64[$1640 >> 3]); + if ($1666 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1676 = (+HEAPF64[$1643 >> 3] + ($1659 * +HEAPF64[$para >> 3] + $1654 * +HEAPF64[$1642 >> 3])) / $1666; + HEAPF32[$xc2 >> 2] = $1676; + $1685 = (+HEAPF64[$1646 >> 3] + ($1659 * +HEAPF64[$1644 >> 3] + $1654 * +HEAPF64[$1645 >> 3])) / $1666; + HEAPF32[$yc2 >> 2] = $1685; + _arParamIdeal2ObservLTf($paramLTf, $1676, $1685, $xc2, $yc2) | 0; + $1686 = +HEAPF32[$xc2 >> 2]; + if ($1647) { + $xc$14 = ((~~($1686 + 1.0) | 0) / 2 | 0) << 1; + $yc$14 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$14 = ~~($1686 + .5); + $yc$14 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$14 | 0) > -1) if (($yc$14 | 0) < ($ysize | 0) & (($yc$14 | 0) > -1 & ($xc$14 | 0) < ($xsize | 0))) { + $1707 = (Math_imul($yc$14, $xsize) | 0) + $xc$14 << 2; + $1727 = $1433 + ((Math_imul(($j$14328 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$16324 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$1727 >> 2] = (HEAP32[$1727 >> 2] | 0) + ((((HEAPU8[$image + ($1707 | 2) >> 0] | 0) + (HEAPU8[$image + ($1707 | 1) >> 0] | 0) + (HEAPU8[$image + ($1707 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0); + } + $i$16324 = $i$16324 + 1 | 0; + } while (($i$16324 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$14328 = $j$14328 + 1 | 0; + if (($j$14328 | 0) >= ($ydiv2$3 | 0)) break L233; + } + } + switch ($pixelFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $1804 = $103 + 100.0; + $1805 = +($ydiv2$3 | 0); + $1806 = +($sample_size$xdiv2$2 | 0); + $1807 = $para + 48 | 0; + $1808 = $para + 56 | 0; + $1809 = $para + 64 | 0; + $1810 = $para + 8 | 0; + $1811 = $para + 16 | 0; + $1812 = $para + 24 | 0; + $1813 = $para + 32 | 0; + $1814 = $para + 40 | 0; + $1815 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1817 = ($sample_size$xdiv2$2 | 0) > 0; + $j$15334 = 0; + do { + $1822 = $1804 + $104 * (+($j$15334 | 0) + .5) / $1805; + if ($1817) { + $i$17330 = 0; + do { + $1827 = $1804 + $104 * (+($i$17330 | 0) + .5) / $1806; + $1834 = +HEAPF64[$1809 >> 3] + (+HEAPF64[$1807 >> 3] * $1827 + $1822 * +HEAPF64[$1808 >> 3]); + if ($1834 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1844 = (+HEAPF64[$1811 >> 3] + ($1827 * +HEAPF64[$para >> 3] + $1822 * +HEAPF64[$1810 >> 3])) / $1834; + HEAPF32[$xc2 >> 2] = $1844; + $1853 = (+HEAPF64[$1814 >> 3] + ($1827 * +HEAPF64[$1812 >> 3] + $1822 * +HEAPF64[$1813 >> 3])) / $1834; + HEAPF32[$yc2 >> 2] = $1853; + _arParamIdeal2ObservLTf($paramLTf, $1844, $1853, $xc2, $yc2) | 0; + $1854 = +HEAPF32[$xc2 >> 2]; + if ($1815) { + $xc$15 = ((~~($1854 + 1.0) | 0) / 2 | 0) << 1; + $yc$15 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$15 = ~~($1854 + .5); + $yc$15 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$15 | 0) > -1) if (($yc$15 | 0) < ($ysize | 0) & (($yc$15 | 0) > -1 & ($xc$15 | 0) < ($xsize | 0))) { + $1875 = $image + ((Math_imul($yc$15, $xsize) | 0) + $xc$15) | 0; + $1882 = $1433 + ((Math_imul(($j$15334 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$17330 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$1882 >> 2] = (HEAP32[$1882 >> 2] | 0) + (HEAPU8[$1875 >> 0] | 0); + } + $i$17330 = $i$17330 + 1 | 0; + } while (($i$17330 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$15334 = $j$15334 + 1 | 0; + } while (($j$15334 | 0) < ($ydiv2$3 | 0)); + break; + } + case 7: + { + $1790 = $103 + 100.0; + $1791 = +($ydiv2$3 | 0); + $1792 = +($sample_size$xdiv2$2 | 0); + $1793 = $para + 48 | 0; + $1794 = $para + 56 | 0; + $1795 = $para + 64 | 0; + $1796 = $para + 8 | 0; + $1797 = $para + 16 | 0; + $1798 = $para + 24 | 0; + $1799 = $para + 32 | 0; + $1800 = $para + 40 | 0; + $1801 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1803 = ($sample_size$xdiv2$2 | 0) > 0; + $j$16340 = 0; + do { + $1893 = $1790 + $104 * (+($j$16340 | 0) + .5) / $1791; + if ($1803) { + $i$18336 = 0; + do { + $1898 = $1790 + $104 * (+($i$18336 | 0) + .5) / $1792; + $1905 = +HEAPF64[$1795 >> 3] + (+HEAPF64[$1793 >> 3] * $1898 + $1893 * +HEAPF64[$1794 >> 3]); + if ($1905 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1915 = (+HEAPF64[$1797 >> 3] + ($1898 * +HEAPF64[$para >> 3] + $1893 * +HEAPF64[$1796 >> 3])) / $1905; + HEAPF32[$xc2 >> 2] = $1915; + $1924 = (+HEAPF64[$1800 >> 3] + ($1898 * +HEAPF64[$1798 >> 3] + $1893 * +HEAPF64[$1799 >> 3])) / $1905; + HEAPF32[$yc2 >> 2] = $1924; + _arParamIdeal2ObservLTf($paramLTf, $1915, $1924, $xc2, $yc2) | 0; + $1925 = +HEAPF32[$xc2 >> 2]; + if ($1801) { + $xc$16 = ((~~($1925 + 1.0) | 0) / 2 | 0) << 1; + $yc$16 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$16 = ~~($1925 + .5); + $yc$16 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$16 | 0) > -1) if (($yc$16 | 0) < ($ysize | 0) & (($yc$16 | 0) > -1 & ($xc$16 | 0) < ($xsize | 0))) { + $1948 = $image + ((Math_imul($yc$16, $xsize) | 0) + $xc$16 << 1 | 1) | 0; + $1955 = $1433 + ((Math_imul(($j$16340 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$18336 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$1955 >> 2] = (HEAP32[$1955 >> 2] | 0) + (HEAPU8[$1948 >> 0] | 0); + } + $i$18336 = $i$18336 + 1 | 0; + } while (($i$18336 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$16340 = $j$16340 + 1 | 0; + } while (($j$16340 | 0) < ($ydiv2$3 | 0)); + break; + } + case 8: + { + $1776 = $103 + 100.0; + $1777 = +($ydiv2$3 | 0); + $1778 = +($sample_size$xdiv2$2 | 0); + $1779 = $para + 48 | 0; + $1780 = $para + 56 | 0; + $1781 = $para + 64 | 0; + $1782 = $para + 8 | 0; + $1783 = $para + 16 | 0; + $1784 = $para + 24 | 0; + $1785 = $para + 32 | 0; + $1786 = $para + 40 | 0; + $1787 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1789 = ($sample_size$xdiv2$2 | 0) > 0; + $j$17346 = 0; + do { + $1966 = $1776 + $104 * (+($j$17346 | 0) + .5) / $1777; + if ($1789) { + $i$19342 = 0; + do { + $1971 = $1776 + $104 * (+($i$19342 | 0) + .5) / $1778; + $1978 = +HEAPF64[$1781 >> 3] + (+HEAPF64[$1779 >> 3] * $1971 + $1966 * +HEAPF64[$1780 >> 3]); + if ($1978 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $1988 = (+HEAPF64[$1783 >> 3] + ($1971 * +HEAPF64[$para >> 3] + $1966 * +HEAPF64[$1782 >> 3])) / $1978; + HEAPF32[$xc2 >> 2] = $1988; + $1997 = (+HEAPF64[$1786 >> 3] + ($1971 * +HEAPF64[$1784 >> 3] + $1966 * +HEAPF64[$1785 >> 3])) / $1978; + HEAPF32[$yc2 >> 2] = $1997; + _arParamIdeal2ObservLTf($paramLTf, $1988, $1997, $xc2, $yc2) | 0; + $1998 = +HEAPF32[$xc2 >> 2]; + if ($1787) { + $xc$17 = ((~~($1998 + 1.0) | 0) / 2 | 0) << 1; + $yc$17 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$17 = ~~($1998 + .5); + $yc$17 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$17 | 0) > -1) if (($yc$17 | 0) < ($ysize | 0) & (($yc$17 | 0) > -1 & ($xc$17 | 0) < ($xsize | 0))) { + $2020 = $image + ((Math_imul($yc$17, $xsize) | 0) + $xc$17 << 1) | 0; + $2027 = $1433 + ((Math_imul(($j$17346 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$19342 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$2027 >> 2] = (HEAP32[$2027 >> 2] | 0) + (HEAPU8[$2020 >> 0] | 0); + } + $i$19342 = $i$19342 + 1 | 0; + } while (($i$19342 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$17346 = $j$17346 + 1 | 0; + } while (($j$17346 | 0) < ($ydiv2$3 | 0)); + break; + } + case 9: + { + $1762 = $103 + 100.0; + $1763 = +($ydiv2$3 | 0); + $1764 = +($sample_size$xdiv2$2 | 0); + $1765 = $para + 48 | 0; + $1766 = $para + 56 | 0; + $1767 = $para + 64 | 0; + $1768 = $para + 8 | 0; + $1769 = $para + 16 | 0; + $1770 = $para + 24 | 0; + $1771 = $para + 32 | 0; + $1772 = $para + 40 | 0; + $1773 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1775 = ($sample_size$xdiv2$2 | 0) > 0; + $j$18352 = 0; + do { + $2038 = $1762 + $104 * (+($j$18352 | 0) + .5) / $1763; + if ($1775) { + $i$20348 = 0; + do { + $2043 = $1762 + $104 * (+($i$20348 | 0) + .5) / $1764; + $2050 = +HEAPF64[$1767 >> 3] + (+HEAPF64[$1765 >> 3] * $2043 + $2038 * +HEAPF64[$1766 >> 3]); + if ($2050 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $2060 = (+HEAPF64[$1769 >> 3] + ($2043 * +HEAPF64[$para >> 3] + $2038 * +HEAPF64[$1768 >> 3])) / $2050; + HEAPF32[$xc2 >> 2] = $2060; + $2069 = (+HEAPF64[$1772 >> 3] + ($2043 * +HEAPF64[$1770 >> 3] + $2038 * +HEAPF64[$1771 >> 3])) / $2050; + HEAPF32[$yc2 >> 2] = $2069; + _arParamIdeal2ObservLTf($paramLTf, $2060, $2069, $xc2, $yc2) | 0; + $2070 = +HEAPF32[$xc2 >> 2]; + if ($1773) { + $xc$18 = ((~~($2070 + 1.0) | 0) / 2 | 0) << 1; + $yc$18 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$18 = ~~($2070 + .5); + $yc$18 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$18 | 0) > -1) if (($yc$18 | 0) < ($ysize | 0) & (($yc$18 | 0) > -1 & ($xc$18 | 0) < ($xsize | 0))) { + $2091 = (Math_imul($yc$18, $xsize) | 0) + $xc$18 << 1; + $2094 = HEAPU8[$image + $2091 >> 0] | 0; + $2102 = HEAPU8[$image + ($2091 | 1) >> 0] | 0; + $2117 = $1433 + ((Math_imul(($j$18352 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$20348 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$2117 >> 2] = (HEAP32[$2117 >> 2] | 0) + (((($2102 << 3 & 248 | 4) + ($2094 & 248 | 4) + ($2094 << 5 & 224 | $2102 >>> 3 & 28 | 2) | 0) >>> 0) / 3 | 0); + } + $i$20348 = $i$20348 + 1 | 0; + } while (($i$20348 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$18352 = $j$18352 + 1 | 0; + } while (($j$18352 | 0) < ($ydiv2$3 | 0)); + break; + } + case 10: + { + $1748 = $103 + 100.0; + $1749 = +($ydiv2$3 | 0); + $1750 = +($sample_size$xdiv2$2 | 0); + $1751 = $para + 48 | 0; + $1752 = $para + 56 | 0; + $1753 = $para + 64 | 0; + $1754 = $para + 8 | 0; + $1755 = $para + 16 | 0; + $1756 = $para + 24 | 0; + $1757 = $para + 32 | 0; + $1758 = $para + 40 | 0; + $1759 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1761 = ($sample_size$xdiv2$2 | 0) > 0; + $j$19358 = 0; + do { + $2128 = $1748 + $104 * (+($j$19358 | 0) + .5) / $1749; + if ($1761) { + $i$21354 = 0; + do { + $2133 = $1748 + $104 * (+($i$21354 | 0) + .5) / $1750; + $2140 = +HEAPF64[$1753 >> 3] + (+HEAPF64[$1751 >> 3] * $2133 + $2128 * +HEAPF64[$1752 >> 3]); + if ($2140 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $2150 = (+HEAPF64[$1755 >> 3] + ($2133 * +HEAPF64[$para >> 3] + $2128 * +HEAPF64[$1754 >> 3])) / $2140; + HEAPF32[$xc2 >> 2] = $2150; + $2159 = (+HEAPF64[$1758 >> 3] + ($2133 * +HEAPF64[$1756 >> 3] + $2128 * +HEAPF64[$1757 >> 3])) / $2140; + HEAPF32[$yc2 >> 2] = $2159; + _arParamIdeal2ObservLTf($paramLTf, $2150, $2159, $xc2, $yc2) | 0; + $2160 = +HEAPF32[$xc2 >> 2]; + if ($1759) { + $xc$19 = ((~~($2160 + 1.0) | 0) / 2 | 0) << 1; + $yc$19 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$19 = ~~($2160 + .5); + $yc$19 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$19 | 0) > -1) if (($yc$19 | 0) < ($ysize | 0) & (($yc$19 | 0) > -1 & ($xc$19 | 0) < ($xsize | 0))) { + $2181 = (Math_imul($yc$19, $xsize) | 0) + $xc$19 << 1; + $2184 = HEAPU8[$image + $2181 >> 0] | 0; + $2192 = HEAPU8[$image + ($2181 | 1) >> 0] | 0; + $2207 = $1433 + ((Math_imul(($j$19358 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$21354 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$2207 >> 2] = (HEAP32[$2207 >> 2] | 0) + (((($2192 << 2 & 248 | 4) + ($2184 & 248 | 4) + ($2184 << 5 & 224 | $2192 >>> 3 & 24 | 4) | 0) >>> 0) / 3 | 0); + } + $i$21354 = $i$21354 + 1 | 0; + } while (($i$21354 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$19358 = $j$19358 + 1 | 0; + } while (($j$19358 | 0) < ($ydiv2$3 | 0)); + break; + } + case 11: + { + $1734 = $103 + 100.0; + $1735 = +($ydiv2$3 | 0); + $1736 = +($sample_size$xdiv2$2 | 0); + $1737 = $para + 48 | 0; + $1738 = $para + 56 | 0; + $1739 = $para + 64 | 0; + $1740 = $para + 8 | 0; + $1741 = $para + 16 | 0; + $1742 = $para + 24 | 0; + $1743 = $para + 32 | 0; + $1744 = $para + 40 | 0; + $1745 = ($imageProcMode | 0) == 1; + if (($ydiv2$3 | 0) <= 0) break L233; + $1747 = ($sample_size$xdiv2$2 | 0) > 0; + $j$20364 = 0; + do { + $2218 = $1734 + $104 * (+($j$20364 | 0) + .5) / $1735; + if ($1747) { + $i$22360 = 0; + do { + $2223 = $1734 + $104 * (+($i$22360 | 0) + .5) / $1736; + $2230 = +HEAPF64[$1739 >> 3] + (+HEAPF64[$1737 >> 3] * $2223 + $2218 * +HEAPF64[$1738 >> 3]); + if ($2230 == 0.0) { + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + $2240 = (+HEAPF64[$1741 >> 3] + ($2223 * +HEAPF64[$para >> 3] + $2218 * +HEAPF64[$1740 >> 3])) / $2230; + HEAPF32[$xc2 >> 2] = $2240; + $2249 = (+HEAPF64[$1744 >> 3] + ($2223 * +HEAPF64[$1742 >> 3] + $2218 * +HEAPF64[$1743 >> 3])) / $2230; + HEAPF32[$yc2 >> 2] = $2249; + _arParamIdeal2ObservLTf($paramLTf, $2240, $2249, $xc2, $yc2) | 0; + $2250 = +HEAPF32[$xc2 >> 2]; + if ($1745) { + $xc$20 = ((~~($2250 + 1.0) | 0) / 2 | 0) << 1; + $yc$20 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; + } else { + $xc$20 = ~~($2250 + .5); + $yc$20 = ~~(+HEAPF32[$yc2 >> 2] + .5); + } + if (($xc$20 | 0) > -1) if (($yc$20 | 0) < ($ysize | 0) & (($yc$20 | 0) > -1 & ($xc$20 | 0) < ($xsize | 0))) { + $2271 = (Math_imul($yc$20, $xsize) | 0) + $xc$20 << 1; + $2274 = HEAPU8[$image + $2271 >> 0] | 0; + $2293 = $1433 + ((Math_imul(($j$20364 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$22360 | 0) / ($99 | 0) | 0) << 2) | 0; + HEAP32[$2293 >> 2] = (HEAP32[$2293 >> 2] | 0) + (((($2274 << 4 & 240 | 8) + ($2274 & 240 | 8) + ((HEAPU8[$image + ($2271 | 1) >> 0] | 0) & 240 | 8) | 0) >>> 0) / 3 | 0); + } + $i$22360 = $i$22360 + 1 | 0; + } while (($i$22360 | 0) < ($sample_size$xdiv2$2 | 0)); + } + $j$20364 = $j$20364 + 1 | 0; + } while (($j$20364 | 0) < ($ydiv2$3 | 0)); + break; + } + default: + { + _arLog(3, 18803, $vararg_buffer5); + $ext_patt2$0 = $1433; + label = 278; + break L13; + } + } + } while (0); + $1450 = Math_imul($100, $99) | 0; + if ($106) { + $i$23309 = 0; + do { + HEAP8[$ext_patt + $i$23309 >> 0] = ((HEAP32[$1433 + ($i$23309 << 2) >> 2] | 0) >>> 0) / ($1450 >>> 0) | 0; + $i$23309 = $i$23309 + 1 | 0; + } while (($i$23309 | 0) < ($106 | 0)); + } + _free($1433); + $$0 = 0; + } while (0); + if ((label | 0) == 278) { + _free($ext_patt2$0); + $$0 = -1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i103 = 0, $$0$i$i$i108 = 0, $$0$i$i$i113 = 0, $$0$i$i$i118 = 0, $$0$i$i$i123 = 0, $$0$i$i$i128 = 0, $$0$i$i$i133 = 0, $$0$i$i$i138 = 0, $$0$i$i$i14 = 0, $$0$i$i$i143 = 0, $$0$i$i$i19 = 0, $$0$i$i$i24 = 0, $$0$i$i$i29 = 0, $$0$i$i$i34 = 0, $$0$i$i$i39 = 0, $$0$i$i$i4 = 0, $$0$i$i$i44 = 0, $$0$i$i$i49 = 0, $$0$i$i$i54 = 0, $$0$i$i$i59 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i88 = 0, $$0$i$i$i9 = 0, $$0$i$i$i93 = 0, $$0$i$i$i98 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $106 = 0, $108 = 0, $11 = 0, $111 = 0, $112 = 0, $115 = 0, $116 = 0, $118 = 0, $12 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $132 = 0, $134 = 0, $137 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $144 = 0, $15 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $158 = 0, $16 = 0, $160 = 0, $163 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $19 = 0, $190 = 0, $193 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $21 = 0, $210 = 0, $212 = 0, $215 = 0, $216 = 0, $219 = 0, $22 = 0, $220 = 0, $222 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $238 = 0, $24 = 0, $241 = 0, $242 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $26 = 0, $262 = 0, $264 = 0, $267 = 0, $268 = 0, $27 = 0, $271 = 0, $272 = 0, $274 = 0, $28 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $288 = 0, $290 = 0, $293 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $300 = 0, $307 = 0, $308 = 0, $309 = 0, $310 = 0, $314 = 0, $316 = 0, $319 = 0, $32 = 0, $320 = 0, $323 = 0, $324 = 0, $326 = 0, $33 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $340 = 0, $342 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $350 = 0, $352 = 0, $359 = 0, $360 = 0, $361 = 0, $362 = 0, $366 = 0, $368 = 0, $371 = 0, $372 = 0, $375 = 0, $379 = 0, $382 = 0, $383 = 0, $385 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $399 = 0, $4 = 0, $401 = 0, $404 = 0, $405 = 0, $408 = 0, $409 = 0, $411 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $425 = 0, $427 = 0, $43 = 0, $430 = 0, $431 = 0, $434 = 0, $435 = 0, $437 = 0, $44 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $45 = 0, $451 = 0, $453 = 0, $456 = 0, $457 = 0, $460 = 0, $461 = 0, $463 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $477 = 0, $479 = 0, $482 = 0, $483 = 0, $486 = 0, $488 = 0, $49 = 0, $491 = 0, $492 = 0, $494 = 0, $5 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $508 = 0, $51 = 0, $510 = 0, $513 = 0, $514 = 0, $517 = 0, $518 = 0, $520 = 0, $527 = 0, $528 = 0, $529 = 0, $530 = 0, $534 = 0, $536 = 0, $539 = 0, $54 = 0, $540 = 0, $543 = 0, $544 = 0, $546 = 0, $55 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $560 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $570 = 0, $572 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $586 = 0, $588 = 0, $591 = 0, $592 = 0, $595 = 0, $596 = 0, $598 = 0, $6 = 0, $60 = 0, $602 = 0, $603 = 0, $605 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $619 = 0, $621 = 0, $624 = 0, $625 = 0, $628 = 0, $629 = 0, $63 = 0, $631 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $645 = 0, $647 = 0, $650 = 0, $651 = 0, $654 = 0, $655 = 0, $657 = 0, $66 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $671 = 0, $673 = 0, $676 = 0, $677 = 0, $680 = 0, $681 = 0, $683 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $697 = 0, $699 = 0, $7 = 0, $702 = 0, $703 = 0, $706 = 0, $707 = 0, $709 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $723 = 0, $725 = 0, $728 = 0, $729 = 0, $73 = 0, $732 = 0, $733 = 0, $735 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $749 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $758 = 0, $759 = 0, $76 = 0, $761 = 0, $768 = 0, $769 = 0, $770 = 0, $771 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $8 = 0, $80 = 0, $801 = 0, $803 = 0, $806 = 0, $807 = 0, $82 = 0, $85 = 0, $86 = 0, $89 = 0, $9 = 0, $90 = 0, $92 = 0, $99 = 0, $__v$i$i142 = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 720 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i142 = sp + 696 | 0; + $0 = sp + 672 | 0; + $1 = sp + 648 | 0; + $2 = sp + 624 | 0; + $3 = sp + 600 | 0; + $4 = sp + 576 | 0; + $5 = sp + 552 | 0; + $6 = sp + 528 | 0; + $7 = sp + 504 | 0; + $8 = sp + 480 | 0; + $9 = sp + 456 | 0; + $10 = sp + 432 | 0; + $11 = sp + 408 | 0; + $12 = sp + 384 | 0; + $13 = sp + 360 | 0; + $14 = sp + 336 | 0; + $15 = sp + 312 | 0; + $16 = sp + 288 | 0; + $17 = sp + 264 | 0; + $18 = sp + 240 | 0; + $19 = sp + 216 | 0; + $20 = sp + 192 | 0; + $21 = sp + 168 | 0; + $22 = sp + 144 | 0; + $23 = sp + 120 | 0; + $24 = sp + 96 | 0; + $25 = sp + 72 | 0; + $26 = sp + 48 | 0; + $27 = sp + 24 | 0; + $28 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else do switch (HEAP8[$first >> 0] | 0) { + case 118: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($0, 49354); + $32 = $db + 4 | 0; + $33 = HEAP32[$32 >> 2] | 0; + $35 = HEAP32[$db + 8 >> 2] | 0; + if ($33 >>> 0 < $35 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($33, $0); + HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 24; + } else { + $42 = HEAP32[$db >> 2] | 0; + $43 = $33 - $42 | 0; + $44 = ($43 | 0) / 24 | 0; + $45 = $44 + 1 | 0; + if (($43 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $49 = ($35 - $42 | 0) / 24 | 0; + if ($49 >>> 0 < 1073741823) { + $51 = $49 << 1; + $$0$i$i$i = $51 >>> 0 < $45 >>> 0 ? $45 : $51; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i, $44, $db + 12 | 0); + $54 = $__v$i$i142 + 8 | 0; + $55 = HEAP32[$54 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($55, $0); + HEAP32[$54 >> 2] = $55 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 119: + { + HEAP8[$1 >> 0] = 14; + $58 = $1 + 1 | 0; + HEAP8[$58 >> 0] = HEAP8[48933] | 0; + HEAP8[$58 + 1 >> 0] = HEAP8[48934] | 0; + HEAP8[$58 + 2 >> 0] = HEAP8[48935] | 0; + HEAP8[$58 + 3 >> 0] = HEAP8[48936] | 0; + HEAP8[$58 + 4 >> 0] = HEAP8[48937] | 0; + HEAP8[$58 + 5 >> 0] = HEAP8[48938] | 0; + HEAP8[$58 + 6 >> 0] = HEAP8[48939] | 0; + HEAP8[$1 + 8 >> 0] = 0; + $60 = $1 + 12 | 0; + HEAP32[$60 >> 2] = 0; + HEAP32[$60 + 4 >> 2] = 0; + HEAP32[$60 + 8 >> 2] = 0; + $63 = $db + 4 | 0; + $64 = HEAP32[$63 >> 2] | 0; + $66 = HEAP32[$db + 8 >> 2] | 0; + if ($64 >>> 0 < $66 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1); + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + 24; + } else { + $73 = HEAP32[$db >> 2] | 0; + $74 = $64 - $73 | 0; + $75 = ($74 | 0) / 24 | 0; + $76 = $75 + 1 | 0; + if (($74 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $80 = ($66 - $73 | 0) / 24 | 0; + if ($80 >>> 0 < 1073741823) { + $82 = $80 << 1; + $$0$i$i$i4 = $82 >>> 0 < $76 >>> 0 ? $76 : $82; + } else $$0$i$i$i4 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i4, $75, $db + 12 | 0); + $85 = $__v$i$i142 + 8 | 0; + $86 = HEAP32[$85 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($86, $1); + HEAP32[$85 >> 2] = $86 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 98: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($2, 49359); + $89 = $db + 4 | 0; + $90 = HEAP32[$89 >> 2] | 0; + $92 = HEAP32[$db + 8 >> 2] | 0; + if ($90 >>> 0 < $92 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2); + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 24; + } else { + $99 = HEAP32[$db >> 2] | 0; + $100 = $90 - $99 | 0; + $101 = ($100 | 0) / 24 | 0; + $102 = $101 + 1 | 0; + if (($100 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $106 = ($92 - $99 | 0) / 24 | 0; + if ($106 >>> 0 < 1073741823) { + $108 = $106 << 1; + $$0$i$i$i9 = $108 >>> 0 < $102 >>> 0 ? $102 : $108; + } else $$0$i$i$i9 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i9, $101, $db + 12 | 0); + $111 = $__v$i$i142 + 8 | 0; + $112 = HEAP32[$111 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($112, $2); + HEAP32[$111 >> 2] = $112 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 99: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($3, 48941); + $115 = $db + 4 | 0; + $116 = HEAP32[$115 >> 2] | 0; + $118 = HEAP32[$db + 8 >> 2] | 0; + if ($116 >>> 0 < $118 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3); + HEAP32[$115 >> 2] = (HEAP32[$115 >> 2] | 0) + 24; + } else { + $125 = HEAP32[$db >> 2] | 0; + $126 = $116 - $125 | 0; + $127 = ($126 | 0) / 24 | 0; + $128 = $127 + 1 | 0; + if (($126 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $132 = ($118 - $125 | 0) / 24 | 0; + if ($132 >>> 0 < 1073741823) { + $134 = $132 << 1; + $$0$i$i$i14 = $134 >>> 0 < $128 >>> 0 ? $128 : $134; + } else $$0$i$i$i14 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i14, $127, $db + 12 | 0); + $137 = $__v$i$i142 + 8 | 0; + $138 = HEAP32[$137 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($138, $3); + HEAP32[$137 >> 2] = $138 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($4, 48946); + $141 = $db + 4 | 0; + $142 = HEAP32[$141 >> 2] | 0; + $144 = HEAP32[$db + 8 >> 2] | 0; + if ($142 >>> 0 < $144 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4); + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 24; + } else { + $151 = HEAP32[$db >> 2] | 0; + $152 = $142 - $151 | 0; + $153 = ($152 | 0) / 24 | 0; + $154 = $153 + 1 | 0; + if (($152 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $158 = ($144 - $151 | 0) / 24 | 0; + if ($158 >>> 0 < 1073741823) { + $160 = $158 << 1; + $$0$i$i$i19 = $160 >>> 0 < $154 >>> 0 ? $154 : $160; + } else $$0$i$i$i19 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i19, $153, $db + 12 | 0); + $163 = $__v$i$i142 + 8 | 0; + $164 = HEAP32[$163 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($164, $4); + HEAP32[$163 >> 2] = $164 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 104: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 48958); + $167 = $db + 4 | 0; + $168 = HEAP32[$167 >> 2] | 0; + $170 = HEAP32[$db + 8 >> 2] | 0; + if ($168 >>> 0 < $170 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5); + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24; + } else { + $177 = HEAP32[$db >> 2] | 0; + $178 = $168 - $177 | 0; + $179 = ($178 | 0) / 24 | 0; + $180 = $179 + 1 | 0; + if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $184 = ($170 - $177 | 0) / 24 | 0; + if ($184 >>> 0 < 1073741823) { + $186 = $184 << 1; + $$0$i$i$i24 = $186 >>> 0 < $180 >>> 0 ? $180 : $186; + } else $$0$i$i$i24 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i24, $179, $db + 12 | 0); + $189 = $__v$i$i142 + 8 | 0; + $190 = HEAP32[$189 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $5); + HEAP32[$189 >> 2] = $190 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($6, 48972); + $193 = $db + 4 | 0; + $194 = HEAP32[$193 >> 2] | 0; + $196 = HEAP32[$db + 8 >> 2] | 0; + if ($194 >>> 0 < $196 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($194, $6); + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 24; + } else { + $203 = HEAP32[$db >> 2] | 0; + $204 = $194 - $203 | 0; + $205 = ($204 | 0) / 24 | 0; + $206 = $205 + 1 | 0; + if (($204 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $210 = ($196 - $203 | 0) / 24 | 0; + if ($210 >>> 0 < 1073741823) { + $212 = $210 << 1; + $$0$i$i$i29 = $212 >>> 0 < $206 >>> 0 ? $206 : $212; + } else $$0$i$i$i29 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i29, $205, $db + 12 | 0); + $215 = $__v$i$i142 + 8 | 0; + $216 = HEAP32[$215 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($216, $6); + HEAP32[$215 >> 2] = $216 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 116: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($7, 48978); + $219 = $db + 4 | 0; + $220 = HEAP32[$219 >> 2] | 0; + $222 = HEAP32[$db + 8 >> 2] | 0; + if ($220 >>> 0 < $222 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($220, $7); + HEAP32[$219 >> 2] = (HEAP32[$219 >> 2] | 0) + 24; + } else { + $229 = HEAP32[$db >> 2] | 0; + $230 = $220 - $229 | 0; + $231 = ($230 | 0) / 24 | 0; + $232 = $231 + 1 | 0; + if (($230 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $236 = ($222 - $229 | 0) / 24 | 0; + if ($236 >>> 0 < 1073741823) { + $238 = $236 << 1; + $$0$i$i$i34 = $238 >>> 0 < $232 >>> 0 ? $232 : $238; + } else $$0$i$i$i34 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i34, $231, $db + 12 | 0); + $241 = $__v$i$i142 + 8 | 0; + $242 = HEAP32[$241 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($242, $7); + HEAP32[$241 >> 2] = $242 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 105: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($8, 49364); + $245 = $db + 4 | 0; + $246 = HEAP32[$245 >> 2] | 0; + $248 = HEAP32[$db + 8 >> 2] | 0; + if ($246 >>> 0 < $248 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($246, $8); + HEAP32[$245 >> 2] = (HEAP32[$245 >> 2] | 0) + 24; + } else { + $255 = HEAP32[$db >> 2] | 0; + $256 = $246 - $255 | 0; + $257 = ($256 | 0) / 24 | 0; + $258 = $257 + 1 | 0; + if (($256 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $262 = ($248 - $255 | 0) / 24 | 0; + if ($262 >>> 0 < 1073741823) { + $264 = $262 << 1; + $$0$i$i$i39 = $264 >>> 0 < $258 >>> 0 ? $258 : $264; + } else $$0$i$i$i39 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i39, $257, $db + 12 | 0); + $267 = $__v$i$i142 + 8 | 0; + $268 = HEAP32[$267 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($268, $8); + HEAP32[$267 >> 2] = $268 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 106: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($9, 49368); + $271 = $db + 4 | 0; + $272 = HEAP32[$271 >> 2] | 0; + $274 = HEAP32[$db + 8 >> 2] | 0; + if ($272 >>> 0 < $274 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($272, $9); + HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + 24; + } else { + $281 = HEAP32[$db >> 2] | 0; + $282 = $272 - $281 | 0; + $283 = ($282 | 0) / 24 | 0; + $284 = $283 + 1 | 0; + if (($282 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $288 = ($274 - $281 | 0) / 24 | 0; + if ($288 >>> 0 < 1073741823) { + $290 = $288 << 1; + $$0$i$i$i44 = $290 >>> 0 < $284 >>> 0 ? $284 : $290; + } else $$0$i$i$i44 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i44, $283, $db + 12 | 0); + $293 = $__v$i$i142 + 8 | 0; + $294 = HEAP32[$293 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($294, $9); + HEAP32[$293 >> 2] = $294 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 108: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($10, 49381); + $297 = $db + 4 | 0; + $298 = HEAP32[$297 >> 2] | 0; + $300 = HEAP32[$db + 8 >> 2] | 0; + if ($298 >>> 0 < $300 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($298, $10); + HEAP32[$297 >> 2] = (HEAP32[$297 >> 2] | 0) + 24; + } else { + $307 = HEAP32[$db >> 2] | 0; + $308 = $298 - $307 | 0; + $309 = ($308 | 0) / 24 | 0; + $310 = $309 + 1 | 0; + if (($308 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $314 = ($300 - $307 | 0) / 24 | 0; + if ($314 >>> 0 < 1073741823) { + $316 = $314 << 1; + $$0$i$i$i49 = $316 >>> 0 < $310 >>> 0 ? $310 : $316; + } else $$0$i$i$i49 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i49, $309, $db + 12 | 0); + $319 = $__v$i$i142 + 8 | 0; + $320 = HEAP32[$319 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($320, $10); + HEAP32[$319 >> 2] = $320 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 109: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($11, 49386); + $323 = $db + 4 | 0; + $324 = HEAP32[$323 >> 2] | 0; + $326 = HEAP32[$db + 8 >> 2] | 0; + if ($324 >>> 0 < $326 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($324, $11); + HEAP32[$323 >> 2] = (HEAP32[$323 >> 2] | 0) + 24; + } else { + $333 = HEAP32[$db >> 2] | 0; + $334 = $324 - $333 | 0; + $335 = ($334 | 0) / 24 | 0; + $336 = $335 + 1 | 0; + if (($334 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $340 = ($326 - $333 | 0) / 24 | 0; + if ($340 >>> 0 < 1073741823) { + $342 = $340 << 1; + $$0$i$i$i54 = $342 >>> 0 < $336 >>> 0 ? $336 : $342; + } else $$0$i$i$i54 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i54, $335, $db + 12 | 0); + $345 = $__v$i$i142 + 8 | 0; + $346 = HEAP32[$345 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($346, $11); + HEAP32[$345 >> 2] = $346 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 120: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 49400); + $349 = $db + 4 | 0; + $350 = HEAP32[$349 >> 2] | 0; + $352 = HEAP32[$db + 8 >> 2] | 0; + if ($350 >>> 0 < $352 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($350, $12); + HEAP32[$349 >> 2] = (HEAP32[$349 >> 2] | 0) + 24; + } else { + $359 = HEAP32[$db >> 2] | 0; + $360 = $350 - $359 | 0; + $361 = ($360 | 0) / 24 | 0; + $362 = $361 + 1 | 0; + if (($360 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $366 = ($352 - $359 | 0) / 24 | 0; + if ($366 >>> 0 < 1073741823) { + $368 = $366 << 1; + $$0$i$i$i59 = $368 >>> 0 < $362 >>> 0 ? $362 : $368; + } else $$0$i$i$i59 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i59, $361, $db + 12 | 0); + $371 = $__v$i$i142 + 8 | 0; + $372 = HEAP32[$371 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($372, $12); + HEAP32[$371 >> 2] = $372 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 121: + { + $375 = _malloc(32) | 0; + HEAP32[$13 + 8 >> 2] = $375; + HEAP32[$13 >> 2] = 33; + HEAP32[$13 + 4 >> 2] = 18; + dest = $375; + src = 49410; + stop = dest + 18 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$375 + 18 >> 0] = 0; + $379 = $13 + 12 | 0; + HEAP32[$379 >> 2] = 0; + HEAP32[$379 + 4 >> 2] = 0; + HEAP32[$379 + 8 >> 2] = 0; + $382 = $db + 4 | 0; + $383 = HEAP32[$382 >> 2] | 0; + $385 = HEAP32[$db + 8 >> 2] | 0; + if ($383 >>> 0 < $385 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($383, $13); + HEAP32[$382 >> 2] = (HEAP32[$382 >> 2] | 0) + 24; + } else { + $392 = HEAP32[$db >> 2] | 0; + $393 = $383 - $392 | 0; + $394 = ($393 | 0) / 24 | 0; + $395 = $394 + 1 | 0; + if (($393 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $399 = ($385 - $392 | 0) / 24 | 0; + if ($399 >>> 0 < 1073741823) { + $401 = $399 << 1; + $$0$i$i$i66 = $401 >>> 0 < $395 >>> 0 ? $395 : $401; + } else $$0$i$i$i66 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i66, $394, $db + 12 | 0); + $404 = $__v$i$i142 + 8 | 0; + $405 = HEAP32[$404 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($405, $13); + HEAP32[$404 >> 2] = $405 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 110: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($14, 49002); + $408 = $db + 4 | 0; + $409 = HEAP32[$408 >> 2] | 0; + $411 = HEAP32[$db + 8 >> 2] | 0; + if ($409 >>> 0 < $411 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($409, $14); + HEAP32[$408 >> 2] = (HEAP32[$408 >> 2] | 0) + 24; + } else { + $418 = HEAP32[$db >> 2] | 0; + $419 = $409 - $418 | 0; + $420 = ($419 | 0) / 24 | 0; + $421 = $420 + 1 | 0; + if (($419 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $425 = ($411 - $418 | 0) / 24 | 0; + if ($425 >>> 0 < 1073741823) { + $427 = $425 << 1; + $$0$i$i$i71 = $427 >>> 0 < $421 >>> 0 ? $421 : $427; + } else $$0$i$i$i71 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i71, $420, $db + 12 | 0); + $430 = $__v$i$i142 + 8 | 0; + $431 = HEAP32[$430 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($431, $14); + HEAP32[$430 >> 2] = $431 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 111: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($15, 49011); + $434 = $db + 4 | 0; + $435 = HEAP32[$434 >> 2] | 0; + $437 = HEAP32[$db + 8 >> 2] | 0; + if ($435 >>> 0 < $437 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($435, $15); + HEAP32[$434 >> 2] = (HEAP32[$434 >> 2] | 0) + 24; + } else { + $444 = HEAP32[$db >> 2] | 0; + $445 = $435 - $444 | 0; + $446 = ($445 | 0) / 24 | 0; + $447 = $446 + 1 | 0; + if (($445 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $451 = ($437 - $444 | 0) / 24 | 0; + if ($451 >>> 0 < 1073741823) { + $453 = $451 << 1; + $$0$i$i$i76 = $453 >>> 0 < $447 >>> 0 ? $447 : $453; + } else $$0$i$i$i76 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i76, $446, $db + 12 | 0); + $456 = $__v$i$i142 + 8 | 0; + $457 = HEAP32[$456 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($457, $15); + HEAP32[$456 >> 2] = $457 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 102: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($16, 49429); + $460 = $db + 4 | 0; + $461 = HEAP32[$460 >> 2] | 0; + $463 = HEAP32[$db + 8 >> 2] | 0; + if ($461 >>> 0 < $463 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($461, $16); + HEAP32[$460 >> 2] = (HEAP32[$460 >> 2] | 0) + 24; + } else { + $470 = HEAP32[$db >> 2] | 0; + $471 = $461 - $470 | 0; + $472 = ($471 | 0) / 24 | 0; + $473 = $472 + 1 | 0; + if (($471 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $477 = ($463 - $470 | 0) / 24 | 0; + if ($477 >>> 0 < 1073741823) { + $479 = $477 << 1; + $$0$i$i$i81 = $479 >>> 0 < $473 >>> 0 ? $473 : $479; + } else $$0$i$i$i81 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i81, $472, $db + 12 | 0); + $482 = $__v$i$i142 + 8 | 0; + $483 = HEAP32[$482 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($483, $16); + HEAP32[$482 >> 2] = $483 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 100: + { + HEAP8[$17 >> 0] = 12; + $486 = $17 + 1 | 0; + HEAP8[$486 >> 0] = HEAP8[49435] | 0; + HEAP8[$486 + 1 >> 0] = HEAP8[49436] | 0; + HEAP8[$486 + 2 >> 0] = HEAP8[49437] | 0; + HEAP8[$486 + 3 >> 0] = HEAP8[49438] | 0; + HEAP8[$486 + 4 >> 0] = HEAP8[49439] | 0; + HEAP8[$486 + 5 >> 0] = HEAP8[49440] | 0; + HEAP8[$17 + 7 >> 0] = 0; + $488 = $17 + 12 | 0; + HEAP32[$488 >> 2] = 0; + HEAP32[$488 + 4 >> 2] = 0; + HEAP32[$488 + 8 >> 2] = 0; + $491 = $db + 4 | 0; + $492 = HEAP32[$491 >> 2] | 0; + $494 = HEAP32[$db + 8 >> 2] | 0; + if ($492 >>> 0 < $494 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($492, $17); + HEAP32[$491 >> 2] = (HEAP32[$491 >> 2] | 0) + 24; + } else { + $501 = HEAP32[$db >> 2] | 0; + $502 = $492 - $501 | 0; + $503 = ($502 | 0) / 24 | 0; + $504 = $503 + 1 | 0; + if (($502 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $508 = ($494 - $501 | 0) / 24 | 0; + if ($508 >>> 0 < 1073741823) { + $510 = $508 << 1; + $$0$i$i$i88 = $510 >>> 0 < $504 >>> 0 ? $504 : $510; + } else $$0$i$i$i88 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i88, $503, $db + 12 | 0); + $513 = $__v$i$i142 + 8 | 0; + $514 = HEAP32[$513 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($514, $17); + HEAP32[$513 >> 2] = $514 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($18, 49442); + $517 = $db + 4 | 0; + $518 = HEAP32[$517 >> 2] | 0; + $520 = HEAP32[$db + 8 >> 2] | 0; + if ($518 >>> 0 < $520 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($518, $18); + HEAP32[$517 >> 2] = (HEAP32[$517 >> 2] | 0) + 24; + } else { + $527 = HEAP32[$db >> 2] | 0; + $528 = $518 - $527 | 0; + $529 = ($528 | 0) / 24 | 0; + $530 = $529 + 1 | 0; + if (($528 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $534 = ($520 - $527 | 0) / 24 | 0; + if ($534 >>> 0 < 1073741823) { + $536 = $534 << 1; + $$0$i$i$i93 = $536 >>> 0 < $530 >>> 0 ? $530 : $536; + } else $$0$i$i$i93 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i93, $529, $db + 12 | 0); + $539 = $__v$i$i142 + 8 | 0; + $540 = HEAP32[$539 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($540, $18); + HEAP32[$539 >> 2] = $540 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 103: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 49454); + $543 = $db + 4 | 0; + $544 = HEAP32[$543 >> 2] | 0; + $546 = HEAP32[$db + 8 >> 2] | 0; + if ($544 >>> 0 < $546 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($544, $19); + HEAP32[$543 >> 2] = (HEAP32[$543 >> 2] | 0) + 24; + } else { + $553 = HEAP32[$db >> 2] | 0; + $554 = $544 - $553 | 0; + $555 = ($554 | 0) / 24 | 0; + $556 = $555 + 1 | 0; + if (($554 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $560 = ($546 - $553 | 0) / 24 | 0; + if ($560 >>> 0 < 1073741823) { + $562 = $560 << 1; + $$0$i$i$i98 = $562 >>> 0 < $556 >>> 0 ? $556 : $562; + } else $$0$i$i$i98 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i98, $555, $db + 12 | 0); + $565 = $__v$i$i142 + 8 | 0; + $566 = HEAP32[$565 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($566, $19); + HEAP32[$565 >> 2] = $566 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 122: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($20, 49465); + $569 = $db + 4 | 0; + $570 = HEAP32[$569 >> 2] | 0; + $572 = HEAP32[$db + 8 >> 2] | 0; + if ($570 >>> 0 < $572 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($570, $20); + HEAP32[$569 >> 2] = (HEAP32[$569 >> 2] | 0) + 24; + } else { + $579 = HEAP32[$db >> 2] | 0; + $580 = $570 - $579 | 0; + $581 = ($580 | 0) / 24 | 0; + $582 = $581 + 1 | 0; + if (($580 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $586 = ($572 - $579 | 0) / 24 | 0; + if ($586 >>> 0 < 1073741823) { + $588 = $586 << 1; + $$0$i$i$i103 = $588 >>> 0 < $582 >>> 0 ? $582 : $588; + } else $$0$i$i$i103 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i103, $581, $db + 12 | 0); + $591 = $__v$i$i142 + 8 | 0; + $592 = HEAP32[$591 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($592, $20); + HEAP32[$591 >> 2] = $592 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20); + $$0 = $first + 1 | 0; + break L1; + break; + } + case 117: + { + $595 = $first + 1 | 0; + $596 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($595, $last, $db) | 0; + STACKTOP = sp; + return (($596 | 0) == ($595 | 0) ? $first : $596) | 0; + } + case 68: + { + $598 = $first + 1 | 0; + if (($598 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + switch (HEAP8[$598 >> 0] | 0) { + case 100: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 49469); + $602 = $db + 4 | 0; + $603 = HEAP32[$602 >> 2] | 0; + $605 = HEAP32[$db + 8 >> 2] | 0; + if ($603 >>> 0 < $605 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($603, $21); + HEAP32[$602 >> 2] = (HEAP32[$602 >> 2] | 0) + 24; + } else { + $612 = HEAP32[$db >> 2] | 0; + $613 = $603 - $612 | 0; + $614 = ($613 | 0) / 24 | 0; + $615 = $614 + 1 | 0; + if (($613 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $619 = ($605 - $612 | 0) / 24 | 0; + if ($619 >>> 0 < 1073741823) { + $621 = $619 << 1; + $$0$i$i$i108 = $621 >>> 0 < $615 >>> 0 ? $615 : $621; + } else $$0$i$i$i108 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i108, $614, $db + 12 | 0); + $624 = $__v$i$i142 + 8 | 0; + $625 = HEAP32[$624 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($625, $21); + HEAP32[$624 >> 2] = $625 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 101: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($22, 49479); + $628 = $db + 4 | 0; + $629 = HEAP32[$628 >> 2] | 0; + $631 = HEAP32[$db + 8 >> 2] | 0; + if ($629 >>> 0 < $631 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($629, $22); + HEAP32[$628 >> 2] = (HEAP32[$628 >> 2] | 0) + 24; + } else { + $638 = HEAP32[$db >> 2] | 0; + $639 = $629 - $638 | 0; + $640 = ($639 | 0) / 24 | 0; + $641 = $640 + 1 | 0; + if (($639 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $645 = ($631 - $638 | 0) / 24 | 0; + if ($645 >>> 0 < 1073741823) { + $647 = $645 << 1; + $$0$i$i$i113 = $647 >>> 0 < $641 >>> 0 ? $641 : $647; + } else $$0$i$i$i113 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i113, $640, $db + 12 | 0); + $650 = $__v$i$i142 + 8 | 0; + $651 = HEAP32[$650 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($651, $22); + HEAP32[$650 >> 2] = $651 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 102: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($23, 49490); + $654 = $db + 4 | 0; + $655 = HEAP32[$654 >> 2] | 0; + $657 = HEAP32[$db + 8 >> 2] | 0; + if ($655 >>> 0 < $657 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($655, $23); + HEAP32[$654 >> 2] = (HEAP32[$654 >> 2] | 0) + 24; + } else { + $664 = HEAP32[$db >> 2] | 0; + $665 = $655 - $664 | 0; + $666 = ($665 | 0) / 24 | 0; + $667 = $666 + 1 | 0; + if (($665 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $671 = ($657 - $664 | 0) / 24 | 0; + if ($671 >>> 0 < 1073741823) { + $673 = $671 << 1; + $$0$i$i$i118 = $673 >>> 0 < $667 >>> 0 ? $667 : $673; + } else $$0$i$i$i118 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i118, $666, $db + 12 | 0); + $676 = $__v$i$i142 + 8 | 0; + $677 = HEAP32[$676 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($677, $23); + HEAP32[$676 >> 2] = $677 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 104: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 49500); + $680 = $db + 4 | 0; + $681 = HEAP32[$680 >> 2] | 0; + $683 = HEAP32[$db + 8 >> 2] | 0; + if ($681 >>> 0 < $683 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($681, $24); + HEAP32[$680 >> 2] = (HEAP32[$680 >> 2] | 0) + 24; + } else { + $690 = HEAP32[$db >> 2] | 0; + $691 = $681 - $690 | 0; + $692 = ($691 | 0) / 24 | 0; + $693 = $692 + 1 | 0; + if (($691 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $697 = ($683 - $690 | 0) / 24 | 0; + if ($697 >>> 0 < 1073741823) { + $699 = $697 << 1; + $$0$i$i$i123 = $699 >>> 0 < $693 >>> 0 ? $693 : $699; + } else $$0$i$i$i123 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i123, $692, $db + 12 | 0); + $702 = $__v$i$i142 + 8 | 0; + $703 = HEAP32[$702 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($703, $24); + HEAP32[$702 >> 2] = $703 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 105: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($25, 49510); + $706 = $db + 4 | 0; + $707 = HEAP32[$706 >> 2] | 0; + $709 = HEAP32[$db + 8 >> 2] | 0; + if ($707 >>> 0 < $709 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($707, $25); + HEAP32[$706 >> 2] = (HEAP32[$706 >> 2] | 0) + 24; + } else { + $716 = HEAP32[$db >> 2] | 0; + $717 = $707 - $716 | 0; + $718 = ($717 | 0) / 24 | 0; + $719 = $718 + 1 | 0; + if (($717 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $723 = ($709 - $716 | 0) / 24 | 0; + if ($723 >>> 0 < 1073741823) { + $725 = $723 << 1; + $$0$i$i$i128 = $725 >>> 0 < $719 >>> 0 ? $719 : $725; + } else $$0$i$i$i128 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i128, $718, $db + 12 | 0); + $728 = $__v$i$i142 + 8 | 0; + $729 = HEAP32[$728 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($729, $25); + HEAP32[$728 >> 2] = $729 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($26, 49519); + $732 = $db + 4 | 0; + $733 = HEAP32[$732 >> 2] | 0; + $735 = HEAP32[$db + 8 >> 2] | 0; + if ($733 >>> 0 < $735 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($733, $26); + HEAP32[$732 >> 2] = (HEAP32[$732 >> 2] | 0) + 24; + } else { + $742 = HEAP32[$db >> 2] | 0; + $743 = $733 - $742 | 0; + $744 = ($743 | 0) / 24 | 0; + $745 = $744 + 1 | 0; + if (($743 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $749 = ($735 - $742 | 0) / 24 | 0; + if ($749 >>> 0 < 1073741823) { + $751 = $749 << 1; + $$0$i$i$i133 = $751 >>> 0 < $745 >>> 0 ? $745 : $751; + } else $$0$i$i$i133 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i133, $744, $db + 12 | 0); + $754 = $__v$i$i142 + 8 | 0; + $755 = HEAP32[$754 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($755, $26); + HEAP32[$754 >> 2] = $755 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($27, 49528); + $758 = $db + 4 | 0; + $759 = HEAP32[$758 >> 2] | 0; + $761 = HEAP32[$db + 8 >> 2] | 0; + if ($759 >>> 0 < $761 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($759, $27); + HEAP32[$758 >> 2] = (HEAP32[$758 >> 2] | 0) + 24; + } else { + $768 = HEAP32[$db >> 2] | 0; + $769 = $759 - $768 | 0; + $770 = ($769 | 0) / 24 | 0; + $771 = $770 + 1 | 0; + if (($769 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $775 = ($761 - $768 | 0) / 24 | 0; + if ($775 >>> 0 < 1073741823) { + $777 = $775 << 1; + $$0$i$i$i138 = $777 >>> 0 < $771 >>> 0 ? $771 : $777; + } else $$0$i$i$i138 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i138, $770, $db + 12 | 0); + $780 = $__v$i$i142 + 8 | 0; + $781 = HEAP32[$780 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($781, $27); + HEAP32[$780 >> 2] = $781 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 110: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($28, 49533); + $784 = $db + 4 | 0; + $785 = HEAP32[$784 >> 2] | 0; + $787 = HEAP32[$db + 8 >> 2] | 0; + if ($785 >>> 0 < $787 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($785, $28); + HEAP32[$784 >> 2] = (HEAP32[$784 >> 2] | 0) + 24; + } else { + $794 = HEAP32[$db >> 2] | 0; + $795 = $785 - $794 | 0; + $796 = ($795 | 0) / 24 | 0; + $797 = $796 + 1 | 0; + if (($795 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $801 = ($787 - $794 | 0) / 24 | 0; + if ($801 >>> 0 < 1073741823) { + $803 = $801 << 1; + $$0$i$i$i143 = $803 >>> 0 < $797 >>> 0 ? $797 : $803; + } else $$0$i$i$i143 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i143, $796, $db + 12 | 0); + $806 = $__v$i$i142 + 8 | 0; + $807 = HEAP32[$806 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($807, $28); + HEAP32[$806 >> 2] = $807 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + default: + { + $$0 = $first; + break L1; + } + } while (0); while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _malloc($bytes) { + $bytes = $bytes | 0; + var $$3$i = 0, $$lcssa = 0, $$lcssa211 = 0, $$lcssa215 = 0, $$lcssa216 = 0, $$lcssa217 = 0, $$lcssa219 = 0, $$lcssa222 = 0, $$lcssa224 = 0, $$lcssa226 = 0, $$lcssa228 = 0, $$lcssa230 = 0, $$lcssa232 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i23$iZ2D = 0, $$pre$phi$i26Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi58$i$iZ2D = 0, $$pre$phiZ2D = 0, $$rsize$3$i = 0, $$sum$i19$i = 0, $$sum2$i21$i = 0, $$sum3132$i$i = 0, $$sum67$i$i = 0, $100 = 0, $1000 = 0, $1002 = 0, $1005 = 0, $1010 = 0, $1016 = 0, $1019 = 0, $1020 = 0, $1027 = 0, $1039 = 0, $1044 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $106 = 0, $1060 = 0, $1062 = 0, $1063 = 0, $1070 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $117 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $127 = 0, $13 = 0, $132 = 0, $138 = 0, $14 = 0, $141 = 0, $144 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $151 = 0, $154 = 0, $156 = 0, $159 = 0, $16 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $201 = 0, $207 = 0, $214 = 0, $217 = 0, $225 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $237 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $25 = 0, $250 = 0, $255 = 0, $256 = 0, $259 = 0, $261 = 0, $264 = 0, $269 = 0, $276 = 0, $28 = 0, $285 = 0, $286 = 0, $290 = 0, $300 = 0, $303 = 0, $307 = 0, $309 = 0, $31 = 0, $310 = 0, $312 = 0, $314 = 0, $316 = 0, $318 = 0, $320 = 0, $322 = 0, $324 = 0, $334 = 0, $335 = 0, $337 = 0, $34 = 0, $346 = 0, $348 = 0, $351 = 0, $353 = 0, $356 = 0, $358 = 0, $361 = 0, $364 = 0, $365 = 0, $367 = 0, $368 = 0, $370 = 0, $371 = 0, $373 = 0, $374 = 0, $379 = 0, $38 = 0, $380 = 0, $389 = 0, $394 = 0, $398 = 0, $4 = 0, $404 = 0, $41 = 0, $411 = 0, $414 = 0, $422 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $431 = 0, $432 = 0, $438 = 0, $44 = 0, $443 = 0, $444 = 0, $447 = 0, $449 = 0, $452 = 0, $457 = 0, $46 = 0, $463 = 0, $467 = 0, $468 = 0, $47 = 0, $475 = 0, $487 = 0, $49 = 0, $492 = 0, $499 = 0, $5 = 0, $500 = 0, $501 = 0, $509 = 0, $51 = 0, $511 = 0, $512 = 0, $522 = 0, $526 = 0, $528 = 0, $529 = 0, $53 = 0, $538 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $552 = 0, $554 = 0, $555 = 0, $561 = 0, $563 = 0, $565 = 0, $57 = 0, $572 = 0, $574 = 0, $575 = 0, $576 = 0, $584 = 0, $585 = 0, $588 = 0, $59 = 0, $592 = 0, $593 = 0, $596 = 0, $598 = 0, $6 = 0, $602 = 0, $604 = 0, $608 = 0, $61 = 0, $612 = 0, $621 = 0, $622 = 0, $628 = 0, $630 = 0, $632 = 0, $635 = 0, $637 = 0, $64 = 0, $641 = 0, $642 = 0, $648 = 0, $65 = 0, $653 = 0, $655 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $67 = 0, $676 = 0, $678 = 0, $68 = 0, $683 = 0, $685 = 0, $69 = 0, $690 = 0, $692 = 0, $7 = 0, $70 = 0, $702 = 0, $706 = 0, $711 = 0, $714 = 0, $719 = 0, $720 = 0, $724 = 0, $725 = 0, $730 = 0, $736 = 0, $741 = 0, $744 = 0, $745 = 0, $748 = 0, $750 = 0, $752 = 0, $755 = 0, $766 = 0, $77 = 0, $771 = 0, $773 = 0, $776 = 0, $778 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $788 = 0, $790 = 0, $791 = 0, $793 = 0, $794 = 0, $799 = 0, $80 = 0, $800 = 0, $809 = 0, $81 = 0, $814 = 0, $818 = 0, $824 = 0, $832 = 0, $838 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $847 = 0, $848 = 0, $854 = 0, $859 = 0, $860 = 0, $863 = 0, $865 = 0, $868 = 0, $873 = 0, $879 = 0, $883 = 0, $884 = 0, $89 = 0, $891 = 0, $90 = 0, $903 = 0, $908 = 0, $91 = 0, $915 = 0, $916 = 0, $917 = 0, $92 = 0, $925 = 0, $928 = 0, $929 = 0, $93 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $944 = 0, $947 = 0, $95 = 0, $952 = 0, $954 = 0, $959 = 0, $960 = 0, $964 = 0, $970 = 0, $975 = 0, $977 = 0, $978 = 0, $979 = 0, $980 = 0, $984 = 0, $985 = 0, $99 = 0, $991 = 0, $996 = 0, $997 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0, $K12$029$i = 0, $K2$07$i$i = 0, $K8$051$i$i = 0, $R$0$i = 0, $R$0$i$i = 0, $R$0$i$i$lcssa = 0, $R$0$i$lcssa = 0, $R$0$i18 = 0, $R$0$i18$lcssa = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i20 = 0, $RP$0$i = 0, $RP$0$i$i = 0, $RP$0$i$i$lcssa = 0, $RP$0$i$lcssa = 0, $RP$0$i17 = 0, $RP$0$i17$lcssa = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i25$i = 0, $T$028$i = 0, $T$028$i$lcssa = 0, $T$050$i$i = 0, $T$050$i$i$lcssa = 0, $T$06$i$i = 0, $T$06$i$i$lcssa = 0, $br$0$ph$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0, $oldfirst$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i15 = 0, $rsize$1$i = 0, $rsize$2$i = 0, $rsize$3$lcssa$i = 0, $rsize$331$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$084$i = 0, $sp$084$i$lcssa = 0, $sp$183$i = 0, $sp$183$i$lcssa = 0, $ssize$0$$i = 0, $ssize$0$i = 0, $ssize$1$ph$i = 0, $ssize$2$i = 0, $t$0$i = 0, $t$0$i14 = 0, $t$1$i = 0, $t$2$ph$i = 0, $t$2$v$3$i = 0, $t$230$i = 0, $tbase$255$i = 0, $tsize$0$ph$i = 0, $tsize$0323944$i = 0, $tsize$1$i = 0, $tsize$254$i = 0, $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i16 = 0, $v$1$i = 0, $v$2$i = 0, $v$3$lcssa$i = 0, $v$3$ph$i = 0, $v$332$i = 0, label = 0, $964$looptemp = 0; + do if ($bytes >>> 0 < 245) { + $4 = $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8; + $5 = $4 >>> 3; + $6 = HEAP32[2507] | 0; + $7 = $6 >>> $5; + if ($7 & 3) { + $12 = ($7 & 1 ^ 1) + $5 | 0; + $13 = $12 << 1; + $14 = 10068 + ($13 << 2) | 0; + $15 = 10068 + ($13 + 2 << 2) | 0; + $16 = HEAP32[$15 >> 2] | 0; + $17 = $16 + 8 | 0; + $18 = HEAP32[$17 >> 2] | 0; + do if (($14 | 0) == ($18 | 0)) HEAP32[2507] = $6 & ~(1 << $12); else { + if ($18 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $25 = $18 + 12 | 0; + if ((HEAP32[$25 >> 2] | 0) == ($16 | 0)) { + HEAP32[$25 >> 2] = $14; + HEAP32[$15 >> 2] = $18; + break; + } else _abort(); + } while (0); + $28 = $12 << 3; + HEAP32[$16 + 4 >> 2] = $28 | 3; + $31 = $16 + ($28 | 4) | 0; + HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1; + $mem$0 = $17; + return $mem$0 | 0; + } + $34 = HEAP32[2509] | 0; + if ($4 >>> 0 > $34 >>> 0) { + if ($7) { + $38 = 2 << $5; + $41 = $7 << $5 & ($38 | 0 - $38); + $44 = ($41 & 0 - $41) + -1 | 0; + $46 = $44 >>> 12 & 16; + $47 = $44 >>> $46; + $49 = $47 >>> 5 & 8; + $51 = $47 >>> $49; + $53 = $51 >>> 2 & 4; + $55 = $51 >>> $53; + $57 = $55 >>> 1 & 2; + $59 = $55 >>> $57; + $61 = $59 >>> 1 & 1; + $64 = ($49 | $46 | $53 | $57 | $61) + ($59 >>> $61) | 0; + $65 = $64 << 1; + $66 = 10068 + ($65 << 2) | 0; + $67 = 10068 + ($65 + 2 << 2) | 0; + $68 = HEAP32[$67 >> 2] | 0; + $69 = $68 + 8 | 0; + $70 = HEAP32[$69 >> 2] | 0; + do if (($66 | 0) == ($70 | 0)) { + HEAP32[2507] = $6 & ~(1 << $64); + $89 = $34; + } else { + if ($70 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $77 = $70 + 12 | 0; + if ((HEAP32[$77 >> 2] | 0) == ($68 | 0)) { + HEAP32[$77 >> 2] = $66; + HEAP32[$67 >> 2] = $70; + $89 = HEAP32[2509] | 0; + break; + } else _abort(); + } while (0); + $80 = $64 << 3; + $81 = $80 - $4 | 0; + HEAP32[$68 + 4 >> 2] = $4 | 3; + $84 = $68 + $4 | 0; + HEAP32[$68 + ($4 | 4) >> 2] = $81 | 1; + HEAP32[$68 + $80 >> 2] = $81; + if ($89) { + $90 = HEAP32[2512] | 0; + $91 = $89 >>> 3; + $92 = $91 << 1; + $93 = 10068 + ($92 << 2) | 0; + $94 = HEAP32[2507] | 0; + $95 = 1 << $91; + if (!($94 & $95)) { + HEAP32[2507] = $94 | $95; + $$pre$phiZ2D = 10068 + ($92 + 2 << 2) | 0; + $F4$0 = $93; + } else { + $99 = 10068 + ($92 + 2 << 2) | 0; + $100 = HEAP32[$99 >> 2] | 0; + if ($100 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $99; + $F4$0 = $100; + } + } + HEAP32[$$pre$phiZ2D >> 2] = $90; + HEAP32[$F4$0 + 12 >> 2] = $90; + HEAP32[$90 + 8 >> 2] = $F4$0; + HEAP32[$90 + 12 >> 2] = $93; + } + HEAP32[2509] = $81; + HEAP32[2512] = $84; + $mem$0 = $69; + return $mem$0 | 0; + } + $106 = HEAP32[2508] | 0; + if (!$106) $nb$0 = $4; else { + $110 = ($106 & 0 - $106) + -1 | 0; + $112 = $110 >>> 12 & 16; + $113 = $110 >>> $112; + $115 = $113 >>> 5 & 8; + $117 = $113 >>> $115; + $119 = $117 >>> 2 & 4; + $121 = $117 >>> $119; + $123 = $121 >>> 1 & 2; + $125 = $121 >>> $123; + $127 = $125 >>> 1 & 1; + $132 = HEAP32[10332 + (($115 | $112 | $119 | $123 | $127) + ($125 >>> $127) << 2) >> 2] | 0; + $rsize$0$i = (HEAP32[$132 + 4 >> 2] & -8) - $4 | 0; + $t$0$i = $132; + $v$0$i = $132; + while (1) { + $138 = HEAP32[$t$0$i + 16 >> 2] | 0; + if (!$138) { + $141 = HEAP32[$t$0$i + 20 >> 2] | 0; + if (!$141) { + $rsize$0$i$lcssa = $rsize$0$i; + $v$0$i$lcssa = $v$0$i; + break; + } else $144 = $141; + } else $144 = $138; + $147 = (HEAP32[$144 + 4 >> 2] & -8) - $4 | 0; + $148 = $147 >>> 0 < $rsize$0$i >>> 0; + $rsize$0$i = $148 ? $147 : $rsize$0$i; + $t$0$i = $144; + $v$0$i = $148 ? $144 : $v$0$i; + } + $149 = HEAP32[2511] | 0; + if ($v$0$i$lcssa >>> 0 < $149 >>> 0) _abort(); + $151 = $v$0$i$lcssa + $4 | 0; + if ($v$0$i$lcssa >>> 0 >= $151 >>> 0) _abort(); + $154 = HEAP32[$v$0$i$lcssa + 24 >> 2] | 0; + $156 = HEAP32[$v$0$i$lcssa + 12 >> 2] | 0; + do if (($156 | 0) == ($v$0$i$lcssa | 0)) { + $167 = $v$0$i$lcssa + 20 | 0; + $168 = HEAP32[$167 >> 2] | 0; + if (!$168) { + $170 = $v$0$i$lcssa + 16 | 0; + $171 = HEAP32[$170 >> 2] | 0; + if (!$171) { + $R$1$i = 0; + break; + } else { + $R$0$i = $171; + $RP$0$i = $170; + } + } else { + $R$0$i = $168; + $RP$0$i = $167; + } + while (1) { + $173 = $R$0$i + 20 | 0; + $174 = HEAP32[$173 >> 2] | 0; + if ($174) { + $R$0$i = $174; + $RP$0$i = $173; + continue; + } + $176 = $R$0$i + 16 | 0; + $177 = HEAP32[$176 >> 2] | 0; + if (!$177) { + $R$0$i$lcssa = $R$0$i; + $RP$0$i$lcssa = $RP$0$i; + break; + } else { + $R$0$i = $177; + $RP$0$i = $176; + } + } + if ($RP$0$i$lcssa >>> 0 < $149 >>> 0) _abort(); else { + HEAP32[$RP$0$i$lcssa >> 2] = 0; + $R$1$i = $R$0$i$lcssa; + break; + } + } else { + $159 = HEAP32[$v$0$i$lcssa + 8 >> 2] | 0; + if ($159 >>> 0 < $149 >>> 0) _abort(); + $161 = $159 + 12 | 0; + if ((HEAP32[$161 >> 2] | 0) != ($v$0$i$lcssa | 0)) _abort(); + $164 = $156 + 8 | 0; + if ((HEAP32[$164 >> 2] | 0) == ($v$0$i$lcssa | 0)) { + HEAP32[$161 >> 2] = $156; + HEAP32[$164 >> 2] = $159; + $R$1$i = $156; + break; + } else _abort(); + } while (0); + do if ($154) { + $182 = HEAP32[$v$0$i$lcssa + 28 >> 2] | 0; + $183 = 10332 + ($182 << 2) | 0; + if (($v$0$i$lcssa | 0) == (HEAP32[$183 >> 2] | 0)) { + HEAP32[$183 >> 2] = $R$1$i; + if (!$R$1$i) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $182); + break; + } + } else { + if ($154 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $192 = $154 + 16 | 0; + if ((HEAP32[$192 >> 2] | 0) == ($v$0$i$lcssa | 0)) HEAP32[$192 >> 2] = $R$1$i; else HEAP32[$154 + 20 >> 2] = $R$1$i; + if (!$R$1$i) break; + } + $197 = HEAP32[2511] | 0; + if ($R$1$i >>> 0 < $197 >>> 0) _abort(); + HEAP32[$R$1$i + 24 >> 2] = $154; + $201 = HEAP32[$v$0$i$lcssa + 16 >> 2] | 0; + do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else { + HEAP32[$R$1$i + 16 >> 2] = $201; + HEAP32[$201 + 24 >> 2] = $R$1$i; + break; + } while (0); + $207 = HEAP32[$v$0$i$lcssa + 20 >> 2] | 0; + if ($207) if ($207 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i + 20 >> 2] = $207; + HEAP32[$207 + 24 >> 2] = $R$1$i; + break; + } + } while (0); + if ($rsize$0$i$lcssa >>> 0 < 16) { + $214 = $rsize$0$i$lcssa + $4 | 0; + HEAP32[$v$0$i$lcssa + 4 >> 2] = $214 | 3; + $217 = $v$0$i$lcssa + ($214 + 4) | 0; + HEAP32[$217 >> 2] = HEAP32[$217 >> 2] | 1; + } else { + HEAP32[$v$0$i$lcssa + 4 >> 2] = $4 | 3; + HEAP32[$v$0$i$lcssa + ($4 | 4) >> 2] = $rsize$0$i$lcssa | 1; + HEAP32[$v$0$i$lcssa + ($rsize$0$i$lcssa + $4) >> 2] = $rsize$0$i$lcssa; + $225 = HEAP32[2509] | 0; + if ($225) { + $227 = HEAP32[2512] | 0; + $228 = $225 >>> 3; + $229 = $228 << 1; + $230 = 10068 + ($229 << 2) | 0; + $231 = HEAP32[2507] | 0; + $232 = 1 << $228; + if (!($231 & $232)) { + HEAP32[2507] = $231 | $232; + $$pre$phi$iZ2D = 10068 + ($229 + 2 << 2) | 0; + $F1$0$i = $230; + } else { + $236 = 10068 + ($229 + 2 << 2) | 0; + $237 = HEAP32[$236 >> 2] | 0; + if ($237 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phi$iZ2D = $236; + $F1$0$i = $237; + } + } + HEAP32[$$pre$phi$iZ2D >> 2] = $227; + HEAP32[$F1$0$i + 12 >> 2] = $227; + HEAP32[$227 + 8 >> 2] = $F1$0$i; + HEAP32[$227 + 12 >> 2] = $230; + } + HEAP32[2509] = $rsize$0$i$lcssa; + HEAP32[2512] = $151; + } + $mem$0 = $v$0$i$lcssa + 8 | 0; + return $mem$0 | 0; + } + } else $nb$0 = $4; + } else if ($bytes >>> 0 > 4294967231) $nb$0 = -1; else { + $245 = $bytes + 11 | 0; + $246 = $245 & -8; + $247 = HEAP32[2508] | 0; + if (!$247) $nb$0 = $246; else { + $249 = 0 - $246 | 0; + $250 = $245 >>> 8; + if (!$250) $idx$0$i = 0; else if ($246 >>> 0 > 16777215) $idx$0$i = 31; else { + $255 = ($250 + 1048320 | 0) >>> 16 & 8; + $256 = $250 << $255; + $259 = ($256 + 520192 | 0) >>> 16 & 4; + $261 = $256 << $259; + $264 = ($261 + 245760 | 0) >>> 16 & 2; + $269 = 14 - ($259 | $255 | $264) + ($261 << $264 >>> 15) | 0; + $idx$0$i = $246 >>> ($269 + 7 | 0) & 1 | $269 << 1; + } + $276 = HEAP32[10332 + ($idx$0$i << 2) >> 2] | 0; + L123 : do if (!$276) { + $rsize$2$i = $249; + $t$1$i = 0; + $v$2$i = 0; + label = 86; + } else { + $rsize$0$i15 = $249; + $rst$0$i = 0; + $sizebits$0$i = $246 << (($idx$0$i | 0) == 31 ? 0 : 25 - ($idx$0$i >>> 1) | 0); + $t$0$i14 = $276; + $v$0$i16 = 0; + while (1) { + $285 = HEAP32[$t$0$i14 + 4 >> 2] & -8; + $286 = $285 - $246 | 0; + if ($286 >>> 0 < $rsize$0$i15 >>> 0) if (($285 | 0) == ($246 | 0)) { + $rsize$331$i = $286; + $t$230$i = $t$0$i14; + $v$332$i = $t$0$i14; + label = 90; + break L123; + } else { + $rsize$1$i = $286; + $v$1$i = $t$0$i14; + } else { + $rsize$1$i = $rsize$0$i15; + $v$1$i = $v$0$i16; + } + $290 = HEAP32[$t$0$i14 + 20 >> 2] | 0; + $t$0$i14 = HEAP32[$t$0$i14 + 16 + ($sizebits$0$i >>> 31 << 2) >> 2] | 0; + $rst$1$i = ($290 | 0) == 0 | ($290 | 0) == ($t$0$i14 | 0) ? $rst$0$i : $290; + if (!$t$0$i14) { + $rsize$2$i = $rsize$1$i; + $t$1$i = $rst$1$i; + $v$2$i = $v$1$i; + label = 86; + break; + } else { + $rsize$0$i15 = $rsize$1$i; + $rst$0$i = $rst$1$i; + $sizebits$0$i = $sizebits$0$i << 1; + $v$0$i16 = $v$1$i; + } + } + } while (0); + if ((label | 0) == 86) { + if (($t$1$i | 0) == 0 & ($v$2$i | 0) == 0) { + $300 = 2 << $idx$0$i; + $303 = $247 & ($300 | 0 - $300); + if (!$303) { + $nb$0 = $246; + break; + } + $307 = ($303 & 0 - $303) + -1 | 0; + $309 = $307 >>> 12 & 16; + $310 = $307 >>> $309; + $312 = $310 >>> 5 & 8; + $314 = $310 >>> $312; + $316 = $314 >>> 2 & 4; + $318 = $314 >>> $316; + $320 = $318 >>> 1 & 2; + $322 = $318 >>> $320; + $324 = $322 >>> 1 & 1; + $t$2$ph$i = HEAP32[10332 + (($312 | $309 | $316 | $320 | $324) + ($322 >>> $324) << 2) >> 2] | 0; + $v$3$ph$i = 0; + } else { + $t$2$ph$i = $t$1$i; + $v$3$ph$i = $v$2$i; + } + if (!$t$2$ph$i) { + $rsize$3$lcssa$i = $rsize$2$i; + $v$3$lcssa$i = $v$3$ph$i; + } else { + $rsize$331$i = $rsize$2$i; + $t$230$i = $t$2$ph$i; + $v$332$i = $v$3$ph$i; + label = 90; + } + } + if ((label | 0) == 90) while (1) { + label = 0; + $334 = (HEAP32[$t$230$i + 4 >> 2] & -8) - $246 | 0; + $335 = $334 >>> 0 < $rsize$331$i >>> 0; + $$rsize$3$i = $335 ? $334 : $rsize$331$i; + $t$2$v$3$i = $335 ? $t$230$i : $v$332$i; + $337 = HEAP32[$t$230$i + 16 >> 2] | 0; + if ($337) { + $rsize$331$i = $$rsize$3$i; + $t$230$i = $337; + $v$332$i = $t$2$v$3$i; + label = 90; + continue; + } + $t$230$i = HEAP32[$t$230$i + 20 >> 2] | 0; + if (!$t$230$i) { + $rsize$3$lcssa$i = $$rsize$3$i; + $v$3$lcssa$i = $t$2$v$3$i; + break; + } else { + $rsize$331$i = $$rsize$3$i; + $v$332$i = $t$2$v$3$i; + label = 90; + } + } + if (!$v$3$lcssa$i) $nb$0 = $246; else if ($rsize$3$lcssa$i >>> 0 < ((HEAP32[2509] | 0) - $246 | 0) >>> 0) { + $346 = HEAP32[2511] | 0; + if ($v$3$lcssa$i >>> 0 < $346 >>> 0) _abort(); + $348 = $v$3$lcssa$i + $246 | 0; + if ($v$3$lcssa$i >>> 0 >= $348 >>> 0) _abort(); + $351 = HEAP32[$v$3$lcssa$i + 24 >> 2] | 0; + $353 = HEAP32[$v$3$lcssa$i + 12 >> 2] | 0; + do if (($353 | 0) == ($v$3$lcssa$i | 0)) { + $364 = $v$3$lcssa$i + 20 | 0; + $365 = HEAP32[$364 >> 2] | 0; + if (!$365) { + $367 = $v$3$lcssa$i + 16 | 0; + $368 = HEAP32[$367 >> 2] | 0; + if (!$368) { + $R$1$i20 = 0; + break; + } else { + $R$0$i18 = $368; + $RP$0$i17 = $367; + } + } else { + $R$0$i18 = $365; + $RP$0$i17 = $364; + } + while (1) { + $370 = $R$0$i18 + 20 | 0; + $371 = HEAP32[$370 >> 2] | 0; + if ($371) { + $R$0$i18 = $371; + $RP$0$i17 = $370; + continue; + } + $373 = $R$0$i18 + 16 | 0; + $374 = HEAP32[$373 >> 2] | 0; + if (!$374) { + $R$0$i18$lcssa = $R$0$i18; + $RP$0$i17$lcssa = $RP$0$i17; + break; + } else { + $R$0$i18 = $374; + $RP$0$i17 = $373; + } + } + if ($RP$0$i17$lcssa >>> 0 < $346 >>> 0) _abort(); else { + HEAP32[$RP$0$i17$lcssa >> 2] = 0; + $R$1$i20 = $R$0$i18$lcssa; + break; + } + } else { + $356 = HEAP32[$v$3$lcssa$i + 8 >> 2] | 0; + if ($356 >>> 0 < $346 >>> 0) _abort(); + $358 = $356 + 12 | 0; + if ((HEAP32[$358 >> 2] | 0) != ($v$3$lcssa$i | 0)) _abort(); + $361 = $353 + 8 | 0; + if ((HEAP32[$361 >> 2] | 0) == ($v$3$lcssa$i | 0)) { + HEAP32[$358 >> 2] = $353; + HEAP32[$361 >> 2] = $356; + $R$1$i20 = $353; + break; + } else _abort(); + } while (0); + do if ($351) { + $379 = HEAP32[$v$3$lcssa$i + 28 >> 2] | 0; + $380 = 10332 + ($379 << 2) | 0; + if (($v$3$lcssa$i | 0) == (HEAP32[$380 >> 2] | 0)) { + HEAP32[$380 >> 2] = $R$1$i20; + if (!$R$1$i20) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $379); + break; + } + } else { + if ($351 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $389 = $351 + 16 | 0; + if ((HEAP32[$389 >> 2] | 0) == ($v$3$lcssa$i | 0)) HEAP32[$389 >> 2] = $R$1$i20; else HEAP32[$351 + 20 >> 2] = $R$1$i20; + if (!$R$1$i20) break; + } + $394 = HEAP32[2511] | 0; + if ($R$1$i20 >>> 0 < $394 >>> 0) _abort(); + HEAP32[$R$1$i20 + 24 >> 2] = $351; + $398 = HEAP32[$v$3$lcssa$i + 16 >> 2] | 0; + do if ($398) if ($398 >>> 0 < $394 >>> 0) _abort(); else { + HEAP32[$R$1$i20 + 16 >> 2] = $398; + HEAP32[$398 + 24 >> 2] = $R$1$i20; + break; + } while (0); + $404 = HEAP32[$v$3$lcssa$i + 20 >> 2] | 0; + if ($404) if ($404 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i20 + 20 >> 2] = $404; + HEAP32[$404 + 24 >> 2] = $R$1$i20; + break; + } + } while (0); + L199 : do if ($rsize$3$lcssa$i >>> 0 < 16) { + $411 = $rsize$3$lcssa$i + $246 | 0; + HEAP32[$v$3$lcssa$i + 4 >> 2] = $411 | 3; + $414 = $v$3$lcssa$i + ($411 + 4) | 0; + HEAP32[$414 >> 2] = HEAP32[$414 >> 2] | 1; + } else { + HEAP32[$v$3$lcssa$i + 4 >> 2] = $246 | 3; + HEAP32[$v$3$lcssa$i + ($246 | 4) >> 2] = $rsize$3$lcssa$i | 1; + HEAP32[$v$3$lcssa$i + ($rsize$3$lcssa$i + $246) >> 2] = $rsize$3$lcssa$i; + $422 = $rsize$3$lcssa$i >>> 3; + if ($rsize$3$lcssa$i >>> 0 < 256) { + $424 = $422 << 1; + $425 = 10068 + ($424 << 2) | 0; + $426 = HEAP32[2507] | 0; + $427 = 1 << $422; + if (!($426 & $427)) { + HEAP32[2507] = $426 | $427; + $$pre$phi$i26Z2D = 10068 + ($424 + 2 << 2) | 0; + $F5$0$i = $425; + } else { + $431 = 10068 + ($424 + 2 << 2) | 0; + $432 = HEAP32[$431 >> 2] | 0; + if ($432 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phi$i26Z2D = $431; + $F5$0$i = $432; + } + } + HEAP32[$$pre$phi$i26Z2D >> 2] = $348; + HEAP32[$F5$0$i + 12 >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $F5$0$i; + HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $425; + break; + } + $438 = $rsize$3$lcssa$i >>> 8; + if (!$438) $I7$0$i = 0; else if ($rsize$3$lcssa$i >>> 0 > 16777215) $I7$0$i = 31; else { + $443 = ($438 + 1048320 | 0) >>> 16 & 8; + $444 = $438 << $443; + $447 = ($444 + 520192 | 0) >>> 16 & 4; + $449 = $444 << $447; + $452 = ($449 + 245760 | 0) >>> 16 & 2; + $457 = 14 - ($447 | $443 | $452) + ($449 << $452 >>> 15) | 0; + $I7$0$i = $rsize$3$lcssa$i >>> ($457 + 7 | 0) & 1 | $457 << 1; + } + $463 = 10332 + ($I7$0$i << 2) | 0; + HEAP32[$v$3$lcssa$i + ($246 + 28) >> 2] = $I7$0$i; + HEAP32[$v$3$lcssa$i + ($246 + 20) >> 2] = 0; + HEAP32[$v$3$lcssa$i + ($246 + 16) >> 2] = 0; + $467 = HEAP32[2508] | 0; + $468 = 1 << $I7$0$i; + if (!($467 & $468)) { + HEAP32[2508] = $467 | $468; + HEAP32[$463 >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $463; + HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348; + break; + } + $475 = HEAP32[$463 >> 2] | 0; + L217 : do if ((HEAP32[$475 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) $T$0$lcssa$i = $475; else { + $K12$029$i = $rsize$3$lcssa$i << (($I7$0$i | 0) == 31 ? 0 : 25 - ($I7$0$i >>> 1) | 0); + $T$028$i = $475; + while (1) { + $492 = $T$028$i + 16 + ($K12$029$i >>> 31 << 2) | 0; + $487 = HEAP32[$492 >> 2] | 0; + if (!$487) { + $$lcssa232 = $492; + $T$028$i$lcssa = $T$028$i; + break; + } + if ((HEAP32[$487 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) { + $T$0$lcssa$i = $487; + break L217; + } else { + $K12$029$i = $K12$029$i << 1; + $T$028$i = $487; + } + } + if ($$lcssa232 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$$lcssa232 >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $T$028$i$lcssa; + HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348; + break L199; + } + } while (0); + $499 = $T$0$lcssa$i + 8 | 0; + $500 = HEAP32[$499 >> 2] | 0; + $501 = HEAP32[2511] | 0; + if ($500 >>> 0 >= $501 >>> 0 & $T$0$lcssa$i >>> 0 >= $501 >>> 0) { + HEAP32[$500 + 12 >> 2] = $348; + HEAP32[$499 >> 2] = $348; + HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $500; + HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $T$0$lcssa$i; + HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = 0; + break; + } else _abort(); + } while (0); + $mem$0 = $v$3$lcssa$i + 8 | 0; + return $mem$0 | 0; + } else $nb$0 = $246; + } + } while (0); + $509 = HEAP32[2509] | 0; + if ($509 >>> 0 >= $nb$0 >>> 0) { + $511 = $509 - $nb$0 | 0; + $512 = HEAP32[2512] | 0; + if ($511 >>> 0 > 15) { + HEAP32[2512] = $512 + $nb$0; + HEAP32[2509] = $511; + HEAP32[$512 + ($nb$0 + 4) >> 2] = $511 | 1; + HEAP32[$512 + $509 >> 2] = $511; + HEAP32[$512 + 4 >> 2] = $nb$0 | 3; + } else { + HEAP32[2509] = 0; + HEAP32[2512] = 0; + HEAP32[$512 + 4 >> 2] = $509 | 3; + $522 = $512 + ($509 + 4) | 0; + HEAP32[$522 >> 2] = HEAP32[$522 >> 2] | 1; + } + $mem$0 = $512 + 8 | 0; + return $mem$0 | 0; + } + $526 = HEAP32[2510] | 0; + if ($526 >>> 0 > $nb$0 >>> 0) { + $528 = $526 - $nb$0 | 0; + HEAP32[2510] = $528; + $529 = HEAP32[2513] | 0; + HEAP32[2513] = $529 + $nb$0; + HEAP32[$529 + ($nb$0 + 4) >> 2] = $528 | 1; + HEAP32[$529 + 4 >> 2] = $nb$0 | 3; + $mem$0 = $529 + 8 | 0; + return $mem$0 | 0; + } + do if (!(HEAP32[2625] | 0)) { + $538 = _sysconf(30) | 0; + if (!($538 + -1 & $538)) { + HEAP32[2627] = $538; + HEAP32[2626] = $538; + HEAP32[2628] = -1; + HEAP32[2629] = -1; + HEAP32[2630] = 0; + HEAP32[2618] = 0; + $544 = (_time(0) | 0) & -16 ^ 1431655768; + HEAP32[2625] = $544; + break; + } else _abort(); + } while (0); + $545 = $nb$0 + 48 | 0; + $546 = HEAP32[2627] | 0; + $547 = $nb$0 + 47 | 0; + $548 = $546 + $547 | 0; + $549 = 0 - $546 | 0; + $550 = $548 & $549; + if ($550 >>> 0 <= $nb$0 >>> 0) { + $mem$0 = 0; + return $mem$0 | 0; + } + $552 = HEAP32[2617] | 0; + if ($552) { + $554 = HEAP32[2615] | 0; + $555 = $554 + $550 | 0; + if ($555 >>> 0 <= $554 >>> 0 | $555 >>> 0 > $552 >>> 0) { + $mem$0 = 0; + return $mem$0 | 0; + } + } + L258 : do if (!(HEAP32[2618] & 4)) { + $561 = HEAP32[2513] | 0; + L260 : do if (!$561) label = 174; else { + $sp$0$i$i = 10476; + while (1) { + $563 = HEAP32[$sp$0$i$i >> 2] | 0; + if ($563 >>> 0 <= $561 >>> 0) { + $565 = $sp$0$i$i + 4 | 0; + if (($563 + (HEAP32[$565 >> 2] | 0) | 0) >>> 0 > $561 >>> 0) { + $$lcssa228 = $sp$0$i$i; + $$lcssa230 = $565; + break; + } + } + $sp$0$i$i = HEAP32[$sp$0$i$i + 8 >> 2] | 0; + if (!$sp$0$i$i) { + label = 174; + break L260; + } + } + $596 = $548 - (HEAP32[2510] | 0) & $549; + if ($596 >>> 0 < 2147483647) { + $598 = _sbrk($596 | 0) | 0; + $602 = ($598 | 0) == ((HEAP32[$$lcssa228 >> 2] | 0) + (HEAP32[$$lcssa230 >> 2] | 0) | 0); + $$3$i = $602 ? $596 : 0; + if ($602) if (($598 | 0) == (-1 | 0)) $tsize$0323944$i = $$3$i; else { + $tbase$255$i = $598; + $tsize$254$i = $$3$i; + label = 194; + break L258; + } else { + $br$0$ph$i = $598; + $ssize$1$ph$i = $596; + $tsize$0$ph$i = $$3$i; + label = 184; + } + } else $tsize$0323944$i = 0; + } while (0); + do if ((label | 0) == 174) { + $572 = _sbrk(0) | 0; + if (($572 | 0) == (-1 | 0)) $tsize$0323944$i = 0; else { + $574 = $572; + $575 = HEAP32[2626] | 0; + $576 = $575 + -1 | 0; + if (!($576 & $574)) $ssize$0$i = $550; else $ssize$0$i = $550 - $574 + ($576 + $574 & 0 - $575) | 0; + $584 = HEAP32[2615] | 0; + $585 = $584 + $ssize$0$i | 0; + if ($ssize$0$i >>> 0 > $nb$0 >>> 0 & $ssize$0$i >>> 0 < 2147483647) { + $588 = HEAP32[2617] | 0; + if ($588) if ($585 >>> 0 <= $584 >>> 0 | $585 >>> 0 > $588 >>> 0) { + $tsize$0323944$i = 0; + break; + } + $592 = _sbrk($ssize$0$i | 0) | 0; + $593 = ($592 | 0) == ($572 | 0); + $ssize$0$$i = $593 ? $ssize$0$i : 0; + if ($593) { + $tbase$255$i = $572; + $tsize$254$i = $ssize$0$$i; + label = 194; + break L258; + } else { + $br$0$ph$i = $592; + $ssize$1$ph$i = $ssize$0$i; + $tsize$0$ph$i = $ssize$0$$i; + label = 184; + } + } else $tsize$0323944$i = 0; + } + } while (0); + L280 : do if ((label | 0) == 184) { + $604 = 0 - $ssize$1$ph$i | 0; + do if ($545 >>> 0 > $ssize$1$ph$i >>> 0 & ($ssize$1$ph$i >>> 0 < 2147483647 & ($br$0$ph$i | 0) != (-1 | 0))) { + $608 = HEAP32[2627] | 0; + $612 = $547 - $ssize$1$ph$i + $608 & 0 - $608; + if ($612 >>> 0 < 2147483647) if ((_sbrk($612 | 0) | 0) == (-1 | 0)) { + _sbrk($604 | 0) | 0; + $tsize$0323944$i = $tsize$0$ph$i; + break L280; + } else { + $ssize$2$i = $612 + $ssize$1$ph$i | 0; + break; + } else $ssize$2$i = $ssize$1$ph$i; + } else $ssize$2$i = $ssize$1$ph$i; while (0); + if (($br$0$ph$i | 0) == (-1 | 0)) $tsize$0323944$i = $tsize$0$ph$i; else { + $tbase$255$i = $br$0$ph$i; + $tsize$254$i = $ssize$2$i; + label = 194; + break L258; + } + } while (0); + HEAP32[2618] = HEAP32[2618] | 4; + $tsize$1$i = $tsize$0323944$i; + label = 191; + } else { + $tsize$1$i = 0; + label = 191; + } while (0); + if ((label | 0) == 191) if ($550 >>> 0 < 2147483647) { + $621 = _sbrk($550 | 0) | 0; + $622 = _sbrk(0) | 0; + if ($621 >>> 0 < $622 >>> 0 & (($621 | 0) != (-1 | 0) & ($622 | 0) != (-1 | 0))) { + $628 = $622 - $621 | 0; + $630 = $628 >>> 0 > ($nb$0 + 40 | 0) >>> 0; + if ($630) { + $tbase$255$i = $621; + $tsize$254$i = $630 ? $628 : $tsize$1$i; + label = 194; + } + } + } + if ((label | 0) == 194) { + $632 = (HEAP32[2615] | 0) + $tsize$254$i | 0; + HEAP32[2615] = $632; + if ($632 >>> 0 > (HEAP32[2616] | 0) >>> 0) HEAP32[2616] = $632; + $635 = HEAP32[2513] | 0; + L299 : do if (!$635) { + $637 = HEAP32[2511] | 0; + if (($637 | 0) == 0 | $tbase$255$i >>> 0 < $637 >>> 0) HEAP32[2511] = $tbase$255$i; + HEAP32[2619] = $tbase$255$i; + HEAP32[2620] = $tsize$254$i; + HEAP32[2622] = 0; + HEAP32[2516] = HEAP32[2625]; + HEAP32[2515] = -1; + $i$02$i$i = 0; + do { + $641 = $i$02$i$i << 1; + $642 = 10068 + ($641 << 2) | 0; + HEAP32[10068 + ($641 + 3 << 2) >> 2] = $642; + HEAP32[10068 + ($641 + 2 << 2) >> 2] = $642; + $i$02$i$i = $i$02$i$i + 1 | 0; + } while (($i$02$i$i | 0) != 32); + $648 = $tbase$255$i + 8 | 0; + $653 = ($648 & 7 | 0) == 0 ? 0 : 0 - $648 & 7; + $655 = $tsize$254$i + -40 - $653 | 0; + HEAP32[2513] = $tbase$255$i + $653; + HEAP32[2510] = $655; + HEAP32[$tbase$255$i + ($653 + 4) >> 2] = $655 | 1; + HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40; + HEAP32[2514] = HEAP32[2629]; + } else { + $sp$084$i = 10476; + do { + $660 = HEAP32[$sp$084$i >> 2] | 0; + $661 = $sp$084$i + 4 | 0; + $662 = HEAP32[$661 >> 2] | 0; + if (($tbase$255$i | 0) == ($660 + $662 | 0)) { + $$lcssa222 = $660; + $$lcssa224 = $661; + $$lcssa226 = $662; + $sp$084$i$lcssa = $sp$084$i; + label = 204; + break; + } + $sp$084$i = HEAP32[$sp$084$i + 8 >> 2] | 0; + } while (($sp$084$i | 0) != 0); + if ((label | 0) == 204) if (!(HEAP32[$sp$084$i$lcssa + 12 >> 2] & 8)) if ($635 >>> 0 < $tbase$255$i >>> 0 & $635 >>> 0 >= $$lcssa222 >>> 0) { + HEAP32[$$lcssa224 >> 2] = $$lcssa226 + $tsize$254$i; + $676 = (HEAP32[2510] | 0) + $tsize$254$i | 0; + $678 = $635 + 8 | 0; + $683 = ($678 & 7 | 0) == 0 ? 0 : 0 - $678 & 7; + $685 = $676 - $683 | 0; + HEAP32[2513] = $635 + $683; + HEAP32[2510] = $685; + HEAP32[$635 + ($683 + 4) >> 2] = $685 | 1; + HEAP32[$635 + ($676 + 4) >> 2] = 40; + HEAP32[2514] = HEAP32[2629]; + break; + } + $690 = HEAP32[2511] | 0; + if ($tbase$255$i >>> 0 < $690 >>> 0) { + HEAP32[2511] = $tbase$255$i; + $755 = $tbase$255$i; + } else $755 = $690; + $692 = $tbase$255$i + $tsize$254$i | 0; + $sp$183$i = 10476; + while (1) { + if ((HEAP32[$sp$183$i >> 2] | 0) == ($692 | 0)) { + $$lcssa219 = $sp$183$i; + $sp$183$i$lcssa = $sp$183$i; + label = 212; + break; + } + $sp$183$i = HEAP32[$sp$183$i + 8 >> 2] | 0; + if (!$sp$183$i) { + $sp$0$i$i$i = 10476; + break; + } + } + if ((label | 0) == 212) if (!(HEAP32[$sp$183$i$lcssa + 12 >> 2] & 8)) { + HEAP32[$$lcssa219 >> 2] = $tbase$255$i; + $702 = $sp$183$i$lcssa + 4 | 0; + HEAP32[$702 >> 2] = (HEAP32[$702 >> 2] | 0) + $tsize$254$i; + $706 = $tbase$255$i + 8 | 0; + $711 = ($706 & 7 | 0) == 0 ? 0 : 0 - $706 & 7; + $714 = $tbase$255$i + ($tsize$254$i + 8) | 0; + $719 = ($714 & 7 | 0) == 0 ? 0 : 0 - $714 & 7; + $720 = $tbase$255$i + ($719 + $tsize$254$i) | 0; + $$sum$i19$i = $711 + $nb$0 | 0; + $724 = $tbase$255$i + $$sum$i19$i | 0; + $725 = $720 - ($tbase$255$i + $711) - $nb$0 | 0; + HEAP32[$tbase$255$i + ($711 + 4) >> 2] = $nb$0 | 3; + L324 : do if (($720 | 0) == ($635 | 0)) { + $730 = (HEAP32[2510] | 0) + $725 | 0; + HEAP32[2510] = $730; + HEAP32[2513] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $730 | 1; + } else { + if (($720 | 0) == (HEAP32[2512] | 0)) { + $736 = (HEAP32[2509] | 0) + $725 | 0; + HEAP32[2509] = $736; + HEAP32[2512] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $736 | 1; + HEAP32[$tbase$255$i + ($736 + $$sum$i19$i) >> 2] = $736; + break; + } + $$sum2$i21$i = $tsize$254$i + 4 | 0; + $741 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $719) >> 2] | 0; + if (($741 & 3 | 0) == 1) { + $744 = $741 & -8; + $745 = $741 >>> 3; + L332 : do if ($741 >>> 0 < 256) { + $748 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0; + $750 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0; + $752 = 10068 + ($745 << 1 << 2) | 0; + do if (($748 | 0) != ($752 | 0)) { + if ($748 >>> 0 < $755 >>> 0) _abort(); + if ((HEAP32[$748 + 12 >> 2] | 0) == ($720 | 0)) break; + _abort(); + } while (0); + if (($750 | 0) == ($748 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $745); + break; + } + do if (($750 | 0) == ($752 | 0)) $$pre$phi58$i$iZ2D = $750 + 8 | 0; else { + if ($750 >>> 0 < $755 >>> 0) _abort(); + $766 = $750 + 8 | 0; + if ((HEAP32[$766 >> 2] | 0) == ($720 | 0)) { + $$pre$phi58$i$iZ2D = $766; + break; + } + _abort(); + } while (0); + HEAP32[$748 + 12 >> 2] = $750; + HEAP32[$$pre$phi58$i$iZ2D >> 2] = $748; + } else { + $771 = HEAP32[$tbase$255$i + (($719 | 24) + $tsize$254$i) >> 2] | 0; + $773 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0; + do if (($773 | 0) == ($720 | 0)) { + $$sum67$i$i = $719 | 16; + $784 = $tbase$255$i + ($$sum2$i21$i + $$sum67$i$i) | 0; + $785 = HEAP32[$784 >> 2] | 0; + if (!$785) { + $787 = $tbase$255$i + ($$sum67$i$i + $tsize$254$i) | 0; + $788 = HEAP32[$787 >> 2] | 0; + if (!$788) { + $R$1$i$i = 0; + break; + } else { + $R$0$i$i = $788; + $RP$0$i$i = $787; + } + } else { + $R$0$i$i = $785; + $RP$0$i$i = $784; + } + while (1) { + $790 = $R$0$i$i + 20 | 0; + $791 = HEAP32[$790 >> 2] | 0; + if ($791) { + $R$0$i$i = $791; + $RP$0$i$i = $790; + continue; + } + $793 = $R$0$i$i + 16 | 0; + $794 = HEAP32[$793 >> 2] | 0; + if (!$794) { + $R$0$i$i$lcssa = $R$0$i$i; + $RP$0$i$i$lcssa = $RP$0$i$i; + break; + } else { + $R$0$i$i = $794; + $RP$0$i$i = $793; + } + } + if ($RP$0$i$i$lcssa >>> 0 < $755 >>> 0) _abort(); else { + HEAP32[$RP$0$i$i$lcssa >> 2] = 0; + $R$1$i$i = $R$0$i$i$lcssa; + break; + } + } else { + $776 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0; + if ($776 >>> 0 < $755 >>> 0) _abort(); + $778 = $776 + 12 | 0; + if ((HEAP32[$778 >> 2] | 0) != ($720 | 0)) _abort(); + $781 = $773 + 8 | 0; + if ((HEAP32[$781 >> 2] | 0) == ($720 | 0)) { + HEAP32[$778 >> 2] = $773; + HEAP32[$781 >> 2] = $776; + $R$1$i$i = $773; + break; + } else _abort(); + } while (0); + if (!$771) break; + $799 = HEAP32[$tbase$255$i + ($tsize$254$i + 28 + $719) >> 2] | 0; + $800 = 10332 + ($799 << 2) | 0; + do if (($720 | 0) == (HEAP32[$800 >> 2] | 0)) { + HEAP32[$800 >> 2] = $R$1$i$i; + if ($R$1$i$i) break; + HEAP32[2508] = HEAP32[2508] & ~(1 << $799); + break L332; + } else { + if ($771 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $809 = $771 + 16 | 0; + if ((HEAP32[$809 >> 2] | 0) == ($720 | 0)) HEAP32[$809 >> 2] = $R$1$i$i; else HEAP32[$771 + 20 >> 2] = $R$1$i$i; + if (!$R$1$i$i) break L332; + } while (0); + $814 = HEAP32[2511] | 0; + if ($R$1$i$i >>> 0 < $814 >>> 0) _abort(); + HEAP32[$R$1$i$i + 24 >> 2] = $771; + $$sum3132$i$i = $719 | 16; + $818 = HEAP32[$tbase$255$i + ($$sum3132$i$i + $tsize$254$i) >> 2] | 0; + do if ($818) if ($818 >>> 0 < $814 >>> 0) _abort(); else { + HEAP32[$R$1$i$i + 16 >> 2] = $818; + HEAP32[$818 + 24 >> 2] = $R$1$i$i; + break; + } while (0); + $824 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $$sum3132$i$i) >> 2] | 0; + if (!$824) break; + if ($824 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1$i$i + 20 >> 2] = $824; + HEAP32[$824 + 24 >> 2] = $R$1$i$i; + break; + } + } while (0); + $oldfirst$0$i$i = $tbase$255$i + (($744 | $719) + $tsize$254$i) | 0; + $qsize$0$i$i = $744 + $725 | 0; + } else { + $oldfirst$0$i$i = $720; + $qsize$0$i$i = $725; + } + $832 = $oldfirst$0$i$i + 4 | 0; + HEAP32[$832 >> 2] = HEAP32[$832 >> 2] & -2; + HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $qsize$0$i$i | 1; + HEAP32[$tbase$255$i + ($qsize$0$i$i + $$sum$i19$i) >> 2] = $qsize$0$i$i; + $838 = $qsize$0$i$i >>> 3; + if ($qsize$0$i$i >>> 0 < 256) { + $840 = $838 << 1; + $841 = 10068 + ($840 << 2) | 0; + $842 = HEAP32[2507] | 0; + $843 = 1 << $838; + do if (!($842 & $843)) { + HEAP32[2507] = $842 | $843; + $$pre$phi$i23$iZ2D = 10068 + ($840 + 2 << 2) | 0; + $F4$0$i$i = $841; + } else { + $847 = 10068 + ($840 + 2 << 2) | 0; + $848 = HEAP32[$847 >> 2] | 0; + if ($848 >>> 0 >= (HEAP32[2511] | 0) >>> 0) { + $$pre$phi$i23$iZ2D = $847; + $F4$0$i$i = $848; + break; + } + _abort(); + } while (0); + HEAP32[$$pre$phi$i23$iZ2D >> 2] = $724; + HEAP32[$F4$0$i$i + 12 >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $F4$0$i$i; + HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $841; + break; + } + $854 = $qsize$0$i$i >>> 8; + do if (!$854) $I7$0$i$i = 0; else { + if ($qsize$0$i$i >>> 0 > 16777215) { + $I7$0$i$i = 31; + break; + } + $859 = ($854 + 1048320 | 0) >>> 16 & 8; + $860 = $854 << $859; + $863 = ($860 + 520192 | 0) >>> 16 & 4; + $865 = $860 << $863; + $868 = ($865 + 245760 | 0) >>> 16 & 2; + $873 = 14 - ($863 | $859 | $868) + ($865 << $868 >>> 15) | 0; + $I7$0$i$i = $qsize$0$i$i >>> ($873 + 7 | 0) & 1 | $873 << 1; + } while (0); + $879 = 10332 + ($I7$0$i$i << 2) | 0; + HEAP32[$tbase$255$i + ($$sum$i19$i + 28) >> 2] = $I7$0$i$i; + HEAP32[$tbase$255$i + ($$sum$i19$i + 20) >> 2] = 0; + HEAP32[$tbase$255$i + ($$sum$i19$i + 16) >> 2] = 0; + $883 = HEAP32[2508] | 0; + $884 = 1 << $I7$0$i$i; + if (!($883 & $884)) { + HEAP32[2508] = $883 | $884; + HEAP32[$879 >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $879; + HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724; + break; + } + $891 = HEAP32[$879 >> 2] | 0; + L418 : do if ((HEAP32[$891 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) $T$0$lcssa$i25$i = $891; else { + $K8$051$i$i = $qsize$0$i$i << (($I7$0$i$i | 0) == 31 ? 0 : 25 - ($I7$0$i$i >>> 1) | 0); + $T$050$i$i = $891; + while (1) { + $908 = $T$050$i$i + 16 + ($K8$051$i$i >>> 31 << 2) | 0; + $903 = HEAP32[$908 >> 2] | 0; + if (!$903) { + $$lcssa = $908; + $T$050$i$i$lcssa = $T$050$i$i; + break; + } + if ((HEAP32[$903 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) { + $T$0$lcssa$i25$i = $903; + break L418; + } else { + $K8$051$i$i = $K8$051$i$i << 1; + $T$050$i$i = $903; + } + } + if ($$lcssa >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$$lcssa >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $T$050$i$i$lcssa; + HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724; + break L324; + } + } while (0); + $915 = $T$0$lcssa$i25$i + 8 | 0; + $916 = HEAP32[$915 >> 2] | 0; + $917 = HEAP32[2511] | 0; + if ($916 >>> 0 >= $917 >>> 0 & $T$0$lcssa$i25$i >>> 0 >= $917 >>> 0) { + HEAP32[$916 + 12 >> 2] = $724; + HEAP32[$915 >> 2] = $724; + HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $916; + HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $T$0$lcssa$i25$i; + HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = 0; + break; + } else _abort(); + } while (0); + $mem$0 = $tbase$255$i + ($711 | 8) | 0; + return $mem$0 | 0; + } else $sp$0$i$i$i = 10476; + while (1) { + $925 = HEAP32[$sp$0$i$i$i >> 2] | 0; + if ($925 >>> 0 <= $635 >>> 0) { + $928 = HEAP32[$sp$0$i$i$i + 4 >> 2] | 0; + $929 = $925 + $928 | 0; + if ($929 >>> 0 > $635 >>> 0) { + $$lcssa215 = $925; + $$lcssa216 = $928; + $$lcssa217 = $929; + break; + } + } + $sp$0$i$i$i = HEAP32[$sp$0$i$i$i + 8 >> 2] | 0; + } + $934 = $$lcssa215 + ($$lcssa216 + -39) | 0; + $940 = $$lcssa215 + ($$lcssa216 + -47 + (($934 & 7 | 0) == 0 ? 0 : 0 - $934 & 7)) | 0; + $941 = $635 + 16 | 0; + $943 = $940 >>> 0 < $941 >>> 0 ? $635 : $940; + $944 = $943 + 8 | 0; + $947 = $tbase$255$i + 8 | 0; + $952 = ($947 & 7 | 0) == 0 ? 0 : 0 - $947 & 7; + $954 = $tsize$254$i + -40 - $952 | 0; + HEAP32[2513] = $tbase$255$i + $952; + HEAP32[2510] = $954; + HEAP32[$tbase$255$i + ($952 + 4) >> 2] = $954 | 1; + HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40; + HEAP32[2514] = HEAP32[2629]; + $959 = $943 + 4 | 0; + HEAP32[$959 >> 2] = 27; + HEAP32[$944 >> 2] = HEAP32[2619]; + HEAP32[$944 + 4 >> 2] = HEAP32[2620]; + HEAP32[$944 + 8 >> 2] = HEAP32[2621]; + HEAP32[$944 + 12 >> 2] = HEAP32[2622]; + HEAP32[2619] = $tbase$255$i; + HEAP32[2620] = $tsize$254$i; + HEAP32[2622] = 0; + HEAP32[2621] = $944; + $960 = $943 + 28 | 0; + HEAP32[$960 >> 2] = 7; + if (($943 + 32 | 0) >>> 0 < $$lcssa217 >>> 0) { + $964 = $960; + do { + $964$looptemp = $964; + $964 = $964 + 4 | 0; + HEAP32[$964 >> 2] = 7; + } while (($964$looptemp + 8 | 0) >>> 0 < $$lcssa217 >>> 0); + } + if (($943 | 0) != ($635 | 0)) { + $970 = $943 - $635 | 0; + HEAP32[$959 >> 2] = HEAP32[$959 >> 2] & -2; + HEAP32[$635 + 4 >> 2] = $970 | 1; + HEAP32[$943 >> 2] = $970; + $975 = $970 >>> 3; + if ($970 >>> 0 < 256) { + $977 = $975 << 1; + $978 = 10068 + ($977 << 2) | 0; + $979 = HEAP32[2507] | 0; + $980 = 1 << $975; + if (!($979 & $980)) { + HEAP32[2507] = $979 | $980; + $$pre$phi$i$iZ2D = 10068 + ($977 + 2 << 2) | 0; + $F$0$i$i = $978; + } else { + $984 = 10068 + ($977 + 2 << 2) | 0; + $985 = HEAP32[$984 >> 2] | 0; + if ($985 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phi$i$iZ2D = $984; + $F$0$i$i = $985; + } + } + HEAP32[$$pre$phi$i$iZ2D >> 2] = $635; + HEAP32[$F$0$i$i + 12 >> 2] = $635; + HEAP32[$635 + 8 >> 2] = $F$0$i$i; + HEAP32[$635 + 12 >> 2] = $978; + break; + } + $991 = $970 >>> 8; + if (!$991) $I1$0$i$i = 0; else if ($970 >>> 0 > 16777215) $I1$0$i$i = 31; else { + $996 = ($991 + 1048320 | 0) >>> 16 & 8; + $997 = $991 << $996; + $1000 = ($997 + 520192 | 0) >>> 16 & 4; + $1002 = $997 << $1000; + $1005 = ($1002 + 245760 | 0) >>> 16 & 2; + $1010 = 14 - ($1000 | $996 | $1005) + ($1002 << $1005 >>> 15) | 0; + $I1$0$i$i = $970 >>> ($1010 + 7 | 0) & 1 | $1010 << 1; + } + $1016 = 10332 + ($I1$0$i$i << 2) | 0; + HEAP32[$635 + 28 >> 2] = $I1$0$i$i; + HEAP32[$635 + 20 >> 2] = 0; + HEAP32[$941 >> 2] = 0; + $1019 = HEAP32[2508] | 0; + $1020 = 1 << $I1$0$i$i; + if (!($1019 & $1020)) { + HEAP32[2508] = $1019 | $1020; + HEAP32[$1016 >> 2] = $635; + HEAP32[$635 + 24 >> 2] = $1016; + HEAP32[$635 + 12 >> 2] = $635; + HEAP32[$635 + 8 >> 2] = $635; + break; + } + $1027 = HEAP32[$1016 >> 2] | 0; + L459 : do if ((HEAP32[$1027 + 4 >> 2] & -8 | 0) == ($970 | 0)) $T$0$lcssa$i$i = $1027; else { + $K2$07$i$i = $970 << (($I1$0$i$i | 0) == 31 ? 0 : 25 - ($I1$0$i$i >>> 1) | 0); + $T$06$i$i = $1027; + while (1) { + $1044 = $T$06$i$i + 16 + ($K2$07$i$i >>> 31 << 2) | 0; + $1039 = HEAP32[$1044 >> 2] | 0; + if (!$1039) { + $$lcssa211 = $1044; + $T$06$i$i$lcssa = $T$06$i$i; + break; + } + if ((HEAP32[$1039 + 4 >> 2] & -8 | 0) == ($970 | 0)) { + $T$0$lcssa$i$i = $1039; + break L459; + } else { + $K2$07$i$i = $K2$07$i$i << 1; + $T$06$i$i = $1039; + } + } + if ($$lcssa211 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$$lcssa211 >> 2] = $635; + HEAP32[$635 + 24 >> 2] = $T$06$i$i$lcssa; + HEAP32[$635 + 12 >> 2] = $635; + HEAP32[$635 + 8 >> 2] = $635; + break L299; + } + } while (0); + $1051 = $T$0$lcssa$i$i + 8 | 0; + $1052 = HEAP32[$1051 >> 2] | 0; + $1053 = HEAP32[2511] | 0; + if ($1052 >>> 0 >= $1053 >>> 0 & $T$0$lcssa$i$i >>> 0 >= $1053 >>> 0) { + HEAP32[$1052 + 12 >> 2] = $635; + HEAP32[$1051 >> 2] = $635; + HEAP32[$635 + 8 >> 2] = $1052; + HEAP32[$635 + 12 >> 2] = $T$0$lcssa$i$i; + HEAP32[$635 + 24 >> 2] = 0; + break; + } else _abort(); + } + } while (0); + $1060 = HEAP32[2510] | 0; + if ($1060 >>> 0 > $nb$0 >>> 0) { + $1062 = $1060 - $nb$0 | 0; + HEAP32[2510] = $1062; + $1063 = HEAP32[2513] | 0; + HEAP32[2513] = $1063 + $nb$0; + HEAP32[$1063 + ($nb$0 + 4) >> 2] = $1062 | 1; + HEAP32[$1063 + 4 >> 2] = $nb$0 | 3; + $mem$0 = $1063 + 8 | 0; + return $mem$0 | 0; + } + } + $1070 = ___errno_location() | 0; + HEAP32[$1070 >> 2] = 12; + $mem$0 = 0; + return $mem$0 | 0; +} + +function ___floatscan($f, $prec, $pok) { + $f = $f | 0; + $prec = $prec | 0; + $pok = $pok | 0; + var $$0 = 0.0, $$0$i27 = 0.0, $$010$i = 0, $$07$i = 0, $$0710$i = 0, $$0711$i = 0, $$09$i = 0, $$1$be$i = 0, $$1$ph$i = 0, $$18$i = 0, $$2$i = 0, $$3$be$i = 0, $$3$lcssa$i = 0, $$3105$i = 0, $$in = 0, $$lcssa = 0, $$lcssa256 = 0, $$lcssa256$lcssa = 0, $$lcssa257 = 0, $$lcssa257$lcssa = 0, $$lcssa263 = 0, $$lcssa264 = 0, $$lcssa265 = 0, $$lcssa275 = 0, $$not$i = 0, $$pre$i = 0, $$pre$i17 = 0, $$pre$phi42$iZ2D = 0.0, $$sink$off0$i = 0, $0 = 0, $1 = 0, $103 = 0, $113 = 0, $115 = 0, $123 = 0, $125 = 0, $132 = 0, $139 = 0, $147 = 0, $15 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $183 = 0.0, $190 = 0, $192 = 0, $2 = 0, $201 = 0, $205 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $223 = 0, $224 = 0, $225 = 0, $235 = 0, $236 = 0, $249 = 0, $251 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $266 = 0, $270 = 0, $272 = 0, $279 = 0, $283 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $295 = 0, $297 = 0, $298 = 0, $299 = 0, $300 = 0, $310 = 0.0, $322 = 0.0, $324 = 0, $330 = 0, $331 = 0, $338 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $350 = 0, $358 = 0, $36 = 0, $360 = 0, $362 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $371 = 0, $376 = 0, $377 = 0, $381 = 0, $39 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $402 = 0, $403 = 0, $412 = 0, $413 = 0, $414 = 0, $42 = 0, $421 = 0, $422 = 0, $427 = 0, $428 = 0, $430 = 0, $431 = 0, $444 = 0, $446 = 0, $452 = 0, $456 = 0, $458 = 0, $464 = 0, $470 = 0, $471 = 0, $472 = 0, $494 = 0, $506 = 0, $510 = 0, $513 = 0, $515 = 0, $516 = 0, $517 = 0, $520 = 0, $521 = 0, $533 = 0, $534 = 0, $535 = 0, $539 = 0, $541 = 0, $543 = 0, $544 = 0, $550 = 0, $552 = 0, $557 = 0, $560 = 0, $564 = 0, $567 = 0, $572 = 0, $576 = 0, $577 = 0, $579 = 0, $583 = 0, $585 = 0, $588 = 0, $589 = 0, $590 = 0, $591 = 0, $594 = 0, $595 = 0, $60 = 0, $604 = 0, $609 = 0, $610 = 0, $617 = 0, $619 = 0.0, $621 = 0, $625 = 0.0, $626 = 0.0, $629 = 0.0, $633 = 0, $636 = 0, $643 = 0.0, $661 = 0.0, $663 = 0, $669 = 0, $67 = 0, $670 = 0, $677 = 0, $680 = 0, $69 = 0, $691 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $77 = 0, $82 = 0, $9 = 0, $90 = 0, $99 = 0, $a$0$lcssa151$i = 0, $a$085$i = 0, $a$1$i = 0, $a$1$i$lcssa = 0, $a$2$ph38$i = 0, $a$3$i = 0, $a$3$i$lcssa248 = 0, $a$3$i249 = 0, $a$3$ph$i = 0, $a$3$ph157$i = 0, $a$478$i = 0, $a$5$i = 0, $a$5$i$lcssa = 0, $a$5$i$lcssa$lcssa = 0, $bias$0$i = 0.0, $bias$0$i25 = 0.0, $bits$0$ph = 0, $c$0 = 0, $c$0$i = 0, $c$1$lcssa = 0, $c$1$ph$i = 0, $c$179 = 0, $c$2 = 0, $c$2$i = 0, $c$2$lcssa$i = 0, $c$377 = 0, $c$4 = 0, $c$5 = 0, $c$6 = 0, $carry$087$i = 0, $carry1$0$i = 0, $carry1$1$i = 0, $carry1$1$i$lcssa = 0, $carry1$1$i$lcssa$lcssa = 0, $carry3$081$i = 0, $d$0$i = 0, $denormal$0$i = 0, $denormal$2$i = 0, $e2$0$i19 = 0, $e2$0$ph$i = 0, $e2$1$i = 0, $e2$1$i246 = 0, $e2$1$ph$i = 0, $e2$1$ph156$i = 0, $e2$2$i = 0, $e2$3$i = 0, $emin$0$ph = 0, $frac$0$i = 0.0, $frac$1$i = 0.0, $frac$2$i = 0.0, $gotdig$0$i = 0, $gotdig$0$i$lcssa242 = 0, $gotdig$0$i12 = 0, $gotdig$0$i12$lcssa273 = 0, $gotdig$2$i = 0, $gotdig$2$i$lcssa = 0, $gotdig$2$i13 = 0, $gotdig$3$i = 0, $gotdig$3$lcssa$i = 0, $gotdig$3101$i = 0, $gotdig$3101$i$lcssa = 0, $gotdig$4$i = 0, $gotrad$0$i = 0, $gotrad$0$i$lcssa = 0, $gotrad$0$i14 = 0, $gotrad$1$i = 0, $gotrad$1$lcssa$i = 0, $gotrad$1102$i = 0, $gotrad$2$i = 0, $gottail$0$i = 0, $gottail$1$i = 0, $gottail$2$i = 0, $i$0$lcssa = 0, $i$078 = 0, $i$1 = 0, $i$276 = 0, $i$3 = 0, $i$4 = 0, $i$4$lcssa = 0, $j$0$lcssa$i = 0, $j$0104$i = 0, $j$0104$i$lcssa = 0, $j$067$i = 0, $j$068$i = 0, $j$069$i = 0, $j$2$i = 0, $j$394$i = 0, $k$0$lcssa$i = 0, $k$0103$i = 0, $k$0103$i$lcssa = 0, $k$063$i = 0, $k$064$i = 0, $k$065$i = 0, $k$2$i = 0, $k$3$i = 0, $k$486$i = 0, $k$5$i = 0, $k$5$in$i = 0, $k$679$i = 0, $lnz$0$lcssa$i = 0, $lnz$0100$i = 0, $lnz$0100$i$lcssa = 0, $lnz$057$i = 0, $lnz$058$i = 0, $lnz$059$i = 0, $lnz$2$i = 0, $or$cond16$i = 0, $or$cond19$i = 0, $or$cond9$i = 0, $rp$0$lcssa152$i = 0, $rp$084$i = 0, $rp$1$i18 = 0, $rp$1$i18$lcssa = 0, $rp$2$ph36$i = 0, $rp$3$ph$i = 0, $rp$3$ph34$i = 0, $rp$477$i = 0, $rp$5$i = 0, $rp$5$i$lcssa = 0, $rp$5$i$lcssa$lcssa = 0, $scale$0$i = 0.0, $scale$1$i = 0.0, $scale$2$i = 0.0, $sign$0 = 0, $storemerge$i = 0, $sum$i = 0, $x$0$i = 0, $x$0$i$lcssa = 0, $x$1$i = 0, $x$2$i = 0, $x$3$lcssa$i = 0, $x$324$i = 0, $x$4$lcssa$i = 0, $x$419$i = 0, $x$5$i = 0, $x$i = 0, $y$0$i = 0.0, $y$0$i$lcssa = 0.0, $y$1$i = 0.0, $y$1$i24 = 0.0, $y$2$i = 0.0, $y$2$i26 = 0.0, $y$3$i = 0.0, $y$3$lcssa$i = 0.0, $y$320$i = 0.0, $y$4$i = 0.0, $z$0$i = 0, $z$1$i = 0, $z$1$ph37$i = 0, $z$2$i = 0, $z$3$i = 0, $z$3$i$lcssa = 0, $z$3$i$lcssa$lcssa = 0, $z$4$i = 0, $z$5$ph$i = 0, $z$7$1$i = 0, $z$7$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $x$i = sp; + switch ($prec | 0) { + case 0: + { + $bits$0$ph = 24; + $emin$0$ph = -149; + label = 4; + break; + } + case 1: + { + $bits$0$ph = 53; + $emin$0$ph = -1074; + label = 4; + break; + } + case 2: + { + $bits$0$ph = 53; + $emin$0$ph = -1074; + label = 4; + break; + } + default: + $$0 = 0.0; + } + L4 : do if ((label | 0) == 4) { + $0 = $f + 4 | 0; + $1 = $f + 100 | 0; + do { + $2 = HEAP32[$0 >> 2] | 0; + if ($2 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $2 + 1; + $9 = HEAPU8[$2 >> 0] | 0; + } else $9 = ___shgetc($f) | 0; + } while ((_isspace($9) | 0) != 0); + $$lcssa275 = $9; + L13 : do switch ($$lcssa275 | 0) { + case 43: + case 45: + { + $15 = 1 - ((($$lcssa275 | 0) == 45 & 1) << 1) | 0; + $16 = HEAP32[$0 >> 2] | 0; + if ($16 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $16 + 1; + $c$0 = HEAPU8[$16 >> 0] | 0; + $sign$0 = $15; + break L13; + } else { + $c$0 = ___shgetc($f) | 0; + $sign$0 = $15; + break L13; + } + break; + } + default: + { + $c$0 = $$lcssa275; + $sign$0 = 1; + } + } while (0); + $c$179 = $c$0; + $i$078 = 0; + while (1) { + if (($c$179 | 32 | 0) != (HEAP8[51781 + $i$078 >> 0] | 0)) { + $c$1$lcssa = $c$179; + $i$0$lcssa = $i$078; + break; + } + do if ($i$078 >>> 0 < 7) { + $29 = HEAP32[$0 >> 2] | 0; + if ($29 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $29 + 1; + $c$2 = HEAPU8[$29 >> 0] | 0; + break; + } else { + $c$2 = ___shgetc($f) | 0; + break; + } + } else $c$2 = $c$179; while (0); + $36 = $i$078 + 1 | 0; + if ($36 >>> 0 < 8) { + $c$179 = $c$2; + $i$078 = $36; + } else { + $c$1$lcssa = $c$2; + $i$0$lcssa = $36; + break; + } + } + L29 : do switch ($i$0$lcssa | 0) { + case 8: + break; + case 3: + { + label = 23; + break; + } + default: + { + $39 = ($pok | 0) != 0; + if ($39 & $i$0$lcssa >>> 0 > 3) if (($i$0$lcssa | 0) == 8) break L29; else { + label = 23; + break L29; + } + L34 : do if (!$i$0$lcssa) { + $c$377 = $c$1$lcssa; + $i$276 = 0; + while (1) { + if (($c$377 | 32 | 0) != (HEAP8[54702 + $i$276 >> 0] | 0)) { + $c$5 = $c$377; + $i$3 = $i$276; + break L34; + } + do if ($i$276 >>> 0 < 2) { + $60 = HEAP32[$0 >> 2] | 0; + if ($60 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $60 + 1; + $c$4 = HEAPU8[$60 >> 0] | 0; + break; + } else { + $c$4 = ___shgetc($f) | 0; + break; + } + } else $c$4 = $c$377; while (0); + $67 = $i$276 + 1 | 0; + if ($67 >>> 0 < 3) { + $c$377 = $c$4; + $i$276 = $67; + } else { + $c$5 = $c$4; + $i$3 = $67; + break; + } + } + } else { + $c$5 = $c$1$lcssa; + $i$3 = $i$0$lcssa; + } while (0); + switch ($i$3 | 0) { + case 3: + { + $69 = HEAP32[$0 >> 2] | 0; + if ($69 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $69 + 1; + $77 = HEAPU8[$69 >> 0] | 0; + } else $77 = ___shgetc($f) | 0; + if (($77 | 0) == 40) $i$4 = 1; else { + if (!(HEAP32[$1 >> 2] | 0)) { + $$0 = nan; + break L4; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $$0 = nan; + break L4; + } + while (1) { + $82 = HEAP32[$0 >> 2] | 0; + if ($82 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $82 + 1; + $90 = HEAPU8[$82 >> 0] | 0; + } else $90 = ___shgetc($f) | 0; + if (!(($90 + -48 | 0) >>> 0 < 10 | ($90 + -65 | 0) >>> 0 < 26)) if (!(($90 | 0) == 95 | ($90 + -97 | 0) >>> 0 < 26)) { + $$lcssa = $90; + $i$4$lcssa = $i$4; + break; + } + $i$4 = $i$4 + 1 | 0; + } + if (($$lcssa | 0) == 41) { + $$0 = nan; + break L4; + } + $99 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if (!$39) { + $103 = ___errno_location() | 0; + HEAP32[$103 >> 2] = 22; + ___shlim($f, 0); + $$0 = 0.0; + break L4; + } + if (!$i$4$lcssa) { + $$0 = nan; + break L4; + } else $$in = $i$4$lcssa; + while (1) { + $$in = $$in + -1 | 0; + if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if (!$$in) { + $$0 = nan; + break L4; + } + } + break; + } + case 0: + { + do if (($c$5 | 0) == 48) { + $115 = HEAP32[$0 >> 2] | 0; + if ($115 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $115 + 1; + $123 = HEAPU8[$115 >> 0] | 0; + } else $123 = ___shgetc($f) | 0; + if (($123 | 32 | 0) != 120) { + if (!(HEAP32[$1 >> 2] | 0)) { + $c$6 = 48; + break; + } + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $c$6 = 48; + break; + } + $125 = HEAP32[$0 >> 2] | 0; + if ($125 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $125 + 1; + $c$0$i = HEAPU8[$125 >> 0] | 0; + $gotdig$0$i = 0; + } else { + $c$0$i = ___shgetc($f) | 0; + $gotdig$0$i = 0; + } + L94 : while (1) { + switch ($c$0$i | 0) { + case 46: + { + $gotdig$0$i$lcssa242 = $gotdig$0$i; + label = 74; + break L94; + break; + } + case 48: + break; + default: + { + $169 = 0; + $171 = 0; + $694 = 0; + $695 = 0; + $c$2$i = $c$0$i; + $gotdig$2$i = $gotdig$0$i; + $gotrad$0$i = 0; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + break L94; + } + } + $132 = HEAP32[$0 >> 2] | 0; + if ($132 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $132 + 1; + $c$0$i = HEAPU8[$132 >> 0] | 0; + $gotdig$0$i = 1; + continue; + } else { + $c$0$i = ___shgetc($f) | 0; + $gotdig$0$i = 1; + continue; + } + } + if ((label | 0) == 74) { + $139 = HEAP32[$0 >> 2] | 0; + if ($139 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $139 + 1; + $c$1$ph$i = HEAPU8[$139 >> 0] | 0; + } else $c$1$ph$i = ___shgetc($f) | 0; + if (($c$1$ph$i | 0) == 48) { + $154 = 0; + $155 = 0; + while (1) { + $147 = HEAP32[$0 >> 2] | 0; + if ($147 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $147 + 1; + $159 = HEAPU8[$147 >> 0] | 0; + } else $159 = ___shgetc($f) | 0; + $156 = _i64Add($154 | 0, $155 | 0, -1, -1) | 0; + $157 = tempRet0; + if (($159 | 0) == 48) { + $154 = $156; + $155 = $157; + } else { + $169 = 0; + $171 = 0; + $694 = $156; + $695 = $157; + $c$2$i = $159; + $gotdig$2$i = 1; + $gotrad$0$i = 1; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + break; + } + } + } else { + $169 = 0; + $171 = 0; + $694 = 0; + $695 = 0; + $c$2$i = $c$1$ph$i; + $gotdig$2$i = $gotdig$0$i$lcssa242; + $gotrad$0$i = 1; + $gottail$0$i = 0; + $scale$0$i = 1.0; + $x$0$i = 0; + $y$0$i = 0.0; + } + } + while (1) { + $160 = $c$2$i + -48 | 0; + $$pre$i = $c$2$i | 32; + if ($160 >>> 0 < 10) label = 86; else { + $164 = ($c$2$i | 0) == 46; + if (!($164 | ($$pre$i + -97 | 0) >>> 0 < 6)) { + $213 = $171; + $214 = $694; + $216 = $169; + $217 = $695; + $c$2$lcssa$i = $c$2$i; + $gotdig$2$i$lcssa = $gotdig$2$i; + $gotrad$0$i$lcssa = $gotrad$0$i; + $x$0$i$lcssa = $x$0$i; + $y$0$i$lcssa = $y$0$i; + break; + } + if ($164) if (!$gotrad$0$i) { + $696 = $171; + $697 = $169; + $698 = $171; + $699 = $169; + $gotdig$3$i = $gotdig$2$i; + $gotrad$1$i = 1; + $gottail$2$i = $gottail$0$i; + $scale$2$i = $scale$0$i; + $x$2$i = $x$0$i; + $y$2$i = $y$0$i; + } else { + $213 = $171; + $214 = $694; + $216 = $169; + $217 = $695; + $c$2$lcssa$i = 46; + $gotdig$2$i$lcssa = $gotdig$2$i; + $gotrad$0$i$lcssa = $gotrad$0$i; + $x$0$i$lcssa = $x$0$i; + $y$0$i$lcssa = $y$0$i; + break; + } else label = 86; + } + if ((label | 0) == 86) { + label = 0; + $d$0$i = ($c$2$i | 0) > 57 ? $$pre$i + -87 | 0 : $160; + do if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 8) { + $gottail$1$i = $gottail$0$i; + $scale$1$i = $scale$0$i; + $x$1$i = $d$0$i + ($x$0$i << 4) | 0; + $y$1$i = $y$0$i; + } else { + if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 14) { + $183 = $scale$0$i * .0625; + $gottail$1$i = $gottail$0$i; + $scale$1$i = $183; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i + $183 * +($d$0$i | 0); + break; + } + if (($gottail$0$i | 0) != 0 | ($d$0$i | 0) == 0) { + $gottail$1$i = $gottail$0$i; + $scale$1$i = $scale$0$i; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i; + } else { + $gottail$1$i = 1; + $scale$1$i = $scale$0$i; + $x$1$i = $x$0$i; + $y$1$i = $y$0$i + $scale$0$i * .5; + } + } while (0); + $190 = _i64Add($171 | 0, $169 | 0, 1, 0) | 0; + $696 = $694; + $697 = $695; + $698 = $190; + $699 = tempRet0; + $gotdig$3$i = 1; + $gotrad$1$i = $gotrad$0$i; + $gottail$2$i = $gottail$1$i; + $scale$2$i = $scale$1$i; + $x$2$i = $x$1$i; + $y$2$i = $y$1$i; + } + $192 = HEAP32[$0 >> 2] | 0; + if ($192 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $192 + 1; + $169 = $699; + $171 = $698; + $694 = $696; + $695 = $697; + $c$2$i = HEAPU8[$192 >> 0] | 0; + $gotdig$2$i = $gotdig$3$i; + $gotrad$0$i = $gotrad$1$i; + $gottail$0$i = $gottail$2$i; + $scale$0$i = $scale$2$i; + $x$0$i = $x$2$i; + $y$0$i = $y$2$i; + continue; + } else { + $169 = $699; + $171 = $698; + $694 = $696; + $695 = $697; + $c$2$i = ___shgetc($f) | 0; + $gotdig$2$i = $gotdig$3$i; + $gotrad$0$i = $gotrad$1$i; + $gottail$0$i = $gottail$2$i; + $scale$0$i = $scale$2$i; + $x$0$i = $x$2$i; + $y$0$i = $y$2$i; + continue; + } + } + if (!$gotdig$2$i$lcssa) { + $201 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$201) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if (!$pok) ___shlim($f, 0); else if (!$201) { + $205 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $205 + -1; + if ($gotrad$0$i$lcssa) HEAP32[$0 >> 2] = $205 + -2; + } + $$0 = +($sign$0 | 0) * 0.0; + break L4; + } + $211 = ($gotrad$0$i$lcssa | 0) == 0; + $212 = $211 ? $213 : $214; + $215 = $211 ? $216 : $217; + if (($216 | 0) < 0 | ($216 | 0) == 0 & $213 >>> 0 < 8) { + $224 = $213; + $225 = $216; + $x$324$i = $x$0$i$lcssa; + while (1) { + $223 = $x$324$i << 4; + $224 = _i64Add($224 | 0, $225 | 0, 1, 0) | 0; + $225 = tempRet0; + if (!(($225 | 0) < 0 | ($225 | 0) == 0 & $224 >>> 0 < 8)) { + $x$3$lcssa$i = $223; + break; + } else $x$324$i = $223; + } + } else $x$3$lcssa$i = $x$0$i$lcssa; + if (($c$2$lcssa$i | 32 | 0) == 112) { + $235 = _scanexp($f, $pok) | 0; + $236 = tempRet0; + if (($235 | 0) == 0 & ($236 | 0) == -2147483648) { + if (!$pok) { + ___shlim($f, 0); + $$0 = 0.0; + break L4; + } + if (!(HEAP32[$1 >> 2] | 0)) { + $253 = 0; + $254 = 0; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $253 = 0; + $254 = 0; + } + } else { + $253 = $235; + $254 = $236; + } + } else if (!(HEAP32[$1 >> 2] | 0)) { + $253 = 0; + $254 = 0; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $253 = 0; + $254 = 0; + } + $249 = _bitshift64Shl($212 | 0, $215 | 0, 2) | 0; + $251 = _i64Add($249 | 0, tempRet0 | 0, -32, -1) | 0; + $255 = _i64Add($251 | 0, tempRet0 | 0, $253 | 0, $254 | 0) | 0; + $256 = tempRet0; + if (!$x$3$lcssa$i) { + $$0 = +($sign$0 | 0) * 0.0; + break L4; + } + if (($256 | 0) > 0 | ($256 | 0) == 0 & $255 >>> 0 > (0 - $emin$0$ph | 0) >>> 0) { + $266 = ___errno_location() | 0; + HEAP32[$266 >> 2] = 34; + $$0 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284; + break L4; + } + $270 = $emin$0$ph + -106 | 0; + $272 = (($270 | 0) < 0) << 31 >> 31; + if (($256 | 0) < ($272 | 0) | ($256 | 0) == ($272 | 0) & $255 >>> 0 < $270 >>> 0) { + $279 = ___errno_location() | 0; + HEAP32[$279 >> 2] = 34; + $$0 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; + break L4; + } + if (($x$3$lcssa$i | 0) > -1) { + $288 = $255; + $289 = $256; + $x$419$i = $x$3$lcssa$i; + $y$320$i = $y$0$i$lcssa; + while (1) { + $283 = !($y$320$i >= .5); + $287 = $283 & 1 | $x$419$i << 1; + $x$5$i = $287 ^ 1; + $y$4$i = $y$320$i + ($283 ? $y$320$i : $y$320$i + -1.0); + $290 = _i64Add($288 | 0, $289 | 0, -1, -1) | 0; + $291 = tempRet0; + if (($287 | 0) > -1) { + $288 = $290; + $289 = $291; + $x$419$i = $x$5$i; + $y$320$i = $y$4$i; + } else { + $297 = $290; + $298 = $291; + $x$4$lcssa$i = $x$5$i; + $y$3$lcssa$i = $y$4$i; + break; + } + } + } else { + $297 = $255; + $298 = $256; + $x$4$lcssa$i = $x$3$lcssa$i; + $y$3$lcssa$i = $y$0$i$lcssa; + } + $295 = _i64Subtract(32, 0, $emin$0$ph | 0, (($emin$0$ph | 0) < 0) << 31 >> 31 | 0) | 0; + $299 = _i64Add($297 | 0, $298 | 0, $295 | 0, tempRet0 | 0) | 0; + $300 = tempRet0; + if (0 > ($300 | 0) | 0 == ($300 | 0) & $bits$0$ph >>> 0 > $299 >>> 0) if (($299 | 0) < 0) { + $$0710$i = 0; + label = 127; + } else { + $$07$i = $299; + label = 125; + } else { + $$07$i = $bits$0$ph; + label = 125; + } + if ((label | 0) == 125) if (($$07$i | 0) < 53) { + $$0710$i = $$07$i; + label = 127; + } else { + $$0711$i = $$07$i; + $$pre$phi42$iZ2D = +($sign$0 | 0); + $bias$0$i = 0.0; + } + if ((label | 0) == 127) { + $310 = +($sign$0 | 0); + $$0711$i = $$0710$i; + $$pre$phi42$iZ2D = $310; + $bias$0$i = +_copysignl(+_scalbn(1.0, 84 - $$0710$i | 0), $310); + } + $or$cond9$i = ($x$4$lcssa$i & 1 | 0) == 0 & ($y$3$lcssa$i != 0.0 & ($$0711$i | 0) < 32); + $322 = $$pre$phi42$iZ2D * ($or$cond9$i ? 0.0 : $y$3$lcssa$i) + ($bias$0$i + $$pre$phi42$iZ2D * +((($or$cond9$i & 1) + $x$4$lcssa$i | 0) >>> 0)) - $bias$0$i; + if (!($322 != 0.0)) { + $324 = ___errno_location() | 0; + HEAP32[$324 >> 2] = 34; + } + $$0 = +_scalbnl($322, $297); + break L4; + } else $c$6 = $c$5; while (0); + $sum$i = $emin$0$ph + $bits$0$ph | 0; + $330 = 0 - $sum$i | 0; + $$09$i = $c$6; + $gotdig$0$i12 = 0; + L184 : while (1) { + switch ($$09$i | 0) { + case 46: + { + $gotdig$0$i12$lcssa273 = $gotdig$0$i12; + label = 138; + break L184; + break; + } + case 48: + break; + default: + { + $$2$i = $$09$i; + $700 = 0; + $701 = 0; + $gotdig$2$i13 = $gotdig$0$i12; + $gotrad$0$i14 = 0; + break L184; + } + } + $331 = HEAP32[$0 >> 2] | 0; + if ($331 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $331 + 1; + $$09$i = HEAPU8[$331 >> 0] | 0; + $gotdig$0$i12 = 1; + continue; + } else { + $$09$i = ___shgetc($f) | 0; + $gotdig$0$i12 = 1; + continue; + } + } + if ((label | 0) == 138) { + $338 = HEAP32[$0 >> 2] | 0; + if ($338 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $338 + 1; + $$1$ph$i = HEAPU8[$338 >> 0] | 0; + } else $$1$ph$i = ___shgetc($f) | 0; + if (($$1$ph$i | 0) == 48) { + $346 = 0; + $347 = 0; + while (1) { + $348 = _i64Add($346 | 0, $347 | 0, -1, -1) | 0; + $349 = tempRet0; + $350 = HEAP32[$0 >> 2] | 0; + if ($350 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $350 + 1; + $$1$be$i = HEAPU8[$350 >> 0] | 0; + } else $$1$be$i = ___shgetc($f) | 0; + if (($$1$be$i | 0) == 48) { + $346 = $348; + $347 = $349; + } else { + $$2$i = $$1$be$i; + $700 = $348; + $701 = $349; + $gotdig$2$i13 = 1; + $gotrad$0$i14 = 1; + break; + } + } + } else { + $$2$i = $$1$ph$i; + $700 = 0; + $701 = 0; + $gotdig$2$i13 = $gotdig$0$i12$lcssa273; + $gotrad$0$i14 = 1; + } + } + HEAP32[$x$i >> 2] = 0; + $358 = $$2$i + -48 | 0; + $360 = ($$2$i | 0) == 46; + L203 : do if ($360 | $358 >>> 0 < 10) { + $362 = $x$i + 496 | 0; + $$3105$i = $$2$i; + $365 = 0; + $366 = 0; + $702 = $360; + $703 = $358; + $704 = $700; + $705 = $701; + $gotdig$3101$i = $gotdig$2$i13; + $gotrad$1102$i = $gotrad$0$i14; + $j$0104$i = 0; + $k$0103$i = 0; + $lnz$0100$i = 0; + L205 : while (1) { + do if ($702) if (!$gotrad$1102$i) { + $706 = $365; + $707 = $366; + $708 = $365; + $709 = $366; + $gotdig$4$i = $gotdig$3101$i; + $gotrad$2$i = 1; + $j$2$i = $j$0104$i; + $k$2$i = $k$0103$i; + $lnz$2$i = $lnz$0100$i; + } else { + $710 = $704; + $711 = $705; + $712 = $365; + $713 = $366; + $gotdig$3101$i$lcssa = $gotdig$3101$i; + $j$0104$i$lcssa = $j$0104$i; + $k$0103$i$lcssa = $k$0103$i; + $lnz$0100$i$lcssa = $lnz$0100$i; + break L205; + } else { + $367 = _i64Add($365 | 0, $366 | 0, 1, 0) | 0; + $368 = tempRet0; + $369 = ($$3105$i | 0) != 48; + if (($k$0103$i | 0) >= 125) { + if (!$369) { + $706 = $704; + $707 = $705; + $708 = $367; + $709 = $368; + $gotdig$4$i = $gotdig$3101$i; + $gotrad$2$i = $gotrad$1102$i; + $j$2$i = $j$0104$i; + $k$2$i = $k$0103$i; + $lnz$2$i = $lnz$0100$i; + break; + } + HEAP32[$362 >> 2] = HEAP32[$362 >> 2] | 1; + $706 = $704; + $707 = $705; + $708 = $367; + $709 = $368; + $gotdig$4$i = $gotdig$3101$i; + $gotrad$2$i = $gotrad$1102$i; + $j$2$i = $j$0104$i; + $k$2$i = $k$0103$i; + $lnz$2$i = $lnz$0100$i; + break; + } + $371 = $x$i + ($k$0103$i << 2) | 0; + if (!$j$0104$i) $storemerge$i = $703; else $storemerge$i = $$3105$i + -48 + ((HEAP32[$371 >> 2] | 0) * 10 | 0) | 0; + HEAP32[$371 >> 2] = $storemerge$i; + $376 = $j$0104$i + 1 | 0; + $377 = ($376 | 0) == 9; + $706 = $704; + $707 = $705; + $708 = $367; + $709 = $368; + $gotdig$4$i = 1; + $gotrad$2$i = $gotrad$1102$i; + $j$2$i = $377 ? 0 : $376; + $k$2$i = ($377 & 1) + $k$0103$i | 0; + $lnz$2$i = $369 ? $367 : $lnz$0100$i; + } while (0); + $381 = HEAP32[$0 >> 2] | 0; + if ($381 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $381 + 1; + $$3$be$i = HEAPU8[$381 >> 0] | 0; + } else $$3$be$i = ___shgetc($f) | 0; + $703 = $$3$be$i + -48 | 0; + $702 = ($$3$be$i | 0) == 46; + if (!($702 | $703 >>> 0 < 10)) { + $$3$lcssa$i = $$3$be$i; + $394 = $708; + $395 = $706; + $397 = $709; + $398 = $707; + $gotdig$3$lcssa$i = $gotdig$4$i; + $gotrad$1$lcssa$i = $gotrad$2$i; + $j$0$lcssa$i = $j$2$i; + $k$0$lcssa$i = $k$2$i; + $lnz$0$lcssa$i = $lnz$2$i; + label = 161; + break L203; + } else { + $$3105$i = $$3$be$i; + $365 = $708; + $366 = $709; + $704 = $706; + $705 = $707; + $gotdig$3101$i = $gotdig$4$i; + $gotrad$1102$i = $gotrad$2$i; + $j$0104$i = $j$2$i; + $k$0103$i = $k$2$i; + $lnz$0100$i = $lnz$2$i; + } + } + $714 = $712; + $715 = $713; + $716 = $710; + $717 = $711; + $718 = ($gotdig$3101$i$lcssa | 0) != 0; + $j$069$i = $j$0104$i$lcssa; + $k$065$i = $k$0103$i$lcssa; + $lnz$059$i = $lnz$0100$i$lcssa; + label = 169; + } else { + $$3$lcssa$i = $$2$i; + $394 = 0; + $395 = $700; + $397 = 0; + $398 = $701; + $gotdig$3$lcssa$i = $gotdig$2$i13; + $gotrad$1$lcssa$i = $gotrad$0$i14; + $j$0$lcssa$i = 0; + $k$0$lcssa$i = 0; + $lnz$0$lcssa$i = 0; + label = 161; + } while (0); + do if ((label | 0) == 161) { + $392 = ($gotrad$1$lcssa$i | 0) == 0; + $393 = $392 ? $394 : $395; + $396 = $392 ? $397 : $398; + $399 = ($gotdig$3$lcssa$i | 0) != 0; + if (!(($$3$lcssa$i | 32 | 0) == 101 & $399)) if (($$3$lcssa$i | 0) > -1) { + $714 = $394; + $715 = $397; + $716 = $393; + $717 = $396; + $718 = $399; + $j$069$i = $j$0$lcssa$i; + $k$065$i = $k$0$lcssa$i; + $lnz$059$i = $lnz$0$lcssa$i; + label = 169; + break; + } else { + $719 = $394; + $720 = $397; + $721 = $399; + $722 = $393; + $723 = $396; + $j$068$i = $j$0$lcssa$i; + $k$064$i = $k$0$lcssa$i; + $lnz$058$i = $lnz$0$lcssa$i; + label = 171; + break; + } + $402 = _scanexp($f, $pok) | 0; + $403 = tempRet0; + if (($402 | 0) == 0 & ($403 | 0) == -2147483648) { + if (!$pok) { + ___shlim($f, 0); + $$0$i27 = 0.0; + break; + } + if (!(HEAP32[$1 >> 2] | 0)) { + $412 = 0; + $413 = 0; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $412 = 0; + $413 = 0; + } + } else { + $412 = $402; + $413 = $403; + } + $414 = _i64Add($412 | 0, $413 | 0, $393 | 0, $396 | 0) | 0; + $427 = $414; + $428 = $394; + $430 = tempRet0; + $431 = $397; + $j$067$i = $j$0$lcssa$i; + $k$063$i = $k$0$lcssa$i; + $lnz$057$i = $lnz$0$lcssa$i; + label = 173; + } while (0); + if ((label | 0) == 169) if (!(HEAP32[$1 >> 2] | 0)) { + $719 = $714; + $720 = $715; + $721 = $718; + $722 = $716; + $723 = $717; + $j$068$i = $j$069$i; + $k$064$i = $k$065$i; + $lnz$058$i = $lnz$059$i; + label = 171; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if ($718) { + $427 = $716; + $428 = $714; + $430 = $717; + $431 = $715; + $j$067$i = $j$069$i; + $k$063$i = $k$065$i; + $lnz$057$i = $lnz$059$i; + label = 173; + } else label = 172; + } + if ((label | 0) == 171) if ($721) { + $427 = $722; + $428 = $719; + $430 = $723; + $431 = $720; + $j$067$i = $j$068$i; + $k$063$i = $k$064$i; + $lnz$057$i = $lnz$058$i; + label = 173; + } else label = 172; + do if ((label | 0) == 172) { + $421 = ___errno_location() | 0; + HEAP32[$421 >> 2] = 22; + ___shlim($f, 0); + $$0$i27 = 0.0; + } else if ((label | 0) == 173) { + $422 = HEAP32[$x$i >> 2] | 0; + if (!$422) { + $$0$i27 = +($sign$0 | 0) * 0.0; + break; + } + if ((($431 | 0) < 0 | ($431 | 0) == 0 & $428 >>> 0 < 10) & (($427 | 0) == ($428 | 0) & ($430 | 0) == ($431 | 0))) if ($bits$0$ph >>> 0 > 30 | ($422 >>> $bits$0$ph | 0) == 0) { + $$0$i27 = +($sign$0 | 0) * +($422 >>> 0); + break; + } + $444 = ($emin$0$ph | 0) / -2 | 0; + $446 = (($444 | 0) < 0) << 31 >> 31; + if (($430 | 0) > ($446 | 0) | ($430 | 0) == ($446 | 0) & $427 >>> 0 > $444 >>> 0) { + $452 = ___errno_location() | 0; + HEAP32[$452 >> 2] = 34; + $$0$i27 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284; + break; + } + $456 = $emin$0$ph + -106 | 0; + $458 = (($456 | 0) < 0) << 31 >> 31; + if (($430 | 0) < ($458 | 0) | ($430 | 0) == ($458 | 0) & $427 >>> 0 < $456 >>> 0) { + $464 = ___errno_location() | 0; + HEAP32[$464 >> 2] = 34; + $$0$i27 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; + break; + } + if (!$j$067$i) $k$3$i = $k$063$i; else { + if (($j$067$i | 0) < 9) { + $470 = $x$i + ($k$063$i << 2) | 0; + $472 = HEAP32[$470 >> 2] | 0; + $j$394$i = $j$067$i; + while (1) { + $471 = $472 * 10 | 0; + $j$394$i = $j$394$i + 1 | 0; + if (($j$394$i | 0) == 9) { + $$lcssa265 = $471; + break; + } else $472 = $471; + } + HEAP32[$470 >> 2] = $$lcssa265; + } + $k$3$i = $k$063$i + 1 | 0; + } + if (($lnz$057$i | 0) < 9) if (($lnz$057$i | 0) <= ($427 | 0) & ($427 | 0) < 18) { + if (($427 | 0) == 9) { + $$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0); + break; + } + if (($427 | 0) < 9) { + $$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0) / +(HEAP32[6460 + (8 - $427 << 2) >> 2] | 0); + break; + } + $494 = $bits$0$ph + 27 + (Math_imul($427, -3) | 0) | 0; + $$pre$i17 = HEAP32[$x$i >> 2] | 0; + if (($494 | 0) > 30 | ($$pre$i17 >>> $494 | 0) == 0) { + $$0$i27 = +($sign$0 | 0) * +($$pre$i17 >>> 0) * +(HEAP32[6460 + ($427 + -10 << 2) >> 2] | 0); + break; + } + } + $506 = ($427 | 0) % 9 | 0; + if (!$506) { + $a$2$ph38$i = 0; + $e2$0$ph$i = 0; + $rp$2$ph36$i = $427; + $z$1$ph37$i = $k$3$i; + } else { + $510 = ($427 | 0) > -1 ? $506 : $506 + 9 | 0; + $513 = HEAP32[6460 + (8 - $510 << 2) >> 2] | 0; + if (!$k$3$i) { + $a$0$lcssa151$i = 0; + $rp$0$lcssa152$i = $427; + $z$0$i = 0; + } else { + $515 = 1e9 / ($513 | 0) | 0; + $a$085$i = 0; + $carry$087$i = 0; + $k$486$i = 0; + $rp$084$i = $427; + while (1) { + $516 = $x$i + ($k$486$i << 2) | 0; + $517 = HEAP32[$516 >> 2] | 0; + $520 = (($517 >>> 0) / ($513 >>> 0) | 0) + $carry$087$i | 0; + HEAP32[$516 >> 2] = $520; + $521 = Math_imul(($517 >>> 0) % ($513 >>> 0) | 0, $515) | 0; + $or$cond16$i = ($k$486$i | 0) == ($a$085$i | 0) & ($520 | 0) == 0; + $k$486$i = $k$486$i + 1 | 0; + $rp$1$i18 = $or$cond16$i ? $rp$084$i + -9 | 0 : $rp$084$i; + $a$1$i = $or$cond16$i ? $k$486$i & 127 : $a$085$i; + if (($k$486$i | 0) == ($k$3$i | 0)) { + $$lcssa264 = $521; + $a$1$i$lcssa = $a$1$i; + $rp$1$i18$lcssa = $rp$1$i18; + break; + } else { + $a$085$i = $a$1$i; + $carry$087$i = $521; + $rp$084$i = $rp$1$i18; + } + } + if (!$$lcssa264) { + $a$0$lcssa151$i = $a$1$i$lcssa; + $rp$0$lcssa152$i = $rp$1$i18$lcssa; + $z$0$i = $k$3$i; + } else { + HEAP32[$x$i + ($k$3$i << 2) >> 2] = $$lcssa264; + $a$0$lcssa151$i = $a$1$i$lcssa; + $rp$0$lcssa152$i = $rp$1$i18$lcssa; + $z$0$i = $k$3$i + 1 | 0; + } + } + $a$2$ph38$i = $a$0$lcssa151$i; + $e2$0$ph$i = 0; + $rp$2$ph36$i = 9 - $510 + $rp$0$lcssa152$i | 0; + $z$1$ph37$i = $z$0$i; + } + L284 : while (1) { + $533 = ($rp$2$ph36$i | 0) < 18; + $534 = ($rp$2$ph36$i | 0) == 18; + $535 = $x$i + ($a$2$ph38$i << 2) | 0; + $e2$0$i19 = $e2$0$ph$i; + $z$1$i = $z$1$ph37$i; + while (1) { + if (!$533) { + if (!$534) { + $a$3$ph$i = $a$2$ph38$i; + $e2$1$ph$i = $e2$0$i19; + $rp$3$ph34$i = $rp$2$ph36$i; + $z$5$ph$i = $z$1$i; + break L284; + } + if ((HEAP32[$535 >> 2] | 0) >>> 0 >= 9007199) { + $a$3$ph$i = $a$2$ph38$i; + $e2$1$ph$i = $e2$0$i19; + $rp$3$ph34$i = 18; + $z$5$ph$i = $z$1$i; + break L284; + } + } + $carry1$0$i = 0; + $k$5$in$i = $z$1$i + 127 | 0; + $z$2$i = $z$1$i; + while (1) { + $k$5$i = $k$5$in$i & 127; + $539 = $x$i + ($k$5$i << 2) | 0; + $541 = _bitshift64Shl(HEAP32[$539 >> 2] | 0, 0, 29) | 0; + $543 = _i64Add($541 | 0, tempRet0 | 0, $carry1$0$i | 0, 0) | 0; + $544 = tempRet0; + if ($544 >>> 0 > 0 | ($544 | 0) == 0 & $543 >>> 0 > 1e9) { + $550 = ___udivdi3($543 | 0, $544 | 0, 1e9, 0) | 0; + $552 = ___uremdi3($543 | 0, $544 | 0, 1e9, 0) | 0; + $$sink$off0$i = $552; + $carry1$1$i = $550; + } else { + $$sink$off0$i = $543; + $carry1$1$i = 0; + } + HEAP32[$539 >> 2] = $$sink$off0$i; + $557 = ($k$5$i | 0) == ($a$2$ph38$i | 0); + $z$3$i = ($k$5$i | 0) != ($z$2$i + 127 & 127 | 0) | $557 ? $z$2$i : ($$sink$off0$i | 0) == 0 ? $k$5$i : $z$2$i; + if ($557) { + $carry1$1$i$lcssa = $carry1$1$i; + $z$3$i$lcssa = $z$3$i; + break; + } else { + $carry1$0$i = $carry1$1$i; + $k$5$in$i = $k$5$i + -1 | 0; + $z$2$i = $z$3$i; + } + } + $560 = $e2$0$i19 + -29 | 0; + if (!$carry1$1$i$lcssa) { + $e2$0$i19 = $560; + $z$1$i = $z$3$i$lcssa; + } else { + $$lcssa263 = $560; + $carry1$1$i$lcssa$lcssa = $carry1$1$i$lcssa; + $z$3$i$lcssa$lcssa = $z$3$i$lcssa; + break; + } + } + $564 = $a$2$ph38$i + 127 & 127; + if (($564 | 0) == ($z$3$i$lcssa$lcssa | 0)) { + $567 = $z$3$i$lcssa$lcssa + 127 & 127; + $572 = $x$i + (($z$3$i$lcssa$lcssa + 126 & 127) << 2) | 0; + HEAP32[$572 >> 2] = HEAP32[$572 >> 2] | HEAP32[$x$i + ($567 << 2) >> 2]; + $z$4$i = $567; + } else $z$4$i = $z$3$i$lcssa$lcssa; + HEAP32[$x$i + ($564 << 2) >> 2] = $carry1$1$i$lcssa$lcssa; + $a$2$ph38$i = $564; + $e2$0$ph$i = $$lcssa263; + $rp$2$ph36$i = $rp$2$ph36$i + 9 | 0; + $z$1$ph37$i = $z$4$i; + } + L302 : while (1) { + $604 = $z$5$ph$i + 1 & 127; + $609 = $x$i + (($z$5$ph$i + 127 & 127) << 2) | 0; + $a$3$ph157$i = $a$3$ph$i; + $e2$1$ph156$i = $e2$1$ph$i; + $rp$3$ph$i = $rp$3$ph34$i; + while (1) { + $610 = ($rp$3$ph$i | 0) == 18; + $$18$i = ($rp$3$ph$i | 0) > 27 ? 9 : 1; + $$not$i = $610 ^ 1; + $a$3$i = $a$3$ph157$i; + $e2$1$i = $e2$1$ph156$i; + while (1) { + $576 = $a$3$i & 127; + $577 = ($576 | 0) == ($z$5$ph$i | 0); + do if ($577) label = 219; else { + $579 = HEAP32[$x$i + ($576 << 2) >> 2] | 0; + if ($579 >>> 0 < 9007199) { + label = 219; + break; + } + if ($579 >>> 0 > 9007199) break; + $583 = $a$3$i + 1 & 127; + if (($583 | 0) == ($z$5$ph$i | 0)) { + label = 219; + break; + } + $691 = HEAP32[$x$i + ($583 << 2) >> 2] | 0; + if ($691 >>> 0 < 254740991) { + label = 219; + break; + } + if (!($691 >>> 0 > 254740991 | $$not$i)) { + $617 = $576; + $a$3$i249 = $a$3$i; + $e2$1$i246 = $e2$1$i; + $z$7$i = $z$5$ph$i; + break L302; + } + } while (0); + if ((label | 0) == 219) { + label = 0; + if ($610) { + label = 220; + break L302; + } + } + $585 = $e2$1$i + $$18$i | 0; + if (($a$3$i | 0) == ($z$5$ph$i | 0)) { + $a$3$i = $z$5$ph$i; + $e2$1$i = $585; + } else { + $$lcssa256 = $585; + $a$3$i$lcssa248 = $a$3$i; + break; + } + } + $588 = (1 << $$18$i) + -1 | 0; + $589 = 1e9 >>> $$18$i; + $a$478$i = $a$3$i$lcssa248; + $carry3$081$i = 0; + $k$679$i = $a$3$i$lcssa248; + $rp$477$i = $rp$3$ph$i; + while (1) { + $590 = $x$i + ($k$679$i << 2) | 0; + $591 = HEAP32[$590 >> 2] | 0; + $594 = ($591 >>> $$18$i) + $carry3$081$i | 0; + HEAP32[$590 >> 2] = $594; + $595 = Math_imul($591 & $588, $589) | 0; + $or$cond19$i = ($k$679$i | 0) == ($a$478$i | 0) & ($594 | 0) == 0; + $k$679$i = $k$679$i + 1 & 127; + $rp$5$i = $or$cond19$i ? $rp$477$i + -9 | 0 : $rp$477$i; + $a$5$i = $or$cond19$i ? $k$679$i : $a$478$i; + if (($k$679$i | 0) == ($z$5$ph$i | 0)) { + $$lcssa257 = $595; + $a$5$i$lcssa = $a$5$i; + $rp$5$i$lcssa = $rp$5$i; + break; + } else { + $a$478$i = $a$5$i; + $carry3$081$i = $595; + $rp$477$i = $rp$5$i; + } + } + if (!$$lcssa257) { + $a$3$ph157$i = $a$5$i$lcssa; + $e2$1$ph156$i = $$lcssa256; + $rp$3$ph$i = $rp$5$i$lcssa; + continue; + } + if (($604 | 0) != ($a$5$i$lcssa | 0)) { + $$lcssa256$lcssa = $$lcssa256; + $$lcssa257$lcssa = $$lcssa257; + $a$5$i$lcssa$lcssa = $a$5$i$lcssa; + $rp$5$i$lcssa$lcssa = $rp$5$i$lcssa; + break; + } + HEAP32[$609 >> 2] = HEAP32[$609 >> 2] | 1; + $a$3$ph157$i = $a$5$i$lcssa; + $e2$1$ph156$i = $$lcssa256; + $rp$3$ph$i = $rp$5$i$lcssa; + } + HEAP32[$x$i + ($z$5$ph$i << 2) >> 2] = $$lcssa257$lcssa; + $a$3$ph$i = $a$5$i$lcssa$lcssa; + $e2$1$ph$i = $$lcssa256$lcssa; + $rp$3$ph34$i = $rp$5$i$lcssa$lcssa; + $z$5$ph$i = $604; + } + if ((label | 0) == 220) if ($577) { + HEAP32[$x$i + ($604 + -1 << 2) >> 2] = 0; + $617 = $z$5$ph$i; + $a$3$i249 = $a$3$i; + $e2$1$i246 = $e2$1$i; + $z$7$i = $604; + } else { + $617 = $576; + $a$3$i249 = $a$3$i; + $e2$1$i246 = $e2$1$i; + $z$7$i = $z$5$ph$i; + } + $619 = +((HEAP32[$x$i + ($617 << 2) >> 2] | 0) >>> 0); + $621 = $a$3$i249 + 1 & 127; + if (($621 | 0) == ($z$7$i | 0)) { + $680 = $a$3$i249 + 2 & 127; + HEAP32[$x$i + ($680 + -1 << 2) >> 2] = 0; + $z$7$1$i = $680; + } else $z$7$1$i = $z$7$i; + $643 = +($sign$0 | 0); + $625 = $643 * ($619 * 1.0e9 + +((HEAP32[$x$i + ($621 << 2) >> 2] | 0) >>> 0)); + $663 = $e2$1$i246 + 53 | 0; + $669 = $663 - $emin$0$ph | 0; + $670 = ($669 | 0) < ($bits$0$ph | 0); + $denormal$0$i = $670 & 1; + $$010$i = $670 ? (($669 | 0) < 0 ? 0 : $669) : $bits$0$ph; + if (($$010$i | 0) < 53) { + $626 = +_copysignl(+_scalbn(1.0, 105 - $$010$i | 0), $625); + $629 = +_fmodl($625, +_scalbn(1.0, 53 - $$010$i | 0)); + $bias$0$i25 = $626; + $frac$0$i = $629; + $y$1$i24 = $626 + ($625 - $629); + } else { + $bias$0$i25 = 0.0; + $frac$0$i = 0.0; + $y$1$i24 = $625; + } + $633 = $a$3$i249 + 2 & 127; + do if (($633 | 0) == ($z$7$1$i | 0)) $frac$2$i = $frac$0$i; else { + $636 = HEAP32[$x$i + ($633 << 2) >> 2] | 0; + do if ($636 >>> 0 < 5e8) { + if (!$636) if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) { + $frac$1$i = $frac$0$i; + break; + } + $frac$1$i = $643 * .25 + $frac$0$i; + } else { + if ($636 >>> 0 > 5e8) { + $frac$1$i = $643 * .75 + $frac$0$i; + break; + } + if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) { + $frac$1$i = $643 * .5 + $frac$0$i; + break; + } else { + $frac$1$i = $643 * .75 + $frac$0$i; + break; + } + } while (0); + if ((53 - $$010$i | 0) <= 1) { + $frac$2$i = $frac$1$i; + break; + } + if (+_fmodl($frac$1$i, 1.0) != 0.0) { + $frac$2$i = $frac$1$i; + break; + } + $frac$2$i = $frac$1$i + 1.0; + } while (0); + $661 = $y$1$i24 + $frac$2$i - $bias$0$i25; + do if (($663 & 2147483647 | 0) > (-2 - $sum$i | 0)) { + if (!(+Math_abs(+$661) >= 9007199254740992.0)) { + $denormal$2$i = $denormal$0$i; + $e2$2$i = $e2$1$i246; + $y$2$i26 = $661; + } else { + $denormal$2$i = $670 & ($$010$i | 0) == ($669 | 0) ? 0 : $denormal$0$i; + $e2$2$i = $e2$1$i246 + 1 | 0; + $y$2$i26 = $661 * .5; + } + if (($e2$2$i + 50 | 0) <= ($330 | 0)) if (!($frac$2$i != 0.0 & ($denormal$2$i | 0) != 0)) { + $e2$3$i = $e2$2$i; + $y$3$i = $y$2$i26; + break; + } + $677 = ___errno_location() | 0; + HEAP32[$677 >> 2] = 34; + $e2$3$i = $e2$2$i; + $y$3$i = $y$2$i26; + } else { + $e2$3$i = $e2$1$i246; + $y$3$i = $661; + } while (0); + $$0$i27 = +_scalbnl($y$3$i, $e2$3$i); + } while (0); + $$0 = $$0$i27; + break L4; + break; + } + default: + { + if (HEAP32[$1 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $113 = ___errno_location() | 0; + HEAP32[$113 >> 2] = 22; + ___shlim($f, 0); + $$0 = 0.0; + break L4; + } + } + } + } while (0); + if ((label | 0) == 23) { + $42 = (HEAP32[$1 >> 2] | 0) == 0; + if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + if (($pok | 0) != 0 & $i$0$lcssa >>> 0 > 3) { + $i$1 = $i$0$lcssa; + do { + if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $i$1 = $i$1 + -1 | 0; + } while ($i$1 >>> 0 > 3); + } + } + $$0 = +($sign$0 | 0) * inf; + } while (0); + STACKTOP = sp; + return +$$0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i16$i = 0, $$0$i$i$i23$i = 0, $$0$i$i$i33$i = 0, $$0$i$i$i42$i = 0, $$0$i$i$i52$i = 0, $$0$i10 = 0, $$02 = 0, $$07$i = 0, $$first = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $129 = 0, $13 = 0, $130 = 0, $134 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $144 = 0, $145 = 0, $15 = 0, $153 = 0, $154 = 0, $156 = 0, $16 = 0, $164 = 0, $166 = 0, $167 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $211 = 0, $212 = 0, $220 = 0, $221 = 0, $223 = 0, $23 = 0, $231 = 0, $233 = 0, $234 = 0, $247 = 0, $248 = 0, $249 = 0, $250 = 0, $253 = 0, $256 = 0, $259 = 0, $268 = 0, $271 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $281 = 0, $282 = 0, $290 = 0, $291 = 0, $293 = 0, $3 = 0, $30 = 0, $301 = 0, $303 = 0, $304 = 0, $317 = 0, $318 = 0, $319 = 0, $320 = 0, $323 = 0, $326 = 0, $329 = 0, $338 = 0, $34 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $351 = 0, $359 = 0, $361 = 0, $362 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $381 = 0, $384 = 0, $387 = 0, $398 = 0, $4 = 0, $400 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $419 = 0, $420 = 0, $422 = 0, $430 = 0, $432 = 0, $433 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $452 = 0, $455 = 0, $458 = 0, $469 = 0, $474 = 0, $476 = 0, $477 = 0, $478 = 0, $483 = 0, $484 = 0, $489 = 0, $49 = 0, $494 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $502 = 0, $506 = 0, $507 = 0, $509 = 0, $51 = 0, $510 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $526 = 0, $528 = 0, $538 = 0, $539 = 0, $540 = 0, $542 = 0, $544 = 0, $545 = 0, $546 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $56 = 0, $562 = 0, $564 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $58 = 0, $588 = 0, $593 = 0, $594 = 0, $597 = 0, $6 = 0, $605 = 0, $606 = 0, $608 = 0, $61 = 0, $612 = 0, $613 = 0, $615 = 0, $62 = 0, $622 = 0, $624 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $638 = 0, $641 = 0, $644 = 0, $645 = 0, $65 = 0, $651 = 0, $653 = 0, $657 = 0, $659 = 0, $667 = 0, $668 = 0, $669 = 0, $670 = 0, $673 = 0, $675 = 0, $685 = 0, $690 = 0, $692 = 0, $693 = 0, $7 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $707 = 0, $709 = 0, $719 = 0, $8 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $St$0$off0$i = 0, $__v$i$i51$i = 0, $cv$i = 0, $name$i11 = 0, $name1$i = 0, $name2$i12 = 0, $name3$i = 0, $name4$i = 0, $pop_subs$0$off0$i$ph$lcssa = 0, $pop_subs$0$off0$i$ph136 = 0, $t0$0$i = 0, $t0$0$i13 = 0, $t0$1$i = 0, $t0$2$i$be = 0, $t0$2$i$lcssa = 0, $t0$2$i$ph$be = 0, $t0$2$i$ph135 = 0, $t0$2$i131 = 0, $t0$2$i131$lcssa177 = 0, $t0$2$i131$lcssa178 = 0, $t0$2$i131$lcssa179 = 0, $t0$2$i131184 = 0, $tmp = 0, $tmp3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 304 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i51$i = sp + 276 | 0; + $cv$i = sp + 264 | 0; + $name$i11 = sp + 252 | 0; + $0 = sp + 240 | 0; + $1 = sp + 224 | 0; + $2 = sp + 216 | 0; + $name1$i = sp + 204 | 0; + $3 = sp + 192 | 0; + $4 = sp + 176 | 0; + $5 = sp + 168 | 0; + $name2$i12 = sp + 156 | 0; + $6 = sp + 144 | 0; + $7 = sp + 128 | 0; + $8 = sp + 124 | 0; + $name3$i = sp + 112 | 0; + $9 = sp + 96 | 0; + $10 = sp + 76 | 0; + $name4$i = sp + 64 | 0; + $11 = sp + 48 | 0; + $12 = sp + 8 | 0; + $13 = sp; + $14 = sp + 80 | 0; + $15 = sp + 60 | 0; + $tmp = sp + 36 | 0; + $tmp3 = sp + 24 | 0; + $16 = $last; + L1 : do if (($16 - $first | 0) > 1) { + $$first = (HEAP8[$first >> 0] | 0) == 76 ? $first + 1 | 0 : $first; + $23 = HEAP8[$$first >> 0] | 0; + switch ($23 << 24 >> 24 | 0) { + case 78: + { + L44 : do if (($$first | 0) == ($last | 0)) $$07$i = $last; else if ($23 << 24 >> 24 == 78) { + $28 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($$first + 1 | 0, $last, $cv$i) | 0; + if (($28 | 0) == ($last | 0)) $$07$i = $$first; else { + $30 = $db + 52 | 0; + HEAP32[$30 >> 2] = 0; + switch (HEAP8[$28 >> 0] | 0) { + case 82: + { + HEAP32[$30 >> 2] = 1; + $t0$0$i13 = $28 + 1 | 0; + break; + } + case 79: + { + HEAP32[$30 >> 2] = 2; + $t0$0$i13 = $28 + 1 | 0; + break; + } + default: + $t0$0$i13 = $28; + } + $34 = $db + 4 | 0; + $35 = HEAP32[$34 >> 2] | 0; + $37 = HEAP32[$db + 8 >> 2] | 0; + if ($35 >>> 0 < $37 >>> 0) { + HEAP32[$35 >> 2] = 0; + HEAP32[$35 + 4 >> 2] = 0; + HEAP32[$35 + 8 >> 2] = 0; + HEAP32[$35 + 12 >> 2] = 0; + HEAP32[$35 + 16 >> 2] = 0; + HEAP32[$35 + 20 >> 2] = 0; + HEAP32[$35 >> 2] = 0; + HEAP32[$35 + 4 >> 2] = 0; + HEAP32[$35 + 8 >> 2] = 0; + $41 = $35 + 12 | 0; + HEAP32[$41 >> 2] = 0; + HEAP32[$41 + 4 >> 2] = 0; + HEAP32[$41 + 8 >> 2] = 0; + HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 24; + } else { + $49 = HEAP32[$db >> 2] | 0; + $50 = $35 - $49 | 0; + $51 = ($50 | 0) / 24 | 0; + $52 = $51 + 1 | 0; + if (($50 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $56 = ($37 - $49 | 0) / 24 | 0; + if ($56 >>> 0 < 1073741823) { + $58 = $56 << 1; + $$0$i$i$i$i = $58 >>> 0 < $52 >>> 0 ? $52 : $58; + } else $$0$i$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i51$i, $$0$i$i$i$i, $51, $db + 12 | 0); + $61 = $__v$i$i51$i + 8 | 0; + $62 = HEAP32[$61 >> 2] | 0; + HEAP32[$62 >> 2] = 0; + HEAP32[$62 + 4 >> 2] = 0; + HEAP32[$62 + 8 >> 2] = 0; + HEAP32[$62 + 12 >> 2] = 0; + HEAP32[$62 + 16 >> 2] = 0; + HEAP32[$62 + 20 >> 2] = 0; + HEAP32[$62 >> 2] = 0; + HEAP32[$62 + 4 >> 2] = 0; + HEAP32[$62 + 8 >> 2] = 0; + $65 = $62 + 12 | 0; + HEAP32[$65 >> 2] = 0; + HEAP32[$65 + 4 >> 2] = 0; + HEAP32[$65 + 8 >> 2] = 0; + HEAP32[$61 >> 2] = $62 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i51$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i51$i); + } + if (($16 - $t0$0$i13 | 0) > 1) if ((HEAP8[$t0$0$i13 >> 0] | 0) == 83) if ((HEAP8[$t0$0$i13 + 1 >> 0] | 0) == 116) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj((HEAP32[$34 >> 2] | 0) + -24 | 0, 48067, 3); + $t0$1$i = $t0$0$i13 + 2 | 0; + } else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13; + if (($t0$1$i | 0) == ($last | 0)) { + $123 = HEAP32[$34 >> 2] | 0; + $124 = $123 + -24 | 0; + $126 = $123; + while (1) { + $125 = $126 + -24 | 0; + HEAP32[$34 >> 2] = $125; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($125); + $126 = HEAP32[$34 >> 2] | 0; + if (($126 | 0) == ($124 | 0)) { + $$07$i = $$first; + break L44; + } + } + } + $81 = $name3$i + 8 | 0; + $82 = $name3$i + 1 | 0; + $83 = $name3$i + 4 | 0; + $84 = $db + 12 | 0; + $85 = $db + 16 | 0; + $86 = $db + 20 | 0; + $87 = $db + 24 | 0; + $88 = $9 + 12 | 0; + $89 = $9 + 4 | 0; + $90 = $9 + 8 | 0; + $91 = $db + 28 | 0; + $92 = $__v$i$i51$i + 8 | 0; + $93 = $12 + 12 | 0; + $94 = $12 + 4 | 0; + $95 = $12 + 8 | 0; + $96 = $__v$i$i51$i + 8 | 0; + $97 = $11 + 8 | 0; + $98 = $11 + 1 | 0; + $99 = $11 + 4 | 0; + $100 = $0 + 8 | 0; + $101 = $0 + 1 | 0; + $102 = $0 + 4 | 0; + $103 = $1 + 12 | 0; + $104 = $1 + 4 | 0; + $105 = $1 + 8 | 0; + $106 = $__v$i$i51$i + 8 | 0; + $107 = $4 + 12 | 0; + $108 = $4 + 4 | 0; + $109 = $4 + 8 | 0; + $110 = $__v$i$i51$i + 8 | 0; + $111 = $3 + 8 | 0; + $112 = $3 + 1 | 0; + $113 = $3 + 4 | 0; + $114 = $7 + 12 | 0; + $115 = $7 + 4 | 0; + $116 = $7 + 8 | 0; + $117 = $__v$i$i51$i + 8 | 0; + $118 = $6 + 8 | 0; + $119 = $6 + 1 | 0; + $120 = $6 + 4 | 0; + $121 = HEAP8[$t0$1$i >> 0] | 0; + L72 : do if ($121 << 24 >> 24 == 69) { + $pop_subs$0$off0$i$ph$lcssa = 0; + $t0$2$i$lcssa = $t0$1$i; + } else { + $719 = $121; + $pop_subs$0$off0$i$ph136 = 0; + $t0$2$i$ph135 = $t0$1$i; + L73 : while (1) { + $129 = $719; + $t0$2$i131 = $t0$2$i$ph135; + L75 : while (1) { + switch ($129 << 24 >> 24 | 0) { + case 83: + { + $t0$2$i131$lcssa177 = $t0$2$i131; + label = 25; + break L75; + break; + } + case 84: + { + $t0$2$i131$lcssa178 = $t0$2$i131; + label = 44; + break L75; + break; + } + case 68: + { + $t0$2$i131$lcssa179 = $t0$2$i131; + label = 61; + break L75; + break; + } + case 73: + { + $338 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131, $last, $db) | 0; + if (($338 | 0) == ($t0$2$i131 | 0) | ($338 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name3$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); + $343 = HEAP32[$34 >> 2] | 0; + $344 = $343 + -24 | 0; + $346 = $343; + do { + $345 = $346 + -24 | 0; + HEAP32[$34 >> 2] = $345; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($345); + $346 = HEAP32[$34 >> 2] | 0; + } while (($346 | 0) != ($344 | 0)); + $349 = HEAP8[$name3$i >> 0] | 0; + $351 = ($349 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($343 + -48 | 0, $351 ? $82 : HEAP32[$81 >> 2] | 0, $351 ? ($349 & 255) >>> 1 : HEAP32[$83 >> 2] | 0) | 0; + $359 = (HEAP32[$34 >> 2] | 0) + -24 | 0; + HEAP32[$10 >> 2] = HEAP32[$84 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($9, $359, $10); + $361 = HEAP32[$86 >> 2] | 0; + $362 = HEAP32[$87 >> 2] | 0; + if ($361 >>> 0 < $362 >>> 0) { + HEAP32[$361 + 12 >> 2] = HEAP32[$88 >> 2]; + HEAP32[$361 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$361 + 4 >> 2] = HEAP32[$89 >> 2]; + HEAP32[$361 + 8 >> 2] = HEAP32[$90 >> 2]; + HEAP32[$90 >> 2] = 0; + HEAP32[$89 >> 2] = 0; + HEAP32[$9 >> 2] = 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; + } else { + $375 = HEAP32[$85 >> 2] | 0; + $376 = $361 - $375 | 0; + $377 = $376 >> 4; + $378 = $377 + 1 | 0; + if (($376 | 0) < -16) { + label = 86; + break L73; + } + $381 = $362 - $375 | 0; + if ($381 >> 4 >>> 0 < 1073741823) { + $384 = $381 >> 3; + $$0$i$i$i42$i = $384 >>> 0 < $378 >>> 0 ? $378 : $384; + } else $$0$i$i$i42$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i42$i, $377, $91); + $387 = HEAP32[$92 >> 2] | 0; + HEAP32[$387 + 12 >> 2] = HEAP32[$88 >> 2]; + HEAP32[$387 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$387 + 4 >> 2] = HEAP32[$89 >> 2]; + HEAP32[$387 + 8 >> 2] = HEAP32[$90 >> 2]; + HEAP32[$90 >> 2] = 0; + HEAP32[$89 >> 2] = 0; + HEAP32[$9 >> 2] = 0; + HEAP32[$92 >> 2] = $387 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($9); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name3$i); + $t0$2$i$be = $338; + break; + } + case 76: + { + $398 = $t0$2$i131 + 1 | 0; + if (($398 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } else $t0$2$i$be = $398; + break; + } + default: + { + $t0$2$i131184 = $t0$2$i131; + label = 93; + break L75; + } + } + $129 = HEAP8[$t0$2$i$be >> 0] | 0; + if ($129 << 24 >> 24 == 69) { + $pop_subs$0$off0$i$ph$lcssa = $pop_subs$0$off0$i$ph136; + $t0$2$i$lcssa = $t0$2$i$be; + break L72; + } else $t0$2$i131 = $t0$2$i$be; + } + L93 : do if ((label | 0) == 25) { + label = 0; + $130 = $t0$2$i131$lcssa177 + 1 | 0; + if (($130 | 0) != ($last | 0)) if ((HEAP8[$130 >> 0] | 0) == 116) { + $t0$2$i131184 = $t0$2$i131$lcssa177; + label = 93; + break; + } + $134 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa177, $last, $db) | 0; + if (($134 | 0) == ($t0$2$i131$lcssa177 | 0) | ($134 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name$i11, (HEAP32[$34 >> 2] | 0) + -24 | 0); + $139 = HEAP32[$34 >> 2] | 0; + $140 = $139 + -24 | 0; + $142 = $139; + do { + $141 = $142 + -24 | 0; + HEAP32[$34 >> 2] = $141; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($141); + $142 = HEAP32[$34 >> 2] | 0; + } while (($142 | 0) != ($140 | 0)); + $144 = $139 + -48 | 0; + $145 = HEAP8[$144 >> 0] | 0; + if (!($145 & 1)) $153 = ($145 & 255) >>> 1; else $153 = HEAP32[$139 + -44 >> 2] | 0; + if (!$153) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($144, $name$i11); else { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($0, 48071, $name$i11); + $154 = HEAP8[$0 >> 0] | 0; + $156 = ($154 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($144, $156 ? $101 : HEAP32[$100 >> 2] | 0, $156 ? ($154 & 255) >>> 1 : HEAP32[$102 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $164 = (HEAP32[$34 >> 2] | 0) + -24 | 0; + HEAP32[$2 >> 2] = HEAP32[$84 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($1, $164, $2); + $166 = HEAP32[$86 >> 2] | 0; + $167 = HEAP32[$87 >> 2] | 0; + if ($166 >>> 0 < $167 >>> 0) { + HEAP32[$166 + 12 >> 2] = HEAP32[$103 >> 2]; + HEAP32[$166 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$166 + 4 >> 2] = HEAP32[$104 >> 2]; + HEAP32[$166 + 8 >> 2] = HEAP32[$105 >> 2]; + HEAP32[$105 >> 2] = 0; + HEAP32[$104 >> 2] = 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; + } else { + $180 = HEAP32[$85 >> 2] | 0; + $181 = $166 - $180 | 0; + $182 = $181 >> 4; + $183 = $182 + 1 | 0; + if (($181 | 0) < -16) { + label = 37; + break L73; + } + $186 = $167 - $180 | 0; + if ($186 >> 4 >>> 0 < 1073741823) { + $189 = $186 >> 3; + $$0$i$i$i16$i = $189 >>> 0 < $183 >>> 0 ? $183 : $189; + } else $$0$i$i$i16$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i16$i, $182, $91); + $192 = HEAP32[$106 >> 2] | 0; + HEAP32[$192 + 12 >> 2] = HEAP32[$103 >> 2]; + HEAP32[$192 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$192 + 4 >> 2] = HEAP32[$104 >> 2]; + HEAP32[$192 + 8 >> 2] = HEAP32[$105 >> 2]; + HEAP32[$105 >> 2] = 0; + HEAP32[$104 >> 2] = 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$106 >> 2] = $192 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($1); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name$i11); + $t0$2$i$ph$be = $134; + } else if ((label | 0) == 44) { + label = 0; + $201 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa178, $last, $db) | 0; + if (($201 | 0) == ($t0$2$i131$lcssa178 | 0) | ($201 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name1$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); + $206 = HEAP32[$34 >> 2] | 0; + $207 = $206 + -24 | 0; + $209 = $206; + do { + $208 = $209 + -24 | 0; + HEAP32[$34 >> 2] = $208; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($208); + $209 = HEAP32[$34 >> 2] | 0; + } while (($209 | 0) != ($207 | 0)); + $211 = $206 + -48 | 0; + $212 = HEAP8[$211 >> 0] | 0; + if (!($212 & 1)) $220 = ($212 & 255) >>> 1; else $220 = HEAP32[$206 + -44 >> 2] | 0; + if (!$220) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($211, $name1$i); else { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($3, 48071, $name1$i); + $221 = HEAP8[$3 >> 0] | 0; + $223 = ($221 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($211, $223 ? $112 : HEAP32[$111 >> 2] | 0, $223 ? ($221 & 255) >>> 1 : HEAP32[$113 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + } + $231 = (HEAP32[$34 >> 2] | 0) + -24 | 0; + HEAP32[$5 >> 2] = HEAP32[$84 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $231, $5); + $233 = HEAP32[$86 >> 2] | 0; + $234 = HEAP32[$87 >> 2] | 0; + if ($233 >>> 0 < $234 >>> 0) { + HEAP32[$233 + 12 >> 2] = HEAP32[$107 >> 2]; + HEAP32[$233 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$233 + 4 >> 2] = HEAP32[$108 >> 2]; + HEAP32[$233 + 8 >> 2] = HEAP32[$109 >> 2]; + HEAP32[$109 >> 2] = 0; + HEAP32[$108 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; + } else { + $247 = HEAP32[$85 >> 2] | 0; + $248 = $233 - $247 | 0; + $249 = $248 >> 4; + $250 = $249 + 1 | 0; + if (($248 | 0) < -16) { + label = 56; + break L73; + } + $253 = $234 - $247 | 0; + if ($253 >> 4 >>> 0 < 1073741823) { + $256 = $253 >> 3; + $$0$i$i$i23$i = $256 >>> 0 < $250 >>> 0 ? $250 : $256; + } else $$0$i$i$i23$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i23$i, $249, $91); + $259 = HEAP32[$110 >> 2] | 0; + HEAP32[$259 + 12 >> 2] = HEAP32[$107 >> 2]; + HEAP32[$259 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$259 + 4 >> 2] = HEAP32[$108 >> 2]; + HEAP32[$259 + 8 >> 2] = HEAP32[$109 >> 2]; + HEAP32[$109 >> 2] = 0; + HEAP32[$108 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$110 >> 2] = $259 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name1$i); + $t0$2$i$ph$be = $201; + } else if ((label | 0) == 61) { + label = 0; + $268 = $t0$2$i131$lcssa179 + 1 | 0; + if (($268 | 0) != ($last | 0)) switch (HEAP8[$268 >> 0] | 0) { + case 84: + case 116: + break; + default: + { + $t0$2$i131184 = $t0$2$i131$lcssa179; + label = 93; + break L93; + } + } + $271 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa179, $last, $db) | 0; + if (($271 | 0) == ($t0$2$i131$lcssa179 | 0) | ($271 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name2$i12, (HEAP32[$34 >> 2] | 0) + -24 | 0); + $276 = HEAP32[$34 >> 2] | 0; + $277 = $276 + -24 | 0; + $279 = $276; + do { + $278 = $279 + -24 | 0; + HEAP32[$34 >> 2] = $278; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($278); + $279 = HEAP32[$34 >> 2] | 0; + } while (($279 | 0) != ($277 | 0)); + $281 = $276 + -48 | 0; + $282 = HEAP8[$281 >> 0] | 0; + if (!($282 & 1)) $290 = ($282 & 255) >>> 1; else $290 = HEAP32[$276 + -44 >> 2] | 0; + if (!$290) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($281, $name2$i12); else { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($6, 48071, $name2$i12); + $291 = HEAP8[$6 >> 0] | 0; + $293 = ($291 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($281, $293 ? $119 : HEAP32[$118 >> 2] | 0, $293 ? ($291 & 255) >>> 1 : HEAP32[$120 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + } + $301 = (HEAP32[$34 >> 2] | 0) + -24 | 0; + HEAP32[$8 >> 2] = HEAP32[$84 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($7, $301, $8); + $303 = HEAP32[$86 >> 2] | 0; + $304 = HEAP32[$87 >> 2] | 0; + if ($303 >>> 0 < $304 >>> 0) { + HEAP32[$303 + 12 >> 2] = HEAP32[$114 >> 2]; + HEAP32[$303 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$303 + 4 >> 2] = HEAP32[$115 >> 2]; + HEAP32[$303 + 8 >> 2] = HEAP32[$116 >> 2]; + HEAP32[$116 >> 2] = 0; + HEAP32[$115 >> 2] = 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; + } else { + $317 = HEAP32[$85 >> 2] | 0; + $318 = $303 - $317 | 0; + $319 = $318 >> 4; + $320 = $319 + 1 | 0; + if (($318 | 0) < -16) { + label = 75; + break L73; + } + $323 = $304 - $317 | 0; + if ($323 >> 4 >>> 0 < 1073741823) { + $326 = $323 >> 3; + $$0$i$i$i33$i = $326 >>> 0 < $320 >>> 0 ? $320 : $326; + } else $$0$i$i$i33$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i33$i, $319, $91); + $329 = HEAP32[$117 >> 2] | 0; + HEAP32[$329 + 12 >> 2] = HEAP32[$114 >> 2]; + HEAP32[$329 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$329 + 4 >> 2] = HEAP32[$115 >> 2]; + HEAP32[$329 + 8 >> 2] = HEAP32[$116 >> 2]; + HEAP32[$116 >> 2] = 0; + HEAP32[$115 >> 2] = 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$117 >> 2] = $329 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($7); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name2$i12); + $t0$2$i$ph$be = $271; + } while (0); + if ((label | 0) == 93) { + label = 0; + $400 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131184, $last, $db) | 0; + if (($400 | 0) == ($t0$2$i131184 | 0) | ($400 | 0) == ($last | 0)) { + $$07$i = $$first; + break L44; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name4$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); + $405 = HEAP32[$34 >> 2] | 0; + $406 = $405 + -24 | 0; + $408 = $405; + do { + $407 = $408 + -24 | 0; + HEAP32[$34 >> 2] = $407; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($407); + $408 = HEAP32[$34 >> 2] | 0; + } while (($408 | 0) != ($406 | 0)); + $410 = $405 + -48 | 0; + $411 = HEAP8[$410 >> 0] | 0; + if (!($411 & 1)) $419 = ($411 & 255) >>> 1; else $419 = HEAP32[$405 + -44 >> 2] | 0; + if (!$419) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($410, $name4$i); else { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($11, 48071, $name4$i); + $420 = HEAP8[$11 >> 0] | 0; + $422 = ($420 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($410, $422 ? $98 : HEAP32[$97 >> 2] | 0, $422 ? ($420 & 255) >>> 1 : HEAP32[$99 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11); + } + $430 = (HEAP32[$34 >> 2] | 0) + -24 | 0; + HEAP32[$13 >> 2] = HEAP32[$84 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $430, $13); + $432 = HEAP32[$86 >> 2] | 0; + $433 = HEAP32[$87 >> 2] | 0; + if ($432 >>> 0 < $433 >>> 0) { + HEAP32[$432 + 12 >> 2] = HEAP32[$93 >> 2]; + HEAP32[$432 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$432 + 4 >> 2] = HEAP32[$94 >> 2]; + HEAP32[$432 + 8 >> 2] = HEAP32[$95 >> 2]; + HEAP32[$95 >> 2] = 0; + HEAP32[$94 >> 2] = 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; + } else { + $446 = HEAP32[$85 >> 2] | 0; + $447 = $432 - $446 | 0; + $448 = $447 >> 4; + $449 = $448 + 1 | 0; + if (($447 | 0) < -16) { + label = 105; + break; + } + $452 = $433 - $446 | 0; + if ($452 >> 4 >>> 0 < 1073741823) { + $455 = $452 >> 3; + $$0$i$i$i52$i = $455 >>> 0 < $449 >>> 0 ? $449 : $455; + } else $$0$i$i$i52$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i52$i, $448, $91); + $458 = HEAP32[$96 >> 2] | 0; + HEAP32[$458 + 12 >> 2] = HEAP32[$93 >> 2]; + HEAP32[$458 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$458 + 4 >> 2] = HEAP32[$94 >> 2]; + HEAP32[$458 + 8 >> 2] = HEAP32[$95 >> 2]; + HEAP32[$95 >> 2] = 0; + HEAP32[$94 >> 2] = 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$96 >> 2] = $458 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name4$i); + $t0$2$i$ph$be = $400; + } + $719 = HEAP8[$t0$2$i$ph$be >> 0] | 0; + if ($719 << 24 >> 24 == 69) { + $pop_subs$0$off0$i$ph$lcssa = 1; + $t0$2$i$lcssa = $t0$2$i$ph$be; + break L72; + } else { + $pop_subs$0$off0$i$ph136 = 1; + $t0$2$i$ph135 = $t0$2$i$ph$be; + } + } + if ((label | 0) == 37) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 56) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 75) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 86) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 105) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); + } while (0); + $469 = $t0$2$i$lcssa + 1 | 0; + HEAP32[$db + 48 >> 2] = HEAP32[$cv$i >> 2]; + if ($pop_subs$0$off0$i$ph$lcssa) { + $474 = HEAP32[$86 >> 2] | 0; + if ((HEAP32[$db + 16 >> 2] | 0) == ($474 | 0)) $$07$i = $469; else { + $476 = $474 + -16 | 0; + $478 = $474; + do { + $477 = $478 + -16 | 0; + HEAP32[$86 >> 2] = $477; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($477); + $478 = HEAP32[$86 >> 2] | 0; + } while (($478 | 0) != ($476 | 0)); + $$07$i = $469; + } + } else $$07$i = $469; + } + } else $$07$i = $$first; while (0); + $$02 = ($$07$i | 0) == ($$first | 0) ? $first : $$07$i; + break L1; + break; + } + case 90: + { + L199 : do if (($$first | 0) == ($last | 0)) $$0$i10 = $last; else if ($23 << 24 >> 24 == 90) { + $483 = $$first + 1 | 0; + $484 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($483, $last, $db) | 0; + if (($484 | 0) == ($483 | 0) | ($484 | 0) == ($last | 0)) $$0$i10 = $$first; else if ((HEAP8[$484 >> 0] | 0) == 69) { + $489 = $484 + 1 | 0; + if (($489 | 0) == ($last | 0)) $$0$i10 = $$first; else switch (HEAP8[$489 >> 0] | 0) { + case 115: + { + $494 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($484 + 2 | 0, $last) | 0; + $497 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($497 | 0)) { + $$0$i10 = $494; + break L199; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($497 + -24 | 0, 48074) | 0; + $$0$i10 = $494; + break L199; + break; + } + case 100: + { + $500 = $484 + 2 | 0; + if (($500 | 0) == ($last | 0)) { + $$0$i10 = $$first; + break L199; + } + $502 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($500, $last) | 0; + if (($502 | 0) == ($last | 0)) { + $$0$i10 = $$first; + break L199; + } + if ((HEAP8[$502 >> 0] | 0) != 95) { + $$0$i10 = $$first; + break L199; + } + $506 = $502 + 1 | 0; + $507 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($506, $last, $db) | 0; + $509 = $db + 4 | 0; + $510 = HEAP32[$509 >> 2] | 0; + if (($507 | 0) == ($506 | 0)) { + $538 = $510 + -24 | 0; + $540 = $510; + while (1) { + $539 = $540 + -24 | 0; + HEAP32[$509 >> 2] = $539; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($539); + $540 = HEAP32[$509 >> 2] | 0; + if (($540 | 0) == ($538 | 0)) { + $$0$i10 = $$first; + break L199; + } + } + } + if ((($510 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0$i10 = $$first; + break L199; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($__v$i$i51$i, $510 + -24 | 0); + $518 = HEAP32[$509 >> 2] | 0; + $519 = $518 + -24 | 0; + $521 = $518; + do { + $520 = $521 + -24 | 0; + HEAP32[$509 >> 2] = $520; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($520); + $521 = HEAP32[$509 >> 2] | 0; + } while (($521 | 0) != ($519 | 0)); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($518 + -48 | 0, 48071) | 0; + $526 = HEAP8[$__v$i$i51$i >> 0] | 0; + $528 = ($526 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$509 >> 2] | 0) + -24 | 0, $528 ? $__v$i$i51$i + 1 | 0 : HEAP32[$__v$i$i51$i + 8 >> 2] | 0, $528 ? ($526 & 255) >>> 1 : HEAP32[$__v$i$i51$i + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i51$i); + $$0$i10 = $507; + break L199; + break; + } + default: + { + $542 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($489, $last, $db) | 0; + if (($542 | 0) == ($489 | 0)) { + $574 = $db + 4 | 0; + $575 = HEAP32[$574 >> 2] | 0; + $576 = $575 + -24 | 0; + $578 = $575; + while (1) { + $577 = $578 + -24 | 0; + HEAP32[$574 >> 2] = $577; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($577); + $578 = HEAP32[$574 >> 2] | 0; + if (($578 | 0) == ($576 | 0)) { + $$0$i10 = $$first; + break L199; + } + } + } + $544 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($542, $last) | 0; + $545 = $db + 4 | 0; + $546 = HEAP32[$545 >> 2] | 0; + if ((($546 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0$i10 = $544; + break L199; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($cv$i, $546 + -24 | 0); + $554 = HEAP32[$545 >> 2] | 0; + $555 = $554 + -24 | 0; + $557 = $554; + do { + $556 = $557 + -24 | 0; + HEAP32[$545 >> 2] = $556; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($556); + $557 = HEAP32[$545 >> 2] | 0; + } while (($557 | 0) != ($555 | 0)); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($554 + -48 | 0, 48071) | 0; + $562 = HEAP8[$cv$i >> 0] | 0; + $564 = ($562 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$545 >> 2] | 0) + -24 | 0, $564 ? $cv$i + 1 | 0 : HEAP32[$cv$i + 8 >> 2] | 0, $564 ? ($562 & 255) >>> 1 : HEAP32[$cv$i + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($cv$i); + $$0$i10 = $544; + break L199; + } + } + } else $$0$i10 = $$first; + } else $$0$i10 = $$first; while (0); + STACKTOP = sp; + return (($$0$i10 | 0) == ($$first | 0) ? $first : $$0$i10) | 0; + } + default: + { + do if (($16 - $$first | 0) > 1) { + if ($23 << 24 >> 24 == 83) if ((HEAP8[$$first + 1 >> 0] | 0) == 116) { + $588 = $$first + 2 | 0; + if (($588 | 0) == ($last | 0)) { + $St$0$off0$i = 0; + $t0$0$i = $last; + } else { + $St$0$off0$i = 0; + $t0$0$i = (HEAP8[$588 >> 0] | 0) == 76 ? $$first + 3 | 0 : $588; + } + } else { + $St$0$off0$i = 1; + $t0$0$i = $$first; + } else { + $St$0$off0$i = 1; + $t0$0$i = $$first; + } + $593 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$0$i, $last, $db) | 0; + $594 = ($593 | 0) == ($t0$0$i | 0); + if ($St$0$off0$i | $594) $$0$i = $594 ? $$first : $593; else { + $597 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($597 | 0)) break; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($597 + -24 | 0, 0, 48091) | 0; + $$0$i = $593; + } + if (($$0$i | 0) != ($$first | 0)) { + if (($$0$i | 0) == ($last | 0)) { + $$02 = $last; + break L1; + } + if ((HEAP8[$$0$i >> 0] | 0) != 73) { + $$02 = $$0$i; + break L1; + } + $605 = $db + 4 | 0; + $606 = HEAP32[$605 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($606 | 0)) { + $$02 = $first; + break L1; + } + $608 = $db + 16 | 0; + HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $606 + -24 | 0, $15); + $612 = $db + 20 | 0; + $613 = HEAP32[$612 >> 2] | 0; + $615 = HEAP32[$db + 24 >> 2] | 0; + if ($613 >>> 0 < $615 >>> 0) { + HEAP32[$613 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; + HEAP32[$613 >> 2] = HEAP32[$14 >> 2]; + $622 = $14 + 4 | 0; + HEAP32[$613 + 4 >> 2] = HEAP32[$622 >> 2]; + $624 = $14 + 8 | 0; + HEAP32[$613 + 8 >> 2] = HEAP32[$624 >> 2]; + HEAP32[$624 >> 2] = 0; + HEAP32[$622 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$612 >> 2] = (HEAP32[$612 >> 2] | 0) + 16; + } else { + $632 = HEAP32[$608 >> 2] | 0; + $633 = $613 - $632 | 0; + $634 = $633 >> 4; + $635 = $634 + 1 | 0; + if (($633 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($608); + $638 = $615 - $632 | 0; + if ($638 >> 4 >>> 0 < 1073741823) { + $641 = $638 >> 3; + $$0$i$i$i = $641 >>> 0 < $635 >>> 0 ? $635 : $641; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i, $634, $db + 28 | 0); + $644 = $__v$i$i51$i + 8 | 0; + $645 = HEAP32[$644 >> 2] | 0; + HEAP32[$645 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; + HEAP32[$645 >> 2] = HEAP32[$14 >> 2]; + $651 = $14 + 4 | 0; + HEAP32[$645 + 4 >> 2] = HEAP32[$651 >> 2]; + $653 = $14 + 8 | 0; + HEAP32[$645 + 8 >> 2] = HEAP32[$653 >> 2]; + HEAP32[$653 >> 2] = 0; + HEAP32[$651 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$644 >> 2] = $645 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($608, $__v$i$i51$i); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14); + $657 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($$0$i, $last, $db) | 0; + if (($657 | 0) == ($$0$i | 0)) { + $$02 = $first; + break L1; + } + $659 = HEAP32[$605 >> 2] | 0; + if ((($659 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$02 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp, $659 + -24 | 0); + $667 = HEAP32[$605 >> 2] | 0; + $668 = $667 + -24 | 0; + $670 = $667; + do { + $669 = $670 + -24 | 0; + HEAP32[$605 >> 2] = $669; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($669); + $670 = HEAP32[$605 >> 2] | 0; + } while (($670 | 0) != ($668 | 0)); + $673 = HEAP8[$tmp >> 0] | 0; + $675 = ($673 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($667 + -48 | 0, $675 ? $tmp + 1 | 0 : HEAP32[$tmp + 8 >> 2] | 0, $675 ? ($673 & 255) >>> 1 : HEAP32[$tmp + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); + $$02 = $657; + break L1; + } + } while (0); + $685 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($$first, $last, $db) | 0; + if (($685 | 0) == ($$first | 0) | ($685 | 0) == ($last | 0)) { + $$02 = $first; + break L1; + } + if ((HEAP8[$685 >> 0] | 0) != 73) { + $$02 = $first; + break L1; + } + $690 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($685, $last, $db) | 0; + if (($690 | 0) == ($685 | 0)) { + $$02 = $first; + break L1; + } + $692 = $db + 4 | 0; + $693 = HEAP32[$692 >> 2] | 0; + if ((($693 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$02 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp3, $693 + -24 | 0); + $701 = HEAP32[$692 >> 2] | 0; + $702 = $701 + -24 | 0; + $704 = $701; + do { + $703 = $704 + -24 | 0; + HEAP32[$692 >> 2] = $703; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($703); + $704 = HEAP32[$692 >> 2] | 0; + } while (($704 | 0) != ($702 | 0)); + $707 = HEAP8[$tmp3 >> 0] | 0; + $709 = ($707 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($701 + -48 | 0, $709 ? $tmp3 + 1 | 0 : HEAP32[$tmp3 + 8 >> 2] | 0, $709 ? ($707 & 255) >>> 1 : HEAP32[$tmp3 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp3); + $$02 = $690; + break L1; + } + } + } else $$02 = $first; while (0); + STACKTOP = sp; + return $$02 | 0; +} + +function _printf_core($f, $fmt, $ap, $nl_arg, $nl_type) { + $f = $f | 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + $nl_arg = $nl_arg | 0; + $nl_type = $nl_type | 0; + var $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$21$i = 0, $$210$i = 0, $$23$i = 0, $$3$i = 0.0, $$31$i = 0, $$311$i = 0, $$4$i = 0.0, $$412$lcssa$i = 0, $$41276$i = 0, $$5$lcssa$i = 0, $$51 = 0, $$587$i = 0, $$a$3$i = 0, $$a$3186$i = 0, $$fl$4 = 0, $$lcssa = 0, $$lcssa159$i = 0, $$lcssa318 = 0, $$lcssa323 = 0, $$lcssa324 = 0, $$lcssa325 = 0, $$lcssa326 = 0, $$lcssa327 = 0, $$lcssa329 = 0, $$lcssa339 = 0, $$lcssa342 = 0.0, $$lcssa344 = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr47$i = 0, $$pre$phi184$iZ2D = 0, $$pre182$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $107 = 0, $109 = 0, $11 = 0, $12 = 0, $13 = 0, $133 = 0, $134 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $144 = 0, $146 = 0, $148 = 0, $149 = 0, $15 = 0, $154 = 0, $157 = 0, $162 = 0, $163 = 0, $168 = 0, $175 = 0, $176 = 0, $187 = 0, $19 = 0, $199 = 0, $2 = 0, $206 = 0, $208 = 0, $21 = 0, $211 = 0, $212 = 0, $217 = 0, $223 = 0, $224 = 0, $23 = 0, $230 = 0, $24 = 0, $243 = 0, $245 = 0, $248 = 0, $253 = 0, $256 = 0, $257 = 0, $267 = 0, $269 = 0, $271 = 0, $274 = 0, $276 = 0, $277 = 0, $278 = 0, $28 = 0, $284 = 0, $286 = 0, $287 = 0, $29 = 0, $291 = 0, $299 = 0, $3 = 0, $305 = 0, $314 = 0, $317 = 0, $320 = 0, $321 = 0, $334 = 0, $336 = 0, $34 = 0, $341 = 0, $346 = 0, $349 = 0, $359 = 0.0, $366 = 0, $370 = 0, $377 = 0, $379 = 0, $381 = 0, $382 = 0, $386 = 0, $39 = 0, $392 = 0.0, $393 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $401 = 0, $403 = 0, $407 = 0.0, $417 = 0, $420 = 0, $423 = 0, $432 = 0, $434 = 0, $435 = 0, $44 = 0, $441 = 0, $459 = 0, $46 = 0, $464 = 0, $469 = 0, $47 = 0, $479 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $491 = 0, $492 = 0, $495 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $501 = 0, $505 = 0, $507 = 0, $51 = 0, $511 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $521 = 0, $527 = 0, $528 = 0, $529 = 0, $533 = 0, $541 = 0, $555 = 0, $556 = 0, $559 = 0, $56 = 0, $564 = 0, $565 = 0, $567 = 0, $574 = 0, $575 = 0, $576 = 0, $579 = 0, $580 = 0, $581 = 0, $588 = 0, $59 = 0, $598 = 0, $6 = 0, $60 = 0, $601 = 0, $603 = 0, $605 = 0, $607 = 0, $61 = 0, $612 = 0, $613 = 0, $616 = 0, $618 = 0, $620 = 0, $622 = 0, $633 = 0, $636 = 0, $641 = 0, $650 = 0, $651 = 0, $655 = 0, $658 = 0, $66 = 0, $660 = 0, $662 = 0, $666 = 0, $669 = 0, $67 = 0, $673 = 0, $683 = 0, $688 = 0, $695 = 0, $698 = 0, $7 = 0, $706 = 0, $716 = 0, $718 = 0, $726 = 0, $733 = 0, $735 = 0, $739 = 0, $741 = 0, $750 = 0, $756 = 0, $771 = 0, $773 = 0, $786 = 0, $8 = 0, $9 = 0, $91 = 0, $92 = 0, $98 = 0, $99 = 0, $a$0 = 0, $a$1 = 0, $a$1$lcssa$i = 0, $a$1147$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3134$i = 0, $a$5$lcssa$i = 0, $a$5109$i = 0, $a$6$i = 0, $a$7$i = 0, $a$8$ph$i = 0, $arg = 0, $argpos$0 = 0, $big$i = 0, $buf = 0, $buf$i = 0, $carry$0140$i = 0, $carry3$0128$i = 0, $cnt$0 = 0, $cnt$1 = 0, $cnt$1$lcssa = 0, $d$0139$i = 0, $d$0141$i = 0, $d$1127$i = 0, $d$2$lcssa$i = 0, $d$2108$i = 0, $d$3$i = 0, $d$482$i = 0, $d$575$i = 0, $d$686$i = 0, $e$0123$i = 0, $e$1$i = 0, $e$2104$i = 0, $e$3$i = 0, $e$4$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$193$i = 0, $estr$2$i = 0, $fl$0109 = 0, $fl$062 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $fmt39$lcssa = 0, $fmt39101 = 0, $fmt40 = 0, $fmt41 = 0, $fmt42 = 0, $fmt44 = 0, $fmt44$lcssa321 = 0, $fmt45 = 0, $i$0$lcssa = 0, $i$0$lcssa200 = 0, $i$0114 = 0, $i$0122$i = 0, $i$03$i = 0, $i$03$i25 = 0, $i$1$lcssa$i = 0, $i$1116$i = 0, $i$1125 = 0, $i$2100 = 0, $i$2100$lcssa = 0, $i$2103$i = 0, $i$398 = 0, $i$399$i = 0, $isdigittmp = 0, $isdigittmp1$i = 0, $isdigittmp1$i22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i24 = 0, $isdigittmp9 = 0, $j$0115$i = 0, $j$0117$i = 0, $j$1100$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1113 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notrhs$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $p$4198 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0, $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$8$i = 0, $re$169$i = 0, $round$068$i = 0.0, $round6$1$i = 0.0, $s$0$i = 0, $s$1$i = 0, $s$1$i$lcssa = 0, $s7$079$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$070$i = 0, $s9$0$i = 0, $s9$183$i = 0, $s9$2$i = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa322 = 0, $storemerge = 0, $storemerge13 = 0, $storemerge8108 = 0, $storemerge860 = 0, $t$0 = 0, $t$1 = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $wc = 0, $ws$0115 = 0, $ws$1126 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$0102 = 0, $z$1$lcssa$i = 0, $z$1146$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0, $z$3$lcssa$i = 0, $z$3133$i = 0, $z$4$i = 0, $z$6$$i = 0, $z$6$i = 0, $z$6$i$lcssa = 0, $z$6$ph$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 624 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $big$i = sp + 24 | 0; + $e2$i = sp + 16 | 0; + $buf$i = sp + 588 | 0; + $ebuf0$i = sp + 576 | 0; + $arg = sp; + $buf = sp + 536 | 0; + $wc = sp + 8 | 0; + $mb = sp + 528 | 0; + $0 = ($f | 0) != 0; + $1 = $buf + 40 | 0; + $2 = $1; + $3 = $buf + 39 | 0; + $4 = $wc + 4 | 0; + $5 = $ebuf0$i + 12 | 0; + $6 = $ebuf0$i + 11 | 0; + $7 = $buf$i; + $8 = $5; + $9 = $8 - $7 | 0; + $10 = -2 - $7 | 0; + $11 = $8 + 2 | 0; + $12 = $big$i + 288 | 0; + $13 = $buf$i + 9 | 0; + $14 = $13; + $15 = $buf$i + 8 | 0; + $cnt$0 = 0; + $fmt41 = $fmt; + $l$0 = 0; + $l10n$0 = 0; + L1 : while (1) { + do if (($cnt$0 | 0) > -1) if (($l$0 | 0) > (2147483647 - $cnt$0 | 0)) { + $19 = ___errno_location() | 0; + HEAP32[$19 >> 2] = 75; + $cnt$1 = -1; + break; + } else { + $cnt$1 = $l$0 + $cnt$0 | 0; + break; + } else $cnt$1 = $cnt$0; while (0); + $21 = HEAP8[$fmt41 >> 0] | 0; + if (!($21 << 24 >> 24)) { + $cnt$1$lcssa = $cnt$1; + $l10n$0$lcssa = $l10n$0; + label = 245; + break; + } else { + $23 = $21; + $fmt40 = $fmt41; + } + L9 : while (1) { + switch ($23 << 24 >> 24) { + case 37: + { + $fmt39101 = $fmt40; + $z$0102 = $fmt40; + label = 9; + break L9; + break; + } + case 0: + { + $fmt39$lcssa = $fmt40; + $z$0$lcssa = $fmt40; + break L9; + break; + } + default: + {} + } + $24 = $fmt40 + 1 | 0; + $23 = HEAP8[$24 >> 0] | 0; + $fmt40 = $24; + } + L12 : do if ((label | 0) == 9) while (1) { + label = 0; + if ((HEAP8[$fmt39101 + 1 >> 0] | 0) != 37) { + $fmt39$lcssa = $fmt39101; + $z$0$lcssa = $z$0102; + break L12; + } + $28 = $z$0102 + 1 | 0; + $29 = $fmt39101 + 2 | 0; + if ((HEAP8[$29 >> 0] | 0) == 37) { + $fmt39101 = $29; + $z$0102 = $28; + label = 9; + } else { + $fmt39$lcssa = $29; + $z$0$lcssa = $28; + break; + } + } while (0); + $34 = $z$0$lcssa - $fmt41 | 0; + if ($0) if (!(HEAP32[$f >> 2] & 32)) ___fwritex($fmt41, $34, $f) | 0; + if (($z$0$lcssa | 0) != ($fmt41 | 0)) { + $cnt$0 = $cnt$1; + $fmt41 = $fmt39$lcssa; + $l$0 = $34; + continue; + } + $39 = $fmt39$lcssa + 1 | 0; + $40 = HEAP8[$39 >> 0] | 0; + $isdigittmp = ($40 << 24 >> 24) + -48 | 0; + if ($isdigittmp >>> 0 < 10) { + $44 = (HEAP8[$fmt39$lcssa + 2 >> 0] | 0) == 36; + $$51 = $44 ? $fmt39$lcssa + 3 | 0 : $39; + $47 = HEAP8[$$51 >> 0] | 0; + $argpos$0 = $44 ? $isdigittmp : -1; + $l10n$1 = $44 ? 1 : $l10n$0; + $storemerge = $$51; + } else { + $47 = $40; + $argpos$0 = -1; + $l10n$1 = $l10n$0; + $storemerge = $39; + } + $46 = $47 << 24 >> 24; + L25 : do if (($46 & -32 | 0) == 32) { + $51 = $46; + $56 = $47; + $fl$0109 = 0; + $storemerge8108 = $storemerge; + while (1) { + if (!(1 << $51 + -32 & 75913)) { + $66 = $56; + $fl$062 = $fl$0109; + $storemerge860 = $storemerge8108; + break L25; + } + $59 = 1 << ($56 << 24 >> 24) + -32 | $fl$0109; + $60 = $storemerge8108 + 1 | 0; + $61 = HEAP8[$60 >> 0] | 0; + $51 = $61 << 24 >> 24; + if (($51 & -32 | 0) != 32) { + $66 = $61; + $fl$062 = $59; + $storemerge860 = $60; + break; + } else { + $56 = $61; + $fl$0109 = $59; + $storemerge8108 = $60; + } + } + } else { + $66 = $47; + $fl$062 = 0; + $storemerge860 = $storemerge; + } while (0); + do if ($66 << 24 >> 24 == 42) { + $67 = $storemerge860 + 1 | 0; + $isdigittmp11 = (HEAP8[$67 >> 0] | 0) + -48 | 0; + if ($isdigittmp11 >>> 0 < 10) if ((HEAP8[$storemerge860 + 2 >> 0] | 0) == 36) { + HEAP32[$nl_type + ($isdigittmp11 << 2) >> 2] = 10; + $l10n$2 = 1; + $storemerge13 = $storemerge860 + 3 | 0; + $w$0 = HEAP32[$nl_arg + ((HEAP8[$67 >> 0] | 0) + -48 << 3) >> 2] | 0; + } else label = 24; else label = 24; + if ((label | 0) == 24) { + label = 0; + if ($l10n$1) { + $$0 = -1; + break L1; + } + if (!$0) { + $fl$1 = $fl$062; + $fmt42 = $67; + $l10n$3 = 0; + $w$1 = 0; + break; + } + $91 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $92 = HEAP32[$91 >> 2] | 0; + HEAP32[$ap >> 2] = $91 + 4; + $l10n$2 = 0; + $storemerge13 = $67; + $w$0 = $92; + } + if (($w$0 | 0) < 0) { + $fl$1 = $fl$062 | 8192; + $fmt42 = $storemerge13; + $l10n$3 = $l10n$2; + $w$1 = 0 - $w$0 | 0; + } else { + $fl$1 = $fl$062; + $fmt42 = $storemerge13; + $l10n$3 = $l10n$2; + $w$1 = $w$0; + } + } else { + $isdigittmp1$i = ($66 << 24 >> 24) + -48 | 0; + if ($isdigittmp1$i >>> 0 < 10) { + $100 = $storemerge860; + $i$03$i = 0; + $isdigittmp4$i = $isdigittmp1$i; + while (1) { + $98 = ($i$03$i * 10 | 0) + $isdigittmp4$i | 0; + $99 = $100 + 1 | 0; + $isdigittmp4$i = (HEAP8[$99 >> 0] | 0) + -48 | 0; + if ($isdigittmp4$i >>> 0 >= 10) { + $$lcssa = $98; + $$lcssa318 = $99; + break; + } else { + $100 = $99; + $i$03$i = $98; + } + } + if (($$lcssa | 0) < 0) { + $$0 = -1; + break L1; + } else { + $fl$1 = $fl$062; + $fmt42 = $$lcssa318; + $l10n$3 = $l10n$1; + $w$1 = $$lcssa; + } + } else { + $fl$1 = $fl$062; + $fmt42 = $storemerge860; + $l10n$3 = $l10n$1; + $w$1 = 0; + } + } while (0); + L46 : do if ((HEAP8[$fmt42 >> 0] | 0) == 46) { + $106 = $fmt42 + 1 | 0; + $107 = HEAP8[$106 >> 0] | 0; + if ($107 << 24 >> 24 != 42) { + $isdigittmp1$i22 = ($107 << 24 >> 24) + -48 | 0; + if ($isdigittmp1$i22 >>> 0 < 10) { + $139 = $106; + $i$03$i25 = 0; + $isdigittmp4$i24 = $isdigittmp1$i22; + } else { + $fmt45 = $106; + $p$0 = 0; + break; + } + while (1) { + $137 = ($i$03$i25 * 10 | 0) + $isdigittmp4$i24 | 0; + $138 = $139 + 1 | 0; + $isdigittmp4$i24 = (HEAP8[$138 >> 0] | 0) + -48 | 0; + if ($isdigittmp4$i24 >>> 0 >= 10) { + $fmt45 = $138; + $p$0 = $137; + break L46; + } else { + $139 = $138; + $i$03$i25 = $137; + } + } + } + $109 = $fmt42 + 2 | 0; + $isdigittmp9 = (HEAP8[$109 >> 0] | 0) + -48 | 0; + if ($isdigittmp9 >>> 0 < 10) if ((HEAP8[$fmt42 + 3 >> 0] | 0) == 36) { + HEAP32[$nl_type + ($isdigittmp9 << 2) >> 2] = 10; + $fmt45 = $fmt42 + 4 | 0; + $p$0 = HEAP32[$nl_arg + ((HEAP8[$109 >> 0] | 0) + -48 << 3) >> 2] | 0; + break; + } + if ($l10n$3) { + $$0 = -1; + break L1; + } + if ($0) { + $133 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $134 = HEAP32[$133 >> 2] | 0; + HEAP32[$ap >> 2] = $133 + 4; + $fmt45 = $109; + $p$0 = $134; + } else { + $fmt45 = $109; + $p$0 = 0; + } + } else { + $fmt45 = $fmt42; + $p$0 = -1; + } while (0); + $fmt44 = $fmt45; + $st$0 = 0; + while (1) { + $144 = (HEAP8[$fmt44 >> 0] | 0) + -65 | 0; + if ($144 >>> 0 > 57) { + $$0 = -1; + break L1; + } + $146 = $fmt44 + 1 | 0; + $148 = HEAP8[54178 + ($st$0 * 58 | 0) + $144 >> 0] | 0; + $149 = $148 & 255; + if (($149 + -1 | 0) >>> 0 < 8) { + $fmt44 = $146; + $st$0 = $149; + } else { + $$lcssa323 = $146; + $$lcssa324 = $148; + $$lcssa325 = $149; + $fmt44$lcssa321 = $fmt44; + $st$0$lcssa322 = $st$0; + break; + } + } + if (!($$lcssa324 << 24 >> 24)) { + $$0 = -1; + break; + } + $154 = ($argpos$0 | 0) > -1; + do if ($$lcssa324 << 24 >> 24 == 19) if ($154) { + $$0 = -1; + break L1; + } else label = 52; else { + if ($154) { + HEAP32[$nl_type + ($argpos$0 << 2) >> 2] = $$lcssa325; + $157 = $nl_arg + ($argpos$0 << 3) | 0; + $162 = HEAP32[$157 + 4 >> 2] | 0; + $163 = $arg; + HEAP32[$163 >> 2] = HEAP32[$157 >> 2]; + HEAP32[$163 + 4 >> 2] = $162; + label = 52; + break; + } + if (!$0) { + $$0 = 0; + break L1; + } + _pop_arg($arg, $$lcssa325, $ap); + } while (0); + if ((label | 0) == 52) { + label = 0; + if (!$0) { + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue; + } + } + $168 = HEAP8[$fmt44$lcssa321 >> 0] | 0; + $t$0 = ($st$0$lcssa322 | 0) != 0 & ($168 & 15 | 0) == 3 ? $168 & -33 : $168; + $175 = $fl$1 & -65537; + $fl$1$ = ($fl$1 & 8192 | 0) == 0 ? $fl$1 : $175; + L75 : do switch ($t$0 | 0) { + case 110: + { + switch ($st$0$lcssa322 | 0) { + case 0: + { + HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 1: + { + HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 2: + { + $187 = HEAP32[$arg >> 2] | 0; + HEAP32[$187 >> 2] = $cnt$1; + HEAP32[$187 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 3: + { + HEAP16[HEAP32[$arg >> 2] >> 1] = $cnt$1; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 4: + { + HEAP8[HEAP32[$arg >> 2] >> 0] = $cnt$1; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 6: + { + HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + case 7: + { + $199 = HEAP32[$arg >> 2] | 0; + HEAP32[$199 >> 2] = $cnt$1; + HEAP32[$199 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31; + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + break; + } + default: + { + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $34; + $l10n$0 = $l10n$3; + continue L1; + } + } + break; + } + case 112: + { + $fl$3 = $fl$1$ | 8; + $p$1 = $p$0 >>> 0 > 8 ? $p$0 : 8; + $t$1 = 120; + label = 64; + break; + } + case 88: + case 120: + { + $fl$3 = $fl$1$; + $p$1 = $p$0; + $t$1 = $t$0; + label = 64; + break; + } + case 111: + { + $243 = $arg; + $245 = HEAP32[$243 >> 2] | 0; + $248 = HEAP32[$243 + 4 >> 2] | 0; + if (($245 | 0) == 0 & ($248 | 0) == 0) $$0$lcssa$i = $1; else { + $$03$i33 = $1; + $253 = $245; + $257 = $248; + while (1) { + $256 = $$03$i33 + -1 | 0; + HEAP8[$256 >> 0] = $253 & 7 | 48; + $253 = _bitshift64Lshr($253 | 0, $257 | 0, 3) | 0; + $257 = tempRet0; + if (($253 | 0) == 0 & ($257 | 0) == 0) { + $$0$lcssa$i = $256; + break; + } else $$03$i33 = $256; + } + } + if (!($fl$1$ & 8)) { + $a$0 = $$0$lcssa$i; + $fl$4 = $fl$1$; + $p$2 = $p$0; + $pl$1 = 0; + $prefix$1 = 54658; + label = 77; + } else { + $267 = $2 - $$0$lcssa$i + 1 | 0; + $a$0 = $$0$lcssa$i; + $fl$4 = $fl$1$; + $p$2 = ($p$0 | 0) < ($267 | 0) ? $267 : $p$0; + $pl$1 = 0; + $prefix$1 = 54658; + label = 77; + } + break; + } + case 105: + case 100: + { + $269 = $arg; + $271 = HEAP32[$269 >> 2] | 0; + $274 = HEAP32[$269 + 4 >> 2] | 0; + if (($274 | 0) < 0) { + $276 = _i64Subtract(0, 0, $271 | 0, $274 | 0) | 0; + $277 = tempRet0; + $278 = $arg; + HEAP32[$278 >> 2] = $276; + HEAP32[$278 + 4 >> 2] = $277; + $286 = $276; + $287 = $277; + $pl$0 = 1; + $prefix$0 = 54658; + label = 76; + break L75; + } + if (!($fl$1$ & 2048)) { + $284 = $fl$1$ & 1; + $286 = $271; + $287 = $274; + $pl$0 = $284; + $prefix$0 = ($284 | 0) == 0 ? 54658 : 54660; + label = 76; + } else { + $286 = $271; + $287 = $274; + $pl$0 = 1; + $prefix$0 = 54659; + label = 76; + } + break; + } + case 117: + { + $176 = $arg; + $286 = HEAP32[$176 >> 2] | 0; + $287 = HEAP32[$176 + 4 >> 2] | 0; + $pl$0 = 0; + $prefix$0 = 54658; + label = 76; + break; + } + case 99: + { + HEAP8[$3 >> 0] = HEAP32[$arg >> 2]; + $a$2 = $3; + $fl$6 = $175; + $p$5 = 1; + $pl$2 = 0; + $prefix$2 = 54658; + $z$2 = $1; + break; + } + case 109: + { + $314 = ___errno_location() | 0; + $a$1 = _strerror(HEAP32[$314 >> 2] | 0) | 0; + label = 82; + break; + } + case 115: + { + $317 = HEAP32[$arg >> 2] | 0; + $a$1 = ($317 | 0) != 0 ? $317 : 54668; + label = 82; + break; + } + case 67: + { + HEAP32[$wc >> 2] = HEAP32[$arg >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$arg >> 2] = $wc; + $p$4198 = -1; + label = 86; + break; + } + case 83: + { + if (!$p$0) { + _pad($f, 32, $w$1, 0, $fl$1$); + $i$0$lcssa200 = 0; + label = 98; + } else { + $p$4198 = $p$0; + label = 86; + } + break; + } + case 65: + case 71: + case 70: + case 69: + case 97: + case 103: + case 102: + case 101: + { + $359 = +HEAPF64[$arg >> 3]; + HEAP32[$e2$i >> 2] = 0; + HEAPF64[tempDoublePtr >> 3] = $359; + if ((HEAP32[tempDoublePtr + 4 >> 2] | 0) < 0) { + $$07$i = -$359; + $pl$0$i = 1; + $prefix$0$i = 54675; + } else if (!($fl$1$ & 2048)) { + $366 = $fl$1$ & 1; + $$07$i = $359; + $pl$0$i = $366; + $prefix$0$i = ($366 | 0) == 0 ? 54676 : 54681; + } else { + $$07$i = $359; + $pl$0$i = 1; + $prefix$0$i = 54678; + } + HEAPF64[tempDoublePtr >> 3] = $$07$i; + $370 = HEAP32[tempDoublePtr + 4 >> 2] & 2146435072; + do if ($370 >>> 0 < 2146435072 | ($370 | 0) == 2146435072 & 0 < 0) { + $392 = +_frexpl($$07$i, $e2$i) * 2.0; + $393 = $392 != 0.0; + if ($393) HEAP32[$e2$i >> 2] = (HEAP32[$e2$i >> 2] | 0) + -1; + $396 = $t$0 | 32; + if (($396 | 0) == 97) { + $398 = $t$0 & 32; + $prefix$0$$i = ($398 | 0) == 0 ? $prefix$0$i : $prefix$0$i + 9 | 0; + $401 = $pl$0$i | 2; + $403 = 12 - $p$0 | 0; + do if ($p$0 >>> 0 > 11 | ($403 | 0) == 0) $$1$i = $392; else { + $re$169$i = $403; + $round$068$i = 8.0; + while (1) { + $re$169$i = $re$169$i + -1 | 0; + $407 = $round$068$i * 16.0; + if (!$re$169$i) { + $$lcssa342 = $407; + break; + } else $round$068$i = $407; + } + if ((HEAP8[$prefix$0$$i >> 0] | 0) == 45) { + $$1$i = -($$lcssa342 + (-$392 - $$lcssa342)); + break; + } else { + $$1$i = $392 + $$lcssa342 - $$lcssa342; + break; + } + } while (0); + $417 = HEAP32[$e2$i >> 2] | 0; + $420 = ($417 | 0) < 0 ? 0 - $417 | 0 : $417; + $423 = _fmt_u($420, (($420 | 0) < 0) << 31 >> 31, $5) | 0; + if (($423 | 0) == ($5 | 0)) { + HEAP8[$6 >> 0] = 48; + $estr$0$i = $6; + } else $estr$0$i = $423; + HEAP8[$estr$0$i + -1 >> 0] = ($417 >> 31 & 2) + 43; + $432 = $estr$0$i + -2 | 0; + HEAP8[$432 >> 0] = $t$0 + 15; + $notrhs$i = ($p$0 | 0) < 1; + $434 = ($fl$1$ & 8 | 0) == 0; + $$2$i = $$1$i; + $s$0$i = $buf$i; + while (1) { + $435 = ~~$$2$i; + $441 = $s$0$i + 1 | 0; + HEAP8[$s$0$i >> 0] = HEAPU8[54642 + $435 >> 0] | $398; + $$2$i = ($$2$i - +($435 | 0)) * 16.0; + do if (($441 - $7 | 0) == 1) { + if ($434 & ($notrhs$i & $$2$i == 0.0)) { + $s$1$i = $441; + break; + } + HEAP8[$441 >> 0] = 46; + $s$1$i = $s$0$i + 2 | 0; + } else $s$1$i = $441; while (0); + if (!($$2$i != 0.0)) { + $s$1$i$lcssa = $s$1$i; + break; + } else $s$0$i = $s$1$i; + } + $$pre182$i = $s$1$i$lcssa; + $l$0$i = ($p$0 | 0) != 0 & ($10 + $$pre182$i | 0) < ($p$0 | 0) ? $11 + $p$0 - $432 | 0 : $9 - $432 + $$pre182$i | 0; + $459 = $l$0$i + $401 | 0; + _pad($f, 32, $w$1, $459, $fl$1$); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$$i, $401, $f) | 0; + _pad($f, 48, $w$1, $459, $fl$1$ ^ 65536); + $464 = $$pre182$i - $7 | 0; + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($buf$i, $464, $f) | 0; + $469 = $8 - $432 | 0; + _pad($f, 48, $l$0$i - ($464 + $469) | 0, 0, 0); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($432, $469, $f) | 0; + _pad($f, 32, $w$1, $459, $fl$1$ ^ 8192); + $$0$i = ($459 | 0) < ($w$1 | 0) ? $w$1 : $459; + break; + } + $$p$i = ($p$0 | 0) < 0 ? 6 : $p$0; + if ($393) { + $479 = (HEAP32[$e2$i >> 2] | 0) + -28 | 0; + HEAP32[$e2$i >> 2] = $479; + $$3$i = $392 * 268435456.0; + $481 = $479; + } else { + $$3$i = $392; + $481 = HEAP32[$e2$i >> 2] | 0; + } + $$31$i = ($481 | 0) < 0 ? $big$i : $12; + $482 = $$31$i; + $$4$i = $$3$i; + $z$0$i = $$31$i; + while (1) { + $483 = ~~$$4$i >>> 0; + HEAP32[$z$0$i >> 2] = $483; + $484 = $z$0$i + 4 | 0; + $$4$i = ($$4$i - +($483 >>> 0)) * 1.0e9; + if (!($$4$i != 0.0)) { + $$lcssa326 = $484; + break; + } else $z$0$i = $484; + } + $$pr$i = HEAP32[$e2$i >> 2] | 0; + if (($$pr$i | 0) > 0) { + $491 = $$pr$i; + $a$1147$i = $$31$i; + $z$1146$i = $$lcssa326; + while (1) { + $492 = ($491 | 0) > 29 ? 29 : $491; + $d$0139$i = $z$1146$i + -4 | 0; + do if ($d$0139$i >>> 0 < $a$1147$i >>> 0) $a$2$ph$i = $a$1147$i; else { + $carry$0140$i = 0; + $d$0141$i = $d$0139$i; + while (1) { + $495 = _bitshift64Shl(HEAP32[$d$0141$i >> 2] | 0, 0, $492 | 0) | 0; + $497 = _i64Add($495 | 0, tempRet0 | 0, $carry$0140$i | 0, 0) | 0; + $498 = tempRet0; + $499 = ___uremdi3($497 | 0, $498 | 0, 1e9, 0) | 0; + HEAP32[$d$0141$i >> 2] = $499; + $501 = ___udivdi3($497 | 0, $498 | 0, 1e9, 0) | 0; + $d$0141$i = $d$0141$i + -4 | 0; + if ($d$0141$i >>> 0 < $a$1147$i >>> 0) { + $$lcssa327 = $501; + break; + } else $carry$0140$i = $501; + } + if (!$$lcssa327) { + $a$2$ph$i = $a$1147$i; + break; + } + $505 = $a$1147$i + -4 | 0; + HEAP32[$505 >> 2] = $$lcssa327; + $a$2$ph$i = $505; + } while (0); + $z$2$i = $z$1146$i; + while (1) { + if ($z$2$i >>> 0 <= $a$2$ph$i >>> 0) { + $z$2$i$lcssa = $z$2$i; + break; + } + $507 = $z$2$i + -4 | 0; + if (!(HEAP32[$507 >> 2] | 0)) $z$2$i = $507; else { + $z$2$i$lcssa = $z$2$i; + break; + } + } + $511 = (HEAP32[$e2$i >> 2] | 0) - $492 | 0; + HEAP32[$e2$i >> 2] = $511; + if (($511 | 0) > 0) { + $491 = $511; + $a$1147$i = $a$2$ph$i; + $z$1146$i = $z$2$i$lcssa; + } else { + $$pr47$i = $511; + $a$1$lcssa$i = $a$2$ph$i; + $z$1$lcssa$i = $z$2$i$lcssa; + break; + } + } + } else { + $$pr47$i = $$pr$i; + $a$1$lcssa$i = $$31$i; + $z$1$lcssa$i = $$lcssa326; + } + if (($$pr47$i | 0) < 0) { + $516 = (($$p$i + 25 | 0) / 9 | 0) + 1 | 0; + $517 = ($396 | 0) == 102; + $519 = $$pr47$i; + $a$3134$i = $a$1$lcssa$i; + $z$3133$i = $z$1$lcssa$i; + while (1) { + $518 = 0 - $519 | 0; + $521 = ($518 | 0) > 9 ? 9 : $518; + do if ($a$3134$i >>> 0 < $z$3133$i >>> 0) { + $527 = (1 << $521) + -1 | 0; + $528 = 1e9 >>> $521; + $carry3$0128$i = 0; + $d$1127$i = $a$3134$i; + while (1) { + $529 = HEAP32[$d$1127$i >> 2] | 0; + HEAP32[$d$1127$i >> 2] = ($529 >>> $521) + $carry3$0128$i; + $533 = Math_imul($529 & $527, $528) | 0; + $d$1127$i = $d$1127$i + 4 | 0; + if ($d$1127$i >>> 0 >= $z$3133$i >>> 0) { + $$lcssa329 = $533; + break; + } else $carry3$0128$i = $533; + } + $$a$3$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i; + if (!$$lcssa329) { + $$a$3186$i = $$a$3$i; + $z$4$i = $z$3133$i; + break; + } + HEAP32[$z$3133$i >> 2] = $$lcssa329; + $$a$3186$i = $$a$3$i; + $z$4$i = $z$3133$i + 4 | 0; + } else { + $$a$3186$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i; + $z$4$i = $z$3133$i; + } while (0); + $541 = $517 ? $$31$i : $$a$3186$i; + $$z$4$i = ($z$4$i - $541 >> 2 | 0) > ($516 | 0) ? $541 + ($516 << 2) | 0 : $z$4$i; + $519 = (HEAP32[$e2$i >> 2] | 0) + $521 | 0; + HEAP32[$e2$i >> 2] = $519; + if (($519 | 0) >= 0) { + $a$3$lcssa$i = $$a$3186$i; + $z$3$lcssa$i = $$z$4$i; + break; + } else { + $a$3134$i = $$a$3186$i; + $z$3133$i = $$z$4$i; + } + } + } else { + $a$3$lcssa$i = $a$1$lcssa$i; + $z$3$lcssa$i = $z$1$lcssa$i; + } + do if ($a$3$lcssa$i >>> 0 < $z$3$lcssa$i >>> 0) { + $555 = ($482 - $a$3$lcssa$i >> 2) * 9 | 0; + $556 = HEAP32[$a$3$lcssa$i >> 2] | 0; + if ($556 >>> 0 < 10) { + $e$1$i = $555; + break; + } else { + $e$0123$i = $555; + $i$0122$i = 10; + } + while (1) { + $i$0122$i = $i$0122$i * 10 | 0; + $559 = $e$0123$i + 1 | 0; + if ($556 >>> 0 < $i$0122$i >>> 0) { + $e$1$i = $559; + break; + } else $e$0123$i = $559; + } + } else $e$1$i = 0; while (0); + $564 = ($396 | 0) == 103; + $565 = ($$p$i | 0) != 0; + $567 = $$p$i - (($396 | 0) != 102 ? $e$1$i : 0) + (($565 & $564) << 31 >> 31) | 0; + if (($567 | 0) < ((($z$3$lcssa$i - $482 >> 2) * 9 | 0) + -9 | 0)) { + $574 = $567 + 9216 | 0; + $575 = ($574 | 0) / 9 | 0; + $576 = $$31$i + ($575 + -1023 << 2) | 0; + $j$0115$i = (($574 | 0) % 9 | 0) + 1 | 0; + if (($j$0115$i | 0) < 9) { + $i$1116$i = 10; + $j$0117$i = $j$0115$i; + while (1) { + $579 = $i$1116$i * 10 | 0; + $j$0117$i = $j$0117$i + 1 | 0; + if (($j$0117$i | 0) == 9) { + $i$1$lcssa$i = $579; + break; + } else $i$1116$i = $579; + } + } else $i$1$lcssa$i = 10; + $580 = HEAP32[$576 >> 2] | 0; + $581 = ($580 >>> 0) % ($i$1$lcssa$i >>> 0) | 0; + if (!$581) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) { + $a$7$i = $a$3$lcssa$i; + $d$3$i = $576; + $e$3$i = $e$1$i; + } else label = 163; else label = 163; + do if ((label | 0) == 163) { + label = 0; + $$20$i = ((($580 >>> 0) / ($i$1$lcssa$i >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0; + $588 = ($i$1$lcssa$i | 0) / 2 | 0; + do if ($581 >>> 0 < $588 >>> 0) $small$0$i = .5; else { + if (($581 | 0) == ($588 | 0)) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) { + $small$0$i = 1.0; + break; + } + $small$0$i = 1.5; + } while (0); + do if (!$pl$0$i) { + $round6$1$i = $$20$i; + $small$1$i = $small$0$i; + } else { + if ((HEAP8[$prefix$0$i >> 0] | 0) != 45) { + $round6$1$i = $$20$i; + $small$1$i = $small$0$i; + break; + } + $round6$1$i = -$$20$i; + $small$1$i = -$small$0$i; + } while (0); + $598 = $580 - $581 | 0; + HEAP32[$576 >> 2] = $598; + if (!($round6$1$i + $small$1$i != $round6$1$i)) { + $a$7$i = $a$3$lcssa$i; + $d$3$i = $576; + $e$3$i = $e$1$i; + break; + } + $601 = $598 + $i$1$lcssa$i | 0; + HEAP32[$576 >> 2] = $601; + if ($601 >>> 0 > 999999999) { + $a$5109$i = $a$3$lcssa$i; + $d$2108$i = $576; + while (1) { + $603 = $d$2108$i + -4 | 0; + HEAP32[$d$2108$i >> 2] = 0; + if ($603 >>> 0 < $a$5109$i >>> 0) { + $605 = $a$5109$i + -4 | 0; + HEAP32[$605 >> 2] = 0; + $a$6$i = $605; + } else $a$6$i = $a$5109$i; + $607 = (HEAP32[$603 >> 2] | 0) + 1 | 0; + HEAP32[$603 >> 2] = $607; + if ($607 >>> 0 > 999999999) { + $a$5109$i = $a$6$i; + $d$2108$i = $603; + } else { + $a$5$lcssa$i = $a$6$i; + $d$2$lcssa$i = $603; + break; + } + } + } else { + $a$5$lcssa$i = $a$3$lcssa$i; + $d$2$lcssa$i = $576; + } + $612 = ($482 - $a$5$lcssa$i >> 2) * 9 | 0; + $613 = HEAP32[$a$5$lcssa$i >> 2] | 0; + if ($613 >>> 0 < 10) { + $a$7$i = $a$5$lcssa$i; + $d$3$i = $d$2$lcssa$i; + $e$3$i = $612; + break; + } else { + $e$2104$i = $612; + $i$2103$i = 10; + } + while (1) { + $i$2103$i = $i$2103$i * 10 | 0; + $616 = $e$2104$i + 1 | 0; + if ($613 >>> 0 < $i$2103$i >>> 0) { + $a$7$i = $a$5$lcssa$i; + $d$3$i = $d$2$lcssa$i; + $e$3$i = $616; + break; + } else $e$2104$i = $616; + } + } while (0); + $618 = $d$3$i + 4 | 0; + $a$8$ph$i = $a$7$i; + $e$4$ph$i = $e$3$i; + $z$6$ph$i = $z$3$lcssa$i >>> 0 > $618 >>> 0 ? $618 : $z$3$lcssa$i; + } else { + $a$8$ph$i = $a$3$lcssa$i; + $e$4$ph$i = $e$1$i; + $z$6$ph$i = $z$3$lcssa$i; + } + $620 = 0 - $e$4$ph$i | 0; + $z$6$i = $z$6$ph$i; + while (1) { + if ($z$6$i >>> 0 <= $a$8$ph$i >>> 0) { + $$lcssa159$i = 0; + $z$6$i$lcssa = $z$6$i; + break; + } + $622 = $z$6$i + -4 | 0; + if (!(HEAP32[$622 >> 2] | 0)) $z$6$i = $622; else { + $$lcssa159$i = 1; + $z$6$i$lcssa = $z$6$i; + break; + } + } + do if ($564) { + $$p$$i = ($565 & 1 ^ 1) + $$p$i | 0; + if (($$p$$i | 0) > ($e$4$ph$i | 0) & ($e$4$ph$i | 0) > -5) { + $$013$i = $t$0 + -1 | 0; + $$210$i = $$p$$i + -1 - $e$4$ph$i | 0; + } else { + $$013$i = $t$0 + -2 | 0; + $$210$i = $$p$$i + -1 | 0; + } + $633 = $fl$1$ & 8; + if ($633) { + $$114$i = $$013$i; + $$311$i = $$210$i; + $$pre$phi184$iZ2D = $633; + break; + } + do if ($$lcssa159$i) { + $636 = HEAP32[$z$6$i$lcssa + -4 >> 2] | 0; + if (!$636) { + $j$2$i = 9; + break; + } + if (!(($636 >>> 0) % 10 | 0)) { + $i$399$i = 10; + $j$1100$i = 0; + } else { + $j$2$i = 0; + break; + } + while (1) { + $i$399$i = $i$399$i * 10 | 0; + $641 = $j$1100$i + 1 | 0; + if (($636 >>> 0) % ($i$399$i >>> 0) | 0) { + $j$2$i = $641; + break; + } else $j$1100$i = $641; + } + } else $j$2$i = 9; while (0); + $650 = (($z$6$i$lcssa - $482 >> 2) * 9 | 0) + -9 | 0; + if (($$013$i | 32 | 0) == 102) { + $651 = $650 - $j$2$i | 0; + $$21$i = ($651 | 0) < 0 ? 0 : $651; + $$114$i = $$013$i; + $$311$i = ($$210$i | 0) < ($$21$i | 0) ? $$210$i : $$21$i; + $$pre$phi184$iZ2D = 0; + break; + } else { + $655 = $650 + $e$4$ph$i - $j$2$i | 0; + $$23$i = ($655 | 0) < 0 ? 0 : $655; + $$114$i = $$013$i; + $$311$i = ($$210$i | 0) < ($$23$i | 0) ? $$210$i : $$23$i; + $$pre$phi184$iZ2D = 0; + break; + } + } else { + $$114$i = $t$0; + $$311$i = $$p$i; + $$pre$phi184$iZ2D = $fl$1$ & 8; + } while (0); + $658 = $$311$i | $$pre$phi184$iZ2D; + $660 = ($658 | 0) != 0 & 1; + $662 = ($$114$i | 32 | 0) == 102; + if ($662) { + $$pn$i = ($e$4$ph$i | 0) > 0 ? $e$4$ph$i : 0; + $estr$2$i = 0; + } else { + $666 = ($e$4$ph$i | 0) < 0 ? $620 : $e$4$ph$i; + $669 = _fmt_u($666, (($666 | 0) < 0) << 31 >> 31, $5) | 0; + if (($8 - $669 | 0) < 2) { + $estr$193$i = $669; + while (1) { + $673 = $estr$193$i + -1 | 0; + HEAP8[$673 >> 0] = 48; + if (($8 - $673 | 0) < 2) $estr$193$i = $673; else { + $estr$1$lcssa$i = $673; + break; + } + } + } else $estr$1$lcssa$i = $669; + HEAP8[$estr$1$lcssa$i + -1 >> 0] = ($e$4$ph$i >> 31 & 2) + 43; + $683 = $estr$1$lcssa$i + -2 | 0; + HEAP8[$683 >> 0] = $$114$i; + $$pn$i = $8 - $683 | 0; + $estr$2$i = $683; + } + $688 = $pl$0$i + 1 + $$311$i + $660 + $$pn$i | 0; + _pad($f, 32, $w$1, $688, $fl$1$); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$i, $pl$0$i, $f) | 0; + _pad($f, 48, $w$1, $688, $fl$1$ ^ 65536); + do if ($662) { + $r$0$a$8$i = $a$8$ph$i >>> 0 > $$31$i >>> 0 ? $$31$i : $a$8$ph$i; + $d$482$i = $r$0$a$8$i; + while (1) { + $695 = _fmt_u(HEAP32[$d$482$i >> 2] | 0, 0, $13) | 0; + do if (($d$482$i | 0) == ($r$0$a$8$i | 0)) { + if (($695 | 0) != ($13 | 0)) { + $s7$1$i = $695; + break; + } + HEAP8[$15 >> 0] = 48; + $s7$1$i = $15; + } else { + if ($695 >>> 0 > $buf$i >>> 0) $s7$079$i = $695; else { + $s7$1$i = $695; + break; + } + while (1) { + $698 = $s7$079$i + -1 | 0; + HEAP8[$698 >> 0] = 48; + if ($698 >>> 0 > $buf$i >>> 0) $s7$079$i = $698; else { + $s7$1$i = $698; + break; + } + } + } while (0); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s7$1$i, $14 - $s7$1$i | 0, $f) | 0; + $706 = $d$482$i + 4 | 0; + if ($706 >>> 0 > $$31$i >>> 0) { + $$lcssa339 = $706; + break; + } else $d$482$i = $706; + } + do if ($658) { + if (HEAP32[$f >> 2] & 32) break; + ___fwritex(54710, 1, $f) | 0; + } while (0); + if (($$311$i | 0) > 0 & $$lcssa339 >>> 0 < $z$6$i$lcssa >>> 0) { + $$41276$i = $$311$i; + $d$575$i = $$lcssa339; + while (1) { + $716 = _fmt_u(HEAP32[$d$575$i >> 2] | 0, 0, $13) | 0; + if ($716 >>> 0 > $buf$i >>> 0) { + $s8$070$i = $716; + while (1) { + $718 = $s8$070$i + -1 | 0; + HEAP8[$718 >> 0] = 48; + if ($718 >>> 0 > $buf$i >>> 0) $s8$070$i = $718; else { + $s8$0$lcssa$i = $718; + break; + } + } + } else $s8$0$lcssa$i = $716; + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s8$0$lcssa$i, ($$41276$i | 0) > 9 ? 9 : $$41276$i, $f) | 0; + $d$575$i = $d$575$i + 4 | 0; + $726 = $$41276$i + -9 | 0; + if (!(($$41276$i | 0) > 9 & $d$575$i >>> 0 < $z$6$i$lcssa >>> 0)) { + $$412$lcssa$i = $726; + break; + } else $$41276$i = $726; + } + } else $$412$lcssa$i = $$311$i; + _pad($f, 48, $$412$lcssa$i + 9 | 0, 9, 0); + } else { + $z$6$$i = $$lcssa159$i ? $z$6$i$lcssa : $a$8$ph$i + 4 | 0; + if (($$311$i | 0) > -1) { + $733 = ($$pre$phi184$iZ2D | 0) == 0; + $$587$i = $$311$i; + $d$686$i = $a$8$ph$i; + while (1) { + $735 = _fmt_u(HEAP32[$d$686$i >> 2] | 0, 0, $13) | 0; + if (($735 | 0) == ($13 | 0)) { + HEAP8[$15 >> 0] = 48; + $s9$0$i = $15; + } else $s9$0$i = $735; + do if (($d$686$i | 0) == ($a$8$ph$i | 0)) { + $741 = $s9$0$i + 1 | 0; + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$0$i, 1, $f) | 0; + if ($733 & ($$587$i | 0) < 1) { + $s9$2$i = $741; + break; + } + if (HEAP32[$f >> 2] & 32) { + $s9$2$i = $741; + break; + } + ___fwritex(54710, 1, $f) | 0; + $s9$2$i = $741; + } else { + if ($s9$0$i >>> 0 > $buf$i >>> 0) $s9$183$i = $s9$0$i; else { + $s9$2$i = $s9$0$i; + break; + } + while (1) { + $739 = $s9$183$i + -1 | 0; + HEAP8[$739 >> 0] = 48; + if ($739 >>> 0 > $buf$i >>> 0) $s9$183$i = $739; else { + $s9$2$i = $739; + break; + } + } + } while (0); + $750 = $14 - $s9$2$i | 0; + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$2$i, ($$587$i | 0) > ($750 | 0) ? $750 : $$587$i, $f) | 0; + $756 = $$587$i - $750 | 0; + $d$686$i = $d$686$i + 4 | 0; + if (!($d$686$i >>> 0 < $z$6$$i >>> 0 & ($756 | 0) > -1)) { + $$5$lcssa$i = $756; + break; + } else $$587$i = $756; + } + } else $$5$lcssa$i = $$311$i; + _pad($f, 48, $$5$lcssa$i + 18 | 0, 18, 0); + if (HEAP32[$f >> 2] & 32) break; + ___fwritex($estr$2$i, $8 - $estr$2$i | 0, $f) | 0; + } while (0); + _pad($f, 32, $w$1, $688, $fl$1$ ^ 8192); + $$0$i = ($688 | 0) < ($w$1 | 0) ? $w$1 : $688; + } else { + $377 = ($t$0 & 32 | 0) != 0; + $379 = $$07$i != $$07$i | 0.0 != 0.0; + $pl$1$i = $379 ? 0 : $pl$0$i; + $381 = $pl$1$i + 3 | 0; + _pad($f, 32, $w$1, $381, $175); + $382 = HEAP32[$f >> 2] | 0; + if (!($382 & 32)) { + ___fwritex($prefix$0$i, $pl$1$i, $f) | 0; + $386 = HEAP32[$f >> 2] | 0; + } else $386 = $382; + if (!($386 & 32)) ___fwritex($379 ? ($377 ? 54702 : 54706) : $377 ? 54694 : 54698, 3, $f) | 0; + _pad($f, 32, $w$1, $381, $fl$1$ ^ 8192); + $$0$i = ($381 | 0) < ($w$1 | 0) ? $w$1 : $381; + } while (0); + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $$0$i; + $l10n$0 = $l10n$3; + continue L1; + break; + } + default: + { + $a$2 = $fmt41; + $fl$6 = $fl$1$; + $p$5 = $p$0; + $pl$2 = 0; + $prefix$2 = 54658; + $z$2 = $1; + } + } while (0); + L313 : do if ((label | 0) == 64) { + label = 0; + $206 = $arg; + $208 = HEAP32[$206 >> 2] | 0; + $211 = HEAP32[$206 + 4 >> 2] | 0; + $212 = $t$1 & 32; + if (($208 | 0) == 0 & ($211 | 0) == 0) { + $a$0 = $1; + $fl$4 = $fl$3; + $p$2 = $p$1; + $pl$1 = 0; + $prefix$1 = 54658; + label = 77; + } else { + $$012$i = $1; + $217 = $208; + $224 = $211; + while (1) { + $223 = $$012$i + -1 | 0; + HEAP8[$223 >> 0] = HEAPU8[54642 + ($217 & 15) >> 0] | $212; + $217 = _bitshift64Lshr($217 | 0, $224 | 0, 4) | 0; + $224 = tempRet0; + if (($217 | 0) == 0 & ($224 | 0) == 0) { + $$lcssa344 = $223; + break; + } else $$012$i = $223; + } + $230 = $arg; + if (($fl$3 & 8 | 0) == 0 | (HEAP32[$230 >> 2] | 0) == 0 & (HEAP32[$230 + 4 >> 2] | 0) == 0) { + $a$0 = $$lcssa344; + $fl$4 = $fl$3; + $p$2 = $p$1; + $pl$1 = 0; + $prefix$1 = 54658; + label = 77; + } else { + $a$0 = $$lcssa344; + $fl$4 = $fl$3; + $p$2 = $p$1; + $pl$1 = 2; + $prefix$1 = 54658 + ($t$1 >> 4) | 0; + label = 77; + } + } + } else if ((label | 0) == 76) { + label = 0; + $a$0 = _fmt_u($286, $287, $1) | 0; + $fl$4 = $fl$1$; + $p$2 = $p$0; + $pl$1 = $pl$0; + $prefix$1 = $prefix$0; + label = 77; + } else if ((label | 0) == 82) { + label = 0; + $320 = _memchr($a$1, 0, $p$0) | 0; + $321 = ($320 | 0) == 0; + $a$2 = $a$1; + $fl$6 = $175; + $p$5 = $321 ? $p$0 : $320 - $a$1 | 0; + $pl$2 = 0; + $prefix$2 = 54658; + $z$2 = $321 ? $a$1 + $p$0 | 0 : $320; + } else if ((label | 0) == 86) { + label = 0; + $i$0114 = 0; + $l$1113 = 0; + $ws$0115 = HEAP32[$arg >> 2] | 0; + while (1) { + $334 = HEAP32[$ws$0115 >> 2] | 0; + if (!$334) { + $i$0$lcssa = $i$0114; + $l$2 = $l$1113; + break; + } + $336 = _wctomb($mb, $334) | 0; + if (($336 | 0) < 0 | $336 >>> 0 > ($p$4198 - $i$0114 | 0) >>> 0) { + $i$0$lcssa = $i$0114; + $l$2 = $336; + break; + } + $341 = $336 + $i$0114 | 0; + if ($p$4198 >>> 0 > $341 >>> 0) { + $i$0114 = $341; + $l$1113 = $336; + $ws$0115 = $ws$0115 + 4 | 0; + } else { + $i$0$lcssa = $341; + $l$2 = $336; + break; + } + } + if (($l$2 | 0) < 0) { + $$0 = -1; + break L1; + } + _pad($f, 32, $w$1, $i$0$lcssa, $fl$1$); + if (!$i$0$lcssa) { + $i$0$lcssa200 = 0; + label = 98; + } else { + $i$1125 = 0; + $ws$1126 = HEAP32[$arg >> 2] | 0; + while (1) { + $346 = HEAP32[$ws$1126 >> 2] | 0; + if (!$346) { + $i$0$lcssa200 = $i$0$lcssa; + label = 98; + break L313; + } + $349 = _wctomb($mb, $346) | 0; + $i$1125 = $349 + $i$1125 | 0; + if (($i$1125 | 0) > ($i$0$lcssa | 0)) { + $i$0$lcssa200 = $i$0$lcssa; + label = 98; + break L313; + } + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($mb, $349, $f) | 0; + if ($i$1125 >>> 0 >= $i$0$lcssa >>> 0) { + $i$0$lcssa200 = $i$0$lcssa; + label = 98; + break; + } else $ws$1126 = $ws$1126 + 4 | 0; + } + } + } while (0); + if ((label | 0) == 98) { + label = 0; + _pad($f, 32, $w$1, $i$0$lcssa200, $fl$1$ ^ 8192); + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = ($w$1 | 0) > ($i$0$lcssa200 | 0) ? $w$1 : $i$0$lcssa200; + $l10n$0 = $l10n$3; + continue; + } + if ((label | 0) == 77) { + label = 0; + $$fl$4 = ($p$2 | 0) > -1 ? $fl$4 & -65537 : $fl$4; + $291 = $arg; + $299 = (HEAP32[$291 >> 2] | 0) != 0 | (HEAP32[$291 + 4 >> 2] | 0) != 0; + if (($p$2 | 0) != 0 | $299) { + $305 = ($299 & 1 ^ 1) + ($2 - $a$0) | 0; + $a$2 = $a$0; + $fl$6 = $$fl$4; + $p$5 = ($p$2 | 0) > ($305 | 0) ? $p$2 : $305; + $pl$2 = $pl$1; + $prefix$2 = $prefix$1; + $z$2 = $1; + } else { + $a$2 = $1; + $fl$6 = $$fl$4; + $p$5 = 0; + $pl$2 = $pl$1; + $prefix$2 = $prefix$1; + $z$2 = $1; + } + } + $771 = $z$2 - $a$2 | 0; + $$p$5 = ($p$5 | 0) < ($771 | 0) ? $771 : $p$5; + $773 = $pl$2 + $$p$5 | 0; + $w$2 = ($w$1 | 0) < ($773 | 0) ? $773 : $w$1; + _pad($f, 32, $w$2, $773, $fl$6); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$2, $pl$2, $f) | 0; + _pad($f, 48, $w$2, $773, $fl$6 ^ 65536); + _pad($f, 48, $$p$5, $771, 0); + if (!(HEAP32[$f >> 2] & 32)) ___fwritex($a$2, $771, $f) | 0; + _pad($f, 32, $w$2, $773, $fl$6 ^ 8192); + $cnt$0 = $cnt$1; + $fmt41 = $$lcssa323; + $l$0 = $w$2; + $l10n$0 = $l10n$3; + } + L348 : do if ((label | 0) == 245) if (!$f) if (!$l10n$0$lcssa) $$0 = 0; else { + $i$2100 = 1; + while (1) { + $786 = HEAP32[$nl_type + ($i$2100 << 2) >> 2] | 0; + if (!$786) { + $i$2100$lcssa = $i$2100; + break; + } + _pop_arg($nl_arg + ($i$2100 << 3) | 0, $786, $ap); + $i$2100 = $i$2100 + 1 | 0; + if (($i$2100 | 0) >= 10) { + $$0 = 1; + break L348; + } + } + if (($i$2100$lcssa | 0) < 10) { + $i$398 = $i$2100$lcssa; + while (1) { + if (HEAP32[$nl_type + ($i$398 << 2) >> 2] | 0) { + $$0 = -1; + break L348; + } + $i$398 = $i$398 + 1 | 0; + if (($i$398 | 0) >= 10) { + $$0 = 1; + break; + } + } + } else $$0 = 1; + } else $$0 = $cnt$1$lcssa; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision25DoGScaleInvariantDetector15extractFeaturesEPKNS_25GaussianScaleSpacePyramidEPKNS_10DoGPyramidE($this, $pyramid, $laplacian) { + $this = $this | 0; + $pyramid = $pyramid | 0; + $laplacian = $laplacian | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $114 = 0.0, $117 = 0, $119 = 0.0, $12 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $201 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $274 = 0.0, $276 = 0, $28 = 0, $283 = 0, $288 = 0, $29 = 0, $297 = 0, $3 = 0, $302 = 0, $303 = 0, $307 = 0, $308 = 0, $317 = 0, $322 = 0, $323 = 0, $327 = 0, $334 = 0, $341 = 0, $342 = 0.0, $344 = 0, $347 = 0, $348 = 0, $349 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0.0, $356 = 0.0, $357 = 0.0, $358 = 0.0, $359 = 0, $360 = 0.0, $363 = 0.0, $365 = 0.0, $366 = 0, $367 = 0, $373 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $419 = 0.0, $422 = 0.0, $425 = 0.0, $426 = 0.0, $429 = 0.0, $43 = 0, $432 = 0.0, $435 = 0.0, $438 = 0.0, $44 = 0, $441 = 0.0, $444 = 0.0, $447 = 0.0, $453 = 0, $46 = 0, $48 = 0, $499 = 0.0, $5 = 0, $50 = 0, $502 = 0.0, $505 = 0.0, $506 = 0.0, $509 = 0.0, $512 = 0.0, $515 = 0.0, $518 = 0.0, $521 = 0.0, $524 = 0.0, $528 = 0.0, $529 = 0, $550 = 0, $559 = 0, $56 = 0, $564 = 0, $565 = 0, $569 = 0, $578 = 0, $583 = 0, $584 = 0, $588 = 0, $589 = 0, $590 = 0, $591 = 0.0, $593 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $600 = 0, $601 = 0, $602 = 0, $605 = 0.0, $606 = 0.0, $607 = 0.0, $608 = 0.0, $609 = 0, $610 = 0.0, $615 = 0.0, $616 = 0, $617 = 0, $623 = 0, $65 = 0, $669 = 0.0, $672 = 0.0, $675 = 0.0, $676 = 0.0, $679 = 0.0, $682 = 0.0, $685 = 0.0, $688 = 0.0, $691 = 0.0, $694 = 0.0, $697 = 0.0, $70 = 0, $703 = 0, $71 = 0, $749 = 0.0, $75 = 0, $752 = 0.0, $755 = 0.0, $756 = 0.0, $759 = 0.0, $762 = 0.0, $765 = 0.0, $768 = 0.0, $771 = 0.0, $774 = 0.0, $778 = 0.0, $780 = 0, $84 = 0, $89 = 0, $9 = 0.0, $90 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0.0, $99 = 0, $col$0115 = 0, $col21$0100 = 0, $col8$0107 = 0, $i$0123 = 0, $row$0120 = 0, $row1$0112 = 0, $row14$0104 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0, $row$0120$looptemp = 0, $row1$0112$looptemp = 0, $row14$0104$looptemp = 0, $i$0123$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $1 = $this + 60 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $this + 64 | 0; + $$pre$i$i$i = HEAP32[$3 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($2 | 0)) { + $6 = $$pre$i$i$i; + while (1) { + $5 = $6 + -36 | 0; + if (($5 | 0) == ($2 | 0)) { + $$lcssa = $5; + break; + } else $6 = $5; + } + HEAP32[$3 >> 2] = $$lcssa; + } + $9 = +HEAPF32[$this + 52 >> 2]; + $10 = $9 * $9; + $11 = $this + 36 | 0; + $12 = $this + 32 | 0; + $13 = $laplacian + 16 | 0; + $14 = $0 + 12 | 0; + $15 = $0 + 16 | 0; + $16 = $0 + 24 | 0; + $17 = $0 + 28 | 0; + $18 = $0 + 4 | 0; + $19 = $this + 68 | 0; + $20 = $0 + 12 | 0; + $21 = $0 + 16 | 0; + $22 = $0 + 24 | 0; + $23 = $0 + 28 | 0; + $24 = $0 + 4 | 0; + $25 = $0 + 12 | 0; + $26 = $0 + 16 | 0; + $27 = $0 + 24 | 0; + $28 = $0 + 28 | 0; + $29 = $0 + 4 | 0; + L6 : do if ((((HEAP32[$11 >> 2] | 0) - (HEAP32[$12 >> 2] | 0) >> 5) + -1 | 0) >>> 0 > 1) { + $i$0123 = 1; + L7 : while (1) { + $38 = $i$0123 + -1 | 0; + $39 = HEAP32[$laplacian >> 2] | 0; + $40 = $39 + ($38 << 5) | 0; + $41 = $39 + ($i$0123 << 5) | 0; + $i$0123$looptemp = $i$0123; + $i$0123 = $i$0123 + 1 | 0; + $43 = $39 + ($i$0123 << 5) | 0; + $44 = __ZNK6vision10DoGPyramid15octaveFromIndexEi($laplacian, $i$0123$looptemp) | 0; + $46 = ($i$0123$looptemp | 0) % (HEAP32[$13 >> 2] | 0) | 0; + $48 = HEAP32[$39 + ($38 << 5) + 4 >> 2] | 0; + $50 = HEAP32[$39 + ($i$0123$looptemp << 5) + 4 >> 2] | 0; + L9 : do if (($48 | 0) == ($50 | 0)) { + if (($48 | 0) == (HEAP32[$39 + ($i$0123 << 5) + 4 >> 2] | 0)) { + $56 = HEAP32[$39 + ($38 << 5) + 8 >> 2] | 0; + if (($56 | 0) != (HEAP32[$39 + ($i$0123$looptemp << 5) + 8 >> 2] | 0)) { + label = 8; + break L7; + } + if (($56 | 0) != (HEAP32[$39 + ($i$0123 << 5) + 8 >> 2] | 0)) { + label = 10; + break L7; + } + $95 = $48 + -1 | 0; + $96 = $56 + -1 | 0; + $97 = +($46 | 0); + if ($96 >>> 0 <= 1) break; + $99 = $95 >>> 0 > 1; + $row$0120 = 1; + while (1) { + $102 = $row$0120 + -1 | 0; + $103 = __ZNK6vision5Image3getIfEEPKT_j($40, $102) | 0; + $104 = __ZNK6vision5Image3getIfEEPKT_j($40, $row$0120) | 0; + $row$0120$looptemp = $row$0120; + $row$0120 = $row$0120 + 1 | 0; + $105 = __ZNK6vision5Image3getIfEEPKT_j($40, $row$0120) | 0; + $106 = __ZNK6vision5Image3getIfEEPKT_j($41, $102) | 0; + $107 = __ZNK6vision5Image3getIfEEPKT_j($41, $row$0120$looptemp) | 0; + $108 = __ZNK6vision5Image3getIfEEPKT_j($41, $row$0120) | 0; + $109 = __ZNK6vision5Image3getIfEEPKT_j($43, $102) | 0; + $110 = __ZNK6vision5Image3getIfEEPKT_j($43, $row$0120$looptemp) | 0; + $111 = __ZNK6vision5Image3getIfEEPKT_j($43, $row$0120) | 0; + $112 = +($row$0120$looptemp >>> 0); + if ($99) { + $col$0115 = 1; + do { + $114 = +HEAPF32[$107 + ($col$0115 << 2) >> 2]; + do if (!($114 * $114 < $10)) { + $117 = $col$0115 + -1 | 0; + $119 = +HEAPF32[$103 + ($117 << 2) >> 2]; + do if ($114 > $119) if ($114 > +HEAPF32[$103 + ($col$0115 << 2) >> 2]) { + $124 = $col$0115 + 1 | 0; + if (!($114 > +HEAPF32[$103 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$104 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$104 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$104 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$105 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$105 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$105 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$106 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$106 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$106 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$107 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$107 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$108 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$108 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$108 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$109 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$109 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$109 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$110 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$110 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$110 + ($124 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$111 + ($117 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$111 + ($col$0115 << 2) >> 2])) { + label = 42; + break; + } + if (!($114 > +HEAPF32[$111 + ($124 << 2) >> 2])) label = 42; + } else label = 42; else label = 42; while (0); + if ((label | 0) == 42) { + label = 0; + if (!($114 < $119)) break; + if (!($114 < +HEAPF32[$103 + ($col$0115 << 2) >> 2])) break; + $201 = $col$0115 + 1 | 0; + if (!($114 < +HEAPF32[$103 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$104 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$104 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$104 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$105 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$105 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$105 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$106 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$106 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$106 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$107 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$107 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$108 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$108 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$108 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$109 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$109 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$109 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$110 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$110 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$110 + ($201 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$111 + ($117 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$111 + ($col$0115 << 2) >> 2])) break; + if (!($114 < +HEAPF32[$111 + ($201 << 2) >> 2])) break; + } + HEAP32[$14 >> 2] = $44; + HEAP32[$15 >> 2] = $46; + HEAPF32[$16 >> 2] = $114; + $274 = +__ZNK6vision25GaussianScaleSpacePyramid14effectiveSigmaEjf($pyramid, $44, $97); + HEAPF32[$17 >> 2] = $274; + __ZN6vision23bilinear_upsample_pointERfS0_ffi($0, $18, +($col$0115 >>> 0), $112, $44); + $276 = HEAP32[$3 >> 2] | 0; + if (($276 | 0) == (HEAP32[$19 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($1, $0); + break; + } else { + dest = $276; + src = $0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + 36; + break; + } + } while (0); + $col$0115 = $col$0115 + 1 | 0; + } while ($col$0115 >>> 0 < $95 >>> 0); + } + if ($row$0120 >>> 0 >= $96 >>> 0) break L9; + } + } + $283 = $48 >>> 1; + if (($283 | 0) == (HEAP32[$39 + ($i$0123 << 5) + 4 >> 2] | 0)) { + $288 = HEAP32[$39 + ($38 << 5) + 8 >> 2] | 0; + if (($288 | 0) != (HEAP32[$39 + ($i$0123$looptemp << 5) + 8 >> 2] | 0)) { + label = 75; + break L7; + } + $308 = $288 >>> 1; + if (($308 | 0) != (HEAP32[$39 + ($i$0123 << 5) + 8 >> 2] | 0)) { + label = 77; + break L7; + } + $334 = ~~+Math_floor(+((+(($283 + -1 | 0) >>> 0) + -.5) * 2.0 + .5)) >>> 0; + $341 = ~~+Math_floor(+((+(($308 + -1 | 0) >>> 0) + -.5) * 2.0 + .5)) >>> 0; + $342 = +($46 | 0); + if ($341 >>> 0 > 2) { + $344 = $334 >>> 0 > 2; + $row1$0112 = 2; + do { + $347 = $row1$0112 + -1 | 0; + $348 = __ZNK6vision5Image3getIfEEPKT_j($40, $347) | 0; + $349 = __ZNK6vision5Image3getIfEEPKT_j($40, $row1$0112) | 0; + $row1$0112$looptemp = $row1$0112; + $row1$0112 = $row1$0112 + 1 | 0; + $350 = __ZNK6vision5Image3getIfEEPKT_j($40, $row1$0112) | 0; + $351 = __ZNK6vision5Image3getIfEEPKT_j($41, $347) | 0; + $352 = __ZNK6vision5Image3getIfEEPKT_j($41, $row1$0112$looptemp) | 0; + $353 = __ZNK6vision5Image3getIfEEPKT_j($41, $row1$0112) | 0; + $354 = +($row1$0112$looptemp >>> 0); + $356 = $354 * .5 + -.25; + $357 = $356 + -.5; + $358 = $356 + .5; + if ($344) { + $col8$0107 = 2; + do { + $359 = $352 + ($col8$0107 << 2) | 0; + $360 = +HEAPF32[$359 >> 2]; + do if (!($360 * $360 < $10)) { + $363 = +($col8$0107 >>> 0); + $365 = $363 * .5 + -.25; + $366 = $col8$0107 + -1 | 0; + $367 = $348 + ($366 << 2) | 0; + do if ($360 > +HEAPF32[$367 >> 2]) if ($360 > +HEAPF32[$348 + ($col8$0107 << 2) >> 2]) { + $373 = $col8$0107 + 1 | 0; + if (!($360 > +HEAPF32[$348 + ($373 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$349 + ($366 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$349 + ($col8$0107 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$349 + ($373 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$350 + ($366 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$350 + ($col8$0107 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$350 + ($373 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$351 + ($366 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$351 + ($col8$0107 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$351 + ($373 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$352 + ($366 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$352 + ($373 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$353 + ($366 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$353 + ($col8$0107 << 2) >> 2])) { + label = 109; + break; + } + if (!($360 > +HEAPF32[$353 + ($373 << 2) >> 2])) { + label = 109; + break; + } + $419 = $365 + -.5; + if (!($360 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $419, $357))) { + label = 109; + break; + } + $422 = +HEAPF32[$359 >> 2]; + if (!($422 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $357))) { + label = 109; + break; + } + $425 = +HEAPF32[$359 >> 2]; + $426 = $365 + .5; + if (!($425 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $426, $357))) { + label = 109; + break; + } + $429 = +HEAPF32[$359 >> 2]; + if (!($429 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $419, $356))) { + label = 109; + break; + } + $432 = +HEAPF32[$359 >> 2]; + if (!($432 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $356))) { + label = 109; + break; + } + $435 = +HEAPF32[$359 >> 2]; + if (!($435 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $426, $356))) { + label = 109; + break; + } + $438 = +HEAPF32[$359 >> 2]; + if (!($438 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $419, $358))) { + label = 109; + break; + } + $441 = +HEAPF32[$359 >> 2]; + if (!($441 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $358))) { + label = 109; + break; + } + $444 = +HEAPF32[$359 >> 2]; + if (!($444 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $426, $358))) label = 109; + } else label = 109; else label = 109; while (0); + if ((label | 0) == 109) { + label = 0; + $447 = +HEAPF32[$359 >> 2]; + if (!($447 < +HEAPF32[$367 >> 2])) break; + if (!($447 < +HEAPF32[$348 + ($col8$0107 << 2) >> 2])) break; + $453 = $col8$0107 + 1 | 0; + if (!($447 < +HEAPF32[$348 + ($453 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$349 + ($366 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$349 + ($col8$0107 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$349 + ($453 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$350 + ($366 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$350 + ($col8$0107 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$350 + ($453 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$351 + ($366 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$351 + ($col8$0107 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$351 + ($453 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$352 + ($366 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$352 + ($453 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$353 + ($366 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$353 + ($col8$0107 << 2) >> 2])) break; + if (!($447 < +HEAPF32[$353 + ($453 << 2) >> 2])) break; + $499 = $365 + -.5; + if (!($447 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $499, $357))) break; + $502 = +HEAPF32[$359 >> 2]; + if (!($502 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $357))) break; + $505 = +HEAPF32[$359 >> 2]; + $506 = $365 + .5; + if (!($505 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $506, $357))) break; + $509 = +HEAPF32[$359 >> 2]; + if (!($509 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $499, $356))) break; + $512 = +HEAPF32[$359 >> 2]; + if (!($512 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $356))) break; + $515 = +HEAPF32[$359 >> 2]; + if (!($515 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $506, $356))) break; + $518 = +HEAPF32[$359 >> 2]; + if (!($518 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $499, $358))) break; + $521 = +HEAPF32[$359 >> 2]; + if (!($521 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $365, $358))) break; + $524 = +HEAPF32[$359 >> 2]; + if (!($524 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($43, $506, $358))) break; + } + HEAP32[$20 >> 2] = $44; + HEAP32[$21 >> 2] = $46; + HEAP32[$22 >> 2] = HEAP32[$359 >> 2]; + $528 = +__ZNK6vision25GaussianScaleSpacePyramid14effectiveSigmaEjf($pyramid, $44, $342); + HEAPF32[$23 >> 2] = $528; + __ZN6vision23bilinear_upsample_pointERfS0_ffi($0, $24, $363, $354, $44); + $529 = HEAP32[$3 >> 2] | 0; + if (($529 | 0) == (HEAP32[$19 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($1, $0); + break; + } else { + dest = $529; + src = $0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + 36; + break; + } + } while (0); + $col8$0107 = $col8$0107 + 1 | 0; + } while ($col8$0107 >>> 0 < $334 >>> 0); + } + } while ($row1$0112 >>> 0 < $341 >>> 0); + } + } else { + $$pre$phiZ2D = $283; + label = 139; + } + } else { + $$pre$phiZ2D = $48 >>> 1; + label = 139; + } while (0); + if ((label | 0) == 139) { + label = 0; + if (($$pre$phiZ2D | 0) == ($50 | 0)) if (($50 | 0) == (HEAP32[$39 + ($i$0123 << 5) + 4 >> 2] | 0)) { + $550 = (HEAP32[$39 + ($38 << 5) + 8 >> 2] | 0) >>> 1; + if (($550 | 0) != (HEAP32[$39 + ($i$0123$looptemp << 5) + 8 >> 2] | 0)) { + label = 143; + break; + } + if (($550 | 0) != (HEAP32[$39 + ($i$0123 << 5) + 8 >> 2] | 0)) { + label = 145; + break; + } + $589 = $50 + -1 | 0; + $590 = $550 + -1 | 0; + $591 = +($46 | 0); + if ($590 >>> 0 > 1) { + $593 = $589 >>> 0 > 1; + $row14$0104 = 1; + do { + $596 = $row14$0104 + -1 | 0; + $597 = __ZNK6vision5Image3getIfEEPKT_j($41, $596) | 0; + $598 = __ZNK6vision5Image3getIfEEPKT_j($41, $row14$0104) | 0; + $row14$0104$looptemp = $row14$0104; + $row14$0104 = $row14$0104 + 1 | 0; + $599 = __ZNK6vision5Image3getIfEEPKT_j($41, $row14$0104) | 0; + $600 = __ZNK6vision5Image3getIfEEPKT_j($43, $596) | 0; + $601 = __ZNK6vision5Image3getIfEEPKT_j($43, $row14$0104$looptemp) | 0; + $602 = __ZNK6vision5Image3getIfEEPKT_j($43, $row14$0104) | 0; + $605 = +($row14$0104$looptemp << 1 >>> 0) + .5; + $606 = $605 + -2.0; + $607 = $605 + 2.0; + $608 = +($row14$0104$looptemp >>> 0); + if ($593) { + $col21$0100 = 1; + do { + $609 = $598 + ($col21$0100 << 2) | 0; + $610 = +HEAPF32[$609 >> 2]; + do if (!($610 * $610 < $10)) { + $615 = +($col21$0100 << 1 >>> 0) + .5; + $616 = $col21$0100 + -1 | 0; + $617 = $597 + ($616 << 2) | 0; + do if ($610 > +HEAPF32[$617 >> 2]) if ($610 > +HEAPF32[$597 + ($col21$0100 << 2) >> 2]) { + $623 = $col21$0100 + 1 | 0; + if (!($610 > +HEAPF32[$597 + ($623 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$598 + ($616 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$598 + ($623 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$599 + ($616 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$599 + ($col21$0100 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$599 + ($623 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$600 + ($616 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$600 + ($col21$0100 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$600 + ($623 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$601 + ($616 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$601 + ($col21$0100 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$601 + ($623 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$602 + ($616 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$602 + ($col21$0100 << 2) >> 2])) { + label = 177; + break; + } + if (!($610 > +HEAPF32[$602 + ($623 << 2) >> 2])) { + label = 177; + break; + } + $669 = $615 + -2.0; + if (!($610 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $669, $606))) { + label = 177; + break; + } + $672 = +HEAPF32[$609 >> 2]; + if (!($672 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $606))) { + label = 177; + break; + } + $675 = +HEAPF32[$609 >> 2]; + $676 = $615 + 2.0; + if (!($675 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $676, $606))) { + label = 177; + break; + } + $679 = +HEAPF32[$609 >> 2]; + if (!($679 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $669, $605))) { + label = 177; + break; + } + $682 = +HEAPF32[$609 >> 2]; + if (!($682 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $605))) { + label = 177; + break; + } + $685 = +HEAPF32[$609 >> 2]; + if (!($685 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $676, $605))) { + label = 177; + break; + } + $688 = +HEAPF32[$609 >> 2]; + if (!($688 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $669, $607))) { + label = 177; + break; + } + $691 = +HEAPF32[$609 >> 2]; + if (!($691 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $607))) { + label = 177; + break; + } + $694 = +HEAPF32[$609 >> 2]; + if (!($694 > +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $676, $607))) label = 177; + } else label = 177; else label = 177; while (0); + if ((label | 0) == 177) { + label = 0; + $697 = +HEAPF32[$609 >> 2]; + if (!($697 < +HEAPF32[$617 >> 2])) break; + if (!($697 < +HEAPF32[$597 + ($col21$0100 << 2) >> 2])) break; + $703 = $col21$0100 + 1 | 0; + if (!($697 < +HEAPF32[$597 + ($703 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$598 + ($616 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$598 + ($703 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$599 + ($616 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$599 + ($col21$0100 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$599 + ($703 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$600 + ($616 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$600 + ($col21$0100 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$600 + ($703 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$601 + ($616 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$601 + ($col21$0100 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$601 + ($703 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$602 + ($616 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$602 + ($col21$0100 << 2) >> 2])) break; + if (!($697 < +HEAPF32[$602 + ($703 << 2) >> 2])) break; + $749 = $615 + -2.0; + if (!($697 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $749, $606))) break; + $752 = +HEAPF32[$609 >> 2]; + if (!($752 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $606))) break; + $755 = +HEAPF32[$609 >> 2]; + $756 = $615 + 2.0; + if (!($755 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $756, $606))) break; + $759 = +HEAPF32[$609 >> 2]; + if (!($759 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $749, $605))) break; + $762 = +HEAPF32[$609 >> 2]; + if (!($762 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $605))) break; + $765 = +HEAPF32[$609 >> 2]; + if (!($765 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $756, $605))) break; + $768 = +HEAPF32[$609 >> 2]; + if (!($768 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $749, $607))) break; + $771 = +HEAPF32[$609 >> 2]; + if (!($771 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $615, $607))) break; + $774 = +HEAPF32[$609 >> 2]; + if (!($774 < +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($40, $756, $607))) break; + } + HEAP32[$25 >> 2] = $44; + HEAP32[$26 >> 2] = $46; + HEAP32[$27 >> 2] = HEAP32[$609 >> 2]; + $778 = +__ZNK6vision25GaussianScaleSpacePyramid14effectiveSigmaEjf($pyramid, $44, $591); + HEAPF32[$28 >> 2] = $778; + __ZN6vision23bilinear_upsample_pointERfS0_ffi($0, $29, +($col21$0100 >>> 0), $608, $44); + $780 = HEAP32[$3 >> 2] | 0; + if (($780 | 0) == (HEAP32[$19 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($1, $0); + break; + } else { + dest = $780; + src = $0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + 36; + break; + } + } while (0); + $col21$0100 = $col21$0100 + 1 | 0; + } while ($col21$0100 >>> 0 < $589 >>> 0); + } + } while ($row14$0104 >>> 0 < $590 >>> 0); + } + } + } + if ($i$0123 >>> 0 >= (((HEAP32[$11 >> 2] | 0) - (HEAP32[$12 >> 2] | 0) >> 5) + -1 | 0) >>> 0) break L6; + } + if ((label | 0) == 8) { + $65 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22521) | 0, 21425) | 0, 34302) | 0, 192) | 0, 34309) | 0, 22573) | 0; + $70 = __ZNKSt3__18ios_base6getlocEv($65 + (HEAP32[(HEAP32[$65 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $70; + $71 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $75 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$71 >> 2] | 0) + 28 >> 2] & 63]($71, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($65, $75) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($65) | 0; + _abort(); + } else if ((label | 0) == 10) { + $84 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22596) | 0, 21425) | 0, 34302) | 0, 193) | 0, 34309) | 0, 22573) | 0; + $89 = __ZNKSt3__18ios_base6getlocEv($84 + (HEAP32[(HEAP32[$84 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $89; + $90 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $94 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$90 >> 2] | 0) + 28 >> 2] & 63]($90, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($84, $94) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($84) | 0; + _abort(); + } else if ((label | 0) == 75) { + $297 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22521) | 0, 21425) | 0, 34302) | 0, 277) | 0, 34309) | 0, 22573) | 0; + $302 = __ZNKSt3__18ios_base6getlocEv($297 + (HEAP32[(HEAP32[$297 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $302; + $303 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $307 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$303 >> 2] | 0) + 28 >> 2] & 63]($303, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($297, $307) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($297) | 0; + _abort(); + } else if ((label | 0) == 77) { + $317 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22648) | 0, 21425) | 0, 34302) | 0, 278) | 0, 34309) | 0, 22573) | 0; + $322 = __ZNKSt3__18ios_base6getlocEv($317 + (HEAP32[(HEAP32[$317 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $322; + $323 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $327 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$323 >> 2] | 0) + 28 >> 2] & 63]($323, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($317, $327) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($317) | 0; + _abort(); + } else if ((label | 0) == 143) { + $559 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22705) | 0, 21425) | 0, 34302) | 0, 362) | 0, 34309) | 0, 22573) | 0; + $564 = __ZNKSt3__18ios_base6getlocEv($559 + (HEAP32[(HEAP32[$559 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $564; + $565 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $569 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$565 >> 2] | 0) + 28 >> 2] & 63]($565, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($559, $569) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($559) | 0; + _abort(); + } else if ((label | 0) == 145) { + $578 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22762) | 0, 21425) | 0, 34302) | 0, 363) | 0, 34309) | 0, 22573) | 0; + $583 = __ZNKSt3__18ios_base6getlocEv($578 + (HEAP32[(HEAP32[$578 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $583; + $584 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $588 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$584 >> 2] | 0) + 28 >> 2] & 63]($584, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($578, $588) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($578) | 0; + _abort(); + } + } while (0); + STACKTOP = sp; + return; +} + +function _read_markers($cinfo) { + $cinfo = $cinfo | 0; + var $$$i = 0, $$0 = 0, $$lcssa = 0, $$lcssa278 = 0, $$pre$phi$i32Z2D = 0, $$pre$phi$iZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $107 = 0, $11 = 0, $117 = 0, $118 = 0, $12 = 0, $121 = 0, $129 = 0, $13 = 0, $130 = 0, $133 = 0, $14 = 0, $141 = 0, $142 = 0, $143 = 0, $15 = 0, $154 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $162 = 0, $168 = 0, $169 = 0, $17 = 0, $171 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $186 = 0, $188 = 0, $19 = 0, $194 = 0, $196 = 0, $197 = 0, $2 = 0, $20 = 0, $208 = 0, $21 = 0, $214 = 0, $215 = 0, $218 = 0, $22 = 0, $225 = 0, $226 = 0, $229 = 0, $23 = 0, $239 = 0, $24 = 0, $241 = 0, $243 = 0, $244 = 0, $25 = 0, $258 = 0, $26 = 0, $261 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $276 = 0, $279 = 0, $28 = 0, $282 = 0, $288 = 0, $289 = 0, $29 = 0, $293 = 0, $3 = 0, $302 = 0, $303 = 0, $31 = 0, $314 = 0, $317 = 0, $320 = 0, $321 = 0, $349 = 0, $36 = 0, $37 = 0, $379 = 0, $38 = 0, $389 = 0, $390 = 0, $395 = 0, $397 = 0, $398 = 0, $4 = 0, $402 = 0, $406 = 0, $408 = 0, $409 = 0, $414 = 0, $417 = 0, $418 = 0, $419 = 0, $426 = 0, $429 = 0, $432 = 0, $438 = 0, $439 = 0, $442 = 0, $443 = 0, $45 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $46 = 0, $462 = 0, $466 = 0, $467 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $477 = 0, $478 = 0, $48 = 0, $481 = 0, $5 = 0, $502 = 0, $509 = 0, $556 = 0, $559 = 0, $560 = 0, $561 = 0, $568 = 0, $569 = 0, $572 = 0, $58 = 0, $580 = 0, $581 = 0, $586 = 0, $59 = 0, $596 = 0, $597 = 0, $6 = 0, $600 = 0, $612 = 0, $613 = 0, $62 = 0, $629 = 0, $636 = 0, $640 = 0, $69 = 0, $7 = 0, $70 = 0, $78 = 0, $8 = 0, $9 = 0, $95 = 0, $99 = 0, $bits$i = 0, $bytes_in_buffer$0$i = 0, $bytes_in_buffer$0$i2 = 0, $bytes_in_buffer$0$i28 = 0, $bytes_in_buffer$0$i55 = 0, $bytes_in_buffer$0$i7 = 0, $bytes_in_buffer$1$i = 0, $bytes_in_buffer$1$i10 = 0, $bytes_in_buffer$1$i34 = 0, $bytes_in_buffer$1$i4 = 0, $bytes_in_buffer$1$i58 = 0, $bytes_in_buffer$2$i = 0, $bytes_in_buffer$2$i12$lcssa = 0, $bytes_in_buffer$2$i12249 = 0, $bytes_in_buffer$2$i37$lcssa = 0, $bytes_in_buffer$2$i37229 = 0, $bytes_in_buffer$2$i60 = 0, $bytes_in_buffer$3$i = 0, $bytes_in_buffer$3$i$lcssa = 0, $bytes_in_buffer$3$i14 = 0, $bytes_in_buffer$3$i210 = 0, $bytes_in_buffer$3$i213 = 0, $bytes_in_buffer$3$i39 = 0, $bytes_in_buffer$3$i62 = 0, $bytes_in_buffer$4$i = 0, $bytes_in_buffer$4$i16 = 0, $bytes_in_buffer$4$i16$lcssa = 0, $bytes_in_buffer$4$i16240 = 0, $bytes_in_buffer$4$i43 = 0, $bytes_in_buffer$4$i43$lcssa = 0, $bytes_in_buffer$4$i43224 = 0, $bytes_in_buffer$5$i = 0, $bytes_in_buffer$5$i19 = 0, $bytes_in_buffer$5$i46 = 0, $bytes_in_buffer$6$i = 0, $bytes_in_buffer$6$i22$lcssa = 0, $bytes_in_buffer$6$i22244 = 0, $bytes_in_buffer$6$i48 = 0, $bytes_in_buffer$7$i = 0, $bytes_in_buffer$7$i25 = 0, $bytes_in_buffer$7$i50 = 0, $bytes_in_buffer$8$i = 0, $bytes_in_buffer$8$in$i = 0, $ci$0$i208 = 0, $compptr$0$i$lcssa = 0, $compptr$0$i182 = 0, $compptr$0$i209 = 0, $count$0$i238 = 0, $htblptr$0$i = 0, $huffval$i = 0, $i$0$i15239 = 0, $i$0$i257 = 0, $i$0$i40223 = 0, $i$0$i5212 = 0, $i$1$i242 = 0, $i$1$i51226 = 0, $index$0$i = 0, $length$0$i$lcssa = 0, $length$0$i250 = 0, $length$0$i35$lcssa = 0, $length$0$i35227 = 0, $next_input_byte$0$i = 0, $next_input_byte$0$i1 = 0, $next_input_byte$0$i29 = 0, $next_input_byte$0$i56 = 0, $next_input_byte$0$i8 = 0, $next_input_byte$1$i = 0, $next_input_byte$1$i3 = 0, $next_input_byte$1$i33 = 0, $next_input_byte$1$i57 = 0, $next_input_byte$1$i9 = 0, $next_input_byte$2$i = 0, $next_input_byte$2$i11$lcssa = 0, $next_input_byte$2$i11248 = 0, $next_input_byte$2$i36$lcssa = 0, $next_input_byte$2$i36228 = 0, $next_input_byte$2$i59 = 0, $next_input_byte$3$i = 0, $next_input_byte$3$i$lcssa = 0, $next_input_byte$3$i13 = 0, $next_input_byte$3$i211 = 0, $next_input_byte$3$i214 = 0, $next_input_byte$3$i38 = 0, $next_input_byte$3$i61 = 0, $next_input_byte$4$i = 0, $next_input_byte$4$i17 = 0, $next_input_byte$4$i17$lcssa = 0, $next_input_byte$4$i17241 = 0, $next_input_byte$4$i44 = 0, $next_input_byte$4$i44$lcssa = 0, $next_input_byte$4$i44225 = 0, $next_input_byte$5$i = 0, $next_input_byte$5$i18 = 0, $next_input_byte$5$i45 = 0, $next_input_byte$6$i = 0, $next_input_byte$6$i21$lcssa = 0, $next_input_byte$6$i21243 = 0, $next_input_byte$6$i47 = 0, $next_input_byte$6$pn$i = 0, $next_input_byte$7$i = 0, $next_input_byte$7$i24 = 0, $next_input_byte$7$i49 = 0, $next_input_byte$8$i = 0, $tmp$0$i = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $bits$i = sp + 256 | 0; + $huffval$i = sp; + $0 = $cinfo + 416 | 0; + $1 = $cinfo + 440 | 0; + $2 = $cinfo + 24 | 0; + $3 = $cinfo + 276 | 0; + $4 = $cinfo + 40 | 0; + $5 = $cinfo + 300 | 0; + $6 = $cinfo + 280 | 0; + $7 = $cinfo + 284 | 0; + $8 = $cinfo + 285 | 0; + $9 = $cinfo + 286 | 0; + $10 = $cinfo + 288 | 0; + $11 = $cinfo + 290 | 0; + $12 = $cinfo + 292 | 0; + $13 = $cinfo + 296 | 0; + $14 = $bits$i + 1 | 0; + $15 = $bits$i + 2 | 0; + $16 = $bits$i + 3 | 0; + $17 = $bits$i + 4 | 0; + $18 = $bits$i + 5 | 0; + $19 = $bits$i + 6 | 0; + $20 = $bits$i + 7 | 0; + $21 = $bits$i + 8 | 0; + $22 = $bits$i + 9 | 0; + $23 = $bits$i + 10 | 0; + $24 = $bits$i + 11 | 0; + $25 = $bits$i + 12 | 0; + $26 = $bits$i + 13 | 0; + $27 = $bits$i + 14 | 0; + $28 = $bits$i + 15 | 0; + $29 = $bits$i + 16 | 0; + $31 = HEAP32[$0 >> 2] | 0; + L1 : while (1) { + do if (!$31) { + if (HEAP32[(HEAP32[$1 >> 2] | 0) + 12 >> 2] | 0) { + if (!(_next_marker($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $69 = HEAP32[$0 >> 2] | 0; + break; + } + $36 = HEAP32[$2 >> 2] | 0; + $37 = $36 + 4 | 0; + $38 = HEAP32[$37 >> 2] | 0; + if (!$38) { + if (!(FUNCTION_TABLE_ii[HEAP32[$36 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$0$i = HEAP32[$37 >> 2] | 0; + } else $bytes_in_buffer$0$i = $38; + $next_input_byte$0$i = HEAP32[$36 >> 2] | 0; + $45 = $bytes_in_buffer$0$i + -1 | 0; + $46 = $next_input_byte$0$i + 1 | 0; + $47 = HEAP8[$next_input_byte$0$i >> 0] | 0; + $48 = $47 & 255; + if (!$45) { + if (!(FUNCTION_TABLE_ii[HEAP32[$36 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$1$i = HEAP32[$37 >> 2] | 0; + $next_input_byte$1$i = HEAP32[$36 >> 2] | 0; + } else { + $bytes_in_buffer$1$i = $45; + $next_input_byte$1$i = $46; + } + $58 = HEAP8[$next_input_byte$1$i >> 0] | 0; + $59 = $58 & 255; + if ($47 << 24 >> 24 != -1 | $58 << 24 >> 24 != -40) { + $62 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$62 + 20 >> 2] = 53; + HEAP32[$62 + 24 >> 2] = $48; + HEAP32[$62 + 28 >> 2] = $59; + FUNCTION_TABLE_vi[HEAP32[$62 >> 2] & 255]($cinfo); + } + HEAP32[$0 >> 2] = $59; + HEAP32[$36 >> 2] = $next_input_byte$1$i + 1; + HEAP32[$37 >> 2] = $bytes_in_buffer$1$i + -1; + $69 = $59; + } else $69 = $31; while (0); + do switch ($69 | 0) { + case 218: + { + label = 25; + break L1; + break; + } + case 217: + { + label = 60; + break L1; + break; + } + case 216: + { + $70 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$70 + 20 >> 2] = 102; + FUNCTION_TABLE_vii[HEAP32[$70 + 4 >> 2] & 63]($cinfo, 1); + if (!(HEAP32[(HEAP32[$1 >> 2] | 0) + 12 >> 2] | 0)) $i$0$i257 = 0; else { + $78 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$78 + 20 >> 2] = 61; + FUNCTION_TABLE_vi[HEAP32[$78 >> 2] & 255]($cinfo); + $i$0$i257 = 0; + } + do { + HEAP8[$cinfo + 228 + $i$0$i257 >> 0] = 0; + HEAP8[$cinfo + 244 + $i$0$i257 >> 0] = 1; + HEAP8[$cinfo + 260 + $i$0$i257 >> 0] = 5; + $i$0$i257 = $i$0$i257 + 1 | 0; + } while (($i$0$i257 | 0) != 16); + HEAP32[$3 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$5 >> 2] = 0; + HEAP32[$6 >> 2] = 0; + HEAP8[$7 >> 0] = 1; + HEAP8[$8 >> 0] = 1; + HEAP8[$9 >> 0] = 0; + HEAP16[$10 >> 1] = 1; + HEAP16[$11 >> 1] = 1; + HEAP32[$12 >> 2] = 0; + HEAP8[$13 >> 0] = 0; + HEAP32[(HEAP32[$1 >> 2] | 0) + 12 >> 2] = 1; + break; + } + case 193: + case 192: + { + if (!(_get_sof($cinfo, 0, 0) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 194: + { + if (!(_get_sof($cinfo, 1, 0) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 201: + { + if (!(_get_sof($cinfo, 0, 1) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 202: + { + if (!(_get_sof($cinfo, 1, 1) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 207: + case 206: + case 205: + case 203: + case 200: + case 199: + case 198: + case 197: + case 195: + { + $95 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$95 + 20 >> 2] = 60; + HEAP32[$95 + 24 >> 2] = $69; + FUNCTION_TABLE_vi[HEAP32[$95 >> 2] & 255]($cinfo); + break; + } + case 204: + { + if (!(_skip_variable($cinfo) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 196: + { + $267 = HEAP32[$2 >> 2] | 0; + $268 = $267 + 4 | 0; + $269 = HEAP32[$268 >> 2] | 0; + if (!$269) { + if (!(FUNCTION_TABLE_ii[HEAP32[$267 + 12 >> 2] & 127]($cinfo) | 0)) { + label = 92; + break L1; + } + $bytes_in_buffer$0$i7 = HEAP32[$268 >> 2] | 0; + } else $bytes_in_buffer$0$i7 = $269; + $next_input_byte$0$i8 = HEAP32[$267 >> 2] | 0; + $276 = $bytes_in_buffer$0$i7 + -1 | 0; + $279 = (HEAPU8[$next_input_byte$0$i8 >> 0] | 0) << 8; + if (!$276) { + $282 = $267 + 12 | 0; + if (!(FUNCTION_TABLE_ii[HEAP32[$282 >> 2] & 127]($cinfo) | 0)) { + label = 92; + break L1; + } + $$pre$phi$iZ2D = $282; + $bytes_in_buffer$1$i10 = HEAP32[$268 >> 2] | 0; + $next_input_byte$1$i9 = HEAP32[$267 >> 2] | 0; + } else { + $$pre$phi$iZ2D = $267 + 12 | 0; + $bytes_in_buffer$1$i10 = $276; + $next_input_byte$1$i9 = $next_input_byte$0$i8 + 1 | 0; + } + $288 = $bytes_in_buffer$1$i10 + -1 | 0; + $289 = $next_input_byte$1$i9 + 1 | 0; + $293 = (HEAPU8[$next_input_byte$1$i9 >> 0] | 0 | $279) + -2 | 0; + if (($293 | 0) > 16) { + $bytes_in_buffer$2$i12249 = $288; + $length$0$i250 = $293; + $next_input_byte$2$i11248 = $289; + while (1) { + if (!$bytes_in_buffer$2$i12249) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$iZ2D >> 2] & 127]($cinfo) | 0)) { + label = 92; + break L1; + } + $bytes_in_buffer$3$i14 = HEAP32[$268 >> 2] | 0; + $next_input_byte$3$i13 = HEAP32[$267 >> 2] | 0; + } else { + $bytes_in_buffer$3$i14 = $bytes_in_buffer$2$i12249; + $next_input_byte$3$i13 = $next_input_byte$2$i11248; + } + $302 = HEAPU8[$next_input_byte$3$i13 >> 0] | 0; + $303 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$303 + 20 >> 2] = 80; + HEAP32[$303 + 24 >> 2] = $302; + FUNCTION_TABLE_vii[HEAP32[$303 + 4 >> 2] & 63]($cinfo, 1); + HEAP8[$bits$i >> 0] = 0; + $bytes_in_buffer$4$i16240 = $bytes_in_buffer$3$i14 + -1 | 0; + $count$0$i238 = 0; + $i$0$i15239 = 1; + $next_input_byte$4$i17241 = $next_input_byte$3$i13 + 1 | 0; + while (1) { + if (!$bytes_in_buffer$4$i16240) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$iZ2D >> 2] & 127]($cinfo) | 0)) { + label = 92; + break L1; + } + $bytes_in_buffer$5$i19 = HEAP32[$268 >> 2] | 0; + $next_input_byte$5$i18 = HEAP32[$267 >> 2] | 0; + } else { + $bytes_in_buffer$5$i19 = $bytes_in_buffer$4$i16240; + $next_input_byte$5$i18 = $next_input_byte$4$i17241; + } + $314 = HEAP8[$next_input_byte$5$i18 >> 0] | 0; + HEAP8[$bits$i + $i$0$i15239 >> 0] = $314; + $317 = ($314 & 255) + $count$0$i238 | 0; + $i$0$i15239 = $i$0$i15239 + 1 | 0; + $bytes_in_buffer$4$i16 = $bytes_in_buffer$5$i19 + -1 | 0; + $next_input_byte$4$i17 = $next_input_byte$5$i18 + 1 | 0; + if (($i$0$i15239 | 0) >= 17) { + $$lcssa278 = $317; + $bytes_in_buffer$4$i16$lcssa = $bytes_in_buffer$4$i16; + $next_input_byte$4$i17$lcssa = $next_input_byte$4$i17; + break; + } else { + $bytes_in_buffer$4$i16240 = $bytes_in_buffer$4$i16; + $count$0$i238 = $317; + $next_input_byte$4$i17241 = $next_input_byte$4$i17; + } + } + $320 = $length$0$i250 + -17 | 0; + $321 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$321 + 24 >> 2] = HEAPU8[$14 >> 0]; + HEAP32[$321 + 28 >> 2] = HEAPU8[$15 >> 0]; + HEAP32[$321 + 32 >> 2] = HEAPU8[$16 >> 0]; + HEAP32[$321 + 36 >> 2] = HEAPU8[$17 >> 0]; + HEAP32[$321 + 40 >> 2] = HEAPU8[$18 >> 0]; + HEAP32[$321 + 44 >> 2] = HEAPU8[$19 >> 0]; + HEAP32[$321 + 48 >> 2] = HEAPU8[$20 >> 0]; + HEAP32[$321 + 52 >> 2] = HEAPU8[$21 >> 0]; + HEAP32[$321 + 20 >> 2] = 86; + FUNCTION_TABLE_vii[HEAP32[$321 + 4 >> 2] & 63]($cinfo, 2); + $349 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$349 + 24 >> 2] = HEAPU8[$22 >> 0]; + HEAP32[$349 + 28 >> 2] = HEAPU8[$23 >> 0]; + HEAP32[$349 + 32 >> 2] = HEAPU8[$24 >> 0]; + HEAP32[$349 + 36 >> 2] = HEAPU8[$25 >> 0]; + HEAP32[$349 + 40 >> 2] = HEAPU8[$26 >> 0]; + HEAP32[$349 + 44 >> 2] = HEAPU8[$27 >> 0]; + HEAP32[$349 + 48 >> 2] = HEAPU8[$28 >> 0]; + HEAP32[$349 + 52 >> 2] = HEAPU8[$29 >> 0]; + HEAP32[$349 + 20 >> 2] = 86; + FUNCTION_TABLE_vii[HEAP32[$349 + 4 >> 2] & 63]($cinfo, 2); + if (($$lcssa278 | 0) > 256 | ($320 | 0) < ($$lcssa278 | 0)) { + $379 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$379 + 20 >> 2] = 8; + FUNCTION_TABLE_vi[HEAP32[$379 >> 2] & 255]($cinfo); + } + if (($$lcssa278 | 0) > 0) { + $bytes_in_buffer$6$i22244 = $bytes_in_buffer$4$i16$lcssa; + $i$1$i242 = 0; + $next_input_byte$6$i21243 = $next_input_byte$4$i17$lcssa; + while (1) { + if (!$bytes_in_buffer$6$i22244) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$iZ2D >> 2] & 127]($cinfo) | 0)) { + label = 92; + break L1; + } + $bytes_in_buffer$7$i25 = HEAP32[$268 >> 2] | 0; + $next_input_byte$7$i24 = HEAP32[$267 >> 2] | 0; + } else { + $bytes_in_buffer$7$i25 = $bytes_in_buffer$6$i22244; + $next_input_byte$7$i24 = $next_input_byte$6$i21243; + } + $389 = $bytes_in_buffer$7$i25 + -1 | 0; + $390 = $next_input_byte$7$i24 + 1 | 0; + HEAP8[$huffval$i + $i$1$i242 >> 0] = HEAP8[$next_input_byte$7$i24 >> 0] | 0; + $i$1$i242 = $i$1$i242 + 1 | 0; + if (($i$1$i242 | 0) >= ($$lcssa278 | 0)) { + $bytes_in_buffer$6$i22$lcssa = $389; + $next_input_byte$6$i21$lcssa = $390; + break; + } else { + $bytes_in_buffer$6$i22244 = $389; + $next_input_byte$6$i21243 = $390; + } + } + } else { + $bytes_in_buffer$6$i22$lcssa = $bytes_in_buffer$4$i16$lcssa; + $next_input_byte$6$i21$lcssa = $next_input_byte$4$i17$lcssa; + } + $395 = $320 - $$lcssa278 | 0; + $397 = ($302 & 16 | 0) == 0; + $398 = $302 + -16 | 0; + $index$0$i = $397 ? $302 : $398; + $htblptr$0$i = $397 ? $cinfo + 180 + ($302 << 2) | 0 : $cinfo + 196 + ($398 << 2) | 0; + if ($index$0$i >>> 0 > 3) { + $402 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$402 + 20 >> 2] = 30; + HEAP32[$402 + 24 >> 2] = $index$0$i; + FUNCTION_TABLE_vi[HEAP32[$402 >> 2] & 255]($cinfo); + } + $406 = HEAP32[$htblptr$0$i >> 2] | 0; + if (!$406) { + $408 = _jpeg_alloc_huff_table($cinfo) | 0; + HEAP32[$htblptr$0$i >> 2] = $408; + $409 = $408; + } else $409 = $406; + dest = $409; + src = $bits$i; + stop = dest + 17 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + _memcpy((HEAP32[$htblptr$0$i >> 2] | 0) + 17 | 0, $huffval$i | 0, 256) | 0; + if (($395 | 0) > 16) { + $bytes_in_buffer$2$i12249 = $bytes_in_buffer$6$i22$lcssa; + $length$0$i250 = $395; + $next_input_byte$2$i11248 = $next_input_byte$6$i21$lcssa; + } else { + $bytes_in_buffer$2$i12$lcssa = $bytes_in_buffer$6$i22$lcssa; + $length$0$i$lcssa = $395; + $next_input_byte$2$i11$lcssa = $next_input_byte$6$i21$lcssa; + break; + } + } + } else { + $bytes_in_buffer$2$i12$lcssa = $288; + $length$0$i$lcssa = $293; + $next_input_byte$2$i11$lcssa = $289; + } + if ($length$0$i$lcssa) { + $414 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$414 + 20 >> 2] = 11; + FUNCTION_TABLE_vi[HEAP32[$414 >> 2] & 255]($cinfo); + } + HEAP32[$267 >> 2] = $next_input_byte$2$i11$lcssa; + HEAP32[$268 >> 2] = $bytes_in_buffer$2$i12$lcssa; + break; + } + case 219: + { + $417 = HEAP32[$2 >> 2] | 0; + $418 = $417 + 4 | 0; + $419 = HEAP32[$418 >> 2] | 0; + if (!$419) { + if (!(FUNCTION_TABLE_ii[HEAP32[$417 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$0$i28 = HEAP32[$418 >> 2] | 0; + } else $bytes_in_buffer$0$i28 = $419; + $next_input_byte$0$i29 = HEAP32[$417 >> 2] | 0; + $426 = $bytes_in_buffer$0$i28 + -1 | 0; + $429 = (HEAPU8[$next_input_byte$0$i29 >> 0] | 0) << 8; + if (!$426) { + $432 = $417 + 12 | 0; + if (!(FUNCTION_TABLE_ii[HEAP32[$432 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $$pre$phi$i32Z2D = $432; + $bytes_in_buffer$1$i34 = HEAP32[$418 >> 2] | 0; + $next_input_byte$1$i33 = HEAP32[$417 >> 2] | 0; + } else { + $$pre$phi$i32Z2D = $417 + 12 | 0; + $bytes_in_buffer$1$i34 = $426; + $next_input_byte$1$i33 = $next_input_byte$0$i29 + 1 | 0; + } + $438 = $bytes_in_buffer$1$i34 + -1 | 0; + $439 = $next_input_byte$1$i33 + 1 | 0; + $442 = HEAPU8[$next_input_byte$1$i33 >> 0] | 0 | $429; + $443 = $442 + -2 | 0; + if ($442 >>> 0 > 2) { + $bytes_in_buffer$2$i37229 = $438; + $length$0$i35227 = $443; + $next_input_byte$2$i36228 = $439; + while (1) { + if (!$bytes_in_buffer$2$i37229) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$i32Z2D >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$3$i39 = HEAP32[$418 >> 2] | 0; + $next_input_byte$3$i38 = HEAP32[$417 >> 2] | 0; + } else { + $bytes_in_buffer$3$i39 = $bytes_in_buffer$2$i37229; + $next_input_byte$3$i38 = $next_input_byte$2$i36228; + } + $452 = HEAPU8[$next_input_byte$3$i38 >> 0] | 0; + $453 = $452 >>> 4; + $454 = $452 & 15; + $455 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$455 + 20 >> 2] = 81; + HEAP32[$455 + 24 >> 2] = $454; + HEAP32[$455 + 28 >> 2] = $453; + FUNCTION_TABLE_vii[HEAP32[$455 + 4 >> 2] & 63]($cinfo, 1); + if ($454 >>> 0 > 3) { + $462 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$462 + 20 >> 2] = 31; + HEAP32[$462 + 24 >> 2] = $454; + FUNCTION_TABLE_vi[HEAP32[$462 >> 2] & 255]($cinfo); + } + $466 = $cinfo + 164 + ($454 << 2) | 0; + $467 = HEAP32[$466 >> 2] | 0; + if (!$467) { + $469 = _jpeg_alloc_quant_table($cinfo) | 0; + HEAP32[$466 >> 2] = $469; + $502 = $469; + } else $502 = $467; + $470 = ($453 | 0) == 0; + $bytes_in_buffer$4$i43224 = $bytes_in_buffer$3$i39 + -1 | 0; + $i$0$i40223 = 0; + $next_input_byte$4$i44225 = $next_input_byte$3$i38 + 1 | 0; + while (1) { + $471 = ($bytes_in_buffer$4$i43224 | 0) == 0; + if ($470) { + if ($471) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$i32Z2D >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$7$i50 = HEAP32[$418 >> 2] | 0; + $next_input_byte$7$i49 = HEAP32[$417 >> 2] | 0; + } else { + $bytes_in_buffer$7$i50 = $bytes_in_buffer$4$i43224; + $next_input_byte$7$i49 = $next_input_byte$4$i44225; + } + $bytes_in_buffer$8$in$i = $bytes_in_buffer$7$i50; + $next_input_byte$6$pn$i = $next_input_byte$7$i49; + $tmp$0$i = HEAPU8[$next_input_byte$7$i49 >> 0] | 0; + } else { + if ($471) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$i32Z2D >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$5$i46 = HEAP32[$418 >> 2] | 0; + $next_input_byte$5$i45 = HEAP32[$417 >> 2] | 0; + } else { + $bytes_in_buffer$5$i46 = $bytes_in_buffer$4$i43224; + $next_input_byte$5$i45 = $next_input_byte$4$i44225; + } + $477 = $bytes_in_buffer$5$i46 + -1 | 0; + $478 = $next_input_byte$5$i45 + 1 | 0; + $481 = (HEAPU8[$next_input_byte$5$i45 >> 0] | 0) << 8; + if (!$477) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phi$i32Z2D >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$6$i48 = HEAP32[$418 >> 2] | 0; + $next_input_byte$6$i47 = HEAP32[$417 >> 2] | 0; + } else { + $bytes_in_buffer$6$i48 = $477; + $next_input_byte$6$i47 = $478; + } + $bytes_in_buffer$8$in$i = $bytes_in_buffer$6$i48; + $next_input_byte$6$pn$i = $next_input_byte$6$i47; + $tmp$0$i = HEAPU8[$next_input_byte$6$i47 >> 0] | 0 | $481; + } + HEAP16[$502 + (HEAP32[5344 + ($i$0$i40223 << 2) >> 2] << 1) >> 1] = $tmp$0$i; + $i$0$i40223 = $i$0$i40223 + 1 | 0; + $bytes_in_buffer$4$i43 = $bytes_in_buffer$8$in$i + -1 | 0; + $next_input_byte$4$i44 = $next_input_byte$6$pn$i + 1 | 0; + if (($i$0$i40223 | 0) >= 64) { + $bytes_in_buffer$4$i43$lcssa = $bytes_in_buffer$4$i43; + $next_input_byte$4$i44$lcssa = $next_input_byte$4$i44; + break; + } else { + $bytes_in_buffer$4$i43224 = $bytes_in_buffer$4$i43; + $next_input_byte$4$i44225 = $next_input_byte$4$i44; + } + } + if ((HEAP32[(HEAP32[$cinfo >> 2] | 0) + 104 >> 2] | 0) > 1) { + $i$1$i51226 = 0; + do { + $509 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$509 + 24 >> 2] = HEAPU16[$502 + ($i$1$i51226 << 1) >> 1]; + HEAP32[$509 + 28 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 1) << 1) >> 1]; + HEAP32[$509 + 32 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 2) << 1) >> 1]; + HEAP32[$509 + 36 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 3) << 1) >> 1]; + HEAP32[$509 + 40 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 4) << 1) >> 1]; + HEAP32[$509 + 44 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 5) << 1) >> 1]; + HEAP32[$509 + 48 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 6) << 1) >> 1]; + HEAP32[$509 + 52 >> 2] = HEAPU16[$502 + (($i$1$i51226 | 7) << 1) >> 1]; + HEAP32[$509 + 20 >> 2] = 93; + FUNCTION_TABLE_vii[HEAP32[$509 + 4 >> 2] & 63]($cinfo, 2); + $i$1$i51226 = $i$1$i51226 + 8 | 0; + } while (($i$1$i51226 | 0) < 64); + } + $$$i = ($470 ? -65 : -129) + $length$0$i35227 | 0; + if (($$$i | 0) > 0) { + $bytes_in_buffer$2$i37229 = $bytes_in_buffer$4$i43$lcssa; + $length$0$i35227 = $$$i; + $next_input_byte$2$i36228 = $next_input_byte$4$i44$lcssa; + } else { + $bytes_in_buffer$2$i37$lcssa = $bytes_in_buffer$4$i43$lcssa; + $length$0$i35$lcssa = $$$i; + $next_input_byte$2$i36$lcssa = $next_input_byte$4$i44$lcssa; + break; + } + } + } else { + $bytes_in_buffer$2$i37$lcssa = $438; + $length$0$i35$lcssa = $443; + $next_input_byte$2$i36$lcssa = $439; + } + if ($length$0$i35$lcssa) { + $556 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$556 + 20 >> 2] = 11; + FUNCTION_TABLE_vi[HEAP32[$556 >> 2] & 255]($cinfo); + } + HEAP32[$417 >> 2] = $next_input_byte$2$i36$lcssa; + HEAP32[$418 >> 2] = $bytes_in_buffer$2$i37$lcssa; + break; + } + case 221: + { + $559 = HEAP32[$2 >> 2] | 0; + $560 = $559 + 4 | 0; + $561 = HEAP32[$560 >> 2] | 0; + if (!$561) { + if (!(FUNCTION_TABLE_ii[HEAP32[$559 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$0$i55 = HEAP32[$560 >> 2] | 0; + } else $bytes_in_buffer$0$i55 = $561; + $next_input_byte$0$i56 = HEAP32[$559 >> 2] | 0; + $568 = $bytes_in_buffer$0$i55 + -1 | 0; + $569 = $next_input_byte$0$i56 + 1 | 0; + $572 = (HEAPU8[$next_input_byte$0$i56 >> 0] | 0) << 8; + if (!$568) { + if (!(FUNCTION_TABLE_ii[HEAP32[$559 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$1$i58 = HEAP32[$560 >> 2] | 0; + $next_input_byte$1$i57 = HEAP32[$559 >> 2] | 0; + } else { + $bytes_in_buffer$1$i58 = $568; + $next_input_byte$1$i57 = $569; + } + $580 = $bytes_in_buffer$1$i58 + -1 | 0; + $581 = $next_input_byte$1$i57 + 1 | 0; + if ((HEAPU8[$next_input_byte$1$i57 >> 0] | 0 | $572 | 0) != 4) { + $586 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$586 + 20 >> 2] = 11; + FUNCTION_TABLE_vi[HEAP32[$586 >> 2] & 255]($cinfo); + } + if (!$580) { + if (!(FUNCTION_TABLE_ii[HEAP32[$559 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$2$i60 = HEAP32[$560 >> 2] | 0; + $next_input_byte$2$i59 = HEAP32[$559 >> 2] | 0; + } else { + $bytes_in_buffer$2$i60 = $580; + $next_input_byte$2$i59 = $581; + } + $596 = $bytes_in_buffer$2$i60 + -1 | 0; + $597 = $next_input_byte$2$i59 + 1 | 0; + $600 = (HEAPU8[$next_input_byte$2$i59 >> 0] | 0) << 8; + if (!$596) { + if (!(FUNCTION_TABLE_ii[HEAP32[$559 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$3$i62 = HEAP32[$560 >> 2] | 0; + $next_input_byte$3$i61 = HEAP32[$559 >> 2] | 0; + } else { + $bytes_in_buffer$3$i62 = $596; + $next_input_byte$3$i61 = $597; + } + $612 = HEAPU8[$next_input_byte$3$i61 >> 0] | 0 | $600; + $613 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$613 + 20 >> 2] = 82; + HEAP32[$613 + 24 >> 2] = $612; + FUNCTION_TABLE_vii[HEAP32[$613 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$3 >> 2] = $612; + HEAP32[$559 >> 2] = $next_input_byte$3$i61 + 1; + HEAP32[$560 >> 2] = $bytes_in_buffer$3$i62 + -1; + break; + } + case 239: + case 238: + case 237: + case 236: + case 235: + case 234: + case 233: + case 232: + case 231: + case 230: + case 229: + case 228: + case 227: + case 226: + case 225: + case 224: + { + if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 32 + ($69 + -224 << 2) >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 254: + { + if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 28 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + break; + } + case 1: + case 215: + case 214: + case 213: + case 212: + case 211: + case 210: + case 209: + case 208: + { + $629 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$629 + 20 >> 2] = 92; + HEAP32[$629 + 24 >> 2] = $69; + FUNCTION_TABLE_vii[HEAP32[$629 + 4 >> 2] & 63]($cinfo, 1); + break; + } + case 220: + { + if (!(_skip_variable($cinfo) | 0)) { + $$0 = 0; + break L1; + } + break; + } + default: + { + $636 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$636 + 20 >> 2] = 68; + HEAP32[$636 + 24 >> 2] = $69; + FUNCTION_TABLE_vi[HEAP32[$636 >> 2] & 255]($cinfo); + } + } while (0); + HEAP32[$0 >> 2] = 0; + $31 = 0; + } + L155 : do if ((label | 0) == 25) { + $99 = HEAP32[$2 >> 2] | 0; + $100 = HEAP32[$99 >> 2] | 0; + $101 = $99 + 4 | 0; + $102 = HEAP32[$101 >> 2] | 0; + if (!(HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] | 0)) { + $107 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$107 + 20 >> 2] = 62; + FUNCTION_TABLE_vi[HEAP32[$107 >> 2] & 255]($cinfo); + } + if (!$102) { + if (!(FUNCTION_TABLE_ii[HEAP32[$99 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$0$i2 = HEAP32[$101 >> 2] | 0; + $next_input_byte$0$i1 = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$0$i2 = $102; + $next_input_byte$0$i1 = $100; + } + $117 = $bytes_in_buffer$0$i2 + -1 | 0; + $118 = $next_input_byte$0$i1 + 1 | 0; + $121 = (HEAPU8[$next_input_byte$0$i1 >> 0] | 0) << 8; + if (!$117) { + if (!(FUNCTION_TABLE_ii[HEAP32[$99 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$1$i4 = HEAP32[$101 >> 2] | 0; + $next_input_byte$1$i3 = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$1$i4 = $117; + $next_input_byte$1$i3 = $118; + } + $129 = $bytes_in_buffer$1$i4 + -1 | 0; + $130 = $next_input_byte$1$i3 + 1 | 0; + $133 = HEAPU8[$next_input_byte$1$i3 >> 0] | 0 | $121; + if (!$129) { + if (!(FUNCTION_TABLE_ii[HEAP32[$99 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$2$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$2$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$2$i = $129; + $next_input_byte$2$i = $130; + } + $141 = HEAP8[$next_input_byte$2$i >> 0] | 0; + $142 = $141 & 255; + $143 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$143 + 20 >> 2] = 103; + HEAP32[$143 + 24 >> 2] = $142; + FUNCTION_TABLE_vii[HEAP32[$143 + 4 >> 2] & 63]($cinfo, 1); + if (($141 + -1 & 255) > 3 | ($133 | 0) != (($142 << 1) + 6 | 0)) { + $154 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$154 + 20 >> 2] = 11; + FUNCTION_TABLE_vi[HEAP32[$154 >> 2] & 255]($cinfo); + } + HEAP32[$cinfo + 328 >> 2] = $142; + $158 = $99 + 12 | 0; + $159 = $cinfo + 216 | 0; + $160 = $cinfo + 36 | 0; + $bytes_in_buffer$3$i210 = $bytes_in_buffer$2$i + -1 | 0; + $next_input_byte$3$i211 = $next_input_byte$2$i + 1 | 0; + $162 = ($bytes_in_buffer$3$i210 | 0) == 0; + if (!($141 << 24 >> 24)) { + $$lcssa = $162; + $bytes_in_buffer$3$i$lcssa = $bytes_in_buffer$3$i210; + $next_input_byte$3$i$lcssa = $next_input_byte$3$i211; + } else { + $640 = $162; + $bytes_in_buffer$3$i213 = $bytes_in_buffer$3$i210; + $i$0$i5212 = 0; + $next_input_byte$3$i214 = $next_input_byte$3$i211; + while (1) { + if ($640) { + if (!(FUNCTION_TABLE_ii[HEAP32[$158 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L155; + } + $bytes_in_buffer$4$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$4$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$4$i = $bytes_in_buffer$3$i213; + $next_input_byte$4$i = $next_input_byte$3$i214; + } + $168 = $bytes_in_buffer$4$i + -1 | 0; + $169 = $next_input_byte$4$i + 1 | 0; + $171 = HEAPU8[$next_input_byte$4$i >> 0] | 0; + if (!$168) { + if (!(FUNCTION_TABLE_ii[HEAP32[$158 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L155; + } + $bytes_in_buffer$5$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$5$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$5$i = $168; + $next_input_byte$5$i = $169; + } + $179 = HEAPU8[$next_input_byte$5$i >> 0] | 0; + $180 = HEAP32[$159 >> 2] | 0; + $181 = HEAP32[$160 >> 2] | 0; + L186 : do if (($181 | 0) > 0) { + $ci$0$i208 = 0; + $compptr$0$i209 = $180; + while (1) { + if (($171 | 0) == (HEAP32[$compptr$0$i209 >> 2] | 0)) { + $compptr$0$i182 = $compptr$0$i209; + break L186; + } + $ci$0$i208 = $ci$0$i208 + 1 | 0; + $186 = $compptr$0$i209 + 84 | 0; + if (($ci$0$i208 | 0) >= ($181 | 0)) { + $compptr$0$i$lcssa = $186; + label = 48; + break; + } else $compptr$0$i209 = $186; + } + } else { + $compptr$0$i$lcssa = $180; + label = 48; + } while (0); + if ((label | 0) == 48) { + label = 0; + $188 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$188 + 20 >> 2] = 5; + HEAP32[$188 + 24 >> 2] = $171; + FUNCTION_TABLE_vi[HEAP32[$188 >> 2] & 255]($cinfo); + $compptr$0$i182 = $compptr$0$i$lcssa; + } + HEAP32[$cinfo + 332 + ($i$0$i5212 << 2) >> 2] = $compptr$0$i182; + $194 = $compptr$0$i182 + 20 | 0; + HEAP32[$194 >> 2] = $179 >>> 4; + $196 = $compptr$0$i182 + 24 | 0; + HEAP32[$196 >> 2] = $179 & 15; + $197 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$197 + 24 >> 2] = $171; + HEAP32[$197 + 28 >> 2] = HEAP32[$194 >> 2]; + HEAP32[$197 + 32 >> 2] = HEAP32[$196 >> 2]; + HEAP32[$197 + 20 >> 2] = 104; + FUNCTION_TABLE_vii[HEAP32[$197 + 4 >> 2] & 63]($cinfo, 1); + $i$0$i5212 = $i$0$i5212 + 1 | 0; + $bytes_in_buffer$3$i = $bytes_in_buffer$5$i + -1 | 0; + $next_input_byte$3$i = $next_input_byte$5$i + 1 | 0; + $208 = ($bytes_in_buffer$3$i | 0) == 0; + if (($i$0$i5212 | 0) >= ($142 | 0)) { + $$lcssa = $208; + $bytes_in_buffer$3$i$lcssa = $bytes_in_buffer$3$i; + $next_input_byte$3$i$lcssa = $next_input_byte$3$i; + break; + } else { + $640 = $208; + $bytes_in_buffer$3$i213 = $bytes_in_buffer$3$i; + $next_input_byte$3$i214 = $next_input_byte$3$i; + } + } + } + if ($$lcssa) { + if (!(FUNCTION_TABLE_ii[HEAP32[$158 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$6$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$6$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$6$i = $bytes_in_buffer$3$i$lcssa; + $next_input_byte$6$i = $next_input_byte$3$i$lcssa; + } + $214 = $bytes_in_buffer$6$i + -1 | 0; + $215 = $next_input_byte$6$i + 1 | 0; + $218 = $cinfo + 400 | 0; + HEAP32[$218 >> 2] = HEAPU8[$next_input_byte$6$i >> 0]; + if (!$214) { + if (!(FUNCTION_TABLE_ii[HEAP32[$158 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$7$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$7$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$7$i = $214; + $next_input_byte$7$i = $215; + } + $225 = $bytes_in_buffer$7$i + -1 | 0; + $226 = $next_input_byte$7$i + 1 | 0; + $229 = $cinfo + 404 | 0; + HEAP32[$229 >> 2] = HEAPU8[$next_input_byte$7$i >> 0]; + if (!$225) { + if (!(FUNCTION_TABLE_ii[HEAP32[$158 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$8$i = HEAP32[$101 >> 2] | 0; + $next_input_byte$8$i = HEAP32[$99 >> 2] | 0; + } else { + $bytes_in_buffer$8$i = $225; + $next_input_byte$8$i = $226; + } + $239 = HEAPU8[$next_input_byte$8$i >> 0] | 0; + $241 = $cinfo + 408 | 0; + HEAP32[$241 >> 2] = $239 >>> 4; + $243 = $cinfo + 412 | 0; + HEAP32[$243 >> 2] = $239 & 15; + $244 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$244 + 24 >> 2] = HEAP32[$218 >> 2]; + HEAP32[$244 + 28 >> 2] = HEAP32[$229 >> 2]; + HEAP32[$244 + 32 >> 2] = HEAP32[$241 >> 2]; + HEAP32[$244 + 36 >> 2] = HEAP32[$243 >> 2]; + HEAP32[$244 + 20 >> 2] = 105; + FUNCTION_TABLE_vii[HEAP32[$244 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[(HEAP32[$1 >> 2] | 0) + 20 >> 2] = 0; + $258 = $cinfo + 144 | 0; + HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + 1; + HEAP32[$99 >> 2] = $next_input_byte$8$i + 1; + HEAP32[$101 >> 2] = $bytes_in_buffer$8$i + -1; + HEAP32[$0 >> 2] = 0; + $$0 = 1; + } else if ((label | 0) == 60) { + $261 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$261 + 20 >> 2] = 85; + FUNCTION_TABLE_vii[HEAP32[$261 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$0 >> 2] = 0; + $$0 = 2; + } else if ((label | 0) == 92) $$0 = 0; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_($__b, $__e, $__intl, $__loc, $__flags, $__err, $__neg, $__ct, $__wb, $__wn, $__we) { + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__loc = $__loc | 0; + $__flags = $__flags | 0; + $__err = $__err | 0; + $__neg = $__neg | 0; + $__ct = $__ct | 0; + $__wb = $__wb | 0; + $__wn = $__wn | 0; + $__we = $__we | 0; + var $$0 = 0, $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i118 = 0, $$0$i$i$i$i136 = 0, $$0$i$i$i$i28 = 0, $$0$i$i$i$i43 = 0, $$0$i$i$i$i68 = 0, $$0$i$i$i$i90 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i124 = 0, $$0$i$i1$i$i142 = 0, $$0$i$i1$i$i34 = 0, $$0$i$i1$i$i49 = 0, $$0$i$i1$i$i74 = 0, $$0$i$i1$i$i96 = 0, $$0$i$i105 = 0, $$0$i$i111 = 0, $$0$i$i116 = 0, $$0$i$i133 = 0, $$0$i$i26 = 0, $$0$i$i40 = 0, $$0$i$i42 = 0, $$0$i$i56 = 0, $$0$i$i60 = 0, $$0$i$i65 = 0, $$0$i$i82 = 0, $$0$i$i87 = 0, $$in265 = 0, $$lcssa = 0, $$lcssa183 = 0, $$lcssa248 = 0, $$lcssa294 = 0, $$ph = 0, $$ph240 = 0, $$ph241 = 0, $$pre$i3$i$i126 = 0, $$pre$i3$i$i126190 = 0, $$pre$i3$i$i126192 = 0, $$pre$i3$i$i144203 = 0, $$pre$i3$i$i144204 = 0, $$pre$i3$i$i144270 = 0, $$pre$i3$i$i51 = 0, $$pre$i3$i$i51211 = 0, $$pre$i3$i$i51213 = 0, $$pre$i3$i$i76195$ph = 0, $$pre$i3$i$i76195216 = 0, $$pre$i3$i$i76261 = 0, $$pre$i3$i$i98 = 0, $$pre197 = 0, $$pre198 = 0, $$pre201 = 0, $$pre207 = 0, $0 = 0, $101 = 0, $103 = 0, $113 = 0, $114 = 0, $116 = 0, $129 = 0, $130 = 0, $131 = 0, $141 = 0, $147 = 0, $148 = 0, $15 = 0, $154 = 0, $157 = 0, $159 = 0, $16 = 0, $161 = 0, $163 = 0, $164 = 0, $17 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $187 = 0, $2 = 0, $20 = 0, $202 = 0, $203 = 0, $204 = 0, $21 = 0, $212 = 0, $22 = 0, $223 = 0, $226 = 0, $23 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $24 = 0, $241 = 0, $25 = 0, $26 = 0, $261 = 0, $262 = 0, $263 = 0, $27 = 0, $271 = 0, $287 = 0, $290 = 0, $291 = 0, $292 = 0, $295 = 0, $30 = 0, $301 = 0, $302 = 0, $308 = 0, $317 = 0, $323 = 0, $325 = 0, $334 = 0, $336 = 0, $337 = 0, $338 = 0, $340 = 0, $341 = 0, $342 = 0, $344 = 0, $348 = 0, $351 = 0, $352 = 0, $356 = 0, $362 = 0, $365 = 0, $376 = 0, $378 = 0, $388 = 0, $389 = 0, $391 = 0, $40 = 0, $401 = 0, $403 = 0, $404 = 0, $405 = 0, $415 = 0, $421 = 0, $423 = 0, $425 = 0, $43 = 0, $436 = 0, $439 = 0, $450 = 0, $452 = 0, $462 = 0, $463 = 0, $465 = 0, $478 = 0, $482 = 0, $484 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $500 = 0, $501 = 0, $514 = 0, $515 = 0, $516 = 0, $518 = 0, $521 = 0, $533 = 0, $543 = 0, $545 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $569 = 0, $57 = 0, $572 = 0, $583 = 0, $585 = 0, $59 = 0, $595 = 0, $596 = 0, $598 = 0, $616 = 0, $618 = 0, $627 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $650 = 0, $651 = 0, $652 = 0, $659 = 0, $660 = 0, $663 = 0, $673 = 0, $676 = 0, $686 = 0, $688 = 0, $702 = 0, $707 = 0, $708 = 0, $709 = 0, $710 = 0, $718 = 0, $72 = 0, $724 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $87 = 0, $90 = 0, $__dp = 0, $__et = 0, $__fd = 0, $__gb = 0, $__gbuf = 0, $__ge = 0, $__gn = 0, $__grp = 0, $__i$0 = 0, $__ng$0 = 0, $__ng$0$lcssa = 0, $__ng$1 = 0, $__nsn = 0, $__p$0276 = 0, $__pat = 0, $__psn = 0, $__spaces = 0, $__sym = 0, $__trailing_sign$0$lcssa = 0, $__trailing_sign$0278 = 0, $__trailing_sign$1 = 0, $__ts = 0, label = 0, sp = 0, $630$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 96 | 0; + $__gbuf = sp + 104 | 0; + $__gb = sp + 88 | 0; + $__gn = sp + 80 | 0; + $__ge = sp + 76 | 0; + $__pat = sp + 504 | 0; + $__dp = sp + 72 | 0; + $__ts = sp + 68 | 0; + $__grp = sp + 56 | 0; + $__sym = sp + 44 | 0; + $__psn = sp + 32 | 0; + $__nsn = sp + 20 | 0; + $__spaces = sp + 8 | 0; + $__fd = sp + 4 | 0; + $__et = sp; + HEAP32[$0 >> 2] = $__we; + HEAP32[$__gb >> 2] = $__gbuf; + $2 = $__gb + 4 | 0; + HEAP32[$2 >> 2] = 147; + HEAP32[$__gn >> 2] = $__gbuf; + HEAP32[$__ge >> 2] = $__gbuf + 400; + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__psn >> 2] = 0; + HEAP32[$__psn + 4 >> 2] = 0; + HEAP32[$__psn + 8 >> 2] = 0; + HEAP32[$__nsn >> 2] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + HEAP32[$__nsn + 8 >> 2] = 0; + HEAP32[$__spaces >> 2] = 0; + HEAP32[$__spaces + 4 >> 2] = 0; + HEAP32[$__spaces + 8 >> 2] = 0; + __ZNSt3__111__money_getIwE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_SJ_Ri($__intl, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__psn, $__nsn, $__fd); + HEAP32[$__wn >> 2] = HEAP32[$__wb >> 2]; + $15 = $__psn + 4 | 0; + $16 = $__nsn + 4 | 0; + $17 = $__nsn + 8 | 0; + $18 = $__psn + 8 | 0; + $20 = ($__flags & 512 | 0) != 0; + $21 = $__sym + 8 | 0; + $22 = $__sym + 4 | 0; + $23 = $__spaces + 4 | 0; + $24 = $__spaces + 8 | 0; + $25 = $__pat + 3 | 0; + $26 = $__grp + 4 | 0; + $727 = $__gbuf; + $__p$0276 = 0; + $__trailing_sign$0278 = 0; + L1 : while (1) { + $27 = HEAP32[$__b >> 2] | 0; + do if (!$27) $728 = 1; else { + $30 = HEAP32[$27 + 12 >> 2] | 0; + if (($30 | 0) == (HEAP32[$27 + 16 >> 2] | 0)) $$0$i$i$i$i28 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$27 >> 2] | 0) + 36 >> 2] & 127]($27) | 0; else $$0$i$i$i$i28 = HEAP32[$30 >> 2] | 0; + if (($$0$i$i$i$i28 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $728 = 1; + break; + } else { + $728 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $40 = HEAP32[$__e >> 2] | 0; + do if (!$40) label = 15; else { + $43 = HEAP32[$40 + 12 >> 2] | 0; + if (($43 | 0) == (HEAP32[$40 + 16 >> 2] | 0)) $$0$i$i1$i$i34 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$40 >> 2] | 0) + 36 >> 2] & 127]($40) | 0; else $$0$i$i1$i$i34 = HEAP32[$43 >> 2] | 0; + if (($$0$i$i1$i$i34 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 15; + break; + } else if ($728) { + $729 = $40; + break; + } else { + $$lcssa248 = $727; + $__trailing_sign$0$lcssa = $__trailing_sign$0278; + label = 217; + break L1; + } + } while (0); + if ((label | 0) == 15) { + label = 0; + if ($728) { + $$lcssa248 = $727; + $__trailing_sign$0$lcssa = $__trailing_sign$0278; + label = 217; + break; + } else $729 = 0; + } + L25 : do switch (HEAP8[$__pat + $__p$0276 >> 0] | 0) { + case 1: + { + if (($__p$0276 | 0) == 3) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } else { + $57 = HEAP32[$__b >> 2] | 0; + $59 = HEAP32[$57 + 12 >> 2] | 0; + if (($59 | 0) == (HEAP32[$57 + 16 >> 2] | 0)) $$0$i$i40 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$57 >> 2] | 0) + 36 >> 2] & 127]($57) | 0; else $$0$i$i40 = HEAP32[$59 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 8192, $$0$i$i40) | 0)) { + label = 28; + break L1; + } + $72 = HEAP32[$__b >> 2] | 0; + $73 = $72 + 12 | 0; + $74 = HEAP32[$73 >> 2] | 0; + if (($74 | 0) == (HEAP32[$72 + 16 >> 2] | 0)) $$0$i$i42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$72 >> 2] | 0) + 40 >> 2] & 127]($72) | 0; else { + HEAP32[$73 >> 2] = $74 + 4; + $$0$i$i42 = HEAP32[$74 >> 2] | 0; + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw($__spaces, $$0$i$i42); + $$pre$i3$i$i51 = $729; + $101 = $729; + label = 30; + } + break; + } + case 0: + { + if (($__p$0276 | 0) == 3) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } else { + $$pre$i3$i$i51 = $729; + $101 = $729; + label = 30; + } + break; + } + case 3: + { + $141 = HEAP8[$__psn >> 0] | 0; + $147 = ($141 & 1) == 0 ? ($141 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + $148 = HEAP8[$__nsn >> 0] | 0; + $154 = ($148 & 1) == 0 ? ($148 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if (($147 | 0) == (0 - $154 | 0)) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } else { + $157 = ($147 | 0) == 0; + $159 = HEAP32[$__b >> 2] | 0; + $161 = HEAP32[$159 + 12 >> 2] | 0; + $163 = HEAP32[$159 + 16 >> 2] | 0; + $164 = ($161 | 0) == ($163 | 0); + if ($157 | ($154 | 0) == 0) { + if ($164) $$0$i$i82 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$159 >> 2] | 0) + 36 >> 2] & 127]($159) | 0; else $$0$i$i82 = HEAP32[$161 >> 2] | 0; + if ($157) { + if (($$0$i$i82 | 0) != (HEAP32[((HEAP8[$__nsn >> 0] & 1) == 0 ? $16 : HEAP32[$17 >> 2] | 0) >> 2] | 0)) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + break L25; + } + $202 = HEAP32[$__b >> 2] | 0; + $203 = $202 + 12 | 0; + $204 = HEAP32[$203 >> 2] | 0; + if (($204 | 0) == (HEAP32[$202 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$202 >> 2] | 0) + 40 >> 2] & 127]($202) | 0; else HEAP32[$203 >> 2] = $204 + 4; + HEAP8[$__neg >> 0] = 1; + $212 = HEAP8[$__nsn >> 0] | 0; + $730 = $727; + $__trailing_sign$1 = (($212 & 1) == 0 ? ($212 & 255) >>> 1 : HEAP32[$16 >> 2] | 0) >>> 0 > 1 ? $__nsn : $__trailing_sign$0278; + break L25; + } + if (($$0$i$i82 | 0) != (HEAP32[((HEAP8[$__psn >> 0] & 1) == 0 ? $15 : HEAP32[$18 >> 2] | 0) >> 2] | 0)) { + HEAP8[$__neg >> 0] = 1; + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + break L25; + } + $177 = HEAP32[$__b >> 2] | 0; + $178 = $177 + 12 | 0; + $179 = HEAP32[$178 >> 2] | 0; + if (($179 | 0) == (HEAP32[$177 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$177 >> 2] | 0) + 40 >> 2] & 127]($177) | 0; else HEAP32[$178 >> 2] = $179 + 4; + $187 = HEAP8[$__psn >> 0] | 0; + $730 = $727; + $__trailing_sign$1 = (($187 & 1) == 0 ? ($187 & 255) >>> 1 : HEAP32[$15 >> 2] | 0) >>> 0 > 1 ? $__psn : $__trailing_sign$0278; + break L25; + } + if ($164) { + $223 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$159 >> 2] | 0) + 36 >> 2] & 127]($159) | 0; + $$pre207 = HEAP32[$__b >> 2] | 0; + $$0$i$i105 = $223; + $226 = HEAP8[$__psn >> 0] | 0; + $233 = $$pre207; + $235 = HEAP32[$$pre207 + 12 >> 2] | 0; + $236 = HEAP32[$$pre207 + 16 >> 2] | 0; + } else { + $$0$i$i105 = HEAP32[$161 >> 2] | 0; + $226 = $141; + $233 = $159; + $235 = $161; + $236 = $163; + } + $232 = $233 + 12 | 0; + $234 = ($235 | 0) == ($236 | 0); + if (($$0$i$i105 | 0) == (HEAP32[(($226 & 1) == 0 ? $15 : HEAP32[$18 >> 2] | 0) >> 2] | 0)) { + if ($234) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$233 >> 2] | 0) + 40 >> 2] & 127]($233) | 0; else HEAP32[$232 >> 2] = $235 + 4; + $241 = HEAP8[$__psn >> 0] | 0; + $730 = $727; + $__trailing_sign$1 = (($241 & 1) == 0 ? ($241 & 255) >>> 1 : HEAP32[$15 >> 2] | 0) >>> 0 > 1 ? $__psn : $__trailing_sign$0278; + break L25; + } + if ($234) $$0$i$i111 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$233 >> 2] | 0) + 36 >> 2] & 127]($233) | 0; else $$0$i$i111 = HEAP32[$235 >> 2] | 0; + if (($$0$i$i111 | 0) != (HEAP32[((HEAP8[$__nsn >> 0] & 1) == 0 ? $16 : HEAP32[$17 >> 2] | 0) >> 2] | 0)) { + label = 86; + break L1; + } + $261 = HEAP32[$__b >> 2] | 0; + $262 = $261 + 12 | 0; + $263 = HEAP32[$262 >> 2] | 0; + if (($263 | 0) == (HEAP32[$261 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$261 >> 2] | 0) + 40 >> 2] & 127]($261) | 0; else HEAP32[$262 >> 2] = $263 + 4; + HEAP8[$__neg >> 0] = 1; + $271 = HEAP8[$__nsn >> 0] | 0; + $730 = $727; + $__trailing_sign$1 = (($271 & 1) == 0 ? ($271 & 255) >>> 1 : HEAP32[$16 >> 2] | 0) >>> 0 > 1 ? $__nsn : $__trailing_sign$0278; + } + break; + } + case 2: + { + if (!($__p$0276 >>> 0 < 2 | ($__trailing_sign$0278 | 0) != 0)) if (!($20 | ($__p$0276 | 0) == 2 & (HEAP8[$25 >> 0] | 0) != 0)) { + $730 = $727; + $__trailing_sign$1 = 0; + break L25; + } + $287 = HEAP8[$__sym >> 0] | 0; + $290 = HEAP32[$21 >> 2] | 0; + $291 = ($287 & 1) == 0 ? $22 : $290; + $292 = $291; + L86 : do if (!$__p$0276) { + $$ph = $290; + $$ph240 = $287; + $$ph241 = $292; + } else if ((HEAPU8[$__pat + ($__p$0276 + -1) >> 0] | 0) < 2) { + $308 = ($287 & 1) == 0; + L89 : do if (($291 | 0) == (($308 ? $22 : $290) + (($308 ? ($287 & 255) >>> 1 : HEAP32[$22 >> 2] | 0) << 2) | 0)) { + $334 = $287; + $337 = $290; + $340 = $292; + } else { + $317 = $291; + $732 = $292; + while (1) { + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 8192, HEAP32[$317 >> 2] | 0) | 0)) { + $$lcssa294 = $732; + break; + } + $317 = $317 + 4 | 0; + $323 = $317; + $$pre197 = HEAP8[$__sym >> 0] | 0; + $$pre198 = HEAP32[$21 >> 2] | 0; + $325 = ($$pre197 & 1) == 0; + if (($317 | 0) == (($325 ? $22 : $$pre198) + (($325 ? ($$pre197 & 255) >>> 1 : HEAP32[$22 >> 2] | 0) << 2) | 0)) { + $334 = $$pre197; + $337 = $$pre198; + $340 = $323; + break L89; + } else $732 = $323; + } + $334 = HEAP8[$__sym >> 0] | 0; + $337 = HEAP32[$21 >> 2] | 0; + $340 = $$lcssa294; + } while (0); + $336 = ($334 & 1) == 0 ? $22 : $337; + $338 = $336; + $341 = $340 - $338 >> 2; + $342 = HEAP8[$__spaces >> 0] | 0; + $344 = ($342 & 1) == 0; + $348 = $344 ? ($342 & 255) >>> 1 : HEAP32[$23 >> 2] | 0; + if ($348 >>> 0 < $341 >>> 0) { + $$ph = $337; + $$ph240 = $334; + $$ph241 = $338; + } else { + $351 = $344 ? $23 : HEAP32[$24 >> 2] | 0; + $352 = $351 + ($348 << 2) | 0; + if (!$341) { + $$ph = $337; + $$ph240 = $334; + $$ph241 = $340; + } else { + $$in265 = $336; + $356 = $351 + ($348 - $341 << 2) | 0; + while (1) { + if ((HEAP32[$356 >> 2] | 0) != (HEAP32[$$in265 >> 2] | 0)) { + $$ph = $337; + $$ph240 = $334; + $$ph241 = $338; + break L86; + } + $356 = $356 + 4 | 0; + if (($356 | 0) == ($352 | 0)) { + $$ph = $337; + $$ph240 = $334; + $$ph241 = $340; + break; + } else $$in265 = $$in265 + 4 | 0; + } + } + } + } else { + $$ph = $290; + $$ph240 = $287; + $$ph241 = $292; + } while (0); + $295 = ($$ph240 & 1) == 0; + $301 = ($295 ? $22 : $$ph) + (($295 ? ($$ph240 & 255) >>> 1 : HEAP32[$22 >> 2] | 0) << 2) | 0; + $302 = $$ph241; + L101 : do if (($302 | 0) == ($301 | 0)) $$lcssa183 = $301; else { + $$pre$i3$i$i144270 = $729; + $376 = $729; + $401 = $302; + while (1) { + $362 = HEAP32[$__b >> 2] | 0; + do if (!$362) $388 = 1; else { + $365 = HEAP32[$362 + 12 >> 2] | 0; + if (($365 | 0) == (HEAP32[$362 + 16 >> 2] | 0)) $$0$i$i$i$i136 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$362 >> 2] | 0) + 36 >> 2] & 127]($362) | 0; else $$0$i$i$i$i136 = HEAP32[$365 >> 2] | 0; + if (($$0$i$i$i$i136 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $388 = 1; + break; + } else { + $388 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$376) { + $$pre$i3$i$i144204 = $$pre$i3$i$i144270; + label = 114; + } else { + $378 = HEAP32[$376 + 12 >> 2] | 0; + if (($378 | 0) == (HEAP32[$376 + 16 >> 2] | 0)) $$0$i$i1$i$i142 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$376 >> 2] | 0) + 36 >> 2] & 127]($376) | 0; else $$0$i$i1$i$i142 = HEAP32[$378 >> 2] | 0; + if (($$0$i$i1$i$i142 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i144204 = 0; + label = 114; + break; + } else if ($388 ^ ($$pre$i3$i$i144270 | 0) == 0) { + $$pre$i3$i$i144203 = $$pre$i3$i$i144270; + $733 = $$pre$i3$i$i144270; + break; + } else { + $$lcssa183 = $401; + break L101; + } + } while (0); + if ((label | 0) == 114) { + label = 0; + if ($388) { + $$lcssa183 = $401; + break L101; + } else { + $$pre$i3$i$i144203 = $$pre$i3$i$i144204; + $733 = 0; + } + } + $389 = HEAP32[$__b >> 2] | 0; + $391 = HEAP32[$389 + 12 >> 2] | 0; + if (($391 | 0) == (HEAP32[$389 + 16 >> 2] | 0)) $$0$i$i133 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$389 >> 2] | 0) + 36 >> 2] & 127]($389) | 0; else $$0$i$i133 = HEAP32[$391 >> 2] | 0; + if (($$0$i$i133 | 0) != (HEAP32[$401 >> 2] | 0)) { + $$lcssa183 = $401; + break L101; + } + $403 = HEAP32[$__b >> 2] | 0; + $404 = $403 + 12 | 0; + $405 = HEAP32[$404 >> 2] | 0; + if (($405 | 0) == (HEAP32[$403 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$403 >> 2] | 0) + 40 >> 2] & 127]($403) | 0; else HEAP32[$404 >> 2] = $405 + 4; + $401 = $401 + 4 | 0; + $$pre201 = HEAP8[$__sym >> 0] | 0; + $415 = ($$pre201 & 1) == 0; + $421 = ($415 ? $22 : HEAP32[$21 >> 2] | 0) + (($415 ? ($$pre201 & 255) >>> 1 : HEAP32[$22 >> 2] | 0) << 2) | 0; + if (($401 | 0) == ($421 | 0)) { + $$lcssa183 = $421; + break; + } else { + $$pre$i3$i$i144270 = $$pre$i3$i$i144203; + $376 = $733; + } + } + } while (0); + if ($20) { + $423 = HEAP8[$__sym >> 0] | 0; + $425 = ($423 & 1) == 0; + if (($$lcssa183 | 0) == (($425 ? $22 : HEAP32[$21 >> 2] | 0) + (($425 ? ($423 & 255) >>> 1 : HEAP32[$22 >> 2] | 0) << 2) | 0)) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } else { + label = 126; + break L1; + } + } else { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } + break; + } + case 4: + { + $56 = HEAP32[$__ts >> 2] | 0; + $$pre$i3$i$i126 = $729; + $450 = $729; + $496 = $727; + $__ng$0 = 0; + L138 : while (1) { + $436 = HEAP32[$__b >> 2] | 0; + do if (!$436) $462 = 1; else { + $439 = HEAP32[$436 + 12 >> 2] | 0; + if (($439 | 0) == (HEAP32[$436 + 16 >> 2] | 0)) $$0$i$i$i$i118 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$436 >> 2] | 0) + 36 >> 2] & 127]($436) | 0; else $$0$i$i$i$i118 = HEAP32[$439 >> 2] | 0; + if (($$0$i$i$i$i118 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $462 = 1; + break; + } else { + $462 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$450) { + $$pre$i3$i$i126190 = $$pre$i3$i$i126; + label = 140; + } else { + $452 = HEAP32[$450 + 12 >> 2] | 0; + if (($452 | 0) == (HEAP32[$450 + 16 >> 2] | 0)) $$0$i$i1$i$i124 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$450 >> 2] | 0) + 36 >> 2] & 127]($450) | 0; else $$0$i$i1$i$i124 = HEAP32[$452 >> 2] | 0; + if (($$0$i$i1$i$i124 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i126190 = 0; + label = 140; + break; + } else if ($462 ^ ($$pre$i3$i$i126 | 0) == 0) { + $$pre$i3$i$i126192 = $$pre$i3$i$i126; + $734 = $$pre$i3$i$i126; + break; + } else { + $$lcssa = $496; + $$pre$i3$i$i98 = $$pre$i3$i$i126; + $__ng$0$lcssa = $__ng$0; + break L138; + } + } while (0); + if ((label | 0) == 140) { + label = 0; + if ($462) { + $$lcssa = $496; + $$pre$i3$i$i98 = $$pre$i3$i$i126190; + $__ng$0$lcssa = $__ng$0; + break; + } else { + $$pre$i3$i$i126192 = $$pre$i3$i$i126190; + $734 = 0; + } + } + $463 = HEAP32[$__b >> 2] | 0; + $465 = HEAP32[$463 + 12 >> 2] | 0; + if (($465 | 0) == (HEAP32[$463 + 16 >> 2] | 0)) $$0$i$i116 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$463 >> 2] | 0) + 36 >> 2] & 127]($463) | 0; else $$0$i$i116 = HEAP32[$465 >> 2] | 0; + if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 2048, $$0$i$i116) | 0) { + $478 = HEAP32[$__wn >> 2] | 0; + if (($478 | 0) == (HEAP32[$0 >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__wb, $__wn, $0); + $482 = HEAP32[$__wn >> 2] | 0; + } else $482 = $478; + HEAP32[$__wn >> 2] = $482 + 4; + HEAP32[$482 >> 2] = $$0$i$i116; + $735 = $496; + $__ng$1 = $__ng$0 + 1 | 0; + } else { + $484 = HEAP8[$__grp >> 0] | 0; + if (!(($$0$i$i116 | 0) == ($56 | 0) & (($__ng$0 | 0) != 0 ? ((($484 & 1) == 0 ? ($484 & 255) >>> 1 : HEAP32[$26 >> 2] | 0) | 0) != 0 : 0))) { + $$lcssa = $496; + $$pre$i3$i$i98 = $$pre$i3$i$i126192; + $__ng$0$lcssa = $__ng$0; + break; + } + if (($496 | 0) == (HEAP32[$__ge >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__gb, $__gn, $__ge); + $498 = HEAP32[$__gn >> 2] | 0; + } else $498 = $496; + $497 = $498 + 4 | 0; + HEAP32[$__gn >> 2] = $497; + HEAP32[$498 >> 2] = $__ng$0; + $735 = $497; + $__ng$1 = 0; + } + $499 = HEAP32[$__b >> 2] | 0; + $500 = $499 + 12 | 0; + $501 = HEAP32[$500 >> 2] | 0; + if (($501 | 0) == (HEAP32[$499 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$499 >> 2] | 0) + 40 >> 2] & 127]($499) | 0; + $$pre$i3$i$i126 = $$pre$i3$i$i126192; + $450 = $734; + $496 = $735; + $__ng$0 = $__ng$1; + continue; + } else { + HEAP32[$500 >> 2] = $501 + 4; + $$pre$i3$i$i126 = $$pre$i3$i$i126192; + $450 = $734; + $496 = $735; + $__ng$0 = $__ng$1; + continue; + } + } + if (($__ng$0$lcssa | 0) != 0 ? (HEAP32[$__gb >> 2] | 0) != ($$lcssa | 0) : 0) { + if (($$lcssa | 0) == (HEAP32[$__ge >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__gb, $__gn, $__ge); + $515 = HEAP32[$__gn >> 2] | 0; + } else $515 = $$lcssa; + $514 = $515 + 4 | 0; + HEAP32[$__gn >> 2] = $514; + HEAP32[$515 >> 2] = $__ng$0$lcssa; + $736 = $514; + } else $736 = $$lcssa; + $516 = HEAP32[$__fd >> 2] | 0; + if (($516 | 0) > 0) { + $518 = HEAP32[$__b >> 2] | 0; + do if (!$518) $737 = 1; else { + $521 = HEAP32[$518 + 12 >> 2] | 0; + if (($521 | 0) == (HEAP32[$518 + 16 >> 2] | 0)) $$0$i$i$i$i90 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$518 >> 2] | 0) + 36 >> 2] & 127]($518) | 0; else $$0$i$i$i$i90 = HEAP32[$521 >> 2] | 0; + if (($$0$i$i$i$i90 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $737 = 1; + break; + } else { + $737 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$$pre$i3$i$i98) label = 174; else { + $533 = HEAP32[$$pre$i3$i$i98 + 12 >> 2] | 0; + if (($533 | 0) == (HEAP32[$$pre$i3$i$i98 + 16 >> 2] | 0)) $$0$i$i1$i$i96 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i98 >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i98) | 0; else $$0$i$i1$i$i96 = HEAP32[$533 >> 2] | 0; + if (($$0$i$i1$i$i96 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 174; + break; + } else if ($737) { + $738 = $$pre$i3$i$i98; + break; + } else { + label = 180; + break L1; + } + } while (0); + if ((label | 0) == 174) { + label = 0; + if ($737) { + label = 180; + break L1; + } else $738 = 0; + } + $543 = HEAP32[$__b >> 2] | 0; + $545 = HEAP32[$543 + 12 >> 2] | 0; + if (($545 | 0) == (HEAP32[$543 + 16 >> 2] | 0)) $$0$i$i87 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$543 >> 2] | 0) + 36 >> 2] & 127]($543) | 0; else $$0$i$i87 = HEAP32[$545 >> 2] | 0; + if (($$0$i$i87 | 0) != (HEAP32[$__dp >> 2] | 0)) { + label = 180; + break L1; + } + $558 = HEAP32[$__b >> 2] | 0; + $559 = $558 + 12 | 0; + $560 = HEAP32[$559 >> 2] | 0; + if (($560 | 0) == (HEAP32[$558 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$558 >> 2] | 0) + 40 >> 2] & 127]($558) | 0; else HEAP32[$559 >> 2] = $560 + 4; + if (($516 | 0) > 0) { + $$pre$i3$i$i76261 = $738; + $583 = $738; + $630 = $516; + while (1) { + $569 = HEAP32[$__b >> 2] | 0; + do if (!$569) $595 = 1; else { + $572 = HEAP32[$569 + 12 >> 2] | 0; + if (($572 | 0) == (HEAP32[$569 + 16 >> 2] | 0)) $$0$i$i$i$i68 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$569 >> 2] | 0) + 36 >> 2] & 127]($569) | 0; else $$0$i$i$i$i68 = HEAP32[$572 >> 2] | 0; + if (($$0$i$i$i$i68 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $595 = 1; + break; + } else { + $595 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$583) { + $$pre$i3$i$i76195$ph = $$pre$i3$i$i76261; + label = 198; + } else { + $585 = HEAP32[$583 + 12 >> 2] | 0; + if (($585 | 0) == (HEAP32[$583 + 16 >> 2] | 0)) $$0$i$i1$i$i74 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$583 >> 2] | 0) + 36 >> 2] & 127]($583) | 0; else $$0$i$i1$i$i74 = HEAP32[$585 >> 2] | 0; + if (($$0$i$i1$i$i74 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i76195$ph = 0; + label = 198; + break; + } else if ($595 ^ ($$pre$i3$i$i76261 | 0) == 0) { + $$pre$i3$i$i76195216 = $$pre$i3$i$i76261; + $739 = $$pre$i3$i$i76261; + break; + } else { + label = 204; + break L1; + } + } while (0); + if ((label | 0) == 198) { + label = 0; + if ($595) { + label = 204; + break L1; + } else { + $$pre$i3$i$i76195216 = $$pre$i3$i$i76195$ph; + $739 = 0; + } + } + $596 = HEAP32[$__b >> 2] | 0; + $598 = HEAP32[$596 + 12 >> 2] | 0; + if (($598 | 0) == (HEAP32[$596 + 16 >> 2] | 0)) $$0$i$i65 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$596 >> 2] | 0) + 36 >> 2] & 127]($596) | 0; else $$0$i$i65 = HEAP32[$598 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 2048, $$0$i$i65) | 0)) { + label = 204; + break L1; + } + if ((HEAP32[$__wn >> 2] | 0) == (HEAP32[$0 >> 2] | 0)) __ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__wb, $__wn, $0); + $616 = HEAP32[$__b >> 2] | 0; + $618 = HEAP32[$616 + 12 >> 2] | 0; + if (($618 | 0) == (HEAP32[$616 + 16 >> 2] | 0)) $$0$i$i26 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$616 >> 2] | 0) + 36 >> 2] & 127]($616) | 0; else $$0$i$i26 = HEAP32[$618 >> 2] | 0; + $627 = HEAP32[$__wn >> 2] | 0; + HEAP32[$__wn >> 2] = $627 + 4; + HEAP32[$627 >> 2] = $$0$i$i26; + $630$looptemp = $630; + $630 = $630 + -1 | 0; + HEAP32[$__fd >> 2] = $630; + $631 = HEAP32[$__b >> 2] | 0; + $632 = $631 + 12 | 0; + $633 = HEAP32[$632 >> 2] | 0; + if (($633 | 0) == (HEAP32[$631 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$631 >> 2] | 0) + 40 >> 2] & 127]($631) | 0; else HEAP32[$632 >> 2] = $633 + 4; + if (($630$looptemp | 0) <= 1) break; else { + $$pre$i3$i$i76261 = $$pre$i3$i$i76195216; + $583 = $739; + } + } + } + } + if ((HEAP32[$__wn >> 2] | 0) == (HEAP32[$__wb >> 2] | 0)) { + label = 215; + break L1; + } else { + $730 = $736; + $__trailing_sign$1 = $__trailing_sign$0278; + } + break; + } + default: + { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + } + } while (0); + L261 : do if ((label | 0) == 30) while (1) { + label = 0; + $87 = HEAP32[$__b >> 2] | 0; + do if (!$87) $113 = 1; else { + $90 = HEAP32[$87 + 12 >> 2] | 0; + if (($90 | 0) == (HEAP32[$87 + 16 >> 2] | 0)) $$0$i$i$i$i43 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$87 >> 2] | 0) + 36 >> 2] & 127]($87) | 0; else $$0$i$i$i$i43 = HEAP32[$90 >> 2] | 0; + if (($$0$i$i$i$i43 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $113 = 1; + break; + } else { + $113 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$101) { + $$pre$i3$i$i51211 = $$pre$i3$i$i51; + label = 43; + } else { + $103 = HEAP32[$101 + 12 >> 2] | 0; + if (($103 | 0) == (HEAP32[$101 + 16 >> 2] | 0)) $$0$i$i1$i$i49 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$101 >> 2] | 0) + 36 >> 2] & 127]($101) | 0; else $$0$i$i1$i$i49 = HEAP32[$103 >> 2] | 0; + if (($$0$i$i1$i$i49 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i51211 = 0; + label = 43; + break; + } else if ($113 ^ ($$pre$i3$i$i51 | 0) == 0) { + $$pre$i3$i$i51213 = $$pre$i3$i$i51; + $731 = $$pre$i3$i$i51; + break; + } else { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + break L261; + } + } while (0); + if ((label | 0) == 43) { + label = 0; + if ($113) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + break L261; + } else { + $$pre$i3$i$i51213 = $$pre$i3$i$i51211; + $731 = 0; + } + } + $114 = HEAP32[$__b >> 2] | 0; + $116 = HEAP32[$114 + 12 >> 2] | 0; + if (($116 | 0) == (HEAP32[$114 + 16 >> 2] | 0)) $$0$i$i56 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$114 >> 2] | 0) + 36 >> 2] & 127]($114) | 0; else $$0$i$i56 = HEAP32[$116 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 8192, $$0$i$i56) | 0)) { + $730 = $727; + $__trailing_sign$1 = $__trailing_sign$0278; + break L261; + } + $129 = HEAP32[$__b >> 2] | 0; + $130 = $129 + 12 | 0; + $131 = HEAP32[$130 >> 2] | 0; + if (($131 | 0) == (HEAP32[$129 + 16 >> 2] | 0)) $$0$i$i60 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$129 >> 2] | 0) + 40 >> 2] & 127]($129) | 0; else { + HEAP32[$130 >> 2] = $131 + 4; + $$0$i$i60 = HEAP32[$131 >> 2] | 0; + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw($__spaces, $$0$i$i60); + $$pre$i3$i$i51 = $$pre$i3$i$i51213; + $101 = $731; + label = 30; + } while (0); + $__p$0276 = $__p$0276 + 1 | 0; + if ($__p$0276 >>> 0 >= 4) { + $$lcssa248 = $730; + $__trailing_sign$0$lcssa = $__trailing_sign$1; + label = 217; + break; + } else { + $727 = $730; + $__trailing_sign$0278 = $__trailing_sign$1; + } + } + L296 : do if ((label | 0) == 28) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 86) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 126) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 180) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 204) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 215) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 217) { + L298 : do if ($__trailing_sign$0$lcssa) { + $650 = $__trailing_sign$0$lcssa + 4 | 0; + $651 = $__trailing_sign$0$lcssa + 8 | 0; + $__i$0 = 1; + L300 : while (1) { + $652 = HEAP8[$__trailing_sign$0$lcssa >> 0] | 0; + if (!($652 & 1)) $659 = ($652 & 255) >>> 1; else $659 = HEAP32[$650 >> 2] | 0; + if ($__i$0 >>> 0 >= $659 >>> 0) break L298; + $660 = HEAP32[$__b >> 2] | 0; + do if (!$660) $740 = 1; else { + $663 = HEAP32[$660 + 12 >> 2] | 0; + if (($663 | 0) == (HEAP32[$660 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$660 >> 2] | 0) + 36 >> 2] & 127]($660) | 0; else $$0$i$i$i$i = HEAP32[$663 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $740 = 1; + break; + } else { + $740 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $673 = HEAP32[$__e >> 2] | 0; + do if (!$673) label = 236; else { + $676 = HEAP32[$673 + 12 >> 2] | 0; + if (($676 | 0) == (HEAP32[$673 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$673 >> 2] | 0) + 36 >> 2] & 127]($673) | 0; else $$0$i$i1$i$i = HEAP32[$676 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 236; + break; + } else if ($740) break; else break L300; + } while (0); + if ((label | 0) == 236) { + label = 0; + if ($740) break; + } + $686 = HEAP32[$__b >> 2] | 0; + $688 = HEAP32[$686 + 12 >> 2] | 0; + if (($688 | 0) == (HEAP32[$686 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$686 >> 2] | 0) + 36 >> 2] & 127]($686) | 0; else $$0$i$i = HEAP32[$688 >> 2] | 0; + if (!(HEAP8[$__trailing_sign$0$lcssa >> 0] & 1)) $702 = $650; else $702 = HEAP32[$651 >> 2] | 0; + if (($$0$i$i | 0) != (HEAP32[$702 + ($__i$0 << 2) >> 2] | 0)) break; + $707 = $__i$0 + 1 | 0; + $708 = HEAP32[$__b >> 2] | 0; + $709 = $708 + 12 | 0; + $710 = HEAP32[$709 >> 2] | 0; + if (($710 | 0) == (HEAP32[$708 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$708 >> 2] | 0) + 40 >> 2] & 127]($708) | 0; + $__i$0 = $707; + continue; + } else { + HEAP32[$709 >> 2] = $710 + 4; + $__i$0 = $707; + continue; + } + } + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + break L296; + } while (0); + $718 = HEAP32[$__gb >> 2] | 0; + if (($718 | 0) == ($$lcssa248 | 0)) $$0 = 1; else { + HEAP32[$__et >> 2] = 0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grp, $718, $$lcssa248, $__et); + if (!(HEAP32[$__et >> 2] | 0)) $$0 = 1; else { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } + } + } while (0); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__spaces); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__nsn); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__psn); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + $724 = HEAP32[$__gb >> 2] | 0; + HEAP32[$__gb >> 2] = 0; + if ($724) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($724); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_($__b, $__e, $__intl, $__loc, $__flags, $__err, $__neg, $__ct, $__wb, $__wn, $__we) { + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__loc = $__loc | 0; + $__flags = $__flags | 0; + $__err = $__err | 0; + $__neg = $__neg | 0; + $__ct = $__ct | 0; + $__wb = $__wb | 0; + $__wn = $__wn | 0; + $__we = $__we | 0; + var $$0 = 0, $$0$i$i = 0, $$0$i$i103 = 0, $$0$i$i105 = 0, $$0$i$i120 = 0, $$0$i$i27 = 0, $$0$i$i37 = 0, $$0$i$i39 = 0, $$0$i$i49 = 0, $$0$i$i55 = 0, $$0$i$i59 = 0, $$0$i$i75 = 0, $$0$i$i87 = 0, $$0$i$i95 = 0, $$in241 = 0, $$lcssa = 0, $$lcssa176 = 0, $$lcssa223 = 0, $$lcssa224 = 0, $$ph = 0, $$pre$i2$i$i113 = 0, $$pre$i2$i$i113183 = 0, $$pre$i2$i$i113185 = 0, $$pre$i2$i$i128192 = 0, $$pre$i2$i$i128193 = 0, $$pre$i2$i$i128246 = 0, $$pre$i2$i$i45 = 0, $$pre$i2$i$i45200 = 0, $$pre$i2$i$i45202 = 0, $$pre$i2$i$i67188$ph = 0, $$pre$i2$i$i67188205 = 0, $$pre$i2$i$i67237 = 0, $$pre$i2$i$i83 = 0, $$pre190 = 0, $$pre196 = 0, $0 = 0, $110 = 0, $111 = 0, $113 = 0, $125 = 0, $127 = 0, $144 = 0, $145 = 0, $146 = 0, $15 = 0, $158 = 0, $16 = 0, $164 = 0, $165 = 0, $17 = 0, $171 = 0, $174 = 0, $176 = 0, $178 = 0, $18 = 0, $180 = 0, $181 = 0, $188 = 0, $19 = 0, $196 = 0, $197 = 0, $198 = 0, $2 = 0, $20 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $23 = 0, $231 = 0, $24 = 0, $242 = 0, $247 = 0, $25 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $26 = 0, $262 = 0, $27 = 0, $28 = 0, $284 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $30 = 0, $31 = 0, $310 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $318 = 0, $32 = 0, $324 = 0, $325 = 0, $333 = 0, $334 = 0, $335 = 0, $337 = 0, $338 = 0, $345 = 0, $347 = 0, $348 = 0, $350 = 0, $354 = 0, $357 = 0, $358 = 0, $362 = 0, $368 = 0, $380 = 0, $381 = 0, $383 = 0, $395 = 0, $397 = 0, $409 = 0, $411 = 0, $412 = 0, $413 = 0, $423 = 0, $429 = 0, $431 = 0, $433 = 0, $44 = 0, $444 = 0, $45 = 0, $456 = 0, $457 = 0, $459 = 0, $46 = 0, $471 = 0, $473 = 0, $483 = 0, $490 = 0, $494 = 0, $496 = 0, $508 = 0, $509 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $526 = 0, $527 = 0, $528 = 0, $530 = 0, $542 = 0, $543 = 0, $555 = 0, $557 = 0, $572 = 0, $573 = 0, $574 = 0, $583 = 0, $595 = 0, $596 = 0, $598 = 0, $61 = 0, $610 = 0, $612 = 0, $62 = 0, $634 = 0, $636 = 0, $64 = 0, $647 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $680 = 0, $681 = 0, $693 = 0, $694 = 0, $695 = 0, $707 = 0, $709 = 0, $725 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $741 = 0, $747 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $760 = 0, $81 = 0, $82 = 0, $83 = 0, $98 = 0, $__dp = 0, $__et = 0, $__fd = 0, $__gb = 0, $__gbuf = 0, $__ge = 0, $__gn = 0, $__grp = 0, $__i$0 = 0, $__ng$0 = 0, $__ng$0$lcssa = 0, $__ng$1 = 0, $__nsn = 0, $__p$0253 = 0, $__pat = 0, $__psn = 0, $__spaces = 0, $__sym = 0, $__trailing_sign$0$lcssa = 0, $__trailing_sign$0255 = 0, $__trailing_sign$1 = 0, $__ts = 0, label = 0, sp = 0, $650$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 512 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 88 | 0; + $__gbuf = sp + 96 | 0; + $__gb = sp + 80 | 0; + $__gn = sp + 72 | 0; + $__ge = sp + 68 | 0; + $__pat = sp + 500 | 0; + $__dp = sp + 497 | 0; + $__ts = sp + 496 | 0; + $__grp = sp + 56 | 0; + $__sym = sp + 44 | 0; + $__psn = sp + 32 | 0; + $__nsn = sp + 20 | 0; + $__spaces = sp + 8 | 0; + $__fd = sp + 4 | 0; + $__et = sp; + HEAP32[$0 >> 2] = $__we; + HEAP32[$__gb >> 2] = $__gbuf; + $2 = $__gb + 4 | 0; + HEAP32[$2 >> 2] = 147; + HEAP32[$__gn >> 2] = $__gbuf; + HEAP32[$__ge >> 2] = $__gbuf + 400; + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__psn >> 2] = 0; + HEAP32[$__psn + 4 >> 2] = 0; + HEAP32[$__psn + 8 >> 2] = 0; + HEAP32[$__nsn >> 2] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + HEAP32[$__nsn + 8 >> 2] = 0; + HEAP32[$__spaces >> 2] = 0; + HEAP32[$__spaces + 4 >> 2] = 0; + HEAP32[$__spaces + 8 >> 2] = 0; + __ZNSt3__111__money_getIcE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_SF_Ri($__intl, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__psn, $__nsn, $__fd); + HEAP32[$__wn >> 2] = HEAP32[$__wb >> 2]; + $15 = $__ct + 8 | 0; + $16 = $__psn + 4 | 0; + $17 = $__nsn + 4 | 0; + $18 = $__nsn + 8 | 0; + $19 = $__nsn + 1 | 0; + $20 = $__psn + 8 | 0; + $21 = $__psn + 1 | 0; + $23 = ($__flags & 512 | 0) != 0; + $24 = $__sym + 8 | 0; + $25 = $__sym + 1 | 0; + $26 = $__sym + 4 | 0; + $27 = $__spaces + 4 | 0; + $28 = $__spaces + 8 | 0; + $29 = $__spaces + 1 | 0; + $30 = $__pat + 3 | 0; + $31 = $__grp + 4 | 0; + $750 = $__gbuf; + $__p$0253 = 0; + $__trailing_sign$0255 = 0; + L1 : while (1) { + $32 = HEAP32[$__b >> 2] | 0; + do if (!$32) $45 = 0; else if ((HEAP32[$32 + 12 >> 2] | 0) == (HEAP32[$32 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$32 >> 2] | 0) + 36 >> 2] & 127]($32) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $45 = 0; + break; + } else { + $45 = HEAP32[$__b >> 2] | 0; + break; + } else $45 = $32; while (0); + $44 = ($45 | 0) == 0; + $46 = HEAP32[$__e >> 2] | 0; + do if (!$46) label = 12; else { + if ((HEAP32[$46 + 12 >> 2] | 0) != (HEAP32[$46 + 16 >> 2] | 0)) if ($44) { + $751 = $46; + break; + } else { + $$lcssa224 = $750; + $__trailing_sign$0$lcssa = $__trailing_sign$0255; + label = 202; + break L1; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$46 >> 2] | 0) + 36 >> 2] & 127]($46) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 12; + break; + } else if ($44) { + $751 = $46; + break; + } else { + $$lcssa224 = $750; + $__trailing_sign$0$lcssa = $__trailing_sign$0255; + label = 202; + break L1; + } + } while (0); + if ((label | 0) == 12) { + label = 0; + if ($44) { + $$lcssa224 = $750; + $__trailing_sign$0$lcssa = $__trailing_sign$0255; + label = 202; + break; + } else $751 = 0; + } + L21 : do switch (HEAP8[$__pat + $__p$0253 >> 0] | 0) { + case 1: + { + if (($__p$0253 | 0) == 3) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } else { + $62 = HEAP32[$__b >> 2] | 0; + $64 = HEAP32[$62 + 12 >> 2] | 0; + if (($64 | 0) == (HEAP32[$62 + 16 >> 2] | 0)) $$0$i$i37 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$62 >> 2] | 0) + 36 >> 2] & 127]($62) | 0; else $$0$i$i37 = HEAPU8[$64 >> 0] | 0; + if (($$0$i$i37 & 255) << 24 >> 24 <= -1) { + label = 26; + break L1; + } + if (!(HEAP16[(HEAP32[$15 >> 2] | 0) + ($$0$i$i37 << 24 >> 24 << 1) >> 1] & 8192)) { + label = 26; + break L1; + } + $81 = HEAP32[$__b >> 2] | 0; + $82 = $81 + 12 | 0; + $83 = HEAP32[$82 >> 2] | 0; + if (($83 | 0) == (HEAP32[$81 + 16 >> 2] | 0)) $$0$i$i39 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$81 >> 2] | 0) + 40 >> 2] & 127]($81) | 0; else { + HEAP32[$82 >> 2] = $83 + 1; + $$0$i$i39 = HEAPU8[$83 >> 0] | 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($__spaces, $$0$i$i39 & 255); + $$pre$i2$i$i45 = $751; + $113 = $751; + label = 28; + } + break; + } + case 0: + { + if (($__p$0253 | 0) == 3) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } else { + $$pre$i2$i$i45 = $751; + $113 = $751; + label = 28; + } + break; + } + case 3: + { + $158 = HEAP8[$__psn >> 0] | 0; + $164 = ($158 & 1) == 0 ? ($158 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + $165 = HEAP8[$__nsn >> 0] | 0; + $171 = ($165 & 1) == 0 ? ($165 & 255) >>> 1 : HEAP32[$17 >> 2] | 0; + if (($164 | 0) == (0 - $171 | 0)) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } else { + $174 = ($164 | 0) == 0; + $176 = HEAP32[$__b >> 2] | 0; + $178 = HEAP32[$176 + 12 >> 2] | 0; + $180 = HEAP32[$176 + 16 >> 2] | 0; + $181 = ($178 | 0) == ($180 | 0); + if ($174 | ($171 | 0) == 0) { + if ($181) $$0$i$i87 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$176 >> 2] | 0) + 36 >> 2] & 127]($176) | 0; else $$0$i$i87 = HEAPU8[$178 >> 0] | 0; + $188 = $$0$i$i87 & 255; + if ($174) { + if ($188 << 24 >> 24 != (HEAP8[((HEAP8[$__nsn >> 0] & 1) == 0 ? $19 : HEAP32[$18 >> 2] | 0) >> 0] | 0)) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L21; + } + $221 = HEAP32[$__b >> 2] | 0; + $222 = $221 + 12 | 0; + $223 = HEAP32[$222 >> 2] | 0; + if (($223 | 0) == (HEAP32[$221 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$221 >> 2] | 0) + 40 >> 2] & 127]($221) | 0; else HEAP32[$222 >> 2] = $223 + 1; + HEAP8[$__neg >> 0] = 1; + $231 = HEAP8[$__nsn >> 0] | 0; + $752 = $750; + $__trailing_sign$1 = (($231 & 1) == 0 ? ($231 & 255) >>> 1 : HEAP32[$17 >> 2] | 0) >>> 0 > 1 ? $__nsn : $__trailing_sign$0255; + break L21; + } + if ($188 << 24 >> 24 != (HEAP8[((HEAP8[$__psn >> 0] & 1) == 0 ? $21 : HEAP32[$20 >> 2] | 0) >> 0] | 0)) { + HEAP8[$__neg >> 0] = 1; + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L21; + } + $196 = HEAP32[$__b >> 2] | 0; + $197 = $196 + 12 | 0; + $198 = HEAP32[$197 >> 2] | 0; + if (($198 | 0) == (HEAP32[$196 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$196 >> 2] | 0) + 40 >> 2] & 127]($196) | 0; else HEAP32[$197 >> 2] = $198 + 1; + $206 = HEAP8[$__psn >> 0] | 0; + $752 = $750; + $__trailing_sign$1 = (($206 & 1) == 0 ? ($206 & 255) >>> 1 : HEAP32[$16 >> 2] | 0) >>> 0 > 1 ? $__psn : $__trailing_sign$0255; + break L21; + } + if ($181) { + $242 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$176 >> 2] | 0) + 36 >> 2] & 127]($176) | 0; + $$pre196 = HEAP32[$__b >> 2] | 0; + $$0$i$i95 = $242; + $247 = HEAP8[$__psn >> 0] | 0; + $254 = $$pre196; + $256 = HEAP32[$$pre196 + 12 >> 2] | 0; + $257 = HEAP32[$$pre196 + 16 >> 2] | 0; + } else { + $$0$i$i95 = HEAPU8[$178 >> 0] | 0; + $247 = $158; + $254 = $176; + $256 = $178; + $257 = $180; + } + $253 = $254 + 12 | 0; + $255 = ($256 | 0) == ($257 | 0); + if (($$0$i$i95 & 255) << 24 >> 24 == (HEAP8[(($247 & 1) == 0 ? $21 : HEAP32[$20 >> 2] | 0) >> 0] | 0)) { + if ($255) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$254 >> 2] | 0) + 40 >> 2] & 127]($254) | 0; else HEAP32[$253 >> 2] = $256 + 1; + $262 = HEAP8[$__psn >> 0] | 0; + $752 = $750; + $__trailing_sign$1 = (($262 & 1) == 0 ? ($262 & 255) >>> 1 : HEAP32[$16 >> 2] | 0) >>> 0 > 1 ? $__psn : $__trailing_sign$0255; + break L21; + } + if ($255) $$0$i$i105 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$254 >> 2] | 0) + 36 >> 2] & 127]($254) | 0; else $$0$i$i105 = HEAPU8[$256 >> 0] | 0; + if (($$0$i$i105 & 255) << 24 >> 24 != (HEAP8[((HEAP8[$__nsn >> 0] & 1) == 0 ? $19 : HEAP32[$18 >> 2] | 0) >> 0] | 0)) { + label = 82; + break L1; + } + $284 = HEAP32[$__b >> 2] | 0; + $285 = $284 + 12 | 0; + $286 = HEAP32[$285 >> 2] | 0; + if (($286 | 0) == (HEAP32[$284 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$284 >> 2] | 0) + 40 >> 2] & 127]($284) | 0; else HEAP32[$285 >> 2] = $286 + 1; + HEAP8[$__neg >> 0] = 1; + $294 = HEAP8[$__nsn >> 0] | 0; + $752 = $750; + $__trailing_sign$1 = (($294 & 1) == 0 ? ($294 & 255) >>> 1 : HEAP32[$17 >> 2] | 0) >>> 0 > 1 ? $__nsn : $__trailing_sign$0255; + } + break; + } + case 2: + { + if (!($__p$0253 >>> 0 < 2 | ($__trailing_sign$0255 | 0) != 0)) if (!($23 | ($__p$0253 | 0) == 2 & (HEAP8[$30 >> 0] | 0) != 0)) { + $752 = $750; + $__trailing_sign$1 = 0; + break L21; + } + $310 = HEAP8[$__sym >> 0] | 0; + $312 = ($310 & 1) == 0; + $313 = HEAP32[$24 >> 2] | 0; + $314 = $312 ? $25 : $313; + $315 = $314; + L83 : do if (!$__p$0253) $$ph = $315; else if ((HEAPU8[$__pat + ($__p$0253 + -1) >> 0] | 0) < 2) { + $333 = $312 ? ($310 & 255) >>> 1 : HEAP32[$26 >> 2] | 0; + $334 = $314 + $333 | 0; + $335 = HEAP32[$15 >> 2] | 0; + L86 : do if (!$333) $$lcssa223 = $315; else { + $338 = $314; + $754 = $315; + while (1) { + $337 = HEAP8[$338 >> 0] | 0; + if ($337 << 24 >> 24 <= -1) { + $$lcssa223 = $754; + break L86; + } + if (!(HEAP16[$335 + ($337 << 24 >> 24 << 1) >> 1] & 8192)) { + $$lcssa223 = $754; + break L86; + } + $338 = $338 + 1 | 0; + $345 = $338; + if (($338 | 0) == ($334 | 0)) { + $$lcssa223 = $345; + break; + } else $754 = $345; + } + } while (0); + $347 = $$lcssa223 - $315 | 0; + $348 = HEAP8[$__spaces >> 0] | 0; + $350 = ($348 & 1) == 0; + $354 = $350 ? ($348 & 255) >>> 1 : HEAP32[$27 >> 2] | 0; + if ($354 >>> 0 < $347 >>> 0) $$ph = $315; else { + $357 = $350 ? $29 : HEAP32[$28 >> 2] | 0; + $358 = $357 + $354 | 0; + if (($$lcssa223 | 0) == ($315 | 0)) $$ph = $$lcssa223; else { + $$in241 = $314; + $362 = $357 + ($354 - $347) | 0; + while (1) { + if ((HEAP8[$362 >> 0] | 0) != (HEAP8[$$in241 >> 0] | 0)) { + $$ph = $315; + break L83; + } + $362 = $362 + 1 | 0; + if (($362 | 0) == ($358 | 0)) { + $$ph = $$lcssa223; + break; + } else $$in241 = $$in241 + 1 | 0; + } + } + } + } else $$ph = $315; while (0); + $318 = ($310 & 1) == 0; + $324 = ($318 ? $25 : $313) + ($318 ? ($310 & 255) >>> 1 : HEAP32[$26 >> 2] | 0) | 0; + $325 = $$ph; + L98 : do if (($325 | 0) == ($324 | 0)) $$lcssa176 = $324; else { + $$pre$i2$i$i128246 = $751; + $383 = $751; + $409 = $325; + while (1) { + $368 = HEAP32[$__b >> 2] | 0; + do if (!$368) $381 = 0; else if ((HEAP32[$368 + 12 >> 2] | 0) == (HEAP32[$368 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$368 >> 2] | 0) + 36 >> 2] & 127]($368) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $381 = 0; + break; + } else { + $381 = HEAP32[$__b >> 2] | 0; + break; + } else $381 = $368; while (0); + $380 = ($381 | 0) == 0; + do if (!$383) { + $$pre$i2$i$i128193 = $$pre$i2$i$i128246; + label = 107; + } else { + if ((HEAP32[$383 + 12 >> 2] | 0) != (HEAP32[$383 + 16 >> 2] | 0)) if ($380) { + $$pre$i2$i$i128192 = $$pre$i2$i$i128246; + $755 = $383; + break; + } else { + $$lcssa176 = $409; + break L98; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$383 >> 2] | 0) + 36 >> 2] & 127]($383) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i128193 = 0; + label = 107; + break; + } else if ($380 ^ ($$pre$i2$i$i128246 | 0) == 0) { + $$pre$i2$i$i128192 = $$pre$i2$i$i128246; + $755 = $$pre$i2$i$i128246; + break; + } else { + $$lcssa176 = $409; + break L98; + } + } while (0); + if ((label | 0) == 107) { + label = 0; + if ($380) { + $$lcssa176 = $409; + break L98; + } else { + $$pre$i2$i$i128192 = $$pre$i2$i$i128193; + $755 = 0; + } + } + $395 = HEAP32[$__b >> 2] | 0; + $397 = HEAP32[$395 + 12 >> 2] | 0; + if (($397 | 0) == (HEAP32[$395 + 16 >> 2] | 0)) $$0$i$i120 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$395 >> 2] | 0) + 36 >> 2] & 127]($395) | 0; else $$0$i$i120 = HEAPU8[$397 >> 0] | 0; + if (($$0$i$i120 & 255) << 24 >> 24 != (HEAP8[$409 >> 0] | 0)) { + $$lcssa176 = $409; + break L98; + } + $411 = HEAP32[$__b >> 2] | 0; + $412 = $411 + 12 | 0; + $413 = HEAP32[$412 >> 2] | 0; + if (($413 | 0) == (HEAP32[$411 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$411 >> 2] | 0) + 40 >> 2] & 127]($411) | 0; else HEAP32[$412 >> 2] = $413 + 1; + $409 = $409 + 1 | 0; + $$pre190 = HEAP8[$__sym >> 0] | 0; + $423 = ($$pre190 & 1) == 0; + $429 = ($423 ? $25 : HEAP32[$24 >> 2] | 0) + ($423 ? ($$pre190 & 255) >>> 1 : HEAP32[$26 >> 2] | 0) | 0; + if (($409 | 0) == ($429 | 0)) { + $$lcssa176 = $429; + break; + } else { + $$pre$i2$i$i128246 = $$pre$i2$i$i128192; + $383 = $755; + } + } + } while (0); + if ($23) { + $431 = HEAP8[$__sym >> 0] | 0; + $433 = ($431 & 1) == 0; + if (($$lcssa176 | 0) == (($433 ? $25 : HEAP32[$24 >> 2] | 0) + ($433 ? ($431 & 255) >>> 1 : HEAP32[$26 >> 2] | 0) | 0)) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } else { + label = 119; + break L1; + } + } else { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } + break; + } + case 4: + { + $61 = HEAP8[$__ts >> 0] | 0; + $$pre$i2$i$i113 = $751; + $459 = $751; + $508 = $750; + $__ng$0 = 0; + L131 : while (1) { + $444 = HEAP32[$__b >> 2] | 0; + do if (!$444) $457 = 0; else if ((HEAP32[$444 + 12 >> 2] | 0) == (HEAP32[$444 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$444 >> 2] | 0) + 36 >> 2] & 127]($444) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $457 = 0; + break; + } else { + $457 = HEAP32[$__b >> 2] | 0; + break; + } else $457 = $444; while (0); + $456 = ($457 | 0) == 0; + do if (!$459) { + $$pre$i2$i$i113183 = $$pre$i2$i$i113; + label = 130; + } else { + if ((HEAP32[$459 + 12 >> 2] | 0) != (HEAP32[$459 + 16 >> 2] | 0)) if ($456) { + $$pre$i2$i$i113185 = $$pre$i2$i$i113; + $756 = $459; + break; + } else { + $$lcssa = $508; + $$pre$i2$i$i83 = $$pre$i2$i$i113; + $__ng$0$lcssa = $__ng$0; + break L131; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$459 >> 2] | 0) + 36 >> 2] & 127]($459) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i113183 = 0; + label = 130; + break; + } else if ($456 ^ ($$pre$i2$i$i113 | 0) == 0) { + $$pre$i2$i$i113185 = $$pre$i2$i$i113; + $756 = $$pre$i2$i$i113; + break; + } else { + $$lcssa = $508; + $$pre$i2$i$i83 = $$pre$i2$i$i113; + $__ng$0$lcssa = $__ng$0; + break L131; + } + } while (0); + if ((label | 0) == 130) { + label = 0; + if ($456) { + $$lcssa = $508; + $$pre$i2$i$i83 = $$pre$i2$i$i113183; + $__ng$0$lcssa = $__ng$0; + break; + } else { + $$pre$i2$i$i113185 = $$pre$i2$i$i113183; + $756 = 0; + } + } + $471 = HEAP32[$__b >> 2] | 0; + $473 = HEAP32[$471 + 12 >> 2] | 0; + if (($473 | 0) == (HEAP32[$471 + 16 >> 2] | 0)) $$0$i$i103 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$471 >> 2] | 0) + 36 >> 2] & 127]($471) | 0; else $$0$i$i103 = HEAPU8[$473 >> 0] | 0; + $483 = $$0$i$i103 & 255; + if ($483 << 24 >> 24 > -1) if (!(HEAP16[(HEAP32[$15 >> 2] | 0) + ($$0$i$i103 << 24 >> 24 << 1) >> 1] & 2048)) label = 140; else { + $490 = HEAP32[$__wn >> 2] | 0; + if (($490 | 0) == (HEAP32[$0 >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__wb, $__wn, $0); + $494 = HEAP32[$__wn >> 2] | 0; + } else $494 = $490; + HEAP32[$__wn >> 2] = $494 + 1; + HEAP8[$494 >> 0] = $483; + $757 = $508; + $__ng$1 = $__ng$0 + 1 | 0; + } else label = 140; + if ((label | 0) == 140) { + label = 0; + $496 = HEAP8[$__grp >> 0] | 0; + if (!($483 << 24 >> 24 == $61 << 24 >> 24 & (($__ng$0 | 0) != 0 ? ((($496 & 1) == 0 ? ($496 & 255) >>> 1 : HEAP32[$31 >> 2] | 0) | 0) != 0 : 0))) { + $$lcssa = $508; + $$pre$i2$i$i83 = $$pre$i2$i$i113185; + $__ng$0$lcssa = $__ng$0; + break; + } + if (($508 | 0) == (HEAP32[$__ge >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__gb, $__gn, $__ge); + $510 = HEAP32[$__gn >> 2] | 0; + } else $510 = $508; + $509 = $510 + 4 | 0; + HEAP32[$__gn >> 2] = $509; + HEAP32[$510 >> 2] = $__ng$0; + $757 = $509; + $__ng$1 = 0; + } + $511 = HEAP32[$__b >> 2] | 0; + $512 = $511 + 12 | 0; + $513 = HEAP32[$512 >> 2] | 0; + if (($513 | 0) == (HEAP32[$511 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$511 >> 2] | 0) + 40 >> 2] & 127]($511) | 0; + $$pre$i2$i$i113 = $$pre$i2$i$i113185; + $459 = $756; + $508 = $757; + $__ng$0 = $__ng$1; + continue; + } else { + HEAP32[$512 >> 2] = $513 + 1; + $$pre$i2$i$i113 = $$pre$i2$i$i113185; + $459 = $756; + $508 = $757; + $__ng$0 = $__ng$1; + continue; + } + } + if (($__ng$0$lcssa | 0) != 0 ? (HEAP32[$__gb >> 2] | 0) != ($$lcssa | 0) : 0) { + if (($$lcssa | 0) == (HEAP32[$__ge >> 2] | 0)) { + __ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__gb, $__gn, $__ge); + $527 = HEAP32[$__gn >> 2] | 0; + } else $527 = $$lcssa; + $526 = $527 + 4 | 0; + HEAP32[$__gn >> 2] = $526; + HEAP32[$527 >> 2] = $__ng$0$lcssa; + $758 = $526; + } else $758 = $$lcssa; + $528 = HEAP32[$__fd >> 2] | 0; + if (($528 | 0) > 0) { + $530 = HEAP32[$__b >> 2] | 0; + do if (!$530) $543 = 0; else if ((HEAP32[$530 + 12 >> 2] | 0) == (HEAP32[$530 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$530 >> 2] | 0) + 36 >> 2] & 127]($530) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $543 = 0; + break; + } else { + $543 = HEAP32[$__b >> 2] | 0; + break; + } else $543 = $530; while (0); + $542 = ($543 | 0) == 0; + do if (!$$pre$i2$i$i83) label = 162; else { + if ((HEAP32[$$pre$i2$i$i83 + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i83 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i83 >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i83) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 162; + break; + } + if ($542) $759 = $$pre$i2$i$i83; else { + label = 167; + break L1; + } + } while (0); + if ((label | 0) == 162) { + label = 0; + if ($542) { + label = 167; + break L1; + } else $759 = 0; + } + $555 = HEAP32[$__b >> 2] | 0; + $557 = HEAP32[$555 + 12 >> 2] | 0; + if (($557 | 0) == (HEAP32[$555 + 16 >> 2] | 0)) $$0$i$i75 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$555 >> 2] | 0) + 36 >> 2] & 127]($555) | 0; else $$0$i$i75 = HEAPU8[$557 >> 0] | 0; + if (($$0$i$i75 & 255) << 24 >> 24 != (HEAP8[$__dp >> 0] | 0)) { + label = 167; + break L1; + } + $572 = HEAP32[$__b >> 2] | 0; + $573 = $572 + 12 | 0; + $574 = HEAP32[$573 >> 2] | 0; + if (($574 | 0) == (HEAP32[$572 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$572 >> 2] | 0) + 40 >> 2] & 127]($572) | 0; else HEAP32[$573 >> 2] = $574 + 1; + if (($528 | 0) > 0) { + $$pre$i2$i$i67237 = $759; + $598 = $759; + $650 = $528; + while (1) { + $583 = HEAP32[$__b >> 2] | 0; + do if (!$583) $596 = 0; else if ((HEAP32[$583 + 12 >> 2] | 0) == (HEAP32[$583 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$583 >> 2] | 0) + 36 >> 2] & 127]($583) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $596 = 0; + break; + } else { + $596 = HEAP32[$__b >> 2] | 0; + break; + } else $596 = $583; while (0); + $595 = ($596 | 0) == 0; + do if (!$598) { + $$pre$i2$i$i67188$ph = $$pre$i2$i$i67237; + label = 182; + } else { + if ((HEAP32[$598 + 12 >> 2] | 0) != (HEAP32[$598 + 16 >> 2] | 0)) if ($595) { + $$pre$i2$i$i67188205 = $$pre$i2$i$i67237; + $760 = $598; + break; + } else { + label = 189; + break L1; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$598 >> 2] | 0) + 36 >> 2] & 127]($598) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i67188$ph = 0; + label = 182; + break; + } else if ($595 ^ ($$pre$i2$i$i67237 | 0) == 0) { + $$pre$i2$i$i67188205 = $$pre$i2$i$i67237; + $760 = $$pre$i2$i$i67237; + break; + } else { + label = 189; + break L1; + } + } while (0); + if ((label | 0) == 182) { + label = 0; + if ($595) { + label = 189; + break L1; + } else { + $$pre$i2$i$i67188205 = $$pre$i2$i$i67188$ph; + $760 = 0; + } + } + $610 = HEAP32[$__b >> 2] | 0; + $612 = HEAP32[$610 + 12 >> 2] | 0; + if (($612 | 0) == (HEAP32[$610 + 16 >> 2] | 0)) $$0$i$i59 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$610 >> 2] | 0) + 36 >> 2] & 127]($610) | 0; else $$0$i$i59 = HEAPU8[$612 >> 0] | 0; + if (($$0$i$i59 & 255) << 24 >> 24 <= -1) { + label = 189; + break L1; + } + if (!(HEAP16[(HEAP32[$15 >> 2] | 0) + ($$0$i$i59 << 24 >> 24 << 1) >> 1] & 2048)) { + label = 189; + break L1; + } + if ((HEAP32[$__wn >> 2] | 0) == (HEAP32[$0 >> 2] | 0)) __ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__wb, $__wn, $0); + $634 = HEAP32[$__b >> 2] | 0; + $636 = HEAP32[$634 + 12 >> 2] | 0; + if (($636 | 0) == (HEAP32[$634 + 16 >> 2] | 0)) $$0$i$i27 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$634 >> 2] | 0) + 36 >> 2] & 127]($634) | 0; else $$0$i$i27 = HEAPU8[$636 >> 0] | 0; + $647 = HEAP32[$__wn >> 2] | 0; + HEAP32[$__wn >> 2] = $647 + 1; + HEAP8[$647 >> 0] = $$0$i$i27; + $650$looptemp = $650; + $650 = $650 + -1 | 0; + HEAP32[$__fd >> 2] = $650; + $651 = HEAP32[$__b >> 2] | 0; + $652 = $651 + 12 | 0; + $653 = HEAP32[$652 >> 2] | 0; + if (($653 | 0) == (HEAP32[$651 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$651 >> 2] | 0) + 40 >> 2] & 127]($651) | 0; else HEAP32[$652 >> 2] = $653 + 1; + if (($650$looptemp | 0) <= 1) break; else { + $$pre$i2$i$i67237 = $$pre$i2$i$i67188205; + $598 = $760; + } + } + } + } + if ((HEAP32[$__wn >> 2] | 0) == (HEAP32[$__wb >> 2] | 0)) { + label = 200; + break L1; + } else { + $752 = $758; + $__trailing_sign$1 = $__trailing_sign$0255; + } + break; + } + default: + { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + } + } while (0); + L243 : do if ((label | 0) == 28) while (1) { + label = 0; + $98 = HEAP32[$__b >> 2] | 0; + do if (!$98) $111 = 0; else if ((HEAP32[$98 + 12 >> 2] | 0) == (HEAP32[$98 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$98 >> 2] | 0) + 36 >> 2] & 127]($98) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $111 = 0; + break; + } else { + $111 = HEAP32[$__b >> 2] | 0; + break; + } else $111 = $98; while (0); + $110 = ($111 | 0) == 0; + do if (!$113) { + $$pre$i2$i$i45200 = $$pre$i2$i$i45; + label = 38; + } else { + if ((HEAP32[$113 + 12 >> 2] | 0) != (HEAP32[$113 + 16 >> 2] | 0)) if ($110) { + $$pre$i2$i$i45202 = $$pre$i2$i$i45; + $753 = $113; + break; + } else { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L243; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$113 >> 2] | 0) + 36 >> 2] & 127]($113) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i45200 = 0; + label = 38; + break; + } else if ($110 ^ ($$pre$i2$i$i45 | 0) == 0) { + $$pre$i2$i$i45202 = $$pre$i2$i$i45; + $753 = $$pre$i2$i$i45; + break; + } else { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L243; + } + } while (0); + if ((label | 0) == 38) { + label = 0; + if ($110) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L243; + } else { + $$pre$i2$i$i45202 = $$pre$i2$i$i45200; + $753 = 0; + } + } + $125 = HEAP32[$__b >> 2] | 0; + $127 = HEAP32[$125 + 12 >> 2] | 0; + if (($127 | 0) == (HEAP32[$125 + 16 >> 2] | 0)) $$0$i$i49 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$125 >> 2] | 0) + 36 >> 2] & 127]($125) | 0; else $$0$i$i49 = HEAPU8[$127 >> 0] | 0; + if (($$0$i$i49 & 255) << 24 >> 24 <= -1) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L243; + } + if (!(HEAP16[(HEAP32[$15 >> 2] | 0) + ($$0$i$i49 << 24 >> 24 << 1) >> 1] & 8192)) { + $752 = $750; + $__trailing_sign$1 = $__trailing_sign$0255; + break L243; + } + $144 = HEAP32[$__b >> 2] | 0; + $145 = $144 + 12 | 0; + $146 = HEAP32[$145 >> 2] | 0; + if (($146 | 0) == (HEAP32[$144 + 16 >> 2] | 0)) $$0$i$i55 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$144 >> 2] | 0) + 40 >> 2] & 127]($144) | 0; else { + HEAP32[$145 >> 2] = $146 + 1; + $$0$i$i55 = HEAPU8[$146 >> 0] | 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($__spaces, $$0$i$i55 & 255); + $$pre$i2$i$i45 = $$pre$i2$i$i45202; + $113 = $753; + label = 28; + } while (0); + $__p$0253 = $__p$0253 + 1 | 0; + if ($__p$0253 >>> 0 >= 4) { + $$lcssa224 = $752; + $__trailing_sign$0$lcssa = $__trailing_sign$1; + label = 202; + break; + } else { + $750 = $752; + $__trailing_sign$0255 = $__trailing_sign$1; + } + } + L275 : do if ((label | 0) == 26) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 82) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 119) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 167) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 189) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 200) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } else if ((label | 0) == 202) { + L277 : do if ($__trailing_sign$0$lcssa) { + $670 = $__trailing_sign$0$lcssa + 1 | 0; + $671 = $__trailing_sign$0$lcssa + 8 | 0; + $672 = $__trailing_sign$0$lcssa + 4 | 0; + $__i$0 = 1; + L279 : while (1) { + $673 = HEAP8[$__trailing_sign$0$lcssa >> 0] | 0; + if (!($673 & 1)) $680 = ($673 & 255) >>> 1; else $680 = HEAP32[$672 >> 2] | 0; + if ($__i$0 >>> 0 >= $680 >>> 0) break L277; + $681 = HEAP32[$__b >> 2] | 0; + do if (!$681) $694 = 0; else if ((HEAP32[$681 + 12 >> 2] | 0) == (HEAP32[$681 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$681 >> 2] | 0) + 36 >> 2] & 127]($681) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $694 = 0; + break; + } else { + $694 = HEAP32[$__b >> 2] | 0; + break; + } else $694 = $681; while (0); + $693 = ($694 | 0) == 0; + $695 = HEAP32[$__e >> 2] | 0; + do if (!$695) label = 218; else { + if ((HEAP32[$695 + 12 >> 2] | 0) == (HEAP32[$695 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$695 >> 2] | 0) + 36 >> 2] & 127]($695) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 218; + break; + } + if (!$693) break L279; + } while (0); + if ((label | 0) == 218) { + label = 0; + if ($693) break; + } + $707 = HEAP32[$__b >> 2] | 0; + $709 = HEAP32[$707 + 12 >> 2] | 0; + if (($709 | 0) == (HEAP32[$707 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$707 >> 2] | 0) + 36 >> 2] & 127]($707) | 0; else $$0$i$i = HEAPU8[$709 >> 0] | 0; + if (!(HEAP8[$__trailing_sign$0$lcssa >> 0] & 1)) $725 = $670; else $725 = HEAP32[$671 >> 2] | 0; + if (($$0$i$i & 255) << 24 >> 24 != (HEAP8[$725 + $__i$0 >> 0] | 0)) break; + $730 = $__i$0 + 1 | 0; + $731 = HEAP32[$__b >> 2] | 0; + $732 = $731 + 12 | 0; + $733 = HEAP32[$732 >> 2] | 0; + if (($733 | 0) == (HEAP32[$731 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$731 >> 2] | 0) + 40 >> 2] & 127]($731) | 0; + $__i$0 = $730; + continue; + } else { + HEAP32[$732 >> 2] = $733 + 1; + $__i$0 = $730; + continue; + } + } + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + break L275; + } while (0); + $741 = HEAP32[$__gb >> 2] | 0; + if (($741 | 0) == ($$lcssa224 | 0)) $$0 = 1; else { + HEAP32[$__et >> 2] = 0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grp, $741, $$lcssa224, $__et); + if (!(HEAP32[$__et >> 2] | 0)) $$0 = 1; else { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$0 = 0; + } + } + } while (0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__spaces); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__nsn); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__psn); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + $747 = HEAP32[$__gb >> 2] | 0; + HEAP32[$__gb >> 2] = 0; + if ($747) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($747); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i46 = 0, $$0$i$i$i$i62 = 0, $$0$i$i$i26 = 0, $$0$i$i117 = 0, $$0$i49 = 0, $$01$i$i$i122 = 0, $$01$i$i$i41126 = 0, $$01$i$i$i57130 = 0, $$1$i = 0, $$lcssa = 0, $$lcssa154 = 0, $$lcssa155 = 0, $$lcssa157 = 0, $$lcssa158 = 0, $$lcssa160 = 0, $$lcssa161 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $105 = 0, $107 = 0, $108 = 0, $11 = 0, $110 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $117 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $123 = 0, $125 = 0, $126 = 0, $128 = 0, $129 = 0, $13 = 0, $131 = 0, $132 = 0, $134 = 0, $138 = 0, $14 = 0, $141 = 0, $145 = 0, $148 = 0, $148$phi = 0, $149 = 0, $15 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $165 = 0, $17 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $18 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $19 = 0, $190 = 0, $192 = 0, $195 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $21 = 0, $211 = 0, $214 = 0, $214$phi = 0, $215 = 0, $22 = 0, $222 = 0, $223 = 0, $225 = 0, $229 = 0, $23 = 0, $231 = 0, $236 = 0, $238 = 0, $239 = 0, $24 = 0, $241 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $255 = 0, $257 = 0, $260 = 0, $261 = 0, $265 = 0, $269 = 0, $272 = 0, $276 = 0, $279 = 0, $279$phi = 0, $280 = 0, $287 = 0, $288 = 0, $290 = 0, $294 = 0, $296 = 0, $3 = 0, $301 = 0, $303 = 0, $304 = 0, $306 = 0, $31 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $320 = 0, $322 = 0, $325 = 0, $326 = 0, $333 = 0, $334 = 0, $34 = 0, $340 = 0, $346 = 0, $35 = 0, $354 = 0, $356 = 0, $357 = 0, $360 = 0, $365 = 0, $372 = 0, $373 = 0, $382 = 0, $384 = 0, $394 = 0, $4 = 0, $43 = 0, $44 = 0, $46 = 0, $5 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $60 = 0, $62 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $70 = 0, $72 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $86 = 0, $88 = 0, $9 = 0, $91 = 0, $92 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__p$0$i$i116 = 0, $__p$0$ph$i$i = 0, $e$0$i124 = 0, $e$0$i124$lcssa153 = 0, $e$0$i33128 = 0, $e$0$i33128$lcssa156 = 0, $e$0$i52132 = 0, $e$0$i52132$lcssa159 = 0, $n$0120 = 0, $n$0120$lcssa = 0, $num$i51 = 0, $t$0$i125 = 0, $t$0$i34129 = 0, $t$0$i53133 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 480 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer4 = sp + 72 | 0; + $vararg_buffer1 = sp + 48 | 0; + $vararg_buffer = sp + 24 | 0; + $0 = sp; + $num$i51 = sp + 432 | 0; + $1 = sp + 408 | 0; + $2 = sp + 396 | 0; + $3 = sp + 384 | 0; + $4 = sp + 360 | 0; + $5 = sp + 336 | 0; + $6 = sp + 320 | 0; + $7 = sp + 308 | 0; + $8 = sp + 296 | 0; + $9 = sp + 284 | 0; + $10 = sp + 272 | 0; + $11 = sp + 260 | 0; + $12 = sp + 248 | 0; + $13 = sp + 236 | 0; + $14 = sp + 224 | 0; + $15 = sp + 212 | 0; + $16 = sp + 200 | 0; + $17 = sp + 188 | 0; + $18 = sp + 176 | 0; + $19 = sp + 152 | 0; + $20 = sp + 140 | 0; + $21 = sp + 128 | 0; + $22 = sp + 116 | 0; + $23 = sp + 104 | 0; + $24 = sp + 92 | 0; + $25 = $last; + L1 : do if (($25 - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 76) { + $31 = $first + 1 | 0; + do switch (HEAP8[$31 >> 0] | 0) { + case 84: + { + $$0 = $first; + break L1; + break; + } + case 119: + { + $34 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 48933, 7); + $35 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($34, $last, $3, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$0 = ($35 | 0) == ($34 | 0) ? $first : $35; + break L1; + break; + } + case 98: + { + if ((HEAP8[$first + 3 >> 0] | 0) != 69) { + $$0 = $first; + break L1; + } + switch (HEAP8[$first + 2 >> 0] | 0) { + case 48: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($4, 56786); + $43 = $db + 4 | 0; + $44 = HEAP32[$43 >> 2] | 0; + $46 = HEAP32[$db + 8 >> 2] | 0; + if ($44 >>> 0 < $46 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($44, $4); + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 24; + } else { + $53 = HEAP32[$db >> 2] | 0; + $54 = $44 - $53 | 0; + $55 = ($54 | 0) / 24 | 0; + $56 = $55 + 1 | 0; + if (($54 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $60 = ($46 - $53 | 0) / 24 | 0; + if ($60 >>> 0 < 1073741823) { + $62 = $60 << 1; + $$0$i$i$i = $62 >>> 0 < $56 >>> 0 ? $56 : $62; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $55, $db + 12 | 0); + $65 = $0 + 8 | 0; + $66 = HEAP32[$65 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($66, $4); + HEAP32[$65 >> 2] = $66 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); + $$0 = $first + 4 | 0; + break L1; + break; + } + case 49: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($5, 56781); + $69 = $db + 4 | 0; + $70 = HEAP32[$69 >> 2] | 0; + $72 = HEAP32[$db + 8 >> 2] | 0; + if ($70 >>> 0 < $72 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($70, $5); + HEAP32[$69 >> 2] = (HEAP32[$69 >> 2] | 0) + 24; + } else { + $79 = HEAP32[$db >> 2] | 0; + $80 = $70 - $79 | 0; + $81 = ($80 | 0) / 24 | 0; + $82 = $81 + 1 | 0; + if (($80 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $86 = ($72 - $79 | 0) / 24 | 0; + if ($86 >>> 0 < 1073741823) { + $88 = $86 << 1; + $$0$i$i$i26 = $88 >>> 0 < $82 >>> 0 ? $82 : $88; + } else $$0$i$i$i26 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i26, $81, $db + 12 | 0); + $91 = $0 + 8 | 0; + $92 = HEAP32[$91 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($92, $5); + HEAP32[$91 >> 2] = $92 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $$0 = $first + 4 | 0; + break L1; + break; + } + default: + { + $$0 = $first; + break L1; + } + } + break; + } + case 99: + { + $95 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, 48941, 4); + $96 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($95, $last, $6, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); + $$0 = ($96 | 0) == ($95 | 0) ? $first : $96; + break L1; + break; + } + case 97: + { + $98 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($7, 48946, 11); + $99 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($98, $last, $7, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); + $$0 = ($99 | 0) == ($98 | 0) ? $first : $99; + break L1; + break; + } + case 104: + { + $101 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($8, 48958, 13); + $102 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($101, $last, $8, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); + $$0 = ($102 | 0) == ($101 | 0) ? $first : $102; + break L1; + break; + } + case 115: + { + $104 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($9, 48972, 5); + $105 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($104, $last, $9, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); + $$0 = ($105 | 0) == ($104 | 0) ? $first : $105; + break L1; + break; + } + case 116: + { + $107 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($10, 48978, 14); + $108 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($107, $last, $10, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10); + $$0 = ($108 | 0) == ($107 | 0) ? $first : $108; + break L1; + break; + } + case 105: + { + $110 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($11, 56692, 0); + $111 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($110, $last, $11, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11); + $$0 = ($111 | 0) == ($110 | 0) ? $first : $111; + break L1; + break; + } + case 106: + { + $113 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($12, 48993, 1); + $114 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($113, $last, $12, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12); + $$0 = ($114 | 0) == ($113 | 0) ? $first : $114; + break L1; + break; + } + case 108: + { + $116 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 56687, 1); + $117 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($116, $last, $13, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13); + $$0 = ($117 | 0) == ($116 | 0) ? $first : $117; + break L1; + break; + } + case 109: + { + $119 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 48995, 2); + $120 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($119, $last, $14, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14); + $$0 = ($120 | 0) == ($119 | 0) ? $first : $120; + break L1; + break; + } + case 120: + { + $122 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 56689, 2); + $123 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($122, $last, $15, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15); + $$0 = ($123 | 0) == ($122 | 0) ? $first : $123; + break L1; + break; + } + case 121: + { + $125 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 48998, 3); + $126 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($125, $last, $16, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16); + $$0 = ($126 | 0) == ($125 | 0) ? $first : $126; + break L1; + break; + } + case 110: + { + $128 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 49002, 8); + $129 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($128, $last, $17, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17); + $$0 = ($129 | 0) == ($128 | 0) ? $first : $129; + break L1; + break; + } + case 111: + { + $131 = $first + 2 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 49011, 17); + $132 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($131, $last, $18, $db) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18); + $$0 = ($132 | 0) == ($131 | 0) ? $first : $132; + break L1; + break; + } + case 102: + { + $134 = $first + 2 | 0; + L67 : do if (($25 - $134 | 0) >>> 0 > 8) { + $138 = $first + 10 | 0; + $141 = HEAP8[$134 >> 0] | 0; + $148 = $first; + $e$0$i124 = $0; + $t$0$i125 = $134; + while (1) { + if (!(_isxdigit($141 << 24 >> 24) | 0)) { + $$0$i = $134; + break L67; + } + $145 = HEAP8[$t$0$i125 >> 0] | 0; + $149 = HEAP8[$148 + 3 >> 0] | 0; + HEAP8[$e$0$i124 >> 0] = ((($149 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($149 & 255) + ((($145 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $145 << 4); + $156 = $t$0$i125 + 2 | 0; + $157 = $e$0$i124 + 1 | 0; + $159 = HEAP8[$156 >> 0] | 0; + if (($156 | 0) == ($138 | 0)) { + $$lcssa154 = $157; + $$lcssa155 = $159; + $e$0$i124$lcssa153 = $e$0$i124; + break; + } else { + $148$phi = $t$0$i125; + $141 = $159; + $e$0$i124 = $157; + $t$0$i125 = $156; + $148 = $148$phi; + } + } + if ($$lcssa155 << 24 >> 24 == 69) { + if (($0 | 0) != ($$lcssa154 | 0) & $0 >>> 0 < $e$0$i124$lcssa153 >>> 0) { + $$01$i$i$i122 = $0; + $165 = $e$0$i124$lcssa153; + do { + $163 = HEAP8[$$01$i$i$i122 >> 0] | 0; + HEAP8[$$01$i$i$i122 >> 0] = HEAP8[$165 >> 0] | 0; + HEAP8[$165 >> 0] = $163; + $$01$i$i$i122 = $$01$i$i$i122 + 1 | 0; + $165 = $165 + -1 | 0; + } while ($$01$i$i$i122 >>> 0 < $165 >>> 0); + } + dest = $num$i51; + stop = dest + 24 | 0; + do { + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$vararg_buffer >> 3] = +HEAPF32[$0 >> 2]; + $171 = _snprintf($num$i51, 24, 49029, $vararg_buffer) | 0; + if ($171 >>> 0 > 23) $$0$i = $134; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $171); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + $173 = $db + 4 | 0; + $174 = HEAP32[$173 >> 2] | 0; + $176 = HEAP32[$db + 8 >> 2] | 0; + if ($174 >>> 0 < $176 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($174, $1); + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 24; + } else { + $183 = HEAP32[$db >> 2] | 0; + $184 = $174 - $183 | 0; + $185 = ($184 | 0) / 24 | 0; + $186 = $185 + 1 | 0; + if (($184 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $190 = ($176 - $183 | 0) / 24 | 0; + if ($190 >>> 0 < 1073741823) { + $192 = $190 << 1; + $$0$i$i$i$i = $192 >>> 0 < $186 >>> 0 ? $186 : $192; + } else $$0$i$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer, $$0$i$i$i$i, $185, $db + 12 | 0); + $195 = $vararg_buffer + 8 | 0; + $196 = HEAP32[$195 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($196, $1); + HEAP32[$195 >> 2] = $196 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$0$i = $first + 11 | 0; + } + } else $$0$i = $134; + } else $$0$i = $134; while (0); + $$0 = ($$0$i | 0) == ($134 | 0) ? $first : $$0$i; + break L1; + break; + } + case 100: + { + $200 = $first + 2 | 0; + L91 : do if (($25 - $200 | 0) >>> 0 > 16) { + $204 = $first + 18 | 0; + $207 = HEAP8[$200 >> 0] | 0; + $214 = $first; + $e$0$i33128 = $0; + $t$0$i34129 = $200; + while (1) { + if (!(_isxdigit($207 << 24 >> 24) | 0)) { + $$0$i49 = $200; + break L91; + } + $211 = HEAP8[$t$0$i34129 >> 0] | 0; + $215 = HEAP8[$214 + 3 >> 0] | 0; + HEAP8[$e$0$i33128 >> 0] = ((($215 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($215 & 255) + ((($211 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $211 << 4); + $222 = $t$0$i34129 + 2 | 0; + $223 = $e$0$i33128 + 1 | 0; + $225 = HEAP8[$222 >> 0] | 0; + if (($222 | 0) == ($204 | 0)) { + $$lcssa157 = $223; + $$lcssa158 = $225; + $e$0$i33128$lcssa156 = $e$0$i33128; + break; + } else { + $214$phi = $t$0$i34129; + $207 = $225; + $e$0$i33128 = $223; + $t$0$i34129 = $222; + $214 = $214$phi; + } + } + if ($$lcssa158 << 24 >> 24 == 69) { + if (($0 | 0) != ($$lcssa157 | 0) & $0 >>> 0 < $e$0$i33128$lcssa156 >>> 0) { + $$01$i$i$i41126 = $0; + $231 = $e$0$i33128$lcssa156; + do { + $229 = HEAP8[$$01$i$i$i41126 >> 0] | 0; + HEAP8[$$01$i$i$i41126 >> 0] = HEAP8[$231 >> 0] | 0; + HEAP8[$231 >> 0] = $229; + $$01$i$i$i41126 = $$01$i$i$i41126 + 1 | 0; + $231 = $231 + -1 | 0; + } while ($$01$i$i$i41126 >>> 0 < $231 >>> 0); + } + dest = $num$i51; + stop = dest + 32 | 0; + do { + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$vararg_buffer1 >> 3] = +HEAPF64[$0 >> 3]; + $236 = _snprintf($num$i51, 32, 49033, $vararg_buffer1) | 0; + if ($236 >>> 0 > 31) $$0$i49 = $200; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $236); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + $238 = $db + 4 | 0; + $239 = HEAP32[$238 >> 2] | 0; + $241 = HEAP32[$db + 8 >> 2] | 0; + if ($239 >>> 0 < $241 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($239, $1); + HEAP32[$238 >> 2] = (HEAP32[$238 >> 2] | 0) + 24; + } else { + $248 = HEAP32[$db >> 2] | 0; + $249 = $239 - $248 | 0; + $250 = ($249 | 0) / 24 | 0; + $251 = $250 + 1 | 0; + if (($249 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $255 = ($241 - $248 | 0) / 24 | 0; + if ($255 >>> 0 < 1073741823) { + $257 = $255 << 1; + $$0$i$i$i$i46 = $257 >>> 0 < $251 >>> 0 ? $251 : $257; + } else $$0$i$i$i$i46 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer1, $$0$i$i$i$i46, $250, $db + 12 | 0); + $260 = $vararg_buffer1 + 8 | 0; + $261 = HEAP32[$260 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($261, $1); + HEAP32[$260 >> 2] = $261 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer1); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer1); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$0$i49 = $first + 19 | 0; + } + } else $$0$i49 = $200; + } else $$0$i49 = $200; while (0); + $$0 = ($$0$i49 | 0) == ($200 | 0) ? $first : $$0$i49; + break L1; + break; + } + case 101: + { + $265 = $first + 2 | 0; + L115 : do if (($25 - $265 | 0) >>> 0 > 20) { + $269 = $first + 22 | 0; + $272 = HEAP8[$265 >> 0] | 0; + $279 = $first; + $e$0$i52132 = $0; + $t$0$i53133 = $265; + while (1) { + if (!(_isxdigit($272 << 24 >> 24) | 0)) { + $$1$i = $265; + break L115; + } + $276 = HEAP8[$t$0$i53133 >> 0] | 0; + $280 = HEAP8[$279 + 3 >> 0] | 0; + HEAP8[$e$0$i52132 >> 0] = ((($280 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($280 & 255) + ((($276 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $276 << 4); + $287 = $t$0$i53133 + 2 | 0; + $288 = $e$0$i52132 + 1 | 0; + $290 = HEAP8[$287 >> 0] | 0; + if (($287 | 0) == ($269 | 0)) { + $$lcssa160 = $288; + $$lcssa161 = $290; + $e$0$i52132$lcssa159 = $e$0$i52132; + break; + } else { + $279$phi = $t$0$i53133; + $272 = $290; + $e$0$i52132 = $288; + $t$0$i53133 = $287; + $279 = $279$phi; + } + } + if ($$lcssa161 << 24 >> 24 == 69) { + if (($0 | 0) != ($$lcssa160 | 0) & $0 >>> 0 < $e$0$i52132$lcssa159 >>> 0) { + $$01$i$i$i57130 = $0; + $296 = $e$0$i52132$lcssa159; + do { + $294 = HEAP8[$$01$i$i$i57130 >> 0] | 0; + HEAP8[$$01$i$i$i57130 >> 0] = HEAP8[$296 >> 0] | 0; + HEAP8[$296 >> 0] = $294; + $$01$i$i$i57130 = $$01$i$i$i57130 + 1 | 0; + $296 = $296 + -1 | 0; + } while ($$01$i$i$i57130 >>> 0 < $296 >>> 0); + } + dest = $num$i51; + stop = dest + 40 | 0; + do { + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$vararg_buffer4 >> 3] = +HEAPF64[$0 >> 3]; + $301 = _snprintf($num$i51, 40, 49036, $vararg_buffer4) | 0; + if ($301 >>> 0 > 39) { + $$1$i = $265; + break; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $301); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + $303 = $db + 4 | 0; + $304 = HEAP32[$303 >> 2] | 0; + $306 = HEAP32[$db + 8 >> 2] | 0; + if ($304 >>> 0 < $306 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($304, $1); + HEAP32[$303 >> 2] = (HEAP32[$303 >> 2] | 0) + 24; + } else { + $313 = HEAP32[$db >> 2] | 0; + $314 = $304 - $313 | 0; + $315 = ($314 | 0) / 24 | 0; + $316 = $315 + 1 | 0; + if (($314 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $320 = ($306 - $313 | 0) / 24 | 0; + if ($320 >>> 0 < 1073741823) { + $322 = $320 << 1; + $$0$i$i$i$i62 = $322 >>> 0 < $316 >>> 0 ? $316 : $322; + } else $$0$i$i$i$i62 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer4, $$0$i$i$i$i62, $315, $db + 12 | 0); + $325 = $vararg_buffer4 + 8 | 0; + $326 = HEAP32[$325 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($326, $1); + HEAP32[$325 >> 2] = $326 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer4); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer4); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$1$i = $first + 23 | 0; + } else $$1$i = $265; + } else $$1$i = $265; while (0); + $$0 = ($$1$i | 0) == ($265 | 0) ? $first : $$1$i; + break L1; + break; + } + case 95: + { + if ((HEAP8[$first + 2 >> 0] | 0) != 90) { + $$0 = $first; + break L1; + } + $333 = $first + 3 | 0; + $334 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($333, $last, $db) | 0; + if (($334 | 0) == ($333 | 0) | ($334 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + STACKTOP = sp; + return ((HEAP8[$334 >> 0] | 0) == 69 ? $334 + 1 | 0 : $first) | 0; + } + default: + { + $340 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($31, $last, $db) | 0; + if (($340 | 0) == ($31 | 0) | ($340 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + if ((HEAP8[$340 >> 0] | 0) == 69) { + $$0 = $340 + 1 | 0; + break L1; + } + if (($340 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } else $n$0120 = $340; + while (1) { + $346 = HEAP8[$n$0120 >> 0] | 0; + if ((($346 << 24 >> 24) + -48 | 0) >>> 0 >= 10) { + $$lcssa = $346; + $n$0120$lcssa = $n$0120; + break; + } + $n$0120 = $n$0120 + 1 | 0; + if (($n$0120 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + } + if (!(($n$0120$lcssa | 0) != ($340 | 0) & $$lcssa << 24 >> 24 == 69)) { + $$0 = $first; + break L1; + } + $354 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($354 | 0)) { + $$0 = $first; + break L1; + } + $356 = $354 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, $356); + $357 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($23, 0, 47883) | 0; + HEAP32[$22 >> 2] = HEAP32[$357 >> 2]; + HEAP32[$22 + 4 >> 2] = HEAP32[$357 + 4 >> 2]; + HEAP32[$22 + 8 >> 2] = HEAP32[$357 + 8 >> 2]; + HEAP32[$357 >> 2] = 0; + HEAP32[$357 + 4 >> 2] = 0; + HEAP32[$357 + 8 >> 2] = 0; + $360 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 47788) | 0; + HEAP32[$21 >> 2] = HEAP32[$360 >> 2]; + HEAP32[$21 + 4 >> 2] = HEAP32[$360 + 4 >> 2]; + HEAP32[$21 + 8 >> 2] = HEAP32[$360 + 8 >> 2]; + HEAP32[$360 >> 2] = 0; + HEAP32[$360 + 4 >> 2] = 0; + HEAP32[$360 + 8 >> 2] = 0; + $365 = $n$0120$lcssa - $340 | 0; + if ($365 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($24); + if ($365 >>> 0 < 11) { + HEAP8[$24 >> 0] = $365 << 1; + $__p$0$ph$i$i = $24 + 1 | 0; + } else { + $372 = $365 + 16 & -16; + $373 = _malloc($372) | 0; + HEAP32[$24 + 8 >> 2] = $373; + HEAP32[$24 >> 2] = $372 | 1; + HEAP32[$24 + 4 >> 2] = $365; + $__p$0$ph$i$i = $373; + } + if (($340 | 0) != ($n$0120$lcssa | 0)) { + $$0$i$i117 = $340; + $__p$0$i$i116 = $__p$0$ph$i$i; + while (1) { + HEAP8[$__p$0$i$i116 >> 0] = HEAP8[$$0$i$i117 >> 0] | 0; + $$0$i$i117 = $$0$i$i117 + 1 | 0; + if (($$0$i$i117 | 0) == ($n$0120$lcssa | 0)) break; else $__p$0$i$i116 = $__p$0$i$i116 + 1 | 0; + } + } + HEAP8[$__p$0$ph$i$i + $365 >> 0] = 0; + $382 = HEAP8[$24 >> 0] | 0; + $384 = ($382 & 1) == 0; + $394 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $384 ? $24 + 1 | 0 : HEAP32[$24 + 8 >> 2] | 0, $384 ? ($382 & 255) >>> 1 : HEAP32[$24 + 4 >> 2] | 0) | 0; + HEAP32[$20 >> 2] = HEAP32[$394 >> 2]; + HEAP32[$20 + 4 >> 2] = HEAP32[$394 + 4 >> 2]; + HEAP32[$20 + 8 >> 2] = HEAP32[$394 + 8 >> 2]; + HEAP32[$394 >> 2] = 0; + HEAP32[$394 + 4 >> 2] = 0; + HEAP32[$394 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($19, $20); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($356, $19); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); + $$0 = $n$0120$lcssa + 1 | 0; + break L1; + } + } while (0); + } else $$0 = $first; else $$0 = $first; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0$i = 0, $$24$ph = 0, $$7 = 0, $$in = 0, $$in109 = 0, $$lcssa150 = 0, $$lcssa151 = 0, $$lcssa156 = 0, $$ph96 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $111 = 0, $118 = 0, $120 = 0, $123 = 0, $127 = 0, $13 = 0, $130 = 0, $135 = 0, $136 = 0, $139 = 0, $140 = 0, $142 = 0, $143 = 0, $152 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $171 = 0, $175 = 0, $176 = 0, $18 = 0, $180 = 0, $183 = 0, $184 = 0, $188 = 0, $191 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $206 = 0, $207 = 0, $209 = 0, $21 = 0, $215 = 0, $22 = 0, $226 = 0, $228 = 0, $240 = 0, $252 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $267 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $281 = 0, $284 = 0, $287 = 0, $29 = 0, $3 = 0, $30 = 0, $303 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $318 = 0, $320 = 0, $331 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $345 = 0, $347 = 0, $349 = 0, $350 = 0, $356 = 0, $361 = 0, $37 = 0, $371 = 0, $373 = 0, $38 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $389 = 0, $392 = 0, $398 = 0, $4 = 0, $402 = 0, $404 = 0, $405 = 0, $411 = 0, $413 = 0, $414 = 0, $42 = 0, $434 = 0, $436 = 0, $446 = 0, $45 = 0, $46 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $58 = 0, $6 = 0, $62 = 0, $65 = 0, $66 = 0, $68 = 0, $7 = 0, $73 = 0, $74 = 0, $76 = 0, $77 = 0, $8 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $90 = 0, $91 = 0, $94 = 0, $99 = 0, $first_arg$0$off0$ph = 0, $first_arg$3$off0$ph = 0, $k$0121 = 0, $k2$0122 = 0, $left$i = 0, $phitmp$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i = 0, $ret1 = 0, $ret2 = 0, $t$0 = 0, $t$1 = 0, $t$1$ph = 0, $t$2 = 0, $tmp = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $left$i = sp + 96 | 0; + $0 = sp + 84 | 0; + $1 = sp + 72 | 0; + $2 = sp + 60 | 0; + $3 = sp + 48 | 0; + $ret2 = sp + 36 | 0; + $ret1 = sp + 24 | 0; + $tmp = sp + 12 | 0; + $4 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$7 = $first; else { + $6 = $db + 56 | 0; + $7 = HEAP32[$6 >> 2] | 0; + $8 = $7 + 1 | 0; + HEAP32[$6 >> 2] = $8; + $9 = $db + 61 | 0; + $10 = HEAP8[$9 >> 0] | 0; + if ($8 >>> 0 > 1) HEAP8[$9 >> 0] = 1; + $13 = HEAP8[$first >> 0] | 0; + L6 : do switch ($13 | 0) { + case 84: + case 71: + { + L107 : do if (($last - $first | 0) > 2) { + switch ($13 | 0) { + case 84: + break; + case 71: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 86: + { + $175 = $first + 2 | 0; + $176 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($175, $last, $db) | 0; + if (($176 | 0) == ($175 | 0)) { + $$0$i = $first; + break L107; + } + $180 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($180 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($180 + -24 | 0, 0, 49699) | 0; + $$0$i = $176; + break L107; + break; + } + case 82: + { + $183 = $first + 2 | 0; + $184 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($183, $last, $db) | 0; + if (($184 | 0) == ($183 | 0)) { + $$0$i = $first; + break L107; + } + $188 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($188 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($188 + -24 | 0, 0, 49719) | 0; + $$0$i = $184; + break L107; + break; + } + default: + { + $$0$i = $first; + break L107; + } + } + break; + } + default: + { + $$0$i = $first; + break L107; + } + } + $18 = $first + 1 | 0; + switch (HEAP8[$18 >> 0] | 0) { + case 86: + { + $21 = $first + 2 | 0; + $22 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0; + if (($22 | 0) == ($21 | 0)) { + $$0$i = $first; + break L107; + } + $26 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($26 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($26 + -24 | 0, 0, 49548) | 0; + $$0$i = $22; + break L107; + break; + } + case 84: + { + $29 = $first + 2 | 0; + $30 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($29, $last, $db) | 0; + if (($30 | 0) == ($29 | 0)) { + $$0$i = $first; + break L107; + } + $34 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($34 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($34 + -24 | 0, 0, 49560) | 0; + $$0$i = $30; + break L107; + break; + } + case 73: + { + $37 = $first + 2 | 0; + $38 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($37, $last, $db) | 0; + if (($38 | 0) == ($37 | 0)) { + $$0$i = $first; + break L107; + } + $42 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($42 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($42 + -24 | 0, 0, 49569) | 0; + $$0$i = $38; + break L107; + break; + } + case 83: + { + $45 = $first + 2 | 0; + $46 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($45, $last, $db) | 0; + if (($46 | 0) == ($45 | 0)) { + $$0$i = $first; + break L107; + } + $50 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($50 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($50 + -24 | 0, 0, 49583) | 0; + $$0$i = $46; + break L107; + break; + } + case 99: + { + $53 = $first + 2 | 0; + $54 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($53, $last) | 0; + if (($54 | 0) == ($53 | 0)) { + $$0$i = $first; + break L107; + } + $56 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($54, $last) | 0; + if (($56 | 0) == ($54 | 0)) { + $$0$i = $first; + break L107; + } + $58 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($56, $last, $db) | 0; + if (($58 | 0) == ($56 | 0)) { + $$0$i = $first; + break L107; + } + $62 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($62 | 0)) { + $$0$i = $first; + break L107; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($62 + -24 | 0, 0, 49602) | 0; + $$0$i = $58; + break L107; + break; + } + case 67: + { + $65 = $first + 2 | 0; + $66 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($65, $last, $db) | 0; + if (($66 | 0) == ($65 | 0)) { + $$0$i = $first; + break L107; + } + $68 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($66, $last) | 0; + if (($68 | 0) == ($66 | 0) | ($68 | 0) == ($last | 0)) { + $$0$i = $first; + break L107; + } + if ((HEAP8[$68 >> 0] | 0) != 95) { + $$0$i = $first; + break L107; + } + $73 = $68 + 1 | 0; + $74 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($73, $last, $db) | 0; + if (($74 | 0) == ($73 | 0)) { + $$0$i = $first; + break L107; + } + $76 = $db + 4 | 0; + $77 = HEAP32[$76 >> 2] | 0; + if ((($77 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0$i = $first; + break L107; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($left$i, $77 + -24 | 0); + $85 = HEAP32[$76 >> 2] | 0; + $86 = $85 + -24 | 0; + $88 = $85; + do { + $87 = $88 + -24 | 0; + HEAP32[$76 >> 2] = $87; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($87); + $88 = HEAP32[$76 >> 2] | 0; + } while (($88 | 0) != ($86 | 0)); + $90 = $85 + -48 | 0; + $91 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($left$i, 0, 49629) | 0; + HEAP32[$2 >> 2] = HEAP32[$91 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$91 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$91 + 8 >> 2]; + HEAP32[$91 >> 2] = 0; + HEAP32[$91 + 4 >> 2] = 0; + HEAP32[$91 + 8 >> 2] = 0; + $94 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 49654) | 0; + HEAP32[$1 >> 2] = HEAP32[$94 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$94 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$94 + 8 >> 2]; + HEAP32[$94 >> 2] = 0; + HEAP32[$94 + 4 >> 2] = 0; + HEAP32[$94 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$76 >> 2] | 0) + -24 | 0); + $99 = HEAP8[$3 >> 0] | 0; + $101 = ($99 & 1) == 0; + $111 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $101 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $101 ? ($99 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; + HEAP32[$0 >> 2] = HEAP32[$111 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$111 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$111 + 8 >> 2]; + HEAP32[$111 >> 2] = 0; + HEAP32[$111 + 4 >> 2] = 0; + HEAP32[$111 + 8 >> 2] = 0; + do if (!(HEAP8[$90 >> 0] & 1)) { + HEAP8[$90 + 1 >> 0] = 0; + HEAP8[$90 >> 0] = 0; + } else { + $118 = $85 + -40 | 0; + HEAP8[HEAP32[$118 >> 2] >> 0] = 0; + $120 = $85 + -44 | 0; + HEAP32[$120 >> 2] = 0; + $$pre$i$i$i$i = HEAP8[$90 >> 0] | 0; + if (!($$pre$i$i$i$i & 1)) { + $127 = $$pre$i$i$i$i; + $136 = 10; + } else { + $123 = HEAP32[$90 >> 2] | 0; + $127 = $123 & 255; + $136 = ($123 & -2) + -1 | 0; + } + if (!($127 & 1)) { + $130 = ($127 & 255) >>> 1; + if (($127 & 255) < 22) { + $135 = 10; + $155 = $130; + $446 = 1; + } else { + $135 = ($130 + 16 & 240) + -1 | 0; + $155 = $130; + $446 = 1; + } + } else { + $135 = 10; + $155 = 0; + $446 = 0; + } + if (($135 | 0) != ($136 | 0)) { + if (($135 | 0) == 10) { + $142 = $90 + 1 | 0; + $143 = HEAP32[$118 >> 2] | 0; + if ($446) { + _memcpy($142 | 0, $143 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0; + _free($143); + } else { + HEAP8[$142 >> 0] = HEAP8[$143 >> 0] | 0; + _free($143); + } + HEAP8[$90 >> 0] = $155 << 1; + break; + } + $139 = $135 + 1 | 0; + $140 = _malloc($139) | 0; + if (!($135 >>> 0 <= $136 >>> 0 & ($140 | 0) == 0)) { + if ($446) _memcpy($140 | 0, $90 + 1 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0; else { + $152 = HEAP32[$118 >> 2] | 0; + HEAP8[$140 >> 0] = HEAP8[$152 >> 0] | 0; + _free($152); + } + HEAP32[$90 >> 2] = $139 | 1; + HEAP32[$120 >> 2] = $155; + HEAP32[$118 >> 2] = $140; + } + } + } while (0); + HEAP32[$90 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$90 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$90 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($left$i); + $$0$i = $74; + break L107; + break; + } + default: + { + $160 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($18, $last) | 0; + if (($160 | 0) == ($18 | 0)) { + $$0$i = $first; + break L107; + } + $162 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($160, $last, $db) | 0; + if (($162 | 0) == ($160 | 0)) { + $$0$i = $first; + break L107; + } + $166 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($166 | 0)) { + $$0$i = $first; + break L107; + } + $171 = $166 + -24 | 0; + if ((HEAP8[$first + 2 >> 0] | 0) == 118) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 49659) | 0; + $$0$i = $162; + break L107; + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 49677) | 0; + $$0$i = $162; + break L107; + } + } + } + } else $$0$i = $first; while (0); + $$24$ph = $$0$i; + break; + } + default: + { + $191 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + $193 = HEAP32[$db + 48 >> 2] | 0; + $195 = HEAP32[$db + 52 >> 2] | 0; + if (($191 | 0) == ($first | 0)) $$24$ph = $first; else if (($191 | 0) == ($last | 0)) $$24$ph = $last; else { + switch (HEAP8[$191 >> 0] | 0) { + case 46: + case 69: + { + $$24$ph = $191; + break L6; + break; + } + default: + {} + } + $199 = HEAP8[$9 >> 0] | 0; + HEAP8[$9 >> 0] = 0; + HEAP32[$ret2 >> 2] = 0; + HEAP32[$ret2 + 4 >> 2] = 0; + HEAP32[$ret2 + 8 >> 2] = 0; + $203 = $db + 4 | 0; + $204 = HEAP32[$203 >> 2] | 0; + L11 : do if ((HEAP32[$db >> 2] | 0) != ($204 | 0)) { + $206 = $204 + -24 | 0; + $207 = HEAP8[$206 >> 0] | 0; + $209 = ($207 & 1) == 0; + if ($209) $215 = ($207 & 255) >>> 1; else $215 = HEAP32[$204 + -20 >> 2] | 0; + if ($215) { + if (!(HEAP8[$db + 60 >> 0] | 0)) { + if ($209) { + $226 = ($207 & 255) >>> 1; + $228 = $206 + 1 | 0; + } else { + $226 = HEAP32[$204 + -20 >> 2] | 0; + $228 = HEAP32[$204 + -16 >> 2] | 0; + } + if ((HEAP8[$228 + ($226 + -1) >> 0] | 0) == 62) { + if ($209) { + $$in = ($207 & 255) >>> 1; + $240 = $206 + 1 | 0; + } else { + $$in = HEAP32[$204 + -20 >> 2] | 0; + $240 = HEAP32[$204 + -16 >> 2] | 0; + } + if ((HEAP8[$240 + ($$in + -2) >> 0] | 0) == 45) { + $331 = $204; + $t$0 = $191; + } else { + if ($209) { + $$in109 = ($207 & 255) >>> 1; + $252 = $206 + 1 | 0; + } else { + $$in109 = HEAP32[$204 + -20 >> 2] | 0; + $252 = HEAP32[$204 + -16 >> 2] | 0; + } + if ((HEAP8[$252 + ($$in109 + -2) >> 0] | 0) == 62) { + $331 = $204; + $t$0 = $191; + } else { + $255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($191, $last, $db) | 0; + if (($255 | 0) == ($191 | 0)) break; + $257 = HEAP32[$203 >> 2] | 0; + if ((($257 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) break; + $264 = $257 + -24 | 0; + HEAP32[$ret1 >> 2] = HEAP32[$264 >> 2]; + HEAP32[$ret1 + 4 >> 2] = HEAP32[$264 + 4 >> 2]; + HEAP32[$ret1 + 8 >> 2] = HEAP32[$264 + 8 >> 2]; + HEAP32[$264 >> 2] = 0; + HEAP32[$264 + 4 >> 2] = 0; + HEAP32[$264 + 8 >> 2] = 0; + $267 = $257 + -12 | 0; + L37 : do if (!(HEAP8[$ret2 >> 0] & 1)) { + HEAP8[$ret2 + 1 >> 0] = 0; + HEAP8[$ret2 >> 0] = 0; + } else { + $272 = $ret2 + 8 | 0; + $273 = HEAP32[$272 >> 2] | 0; + HEAP8[$273 >> 0] = 0; + $274 = $ret2 + 4 | 0; + HEAP32[$274 >> 2] = 0; + $275 = HEAP32[$ret2 >> 2] | 0; + $phitmp$i$i$i$i$i$i = ($275 & -2) + -1 | 0; + $277 = $275 & 255; + do if (!($277 & 1)) { + $281 = $275 >>> 1 & 127; + if (($277 & 255) < 22) { + _memcpy($ret2 + 1 | 0, $273 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0; + _free($273); + $$ph96 = $281; + break; + } + $284 = $281 + 16 & 240; + $phitmp$i2$i$i$i$i$i = $284 + -1 | 0; + if (($phitmp$i2$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i | 0)) break L37; + $287 = _malloc($284) | 0; + if ($phitmp$i2$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i >>> 0 & ($287 | 0) == 0) break L37; + _memcpy($287 | 0, $ret2 + 1 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0; + HEAP32[$ret2 >> 2] = $284 | 1; + HEAP32[$274 >> 2] = $281; + HEAP32[$272 >> 2] = $287; + break L37; + } else { + HEAP8[$ret2 + 1 >> 0] = 0; + _free($273); + $$ph96 = 0; + } while (0); + HEAP8[$ret2 >> 0] = $$ph96 << 1; + } while (0); + HEAP32[$ret2 >> 2] = HEAP32[$267 >> 2]; + HEAP32[$ret2 + 4 >> 2] = HEAP32[$267 + 4 >> 2]; + HEAP32[$ret2 + 8 >> 2] = HEAP32[$267 + 8 >> 2]; + HEAP32[$267 >> 2] = 0; + HEAP32[$267 + 4 >> 2] = 0; + HEAP32[$267 + 8 >> 2] = 0; + $303 = HEAP8[$ret2 >> 0] | 0; + if (!((($303 & 1) == 0 ? ($303 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($ret1, 32); + $312 = HEAP32[$203 >> 2] | 0; + $313 = $312 + -24 | 0; + $315 = $312; + do { + $314 = $315 + -24 | 0; + HEAP32[$203 >> 2] = $314; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($314); + $315 = HEAP32[$203 >> 2] | 0; + } while (($315 | 0) != ($313 | 0)); + $318 = HEAP8[$ret1 >> 0] | 0; + $320 = ($318 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($312 + -48 | 0, 0, $320 ? $ret1 + 1 | 0 : HEAP32[$ret1 + 8 >> 2] | 0, $320 ? ($318 & 255) >>> 1 : HEAP32[$ret1 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret1); + $331 = HEAP32[$203 >> 2] | 0; + $t$0 = $255; + } + } + } else { + $331 = $204; + $t$0 = $191; + } + } else { + $331 = $204; + $t$0 = $191; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($331 + -24 | 0, 40); + if (($t$0 | 0) == ($last | 0)) label = 105; else if ((HEAP8[$t$0 >> 0] | 0) == 118) { + $413 = HEAP32[$db >> 2] | 0; + $414 = HEAP32[$203 >> 2] | 0; + $t$2 = $t$0 + 1 | 0; + } else label = 105; + L60 : do if ((label | 0) == 105) { + $335 = $tmp + 4 | 0; + $336 = $4 + 8 | 0; + $337 = $4 + 1 | 0; + $338 = $4 + 4 | 0; + $339 = $tmp + 8 | 0; + $340 = $tmp + 1 | 0; + $341 = $tmp + 4 | 0; + $342 = $tmp + 8 | 0; + $first_arg$0$off0$ph = 1; + $t$1$ph = $t$0; + while (1) { + $345 = HEAP32[$203 >> 2] | 0; + $347 = HEAP32[$db >> 2] | 0; + $t$1 = $t$1$ph; + while (1) { + $349 = ($345 - $347 | 0) / 24 | 0; + $350 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1, $last, $db) | 0; + $345 = HEAP32[$203 >> 2] | 0; + $347 = HEAP32[$db >> 2] | 0; + $356 = ($345 - $347 | 0) / 24 | 0; + if (($350 | 0) == ($t$1 | 0)) { + $413 = $347; + $414 = $345; + $t$2 = $t$1; + break L60; + } + if ($356 >>> 0 > $349 >>> 0) { + $$lcssa150 = $349; + $$lcssa151 = $350; + $$lcssa156 = $356; + break; + } else $t$1 = $350; + } + HEAP32[$tmp >> 2] = 0; + HEAP32[$341 >> 2] = 0; + HEAP32[$342 >> 2] = 0; + if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) { + $k$0121 = $$lcssa150; + do { + $361 = HEAP8[$tmp >> 0] | 0; + if ((($361 & 1) == 0 ? ($361 & 255) >>> 1 : HEAP32[$335 >> 2] | 0) | 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($tmp, 47885) | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0121 * 24 | 0) | 0); + $371 = HEAP8[$4 >> 0] | 0; + $373 = ($371 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($tmp, $373 ? $337 : HEAP32[$336 >> 2] | 0, $373 ? ($371 & 255) >>> 1 : HEAP32[$338 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + $k$0121 = $k$0121 + 1 | 0; + } while ($k$0121 >>> 0 < $$lcssa156 >>> 0); + } + if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) { + $k2$0122 = $$lcssa150; + do { + $382 = HEAP32[$203 >> 2] | 0; + $383 = $382 + -24 | 0; + $385 = $382; + do { + $384 = $385 + -24 | 0; + HEAP32[$203 >> 2] = $384; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($384); + $385 = HEAP32[$203 >> 2] | 0; + } while (($385 | 0) != ($383 | 0)); + $k2$0122 = $k2$0122 + 1 | 0; + } while ($k2$0122 >>> 0 < $$lcssa156 >>> 0); + } + $389 = HEAP8[$tmp >> 0] | 0; + $392 = HEAP32[$335 >> 2] | 0; + if (!((($389 & 1) == 0 ? ($389 & 255) >>> 1 : $392) | 0)) $first_arg$3$off0$ph = $first_arg$0$off0$ph; else { + $398 = HEAP32[$203 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($398 | 0)) break; + if ($first_arg$0$off0$ph) { + $402 = $398; + $404 = $389; + $411 = $392; + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($398 + -24 | 0, 47885) | 0; + $402 = HEAP32[$203 >> 2] | 0; + $404 = HEAP8[$tmp >> 0] | 0; + $411 = HEAP32[$335 >> 2] | 0; + } + $405 = ($404 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($402 + -24 | 0, $405 ? $340 : HEAP32[$339 >> 2] | 0, $405 ? ($404 & 255) >>> 1 : $411) | 0; + $first_arg$3$off0$ph = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); + $first_arg$0$off0$ph = $first_arg$3$off0$ph; + $t$1$ph = $$lcssa151; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); + break L11; + } while (0); + if (($413 | 0) != ($414 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($414 + -24 | 0, 41); + if ($193 & 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 47838) | 0; + if ($193 & 2) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 47845) | 0; + if ($193 & 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 47855) | 0; + switch ($195 | 0) { + case 1: + { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 47888) | 0; + break; + } + case 2: + { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 47891) | 0; + break; + } + default: + {} + } + $434 = HEAP8[$ret2 >> 0] | 0; + $436 = ($434 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$203 >> 2] | 0) + -24 | 0, $436 ? $ret2 + 1 | 0 : HEAP32[$ret2 + 8 >> 2] | 0, $436 ? ($434 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2); + HEAP8[$9 >> 0] = $199; + $$24$ph = $t$2; + break L6; + } + } + } while (0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2); + HEAP8[$9 >> 0] = $10; + HEAP32[$6 >> 2] = $7; + $$7 = $first; + break L1; + } + } + } while (0); + HEAP8[$9 >> 0] = $10; + HEAP32[$6 >> 2] = $7; + $$7 = $$24$ph; + } while (0); + STACKTOP = sp; + return $$7 | 0; +} + +function _vfscanf($f, $fmt, $ap) { + $f = $f | 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + var $$ = 0, $$lcssa = 0, $$lcssa38 = 0, $$lcssa384 = 0, $$pre = 0, $$pre$phi182Z2D = 0, $$pre170 = 0, $$pre178 = 0, $$size$0 = 0, $0 = 0, $10 = 0, $104 = 0, $105 = 0, $107 = 0, $109 = 0, $11 = 0, $112 = 0, $115 = 0, $117 = 0, $12 = 0, $125 = 0, $129 = 0, $13 = 0, $136 = 0, $14 = 0, $141 = 0, $145 = 0, $15 = 0, $150 = 0, $151 = 0, $157 = 0, $160 = 0, $164 = 0, $166 = 0, $168 = 0, $17 = 0, $173 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $181 = 0, $186 = 0, $190 = 0, $195 = 0, $196 = 0, $197 = 0, $199 = 0, $20 = 0, $201 = 0, $202 = 0, $210 = 0, $220 = 0, $222 = 0, $226 = 0, $228 = 0, $236 = 0, $244 = 0, $245 = 0, $248 = 0, $25 = 0, $250 = 0, $256 = 0, $263 = 0, $265 = 0, $271 = 0, $277 = 0, $281 = 0, $284 = 0, $291 = 0, $306 = 0, $310 = 0.0, $32 = 0, $334 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $62 = 0, $7 = 0, $8 = 0, $81 = 0, $82 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $alloc$0 = 0, $alloc$0400 = 0, $alloc$1 = 0, $alloc$2 = 0, $ap2$i = 0, $base$0 = 0, $c$0100 = 0, $dest$0 = 0, $i$0$i = 0, $i$0$ph = 0, $i$0$ph$phi = 0, $i$0$ph20 = 0, $i$0$ph20$lcssa = 0, $i$1 = 0, $i$2 = 0, $i$2$ph = 0, $i$2$ph$phi = 0, $i$3 = 0, $i$4 = 0, $invert$0 = 0, $isdigittmp = 0, $k$0$ph = 0, $k$1$ph = 0, $matches$0104 = 0, $matches$0104$lcssa = 0, $matches$0104376 = 0, $matches$1 = 0, $matches$2 = 0, $matches$3 = 0, $p$0109 = 0, $p$1 = 0, $p$1$lcssa = 0, $p$10 = 0, $p$11 = 0, $p$2 = 0, $p$3$lcssa = 0, $p$396 = 0, $p$4 = 0, $p$5 = 0, $p$6 = 0, $p$7 = 0, $p$7$ph = 0, $p$8 = 0, $p$9 = 0, $pos$0108 = 0, $pos$1 = 0, $pos$2 = 0, $s$0107 = 0, $s$0107$lcssa = 0, $s$1 = 0, $s$2$ph = 0, $s$3 = 0, $s$4 = 0, $s$5 = 0, $s$6 = 0, $s$7 = 0, $s$8 = 0, $scanset = 0, $size$0 = 0, $st = 0, $wc = 0, $wcs$0103 = 0, $wcs$0103$lcssa = 0, $wcs$1 = 0, $wcs$2 = 0, $wcs$3$ph = 0, $wcs$3$ph$lcssa = 0, $wcs$4 = 0, $wcs$5 = 0, $wcs$6 = 0, $wcs$7 = 0, $wcs$8 = 0, $wcs$9 = 0, $width$0$lcssa = 0, $width$097 = 0, $width$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 304 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ap2$i = sp + 16 | 0; + $st = sp + 8 | 0; + $scanset = sp + 33 | 0; + $wc = sp; + $0 = sp + 32 | 0; + if ((HEAP32[$f + 76 >> 2] | 0) > -1) $334 = ___lockfile($f) | 0; else $334 = 0; + $5 = HEAP8[$fmt >> 0] | 0; + L4 : do if (!($5 << 24 >> 24)) $matches$3 = 0; else { + $7 = $f + 4 | 0; + $8 = $f + 100 | 0; + $9 = $f + 108 | 0; + $10 = $f + 8 | 0; + $11 = $scanset + 10 | 0; + $12 = $scanset + 33 | 0; + $13 = $st + 4 | 0; + $14 = $scanset + 46 | 0; + $15 = $scanset + 94 | 0; + $17 = $5; + $matches$0104 = 0; + $p$0109 = $fmt; + $pos$0108 = 0; + $s$0107 = 0; + $wcs$0103 = 0; + L6 : while (1) { + L8 : do if (!(_isspace($17 & 255) | 0)) { + $47 = (HEAP8[$p$0109 >> 0] | 0) == 37; + L10 : do if ($47) { + $48 = $p$0109 + 1 | 0; + $49 = HEAP8[$48 >> 0] | 0; + L12 : do switch ($49 << 24 >> 24) { + case 37: + { + break L10; + break; + } + case 42: + { + $dest$0 = 0; + $p$2 = $p$0109 + 2 | 0; + break; + } + default: + { + $isdigittmp = ($49 & 255) + -48 | 0; + if ($isdigittmp >>> 0 < 10) if ((HEAP8[$p$0109 + 2 >> 0] | 0) == 36) { + HEAP32[$ap2$i >> 2] = HEAP32[$ap >> 2]; + $i$0$i = $isdigittmp; + while (1) { + $81 = (HEAP32[$ap2$i >> 2] | 0) + (4 - 1) & ~(4 - 1); + $82 = HEAP32[$81 >> 2] | 0; + HEAP32[$ap2$i >> 2] = $81 + 4; + if ($i$0$i >>> 0 > 1) $i$0$i = $i$0$i + -1 | 0; else { + $$lcssa = $82; + break; + } + } + $dest$0 = $$lcssa; + $p$2 = $p$0109 + 3 | 0; + break L12; + } + $90 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $91 = HEAP32[$90 >> 2] | 0; + HEAP32[$ap >> 2] = $90 + 4; + $dest$0 = $91; + $p$2 = $48; + } + } while (0); + $92 = HEAP8[$p$2 >> 0] | 0; + $93 = $92 & 255; + if (($93 + -48 | 0) >>> 0 < 10) { + $97 = $93; + $p$396 = $p$2; + $width$097 = 0; + while (1) { + $96 = ($width$097 * 10 | 0) + -48 + $97 | 0; + $98 = $p$396 + 1 | 0; + $99 = HEAP8[$98 >> 0] | 0; + $97 = $99 & 255; + if (($97 + -48 | 0) >>> 0 >= 10) { + $$lcssa38 = $99; + $p$3$lcssa = $98; + $width$0$lcssa = $96; + break; + } else { + $p$396 = $98; + $width$097 = $96; + } + } + } else { + $$lcssa38 = $92; + $p$3$lcssa = $p$2; + $width$0$lcssa = 0; + } + if ($$lcssa38 << 24 >> 24 == 109) { + $104 = $p$3$lcssa + 1 | 0; + $107 = HEAP8[$104 >> 0] | 0; + $alloc$0 = ($dest$0 | 0) != 0 & 1; + $p$4 = $104; + $s$1 = 0; + $wcs$1 = 0; + } else { + $107 = $$lcssa38; + $alloc$0 = 0; + $p$4 = $p$3$lcssa; + $s$1 = $s$0107; + $wcs$1 = $wcs$0103; + } + $105 = $p$4 + 1 | 0; + switch ($107 & 255 | 0) { + case 104: + { + $109 = (HEAP8[$105 >> 0] | 0) == 104; + $p$5 = $109 ? $p$4 + 2 | 0 : $105; + $size$0 = $109 ? -2 : -1; + break; + } + case 108: + { + $112 = (HEAP8[$105 >> 0] | 0) == 108; + $p$5 = $112 ? $p$4 + 2 | 0 : $105; + $size$0 = $112 ? 3 : 1; + break; + } + case 106: + { + $p$5 = $105; + $size$0 = 3; + break; + } + case 116: + case 122: + { + $p$5 = $105; + $size$0 = 1; + break; + } + case 76: + { + $p$5 = $105; + $size$0 = 2; + break; + } + case 110: + case 112: + case 67: + case 83: + case 91: + case 99: + case 115: + case 88: + case 71: + case 70: + case 69: + case 65: + case 103: + case 102: + case 101: + case 97: + case 120: + case 117: + case 111: + case 105: + case 100: + { + $p$5 = $p$4; + $size$0 = 0; + break; + } + default: + { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = $s$1; + $wcs$7 = $wcs$1; + label = 152; + break L6; + } + } + $115 = HEAPU8[$p$5 >> 0] | 0; + $117 = ($115 & 47 | 0) == 3; + $$ = $117 ? $115 | 32 : $115; + $$size$0 = $117 ? 1 : $size$0; + switch ($$ | 0) { + case 99: + { + $pos$1 = $pos$0108; + $width$1 = ($width$0$lcssa | 0) < 1 ? 1 : $width$0$lcssa; + break; + } + case 91: + { + $pos$1 = $pos$0108; + $width$1 = $width$0$lcssa; + break; + } + case 110: + { + if (!$dest$0) { + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + } + switch ($$size$0 | 0) { + case -2: + { + HEAP8[$dest$0 >> 0] = $pos$0108; + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + break; + } + case -1: + { + HEAP16[$dest$0 >> 1] = $pos$0108; + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + break; + } + case 0: + { + HEAP32[$dest$0 >> 2] = $pos$0108; + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + break; + } + case 1: + { + HEAP32[$dest$0 >> 2] = $pos$0108; + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + break; + } + case 3: + { + $125 = $dest$0; + HEAP32[$125 >> 2] = $pos$0108; + HEAP32[$125 + 4 >> 2] = (($pos$0108 | 0) < 0) << 31 >> 31; + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + break; + } + default: + { + $matches$1 = $matches$0104; + $p$11 = $p$5; + $pos$2 = $pos$0108; + $s$5 = $s$1; + $wcs$6 = $wcs$1; + break L8; + } + } + break; + } + default: + { + ___shlim($f, 0); + do { + $129 = HEAP32[$7 >> 2] | 0; + if ($129 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { + HEAP32[$7 >> 2] = $129 + 1; + $136 = HEAPU8[$129 >> 0] | 0; + } else $136 = ___shgetc($f) | 0; + } while ((_isspace($136) | 0) != 0); + $$pre170 = HEAP32[$7 >> 2] | 0; + if (!(HEAP32[$8 >> 2] | 0)) $145 = $$pre170; else { + $141 = $$pre170 + -1 | 0; + HEAP32[$7 >> 2] = $141; + $145 = $141; + } + $pos$1 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $145 - (HEAP32[$10 >> 2] | 0) | 0; + $width$1 = $width$0$lcssa; + } + } + ___shlim($f, $width$1); + $150 = HEAP32[$7 >> 2] | 0; + $151 = HEAP32[$8 >> 2] | 0; + if ($150 >>> 0 < $151 >>> 0) { + HEAP32[$7 >> 2] = $150 + 1; + $157 = $151; + } else { + if ((___shgetc($f) | 0) < 0) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = $s$1; + $wcs$7 = $wcs$1; + label = 152; + break L6; + } + $157 = HEAP32[$8 >> 2] | 0; + } + if ($157) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1; + L67 : do switch ($$ | 0) { + case 91: + case 99: + case 115: + { + $160 = ($$ | 0) == 99; + L69 : do if (($$ & 239 | 0) == 99) { + _memset($scanset | 0, -1, 257) | 0; + HEAP8[$scanset >> 0] = 0; + if (($$ | 0) == 115) { + HEAP8[$12 >> 0] = 0; + HEAP8[$11 >> 0] = 0; + HEAP8[$11 + 1 >> 0] = 0; + HEAP8[$11 + 2 >> 0] = 0; + HEAP8[$11 + 3 >> 0] = 0; + HEAP8[$11 + 4 >> 0] = 0; + $p$9 = $p$5; + } else $p$9 = $p$5; + } else { + $164 = $p$5 + 1 | 0; + $166 = (HEAP8[$164 >> 0] | 0) == 94; + $invert$0 = $166 & 1; + $168 = $166 ? $164 : $p$5; + $p$6 = $166 ? $p$5 + 2 | 0 : $164; + _memset($scanset | 0, $166 & 1 | 0, 257) | 0; + HEAP8[$scanset >> 0] = 0; + switch (HEAP8[$p$6 >> 0] | 0) { + case 45: + { + $173 = ($invert$0 ^ 1) & 255; + HEAP8[$14 >> 0] = $173; + $$pre$phi182Z2D = $173; + $p$7$ph = $168 + 2 | 0; + break; + } + case 93: + { + $176 = ($invert$0 ^ 1) & 255; + HEAP8[$15 >> 0] = $176; + $$pre$phi182Z2D = $176; + $p$7$ph = $168 + 2 | 0; + break; + } + default: + { + $$pre$phi182Z2D = ($invert$0 ^ 1) & 255; + $p$7$ph = $p$6; + } + } + $p$7 = $p$7$ph; + while (1) { + $177 = HEAP8[$p$7 >> 0] | 0; + L80 : do switch ($177 << 24 >> 24) { + case 0: + { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = $s$1; + $wcs$7 = $wcs$1; + label = 152; + break L6; + break; + } + case 93: + { + $p$9 = $p$7; + break L69; + break; + } + case 45: + { + $178 = $p$7 + 1 | 0; + $179 = HEAP8[$178 >> 0] | 0; + switch ($179 << 24 >> 24) { + case 93: + case 0: + { + $190 = 45; + $p$8 = $p$7; + break L80; + break; + } + default: + {} + } + $181 = HEAP8[$p$7 + -1 >> 0] | 0; + if (($181 & 255) < ($179 & 255)) { + $c$0100 = $181 & 255; + do { + $c$0100 = $c$0100 + 1 | 0; + HEAP8[$scanset + $c$0100 >> 0] = $$pre$phi182Z2D; + $186 = HEAP8[$178 >> 0] | 0; + } while (($c$0100 | 0) < ($186 & 255 | 0)); + $190 = $186; + $p$8 = $178; + } else { + $190 = $179; + $p$8 = $178; + } + break; + } + default: + { + $190 = $177; + $p$8 = $p$7; + } + } while (0); + HEAP8[$scanset + (($190 & 255) + 1) >> 0] = $$pre$phi182Z2D; + $p$7 = $p$8 + 1 | 0; + } + } while (0); + $195 = $160 ? $width$1 + 1 | 0 : 31; + $196 = ($$size$0 | 0) == 1; + $197 = ($alloc$0 | 0) != 0; + L88 : do if ($196) { + if ($197) { + $199 = _malloc($195 << 2) | 0; + if (!$199) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = 0; + $wcs$7 = $199; + label = 152; + break L6; + } else $wcs$2 = $199; + } else $wcs$2 = $dest$0; + HEAP32[$st >> 2] = 0; + HEAP32[$13 >> 2] = 0; + $i$0$ph = 0; + $k$0$ph = $195; + $wcs$3$ph = $wcs$2; + L94 : while (1) { + $201 = ($wcs$3$ph | 0) == 0; + $i$0$ph20 = $i$0$ph; + while (1) { + L98 : while (1) { + $202 = HEAP32[$7 >> 2] | 0; + if ($202 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { + HEAP32[$7 >> 2] = $202 + 1; + $210 = HEAPU8[$202 >> 0] | 0; + } else $210 = ___shgetc($f) | 0; + if (!(HEAP8[$scanset + ($210 + 1) >> 0] | 0)) { + $i$0$ph20$lcssa = $i$0$ph20; + $wcs$3$ph$lcssa = $wcs$3$ph; + break L94; + } + HEAP8[$0 >> 0] = $210; + switch (_mbrtowc($wc, $0, 1, $st) | 0) { + case -1: + { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = 0; + $wcs$7 = $wcs$3$ph; + label = 152; + break L6; + break; + } + case -2: + break; + default: + break L98; + } + } + if ($201) $i$1 = $i$0$ph20; else { + HEAP32[$wcs$3$ph + ($i$0$ph20 << 2) >> 2] = HEAP32[$wc >> 2]; + $i$1 = $i$0$ph20 + 1 | 0; + } + if ($197 & ($i$1 | 0) == ($k$0$ph | 0)) break; else $i$0$ph20 = $i$1; + } + $220 = $k$0$ph << 1 | 1; + $222 = _realloc($wcs$3$ph, $220 << 2) | 0; + if (!$222) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = 0; + $wcs$7 = $wcs$3$ph; + label = 152; + break L6; + } + $i$0$ph$phi = $k$0$ph; + $k$0$ph = $220; + $wcs$3$ph = $222; + $i$0$ph = $i$0$ph$phi; + } + if (!(_mbsinit($st) | 0)) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = 0; + $wcs$7 = $wcs$3$ph$lcssa; + label = 152; + break L6; + } else { + $i$4 = $i$0$ph20$lcssa; + $s$3 = 0; + $wcs$4 = $wcs$3$ph$lcssa; + } + } else { + if ($197) { + $226 = _malloc($195) | 0; + if (!$226) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = 0; + $wcs$7 = 0; + label = 152; + break L6; + } else { + $i$2$ph = 0; + $k$1$ph = $195; + $s$2$ph = $226; + } + while (1) { + $i$2 = $i$2$ph; + do { + $228 = HEAP32[$7 >> 2] | 0; + if ($228 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { + HEAP32[$7 >> 2] = $228 + 1; + $236 = HEAPU8[$228 >> 0] | 0; + } else $236 = ___shgetc($f) | 0; + if (!(HEAP8[$scanset + ($236 + 1) >> 0] | 0)) { + $i$4 = $i$2; + $s$3 = $s$2$ph; + $wcs$4 = 0; + break L88; + } + HEAP8[$s$2$ph + $i$2 >> 0] = $236; + $i$2 = $i$2 + 1 | 0; + } while (($i$2 | 0) != ($k$1$ph | 0)); + $244 = $k$1$ph << 1 | 1; + $245 = _realloc($s$2$ph, $244) | 0; + if (!$245) { + $alloc$0400 = $alloc$0; + $matches$0104376 = $matches$0104; + $s$6 = $s$2$ph; + $wcs$7 = 0; + label = 152; + break L6; + } else { + $i$2$ph$phi = $k$1$ph; + $k$1$ph = $244; + $s$2$ph = $245; + $i$2$ph = $i$2$ph$phi; + } + } + } + if (!$dest$0) { + $265 = $157; + while (1) { + $263 = HEAP32[$7 >> 2] | 0; + if ($263 >>> 0 < $265 >>> 0) { + HEAP32[$7 >> 2] = $263 + 1; + $271 = HEAPU8[$263 >> 0] | 0; + } else $271 = ___shgetc($f) | 0; + if (!(HEAP8[$scanset + ($271 + 1) >> 0] | 0)) { + $i$4 = 0; + $s$3 = 0; + $wcs$4 = 0; + break L88; + } + $265 = HEAP32[$8 >> 2] | 0; + } + } else { + $250 = $157; + $i$3 = 0; + while (1) { + $248 = HEAP32[$7 >> 2] | 0; + if ($248 >>> 0 < $250 >>> 0) { + HEAP32[$7 >> 2] = $248 + 1; + $256 = HEAPU8[$248 >> 0] | 0; + } else $256 = ___shgetc($f) | 0; + if (!(HEAP8[$scanset + ($256 + 1) >> 0] | 0)) { + $i$4 = $i$3; + $s$3 = $dest$0; + $wcs$4 = 0; + break L88; + } + HEAP8[$dest$0 + $i$3 >> 0] = $256; + $250 = HEAP32[$8 >> 2] | 0; + $i$3 = $i$3 + 1 | 0; + } + } + } while (0); + $$pre178 = HEAP32[$7 >> 2] | 0; + if (!(HEAP32[$8 >> 2] | 0)) $281 = $$pre178; else { + $277 = $$pre178 + -1 | 0; + HEAP32[$7 >> 2] = $277; + $281 = $277; + } + $284 = $281 - (HEAP32[$10 >> 2] | 0) + (HEAP32[$9 >> 2] | 0) | 0; + if (!$284) { + $alloc$2 = $alloc$0; + $matches$2 = $matches$0104; + $s$8 = $s$3; + $wcs$9 = $wcs$4; + break L6; + } + if (!(($284 | 0) == ($width$1 | 0) | $160 ^ 1)) { + $alloc$2 = $alloc$0; + $matches$2 = $matches$0104; + $s$8 = $s$3; + $wcs$9 = $wcs$4; + break L6; + } + do if ($197) if ($196) { + HEAP32[$dest$0 >> 2] = $wcs$4; + break; + } else { + HEAP32[$dest$0 >> 2] = $s$3; + break; + } while (0); + if ($160) { + $p$10 = $p$9; + $s$4 = $s$3; + $wcs$5 = $wcs$4; + } else { + if ($wcs$4) HEAP32[$wcs$4 + ($i$4 << 2) >> 2] = 0; + if (!$s$3) { + $p$10 = $p$9; + $s$4 = 0; + $wcs$5 = $wcs$4; + break L67; + } + HEAP8[$s$3 + $i$4 >> 0] = 0; + $p$10 = $p$9; + $s$4 = $s$3; + $wcs$5 = $wcs$4; + } + break; + } + case 120: + case 88: + case 112: + { + $base$0 = 16; + label = 134; + break; + } + case 111: + { + $base$0 = 8; + label = 134; + break; + } + case 117: + case 100: + { + $base$0 = 10; + label = 134; + break; + } + case 105: + { + $base$0 = 0; + label = 134; + break; + } + case 71: + case 103: + case 70: + case 102: + case 69: + case 101: + case 65: + case 97: + { + $310 = +___floatscan($f, $$size$0, 0); + if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) { + $alloc$2 = $alloc$0; + $matches$2 = $matches$0104; + $s$8 = $s$1; + $wcs$9 = $wcs$1; + break L6; + } + if (!$dest$0) { + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + } else switch ($$size$0 | 0) { + case 0: + { + HEAPF32[$dest$0 >> 2] = $310; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L67; + break; + } + case 1: + { + HEAPF64[$dest$0 >> 3] = $310; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L67; + break; + } + case 2: + { + HEAPF64[$dest$0 >> 3] = $310; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L67; + break; + } + default: + { + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L67; + } + } + break; + } + default: + { + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + } + } while (0); + L168 : do if ((label | 0) == 134) { + label = 0; + $291 = ___intscan($f, $base$0, 0, -1, -1) | 0; + if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) { + $alloc$2 = $alloc$0; + $matches$2 = $matches$0104; + $s$8 = $s$1; + $wcs$9 = $wcs$1; + break L6; + } + if (($dest$0 | 0) != 0 & ($$ | 0) == 112) { + HEAP32[$dest$0 >> 2] = $291; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break; + } + if (!$dest$0) { + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + } else switch ($$size$0 | 0) { + case -2: + { + HEAP8[$dest$0 >> 0] = $291; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + break; + } + case -1: + { + HEAP16[$dest$0 >> 1] = $291; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + break; + } + case 0: + { + HEAP32[$dest$0 >> 2] = $291; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + break; + } + case 1: + { + HEAP32[$dest$0 >> 2] = $291; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + break; + } + case 3: + { + $306 = $dest$0; + HEAP32[$306 >> 2] = $291; + HEAP32[$306 + 4 >> 2] = tempRet0; + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + break; + } + default: + { + $p$10 = $p$5; + $s$4 = $s$1; + $wcs$5 = $wcs$1; + break L168; + } + } + } while (0); + $matches$1 = (($dest$0 | 0) != 0 & 1) + $matches$0104 | 0; + $p$11 = $p$10; + $pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$1 + (HEAP32[$7 >> 2] | 0) - (HEAP32[$10 >> 2] | 0) | 0; + $s$5 = $s$4; + $wcs$6 = $wcs$5; + break L8; + } while (0); + $51 = $p$0109 + ($47 & 1) | 0; + ___shlim($f, 0); + $52 = HEAP32[$7 >> 2] | 0; + if ($52 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { + HEAP32[$7 >> 2] = $52 + 1; + $62 = HEAPU8[$52 >> 0] | 0; + } else $62 = ___shgetc($f) | 0; + if (($62 | 0) != (HEAPU8[$51 >> 0] | 0)) { + $$lcssa384 = $62; + $matches$0104$lcssa = $matches$0104; + $s$0107$lcssa = $s$0107; + $wcs$0103$lcssa = $wcs$0103; + label = 21; + break L6; + } + $matches$1 = $matches$0104; + $p$11 = $51; + $pos$2 = $pos$0108 + 1 | 0; + $s$5 = $s$0107; + $wcs$6 = $wcs$0103; + } else { + $p$1 = $p$0109; + while (1) { + $20 = $p$1 + 1 | 0; + if (!(_isspace(HEAPU8[$20 >> 0] | 0) | 0)) { + $p$1$lcssa = $p$1; + break; + } else $p$1 = $20; + } + ___shlim($f, 0); + do { + $25 = HEAP32[$7 >> 2] | 0; + if ($25 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { + HEAP32[$7 >> 2] = $25 + 1; + $32 = HEAPU8[$25 >> 0] | 0; + } else $32 = ___shgetc($f) | 0; + } while ((_isspace($32) | 0) != 0); + $$pre = HEAP32[$7 >> 2] | 0; + if (!(HEAP32[$8 >> 2] | 0)) $41 = $$pre; else { + $37 = $$pre + -1 | 0; + HEAP32[$7 >> 2] = $37; + $41 = $37; + } + $matches$1 = $matches$0104; + $p$11 = $p$1$lcssa; + $pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $41 - (HEAP32[$10 >> 2] | 0) | 0; + $s$5 = $s$0107; + $wcs$6 = $wcs$0103; + } while (0); + $p$0109 = $p$11 + 1 | 0; + $17 = HEAP8[$p$0109 >> 0] | 0; + if (!($17 << 24 >> 24)) { + $matches$3 = $matches$1; + break L4; + } else { + $matches$0104 = $matches$1; + $pos$0108 = $pos$2; + $s$0107 = $s$5; + $wcs$0103 = $wcs$6; + } + } + if ((label | 0) == 21) { + if (HEAP32[$8 >> 2] | 0) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1; + if (($matches$0104$lcssa | 0) != 0 | ($$lcssa384 | 0) > -1) { + $matches$3 = $matches$0104$lcssa; + break; + } else { + $alloc$1 = 0; + $s$7 = $s$0107$lcssa; + $wcs$8 = $wcs$0103$lcssa; + label = 153; + } + } else if ((label | 0) == 152) if (!$matches$0104376) { + $alloc$1 = $alloc$0400; + $s$7 = $s$6; + $wcs$8 = $wcs$7; + label = 153; + } else { + $alloc$2 = $alloc$0400; + $matches$2 = $matches$0104376; + $s$8 = $s$6; + $wcs$9 = $wcs$7; + } + if ((label | 0) == 153) { + $alloc$2 = $alloc$1; + $matches$2 = -1; + $s$8 = $s$7; + $wcs$9 = $wcs$8; + } + if (!$alloc$2) $matches$3 = $matches$2; else { + _free($s$8); + _free($wcs$9); + $matches$3 = $matches$2; + } + } while (0); + if ($334) ___unlockfile($f); + STACKTOP = sp; + return $matches$3 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i6 = 0, $$0$i$i$i18$i = 0, $$0$i$i$i7$i = 0, $$0$i$i49 = 0, $$03$i = 0, $$1$i9 = 0, $$lcssa = 0, $$ph26 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $121 = 0, $13 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $140 = 0, $141 = 0, $143 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $157 = 0, $159 = 0, $162 = 0, $163 = 0, $165 = 0, $171 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $191 = 0, $193 = 0, $194 = 0, $196 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $207 = 0, $217 = 0, $218 = 0, $22 = 0, $220 = 0, $224 = 0, $227 = 0, $230 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $248 = 0, $252 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $268 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $277 = 0, $283 = 0, $284 = 0, $285 = 0, $29 = 0, $292 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $304 = 0, $31 = 0, $312 = 0, $318 = 0, $32 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $341 = 0, $36 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $50 = 0, $53 = 0, $55 = 0, $6 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $69 = 0, $7 = 0, $71 = 0, $74 = 0, $75 = 0, $87 = 0, $88 = 0, $90 = 0, $97 = 0, $98 = 0, $99 = 0, $__p$0$i$i = 0, $__p$1$i$i48 = 0, $__v$i$i17$i = 0, $phitmp$i$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i$i = 0, $t0$0$i = 0, $t01$0$i = 0, $t01$0$i$lcssa67 = 0, $t01$1$i = 0, $t01$2$i = 0, $t1$0$i$lcssa = 0, $t1$0$i45 = 0, $t13$0$i$lcssa = 0, $t13$0$i51 = 0, $tmp$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i17$i = sp + 104 | 0; + $0 = sp + 80 | 0; + $1 = sp + 64 | 0; + $2 = sp + 40 | 0; + $3 = sp + 24 | 0; + $tmp$i = sp + 12 | 0; + $4 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { + $6 = HEAP8[$first >> 0] | 0; + $7 = $6 << 24 >> 24; + switch ($7 | 0) { + case 68: + case 67: + { + L6 : do if (($last - $first | 0) > 1) { + $13 = $db + 4 | 0; + $14 = HEAP32[$13 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($14 | 0)) $$03$i = $first; else switch ($7 | 0) { + case 67: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 53: + case 51: + case 50: + case 49: + break; + default: + { + $$03$i = $first; + break L6; + } + } + __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($1, $14 + -24 | 0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + $20 = HEAP32[$13 >> 2] | 0; + $22 = HEAP32[$db + 8 >> 2] | 0; + if ($20 >>> 0 < $22 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($20, $0); + HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24; + } else { + $29 = HEAP32[$db >> 2] | 0; + $30 = $20 - $29 | 0; + $31 = ($30 | 0) / 24 | 0; + $32 = $31 + 1 | 0; + if (($30 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $36 = ($22 - $29 | 0) / 24 | 0; + if ($36 >>> 0 < 1073741823) { + $38 = $36 << 1; + $$0$i$i$i$i = $38 >>> 0 < $32 >>> 0 ? $32 : $38; + } else $$0$i$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i, $31, $db + 12 | 0); + $41 = $__v$i$i17$i + 8 | 0; + $42 = HEAP32[$41 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $0); + HEAP32[$41 >> 2] = $42 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + HEAP8[$db + 60 >> 0] = 1; + $$03$i = $first + 2 | 0; + break L6; + break; + } + case 68: + { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 53: + case 50: + case 49: + case 48: + break; + default: + { + $$03$i = $first; + break L6; + } + } + __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($tmp$i, $14 + -24 | 0); + $50 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($tmp$i, 0, 48097) | 0; + HEAP32[$3 >> 2] = HEAP32[$50 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$50 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$50 + 8 >> 2]; + HEAP32[$50 >> 2] = 0; + HEAP32[$50 + 4 >> 2] = 0; + HEAP32[$50 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); + $53 = HEAP32[$13 >> 2] | 0; + $55 = HEAP32[$db + 8 >> 2] | 0; + if ($53 >>> 0 < $55 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($53, $2); + HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24; + } else { + $62 = HEAP32[$db >> 2] | 0; + $63 = $53 - $62 | 0; + $64 = ($63 | 0) / 24 | 0; + $65 = $64 + 1 | 0; + if (($63 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $69 = ($55 - $62 | 0) / 24 | 0; + if ($69 >>> 0 < 1073741823) { + $71 = $69 << 1; + $$0$i$i$i7$i = $71 >>> 0 < $65 >>> 0 ? $65 : $71; + } else $$0$i$i$i7$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i7$i, $64, $db + 12 | 0); + $74 = $__v$i$i17$i + 8 | 0; + $75 = HEAP32[$74 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($75, $2); + HEAP32[$74 >> 2] = $75 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); + HEAP8[$db + 60 >> 0] = 1; + $$03$i = $first + 2 | 0; + break L6; + break; + } + default: + { + $$03$i = $first; + break L6; + } + } + } else $$03$i = $first; while (0); + $$0 = $$03$i; + break L1; + break; + } + case 85: + { + L36 : do if (($last - $first | 0) > 2 & $6 << 24 >> 24 == 85) { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 116: + { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($1, 48099, 8); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + $87 = $db + 4 | 0; + $88 = HEAP32[$87 >> 2] | 0; + $90 = HEAP32[$db + 8 >> 2] | 0; + if ($88 >>> 0 < $90 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($88, $0); + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 24; + } else { + $97 = HEAP32[$db >> 2] | 0; + $98 = $88 - $97 | 0; + $99 = ($98 | 0) / 24 | 0; + $100 = $99 + 1 | 0; + if (($98 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $104 = ($90 - $97 | 0) / 24 | 0; + if ($104 >>> 0 < 1073741823) { + $106 = $104 << 1; + $$0$i$i$i$i6 = $106 >>> 0 < $100 >>> 0 ? $100 : $106; + } else $$0$i$i$i$i6 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i6, $99, $db + 12 | 0); + $109 = $__v$i$i17$i + 8 | 0; + $110 = HEAP32[$109 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($110, $0); + HEAP32[$109 >> 2] = $110 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + $112 = $first + 2 | 0; + if (($112 | 0) == ($last | 0)) { + $114 = HEAP32[$87 >> 2] | 0; + $115 = $114 + -24 | 0; + $117 = $114; + while (1) { + $116 = $117 + -24 | 0; + HEAP32[$87 >> 2] = $116; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($116); + $117 = HEAP32[$87 >> 2] | 0; + if (($117 | 0) == ($115 | 0)) { + $$1$i9 = $first; + break L36; + } + } + } + if (((HEAP8[$112 >> 0] | 0) + -48 | 0) >>> 0 < 10) { + $121 = $first + 3 | 0; + L57 : do if (($121 | 0) == ($last | 0)) $t1$0$i$lcssa = $last; else { + $t1$0$i45 = $121; + while (1) { + if (((HEAP8[$t1$0$i45 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { + $t1$0$i$lcssa = $t1$0$i45; + break L57; + } + $t1$0$i45 = $t1$0$i45 + 1 | 0; + if (($t1$0$i45 | 0) == ($last | 0)) { + $t1$0$i$lcssa = $last; + break; + } + } + } while (0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$87 >> 2] | 0) + -24 | 0, $112, $t1$0$i$lcssa); + $t0$0$i = $t1$0$i$lcssa; + } else $t0$0$i = $112; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$87 >> 2] | 0) + -24 | 0, 39); + if (($t0$0$i | 0) != ($last | 0)) if ((HEAP8[$t0$0$i >> 0] | 0) == 95) { + $$1$i9 = $t0$0$i + 1 | 0; + break L36; + } + $134 = HEAP32[$87 >> 2] | 0; + $135 = $134 + -24 | 0; + $137 = $134; + while (1) { + $136 = $137 + -24 | 0; + HEAP32[$87 >> 2] = $136; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($136); + $137 = HEAP32[$87 >> 2] | 0; + if (($137 | 0) == ($135 | 0)) { + $$1$i9 = $first; + break L36; + } + } + break; + } + case 108: + break; + default: + { + $$1$i9 = $first; + break L36; + } + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 48108, 9); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); + $140 = $db + 4 | 0; + $141 = HEAP32[$140 >> 2] | 0; + $143 = HEAP32[$db + 8 >> 2] | 0; + if ($141 >>> 0 < $143 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($141, $2); + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 24; + } else { + $150 = HEAP32[$db >> 2] | 0; + $151 = $141 - $150 | 0; + $152 = ($151 | 0) / 24 | 0; + $153 = $152 + 1 | 0; + if (($151 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $157 = ($143 - $150 | 0) / 24 | 0; + if ($157 >>> 0 < 1073741823) { + $159 = $157 << 1; + $$0$i$i$i18$i = $159 >>> 0 < $153 >>> 0 ? $153 : $159; + } else $$0$i$i$i18$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i18$i, $152, $db + 12 | 0); + $162 = $__v$i$i17$i + 8 | 0; + $163 = HEAP32[$162 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $2); + HEAP32[$162 >> 2] = $163 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $165 = $first + 2 | 0; + do if ((HEAP8[$165 >> 0] | 0) == 118) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$140 >> 2] | 0) + -24 | 0, 41); + $t01$1$i = $first + 3 | 0; + } else { + $171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($165, $last, $db) | 0; + $173 = HEAP32[$140 >> 2] | 0; + if (($171 | 0) == ($165 | 0)) { + $174 = $173 + -24 | 0; + $176 = $173; + while (1) { + $175 = $176 + -24 | 0; + HEAP32[$140 >> 2] = $175; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($175); + $176 = HEAP32[$140 >> 2] | 0; + if (($176 | 0) == ($174 | 0)) { + $$1$i9 = $first; + break L36; + } + } + } + if ((($173 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$1$i9 = $first; + break L36; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp$i, $173 + -24 | 0); + $185 = HEAP32[$140 >> 2] | 0; + $186 = $185 + -24 | 0; + $188 = $185; + do { + $187 = $188 + -24 | 0; + HEAP32[$140 >> 2] = $187; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187); + $188 = HEAP32[$140 >> 2] | 0; + } while (($188 | 0) != ($186 | 0)); + $191 = HEAP8[$tmp$i >> 0] | 0; + $193 = ($191 & 1) == 0; + $194 = $tmp$i + 8 | 0; + $196 = $tmp$i + 1 | 0; + $198 = $tmp$i + 4 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($185 + -48 | 0, $193 ? $196 : HEAP32[$194 >> 2] | 0, $193 ? ($191 & 255) >>> 1 : HEAP32[$198 >> 2] | 0) | 0; + $203 = $4 + 4 | 0; + $204 = $4 + 8 | 0; + $$pre$i$i$i$i = $191; + $t01$0$i = $171; + while (1) { + $205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t01$0$i, $last, $db) | 0; + $207 = HEAP32[$140 >> 2] | 0; + if (($205 | 0) == ($t01$0$i | 0)) { + $$lcssa = $207; + $t01$0$i$lcssa67 = $t01$0$i; + label = 79; + break; + } + if ((($207 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + label = 113; + break; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $207 + -24 | 0); + L96 : do if (!($$pre$i$i$i$i & 1)) { + HEAP8[$196 >> 0] = 0; + HEAP8[$tmp$i >> 0] = 0; + } else { + $217 = HEAP32[$194 >> 2] | 0; + HEAP8[$217 >> 0] = 0; + HEAP32[$198 >> 2] = 0; + $218 = HEAP32[$tmp$i >> 2] | 0; + $phitmp$i$i$i$i$i$i$i = ($218 & -2) + -1 | 0; + $220 = $218 & 255; + do if (!($220 & 1)) { + $224 = $218 >>> 1 & 127; + if (($220 & 255) < 22) { + _memcpy($196 | 0, $217 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0; + _free($217); + $$ph26 = $224; + break; + } + $227 = $224 + 16 & 240; + $phitmp$i2$i$i$i$i$i$i = $227 + -1 | 0; + if (($phitmp$i2$i$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i$i | 0)) break L96; + $230 = _malloc($227) | 0; + if ($phitmp$i2$i$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i$i >>> 0 & ($230 | 0) == 0) break L96; + _memcpy($230 | 0, $196 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0; + HEAP32[$tmp$i >> 2] = $227 | 1; + HEAP32[$198 >> 2] = $224; + HEAP32[$194 >> 2] = $230; + break L96; + } else { + HEAP8[$196 >> 0] = 0; + _free($217); + $$ph26 = 0; + } while (0); + HEAP8[$tmp$i >> 0] = $$ph26 << 1; + } while (0); + HEAP32[$tmp$i >> 2] = HEAP32[$4 >> 2]; + HEAP32[$tmp$i + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$tmp$i + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$203 >> 2] = 0; + HEAP32[$204 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + $241 = HEAP32[$140 >> 2] | 0; + $242 = $241 + -24 | 0; + $244 = $241; + do { + $243 = $244 + -24 | 0; + HEAP32[$140 >> 2] = $243; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243); + $244 = HEAP32[$140 >> 2] | 0; + } while (($244 | 0) != ($242 | 0)); + $246 = HEAP8[$tmp$i >> 0] | 0; + $248 = ($246 & 1) == 0; + $252 = $248 ? ($246 & 255) >>> 1 : HEAP32[$198 >> 2] | 0; + if (!$252) { + $$pre$i$i$i$i = $246; + $t01$0$i = $205; + continue; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($241 + -48 | 0, 47885) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$140 >> 2] | 0) + -24 | 0, $248 ? $196 : HEAP32[$194 >> 2] | 0, $252) | 0; + $$pre$i$i$i$i = $246; + $t01$0$i = $205; + } + if ((label | 0) == 79) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($$lcssa + -24 | 0, 47788) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); + $t01$1$i = $t01$0$i$lcssa67; + break; + } else if ((label | 0) == 113) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); + $$1$i9 = $first; + break L36; + } + } while (0); + if (($t01$1$i | 0) != ($last | 0)) if ((HEAP8[$t01$1$i >> 0] | 0) == 69) { + $268 = $t01$1$i + 1 | 0; + if (($268 | 0) == ($last | 0)) { + $270 = HEAP32[$140 >> 2] | 0; + $271 = $270 + -24 | 0; + $273 = $270; + while (1) { + $272 = $273 + -24 | 0; + HEAP32[$140 >> 2] = $272; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272); + $273 = HEAP32[$140 >> 2] | 0; + if (($273 | 0) == ($271 | 0)) { + $$1$i9 = $first; + break L36; + } + } + } + if (((HEAP8[$268 >> 0] | 0) + -48 | 0) >>> 0 < 10) { + $277 = $t01$1$i + 2 | 0; + L127 : do if (($277 | 0) == ($last | 0)) $t13$0$i$lcssa = $last; else { + $t13$0$i51 = $277; + while (1) { + if (((HEAP8[$t13$0$i51 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { + $t13$0$i$lcssa = $t13$0$i51; + break L127; + } + $t13$0$i51 = $t13$0$i51 + 1 | 0; + if (($t13$0$i51 | 0) == ($last | 0)) { + $t13$0$i$lcssa = $last; + break; + } + } + } while (0); + $283 = HEAP32[$140 >> 2] | 0; + $284 = $283 + -24 | 0; + $285 = HEAP8[$284 >> 0] | 0; + if (!($285 & 1)) { + $300 = 10; + $301 = ($285 & 255) >>> 1; + $304 = $285; + } else { + $292 = HEAP32[$284 >> 2] | 0; + $300 = ($292 & -2) + -1 | 0; + $301 = HEAP32[$283 + -20 >> 2] | 0; + $304 = $292 & 255; + } + $297 = $t13$0$i$lcssa - $268 | 0; + if (($t13$0$i$lcssa | 0) == ($268 | 0)) $t01$2$i = $268; else { + if (($300 - $301 | 0) >>> 0 < $297 >>> 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($284, $300, $301 + $297 - $300 | 0, $301, 7, $297); + $__p$0$i$i = HEAP32[$283 + -16 >> 2] | 0; + } else { + if (!($304 & 1)) $312 = $284 + 1 | 0; else $312 = HEAP32[$283 + -16 >> 2] | 0; + if (($301 | 0) == 7) $__p$0$i$i = $312; else { + _memmove($312 + ($297 + 7) | 0, $312 + 7 | 0, $301 + -7 | 0) | 0; + $__p$0$i$i = $312; + } + } + $318 = $301 + $297 | 0; + if (!(HEAP8[$284 >> 0] & 1)) HEAP8[$284 >> 0] = $318 << 1; else HEAP32[$283 + -20 >> 2] = $318; + HEAP8[$__p$0$i$i + $318 >> 0] = 0; + if (($268 | 0) == ($t13$0$i$lcssa | 0)) $t01$2$i = $t13$0$i$lcssa; else { + $$0$i$i49 = $268; + $__p$1$i$i48 = $__p$0$i$i + 7 | 0; + while (1) { + HEAP8[$__p$1$i$i48 >> 0] = HEAP8[$$0$i$i49 >> 0] | 0; + $$0$i$i49 = $$0$i$i49 + 1 | 0; + if (($$0$i$i49 | 0) == ($t13$0$i$lcssa | 0)) { + $t01$2$i = $t13$0$i$lcssa; + break; + } else $__p$1$i$i48 = $__p$1$i$i48 + 1 | 0; + } + } + } + } else $t01$2$i = $268; + if (($t01$2$i | 0) != ($last | 0)) if ((HEAP8[$t01$2$i >> 0] | 0) == 95) { + $$1$i9 = $t01$2$i + 1 | 0; + break; + } + $335 = HEAP32[$140 >> 2] | 0; + $336 = $335 + -24 | 0; + $338 = $335; + while (1) { + $337 = $338 + -24 | 0; + HEAP32[$140 >> 2] = $337; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($337); + $338 = HEAP32[$140 >> 2] | 0; + if (($338 | 0) == ($336 | 0)) { + $$1$i9 = $first; + break L36; + } + } + } + $263 = HEAP32[$140 >> 2] | 0; + $264 = $263 + -24 | 0; + $266 = $263; + do { + $265 = $266 + -24 | 0; + HEAP32[$140 >> 2] = $265; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($265); + $266 = HEAP32[$140 >> 2] | 0; + } while (($266 | 0) != ($264 | 0)); + $$1$i9 = $first; + } else $$1$i9 = $first; while (0); + $$0 = $$1$i9; + break L1; + break; + } + case 57: + case 56: + case 55: + case 54: + case 53: + case 52: + case 51: + case 50: + case 49: + { + $341 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + STACKTOP = sp; + return $341 | 0; + } + default: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + } + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _PCA($input, $output, $ev) { + $input = $input | 0; + $output = $output | 0; + $ev = $ev | 0; + var $$0 = 0, $0 = 0, $1 = 0, $102 = 0.0, $11 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $120 = 0, $121 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $128 = 0.0, $138 = 0.0, $14 = 0, $143 = 0.0, $147 = 0.0, $150 = 0.0, $154 = 0.0, $156 = 0, $157 = 0.0, $159 = 0, $160 = 0.0, $161 = 0.0, $164 = 0, $168 = 0.0, $17 = 0, $172 = 0, $179 = 0.0, $18 = 0, $184 = 0, $185 = 0, $186 = 0, $188 = 0, $189 = 0.0, $191 = 0, $192 = 0.0, $2 = 0, $202 = 0.0, $204 = 0, $205 = 0.0, $21 = 0, $210 = 0.0, $212 = 0.0, $219 = 0, $220 = 0.0, $223 = 0.0, $224 = 0, $232 = 0.0, $237 = 0, $238 = 0, $24 = 0, $25 = 0, $251 = 0, $253 = 0, $256 = 0, $257 = 0, $259 = 0.0, $26 = 0, $263 = 0.0, $264 = 0, $272 = 0.0, $279 = 0, $28 = 0, $287 = 0, $289 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $30 = 0, $304 = 0, $31 = 0, $35 = 0, $37 = 0, $47 = 0.0, $5 = 0, $55 = 0, $57 = 0, $61 = 0, $63 = 0, $70 = 0.0, $8 = 0, $82 = 0, $84 = 0, $90 = 0, $92 = 0, $93 = 0, $97 = 0.0, $98 = 0, $99 = 0, $c$0$i = 0.0, $ev1$i = 0, $exitcond$i133 = 0, $exitcond$i14148 = 0, $exitcond$i28106 = 0, $exitcond$i651 = 0, $exitcond3$i59 = 0, $exitcond6$i115 = 0, $exitcond82 = 0, $h$0$i127 = 0, $h$1$i$lcssa = 0, $h$1$i100 = 0, $h$2$i = 0, $i$0$i11155 = 0, $i$0$i141 = 0, $i$0$i2$lcssa = 0, $i$0$i25116 = 0, $i$0$i266 = 0, $i$0$lcssa = 0, $i$090 = 0, $i$1$i2799 = 0, $i$1$i49 = 0, $i$180 = 0, $i$2$i109 = 0, $in1$0$i129 = 0, $in1$0$i17144 = 0, $in2$0$i128 = 0, $in2$0$i16143 = 0, $iter$0$i = 0, $j$0$i13152 = 0, $j$0$i137 = 0, $j$0$i23 = 0, $j$0$i23$lcssa = 0, $j$0$i461 = 0, $j$085 = 0, $j$1$i47 = 0, $j$175 = 0, $k$0$i130 = 0, $k$0$i18145 = 0, $k$0$i24124 = 0, $k$0$i555 = 0, $k$1$i113 = 0, $m$0$i$lcssa = 0, $m$0$i65 = 0, $m$1$i60 = 0, $m$2$i48 = 0, $m$3$i46 = 0, $m1$0$i54 = 0, $m1$089 = 0, $m1$184 = 0, $m2$0$i52 = 0, $m2$0$lcssa = 0, $m2$088 = 0, $m2$183 = 0, $m2$279 = 0, $m2$374 = 0, $out$0$i10154 = 0, $out$0$i140 = 0, $out$1$i12149 = 0, $out$1$i134 = 0, $s$1$i = 0.0, $scevgep2$i = 0, $scevgep41 = 0, $smax$i = 0, $smax38 = 0, $sum$0$i$lcssa = 0.0, $sum$0$i53 = 0.0, $t$0$i$lcssa = 0.0, $t$0$i98 = 0.0, $t$1$i = 0.0, $v1$0$i107 = 0, $v2$0$i108 = 0, $x$0$i$be = 0.0, $x$0$i122 = 0.0, $x$1$i$lcssa = 0.0, $y$0$i$be = 0.0, $y$0$i123 = 0.0, $y$1$i$lcssa = 0.0, sp = 0, $k$0$i24124$looptemp = 0, $h$0$i127$looptemp = 0, $k$1$i113$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ev1$i = sp; + $0 = $input + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $input + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = ($3 | 0) < ($1 | 0) ? $3 : $1; + L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else { + $8 = $output + 8 | 0; + if ((HEAP32[$8 >> 2] | 0) == ($3 | 0)) { + $11 = $output + 4 | 0; + if ((HEAP32[$11 >> 2] | 0) == ($5 | 0)) { + $14 = $ev + 4 | 0; + if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { + $17 = _arMatrixAlloc($5, $5) | 0; + $18 = $17 + 4 | 0; + if ((HEAP32[$18 >> 2] | 0) == ($5 | 0)) { + $21 = $17 + 8 | 0; + if ((HEAP32[$21 >> 2] | 0) == ($5 | 0)) { + $24 = ($1 | 0) < ($3 | 0); + $25 = HEAP32[$0 >> 2] | 0; + $26 = HEAP32[$2 >> 2] | 0; + if ($24) { + if (($5 | 0) != ($25 | 0)) { + _arMatrixFree($17) | 0; + $$0 = -1; + break; + } + $28 = HEAP32[$17 >> 2] | 0; + if (($5 | 0) > 0) { + $exitcond$i133 = ($5 | 0) == 0; + $30 = ($26 | 0) > 0; + $i$0$i141 = 0; + $out$0$i140 = $28; + while (1) { + $31 = Math_imul($i$0$i141, $26) | 0; + if (!$exitcond$i133) { + $j$0$i137 = 0; + $out$1$i134 = $out$0$i140; + while (1) { + if (($j$0$i137 | 0) < ($i$0$i141 | 0)) { + $35 = $28 + ((Math_imul($j$0$i137, $5) | 0) + $i$0$i141 << 3) | 0; + HEAPF64[$out$1$i134 >> 3] = +HEAPF64[$35 >> 3]; + } else { + $37 = HEAP32[$input >> 2] | 0; + HEAPF64[$out$1$i134 >> 3] = 0.0; + if ($30) { + $47 = 0.0; + $in1$0$i129 = $37 + ($31 << 3) | 0; + $in2$0$i128 = $37 + ((Math_imul($j$0$i137, $26) | 0) << 3) | 0; + $k$0$i130 = 0; + while (1) { + $47 = $47 + +HEAPF64[$in1$0$i129 >> 3] * +HEAPF64[$in2$0$i128 >> 3]; + HEAPF64[$out$1$i134 >> 3] = $47; + $k$0$i130 = $k$0$i130 + 1 | 0; + if (($k$0$i130 | 0) >= ($26 | 0)) break; else { + $in1$0$i129 = $in1$0$i129 + 8 | 0; + $in2$0$i128 = $in2$0$i128 + 8 | 0; + } + } + } + } + $j$0$i137 = $j$0$i137 + 1 | 0; + if (($j$0$i137 | 0) == ($5 | 0)) break; else $out$1$i134 = $out$1$i134 + 8 | 0; + } + } + $i$0$i141 = $i$0$i141 + 1 | 0; + if (($i$0$i141 | 0) >= ($5 | 0)) break; else $out$0$i140 = $out$0$i140 + ($5 << 3) | 0; + } + } + } else { + if (($5 | 0) != ($26 | 0)) { + _arMatrixFree($17) | 0; + $$0 = -1; + break; + } + $55 = HEAP32[$17 >> 2] | 0; + if (($5 | 0) > 0) { + $exitcond$i14148 = ($5 | 0) == 0; + $57 = ($25 | 0) > 0; + $i$0$i11155 = 0; + $out$0$i10154 = $55; + while (1) { + if (!$exitcond$i14148) { + $j$0$i13152 = 0; + $out$1$i12149 = $out$0$i10154; + while (1) { + if (($j$0$i13152 | 0) < ($i$0$i11155 | 0)) { + $61 = $55 + ((Math_imul($j$0$i13152, $5) | 0) + $i$0$i11155 << 3) | 0; + HEAPF64[$out$1$i12149 >> 3] = +HEAPF64[$61 >> 3]; + } else { + $63 = HEAP32[$input >> 2] | 0; + HEAPF64[$out$1$i12149 >> 3] = 0.0; + if ($57) { + $70 = 0.0; + $in1$0$i17144 = $63 + ($i$0$i11155 << 3) | 0; + $in2$0$i16143 = $63 + ($j$0$i13152 << 3) | 0; + $k$0$i18145 = 0; + while (1) { + $70 = $70 + +HEAPF64[$in1$0$i17144 >> 3] * +HEAPF64[$in2$0$i16143 >> 3]; + HEAPF64[$out$1$i12149 >> 3] = $70; + $k$0$i18145 = $k$0$i18145 + 1 | 0; + if (($k$0$i18145 | 0) >= ($25 | 0)) break; else { + $in1$0$i17144 = $in1$0$i17144 + ($5 << 3) | 0; + $in2$0$i16143 = $in2$0$i16143 + ($5 << 3) | 0; + } + } + } + } + $j$0$i13152 = $j$0$i13152 + 1 | 0; + if (($j$0$i13152 | 0) == ($5 | 0)) break; else $out$1$i12149 = $out$1$i12149 + 8 | 0; + } + } + $i$0$i11155 = $i$0$i11155 + 1 | 0; + if (($i$0$i11155 | 0) >= ($5 | 0)) break; else $out$0$i10154 = $out$0$i10154 + ($5 << 3) | 0; + } + } + } + do if (($5 | 0) >= 2) if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { + $82 = _arVecAlloc($5) | 0; + if ($82) { + $84 = $5 + -1 | 0; + HEAP32[$ev1$i + 4 >> 2] = $84; + HEAP32[$ev1$i >> 2] = (HEAP32[$82 >> 2] | 0) + 8; + if ((_arVecTridiagonalize($17, $ev, $ev1$i) | 0) < 0) { + _arVecFree($82) | 0; + break; + } + $90 = HEAP32[$82 >> 2] | 0; + HEAPF64[$90 >> 3] = 0.0; + if (($84 | 0) > 0) { + $exitcond6$i115 = ($5 | 0) == 0; + $h$0$i127 = $84; + do { + $j$0$i23 = $h$0$i127; + while (1) { + if (($j$0$i23 | 0) <= 0) { + $j$0$i23$lcssa = $j$0$i23; + break; + } + $97 = +Math_abs(+(+HEAPF64[$90 + ($j$0$i23 << 3) >> 3])); + $98 = $j$0$i23 + -1 | 0; + $99 = HEAP32[$ev >> 2] | 0; + $102 = +Math_abs(+(+HEAPF64[$99 + ($98 << 3) >> 3])); + if ($97 > ($102 + +Math_abs(+(+HEAPF64[$99 + ($j$0$i23 << 3) >> 3]))) * 1.0e-06) $j$0$i23 = $98; else { + $j$0$i23$lcssa = $j$0$i23; + break; + } + } + $h$0$i127$looptemp = $h$0$i127; + $h$0$i127 = $h$0$i127 + -1 | 0; + L62 : do if (($j$0$i23$lcssa | 0) != ($h$0$i127$looptemp | 0)) { + $112 = $90 + ($h$0$i127$looptemp << 3) | 0; + $113 = $90 + ($j$0$i23$lcssa + 1 << 3) | 0; + $114 = ($j$0$i23$lcssa | 0) < ($h$0$i127$looptemp | 0); + $iter$0$i = 0; + do { + if (($iter$0$i | 0) > 99) break L62; + $iter$0$i = $iter$0$i + 1 | 0; + $117 = HEAP32[$ev >> 2] | 0; + $118 = $117 + ($h$0$i127 << 3) | 0; + $120 = $117 + ($h$0$i127$looptemp << 3) | 0; + $121 = +HEAPF64[$120 >> 3]; + $123 = (+HEAPF64[$118 >> 3] - $121) * .5; + $124 = +HEAPF64[$112 >> 3]; + $125 = $124 * $124; + $128 = +Math_sqrt(+($125 + $123 * $123)); + if ($114) { + $k$0$i24124 = $j$0$i23$lcssa; + $x$0$i122 = +HEAPF64[$117 + ($j$0$i23$lcssa << 3) >> 3] - $121 + $125 / ($123 + ($123 < 0.0 ? -$128 : $128)); + $y$0$i123 = +HEAPF64[$113 >> 3]; + while (1) { + $138 = +Math_abs(+$x$0$i122); + do if (!($138 >= +Math_abs(+$y$0$i123))) { + $150 = -$x$0$i122 / $y$0$i123; + $154 = 1.0 / +Math_sqrt(+($150 * $150 + 1.0)); + $c$0$i = $150 * $154; + $s$1$i = $154; + } else { + if (!($138 > 1.0e-16)) { + $c$0$i = 1.0; + $s$1$i = 0.0; + break; + } + $143 = -$y$0$i123 / $x$0$i122; + $147 = 1.0 / +Math_sqrt(+($143 * $143 + 1.0)); + $c$0$i = $147; + $s$1$i = $143 * $147; + } while (0); + $156 = $117 + ($k$0$i24124 << 3) | 0; + $157 = +HEAPF64[$156 >> 3]; + $k$0$i24124$looptemp = $k$0$i24124; + $k$0$i24124 = $k$0$i24124 + 1 | 0; + $159 = $117 + ($k$0$i24124 << 3) | 0; + $160 = +HEAPF64[$159 >> 3]; + $161 = $157 - $160; + $164 = $90 + ($k$0$i24124 << 3) | 0; + $168 = $s$1$i * ($s$1$i * $161 + $c$0$i * 2.0 * +HEAPF64[$164 >> 3]); + HEAPF64[$156 >> 3] = $157 - $168; + HEAPF64[$159 >> 3] = $160 + $168; + if (($k$0$i24124$looptemp | 0) > ($j$0$i23$lcssa | 0)) { + $172 = $90 + ($k$0$i24124$looptemp << 3) | 0; + HEAPF64[$172 >> 3] = $c$0$i * +HEAPF64[$172 >> 3] - $y$0$i123 * $s$1$i; + } + $179 = +HEAPF64[$164 >> 3]; + HEAPF64[$164 >> 3] = $179 + $s$1$i * ($c$0$i * $161 - $s$1$i * 2.0 * $179); + $184 = Math_imul($k$0$i24124$looptemp, $5) | 0; + $185 = Math_imul($k$0$i24124, $5) | 0; + if ($exitcond6$i115) { + $x$1$i$lcssa = $x$0$i122; + $y$1$i$lcssa = $y$0$i123; + } else { + $186 = HEAP32[$17 >> 2] | 0; + $i$0$i25116 = 0; + do { + $188 = $186 + ($i$0$i25116 + $184 << 3) | 0; + $189 = +HEAPF64[$188 >> 3]; + $191 = $186 + ($i$0$i25116 + $185 << 3) | 0; + $192 = +HEAPF64[$191 >> 3]; + HEAPF64[$188 >> 3] = $c$0$i * $189 - $s$1$i * $192; + HEAPF64[$191 >> 3] = $s$1$i * $189 + $c$0$i * $192; + $i$0$i25116 = $i$0$i25116 + 1 | 0; + } while (($i$0$i25116 | 0) != ($5 | 0)); + $x$1$i$lcssa = $189; + $y$1$i$lcssa = $192; + } + if (($k$0$i24124$looptemp | 0) < ($h$0$i127 | 0)) { + $202 = +HEAPF64[$164 >> 3]; + $204 = $90 + ($k$0$i24124$looptemp + 2 << 3) | 0; + $205 = +HEAPF64[$204 >> 3]; + HEAPF64[$204 >> 3] = $c$0$i * $205; + $x$0$i$be = $202; + $y$0$i$be = -($s$1$i * $205); + } else { + $x$0$i$be = $x$1$i$lcssa; + $y$0$i$be = $y$1$i$lcssa; + } + if (($k$0$i24124 | 0) >= ($h$0$i127$looptemp | 0)) break; else { + $x$0$i122 = $x$0$i$be; + $y$0$i123 = $y$0$i$be; + } + } + } + $210 = +Math_abs(+(+HEAPF64[$112 >> 3])); + $212 = +Math_abs(+(+HEAPF64[$118 >> 3])); + } while ($210 > ($212 + +Math_abs(+(+HEAPF64[$120 >> 3]))) * 1.0e-06); + } while (0); + } while (($h$0$i127$looptemp | 0) > 1); + } + if ($84) { + $92 = HEAP32[$ev >> 2] | 0; + $93 = HEAP32[$17 >> 2] | 0; + $exitcond$i28106 = ($5 | 0) == 0; + $k$1$i113 = 0; + do { + $219 = $92 + ($k$1$i113 << 3) | 0; + $220 = +HEAPF64[$219 >> 3]; + $k$1$i113$looptemp = $k$1$i113; + $k$1$i113 = $k$1$i113 + 1 | 0; + if (($k$1$i113 | 0) < ($5 | 0)) { + $h$1$i100 = $k$1$i113$looptemp; + $i$1$i2799 = $k$1$i113; + $t$0$i98 = $220; + while (1) { + $223 = +HEAPF64[$92 + ($i$1$i2799 << 3) >> 3]; + $224 = $223 > $t$0$i98; + $t$1$i = $224 ? $223 : $t$0$i98; + $h$2$i = $224 ? $i$1$i2799 : $h$1$i100; + $i$1$i2799 = $i$1$i2799 + 1 | 0; + if (($i$1$i2799 | 0) >= ($5 | 0)) { + $h$1$i$lcssa = $h$2$i; + $t$0$i$lcssa = $t$1$i; + break; + } else { + $h$1$i100 = $h$2$i; + $t$0$i98 = $t$1$i; + } + } + } else { + $h$1$i$lcssa = $k$1$i113$looptemp; + $t$0$i$lcssa = $220; + } + HEAPF64[$92 + ($h$1$i$lcssa << 3) >> 3] = $220; + HEAPF64[$219 >> 3] = $t$0$i$lcssa; + if (!$exitcond$i28106) { + $i$2$i109 = 0; + $v1$0$i107 = $93 + ((Math_imul($h$1$i$lcssa, $5) | 0) << 3) | 0; + $v2$0$i108 = $93 + ((Math_imul($k$1$i113$looptemp, $5) | 0) << 3) | 0; + while (1) { + $232 = +HEAPF64[$v1$0$i107 >> 3]; + HEAPF64[$v1$0$i107 >> 3] = +HEAPF64[$v2$0$i108 >> 3]; + HEAPF64[$v2$0$i108 >> 3] = $232; + $i$2$i109 = $i$2$i109 + 1 | 0; + if (($i$2$i109 | 0) == ($5 | 0)) break; else { + $v1$0$i107 = $v1$0$i107 + 8 | 0; + $v2$0$i108 = $v2$0$i108 + 8 | 0; + } + } + } + } while (($k$1$i113 | 0) != ($84 | 0)); + } + _arVecFree($82) | 0; + L104 : do if ($24) { + $237 = HEAP32[$0 >> 2] | 0; + $238 = HEAP32[$2 >> 2] | 0; + do if (!(($237 | 0) < 1 | ($238 | 0) < 1)) { + if ((HEAP32[$18 >> 2] | 0) != ($237 | 0)) break; + if ((HEAP32[$21 >> 2] | 0) != ($237 | 0)) break; + if ((HEAP32[$11 >> 2] | 0) != ($237 | 0)) break; + if ((HEAP32[$8 >> 2] | 0) != ($238 | 0)) break; + if ((HEAP32[$14 >> 2] | 0) != ($237 | 0)) break; + $251 = HEAP32[$output >> 2] | 0; + L113 : do if (($237 | 0) > 0) { + $253 = HEAP32[$ev >> 2] | 0; + $exitcond3$i59 = ($238 | 0) == 0; + $exitcond$i651 = ($237 | 0) == 0; + $i$0$i266 = 0; + $m$0$i65 = $251; + while (1) { + $259 = +HEAPF64[$253 + ($i$0$i266 << 3) >> 3]; + if ($259 < 1.0e-16) { + $i$0$i2$lcssa = $i$0$i266; + $m$0$i$lcssa = $m$0$i65; + break L113; + } + $263 = 1.0 / +Math_sqrt(+(+Math_abs(+$259))); + $264 = Math_imul($i$0$i266, $237) | 0; + if (!$exitcond3$i59) { + $j$0$i461 = 0; + $m$1$i60 = $m$0$i65; + while (1) { + if ($exitcond$i651) $sum$0$i$lcssa = 0.0; else { + $k$0$i555 = 0; + $m1$0$i54 = (HEAP32[$17 >> 2] | 0) + ($264 << 3) | 0; + $m2$0$i52 = (HEAP32[$input >> 2] | 0) + ($j$0$i461 << 3) | 0; + $sum$0$i53 = 0.0; + while (1) { + $272 = $sum$0$i53 + +HEAPF64[$m1$0$i54 >> 3] * +HEAPF64[$m2$0$i52 >> 3]; + $k$0$i555 = $k$0$i555 + 1 | 0; + if (($k$0$i555 | 0) == ($237 | 0)) { + $sum$0$i$lcssa = $272; + break; + } else { + $m1$0$i54 = $m1$0$i54 + 8 | 0; + $m2$0$i52 = $m2$0$i52 + ($238 << 3) | 0; + $sum$0$i53 = $272; + } + } + } + HEAPF64[$m$1$i60 >> 3] = $263 * $sum$0$i$lcssa; + $j$0$i461 = $j$0$i461 + 1 | 0; + if (($j$0$i461 | 0) == ($238 | 0)) break; else $m$1$i60 = $m$1$i60 + 8 | 0; + } + } + $scevgep2$i = $m$0$i65 + ($238 << 3) | 0; + $279 = $i$0$i266 + 1 | 0; + if (($279 | 0) < ($237 | 0)) { + $i$0$i266 = $279; + $m$0$i65 = $scevgep2$i; + } else { + $i$0$i2$lcssa = $279; + $m$0$i$lcssa = $scevgep2$i; + break; + } + } + } else { + $i$0$i2$lcssa = 0; + $m$0$i$lcssa = $251; + } while (0); + $smax$i = ($238 | 0) > 0 ? $238 : 0; + if (($i$0$i2$lcssa | 0) >= ($237 | 0)) break L104; + $256 = HEAP32[$ev >> 2] | 0; + $257 = ($238 | 0) > 0; + $i$1$i49 = $i$0$i2$lcssa; + $m$2$i48 = $m$0$i$lcssa; + while (1) { + HEAPF64[$256 + ($i$1$i49 << 3) >> 3] = 0.0; + if ($257) { + $j$1$i47 = 0; + $m$3$i46 = $m$2$i48; + while (1) { + HEAPF64[$m$3$i46 >> 3] = 0.0; + $j$1$i47 = $j$1$i47 + 1 | 0; + if (($j$1$i47 | 0) >= ($238 | 0)) break; else $m$3$i46 = $m$3$i46 + 8 | 0; + } + } + $i$1$i49 = $i$1$i49 + 1 | 0; + if (($i$1$i49 | 0) >= ($237 | 0)) break L104; else $m$2$i48 = $m$2$i48 + ($smax$i << 3) | 0; + } + } while (0); + _arMatrixFree($17) | 0; + $$0 = -1; + break L1; + } else { + $287 = HEAP32[$output >> 2] | 0; + $289 = ($1 | 0) > ($3 | 0) ? $3 : $1; + L137 : do if (($5 | 0) > 0) { + $292 = HEAP32[$ev >> 2] | 0; + $exitcond82 = ($289 | 0) == 0; + $i$090 = 0; + $m1$089 = HEAP32[$17 >> 2] | 0; + $m2$088 = $287; + while (1) { + if (+HEAPF64[$292 + ($i$090 << 3) >> 3] < 1.0e-16) { + $i$0$lcssa = $i$090; + $m2$0$lcssa = $m2$088; + break L137; + } + if (!$exitcond82) { + $j$085 = 0; + $m1$184 = $m1$089; + $m2$183 = $m2$088; + while (1) { + HEAPF64[$m2$183 >> 3] = +HEAPF64[$m1$184 >> 3]; + $j$085 = $j$085 + 1 | 0; + if (($j$085 | 0) == ($289 | 0)) break; else { + $m1$184 = $m1$184 + 8 | 0; + $m2$183 = $m2$183 + 8 | 0; + } + } + } + $m1$089 = $m1$089 + ($289 << 3) | 0; + $scevgep41 = $m2$088 + ($289 << 3) | 0; + $304 = $i$090 + 1 | 0; + if (($304 | 0) >= ($5 | 0)) { + $i$0$lcssa = $304; + $m2$0$lcssa = $scevgep41; + break; + } else { + $i$090 = $304; + $m2$088 = $scevgep41; + } + } + } else { + $i$0$lcssa = 0; + $m2$0$lcssa = $287; + } while (0); + $smax38 = ($289 | 0) > 0 ? $289 : 0; + if (($i$0$lcssa | 0) < ($5 | 0)) { + $295 = HEAP32[$ev >> 2] | 0; + $296 = ($5 | 0) > 0; + $i$180 = $i$0$lcssa; + $m2$279 = $m2$0$lcssa; + while (1) { + HEAPF64[$295 + ($i$180 << 3) >> 3] = 0.0; + if ($296) { + $j$175 = 0; + $m2$374 = $m2$279; + while (1) { + HEAPF64[$m2$374 >> 3] = 0.0; + $j$175 = $j$175 + 1 | 0; + if (($j$175 | 0) >= ($5 | 0)) break; else $m2$374 = $m2$374 + 8 | 0; + } + } + $i$180 = $i$180 + 1 | 0; + if (($i$180 | 0) >= ($5 | 0)) break; else $m2$279 = $m2$279 + ($smax38 << 3) | 0; + } + } + } while (0); + _arMatrixFree($17) | 0; + $$0 = 0; + break L1; + } + } while (0); + _arMatrixFree($17) | 0; + $$0 = -1; + break; + } + } + _arMatrixFree($17) | 0; + $$0 = -1; + } else $$0 = -1; + } else $$0 = -1; + } else $$0 = -1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__113__nth_elementIRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEvT0_S9_S9_T_($__first, $__nth, $__last, $__comp) { + $__first = $__first | 0; + $__nth = $__nth | 0; + $__last = $__last | 0; + $__comp = $__comp | 0; + var $$byval_copy5 = 0, $$byval_copy6 = 0, $$byval_copy7 = 0, $$in347 = 0, $$in348 = 0, $$in350 = 0, $$in350$lcssa542 = 0, $$in350$lcssa543 = 0, $$in350453 = 0, $$in351 = 0, $$in352 = 0, $$lcssa = 0, $$lcssa247 = 0, $$lcssa247$lcssa = 0, $$lcssa248 = 0, $$lcssa248$lcssa = 0, $$lcssa301 = 0, $$lcssa302 = 0, $$lcssa303 = 0, $$lcssa304 = 0.0, $$lcssa459 = 0.0, $$lcssa460 = 0.0, $$lcssa462 = 0, $$lcssa463 = 0, $$lcssa464 = 0, $$lcssa467 = 0, $$lcssa472 = 0, $$lcssa473 = 0, $$lcssa474 = 0, $$lcssa475 = 0.0, $$lcssa477 = 0, $$lcssa478 = 0, $$lcssa489 = 0, $$lcssa490 = 0, $$lcssa493 = 0, $$lcssa494 = 0, $$lcssa497 = 0, $$lcssa498 = 0, $$lcssa502 = 0, $$lcssa503 = 0, $$lcssa509 = 0, $$lcssa510 = 0, $$lcssa513 = 0, $$lcssa514 = 0, $$lcssa521 = 0, $$lcssa522 = 0, $$lcssa524 = 0, $$lcssa525 = 0, $$lcssa529 = 0, $$lcssa533 = 0, $$ph = 0, $$ph115343 = 0, $$ph115343$lcssa536 = 0, $$ph122339 = 0, $$ph123341 = 0, $$ph124342 = 0, $$ph26 = 0, $$ph27 = 0, $$ph30 = 0, $$ph31 = 0, $$phi$trans$insert = 0, $$phi$trans$insert91 = 0, $$phi$trans$insert93 = 0, $$phi$trans$insert95 = 0, $$phi$trans$insert97 = 0, $$phi$trans$insert99 = 0, $$pre = 0, $$pre$phi101Z2D = 0, $$pre$phi102Z2D = 0, $$pre$phi103Z2D = 0, $$pre$phi104Z2D = 0, $$pre$phi108Z2D = 0, $$pre$phi110Z2D = 0, $$pre$phiZ2D = 0, $$pre$pn = 0, $$pre$pn$pn = 0, $$pre105 = 0, $0 = 0, $1 = 0, $100 = 0.0, $102 = 0, $106 = 0, $107 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0.0, $123 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $132 = 0.0, $137 = 0, $138 = 0, $138$phi = 0, $139 = 0, $14 = 0, $141 = 0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $156 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0.0, $161 = 0, $162 = 0, $163 = 0.0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0, $178 = 0.0, $181 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0.0, $19 = 0, $192 = 0, $194 = 0, $195 = 0, $196 = 0, $2 = 0, $20 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $207 = 0.0, $208 = 0.0, $21 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $216 = 0, $217 = 0, $218 = 0, $22 = 0, $220 = 0, $221 = 0, $226 = 0, $227 = 0, $229 = 0, $23 = 0, $231 = 0.0, $232 = 0, $232$phi = 0, $234 = 0.0, $24 = 0.0, $242 = 0, $244 = 0.0, $245 = 0, $245$phi = 0, $247 = 0.0, $25 = 0.0, $255 = 0, $262 = 0, $263 = 0, $264 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $28 = 0, $29 = 0, $3 = 0, $31 = 0, $33 = 0, $34 = 0, $37 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $5 = 0, $55 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0.0, $65 = 0, $7 = 0, $70 = 0, $70$phi = 0, $71 = 0.0, $74 = 0, $75 = 0, $79 = 0, $8 = 0, $80 = 0, $83 = 0, $85 = 0, $87 = 0, $88 = 0, $92 = 0, $94 = 0, $95 = 0.0, $96 = 0, $97 = 0.0, $__n_swaps$2 = 0, $__n_swaps$3$ph = 0, $__n_swaps$4 = 0, $__n_swaps$5 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy7 = sp + 40 | 0; + $$byval_copy6 = sp + 36 | 0; + $$byval_copy5 = sp + 32 | 0; + $0 = sp + 28 | 0; + $1 = sp + 24 | 0; + $2 = sp + 20 | 0; + $3 = sp + 16 | 0; + $4 = sp + 12 | 0; + $5 = sp + 8 | 0; + $6 = sp + 4 | 0; + $7 = sp; + $8 = HEAP32[$__nth >> 2] | 0; + $$pre = HEAP32[$__last >> 2] | 0; + L1 : do if (($8 | 0) != ($$pre | 0)) { + $$in347 = $$pre; + $$ph115343 = $$pre; + $$pre$pn = $$pre; + L3 : while (1) { + $11 = $$in347; + $$in348 = $$pre$pn + -8 | 0; + $$ph122339 = $$ph115343; + $$ph123341 = $$ph115343; + $$ph124342 = $$in347; + $$pre$pn$pn = $$pre$pn; + $60 = $$pre$pn + -8 | 0; + while (1) { + $13 = $$in348; + $14 = $$pre$pn$pn + -4 | 0; + $15 = $$pre$pn$pn + -4 | 0; + $16 = ($8 | 0) == ($$pre$pn$pn | 0); + $19 = $$ph124342; + $43 = $$ph123341; + L7 : while (1) { + $17 = HEAP32[$__first >> 2] | 0; + $20 = $17; + $21 = $19 - $20 | 0; + $22 = $21 >> 3; + switch ($22 | 0) { + case 1: + case 0: + { + break L1; + break; + } + case 2: + { + $$lcssa477 = $19; + $$lcssa493 = $17; + label = 6; + break L3; + break; + } + case 3: + { + $$lcssa478 = $19; + $$lcssa494 = $17; + $$lcssa502 = $20; + label = 12; + break L3; + break; + } + default: + {} + } + if (($21 | 0) < 64) { + $$lcssa503 = $20; + $$ph115343$lcssa536 = $$ph115343; + label = 14; + break L3; + } + $39 = ($22 | 0) / 2 | 0; + $40 = $17 + ($39 << 3) | 0; + $41 = $40; + HEAP32[$5 >> 2] = $20; + HEAP32[$6 >> 2] = $41; + $42 = $43; + $44 = $42 + -8 | 0; + $45 = $44; + HEAP32[$7 >> 2] = $45; + HEAP32[$$byval_copy5 >> 2] = HEAP32[$5 >> 2]; + HEAP32[$$byval_copy6 >> 2] = HEAP32[$6 >> 2]; + HEAP32[$$byval_copy7 >> 2] = HEAP32[$7 >> 2]; + $46 = __ZNSt3__17__sort3IRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEjT0_S9_S9_T_($$byval_copy5, $$byval_copy6, $$byval_copy7, $__comp) | 0; + $47 = +HEAPF32[$40 >> 2]; + $48 = +HEAPF32[$17 >> 2]; + if ($47 < $48) { + $153 = $17; + $156 = $45; + $267 = $42; + $268 = $41; + $269 = $43; + $__n_swaps$2 = $46; + break; + } + $$pre105 = $17 + ($39 << 3) + 4 | 0; + if (!($48 < $47)) if ((HEAP32[$$pre105 >> 2] | 0) >>> 0 < (HEAP32[$17 + 4 >> 2] | 0) >>> 0) { + $153 = $17; + $156 = $45; + $267 = $42; + $268 = $41; + $269 = $43; + $__n_swaps$2 = $46; + break; + } + $55 = $42 + -16 | 0; + if (($17 | 0) != ($55 | 0)) { + $$in350 = $55; + $138 = $44; + while (1) { + $132 = +HEAPF32[$$in350 >> 2]; + if ($47 < $132) { + $$in350$lcssa543 = $$in350; + $$lcssa = $138; + $$lcssa459 = $132; + $$lcssa489 = $43; + $$lcssa497 = $17; + $$lcssa509 = $41; + $$lcssa513 = $42; + $$lcssa521 = $46; + label = 45; + break L7; + } + if (!($132 < $47)) { + $137 = $138 + -4 | 0; + $139 = HEAP32[$137 >> 2] | 0; + if ((HEAP32[$$pre105 >> 2] | 0) >>> 0 < $139 >>> 0) { + $$in350$lcssa542 = $$in350; + $$lcssa460 = $132; + $$lcssa462 = $137; + $$lcssa463 = $139; + $$lcssa490 = $43; + $$lcssa498 = $17; + $$lcssa510 = $41; + $$lcssa514 = $42; + $$lcssa522 = $46; + label = 49; + break L7; + } + } + $141 = $$in350 + -8 | 0; + if (($17 | 0) == ($141 | 0)) break; else { + $138$phi = $$in350; + $$in350 = $141; + $138 = $138$phi; + } + } + } + $57 = $17 + 8 | 0; + $58 = $57; + $59 = +HEAPF32[$60 >> 2]; + $61 = +HEAPF32[$17 >> 2]; + do if ($59 < $61) $92 = $58; else { + if ($61 < $59) $$pre$phi108Z2D = $17 + 4 | 0; else { + $65 = $17 + 4 | 0; + if ((HEAP32[$15 >> 2] | 0) >>> 0 < (HEAP32[$65 >> 2] | 0) >>> 0) { + $92 = $58; + break; + } else $$pre$phi108Z2D = $65; + } + if (($57 | 0) == ($$in348 | 0)) break L1; else { + $270 = $58; + $70 = $17; + $88 = $57; + } + while (1) { + $71 = +HEAPF32[$70 + 8 >> 2]; + if ($71 < $61) { + $$lcssa464 = $70; + $$lcssa467 = $270; + label = 25; + break; + } + if (!($61 < $71)) { + $74 = $70 + 12 | 0; + $75 = HEAP32[$74 >> 2] | 0; + if ($75 >>> 0 < (HEAP32[$$pre$phi108Z2D >> 2] | 0) >>> 0) { + $$pre$phi102Z2D = $74; + $79 = $270; + $83 = $75; + $85 = $70; + break; + } + } + $87 = $88 + 8 | 0; + if (($87 | 0) == ($$in348 | 0)) break L1; else { + $70$phi = $88; + $270 = $87; + $88 = $87; + $70 = $70$phi; + } + } + if ((label | 0) == 25) { + label = 0; + $$phi$trans$insert95 = $$lcssa464 + 12 | 0; + $$pre$phi102Z2D = $$phi$trans$insert95; + $79 = $$lcssa467; + $83 = HEAP32[$$phi$trans$insert95 >> 2] | 0; + $85 = $$lcssa464; + } + $80 = HEAP32[$79 >> 2] | 0; + HEAPF32[$79 >> 2] = $59; + HEAP32[$$in348 >> 2] = $80; + HEAP32[$$pre$phi102Z2D >> 2] = HEAP32[$14 >> 2]; + HEAP32[$14 >> 2] = $83; + $92 = $85 + 16 | 0; + } while (0); + if (($92 | 0) == ($$in348 | 0)) break L1; + $94 = $17 + 4 | 0; + $$ph30 = $92; + $$ph31 = $13; + while (1) { + $95 = +HEAPF32[$17 >> 2]; + $96 = $$ph30; + $97 = +HEAPF32[$96 >> 2]; + L42 : do if ($97 < $95) { + $$lcssa247 = $$ph30; + $$lcssa248 = $96; + } else { + $100 = $97; + $102 = $96; + $271 = $$ph30; + while (1) { + if (!($95 < $100)) if ((HEAP32[$102 + 4 >> 2] | 0) >>> 0 < (HEAP32[$94 >> 2] | 0) >>> 0) { + $$lcssa247 = $271; + $$lcssa248 = $102; + break L42; + } + $106 = $102 + 8 | 0; + $107 = $106; + $100 = +HEAPF32[$106 >> 2]; + if ($100 < $95) { + $$lcssa247 = $107; + $$lcssa248 = $106; + break; + } else { + $102 = $106; + $271 = $107; + } + } + } while (0); + $111 = $$ph31; + while (1) { + $110 = $111; + $112 = $110 + -8 | 0; + $113 = $112; + $114 = +HEAPF32[$112 >> 2]; + if ($114 < $95) { + $111 = $113; + continue; + } + if ($95 < $114) { + $$lcssa472 = $110; + $$lcssa473 = $112; + $$lcssa474 = $113; + $$lcssa475 = $114; + break; + } + if ((HEAP32[$110 + -4 >> 2] | 0) >>> 0 < (HEAP32[$94 >> 2] | 0) >>> 0) $111 = $113; else { + $$lcssa472 = $110; + $$lcssa473 = $112; + $$lcssa474 = $113; + $$lcssa475 = $114; + break; + } + } + if ($$lcssa248 >>> 0 >= $$lcssa473 >>> 0) { + $$lcssa247$lcssa = $$lcssa247; + $$lcssa248$lcssa = $$lcssa248; + break; + } + $123 = HEAP32[$$lcssa247 >> 2] | 0; + HEAPF32[$$lcssa247 >> 2] = $$lcssa475; + HEAP32[$$lcssa473 >> 2] = $123; + $125 = $$lcssa248 + 4 | 0; + $126 = $$lcssa472 + -4 | 0; + $127 = HEAP32[$125 >> 2] | 0; + HEAP32[$125 >> 2] = HEAP32[$126 >> 2]; + HEAP32[$126 >> 2] = $127; + $$ph30 = $$lcssa248 + 8 | 0; + $$ph31 = $$lcssa474; + } + if ($8 >>> 0 < $$lcssa248$lcssa >>> 0) break L1; + HEAP32[$__first >> 2] = $$lcssa247$lcssa; + if ($16) break L1; else { + $19 = $$pre$pn$pn; + $43 = $$ph122339; + } + } + if ((label | 0) == 45) { + label = 0; + $$phi$trans$insert93 = $$lcssa + -4 | 0; + $$in350453 = $$in350$lcssa543; + $$pre$phi103Z2D = $$phi$trans$insert93; + $145 = $$lcssa497; + $146 = $$lcssa459; + $149 = HEAP32[$$phi$trans$insert93 >> 2] | 0; + $151 = $$lcssa521; + $272 = $$lcssa513; + $273 = $$lcssa509; + $274 = $$lcssa489; + $275 = $$in350$lcssa543; + label = 50; + } else if ((label | 0) == 49) { + label = 0; + $$in350453 = $$in350$lcssa542; + $$pre$phi103Z2D = $$lcssa462; + $145 = $$lcssa498; + $146 = $$lcssa460; + $149 = $$lcssa463; + $151 = $$lcssa522; + $272 = $$lcssa514; + $273 = $$lcssa510; + $274 = $$lcssa490; + $275 = $$in350$lcssa542; + label = 50; + } + if ((label | 0) == 50) { + label = 0; + $144 = HEAP32[$145 >> 2] | 0; + HEAPF32[$145 >> 2] = $146; + HEAP32[$$in350453 >> 2] = $144; + $147 = $145 + 4 | 0; + $148 = HEAP32[$147 >> 2] | 0; + HEAP32[$147 >> 2] = $149; + HEAP32[$$pre$phi103Z2D >> 2] = $148; + $153 = $145; + $156 = $275; + $267 = $272; + $268 = $273; + $269 = $274; + $__n_swaps$2 = $151 + 1 | 0; + } + $152 = $153 + 8 | 0; + $154 = $152; + L63 : do if ($152 >>> 0 < $156 >>> 0) { + $$ph = $268; + $$ph26 = $154; + $$ph27 = $156; + $__n_swaps$3$ph = $__n_swaps$2; + while (1) { + $158 = $$ph; + $159 = $158 + 4 | 0; + $160 = +HEAPF32[$158 >> 2]; + $162 = $$ph26; + while (1) { + $161 = $162; + $163 = +HEAPF32[$161 >> 2]; + if (!($160 < $163)) { + if ($163 < $160) { + $$lcssa524 = $162; + $$lcssa525 = $161; + break; + } + if ((HEAP32[$159 >> 2] | 0) >>> 0 >= (HEAP32[$161 + 4 >> 2] | 0) >>> 0) { + $$lcssa524 = $162; + $$lcssa525 = $161; + break; + } + } + $162 = $161 + 8 | 0; + } + $166 = $$ph27; + $167 = $166 + -8 | 0; + $168 = $167; + $169 = +HEAPF32[$167 >> 2]; + L73 : do if ($160 < $169) { + $$lcssa301 = $166; + $$lcssa302 = $167; + $$lcssa303 = $168; + $$lcssa304 = $169; + } else { + $178 = $169; + $181 = $166; + $185 = $168; + $276 = $167; + while (1) { + if (!($178 < $160)) if ((HEAP32[$159 >> 2] | 0) >>> 0 < (HEAP32[$181 + -4 >> 2] | 0) >>> 0) { + $$lcssa301 = $181; + $$lcssa302 = $276; + $$lcssa303 = $185; + $$lcssa304 = $178; + break L73; + } + $184 = $185; + $186 = $184 + -8 | 0; + $187 = $186; + $188 = +HEAPF32[$186 >> 2]; + if ($160 < $188) { + $$lcssa301 = $184; + $$lcssa302 = $186; + $$lcssa303 = $187; + $$lcssa304 = $188; + break; + } else { + $178 = $188; + $181 = $184; + $185 = $187; + $276 = $186; + } + } + } while (0); + if ($$lcssa525 >>> 0 >= $$lcssa302 >>> 0) { + $203 = $$lcssa524; + $205 = $$ph; + $__n_swaps$4 = $__n_swaps$3$ph; + break L63; + } + $192 = HEAP32[$$lcssa524 >> 2] | 0; + HEAPF32[$$lcssa524 >> 2] = $$lcssa304; + HEAP32[$$lcssa302 >> 2] = $192; + $194 = $$lcssa525 + 4 | 0; + $195 = $$lcssa301 + -4 | 0; + $196 = HEAP32[$194 >> 2] | 0; + HEAP32[$194 >> 2] = HEAP32[$195 >> 2]; + HEAP32[$195 >> 2] = $196; + $$ph = ($158 | 0) == ($$lcssa525 | 0) ? $$lcssa303 : $$ph; + $$ph26 = $$lcssa525 + 8 | 0; + $$ph27 = $$lcssa303; + $__n_swaps$3$ph = $__n_swaps$3$ph + 1 | 0; + } + } else { + $203 = $154; + $205 = $268; + $__n_swaps$4 = $__n_swaps$2; + } while (0); + $202 = $203; + $204 = $205; + do if (($202 | 0) == ($204 | 0)) $__n_swaps$5 = $__n_swaps$4; else { + $207 = +HEAPF32[$202 >> 2]; + $208 = +HEAPF32[$204 >> 2]; + if ($207 < $208) { + $$phi$trans$insert97 = $202 + 4 | 0; + $$phi$trans$insert99 = $204 + 4 | 0; + $$pre$phi101Z2D = $$phi$trans$insert99; + $$pre$phiZ2D = $$phi$trans$insert97; + $220 = HEAP32[$$phi$trans$insert99 >> 2] | 0; + $221 = HEAP32[$$phi$trans$insert97 >> 2] | 0; + } else { + if ($208 < $207) { + $__n_swaps$5 = $__n_swaps$4; + break; + } + $211 = $202 + 4 | 0; + $212 = HEAP32[$211 >> 2] | 0; + $213 = $204 + 4 | 0; + $214 = HEAP32[$213 >> 2] | 0; + if ($212 >>> 0 < $214 >>> 0) { + $$pre$phi101Z2D = $213; + $$pre$phiZ2D = $211; + $220 = $214; + $221 = $212; + } else { + $__n_swaps$5 = $__n_swaps$4; + break; + } + } + $216 = $203; + $217 = HEAP32[$216 >> 2] | 0; + $218 = $205; + HEAP32[$216 >> 2] = HEAP32[$218 >> 2]; + HEAP32[$218 >> 2] = $217; + HEAP32[$$pre$phiZ2D >> 2] = $220; + HEAP32[$$pre$phi101Z2D >> 2] = $221; + $__n_swaps$5 = $__n_swaps$4 + 1 | 0; + } while (0); + if (($8 | 0) == ($202 | 0)) break L1; + L91 : do if (!$__n_swaps$5) if ($8 >>> 0 < $202 >>> 0) { + $229 = $153 + 8 | 0; + if (($229 | 0) == ($202 | 0)) break L1; else { + $$in352 = $229; + $232 = $153; + } + while (1) { + $231 = +HEAPF32[$232 >> 2]; + $234 = +HEAPF32[$232 + 8 >> 2]; + if ($231 < $234) { + $263 = $$ph122339; + $266 = $267; + $277 = $269; + break L91; + } + if (!($234 < $231)) if ((HEAP32[$232 + 4 >> 2] | 0) >>> 0 < (HEAP32[$232 + 12 >> 2] | 0) >>> 0) { + $263 = $$ph122339; + $266 = $267; + $277 = $269; + break L91; + } + $242 = $$in352 + 8 | 0; + if (($242 | 0) == ($202 | 0)) break L1; else { + $232$phi = $$in352; + $$in352 = $242; + $232 = $232$phi; + } + } + } else { + $226 = $203; + $227 = $226 + 8 | 0; + if (($227 | 0) == ($$in347 | 0)) break L1; else { + $$in351 = $227; + $245 = $226; + } + while (1) { + $244 = +HEAPF32[$245 >> 2]; + $247 = +HEAPF32[$245 + 8 >> 2]; + if ($244 < $247) { + $263 = $11; + $266 = $$in347; + $277 = $11; + break L91; + } + if (!($247 < $244)) if ((HEAP32[$245 + 4 >> 2] | 0) >>> 0 < (HEAP32[$245 + 12 >> 2] | 0) >>> 0) { + $263 = $11; + $266 = $$in347; + $277 = $11; + break L91; + } + $255 = $$in351 + 8 | 0; + if (($255 | 0) == ($$in347 | 0)) break L1; else { + $245$phi = $$in351; + $$in351 = $255; + $245 = $245$phi; + } + } + } else { + $263 = $$ph122339; + $266 = $267; + $277 = $269; + } while (0); + if ($8 >>> 0 < $202 >>> 0) { + $$lcssa529 = $203; + $$lcssa533 = $202; + break; + } + HEAP32[$__first >> 2] = $202 + 8; + $262 = $263; + $264 = $262 + -8 | 0; + if (($8 | 0) == ($266 | 0)) break L1; else { + $$in348 = $264; + $$ph122339 = $263; + $$ph123341 = $277; + $$ph124342 = $266; + $$pre$pn$pn = $262; + $60 = $264; + } + } + HEAP32[$__last >> 2] = $$lcssa529; + if (($8 | 0) == ($$lcssa533 | 0)) break L1; else { + $$in347 = $$lcssa533; + $$ph115343 = $$lcssa529; + $$pre$pn = $$lcssa529; + } + } + if ((label | 0) == 6) { + $23 = $$lcssa477 + -8 | 0; + HEAP32[$__last >> 2] = $23; + $24 = +HEAPF32[$$lcssa493 >> 2]; + $25 = +HEAPF32[$23 >> 2]; + if ($24 < $25) { + $$phi$trans$insert = $$lcssa493 + 4 | 0; + $$phi$trans$insert91 = $$lcssa477 + -4 | 0; + $$pre$phi104Z2D = $$phi$trans$insert; + $$pre$phi110Z2D = $$phi$trans$insert91; + $33 = HEAP32[$$phi$trans$insert91 >> 2] | 0; + $34 = HEAP32[$$phi$trans$insert >> 2] | 0; + } else { + if ($25 < $24) break; + $28 = $$lcssa493 + 4 | 0; + $29 = HEAP32[$28 >> 2] | 0; + $31 = HEAP32[$$lcssa477 + -4 >> 2] | 0; + if ($29 >>> 0 >= $31 >>> 0) break; + $$pre$phi104Z2D = $28; + $$pre$phi110Z2D = $$lcssa477 + -4 | 0; + $33 = $31; + $34 = $29; + } + HEAPF32[$$lcssa493 >> 2] = $25; + HEAPF32[$23 >> 2] = $24; + HEAP32[$$pre$phi104Z2D >> 2] = $33; + HEAP32[$$pre$phi110Z2D >> 2] = $34; + break; + } else if ((label | 0) == 12) { + HEAP32[$0 >> 2] = $$lcssa502; + HEAP32[$1 >> 2] = $$lcssa494 + 8; + $37 = $$lcssa478 + -8 | 0; + HEAP32[$__last >> 2] = $37; + HEAP32[$2 >> 2] = $37; + HEAP32[$$byval_copy5 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy6 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy7 >> 2] = HEAP32[$2 >> 2]; + __ZNSt3__17__sort3IRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEjT0_S9_S9_T_($$byval_copy5, $$byval_copy6, $$byval_copy7, $__comp) | 0; + break; + } else if ((label | 0) == 14) { + HEAP32[$3 >> 2] = $$lcssa503; + HEAP32[$4 >> 2] = $$ph115343$lcssa536; + HEAP32[$$byval_copy6 >> 2] = HEAP32[$3 >> 2]; + HEAP32[$$byval_copy7 >> 2] = HEAP32[$4 >> 2]; + __ZNSt3__116__selection_sortIRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEvT0_S9_T_($$byval_copy6, $$byval_copy7, $__comp); + break; + } + } while (0); + STACKTOP = sp; + return; +} + +function _arDetectMarker($arHandle, $dataPtr) { + $arHandle = $arHandle | 0; + $dataPtr = $dataPtr | 0; + var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa109 = 0.0, $$lcssa110 = 0.0, $$pr10 = 0, $$pre$phi45Z2D = 0, $$pre$phi47Z2D = 0, $$pre$phi49Z2D = 0, $$pre$phi51Z2D = 0, $$pre$phi53Z2D = 0, $$pre$phiZ2D = 0, $$pre35 = 0, $$pre37 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $106 = 0, $115 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $126 = 0, $132 = 0, $135 = 0, $14 = 0, $144 = 0, $146 = 0, $155 = 0, $157 = 0, $16 = 0, $163 = 0, $164 = 0, $187 = 0, $190 = 0, $191 = 0, $193 = 0, $195 = 0, $196 = 0, $199 = 0.0, $2 = 0, $20 = 0, $202 = 0.0, $203 = 0.0, $209 = 0.0, $21 = 0, $214 = 0.0, $217 = 0.0, $22 = 0, $222 = 0, $223 = 0, $226 = 0.0, $229 = 0, $23 = 0, $231 = 0, $235 = 0, $238 = 0.0, $24 = 0, $244 = 0.0, $247 = 0.0, $25 = 0, $26 = 0, $262 = 0, $265 = 0.0, $267 = 0, $269 = 0, $27 = 0, $28 = 0, $282 = 0, $285 = 0.0, $29 = 0, $291 = 0.0, $294 = 0.0, $296 = 0, $30 = 0, $300 = 0, $31 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $324 = 0, $326 = 0, $328 = 0, $33 = 0, $330 = 0, $335 = 0, $343 = 0, $350 = 0, $351 = 0, $353 = 0, $355 = 0.0, $358 = 0.0, $359 = 0.0, $365 = 0.0, $370 = 0.0, $375 = 0, $381 = 0, $385 = 0, $386 = 0, $387 = 0, $4 = 0, $5 = 0, $69 = 0, $71 = 0, $72 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $8 = 0, $80 = 0, $83 = 0, $86 = 0, $89 = 0, $9 = 0, $91 = 0, $92 = 0, $cdir$1 = 0, $cdir$1$lcssa = 0, $cdir$295 = 0, $cdir$3 = 0, $cdir$3$lcssa = 0, $cid$0$lcssa = 0, $cid$087 = 0, $cid$1 = 0, $diff$097 = 0.0, $diff$192 = 0.0, $diffmin$099 = 0.0, $diffmin$1 = 0.0, $diffmin$294 = 0.0, $i$0104 = 0, $i$1101 = 0, $i$280 = 0, $i$373 = 0, $i$467 = 0, $j$088 = 0, $j$1100 = 0, $j$296 = 0, $j$3$lcssa = 0, $j$381 = 0, $j$4 = 0, $j$5$lcssa = 0, $j$568 = 0, $j$6$lcssa = 0, $j$663 = 0, $k$098 = 0, $k$193 = 0, $marker_nums = 0, $ret1$0 = 0, $rlenmin$086 = 0.0, $rlenmin$1 = 0.0, $storemerge = 0, $storemerge11 = 0, $storemerge4 = 0, $thresholds = 0, $value = 0, $vararg_buffer = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer9 = sp + 32 | 0; + $vararg_buffer6 = sp + 24 | 0; + $vararg_buffer = sp; + $thresholds = sp + 52 | 0; + $marker_nums = sp + 40 | 0; + $value = sp + 64 | 0; + $0 = $arHandle + 44 | 0; + HEAP32[$0 >> 2] = 0; + $1 = $arHandle + 7062388 | 0; + $2 = HEAP32[$1 >> 2] | 0; + L1 : do if (($2 | 0) == 4) { + $4 = $arHandle + 7062396 | 0; + $5 = HEAP32[$4 >> 2] | 0; + do if (($5 | 0) > 0) { + $$pr10 = 4; + $storemerge11 = $5 + -1 | 0; + } else { + $8 = $arHandle + 16 | 0; + $9 = HEAP32[$8 >> 2] | 0; + $10 = $arHandle + 7062400 | 0; + $12 = (HEAP32[$10 >> 2] | 0) + $9 | 0; + $$ = ($12 | 0) > 255 ? 255 : $12; + HEAP32[$thresholds >> 2] = $$; + $14 = $arHandle + 7062404 | 0; + $16 = $9 - (HEAP32[$14 >> 2] | 0) | 0; + $storemerge4 = ($16 | 0) < 0 ? 0 : $16; + HEAP32[$thresholds + 4 >> 2] = $storemerge4; + HEAP32[$thresholds + 8 >> 2] = $9; + $20 = $arHandle + 36 | 0; + $21 = $arHandle + 40 | 0; + $22 = $arHandle + 4 | 0; + $23 = $arHandle + 12 | 0; + $24 = $arHandle + 20 | 0; + $25 = $arHandle + 4834144 | 0; + $26 = $arHandle + 15416 | 0; + $27 = $arHandle + 15408 | 0; + $28 = $arHandle + 7062384 | 0; + $29 = $arHandle + 24 | 0; + $30 = $arHandle + 32 | 0; + $31 = $arHandle + 7062416 | 0; + $32 = $arHandle + 48 | 0; + $33 = $arHandle + 7062424 | 0; + $i$0104 = 0; + do { + if ((_arLabeling($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$23 >> 2] | 0, HEAP32[$thresholds + ($i$0104 << 2) >> 2] | 0, HEAP32[$24 >> 2] | 0, $25, 0) | 0) < 0) { + $$0 = -1; + break L1; + } + if ((_arDetectMarker2(HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, $25, HEAP32[$24 >> 2] | 0, 1e6, 70, 1.0, $26, $27) | 0) < 0) { + $$0 = -1; + break L1; + } + if ((_arGetMarkerInfo($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, $26, HEAP32[$27 >> 2] | 0, HEAP32[$28 >> 2] | 0, HEAP32[$24 >> 2] | 0, HEAP32[$29 >> 2] | 0, (HEAP32[$30 >> 2] | 0) + 184 | 0, +HEAPF64[$31 >> 3], $32, $0, HEAP32[$33 >> 2] | 0) | 0) < 0) { + $$0 = -1; + break L1; + } + HEAP32[$marker_nums + ($i$0104 << 2) >> 2] = HEAP32[$0 >> 2]; + $i$0104 = $i$0104 + 1 | 0; + } while (($i$0104 | 0) < 3); + if ((HEAP32[$arHandle >> 2] | 0) == 1) { + $69 = HEAP32[$marker_nums + 4 >> 2] | 0; + $71 = HEAP32[$marker_nums + 8 >> 2] | 0; + $72 = HEAP32[$marker_nums >> 2] | 0; + HEAP32[$vararg_buffer >> 2] = $storemerge4; + HEAP32[$vararg_buffer + 4 >> 2] = $69; + HEAP32[$vararg_buffer + 8 >> 2] = $9; + HEAP32[$vararg_buffer + 12 >> 2] = $71; + HEAP32[$vararg_buffer + 16 >> 2] = $$; + HEAP32[$vararg_buffer + 20 >> 2] = $72; + _arLog(3, 18341, $vararg_buffer); + $74 = $72; + $75 = $71; + } else { + $74 = HEAP32[$marker_nums >> 2] | 0; + $75 = HEAP32[$marker_nums + 8 >> 2] | 0; + } + $$pre35 = HEAP32[$marker_nums + 4 >> 2] | 0; + if (($74 | 0) > ($75 | 0) | ($$pre35 | 0) > ($75 | 0)) { + $91 = ($74 | 0) >= ($$pre35 | 0) ? $$ : $storemerge4; + HEAP32[$8 >> 2] = $91; + $92 = $91 - $9 | 0; + if (($92 | 0) > 0) { + HEAP32[$10 >> 2] = $92; + $storemerge = 1; + } else { + HEAP32[$10 >> 2] = 1; + $storemerge = 0 - $92 | 0; + } + HEAP32[$14 >> 2] = $storemerge; + if ((HEAP32[$arHandle >> 2] | 0) == 1) { + HEAP32[$vararg_buffer6 >> 2] = $91; + _arLog(3, 18417, $vararg_buffer6); + } + $$pr10 = HEAP32[$1 >> 2] | 0; + $storemerge11 = HEAP32[$arHandle + 7062392 >> 2] | 0; + break; + } + $77 = HEAP32[$10 >> 2] | 0; + $78 = HEAP32[$14 >> 2] | 0; + do if (($77 | 0) < ($78 | 0)) { + $80 = $77 + 1 | 0; + HEAP32[$10 >> 2] = $80; + $86 = $80; + } else if (($77 | 0) > ($78 | 0)) { + HEAP32[$14 >> 2] = $78 + 1; + $86 = $77; + break; + } else { + $83 = $77 + 1 | 0; + HEAP32[$10 >> 2] = $83; + HEAP32[$14 >> 2] = $78 + 1; + $86 = $83; + break; + } while (0); + if (($86 + $9 | 0) > 254) { + HEAP32[$10 >> 2] = 1; + $89 = 1; + } else $89 = $86; + if (($9 | 0) <= ($89 | 0)) HEAP32[$14 >> 2] = 1; + HEAP32[$4 >> 2] = HEAP32[$arHandle + 7062392 >> 2]; + label = 47; + break L1; + } while (0); + HEAP32[$4 >> 2] = $storemerge11; + $101 = $$pr10; + label = 30; + } else { + $101 = $2; + label = 30; + } while (0); + L40 : do if ((label | 0) == 30) { + L42 : do switch ($101 | 0) { + case 3: + { + $102 = $arHandle + 7062408 | 0; + $104 = _arImageProcLumaHistAndBoxFilterWithBias(HEAP32[$102 >> 2] | 0, $dataPtr, 9, -7) | 0; + if (($104 | 0) < 0) { + $$0 = $104; + break L40; + } + $106 = HEAP32[$102 >> 2] | 0; + $115 = $arHandle + 4834144 | 0; + $118 = _arLabeling(HEAP32[$106 >> 2] | 0, HEAP32[$106 + 8 >> 2] | 0, HEAP32[$106 + 12 >> 2] | 0, 5, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, 0, 0, $115, HEAP32[$106 + 4 >> 2] | 0) | 0; + if (($118 | 0) < 0) { + $$0 = $118; + break L40; + } + $$pre$phi45Z2D = $arHandle + 36 | 0; + $$pre$phi47Z2D = $arHandle + 40 | 0; + $$pre$phi49Z2D = $arHandle + 20 | 0; + $$pre$phiZ2D = $115; + break; + } + case 2: + case 1: + { + $120 = $arHandle + 7062396 | 0; + $121 = HEAP32[$120 >> 2] | 0; + if (($121 | 0) > 0) { + HEAP32[$120 >> 2] = $121 + -1; + label = 44; + break L42; + } + $126 = HEAP32[$arHandle + 7062408 >> 2] | 0; + if (($101 | 0) == 1) $ret1$0 = _arImageProcLumaHistAndCDFAndMedian($126, $dataPtr, $value) | 0; else $ret1$0 = _arImageProcLumaHistAndOtsu($126, $dataPtr, $value) | 0; + if (($ret1$0 | 0) < 0) { + $$0 = $ret1$0; + break L40; + } + $132 = $arHandle + 16 | 0; + if ((HEAP32[$arHandle >> 2] | 0) == 1) { + $135 = HEAPU8[$value >> 0] | 0; + if ((HEAP32[$132 >> 2] | 0) != ($135 | 0)) { + HEAP32[$vararg_buffer9 >> 2] = (HEAP32[$1 >> 2] | 0) == 1 ? 18469 : 18476; + HEAP32[$vararg_buffer9 + 4 >> 2] = $135; + _arLog(3, 18481, $vararg_buffer9); + } + } + HEAP32[$132 >> 2] = HEAPU8[$value >> 0]; + HEAP32[$120 >> 2] = HEAP32[$arHandle + 7062392 >> 2]; + label = 44; + break; + } + default: + label = 44; + } while (0); + if ((label | 0) == 44) { + $144 = $arHandle + 36 | 0; + $146 = $arHandle + 40 | 0; + $155 = $arHandle + 20 | 0; + $157 = $arHandle + 4834144 | 0; + if ((_arLabeling($dataPtr, HEAP32[$144 >> 2] | 0, HEAP32[$146 >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, HEAP32[$arHandle + 16 >> 2] | 0, HEAP32[$155 >> 2] | 0, $157, 0) | 0) < 0) { + $$0 = -1; + break; + } else { + $$pre$phi45Z2D = $144; + $$pre$phi47Z2D = $146; + $$pre$phi49Z2D = $155; + $$pre$phiZ2D = $157; + } + } + $163 = $arHandle + 15416 | 0; + $164 = $arHandle + 15408 | 0; + if ((_arDetectMarker2(HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, $$pre$phiZ2D, HEAP32[$$pre$phi49Z2D >> 2] | 0, 1e6, 70, 1.0, $163, $164) | 0) < 0) $$0 = -1; else if ((_arGetMarkerInfo($dataPtr, HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, $163, HEAP32[$164 >> 2] | 0, HEAP32[$arHandle + 7062384 >> 2] | 0, HEAP32[$$pre$phi49Z2D >> 2] | 0, HEAP32[$arHandle + 24 >> 2] | 0, (HEAP32[$arHandle + 32 >> 2] | 0) + 184 | 0, +HEAPF64[$arHandle + 7062416 >> 3], $arHandle + 48 | 0, $0, HEAP32[$arHandle + 7062424 >> 2] | 0) | 0) < 0) $$0 = -1; else label = 47; + } while (0); + L63 : do if ((label | 0) == 47) { + $187 = $arHandle + 28 | 0; + if ((HEAP32[$187 >> 2] | 0) == 1) { + _confidenceCutoff($arHandle); + $$0 = 0; + break; + } + $190 = $arHandle + 4818296 | 0; + $191 = $arHandle + 24 | 0; + $$pre37 = HEAP32[$190 >> 2] | 0; + if (($$pre37 | 0) > 0) { + $i$1101 = 0; + do { + $193 = HEAP32[$0 >> 2] | 0; + $195 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 56 | 0; + $196 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 64 | 0; + if (($193 | 0) > 0) { + $199 = +(HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) >> 2] | 0); + $cid$087 = -1; + $j$088 = 0; + $rlenmin$086 = .5; + while (1) { + $202 = +(HEAP32[$arHandle + 48 + ($j$088 << 8) >> 2] | 0); + $203 = $199 / $202; + if ($203 < .7 | $203 > 1.43) { + $cid$1 = $cid$087; + $rlenmin$1 = $rlenmin$086; + } else { + $209 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 56 >> 3] - +HEAPF64[$195 >> 3]; + $214 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 64 >> 3] - +HEAPF64[$196 >> 3]; + $217 = ($209 * $209 + $214 * $214) / $202; + if ($217 < $rlenmin$086) { + $cid$1 = $j$088; + $rlenmin$1 = $217; + } else { + $cid$1 = $cid$087; + $rlenmin$1 = $rlenmin$086; + } + } + $j$088 = $j$088 + 1 | 0; + if (($j$088 | 0) >= ($193 | 0)) { + $cid$0$lcssa = $cid$1; + break; + } else { + $cid$087 = $cid$1; + $rlenmin$086 = $rlenmin$1; + } + } + } else $cid$0$lcssa = -1; + L80 : do if (($cid$0$lcssa | 0) > -1) { + $222 = HEAP32[$191 >> 2] | 0; + switch ($222 | 0) { + case 2: + case 1: + case 0: + break; + case 4: + case 3: + { + $262 = $arHandle + 48 + ($cid$0$lcssa << 8) + 40 | 0; + $265 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 40 >> 3]; + if (+HEAPF64[$262 >> 3] < $265) { + $$pre$phi51Z2D = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0; + $$pre$phi53Z2D = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0; + } else { + $267 = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0; + $269 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0; + if (+HEAPF64[$267 >> 3] < +HEAPF64[$269 >> 3]) { + $$pre$phi51Z2D = $269; + $$pre$phi53Z2D = $267; + } else break L80; + } + HEAPF64[$262 >> 3] = $265; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 8 >> 2]; + HEAPF64[$$pre$phi53Z2D >> 3] = +HEAPF64[$$pre$phi51Z2D >> 3]; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 12 >> 2]; + $cdir$295 = -1; + $diffmin$294 = 1.0e8; + $j$296 = 0; + while (1) { + $diff$192 = 0.0; + $k$193 = 0; + while (1) { + $282 = ($k$193 + $j$296 | 0) % 4 | 0; + $285 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) >> 3]; + $291 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) + 8 >> 3]; + $294 = $diff$192 + ($285 * $285 + $291 * $291); + $k$193 = $k$193 + 1 | 0; + if (($k$193 | 0) == 4) { + $$lcssa109 = $294; + break; + } else $diff$192 = $294; + } + $296 = $$lcssa109 < $diffmin$294; + $cdir$3 = $296 ? $j$296 : $cdir$295; + $j$296 = $j$296 + 1 | 0; + if (($j$296 | 0) == 4) { + $cdir$3$lcssa = $cdir$3; + break; + } else { + $cdir$295 = $cdir$3; + $diffmin$294 = $296 ? $$lcssa109 : $diffmin$294; + } + } + $300 = 4 - $cdir$3$lcssa | 0; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 20 >> 2] | 0) | 0) % 4 | 0; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 24 >> 2] | 0) | 0) % 4 | 0; + break L80; + break; + } + default: + { + $$0 = -1; + break L63; + } + } + $223 = $arHandle + 48 + ($cid$0$lcssa << 8) + 32 | 0; + $226 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 32 >> 3]; + if (+HEAPF64[$223 >> 3] < $226) { + HEAPF64[$223 >> 3] = $226; + $229 = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 4 >> 2] | 0; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 4 >> 2] = $229; + $231 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 16 | 0; + $385 = -1; + $diffmin$099 = 1.0e8; + $j$1100 = 0; + while (1) { + $diff$097 = 0.0; + $k$098 = 0; + while (1) { + $235 = ($k$098 + $j$1100 | 0) % 4 | 0; + $238 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) >> 3]; + $244 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) + 8 >> 3]; + $247 = $diff$097 + ($238 * $238 + $244 * $244); + $k$098 = $k$098 + 1 | 0; + if (($k$098 | 0) == 4) { + $$lcssa110 = $247; + break; + } else $diff$097 = $247; + } + if ($$lcssa110 < $diffmin$099) { + $cdir$1 = (4 - $j$1100 + (HEAP32[$231 >> 2] | 0) | 0) % 4 | 0; + $diffmin$1 = $$lcssa110; + } else { + $cdir$1 = $385; + $diffmin$1 = $diffmin$099; + } + $j$1100 = $j$1100 + 1 | 0; + if (($j$1100 | 0) == 4) { + $cdir$1$lcssa = $cdir$1; + break; + } else { + $385 = $cdir$1; + $diffmin$099 = $diffmin$1; + } + } + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 16 >> 2] = $cdir$1$lcssa; + if ($222 >>> 0 < 2) { + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = $229; + HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 40 >> 3] = $226; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = $cdir$1$lcssa; + break; + } else { + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = $229; + HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 48 >> 3] = $226; + HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = $cdir$1$lcssa; + break; + } + } + } while (0); + $i$1101 = $i$1101 + 1 | 0; + } while (($i$1101 | 0) < ($$pre37 | 0)); + } + _confidenceCutoff($arHandle); + if ((HEAP32[$190 >> 2] | 0) > 0) { + $i$280 = 0; + $j$381 = 0; + while (1) { + $313 = $arHandle + 4818304 + ($i$280 * 264 | 0) | 0; + $314 = $arHandle + 4818304 + ($i$280 * 264 | 0) + 256 | 0; + $316 = (HEAP32[$314 >> 2] | 0) + 1 | 0; + HEAP32[$314 >> 2] = $316; + if (($316 | 0) < 4) { + if (($i$280 | 0) != ($j$381 | 0)) _memcpy($arHandle + 4818304 + ($j$381 * 264 | 0) | 0, $313 | 0, 264) | 0; + $j$4 = $j$381 + 1 | 0; + } else $j$4 = $j$381; + $i$280 = $i$280 + 1 | 0; + if (($i$280 | 0) >= (HEAP32[$190 >> 2] | 0)) { + $j$3$lcssa = $j$4; + break; + } else $j$381 = $j$4; + } + } else $j$3$lcssa = 0; + HEAP32[$190 >> 2] = $j$3$lcssa; + $324 = HEAP32[$0 >> 2] | 0; + L120 : do if (($324 | 0) > 0) { + $386 = $324; + $i$373 = 0; + while (1) { + $326 = $arHandle + 48 + ($i$373 << 8) | 0; + $328 = HEAP32[$arHandle + 48 + ($i$373 << 8) + 4 >> 2] | 0; + if (($328 | 0) >= 0) { + $330 = HEAP32[$190 >> 2] | 0; + L125 : do if (($330 | 0) > 0) { + $j$568 = 0; + while (1) { + if ((HEAP32[$arHandle + 4818304 + ($j$568 * 264 | 0) + 4 >> 2] | 0) == ($328 | 0)) { + $j$5$lcssa = $j$568; + break L125; + } + $335 = $j$568 + 1 | 0; + if (($335 | 0) < ($330 | 0)) $j$568 = $335; else { + $j$5$lcssa = $335; + break; + } + } + } else $j$5$lcssa = 0; while (0); + if (($j$5$lcssa | 0) == ($330 | 0)) { + if (($330 | 0) == 60) { + $$lcssa = $386; + break L120; + } + HEAP32[$190 >> 2] = $330 + 1; + } + _memcpy($arHandle + 4818304 + ($j$5$lcssa * 264 | 0) | 0, $326 | 0, 256) | 0; + HEAP32[$arHandle + 4818304 + ($j$5$lcssa * 264 | 0) + 256 >> 2] = 1; + } + $i$373 = $i$373 + 1 | 0; + $343 = HEAP32[$0 >> 2] | 0; + if (($i$373 | 0) >= ($343 | 0)) { + $$lcssa = $343; + break; + } else $386 = $343; + } + } else $$lcssa = $324; while (0); + if ((HEAP32[$187 >> 2] | 0) == 2) $$0 = 0; else if ((HEAP32[$190 >> 2] | 0) > 0) { + $353 = $$lcssa; + $i$467 = 0; + while (1) { + $350 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 56 | 0; + $351 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 64 | 0; + L139 : do if (($353 | 0) > 0) { + $355 = +(HEAP32[$arHandle + 4818304 + ($i$467 * 264 | 0) >> 2] | 0); + $j$663 = 0; + while (1) { + $358 = +(HEAP32[$arHandle + 48 + ($j$663 << 8) >> 2] | 0); + $359 = $355 / $358; + if (!($359 < .7 | $359 > 1.43)) { + $365 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 56 >> 3] - +HEAPF64[$350 >> 3]; + $370 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 64 >> 3] - +HEAPF64[$351 >> 3]; + if (($365 * $365 + $370 * $370) / $358 < .5) { + $j$6$lcssa = $j$663; + break L139; + } + } + $375 = $j$663 + 1 | 0; + if (($375 | 0) < ($353 | 0)) $j$663 = $375; else { + $j$6$lcssa = $375; + break; + } + } + } else $j$6$lcssa = 0; while (0); + if (($j$6$lcssa | 0) == ($353 | 0)) { + _memcpy($arHandle + 48 + ($353 << 8) | 0, $arHandle + 4818304 + ($i$467 * 264 | 0) | 0, 256) | 0; + $381 = (HEAP32[$0 >> 2] | 0) + 1 | 0; + HEAP32[$0 >> 2] = $381; + $387 = $381; + } else $387 = $353; + $i$467 = $i$467 + 1 | 0; + if (($i$467 | 0) >= (HEAP32[$190 >> 2] | 0)) { + $$0 = 0; + break; + } else $353 = $387; + } + } else $$0 = 0; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$19 = 0, $$pre = 0, $$pre$phi80Z2D = 0, $$pre$phi82Z2D = 0, $$pre$phi84Z2D = 0, $0 = 0, $1 = 0, $107 = 0, $108 = 0, $111 = 0, $113 = 0, $114 = 0, $115 = 0, $117 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $130 = 0, $134 = 0, $136 = 0, $146 = 0, $148 = 0, $15 = 0, $150 = 0, $151 = 0, $159 = 0, $160 = 0, $161 = 0, $162 = 0, $165 = 0, $167 = 0, $177 = 0, $180 = 0, $181 = 0, $183 = 0, $184 = 0, $185 = 0, $187 = 0, $188 = 0, $19 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $201 = 0, $205 = 0, $207 = 0, $217 = 0, $221 = 0, $222 = 0, $225 = 0, $226 = 0, $227 = 0, $230 = 0, $233 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $250 = 0, $252 = 0, $261 = 0, $262 = 0, $265 = 0, $267 = 0, $268 = 0, $269 = 0, $271 = 0, $279 = 0, $280 = 0, $281 = 0, $282 = 0, $284 = 0, $288 = 0, $290 = 0, $3 = 0, $30 = 0, $33 = 0, $34 = 0, $37 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $53 = 0, $55 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $71 = 0, $72 = 0, $73 = 0, $76 = 0, $79 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $92 = 0, $96 = 0, $98 = 0, $args = 0, $args3 = 0, $global$0$off0 = 0, $s = 0, $s1 = 0, $s4 = 0, $s5 = 0, $s6 = 0, $t$0 = 0, $t$1$lcssa = 0, $t$1$ph = 0, $t$1107 = 0, $t$2 = 0, $t$3$lcssa = 0, $t$3110 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $args = sp + 132 | 0; + $s = sp + 120 | 0; + $0 = sp + 108 | 0; + $s1 = sp + 96 | 0; + $1 = sp + 84 | 0; + $args3 = sp + 72 | 0; + $s4 = sp + 60 | 0; + $2 = sp + 48 | 0; + $s5 = sp + 36 | 0; + $3 = sp + 24 | 0; + $s6 = sp + 12 | 0; + $4 = sp; + $5 = $last; + L1 : do if (($5 - $first | 0) > 2) { + if ((HEAP8[$first >> 0] | 0) == 103) { + $13 = (HEAP8[$first + 1 >> 0] | 0) == 115; + $global$0$off0 = $13; + $t$0 = $13 ? $first + 2 | 0 : $first; + } else { + $global$0$off0 = 0; + $t$0 = $first; + } + $15 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0; + if (($15 | 0) != ($t$0 | 0)) { + if (!$global$0$off0) { + $$19 = $15; + break; + } + $19 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($19 | 0)) { + $$19 = $first; + break; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($19 + -24 | 0, 0, 48071) | 0; + $$19 = $15; + break; + } + if (($5 - $t$0 | 0) > 2) if ((HEAP8[$t$0 >> 0] | 0) == 115) if ((HEAP8[$t$0 + 1 >> 0] | 0) == 114) { + $30 = $t$0 + 2 | 0; + if ((HEAP8[$30 >> 0] | 0) == 78) { + $33 = $t$0 + 3 | 0; + $34 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($33, $last, $db) | 0; + if (($34 | 0) == ($33 | 0) | ($34 | 0) == ($last | 0)) { + $$19 = $first; + break; + } + $37 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($34, $last, $db) | 0; + $$pre = $db + 4 | 0; + do if (($37 | 0) == ($34 | 0)) { + $$pre$phi80Z2D = $db; + $t$1$ph = $34; + } else { + $39 = HEAP32[$$pre >> 2] | 0; + if ((($39 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $39 + -24 | 0); + $47 = HEAP32[$$pre >> 2] | 0; + $48 = $47 + -24 | 0; + $50 = $47; + do { + $49 = $50 + -24 | 0; + HEAP32[$$pre >> 2] = $49; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($49); + $50 = HEAP32[$$pre >> 2] | 0; + } while (($50 | 0) != ($48 | 0)); + $53 = HEAP8[$args >> 0] | 0; + $55 = ($53 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($47 + -48 | 0, $55 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $55 ? ($53 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; + if (($37 | 0) != ($last | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$pre$phi80Z2D = $db; + $t$1$ph = $37; + break; + } + $66 = HEAP32[$$pre >> 2] | 0; + $67 = $66 + -24 | 0; + $69 = $66; + do { + $68 = $69 + -24 | 0; + HEAP32[$$pre >> 2] = $68; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($68); + $69 = HEAP32[$$pre >> 2] | 0; + } while (($69 | 0) != ($67 | 0)); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$19 = $first; + break L1; + } while (0); + $71 = $0 + 8 | 0; + $72 = $0 + 1 | 0; + $73 = $0 + 4 | 0; + if ((HEAP8[$t$1$ph >> 0] | 0) == 69) $t$1$lcssa = $t$1$ph; else { + $t$1107 = $t$1$ph; + while (1) { + $76 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$1107, $last, $db) | 0; + if (($76 | 0) == ($t$1107 | 0) | ($76 | 0) == ($last | 0)) { + $$19 = $first; + break L1; + } + $79 = HEAP32[$$pre >> 2] | 0; + if ((($79 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s, $79 + -24 | 0); + $87 = HEAP32[$$pre >> 2] | 0; + $88 = $87 + -24 | 0; + $90 = $87; + do { + $89 = $90 + -24 | 0; + HEAP32[$$pre >> 2] = $89; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($89); + $90 = HEAP32[$$pre >> 2] | 0; + } while (($90 | 0) != ($88 | 0)); + $92 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s, 0, 48071) | 0; + HEAP32[$0 >> 2] = HEAP32[$92 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$92 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$92 + 8 >> 2]; + HEAP32[$92 >> 2] = 0; + HEAP32[$92 + 4 >> 2] = 0; + HEAP32[$92 + 8 >> 2] = 0; + $96 = HEAP8[$0 >> 0] | 0; + $98 = ($96 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($87 + -48 | 0, $98 ? $72 : HEAP32[$71 >> 2] | 0, $98 ? ($96 & 255) >>> 1 : HEAP32[$73 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s); + if ((HEAP8[$76 >> 0] | 0) == 69) { + $t$1$lcssa = $76; + break; + } else $t$1107 = $76; + } + } + $107 = $t$1$lcssa + 1 | 0; + $108 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($107, $last, $db) | 0; + if (($108 | 0) == ($107 | 0)) { + $111 = HEAP32[$$pre >> 2] | 0; + if ((HEAP32[$$pre$phi80Z2D >> 2] | 0) == ($111 | 0)) { + $$19 = $first; + break; + } + $113 = $111 + -24 | 0; + $115 = $111; + while (1) { + $114 = $115 + -24 | 0; + HEAP32[$$pre >> 2] = $114; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($114); + $115 = HEAP32[$$pre >> 2] | 0; + if (($115 | 0) == ($113 | 0)) { + $$19 = $first; + break L1; + } + } + } + $117 = HEAP32[$$pre >> 2] | 0; + if ((($117 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s1, $117 + -24 | 0); + $125 = HEAP32[$$pre >> 2] | 0; + $126 = $125 + -24 | 0; + $128 = $125; + do { + $127 = $128 + -24 | 0; + HEAP32[$$pre >> 2] = $127; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($127); + $128 = HEAP32[$$pre >> 2] | 0; + } while (($128 | 0) != ($126 | 0)); + $130 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s1, 0, 48071) | 0; + HEAP32[$1 >> 2] = HEAP32[$130 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$130 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$130 + 8 >> 2]; + HEAP32[$130 >> 2] = 0; + HEAP32[$130 + 4 >> 2] = 0; + HEAP32[$130 + 8 >> 2] = 0; + $134 = HEAP8[$1 >> 0] | 0; + $136 = ($134 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($125 + -48 | 0, $136 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $136 ? ($134 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s1); + $$19 = $108; + break; + } + $146 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0; + if (($146 | 0) != ($30 | 0)) { + $148 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($146, $last, $db) | 0; + if (($148 | 0) == ($146 | 0)) $t$2 = $146; else { + $150 = $db + 4 | 0; + $151 = HEAP32[$150 >> 2] | 0; + if ((($151 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $151 + -24 | 0); + $159 = HEAP32[$150 >> 2] | 0; + $160 = $159 + -24 | 0; + $162 = $159; + do { + $161 = $162 + -24 | 0; + HEAP32[$150 >> 2] = $161; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($161); + $162 = HEAP32[$150 >> 2] | 0; + } while (($162 | 0) != ($160 | 0)); + $165 = HEAP8[$args3 >> 0] | 0; + $167 = ($165 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($159 + -48 | 0, $167 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $167 ? ($165 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3); + $t$2 = $148; + } + $177 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$2, $last, $db) | 0; + if (($177 | 0) == ($t$2 | 0)) { + $180 = $db + 4 | 0; + $181 = HEAP32[$180 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($181 | 0)) { + $$19 = $first; + break; + } + $183 = $181 + -24 | 0; + $185 = $181; + while (1) { + $184 = $185 + -24 | 0; + HEAP32[$180 >> 2] = $184; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($184); + $185 = HEAP32[$180 >> 2] | 0; + if (($185 | 0) == ($183 | 0)) { + $$19 = $first; + break L1; + } + } + } + $187 = $db + 4 | 0; + $188 = HEAP32[$187 >> 2] | 0; + if ((($188 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s4, $188 + -24 | 0); + $196 = HEAP32[$187 >> 2] | 0; + $197 = $196 + -24 | 0; + $199 = $196; + do { + $198 = $199 + -24 | 0; + HEAP32[$187 >> 2] = $198; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($198); + $199 = HEAP32[$187 >> 2] | 0; + } while (($199 | 0) != ($197 | 0)); + $201 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s4, 0, 48071) | 0; + HEAP32[$2 >> 2] = HEAP32[$201 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$201 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$201 + 8 >> 2]; + HEAP32[$201 >> 2] = 0; + HEAP32[$201 + 4 >> 2] = 0; + HEAP32[$201 + 8 >> 2] = 0; + $205 = HEAP8[$2 >> 0] | 0; + $207 = ($205 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($196 + -48 | 0, $207 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $207 ? ($205 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s4); + $$19 = $177; + break; + } + $217 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0; + if (($217 | 0) == ($30 | 0) | ($217 | 0) == ($last | 0)) $$19 = $first; else { + if ($global$0$off0) { + $221 = $db + 4 | 0; + $222 = HEAP32[$221 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($222 | 0)) { + $$19 = $first; + break; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($222 + -24 | 0, 0, 48071) | 0; + $$pre$phi82Z2D = $221; + $$pre$phi84Z2D = $db; + } else { + $$pre$phi82Z2D = $db + 4 | 0; + $$pre$phi84Z2D = $db; + } + $225 = $3 + 8 | 0; + $226 = $3 + 1 | 0; + $227 = $3 + 4 | 0; + if ((HEAP8[$217 >> 0] | 0) == 69) $t$3$lcssa = $217; else { + $t$3110 = $217; + while (1) { + $230 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$3110, $last, $db) | 0; + if (($230 | 0) == ($t$3110 | 0) | ($230 | 0) == ($last | 0)) { + $$19 = $first; + break L1; + } + $233 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + if ((($233 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$19 = $first; + break L1; + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s5, $233 + -24 | 0); + $241 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + $242 = $241 + -24 | 0; + $244 = $241; + do { + $243 = $244 + -24 | 0; + HEAP32[$$pre$phi82Z2D >> 2] = $243; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243); + $244 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + } while (($244 | 0) != ($242 | 0)); + $246 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s5, 0, 48071) | 0; + HEAP32[$3 >> 2] = HEAP32[$246 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$246 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$246 + 8 >> 2]; + HEAP32[$246 >> 2] = 0; + HEAP32[$246 + 4 >> 2] = 0; + HEAP32[$246 + 8 >> 2] = 0; + $250 = HEAP8[$3 >> 0] | 0; + $252 = ($250 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($241 + -48 | 0, $252 ? $226 : HEAP32[$225 >> 2] | 0, $252 ? ($250 & 255) >>> 1 : HEAP32[$227 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s5); + if ((HEAP8[$230 >> 0] | 0) == 69) { + $t$3$lcssa = $230; + break; + } else $t$3110 = $230; + } + } + $261 = $t$3$lcssa + 1 | 0; + $262 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($261, $last, $db) | 0; + if (($262 | 0) == ($261 | 0)) { + $265 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + if ((HEAP32[$$pre$phi84Z2D >> 2] | 0) == ($265 | 0)) { + $$19 = $first; + break; + } + $267 = $265 + -24 | 0; + $269 = $265; + while (1) { + $268 = $269 + -24 | 0; + HEAP32[$$pre$phi82Z2D >> 2] = $268; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($268); + $269 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + if (($269 | 0) == ($267 | 0)) { + $$19 = $first; + break L1; + } + } + } + $271 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + if ((($271 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$19 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s6, $271 + -24 | 0); + $279 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + $280 = $279 + -24 | 0; + $282 = $279; + do { + $281 = $282 + -24 | 0; + HEAP32[$$pre$phi82Z2D >> 2] = $281; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($281); + $282 = HEAP32[$$pre$phi82Z2D >> 2] | 0; + } while (($282 | 0) != ($280 | 0)); + $284 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s6, 0, 48071) | 0; + HEAP32[$4 >> 2] = HEAP32[$284 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$284 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$284 + 8 >> 2]; + HEAP32[$284 >> 2] = 0; + HEAP32[$284 + 4 >> 2] = 0; + HEAP32[$284 + 8 >> 2] = 0; + $288 = HEAP8[$4 >> 0] | 0; + $290 = ($288 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($279 + -48 | 0, $290 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $290 ? ($288 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s6); + $$19 = $262; + } + } + } else $$19 = $first; else $$19 = $first; else $$19 = $first; + } else $$19 = $first; while (0); + STACKTOP = sp; + return $$19 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i12 = 0, $$0$i$i$i17 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i32 = 0, $$0$i$i$i37 = 0, $$0$i$i$i40 = 0, $$lcssa98 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $110 = 0, $112 = 0, $115 = 0, $116 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $136 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $145 = 0, $146 = 0, $148 = 0, $15 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $162 = 0, $164 = 0, $167 = 0, $168 = 0, $172 = 0, $176 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $184 = 0, $187 = 0, $195 = 0, $196 = 0, $197 = 0, $2 = 0, $200 = 0, $203 = 0, $212 = 0, $213 = 0, $214 = 0, $217 = 0, $218 = 0, $220 = 0, $221 = 0, $223 = 0, $224 = 0, $229 = 0, $233 = 0, $240 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $251 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $267 = 0, $27 = 0, $28 = 0, $3 = 0, $32 = 0, $34 = 0, $37 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $58 = 0, $60 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $84 = 0, $86 = 0, $89 = 0, $90 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i38 = 0, $isdigittmp5 = 0, $isdigittmp9 = 0, $sub$179 = 0, $sub$179$lcssa = 0, $t$080 = 0, $t$080$lcssa = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i38 = sp + 144 | 0; + $0 = sp + 120 | 0; + $1 = sp + 96 | 0; + $2 = sp + 72 | 0; + $3 = sp + 48 | 0; + $4 = sp + 24 | 0; + $5 = sp; + L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 83) { + $12 = $first + 1 | 0; + $13 = HEAP8[$12 >> 0] | 0; + $14 = $13 << 24 >> 24; + switch ($14 | 0) { + case 97: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($0, 47982); + $15 = $db + 4 | 0; + $16 = HEAP32[$15 >> 2] | 0; + $18 = HEAP32[$db + 8 >> 2] | 0; + if ($16 >>> 0 < $18 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($16, $0); + HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 24; + } else { + $25 = HEAP32[$db >> 2] | 0; + $26 = $16 - $25 | 0; + $27 = ($26 | 0) / 24 | 0; + $28 = $27 + 1 | 0; + if (($26 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $32 = ($18 - $25 | 0) / 24 | 0; + if ($32 >>> 0 < 1073741823) { + $34 = $32 << 1; + $$0$i$i$i = $34 >>> 0 < $28 >>> 0 ? $28 : $34; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i, $27, $db + 12 | 0); + $37 = $__v$i$i38 + 8 | 0; + $38 = HEAP32[$37 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($38, $0); + HEAP32[$37 >> 2] = $38 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 98: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($1, 47997); + $41 = $db + 4 | 0; + $42 = HEAP32[$41 >> 2] | 0; + $44 = HEAP32[$db + 8 >> 2] | 0; + if ($42 >>> 0 < $44 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $1); + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 24; + } else { + $51 = HEAP32[$db >> 2] | 0; + $52 = $42 - $51 | 0; + $53 = ($52 | 0) / 24 | 0; + $54 = $53 + 1 | 0; + if (($52 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $58 = ($44 - $51 | 0) / 24 | 0; + if ($58 >>> 0 < 1073741823) { + $60 = $58 << 1; + $$0$i$i$i12 = $60 >>> 0 < $54 >>> 0 ? $54 : $60; + } else $$0$i$i$i12 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i12, $53, $db + 12 | 0); + $63 = $__v$i$i38 + 8 | 0; + $64 = HEAP32[$63 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1); + HEAP32[$63 >> 2] = $64 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 115: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($2, 48015); + $67 = $db + 4 | 0; + $68 = HEAP32[$67 >> 2] | 0; + $70 = HEAP32[$db + 8 >> 2] | 0; + if ($68 >>> 0 < $70 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($68, $2); + HEAP32[$67 >> 2] = (HEAP32[$67 >> 2] | 0) + 24; + } else { + $77 = HEAP32[$db >> 2] | 0; + $78 = $68 - $77 | 0; + $79 = ($78 | 0) / 24 | 0; + $80 = $79 + 1 | 0; + if (($78 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $84 = ($70 - $77 | 0) / 24 | 0; + if ($84 >>> 0 < 1073741823) { + $86 = $84 << 1; + $$0$i$i$i17 = $86 >>> 0 < $80 >>> 0 ? $80 : $86; + } else $$0$i$i$i17 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i17, $79, $db + 12 | 0); + $89 = $__v$i$i38 + 8 | 0; + $90 = HEAP32[$89 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2); + HEAP32[$89 >> 2] = $90 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 105: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($3, 48027); + $93 = $db + 4 | 0; + $94 = HEAP32[$93 >> 2] | 0; + $96 = HEAP32[$db + 8 >> 2] | 0; + if ($94 >>> 0 < $96 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($94, $3); + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 24; + } else { + $103 = HEAP32[$db >> 2] | 0; + $104 = $94 - $103 | 0; + $105 = ($104 | 0) / 24 | 0; + $106 = $105 + 1 | 0; + if (($104 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $110 = ($96 - $103 | 0) / 24 | 0; + if ($110 >>> 0 < 1073741823) { + $112 = $110 << 1; + $$0$i$i$i22 = $112 >>> 0 < $106 >>> 0 ? $106 : $112; + } else $$0$i$i$i22 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i22, $105, $db + 12 | 0); + $115 = $__v$i$i38 + 8 | 0; + $116 = HEAP32[$115 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3); + HEAP32[$115 >> 2] = $116 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 111: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($4, 48040); + $119 = $db + 4 | 0; + $120 = HEAP32[$119 >> 2] | 0; + $122 = HEAP32[$db + 8 >> 2] | 0; + if ($120 >>> 0 < $122 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($120, $4); + HEAP32[$119 >> 2] = (HEAP32[$119 >> 2] | 0) + 24; + } else { + $129 = HEAP32[$db >> 2] | 0; + $130 = $120 - $129 | 0; + $131 = ($130 | 0) / 24 | 0; + $132 = $131 + 1 | 0; + if (($130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $136 = ($122 - $129 | 0) / 24 | 0; + if ($136 >>> 0 < 1073741823) { + $138 = $136 << 1; + $$0$i$i$i27 = $138 >>> 0 < $132 >>> 0 ? $132 : $138; + } else $$0$i$i$i27 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i27, $131, $db + 12 | 0); + $141 = $__v$i$i38 + 8 | 0; + $142 = HEAP32[$141 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4); + HEAP32[$141 >> 2] = $142 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 100: + { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 48053); + $145 = $db + 4 | 0; + $146 = HEAP32[$145 >> 2] | 0; + $148 = HEAP32[$db + 8 >> 2] | 0; + if ($146 >>> 0 < $148 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($146, $5); + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 24; + } else { + $155 = HEAP32[$db >> 2] | 0; + $156 = $146 - $155 | 0; + $157 = ($156 | 0) / 24 | 0; + $158 = $157 + 1 | 0; + if (($156 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $162 = ($148 - $155 | 0) / 24 | 0; + if ($162 >>> 0 < 1073741823) { + $164 = $162 << 1; + $$0$i$i$i32 = $164 >>> 0 < $158 >>> 0 ? $158 : $164; + } else $$0$i$i$i32 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i32, $157, $db + 12 | 0); + $167 = $__v$i$i38 + 8 | 0; + $168 = HEAP32[$167 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5); + HEAP32[$167 >> 2] = $168 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $$0 = $first + 2 | 0; + break L1; + break; + } + case 95: + { + $172 = HEAP32[$db + 16 >> 2] | 0; + if (($172 | 0) == (HEAP32[$db + 20 >> 2] | 0)) { + $$0 = $first; + break L1; + } + $176 = HEAP32[$172 >> 2] | 0; + $178 = HEAP32[$172 + 4 >> 2] | 0; + $179 = $db + 4 | 0; + $180 = $db + 8 | 0; + $181 = $db + 12 | 0; + $182 = $__v$i$i38 + 8 | 0; + L100 : do if (($176 | 0) != ($178 | 0)) { + $187 = $176; + while (1) { + $184 = HEAP32[$179 >> 2] | 0; + if (($184 | 0) == (HEAP32[$180 >> 2] | 0)) { + $195 = $184 - (HEAP32[$db >> 2] | 0) | 0; + $196 = ($195 | 0) / 24 | 0; + $197 = $196 + 1 | 0; + if (($195 | 0) < -24) break; + if ($196 >>> 0 < 1073741823) { + $200 = $196 << 1; + $$0$i$i$i37 = $200 >>> 0 < $197 >>> 0 ? $197 : $200; + } else $$0$i$i$i37 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i37, $196, $181); + $203 = HEAP32[$182 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203, $187); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203 + 12 | 0, $187 + 12 | 0); + HEAP32[$182 >> 2] = $203 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184, $187); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184 + 12 | 0, $187 + 12 | 0); + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 24; + } + $187 = $187 + 24 | 0; + if (($187 | 0) == ($178 | 0)) break L100; + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + } while (0); + $$0 = $first + 2 | 0; + break L1; + break; + } + default: + { + if (($14 + -48 | 0) >>> 0 < 10) $213 = $13; else { + if (!(_isupper($14) | 0)) { + $$0 = $first; + break L1; + } + $213 = HEAP8[$12 >> 0] | 0; + } + $212 = $213 << 24 >> 24; + $isdigittmp5 = $212 + -48 | 0; + $214 = $first + 2 | 0; + if (($214 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + $sub$179 = $isdigittmp5 >>> 0 < 10 ? $isdigittmp5 : $212 + -55 | 0; + $t$080 = $214; + while (1) { + $217 = HEAP8[$t$080 >> 0] | 0; + $218 = $217 << 24 >> 24; + if (($218 + -48 | 0) >>> 0 < 10) $224 = $217; else { + $220 = (_isupper($218) | 0) == 0; + $221 = HEAP8[$t$080 >> 0] | 0; + if ($220) { + $$lcssa98 = $221; + $sub$179$lcssa = $sub$179; + $t$080$lcssa = $t$080; + break; + } else $224 = $221; + } + $223 = $224 << 24 >> 24; + $isdigittmp9 = $223 + -48 | 0; + $t$080 = $t$080 + 1 | 0; + if (($t$080 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } else $sub$179 = ($isdigittmp9 >>> 0 < 10 ? $isdigittmp9 : $223 + -55 | 0) + ($sub$179 * 36 | 0) | 0; + } + if ($$lcssa98 << 24 >> 24 != 95) { + $$0 = $first; + break L1; + } + $229 = $sub$179$lcssa + 1 | 0; + $233 = HEAP32[$db + 16 >> 2] | 0; + if ($229 >>> 0 >= (HEAP32[$db + 20 >> 2] | 0) - $233 >> 4 >>> 0) { + $$0 = $first; + break L1; + } + $240 = HEAP32[$233 + ($229 << 4) >> 2] | 0; + $242 = HEAP32[$233 + ($229 << 4) + 4 >> 2] | 0; + $243 = $db + 4 | 0; + $244 = $db + 8 | 0; + $245 = $db + 12 | 0; + $246 = $__v$i$i38 + 8 | 0; + L19 : do if (($240 | 0) != ($242 | 0)) { + $251 = $240; + while (1) { + $248 = HEAP32[$243 >> 2] | 0; + if (($248 | 0) == (HEAP32[$244 >> 2] | 0)) { + $259 = $248 - (HEAP32[$db >> 2] | 0) | 0; + $260 = ($259 | 0) / 24 | 0; + $261 = $260 + 1 | 0; + if (($259 | 0) < -24) break; + if ($260 >>> 0 < 1073741823) { + $264 = $260 << 1; + $$0$i$i$i40 = $264 >>> 0 < $261 >>> 0 ? $261 : $264; + } else $$0$i$i$i40 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i40, $260, $245); + $267 = HEAP32[$246 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267, $251); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267 + 12 | 0, $251 + 12 | 0); + HEAP32[$246 >> 2] = $267 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248, $251); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248 + 12 | 0, $251 + 12 | 0); + HEAP32[$243 >> 2] = (HEAP32[$243 >> 2] | 0) + 24; + } + $251 = $251 + 24 | 0; + if (($251 | 0) == ($242 | 0)) break L19; + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + } while (0); + $$0 = $t$080$lcssa + 1 | 0; + break L1; + } + } + } else $$0 = $first; else $$0 = $first; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _icpGetInitXw2Xc_from_PlanarData($matXc2U, $screenCoord, $worldCoord, $num, $initMatXw2Xc) { + $matXc2U = $matXc2U | 0; + $screenCoord = $screenCoord | 0; + $worldCoord = $worldCoord | 0; + $num = $num | 0; + $initMatXw2Xc = $initMatXw2Xc | 0; + var $$$10$i = 0.0, $$$16$i = 0.0, $$$18$i = 0.0, $$$8$i = 0.0, $$0 = 0, $$10$$i = 0.0, $$10$i = 0.0, $$15$i = 0.0, $$16$$i = 0.0, $$16$i = 0.0, $$17$i = 0.0, $$18$$i = 0.0, $$18$i = 0.0, $$7$i = 0.0, $$7$i1 = 0.0, $$7$i2 = 0.0, $$8$$i = 0.0, $$8$i = 0.0, $$9$i = 0.0, $102 = 0, $104 = 0, $106 = 0, $11 = 0, $110 = 0, $112 = 0, $114 = 0.0, $118 = 0.0, $121 = 0.0, $122 = 0.0, $125 = 0.0, $129 = 0.0, $132 = 0.0, $133 = 0.0, $135 = 0.0, $140 = 0.0, $147 = 0.0, $151 = 0.0, $157 = 0.0, $163 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $177 = 0.0, $178 = 0.0, $180 = 0.0, $191 = 0.0, $193 = 0.0, $194 = 0.0, $195 = 0.0, $197 = 0.0, $199 = 0.0, $200 = 0.0, $203 = 0.0, $209 = 0.0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $218 = 0.0, $226 = 0.0, $234 = 0, $235 = 0.0, $236 = 0.0, $237 = 0.0, $242 = 0.0, $244 = 0.0, $248 = 0.0, $249 = 0.0, $251 = 0.0, $255 = 0.0, $258 = 0.0, $265 = 0.0, $268 = 0.0, $270 = 0.0, $272 = 0.0, $274 = 0.0, $276 = 0.0, $278 = 0.0, $280 = 0.0, $281 = 0, $283 = 0, $291 = 0, $292 = 0.0, $293 = 0.0, $294 = 0.0, $299 = 0.0, $301 = 0.0, $305 = 0.0, $306 = 0.0, $308 = 0.0, $312 = 0.0, $315 = 0.0, $32 = 0, $322 = 0.0, $325 = 0.0, $327 = 0.0, $329 = 0.0, $33 = 0, $331 = 0.0, $333 = 0.0, $335 = 0.0, $337 = 0.0, $338 = 0, $340 = 0, $345 = 0.0, $35 = 0, $352 = 0.0, $359 = 0.0, $366 = 0.0, $37 = 0, $377 = 0.0, $379 = 0.0, $38 = 0, $380 = 0.0, $381 = 0.0, $383 = 0.0, $385 = 0.0, $386 = 0.0, $389 = 0.0, $39 = 0, $395 = 0.0, $41 = 0, $43 = 0, $56 = 0, $83 = 0, $96 = 0, $cb$0$i = 0.0, $e1$0$i = 0.0, $e2$0$i = 0.0, $e3$0$i = 0.0, $e4$0$i = 0.0, $f$0$i = 0, $f$2$i = 0, $i$0 = 0, $i$15 = 0, $t$sroa$0$0 = 0.0, $t$sroa$6$0 = 0.0, $v1$sroa$0$0$i = 0.0, $v1$sroa$16$0$i = 0.0, $v1$sroa$31$0$i = 0.0, $v2$sroa$0$0$i = 0.0, $v2$sroa$16$0$i = 0.0, $v2$sroa$31$0$i = 0.0, $v3$sroa$0$0$i = 0.0, $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$0$2$i = 0.0, $v3$sroa$31$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = 0.0, $v3$sroa$31$2$i = 0.0, $v3$sroa$60$0$i = 0.0, $v3$sroa$60$0$v3$sroa$31$0$i = 0.0, $v3$sroa$60$3$i = 0.0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer11 = sp + 48 | 0; + $vararg_buffer9 = sp + 40 | 0; + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + L1 : do if (($num | 0) < 4) $$0 = -1; else { + $i$0 = 0; + while (1) { + if (($i$0 | 0) >= ($num | 0)) break; + if (+HEAPF64[$worldCoord + ($i$0 * 24 | 0) + 16 >> 3] != 0.0) { + $$0 = -1; + break L1; + } else $i$0 = $i$0 + 1 | 0; + } + if (+HEAPF64[$matXc2U >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 32 >> 3] != 0.0) $$0 = -1; else { + $11 = $matXc2U + 40 | 0; + if (+HEAPF64[$11 >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 64 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 72 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 80 >> 3] != 1.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 24 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 56 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 88 >> 3] != 0.0) $$0 = -1; else { + $32 = $num << 1; + $33 = _arMatrixAlloc($32, 8) | 0; + if (!$33) { + _arLog(3, 19309, $vararg_buffer); + $$0 = -1; + break; + } + $35 = _arMatrixAlloc($32, 1) | 0; + if (!$35) { + _arMatrixFree($33) | 0; + _arLog(3, 19335, $vararg_buffer1); + $$0 = -1; + break; + } + if ($num) { + $37 = HEAP32[$33 >> 2] | 0; + $38 = HEAP32[$35 >> 2] | 0; + $i$15 = 0; + do { + $39 = $worldCoord + ($i$15 * 24 | 0) | 0; + $41 = $i$15 << 4; + HEAPF64[$37 + ($41 << 3) >> 3] = +HEAPF64[$39 >> 3]; + $43 = $worldCoord + ($i$15 * 24 | 0) + 8 | 0; + HEAPF64[$37 + (($41 | 1) << 3) >> 3] = +HEAPF64[$43 >> 3]; + HEAPF64[$37 + (($41 | 2) << 3) >> 3] = 1.0; + HEAPF64[$37 + (($41 | 3) << 3) >> 3] = 0.0; + HEAPF64[$37 + (($41 | 4) << 3) >> 3] = 0.0; + HEAPF64[$37 + (($41 | 5) << 3) >> 3] = 0.0; + $56 = $screenCoord + ($i$15 << 4) | 0; + HEAPF64[$37 + (($41 | 6) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$56 >> 3]); + HEAPF64[$37 + (($41 | 7) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$56 >> 3]); + HEAPF64[$37 + (($41 | 8) << 3) >> 3] = 0.0; + HEAPF64[$37 + (($41 | 9) << 3) >> 3] = 0.0; + HEAPF64[$37 + (($41 | 10) << 3) >> 3] = 0.0; + HEAPF64[$37 + (($41 | 11) << 3) >> 3] = +HEAPF64[$39 >> 3]; + HEAPF64[$37 + (($41 | 12) << 3) >> 3] = +HEAPF64[$43 >> 3]; + HEAPF64[$37 + (($41 | 13) << 3) >> 3] = 1.0; + $83 = $screenCoord + ($i$15 << 4) + 8 | 0; + HEAPF64[$37 + (($41 | 14) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$83 >> 3]); + HEAPF64[$37 + (($41 | 15) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$83 >> 3]); + $96 = $i$15 << 1; + HEAPF64[$38 + ($96 << 3) >> 3] = +HEAPF64[$56 >> 3]; + HEAPF64[$38 + (($96 | 1) << 3) >> 3] = +HEAPF64[$83 >> 3]; + $i$15 = $i$15 + 1 | 0; + } while (($i$15 | 0) != ($num | 0)); + } + $102 = _arMatrixAllocTrans($33) | 0; + if (!$102) { + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arLog(3, 19361, $vararg_buffer3); + $$0 = -1; + break; + } + $104 = _arMatrixAllocMul($102, $33) | 0; + if (!$104) { + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arMatrixFree($102) | 0; + _arLog(3, 19387, $vararg_buffer5); + $$0 = -1; + break; + } + $106 = _arMatrixAllocMul($102, $35) | 0; + if (!$106) { + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arMatrixFree($102) | 0; + _arMatrixFree($104) | 0; + _arLog(3, 19413, $vararg_buffer7); + $$0 = -1; + break; + } + if ((_arMatrixSelfInv($104) | 0) < 0) { + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arMatrixFree($102) | 0; + _arMatrixFree($104) | 0; + _arMatrixFree($106) | 0; + _arLog(3, 19439, $vararg_buffer9); + $$0 = -1; + break; + } + $110 = _arMatrixAllocMul($104, $106) | 0; + if (!$110) { + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arMatrixFree($102) | 0; + _arMatrixFree($104) | 0; + _arMatrixFree($106) | 0; + _arLog(3, 19465, $vararg_buffer11); + $$0 = -1; + break; + } + $112 = HEAP32[$110 >> 2] | 0; + $114 = +HEAPF64[$112 + 48 >> 3]; + $118 = +HEAPF64[$matXc2U + 48 >> 3]; + $121 = +HEAPF64[$11 >> 3]; + $122 = (+HEAPF64[$112 + 24 >> 3] - $114 * $118) / $121; + $125 = +HEAPF64[$matXc2U + 16 >> 3]; + $129 = +HEAPF64[$matXc2U + 8 >> 3]; + $132 = +HEAPF64[$matXc2U >> 3]; + $133 = (+HEAPF64[$112 >> 3] - $114 * $125 - $122 * $129) / $132; + $135 = +HEAPF64[$112 + 56 >> 3]; + $140 = (+HEAPF64[$112 + 32 >> 3] - $118 * $135) / $121; + $147 = (+HEAPF64[$112 + 8 >> 3] - $125 * $135 - $129 * $140) / $132; + $151 = (+HEAPF64[$112 + 40 >> 3] - $118) / $121; + $157 = (+HEAPF64[$112 + 16 >> 3] - $125 - $129 * $151) / $132; + _arMatrixFree($33) | 0; + _arMatrixFree($35) | 0; + _arMatrixFree($102) | 0; + _arMatrixFree($104) | 0; + _arMatrixFree($106) | 0; + _arMatrixFree($110) | 0; + $163 = +Math_sqrt(+($114 * $114 + ($122 * $122 + $133 * $133))); + $169 = +Math_sqrt(+($135 * $135 + ($140 * $140 + $147 * $147))); + $170 = $133 / $163; + $171 = $122 / $163; + $172 = $114 / $163; + $173 = $147 / $169; + $174 = $140 / $169; + $175 = $135 / $169; + $177 = ($163 + $169) * .5; + $178 = $157 / $177; + $180 = 1.0 / $177; + if ($180 < 0.0) { + $$7$i1 = -$171; + $191 = -$175; + $193 = -$174; + $194 = -$172; + $197 = -$173; + $199 = -$170; + $t$sroa$0$0 = -$178; + $t$sroa$6$0 = -$180; + } else { + $$7$i1 = $171; + $191 = $175; + $193 = $174; + $194 = $172; + $197 = $173; + $199 = $170; + $t$sroa$0$0 = $178; + $t$sroa$6$0 = $151 / $177; + } + $195 = $191 * $$7$i1 - $193 * $194; + $200 = $197 * $194 - $191 * $199; + $203 = $193 * $199 - $197 * $$7$i1; + $209 = +Math_sqrt(+($203 * $203 + ($195 * $195 + $200 * $200))); + do if ($209 == 0.0) { + $$7$i2 = $$7$i1; + $377 = $191; + $379 = $193; + $380 = $194; + $383 = $197; + $385 = $199; + } else { + $211 = $195 / $209; + $212 = $200 / $209; + $213 = $203 / $209; + $218 = $191 * $194 + ($193 * $$7$i1 + $197 * $199); + $cb$0$i = $218 < 0.0 ? -$218 : $218; + $226 = (+Math_sqrt(+($cb$0$i + 1.0)) + +Math_sqrt(+(1.0 - $cb$0$i))) * .5; + if ($199 * $212 - $$7$i1 * $211 != 0.0) { + $f$0$i = 0; + $v1$sroa$0$0$i = $199; + $v1$sroa$16$0$i = $$7$i1; + $v1$sroa$31$0$i = $194; + $v3$sroa$0$0$i = $211; + $v3$sroa$31$0$i = $212; + $v3$sroa$60$0$i = $213; + } else { + $234 = $199 * $213 - $194 * $211 != 0.0; + $f$0$i = $234 ? 1 : 2; + $v1$sroa$0$0$i = $234 ? $199 : $194; + $v1$sroa$16$0$i = $234 ? $194 : $$7$i1; + $v1$sroa$31$0$i = $234 ? $$7$i1 : $199; + $v3$sroa$0$0$i = $234 ? $211 : $213; + $v3$sroa$31$0$i = $234 ? $213 : $212; + $v3$sroa$60$0$i = $234 ? $212 : $211; + } + $235 = $v1$sroa$0$0$i * $v3$sroa$31$0$i; + $236 = $v1$sroa$16$0$i * $v3$sroa$0$0$i; + $237 = $235 - $236; + if ($237 == 0.0) { + $$7$i2 = $$7$i1; + $377 = $191; + $379 = $193; + $380 = $194; + $383 = $197; + $385 = $199; + break; + } + $242 = ($v1$sroa$16$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$31$0$i) / $237; + $244 = $226 * $v3$sroa$31$0$i / $237; + $248 = $236 - $235; + $249 = ($v1$sroa$0$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$0$0$i) / $248; + $251 = $226 * $v3$sroa$0$0$i / $248; + $255 = $242 * $242 + $249 * $249 + 1.0; + $258 = $242 * $244 + $249 * $251; + $265 = $258 * $258 - $255 * ($244 * $244 + $251 * $251 + -1.0); + if ($265 < 0.0) { + $$7$i2 = $$7$i1; + $377 = $191; + $379 = $193; + $380 = $194; + $383 = $197; + $385 = $199; + break; + } + $268 = +Math_sqrt(+$265); + $270 = ($268 - $258) / $255; + $272 = $244 + $242 * $270; + $274 = $251 + $249 * $270; + $276 = (-$258 - $268) / $255; + $278 = $244 + $242 * $276; + $280 = $251 + $249 * $276; + $281 = ($f$0$i | 0) == 1; + $v3$sroa$31$0$v3$sroa$60$0$i = $281 ? $v3$sroa$31$0$i : $v3$sroa$60$0$i; + $v3$sroa$60$0$v3$sroa$31$0$i = $281 ? $v3$sroa$60$0$i : $v3$sroa$31$0$i; + $$7$i = $281 ? $270 : $274; + $$8$i = $281 ? $274 : $270; + $$9$i = $281 ? $276 : $280; + $$10$i = $281 ? $280 : $276; + $283 = ($f$0$i | 0) == 2 & ($281 ^ 1); + $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = $283 ? $v3$sroa$0$0$i : $v3$sroa$31$0$v3$sroa$60$0$i; + $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = $283 ? $v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$0$0$i; + $$8$$i = $283 ? $$8$i : $272; + $$$8$i = $283 ? $272 : $$8$i; + $$10$$i = $283 ? $$10$i : $278; + $$$10$i = $283 ? $278 : $$10$i; + if ($197 * $v3$sroa$60$0$v3$sroa$31$0$i - $193 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0) { + $f$2$i = 0; + $v2$sroa$0$0$i = $197; + $v2$sroa$16$0$i = $193; + $v2$sroa$31$0$i = $191; + $v3$sroa$0$2$i = $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i; + $v3$sroa$31$2$i = $v3$sroa$60$0$v3$sroa$31$0$i; + $v3$sroa$60$3$i = $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i; + } else { + $291 = $197 * $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i - $191 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0; + $f$2$i = $291 ? 1 : 2; + $v2$sroa$0$0$i = $291 ? $197 : $191; + $v2$sroa$16$0$i = $291 ? $191 : $193; + $v2$sroa$31$0$i = $291 ? $193 : $197; + $v3$sroa$0$2$i = $291 ? $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i : $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i; + $v3$sroa$31$2$i = $291 ? $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$60$0$v3$sroa$31$0$i; + $v3$sroa$60$3$i = $291 ? $v3$sroa$60$0$v3$sroa$31$0$i : $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i; + } + $292 = $v2$sroa$0$0$i * $v3$sroa$31$2$i; + $293 = $v2$sroa$16$0$i * $v3$sroa$0$2$i; + $294 = $292 - $293; + if ($294 == 0.0) { + $$7$i2 = $$7$i1; + $377 = $191; + $379 = $193; + $380 = $194; + $383 = $197; + $385 = $199; + break; + } + $299 = ($v2$sroa$16$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$31$2$i) / $294; + $301 = $226 * $v3$sroa$31$2$i / $294; + $305 = $293 - $292; + $306 = ($v2$sroa$0$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$0$2$i) / $305; + $308 = $226 * $v3$sroa$0$2$i / $305; + $312 = $299 * $299 + $306 * $306 + 1.0; + $315 = $299 * $301 + $306 * $308; + $322 = $315 * $315 - $312 * ($301 * $301 + $308 * $308 + -1.0); + if ($322 < 0.0) { + $$7$i2 = $$7$i1; + $377 = $191; + $379 = $193; + $380 = $194; + $383 = $197; + $385 = $199; + break; + } + $325 = +Math_sqrt(+$322); + $327 = ($325 - $315) / $312; + $329 = $301 + $299 * $327; + $331 = $308 + $306 * $327; + $333 = (-$315 - $325) / $312; + $335 = $301 + $299 * $333; + $337 = $308 + $306 * $333; + $338 = ($f$2$i | 0) == 1; + $$15$i = $338 ? $327 : $331; + $$16$i = $338 ? $331 : $327; + $$17$i = $338 ? $333 : $337; + $$18$i = $338 ? $337 : $333; + $340 = ($f$2$i | 0) == 2 & ($338 ^ 1); + $$16$$i = $340 ? $$16$i : $329; + $$$16$i = $340 ? $329 : $$16$i; + $$18$$i = $340 ? $$18$i : $335; + $$$18$i = $340 ? $335 : $$18$i; + $345 = $$$8$i * $$$16$i + ($$7$i * $$15$i + $$8$$i * $$16$$i); + $e1$0$i = $345 < 0.0 ? -$345 : $345; + $352 = $$$8$i * $$$18$i + ($$7$i * $$17$i + $$8$$i * $$18$$i); + $e2$0$i = $352 < 0.0 ? -$352 : $352; + $359 = $$$10$i * $$$16$i + ($$9$i * $$15$i + $$10$$i * $$16$$i); + $e3$0$i = $359 < 0.0 ? -$359 : $359; + $366 = $$$10$i * $$$18$i + ($$9$i * $$17$i + $$10$$i * $$18$$i); + $e4$0$i = $366 < 0.0 ? -$366 : $366; + if ($e1$0$i < $e2$0$i) if ($e1$0$i < $e3$0$i) { + if ($e1$0$i < $e4$0$i) { + $$7$i2 = $$7$i; + $377 = $$$16$i; + $379 = $$15$i; + $380 = $$$8$i; + $383 = $$16$$i; + $385 = $$8$$i; + break; + } + $$7$i2 = $$9$i; + $377 = $$$18$i; + $379 = $$17$i; + $380 = $$$10$i; + $383 = $$18$$i; + $385 = $$10$$i; + break; + } else { + if ($e3$0$i < $e4$0$i) { + $$7$i2 = $$9$i; + $377 = $$$16$i; + $379 = $$15$i; + $380 = $$$10$i; + $383 = $$16$$i; + $385 = $$10$$i; + break; + } + $$7$i2 = $$9$i; + $377 = $$$18$i; + $379 = $$17$i; + $380 = $$$10$i; + $383 = $$18$$i; + $385 = $$10$$i; + break; + } else if ($e2$0$i < $e3$0$i) { + if ($e2$0$i < $e4$0$i) { + $$7$i2 = $$7$i; + $377 = $$$18$i; + $379 = $$17$i; + $380 = $$$8$i; + $383 = $$18$$i; + $385 = $$8$$i; + break; + } + $$7$i2 = $$9$i; + $377 = $$$18$i; + $379 = $$17$i; + $380 = $$$10$i; + $383 = $$18$$i; + $385 = $$10$$i; + break; + } else { + if ($e3$0$i < $e4$0$i) { + $$7$i2 = $$9$i; + $377 = $$$16$i; + $379 = $$15$i; + $380 = $$$10$i; + $383 = $$16$$i; + $385 = $$10$$i; + break; + } + $$7$i2 = $$9$i; + $377 = $$$18$i; + $379 = $$17$i; + $380 = $$$10$i; + $383 = $$18$$i; + $385 = $$10$$i; + break; + } + } while (0); + $381 = $377 * $$7$i2 - $379 * $380; + $386 = $383 * $380 - $377 * $385; + $389 = $379 * $385 - $383 * $$7$i2; + $395 = +Math_sqrt(+($389 * $389 + ($381 * $381 + $386 * $386))); + HEAPF64[$initMatXw2Xc >> 3] = $385; + HEAPF64[$initMatXw2Xc + 32 >> 3] = $$7$i2; + HEAPF64[$initMatXw2Xc + 64 >> 3] = $380; + HEAPF64[$initMatXw2Xc + 8 >> 3] = $383; + HEAPF64[$initMatXw2Xc + 40 >> 3] = $379; + HEAPF64[$initMatXw2Xc + 72 >> 3] = $377; + HEAPF64[$initMatXw2Xc + 16 >> 3] = $381 / $395; + HEAPF64[$initMatXw2Xc + 48 >> 3] = $386 / $395; + HEAPF64[$initMatXw2Xc + 80 >> 3] = $389 / $395; + HEAPF64[$initMatXw2Xc + 24 >> 3] = $t$sroa$0$0; + HEAPF64[$initMatXw2Xc + 56 >> 3] = $t$sroa$6$0; + HEAPF64[$initMatXw2Xc + 88 >> 3] = $180; + $$0 = 0; + } + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, $robustFlag) { + $handle = $handle | 0; + $marker_info = $marker_info | 0; + $marker_num = $marker_num | 0; + $config = $config | 0; + $robustFlag = $robustFlag | 0; + var $$0 = 0.0, $$pre38 = 0, $0 = 0, $1 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $128 = 0, $13 = 0, $130 = 0, $133 = 0, $140 = 0, $15 = 0, $150 = 0, $160 = 0, $171 = 0, $2 = 0, $20 = 0.0, $209 = 0, $221 = 0, $224 = 0, $225 = 0, $226 = 0.0, $229 = 0.0, $232 = 0.0, $235 = 0.0, $239 = 0.0, $240 = 0, $241 = 0.0, $242 = 0, $258 = 0.0, $259 = 0.0, $276 = 0.0, $277 = 0.0, $294 = 0.0, $295 = 0.0, $3 = 0, $312 = 0.0, $313 = 0.0, $342 = 0, $344 = 0, $346 = 0, $348 = 0, $35 = 0, $38 = 0, $40 = 0, $43 = 0, $47 = 0, $5 = 0, $59 = 0.0, $6 = 0, $7 = 0, $75 = 0, $77 = 0, $79 = 0, $86 = 0, $err$0 = 0.0, $err$1 = 0.0, $err$2 = 0.0, $err$3 = 0.0, $err$4 = 0.0, $err$5 = 0.0, $err$6 = 0.0, $i$081 = 0, $i$165 = 0, $i$256 = 0, $i$942 = 0, $j$077 = 0, $j$1055 = 0, $j$171 = 0, $j$261 = 0, $j$357 = 0, $j$4 = 0, $j$553 = 0, $j$651 = 0, $j$749 = 0, $j$847 = 0, $j$945 = 0, $k$0$lcssa = 0, $k$078 = 0, $k$1 = 0, $k$2$lcssa = 0, $k$273 = 0, $k$3 = 0, $max$0$lcssa = 0, $max$062 = 0, $max$1 = 0, $max$2 = 0, $maxArea$063 = 0, $maxArea$1 = 0, $maxArea$2 = 0, $trans1 = 0, $trans2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vnum$0$lcssa = 0, $vnum$064 = 0, $vnum$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 208 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 200 | 0; + $vararg_buffer = sp + 192 | 0; + $trans1 = sp + 96 | 0; + $trans2 = sp; + $0 = $config + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $config + 112 | 0; + $3 = $config + 120 | 0; + if (($1 | 0) > 0) { + $5 = HEAP32[$config >> 2] | 0; + $6 = ($marker_num | 0) > 0; + $7 = ($marker_num | 0) > 0; + $i$081 = 0; + do { + if (!(HEAP32[$5 + ($i$081 * 320 | 0) + 4 >> 2] | 0)) { + if ($6) { + $15 = HEAP32[$5 + ($i$081 * 320 | 0) >> 2] | 0; + $j$077 = 0; + $k$078 = -1; + while (1) { + if ((HEAP32[$marker_info + ($j$077 << 8) + 8 >> 2] | 0) == ($15 | 0)) { + $20 = +HEAPF64[$marker_info + ($j$077 << 8) + 40 >> 3]; + if ($20 < +HEAPF64[$2 >> 3]) $k$1 = $k$078; else if (($k$078 | 0) == -1) $k$1 = $j$077; else if (+HEAPF64[$marker_info + ($k$078 << 8) + 40 >> 3] < $20) $k$1 = $j$077; else $k$1 = $k$078; + } else $k$1 = $k$078; + $j$077 = $j$077 + 1 | 0; + if (($j$077 | 0) >= ($marker_num | 0)) { + $k$0$lcssa = $k$1; + break; + } else $k$078 = $k$1; + } + } else $k$0$lcssa = -1; + HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$0$lcssa; + if (($k$0$lcssa | 0) > -1) HEAP32[$marker_info + ($k$0$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$0$lcssa << 8) + 20 >> 2]; + } else { + $12 = $5 + ($i$081 * 320 | 0) + 312 | 0; + $13 = $5 + ($i$081 * 320 | 0) | 0; + if ($7) { + $j$171 = 0; + $k$273 = -1; + while (1) { + $35 = HEAP32[$marker_info + ($j$171 << 8) + 12 >> 2] | 0; + if (!$35) { + $38 = $marker_info + ($j$171 << 8) + 248 | 0; + $40 = HEAP32[$38 >> 2] | 0; + $43 = HEAP32[$38 + 4 >> 2] | 0; + if (($40 | 0) == 0 & ($43 | 0) == 0) label = 19; else { + $47 = $12; + if (($40 | 0) == (HEAP32[$47 >> 2] | 0) ? ($43 | 0) == (HEAP32[$47 + 4 >> 2] | 0) : 0) label = 20; else $k$3 = $k$273; + } + } else label = 19; + if ((label | 0) == 19) { + label = 0; + if (($35 | 0) == (HEAP32[$13 >> 2] | 0)) label = 20; else $k$3 = $k$273; + } + if ((label | 0) == 20) { + label = 0; + $59 = +HEAPF64[$marker_info + ($j$171 << 8) + 48 >> 3]; + if ($59 < +HEAPF64[$3 >> 3]) $k$3 = $k$273; else if (($k$273 | 0) == -1) $k$3 = $j$171; else if (+HEAPF64[$marker_info + ($k$273 << 8) + 48 >> 3] < $59) $k$3 = $j$171; else $k$3 = $k$273; + } + $j$171 = $j$171 + 1 | 0; + if (($j$171 | 0) >= ($marker_num | 0)) { + $k$2$lcssa = $k$3; + break; + } else $k$273 = $k$3; + } + } else $k$2$lcssa = -1; + HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$2$lcssa; + if (($k$2$lcssa | 0) > -1) HEAP32[$marker_info + ($k$2$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$2$lcssa << 8) + 24 >> 2]; + } + $i$081 = $i$081 + 1 | 0; + } while (($i$081 | 0) < ($1 | 0)); + } + if (($1 | 0) > 0) { + $i$165 = 0; + $max$062 = 0; + $maxArea$063 = 0; + $vnum$064 = 0; + while (1) { + $75 = HEAP32[$config >> 2] | 0; + $77 = HEAP32[$75 + ($i$165 * 320 | 0) + 304 >> 2] | 0; + do if (($77 | 0) < 0) { + $max$2 = $max$062; + $maxArea$2 = $maxArea$063; + $vnum$1 = $vnum$064; + } else { + $79 = $marker_info + ($77 << 8) | 0; + if (+_arGetTransMatSquare($handle, $79, +HEAPF64[$75 + ($i$165 * 320 | 0) + 8 >> 3], $trans2) > 4.0) { + HEAP32[(HEAP32[$config >> 2] | 0) + ($i$165 * 320 | 0) + 304 >> 2] = -1; + $86 = $marker_info + ($77 << 8) + 236 | 0; + if (HEAP32[$86 >> 2] | 0) { + $max$2 = $max$062; + $maxArea$2 = $maxArea$063; + $vnum$1 = $vnum$064; + break; + } + HEAP32[$86 >> 2] = 7; + $max$2 = $max$062; + $maxArea$2 = $maxArea$063; + $vnum$1 = $vnum$064; + break; + } + $$pre38 = HEAP32[$79 >> 2] | 0; + if (($vnum$064 | 0) == 0 | ($maxArea$063 | 0) < ($$pre38 | 0)) { + $j$261 = 0; + do { + HEAPF64[$trans1 + ($j$261 << 5) >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) >> 3]; + HEAPF64[$trans1 + ($j$261 << 5) + 8 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 8 >> 3]; + HEAPF64[$trans1 + ($j$261 << 5) + 16 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 16 >> 3]; + HEAPF64[$trans1 + ($j$261 << 5) + 24 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 24 >> 3]; + $j$261 = $j$261 + 1 | 0; + } while (($j$261 | 0) != 3); + $max$1 = $i$165; + $maxArea$1 = $$pre38; + } else { + $max$1 = $max$062; + $maxArea$1 = $maxArea$063; + } + $max$2 = $max$1; + $maxArea$2 = $maxArea$1; + $vnum$1 = $vnum$064 + 1 | 0; + } while (0); + $i$165 = $i$165 + 1 | 0; + if (($i$165 | 0) >= (HEAP32[$0 >> 2] | 0)) { + $max$0$lcssa = $max$2; + $vnum$0$lcssa = $vnum$1; + break; + } else { + $max$062 = $max$2; + $maxArea$063 = $maxArea$2; + $vnum$064 = $vnum$1; + } + } + } else { + $max$0$lcssa = 0; + $vnum$0$lcssa = 0; + } + do if (!$vnum$0$lcssa) label = 38; else if (($vnum$0$lcssa | 0) < (HEAP32[$config + 128 >> 2] | 0)) label = 38; else { + _arUtilMatMul($trans1, (HEAP32[$config >> 2] | 0) + ($max$0$lcssa * 320 | 0) + 112 | 0, $trans2) | 0; + $114 = $vnum$0$lcssa << 2; + $116 = _malloc($vnum$0$lcssa << 6) | 0; + if (!$116) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } + $119 = _malloc($vnum$0$lcssa * 96 | 0) | 0; + if (!$119) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + $121 = HEAP32[$0 >> 2] | 0; + if (($121 | 0) > 0) { + $123 = HEAP32[$config >> 2] | 0; + $i$256 = 0; + $j$357 = 0; + while (1) { + $125 = HEAP32[$123 + ($i$256 * 320 | 0) + 304 >> 2] | 0; + if (($125 | 0) < 0) $j$4 = $j$357; else { + $128 = HEAP32[$marker_info + ($125 << 8) + 16 >> 2] | 0; + $130 = (4 - $128 | 0) % 4 | 0; + $133 = $j$357 << 3; + HEAPF64[$116 + ($133 << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) >> 3]; + HEAPF64[$116 + (($133 | 1) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) + 8 >> 3]; + $140 = (5 - $128 | 0) % 4 | 0; + HEAPF64[$116 + (($133 | 2) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) >> 3]; + HEAPF64[$116 + (($133 | 3) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) + 8 >> 3]; + $150 = (6 - $128 | 0) % 4 | 0; + HEAPF64[$116 + (($133 | 4) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) >> 3]; + HEAPF64[$116 + (($133 | 5) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) + 8 >> 3]; + $160 = (7 - $128 | 0) % 4 | 0; + HEAPF64[$116 + (($133 | 6) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) >> 3]; + HEAPF64[$116 + (($133 | 7) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) + 8 >> 3]; + $171 = $j$357 * 12 | 0; + HEAPF64[$119 + ($171 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 208 >> 3]; + HEAPF64[$119 + (($171 | 1) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 216 >> 3]; + HEAPF64[$119 + (($171 | 2) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 224 >> 3]; + HEAPF64[$119 + (($171 | 3) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 232 >> 3]; + HEAPF64[$119 + ($171 + 4 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 240 >> 3]; + HEAPF64[$119 + ($171 + 5 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 248 >> 3]; + HEAPF64[$119 + ($171 + 6 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 256 >> 3]; + HEAPF64[$119 + ($171 + 7 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 264 >> 3]; + HEAPF64[$119 + ($171 + 8 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 272 >> 3]; + HEAPF64[$119 + ($171 + 9 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 280 >> 3]; + $209 = HEAP32[$config >> 2] | 0; + HEAPF64[$119 + ($171 + 10 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 288 >> 3]; + HEAPF64[$119 + ($171 + 11 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 296 >> 3]; + $j$4 = $j$357 + 1 | 0; + } + $i$256 = $i$256 + 1 | 0; + if (($i$256 | 0) >= ($121 | 0)) break; else $j$357 = $j$4; + } + } + $221 = $config + 104 | 0; + $224 = ($robustFlag | 0) != 0; + if (!(HEAP32[$221 >> 2] | 0)) { + $225 = $config + 8 | 0; + $226 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $225); + if ($224 & $226 >= 20.0) { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0; + $229 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); + if (!($229 >= 20.0)) $err$0 = $229; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0; + $232 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); + if (!($232 >= 20.0)) $err$0 = $232; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0; + $235 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); + if (!($235 >= 20.0)) $err$0 = $235; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0; + $err$0 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); + } + } + } + } else $err$0 = $226; + _free($119); + _free($116); + $err$6 = $err$0; + } else { + $239 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $trans1); + $240 = $config + 8 | 0; + $241 = +_arGetTransMat($handle, $240, $116, $119, $114, $240); + $242 = $239 < $241; + do if ($224) { + if ($242) { + $j$553 = 0; + do { + HEAPF64[$config + 8 + ($j$553 << 5) >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$553 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$553 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$553 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 24 >> 3]; + $j$553 = $j$553 + 1 | 0; + } while (($j$553 | 0) != 3); + $err$1 = $239; + } else $err$1 = $241; + if (!($err$1 >= 20.0)) $err$5 = $err$1; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0; + $258 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); + $259 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); + if ($258 < $259) { + $j$651 = 0; + do { + HEAPF64[$config + 8 + ($j$651 << 5) >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$651 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$651 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$651 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 24 >> 3]; + $j$651 = $j$651 + 1 | 0; + } while (($j$651 | 0) != 3); + $err$2 = $258; + } else $err$2 = $259; + if (!($err$2 >= 20.0)) $err$5 = $err$2; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0; + $276 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); + $277 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); + if ($276 < $277) { + $j$749 = 0; + do { + HEAPF64[$config + 8 + ($j$749 << 5) >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$749 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$749 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$749 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 24 >> 3]; + $j$749 = $j$749 + 1 | 0; + } while (($j$749 | 0) != 3); + $err$3 = $276; + } else $err$3 = $277; + if (!($err$3 >= 20.0)) $err$5 = $err$3; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0; + $294 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); + $295 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); + if ($294 < $295) { + $j$847 = 0; + do { + HEAPF64[$config + 8 + ($j$847 << 5) >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$847 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$847 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$847 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 24 >> 3]; + $j$847 = $j$847 + 1 | 0; + } while (($j$847 | 0) != 3); + $err$4 = $294; + } else $err$4 = $295; + if (!($err$4 >= 20.0)) $err$5 = $err$4; else { + _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0; + $312 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); + $313 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); + if ($312 < $313) $j$945 = 0; else { + $err$5 = $313; + break; + } + do { + HEAPF64[$config + 8 + ($j$945 << 5) >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$945 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$945 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$945 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 24 >> 3]; + $j$945 = $j$945 + 1 | 0; + } while (($j$945 | 0) != 3); + $err$5 = $312; + } + } + } + } + } else if ($242) { + $j$1055 = 0; + do { + HEAPF64[$config + 8 + ($j$1055 << 5) >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) >> 3]; + HEAPF64[$config + 8 + ($j$1055 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 8 >> 3]; + HEAPF64[$config + 8 + ($j$1055 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 16 >> 3]; + HEAPF64[$config + 8 + ($j$1055 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 24 >> 3]; + $j$1055 = $j$1055 + 1 | 0; + } while (($j$1055 | 0) != 3); + $err$5 = $239; + } else $err$5 = $241; while (0); + _free($119); + _free($116); + $err$6 = $err$5; + } + if ($err$6 < 20.0) { + HEAP32[$221 >> 2] = 1; + $$0 = $err$6; + break; + } + HEAP32[$221 >> 2] = 0; + $342 = HEAP32[$0 >> 2] | 0; + if (($342 | 0) > 0) { + $344 = HEAP32[$config >> 2] | 0; + $i$942 = 0; + do { + $346 = HEAP32[$344 + ($i$942 * 320 | 0) + 304 >> 2] | 0; + if (($346 | 0) >= 0) { + $348 = $marker_info + ($346 << 8) + 236 | 0; + if (!(HEAP32[$348 >> 2] | 0)) HEAP32[$348 >> 2] = 8; + } + $i$942 = $i$942 + 1 | 0; + } while (($i$942 | 0) < ($342 | 0)); + $$0 = $err$6; + } else $$0 = $err$6; + } while (0); + if ((label | 0) == 38) { + HEAP32[$config + 104 >> 2] = 0; + $$0 = -1.0; + } + STACKTOP = sp; + return +$$0; +} + +function __ZNSt3__112__next_primeEj($n) { + $n = $n | 0; + var $$ = 0, $$0 = 0, $$k0$0 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $108 = 0, $109 = 0, $113 = 0, $114 = 0, $118 = 0, $119 = 0, $12 = 0, $123 = 0, $124 = 0, $128 = 0, $129 = 0, $133 = 0, $134 = 0, $138 = 0, $139 = 0, $143 = 0, $144 = 0, $148 = 0, $149 = 0, $153 = 0, $154 = 0, $158 = 0, $159 = 0, $163 = 0, $164 = 0, $168 = 0, $169 = 0, $173 = 0, $174 = 0, $178 = 0, $179 = 0, $18 = 0, $183 = 0, $184 = 0, $188 = 0, $189 = 0, $19 = 0, $193 = 0, $194 = 0, $198 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $208 = 0, $209 = 0, $213 = 0, $214 = 0, $218 = 0, $219 = 0, $223 = 0, $224 = 0, $228 = 0, $229 = 0, $233 = 0, $234 = 0, $238 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $248 = 0, $249 = 0, $253 = 0, $254 = 0, $258 = 0, $259 = 0, $264 = 0, $265 = 0, $28 = 0, $29 = 0, $33 = 0, $34 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $44 = 0, $48 = 0, $49 = 0, $53 = 0, $54 = 0, $58 = 0, $59 = 0, $6 = 0, $63 = 0, $64 = 0, $68 = 0, $69 = 0, $7 = 0, $73 = 0, $74 = 0, $78 = 0, $79 = 0, $83 = 0, $84 = 0, $88 = 0, $89 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $i$0 = 0, $in$0 = 0, $j$0 = 0, $k0$0 = 0, $storemerge = 0, $storemerge$lcssa = 0, $storemerge$lcssa15 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + $2 = sp; + HEAP32[$1 >> 2] = $n; + do if ($n >>> 0 < 212) { + $4 = __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(11812, 12004, $1, $0) | 0; + $$0 = HEAP32[$4 >> 2] | 0; + } else { + $6 = ($n >>> 0) / 210 | 0; + $7 = $6 * 210 | 0; + HEAP32[$2 >> 2] = $n - $7; + $12 = (__ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(12004, 12196, $2, $0) | 0) - 12004 >> 2; + $in$0 = $12; + $k0$0 = $6; + $storemerge = (HEAP32[12004 + ($12 << 2) >> 2] | 0) + $7 | 0; + L4 : while (1) { + $j$0 = 5; + while (1) { + if ($j$0 >>> 0 >= 47) { + $i$0 = 211; + label = 8; + break; + } + $18 = HEAP32[11812 + ($j$0 << 2) >> 2] | 0; + $19 = ($storemerge >>> 0) / ($18 >>> 0) | 0; + if ($19 >>> 0 < $18 >>> 0) { + $storemerge$lcssa15 = $storemerge; + label = 106; + break L4; + } + if (($storemerge | 0) == (Math_imul($19, $18) | 0)) break; else $j$0 = $j$0 + 1 | 0; + } + L10 : do if ((label | 0) == 8) while (1) { + label = 0; + $24 = ($storemerge >>> 0) / ($i$0 >>> 0) | 0; + if ($24 >>> 0 < $i$0 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($24, $i$0) | 0)) break L10; + $28 = $i$0 + 10 | 0; + $29 = ($storemerge >>> 0) / ($28 >>> 0) | 0; + if ($29 >>> 0 < $28 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($29, $28) | 0)) break L10; + $33 = $i$0 + 12 | 0; + $34 = ($storemerge >>> 0) / ($33 >>> 0) | 0; + if ($34 >>> 0 < $33 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($34, $33) | 0)) break L10; + $38 = $i$0 + 16 | 0; + $39 = ($storemerge >>> 0) / ($38 >>> 0) | 0; + if ($39 >>> 0 < $38 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($39, $38) | 0)) break L10; + $43 = $i$0 + 18 | 0; + $44 = ($storemerge >>> 0) / ($43 >>> 0) | 0; + if ($44 >>> 0 < $43 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($44, $43) | 0)) break L10; + $48 = $i$0 + 22 | 0; + $49 = ($storemerge >>> 0) / ($48 >>> 0) | 0; + if ($49 >>> 0 < $48 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($49, $48) | 0)) break L10; + $53 = $i$0 + 28 | 0; + $54 = ($storemerge >>> 0) / ($53 >>> 0) | 0; + if ($54 >>> 0 < $53 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($54, $53) | 0)) break L10; + $58 = $i$0 + 30 | 0; + $59 = ($storemerge >>> 0) / ($58 >>> 0) | 0; + if ($59 >>> 0 < $58 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($59, $58) | 0)) break L10; + $63 = $i$0 + 36 | 0; + $64 = ($storemerge >>> 0) / ($63 >>> 0) | 0; + if ($64 >>> 0 < $63 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($64, $63) | 0)) break L10; + $68 = $i$0 + 40 | 0; + $69 = ($storemerge >>> 0) / ($68 >>> 0) | 0; + if ($69 >>> 0 < $68 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($69, $68) | 0)) break L10; + $73 = $i$0 + 42 | 0; + $74 = ($storemerge >>> 0) / ($73 >>> 0) | 0; + if ($74 >>> 0 < $73 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($74, $73) | 0)) break L10; + $78 = $i$0 + 46 | 0; + $79 = ($storemerge >>> 0) / ($78 >>> 0) | 0; + if ($79 >>> 0 < $78 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($79, $78) | 0)) break L10; + $83 = $i$0 + 52 | 0; + $84 = ($storemerge >>> 0) / ($83 >>> 0) | 0; + if ($84 >>> 0 < $83 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($84, $83) | 0)) break L10; + $88 = $i$0 + 58 | 0; + $89 = ($storemerge >>> 0) / ($88 >>> 0) | 0; + if ($89 >>> 0 < $88 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($89, $88) | 0)) break L10; + $93 = $i$0 + 60 | 0; + $94 = ($storemerge >>> 0) / ($93 >>> 0) | 0; + if ($94 >>> 0 < $93 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($94, $93) | 0)) break L10; + $98 = $i$0 + 66 | 0; + $99 = ($storemerge >>> 0) / ($98 >>> 0) | 0; + if ($99 >>> 0 < $98 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($99, $98) | 0)) break L10; + $103 = $i$0 + 70 | 0; + $104 = ($storemerge >>> 0) / ($103 >>> 0) | 0; + if ($104 >>> 0 < $103 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($104, $103) | 0)) break L10; + $108 = $i$0 + 72 | 0; + $109 = ($storemerge >>> 0) / ($108 >>> 0) | 0; + if ($109 >>> 0 < $108 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($109, $108) | 0)) break L10; + $113 = $i$0 + 78 | 0; + $114 = ($storemerge >>> 0) / ($113 >>> 0) | 0; + if ($114 >>> 0 < $113 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($114, $113) | 0)) break L10; + $118 = $i$0 + 82 | 0; + $119 = ($storemerge >>> 0) / ($118 >>> 0) | 0; + if ($119 >>> 0 < $118 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($119, $118) | 0)) break L10; + $123 = $i$0 + 88 | 0; + $124 = ($storemerge >>> 0) / ($123 >>> 0) | 0; + if ($124 >>> 0 < $123 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($124, $123) | 0)) break L10; + $128 = $i$0 + 96 | 0; + $129 = ($storemerge >>> 0) / ($128 >>> 0) | 0; + if ($129 >>> 0 < $128 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($129, $128) | 0)) break L10; + $133 = $i$0 + 100 | 0; + $134 = ($storemerge >>> 0) / ($133 >>> 0) | 0; + if ($134 >>> 0 < $133 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($134, $133) | 0)) break L10; + $138 = $i$0 + 102 | 0; + $139 = ($storemerge >>> 0) / ($138 >>> 0) | 0; + if ($139 >>> 0 < $138 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($139, $138) | 0)) break L10; + $143 = $i$0 + 106 | 0; + $144 = ($storemerge >>> 0) / ($143 >>> 0) | 0; + if ($144 >>> 0 < $143 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($144, $143) | 0)) break L10; + $148 = $i$0 + 108 | 0; + $149 = ($storemerge >>> 0) / ($148 >>> 0) | 0; + if ($149 >>> 0 < $148 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($149, $148) | 0)) break L10; + $153 = $i$0 + 112 | 0; + $154 = ($storemerge >>> 0) / ($153 >>> 0) | 0; + if ($154 >>> 0 < $153 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($154, $153) | 0)) break L10; + $158 = $i$0 + 120 | 0; + $159 = ($storemerge >>> 0) / ($158 >>> 0) | 0; + if ($159 >>> 0 < $158 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($159, $158) | 0)) break L10; + $163 = $i$0 + 126 | 0; + $164 = ($storemerge >>> 0) / ($163 >>> 0) | 0; + if ($164 >>> 0 < $163 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($164, $163) | 0)) break L10; + $168 = $i$0 + 130 | 0; + $169 = ($storemerge >>> 0) / ($168 >>> 0) | 0; + if ($169 >>> 0 < $168 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($169, $168) | 0)) break L10; + $173 = $i$0 + 136 | 0; + $174 = ($storemerge >>> 0) / ($173 >>> 0) | 0; + if ($174 >>> 0 < $173 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($174, $173) | 0)) break L10; + $178 = $i$0 + 138 | 0; + $179 = ($storemerge >>> 0) / ($178 >>> 0) | 0; + if ($179 >>> 0 < $178 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($179, $178) | 0)) break L10; + $183 = $i$0 + 142 | 0; + $184 = ($storemerge >>> 0) / ($183 >>> 0) | 0; + if ($184 >>> 0 < $183 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($184, $183) | 0)) break L10; + $188 = $i$0 + 148 | 0; + $189 = ($storemerge >>> 0) / ($188 >>> 0) | 0; + if ($189 >>> 0 < $188 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($189, $188) | 0)) break L10; + $193 = $i$0 + 150 | 0; + $194 = ($storemerge >>> 0) / ($193 >>> 0) | 0; + if ($194 >>> 0 < $193 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($194, $193) | 0)) break L10; + $198 = $i$0 + 156 | 0; + $199 = ($storemerge >>> 0) / ($198 >>> 0) | 0; + if ($199 >>> 0 < $198 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($199, $198) | 0)) break L10; + $203 = $i$0 + 162 | 0; + $204 = ($storemerge >>> 0) / ($203 >>> 0) | 0; + if ($204 >>> 0 < $203 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($204, $203) | 0)) break L10; + $208 = $i$0 + 166 | 0; + $209 = ($storemerge >>> 0) / ($208 >>> 0) | 0; + if ($209 >>> 0 < $208 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($209, $208) | 0)) break L10; + $213 = $i$0 + 168 | 0; + $214 = ($storemerge >>> 0) / ($213 >>> 0) | 0; + if ($214 >>> 0 < $213 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($214, $213) | 0)) break L10; + $218 = $i$0 + 172 | 0; + $219 = ($storemerge >>> 0) / ($218 >>> 0) | 0; + if ($219 >>> 0 < $218 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($219, $218) | 0)) break L10; + $223 = $i$0 + 178 | 0; + $224 = ($storemerge >>> 0) / ($223 >>> 0) | 0; + if ($224 >>> 0 < $223 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($224, $223) | 0)) break L10; + $228 = $i$0 + 180 | 0; + $229 = ($storemerge >>> 0) / ($228 >>> 0) | 0; + if ($229 >>> 0 < $228 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($229, $228) | 0)) break L10; + $233 = $i$0 + 186 | 0; + $234 = ($storemerge >>> 0) / ($233 >>> 0) | 0; + if ($234 >>> 0 < $233 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($234, $233) | 0)) break L10; + $238 = $i$0 + 190 | 0; + $239 = ($storemerge >>> 0) / ($238 >>> 0) | 0; + if ($239 >>> 0 < $238 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($239, $238) | 0)) break L10; + $243 = $i$0 + 192 | 0; + $244 = ($storemerge >>> 0) / ($243 >>> 0) | 0; + if ($244 >>> 0 < $243 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($244, $243) | 0)) break L10; + $248 = $i$0 + 196 | 0; + $249 = ($storemerge >>> 0) / ($248 >>> 0) | 0; + if ($249 >>> 0 < $248 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($249, $248) | 0)) break L10; + $253 = $i$0 + 198 | 0; + $254 = ($storemerge >>> 0) / ($253 >>> 0) | 0; + if ($254 >>> 0 < $253 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($254, $253) | 0)) break L10; + $258 = $i$0 + 208 | 0; + $259 = ($storemerge >>> 0) / ($258 >>> 0) | 0; + if ($259 >>> 0 < $258 >>> 0) { + $storemerge$lcssa = $storemerge; + label = 105; + break L4; + } + if (($storemerge | 0) == (Math_imul($259, $258) | 0)) break; else { + $i$0 = $i$0 + 210 | 0; + label = 8; + } + } while (0); + $264 = $in$0 + 1 | 0; + $265 = ($264 | 0) == 48; + $$ = $265 ? 0 : $264; + $$k0$0 = ($265 & 1) + $k0$0 | 0; + $in$0 = $$; + $k0$0 = $$k0$0; + $storemerge = (HEAP32[12004 + ($$ << 2) >> 2] | 0) + ($$k0$0 * 210 | 0) | 0; + } + if ((label | 0) == 105) { + HEAP32[$1 >> 2] = $storemerge$lcssa; + $$0 = $storemerge$lcssa; + break; + } else if ((label | 0) == 106) { + HEAP32[$1 >> 2] = $storemerge$lcssa15; + $$0 = $storemerge$lcssa15; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $image_thresh = $image_thresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$096 = 0; + $pnt1$097 = $0; + $pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$095 >> 1] = 0; + HEAP16[$pnt1$097 >> 1] = 0; + $i$096 = $i$096 + 1 | 0; + if (($i$096 | 0) >= ($xsize | 0)) break; else { + $pnt1$097 = $pnt1$097 + 2 | 0; + $pnt2$095 = $pnt2$095 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$190 = 0; + $pnt1$191 = $0; + $pnt2$189 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$189 >> 1] = 0; + HEAP16[$pnt1$191 >> 1] = 0; + $i$190 = $i$190 + 1 | 0; + if (($i$190 | 0) >= ($ysize | 0)) break; else { + $pnt1$191 = $pnt1$191 + ($xsize << 1) | 0; + $pnt2$189 = $pnt2$189 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$083 = 1; + $pnt$086 = $image + $17 | 0; + $pnt2$281 = $0 + ($17 << 1) | 0; + $pnt_thresh$085 = $image_thresh + $17 | 0; + $wk_max$082 = 0; + L13 : while (1) { + if ($26) { + $dpnt$163 = $dpnt$080; + $i$270 = 1; + $pnt$173 = $pnt$086; + $pnt2$364 = $pnt2$281; + $pnt_thresh$172 = $pnt_thresh$085; + $wk_max$165 = $wk_max$082; + while (1) { + do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) { + HEAP8[$dpnt$163 >> 0] = -1; + $31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$364 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$364 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $176 = HEAP16[$pnt2$364 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$364 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) { + $wk_max$2 = $wk_max$165; + break; + } + HEAP32[$193 >> 2] = $i$270; + $wk_max$2 = $wk_max$165; + break; + } else { + $196 = $wk_max$165 + 1 | 0; + if (($wk_max$165 | 0) > 32767) break L13; + HEAP16[$pnt2$364 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$165 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083; + $wk_max$2 = $196; + break; + } + } + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$364 >> 1] = $62; + if (($wk_max$165 | 0) > 0) { + $k$059 = 0; + $wk$060 = $16; + while (1) { + if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62; + $k$059 = $k$059 + 1 | 0; + if (($k$059 | 0) >= ($wk_max$165 | 0)) { + $79 = $62; + break; + } else $wk$060 = $wk$060 + 4 | 0; + } + } else $79 = $62; + } else { + HEAP16[$pnt2$364 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) { + $k$156 = 0; + $wk$157 = $16; + while (1) { + if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59; + $k$156 = $k$156 + 1 | 0; + if (($k$156 | 0) >= ($wk_max$165 | 0)) { + $79 = $59; + break; + } else $wk$157 = $wk$157 + 4 | 0; + } + } else $79 = $59; + } + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $97 = HEAP16[$pnt2$364 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$364 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$364 >> 1] = $105; + if (($wk_max$165 | 0) > 0) { + $k$252 = 0; + $wk$253 = $16; + while (1) { + if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105; + $k$252 = $k$252 + 1 | 0; + if (($k$252 | 0) >= ($wk_max$165 | 0)) { + $122 = $105; + break; + } else $wk$253 = $wk$253 + 4 | 0; + } + } else $122 = $105; + } else { + HEAP16[$pnt2$364 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) { + $k$349 = 0; + $wk$350 = $16; + while (1) { + if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102; + $k$349 = $k$349 + 1 | 0; + if (($k$349 | 0) >= ($wk_max$165 | 0)) { + $122 = $102; + break; + } else $wk$350 = $wk$350 + 4 | 0; + } + } else $122 = $102; + } + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083; + $wk_max$2 = $wk_max$165; + } else { + HEAP16[$pnt2$364 >> 1] = 0; + HEAP8[$dpnt$163 >> 0] = 0; + $wk_max$2 = $wk_max$165; + } while (0); + $i$270 = $i$270 + 1 | 0; + $216 = $pnt$173 + 1 | 0; + $217 = $pnt_thresh$172 + 1 | 0; + $218 = $pnt2$364 + 2 | 0; + $219 = $dpnt$163 + 1 | 0; + if (($i$270 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $219; + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $218; + $pnt_thresh$1$lcssa = $217; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$163 = $219; + $pnt$173 = $216; + $pnt2$364 = $218; + $pnt_thresh$172 = $217; + $wk_max$165 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$080; + $pnt$1$lcssa = $pnt$086; + $pnt2$3$lcssa = $pnt2$281; + $pnt_thresh$1$lcssa = $pnt_thresh$085; + $wk_max$1$lcssa = $wk_max$082; + } + $j$083 = $j$083 + 1 | 0; + if (($j$083 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$080 = $dpnt$1$lcssa + 2 | 0; + $pnt$086 = $pnt$1$lcssa + 2 | 0; + $pnt2$281 = $pnt2$3$lcssa + 4 | 0; + $pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0; + $wk_max$082 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $227 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$345 = 1; + $j$146 = 1; + $wk$447 = $16; + while (1) { + $229 = HEAP32[$wk$447 >> 2] | 0; + if (($229 | 0) == ($i$345 | 0)) { + $235 = $j$146; + $j$2 = $j$146 + 1 | 0; + } else { + $235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0; + $j$2 = $j$146; + } + HEAP32[$wk$447 >> 2] = $235; + if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) { + $i$345 = $i$345 + 1 | 0; + $j$146 = $j$2; + $wk$447 = $wk$447 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $239 = $labelInfo + 8 | 0; + $240 = $j$1$lcssa + -1 | 0; + HEAP32[$239 >> 2] = $240; + if (!$240) $$0 = 0; else { + _memset($227 | 0, 0, $240 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$443 = 0; + do { + $247 = $i$443 << 2; + HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0; + $i$443 = $i$443 + 1 | 0; + } while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$541 = 0; + do { + $261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0; + $262 = $i$541 * 7 | 0; + $265 = $labelInfo + 12 + ($261 << 2) | 0; + HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0); + $272 = $261 << 1; + $273 = $labelInfo + 655376 + ($272 << 3) | 0; + HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0); + $281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0); + $284 = $261 << 2; + $285 = $labelInfo + 131084 + ($284 << 2) | 0; + $289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0; + if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289; + $292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310; + $i$541 = $i$541 + 1 | 0; + } while (($i$541 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$239 >> 2] | 0) > 0) { + $i$640 = 0; + do { + $314 = $labelInfo + 12 + ($i$640 << 2) | 0; + $317 = $i$640 << 1; + $318 = $labelInfo + 655376 + ($317 << 3) | 0; + HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0); + $324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0); + $i$640 = $i$640 + 1 | 0; + } while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $image_thresh = $image_thresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$096 = 0; + $pnt1$097 = $0; + $pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$095 >> 1] = 0; + HEAP16[$pnt1$097 >> 1] = 0; + $i$096 = $i$096 + 1 | 0; + if (($i$096 | 0) >= ($xsize | 0)) break; else { + $pnt1$097 = $pnt1$097 + 2 | 0; + $pnt2$095 = $pnt2$095 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$190 = 0; + $pnt1$191 = $0; + $pnt2$189 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$189 >> 1] = 0; + HEAP16[$pnt1$191 >> 1] = 0; + $i$190 = $i$190 + 1 | 0; + if (($i$190 | 0) >= ($ysize | 0)) break; else { + $pnt1$191 = $pnt1$191 + ($xsize << 1) | 0; + $pnt2$189 = $pnt2$189 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$083 = 1; + $pnt$086 = $image + $17 | 0; + $pnt2$281 = $0 + ($17 << 1) | 0; + $pnt_thresh$085 = $image_thresh + $17 | 0; + $wk_max$082 = 0; + L13 : while (1) { + if ($26) { + $dpnt$163 = $dpnt$080; + $i$270 = 1; + $pnt$173 = $pnt$086; + $pnt2$364 = $pnt2$281; + $pnt_thresh$172 = $pnt_thresh$085; + $wk_max$165 = $wk_max$082; + while (1) { + do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) { + HEAP16[$pnt2$364 >> 1] = 0; + HEAP8[$dpnt$163 >> 0] = 0; + $wk_max$2 = $wk_max$165; + } else { + HEAP8[$dpnt$163 >> 0] = -1; + $31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$364 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$364 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $176 = HEAP16[$pnt2$364 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$364 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) { + $wk_max$2 = $wk_max$165; + break; + } + HEAP32[$193 >> 2] = $i$270; + $wk_max$2 = $wk_max$165; + break; + } else { + $196 = $wk_max$165 + 1 | 0; + if (($wk_max$165 | 0) > 32767) break L13; + HEAP16[$pnt2$364 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$165 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083; + $wk_max$2 = $196; + break; + } + } + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$364 >> 1] = $62; + if (($wk_max$165 | 0) > 0) { + $k$059 = 0; + $wk$060 = $16; + while (1) { + if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62; + $k$059 = $k$059 + 1 | 0; + if (($k$059 | 0) >= ($wk_max$165 | 0)) { + $79 = $62; + break; + } else $wk$060 = $wk$060 + 4 | 0; + } + } else $79 = $62; + } else { + HEAP16[$pnt2$364 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) { + $k$156 = 0; + $wk$157 = $16; + while (1) { + if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59; + $k$156 = $k$156 + 1 | 0; + if (($k$156 | 0) >= ($wk_max$165 | 0)) { + $79 = $59; + break; + } else $wk$157 = $wk$157 + 4 | 0; + } + } else $79 = $59; + } + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $97 = HEAP16[$pnt2$364 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$364 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083; + $wk_max$2 = $wk_max$165; + break; + } + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$364 >> 1] = $105; + if (($wk_max$165 | 0) > 0) { + $k$252 = 0; + $wk$253 = $16; + while (1) { + if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105; + $k$252 = $k$252 + 1 | 0; + if (($k$252 | 0) >= ($wk_max$165 | 0)) { + $122 = $105; + break; + } else $wk$253 = $wk$253 + 4 | 0; + } + } else $122 = $105; + } else { + HEAP16[$pnt2$364 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) { + $k$349 = 0; + $wk$350 = $16; + while (1) { + if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102; + $k$349 = $k$349 + 1 | 0; + if (($k$349 | 0) >= ($wk_max$165 | 0)) { + $122 = $102; + break; + } else $wk$350 = $wk$350 + 4 | 0; + } + } else $122 = $102; + } + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083; + $wk_max$2 = $wk_max$165; + } while (0); + $i$270 = $i$270 + 1 | 0; + $216 = $pnt$173 + 1 | 0; + $217 = $pnt_thresh$172 + 1 | 0; + $218 = $pnt2$364 + 2 | 0; + $219 = $dpnt$163 + 1 | 0; + if (($i$270 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $219; + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $218; + $pnt_thresh$1$lcssa = $217; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$163 = $219; + $pnt$173 = $216; + $pnt2$364 = $218; + $pnt_thresh$172 = $217; + $wk_max$165 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$080; + $pnt$1$lcssa = $pnt$086; + $pnt2$3$lcssa = $pnt2$281; + $pnt_thresh$1$lcssa = $pnt_thresh$085; + $wk_max$1$lcssa = $wk_max$082; + } + $j$083 = $j$083 + 1 | 0; + if (($j$083 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$080 = $dpnt$1$lcssa + 2 | 0; + $pnt$086 = $pnt$1$lcssa + 2 | 0; + $pnt2$281 = $pnt2$3$lcssa + 4 | 0; + $pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0; + $wk_max$082 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $227 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$345 = 1; + $j$146 = 1; + $wk$447 = $16; + while (1) { + $229 = HEAP32[$wk$447 >> 2] | 0; + if (($229 | 0) == ($i$345 | 0)) { + $235 = $j$146; + $j$2 = $j$146 + 1 | 0; + } else { + $235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0; + $j$2 = $j$146; + } + HEAP32[$wk$447 >> 2] = $235; + if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) { + $i$345 = $i$345 + 1 | 0; + $j$146 = $j$2; + $wk$447 = $wk$447 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $239 = $labelInfo + 8 | 0; + $240 = $j$1$lcssa + -1 | 0; + HEAP32[$239 >> 2] = $240; + if (!$240) $$0 = 0; else { + _memset($227 | 0, 0, $240 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$443 = 0; + do { + $247 = $i$443 << 2; + HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0; + $i$443 = $i$443 + 1 | 0; + } while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$541 = 0; + do { + $261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0; + $262 = $i$541 * 7 | 0; + $265 = $labelInfo + 12 + ($261 << 2) | 0; + HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0); + $272 = $261 << 1; + $273 = $labelInfo + 655376 + ($272 << 3) | 0; + HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0); + $281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0); + $284 = $261 << 2; + $285 = $labelInfo + 131084 + ($284 << 2) | 0; + $289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0; + if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289; + $292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310; + $i$541 = $i$541 + 1 | 0; + } while (($i$541 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$239 >> 2] | 0) > 0) { + $i$640 = 0; + do { + $314 = $labelInfo + 12 + ($i$640 << 2) | 0; + $317 = $i$640 << 1; + $318 = $labelInfo + 655376 + ($317 << 3) | 0; + HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0); + $324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0); + $i$640 = $i$640 + 1 | 0; + } while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision20SamplePyramidFREAK84EPfPKNS_25GaussianScaleSpacePyramidERKNS_12FeaturePointEPKfS8_S8_S8_S8_S8_ffffffff($samples, $pyramid, $point, $points_ring0, $points_ring1, $points_ring2, $points_ring3, $points_ring4, $points_ring5, $sigma_center, $sigma_ring0, $sigma_ring1, $sigma_ring2, $sigma_ring3, $sigma_ring4, $sigma_ring5, $expansion_factor) { + $samples = $samples | 0; + $pyramid = $pyramid | 0; + $point = $point | 0; + $points_ring0 = $points_ring0 | 0; + $points_ring1 = $points_ring1 | 0; + $points_ring2 = $points_ring2 | 0; + $points_ring3 = $points_ring3 | 0; + $points_ring4 = $points_ring4 | 0; + $points_ring5 = $points_ring5 | 0; + $sigma_center = +$sigma_center; + $sigma_ring0 = +$sigma_ring0; + $sigma_ring1 = +$sigma_ring1; + $sigma_ring2 = +$sigma_ring2; + $sigma_ring3 = +$sigma_ring3; + $sigma_ring4 = +$sigma_ring4; + $sigma_ring5 = +$sigma_ring5; + $expansion_factor = +$expansion_factor; + var $10 = 0.0, $100 = 0.0, $105 = 0.0, $110 = 0.0, $115 = 0.0, $12 = 0.0, $120 = 0.0, $125 = 0, $126 = 0, $127 = 0.0, $132 = 0.0, $137 = 0.0, $142 = 0.0, $147 = 0.0, $152 = 0.0, $157 = 0, $158 = 0, $159 = 0.0, $164 = 0.0, $169 = 0.0, $174 = 0.0, $179 = 0.0, $184 = 0.0, $189 = 0, $190 = 0, $191 = 0.0, $196 = 0.0, $2 = 0.0, $201 = 0.0, $206 = 0.0, $211 = 0.0, $216 = 0.0, $22 = 0.0, $221 = 0, $222 = 0, $223 = 0.0, $228 = 0.0, $23 = 0.0, $233 = 0.0, $238 = 0.0, $24 = 0, $243 = 0.0, $248 = 0.0, $253 = 0, $254 = 0, $255 = 0.0, $26 = 0, $260 = 0.0, $265 = 0.0, $270 = 0.0, $275 = 0.0, $28 = 0, $280 = 0.0, $284 = 0.0, $30 = 0, $32 = 0, $34 = 0, $36 = 0, $38 = 0, $4 = 0, $40 = 0, $42 = 0, $44 = 0, $46 = 0, $48 = 0, $50 = 0, $52 = 0, $54 = 0, $56 = 0, $58 = 0, $6 = 0, $60 = 0, $62 = 0, $64 = 0, $66 = 0, $68 = 0, $70 = 0, $72 = 0, $74 = 0, $76 = 0, $78 = 0, $8 = 0.0, $80 = 0, $82 = 0, $94 = 0, $95 = 0, $96 = 0.0, $S = 0, $octave = 0, $r0 = 0, $r1 = 0, $r2 = 0, $r3 = 0, $r4 = 0, $r5 = 0, $scale = 0, $transform_scale$0 = 0.0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 336 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $S = sp + 296 | 0; + $r0 = sp + 248 | 0; + $r1 = sp + 200 | 0; + $r2 = sp + 152 | 0; + $r3 = sp + 104 | 0; + $r4 = sp + 56 | 0; + $r5 = sp + 8 | 0; + $octave = sp + 4 | 0; + $scale = sp; + $2 = +HEAPF32[$point + 12 >> 2] * $expansion_factor; + $transform_scale$0 = $2 < 1.0 ? 1.0 : $2; + $4 = HEAP32[$point >> 2] | 0; + $6 = HEAP32[$point + 4 >> 2] | 0; + $8 = +HEAPF32[$point + 8 >> 2]; + $10 = $transform_scale$0 * +Math_cos(+$8); + $12 = $transform_scale$0 * +Math_sin(+$8); + HEAPF32[$S >> 2] = $10; + HEAPF32[$S + 4 >> 2] = -$12; + HEAP32[$S + 8 >> 2] = $4; + HEAPF32[$S + 12 >> 2] = $12; + HEAPF32[$S + 16 >> 2] = $10; + HEAP32[$S + 20 >> 2] = $6; + HEAPF32[$S + 24 >> 2] = 0.0; + HEAPF32[$S + 28 >> 2] = 0.0; + HEAPF32[$S + 32 >> 2] = 1.0; + $22 = (HEAP32[tempDoublePtr >> 2] = $4, +HEAPF32[tempDoublePtr >> 2]); + $23 = (HEAP32[tempDoublePtr >> 2] = $6, +HEAPF32[tempDoublePtr >> 2]); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r0, $S, $points_ring0); + $24 = $r0 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($24, $S, $points_ring0 + 8 | 0); + $26 = $r0 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($26, $S, $points_ring0 + 16 | 0); + $28 = $r0 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($28, $S, $points_ring0 + 24 | 0); + $30 = $r0 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($30, $S, $points_ring0 + 32 | 0); + $32 = $r0 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($32, $S, $points_ring0 + 40 | 0); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r1, $S, $points_ring1); + $34 = $r1 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($34, $S, $points_ring1 + 8 | 0); + $36 = $r1 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($36, $S, $points_ring1 + 16 | 0); + $38 = $r1 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($38, $S, $points_ring1 + 24 | 0); + $40 = $r1 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($40, $S, $points_ring1 + 32 | 0); + $42 = $r1 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($42, $S, $points_ring1 + 40 | 0); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r2, $S, $points_ring2); + $44 = $r2 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($44, $S, $points_ring2 + 8 | 0); + $46 = $r2 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($46, $S, $points_ring2 + 16 | 0); + $48 = $r2 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($48, $S, $points_ring2 + 24 | 0); + $50 = $r2 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($50, $S, $points_ring2 + 32 | 0); + $52 = $r2 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($52, $S, $points_ring2 + 40 | 0); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r3, $S, $points_ring3); + $54 = $r3 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($54, $S, $points_ring3 + 8 | 0); + $56 = $r3 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($56, $S, $points_ring3 + 16 | 0); + $58 = $r3 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($58, $S, $points_ring3 + 24 | 0); + $60 = $r3 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($60, $S, $points_ring3 + 32 | 0); + $62 = $r3 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($62, $S, $points_ring3 + 40 | 0); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r4, $S, $points_ring4); + $64 = $r4 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($64, $S, $points_ring4 + 8 | 0); + $66 = $r4 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($66, $S, $points_ring4 + 16 | 0); + $68 = $r4 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($68, $S, $points_ring4 + 24 | 0); + $70 = $r4 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($70, $S, $points_ring4 + 32 | 0); + $72 = $r4 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($72, $S, $points_ring4 + 40 | 0); + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($r5, $S, $points_ring5); + $74 = $r5 + 8 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($74, $S, $points_ring5 + 8 | 0); + $76 = $r5 + 16 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($76, $S, $points_ring5 + 16 | 0); + $78 = $r5 + 24 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($78, $S, $points_ring5 + 24 | 0); + $80 = $r5 + 32 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($80, $S, $points_ring5 + 32 | 0); + $82 = $r5 + 40 | 0; + __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($82, $S, $points_ring5 + 40 | 0); + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring5); + $94 = HEAP32[$octave >> 2] | 0; + $95 = HEAP32[$scale >> 2] | 0; + $96 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r5 >> 2], +HEAPF32[$r5 + 4 >> 2], $94, $95); + HEAPF32[$samples >> 2] = $96; + $100 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$74 >> 2], +HEAPF32[$r5 + 12 >> 2], $94, $95); + HEAPF32[$samples + 4 >> 2] = $100; + $105 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$76 >> 2], +HEAPF32[$r5 + 20 >> 2], $94, $95); + HEAPF32[$samples + 8 >> 2] = $105; + $110 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$78 >> 2], +HEAPF32[$r5 + 28 >> 2], $94, $95); + HEAPF32[$samples + 12 >> 2] = $110; + $115 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$80 >> 2], +HEAPF32[$r5 + 36 >> 2], $94, $95); + HEAPF32[$samples + 16 >> 2] = $115; + $120 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$82 >> 2], +HEAPF32[$r5 + 44 >> 2], $94, $95); + HEAPF32[$samples + 20 >> 2] = $120; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring4); + $125 = HEAP32[$octave >> 2] | 0; + $126 = HEAP32[$scale >> 2] | 0; + $127 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r4 >> 2], +HEAPF32[$r4 + 4 >> 2], $125, $126); + HEAPF32[$samples + 24 >> 2] = $127; + $132 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$64 >> 2], +HEAPF32[$r4 + 12 >> 2], $125, $126); + HEAPF32[$samples + 28 >> 2] = $132; + $137 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$66 >> 2], +HEAPF32[$r4 + 20 >> 2], $125, $126); + HEAPF32[$samples + 32 >> 2] = $137; + $142 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$68 >> 2], +HEAPF32[$r4 + 28 >> 2], $125, $126); + HEAPF32[$samples + 36 >> 2] = $142; + $147 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$70 >> 2], +HEAPF32[$r4 + 36 >> 2], $125, $126); + HEAPF32[$samples + 40 >> 2] = $147; + $152 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$72 >> 2], +HEAPF32[$r4 + 44 >> 2], $125, $126); + HEAPF32[$samples + 44 >> 2] = $152; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring3); + $157 = HEAP32[$octave >> 2] | 0; + $158 = HEAP32[$scale >> 2] | 0; + $159 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r3 >> 2], +HEAPF32[$r3 + 4 >> 2], $157, $158); + HEAPF32[$samples + 48 >> 2] = $159; + $164 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$54 >> 2], +HEAPF32[$r3 + 12 >> 2], $157, $158); + HEAPF32[$samples + 52 >> 2] = $164; + $169 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$56 >> 2], +HEAPF32[$r3 + 20 >> 2], $157, $158); + HEAPF32[$samples + 56 >> 2] = $169; + $174 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$58 >> 2], +HEAPF32[$r3 + 28 >> 2], $157, $158); + HEAPF32[$samples + 60 >> 2] = $174; + $179 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$60 >> 2], +HEAPF32[$r3 + 36 >> 2], $157, $158); + HEAPF32[$samples + 64 >> 2] = $179; + $184 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$62 >> 2], +HEAPF32[$r3 + 44 >> 2], $157, $158); + HEAPF32[$samples + 68 >> 2] = $184; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring2); + $189 = HEAP32[$octave >> 2] | 0; + $190 = HEAP32[$scale >> 2] | 0; + $191 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r2 >> 2], +HEAPF32[$r2 + 4 >> 2], $189, $190); + HEAPF32[$samples + 72 >> 2] = $191; + $196 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$44 >> 2], +HEAPF32[$r2 + 12 >> 2], $189, $190); + HEAPF32[$samples + 76 >> 2] = $196; + $201 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$46 >> 2], +HEAPF32[$r2 + 20 >> 2], $189, $190); + HEAPF32[$samples + 80 >> 2] = $201; + $206 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$48 >> 2], +HEAPF32[$r2 + 28 >> 2], $189, $190); + HEAPF32[$samples + 84 >> 2] = $206; + $211 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$50 >> 2], +HEAPF32[$r2 + 36 >> 2], $189, $190); + HEAPF32[$samples + 88 >> 2] = $211; + $216 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$52 >> 2], +HEAPF32[$r2 + 44 >> 2], $189, $190); + HEAPF32[$samples + 92 >> 2] = $216; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring1); + $221 = HEAP32[$octave >> 2] | 0; + $222 = HEAP32[$scale >> 2] | 0; + $223 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r1 >> 2], +HEAPF32[$r1 + 4 >> 2], $221, $222); + HEAPF32[$samples + 96 >> 2] = $223; + $228 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$34 >> 2], +HEAPF32[$r1 + 12 >> 2], $221, $222); + HEAPF32[$samples + 100 >> 2] = $228; + $233 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$36 >> 2], +HEAPF32[$r1 + 20 >> 2], $221, $222); + HEAPF32[$samples + 104 >> 2] = $233; + $238 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$38 >> 2], +HEAPF32[$r1 + 28 >> 2], $221, $222); + HEAPF32[$samples + 108 >> 2] = $238; + $243 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$40 >> 2], +HEAPF32[$r1 + 36 >> 2], $221, $222); + HEAPF32[$samples + 112 >> 2] = $243; + $248 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$42 >> 2], +HEAPF32[$r1 + 44 >> 2], $221, $222); + HEAPF32[$samples + 116 >> 2] = $248; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_ring0); + $253 = HEAP32[$octave >> 2] | 0; + $254 = HEAP32[$scale >> 2] | 0; + $255 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$r0 >> 2], +HEAPF32[$r0 + 4 >> 2], $253, $254); + HEAPF32[$samples + 120 >> 2] = $255; + $260 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$24 >> 2], +HEAPF32[$r0 + 12 >> 2], $253, $254); + HEAPF32[$samples + 124 >> 2] = $260; + $265 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$26 >> 2], +HEAPF32[$r0 + 20 >> 2], $253, $254); + HEAPF32[$samples + 128 >> 2] = $265; + $270 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$28 >> 2], +HEAPF32[$r0 + 28 >> 2], $253, $254); + HEAPF32[$samples + 132 >> 2] = $270; + $275 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$30 >> 2], +HEAPF32[$r0 + 36 >> 2], $253, $254); + HEAPF32[$samples + 136 >> 2] = $275; + $280 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, +HEAPF32[$32 >> 2], +HEAPF32[$r0 + 44 >> 2], $253, $254); + HEAPF32[$samples + 140 >> 2] = $280; + __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($pyramid, $octave, $scale, $transform_scale$0 * $sigma_center); + $284 = +__ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, $22, $23, HEAP32[$octave >> 2] | 0, HEAP32[$scale >> 2] | 0); + HEAPF32[$samples + 144 >> 2] = $284; + STACKTOP = sp; + return 1; +} + +function _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; + do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($50 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $50; + $53 = ($50 << 16 >> 16) * 7 | 0; + $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; + $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; + $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $74 = $73 << 16 >> 16; + $75 = $73 << 16 >> 16 > 0; + if ($69 << 16 >> 16 <= 0) { + if ($75) { + HEAP16[$pnt2$368 >> 1] = $73; + $175 = $74 * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($195 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $195; + $198 = ($195 << 16 >> 16) * 7 | 0; + $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; + $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; + $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; + HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; + $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; + if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$212 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $215 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $215; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; + $220 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $215; + break; + } + } + if ($75) { + $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; + if (($78 | 0) > ($81 | 0)) { + HEAP16[$pnt2$368 >> 1] = $81; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $98 = $81; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $98 = $81; + } else { + HEAP16[$pnt2$368 >> 1] = $78; + if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $98 = $78; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $98 = $78; + } + $100 = ($98 << 16 >> 16) * 7 | 0; + $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; + $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; + $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; + HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($116 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $69; + $156 = $70 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; + $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($121 | 0) > ($124 | 0)) { + HEAP16[$pnt2$368 >> 1] = $124; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $141 = $124; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $141 = $124; + } else { + HEAP16[$pnt2$368 >> 1] = $121; + if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $141 = $121; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $141 = $121; + } + $143 = ($141 << 16 >> 16) * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $235 = $pnt$169 + 4 | 0; + $236 = $pnt2$368 + 2 | 0; + $237 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $237; + $pnt$1$lcssa = $235; + $pnt2$3$lcssa = $236; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $237; + $pnt$169 = $235; + $pnt2$368 = $236; + $wk_max$160 = $wk_max$2; } - $565 = $db + 4 | 0; - $566 = HEAP32[$565 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($566 | 0)) { - $$0 = $first; - break L1; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $244 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $246 = HEAP32[$wk$444 >> 2] | 0; + if (($246 | 0) == ($i$342 | 0)) { + $252 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $252; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $256 = $labelInfo + 8 | 0; + $257 = $j$1$lcssa + -1 | 0; + HEAP32[$256 >> 2] = $257; + if (!$257) $$0 = 0; else { + _memset($244 | 0, 0, $257 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $264 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $279 = $i$538 * 7 | 0; + $282 = $labelInfo + 12 + ($278 << 2) | 0; + HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); + $289 = $278 << 1; + $290 = $labelInfo + 655376 + ($289 << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); + $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; + HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); + $301 = $278 << 2; + $302 = $labelInfo + 131084 + ($301 << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; + $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; + if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; + $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; + $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; + if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$256 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $331 = $labelInfo + 12 + ($i$637 << 2) | 0; + $334 = $i$637 << 1; + $335 = $labelInfo + 655376 + ($334 << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); + $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; + HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; + do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($50 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $50; + $53 = ($50 << 16 >> 16) * 7 | 0; + $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; + $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; + $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $74 = $73 << 16 >> 16; + $75 = $73 << 16 >> 16 > 0; + if ($69 << 16 >> 16 <= 0) { + if ($75) { + HEAP16[$pnt2$368 >> 1] = $73; + $175 = $74 * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($195 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $195; + $198 = ($195 << 16 >> 16) * 7 | 0; + $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; + $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; + $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; + HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; + $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; + if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$212 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $215 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $215; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; + $220 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $215; + break; + } + } + if ($75) { + $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; + if (($78 | 0) > ($81 | 0)) { + HEAP16[$pnt2$368 >> 1] = $81; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $98 = $81; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $98 = $81; + } else { + HEAP16[$pnt2$368 >> 1] = $78; + if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $98 = $78; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $98 = $78; + } + $100 = ($98 << 16 >> 16) * 7 | 0; + $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; + $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; + $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; + HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($116 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $69; + $156 = $70 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; + $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($121 | 0) > ($124 | 0)) { + HEAP16[$pnt2$368 >> 1] = $124; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $141 = $124; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $141 = $124; + } else { + HEAP16[$pnt2$368 >> 1] = $121; + if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $141 = $121; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $141 = $121; + } + $143 = ($141 << 16 >> 16) * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $235 = $pnt$169 + 4 | 0; + $236 = $pnt2$368 + 2 | 0; + $237 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $237; + $pnt$1$lcssa = $235; + $pnt2$3$lcssa = $236; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $237; + $pnt$169 = $235; + $pnt2$368 = $236; + $wk_max$160 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $244 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $246 = HEAP32[$wk$444 >> 2] | 0; + if (($246 | 0) == ($i$342 | 0)) { + $252 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $252; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $256 = $labelInfo + 8 | 0; + $257 = $j$1$lcssa + -1 | 0; + HEAP32[$256 >> 2] = $257; + if (!$257) $$0 = 0; else { + _memset($244 | 0, 0, $257 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $264 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $279 = $i$538 * 7 | 0; + $282 = $labelInfo + 12 + ($278 << 2) | 0; + HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); + $289 = $278 << 1; + $290 = $labelInfo + 655376 + ($289 << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); + $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; + HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); + $301 = $278 << 2; + $302 = $labelInfo + 131084 + ($301 << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; + $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; + if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; + $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; + $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; + if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$256 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $331 = $labelInfo + 12 + ($i$637 << 2) | 0; + $334 = $i$637 << 1; + $335 = $labelInfo + 655376 + ($334 << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); + $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; + HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; + do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($50 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $50; + $53 = ($50 << 16 >> 16) * 7 | 0; + $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; + $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; + $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $74 = $73 << 16 >> 16; + $75 = $73 << 16 >> 16 > 0; + if ($69 << 16 >> 16 <= 0) { + if ($75) { + HEAP16[$pnt2$368 >> 1] = $73; + $175 = $74 * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($195 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $195; + $198 = ($195 << 16 >> 16) * 7 | 0; + $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; + $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; + $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; + HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; + $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; + if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$212 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $215 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $215; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; + $220 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $215; + break; + } + } + if ($75) { + $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; + if (($78 | 0) > ($81 | 0)) { + HEAP16[$pnt2$368 >> 1] = $81; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $98 = $81; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $98 = $81; + } else { + HEAP16[$pnt2$368 >> 1] = $78; + if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $98 = $78; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $98 = $78; + } + $100 = ($98 << 16 >> 16) * 7 | 0; + $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; + $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; + $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; + HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($116 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $69; + $156 = $70 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; + $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($121 | 0) > ($124 | 0)) { + HEAP16[$pnt2$368 >> 1] = $124; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $141 = $124; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $141 = $124; + } else { + HEAP16[$pnt2$368 >> 1] = $121; + if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $141 = $121; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $141 = $121; + } + $143 = ($141 << 16 >> 16) * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $235 = $pnt$169 + 4 | 0; + $236 = $pnt2$368 + 2 | 0; + $237 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $237; + $pnt$1$lcssa = $235; + $pnt2$3$lcssa = $236; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $237; + $pnt$169 = $235; + $pnt2$368 = $236; + $wk_max$160 = $wk_max$2; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($566 + -24 | 0, 12705) | 0; - $569 = $db + 16 | 0; - $571 = (HEAP32[$565 >> 2] | 0) + -24 | 0; - HEAP32[$13 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $571, $13); - $574 = $db + 20 | 0; - $575 = HEAP32[$574 >> 2] | 0; - $577 = HEAP32[$db + 24 >> 2] | 0; - if ($575 >>> 0 < $577 >>> 0) { - HEAP32[$575 + 12 >> 2] = HEAP32[$12 + 12 >> 2]; - HEAP32[$575 >> 2] = HEAP32[$12 >> 2]; - $584 = $12 + 4 | 0; - HEAP32[$575 + 4 >> 2] = HEAP32[$584 >> 2]; - $586 = $12 + 8 | 0; - HEAP32[$575 + 8 >> 2] = HEAP32[$586 >> 2]; - HEAP32[$586 >> 2] = 0; - HEAP32[$584 >> 2] = 0; - HEAP32[$12 >> 2] = 0; - HEAP32[$574 >> 2] = (HEAP32[$574 >> 2] | 0) + 16; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $244 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $246 = HEAP32[$wk$444 >> 2] | 0; + if (($246 | 0) == ($i$342 | 0)) { + $252 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $252; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $256 = $labelInfo + 8 | 0; + $257 = $j$1$lcssa + -1 | 0; + HEAP32[$256 >> 2] = $257; + if (!$257) $$0 = 0; else { + _memset($244 | 0, 0, $257 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $264 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $279 = $i$538 * 7 | 0; + $282 = $labelInfo + 12 + ($278 << 2) | 0; + HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); + $289 = $278 << 1; + $290 = $labelInfo + 655376 + ($289 << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); + $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; + HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); + $301 = $278 << 2; + $302 = $labelInfo + 131084 + ($301 << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; + $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; + if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; + $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; + $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; + if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$256 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $331 = $labelInfo + 12 + ($i$637 << 2) | 0; + $334 = $i$637 << 1; + $335 = $labelInfo + 655376 + ($334 << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); + $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; + HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; + do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; } else { - $594 = HEAP32[$569 >> 2] | 0; - $595 = $575 - $594 | 0; - $596 = $595 >> 4; - $597 = $596 + 1 | 0; - if (($595 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($569); - $600 = $577 - $594 | 0; - if ($600 >> 4 >>> 0 < 1073741823) { - $603 = $600 >> 3; - $$0$i$i$i61 = $603 >>> 0 < $597 >>> 0 ? $597 : $603; - } else $$0$i$i$i61 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i61, $596, $db + 28 | 0); - $606 = $__v$i$i$i + 8 | 0; - $607 = HEAP32[$606 >> 2] | 0; - HEAP32[$607 + 12 >> 2] = HEAP32[$12 + 12 >> 2]; - HEAP32[$607 >> 2] = HEAP32[$12 >> 2]; - $613 = $12 + 4 | 0; - HEAP32[$607 + 4 >> 2] = HEAP32[$613 >> 2]; - $615 = $12 + 8 | 0; - HEAP32[$607 + 8 >> 2] = HEAP32[$615 >> 2]; - HEAP32[$615 >> 2] = 0; - HEAP32[$613 >> 2] = 0; - HEAP32[$12 >> 2] = 0; - HEAP32[$606 >> 2] = $607 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($569, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12); - $$0 = $562; - break L1; - break; - } - case 70: - { - do if ($197 << 24 >> 24 == 70) { - $620 = $first + 1 | 0; - if (($620 | 0) != ($last | 0)) { - if ((HEAP8[$620 >> 0] | 0) == 89) { - $624 = $first + 2 | 0; - if (($624 | 0) == ($last | 0)) break; else $t$0$i = $624; - } else $t$0$i = $620; - $626 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$0$i, $last, $db) | 0; - if (($626 | 0) != ($t$0$i | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, 12714, 1); - $628 = $db + 4 | 0; - $629 = $__v$i$i$i + 4 | 0; - $630 = $0 + 8 | 0; - $631 = $0 + 1 | 0; - $632 = $0 + 4 | 0; - L191 : do if (($626 | 0) == ($last | 0)) label = 144; else { - $ref_qual$0$i$ph521 = 0; - $t$1$i$ph520 = $626; - L192 : while (1) { - $t$1$i518 = $t$1$i$ph520; - L194 : while (1) { - switch (HEAP8[$t$1$i518 >> 0] | 0) { - case 69: - { - $ref_qual$0$i$ph521$lcssa = $ref_qual$0$i$ph521; - $t$1$i518$lcssa = $t$1$i518; - break L192; - break; - } - case 118: - { - $t$1$i$be = $t$1$i518 + 1 | 0; - break; - } - case 82: - { - $644 = $t$1$i518 + 1 | 0; - if (($644 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$644 >> 0] | 0) == 69) { - $ref_qual$0$i$ph$ph = 1; - $t$1$i$ph$ph = $644; - break L194; - } else label = 154; - break; - } - case 79: - { - $648 = $t$1$i518 + 1 | 0; - if (($648 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$648 >> 0] | 0) == 69) { - $ref_qual$0$i$ph$ph = 2; - $t$1$i$ph$ph = $648; - break L194; - } else label = 154; - break; - } - default: - label = 154; - } - if ((label | 0) == 154) { - label = 0; - $657 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $658 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1$i518, $last, $db) | 0; - $664 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($658 | 0) == ($t$1$i518 | 0) | ($658 | 0) == ($last | 0)) break L191; - if ($657 >>> 0 < $664 >>> 0) { - $k$0$i515 = $657; - do { - $669 = HEAP8[$__v$i$i$i >> 0] | 0; - if ((($669 & 1) == 0 ? ($669 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12716) | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k$0$i515 * 24 | 0) | 0); - $679 = HEAP8[$0 >> 0] | 0; - $681 = ($679 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($__v$i$i$i, $681 ? $631 : HEAP32[$630 >> 2] | 0, $681 ? ($679 & 255) >>> 1 : HEAP32[$632 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $k$0$i515 = $k$0$i515 + 1 | 0; - } while ($k$0$i515 >>> 0 < $664 >>> 0); - } - if ($657 >>> 0 < $664 >>> 0) { - $k2$0$i516 = $657; - do { - $690 = HEAP32[$628 >> 2] | 0; - $691 = $690 + -24 | 0; - $693 = $690; - do { - $692 = $693 + -24 | 0; - HEAP32[$628 >> 2] = $692; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($692); - $693 = HEAP32[$628 >> 2] | 0; - } while (($693 | 0) != ($691 | 0)); - $k2$0$i516 = $k2$0$i516 + 1 | 0; - } while ($k2$0$i516 >>> 0 < $664 >>> 0); - $t$1$i$be = $658; - } else $t$1$i$be = $658; - } - if (($t$1$i$be | 0) == ($last | 0)) { - label = 144; - break L191; - } else $t$1$i518 = $t$1$i$be; - } - if (($t$1$i$ph$ph | 0) == ($last | 0)) { - label = 144; - break L191; - } else { - $ref_qual$0$i$ph521 = $ref_qual$0$i$ph$ph; - $t$1$i$ph520 = $t$1$i$ph$ph; - } - } - $641 = $t$1$i518$lcssa + 1 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12619) | 0; - switch ($ref_qual$0$i$ph521$lcssa | 0) { - case 1: - { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12719) | 0; - break; - } - case 2: - { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12722) | 0; + HEAP8[$dpnt$167 >> 0] = -1; + $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($50 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $50; + $53 = ($50 << 16 >> 16) * 7 | 0; + $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; + $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; + $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; + HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $74 = $73 << 16 >> 16; + $75 = $73 << 16 >> 16 > 0; + if ($69 << 16 >> 16 <= 0) { + if ($75) { + HEAP16[$pnt2$368 >> 1] = $73; + $175 = $74 * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($195 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $195; + $198 = ($195 << 16 >> 16) * 7 | 0; + $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; + $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; + $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; + HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; + $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; + if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$212 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $215 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $215; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; + $220 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $215; + break; + } + } + if ($75) { + $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; + if (($78 | 0) > ($81 | 0)) { + HEAP16[$pnt2$368 >> 1] = $81; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $98 = $81; break; - } - default: - {} + } else $wk$057 = $wk$057 + 4 | 0; } - $698 = HEAP32[$628 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) != ($698 | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($698 + -24 | 0, 12726) | 0; - $703 = HEAP8[$__v$i$i$i >> 0] | 0; - $705 = ($703 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj((HEAP32[$628 >> 2] | 0) + -12 | 0, 0, $705 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, $705 ? ($703 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); - if (($641 | 0) == ($first | 0)) { - $$0 = $first; - break L1; - } - $716 = HEAP32[$628 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($716 | 0)) { - $$0 = $first; - break L1; - } - $718 = $db + 16 | 0; - HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $716 + -24 | 0, $15); - $722 = $db + 20 | 0; - $723 = HEAP32[$722 >> 2] | 0; - $725 = HEAP32[$db + 24 >> 2] | 0; - if ($723 >>> 0 < $725 >>> 0) { - HEAP32[$723 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; - HEAP32[$723 >> 2] = HEAP32[$14 >> 2]; - $732 = $14 + 4 | 0; - HEAP32[$723 + 4 >> 2] = HEAP32[$732 >> 2]; - $734 = $14 + 8 | 0; - HEAP32[$723 + 8 >> 2] = HEAP32[$734 >> 2]; - HEAP32[$734 >> 2] = 0; - HEAP32[$732 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$722 >> 2] = (HEAP32[$722 >> 2] | 0) + 16; - } else { - $742 = HEAP32[$718 >> 2] | 0; - $743 = $723 - $742 | 0; - $744 = $743 >> 4; - $745 = $744 + 1 | 0; - if (($743 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($718); - $748 = $725 - $742 | 0; - if ($748 >> 4 >>> 0 < 1073741823) { - $751 = $748 >> 3; - $$0$i$i$i66 = $751 >>> 0 < $745 >>> 0 ? $745 : $751; - } else $$0$i$i$i66 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i66, $744, $db + 28 | 0); - $754 = $__v$i$i$i + 8 | 0; - $755 = HEAP32[$754 >> 2] | 0; - HEAP32[$755 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; - HEAP32[$755 >> 2] = HEAP32[$14 >> 2]; - $761 = $14 + 4 | 0; - HEAP32[$755 + 4 >> 2] = HEAP32[$761 >> 2]; - $763 = $14 + 8 | 0; - HEAP32[$755 + 8 >> 2] = HEAP32[$763 >> 2]; - HEAP32[$763 >> 2] = 0; - HEAP32[$761 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$754 >> 2] = $755 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($718, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14); - $$0 = $641; - break L1; + } else $98 = $81; + } else { + HEAP16[$pnt2$368 >> 1] = $78; + if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $98 = $78; + break; + } else $wk$154 = $wk$154 + 4 | 0; } - } while (0); - if ((label | 0) == 144) { - $635 = HEAP32[$628 >> 2] | 0; - $636 = $635 + -24 | 0; - $638 = $635; - do { - $637 = $638 + -24 | 0; - HEAP32[$628 >> 2] = $637; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($637); - $638 = HEAP32[$628 >> 2] | 0; - } while (($638 | 0) != ($636 | 0)); - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i); + } else $98 = $78; } + $100 = ($98 << 16 >> 16) * 7 | 0; + $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; + $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; + $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; + HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($116 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $69; + $156 = $70 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; + $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($121 | 0) > ($124 | 0)) { + HEAP16[$pnt2$368 >> 1] = $124; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $141 = $124; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $141 = $124; + } else { + HEAP16[$pnt2$368 >> 1] = $121; + if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $141 = $121; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $141 = $121; } + $143 = ($141 << 16 >> 16) * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; } while (0); - $$0 = $first; - break L1; - break; - } - case 71: - { - $767 = $first + 1 | 0; - $768 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($767, $last, $db) | 0; - if (($768 | 0) == ($767 | 0)) { - $$0 = $first; - break L1; - } - $771 = $db + 4 | 0; - $772 = HEAP32[$771 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($772 | 0)) { - $$0 = $first; - break L1; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($772 + -24 | 0, 12728) | 0; - $775 = $db + 16 | 0; - $777 = (HEAP32[$771 >> 2] | 0) + -24 | 0; - HEAP32[$17 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($16, $777, $17); - $780 = $db + 20 | 0; - $781 = HEAP32[$780 >> 2] | 0; - $783 = HEAP32[$db + 24 >> 2] | 0; - if ($781 >>> 0 < $783 >>> 0) { - HEAP32[$781 + 12 >> 2] = HEAP32[$16 + 12 >> 2]; - HEAP32[$781 >> 2] = HEAP32[$16 >> 2]; - $790 = $16 + 4 | 0; - HEAP32[$781 + 4 >> 2] = HEAP32[$790 >> 2]; - $792 = $16 + 8 | 0; - HEAP32[$781 + 8 >> 2] = HEAP32[$792 >> 2]; - HEAP32[$792 >> 2] = 0; - HEAP32[$790 >> 2] = 0; - HEAP32[$16 >> 2] = 0; - HEAP32[$780 >> 2] = (HEAP32[$780 >> 2] | 0) + 16; + $i$265 = $i$265 + 1 | 0; + $235 = $pnt$169 + 4 | 0; + $236 = $pnt2$368 + 2 | 0; + $237 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $237; + $pnt$1$lcssa = $235; + $pnt2$3$lcssa = $236; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $800 = HEAP32[$775 >> 2] | 0; - $801 = $781 - $800 | 0; - $802 = $801 >> 4; - $803 = $802 + 1 | 0; - if (($801 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($775); - $806 = $783 - $800 | 0; - if ($806 >> 4 >>> 0 < 1073741823) { - $809 = $806 >> 3; - $$0$i$i$i71 = $809 >>> 0 < $803 >>> 0 ? $803 : $809; - } else $$0$i$i$i71 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i71, $802, $db + 28 | 0); - $812 = $__v$i$i$i + 8 | 0; - $813 = HEAP32[$812 >> 2] | 0; - HEAP32[$813 + 12 >> 2] = HEAP32[$16 + 12 >> 2]; - HEAP32[$813 >> 2] = HEAP32[$16 >> 2]; - $819 = $16 + 4 | 0; - HEAP32[$813 + 4 >> 2] = HEAP32[$819 >> 2]; - $821 = $16 + 8 | 0; - HEAP32[$813 + 8 >> 2] = HEAP32[$821 >> 2]; - HEAP32[$821 >> 2] = 0; - HEAP32[$819 >> 2] = 0; - HEAP32[$16 >> 2] = 0; - HEAP32[$812 >> 2] = $813 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($775, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + $dpnt$167 = $237; + $pnt$169 = $235; + $pnt2$368 = $236; + $wk_max$160 = $wk_max$2; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($16); - $$0 = $768; - break L1; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $244 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $246 = HEAP32[$wk$444 >> 2] | 0; + if (($246 | 0) == ($i$342 | 0)) { + $252 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $252; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 77: - { - if ($197 << 24 >> 24 == 77) { - $826 = $first + 1 | 0; - $827 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($826, $last, $db) | 0; - if (($827 | 0) == ($826 | 0)) $$08$i = $first; else { - $829 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($827, $last, $db) | 0; - if (($829 | 0) == ($827 | 0)) $$08$i = $first; else { - $831 = $db + 4 | 0; - $832 = HEAP32[$831 >> 2] | 0; - if ((($832 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$08$i = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($__v$i$i$i, $832 + -24 | 0); - $840 = HEAP32[$831 >> 2] | 0; - $841 = $840 + -24 | 0; - $843 = $840; - do { - $842 = $843 + -24 | 0; - HEAP32[$831 >> 2] = $842; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($842); - $843 = HEAP32[$831 >> 2] | 0; - } while (($843 | 0) != ($841 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($0, $840 + -48 | 0); - $846 = $__v$i$i$i + 12 | 0; - $856 = HEAP32[$831 >> 2] | 0; - $857 = $856 + -24 | 0; - if ((HEAP8[((HEAP8[$846 >> 0] & 1) == 0 ? $846 + 1 | 0 : HEAP32[$__v$i$i$i + 20 >> 2] | 0) >> 0] | 0) == 40) { - $858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12714) | 0; - HEAP32[$3 >> 2] = HEAP32[$858 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$858 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$858 + 8 >> 2]; - HEAP32[$858 >> 2] = 0; - HEAP32[$858 + 4 >> 2] = 0; - HEAP32[$858 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $0); - $861 = HEAP8[$4 >> 0] | 0; - $863 = ($861 & 1) == 0; - $873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($3, $863 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0; - HEAP32[$2 >> 2] = HEAP32[$873 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$873 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$873 + 8 >> 2]; - HEAP32[$873 >> 2] = 0; - HEAP32[$873 + 4 >> 2] = 0; - HEAP32[$873 + 8 >> 2] = 0; - $876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12739) | 0; - HEAP32[$1 >> 2] = HEAP32[$876 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$876 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$876 + 8 >> 2]; - HEAP32[$876 >> 2] = 0; - HEAP32[$876 + 4 >> 2] = 0; - HEAP32[$876 + 8 >> 2] = 0; - do if (!(HEAP8[$857 >> 0] & 1)) { - HEAP8[$857 + 1 >> 0] = 0; - HEAP8[$857 >> 0] = 0; - } else { - $883 = $856 + -16 | 0; - HEAP8[HEAP32[$883 >> 2] >> 0] = 0; - $885 = $856 + -20 | 0; - HEAP32[$885 >> 2] = 0; - $$pre$i$i$i$i = HEAP8[$857 >> 0] | 0; - if (!($$pre$i$i$i$i & 1)) { - $892 = $$pre$i$i$i$i; - $901 = 10; - } else { - $888 = HEAP32[$857 >> 2] | 0; - $892 = $888 & 255; - $901 = ($888 & -2) + -1 | 0; - } - if (!($892 & 1)) { - $895 = ($892 & 255) >>> 1; - if (($892 & 255) < 22) { - $2569 = 1; - $900 = 10; - $920 = $895; - } else { - $2569 = 1; - $900 = ($895 + 16 & 240) + -1 | 0; - $920 = $895; - } - } else { - $2569 = 0; - $900 = 10; - $920 = 0; - } - if (($900 | 0) != ($901 | 0)) { - if (($900 | 0) == 10) { - $907 = $857 + 1 | 0; - $908 = HEAP32[$883 >> 2] | 0; - if ($2569) { - _memcpy($907 | 0, $908 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0; - _free($908); - } else { - HEAP8[$907 >> 0] = HEAP8[$908 >> 0] | 0; - _free($908); - } - HEAP8[$857 >> 0] = $920 << 1; - break; - } - $904 = $900 + 1 | 0; - $905 = _malloc($904) | 0; - if (!($900 >>> 0 <= $901 >>> 0 & ($905 | 0) == 0)) { - if ($2569) _memcpy($905 | 0, $857 + 1 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0; else { - $917 = HEAP32[$883 >> 2] | 0; - HEAP8[$905 >> 0] = HEAP8[$917 >> 0] | 0; - _free($917); - } - HEAP32[$857 >> 2] = $904 | 1; - HEAP32[$885 >> 2] = $920; - HEAP32[$883 >> 2] = $905; - } - } - } while (0); - HEAP32[$857 >> 2] = HEAP32[$1 >> 2]; - HEAP32[$857 + 4 >> 2] = HEAP32[$1 + 4 >> 2]; - HEAP32[$857 + 8 >> 2] = HEAP32[$1 + 8 >> 2]; - HEAP32[$1 >> 2] = 0; - HEAP32[$1 + 4 >> 2] = 0; - HEAP32[$1 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $925 = HEAP32[$831 >> 2] | 0; - $926 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($846, 0, 12619) | 0; - HEAP32[$5 >> 2] = HEAP32[$926 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$926 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$926 + 8 >> 2]; - HEAP32[$926 >> 2] = 0; - HEAP32[$926 + 4 >> 2] = 0; - HEAP32[$926 + 8 >> 2] = 0; - $929 = $925 + -12 | 0; - do if (!(HEAP8[$929 >> 0] & 1)) { - HEAP8[$929 + 1 >> 0] = 0; - HEAP8[$929 >> 0] = 0; - } else { - $934 = $925 + -4 | 0; - HEAP8[HEAP32[$934 >> 2] >> 0] = 0; - $936 = $925 + -8 | 0; - HEAP32[$936 >> 2] = 0; - $$pre$i$i$i21$i = HEAP8[$929 >> 0] | 0; - if (!($$pre$i$i$i21$i & 1)) { - $943 = $$pre$i$i$i21$i; - $952 = 10; - } else { - $939 = HEAP32[$929 >> 2] | 0; - $943 = $939 & 255; - $952 = ($939 & -2) + -1 | 0; - } - if (!($943 & 1)) { - $946 = ($943 & 255) >>> 1; - if (($943 & 255) < 22) { - $2570 = 1; - $951 = 10; - $971 = $946; - } else { - $2570 = 1; - $951 = ($946 + 16 & 240) + -1 | 0; - $971 = $946; - } - } else { - $2570 = 0; - $951 = 10; - $971 = 0; - } - if (($951 | 0) != ($952 | 0)) { - if (($951 | 0) == 10) { - $958 = $929 + 1 | 0; - $959 = HEAP32[$934 >> 2] | 0; - if ($2570) { - _memcpy($958 | 0, $959 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0; - _free($959); - } else { - HEAP8[$958 >> 0] = HEAP8[$959 >> 0] | 0; - _free($959); - } - HEAP8[$929 >> 0] = $971 << 1; - break; - } - $955 = $951 + 1 | 0; - $956 = _malloc($955) | 0; - if (!($951 >>> 0 <= $952 >>> 0 & ($956 | 0) == 0)) { - if ($2570) _memcpy($956 | 0, $929 + 1 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0; else { - $968 = HEAP32[$934 >> 2] | 0; - HEAP8[$956 >> 0] = HEAP8[$968 >> 0] | 0; - _free($968); - } - HEAP32[$929 >> 2] = $955 | 1; - HEAP32[$936 >> 2] = $971; - HEAP32[$934 >> 2] = $956; - } - } - } while (0); - HEAP32[$929 >> 2] = HEAP32[$5 >> 2]; - HEAP32[$929 + 4 >> 2] = HEAP32[$5 + 4 >> 2]; - HEAP32[$929 + 8 >> 2] = HEAP32[$5 + 8 >> 2]; - HEAP32[$5 >> 2] = 0; - HEAP32[$5 + 4 >> 2] = 0; - HEAP32[$5 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - } else { - $976 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12726) | 0; - HEAP32[$7 >> 2] = HEAP32[$976 >> 2]; - HEAP32[$7 + 4 >> 2] = HEAP32[$976 + 4 >> 2]; - HEAP32[$7 + 8 >> 2] = HEAP32[$976 + 8 >> 2]; - HEAP32[$976 >> 2] = 0; - HEAP32[$976 + 4 >> 2] = 0; - HEAP32[$976 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($8, $0); - $979 = HEAP8[$8 >> 0] | 0; - $981 = ($979 & 1) == 0; - $991 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $981 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $981 ? ($979 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0; - HEAP32[$num1$i >> 2] = HEAP32[$991 >> 2]; - HEAP32[$num1$i + 4 >> 2] = HEAP32[$991 + 4 >> 2]; - HEAP32[$num1$i + 8 >> 2] = HEAP32[$991 + 8 >> 2]; - HEAP32[$991 >> 2] = 0; - HEAP32[$991 + 4 >> 2] = 0; - HEAP32[$991 + 8 >> 2] = 0; - $994 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($num1$i, 12739) | 0; - HEAP32[$6 >> 2] = HEAP32[$994 >> 2]; - HEAP32[$6 + 4 >> 2] = HEAP32[$994 + 4 >> 2]; - HEAP32[$6 + 8 >> 2] = HEAP32[$994 + 8 >> 2]; - HEAP32[$994 >> 2] = 0; - HEAP32[$994 + 4 >> 2] = 0; - HEAP32[$994 + 8 >> 2] = 0; - do if (!(HEAP8[$857 >> 0] & 1)) { - HEAP8[$857 + 1 >> 0] = 0; - HEAP8[$857 >> 0] = 0; - } else { - $1001 = $856 + -16 | 0; - HEAP8[HEAP32[$1001 >> 2] >> 0] = 0; - $1003 = $856 + -20 | 0; - HEAP32[$1003 >> 2] = 0; - $$pre$i$i$i52$i = HEAP8[$857 >> 0] | 0; - if (!($$pre$i$i$i52$i & 1)) { - $1010 = $$pre$i$i$i52$i; - $1019 = 10; - } else { - $1006 = HEAP32[$857 >> 2] | 0; - $1010 = $1006 & 255; - $1019 = ($1006 & -2) + -1 | 0; - } - if (!($1010 & 1)) { - $1013 = ($1010 & 255) >>> 1; - if (($1010 & 255) < 22) { - $1018 = 10; - $1038 = $1013; - $2571 = 1; - } else { - $1018 = ($1013 + 16 & 240) + -1 | 0; - $1038 = $1013; - $2571 = 1; - } - } else { - $1018 = 10; - $1038 = 0; - $2571 = 0; - } - if (($1018 | 0) != ($1019 | 0)) { - if (($1018 | 0) == 10) { - $1025 = $857 + 1 | 0; - $1026 = HEAP32[$1001 >> 2] | 0; - if ($2571) { - _memcpy($1025 | 0, $1026 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0; - _free($1026); - } else { - HEAP8[$1025 >> 0] = HEAP8[$1026 >> 0] | 0; - _free($1026); - } - HEAP8[$857 >> 0] = $1038 << 1; - break; - } - $1022 = $1018 + 1 | 0; - $1023 = _malloc($1022) | 0; - if (!($1018 >>> 0 <= $1019 >>> 0 & ($1023 | 0) == 0)) { - if ($2571) _memcpy($1023 | 0, $857 + 1 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0; else { - $1035 = HEAP32[$1001 >> 2] | 0; - HEAP8[$1023 >> 0] = HEAP8[$1035 >> 0] | 0; - _free($1035); - } - HEAP32[$857 >> 2] = $1022 | 1; - HEAP32[$1003 >> 2] = $1038; - HEAP32[$1001 >> 2] = $1023; - } - } - } while (0); - HEAP32[$857 >> 2] = HEAP32[$6 >> 2]; - HEAP32[$857 + 4 >> 2] = HEAP32[$6 + 4 >> 2]; - HEAP32[$857 + 8 >> 2] = HEAP32[$6 + 8 >> 2]; - HEAP32[$6 >> 2] = 0; - HEAP32[$6 + 4 >> 2] = 0; - HEAP32[$6 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - $1043 = HEAP32[$831 >> 2] | 0; - $1044 = $1043 + -12 | 0; - do if (!(HEAP8[$1044 >> 0] & 1)) { - HEAP8[$1044 + 1 >> 0] = 0; - HEAP8[$1044 >> 0] = 0; - } else { - $1049 = $1043 + -4 | 0; - HEAP8[HEAP32[$1049 >> 2] >> 0] = 0; - $1051 = $1043 + -8 | 0; - HEAP32[$1051 >> 2] = 0; - $$pre$i$i$i71$i = HEAP8[$1044 >> 0] | 0; - if (!($$pre$i$i$i71$i & 1)) { - $1058 = $$pre$i$i$i71$i; - $1067 = 10; - } else { - $1054 = HEAP32[$1044 >> 2] | 0; - $1058 = $1054 & 255; - $1067 = ($1054 & -2) + -1 | 0; - } - if (!($1058 & 1)) { - $1061 = ($1058 & 255) >>> 1; - if (($1058 & 255) < 22) { - $1066 = 10; - $1086 = $1061; - $2572 = 1; - } else { - $1066 = ($1061 + 16 & 240) + -1 | 0; - $1086 = $1061; - $2572 = 1; - } - } else { - $1066 = 10; - $1086 = 0; - $2572 = 0; - } - if (($1066 | 0) != ($1067 | 0)) { - if (($1066 | 0) == 10) { - $1073 = $1044 + 1 | 0; - $1074 = HEAP32[$1049 >> 2] | 0; - if ($2572) { - _memcpy($1073 | 0, $1074 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0; - _free($1074); - } else { - HEAP8[$1073 >> 0] = HEAP8[$1074 >> 0] | 0; - _free($1074); - } - HEAP8[$1044 >> 0] = $1086 << 1; - break; - } - $1070 = $1066 + 1 | 0; - $1071 = _malloc($1070) | 0; - if (!($1066 >>> 0 <= $1067 >>> 0 & ($1071 | 0) == 0)) { - if ($2572) _memcpy($1071 | 0, $1044 + 1 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0; else { - $1083 = HEAP32[$1049 >> 2] | 0; - HEAP8[$1071 >> 0] = HEAP8[$1083 >> 0] | 0; - _free($1083); - } - HEAP32[$1044 >> 2] = $1070 | 1; - HEAP32[$1051 >> 2] = $1086; - HEAP32[$1049 >> 2] = $1071; - } - } - } while (0); - HEAP32[$1044 >> 2] = HEAP32[$846 >> 2]; - HEAP32[$1044 + 4 >> 2] = HEAP32[$846 + 4 >> 2]; - HEAP32[$1044 + 8 >> 2] = HEAP32[$846 + 8 >> 2]; - HEAP32[$846 >> 2] = 0; - HEAP32[$846 + 4 >> 2] = 0; - HEAP32[$846 + 8 >> 2] = 0; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($__v$i$i$i); - $$08$i = $829; + } + } + $256 = $labelInfo + 8 | 0; + $257 = $j$1$lcssa + -1 | 0; + HEAP32[$256 >> 2] = $257; + if (!$257) $$0 = 0; else { + _memset($244 | 0, 0, $257 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $264 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $279 = $i$538 * 7 | 0; + $282 = $labelInfo + 12 + ($278 << 2) | 0; + HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); + $289 = $278 << 1; + $290 = $labelInfo + 655376 + ($289 << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); + $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; + HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); + $301 = $278 << 2; + $302 = $labelInfo + 131084 + ($301 << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; + $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; + if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; + $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; + $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; + if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$256 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $331 = $labelInfo + 12 + ($i$637 << 2) | 0; + $334 = $i$637 << 1; + $335 = $labelInfo + 655376 + ($334 << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); + $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; + HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$368 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $191 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } + HEAP32[$208 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $211 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $211; + break; } } - } else $$08$i = $first; - if (($$08$i | 0) == ($first | 0)) { - $$0 = $first; - break L1; - } - $1094 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1094 | 0)) { - $$0 = $first; - break L1; - } - $1096 = $db + 16 | 0; - HEAP32[$19 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($18, $1094 + -24 | 0, $19); - $1100 = $db + 20 | 0; - $1101 = HEAP32[$1100 >> 2] | 0; - $1103 = HEAP32[$db + 24 >> 2] | 0; - if ($1101 >>> 0 < $1103 >>> 0) { - HEAP32[$1101 + 12 >> 2] = HEAP32[$18 + 12 >> 2]; - HEAP32[$1101 >> 2] = HEAP32[$18 >> 2]; - $1110 = $18 + 4 | 0; - HEAP32[$1101 + 4 >> 2] = HEAP32[$1110 >> 2]; - $1112 = $18 + 8 | 0; - HEAP32[$1101 + 8 >> 2] = HEAP32[$1112 >> 2]; - HEAP32[$1112 >> 2] = 0; - HEAP32[$1110 >> 2] = 0; - HEAP32[$18 >> 2] = 0; - HEAP32[$1100 >> 2] = (HEAP32[$1100 >> 2] | 0) + 16; + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$368 >> 1] = $77; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $94 = $77; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $94 = $77; + } else { + HEAP16[$pnt2$368 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $94 = $74; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $94 = $74; + } + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $112 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$368 >> 1] = $120; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $137 = $120; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $137 = $120; + } else { + HEAP16[$pnt2$368 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $137 = $117; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $137 = $117; + } + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; } else { - $1120 = HEAP32[$1096 >> 2] | 0; - $1121 = $1101 - $1120 | 0; - $1122 = $1121 >> 4; - $1123 = $1122 + 1 | 0; - if (($1121 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1096); - $1126 = $1103 - $1120 | 0; - if ($1126 >> 4 >>> 0 < 1073741823) { - $1129 = $1126 >> 3; - $$0$i$i$i76 = $1129 >>> 0 < $1123 >>> 0 ? $1123 : $1129; - } else $$0$i$i$i76 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i76, $1122, $db + 28 | 0); - $1132 = $__v$i$i$i + 8 | 0; - $1133 = HEAP32[$1132 >> 2] | 0; - HEAP32[$1133 + 12 >> 2] = HEAP32[$18 + 12 >> 2]; - HEAP32[$1133 >> 2] = HEAP32[$18 >> 2]; - $1139 = $18 + 4 | 0; - HEAP32[$1133 + 4 >> 2] = HEAP32[$1139 >> 2]; - $1141 = $18 + 8 | 0; - HEAP32[$1133 + 8 >> 2] = HEAP32[$1141 >> 2]; - HEAP32[$1141 >> 2] = 0; - HEAP32[$1139 >> 2] = 0; - HEAP32[$18 >> 2] = 0; - HEAP32[$1132 >> 2] = $1133 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1096, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $231 = $pnt$169 + 4 | 0; + $232 = $pnt2$368 + 2 | 0; + $233 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $233; + $pnt$169 = $231; + $pnt2$368 = $232; + $wk_max$160 = $wk_max$2; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18); - $$0 = $$08$i; - break L1; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $242 = HEAP32[$wk$444 >> 2] | 0; + if (($242 | 0) == ($i$342 | 0)) { + $248 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $248; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 79: - { - $1145 = $db + 4 | 0; - $1151 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $1152 = $first + 1 | 0; - $1153 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1152, $last, $db) | 0; - $1159 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($1153 | 0) == ($1152 | 0)) { - $$0 = $first; - break L1; - } - $1161 = $db + 16 | 0; - $1164 = HEAP32[$db + 12 >> 2] | 0; - $1165 = $db + 20 | 0; - $1166 = HEAP32[$1165 >> 2] | 0; - $1168 = HEAP32[$db + 24 >> 2] | 0; - if ($1166 >>> 0 < $1168 >>> 0) { - HEAP32[$1166 >> 2] = 0; - HEAP32[$1166 + 4 >> 2] = 0; - HEAP32[$1166 + 8 >> 2] = 0; - HEAP32[$1166 + 12 >> 2] = $1164; - HEAP32[$1165 >> 2] = (HEAP32[$1165 >> 2] | 0) + 16; + } + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $260 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$538 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $327 = $labelInfo + 12 + ($i$637 << 2) | 0; + $330 = $i$637 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $22 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + $33 = HEAPU8[$pnt$169 >> 0] | 0; + do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; } else { - $1178 = HEAP32[$1161 >> 2] | 0; - $1179 = $1166 - $1178 | 0; - $1180 = $1179 >> 4; - $1181 = $1180 + 1 | 0; - if (($1179 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1161); - $1184 = $1168 - $1178 | 0; - if ($1184 >> 4 >>> 0 < 1073741823) { - $1187 = $1184 >> 3; - $$0$i$i$i81 = $1187 >>> 0 < $1181 >>> 0 ? $1181 : $1187; - } else $$0$i$i$i81 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i81, $1180, $db + 28 | 0); - $1190 = $__v$i$i$i + 8 | 0; - $1191 = HEAP32[$1190 >> 2] | 0; - HEAP32[$1191 >> 2] = 0; - HEAP32[$1191 + 4 >> 2] = 0; - HEAP32[$1191 + 8 >> 2] = 0; - HEAP32[$1191 + 12 >> 2] = $1164; - HEAP32[$1190 >> 2] = $1191 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1161, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - $1196 = $20 + 4 | 0; - $1197 = $20 + 8 | 0; - $1198 = $20 + 1 | 0; - $1199 = $__v$i$i$i + 8 | 0; - if ($1151 >>> 0 < $1159 >>> 0) $k5$0533 = $1151; else { - $$0 = $1153; - break L1; - } - while (1) { - $1201 = HEAP32[$db >> 2] | 0; - $1202 = $1201 + ($k5$0533 * 24 | 0) + 12 | 0; - $1203 = HEAP8[$1202 >> 0] | 0; - $1205 = ($1203 & 1) == 0; - $1210 = $1205 ? ($1203 & 255) >>> 1 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 16 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($20, $1205 ? $1202 + 1 | 0 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0, $1210 >>> 0 < 2 ? $1210 : 2); - $1217 = HEAP8[$20 >> 0] | 0; - $1219 = ($1217 & 1) == 0; - $1223 = $1219 ? ($1217 & 255) >>> 1 : HEAP32[$1196 >> 2] | 0; - $1226 = $1223 >>> 0 > 2; - $1228 = _memcmp($1219 ? $1198 : HEAP32[$1197 >> 2] | 0, 12696, $1226 ? 2 : $1223) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); - $1233 = HEAP32[$db >> 2] | 0; - if (!((($1228 | 0) == 0 ? ($1223 >>> 0 < 2 ? -1 : $1226 & 1) : $1228) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 12616) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } else { - $1237 = $1233 + ($k5$0533 * 24 | 0) + 12 | 0; - if (!(HEAP8[$1237 >> 0] & 1)) $1245 = $1237 + 1 | 0; else $1245 = HEAP32[$1233 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0; - if ((HEAP8[$1245 >> 0] | 0) == 40) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 12714) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } + HEAP8[$dpnt$167 >> 0] = -1; + $46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) | 0, 12743) | 0; - $1252 = HEAP32[$1165 >> 2] | 0; - $1253 = $1252 + -16 | 0; - $1254 = HEAP32[$db >> 2] | 0; - $1255 = $1254 + ($k5$0533 * 24 | 0) | 0; - $1256 = $1252 + -12 | 0; - $1257 = HEAP32[$1256 >> 2] | 0; - if (($1257 | 0) == (HEAP32[$1252 + -8 >> 2] | 0)) { - $1269 = $1257 - (HEAP32[$1253 >> 2] | 0) | 0; - $1270 = ($1269 | 0) / 24 | 0; - $1271 = $1270 + 1 | 0; - if (($1269 | 0) < -24) { - $$lcssa667 = $1253; + $65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$368 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; break; } - if ($1270 >>> 0 < 1073741823) { - $1274 = $1270 << 1; - $$0$i$i$i87 = $1274 >>> 0 < $1271 >>> 0 ? $1271 : $1274; - } else $$0$i$i$i87 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i87, $1270, $1252 + -4 | 0); - $1277 = HEAP32[$1199 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277, $1255); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0); - HEAP32[$1199 >> 2] = $1277 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1253, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257, $1255); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0); - HEAP32[$1256 >> 2] = (HEAP32[$1256 >> 2] | 0) + 24; - } - $k5$0533 = $k5$0533 + 1 | 0; - if ($k5$0533 >>> 0 >= $1159 >>> 0) { - $$0 = $1153; - break L1; - } - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa667); - break; - } - case 80: - { - $1283 = $db + 4 | 0; - $1289 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $1290 = $first + 1 | 0; - $1291 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1290, $last, $db) | 0; - $1297 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($1291 | 0) == ($1290 | 0)) { - $$0 = $first; - break L1; - } - $1299 = $db + 16 | 0; - $1302 = HEAP32[$db + 12 >> 2] | 0; - $1303 = $db + 20 | 0; - $1304 = HEAP32[$1303 >> 2] | 0; - $1306 = HEAP32[$db + 24 >> 2] | 0; - if ($1304 >>> 0 < $1306 >>> 0) { - HEAP32[$1304 >> 2] = 0; - HEAP32[$1304 + 4 >> 2] = 0; - HEAP32[$1304 + 8 >> 2] = 0; - HEAP32[$1304 + 12 >> 2] = $1302; - HEAP32[$1303 >> 2] = (HEAP32[$1303 >> 2] | 0) + 16; - } else { - $1316 = HEAP32[$1299 >> 2] | 0; - $1317 = $1304 - $1316 | 0; - $1318 = $1317 >> 4; - $1319 = $1318 + 1 | 0; - if (($1317 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1299); - $1322 = $1306 - $1316 | 0; - if ($1322 >> 4 >>> 0 < 1073741823) { - $1325 = $1322 >> 3; - $$0$i$i$i95 = $1325 >>> 0 < $1319 >>> 0 ? $1319 : $1325; - } else $$0$i$i$i95 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i95, $1318, $db + 28 | 0); - $1328 = $__v$i$i$i + 8 | 0; - $1329 = HEAP32[$1328 >> 2] | 0; - HEAP32[$1329 >> 2] = 0; - HEAP32[$1329 + 4 >> 2] = 0; - HEAP32[$1329 + 8 >> 2] = 0; - HEAP32[$1329 + 12 >> 2] = $1302; - HEAP32[$1328 >> 2] = $1329 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1299, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - $1334 = $21 + 4 | 0; - $1335 = $21 + 8 | 0; - $1336 = $21 + 1 | 0; - $1337 = $22 + 4 | 0; - $1338 = $22 + 8 | 0; - $1339 = $22 + 1 | 0; - $1340 = $__v$i$i$i + 8 | 0; - if ($1289 >>> 0 < $1297 >>> 0) $k8$0536 = $1289; else { - $$0 = $1291; - break L1; - } - while (1) { - $1342 = HEAP32[$db >> 2] | 0; - $1343 = $1342 + ($k8$0536 * 24 | 0) + 12 | 0; - $1344 = HEAP8[$1343 >> 0] | 0; - $1346 = ($1344 & 1) == 0; - $1351 = $1346 ? ($1344 & 255) >>> 1 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 16 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($21, $1346 ? $1343 + 1 | 0 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0, $1351 >>> 0 < 2 ? $1351 : 2); - $1358 = HEAP8[$21 >> 0] | 0; - $1360 = ($1358 & 1) == 0; - $1364 = $1360 ? ($1358 & 255) >>> 1 : HEAP32[$1334 >> 2] | 0; - $1367 = $1364 >>> 0 > 2; - $1369 = _memcmp($1360 ? $1336 : HEAP32[$1335 >> 2] | 0, 12696, $1367 ? 2 : $1364) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); - $1374 = HEAP32[$db >> 2] | 0; - if (!((($1369 | 0) == 0 ? ($1364 >>> 0 < 2 ? -1 : $1367 & 1) : $1369) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 12616) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } else { - $1378 = $1374 + ($k8$0536 * 24 | 0) + 12 | 0; - if (!(HEAP8[$1378 >> 0] & 1)) $1386 = $1378 + 1 | 0; else $1386 = HEAP32[$1374 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0; - if ((HEAP8[$1386 >> 0] | 0) == 40) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 12714) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } - } - $1393 = HEAP32[$db >> 2] | 0; - $1394 = $1393 + ($k8$0536 * 24 | 0) | 0; - do if ((HEAP8[$1290 >> 0] | 0) == 85) { - $1395 = HEAP8[$1394 >> 0] | 0; - $1397 = ($1395 & 1) == 0; - $1402 = $1397 ? ($1395 & 255) >>> 1 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, $1397 ? $1394 + 1 | 0 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0, $1402 >>> 0 < 12 ? $1402 : 12); - $1409 = HEAP8[$22 >> 0] | 0; - $1411 = ($1409 & 1) == 0; - $1415 = $1411 ? ($1409 & 255) >>> 1 : HEAP32[$1337 >> 2] | 0; - $1418 = $1415 >>> 0 > 12; - $1420 = _memcmp($1411 ? $1339 : HEAP32[$1338 >> 2] | 0, 12746, $1418 ? 12 : $1415) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); - $1425 = HEAP32[$db >> 2] | 0; - $1426 = $1425 + ($k8$0536 * 24 | 0) | 0; - if (!((($1420 | 0) == 0 ? ($1415 >>> 0 < 12 ? -1 : $1418 & 1) : $1420) | 0)) { - $1428 = HEAP8[$1426 >> 0] | 0; - if (!($1428 & 1)) { - $1432 = ($1428 & 255) >>> 1; - $1443 = $1432 >>> 0 < 11 ? $1432 : 11; - $1444 = $1432; - $1446 = 10; - $1449 = $1428; - } else { - $1436 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0; - $1439 = HEAP32[$1426 >> 2] | 0; - $1443 = $1436 >>> 0 < 11 ? $1436 : 11; - $1444 = $1436; - $1446 = ($1439 & -2) + -1 | 0; - $1449 = $1439 & 255; - } - if (($1443 - $1444 + $1446 | 0) >>> 0 < 2) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($1426, $1446, 2 - $1443 + $1444 - $1446 | 0, $1444, 0, $1443, 2, 12761); + $191 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; break; } - if (!($1449 & 1)) $1458 = $1426 + 1 | 0; else $1458 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0; - do if (($1443 | 0) == 2) { - $$1$i$i = 0; - $$12$i$i = 12761; - $$14$i$i = 2; - $2573 = 2; - label = 339; - } else { - $1455 = $1444 - $1443 | 0; - if (($1444 | 0) == ($1443 | 0)) { - $$1$i$i = 0; - $$12$i$i = 12761; - $$14$i$i = 2; - $2573 = $1443; - label = 339; - } else { - if ($1443 >>> 0 > 2) { - HEAP8[$1458 >> 0] = 105; - HEAP8[$1458 + 1 >> 0] = 100; - _memmove($1458 + 2 | 0, $1458 + $1443 | 0, $1455 | 0) | 0; - $$2$i$i = 2; - $1474 = $1443; - break; - } - do if ($1458 >>> 0 < 12761 >>> 0 & ($1458 + $1444 | 0) >>> 0 > 12761 >>> 0) if (($1458 + $1443 | 0) >>> 0 > 12761 >>> 0) { - _memcpy($1458 | 0, 12761, $1443 | 0) | 0; - $$0$i$i = $1443; - $$01$i$i = 12763; - $$03$i$i = 2 - $1443 | 0; - $1470 = 0; - break; - } else { - $$0$i$i = 0; - $$01$i$i = 12761 + (2 - $1443) | 0; - $$03$i$i = 2; - $1470 = $1443; - break; - } else { - $$0$i$i = 0; - $$01$i$i = 12761; - $$03$i$i = 2; - $1470 = $1443; - } while (0); - _memmove($1458 + ($$0$i$i + $$03$i$i) | 0, $1458 + ($$0$i$i + $1470) | 0, $1455 | 0) | 0; - $$1$i$i = $$0$i$i; - $$12$i$i = $$01$i$i; - $$14$i$i = $$03$i$i; - $2573 = $1470; - label = 339; - } - } while (0); - if ((label | 0) == 339) { - label = 0; - _memmove($1458 + $$1$i$i | 0, $$12$i$i | 0, $$14$i$i | 0) | 0; - $$2$i$i = $$14$i$i; - $1474 = $2573; - } - $1475 = $$2$i$i - $1474 + $1444 | 0; - if (!(HEAP8[$1426 >> 0] & 1)) HEAP8[$1426 >> 0] = $1475 << 1; else HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] = $1475; - HEAP8[$1458 + $1475 >> 0] = 0; + HEAP32[$208 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; } else { - $1427 = $1426; - label = 322; - } - } else { - $1427 = $1394; - label = 322; - } while (0); - if ((label | 0) == 322) { - label = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1427, 12759) | 0; - } - $1486 = HEAP32[$1303 >> 2] | 0; - $1487 = $1486 + -16 | 0; - $1488 = HEAP32[$db >> 2] | 0; - $1489 = $1488 + ($k8$0536 * 24 | 0) | 0; - $1490 = $1486 + -12 | 0; - $1491 = HEAP32[$1490 >> 2] | 0; - if (($1491 | 0) == (HEAP32[$1486 + -8 >> 2] | 0)) { - $1503 = $1491 - (HEAP32[$1487 >> 2] | 0) | 0; - $1504 = ($1503 | 0) / 24 | 0; - $1505 = $1504 + 1 | 0; - if (($1503 | 0) < -24) { - $$lcssa674 = $1487; + $211 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $211; break; } - if ($1504 >>> 0 < 1073741823) { - $1508 = $1504 << 1; - $$0$i$i$i105 = $1508 >>> 0 < $1505 >>> 0 ? $1505 : $1508; - } else $$0$i$i$i105 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i105, $1504, $1486 + -4 | 0); - $1511 = HEAP32[$1340 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511, $1489); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0); - HEAP32[$1340 >> 2] = $1511 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1487, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491, $1489); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0); - HEAP32[$1490 >> 2] = (HEAP32[$1490 >> 2] | 0) + 24; - } - $k8$0536 = $k8$0536 + 1 | 0; - if ($k8$0536 >>> 0 >= $1297 >>> 0) { - $$0 = $1291; - break L1; - } - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa674); - break; - } - case 82: - { - $1517 = $db + 4 | 0; - $1523 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $1524 = $first + 1 | 0; - $1525 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1524, $last, $db) | 0; - $1531 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($1525 | 0) == ($1524 | 0)) { - $$0 = $first; - break L1; - } - $1533 = $db + 16 | 0; - $1536 = HEAP32[$db + 12 >> 2] | 0; - $1537 = $db + 20 | 0; - $1538 = HEAP32[$1537 >> 2] | 0; - $1540 = HEAP32[$db + 24 >> 2] | 0; - if ($1538 >>> 0 < $1540 >>> 0) { - HEAP32[$1538 >> 2] = 0; - HEAP32[$1538 + 4 >> 2] = 0; - HEAP32[$1538 + 8 >> 2] = 0; - HEAP32[$1538 + 12 >> 2] = $1536; - HEAP32[$1537 >> 2] = (HEAP32[$1537 >> 2] | 0) + 16; - } else { - $1550 = HEAP32[$1533 >> 2] | 0; - $1551 = $1538 - $1550 | 0; - $1552 = $1551 >> 4; - $1553 = $1552 + 1 | 0; - if (($1551 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1533); - $1556 = $1540 - $1550 | 0; - if ($1556 >> 4 >>> 0 < 1073741823) { - $1559 = $1556 >> 3; - $$0$i$i$i113 = $1559 >>> 0 < $1553 >>> 0 ? $1553 : $1559; - } else $$0$i$i$i113 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i113, $1552, $db + 28 | 0); - $1562 = $__v$i$i$i + 8 | 0; - $1563 = HEAP32[$1562 >> 2] | 0; - HEAP32[$1563 >> 2] = 0; - HEAP32[$1563 + 4 >> 2] = 0; - HEAP32[$1563 + 8 >> 2] = 0; - HEAP32[$1563 + 12 >> 2] = $1536; - HEAP32[$1562 >> 2] = $1563 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1533, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - $1568 = $23 + 4 | 0; - $1569 = $23 + 8 | 0; - $1570 = $23 + 1 | 0; - $1571 = $__v$i$i$i + 8 | 0; - if ($1523 >>> 0 < $1531 >>> 0) $k11$0540 = $1523; else { - $$0 = $1525; - break L1; - } - while (1) { - $1573 = HEAP32[$db >> 2] | 0; - $1574 = $1573 + ($k11$0540 * 24 | 0) + 12 | 0; - $1575 = HEAP8[$1574 >> 0] | 0; - $1577 = ($1575 & 1) == 0; - $1582 = $1577 ? ($1575 & 255) >>> 1 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 16 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($23, $1577 ? $1574 + 1 | 0 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0, $1582 >>> 0 < 2 ? $1582 : 2); - $1589 = HEAP8[$23 >> 0] | 0; - $1591 = ($1589 & 1) == 0; - $1595 = $1591 ? ($1589 & 255) >>> 1 : HEAP32[$1568 >> 2] | 0; - $1598 = $1595 >>> 0 > 2; - $1600 = _memcmp($1591 ? $1570 : HEAP32[$1569 >> 2] | 0, 12696, $1598 ? 2 : $1595) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); - $1605 = HEAP32[$db >> 2] | 0; - if (!((($1600 | 0) == 0 ? ($1595 >>> 0 < 2 ? -1 : $1598 & 1) : $1600) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 12616) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } else { - $1609 = $1605 + ($k11$0540 * 24 | 0) + 12 | 0; - if (!(HEAP8[$1609 >> 0] & 1)) $1617 = $1609 + 1 | 0; else $1617 = HEAP32[$1605 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0; - if ((HEAP8[$1617 >> 0] | 0) == 40) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 12714) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 12619) | 0; - } } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) | 0, 12764) | 0; - $1624 = HEAP32[$1537 >> 2] | 0; - $1625 = $1624 + -16 | 0; - $1626 = HEAP32[$db >> 2] | 0; - $1627 = $1626 + ($k11$0540 * 24 | 0) | 0; - $1628 = $1624 + -12 | 0; - $1629 = HEAP32[$1628 >> 2] | 0; - if (($1629 | 0) == (HEAP32[$1624 + -8 >> 2] | 0)) { - $1641 = $1629 - (HEAP32[$1625 >> 2] | 0) | 0; - $1642 = ($1641 | 0) / 24 | 0; - $1643 = $1642 + 1 | 0; - if (($1641 | 0) < -24) { - $$lcssa682 = $1625; - break; + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$368 >> 1] = $77; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $94 = $77; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $94 = $77; + } else { + HEAP16[$pnt2$368 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $94 = $74; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $94 = $74; } - if ($1642 >>> 0 < 1073741823) { - $1646 = $1642 << 1; - $$0$i$i$i123 = $1646 >>> 0 < $1643 >>> 0 ? $1643 : $1646; - } else $$0$i$i$i123 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i123, $1642, $1624 + -4 | 0); - $1649 = HEAP32[$1571 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649, $1627); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0); - HEAP32[$1571 >> 2] = $1649 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1625, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629, $1627); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0); - HEAP32[$1628 >> 2] = (HEAP32[$1628 >> 2] | 0) + 24; - } - $k11$0540 = $k11$0540 + 1 | 0; - if ($k11$0540 >>> 0 >= $1531 >>> 0) { - $$0 = $1525; - break L1; + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa682); - break; - } - case 84: - { - $1655 = $db + 4 | 0; - $1661 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $1662 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - $1668 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($1662 | 0) == ($first | 0)) { - $$0 = $first; - break L1; - } - $1670 = $db + 16 | 0; - $1671 = $db + 12 | 0; - $1673 = HEAP32[$1671 >> 2] | 0; - $1674 = $db + 20 | 0; - $1675 = HEAP32[$1674 >> 2] | 0; - $1676 = $db + 24 | 0; - $1677 = HEAP32[$1676 >> 2] | 0; - if ($1675 >>> 0 < $1677 >>> 0) { - HEAP32[$1675 >> 2] = 0; - HEAP32[$1675 + 4 >> 2] = 0; - HEAP32[$1675 + 8 >> 2] = 0; - HEAP32[$1675 + 12 >> 2] = $1673; - HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16; - } else { - $1687 = HEAP32[$1670 >> 2] | 0; - $1688 = $1675 - $1687 | 0; - $1689 = $1688 >> 4; - $1690 = $1689 + 1 | 0; - if (($1688 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670); - $1693 = $1677 - $1687 | 0; - if ($1693 >> 4 >>> 0 < 1073741823) { - $1696 = $1693 >> 3; - $$0$i$i$i131 = $1696 >>> 0 < $1690 >>> 0 ? $1690 : $1696; - } else $$0$i$i$i131 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i131, $1689, $db + 28 | 0); - $1699 = $__v$i$i$i + 8 | 0; - $1700 = HEAP32[$1699 >> 2] | 0; - HEAP32[$1700 >> 2] = 0; - HEAP32[$1700 + 4 >> 2] = 0; - HEAP32[$1700 + 8 >> 2] = 0; - HEAP32[$1700 + 12 >> 2] = $1673; - HEAP32[$1699 >> 2] = $1700 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - $1705 = $__v$i$i$i + 8 | 0; - L522 : do if ($1661 >>> 0 < $1668 >>> 0) { - $k15$0543 = $1661; - while (1) { - $1707 = HEAP32[$1674 >> 2] | 0; - $1708 = $1707 + -16 | 0; - $1709 = HEAP32[$db >> 2] | 0; - $1710 = $1709 + ($k15$0543 * 24 | 0) | 0; - $1711 = $1707 + -12 | 0; - $1712 = HEAP32[$1711 >> 2] | 0; - if (($1712 | 0) == (HEAP32[$1707 + -8 >> 2] | 0)) { - $1724 = $1712 - (HEAP32[$1708 >> 2] | 0) | 0; - $1725 = ($1724 | 0) / 24 | 0; - $1726 = $1725 + 1 | 0; - if (($1724 | 0) < -24) { - $$lcssa690 = $1708; - break; + $112 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$368 >> 1] = $120; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $137 = $120; + break; + } else $wk$250 = $wk$250 + 4 | 0; } - if ($1725 >>> 0 < 1073741823) { - $1729 = $1725 << 1; - $$0$i$i$i136 = $1729 >>> 0 < $1726 >>> 0 ? $1726 : $1729; - } else $$0$i$i$i136 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i136, $1725, $1707 + -4 | 0); - $1732 = HEAP32[$1705 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732, $1710); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0); - HEAP32[$1705 >> 2] = $1732 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1708, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712, $1710); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0); - HEAP32[$1711 >> 2] = (HEAP32[$1711 >> 2] | 0) + 24; - } - $k15$0543 = $k15$0543 + 1 | 0; - if ($k15$0543 >>> 0 >= $1668 >>> 0) break L522; + } else $137 = $120; + } else { + HEAP16[$pnt2$368 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $137 = $117; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $137 = $117; } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa690); + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; } while (0); - if (!(($1668 | 0) == ($1661 + 1 | 0) & (HEAP8[$db + 63 >> 0] | 0) != 0)) { - $$0 = $1662; - break L1; - } - $1743 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0; - if (($1743 | 0) == ($1662 | 0)) { - $$0 = $1662; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, (HEAP32[$1655 >> 2] | 0) + -24 | 0); - $1747 = HEAP32[$1655 >> 2] | 0; - $1748 = $1747 + -24 | 0; - $1750 = $1747; - do { - $1749 = $1750 + -24 | 0; - HEAP32[$1655 >> 2] = $1749; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1749); - $1750 = HEAP32[$1655 >> 2] | 0; - } while (($1750 | 0) != ($1748 | 0)); - $1753 = HEAP8[$args >> 0] | 0; - $1755 = ($1753 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1747 + -48 | 0, $1755 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $1755 ? ($1753 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; - $1766 = (HEAP32[$1655 >> 2] | 0) + -24 | 0; - HEAP32[$25 >> 2] = HEAP32[$1671 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($24, $1766, $25); - $1768 = HEAP32[$1674 >> 2] | 0; - $1769 = HEAP32[$1676 >> 2] | 0; - if ($1768 >>> 0 < $1769 >>> 0) { - HEAP32[$1768 + 12 >> 2] = HEAP32[$24 + 12 >> 2]; - HEAP32[$1768 >> 2] = HEAP32[$24 >> 2]; - $1776 = $24 + 4 | 0; - HEAP32[$1768 + 4 >> 2] = HEAP32[$1776 >> 2]; - $1778 = $24 + 8 | 0; - HEAP32[$1768 + 8 >> 2] = HEAP32[$1778 >> 2]; - HEAP32[$1778 >> 2] = 0; - HEAP32[$1776 >> 2] = 0; - HEAP32[$24 >> 2] = 0; - HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16; + $i$265 = $i$265 + 1 | 0; + $231 = $pnt$169 + 4 | 0; + $232 = $pnt2$368 + 2 | 0; + $233 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $1786 = HEAP32[$1670 >> 2] | 0; - $1787 = $1768 - $1786 | 0; - $1788 = $1787 >> 4; - $1789 = $1788 + 1 | 0; - if (($1787 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670); - $1792 = $1769 - $1786 | 0; - if ($1792 >> 4 >>> 0 < 1073741823) { - $1795 = $1792 >> 3; - $$0$i$i$i148 = $1795 >>> 0 < $1789 >>> 0 ? $1789 : $1795; - } else $$0$i$i$i148 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i148, $1788, $db + 28 | 0); - $1798 = $__v$i$i$i + 8 | 0; - $1799 = HEAP32[$1798 >> 2] | 0; - HEAP32[$1799 + 12 >> 2] = HEAP32[$24 + 12 >> 2]; - HEAP32[$1799 >> 2] = HEAP32[$24 >> 2]; - $1805 = $24 + 4 | 0; - HEAP32[$1799 + 4 >> 2] = HEAP32[$1805 >> 2]; - $1807 = $24 + 8 | 0; - HEAP32[$1799 + 8 >> 2] = HEAP32[$1807 >> 2]; - HEAP32[$1807 >> 2] = 0; - HEAP32[$1805 >> 2] = 0; - HEAP32[$24 >> 2] = 0; - HEAP32[$1798 >> 2] = $1799 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + $dpnt$167 = $233; + $pnt$169 = $231; + $pnt2$368 = $232; + $wk_max$160 = $wk_max$2; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($24); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$0 = $1743; - break L1; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $242 = HEAP32[$wk$444 >> 2] | 0; + if (($242 | 0) == ($i$342 | 0)) { + $248 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $248; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 85: - { - $1811 = $first + 1 | 0; - if (($1811 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - $1813 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1811, $last, $db) | 0; - if (($1813 | 0) == ($1811 | 0)) { - $$0 = $first; - break L1; - } - $1815 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1813, $last, $db) | 0; - if (($1815 | 0) == ($1813 | 0)) { - $$0 = $first; - break L1; - } - $1817 = $db + 4 | 0; - $1818 = HEAP32[$1817 >> 2] | 0; - if ((($1818 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0 = $first; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($type, $1818 + -24 | 0); - $1826 = HEAP32[$1817 >> 2] | 0; - $1827 = $1826 + -24 | 0; - $1829 = $1826; - do { - $1828 = $1829 + -24 | 0; - HEAP32[$1817 >> 2] = $1828; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1828); - $1829 = HEAP32[$1817 >> 2] | 0; - } while (($1829 | 0) != ($1827 | 0)); - $1831 = $1826 + -48 | 0; - $1832 = HEAP8[$1831 >> 0] | 0; - $1834 = ($1832 & 1) == 0; - $1839 = $1834 ? ($1832 & 255) >>> 1 : HEAP32[$1826 + -44 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($26, $1834 ? $1831 + 1 | 0 : HEAP32[$1826 + -40 >> 2] | 0, $1839 >>> 0 < 9 ? $1839 : 9); - $1846 = HEAP8[$26 >> 0] | 0; - $1848 = ($1846 & 1) == 0; - $1853 = $1848 ? ($1846 & 255) >>> 1 : HEAP32[$26 + 4 >> 2] | 0; - $1858 = $1853 >>> 0 > 9; - $1860 = _memcmp($1848 ? $26 + 1 | 0 : HEAP32[$26 + 8 >> 2] | 0, 12766, $1858 ? 9 : $1853) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26); - $1866 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; - if (!((($1860 | 0) == 0 ? ($1853 >>> 0 < 9 ? -1 : $1858 & 1) : $1860) | 0)) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($proto, $1866); - $1884 = HEAP32[$1817 >> 2] | 0; - $1885 = $1884 + -24 | 0; - $1887 = $1884; - do { - $1886 = $1887 + -24 | 0; - HEAP32[$1817 >> 2] = $1886; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1886); - $1887 = HEAP32[$1817 >> 2] | 0; - } while (($1887 | 0) != ($1885 | 0)); - $1889 = HEAP8[$proto >> 0] | 0; - $1891 = ($1889 & 1) == 0; - $1892 = $proto + 8 | 0; - $1894 = $proto + 1 | 0; - $1895 = $1891 ? $1894 : HEAP32[$1892 >> 2] | 0; - $1897 = $proto + 4 | 0; - $1903 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1895 + 9 | 0, $1895 + ($1891 ? ($1889 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0, $db) | 0; - if (($1903 | 0) == (((HEAP8[$proto >> 0] & 1) == 0 ? $1894 : HEAP32[$1892 >> 2] | 0) + 9 | 0)) { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($38, $type, 12726); - $1933 = HEAP8[$proto >> 0] | 0; - $1935 = ($1933 & 1) == 0; - $1942 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($38, $1935 ? $1894 : HEAP32[$1892 >> 2] | 0, $1935 ? ($1933 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0; - HEAP32[$37 >> 2] = HEAP32[$1942 >> 2]; - HEAP32[$37 + 4 >> 2] = HEAP32[$1942 + 4 >> 2]; - HEAP32[$37 + 8 >> 2] = HEAP32[$1942 + 8 >> 2]; - HEAP32[$1942 >> 2] = 0; - HEAP32[$1942 + 4 >> 2] = 0; - HEAP32[$1942 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37); - $1945 = HEAP32[$1817 >> 2] | 0; - $1947 = HEAP32[$db + 8 >> 2] | 0; - if ($1945 >>> 0 < $1947 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1945, $36); - HEAP32[$1817 >> 2] = (HEAP32[$1817 >> 2] | 0) + 24; - } else { - $1954 = HEAP32[$db >> 2] | 0; - $1955 = $1945 - $1954 | 0; - $1956 = ($1955 | 0) / 24 | 0; - $1957 = $1956 + 1 | 0; - if (($1955 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1961 = ($1947 - $1954 | 0) / 24 | 0; - if ($1961 >>> 0 < 1073741823) { - $1963 = $1961 << 1; - $$0$i$i$i181 = $1963 >>> 0 < $1957 >>> 0 ? $1957 : $1963; - } else $$0$i$i$i181 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i181, $1956, $db + 12 | 0); - $1966 = $__v$i$i$i + 8 | 0; - $1967 = HEAP32[$1966 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1967, $36); - HEAP32[$1966 >> 2] = $1967 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); + } + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $260 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$538 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $327 = $labelInfo + 12 + ($i$637 << 2) | 0; + $330 = $i$637 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize * 3 | 0) + 12 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($44 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $44; + $47 = ($44 << 16 >> 16) * 7 | 0; + $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; + $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; + $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; + HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $68 = $67 << 16 >> 16; + $69 = $67 << 16 >> 16 > 0; + if ($63 << 16 >> 16 <= 0) { + if ($69) { + HEAP16[$pnt2$368 >> 1] = $67; + $169 = $68 * 7 | 0; + $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; + $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; + $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; + $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; + if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($189 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $189; + $192 = ($189 << 16 >> 16) * 7 | 0; + $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; + $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; + $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; + HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; + $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; + if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$206 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $209 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $209; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; + $214 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $209; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38); - } else { - $1912 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($34, $type, 12776); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($35, (HEAP32[$1817 >> 2] | 0) + -24 | 0); - $1915 = HEAP8[$35 >> 0] | 0; - $1917 = ($1915 & 1) == 0; - $1927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($34, $1917 ? $35 + 1 | 0 : HEAP32[$35 + 8 >> 2] | 0, $1917 ? ($1915 & 255) >>> 1 : HEAP32[$35 + 4 >> 2] | 0) | 0; - HEAP32[$33 >> 2] = HEAP32[$1927 >> 2]; - HEAP32[$33 + 4 >> 2] = HEAP32[$1927 + 4 >> 2]; - HEAP32[$33 + 8 >> 2] = HEAP32[$1927 + 8 >> 2]; - HEAP32[$1927 >> 2] = 0; - HEAP32[$1927 + 4 >> 2] = 0; - HEAP32[$1927 + 8 >> 2] = 0; - $1930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($33, 12778) | 0; - HEAP32[$32 >> 2] = HEAP32[$1930 >> 2]; - HEAP32[$32 + 4 >> 2] = HEAP32[$1930 + 4 >> 2]; - HEAP32[$32 + 8 >> 2] = HEAP32[$1930 + 8 >> 2]; - HEAP32[$1930 >> 2] = 0; - HEAP32[$1930 + 4 >> 2] = 0; - HEAP32[$1930 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($31, $32); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1912, $31); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34); } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($proto); - } else { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($29, $type, 12726); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($30, (HEAP32[$1817 >> 2] | 0) + -24 | 0); - $1869 = HEAP8[$30 >> 0] | 0; - $1871 = ($1869 & 1) == 0; - $1881 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($29, $1871 ? $30 + 1 | 0 : HEAP32[$30 + 8 >> 2] | 0, $1871 ? ($1869 & 255) >>> 1 : HEAP32[$30 + 4 >> 2] | 0) | 0; - HEAP32[$28 >> 2] = HEAP32[$1881 >> 2]; - HEAP32[$28 + 4 >> 2] = HEAP32[$1881 + 4 >> 2]; - HEAP32[$28 + 8 >> 2] = HEAP32[$1881 + 8 >> 2]; - HEAP32[$1881 >> 2] = 0; - HEAP32[$1881 + 4 >> 2] = 0; - HEAP32[$1881 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($27, $28); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1866, $27); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29); - } - $1970 = (HEAP32[$1817 >> 2] | 0) + -24 | 0; - HEAP32[$40 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($39, $1970, $40); - $1973 = $db + 16 | 0; - $1974 = $db + 20 | 0; - $1975 = HEAP32[$1974 >> 2] | 0; - $1977 = HEAP32[$db + 24 >> 2] | 0; - if ($1975 >>> 0 < $1977 >>> 0) { - HEAP32[$1975 + 12 >> 2] = HEAP32[$39 + 12 >> 2]; - HEAP32[$1975 >> 2] = HEAP32[$39 >> 2]; - $1984 = $39 + 4 | 0; - HEAP32[$1975 + 4 >> 2] = HEAP32[$1984 >> 2]; - $1986 = $39 + 8 | 0; - HEAP32[$1975 + 8 >> 2] = HEAP32[$1986 >> 2]; - HEAP32[$1986 >> 2] = 0; - HEAP32[$1984 >> 2] = 0; - HEAP32[$39 >> 2] = 0; - HEAP32[$1974 >> 2] = (HEAP32[$1974 >> 2] | 0) + 16; - } else { - $1994 = HEAP32[$1973 >> 2] | 0; - $1995 = $1975 - $1994 | 0; - $1996 = $1995 >> 4; - $1997 = $1996 + 1 | 0; - if (($1995 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1973); - $2000 = $1977 - $1994 | 0; - if ($2000 >> 4 >>> 0 < 1073741823) { - $2003 = $2000 >> 3; - $$0$i$i$i153 = $2003 >>> 0 < $1997 >>> 0 ? $1997 : $2003; - } else $$0$i$i$i153 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i153, $1996, $db + 28 | 0); - $2006 = $__v$i$i$i + 8 | 0; - $2007 = HEAP32[$2006 >> 2] | 0; - HEAP32[$2007 + 12 >> 2] = HEAP32[$39 + 12 >> 2]; - HEAP32[$2007 >> 2] = HEAP32[$39 >> 2]; - $2013 = $39 + 4 | 0; - HEAP32[$2007 + 4 >> 2] = HEAP32[$2013 >> 2]; - $2015 = $39 + 8 | 0; - HEAP32[$2007 + 8 >> 2] = HEAP32[$2015 >> 2]; - HEAP32[$2015 >> 2] = 0; - HEAP32[$2013 >> 2] = 0; - HEAP32[$39 >> 2] = 0; - HEAP32[$2006 >> 2] = $2007 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1973, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($39); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($type); - $$0 = $1815; - break L1; - break; - } - case 83: - { - $2019 = $first + 1 | 0; - if (($2019 | 0) != ($last | 0)) if ((HEAP8[$2019 >> 0] | 0) == 116) { - $2023 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($2023 | 0) == ($first | 0)) { - $$0 = $first; - break L1; + if ($69) { + $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; + if (($72 | 0) > ($75 | 0)) { + HEAP16[$pnt2$368 >> 1] = $75; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $92 = $75; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $92 = $75; + } else { + HEAP16[$pnt2$368 >> 1] = $72; + if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $92 = $72; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $92 = $72; + } + $94 = ($92 << 16 >> 16) * 7 | 0; + $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; + $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; + $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; + HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $2027 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2027 | 0)) { - $$0 = $first; - break L1; + $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($110 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $63; + $150 = $64 * 7 | 0; + $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; + $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; + $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; + $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; + if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $2029 = $db + 16 | 0; - HEAP32[$42 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($41, $2027 + -24 | 0, $42); - $2033 = $db + 20 | 0; - $2034 = HEAP32[$2033 >> 2] | 0; - $2036 = HEAP32[$db + 24 >> 2] | 0; - if ($2034 >>> 0 < $2036 >>> 0) { - HEAP32[$2034 + 12 >> 2] = HEAP32[$41 + 12 >> 2]; - HEAP32[$2034 >> 2] = HEAP32[$41 >> 2]; - $2043 = $41 + 4 | 0; - HEAP32[$2034 + 4 >> 2] = HEAP32[$2043 >> 2]; - $2045 = $41 + 8 | 0; - HEAP32[$2034 + 8 >> 2] = HEAP32[$2045 >> 2]; - HEAP32[$2045 >> 2] = 0; - HEAP32[$2043 >> 2] = 0; - HEAP32[$41 >> 2] = 0; - HEAP32[$2033 >> 2] = (HEAP32[$2033 >> 2] | 0) + 16; + $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($115 | 0) > ($118 | 0)) { + HEAP16[$pnt2$368 >> 1] = $118; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $135 = $118; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $135 = $118; } else { - $2053 = HEAP32[$2029 >> 2] | 0; - $2054 = $2034 - $2053 | 0; - $2055 = $2054 >> 4; - $2056 = $2055 + 1 | 0; - if (($2054 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2029); - $2059 = $2036 - $2053 | 0; - if ($2059 >> 4 >>> 0 < 1073741823) { - $2062 = $2059 >> 3; - $$0$i$i$i51 = $2062 >>> 0 < $2056 >>> 0 ? $2056 : $2062; - } else $$0$i$i$i51 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i51, $2055, $db + 28 | 0); - $2065 = $__v$i$i$i + 8 | 0; - $2066 = HEAP32[$2065 >> 2] | 0; - HEAP32[$2066 + 12 >> 2] = HEAP32[$41 + 12 >> 2]; - HEAP32[$2066 >> 2] = HEAP32[$41 >> 2]; - $2072 = $41 + 4 | 0; - HEAP32[$2066 + 4 >> 2] = HEAP32[$2072 >> 2]; - $2074 = $41 + 8 | 0; - HEAP32[$2066 + 8 >> 2] = HEAP32[$2074 >> 2]; - HEAP32[$2074 >> 2] = 0; - HEAP32[$2072 >> 2] = 0; - HEAP32[$41 >> 2] = 0; - HEAP32[$2065 >> 2] = $2066 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2029, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + HEAP16[$pnt2$368 >> 1] = $115; + if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $135 = $115; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $135 = $115; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($41); - $$0 = $2023; - break L1; - } - $2078 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($2078 | 0) == ($first | 0)) { - $$0 = $first; - break L1; - } - $2080 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($2078, $last, $db) | 0; - if (($2080 | 0) == ($2078 | 0)) { - $$0 = $2078; - break L1; - } - $2082 = $db + 4 | 0; - $2083 = HEAP32[$2082 >> 2] | 0; - if ((($2083 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0 = $2078; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($template_args, $2083 + -24 | 0); - $2091 = HEAP32[$2082 >> 2] | 0; - $2092 = $2091 + -24 | 0; - $2094 = $2091; - do { - $2093 = $2094 + -24 | 0; - HEAP32[$2082 >> 2] = $2093; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2093); - $2094 = HEAP32[$2082 >> 2] | 0; - } while (($2094 | 0) != ($2092 | 0)); - $2097 = HEAP8[$template_args >> 0] | 0; - $2099 = ($2097 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2091 + -48 | 0, $2099 ? $template_args + 1 | 0 : HEAP32[$template_args + 8 >> 2] | 0, $2099 ? ($2097 & 255) >>> 1 : HEAP32[$template_args + 4 >> 2] | 0) | 0; - $2110 = (HEAP32[$2082 >> 2] | 0) + -24 | 0; - HEAP32[$44 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($43, $2110, $44); - $2113 = $db + 16 | 0; - $2114 = $db + 20 | 0; - $2115 = HEAP32[$2114 >> 2] | 0; - $2117 = HEAP32[$db + 24 >> 2] | 0; - if ($2115 >>> 0 < $2117 >>> 0) { - HEAP32[$2115 + 12 >> 2] = HEAP32[$43 + 12 >> 2]; - HEAP32[$2115 >> 2] = HEAP32[$43 >> 2]; - $2124 = $43 + 4 | 0; - HEAP32[$2115 + 4 >> 2] = HEAP32[$2124 >> 2]; - $2126 = $43 + 8 | 0; - HEAP32[$2115 + 8 >> 2] = HEAP32[$2126 >> 2]; - HEAP32[$2126 >> 2] = 0; - HEAP32[$2124 >> 2] = 0; - HEAP32[$43 >> 2] = 0; - HEAP32[$2114 >> 2] = (HEAP32[$2114 >> 2] | 0) + 16; + $137 = ($135 << 16 >> 16) * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; } else { - $2134 = HEAP32[$2113 >> 2] | 0; - $2135 = $2115 - $2134 | 0; - $2136 = $2135 >> 4; - $2137 = $2136 + 1 | 0; - if (($2135 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2113); - $2140 = $2117 - $2134 | 0; - if ($2140 >> 4 >>> 0 < 1073741823) { - $2143 = $2140 >> 3; - $$0$i$i$i31 = $2143 >>> 0 < $2137 >>> 0 ? $2137 : $2143; - } else $$0$i$i$i31 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i31, $2136, $db + 28 | 0); - $2146 = $__v$i$i$i + 8 | 0; - $2147 = HEAP32[$2146 >> 2] | 0; - HEAP32[$2147 + 12 >> 2] = HEAP32[$43 + 12 >> 2]; - HEAP32[$2147 >> 2] = HEAP32[$43 >> 2]; - $2153 = $43 + 4 | 0; - HEAP32[$2147 + 4 >> 2] = HEAP32[$2153 >> 2]; - $2155 = $43 + 8 | 0; - HEAP32[$2147 + 8 >> 2] = HEAP32[$2155 >> 2]; - HEAP32[$2155 >> 2] = 0; - HEAP32[$2153 >> 2] = 0; - HEAP32[$43 >> 2] = 0; - HEAP32[$2146 >> 2] = $2147 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2113, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $229 = $pnt$169 + 6 | 0; + $230 = $pnt2$368 + 2 | 0; + $231 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $231; + $pnt$1$lcssa = $229; + $pnt2$3$lcssa = $230; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $231; + $pnt$169 = $229; + $pnt2$368 = $230; + $wk_max$160 = $wk_max$2; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($43); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($template_args); - $$0 = $2080; - break L1; + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $238 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $240 = HEAP32[$wk$444 >> 2] | 0; + if (($240 | 0) == ($i$342 | 0)) { + $246 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $246; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 68: - { - $2159 = $first + 1 | 0; - if (($2159 | 0) != ($last | 0)) { - $2161 = HEAP8[$2159 >> 0] | 0; - switch ($2161 << 24 >> 24 | 0) { - case 112: - { - $2163 = $db + 4 | 0; - $2169 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $2170 = $first + 2 | 0; - $2171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2170, $last, $db) | 0; - $2177 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (($2171 | 0) == ($2170 | 0)) break L65; - $2179 = $db + 16 | 0; - $2182 = HEAP32[$db + 12 >> 2] | 0; - $2183 = $db + 20 | 0; - $2184 = HEAP32[$2183 >> 2] | 0; - $2186 = HEAP32[$db + 24 >> 2] | 0; - if ($2184 >>> 0 < $2186 >>> 0) { - HEAP32[$2184 >> 2] = 0; - HEAP32[$2184 + 4 >> 2] = 0; - HEAP32[$2184 + 8 >> 2] = 0; - HEAP32[$2184 + 12 >> 2] = $2182; - HEAP32[$2183 >> 2] = (HEAP32[$2183 >> 2] | 0) + 16; - } else { - $2196 = HEAP32[$2179 >> 2] | 0; - $2197 = $2184 - $2196 | 0; - $2198 = $2197 >> 4; - $2199 = $2198 + 1 | 0; - if (($2197 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2179); - $2202 = $2186 - $2196 | 0; - if ($2202 >> 4 >>> 0 < 1073741823) { - $2205 = $2202 >> 3; - $$0$i$i$i29 = $2205 >>> 0 < $2199 >>> 0 ? $2199 : $2205; - } else $$0$i$i$i29 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i29, $2198, $db + 28 | 0); - $2208 = $__v$i$i$i + 8 | 0; - $2209 = HEAP32[$2208 >> 2] | 0; - HEAP32[$2209 >> 2] = 0; - HEAP32[$2209 + 4 >> 2] = 0; - HEAP32[$2209 + 8 >> 2] = 0; - HEAP32[$2209 + 12 >> 2] = $2182; - HEAP32[$2208 >> 2] = $2209 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2179, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); - } - $2214 = $__v$i$i$i + 8 | 0; - if ($2169 >>> 0 < $2177 >>> 0) $k20$0550 = $2169; else { - $$0 = $2171; - break L1; + } + } + $250 = $labelInfo + 8 | 0; + $251 = $j$1$lcssa + -1 | 0; + HEAP32[$250 >> 2] = $251; + if (!$251) $$0 = 0; else { + _memset($238 | 0, 0, $251 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $258 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $273 = $i$538 * 7 | 0; + $276 = $labelInfo + 12 + ($272 << 2) | 0; + HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); + $283 = $272 << 1; + $284 = $labelInfo + 655376 + ($283 << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); + $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; + HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); + $295 = $272 << 2; + $296 = $labelInfo + 131084 + ($295 << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; + $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; + $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; + if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$250 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $325 = $labelInfo + 12 + ($i$637 << 2) | 0; + $328 = $i$637 << 1; + $329 = $labelInfo + 655376 + ($328 << 3) | 0; + HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); + $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize * 3 | 0) + 12 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($44 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $44; + $47 = ($44 << 16 >> 16) * 7 | 0; + $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; + $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; + $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; + HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $68 = $67 << 16 >> 16; + $69 = $67 << 16 >> 16 > 0; + if ($63 << 16 >> 16 <= 0) { + if ($69) { + HEAP16[$pnt2$368 >> 1] = $67; + $169 = $68 * 7 | 0; + $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; + $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; + $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; + $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; + if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($189 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $189; + $192 = ($189 << 16 >> 16) * 7 | 0; + $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; + $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; + $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; + HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; + $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; + if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } - while (1) { - $2216 = HEAP32[$2183 >> 2] | 0; - $2217 = $2216 + -16 | 0; - $2218 = HEAP32[$db >> 2] | 0; - $2219 = $2218 + ($k20$0550 * 24 | 0) | 0; - $2220 = $2216 + -12 | 0; - $2221 = HEAP32[$2220 >> 2] | 0; - if (($2221 | 0) == (HEAP32[$2216 + -8 >> 2] | 0)) { - $2233 = $2221 - (HEAP32[$2217 >> 2] | 0) | 0; - $2234 = ($2233 | 0) / 24 | 0; - $2235 = $2234 + 1 | 0; - if (($2233 | 0) < -24) { - $$lcssa698 = $2217; + HEAP32[$206 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $209 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $209; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; + $214 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $209; + break; + } + } + if ($69) { + $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; + if (($72 | 0) > ($75 | 0)) { + HEAP16[$pnt2$368 >> 1] = $75; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $92 = $75; break; - } - if ($2234 >>> 0 < 1073741823) { - $2238 = $2234 << 1; - $$0$i$i$i27 = $2238 >>> 0 < $2235 >>> 0 ? $2235 : $2238; - } else $$0$i$i$i27 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i27, $2234, $2216 + -4 | 0); - $2241 = HEAP32[$2214 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241, $2219); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0); - HEAP32[$2214 >> 2] = $2241 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($2217, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221, $2219); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0); - HEAP32[$2220 >> 2] = (HEAP32[$2220 >> 2] | 0) + 24; + } else $wk$057 = $wk$057 + 4 | 0; } - $k20$0550 = $k20$0550 + 1 | 0; - if ($k20$0550 >>> 0 >= $2177 >>> 0) { - $$0 = $2171; - break L1; + } else $92 = $75; + } else { + HEAP16[$pnt2$368 >> 1] = $72; + if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $92 = $72; + break; + } else $wk$154 = $wk$154 + 4 | 0; } - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa698); - break; + } else $92 = $72; } - case 84: - case 116: - { - $2247 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($2247 | 0) == ($first | 0)) break L65; - $2251 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2251 | 0)) { - $$0 = $first; - break L1; + $94 = ($92 << 16 >> 16) * 7 | 0; + $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; + $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; + $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; + HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($110 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $63; + $150 = $64 * 7 | 0; + $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; + $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; + $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; + $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; + if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($115 | 0) > ($118 | 0)) { + HEAP16[$pnt2$368 >> 1] = $118; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $135 = $118; + break; + } else $wk$250 = $wk$250 + 4 | 0; } - $2253 = $db + 16 | 0; - HEAP32[$46 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($45, $2251 + -24 | 0, $46); - $2257 = $db + 20 | 0; - $2258 = HEAP32[$2257 >> 2] | 0; - $2260 = HEAP32[$db + 24 >> 2] | 0; - if ($2258 >>> 0 < $2260 >>> 0) { - HEAP32[$2258 + 12 >> 2] = HEAP32[$45 + 12 >> 2]; - HEAP32[$2258 >> 2] = HEAP32[$45 >> 2]; - $2267 = $45 + 4 | 0; - HEAP32[$2258 + 4 >> 2] = HEAP32[$2267 >> 2]; - $2269 = $45 + 8 | 0; - HEAP32[$2258 + 8 >> 2] = HEAP32[$2269 >> 2]; - HEAP32[$2269 >> 2] = 0; - HEAP32[$2267 >> 2] = 0; - HEAP32[$45 >> 2] = 0; - HEAP32[$2257 >> 2] = (HEAP32[$2257 >> 2] | 0) + 16; - } else { - $2277 = HEAP32[$2253 >> 2] | 0; - $2278 = $2258 - $2277 | 0; - $2279 = $2278 >> 4; - $2280 = $2279 + 1 | 0; - if (($2278 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2253); - $2283 = $2260 - $2277 | 0; - if ($2283 >> 4 >>> 0 < 1073741823) { - $2286 = $2283 >> 3; - $$0$i$i$i22 = $2286 >>> 0 < $2280 >>> 0 ? $2280 : $2286; - } else $$0$i$i$i22 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i22, $2279, $db + 28 | 0); - $2289 = $__v$i$i$i + 8 | 0; - $2290 = HEAP32[$2289 >> 2] | 0; - HEAP32[$2290 + 12 >> 2] = HEAP32[$45 + 12 >> 2]; - HEAP32[$2290 >> 2] = HEAP32[$45 >> 2]; - $2296 = $45 + 4 | 0; - HEAP32[$2290 + 4 >> 2] = HEAP32[$2296 >> 2]; - $2298 = $45 + 8 | 0; - HEAP32[$2290 + 8 >> 2] = HEAP32[$2298 >> 2]; - HEAP32[$2298 >> 2] = 0; - HEAP32[$2296 >> 2] = 0; - HEAP32[$45 >> 2] = 0; - HEAP32[$2289 >> 2] = $2290 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2253, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } else $135 = $118; + } else { + HEAP16[$pnt2$368 >> 1] = $115; + if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $135 = $115; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $135 = $115; + } + $137 = ($135 << 16 >> 16) * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $229 = $pnt$169 + 6 | 0; + $230 = $pnt2$368 + 2 | 0; + $231 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $231; + $pnt$1$lcssa = $229; + $pnt2$3$lcssa = $230; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $231; + $pnt$169 = $229; + $pnt2$368 = $230; + $wk_max$160 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $238 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $240 = HEAP32[$wk$444 >> 2] | 0; + if (($240 | 0) == ($i$342 | 0)) { + $246 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $246; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $250 = $labelInfo + 8 | 0; + $251 = $j$1$lcssa + -1 | 0; + HEAP32[$250 >> 2] = $251; + if (!$251) $$0 = 0; else { + _memset($238 | 0, 0, $251 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $258 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $273 = $i$538 * 7 | 0; + $276 = $labelInfo + 12 + ($272 << 2) | 0; + HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); + $283 = $272 << 1; + $284 = $labelInfo + 655376 + ($283 << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); + $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; + HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); + $295 = $272 << 2; + $296 = $labelInfo + 131084 + ($295 << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; + $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; + $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; + if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$250 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $325 = $labelInfo + 12 + ($i$637 << 2) | 0; + $328 = $i$637 << 1; + $329 = $labelInfo + 655376 + ($328 << 3) | 0; + HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); + $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 3) + 8) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($45 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $45; + $48 = ($45 << 16 >> 16) * 7 | 0; + $50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1; + $54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265; + $58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0; + HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $69 = $68 << 16 >> 16; + $70 = $68 << 16 >> 16 > 0; + if ($64 << 16 >> 16 <= 0) { + if ($70) { + HEAP16[$pnt2$368 >> 1] = $68; + $170 = $69 * 7 | 0; + $172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1; + $176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265; + $180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0; + HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076; + $184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0; + if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $190 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($190 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $190; + $193 = ($190 << 16 >> 16) * 7 | 0; + $195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1; + $199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265; + $203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0; + HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076; + $207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0; + if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($45); - $$0 = $2247; - break L1; + HEAP32[$207 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $210 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $210; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16; + $215 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $210; break; } - case 118: - { - L662 : do if (($last - $first | 0) > 3 & $197 << 24 >> 24 == 68 & $2161 << 24 >> 24 == 118) { - $2308 = $first + 2 | 0; - $2309 = HEAP8[$2308 >> 0] | 0; - if (($2309 + -49 & 255) < 9) { - $2311 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($2308, $last) | 0; - if (($2311 | 0) == ($last | 0)) { - $$1$i263 = $first; - break; - } - if ((HEAP8[$2311 >> 0] | 0) != 95) { - $$1$i263 = $first; - break; - } - $2317 = $2311 - $2308 | 0; - $2318 = $2311 + 1 | 0; - if (($2318 | 0) == ($last | 0)) { - $$1$i263 = $first; - break; - } - if ((HEAP8[$2318 >> 0] | 0) != 112) { - $2322 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2318, $last, $db) | 0; - if (($2322 | 0) == ($2318 | 0)) { - $$1$i263 = $first; - break; - } - $2326 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2326 | 0)) { - $$1$i263 = $first; - break; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $2308, $2317); - $2329 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 12780) | 0; - HEAP32[$1 >> 2] = HEAP32[$2329 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$2329 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$2329 + 8 >> 2]; - HEAP32[$2329 >> 2] = 0; - HEAP32[$2329 + 4 >> 2] = 0; - HEAP32[$2329 + 8 >> 2] = 0; - $2332 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12703) | 0; - HEAP32[$0 >> 2] = HEAP32[$2332 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$2332 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$2332 + 8 >> 2]; - HEAP32[$2332 >> 2] = 0; - HEAP32[$2332 + 4 >> 2] = 0; - HEAP32[$2332 + 8 >> 2] = 0; - $2335 = HEAP8[$0 >> 0] | 0; - $2337 = ($2335 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2326 + -24 | 0, $2337 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $2337 ? ($2335 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$1$i263 = $2322; + } + if ($70) { + $73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + $76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0; + if (($73 | 0) > ($76 | 0)) { + HEAP16[$pnt2$368 >> 1] = $76; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $93 = $76; break; - } - $2347 = $2311 + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $2308, $2317); - $2348 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 12789) | 0; - HEAP32[$5 >> 2] = HEAP32[$2348 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$2348 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$2348 + 8 >> 2]; - HEAP32[$2348 >> 2] = 0; - HEAP32[$2348 + 4 >> 2] = 0; - HEAP32[$2348 + 8 >> 2] = 0; - $2351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 12703) | 0; - HEAP32[$4 >> 2] = HEAP32[$2351 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$2351 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$2351 + 8 >> 2]; - HEAP32[$2351 >> 2] = 0; - HEAP32[$2351 + 4 >> 2] = 0; - HEAP32[$2351 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4); - $2354 = $db + 4 | 0; - $2355 = HEAP32[$2354 >> 2] | 0; - $2357 = HEAP32[$db + 8 >> 2] | 0; - if ($2355 >>> 0 < $2357 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2355, $3); - HEAP32[$2354 >> 2] = (HEAP32[$2354 >> 2] | 0) + 24; - } else { - $2364 = HEAP32[$db >> 2] | 0; - $2365 = $2355 - $2364 | 0; - $2366 = ($2365 | 0) / 24 | 0; - $2367 = $2366 + 1 | 0; - if (($2365 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $2371 = ($2357 - $2364 | 0) / 24 | 0; - if ($2371 >>> 0 < 1073741823) { - $2373 = $2371 << 1; - $$0$i$i$i$i = $2373 >>> 0 < $2367 >>> 0 ? $2367 : $2373; - } else $$0$i$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i$i, $2366, $db + 12 | 0); - $2376 = $__v$i$i$i + 8 | 0; - $2377 = HEAP32[$2376 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2377, $3); - HEAP32[$2376 >> 2] = $2377 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - $$1$i263 = $2347; - break; + } else $wk$057 = $wk$057 + 4 | 0; } - HEAP32[$num1$i >> 2] = 0; - HEAP32[$num1$i + 4 >> 2] = 0; - HEAP32[$num1$i + 8 >> 2] = 0; - if ($2309 << 24 >> 24 == 95) { - $t12$0$i = $2308; - label = 521; - } else { - $2382 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($2308, $last, $db) | 0; - if (($2382 | 0) == ($2308 | 0)) { - $t12$0$i = $2308; - label = 521; - } else { - $2385 = $db + 4 | 0; - $2386 = HEAP32[$2385 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) != ($2386 | 0)) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $2386 + -24 | 0); - L689 : do if (!(HEAP8[$num1$i >> 0] & 1)) { - HEAP8[$num1$i + 1 >> 0] = 0; - HEAP8[$num1$i >> 0] = 0; - } else { - $2393 = $num1$i + 8 | 0; - $2394 = HEAP32[$2393 >> 2] | 0; - HEAP8[$2394 >> 0] = 0; - $2395 = $num1$i + 4 | 0; - HEAP32[$2395 >> 2] = 0; - $2396 = HEAP32[$num1$i >> 2] | 0; - $phitmp$i$i$i$i$i$i$i240 = ($2396 & -2) + -1 | 0; - $2398 = $2396 & 255; - do if (!($2398 & 1)) { - $2402 = $2396 >>> 1 & 127; - if (($2398 & 255) < 22) { - _memcpy($num1$i + 1 | 0, $2394 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0; - _free($2394); - $$ph390 = $2402; - break; - } - $2405 = $2402 + 16 & 240; - $phitmp$i2$i$i$i$i$i$i243 = $2405 + -1 | 0; - if (($phitmp$i2$i$i$i$i$i$i243 | 0) == ($phitmp$i$i$i$i$i$i$i240 | 0)) break L689; - $2408 = _malloc($2405) | 0; - if ($phitmp$i2$i$i$i$i$i$i243 >>> 0 <= $phitmp$i$i$i$i$i$i$i240 >>> 0 & ($2408 | 0) == 0) break L689; - _memcpy($2408 | 0, $num1$i + 1 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0; - HEAP32[$num1$i >> 2] = $2405 | 1; - HEAP32[$2395 >> 2] = $2402; - HEAP32[$2393 >> 2] = $2408; - break L689; - } else { - HEAP8[$num1$i + 1 >> 0] = 0; - _free($2394); - $$ph390 = 0; - } while (0); - HEAP8[$num1$i >> 0] = $$ph390 << 1; - } while (0); - HEAP32[$num1$i >> 2] = HEAP32[$7 >> 2]; - HEAP32[$num1$i + 4 >> 2] = HEAP32[$7 + 4 >> 2]; - HEAP32[$num1$i + 8 >> 2] = HEAP32[$7 + 8 >> 2]; - HEAP32[$7 >> 2] = 0; - HEAP32[$7 + 4 >> 2] = 0; - HEAP32[$7 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - $2424 = HEAP32[$2385 >> 2] | 0; - $2425 = $2424 + -24 | 0; - $2427 = $2424; - do { - $2426 = $2427 + -24 | 0; - HEAP32[$2385 >> 2] = $2426; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2426); - $2427 = HEAP32[$2385 >> 2] | 0; - } while (($2427 | 0) != ($2425 | 0)); - $t12$0$i = $2382; - label = 521; - } - } + } else $93 = $76; + } else { + HEAP16[$pnt2$368 >> 1] = $73; + if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $93 = $73; + break; + } else $wk$154 = $wk$154 + 4 | 0; } - do if ((label | 0) == 521) { - if (($t12$0$i | 0) == ($last | 0)) $$13$i259$ph = $first; else if ((HEAP8[$t12$0$i >> 0] | 0) == 95) { - $2432 = $t12$0$i + 1 | 0; - if (($2432 | 0) == ($last | 0)) $$13$i259$ph = $first; else { - $2434 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2432, $last, $db) | 0; - if (($2434 | 0) == ($2432 | 0)) $$13$i259$ph = $first; else { - $2438 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2438 | 0)) break; - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($9, 12780, $num1$i); - $2441 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($9, 12703) | 0; - HEAP32[$8 >> 2] = HEAP32[$2441 >> 2]; - HEAP32[$8 + 4 >> 2] = HEAP32[$2441 + 4 >> 2]; - HEAP32[$8 + 8 >> 2] = HEAP32[$2441 + 8 >> 2]; - HEAP32[$2441 >> 2] = 0; - HEAP32[$2441 + 4 >> 2] = 0; - HEAP32[$2441 + 8 >> 2] = 0; - $2444 = HEAP8[$8 >> 0] | 0; - $2446 = ($2444 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2438 + -24 | 0, $2446 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $2446 ? ($2444 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); - $$13$i259$ph = $2434; - } - } - } else $$13$i259$ph = $first; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); - $$1$i263 = $$13$i259$ph; - break L662; - } while (0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i); - $$1$i263 = $first; - } else $$1$i263 = $first; while (0); - if (($$1$i263 | 0) == ($first | 0)) break L65; - $2459 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2459 | 0)) { - $$0 = $first; - break L1; + } else $93 = $73; + } + $95 = ($93 << 16 >> 16) * 7 | 0; + $97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1; + $101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265; + $105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0; + HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $111 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($111 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $64; + $151 = $65 * 7 | 0; + $153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1; + $157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265; + $161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076; + $165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0; + if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + $119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($116 | 0) > ($119 | 0)) { + HEAP16[$pnt2$368 >> 1] = $119; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $136 = $119; + break; + } else $wk$250 = $wk$250 + 4 | 0; } - $2461 = $db + 16 | 0; - HEAP32[$48 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($47, $2459 + -24 | 0, $48); - $2465 = $db + 20 | 0; - $2466 = HEAP32[$2465 >> 2] | 0; - $2468 = HEAP32[$db + 24 >> 2] | 0; - if ($2466 >>> 0 < $2468 >>> 0) { - HEAP32[$2466 + 12 >> 2] = HEAP32[$47 + 12 >> 2]; - HEAP32[$2466 >> 2] = HEAP32[$47 >> 2]; - $2475 = $47 + 4 | 0; - HEAP32[$2466 + 4 >> 2] = HEAP32[$2475 >> 2]; - $2477 = $47 + 8 | 0; - HEAP32[$2466 + 8 >> 2] = HEAP32[$2477 >> 2]; - HEAP32[$2477 >> 2] = 0; - HEAP32[$2475 >> 2] = 0; - HEAP32[$47 >> 2] = 0; - HEAP32[$2465 >> 2] = (HEAP32[$2465 >> 2] | 0) + 16; - } else { - $2485 = HEAP32[$2461 >> 2] | 0; - $2486 = $2466 - $2485 | 0; - $2487 = $2486 >> 4; - $2488 = $2487 + 1 | 0; - if (($2486 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2461); - $2491 = $2468 - $2485 | 0; - if ($2491 >> 4 >>> 0 < 1073741823) { - $2494 = $2491 >> 3; - $$0$i$i$i17 = $2494 >>> 0 < $2488 >>> 0 ? $2488 : $2494; - } else $$0$i$i$i17 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i17, $2487, $db + 28 | 0); - $2497 = $__v$i$i$i + 8 | 0; - $2498 = HEAP32[$2497 >> 2] | 0; - HEAP32[$2498 + 12 >> 2] = HEAP32[$47 + 12 >> 2]; - HEAP32[$2498 >> 2] = HEAP32[$47 >> 2]; - $2504 = $47 + 4 | 0; - HEAP32[$2498 + 4 >> 2] = HEAP32[$2504 >> 2]; - $2506 = $47 + 8 | 0; - HEAP32[$2498 + 8 >> 2] = HEAP32[$2506 >> 2]; - HEAP32[$2506 >> 2] = 0; - HEAP32[$2504 >> 2] = 0; - HEAP32[$47 >> 2] = 0; - HEAP32[$2497 >> 2] = $2498 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2461, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + } else $136 = $119; + } else { + HEAP16[$pnt2$368 >> 1] = $116; + if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $136 = $116; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $136 = $116; + } + $138 = ($136 << 16 >> 16) * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $230 = $pnt$169 + 8 | 0; + $231 = $pnt2$368 + 2 | 0; + $232 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $232; + $pnt$1$lcssa = $230; + $pnt2$3$lcssa = $231; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $232; + $pnt$169 = $230; + $pnt2$368 = $231; + $wk_max$160 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $241 = HEAP32[$wk$444 >> 2] | 0; + if (($241 | 0) == ($i$342 | 0)) { + $247 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $247; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $259 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$538 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $326 = $labelInfo + 12 + ($i$637 << 2) | 0; + $329 = $i$637 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 3) + 8) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($45 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $45; + $48 = ($45 << 16 >> 16) * 7 | 0; + $50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1; + $54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265; + $58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0; + HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $69 = $68 << 16 >> 16; + $70 = $68 << 16 >> 16 > 0; + if ($64 << 16 >> 16 <= 0) { + if ($70) { + HEAP16[$pnt2$368 >> 1] = $68; + $170 = $69 * 7 | 0; + $172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1; + $176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265; + $180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0; + HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076; + $184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0; + if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $190 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($190 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $190; + $193 = ($190 << 16 >> 16) * 7 | 0; + $195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1; + $199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265; + $203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0; + HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076; + $207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0; + if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($47); - $$0 = $$1$i263; - break L1; + HEAP32[$207 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $210 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $210; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16; + $215 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $210; break; } - default: - break L65; } - } - break; - } - default: - {} - } while (0); - $2510 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($2510 | 0) == ($first | 0)) { - $2512 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($2512 | 0) == ($first | 0)) $$0 = $first; else { - $2516 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($2516 | 0)) $$0 = $first; else { - $2518 = $db + 16 | 0; - HEAP32[$50 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($49, $2516 + -24 | 0, $50); - $2522 = $db + 20 | 0; - $2523 = HEAP32[$2522 >> 2] | 0; - $2525 = HEAP32[$db + 24 >> 2] | 0; - if ($2523 >>> 0 < $2525 >>> 0) { - HEAP32[$2523 + 12 >> 2] = HEAP32[$49 + 12 >> 2]; - HEAP32[$2523 >> 2] = HEAP32[$49 >> 2]; - $2532 = $49 + 4 | 0; - HEAP32[$2523 + 4 >> 2] = HEAP32[$2532 >> 2]; - $2534 = $49 + 8 | 0; - HEAP32[$2523 + 8 >> 2] = HEAP32[$2534 >> 2]; - HEAP32[$2534 >> 2] = 0; - HEAP32[$2532 >> 2] = 0; - HEAP32[$49 >> 2] = 0; - HEAP32[$2522 >> 2] = (HEAP32[$2522 >> 2] | 0) + 16; + if ($70) { + $73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + $76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0; + if (($73 | 0) > ($76 | 0)) { + HEAP16[$pnt2$368 >> 1] = $76; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $93 = $76; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $93 = $76; + } else { + HEAP16[$pnt2$368 >> 1] = $73; + if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $93 = $73; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $93 = $73; + } + $95 = ($93 << 16 >> 16) * 7 | 0; + $97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1; + $101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265; + $105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0; + HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $111 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($111 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $64; + $151 = $65 * 7 | 0; + $153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1; + $157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265; + $161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076; + $165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0; + if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + $119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($116 | 0) > ($119 | 0)) { + HEAP16[$pnt2$368 >> 1] = $119; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $136 = $119; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $136 = $119; } else { - $2542 = HEAP32[$2518 >> 2] | 0; - $2543 = $2523 - $2542 | 0; - $2544 = $2543 >> 4; - $2545 = $2544 + 1 | 0; - if (($2543 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2518); - $2548 = $2525 - $2542 | 0; - if ($2548 >> 4 >>> 0 < 1073741823) { - $2551 = $2548 >> 3; - $$0$i$i$i = $2551 >>> 0 < $2545 >>> 0 ? $2545 : $2551; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i, $2544, $db + 28 | 0); - $2554 = $__v$i$i$i + 8 | 0; - $2555 = HEAP32[$2554 >> 2] | 0; - HEAP32[$2555 + 12 >> 2] = HEAP32[$49 + 12 >> 2]; - HEAP32[$2555 >> 2] = HEAP32[$49 >> 2]; - $2561 = $49 + 4 | 0; - HEAP32[$2555 + 4 >> 2] = HEAP32[$2561 >> 2]; - $2563 = $49 + 8 | 0; - HEAP32[$2555 + 8 >> 2] = HEAP32[$2563 >> 2]; - HEAP32[$2563 >> 2] = 0; - HEAP32[$2561 >> 2] = 0; - HEAP32[$49 >> 2] = 0; - HEAP32[$2554 >> 2] = $2555 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2518, $__v$i$i$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i); + HEAP16[$pnt2$368 >> 1] = $116; + if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $136 = $116; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $136 = $116; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($49); - $$0 = $2512; + $138 = ($136 << 16 >> 16) * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $230 = $pnt$169 + 8 | 0; + $231 = $pnt2$368 + 2 | 0; + $232 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $232; + $pnt$1$lcssa = $230; + $pnt2$3$lcssa = $231; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $232; + $pnt$169 = $230; + $pnt2$368 = $231; + $wk_max$160 = $wk_max$2; } } - } else $$0 = $2510; - } else $$0 = $195; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; } while (0); - STACKTOP = sp; - return $$0 | 0; -} -function __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i299 = 0, $$0$i$i$i$i348 = 0, $$0$i254 = 0, $$019$i = 0, $$02$i = 0, $$02$i310 = 0, $$02$i317 = 0, $$03$i = 0, $$03$i174 = 0, $$03$i189 = 0, $$03$i200 = 0, $$03$i211 = 0, $$03$i265 = 0, $$03$i456 = 0, $$03$i486 = 0, $$06$i = 0, $$06$i248 = 0, $$06$i345 = 0, $$06$i426 = 0, $$2$i302 = 0, $$2$i398 = 0, $$221$i = 0, $$311$i = 0, $$9$i = 0, $$first$i = 0, $$ph518 = 0, $$ph520524 = 0, $$phi$trans$insert = 0, $$pre$i$i$i = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i372 = 0, $$pre$i$i$i$i436 = 0, $$pre$i$i$i$i466 = 0, $$pre$i$i$i87 = 0, $$pre$phi511Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1022 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $103 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1043 = 0, $1047 = 0, $1050 = 0, $1053 = 0, $106 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1076 = 0, $1079 = 0, $1081 = 0, $109 = 0, $1091 = 0, $1093 = 0, $11 = 0, $110 = 0, $1103 = 0, $1106 = 0, $1108 = 0, $112 = 0, $1120 = 0, $1122 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1136 = 0, $1138 = 0, $1141 = 0, $1142 = 0, $1145 = 0, $1146 = 0, $1148 = 0, $1149 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1155 = 0, $1159 = 0, $1161 = 0, $1162 = 0, $1165 = 0, $1172 = 0, $1174 = 0, $1177 = 0, $1181 = 0, $1184 = 0, $1189 = 0, $1190 = 0, $1193 = 0, $1194 = 0, $1196 = 0, $1197 = 0, $12 = 0, $1206 = 0, $1209 = 0, $121 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1222 = 0, $1223 = 0, $1225 = 0, $1226 = 0, $1231 = 0, $1232 = 0, $1234 = 0, $1235 = 0, $1237 = 0, $1238 = 0, $1240 = 0, $1244 = 0, $1245 = 0, $1247 = 0, $1251 = 0, $1253 = 0, $1254 = 0, $1257 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1269 = 0, $1270 = 0, $1272 = 0, $1274 = 0, $1275 = 0, $128 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $129 = 0, $1291 = 0, $1293 = 0, $13 = 0, $1306 = 0, $1307 = 0, $1309 = 0, $1311 = 0, $1313 = 0, $1314 = 0, $132 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1330 = 0, $1331 = 0, $1335 = 0, $1336 = 0, $1339 = 0, $1341 = 0, $1351 = 0, $1354 = 0, $1357 = 0, $1359 = 0, $1369 = 0, $1372 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1379 = 0, $1380 = 0, $1381 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $139 = 0, $1398 = 0, $1399 = 0, $14 = 0, $1401 = 0, $1403 = 0, $1404 = 0, $141 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1417 = 0, $1418 = 0, $1421 = 0, $1424 = 0, $1426 = 0, $1436 = 0, $1439 = 0, $144 = 0, $1442 = 0, $1443 = 0, $1445 = 0, $1446 = 0, $1448 = 0, $1449 = 0, $1451 = 0, $1452 = 0, $1463 = 0, $1464 = 0, $1466 = 0, $1468 = 0, $1469 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1482 = 0, $1483 = 0, $1486 = 0, $1489 = 0, $1491 = 0, $15 = 0, $1501 = 0, $1504 = 0, $151 = 0, $1513 = 0, $1514 = 0, $1523 = 0, $1524 = 0, $1528 = 0, $1530 = 0, $1531 = 0, $1534 = 0, $1543 = 0, $1544 = 0, $1548 = 0, $1550 = 0, $1551 = 0, $1554 = 0, $156 = 0, $1569 = 0, $157 = 0, $1572 = 0, $1578 = 0, $1579 = 0, $1581 = 0, $1585 = 0, $1591 = 0, $1593 = 0, $16 = 0, $160 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1609 = 0, $161 = 0, $1612 = 0, $1614 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $163 = 0, $1632 = 0, $1634 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1648 = 0, $1650 = 0, $1653 = 0, $1654 = 0, $1662 = 0, $1665 = 0, $1669 = 0, $1671 = 0, $1672 = 0, $1675 = 0, $1685 = 0, $1687 = 0, $1693 = 0, $1695 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1702 = 0, $1703 = 0, $1705 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1719 = 0, $1721 = 0, $1724 = 0, $1725 = 0, $173 = 0, $1734 = 0, $1735 = 0, $1739 = 0, $1741 = 0, $1742 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1751 = 0, $176 = 0, $18 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $214 = 0, $217 = 0, $22 = 0, $222 = 0, $223 = 0, $226 = 0, $227 = 0, $229 = 0, $23 = 0, $230 = 0, $239 = 0, $24 = 0, $242 = 0, $25 = 0, $256 = 0, $257 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $275 = 0, $276 = 0, $279 = 0, $28 = 0, $282 = 0, $284 = 0, $29 = 0, $294 = 0, $297 = 0, $3 = 0, $30 = 0, $305 = 0, $306 = 0, $31 = 0, $310 = 0, $311 = 0, $314 = 0, $315 = 0, $317 = 0, $32 = 0, $327 = 0, $33 = 0, $330 = 0, $335 = 0, $337 = 0, $34 = 0, $340 = 0, $344 = 0, $347 = 0, $35 = 0, $352 = 0, $353 = 0, $356 = 0, $357 = 0, $359 = 0, $36 = 0, $360 = 0, $369 = 0, $37 = 0, $372 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $384 = 0, $388 = 0, $39 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $402 = 0, $41 = 0, $412 = 0, $416 = 0, $417 = 0, $419 = 0, $42 = 0, $420 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $436 = 0, $438 = 0, $44 = 0, $442 = 0, $443 = 0, $445 = 0, $449 = 0, $45 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $464 = 0, $466 = 0, $469 = 0, $47 = 0, $470 = 0, $473 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $49 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $496 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $503 = 0, $505 = 0, $51 = 0, $515 = 0, $518 = 0, $52 = 0, $524 = 0, $525 = 0, $528 = 0, $529 = 0, $53 = 0, $531 = 0, $534 = 0, $539 = 0, $54 = 0, $541 = 0, $55 = 0, $551 = 0, $558 = 0, $56 = 0, $560 = 0, $563 = 0, $567 = 0, $57 = 0, $570 = 0, $575 = 0, $576 = 0, $579 = 0, $58 = 0, $580 = 0, $582 = 0, $583 = 0, $59 = 0, $592 = 0, $595 = 0, $6 = 0, $60 = 0, $606 = 0, $607 = 0, $609 = 0, $61 = 0, $611 = 0, $612 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $625 = 0, $626 = 0, $629 = 0, $63 = 0, $632 = 0, $634 = 0, $64 = 0, $644 = 0, $647 = 0, $65 = 0, $650 = 0, $651 = 0, $653 = 0, $654 = 0, $657 = 0, $658 = 0, $66 = 0, $660 = 0, $663 = 0, $668 = 0, $67 = 0, $670 = 0, $68 = 0, $680 = 0, $687 = 0, $689 = 0, $69 = 0, $692 = 0, $696 = 0, $699 = 0, $7 = 0, $70 = 0, $704 = 0, $705 = 0, $708 = 0, $709 = 0, $71 = 0, $711 = 0, $712 = 0, $72 = 0, $721 = 0, $724 = 0, $73 = 0, $736 = 0, $737 = 0, $739 = 0, $74 = 0, $741 = 0, $742 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $756 = 0, $758 = 0, $76 = 0, $77 = 0, $774 = 0, $775 = 0, $777 = 0, $779 = 0, $78 = 0, $780 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $794 = 0, $796 = 0, $8 = 0, $80 = 0, $806 = 0, $807 = 0, $809 = 0, $81 = 0, $810 = 0, $815 = 0, $816 = 0, $818 = 0, $819 = 0, $821 = 0, $822 = 0, $827 = 0, $828 = 0, $83 = 0, $830 = 0, $831 = 0, $836 = 0, $837 = 0, $839 = 0, $841 = 0, $842 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $857 = 0, $858 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $879 = 0, $880 = 0, $881 = 0, $886 = 0, $887 = 0, $889 = 0, $890 = 0, $892 = 0, $893 = 0, $895 = 0, $896 = 0, $9 = 0, $90 = 0, $901 = 0, $902 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $910 = 0, $911 = 0, $913 = 0, $917 = 0, $918 = 0, $920 = 0, $924 = 0, $926 = 0, $927 = 0, $930 = 0, $936 = 0, $940 = 0, $943 = 0, $945 = 0, $946 = 0, $947 = 0, $954 = 0, $955 = 0, $961 = 0, $976 = 0, $977 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $989 = 0, $993 = 0, $996 = 0, $999 = 0, $has_expr_list$0$off0$i = 0, $has_expr_list$0$off0$i$lcssa = 0, $has_init$0$off0$i513 = 0, $k$0$i621 = 0, $k$0$i622 = 0, $k1$0$i618 = 0, $op1 = 0, $op18 = 0, $op2 = 0, $op27 = 0, $op3 = 0, $parsed_gs$0$off0 = 0, $parsed_gs$0$off0$i = 0, $phitmp$i$i$i$i$i$i$i273 = 0, $phitmp$i$i$i$i$i$i32$i = 0, $phitmp$i2$i$i$i$i$i$i276 = 0, $phitmp$i2$i$i$i$i$i35$i = 0, $t$0 = 0, $t$0$i = 0, $t$0$i267 = 0, $t$0$i349567 = 0, $t$0$i390$lcssa = 0, $t$0$i390556 = 0, $t$1$i = 0, $t$1$i$lcssa = 0, $t$1$i350 = 0, $t$2$i = 0, $t$2$i351 = 0, $t$3$i512 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0, $t$1$i$looptemp = 0, $t$2$i$looptemp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1168 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 1144 | 0; - $1 = sp + 1120 | 0; - $2 = sp + 1096 | 0; - $3 = sp + 1084 | 0; - $4 = sp + 1072 | 0; - $5 = sp + 1048 | 0; - $6 = sp + 1032 | 0; - $7 = sp + 900 | 0; - $8 = sp + 632 | 0; - $9 = sp + 620 | 0; - $10 = sp + 584 | 0; - $11 = sp + 560 | 0; - $12 = sp + 524 | 0; - $13 = sp + 1020 | 0; - $14 = sp + 1008 | 0; - $15 = sp + 996 | 0; - $16 = sp + 984 | 0; - $17 = sp + 972 | 0; - $18 = sp + 960 | 0; - $19 = sp + 948 | 0; - $20 = sp + 936 | 0; - $21 = sp + 924 | 0; - $22 = sp + 912 | 0; - $23 = sp + 888 | 0; - $24 = sp + 876 | 0; - $25 = sp + 864 | 0; - $26 = sp + 852 | 0; - $27 = sp + 840 | 0; - $28 = sp + 828 | 0; - $29 = sp + 816 | 0; - $30 = sp + 804 | 0; - $31 = sp + 792 | 0; - $32 = sp + 780 | 0; - $33 = sp + 768 | 0; - $34 = sp + 756 | 0; - $35 = sp + 744 | 0; - $op2 = sp + 732 | 0; - $op1 = sp + 720 | 0; - $36 = sp + 696 | 0; - $37 = sp + 680 | 0; - $38 = sp + 668 | 0; - $39 = sp + 656 | 0; - $40 = sp + 644 | 0; - $41 = sp + 608 | 0; - $42 = sp + 596 | 0; - $43 = sp + 548 | 0; - $44 = sp + 536 | 0; - $45 = sp + 512 | 0; - $46 = sp + 500 | 0; - $47 = sp + 488 | 0; - $48 = sp + 476 | 0; - $49 = sp + 464 | 0; - $50 = sp + 440 | 0; - $51 = sp + 424 | 0; - $52 = sp + 412 | 0; - $53 = sp + 400 | 0; - $54 = sp + 388 | 0; - $55 = sp + 376 | 0; - $56 = sp + 364 | 0; - $57 = sp + 352 | 0; - $58 = sp + 340 | 0; - $59 = sp + 328 | 0; - $60 = sp + 316 | 0; - $61 = sp + 304 | 0; - $62 = sp + 292 | 0; - $63 = sp + 280 | 0; - $64 = sp + 256 | 0; - $65 = sp + 240 | 0; - $66 = sp + 228 | 0; - $67 = sp + 216 | 0; - $68 = sp + 204 | 0; - $op3 = sp + 192 | 0; - $op27 = sp + 180 | 0; - $op18 = sp + 168 | 0; - $69 = sp + 144 | 0; - $70 = sp + 132 | 0; - $71 = sp + 120 | 0; - $72 = sp + 108 | 0; - $73 = sp + 96 | 0; - $74 = sp + 84 | 0; - $75 = sp + 72 | 0; - $76 = sp + 60 | 0; - $77 = sp + 48 | 0; - $78 = sp + 36 | 0; - $79 = sp + 24 | 0; - $80 = sp; - $81 = $last; - $83 = $81 - $first | 0; - L1 : do if (($83 | 0) > 1) { - $85 = ($83 | 0) > 3; - if ($85) if ((HEAP8[$first >> 0] | 0) == 103) { - $90 = (HEAP8[$first + 1 >> 0] | 0) == 115; - $parsed_gs$0$off0 = $90; - $t$0 = $90 ? $first + 2 | 0 : $first; - } else { - $parsed_gs$0$off0 = 0; - $t$0 = $first; - } else { - $parsed_gs$0$off0 = 0; - $t$0 = $first; + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $241 = HEAP32[$wk$444 >> 2] | 0; + if (($241 | 0) == ($i$342 | 0)) { + $247 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $247; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } } - do switch (HEAP8[$t$0 >> 0] | 0) { - case 76: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $259 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0)); } - case 84: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$538 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); } - case 102: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $326 = $labelInfo + 12 + ($i$637 << 2) | 0; + $329 = $i$637 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - case 97: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 97: - { - $100 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 12743, 2); - $101 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($100, $last, $13, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13); - $$0 = ($101 | 0) == ($100 | 0) ? $first : $101; - break L1; - break; - } - case 100: - { - $103 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 12764, 1); - $104 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($103, $last, $14, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14); - $$0 = ($104 | 0) == ($103 | 0) ? $first : $104; - break L1; - break; - } - case 110: - { - $106 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 12764, 1); - $107 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($106, $last, $15, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15); - $$0 = ($107 | 0) == ($106 | 0) ? $first : $107; - break L1; - break; - } - case 78: - { - $109 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 13889, 2); - $110 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($109, $last, $16, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16); - $$0 = ($110 | 0) == ($109 | 0) ? $first : $110; - break L1; - break; - } - case 83: - { - $112 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 13892, 1); - $113 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($112, $last, $17, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17); - $$0 = ($113 | 0) == ($112 | 0) ? $first : $113; - break L1; - break; - } - case 116: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { - $121 = $first + 2 | 0; - $122 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($121, $last, $db) | 0; - if (($122 | 0) == ($121 | 0)) $$03$i486 = $first; else { - $126 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($126 | 0)) $$03$i486 = $first; else { - $128 = $126 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $128); - $129 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 13894) | 0; - HEAP32[$1 >> 2] = HEAP32[$129 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$129 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$129 + 8 >> 2]; - HEAP32[$129 >> 2] = 0; - HEAP32[$129 + 4 >> 2] = 0; - HEAP32[$129 + 8 >> 2] = 0; - $132 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$132 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$132 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$132 + 8 >> 2]; - HEAP32[$132 >> 2] = 0; - HEAP32[$132 + 4 >> 2] = 0; - HEAP32[$132 + 8 >> 2] = 0; - do if (!(HEAP8[$128 >> 0] & 1)) { - HEAP8[$128 + 1 >> 0] = 0; - HEAP8[$128 >> 0] = 0; - } else { - $139 = $126 + -16 | 0; - HEAP8[HEAP32[$139 >> 2] >> 0] = 0; - $141 = $126 + -20 | 0; - HEAP32[$141 >> 2] = 0; - $$pre$i$i$i$i466 = HEAP8[$128 >> 0] | 0; - if (!($$pre$i$i$i$i466 & 1)) { - $148 = $$pre$i$i$i$i466; - $157 = 10; - } else { - $144 = HEAP32[$128 >> 2] | 0; - $148 = $144 & 255; - $157 = ($144 & -2) + -1 | 0; - } - if (!($148 & 1)) { - $151 = ($148 & 255) >>> 1; - if (($148 & 255) < 22) { - $156 = 10; - $1746 = 1; - $176 = $151; - } else { - $156 = ($151 + 16 & 240) + -1 | 0; - $1746 = 1; - $176 = $151; - } - } else { - $156 = 10; - $1746 = 0; - $176 = 0; - } - if (($156 | 0) != ($157 | 0)) { - if (($156 | 0) == 10) { - $163 = $128 + 1 | 0; - $164 = HEAP32[$139 >> 2] | 0; - if ($1746) { - _memcpy($163 | 0, $164 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0; - _free($164); - } else { - HEAP8[$163 >> 0] = HEAP8[$164 >> 0] | 0; - _free($164); - } - HEAP8[$128 >> 0] = $176 << 1; - break; - } - $160 = $156 + 1 | 0; - $161 = _malloc($160) | 0; - if (!($156 >>> 0 <= $157 >>> 0 & ($161 | 0) == 0)) { - if ($1746) _memcpy($161 | 0, $128 + 1 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0; else { - $173 = HEAP32[$139 >> 2] | 0; - HEAP8[$161 >> 0] = HEAP8[$173 >> 0] | 0; - _free($173); - } - HEAP32[$128 >> 2] = $160 | 1; - HEAP32[$141 >> 2] = $176; - HEAP32[$139 >> 2] = $161; - } - } - } while (0); - HEAP32[$128 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$128 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$128 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$03$i486 = $122; + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 3) + 8) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($44 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $44; + $47 = ($44 << 16 >> 16) * 7 | 0; + $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; + $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; + $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; + HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $68 = $67 << 16 >> 16; + $69 = $67 << 16 >> 16 > 0; + if ($63 << 16 >> 16 <= 0) { + if ($69) { + HEAP16[$pnt2$368 >> 1] = $67; + $169 = $68 * 7 | 0; + $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; + $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; + $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; + $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; + if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($189 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $189; + $192 = ($189 << 16 >> 16) * 7 | 0; + $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; + $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; + $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; + HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; + $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; + if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } + HEAP32[$206 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $209 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $209; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; + $214 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $209; + break; } - } else $$03$i486 = $first; else $$03$i486 = $first; else $$03$i486 = $first; - $$0 = $$03$i486; - break L1; - break; - } - case 122: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 122) { - $187 = $first + 2 | 0; - $188 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($187, $last, $db) | 0; - if (($188 | 0) == ($187 | 0)) $$03$i456 = $first; else { - $192 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($192 | 0)) $$03$i456 = $first; else { - $194 = $192 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $194); - $195 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 13894) | 0; - HEAP32[$1 >> 2] = HEAP32[$195 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$195 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$195 + 8 >> 2]; - HEAP32[$195 >> 2] = 0; - HEAP32[$195 + 4 >> 2] = 0; - HEAP32[$195 + 8 >> 2] = 0; - $198 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$198 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$198 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$198 + 8 >> 2]; - HEAP32[$198 >> 2] = 0; - HEAP32[$198 + 4 >> 2] = 0; - HEAP32[$198 + 8 >> 2] = 0; - do if (!(HEAP8[$194 >> 0] & 1)) { - HEAP8[$194 + 1 >> 0] = 0; - HEAP8[$194 >> 0] = 0; - } else { - $205 = $192 + -16 | 0; - HEAP8[HEAP32[$205 >> 2] >> 0] = 0; - $207 = $192 + -20 | 0; - HEAP32[$207 >> 2] = 0; - $$pre$i$i$i$i436 = HEAP8[$194 >> 0] | 0; - if (!($$pre$i$i$i$i436 & 1)) { - $214 = $$pre$i$i$i$i436; - $223 = 10; - } else { - $210 = HEAP32[$194 >> 2] | 0; - $214 = $210 & 255; - $223 = ($210 & -2) + -1 | 0; - } - if (!($214 & 1)) { - $217 = ($214 & 255) >>> 1; - if (($214 & 255) < 22) { - $1747 = 1; - $222 = 10; - $242 = $217; - } else { - $1747 = 1; - $222 = ($217 + 16 & 240) + -1 | 0; - $242 = $217; - } - } else { - $1747 = 0; - $222 = 10; - $242 = 0; - } - if (($222 | 0) != ($223 | 0)) { - if (($222 | 0) == 10) { - $229 = $194 + 1 | 0; - $230 = HEAP32[$205 >> 2] | 0; - if ($1747) { - _memcpy($229 | 0, $230 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0; - _free($230); - } else { - HEAP8[$229 >> 0] = HEAP8[$230 >> 0] | 0; - _free($230); - } - HEAP8[$194 >> 0] = $242 << 1; - break; - } - $226 = $222 + 1 | 0; - $227 = _malloc($226) | 0; - if (!($222 >>> 0 <= $223 >>> 0 & ($227 | 0) == 0)) { - if ($1747) _memcpy($227 | 0, $194 + 1 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0; else { - $239 = HEAP32[$205 >> 2] | 0; - HEAP8[$227 >> 0] = HEAP8[$239 >> 0] | 0; - _free($239); - } - HEAP32[$194 >> 2] = $226 | 1; - HEAP32[$207 >> 2] = $242; - HEAP32[$205 >> 2] = $227; - } - } - } while (0); - HEAP32[$194 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$194 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$194 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$03$i456 = $188; + } + if ($69) { + $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; + if (($72 | 0) > ($75 | 0)) { + HEAP16[$pnt2$368 >> 1] = $75; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $92 = $75; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $92 = $75; + } else { + HEAP16[$pnt2$368 >> 1] = $72; + if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $92 = $72; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $92 = $72; + } + $94 = ($92 << 16 >> 16) * 7 | 0; + $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; + $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; + $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; + HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($110 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $63; + $150 = $64 * 7 | 0; + $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; + $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; + $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; + $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; + if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($115 | 0) > ($118 | 0)) { + HEAP16[$pnt2$368 >> 1] = $118; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $135 = $118; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $135 = $118; + } else { + HEAP16[$pnt2$368 >> 1] = $115; + if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $135 = $115; + break; + } else $wk$347 = $wk$347 + 4 | 0; } - } - } else $$03$i456 = $first; else $$03$i456 = $first; else $$03$i456 = $first; - $$0 = $$03$i456; - break L1; + } else $135 = $115; + } + $137 = ($135 << 16 >> 16) * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $229 = $pnt$169 + 8 | 0; + $230 = $pnt2$368 + 2 | 0; + $231 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $231; + $pnt$1$lcssa = $229; + $pnt2$3$lcssa = $230; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$167 = $231; + $pnt$169 = $229; + $pnt2$368 = $230; + $wk_max$160 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; } - case 99: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 99: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { - $256 = $first + 2 | 0; - $257 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($256, $last, $db) | 0; - if (($257 | 0) == ($256 | 0)) $$06$i426 = $first; else { - $259 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($257, $last, $db) | 0; - if (($259 | 0) == ($257 | 0)) $$06$i426 = $first; else { - $261 = $db + 4 | 0; - $262 = HEAP32[$261 >> 2] | 0; - if ((($262 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i426 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $262 + -24 | 0); - $270 = HEAP32[$261 >> 2] | 0; - $271 = $270 + -24 | 0; - $273 = $270; - do { - $272 = $273 + -24 | 0; - HEAP32[$261 >> 2] = $272; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272); - $273 = HEAP32[$261 >> 2] | 0; - } while (($273 | 0) != ($271 | 0)); - $275 = $270 + -48 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $275); - $276 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 13904) | 0; - HEAP32[$5 >> 2] = HEAP32[$276 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$276 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$276 + 8 >> 2]; - HEAP32[$276 >> 2] = 0; - HEAP32[$276 + 4 >> 2] = 0; - HEAP32[$276 + 8 >> 2] = 0; - $279 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0; - HEAP32[$4 >> 2] = HEAP32[$279 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$279 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$279 + 8 >> 2]; - HEAP32[$279 >> 2] = 0; - HEAP32[$279 + 4 >> 2] = 0; - HEAP32[$279 + 8 >> 2] = 0; - $282 = HEAP8[$0 >> 0] | 0; - $284 = ($282 & 1) == 0; - $294 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $284 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $284 ? ($282 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - HEAP32[$3 >> 2] = HEAP32[$294 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$294 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$294 + 8 >> 2]; - HEAP32[$294 >> 2] = 0; - HEAP32[$294 + 4 >> 2] = 0; - HEAP32[$294 + 8 >> 2] = 0; - $297 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0; - HEAP32[$2 >> 2] = HEAP32[$297 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$297 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$297 + 8 >> 2]; - HEAP32[$297 >> 2] = 0; - HEAP32[$297 + 4 >> 2] = 0; - HEAP32[$297 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($275, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$06$i426 = $259; - } - } - } - } else $$06$i426 = $first; else $$06$i426 = $first; else $$06$i426 = $first; - $$0 = $$06$i426; - break L1; - break; - } - case 108: - { - L97 : do if ($85) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 108) { - $305 = $first + 2 | 0; - $306 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($305, $last, $db) | 0; - if (($306 | 0) == ($305 | 0) | ($306 | 0) == ($last | 0)) $$2$i398 = $first; else { - $310 = $db + 4 | 0; - $311 = HEAP32[$310 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($311 | 0)) $$2$i398 = $first; else { - $314 = $311 + -12 | 0; - $315 = HEAP8[$314 >> 0] | 0; - $317 = ($315 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($311 + -24 | 0, $317 ? $314 + 1 | 0 : HEAP32[$311 + -4 >> 2] | 0, $317 ? ($315 & 255) >>> 1 : HEAP32[$311 + -8 >> 2] | 0) | 0; - $327 = HEAP32[$310 >> 2] | 0; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - $330 = $327 + -12 | 0; - do if (!(HEAP8[$330 >> 0] & 1)) { - HEAP8[$330 + 1 >> 0] = 0; - HEAP8[$330 >> 0] = 0; - } else { - $335 = $327 + -4 | 0; - HEAP8[HEAP32[$335 >> 2] >> 0] = 0; - $337 = $327 + -8 | 0; - HEAP32[$337 >> 2] = 0; - $$pre$i$i$i$i372 = HEAP8[$330 >> 0] | 0; - if (!($$pre$i$i$i$i372 & 1)) { - $344 = $$pre$i$i$i$i372; - $353 = 10; - } else { - $340 = HEAP32[$330 >> 2] | 0; - $344 = $340 & 255; - $353 = ($340 & -2) + -1 | 0; - } - if (!($344 & 1)) { - $347 = ($344 & 255) >>> 1; - if (($344 & 255) < 22) { - $1748 = 1; - $352 = 10; - $372 = $347; - } else { - $1748 = 1; - $352 = ($347 + 16 & 240) + -1 | 0; - $372 = $347; - } - } else { - $1748 = 0; - $352 = 10; - $372 = 0; - } - if (($352 | 0) != ($353 | 0)) { - if (($352 | 0) == 10) { - $359 = $330 + 1 | 0; - $360 = HEAP32[$335 >> 2] | 0; - if ($1748) { - _memcpy($359 | 0, $360 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0; - _free($360); - } else { - HEAP8[$359 >> 0] = HEAP8[$360 >> 0] | 0; - _free($360); - } - HEAP8[$330 >> 0] = $372 << 1; - break; - } - $356 = $352 + 1 | 0; - $357 = _malloc($356) | 0; - if (!($352 >>> 0 <= $353 >>> 0 & ($357 | 0) == 0)) { - if ($1748) _memcpy($357 | 0, $330 + 1 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0; else { - $369 = HEAP32[$335 >> 2] | 0; - HEAP8[$357 >> 0] = HEAP8[$369 >> 0] | 0; - _free($369); - } - HEAP32[$330 >> 2] = $356 | 1; - HEAP32[$337 >> 2] = $372; - HEAP32[$335 >> 2] = $357; - } - } - } while (0); - HEAP32[$330 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$330 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$330 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$310 >> 2] | 0) + -24 | 0, 12714) | 0; - $379 = $1 + 4 | 0; - $380 = $1 + 8 | 0; - $381 = $1 + 1 | 0; - L127 : do if ((HEAP8[$306 >> 0] | 0) == 69) $t$0$i390$lcssa = $306; else { - $t$0$i390556 = $306; - while (1) { - $384 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i390556, $last, $db) | 0; - if (($384 | 0) == ($t$0$i390556 | 0) | ($384 | 0) == ($last | 0)) { - $$2$i398 = $first; - break L97; - } - $388 = HEAP32[$310 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($388 | 0)) { - $$2$i398 = $first; - break L97; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $388 + -24 | 0); - $391 = HEAP32[$310 >> 2] | 0; - $392 = $391 + -24 | 0; - $394 = $391; - do { - $393 = $394 + -24 | 0; - HEAP32[$310 >> 2] = $393; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($393); - $394 = HEAP32[$310 >> 2] | 0; - } while (($394 | 0) != ($392 | 0)); - $396 = HEAP8[$1 >> 0] | 0; - $398 = ($396 & 1) == 0; - $402 = $398 ? ($396 & 255) >>> 1 : HEAP32[$379 >> 2] | 0; - if ($402) { - if ((HEAP32[$db >> 2] | 0) == ($392 | 0)) break; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($391 + -48 | 0, $398 ? $381 : HEAP32[$380 >> 2] | 0, $402) | 0; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - if ((HEAP8[$384 >> 0] | 0) == 69) { - $t$0$i390$lcssa = $384; - break L127; - } else $t$0$i390556 = $384; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - $$2$i398 = $first; - break L97; - } while (0); - $412 = HEAP32[$310 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($412 | 0)) $$2$i398 = $first; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($412 + -24 | 0, 12619) | 0; - $$2$i398 = $t$0$i390$lcssa + 1 | 0; - } - } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $238 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $240 = HEAP32[$wk$444 >> 2] | 0; + if (($240 | 0) == ($i$342 | 0)) { + $246 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $246; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $250 = $labelInfo + 8 | 0; + $251 = $j$1$lcssa + -1 | 0; + HEAP32[$250 >> 2] = $251; + if (!$251) $$0 = 0; else { + _memset($238 | 0, 0, $251 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $258 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $273 = $i$538 * 7 | 0; + $276 = $labelInfo + 12 + ($272 << 2) | 0; + HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); + $283 = $272 << 1; + $284 = $labelInfo + 655376 + ($283 << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); + $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; + HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); + $295 = $272 << 2; + $296 = $labelInfo + 131084 + ($295 << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; + $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; + $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; + if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$250 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $325 = $labelInfo + 12 + ($i$637 << 2) | 0; + $328 = $i$637 << 1; + $329 = $labelInfo + 655376 + ($328 << 3) | 0; + HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); + $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $31 = ($12 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 3) + 8) | 0; + $pnt2$279 = $2 + ($20 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($31) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($44 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $44; + $47 = ($44 << 16 >> 16) * 7 | 0; + $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; + $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; + $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; + HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $68 = $67 << 16 >> 16; + $69 = $67 << 16 >> 16 > 0; + if ($63 << 16 >> 16 <= 0) { + if ($69) { + HEAP16[$pnt2$368 >> 1] = $67; + $169 = $68 * 7 | 0; + $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; + $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; + $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; + $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; + if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - } else $$2$i398 = $first; else $$2$i398 = $first; else $$2$i398 = $first; while (0); - $$0 = $$2$i398; - break L1; - break; - } - case 109: - { - $416 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 13919, 1); - $417 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($416, $last, $18, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18); - $$0 = ($417 | 0) == ($416 | 0) ? $first : $417; - break L1; - break; - } - case 111: - { - $419 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($19, 12928, 1); - $420 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($419, $last, $19, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($19); - $$0 = ($420 | 0) == ($419 | 0) ? $first : $420; - break L1; - break; - } - case 118: - { - L146 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 118) { - $428 = $db + 63 | 0; - $429 = HEAP8[$428 >> 0] | 0; - HEAP8[$428 >> 0] = 0; - $430 = $first + 2 | 0; - $431 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($430, $last, $db) | 0; - HEAP8[$428 >> 0] = $429; - if (($431 | 0) == ($430 | 0) | ($431 | 0) == ($last | 0)) $$311$i = $first; else { - if ((HEAP8[$431 >> 0] | 0) == 95) { - $438 = $431 + 1 | 0; - if (($438 | 0) == ($last | 0)) { - $$311$i = $first; - break; + $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($189 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $189; + $192 = ($189 << 16 >> 16) * 7 | 0; + $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; + $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; + $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; + HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; + $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; + if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$206 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $209 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $209; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; + $214 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $209; + break; + } + } + if ($69) { + $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; + if (($72 | 0) > ($75 | 0)) { + HEAP16[$pnt2$368 >> 1] = $75; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $19; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $92 = $75; + break; + } else $wk$057 = $wk$057 + 4 | 0; } - do if ((HEAP8[$438 >> 0] | 0) == 69) { - $442 = $db + 4 | 0; - $443 = HEAP32[$442 >> 2] | 0; - $445 = HEAP32[$db + 8 >> 2] | 0; - if ($443 >>> 0 < $445 >>> 0) { - HEAP32[$443 >> 2] = 0; - HEAP32[$443 + 4 >> 2] = 0; - HEAP32[$443 + 8 >> 2] = 0; - HEAP32[$443 + 12 >> 2] = 0; - HEAP32[$443 + 16 >> 2] = 0; - HEAP32[$443 + 20 >> 2] = 0; - HEAP32[$443 >> 2] = 0; - HEAP32[$443 + 4 >> 2] = 0; - HEAP32[$443 + 8 >> 2] = 0; - $449 = $443 + 12 | 0; - HEAP32[$449 >> 2] = 0; - HEAP32[$449 + 4 >> 2] = 0; - HEAP32[$449 + 8 >> 2] = 0; - HEAP32[$442 >> 2] = (HEAP32[$442 >> 2] | 0) + 24; - $t$1$i350 = $438; + } else $92 = $75; + } else { + HEAP16[$pnt2$368 >> 1] = $72; + if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $19; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $92 = $72; break; - } - $457 = HEAP32[$db >> 2] | 0; - $458 = $443 - $457 | 0; - $459 = ($458 | 0) / 24 | 0; - $460 = $459 + 1 | 0; - if (($458 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $464 = ($445 - $457 | 0) / 24 | 0; - if ($464 >>> 0 < 1073741823) { - $466 = $464 << 1; - $$0$i$i$i$i348 = $466 >>> 0 < $460 >>> 0 ? $460 : $466; - } else $$0$i$i$i$i348 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i348, $459, $db + 12 | 0); - $469 = $0 + 8 | 0; - $470 = HEAP32[$469 >> 2] | 0; - HEAP32[$470 >> 2] = 0; - HEAP32[$470 + 4 >> 2] = 0; - HEAP32[$470 + 8 >> 2] = 0; - HEAP32[$470 + 12 >> 2] = 0; - HEAP32[$470 + 16 >> 2] = 0; - HEAP32[$470 + 20 >> 2] = 0; - HEAP32[$470 >> 2] = 0; - HEAP32[$470 + 4 >> 2] = 0; - HEAP32[$470 + 8 >> 2] = 0; - $473 = $470 + 12 | 0; - HEAP32[$473 >> 2] = 0; - HEAP32[$473 + 4 >> 2] = 0; - HEAP32[$473 + 8 >> 2] = 0; - HEAP32[$469 >> 2] = $470 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); - $t$1$i350 = $438; - } else { - $t$0$i349567 = $438; - while (1) { - $477 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i349567, $last, $db) | 0; - if (($477 | 0) == ($t$0$i349567 | 0) | ($477 | 0) == ($last | 0)) { - $$311$i = $first; - break L146; - } - if ((HEAP8[$477 >> 0] | 0) == 69) { - $t$1$i350 = $477; - break; - } else $t$0$i349567 = $477; - } - } while (0); - $t$2$i351 = $t$1$i350 + 1 | 0; - } else { - $436 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($431, $last, $db) | 0; - if (($436 | 0) == ($431 | 0)) { - $$311$i = $first; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $92 = $72; + } + $94 = ($92 << 16 >> 16) * 7 | 0; + $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; + $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; + $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; + HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($110 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $63; + $150 = $64 * 7 | 0; + $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; + $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; + $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; + $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; + if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($115 | 0) > ($118 | 0)) { + HEAP16[$pnt2$368 >> 1] = $118; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $19; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $135 = $118; break; - } else $t$2$i351 = $436; + } else $wk$250 = $wk$250 + 4 | 0; } - $482 = $db + 4 | 0; - $483 = HEAP32[$482 >> 2] | 0; - if ((($483 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$311$i = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $483 + -24 | 0); - $491 = HEAP32[$482 >> 2] | 0; - $492 = $491 + -24 | 0; - $494 = $491; - do { - $493 = $494 + -24 | 0; - HEAP32[$482 >> 2] = $493; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($493); - $494 = HEAP32[$482 >> 2] | 0; - } while (($494 | 0) != ($492 | 0)); - $496 = $491 + -48 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $496); - $497 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($7, 0, 12714) | 0; - HEAP32[$6 >> 2] = HEAP32[$497 >> 2]; - HEAP32[$6 + 4 >> 2] = HEAP32[$497 + 4 >> 2]; - HEAP32[$6 + 8 >> 2] = HEAP32[$497 + 8 >> 2]; - HEAP32[$497 >> 2] = 0; - HEAP32[$497 + 4 >> 2] = 0; - HEAP32[$497 + 8 >> 2] = 0; - $500 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 13921) | 0; - HEAP32[$5 >> 2] = HEAP32[$500 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$500 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$500 + 8 >> 2]; - HEAP32[$500 >> 2] = 0; - HEAP32[$500 + 4 >> 2] = 0; - HEAP32[$500 + 8 >> 2] = 0; - $503 = HEAP8[$1 >> 0] | 0; - $505 = ($503 & 1) == 0; - $515 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($5, $505 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $505 ? ($503 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; - HEAP32[$4 >> 2] = HEAP32[$515 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$515 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$515 + 8 >> 2]; - HEAP32[$515 >> 2] = 0; - HEAP32[$515 + 4 >> 2] = 0; - HEAP32[$515 + 8 >> 2] = 0; - $518 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($4, 12619) | 0; - HEAP32[$3 >> 2] = HEAP32[$518 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$518 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$518 + 8 >> 2]; - HEAP32[$518 >> 2] = 0; - HEAP32[$518 + 4 >> 2] = 0; - HEAP32[$518 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($496, $2); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - $$311$i = $t$2$i351; + } else $135 = $118; + } else { + HEAP16[$pnt2$368 >> 1] = $115; + if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $19; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $135 = $115; + break; + } else $wk$347 = $wk$347 + 4 | 0; } - } - } else $$311$i = $first; else $$311$i = $first; else $$311$i = $first; while (0); - $$0 = $$311$i; - break L1; + } else $135 = $115; + } + $137 = ($135 << 16 >> 16) * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $229 = $pnt$169 + 8 | 0; + $230 = $pnt2$368 + 2 | 0; + $231 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($12 | 0)) { + $dpnt$1$lcssa = $231; + $pnt$1$lcssa = $229; + $pnt2$3$lcssa = $230; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$167 = $231; + $pnt$169 = $229; + $pnt2$368 = $230; + $wk_max$160 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; } - case 100: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 97: - { - $524 = $t$0 + 2 | 0; - $525 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($524, $last, $db) | 0; - if (($525 | 0) == ($524 | 0)) { - $$0 = $first; - break L1; - } - $528 = $db + 4 | 0; - $529 = HEAP32[$528 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($529 | 0)) { - $$0 = $first; - break L1; - } - $531 = $529 + -24 | 0; - if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, 12902, 2); else { - HEAP32[$22 >> 2] = 0; - HEAP32[$22 + 4 >> 2] = 0; - HEAP32[$22 + 8 >> 2] = 0; - } - $534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 13924) | 0; - HEAP32[$21 >> 2] = HEAP32[$534 >> 2]; - HEAP32[$21 + 4 >> 2] = HEAP32[$534 + 4 >> 2]; - HEAP32[$21 + 8 >> 2] = HEAP32[$534 + 8 >> 2]; - HEAP32[$534 >> 2] = 0; - HEAP32[$534 + 4 >> 2] = 0; - HEAP32[$534 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, (HEAP32[$528 >> 2] | 0) + -24 | 0); - $539 = HEAP8[$23 >> 0] | 0; - $541 = ($539 & 1) == 0; - $551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $541 ? $23 + 1 | 0 : HEAP32[$23 + 8 >> 2] | 0, $541 ? ($539 & 255) >>> 1 : HEAP32[$23 + 4 >> 2] | 0) | 0; - HEAP32[$20 >> 2] = HEAP32[$551 >> 2]; - HEAP32[$20 + 4 >> 2] = HEAP32[$551 + 4 >> 2]; - HEAP32[$20 + 8 >> 2] = HEAP32[$551 + 8 >> 2]; - HEAP32[$551 >> 2] = 0; - HEAP32[$551 + 4 >> 2] = 0; - HEAP32[$551 + 8 >> 2] = 0; - do if (!(HEAP8[$531 >> 0] & 1)) { - HEAP8[$531 + 1 >> 0] = 0; - HEAP8[$531 >> 0] = 0; - } else { - $558 = $529 + -16 | 0; - HEAP8[HEAP32[$558 >> 2] >> 0] = 0; - $560 = $529 + -20 | 0; - HEAP32[$560 >> 2] = 0; - $$pre$i$i$i = HEAP8[$531 >> 0] | 0; - if (!($$pre$i$i$i & 1)) { - $567 = $$pre$i$i$i; - $576 = 10; - } else { - $563 = HEAP32[$531 >> 2] | 0; - $567 = $563 & 255; - $576 = ($563 & -2) + -1 | 0; + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $238 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $19; + while (1) { + $240 = HEAP32[$wk$444 >> 2] | 0; + if (($240 | 0) == ($i$342 | 0)) { + $246 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $246; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $250 = $labelInfo + 8 | 0; + $251 = $j$1$lcssa + -1 | 0; + HEAP32[$250 >> 2] = $251; + if (!$251) $$0 = 0; else { + _memset($238 | 0, 0, $251 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $258 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $273 = $i$538 * 7 | 0; + $276 = $labelInfo + 12 + ($272 << 2) | 0; + HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); + $283 = $272 << 1; + $284 = $labelInfo + 655376 + ($283 << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); + $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; + HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); + $295 = $272 << 2; + $296 = $labelInfo + 131084 + ($295 << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; + $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; + $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; + if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$250 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $325 = $labelInfo + 12 + ($i$637 << 2) | 0; + $328 = $i$637 << 1; + $329 = $labelInfo + 655376 + ($328 << 3) | 0; + HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); + $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; + HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; + do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$367 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - if (!($567 & 1)) { - $570 = ($567 & 255) >>> 1; - if (($567 & 255) < 22) { - $1749 = 1; - $575 = 10; - $595 = $570; - } else { - $1749 = 1; - $575 = ($570 + 16 & 240) + -1 | 0; - $595 = $570; + $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } + HEAP32[$208 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; } else { - $1749 = 0; - $575 = 10; - $595 = 0; + $211 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $211; + break; } - if (($575 | 0) != ($576 | 0)) { - if (($575 | 0) == 10) { - $582 = $531 + 1 | 0; - $583 = HEAP32[$558 >> 2] | 0; - if ($1749) { - _memcpy($582 | 0, $583 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0; - _free($583); - } else { - HEAP8[$582 >> 0] = HEAP8[$583 >> 0] | 0; - _free($583); - } - HEAP8[$531 >> 0] = $595 << 1; - break; - } - $579 = $575 + 1 | 0; - $580 = _malloc($579) | 0; - if (!($575 >>> 0 <= $576 >>> 0 & ($580 | 0) == 0)) { - if ($1749) _memcpy($580 | 0, $531 + 1 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0; else { - $592 = HEAP32[$558 >> 2] | 0; - HEAP8[$580 >> 0] = HEAP8[$592 >> 0] | 0; - _free($592); + } + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$367 >> 1] = $77; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $94 = $77; + break; + } else $wk$056 = $wk$056 + 4 | 0; } - HEAP32[$531 >> 2] = $579 | 1; - HEAP32[$560 >> 2] = $595; - HEAP32[$558 >> 2] = $580; - } - } - } while (0); - HEAP32[$531 >> 2] = HEAP32[$20 >> 2]; - HEAP32[$531 + 4 >> 2] = HEAP32[$20 + 4 >> 2]; - HEAP32[$531 + 8 >> 2] = HEAP32[$20 + 8 >> 2]; - HEAP32[$20 >> 2] = 0; - HEAP32[$20 + 4 >> 2] = 0; - HEAP32[$20 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); - $$0 = $525; - break L1; - break; - } - case 99: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { - $606 = $first + 2 | 0; - $607 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($606, $last, $db) | 0; - if (($607 | 0) == ($606 | 0)) $$06$i345 = $first; else { - $609 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($607, $last, $db) | 0; - if (($609 | 0) == ($607 | 0)) $$06$i345 = $first; else { - $611 = $db + 4 | 0; - $612 = HEAP32[$611 >> 2] | 0; - if ((($612 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i345 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $612 + -24 | 0); - $620 = HEAP32[$611 >> 2] | 0; - $621 = $620 + -24 | 0; - $623 = $620; - do { - $622 = $623 + -24 | 0; - HEAP32[$611 >> 2] = $622; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($622); - $623 = HEAP32[$611 >> 2] | 0; - } while (($623 | 0) != ($621 | 0)); - $625 = $620 + -48 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $625); - $626 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 13934) | 0; - HEAP32[$5 >> 2] = HEAP32[$626 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$626 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$626 + 8 >> 2]; - HEAP32[$626 >> 2] = 0; - HEAP32[$626 + 4 >> 2] = 0; - HEAP32[$626 + 8 >> 2] = 0; - $629 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0; - HEAP32[$4 >> 2] = HEAP32[$629 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$629 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$629 + 8 >> 2]; - HEAP32[$629 >> 2] = 0; - HEAP32[$629 + 4 >> 2] = 0; - HEAP32[$629 + 8 >> 2] = 0; - $632 = HEAP8[$0 >> 0] | 0; - $634 = ($632 & 1) == 0; - $644 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $634 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $634 ? ($632 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - HEAP32[$3 >> 2] = HEAP32[$644 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$644 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$644 + 8 >> 2]; - HEAP32[$644 >> 2] = 0; - HEAP32[$644 + 4 >> 2] = 0; - HEAP32[$644 + 8 >> 2] = 0; - $647 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0; - HEAP32[$2 >> 2] = HEAP32[$647 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$647 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$647 + 8 >> 2]; - HEAP32[$647 >> 2] = 0; - HEAP32[$647 + 4 >> 2] = 0; - HEAP32[$647 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($625, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$06$i345 = $609; + } else $94 = $77; + } else { + HEAP16[$pnt2$367 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $94 = $74; + break; + } else $wk$153 = $wk$153 + 4 | 0; } - } + } else $94 = $74; } - } else $$06$i345 = $first; else $$06$i345 = $first; else $$06$i345 = $first; - $$0 = $$06$i345; - break L1; - break; - } - case 101: - { - $650 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($24, 12759, 1); - $651 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($650, $last, $24, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24); - $$0 = ($651 | 0) == ($650 | 0) ? $first : $651; - break L1; - break; - } - case 108: - { - $653 = $t$0 + 2 | 0; - $654 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($653, $last, $db) | 0; - if (($654 | 0) == ($653 | 0)) { - $$0 = $first; - break L1; - } - $657 = $db + 4 | 0; - $658 = HEAP32[$657 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($658 | 0)) { - $$0 = $first; - break L1; + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $660 = $658 + -24 | 0; - if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($27, 12902, 2); else { - HEAP32[$27 >> 2] = 0; - HEAP32[$27 + 4 >> 2] = 0; - HEAP32[$27 + 8 >> 2] = 0; + $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $663 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($27, 13948) | 0; - HEAP32[$26 >> 2] = HEAP32[$663 >> 2]; - HEAP32[$26 + 4 >> 2] = HEAP32[$663 + 4 >> 2]; - HEAP32[$26 + 8 >> 2] = HEAP32[$663 + 8 >> 2]; - HEAP32[$663 >> 2] = 0; - HEAP32[$663 + 4 >> 2] = 0; - HEAP32[$663 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($28, (HEAP32[$657 >> 2] | 0) + -24 | 0); - $668 = HEAP8[$28 >> 0] | 0; - $670 = ($668 & 1) == 0; - $680 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $670 ? $28 + 1 | 0 : HEAP32[$28 + 8 >> 2] | 0, $670 ? ($668 & 255) >>> 1 : HEAP32[$28 + 4 >> 2] | 0) | 0; - HEAP32[$25 >> 2] = HEAP32[$680 >> 2]; - HEAP32[$25 + 4 >> 2] = HEAP32[$680 + 4 >> 2]; - HEAP32[$25 + 8 >> 2] = HEAP32[$680 + 8 >> 2]; - HEAP32[$680 >> 2] = 0; - HEAP32[$680 + 4 >> 2] = 0; - HEAP32[$680 + 8 >> 2] = 0; - do if (!(HEAP8[$660 >> 0] & 1)) { - HEAP8[$660 + 1 >> 0] = 0; - HEAP8[$660 >> 0] = 0; - } else { - $687 = $658 + -16 | 0; - HEAP8[HEAP32[$687 >> 2] >> 0] = 0; - $689 = $658 + -20 | 0; - HEAP32[$689 >> 2] = 0; - $$pre$i$i$i87 = HEAP8[$660 >> 0] | 0; - if (!($$pre$i$i$i87 & 1)) { - $696 = $$pre$i$i$i87; - $705 = 10; - } else { - $692 = HEAP32[$660 >> 2] | 0; - $696 = $692 & 255; - $705 = ($692 & -2) + -1 | 0; - } - if (!($696 & 1)) { - $699 = ($696 & 255) >>> 1; - if (($696 & 255) < 22) { - $1750 = 1; - $704 = 10; - $724 = $699; - } else { - $1750 = 1; - $704 = ($699 + 16 & 240) + -1 | 0; - $724 = $699; - } - } else { - $1750 = 0; - $704 = 10; - $724 = 0; - } - if (($704 | 0) != ($705 | 0)) { - if (($704 | 0) == 10) { - $711 = $660 + 1 | 0; - $712 = HEAP32[$687 >> 2] | 0; - if ($1750) { - _memcpy($711 | 0, $712 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0; - _free($712); - } else { - HEAP8[$711 >> 0] = HEAP8[$712 >> 0] | 0; - _free($712); - } - HEAP8[$660 >> 0] = $724 << 1; - break; - } - $708 = $704 + 1 | 0; - $709 = _malloc($708) | 0; - if (!($704 >>> 0 <= $705 >>> 0 & ($709 | 0) == 0)) { - if ($1750) _memcpy($709 | 0, $660 + 1 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0; else { - $721 = HEAP32[$687 >> 2] | 0; - HEAP8[$709 >> 0] = HEAP8[$721 >> 0] | 0; - _free($721); - } - HEAP32[$660 >> 2] = $708 | 1; - HEAP32[$689 >> 2] = $724; - HEAP32[$687 >> 2] = $709; - } - } - } while (0); - HEAP32[$660 >> 2] = HEAP32[$25 >> 2]; - HEAP32[$660 + 4 >> 2] = HEAP32[$25 + 4 >> 2]; - HEAP32[$660 + 8 >> 2] = HEAP32[$25 + 8 >> 2]; - HEAP32[$25 >> 2] = 0; - HEAP32[$25 + 4 >> 2] = 0; - HEAP32[$25 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($25); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($27); - $$0 = $654; - break L1; - break; - } - case 110: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; - } - case 115: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 115) { - $736 = $first + 2 | 0; - $737 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($736, $last, $db) | 0; - if (($737 | 0) == ($736 | 0)) $$02$i317 = $first; else { - $739 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($737, $last, $db) | 0; - if (($739 | 0) == ($737 | 0)) $$02$i317 = $first; else { - $741 = $db + 4 | 0; - $742 = HEAP32[$741 >> 2] | 0; - if ((($742 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i317 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $742 + -24 | 0); - $750 = HEAP32[$741 >> 2] | 0; - $751 = $750 + -24 | 0; - $753 = $750; - do { - $752 = $753 + -24 | 0; - HEAP32[$741 >> 2] = $752; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($752); - $753 = HEAP32[$741 >> 2] | 0; - } while (($753 | 0) != ($751 | 0)); - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 13956, $0); - $756 = HEAP8[$1 >> 0] | 0; - $758 = ($756 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($750 + -48 | 0, $758 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $758 ? ($756 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$02$i317 = $739; - } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$367 >> 1] = $120; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $137 = $120; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - } - } else $$02$i317 = $first; else $$02$i317 = $first; else $$02$i317 = $first; - $$0 = $$02$i317; - break L1; - break; - } - case 116: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { - $774 = $first + 2 | 0; - $775 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($774, $last, $db) | 0; - if (($775 | 0) == ($774 | 0)) $$02$i310 = $first; else { - $777 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($775, $last, $db) | 0; - if (($777 | 0) == ($775 | 0)) $$02$i310 = $first; else { - $779 = $db + 4 | 0; - $780 = HEAP32[$779 >> 2] | 0; - if ((($780 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i310 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $780 + -24 | 0); - $788 = HEAP32[$779 >> 2] | 0; - $789 = $788 + -24 | 0; - $791 = $788; - do { - $790 = $791 + -24 | 0; - HEAP32[$779 >> 2] = $790; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($790); - $791 = HEAP32[$779 >> 2] | 0; - } while (($791 | 0) != ($789 | 0)); - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 18335, $0); - $794 = HEAP8[$1 >> 0] | 0; - $796 = ($794 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($788 + -48 | 0, $796 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $796 ? ($794 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$02$i310 = $777; - } + } else $137 = $120; + } else { + HEAP16[$pnt2$367 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $137 = $117; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - } - } else $$02$i310 = $first; else $$02$i310 = $first; else $$02$i310 = $first; - $$0 = $$02$i310; - break L1; - break; - } - case 118: - { - $806 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($29, 13959, 1); - $807 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($806, $last, $29, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29); - $$0 = ($807 | 0) == ($806 | 0) ? $first : $807; - break L1; - break; - } - case 86: - { - $809 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($30, 13961, 2); - $810 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($809, $last, $30, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30); - $$0 = ($810 | 0) == ($809 | 0) ? $first : $810; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; - } - case 101: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 111: - { - $815 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($31, 13964, 1); - $816 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($815, $last, $31, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($31); - $$0 = ($816 | 0) == ($815 | 0) ? $first : $816; - break L1; - break; - } - case 79: - { - $818 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($32, 13966, 2); - $819 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($818, $last, $32, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32); - $$0 = ($819 | 0) == ($818 | 0) ? $first : $819; - break L1; - break; - } - case 113: - { - $821 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($33, 13969, 2); - $822 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($821, $last, $33, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33); - $$0 = ($822 | 0) == ($821 | 0) ? $first : $822; - break L1; + } else $137 = $117; + } + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $231 = $pnt$168 + 2 | 0; + $232 = $pnt2$367 + 2 | 0; + $233 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$166 = $233; + $pnt$168 = $231; + $pnt2$367 = $232; + $wk_max$159 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 103: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 101: - { - $827 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($34, 13972, 2); - $828 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($827, $last, $34, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34); - $$0 = ($828 | 0) == ($827 | 0) ? $first : $828; - break L1; - break; - } - case 116: - { - $830 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($35, 12778, 1); - $831 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($830, $last, $35, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35); - $$0 = ($831 | 0) == ($830 | 0) ? $first : $831; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - case 105: - { - if ((HEAP8[$t$0 + 1 >> 0] | 0) != 120) { - $$0 = $first; - break L1; - } - $836 = $first + 2 | 0; - $837 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($836, $last, $db) | 0; - if (($837 | 0) == ($836 | 0)) { - $$0 = $first; - break L1; - } - $839 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($837, $last, $db) | 0; - $841 = $db + 4 | 0; - $842 = HEAP32[$841 >> 2] | 0; - if (($839 | 0) == ($837 | 0)) { - $879 = $842 + -24 | 0; - $881 = $842; - while (1) { - $880 = $881 + -24 | 0; - HEAP32[$841 >> 2] = $880; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($880); - $881 = HEAP32[$841 >> 2] | 0; - if (($881 | 0) == ($879 | 0)) { - $$0 = $first; - break L1; - } - } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $242 = HEAP32[$wk$443 >> 2] | 0; + if (($242 | 0) == ($i$341 | 0)) { + $248 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - if ((($842 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0 = $first; - break L1; + HEAP32[$wk$443 >> 2] = $248; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $842 + -24 | 0); - $850 = HEAP32[$841 >> 2] | 0; - $851 = $850 + -24 | 0; - $853 = $850; + } + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; do { - $852 = $853 + -24 | 0; - HEAP32[$841 >> 2] = $852; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($852); - $853 = HEAP32[$841 >> 2] | 0; - } while (($853 | 0) != ($851 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $850 + -48 | 0); - $857 = (HEAP32[$841 >> 2] | 0) + -24 | 0; - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($40, 12714, $op1); - $858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($40, 13975) | 0; - HEAP32[$39 >> 2] = HEAP32[$858 >> 2]; - HEAP32[$39 + 4 >> 2] = HEAP32[$858 + 4 >> 2]; - HEAP32[$39 + 8 >> 2] = HEAP32[$858 + 8 >> 2]; - HEAP32[$858 >> 2] = 0; - HEAP32[$858 + 4 >> 2] = 0; - HEAP32[$858 + 8 >> 2] = 0; - $861 = HEAP8[$op2 >> 0] | 0; - $863 = ($861 & 1) == 0; - $873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($39, $863 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0; - HEAP32[$38 >> 2] = HEAP32[$873 >> 2]; - HEAP32[$38 + 4 >> 2] = HEAP32[$873 + 4 >> 2]; - HEAP32[$38 + 8 >> 2] = HEAP32[$873 + 8 >> 2]; - HEAP32[$873 >> 2] = 0; - HEAP32[$873 + 4 >> 2] = 0; - HEAP32[$873 + 8 >> 2] = 0; - $876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($38, 12703) | 0; - HEAP32[$37 >> 2] = HEAP32[$876 >> 2]; - HEAP32[$37 + 4 >> 2] = HEAP32[$876 + 4 >> 2]; - HEAP32[$37 + 8 >> 2] = HEAP32[$876 + 8 >> 2]; - HEAP32[$876 >> 2] = 0; - HEAP32[$876 + 4 >> 2] = 0; - HEAP32[$876 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($857, $36); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($39); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($40); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2); - $$0 = $839; - break L1; - break; + $260 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); } - case 108: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 101: - { - $886 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($41, 13978, 2); - $887 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($886, $last, $41, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($41); - $$0 = ($887 | 0) == ($886 | 0) ? $first : $887; - break L1; - break; - } - case 115: - { - $889 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($42, 13981, 2); - $890 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($889, $last, $42, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($42); - $$0 = ($890 | 0) == ($889 | 0) ? $first : $890; - break L1; - break; - } - case 83: - { - $892 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($43, 13984, 3); - $893 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($892, $last, $43, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($43); - $$0 = ($893 | 0) == ($892 | 0) ? $first : $893; - break L1; - break; - } - case 116: - { - $895 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($44, 12776, 1); - $896 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($895, $last, $44, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($44); - $$0 = ($896 | 0) == ($895 | 0) ? $first : $896; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$537 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); } - case 109: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 105: - { - $901 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($45, 13988, 1); - $902 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($901, $last, $45, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($45); - $$0 = ($902 | 0) == ($901 | 0) ? $first : $902; - break L1; - break; - } - case 73: - { - $904 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($46, 13990, 2); - $905 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($904, $last, $46, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($46); - $$0 = ($905 | 0) == ($904 | 0) ? $first : $905; - break L1; - break; - } - case 108: - { - $907 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($47, 12759, 1); - $908 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($907, $last, $47, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($47); - $$0 = ($908 | 0) == ($907 | 0) ? $first : $908; - break L1; - break; - } - case 76: - { - $910 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($48, 13993, 2); - $911 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($910, $last, $48, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($48); - $$0 = ($911 | 0) == ($910 | 0) ? $first : $911; - break L1; - break; - } - case 109: - { - $913 = $first + 2 | 0; - if (($913 | 0) != ($last | 0)) if ((HEAP8[$913 >> 0] | 0) == 95) { - $917 = $first + 3 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($49, 13996, 2); - $918 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($917, $last, $49, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($49); - $$0 = ($918 | 0) == ($917 | 0) ? $first : $918; - break L1; - } - $920 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($913, $last, $db) | 0; - if (($920 | 0) == ($913 | 0)) { - $$0 = $first; - break L1; - } - $924 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($924 | 0)) { - $$0 = $first; - break L1; - } - $926 = $924 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($53, $926); - $927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($53, 0, 12714) | 0; - HEAP32[$52 >> 2] = HEAP32[$927 >> 2]; - HEAP32[$52 + 4 >> 2] = HEAP32[$927 + 4 >> 2]; - HEAP32[$52 + 8 >> 2] = HEAP32[$927 + 8 >> 2]; - HEAP32[$927 >> 2] = 0; - HEAP32[$927 + 4 >> 2] = 0; - HEAP32[$927 + 8 >> 2] = 0; - $930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($52, 13999) | 0; - HEAP32[$51 >> 2] = HEAP32[$930 >> 2]; - HEAP32[$51 + 4 >> 2] = HEAP32[$930 + 4 >> 2]; - HEAP32[$51 + 8 >> 2] = HEAP32[$930 + 8 >> 2]; - HEAP32[$930 >> 2] = 0; - HEAP32[$930 + 4 >> 2] = 0; - HEAP32[$930 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($50, $51); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($926, $50); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($50); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($51); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($52); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($53); - $$0 = $920; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $327 = $labelInfo + 12 + ($i$636 << 2) | 0; + $330 = $i$636 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; } - case 110: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 119: - case 97: - { - L323 : do if ($85) { - $936 = HEAP8[$first >> 0] | 0; - if ($936 << 24 >> 24 == 103) { - $940 = (HEAP8[$first + 1 >> 0] | 0) == 115; - $$first$i = $940 ? $first + 2 | 0 : $first; - $943 = HEAP8[$$first$i >> 0] | 0; - $parsed_gs$0$off0$i = $940; - $t$0$i267 = $$first$i; - } else { - $943 = $936; - $parsed_gs$0$off0$i = 0; - $t$0$i267 = $first; + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; + do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$367 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - if ($943 << 24 >> 24 == 110) { - $945 = HEAP8[$t$0$i267 + 1 >> 0] | 0; - switch ($945 << 24 >> 24) { - case 97: - case 119: + $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; break; - default: - { - $$221$i = $first; - label = 319; - break L323; - } } - $946 = $945 << 24 >> 24 == 97; - $947 = $t$0$i267 + 2 | 0; - if (($947 | 0) == ($last | 0)) $$9$i = $first; else { - $has_expr_list$0$off0$i = 0; - $t$1$i = $947; + HEAP32[$208 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $211 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $211; + break; + } + } + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$367 >> 1] = $77; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; while (1) { - if ((HEAP8[$t$1$i >> 0] | 0) == 95) { - $has_expr_list$0$off0$i$lcssa = $has_expr_list$0$off0$i; - $t$1$i$lcssa = $t$1$i; + if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $94 = $77; break; - } - $t$1$i$looptemp = $t$1$i; - $t$1$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$1$i, $last, $db) | 0; - if (($t$1$i | 0) == ($t$1$i$looptemp | 0) | ($t$1$i | 0) == ($last | 0)) { - $$9$i = $first; - break L323; - } else $has_expr_list$0$off0$i = 1; - } - $954 = $t$1$i$lcssa + 1 | 0; - $955 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($954, $last, $db) | 0; - if (($955 | 0) == ($954 | 0) | ($955 | 0) == ($last | 0)) $$9$i = $first; else { - $961 = HEAP8[$955 >> 0] | 0; - L335 : do if (($81 - $955 | 0) > 2 & $961 << 24 >> 24 == 112) { - if ((HEAP8[$955 + 1 >> 0] | 0) != 105) { - $$9$i = $first; - break L323; - } - $t$2$i = $955 + 2 | 0; - while (1) { - if ((HEAP8[$t$2$i >> 0] | 0) == 69) { - $has_init$0$off0$i513 = 1; - $t$3$i512 = $t$2$i; - break L335; - } - $t$2$i$looptemp = $t$2$i; - $t$2$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$2$i, $last, $db) | 0; - if (($t$2$i | 0) == ($t$2$i$looptemp | 0) | ($t$2$i | 0) == ($last | 0)) { - $$9$i = $first; - break L323; - } - } - } else if ($961 << 24 >> 24 == 69) { - $has_init$0$off0$i513 = 0; - $t$3$i512 = $955; - } else { - $$9$i = $first; - break L323; - } while (0); - HEAP32[$1 >> 2] = 0; - HEAP32[$1 + 4 >> 2] = 0; - HEAP32[$1 + 8 >> 2] = 0; - if ($has_init$0$off0$i513) { - $976 = $db + 4 | 0; - $977 = HEAP32[$976 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) != ($977 | 0)) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $977 + -24 | 0); - L346 : do if (!(HEAP8[$1 >> 0] & 1)) { - HEAP8[$1 + 1 >> 0] = 0; - HEAP8[$1 >> 0] = 0; - } else { - $984 = $1 + 8 | 0; - $985 = HEAP32[$984 >> 2] | 0; - HEAP8[$985 >> 0] = 0; - $986 = $1 + 4 | 0; - HEAP32[$986 >> 2] = 0; - $987 = HEAP32[$1 >> 2] | 0; - $phitmp$i$i$i$i$i$i$i273 = ($987 & -2) + -1 | 0; - $989 = $987 & 255; - do if (!($989 & 1)) { - $993 = $987 >>> 1 & 127; - if (($989 & 255) < 22) { - _memcpy($1 + 1 | 0, $985 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0; - _free($985); - $$ph518 = $993; - break; - } - $996 = $993 + 16 & 240; - $phitmp$i2$i$i$i$i$i$i276 = $996 + -1 | 0; - if (($phitmp$i2$i$i$i$i$i$i276 | 0) == ($phitmp$i$i$i$i$i$i$i273 | 0)) break L346; - $999 = _malloc($996) | 0; - if ($phitmp$i2$i$i$i$i$i$i276 >>> 0 <= $phitmp$i$i$i$i$i$i$i273 >>> 0 & ($999 | 0) == 0) break L346; - _memcpy($999 | 0, $1 + 1 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0; - HEAP32[$1 >> 2] = $996 | 1; - HEAP32[$986 >> 2] = $993; - HEAP32[$984 >> 2] = $999; - break L346; - } else { - HEAP8[$1 + 1 >> 0] = 0; - _free($985); - $$ph518 = 0; - } while (0); - HEAP8[$1 >> 0] = $$ph518 << 1; - } while (0); - HEAP32[$1 >> 2] = HEAP32[$2 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$2 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$2 + 8 >> 2]; - HEAP32[$2 >> 2] = 0; - HEAP32[$2 + 4 >> 2] = 0; - HEAP32[$2 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $1015 = HEAP32[$976 >> 2] | 0; - $1016 = $1015 + -24 | 0; - $1018 = $1015; - do { - $1017 = $1018 + -24 | 0; - HEAP32[$976 >> 2] = $1017; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1017); - $1018 = HEAP32[$976 >> 2] | 0; - } while (($1018 | 0) != ($1016 | 0)); - $$pre$phi511Z2D = $976; - $$pre$phiZ2D = $db; - $1022 = $1016; - label = 283; - } - } else { - $$phi$trans$insert = $db + 4 | 0; - $$pre$phi511Z2D = $$phi$trans$insert; - $$pre$phiZ2D = $db; - $1022 = HEAP32[$$phi$trans$insert >> 2] | 0; - label = 283; - } - if ((label | 0) == 283) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) != ($1022 | 0)) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1022 + -24 | 0); - $1024 = HEAP32[$$pre$phi511Z2D >> 2] | 0; - $1025 = $1024 + -24 | 0; - $1027 = $1024; - do { - $1026 = $1027 + -24 | 0; - HEAP32[$$pre$phi511Z2D >> 2] = $1026; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1026); - $1027 = HEAP32[$$pre$phi511Z2D >> 2] | 0; - } while (($1027 | 0) != ($1025 | 0)); - HEAP32[$4 >> 2] = 0; - HEAP32[$4 + 4 >> 2] = 0; - HEAP32[$4 + 8 >> 2] = 0; - if ($has_expr_list$0$off0$i$lcssa) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) == ($1025 | 0)) { - $$019$i = $first; - $$2$i302 = 0; - } else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($5, $1024 + -48 | 0); - L371 : do if (!(HEAP8[$4 >> 0] & 1)) { - HEAP8[$4 + 1 >> 0] = 0; - HEAP8[$4 >> 0] = 0; - } else { - $1038 = $4 + 8 | 0; - $1039 = HEAP32[$1038 >> 2] | 0; - HEAP8[$1039 >> 0] = 0; - $1040 = $4 + 4 | 0; - HEAP32[$1040 >> 2] = 0; - $1041 = HEAP32[$4 >> 2] | 0; - $phitmp$i$i$i$i$i$i32$i = ($1041 & -2) + -1 | 0; - $1043 = $1041 & 255; - do if (!($1043 & 1)) { - $1047 = $1041 >>> 1 & 127; - if (($1043 & 255) < 22) { - _memcpy($4 + 1 | 0, $1039 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0; - _free($1039); - $$ph520524 = $1047; - break; - } - $1050 = $1047 + 16 & 240; - $phitmp$i2$i$i$i$i$i35$i = $1050 + -1 | 0; - if (($phitmp$i2$i$i$i$i$i35$i | 0) == ($phitmp$i$i$i$i$i$i32$i | 0)) break L371; - $1053 = _malloc($1050) | 0; - if ($phitmp$i2$i$i$i$i$i35$i >>> 0 <= $phitmp$i$i$i$i$i$i32$i >>> 0 & ($1053 | 0) == 0) break L371; - _memcpy($1053 | 0, $4 + 1 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0; - HEAP32[$4 >> 2] = $1050 | 1; - HEAP32[$1040 >> 2] = $1047; - HEAP32[$1038 >> 2] = $1053; - break L371; - } else { - HEAP8[$4 + 1 >> 0] = 0; - _free($1039); - $$ph520524 = 0; - } while (0); - HEAP8[$4 >> 0] = $$ph520524 << 1; - } while (0); - HEAP32[$4 >> 2] = HEAP32[$5 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$5 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$5 + 8 >> 2]; - HEAP32[$5 >> 2] = 0; - HEAP32[$5 + 4 >> 2] = 0; - HEAP32[$5 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - $1069 = HEAP32[$$pre$phi511Z2D >> 2] | 0; - $1070 = $1069 + -24 | 0; - $1072 = $1069; - do { - $1071 = $1072 + -24 | 0; - HEAP32[$$pre$phi511Z2D >> 2] = $1071; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1071); - $1072 = HEAP32[$$pre$phi511Z2D >> 2] | 0; - } while (($1072 | 0) != ($1070 | 0)); - label = 300; - } else label = 300; - if ((label | 0) == 300) { - HEAP32[$6 >> 2] = 0; - HEAP32[$6 + 4 >> 2] = 0; - HEAP32[$6 + 8 >> 2] = 0; - if ($parsed_gs$0$off0$i) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($6, 12902, 2); - if ($946) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 14003) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 12726) | 0; - if ($has_expr_list$0$off0$i$lcssa) { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($8, 12714, $4); - $1076 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 14007) | 0; - HEAP32[$7 >> 2] = HEAP32[$1076 >> 2]; - HEAP32[$7 + 4 >> 2] = HEAP32[$1076 + 4 >> 2]; - HEAP32[$7 + 8 >> 2] = HEAP32[$1076 + 8 >> 2]; - HEAP32[$1076 >> 2] = 0; - HEAP32[$1076 + 4 >> 2] = 0; - HEAP32[$1076 + 8 >> 2] = 0; - $1079 = HEAP8[$7 >> 0] | 0; - $1081 = ($1079 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1081 ? $7 + 1 | 0 : HEAP32[$7 + 8 >> 2] | 0, $1081 ? ($1079 & 255) >>> 1 : HEAP32[$7 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); - } - $1091 = HEAP8[$3 >> 0] | 0; - $1093 = ($1091 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1093 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $1093 ? ($1091 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; - if ($has_init$0$off0$i513) { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($10, 12616, $1); - $1103 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($10, 12619) | 0; - HEAP32[$9 >> 2] = HEAP32[$1103 >> 2]; - HEAP32[$9 + 4 >> 2] = HEAP32[$1103 + 4 >> 2]; - HEAP32[$9 + 8 >> 2] = HEAP32[$1103 + 8 >> 2]; - HEAP32[$1103 >> 2] = 0; - HEAP32[$1103 + 4 >> 2] = 0; - HEAP32[$1103 + 8 >> 2] = 0; - $1106 = HEAP8[$9 >> 0] | 0; - $1108 = ($1106 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1108 ? $9 + 1 | 0 : HEAP32[$9 + 8 >> 2] | 0, $1108 ? ($1106 & 255) >>> 1 : HEAP32[$9 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10); - }; - HEAP32[$12 >> 2] = HEAP32[$6 >> 2]; - HEAP32[$12 + 4 >> 2] = HEAP32[$6 + 4 >> 2]; - HEAP32[$12 + 8 >> 2] = HEAP32[$6 + 8 >> 2]; - HEAP32[$6 >> 2] = 0; - HEAP32[$6 + 4 >> 2] = 0; - HEAP32[$6 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($11, $12); - $1120 = HEAP32[$$pre$phi511Z2D >> 2] | 0; - $1122 = HEAP32[$db + 8 >> 2] | 0; - if ($1120 >>> 0 < $1122 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1120, $11); - HEAP32[$$pre$phi511Z2D >> 2] = (HEAP32[$$pre$phi511Z2D >> 2] | 0) + 24; - } else { - $1129 = HEAP32[$$pre$phiZ2D >> 2] | 0; - $1130 = $1120 - $1129 | 0; - $1131 = ($1130 | 0) / 24 | 0; - $1132 = $1131 + 1 | 0; - if (($1130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1136 = ($1122 - $1129 | 0) / 24 | 0; - if ($1136 >>> 0 < 1073741823) { - $1138 = $1136 << 1; - $$0$i$i$i$i299 = $1138 >>> 0 < $1132 >>> 0 ? $1132 : $1138; - } else $$0$i$i$i$i299 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i299, $1131, $db + 12 | 0); - $1141 = $0 + 8 | 0; - $1142 = HEAP32[$1141 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1142, $11); - HEAP32[$1141 >> 2] = $1142 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - $$019$i = $t$3$i512 + 1 | 0; - $$2$i302 = 1; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - if ($$2$i302) { - $$221$i = $$019$i; - label = 319; - break; - } else { - $$9$i = $first; - break; - } - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - $$9$i = $first; + } else $wk$056 = $wk$056 + 4 | 0; } - } + } else $94 = $77; } else { - $$221$i = $first; - label = 319; - } - } else { - $$221$i = $first; - label = 319; - } while (0); - if ((label | 0) == 319) $$9$i = $$221$i; - $$0 = $$9$i; - break L1; - break; - } - case 101: - { - $1145 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($54, 14010, 2); - $1146 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1145, $last, $54, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($54); - $$0 = ($1146 | 0) == ($1145 | 0) ? $first : $1146; - break L1; - break; - } - case 103: - { - $1148 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($55, 13988, 1); - $1149 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1148, $last, $55, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($55); - $$0 = ($1149 | 0) == ($1148 | 0) ? $first : $1149; - break L1; - break; - } - case 116: - { - $1151 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($56, 14013, 1); - $1152 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1151, $last, $56, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($56); - $$0 = ($1152 | 0) == ($1151 | 0) ? $first : $1152; - break L1; - break; - } - case 120: - { - $1154 = $first + 2 | 0; - $1155 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1154, $last, $db) | 0; - if (($1155 | 0) == ($1154 | 0)) $$03$i265 = $1154; else { - $1159 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1159 | 0)) $$03$i265 = $1154; else { - $1161 = $1159 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1161); - $1162 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14015) | 0; - HEAP32[$1 >> 2] = HEAP32[$1162 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1162 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1162 + 8 >> 2]; - HEAP32[$1162 >> 2] = 0; - HEAP32[$1162 + 4 >> 2] = 0; - HEAP32[$1162 + 8 >> 2] = 0; - $1165 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$1165 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$1165 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$1165 + 8 >> 2]; - HEAP32[$1165 >> 2] = 0; - HEAP32[$1165 + 4 >> 2] = 0; - HEAP32[$1165 + 8 >> 2] = 0; - do if (!(HEAP8[$1161 >> 0] & 1)) { - HEAP8[$1161 + 1 >> 0] = 0; - HEAP8[$1161 >> 0] = 0; - } else { - $1172 = $1159 + -16 | 0; - HEAP8[HEAP32[$1172 >> 2] >> 0] = 0; - $1174 = $1159 + -20 | 0; - HEAP32[$1174 >> 2] = 0; - $$pre$i$i$i$i = HEAP8[$1161 >> 0] | 0; - if (!($$pre$i$i$i$i & 1)) { - $1181 = $$pre$i$i$i$i; - $1190 = 10; - } else { - $1177 = HEAP32[$1161 >> 2] | 0; - $1181 = $1177 & 255; - $1190 = ($1177 & -2) + -1 | 0; - } - if (!($1181 & 1)) { - $1184 = ($1181 & 255) >>> 1; - if (($1181 & 255) < 22) { - $1189 = 10; - $1209 = $1184; - $1751 = 1; - } else { - $1189 = ($1184 + 16 & 240) + -1 | 0; - $1209 = $1184; - $1751 = 1; - } - } else { - $1189 = 10; - $1209 = 0; - $1751 = 0; - } - if (($1189 | 0) != ($1190 | 0)) { - if (($1189 | 0) == 10) { - $1196 = $1161 + 1 | 0; - $1197 = HEAP32[$1172 >> 2] | 0; - if ($1751) { - _memcpy($1196 | 0, $1197 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0; - _free($1197); - } else { - HEAP8[$1196 >> 0] = HEAP8[$1197 >> 0] | 0; - _free($1197); - } - HEAP8[$1161 >> 0] = $1209 << 1; + HEAP16[$pnt2$367 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $94 = $74; break; - } - $1193 = $1189 + 1 | 0; - $1194 = _malloc($1193) | 0; - if (!($1189 >>> 0 <= $1190 >>> 0 & ($1194 | 0) == 0)) { - if ($1751) _memcpy($1194 | 0, $1161 + 1 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0; else { - $1206 = HEAP32[$1172 >> 2] | 0; - HEAP8[$1194 >> 0] = HEAP8[$1206 >> 0] | 0; - _free($1206); - } - HEAP32[$1161 >> 2] = $1193 | 1; - HEAP32[$1174 >> 2] = $1209; - HEAP32[$1172 >> 2] = $1194; - } + } else $wk$153 = $wk$153 + 4 | 0; } - } while (0); - HEAP32[$1161 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$1161 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$1161 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$03$i265 = $1155; + } else $94 = $74; } + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$367 >> 1] = $120; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $137 = $120; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $137 = $120; + } else { + HEAP16[$pnt2$367 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $137 = $117; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $137 = $117; } - $$0 = ($$03$i265 | 0) == ($1154 | 0) ? $first : $$03$i265; - break L1; + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $231 = $pnt$168 + 2 | 0; + $232 = $pnt2$367 + 2 | 0; + $233 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$166 = $233; + $pnt$168 = $231; + $pnt2$367 = $232; + $wk_max$159 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 111: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 110: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; - } - case 111: - { - $1219 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($57, 14026, 2); - $1220 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1219, $last, $57, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($57); - $$0 = ($1220 | 0) == ($1219 | 0) ? $first : $1220; - break L1; - break; - } - case 114: - { - $1222 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($58, 14029, 1); - $1223 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1222, $last, $58, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($58); - $$0 = ($1223 | 0) == ($1222 | 0) ? $first : $1223; - break L1; - break; - } - case 82: - { - $1225 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($59, 14031, 2); - $1226 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1225, $last, $59, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($59); - $$0 = ($1226 | 0) == ($1225 | 0) ? $first : $1226; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $242 = HEAP32[$wk$443 >> 2] | 0; + if (($242 | 0) == ($i$341 | 0)) { + $248 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $248; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - break; } - case 112: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 109: - { - $1231 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($60, 14034, 3); - $1232 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1231, $last, $60, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($60); - $$0 = ($1232 | 0) == ($1231 | 0) ? $first : $1232; - break L1; - break; - } - case 108: - { - $1234 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($61, 14038, 1); - $1235 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1234, $last, $61, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($61); - $$0 = ($1235 | 0) == ($1234 | 0) ? $first : $1235; - break L1; - break; - } - case 76: - { - $1237 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($62, 14040, 2); - $1238 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1237, $last, $62, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($62); - $$0 = ($1238 | 0) == ($1237 | 0) ? $first : $1238; - break L1; - break; - } - case 112: - { - $1240 = $first + 2 | 0; - if (($1240 | 0) != ($last | 0)) if ((HEAP8[$1240 >> 0] | 0) == 95) { - $1244 = $first + 3 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($63, 14043, 2); - $1245 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1244, $last, $63, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($63); - $$0 = ($1245 | 0) == ($1244 | 0) ? $first : $1245; - break L1; - } - $1247 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1240, $last, $db) | 0; - if (($1247 | 0) == ($1240 | 0)) { - $$0 = $first; - break L1; + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $260 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$537 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $327 = $labelInfo + 12 + ($i$636 << 2) | 0; + $330 = $i$636 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; + do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $1251 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1251 | 0)) { - $$0 = $first; - break L1; + $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$367 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$208 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $211 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $211; + break; + } } - $1253 = $1251 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($67, $1253); - $1254 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($67, 0, 12714) | 0; - HEAP32[$66 >> 2] = HEAP32[$1254 >> 2]; - HEAP32[$66 + 4 >> 2] = HEAP32[$1254 + 4 >> 2]; - HEAP32[$66 + 8 >> 2] = HEAP32[$1254 + 8 >> 2]; - HEAP32[$1254 >> 2] = 0; - HEAP32[$1254 + 4 >> 2] = 0; - HEAP32[$1254 + 8 >> 2] = 0; - $1257 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($66, 14046) | 0; - HEAP32[$65 >> 2] = HEAP32[$1257 >> 2]; - HEAP32[$65 + 4 >> 2] = HEAP32[$1257 + 4 >> 2]; - HEAP32[$65 + 8 >> 2] = HEAP32[$1257 + 8 >> 2]; - HEAP32[$1257 >> 2] = 0; - HEAP32[$1257 + 4 >> 2] = 0; - HEAP32[$1257 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($64, $65); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1253, $64); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($64); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($65); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($66); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($67); - $$0 = $1247; - break L1; - break; - } - case 115: - { - $1260 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($68, 14038, 1); - $1261 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1260, $last, $68, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($68); - $$0 = ($1261 | 0) == ($1260 | 0) ? $first : $1261; - break L1; - break; - } - case 116: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 112) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { - $1269 = $first + 2 | 0; - $1270 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1269, $last, $db) | 0; - if (($1270 | 0) == ($1269 | 0)) $$0$i254 = $first; else { - $1272 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1270, $last, $db) | 0; - if (($1272 | 0) == ($1270 | 0)) $$0$i254 = $first; else { - $1274 = $db + 4 | 0; - $1275 = HEAP32[$1274 >> 2] | 0; - if ((($1275 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i254 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1275 + -24 | 0); - $1283 = HEAP32[$1274 >> 2] | 0; - $1284 = $1283 + -24 | 0; - $1286 = $1283; - do { - $1285 = $1286 + -24 | 0; - HEAP32[$1274 >> 2] = $1285; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1285); - $1286 = HEAP32[$1274 >> 2] | 0; - } while (($1286 | 0) != ($1284 | 0)); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1283 + -48 | 0, 14050) | 0; - $1291 = HEAP8[$0 >> 0] | 0; - $1293 = ($1291 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$1274 >> 2] | 0) + -24 | 0, $1293 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1293 ? ($1291 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$0$i254 = $1272; + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$367 >> 1] = $77; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $94 = $77; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $94 = $77; + } else { + HEAP16[$pnt2$367 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $94 = $74; + break; + } else $wk$153 = $wk$153 + 4 | 0; } + } else $94 = $74; + } + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$367 >> 1] = $120; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $137 = $120; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $137 = $120; + } else { + HEAP16[$pnt2$367 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $137 = $117; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - } - } else $$0$i254 = $first; else $$0$i254 = $first; else $$0$i254 = $first; - $$0 = $$0$i254; - break L1; + } else $137 = $117; + } + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $231 = $pnt$168 + 2 | 0; + $232 = $pnt2$367 + 2 | 0; + $233 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$166 = $233; + $pnt$168 = $231; + $pnt2$367 = $232; + $wk_max$159 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 113: - { - if ((HEAP8[$t$0 + 1 >> 0] | 0) != 117) { - $$0 = $first; - break L1; - } - $1306 = $first + 2 | 0; - $1307 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1306, $last, $db) | 0; - if (($1307 | 0) == ($1306 | 0)) { - $$0 = $first; - break L1; - } - $1309 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1307, $last, $db) | 0; - if (($1309 | 0) == ($1307 | 0)) { - $1383 = $db + 4 | 0; - $1384 = HEAP32[$1383 >> 2] | 0; - $1385 = $1384 + -24 | 0; - $1387 = $1384; - while (1) { - $1386 = $1387 + -24 | 0; - HEAP32[$1383 >> 2] = $1386; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1386); - $1387 = HEAP32[$1383 >> 2] | 0; - if (($1387 | 0) == ($1385 | 0)) { - $$0 = $first; - break L1; - } - } - } - $1311 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1309, $last, $db) | 0; - $1313 = $db + 4 | 0; - $1314 = HEAP32[$1313 >> 2] | 0; - if (($1311 | 0) == ($1309 | 0)) { - $1375 = $1314 + -24 | 0; - $1377 = $1314; - do { - $1376 = $1377 + -24 | 0; - HEAP32[$1313 >> 2] = $1376; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1376); - $1377 = HEAP32[$1313 >> 2] | 0; - } while (($1377 | 0) != ($1375 | 0)); - $1379 = $1314 + -48 | 0; - $1381 = $1375; - while (1) { - $1380 = $1381 + -24 | 0; - HEAP32[$1313 >> 2] = $1380; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1380); - $1381 = HEAP32[$1313 >> 2] | 0; - if (($1381 | 0) == ($1379 | 0)) { - $$0 = $first; - break L1; - } - } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $242 = HEAP32[$wk$443 >> 2] | 0; + if (($242 | 0) == ($i$341 | 0)) { + $248 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - if ((($1314 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 3) { - $$0 = $first; - break L1; + HEAP32[$wk$443 >> 2] = $248; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op3, $1314 + -24 | 0); - $1322 = HEAP32[$1313 >> 2] | 0; - $1323 = $1322 + -24 | 0; - $1325 = $1322; + } + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; do { - $1324 = $1325 + -24 | 0; - HEAP32[$1313 >> 2] = $1324; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1324); - $1325 = HEAP32[$1313 >> 2] | 0; - } while (($1325 | 0) != ($1323 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op27, $1322 + -48 | 0); - $1328 = HEAP32[$1313 >> 2] | 0; - $1329 = $1328 + -24 | 0; - $1331 = $1328; + $260 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; do { - $1330 = $1331 + -24 | 0; - HEAP32[$1313 >> 2] = $1330; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1330); - $1331 = HEAP32[$1313 >> 2] | 0; - } while (($1331 | 0) != ($1329 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op18, $1328 + -48 | 0); - $1335 = (HEAP32[$1313 >> 2] | 0) + -24 | 0; - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($75, 12714, $op18); - $1336 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($75, 14053) | 0; - HEAP32[$74 >> 2] = HEAP32[$1336 >> 2]; - HEAP32[$74 + 4 >> 2] = HEAP32[$1336 + 4 >> 2]; - HEAP32[$74 + 8 >> 2] = HEAP32[$1336 + 8 >> 2]; - HEAP32[$1336 >> 2] = 0; - HEAP32[$1336 + 4 >> 2] = 0; - HEAP32[$1336 + 8 >> 2] = 0; - $1339 = HEAP8[$op27 >> 0] | 0; - $1341 = ($1339 & 1) == 0; - $1351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($74, $1341 ? $op27 + 1 | 0 : HEAP32[$op27 + 8 >> 2] | 0, $1341 ? ($1339 & 255) >>> 1 : HEAP32[$op27 + 4 >> 2] | 0) | 0; - HEAP32[$73 >> 2] = HEAP32[$1351 >> 2]; - HEAP32[$73 + 4 >> 2] = HEAP32[$1351 + 4 >> 2]; - HEAP32[$73 + 8 >> 2] = HEAP32[$1351 + 8 >> 2]; - HEAP32[$1351 >> 2] = 0; - HEAP32[$1351 + 4 >> 2] = 0; - HEAP32[$1351 + 8 >> 2] = 0; - $1354 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($73, 14059) | 0; - HEAP32[$72 >> 2] = HEAP32[$1354 >> 2]; - HEAP32[$72 + 4 >> 2] = HEAP32[$1354 + 4 >> 2]; - HEAP32[$72 + 8 >> 2] = HEAP32[$1354 + 8 >> 2]; - HEAP32[$1354 >> 2] = 0; - HEAP32[$1354 + 4 >> 2] = 0; - HEAP32[$1354 + 8 >> 2] = 0; - $1357 = HEAP8[$op3 >> 0] | 0; - $1359 = ($1357 & 1) == 0; - $1369 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($72, $1359 ? $op3 + 1 | 0 : HEAP32[$op3 + 8 >> 2] | 0, $1359 ? ($1357 & 255) >>> 1 : HEAP32[$op3 + 4 >> 2] | 0) | 0; - HEAP32[$71 >> 2] = HEAP32[$1369 >> 2]; - HEAP32[$71 + 4 >> 2] = HEAP32[$1369 + 4 >> 2]; - HEAP32[$71 + 8 >> 2] = HEAP32[$1369 + 8 >> 2]; - HEAP32[$1369 >> 2] = 0; - HEAP32[$1369 + 4 >> 2] = 0; - HEAP32[$1369 + 8 >> 2] = 0; - $1372 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($71, 12619) | 0; - HEAP32[$70 >> 2] = HEAP32[$1372 >> 2]; - HEAP32[$70 + 4 >> 2] = HEAP32[$1372 + 4 >> 2]; - HEAP32[$70 + 8 >> 2] = HEAP32[$1372 + 8 >> 2]; - HEAP32[$1372 >> 2] = 0; - HEAP32[$1372 + 4 >> 2] = 0; - HEAP32[$1372 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($69, $70); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1335, $69); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($70); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($71); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($72); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($73); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($74); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($75); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op18); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op27); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op3); - $$0 = $1311; - break L1; - break; + $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$537 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); } - case 114: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 99: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 114) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { - $1398 = $first + 2 | 0; - $1399 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1398, $last, $db) | 0; - if (($1399 | 0) == ($1398 | 0)) $$06$i248 = $first; else { - $1401 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1399, $last, $db) | 0; - if (($1401 | 0) == ($1399 | 0)) $$06$i248 = $first; else { - $1403 = $db + 4 | 0; - $1404 = HEAP32[$1403 >> 2] | 0; - if ((($1404 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i248 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1404 + -24 | 0); - $1412 = HEAP32[$1403 >> 2] | 0; - $1413 = $1412 + -24 | 0; - $1415 = $1412; - do { - $1414 = $1415 + -24 | 0; - HEAP32[$1403 >> 2] = $1414; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1414); - $1415 = HEAP32[$1403 >> 2] | 0; - } while (($1415 | 0) != ($1413 | 0)); - $1417 = $1412 + -48 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1417); - $1418 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 14065) | 0; - HEAP32[$5 >> 2] = HEAP32[$1418 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$1418 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$1418 + 8 >> 2]; - HEAP32[$1418 >> 2] = 0; - HEAP32[$1418 + 4 >> 2] = 0; - HEAP32[$1418 + 8 >> 2] = 0; - $1421 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0; - HEAP32[$4 >> 2] = HEAP32[$1421 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$1421 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$1421 + 8 >> 2]; - HEAP32[$1421 >> 2] = 0; - HEAP32[$1421 + 4 >> 2] = 0; - HEAP32[$1421 + 8 >> 2] = 0; - $1424 = HEAP8[$0 >> 0] | 0; - $1426 = ($1424 & 1) == 0; - $1436 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1426 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1426 ? ($1424 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - HEAP32[$3 >> 2] = HEAP32[$1436 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$1436 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$1436 + 8 >> 2]; - HEAP32[$1436 >> 2] = 0; - HEAP32[$1436 + 4 >> 2] = 0; - HEAP32[$1436 + 8 >> 2] = 0; - $1439 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0; - HEAP32[$2 >> 2] = HEAP32[$1439 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1439 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1439 + 8 >> 2]; - HEAP32[$1439 >> 2] = 0; - HEAP32[$1439 + 4 >> 2] = 0; - HEAP32[$1439 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1417, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$06$i248 = $1401; - } - } - } - } else $$06$i248 = $first; else $$06$i248 = $first; else $$06$i248 = $first; - $$0 = $$06$i248; - break L1; - break; - } - case 109: - { - $1442 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($76, 14083, 1); - $1443 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1442, $last, $76, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($76); - $$0 = ($1443 | 0) == ($1442 | 0) ? $first : $1443; - break L1; - break; - } - case 77: - { - $1445 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($77, 14085, 2); - $1446 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1445, $last, $77, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($77); - $$0 = ($1446 | 0) == ($1445 | 0) ? $first : $1446; - break L1; - break; - } - case 115: - { - $1448 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($78, 14088, 2); - $1449 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1448, $last, $78, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($78); - $$0 = ($1449 | 0) == ($1448 | 0) ? $first : $1449; - break L1; - break; - } - case 83: - { - $1451 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($79, 14091, 3); - $1452 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1451, $last, $79, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($79); - STACKTOP = sp; - return (($1452 | 0) == ($1451 | 0) ? $first : $1452) | 0; - } - default: - { - $$0 = $first; - break L1; - } - } - break; + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $327 = $labelInfo + 12 + ($i$636 << 2) | 0; + $330 = $i$636 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; } - case 115: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 99: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 99) { - $1463 = $first + 2 | 0; - $1464 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1463, $last, $db) | 0; - if (($1464 | 0) == ($1463 | 0)) $$06$i = $first; else { - $1466 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1464, $last, $db) | 0; - if (($1466 | 0) == ($1464 | 0)) $$06$i = $first; else { - $1468 = $db + 4 | 0; - $1469 = HEAP32[$1468 >> 2] | 0; - if ((($1469 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1469 + -24 | 0); - $1477 = HEAP32[$1468 >> 2] | 0; - $1478 = $1477 + -24 | 0; - $1480 = $1477; - do { - $1479 = $1480 + -24 | 0; - HEAP32[$1468 >> 2] = $1479; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1479); - $1480 = HEAP32[$1468 >> 2] | 0; - } while (($1480 | 0) != ($1478 | 0)); - $1482 = $1477 + -48 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1482); - $1483 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 14095) | 0; - HEAP32[$5 >> 2] = HEAP32[$1483 >> 2]; - HEAP32[$5 + 4 >> 2] = HEAP32[$1483 + 4 >> 2]; - HEAP32[$5 + 8 >> 2] = HEAP32[$1483 + 8 >> 2]; - HEAP32[$1483 >> 2] = 0; - HEAP32[$1483 + 4 >> 2] = 0; - HEAP32[$1483 + 8 >> 2] = 0; - $1486 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0; - HEAP32[$4 >> 2] = HEAP32[$1486 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$1486 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$1486 + 8 >> 2]; - HEAP32[$1486 >> 2] = 0; - HEAP32[$1486 + 4 >> 2] = 0; - HEAP32[$1486 + 8 >> 2] = 0; - $1489 = HEAP8[$0 >> 0] | 0; - $1491 = ($1489 & 1) == 0; - $1501 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1491 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1491 ? ($1489 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - HEAP32[$3 >> 2] = HEAP32[$1501 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$1501 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$1501 + 8 >> 2]; - HEAP32[$1501 >> 2] = 0; - HEAP32[$1501 + 4 >> 2] = 0; - HEAP32[$1501 + 8 >> 2] = 0; - $1504 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0; - HEAP32[$2 >> 2] = HEAP32[$1504 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1504 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1504 + 8 >> 2]; - HEAP32[$1504 >> 2] = 0; - HEAP32[$1504 + 4 >> 2] = 0; - HEAP32[$1504 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1482, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $$06$i = $1466; - } - } - } - } else $$06$i = $first; else $$06$i = $first; else $$06$i = $first; - $$0 = $$06$i; - break L1; - break; - } - case 112: - { - if (($83 | 0) <= 2) { - $$0 = $first; - break L1; - } - if ((HEAP8[$first >> 0] | 0) != 115) { - $$0 = $first; - break L1; - } - if ((HEAP8[$first + 1 >> 0] | 0) != 112) { - $$0 = $first; - break L1; + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; + do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($46 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $46; + $49 = ($46 << 16 >> 16) * 7 | 0; + $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; + $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; + $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $1513 = $first + 2 | 0; - $1514 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1513, $last, $db) | 0; - $$0 = ($1514 | 0) == ($1513 | 0) ? $first : $1514; - break L1; - break; - } - case 114: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; - } - case 116: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 116) { - $1523 = $first + 2 | 0; - $1524 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1523, $last, $db) | 0; - if (($1524 | 0) == ($1523 | 0)) $$03$i211 = $first; else { - $1528 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1528 | 0)) $$03$i211 = $first; else { - $1530 = $1528 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1530); - $1531 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14108) | 0; - HEAP32[$2 >> 2] = HEAP32[$1531 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1531 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1531 + 8 >> 2]; - HEAP32[$1531 >> 2] = 0; - HEAP32[$1531 + 4 >> 2] = 0; - HEAP32[$1531 + 8 >> 2] = 0; - $1534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$1534 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1534 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1534 + 8 >> 2]; - HEAP32[$1534 >> 2] = 0; - HEAP32[$1534 + 4 >> 2] = 0; - HEAP32[$1534 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1530, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$03$i211 = $1524; - } + $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $70 = $69 << 16 >> 16; + $71 = $69 << 16 >> 16 > 0; + if ($65 << 16 >> 16 <= 0) { + if ($71) { + HEAP16[$pnt2$367 >> 1] = $69; + $171 = $70 * 7 | 0; + $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; + $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; + $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; + $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; + if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - } else $$03$i211 = $first; else $$03$i211 = $first; else $$03$i211 = $first; - $$0 = $$03$i211; - break L1; - break; - } - case 122: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 122) { - $1543 = $first + 2 | 0; - $1544 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1543, $last, $db) | 0; - if (($1544 | 0) == ($1543 | 0)) $$03$i200 = $first; else { - $1548 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1548 | 0)) $$03$i200 = $first; else { - $1550 = $1548 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1550); - $1551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14108) | 0; - HEAP32[$2 >> 2] = HEAP32[$1551 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1551 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1551 + 8 >> 2]; - HEAP32[$1551 >> 2] = 0; - HEAP32[$1551 + 4 >> 2] = 0; - HEAP32[$1551 + 8 >> 2] = 0; - $1554 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$1554 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1554 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1554 + 8 >> 2]; - HEAP32[$1554 >> 2] = 0; - HEAP32[$1554 + 4 >> 2] = 0; - HEAP32[$1554 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1550, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$03$i200 = $1544; + $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($191 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $191; + $194 = ($191 << 16 >> 16) * 7 | 0; + $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; + $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; + $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; + HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; + $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; + if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - } - } else $$03$i200 = $first; else $$03$i200 = $first; else $$03$i200 = $first; - $$0 = $$03$i200; - break L1; - break; - } - case 90: - { - if (($81 - $t$0 | 0) <= 2) { - $$0 = $first; - break L1; - } - switch (HEAP8[$t$0 + 2 >> 0] | 0) { - case 84: - break; - case 102: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) { - $1662 = $first + 2 | 0; - if ((HEAP8[$1662 >> 0] | 0) == 102) { - $1665 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0; - if (($1665 | 0) == ($1662 | 0)) $$03$i174 = $first; else { - $1669 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1669 | 0)) $$03$i174 = $first; else { - $1671 = $1669 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1671); - $1672 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14117) | 0; - HEAP32[$2 >> 2] = HEAP32[$1672 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1672 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1672 + 8 >> 2]; - HEAP32[$1672 >> 2] = 0; - HEAP32[$1672 + 4 >> 2] = 0; - HEAP32[$1672 + 8 >> 2] = 0; - $1675 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$1675 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1675 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1675 + 8 >> 2]; - HEAP32[$1675 >> 2] = 0; - HEAP32[$1675 + 4 >> 2] = 0; - HEAP32[$1675 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1671, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$03$i174 = $1665; - } - } - } else $$03$i174 = $first; - } else $$03$i174 = $first; else $$03$i174 = $first; else $$03$i174 = $first; - $$0 = $$03$i174; - break L1; + HEAP32[$208 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $211 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $211; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; + $216 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $211; break; - } - default: - { - $$0 = $first; - break L1; } } - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) { - $1569 = $first + 2 | 0; - if ((HEAP8[$1569 >> 0] | 0) == 84) { - $1572 = $db + 4 | 0; - $1578 = ((HEAP32[$1572 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $1579 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($1569, $last, $db) | 0; - $1581 = HEAP32[$db >> 2] | 0; - $1585 = ((HEAP32[$1572 >> 2] | 0) - $1581 | 0) / 24 | 0; - if (($1579 | 0) == ($1569 | 0)) $$03$i = $first; else { - HEAP8[$1 >> 0] = 20; - dest = $1 + 1 | 0; - src = 14117; - stop = dest + 10 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$1 + 11 >> 0] = 0; - if (($1578 | 0) != ($1585 | 0)) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1581 + ($1578 * 24 | 0) | 0); - $1591 = HEAP8[$2 >> 0] | 0; - $1593 = ($1591 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1593 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $1593 ? ($1591 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $1603 = $3 + 8 | 0; - $1604 = $3 + 1 | 0; - $1605 = $3 + 4 | 0; - $k$0$i621 = $1578 + 1 | 0; - if (($k$0$i621 | 0) != ($1585 | 0)) { - $k$0$i622 = $k$0$i621; - do { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0$i622 * 24 | 0) | 0); - $1609 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($4, 0, 12716) | 0; - HEAP32[$3 >> 2] = HEAP32[$1609 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$1609 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$1609 + 8 >> 2]; - HEAP32[$1609 >> 2] = 0; - HEAP32[$1609 + 4 >> 2] = 0; - HEAP32[$1609 + 8 >> 2] = 0; - $1612 = HEAP8[$3 >> 0] | 0; - $1614 = ($1612 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1614 ? $1604 : HEAP32[$1603 >> 2] | 0, $1614 ? ($1612 & 255) >>> 1 : HEAP32[$1605 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - $k$0$i622 = $k$0$i622 + 1 | 0; - } while (($k$0$i622 | 0) != ($1585 | 0)); - } + if ($71) { + $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; + if (($74 | 0) > ($77 | 0)) { + HEAP16[$pnt2$367 >> 1] = $77; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $94 = $77; + break; + } else $wk$056 = $wk$056 + 4 | 0; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - if (($1585 | 0) != ($1578 | 0)) { - $k1$0$i618 = $1585; - do { - $1623 = HEAP32[$1572 >> 2] | 0; - $1624 = $1623 + -24 | 0; - $1626 = $1623; - do { - $1625 = $1626 + -24 | 0; - HEAP32[$1572 >> 2] = $1625; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1625); - $1626 = HEAP32[$1572 >> 2] | 0; - } while (($1626 | 0) != ($1624 | 0)); - $k1$0$i618 = $k1$0$i618 + -1 | 0; - } while (($k1$0$i618 | 0) != ($1578 | 0)); - }; - HEAP32[$6 >> 2] = HEAP32[$1 >> 2]; - HEAP32[$6 + 4 >> 2] = HEAP32[$1 + 4 >> 2]; - HEAP32[$6 + 8 >> 2] = HEAP32[$1 + 8 >> 2]; - HEAP32[$1 >> 2] = 0; - HEAP32[$1 + 4 >> 2] = 0; - HEAP32[$1 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($5, $6); - $1632 = HEAP32[$1572 >> 2] | 0; - $1634 = HEAP32[$db + 8 >> 2] | 0; - if ($1632 >>> 0 < $1634 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1632, $5); - HEAP32[$1572 >> 2] = (HEAP32[$1572 >> 2] | 0) + 24; - } else { - $1641 = HEAP32[$db >> 2] | 0; - $1642 = $1632 - $1641 | 0; - $1643 = ($1642 | 0) / 24 | 0; - $1644 = $1643 + 1 | 0; - if (($1642 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1648 = ($1634 - $1641 | 0) / 24 | 0; - if ($1648 >>> 0 < 1073741823) { - $1650 = $1648 << 1; - $$0$i$i$i$i = $1650 >>> 0 < $1644 >>> 0 ? $1644 : $1650; - } else $$0$i$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i, $1643, $db + 12 | 0); - $1653 = $0 + 8 | 0; - $1654 = HEAP32[$1653 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1654, $5); - HEAP32[$1653 >> 2] = $1654 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); + } else $94 = $77; + } else { + HEAP16[$pnt2$367 >> 1] = $74; + if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $94 = $74; + break; + } else $wk$153 = $wk$153 + 4 | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - $$03$i = $1579; - } - } else $$03$i = $first; - } else $$03$i = $first; else $$03$i = $first; else $$03$i = $first; - $$0 = $$03$i; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; - } - case 116: - { - switch (HEAP8[$t$0 + 1 >> 0] | 0) { - case 105: - case 101: - { - L600 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) { - $1685 = HEAP8[$first + 1 >> 0] | 0; - switch ($1685 << 24 >> 24) { - case 105: - case 101: - break; - default: - { - $$03$i189 = $first; - break L600; - } + } else $94 = $74; } - $1687 = $first + 2 | 0; - if ($1685 << 24 >> 24 == 101) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0; else $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0; - if (($t$0$i | 0) == ($1687 | 0)) $$03$i189 = $first; else { - $1693 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1693 | 0)) $$03$i189 = $first; else { - $1695 = $1693 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1695); - $1696 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14128) | 0; - HEAP32[$2 >> 2] = HEAP32[$1696 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$1696 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$1696 + 8 >> 2]; - HEAP32[$1696 >> 2] = 0; - HEAP32[$1696 + 4 >> 2] = 0; - HEAP32[$1696 + 8 >> 2] = 0; - $1699 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$1699 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1699 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1699 + 8 >> 2]; - HEAP32[$1699 >> 2] = 0; - HEAP32[$1699 + 4 >> 2] = 0; - HEAP32[$1699 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1695, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$03$i189 = $t$0$i; + $96 = ($94 << 16 >> 16) * 7 | 0; + $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; + $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; + $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; + HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($112 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $65; + $152 = $66 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; + $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($117 | 0) > ($120 | 0)) { + HEAP16[$pnt2$367 >> 1] = $120; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $137 = $120; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - } - } else $$03$i189 = $first; else $$03$i189 = $first; while (0); - $$0 = $$03$i189; - break L1; - break; - } - case 114: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($80, 14136); - $1702 = $db + 4 | 0; - $1703 = HEAP32[$1702 >> 2] | 0; - $1705 = HEAP32[$db + 8 >> 2] | 0; - if ($1703 >>> 0 < $1705 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1703, $80); - HEAP32[$1702 >> 2] = (HEAP32[$1702 >> 2] | 0) + 24; + } else $137 = $120; } else { - $1712 = HEAP32[$db >> 2] | 0; - $1713 = $1703 - $1712 | 0; - $1714 = ($1713 | 0) / 24 | 0; - $1715 = $1714 + 1 | 0; - if (($1713 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1719 = ($1705 - $1712 | 0) / 24 | 0; - if ($1719 >>> 0 < 1073741823) { - $1721 = $1719 << 1; - $$0$i$i$i = $1721 >>> 0 < $1715 >>> 0 ? $1715 : $1721; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $1714, $db + 12 | 0); - $1724 = $0 + 8 | 0; - $1725 = HEAP32[$1724 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1725, $80); - HEAP32[$1724 >> 2] = $1725 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($80); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 119: - { - if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) if ((HEAP8[$first + 1 >> 0] | 0) == 119) { - $1734 = $first + 2 | 0; - $1735 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1734, $last, $db) | 0; - if (($1735 | 0) == ($1734 | 0)) $$02$i = $first; else { - $1739 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1739 | 0)) $$02$i = $first; else { - $1741 = $1739 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1741); - $1742 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14142) | 0; - HEAP32[$1 >> 2] = HEAP32[$1742 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$1742 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$1742 + 8 >> 2]; - HEAP32[$1742 >> 2] = 0; - HEAP32[$1742 + 4 >> 2] = 0; - HEAP32[$1742 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1741, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$02$i = $1735; + HEAP16[$pnt2$367 >> 1] = $117; + if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $137 = $117; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - } - } else $$02$i = $first; else $$02$i = $first; else $$02$i = $first; - $$0 = $$02$i; - break L1; + } else $137 = $117; + } + $139 = ($137 << 16 >> 16) * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $231 = $pnt$168 + 2 | 0; + $232 = $pnt2$367 + 2 | 0; + $233 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $233; + $pnt$1$lcssa = $231; + $pnt2$3$lcssa = $232; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $$0 = $first; - break L1; + } else { + $dpnt$166 = $233; + $pnt$168 = $231; + $pnt2$367 = $232; + $wk_max$159 = $wk_max$2; } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 57: - case 56: - case 55: - case 54: - case 53: - case 52: - case 51: - case 50: - case 49: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - default: - { - $$0 = $first; - break L1; + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $240 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $242 = HEAP32[$wk$443 >> 2] | 0; + if (($242 | 0) == ($i$341 | 0)) { + $248 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $248; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } } - } while (0); - } else $$0 = $first; while (0); + } + $252 = $labelInfo + 8 | 0; + $253 = $j$1$lcssa + -1 | 0; + HEAP32[$252 >> 2] = $253; + if (!$253) $$0 = 0; else { + _memset($240 | 0, 0, $253 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $260 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $275 = $i$537 * 7 | 0; + $278 = $labelInfo + 12 + ($274 << 2) | 0; + HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); + $285 = $274 << 1; + $286 = $labelInfo + 655376 + ($285 << 3) | 0; + HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); + $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; + HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); + $297 = $274 << 2; + $298 = $labelInfo + 131084 + ($297 << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; + $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; + $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; + if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$252 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $327 = $labelInfo + 12 + ($i$636 << 2) | 0; + $330 = $i$636 << 1; + $331 = $labelInfo + 655376 + ($330 << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); + $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; + HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i100 = 0, $$0$i$i$i105 = 0, $$0$i$i$i110 = 0, $$0$i$i$i115 = 0, $$0$i$i$i120 = 0, $$0$i$i$i125 = 0, $$0$i$i$i130 = 0, $$0$i$i$i135 = 0, $$0$i$i$i140 = 0, $$0$i$i$i145 = 0, $$0$i$i$i15 = 0, $$0$i$i$i150 = 0, $$0$i$i$i155 = 0, $$0$i$i$i160 = 0, $$0$i$i$i165 = 0, $$0$i$i$i170 = 0, $$0$i$i$i175 = 0, $$0$i$i$i180 = 0, $$0$i$i$i185 = 0, $$0$i$i$i190 = 0, $$0$i$i$i195 = 0, $$0$i$i$i20 = 0, $$0$i$i$i200 = 0, $$0$i$i$i205 = 0, $$0$i$i$i210 = 0, $$0$i$i$i215 = 0, $$0$i$i$i220 = 0, $$0$i$i$i225 = 0, $$0$i$i$i25 = 0, $$0$i$i$i30 = 0, $$0$i$i$i35 = 0, $$0$i$i$i40 = 0, $$0$i$i$i45 = 0, $$0$i$i$i5 = 0, $$0$i$i$i50 = 0, $$0$i$i$i55 = 0, $$0$i$i$i60 = 0, $$0$i$i$i65 = 0, $$0$i$i$i70 = 0, $$0$i$i$i75 = 0, $$0$i$i$i80 = 0, $$0$i$i$i85 = 0, $$0$i$i$i90 = 0, $$0$i$i$i95 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1009 = 0, $1011 = 0, $1014 = 0, $1015 = 0, $1021 = 0, $1022 = 0, $1024 = 0, $103 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1038 = 0, $104 = 0, $1040 = 0, $1043 = 0, $1044 = 0, $1047 = 0, $1048 = 0, $1050 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $1060 = 0, $1064 = 0, $1066 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1073 = 0, $1074 = 0, $1076 = 0, $108 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1090 = 0, $1092 = 0, $1095 = 0, $1096 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1102 = 0, $1109 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1116 = 0, $1118 = 0, $1121 = 0, $1122 = 0, $1125 = 0, $1126 = 0, $1128 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1142 = 0, $1144 = 0, $1147 = 0, $1148 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1168 = 0, $117 = 0, $1170 = 0, $1173 = 0, $1174 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1183 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1197 = 0, $1199 = 0, $12 = 0, $120 = 0, $1202 = 0, $1203 = 0, $1209 = 0, $1210 = 0, $1212 = 0, $1219 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1226 = 0, $1228 = 0, $1231 = 0, $1232 = 0, $1235 = 0, $1236 = 0, $1238 = 0, $124 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1252 = 0, $1254 = 0, $1257 = 0, $1258 = 0, $126 = 0, $1261 = 0, $1262 = 0, $1264 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1278 = 0, $1280 = 0, $1283 = 0, $1284 = 0, $1287 = 0, $1288 = 0, $129 = 0, $1290 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1304 = 0, $1306 = 0, $1309 = 0, $1310 = 0, $1316 = 0, $1317 = 0, $1321 = 0, $133 = 0, $134 = 0, $136 = 0, $14 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $15 = 0, $150 = 0, $152 = 0, $155 = 0, $156 = 0, $16 = 0, $162 = 0, $163 = 0, $165 = 0, $17 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $179 = 0, $18 = 0, $181 = 0, $184 = 0, $185 = 0, $188 = 0, $189 = 0, $19 = 0, $191 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $211 = 0, $214 = 0, $215 = 0, $217 = 0, $22 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $23 = 0, $231 = 0, $233 = 0, $236 = 0, $237 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $247 = 0, $25 = 0, $254 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $27 = 0, $271 = 0, $273 = 0, $276 = 0, $277 = 0, $28 = 0, $280 = 0, $281 = 0, $283 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $297 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $33 = 0, $330 = 0, $332 = 0, $335 = 0, $336 = 0, $339 = 0, $34 = 0, $340 = 0, $342 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $356 = 0, $358 = 0, $36 = 0, $361 = 0, $362 = 0, $365 = 0, $366 = 0, $368 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $38 = 0, $382 = 0, $384 = 0, $387 = 0, $388 = 0, $39 = 0, $394 = 0, $395 = 0, $397 = 0, $4 = 0, $40 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $41 = 0, $411 = 0, $413 = 0, $416 = 0, $417 = 0, $42 = 0, $420 = 0, $421 = 0, $423 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $437 = 0, $439 = 0, $44 = 0, $442 = 0, $443 = 0, $446 = 0, $447 = 0, $449 = 0, $45 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $463 = 0, $465 = 0, $468 = 0, $469 = 0, $475 = 0, $476 = 0, $478 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $492 = 0, $494 = 0, $497 = 0, $498 = 0, $5 = 0, $501 = 0, $502 = 0, $504 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $518 = 0, $520 = 0, $523 = 0, $524 = 0, $530 = 0, $531 = 0, $533 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $547 = 0, $549 = 0, $55 = 0, $552 = 0, $553 = 0, $559 = 0, $56 = 0, $560 = 0, $562 = 0, $569 = 0, $570 = 0, $571 = 0, $572 = 0, $576 = 0, $578 = 0, $58 = 0, $581 = 0, $582 = 0, $585 = 0, $586 = 0, $590 = 0, $593 = 0, $594 = 0, $596 = 0, $6 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $610 = 0, $612 = 0, $615 = 0, $616 = 0, $619 = 0, $620 = 0, $622 = 0, $629 = 0, $630 = 0, $631 = 0, $632 = 0, $636 = 0, $638 = 0, $641 = 0, $642 = 0, $645 = 0, $646 = 0, $648 = 0, $65 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $66 = 0, $662 = 0, $664 = 0, $667 = 0, $668 = 0, $67 = 0, $674 = 0, $675 = 0, $677 = 0, $68 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $691 = 0, $693 = 0, $696 = 0, $697 = 0, $7 = 0, $700 = 0, $701 = 0, $703 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $717 = 0, $719 = 0, $72 = 0, $722 = 0, $723 = 0, $726 = 0, $727 = 0, $729 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $743 = 0, $745 = 0, $748 = 0, $749 = 0, $752 = 0, $753 = 0, $755 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $769 = 0, $77 = 0, $771 = 0, $774 = 0, $775 = 0, $778 = 0, $779 = 0, $78 = 0, $781 = 0, $788 = 0, $789 = 0, $790 = 0, $791 = 0, $795 = 0, $797 = 0, $8 = 0, $800 = 0, $801 = 0, $807 = 0, $808 = 0, $81 = 0, $810 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $824 = 0, $826 = 0, $829 = 0, $830 = 0, $833 = 0, $834 = 0, $836 = 0, $84 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $850 = 0, $852 = 0, $855 = 0, $856 = 0, $859 = 0, $860 = 0, $862 = 0, $869 = 0, $870 = 0, $871 = 0, $872 = 0, $876 = 0, $878 = 0, $881 = 0, $882 = 0, $885 = 0, $886 = 0, $888 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $9 = 0, $902 = 0, $904 = 0, $907 = 0, $908 = 0, $91 = 0, $911 = 0, $912 = 0, $914 = 0, $92 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $928 = 0, $93 = 0, $930 = 0, $933 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $957 = 0, $959 = 0, $962 = 0, $963 = 0, $966 = 0, $967 = 0, $969 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $983 = 0, $985 = 0, $988 = 0, $989 = 0, $992 = 0, $993 = 0, $995 = 0, $__v$i$i224 = 0, dest = 0, sp = 0, src = 0, stop = 0; +function _arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $codePatt, $dirPatt, $cfPatt, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected, $codeGlobalID_p) { + $pattHandle = $pattHandle | 0; + $imageProcMode = $imageProcMode | 0; + $pattDetectMode = $pattDetectMode | 0; + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $pixelFormat = $pixelFormat | 0; + $paramLTf = $paramLTf | 0; + $vertex = $vertex | 0; + $pattRatio = +$pattRatio; + $codePatt = $codePatt | 0; + $dirPatt = $dirPatt | 0; + $cfPatt = $cfPatt | 0; + $codeMatrix = $codeMatrix | 0; + $dirMatrix = $dirMatrix | 0; + $cfMatrix = $cfMatrix | 0; + $matrixCodeType = $matrixCodeType | 0; + $errorCorrected = $errorCorrected | 0; + $codeGlobalID_p = $codeGlobalID_p | 0; + var $$0 = 0, $$0$i = 0, $$max$0$i = 0, $$max$0$i$1 = 0, $$max$0$i$2 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $107 = 0, $114 = 0, $118 = 0, $122 = 0, $126 = 0, $137 = 0, $14 = 0, $141 = 0, $147 = 0, $148 = 0, $149 = 0, $162 = 0, $166 = 0, $175 = 0, $178 = 0, $186 = 0, $188 = 0, $196 = 0, $20 = 0, $200 = 0, $204 = 0, $206 = 0, $211 = 0, $212 = 0, $213 = 0, $26 = 0, $29 = 0, $30 = 0, $34 = 0, $68 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0, $93 = 0, $97 = 0, $bit$0$i28 = 0, $bit$1$i25 = 0, $bit$10$i43 = 0, $bit$11$i = 0, $bit$11$i$lcssa = 0, $bit$2$i = 0, $bit$2$i$lcssa = 0, $bit$3$i34 = 0, $bit$4$i31 = 0, $bit$5$i = 0, $bit$5$i$lcssa = 0, $bit$6$i40 = 0, $bit$7$i37 = 0, $bit$8$i = 0, $bit$8$i$lcssa = 0, $bit$9$i46 = 0, $code$i = 0, $contrastMin$0$i26 = 0, $contrastMin$1$i23 = 0, $contrastMin$10$i41 = 0, $contrastMin$11$i = 0, $contrastMin$11$i$lcssa = 0, $contrastMin$12$i = 0, $contrastMin$2$i = 0, $contrastMin$2$i$lcssa = 0, $contrastMin$3$i32 = 0, $contrastMin$4$i29 = 0, $contrastMin$5$i = 0, $contrastMin$5$i$lcssa = 0, $contrastMin$6$i38 = 0, $contrastMin$7$i35 = 0, $contrastMin$8$i = 0, $contrastMin$8$i$lcssa = 0, $contrastMin$9$i44 = 0, $corner$i = 0, $dirCode$i = 0, $errorCodeMtx$0 = 0, $errorCodePatt$0 = 0, $ext_patt = 0, $i$2$i$lcssa = 0, $i$2$i47 = 0, $i$3$i24 = 0, $i$4$i33 = 0, $i$4$off$i = 0, $i$5$i36 = 0, $i$6$i45 = 0, $i$6$off$i = 0, $j$0$i27 = 0, $j$0$off$i = 0, $j$1$i30 = 0, $j$2$i39 = 0, $j$2$off$i = 0, $j$3$i42 = 0, $min$1$i = 0, $min$1$i$1 = 0, $min$1$i$2 = 0, $or$cond4454$i = 0, $recd127$i = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 1136 | 0; + STACKTOP = STACKTOP + 12448 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i224 = sp + 1104 | 0; - $0 = sp + 1080 | 0; - $1 = sp + 1056 | 0; - $2 = sp + 1032 | 0; - $3 = sp + 1008 | 0; - $4 = sp + 984 | 0; - $5 = sp + 960 | 0; - $6 = sp + 936 | 0; - $7 = sp + 912 | 0; - $8 = sp + 888 | 0; - $9 = sp + 864 | 0; - $10 = sp + 840 | 0; - $11 = sp + 816 | 0; - $12 = sp + 792 | 0; - $13 = sp + 768 | 0; - $14 = sp + 744 | 0; - $15 = sp + 720 | 0; - $16 = sp + 696 | 0; - $17 = sp + 672 | 0; - $18 = sp + 648 | 0; - $19 = sp + 624 | 0; - $20 = sp + 600 | 0; - $21 = sp + 576 | 0; - $22 = sp + 552 | 0; - $23 = sp + 528 | 0; - $24 = sp + 504 | 0; - $25 = sp + 480 | 0; - $26 = sp + 456 | 0; - $27 = sp + 432 | 0; - $28 = sp + 408 | 0; - $29 = sp + 384 | 0; - $30 = sp + 360 | 0; - $31 = sp + 336 | 0; - $32 = sp + 312 | 0; - $33 = sp + 288 | 0; - $34 = sp + 264 | 0; - $35 = sp + 240 | 0; - $36 = sp + 216 | 0; - $37 = sp + 192 | 0; - $38 = sp + 168 | 0; - $39 = sp + 144 | 0; - $40 = sp + 120 | 0; - $41 = sp + 96 | 0; - $42 = sp + 72 | 0; - $43 = sp + 48 | 0; - $44 = sp + 24 | 0; - $45 = sp; - L1 : do if (($last - $first | 0) > 1) do switch (HEAP8[$first >> 0] | 0) { - case 97: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 97: + $dirCode$i = sp + 12440 | 0; + $corner$i = sp + 8 | 0; + $code$i = sp; + $recd127$i = sp + 12312 | 0; + $ext_patt = sp + 24 | 0; + do if (($pattDetectMode + -2 | 0) >>> 0 < 3) { + if (($matrixCodeType | 0) != 2830) { + $200 = $matrixCodeType & 255; + if ((_arPattGetImage2($imageProcMode, 2, $200, $200 * 3 | 0, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { + HEAP32[$codeMatrix >> 2] = -1; + $errorCodeMtx$0 = -6; + break; + } + $204 = _get_matrix_code($ext_patt, $200, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected) | 0; + if (!$codeGlobalID_p) { + $errorCodeMtx$0 = $204; + break; + } + $206 = $codeGlobalID_p; + HEAP32[$206 >> 2] = 0; + HEAP32[$206 + 4 >> 2] = 0; + $errorCodeMtx$0 = $204; + break; + } + if ((_arPattGetImage2($imageProcMode, 2, 14, 42, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, .875, $ext_patt) | 0) < 0) { + HEAP32[$codeMatrix >> 2] = -1; + $errorCodeMtx$0 = -6; + break; + } + HEAP32[$corner$i >> 2] = 0; + HEAP32[$corner$i + 4 >> 2] = 182; + HEAP32[$corner$i + 8 >> 2] = 195; + HEAP32[$corner$i + 12 >> 2] = 13; + $8 = HEAP8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0; + $$max$0$i = ($8 & 255) > 0 ? $8 : 0; + $min$1$i = ($8 & 255) < 255 ? $8 : -1; + $14 = HEAP8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0; + $$max$0$i$1 = ($14 & 255) > ($$max$0$i & 255) ? $14 : $$max$0$i; + $min$1$i$1 = ($14 & 255) < ($min$1$i & 255) ? $14 : $min$1$i; + $20 = HEAP8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0; + $$max$0$i$2 = ($20 & 255) > ($$max$0$i$1 & 255) ? $20 : $$max$0$i$1; + $min$1$i$2 = ($20 & 255) < ($min$1$i$1 & 255) ? $20 : $min$1$i$1; + $26 = HEAP8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0; + $29 = (($26 & 255) > ($$max$0$i$2 & 255) ? $26 : $$max$0$i$2) & 255; + $30 = (($26 & 255) < ($min$1$i$2 & 255) ? $26 : $min$1$i$2) & 255; + L13 : do if (($29 - $30 | 0) < 30) { + HEAP32[$dirMatrix >> 2] = 0; + HEAPF64[$cfMatrix >> 3] = -1.0; + $$0$i = -2; + $186 = 0; + $188 = 0; + } else { + $34 = ($29 + $30 | 0) >>> 1; + HEAP8[$dirCode$i >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; + HEAP8[$dirCode$i + 1 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; + HEAP8[$dirCode$i + 2 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; + HEAP8[$dirCode$i + 3 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; + $i$2$i47 = 0; + while (1) { + $68 = $i$2$i47 + 1 | 0; + if ((HEAP8[$dirCode$i + $i$2$i47 >> 0] | 0) == 1) if ((HEAP8[$dirCode$i + (($68 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode$i + (($i$2$i47 + 2 | 0) % 4 | 0) >> 0] | 0)) { + $i$2$i$lcssa = $i$2$i47; + break; + } + if (($68 | 0) < 4) $i$2$i47 = $68; else { + $i$2$i$lcssa = $68; + break; + } + } + switch ($i$2$i$lcssa | 0) { + case 4: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($0, 12949); - $55 = $db + 4 | 0; - $56 = HEAP32[$55 >> 2] | 0; - $58 = HEAP32[$db + 8 >> 2] | 0; - if ($56 >>> 0 < $58 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($56, $0); - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 24; - } else { - $65 = HEAP32[$db >> 2] | 0; - $66 = $56 - $65 | 0; - $67 = ($66 | 0) / 24 | 0; - $68 = $67 + 1 | 0; - if (($66 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $72 = ($58 - $65 | 0) / 24 | 0; - if ($72 >>> 0 < 1073741823) { - $74 = $72 << 1; - $$0$i$i$i = $74 >>> 0 < $68 >>> 0 ? $68 : $74; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i, $67, $db + 12 | 0); - $77 = $__v$i$i224 + 8 | 0; - $78 = HEAP32[$77 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($78, $0); - HEAP32[$77 >> 2] = $78 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$dirMatrix >> 2] = 0; + HEAPF64[$cfMatrix >> 3] = -1.0; + $$0$i = -3; + $186 = 0; + $188 = 0; + break L13; break; } - case 110: - case 100: + case 0: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($1, 12960); - $81 = $db + 4 | 0; - $82 = HEAP32[$81 >> 2] | 0; - $84 = HEAP32[$db + 8 >> 2] | 0; - if ($82 >>> 0 < $84 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1); - HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 24; - } else { - $91 = HEAP32[$db >> 2] | 0; - $92 = $82 - $91 | 0; - $93 = ($92 | 0) / 24 | 0; - $94 = $93 + 1 | 0; - if (($92 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $98 = ($84 - $91 | 0) / 24 | 0; - if ($98 >>> 0 < 1073741823) { - $100 = $98 << 1; - $$0$i$i$i5 = $100 >>> 0 < $94 >>> 0 ? $94 : $100; - } else $$0$i$i$i5 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i5, $93, $db + 12 | 0); - $103 = $__v$i$i224 + 8 | 0; - $104 = HEAP32[$103 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($104, $1); - HEAP32[$103 >> 2] = $104 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $bit$0$i28 = 119; + $contrastMin$0$i26 = 255; + $j$0$i27 = 0; + while (1) { + $j$0$off$i = $j$0$i27 + -3 | 0; + $80 = ($j$0$i27 & -2 | 0) == 12; + $81 = $j$0$i27 * 14 | 0; + $bit$1$i25 = $bit$0$i28; + $contrastMin$1$i23 = $contrastMin$0$i26; + $i$3$i24 = 0; + while (1) { + if (($i$3$i24 + -3 | $j$0$off$i) >>> 0 < 8) { + $bit$2$i = $bit$1$i25; + $contrastMin$2$i = $contrastMin$1$i23; + } else { + $84 = $i$3$i24 & -2; + if (($i$3$i24 | $j$0$i27) >>> 0 < 2) { + $bit$2$i = $bit$1$i25; + $contrastMin$2$i = $contrastMin$1$i23; + } else if ($80 & (($84 | 0) == 0 | ($84 | 0) == 12)) { + $bit$2$i = $bit$1$i25; + $contrastMin$2$i = $contrastMin$1$i23; + } else { + $93 = (HEAPU8[$ext_patt + ($i$3$i24 + $81) >> 0] | 0) - $34 | 0; + HEAP8[$recd127$i + $bit$1$i25 >> 0] = $93 >>> 31; + $97 = ($93 | 0) > -1 ? $93 : 0 - $93 | 0; + $bit$2$i = $bit$1$i25 + -1 | 0; + $contrastMin$2$i = ($97 | 0) < ($contrastMin$1$i23 | 0) ? $97 : $contrastMin$1$i23; + } + } + $i$3$i24 = $i$3$i24 + 1 | 0; + if (($i$3$i24 | 0) == 14) { + $bit$2$i$lcssa = $bit$2$i; + $contrastMin$2$i$lcssa = $contrastMin$2$i; + break; + } else { + $bit$1$i25 = $bit$2$i; + $contrastMin$1$i23 = $contrastMin$2$i; + } + } + $100 = $j$0$i27 + 1 | 0; + if (($100 | 0) == 14) { + $contrastMin$12$i = $contrastMin$2$i$lcssa; + break; + } else { + $bit$0$i28 = $bit$2$i$lcssa; + $contrastMin$0$i26 = $contrastMin$2$i$lcssa; + $j$0$i27 = $100; + } } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - $$0 = $first + 2 | 0; - break L1; break; } - case 78: + case 1: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($2, 12970); - $107 = $db + 4 | 0; - $108 = HEAP32[$107 >> 2] | 0; - $110 = HEAP32[$db + 8 >> 2] | 0; - if ($108 >>> 0 < $110 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($108, $2); - HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + 24; - } else { - $117 = HEAP32[$db >> 2] | 0; - $118 = $108 - $117 | 0; - $119 = ($118 | 0) / 24 | 0; - $120 = $119 + 1 | 0; - if (($118 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $124 = ($110 - $117 | 0) / 24 | 0; - if ($124 >>> 0 < 1073741823) { - $126 = $124 << 1; - $$0$i$i$i10 = $126 >>> 0 < $120 >>> 0 ? $120 : $126; - } else $$0$i$i$i10 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i10, $119, $db + 12 | 0); - $129 = $__v$i$i224 + 8 | 0; - $130 = HEAP32[$129 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($130, $2); - HEAP32[$129 >> 2] = $130 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - $$0 = $first + 2 | 0; - break L1; + $bit$3$i34 = 119; + $contrastMin$3$i32 = 255; + $i$4$i33 = 0; + while (1) { + $i$4$off$i = $i$4$i33 + -3 | 0; + $101 = $i$4$i33 & -2; + $102 = ($101 | 0) == 0; + $103 = ($101 | 0) == 12; + $bit$4$i31 = $bit$3$i34; + $contrastMin$4$i29 = $contrastMin$3$i32; + $j$1$i30 = 13; + while (1) { + if (($j$1$i30 + -3 | $i$4$off$i) >>> 0 < 8) { + $bit$5$i = $bit$4$i31; + $contrastMin$5$i = $contrastMin$4$i29; + } else { + $107 = ($j$1$i30 & -2 | 0) == 12; + if ($102 & $107) { + $bit$5$i = $bit$4$i31; + $contrastMin$5$i = $contrastMin$4$i29; + } else if ($103 & ($j$1$i30 >>> 0 < 2 | $107)) { + $bit$5$i = $bit$4$i31; + $contrastMin$5$i = $contrastMin$4$i29; + } else { + $114 = (HEAPU8[$ext_patt + (($j$1$i30 * 14 | 0) + $i$4$i33) >> 0] | 0) - $34 | 0; + HEAP8[$recd127$i + $bit$4$i31 >> 0] = $114 >>> 31; + $118 = ($114 | 0) > -1 ? $114 : 0 - $114 | 0; + $bit$5$i = $bit$4$i31 + -1 | 0; + $contrastMin$5$i = ($118 | 0) < ($contrastMin$4$i29 | 0) ? $118 : $contrastMin$4$i29; + } + } + if (($j$1$i30 | 0) > 0) { + $bit$4$i31 = $bit$5$i; + $contrastMin$4$i29 = $contrastMin$5$i; + $j$1$i30 = $j$1$i30 + -1 | 0; + } else { + $bit$5$i$lcssa = $bit$5$i; + $contrastMin$5$i$lcssa = $contrastMin$5$i; + break; + } + } + $122 = $i$4$i33 + 1 | 0; + if (($122 | 0) == 14) { + $contrastMin$12$i = $contrastMin$5$i$lcssa; + break; + } else { + $bit$3$i34 = $bit$5$i$lcssa; + $contrastMin$3$i32 = $contrastMin$5$i$lcssa; + $i$4$i33 = $122; + } + } break; } - case 83: + case 2: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($3, 12981); - $133 = $db + 4 | 0; - $134 = HEAP32[$133 >> 2] | 0; - $136 = HEAP32[$db + 8 >> 2] | 0; - if ($134 >>> 0 < $136 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($134, $3); - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 24; - } else { - $143 = HEAP32[$db >> 2] | 0; - $144 = $134 - $143 | 0; - $145 = ($144 | 0) / 24 | 0; - $146 = $145 + 1 | 0; - if (($144 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $150 = ($136 - $143 | 0) / 24 | 0; - if ($150 >>> 0 < 1073741823) { - $152 = $150 << 1; - $$0$i$i$i15 = $152 >>> 0 < $146 >>> 0 ? $146 : $152; - } else $$0$i$i$i15 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i15, $145, $db + 12 | 0); - $155 = $__v$i$i224 + 8 | 0; - $156 = HEAP32[$155 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($156, $3); - HEAP32[$155 >> 2] = $156 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $bit$6$i40 = 119; + $contrastMin$6$i38 = 255; + $j$2$i39 = 13; + while (1) { + $j$2$off$i = $j$2$i39 + -3 | 0; + $or$cond4454$i = $j$2$i39 >>> 0 < 2 | ($j$2$i39 & -2 | 0) == 12; + $126 = $j$2$i39 * 14 | 0; + $bit$7$i37 = $bit$6$i40; + $contrastMin$7$i35 = $contrastMin$6$i38; + $i$5$i36 = 13; + while (1) { + if (($i$5$i36 + -3 | $j$2$off$i) >>> 0 < 8) { + $bit$8$i = $bit$7$i37; + $contrastMin$8$i = $contrastMin$7$i35; + } else if (($i$5$i36 | $j$2$i39) >>> 0 < 2 | $or$cond4454$i & ($i$5$i36 & -2 | 0) == 12) { + $bit$8$i = $bit$7$i37; + $contrastMin$8$i = $contrastMin$7$i35; + } else { + $137 = (HEAPU8[$ext_patt + ($i$5$i36 + $126) >> 0] | 0) - $34 | 0; + HEAP8[$recd127$i + $bit$7$i37 >> 0] = $137 >>> 31; + $141 = ($137 | 0) > -1 ? $137 : 0 - $137 | 0; + $bit$8$i = $bit$7$i37 + -1 | 0; + $contrastMin$8$i = ($141 | 0) < ($contrastMin$7$i35 | 0) ? $141 : $contrastMin$7$i35; + } + if (($i$5$i36 | 0) > 0) { + $bit$7$i37 = $bit$8$i; + $contrastMin$7$i35 = $contrastMin$8$i; + $i$5$i36 = $i$5$i36 + -1 | 0; + } else { + $bit$8$i$lcssa = $bit$8$i; + $contrastMin$8$i$lcssa = $contrastMin$8$i; + break; + } + } + if (($j$2$i39 | 0) > 0) { + $bit$6$i40 = $bit$8$i$lcssa; + $contrastMin$6$i38 = $contrastMin$8$i$lcssa; + $j$2$i39 = $j$2$i39 + -1 | 0; + } else { + $contrastMin$12$i = $contrastMin$8$i$lcssa; + break; + } } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); - $$0 = $first + 2 | 0; - break L1; break; } - default: + case 3: { - $$0 = $first; - break L1; + $bit$9$i46 = 119; + $contrastMin$9$i44 = 255; + $i$6$i45 = 13; + while (1) { + $i$6$off$i = $i$6$i45 + -3 | 0; + $147 = $i$6$i45 & -2; + $148 = ($147 | 0) == 12; + $149 = ($147 | 0) == 0; + $bit$10$i43 = $bit$9$i46; + $contrastMin$10$i41 = $contrastMin$9$i44; + $j$3$i42 = 0; + while (1) { + if (($j$3$i42 + -3 | $i$6$off$i) >>> 0 < 8) { + $bit$11$i = $bit$10$i43; + $contrastMin$11$i = $contrastMin$10$i41; + } else if ($148 & $j$3$i42 >>> 0 < 2 | ($j$3$i42 | $i$6$i45) >>> 0 < 2) { + $bit$11$i = $bit$10$i43; + $contrastMin$11$i = $contrastMin$10$i41; + } else if ($149 & ($j$3$i42 & -2 | 0) == 12) { + $bit$11$i = $bit$10$i43; + $contrastMin$11$i = $contrastMin$10$i41; + } else { + $162 = (HEAPU8[$ext_patt + (($j$3$i42 * 14 | 0) + $i$6$i45) >> 0] | 0) - $34 | 0; + HEAP8[$recd127$i + $bit$10$i43 >> 0] = $162 >>> 31; + $166 = ($162 | 0) > -1 ? $162 : 0 - $162 | 0; + $bit$11$i = $bit$10$i43 + -1 | 0; + $contrastMin$11$i = ($166 | 0) < ($contrastMin$10$i41 | 0) ? $166 : $contrastMin$10$i41; + } + $j$3$i42 = $j$3$i42 + 1 | 0; + if (($j$3$i42 | 0) == 14) { + $bit$11$i$lcssa = $bit$11$i; + $contrastMin$11$i$lcssa = $contrastMin$11$i; + break; + } else { + $bit$10$i43 = $bit$11$i; + $contrastMin$10$i41 = $contrastMin$11$i; + } + } + if (($i$6$i45 | 0) > 0) { + $bit$9$i46 = $bit$11$i$lcssa; + $contrastMin$9$i44 = $contrastMin$11$i$lcssa; + $i$6$i45 = $i$6$i45 + -1 | 0; + } else { + $contrastMin$12$i = $contrastMin$11$i$lcssa; + break; + } + } + break; } + default: + $contrastMin$12$i = 255; + } + HEAP32[$dirMatrix >> 2] = $i$2$i$lcssa; + HEAPF64[$cfMatrix >> 3] = ($contrastMin$12$i | 0) > 30 ? 1.0 : +($contrastMin$12$i | 0) / 30.0; + $175 = _decode_bch(2830, 0, 0, $recd127$i, $code$i) | 0; + if (($175 | 0) < 0) { + $$0$i = -4; + $186 = 0; + $188 = 0; + } else { + if ($errorCorrected) HEAP32[$errorCorrected >> 2] = $175; + $178 = $code$i; + $$0$i = 0; + $186 = HEAP32[$178 >> 2] | 0; + $188 = HEAP32[$178 + 4 >> 2] | 0; } + } while (0); + if (($$0$i | 0) < 0) { + HEAP32[$codeMatrix >> 2] = -1; + $errorCodeMtx$0 = $$0$i; break; } - case 99: + if (($186 | 0) == -1 & ($188 | 0) == -1) { + HEAP32[$codeMatrix >> 2] = -1; + $errorCodeMtx$0 = -5; + break; + } + HEAP32[$codeMatrix >> 2] = ($186 & -32768 | 0) == 0 & 0 == 0 ? $186 & 32767 : 0; + if (!$codeGlobalID_p) $errorCodeMtx$0 = 0; else { + $196 = $codeGlobalID_p; + HEAP32[$196 >> 2] = $186; + HEAP32[$196 + 4 >> 2] = $188; + $errorCodeMtx$0 = 0; + } + } else $errorCodeMtx$0 = 1; while (0); + L78 : do switch ($pattDetectMode | 0) { + case 0: + case 1: + case 3: + case 4: { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 108: + if (!$pattHandle) { + HEAP32[$codePatt >> 2] = -1; + $errorCodePatt$0 = -1; + break L78; + } + $211 = $pattHandle + 28 | 0; + $212 = HEAP32[$211 >> 2] | 0; + $213 = $212 << 2; + switch ($pattDetectMode | 0) { + case 0: + case 3: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($4, 12991); - $162 = $db + 4 | 0; - $163 = HEAP32[$162 >> 2] | 0; - $165 = HEAP32[$db + 8 >> 2] | 0; - if ($163 >>> 0 < $165 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $4); - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 24; + if ((_arPattGetImage2($imageProcMode, 0, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { + HEAP32[$codePatt >> 2] = -1; + $errorCodePatt$0 = -6; + break L78; } else { - $172 = HEAP32[$db >> 2] | 0; - $173 = $163 - $172 | 0; - $174 = ($173 | 0) / 24 | 0; - $175 = $174 + 1 | 0; - if (($173 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $179 = ($165 - $172 | 0) / 24 | 0; - if ($179 >>> 0 < 1073741823) { - $181 = $179 << 1; - $$0$i$i$i20 = $181 >>> 0 < $175 >>> 0 ? $175 : $181; - } else $$0$i$i$i20 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i20, $174, $db + 12 | 0); - $184 = $__v$i$i224 + 8 | 0; - $185 = HEAP32[$184 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($185, $4); - HEAP32[$184 >> 2] = $185 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $errorCodePatt$0 = _pattern_match($pattHandle, 0, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0; + break L78; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); - $$0 = $first + 2 | 0; - break L1; break; } - case 109: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($5, 13002); - $188 = $db + 4 | 0; - $189 = HEAP32[$188 >> 2] | 0; - $191 = HEAP32[$db + 8 >> 2] | 0; - if ($189 >>> 0 < $191 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($189, $5); - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 24; - } else { - $198 = HEAP32[$db >> 2] | 0; - $199 = $189 - $198 | 0; - $200 = ($199 | 0) / 24 | 0; - $201 = $200 + 1 | 0; - if (($199 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $205 = ($191 - $198 | 0) / 24 | 0; - if ($205 >>> 0 < 1073741823) { - $207 = $205 << 1; - $$0$i$i$i25 = $207 >>> 0 < $201 >>> 0 ? $201 : $207; - } else $$0$i$i$i25 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i25, $200, $db + 12 | 0); - $210 = $__v$i$i224 + 8 | 0; - $211 = HEAP32[$210 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($211, $5); - HEAP32[$210 >> 2] = $211 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $$0 = $first + 2 | 0; - break L1; - break; + default: + if ((_arPattGetImage2($imageProcMode, 1, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { + HEAP32[$codePatt >> 2] = -1; + $errorCodePatt$0 = -6; + break L78; + } else { + $errorCodePatt$0 = _pattern_match($pattHandle, 1, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0; + break L78; } - case 111: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($6, 13012); - $214 = $db + 4 | 0; - $215 = HEAP32[$214 >> 2] | 0; - $217 = HEAP32[$db + 8 >> 2] | 0; - if ($215 >>> 0 < $217 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($215, $6); - HEAP32[$214 >> 2] = (HEAP32[$214 >> 2] | 0) + 24; + } + break; + } + default: + $errorCodePatt$0 = 1; + } while (0); + if (($errorCodeMtx$0 | 0) == 1) $$0 = $errorCodePatt$0; else if (($errorCodePatt$0 | 0) == 1) $$0 = $errorCodeMtx$0; else $$0 = ($errorCodePatt$0 & $errorCodeMtx$0 | 0) < 0 ? $errorCodePatt$0 : 0; + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($42 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $42; + $45 = ($42 << 16 >> 16) * 7 | 0; + $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; + $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264; + $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $67 = $65 << 16 >> 16 > 0; + if ($61 << 16 >> 16 <= 0) { + if ($67) { + HEAP16[$pnt2$367 >> 1] = $65; + $167 = $66 * 7 | 0; + $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; + $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264; + $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075; + $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; + if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $187 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($187 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $187; + $190 = ($187 << 16 >> 16) * 7 | 0; + $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; + $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264; + $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075; + $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; + if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$204 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $207 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $207; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16; + $212 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $207; + break; + } + } + if ($67) { + $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + if (($70 | 0) > ($73 | 0)) { + HEAP16[$pnt2$367 >> 1] = $73; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $90 = $73; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $90 = $73; + } else { + HEAP16[$pnt2$367 >> 1] = $70; + if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $90 = $70; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $90 = $70; + } + $92 = ($90 << 16 >> 16) * 7 | 0; + $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; + $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264; + $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $108 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($108 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $61; + $148 = $62 * 7 | 0; + $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; + $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264; + $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075; + $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; + if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($113 | 0) > ($116 | 0)) { + HEAP16[$pnt2$367 >> 1] = $116; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $133 = $116; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $133 = $116; + } else { + HEAP16[$pnt2$367 >> 1] = $113; + if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $133 = $113; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $133 = $113; + } + $135 = ($133 << 16 >> 16) * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $227 = $pnt$168 + 2 | 0; + $228 = $pnt2$367 + 2 | 0; + $229 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $229; + $pnt$1$lcssa = $227; + $pnt2$3$lcssa = $228; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $224 = HEAP32[$db >> 2] | 0; - $225 = $215 - $224 | 0; - $226 = ($225 | 0) / 24 | 0; - $227 = $226 + 1 | 0; - if (($225 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $231 = ($217 - $224 | 0) / 24 | 0; - if ($231 >>> 0 < 1073741823) { - $233 = $231 << 1; - $$0$i$i$i30 = $233 >>> 0 < $227 >>> 0 ? $227 : $233; - } else $$0$i$i$i30 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i30, $226, $db + 12 | 0); - $236 = $__v$i$i224 + 8 | 0; - $237 = HEAP32[$236 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($237, $6); - HEAP32[$236 >> 2] = $237 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 118: - { - $240 = $db + 63 | 0; - $241 = HEAP8[$240 >> 0] | 0; - HEAP8[$240 >> 0] = 0; - $242 = $first + 2 | 0; - $243 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($242, $last, $db) | 0; - HEAP8[$240 >> 0] = $241; - if (($243 | 0) == ($242 | 0)) { - $$0 = $first; - break L1; - } - $247 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($247 | 0)) { - $$0 = $first; - break L1; + $dpnt$166 = $229; + $pnt$168 = $227; + $pnt2$367 = $228; + $wk_max$159 = $wk_max$2; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($247 + -24 | 0, 0, 13022) | 0; - HEAP8[$db + 60 >> 0] = 1; - $$0 = $243; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - break; } - case 100: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 97: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($7, 13032); - $254 = $db + 4 | 0; - $255 = HEAP32[$254 >> 2] | 0; - $257 = HEAP32[$db + 8 >> 2] | 0; - if ($255 >>> 0 < $257 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($255, $7); - HEAP32[$254 >> 2] = (HEAP32[$254 >> 2] | 0) + 24; - } else { - $264 = HEAP32[$db >> 2] | 0; - $265 = $255 - $264 | 0; - $266 = ($265 | 0) / 24 | 0; - $267 = $266 + 1 | 0; - if (($265 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $271 = ($257 - $264 | 0) / 24 | 0; - if ($271 >>> 0 < 1073741823) { - $273 = $271 << 1; - $$0$i$i$i35 = $273 >>> 0 < $267 >>> 0 ? $267 : $273; - } else $$0$i$i$i35 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i35, $266, $db + 12 | 0); - $276 = $__v$i$i224 + 8 | 0; - $277 = HEAP32[$276 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($277, $7); - HEAP32[$276 >> 2] = $277 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 101: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($8, 13050); - $280 = $db + 4 | 0; - $281 = HEAP32[$280 >> 2] | 0; - $283 = HEAP32[$db + 8 >> 2] | 0; - if ($281 >>> 0 < $283 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($281, $8); - HEAP32[$280 >> 2] = (HEAP32[$280 >> 2] | 0) + 24; - } else { - $290 = HEAP32[$db >> 2] | 0; - $291 = $281 - $290 | 0; - $292 = ($291 | 0) / 24 | 0; - $293 = $292 + 1 | 0; - if (($291 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $297 = ($283 - $290 | 0) / 24 | 0; - if ($297 >>> 0 < 1073741823) { - $299 = $297 << 1; - $$0$i$i$i40 = $299 >>> 0 < $293 >>> 0 ? $293 : $299; - } else $$0$i$i$i40 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i40, $292, $db + 12 | 0); - $302 = $__v$i$i224 + 8 | 0; - $303 = HEAP32[$302 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($303, $8); - HEAP32[$302 >> 2] = $303 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8); - $$0 = $first + 2 | 0; - break L1; - break; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $236 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $238 = HEAP32[$wk$443 >> 2] | 0; + if (($238 | 0) == ($i$341 | 0)) { + $244 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - case 108: - { - $306 = _malloc(16) | 0; - HEAP32[$9 + 8 >> 2] = $306; - HEAP32[$9 >> 2] = 17; - HEAP32[$9 + 4 >> 2] = 15; - dest = $306; - src = 13060; - stop = dest + 15 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$306 + 15 >> 0] = 0; - $310 = $9 + 12 | 0; - HEAP32[$310 >> 2] = 0; - HEAP32[$310 + 4 >> 2] = 0; - HEAP32[$310 + 8 >> 2] = 0; - $313 = $db + 4 | 0; - $314 = HEAP32[$313 >> 2] | 0; - $316 = HEAP32[$db + 8 >> 2] | 0; - if ($314 >>> 0 < $316 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($314, $9); - HEAP32[$313 >> 2] = (HEAP32[$313 >> 2] | 0) + 24; - } else { - $323 = HEAP32[$db >> 2] | 0; - $324 = $314 - $323 | 0; - $325 = ($324 | 0) / 24 | 0; - $326 = $325 + 1 | 0; - if (($324 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $330 = ($316 - $323 | 0) / 24 | 0; - if ($330 >>> 0 < 1073741823) { - $332 = $330 << 1; - $$0$i$i$i45 = $332 >>> 0 < $326 >>> 0 ? $326 : $332; - } else $$0$i$i$i45 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i45, $325, $db + 12 | 0); - $335 = $__v$i$i224 + 8 | 0; - $336 = HEAP32[$335 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($336, $9); - HEAP32[$335 >> 2] = $336 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$443 >> 2] = $244; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 118: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($10, 13076); - $339 = $db + 4 | 0; - $340 = HEAP32[$339 >> 2] | 0; - $342 = HEAP32[$db + 8 >> 2] | 0; - if ($340 >>> 0 < $342 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($340, $10); - HEAP32[$339 >> 2] = (HEAP32[$339 >> 2] | 0) + 24; + } + } + $248 = $labelInfo + 8 | 0; + $249 = $j$1$lcssa + -1 | 0; + HEAP32[$248 >> 2] = $249; + if (!$249) $$0 = 0; else { + _memset($236 | 0, 0, $249 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $256 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $271 = $i$537 * 7 | 0; + $274 = $labelInfo + 12 + ($270 << 2) | 0; + HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0); + $281 = $270 << 1; + $282 = $labelInfo + 655376 + ($281 << 3) | 0; + HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0); + $290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0); + $293 = $270 << 2; + $294 = $labelInfo + 131084 + ($293 << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312; + $315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0; + $319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0; + if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$248 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $323 = $labelInfo + 12 + ($i$636 << 2) | 0; + $326 = $i$636 << 1; + $327 = $labelInfo + 655376 + ($326 << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0); + $333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0; + HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 1) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + $29 = HEAPU8[$pnt$168 >> 0] | 0; + do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; } else { - $349 = HEAP32[$db >> 2] | 0; - $350 = $340 - $349 | 0; - $351 = ($350 | 0) / 24 | 0; - $352 = $351 + 1 | 0; - if (($350 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $356 = ($342 - $349 | 0) / 24 | 0; - if ($356 >>> 0 < 1073741823) { - $358 = $356 << 1; - $$0$i$i$i50 = $358 >>> 0 < $352 >>> 0 ? $352 : $358; - } else $$0$i$i$i50 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i50, $351, $db + 12 | 0); - $361 = $__v$i$i224 + 8 | 0; - $362 = HEAP32[$361 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($362, $10); - HEAP32[$361 >> 2] = $362 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 86: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($11, 13086); - $365 = $db + 4 | 0; - $366 = HEAP32[$365 >> 2] | 0; - $368 = HEAP32[$db + 8 >> 2] | 0; - if ($366 >>> 0 < $368 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($366, $11); - HEAP32[$365 >> 2] = (HEAP32[$365 >> 2] | 0) + 24; + HEAP8[$dpnt$166 >> 0] = -1; + $42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($42 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $42; + $45 = ($42 << 16 >> 16) * 7 | 0; + $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; + $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264; + $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $67 = $65 << 16 >> 16 > 0; + if ($61 << 16 >> 16 <= 0) { + if ($67) { + HEAP16[$pnt2$367 >> 1] = $65; + $167 = $66 * 7 | 0; + $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; + $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264; + $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075; + $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; + if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $187 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($187 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $187; + $190 = ($187 << 16 >> 16) * 7 | 0; + $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; + $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264; + $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075; + $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; + if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$204 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $207 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $207; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16; + $212 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $207; + break; + } + } + if ($67) { + $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + if (($70 | 0) > ($73 | 0)) { + HEAP16[$pnt2$367 >> 1] = $73; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $90 = $73; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $90 = $73; + } else { + HEAP16[$pnt2$367 >> 1] = $70; + if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $90 = $70; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $90 = $70; + } + $92 = ($90 << 16 >> 16) * 7 | 0; + $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; + $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264; + $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $108 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($108 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $61; + $148 = $62 * 7 | 0; + $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; + $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264; + $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075; + $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; + if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($113 | 0) > ($116 | 0)) { + HEAP16[$pnt2$367 >> 1] = $116; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $133 = $116; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $133 = $116; + } else { + HEAP16[$pnt2$367 >> 1] = $113; + if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $133 = $113; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $133 = $113; + } + $135 = ($133 << 16 >> 16) * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $227 = $pnt$168 + 2 | 0; + $228 = $pnt2$367 + 2 | 0; + $229 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $229; + $pnt$1$lcssa = $227; + $pnt2$3$lcssa = $228; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $375 = HEAP32[$db >> 2] | 0; - $376 = $366 - $375 | 0; - $377 = ($376 | 0) / 24 | 0; - $378 = $377 + 1 | 0; - if (($376 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $382 = ($368 - $375 | 0) / 24 | 0; - if ($382 >>> 0 < 1073741823) { - $384 = $382 << 1; - $$0$i$i$i55 = $384 >>> 0 < $378 >>> 0 ? $378 : $384; - } else $$0$i$i$i55 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i55, $377, $db + 12 | 0); - $387 = $__v$i$i224 + 8 | 0; - $388 = HEAP32[$387 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($388, $11); - HEAP32[$387 >> 2] = $388 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $dpnt$166 = $229; + $pnt$168 = $227; + $pnt2$367 = $228; + $wk_max$159 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); - $$0 = $first + 2 | 0; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - break; - } - case 101: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 111: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 13097); - $394 = $db + 4 | 0; - $395 = HEAP32[$394 >> 2] | 0; - $397 = HEAP32[$db + 8 >> 2] | 0; - if ($395 >>> 0 < $397 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($395, $12); - HEAP32[$394 >> 2] = (HEAP32[$394 >> 2] | 0) + 24; - } else { - $404 = HEAP32[$db >> 2] | 0; - $405 = $395 - $404 | 0; - $406 = ($405 | 0) / 24 | 0; - $407 = $406 + 1 | 0; - if (($405 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $411 = ($397 - $404 | 0) / 24 | 0; - if ($411 >>> 0 < 1073741823) { - $413 = $411 << 1; - $$0$i$i$i60 = $413 >>> 0 < $407 >>> 0 ? $407 : $413; - } else $$0$i$i$i60 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i60, $406, $db + 12 | 0); - $416 = $__v$i$i224 + 8 | 0; - $417 = HEAP32[$416 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($417, $12); - HEAP32[$416 >> 2] = $417 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 79: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($13, 13107); - $420 = $db + 4 | 0; - $421 = HEAP32[$420 >> 2] | 0; - $423 = HEAP32[$db + 8 >> 2] | 0; - if ($421 >>> 0 < $423 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($421, $13); - HEAP32[$420 >> 2] = (HEAP32[$420 >> 2] | 0) + 24; - } else { - $430 = HEAP32[$db >> 2] | 0; - $431 = $421 - $430 | 0; - $432 = ($431 | 0) / 24 | 0; - $433 = $432 + 1 | 0; - if (($431 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $437 = ($423 - $430 | 0) / 24 | 0; - if ($437 >>> 0 < 1073741823) { - $439 = $437 << 1; - $$0$i$i$i65 = $439 >>> 0 < $433 >>> 0 ? $433 : $439; - } else $$0$i$i$i65 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i65, $432, $db + 12 | 0); - $442 = $__v$i$i224 + 8 | 0; - $443 = HEAP32[$442 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($443, $13); - HEAP32[$442 >> 2] = $443 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 113: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($14, 13118); - $446 = $db + 4 | 0; - $447 = HEAP32[$446 >> 2] | 0; - $449 = HEAP32[$db + 8 >> 2] | 0; - if ($447 >>> 0 < $449 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($447, $14); - HEAP32[$446 >> 2] = (HEAP32[$446 >> 2] | 0) + 24; - } else { - $456 = HEAP32[$db >> 2] | 0; - $457 = $447 - $456 | 0; - $458 = ($457 | 0) / 24 | 0; - $459 = $458 + 1 | 0; - if (($457 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $463 = ($449 - $456 | 0) / 24 | 0; - if ($463 >>> 0 < 1073741823) { - $465 = $463 << 1; - $$0$i$i$i70 = $465 >>> 0 < $459 >>> 0 ? $459 : $465; - } else $$0$i$i$i70 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i70, $458, $db + 12 | 0); - $468 = $__v$i$i224 + 8 | 0; - $469 = HEAP32[$468 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($469, $14); - HEAP32[$468 >> 2] = $469 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14); - $$0 = $first + 2 | 0; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - break; } - case 103: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 101: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($15, 13129); - $475 = $db + 4 | 0; - $476 = HEAP32[$475 >> 2] | 0; - $478 = HEAP32[$db + 8 >> 2] | 0; - if ($476 >>> 0 < $478 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($476, $15); - HEAP32[$475 >> 2] = (HEAP32[$475 >> 2] | 0) + 24; - } else { - $485 = HEAP32[$db >> 2] | 0; - $486 = $476 - $485 | 0; - $487 = ($486 | 0) / 24 | 0; - $488 = $487 + 1 | 0; - if (($486 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $492 = ($478 - $485 | 0) / 24 | 0; - if ($492 >>> 0 < 1073741823) { - $494 = $492 << 1; - $$0$i$i$i75 = $494 >>> 0 < $488 >>> 0 ? $488 : $494; - } else $$0$i$i$i75 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i75, $487, $db + 12 | 0); - $497 = $__v$i$i224 + 8 | 0; - $498 = HEAP32[$497 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($498, $15); - HEAP32[$497 >> 2] = $498 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15); - $$0 = $first + 2 | 0; - break L1; - break; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $236 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $238 = HEAP32[$wk$443 >> 2] | 0; + if (($238 | 0) == ($i$341 | 0)) { + $244 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - case 116: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($16, 13140); - $501 = $db + 4 | 0; - $502 = HEAP32[$501 >> 2] | 0; - $504 = HEAP32[$db + 8 >> 2] | 0; - if ($502 >>> 0 < $504 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($502, $16); - HEAP32[$501 >> 2] = (HEAP32[$501 >> 2] | 0) + 24; - } else { - $511 = HEAP32[$db >> 2] | 0; - $512 = $502 - $511 | 0; - $513 = ($512 | 0) / 24 | 0; - $514 = $513 + 1 | 0; - if (($512 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $518 = ($504 - $511 | 0) / 24 | 0; - if ($518 >>> 0 < 1073741823) { - $520 = $518 << 1; - $$0$i$i$i80 = $520 >>> 0 < $514 >>> 0 ? $514 : $520; - } else $$0$i$i$i80 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i80, $513, $db + 12 | 0); - $523 = $__v$i$i224 + 8 | 0; - $524 = HEAP32[$523 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($524, $16); - HEAP32[$523 >> 2] = $524 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$443 >> 2] = $244; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - default: - { - $$0 = $first; - break L1; - } } - break; } - case 105: - { - if ((HEAP8[$first + 1 >> 0] | 0) != 120) { - $$0 = $first; - break L1; + $248 = $labelInfo + 8 | 0; + $249 = $j$1$lcssa + -1 | 0; + HEAP32[$248 >> 2] = $249; + if (!$249) $$0 = 0; else { + _memset($236 | 0, 0, $249 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $256 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($17, 13150); - $530 = $db + 4 | 0; - $531 = HEAP32[$530 >> 2] | 0; - $533 = HEAP32[$db + 8 >> 2] | 0; - if ($531 >>> 0 < $533 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($531, $17); - HEAP32[$530 >> 2] = (HEAP32[$530 >> 2] | 0) + 24; - } else { - $540 = HEAP32[$db >> 2] | 0; - $541 = $531 - $540 | 0; - $542 = ($541 | 0) / 24 | 0; - $543 = $542 + 1 | 0; - if (($541 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $547 = ($533 - $540 | 0) / 24 | 0; - if ($547 >>> 0 < 1073741823) { - $549 = $547 << 1; - $$0$i$i$i85 = $549 >>> 0 < $543 >>> 0 ? $543 : $549; - } else $$0$i$i$i85 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i85, $542, $db + 12 | 0); - $552 = $__v$i$i224 + 8 | 0; - $553 = HEAP32[$552 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($553, $17); - HEAP32[$552 >> 2] = $553 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $271 = $i$537 * 7 | 0; + $274 = $labelInfo + 12 + ($270 << 2) | 0; + HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0); + $281 = $270 << 1; + $282 = $labelInfo + 655376 + ($281 << 3) | 0; + HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0); + $290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0; + HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0); + $293 = $270 << 2; + $294 = $labelInfo + 131084 + ($293 << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312; + $315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0; + $319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0; + if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17); - $$0 = $first + 2 | 0; - break L1; - break; + if ((HEAP32[$248 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $323 = $labelInfo + 12 + ($i$636 << 2) | 0; + $326 = $i$636 << 1; + $327 = $labelInfo + 655376 + ($326 << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0); + $333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0; + HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - case 108: + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabeling($image, $xsize, $ysize, $pixFormat, $debugMode, $labelingMode, $labelingThresh, $imageProcMode, $labelInfo, $image_thresh) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $pixFormat = $pixFormat | 0; + $debugMode = $debugMode | 0; + $labelingMode = $labelingMode | 0; + $labelingThresh = $labelingThresh | 0; + $imageProcMode = $imageProcMode | 0; + $labelInfo = $labelInfo | 0; + $image_thresh = $image_thresh | 0; + var $$0 = 0; + L1 : do switch ($debugMode | 0) { + case 0: { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 101: + switch ($labelingMode | 0) { + case 1: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($18, 13161); - $559 = $db + 4 | 0; - $560 = HEAP32[$559 >> 2] | 0; - $562 = HEAP32[$db + 8 >> 2] | 0; - if ($560 >>> 0 < $562 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($560, $18); - HEAP32[$559 >> 2] = (HEAP32[$559 >> 2] | 0) + 24; - } else { - $569 = HEAP32[$db >> 2] | 0; - $570 = $560 - $569 | 0; - $571 = ($570 | 0) / 24 | 0; - $572 = $571 + 1 | 0; - if (($570 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $576 = ($562 - $569 | 0) / 24 | 0; - if ($576 >>> 0 < 1073741823) { - $578 = $576 << 1; - $$0$i$i$i90 = $578 >>> 0 < $572 >>> 0 ? $572 : $578; - } else $$0$i$i$i90 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i90, $571, $db + 12 | 0); - $581 = $__v$i$i224 + 8 | 0; - $582 = HEAP32[$581 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($582, $18); - HEAP32[$581 >> 2] = $582 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + if ($image_thresh) { + $$0 = _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; + break L1; + } + switch ($imageProcMode | 0) { + case 0: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + case 1: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + default: + _exit(0); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18); - $$0 = $first + 2 | 0; - break L1; break; } - case 105: + case 0: { - $585 = $first + 2 | 0; - $586 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($585, $last, $db) | 0; - if (($586 | 0) == ($585 | 0)) { - $$0 = $first; - break L1; - } - $590 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($590 | 0)) { - $$0 = $first; + if ($image_thresh) { + $$0 = _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; break L1; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($590 + -24 | 0, 0, 13172) | 0; - $$0 = $586; - break L1; - break; - } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 13184); - $593 = $db + 4 | 0; - $594 = HEAP32[$593 >> 2] | 0; - $596 = HEAP32[$db + 8 >> 2] | 0; - if ($594 >>> 0 < $596 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($594, $19); - HEAP32[$593 >> 2] = (HEAP32[$593 >> 2] | 0) + 24; - } else { - $603 = HEAP32[$db >> 2] | 0; - $604 = $594 - $603 | 0; - $605 = ($604 | 0) / 24 | 0; - $606 = $605 + 1 | 0; - if (($604 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $610 = ($596 - $603 | 0) / 24 | 0; - if ($610 >>> 0 < 1073741823) { - $612 = $610 << 1; - $$0$i$i$i95 = $612 >>> 0 < $606 >>> 0 ? $606 : $612; - } else $$0$i$i$i95 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i95, $605, $db + 12 | 0); - $615 = $__v$i$i224 + 8 | 0; - $616 = HEAP32[$615 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($616, $19); - HEAP32[$615 >> 2] = $616 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 83: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($20, 13195); - $619 = $db + 4 | 0; - $620 = HEAP32[$619 >> 2] | 0; - $622 = HEAP32[$db + 8 >> 2] | 0; - if ($620 >>> 0 < $622 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($620, $20); - HEAP32[$619 >> 2] = (HEAP32[$619 >> 2] | 0) + 24; - } else { - $629 = HEAP32[$db >> 2] | 0; - $630 = $620 - $629 | 0; - $631 = ($630 | 0) / 24 | 0; - $632 = $631 + 1 | 0; - if (($630 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $636 = ($622 - $629 | 0) / 24 | 0; - if ($636 >>> 0 < 1073741823) { - $638 = $636 << 1; - $$0$i$i$i100 = $638 >>> 0 < $632 >>> 0 ? $632 : $638; - } else $$0$i$i$i100 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i100, $631, $db + 12 | 0); - $641 = $__v$i$i224 + 8 | 0; - $642 = HEAP32[$641 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($642, $20); - HEAP32[$641 >> 2] = $642 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 116: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 13207); - $645 = $db + 4 | 0; - $646 = HEAP32[$645 >> 2] | 0; - $648 = HEAP32[$db + 8 >> 2] | 0; - if ($646 >>> 0 < $648 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($646, $21); - HEAP32[$645 >> 2] = (HEAP32[$645 >> 2] | 0) + 24; - } else { - $655 = HEAP32[$db >> 2] | 0; - $656 = $646 - $655 | 0; - $657 = ($656 | 0) / 24 | 0; - $658 = $657 + 1 | 0; - if (($656 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $662 = ($648 - $655 | 0) / 24 | 0; - if ($662 >>> 0 < 1073741823) { - $664 = $662 << 1; - $$0$i$i$i105 = $664 >>> 0 < $658 >>> 0 ? $658 : $664; - } else $$0$i$i$i105 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i105, $657, $db + 12 | 0); - $667 = $__v$i$i224 + 8 | 0; - $668 = HEAP32[$667 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($668, $21); - HEAP32[$667 >> 2] = $668 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + switch ($imageProcMode | 0) { + case 0: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + case 1: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + default: + _exit(0); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); - $$0 = $first + 2 | 0; - break L1; break; } default: - { - $$0 = $first; - break L1; - } + _exit(0); } break; } - case 109: + case 1: { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 105: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($22, 13217); - $674 = $db + 4 | 0; - $675 = HEAP32[$674 >> 2] | 0; - $677 = HEAP32[$db + 8 >> 2] | 0; - if ($675 >>> 0 < $677 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($675, $22); - HEAP32[$674 >> 2] = (HEAP32[$674 >> 2] | 0) + 24; - } else { - $684 = HEAP32[$db >> 2] | 0; - $685 = $675 - $684 | 0; - $686 = ($685 | 0) / 24 | 0; - $687 = $686 + 1 | 0; - if (($685 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $691 = ($677 - $684 | 0) / 24 | 0; - if ($691 >>> 0 < 1073741823) { - $693 = $691 << 1; - $$0$i$i$i110 = $693 >>> 0 < $687 >>> 0 ? $687 : $693; - } else $$0$i$i$i110 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i110, $686, $db + 12 | 0); - $696 = $__v$i$i224 + 8 | 0; - $697 = HEAP32[$696 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($697, $22); - HEAP32[$696 >> 2] = $697 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 73: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($23, 13227); - $700 = $db + 4 | 0; - $701 = HEAP32[$700 >> 2] | 0; - $703 = HEAP32[$db + 8 >> 2] | 0; - if ($701 >>> 0 < $703 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($701, $23); - HEAP32[$700 >> 2] = (HEAP32[$700 >> 2] | 0) + 24; - } else { - $710 = HEAP32[$db >> 2] | 0; - $711 = $701 - $710 | 0; - $712 = ($711 | 0) / 24 | 0; - $713 = $712 + 1 | 0; - if (($711 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $717 = ($703 - $710 | 0) / 24 | 0; - if ($717 >>> 0 < 1073741823) { - $719 = $717 << 1; - $$0$i$i$i115 = $719 >>> 0 < $713 >>> 0 ? $713 : $719; - } else $$0$i$i$i115 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i115, $712, $db + 12 | 0); - $722 = $__v$i$i224 + 8 | 0; - $723 = HEAP32[$722 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($723, $23); - HEAP32[$722 >> 2] = $723 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 108: + switch ($labelingMode | 0) { + case 1: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 13050); - $726 = $db + 4 | 0; - $727 = HEAP32[$726 >> 2] | 0; - $729 = HEAP32[$db + 8 >> 2] | 0; - if ($727 >>> 0 < $729 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($727, $24); - HEAP32[$726 >> 2] = (HEAP32[$726 >> 2] | 0) + 24; - } else { - $736 = HEAP32[$db >> 2] | 0; - $737 = $727 - $736 | 0; - $738 = ($737 | 0) / 24 | 0; - $739 = $738 + 1 | 0; - if (($737 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $743 = ($729 - $736 | 0) / 24 | 0; - if ($743 >>> 0 < 1073741823) { - $745 = $743 << 1; - $$0$i$i$i120 = $745 >>> 0 < $739 >>> 0 ? $739 : $745; - } else $$0$i$i$i120 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i120, $738, $db + 12 | 0); - $748 = $__v$i$i224 + 8 | 0; - $749 = HEAP32[$748 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($749, $24); - HEAP32[$748 >> 2] = $749 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + if ($image_thresh) { + $$0 = _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; + break L1; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 76: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($25, 13238); - $752 = $db + 4 | 0; - $753 = HEAP32[$752 >> 2] | 0; - $755 = HEAP32[$db + 8 >> 2] | 0; - if ($753 >>> 0 < $755 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($753, $25); - HEAP32[$752 >> 2] = (HEAP32[$752 >> 2] | 0) + 24; - } else { - $762 = HEAP32[$db >> 2] | 0; - $763 = $753 - $762 | 0; - $764 = ($763 | 0) / 24 | 0; - $765 = $764 + 1 | 0; - if (($763 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $769 = ($755 - $762 | 0) / 24 | 0; - if ($769 >>> 0 < 1073741823) { - $771 = $769 << 1; - $$0$i$i$i125 = $771 >>> 0 < $765 >>> 0 ? $765 : $771; - } else $$0$i$i$i125 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i125, $764, $db + 12 | 0); - $774 = $__v$i$i224 + 8 | 0; - $775 = HEAP32[$774 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($775, $25); - HEAP32[$774 >> 2] = $775 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + switch ($imageProcMode | 0) { + case 0: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + case 1: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + default: + _exit(0); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); - $$0 = $first + 2 | 0; - break L1; break; } - case 109: + case 0: { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($26, 13249); - $778 = $db + 4 | 0; - $779 = HEAP32[$778 >> 2] | 0; - $781 = HEAP32[$db + 8 >> 2] | 0; - if ($779 >>> 0 < $781 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($779, $26); - HEAP32[$778 >> 2] = (HEAP32[$778 >> 2] | 0) + 24; - } else { - $788 = HEAP32[$db >> 2] | 0; - $789 = $779 - $788 | 0; - $790 = ($789 | 0) / 24 | 0; - $791 = $790 + 1 | 0; - if (($789 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $795 = ($781 - $788 | 0) / 24 | 0; - if ($795 >>> 0 < 1073741823) { - $797 = $795 << 1; - $$0$i$i$i130 = $797 >>> 0 < $791 >>> 0 ? $791 : $797; - } else $$0$i$i$i130 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i130, $790, $db + 12 | 0); - $800 = $__v$i$i224 + 8 | 0; - $801 = HEAP32[$800 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($801, $26); - HEAP32[$800 >> 2] = $801 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + if ($image_thresh) { + $$0 = _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; + break L1; + } + switch ($imageProcMode | 0) { + case 0: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + case 1: + { + if ($pixFormat >>> 0 < 2) { + $$0 = _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -2 | 0) == 2) { + $$0 = _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + if (($pixFormat & -3 | 0) == 4) { + $$0 = _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + } + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + { + $$0 = _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 8: + { + $$0 = _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 7: + { + $$0 = _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 9: + { + $$0 = _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 10: + { + $$0 = _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + case 11: + { + $$0 = _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; + break L1; + break; + } + default: + _exit(0); + } + break; + } + default: + _exit(0); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26); - $$0 = $first + 2 | 0; - break L1; break; } default: - { - $$0 = $first; - break L1; - } + _exit(0); } break; } - case 110: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 97: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($27, 13260); - $807 = $db + 4 | 0; - $808 = HEAP32[$807 >> 2] | 0; - $810 = HEAP32[$db + 8 >> 2] | 0; - if ($808 >>> 0 < $810 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($808, $27); - HEAP32[$807 >> 2] = (HEAP32[$807 >> 2] | 0) + 24; - } else { - $817 = HEAP32[$db >> 2] | 0; - $818 = $808 - $817 | 0; - $819 = ($818 | 0) / 24 | 0; - $820 = $819 + 1 | 0; - if (($818 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $824 = ($810 - $817 | 0) / 24 | 0; - if ($824 >>> 0 < 1073741823) { - $826 = $824 << 1; - $$0$i$i$i135 = $826 >>> 0 < $820 >>> 0 ? $820 : $826; - } else $$0$i$i$i135 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i135, $819, $db + 12 | 0); - $829 = $__v$i$i224 + 8 | 0; - $830 = HEAP32[$829 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($830, $27); - HEAP32[$829 >> 2] = $830 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 101: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($28, 13275); - $833 = $db + 4 | 0; - $834 = HEAP32[$833 >> 2] | 0; - $836 = HEAP32[$db + 8 >> 2] | 0; - if ($834 >>> 0 < $836 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($834, $28); - HEAP32[$833 >> 2] = (HEAP32[$833 >> 2] | 0) + 24; - } else { - $843 = HEAP32[$db >> 2] | 0; - $844 = $834 - $843 | 0; - $845 = ($844 | 0) / 24 | 0; - $846 = $845 + 1 | 0; - if (($844 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $850 = ($836 - $843 | 0) / 24 | 0; - if ($850 >>> 0 < 1073741823) { - $852 = $850 << 1; - $$0$i$i$i140 = $852 >>> 0 < $846 >>> 0 ? $846 : $852; - } else $$0$i$i$i140 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i140, $845, $db + 12 | 0); - $855 = $__v$i$i224 + 8 | 0; - $856 = HEAP32[$855 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($856, $28); - HEAP32[$855 >> 2] = $856 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 103: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($29, 13217); - $859 = $db + 4 | 0; - $860 = HEAP32[$859 >> 2] | 0; - $862 = HEAP32[$db + 8 >> 2] | 0; - if ($860 >>> 0 < $862 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($860, $29); - HEAP32[$859 >> 2] = (HEAP32[$859 >> 2] | 0) + 24; - } else { - $869 = HEAP32[$db >> 2] | 0; - $870 = $860 - $869 | 0; - $871 = ($870 | 0) / 24 | 0; - $872 = $871 + 1 | 0; - if (($870 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $876 = ($862 - $869 | 0) / 24 | 0; - if ($876 >>> 0 < 1073741823) { - $878 = $876 << 1; - $$0$i$i$i145 = $878 >>> 0 < $872 >>> 0 ? $872 : $878; - } else $$0$i$i$i145 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i145, $871, $db + 12 | 0); - $881 = $__v$i$i224 + 8 | 0; - $882 = HEAP32[$881 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($882, $29); - HEAP32[$881 >> 2] = $882 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($29); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 116: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($30, 13286); - $885 = $db + 4 | 0; - $886 = HEAP32[$885 >> 2] | 0; - $888 = HEAP32[$db + 8 >> 2] | 0; - if ($886 >>> 0 < $888 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($886, $30); - HEAP32[$885 >> 2] = (HEAP32[$885 >> 2] | 0) + 24; + default: + _exit(0); + } while (0); + return $$0 | 0; +} + +function _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 2) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$367 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $186 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$203 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $206 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $206; + break; + } + } + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$367 >> 1] = $72; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $89 = $72; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $89 = $72; + } else { + HEAP16[$pnt2$367 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $89 = $69; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $89 = $69; + } + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $107 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$367 >> 1] = $115; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $132 = $115; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $132 = $115; + } else { + HEAP16[$pnt2$367 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $132 = $112; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $132 = $112; + } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; } else { - $895 = HEAP32[$db >> 2] | 0; - $896 = $886 - $895 | 0; - $897 = ($896 | 0) / 24 | 0; - $898 = $897 + 1 | 0; - if (($896 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $902 = ($888 - $895 | 0) / 24 | 0; - if ($902 >>> 0 < 1073741823) { - $904 = $902 << 1; - $$0$i$i$i150 = $904 >>> 0 < $898 >>> 0 ? $898 : $904; - } else $$0$i$i$i150 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i150, $897, $db + 12 | 0); - $907 = $__v$i$i224 + 8 | 0; - $908 = HEAP32[$907 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($908, $30); - HEAP32[$907 >> 2] = $908 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($30); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 119: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($31, 13296); - $911 = $db + 4 | 0; - $912 = HEAP32[$911 >> 2] | 0; - $914 = HEAP32[$db + 8 >> 2] | 0; - if ($912 >>> 0 < $914 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($912, $31); - HEAP32[$911 >> 2] = (HEAP32[$911 >> 2] | 0) + 24; + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $226 = $pnt$168 + 4 | 0; + $227 = $pnt2$367 + 2 | 0; + $228 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $228; + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $921 = HEAP32[$db >> 2] | 0; - $922 = $912 - $921 | 0; - $923 = ($922 | 0) / 24 | 0; - $924 = $923 + 1 | 0; - if (($922 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $928 = ($914 - $921 | 0) / 24 | 0; - if ($928 >>> 0 < 1073741823) { - $930 = $928 << 1; - $$0$i$i$i155 = $930 >>> 0 < $924 >>> 0 ? $924 : $930; - } else $$0$i$i$i155 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i155, $923, $db + 12 | 0); - $933 = $__v$i$i224 + 8 | 0; - $934 = HEAP32[$933 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($934, $31); - HEAP32[$933 >> 2] = $934 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $dpnt$166 = $228; + $pnt$168 = $226; + $pnt2$367 = $227; + $wk_max$159 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31); - $$0 = $first + 2 | 0; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 8 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - break; } - case 111: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 111: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($32, 13309); - $940 = $db + 4 | 0; - $941 = HEAP32[$940 >> 2] | 0; - $943 = HEAP32[$db + 8 >> 2] | 0; - if ($941 >>> 0 < $943 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($941, $32); - HEAP32[$940 >> 2] = (HEAP32[$940 >> 2] | 0) + 24; - } else { - $950 = HEAP32[$db >> 2] | 0; - $951 = $941 - $950 | 0; - $952 = ($951 | 0) / 24 | 0; - $953 = $952 + 1 | 0; - if (($951 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $957 = ($943 - $950 | 0) / 24 | 0; - if ($957 >>> 0 < 1073741823) { - $959 = $957 << 1; - $$0$i$i$i160 = $959 >>> 0 < $953 >>> 0 ? $953 : $959; - } else $$0$i$i$i160 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i160, $952, $db + 12 | 0); - $962 = $__v$i$i224 + 8 | 0; - $963 = HEAP32[$962 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($963, $32); - HEAP32[$962 >> 2] = $963 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($32); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 114: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($33, 13320); - $966 = $db + 4 | 0; - $967 = HEAP32[$966 >> 2] | 0; - $969 = HEAP32[$db + 8 >> 2] | 0; - if ($967 >>> 0 < $969 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($967, $33); - HEAP32[$966 >> 2] = (HEAP32[$966 >> 2] | 0) + 24; - } else { - $976 = HEAP32[$db >> 2] | 0; - $977 = $967 - $976 | 0; - $978 = ($977 | 0) / 24 | 0; - $979 = $978 + 1 | 0; - if (($977 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $983 = ($969 - $976 | 0) / 24 | 0; - if ($983 >>> 0 < 1073741823) { - $985 = $983 << 1; - $$0$i$i$i165 = $985 >>> 0 < $979 >>> 0 ? $979 : $985; - } else $$0$i$i$i165 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i165, $978, $db + 12 | 0); - $988 = $__v$i$i224 + 8 | 0; - $989 = HEAP32[$988 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($989, $33); - HEAP32[$988 >> 2] = $989 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($33); - $$0 = $first + 2 | 0; - break L1; - break; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $237 = HEAP32[$wk$443 >> 2] | 0; + if (($237 | 0) == ($i$341 | 0)) { + $243 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - case 82: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($34, 13330); - $992 = $db + 4 | 0; - $993 = HEAP32[$992 >> 2] | 0; - $995 = HEAP32[$db + 8 >> 2] | 0; - if ($993 >>> 0 < $995 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($993, $34); - HEAP32[$992 >> 2] = (HEAP32[$992 >> 2] | 0) + 24; - } else { - $1002 = HEAP32[$db >> 2] | 0; - $1003 = $993 - $1002 | 0; - $1004 = ($1003 | 0) / 24 | 0; - $1005 = $1004 + 1 | 0; - if (($1003 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1009 = ($995 - $1002 | 0) / 24 | 0; - if ($1009 >>> 0 < 1073741823) { - $1011 = $1009 << 1; - $$0$i$i$i170 = $1011 >>> 0 < $1005 >>> 0 ? $1005 : $1011; - } else $$0$i$i$i170 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i170, $1004, $db + 12 | 0); - $1014 = $__v$i$i224 + 8 | 0; - $1015 = HEAP32[$1014 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1015, $34); - HEAP32[$1014 >> 2] = $1015 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($34); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$443 >> 2] = $243; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - default: - { - $$0 = $first; - break L1; - } } - break; } - case 112: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 109: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($35, 13341); - $1021 = $db + 4 | 0; - $1022 = HEAP32[$1021 >> 2] | 0; - $1024 = HEAP32[$db + 8 >> 2] | 0; - if ($1022 >>> 0 < $1024 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1022, $35); - HEAP32[$1021 >> 2] = (HEAP32[$1021 >> 2] | 0) + 24; - } else { - $1031 = HEAP32[$db >> 2] | 0; - $1032 = $1022 - $1031 | 0; - $1033 = ($1032 | 0) / 24 | 0; - $1034 = $1033 + 1 | 0; - if (($1032 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1038 = ($1024 - $1031 | 0) / 24 | 0; - if ($1038 >>> 0 < 1073741823) { - $1040 = $1038 << 1; - $$0$i$i$i175 = $1040 >>> 0 < $1034 >>> 0 ? $1034 : $1040; - } else $$0$i$i$i175 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i175, $1033, $db + 12 | 0); - $1043 = $__v$i$i224 + 8 | 0; - $1044 = HEAP32[$1043 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1044, $35); - HEAP32[$1043 >> 2] = $1044 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($35); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 108: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($36, 13353); - $1047 = $db + 4 | 0; - $1048 = HEAP32[$1047 >> 2] | 0; - $1050 = HEAP32[$db + 8 >> 2] | 0; - if ($1048 >>> 0 < $1050 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1048, $36); - HEAP32[$1047 >> 2] = (HEAP32[$1047 >> 2] | 0) + 24; - } else { - $1057 = HEAP32[$db >> 2] | 0; - $1058 = $1048 - $1057 | 0; - $1059 = ($1058 | 0) / 24 | 0; - $1060 = $1059 + 1 | 0; - if (($1058 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1064 = ($1050 - $1057 | 0) / 24 | 0; - if ($1064 >>> 0 < 1073741823) { - $1066 = $1064 << 1; - $$0$i$i$i180 = $1066 >>> 0 < $1060 >>> 0 ? $1060 : $1066; - } else $$0$i$i$i180 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i180, $1059, $db + 12 | 0); - $1069 = $__v$i$i224 + 8 | 0; - $1070 = HEAP32[$1069 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1070, $36); - HEAP32[$1069 >> 2] = $1070 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 76: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($37, 13363); - $1073 = $db + 4 | 0; - $1074 = HEAP32[$1073 >> 2] | 0; - $1076 = HEAP32[$db + 8 >> 2] | 0; - if ($1074 >>> 0 < $1076 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1074, $37); - HEAP32[$1073 >> 2] = (HEAP32[$1073 >> 2] | 0) + 24; - } else { - $1083 = HEAP32[$db >> 2] | 0; - $1084 = $1074 - $1083 | 0; - $1085 = ($1084 | 0) / 24 | 0; - $1086 = $1085 + 1 | 0; - if (($1084 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1090 = ($1076 - $1083 | 0) / 24 | 0; - if ($1090 >>> 0 < 1073741823) { - $1092 = $1090 << 1; - $$0$i$i$i185 = $1092 >>> 0 < $1086 >>> 0 ? $1086 : $1092; - } else $$0$i$i$i185 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i185, $1085, $db + 12 | 0); - $1095 = $__v$i$i224 + 8 | 0; - $1096 = HEAP32[$1095 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1096, $37); - HEAP32[$1095 >> 2] = $1096 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($37); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 112: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($38, 13374); - $1099 = $db + 4 | 0; - $1100 = HEAP32[$1099 >> 2] | 0; - $1102 = HEAP32[$db + 8 >> 2] | 0; - if ($1100 >>> 0 < $1102 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1100, $38); - HEAP32[$1099 >> 2] = (HEAP32[$1099 >> 2] | 0) + 24; - } else { - $1109 = HEAP32[$db >> 2] | 0; - $1110 = $1100 - $1109 | 0; - $1111 = ($1110 | 0) / 24 | 0; - $1112 = $1111 + 1 | 0; - if (($1110 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1116 = ($1102 - $1109 | 0) / 24 | 0; - if ($1116 >>> 0 < 1073741823) { - $1118 = $1116 << 1; - $$0$i$i$i190 = $1118 >>> 0 < $1112 >>> 0 ? $1112 : $1118; - } else $$0$i$i$i190 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i190, $1111, $db + 12 | 0); - $1121 = $__v$i$i224 + 8 | 0; - $1122 = HEAP32[$1121 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1122, $38); - HEAP32[$1121 >> 2] = $1122 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($38); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($39, 13353); - $1125 = $db + 4 | 0; - $1126 = HEAP32[$1125 >> 2] | 0; - $1128 = HEAP32[$db + 8 >> 2] | 0; - if ($1126 >>> 0 < $1128 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1126, $39); - HEAP32[$1125 >> 2] = (HEAP32[$1125 >> 2] | 0) + 24; - } else { - $1135 = HEAP32[$db >> 2] | 0; - $1136 = $1126 - $1135 | 0; - $1137 = ($1136 | 0) / 24 | 0; - $1138 = $1137 + 1 | 0; - if (($1136 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1142 = ($1128 - $1135 | 0) / 24 | 0; - if ($1142 >>> 0 < 1073741823) { - $1144 = $1142 << 1; - $$0$i$i$i195 = $1144 >>> 0 < $1138 >>> 0 ? $1138 : $1144; - } else $$0$i$i$i195 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i195, $1137, $db + 12 | 0); - $1147 = $__v$i$i224 + 8 | 0; - $1148 = HEAP32[$1147 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1148, $39); - HEAP32[$1147 >> 2] = $1148 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($39); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 116: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($40, 13385); - $1151 = $db + 4 | 0; - $1152 = HEAP32[$1151 >> 2] | 0; - $1154 = HEAP32[$db + 8 >> 2] | 0; - if ($1152 >>> 0 < $1154 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1152, $40); - HEAP32[$1151 >> 2] = (HEAP32[$1151 >> 2] | 0) + 24; - } else { - $1161 = HEAP32[$db >> 2] | 0; - $1162 = $1152 - $1161 | 0; - $1163 = ($1162 | 0) / 24 | 0; - $1164 = $1163 + 1 | 0; - if (($1162 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1168 = ($1154 - $1161 | 0) / 24 | 0; - if ($1168 >>> 0 < 1073741823) { - $1170 = $1168 << 1; - $$0$i$i$i200 = $1170 >>> 0 < $1164 >>> 0 ? $1164 : $1170; - } else $$0$i$i$i200 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i200, $1163, $db + 12 | 0); - $1173 = $__v$i$i224 + 8 | 0; - $1174 = HEAP32[$1173 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1174, $40); - HEAP32[$1173 >> 2] = $1174 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($40); - $$0 = $first + 2 | 0; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $255 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$537 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $322 = $labelInfo + 12 + ($i$636 << 2) | 0; + $325 = $i$636 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; } - break; } - case 113: - { - if ((HEAP8[$first + 1 >> 0] | 0) != 117) { - $$0 = $first; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($41, 13396); - $1180 = $db + 4 | 0; - $1181 = HEAP32[$1180 >> 2] | 0; - $1183 = HEAP32[$db + 8 >> 2] | 0; - if ($1181 >>> 0 < $1183 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1181, $41); - HEAP32[$1180 >> 2] = (HEAP32[$1180 >> 2] | 0) + 24; - } else { - $1190 = HEAP32[$db >> 2] | 0; - $1191 = $1181 - $1190 | 0; - $1192 = ($1191 | 0) / 24 | 0; - $1193 = $1192 + 1 | 0; - if (($1191 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1197 = ($1183 - $1190 | 0) / 24 | 0; - if ($1197 >>> 0 < 1073741823) { - $1199 = $1197 << 1; - $$0$i$i$i205 = $1199 >>> 0 < $1193 >>> 0 ? $1193 : $1199; - } else $$0$i$i$i205 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i205, $1192, $db + 12 | 0); - $1202 = $__v$i$i224 + 8 | 0; - $1203 = HEAP32[$1202 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1203, $41); - HEAP32[$1202 >> 2] = $1203 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($41); - $$0 = $first + 2 | 0; - break L1; - break; } - case 114: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 109: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($42, 13406); - $1209 = $db + 4 | 0; - $1210 = HEAP32[$1209 >> 2] | 0; - $1212 = HEAP32[$db + 8 >> 2] | 0; - if ($1210 >>> 0 < $1212 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1210, $42); - HEAP32[$1209 >> 2] = (HEAP32[$1209 >> 2] | 0) + 24; + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 2) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; } else { - $1219 = HEAP32[$db >> 2] | 0; - $1220 = $1210 - $1219 | 0; - $1221 = ($1220 | 0) / 24 | 0; - $1222 = $1221 + 1 | 0; - if (($1220 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1226 = ($1212 - $1219 | 0) / 24 | 0; - if ($1226 >>> 0 < 1073741823) { - $1228 = $1226 << 1; - $$0$i$i$i210 = $1228 >>> 0 < $1222 >>> 0 ? $1222 : $1228; - } else $$0$i$i$i210 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i210, $1221, $db + 12 | 0); - $1231 = $__v$i$i224 + 8 | 0; - $1232 = HEAP32[$1231 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1232, $42); - HEAP32[$1231 >> 2] = $1232 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($42); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 77: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($43, 13416); - $1235 = $db + 4 | 0; - $1236 = HEAP32[$1235 >> 2] | 0; - $1238 = HEAP32[$db + 8 >> 2] | 0; - if ($1236 >>> 0 < $1238 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1236, $43); - HEAP32[$1235 >> 2] = (HEAP32[$1235 >> 2] | 0) + 24; + HEAP8[$dpnt$166 >> 0] = -1; + $41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$367 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $186 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$203 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $206 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $206; + break; + } + } + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$367 >> 1] = $72; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $89 = $72; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $89 = $72; + } else { + HEAP16[$pnt2$367 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $89 = $69; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $89 = $69; + } + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $107 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$367 >> 1] = $115; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $132 = $115; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $132 = $115; + } else { + HEAP16[$pnt2$367 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $132 = $112; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $132 = $112; + } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $226 = $pnt$168 + 4 | 0; + $227 = $pnt2$367 + 2 | 0; + $228 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $228; + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $1245 = HEAP32[$db >> 2] | 0; - $1246 = $1236 - $1245 | 0; - $1247 = ($1246 | 0) / 24 | 0; - $1248 = $1247 + 1 | 0; - if (($1246 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1252 = ($1238 - $1245 | 0) / 24 | 0; - if ($1252 >>> 0 < 1073741823) { - $1254 = $1252 << 1; - $$0$i$i$i215 = $1254 >>> 0 < $1248 >>> 0 ? $1248 : $1254; - } else $$0$i$i$i215 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i215, $1247, $db + 12 | 0); - $1257 = $__v$i$i224 + 8 | 0; - $1258 = HEAP32[$1257 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1258, $43); - HEAP32[$1257 >> 2] = $1258 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); + $dpnt$166 = $228; + $pnt$168 = $226; + $pnt2$367 = $227; + $wk_max$159 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($43); - $$0 = $first + 2 | 0; - break L1; - break; } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($44, 13427); - $1261 = $db + 4 | 0; - $1262 = HEAP32[$1261 >> 2] | 0; - $1264 = HEAP32[$db + 8 >> 2] | 0; - if ($1262 >>> 0 < $1264 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1262, $44); - HEAP32[$1261 >> 2] = (HEAP32[$1261 >> 2] | 0) + 24; - } else { - $1271 = HEAP32[$db >> 2] | 0; - $1272 = $1262 - $1271 | 0; - $1273 = ($1272 | 0) / 24 | 0; - $1274 = $1273 + 1 | 0; - if (($1272 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1278 = ($1264 - $1271 | 0) / 24 | 0; - if ($1278 >>> 0 < 1073741823) { - $1280 = $1278 << 1; - $$0$i$i$i220 = $1280 >>> 0 < $1274 >>> 0 ? $1274 : $1280; - } else $$0$i$i$i220 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i220, $1273, $db + 12 | 0); - $1283 = $__v$i$i224 + 8 | 0; - $1284 = HEAP32[$1283 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1284, $44); - HEAP32[$1283 >> 2] = $1284 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($44); - $$0 = $first + 2 | 0; - break L1; - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 8 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $237 = HEAP32[$wk$443 >> 2] | 0; + if (($237 | 0) == ($i$341 | 0)) { + $243 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - case 83: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($45, 13438); - $1287 = $db + 4 | 0; - $1288 = HEAP32[$1287 >> 2] | 0; - $1290 = HEAP32[$db + 8 >> 2] | 0; - if ($1288 >>> 0 < $1290 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1288, $45); - HEAP32[$1287 >> 2] = (HEAP32[$1287 >> 2] | 0) + 24; - } else { - $1297 = HEAP32[$db >> 2] | 0; - $1298 = $1288 - $1297 | 0; - $1299 = ($1298 | 0) / 24 | 0; - $1300 = $1299 + 1 | 0; - if (($1298 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $1304 = ($1290 - $1297 | 0) / 24 | 0; - if ($1304 >>> 0 < 1073741823) { - $1306 = $1304 << 1; - $$0$i$i$i225 = $1306 >>> 0 < $1300 >>> 0 ? $1300 : $1306; - } else $$0$i$i$i225 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i225, $1299, $db + 12 | 0); - $1309 = $__v$i$i224 + 8 | 0; - $1310 = HEAP32[$1309 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1310, $45); - HEAP32[$1309 >> 2] = $1310 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$443 >> 2] = $243; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - default: - { - $$0 = $first; - break L1; - } } - break; } - case 118: - { - if (((HEAP8[$first + 1 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { - $$0 = $first; - break L1; - } - $1316 = $first + 2 | 0; - $1317 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1316, $last, $db) | 0; - if (($1317 | 0) == ($1316 | 0)) { - $$0 = $first; - break L1; - } - $1321 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($1321 | 0)) { - $$0 = $first; - break L1; + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $255 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0)); } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($1321 + -24 | 0, 0, 13022) | 0; - $$0 = $1317; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$537 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $322 = $labelInfo + 12 + ($i$636 << 2) | 0; + $325 = $i$636 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - } while (0); else $$0 = $first; while (0); + } STACKTOP = sp; return $$0 | 0; } -function _arPattGetImage2($imageProcMode, $pattDetectMode, $patt_size, $sample_size, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) { - $imageProcMode = $imageProcMode | 0; - $pattDetectMode = $pattDetectMode | 0; - $patt_size = $patt_size | 0; - $sample_size = $sample_size | 0; + +function _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; - $pixelFormat = $pixelFormat | 0; - $paramLTf = $paramLTf | 0; - $vertex = $vertex | 0; - $pattRatio = +$pattRatio; - $ext_patt = $ext_patt | 0; - var $$0 = 0, $100 = 0, $1001 = 0, $1005 = 0, $1009 = 0, $1012 = 0, $1023 = 0.0, $1028 = 0.0, $103 = 0.0, $1035 = 0.0, $104 = 0.0, $1045 = 0.0, $1054 = 0.0, $1055 = 0.0, $106 = 0, $107 = 0, $1074 = 0, $108 = 0, $1084 = 0, $1090 = 0.0, $1096 = 0.0, $1097 = 0.0, $110 = 0.0, $1101 = 0, $1107 = 0, $111 = 0.0, $1111 = 0, $1113 = 0, $1119 = 0, $112 = 0.0, $1120 = 0, $1124 = 0, $1128 = 0, $113 = 0, $1132 = 0, $1135 = 0, $114 = 0, $1146 = 0.0, $115 = 0, $1151 = 0.0, $1158 = 0.0, $116 = 0, $1168 = 0.0, $117 = 0, $1177 = 0.0, $1178 = 0.0, $118 = 0, $119 = 0, $1199 = 0, $120 = 0, $1203 = 0, $121 = 0, $1211 = 0, $1212 = 0, $1217 = 0, $1225 = 0, $123 = 0, $1231 = 0, $124 = 0.0, $1242 = 0.0, $1247 = 0.0, $125 = 0.0, $1254 = 0.0, $126 = 0.0, $1264 = 0.0, $127 = 0, $1273 = 0.0, $1274 = 0.0, $128 = 0, $129 = 0, $1295 = 0, $1299 = 0, $130 = 0, $1307 = 0, $1308 = 0, $131 = 0, $1313 = 0, $132 = 0, $1321 = 0, $1327 = 0, $133 = 0, $1338 = 0.0, $134 = 0, $1343 = 0.0, $135 = 0, $1350 = 0.0, $1360 = 0.0, $1369 = 0.0, $137 = 0, $1370 = 0.0, $138 = 0.0, $139 = 0.0, $1391 = 0, $140 = 0.0, $1402 = 0, $1403 = 0, $1408 = 0, $141 = 0, $1413 = 0, $1419 = 0, $142 = 0, $143 = 0, $1433 = 0, $1436 = 0.0, $1437 = 0.0, $1438 = 0.0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1456 = 0.0, $146 = 0, $1461 = 0.0, $1468 = 0.0, $147 = 0, $1478 = 0.0, $148 = 0, $1487 = 0.0, $1488 = 0.0, $149 = 0, $1509 = 0, $151 = 0, $152 = 0.0, $1528 = 0, $153 = 0.0, $1537 = 0.0, $1538 = 0.0, $1539 = 0.0, $154 = 0.0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $155 = 0, $1550 = 0, $1555 = 0.0, $156 = 0, $1560 = 0.0, $1567 = 0.0, $157 = 0, $1577 = 0.0, $158 = 0, $1586 = 0.0, $1587 = 0.0, $159 = 0, $160 = 0, $1608 = 0, $161 = 0, $162 = 0, $1627 = 0, $163 = 0, $1636 = 0.0, $1637 = 0.0, $1638 = 0.0, $1639 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1649 = 0, $165 = 0, $1654 = 0.0, $1659 = 0.0, $166 = 0.0, $1666 = 0.0, $167 = 0.0, $1676 = 0.0, $168 = 0.0, $1685 = 0.0, $1686 = 0.0, $169 = 0, $170 = 0, $1707 = 0, $171 = 0, $172 = 0, $1727 = 0, $173 = 0, $1734 = 0.0, $1735 = 0.0, $1736 = 0.0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1747 = 0, $1748 = 0.0, $1749 = 0.0, $175 = 0, $1750 = 0.0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1761 = 0, $1762 = 0.0, $1763 = 0.0, $1764 = 0.0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, $1775 = 0, $1776 = 0.0, $1777 = 0.0, $1778 = 0.0, $1779 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1789 = 0, $179 = 0, $1790 = 0.0, $1791 = 0.0, $1792 = 0.0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $180 = 0.0, $1800 = 0, $1801 = 0, $1803 = 0, $1804 = 0.0, $1805 = 0.0, $1806 = 0.0, $1807 = 0, $1808 = 0, $1809 = 0, $181 = 0.0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1817 = 0, $182 = 0.0, $1822 = 0.0, $1827 = 0.0, $183 = 0, $1834 = 0.0, $184 = 0, $1844 = 0.0, $185 = 0, $1853 = 0.0, $1854 = 0.0, $186 = 0, $187 = 0, $1875 = 0, $188 = 0, $1882 = 0, $189 = 0, $1893 = 0.0, $1898 = 0.0, $190 = 0, $1905 = 0.0, $191 = 0, $1915 = 0.0, $1924 = 0.0, $1925 = 0.0, $193 = 0, $194 = 0.0, $1948 = 0, $195 = 0.0, $1955 = 0, $196 = 0.0, $1966 = 0.0, $197 = 0, $1971 = 0.0, $1978 = 0.0, $198 = 0, $1988 = 0.0, $199 = 0, $1997 = 0.0, $1998 = 0.0, $200 = 0, $201 = 0, $202 = 0, $2020 = 0, $2027 = 0, $203 = 0, $2038 = 0.0, $204 = 0, $2043 = 0.0, $205 = 0, $2050 = 0.0, $2060 = 0.0, $2069 = 0.0, $207 = 0, $2070 = 0.0, $208 = 0.0, $209 = 0.0, $2091 = 0, $2094 = 0, $210 = 0.0, $2102 = 0, $211 = 0, $2117 = 0, $212 = 0, $2128 = 0.0, $213 = 0, $2133 = 0.0, $214 = 0, $2140 = 0.0, $215 = 0, $2150 = 0.0, $2159 = 0.0, $216 = 0, $2160 = 0.0, $217 = 0, $218 = 0, $2181 = 0, $2184 = 0, $219 = 0, $2192 = 0, $2207 = 0, $221 = 0, $2218 = 0.0, $222 = 0.0, $2223 = 0.0, $223 = 0.0, $2230 = 0.0, $224 = 0.0, $2240 = 0.0, $2249 = 0.0, $225 = 0, $2250 = 0.0, $226 = 0, $227 = 0, $2271 = 0, $2274 = 0, $228 = 0, $229 = 0, $2293 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $250 = 0.0, $251 = 0.0, $252 = 0.0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $260 = 0, $261 = 0, $263 = 0, $264 = 0.0, $265 = 0.0, $266 = 0.0, $267 = 0, $268 = 0, $269 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $278 = 0, $284 = 0.0, $289 = 0.0, $29 = 0.0, $296 = 0.0, $306 = 0.0, $31 = 0.0, $315 = 0.0, $316 = 0.0, $32 = 0.0, $337 = 0, $346 = 0, $347 = 0, $35 = 0.0, $355 = 0, $362 = 0, $37 = 0.0, $373 = 0.0, $378 = 0.0, $38 = 0.0, $385 = 0.0, $395 = 0.0, $404 = 0.0, $405 = 0.0, $41 = 0, $426 = 0, $43 = 0.0, $434 = 0, $435 = 0, $443 = 0, $45 = 0.0, $451 = 0, $46 = 0.0, $462 = 0.0, $467 = 0.0, $474 = 0.0, $484 = 0.0, $49 = 0.0, $493 = 0.0, $494 = 0.0, $51 = 0.0, $515 = 0, $52 = 0.0, $524 = 0, $525 = 0, $533 = 0, $540 = 0, $55 = 0, $551 = 0.0, $556 = 0.0, $56 = 0.0, $563 = 0.0, $573 = 0.0, $58 = 0.0, $582 = 0.0, $583 = 0.0, $604 = 0, $61 = 0, $612 = 0, $613 = 0, $62 = 0.0, $621 = 0, $629 = 0, $64 = 0.0, $640 = 0.0, $645 = 0.0, $652 = 0.0, $662 = 0.0, $67 = 0, $671 = 0.0, $672 = 0.0, $693 = 0, $702 = 0, $703 = 0, $711 = 0, $719 = 0, $73 = 0, $730 = 0.0, $735 = 0.0, $742 = 0.0, $752 = 0.0, $761 = 0.0, $762 = 0.0, $77 = 0, $783 = 0, $785 = 0, $790 = 0, $791 = 0, $795 = 0, $799 = 0, $810 = 0.0, $815 = 0.0, $822 = 0.0, $832 = 0.0, $841 = 0.0, $842 = 0.0, $863 = 0, $872 = 0, $873 = 0, $881 = 0, $889 = 0, $900 = 0.0, $905 = 0.0, $912 = 0.0, $922 = 0.0, $931 = 0.0, $932 = 0.0, $951 = 0, $954 = 0, $959 = 0.0, $973 = 0.0, $974 = 0.0, $978 = 0, $984 = 0, $988 = 0, $99 = 0, $990 = 0, $996 = 0, $997 = 0, $ext_patt2$0 = 0, $i$10291 = 0, $i$11297 = 0, $i$12303 = 0, $i$1237 = 0, $i$13236 = 0, $i$14312 = 0, $i$15318 = 0, $i$16324 = 0, $i$17330 = 0, $i$18336 = 0, $i$19342 = 0, $i$20348 = 0, $i$21354 = 0, $i$22360 = 0, $i$2243 = 0, $i$23309 = 0, $i$3249 = 0, $i$4255 = 0, $i$5261 = 0, $i$6267 = 0, $i$7273 = 0, $i$8279 = 0, $i$9285 = 0, $j$0241 = 0, $j$10301 = 0, $j$11307 = 0, $j$12316 = 0, $j$1247 = 0, $j$13322 = 0, $j$14328 = 0, $j$15334 = 0, $j$16340 = 0, $j$17346 = 0, $j$18352 = 0, $j$19358 = 0, $j$20364 = 0, $j$2253 = 0, $j$3259 = 0, $j$4265 = 0, $j$5271 = 0, $j$6277 = 0, $j$7283 = 0, $j$8289 = 0, $j$9295 = 0, $local = 0, $para = 0, $sample_size$xdiv2$2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $world = 0, $xc$0 = 0, $xc$1 = 0, $xc$10 = 0, $xc$11 = 0, $xc$12 = 0, $xc$13 = 0, $xc$14 = 0, $xc$15 = 0, $xc$16 = 0, $xc$17 = 0, $xc$18 = 0, $xc$19 = 0, $xc$2 = 0, $xc$20 = 0, $xc$3 = 0, $xc$4 = 0, $xc$5 = 0, $xc$6 = 0, $xc$7 = 0, $xc$8 = 0, $xc$9 = 0, $xc2 = 0, $xdiv2$0 = 0, $xdiv2$0$lcssa = 0, $xdiv2$1 = 0, $xdiv2$1$lcssa = 0, $xdiv2$2 = 0, $yc$0 = 0, $yc$1 = 0, $yc$10 = 0, $yc$11 = 0, $yc$12 = 0, $yc$13 = 0, $yc$14 = 0, $yc$15 = 0, $yc$16 = 0, $yc$17 = 0, $yc$18 = 0, $yc$19 = 0, $yc$2 = 0, $yc$20 = 0, $yc$3 = 0, $yc$4 = 0, $yc$5 = 0, $yc$6 = 0, $yc$7 = 0, $yc$8 = 0, $yc$9 = 0, $yc2 = 0, $ydiv2$0 = 0, $ydiv2$1 = 0, $ydiv2$2 = 0, $ydiv2$3 = 0, label = 0, sp = 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 240 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer5 = sp + 224 | 0; - $vararg_buffer3 = sp + 216 | 0; - $vararg_buffer1 = sp + 208 | 0; - $vararg_buffer = sp + 200 | 0; - $world = sp + 136 | 0; - $local = sp + 72 | 0; - $para = sp; - $xc2 = sp + 232 | 0; - $yc2 = sp + 228 | 0; - HEAPF64[$world >> 3] = 100.0; - HEAPF64[$world + 8 >> 3] = 100.0; - HEAPF64[$world + 16 >> 3] = 110.0; - HEAPF64[$world + 24 >> 3] = 100.0; - HEAPF64[$world + 32 >> 3] = 110.0; - HEAPF64[$world + 40 >> 3] = 110.0; - HEAPF64[$world + 48 >> 3] = 100.0; - HEAPF64[$world + 56 >> 3] = 110.0; - HEAPF64[$local >> 3] = +HEAPF64[$vertex >> 3]; - HEAPF64[$local + 8 >> 3] = +HEAPF64[$vertex + 8 >> 3]; - HEAPF64[$local + 16 >> 3] = +HEAPF64[$vertex + 16 >> 3]; - HEAPF64[$local + 24 >> 3] = +HEAPF64[$vertex + 24 >> 3]; - HEAPF64[$local + 32 >> 3] = +HEAPF64[$vertex + 32 >> 3]; - HEAPF64[$local + 40 >> 3] = +HEAPF64[$vertex + 40 >> 3]; - HEAPF64[$local + 48 >> 3] = +HEAPF64[$vertex + 48 >> 3]; - HEAPF64[$local + 56 >> 3] = +HEAPF64[$vertex + 56 >> 3]; - _get_cpara($world, $local, $para); - $29 = +HEAPF64[$local >> 3]; - $31 = +HEAPF64[$local + 16 >> 3]; - $32 = $29 - $31; - $35 = +HEAPF64[$local + 8 >> 3]; - $37 = +HEAPF64[$local + 24 >> 3]; - $38 = $35 - $37; - $41 = ~~($32 * $32 + $38 * $38); - $43 = +HEAPF64[$local + 32 >> 3]; - $45 = +HEAPF64[$local + 48 >> 3]; - $46 = $43 - $45; - $49 = +HEAPF64[$local + 40 >> 3]; - $51 = +HEAPF64[$local + 56 >> 3]; - $52 = $49 - $51; - $55 = ~~($46 * $46 + $52 * $52); - $56 = $31 - $43; - $58 = $37 - $49; - $61 = ~~($56 * $56 + $58 * $58); - $62 = $45 - $29; - $64 = $51 - $35; - $67 = ~~($62 * $62 + $64 * $64); - $73 = ~~(+((($55 | 0) > ($41 | 0) ? $55 : $41) | 0) * $pattRatio * $pattRatio); - $77 = ~~(+((($67 | 0) > ($61 | 0) ? $67 : $61) | 0) * $pattRatio * $pattRatio); - if (!$imageProcMode) { - $xdiv2$0 = $patt_size; - while (1) if (($xdiv2$0 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$0, $xdiv2$0) | 0) < ($73 | 0)) $xdiv2$0 = $xdiv2$0 << 1; else { - $xdiv2$0$lcssa = $xdiv2$0; - break; - } - $ydiv2$0 = $patt_size; - while (1) if (($ydiv2$0 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$0, $ydiv2$0) | 0) < ($77 | 0)) $ydiv2$0 = $ydiv2$0 << 1; else { - $xdiv2$2 = $xdiv2$0$lcssa; - $ydiv2$2 = $ydiv2$0; - break; - } - } else { - $xdiv2$1 = $patt_size; - while (1) if (($xdiv2$1 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$1 << 2, $xdiv2$1) | 0) < ($73 | 0)) $xdiv2$1 = $xdiv2$1 << 1; else { - $xdiv2$1$lcssa = $xdiv2$1; - break; - } - $ydiv2$1 = $patt_size; - while (1) if (($ydiv2$1 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$1 << 2, $ydiv2$1) | 0) < ($77 | 0)) $ydiv2$1 = $ydiv2$1 << 1; else { - $xdiv2$2 = $xdiv2$1$lcssa; - $ydiv2$2 = $ydiv2$1; - break; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } } } - $sample_size$xdiv2$2 = ($xdiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $xdiv2$2; - $ydiv2$3 = ($ydiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $ydiv2$2; - $99 = ($sample_size$xdiv2$2 | 0) / ($patt_size | 0) | 0; - $100 = ($ydiv2$3 | 0) / ($patt_size | 0) | 0; - $103 = (1.0 - $pattRatio) * .5 * 10.0; - $104 = $pattRatio * 10.0; - $106 = Math_imul($patt_size, $patt_size) | 0; - L13 : do if (!$pattDetectMode) { - $107 = $106 * 3 | 0; - $108 = _calloc($107, 4) | 0; - if (!$108) { - _arLog(3, 5471, $vararg_buffer); - _exit(1); - } - do switch ($pixelFormat | 0) { - case 0: - { - $264 = $103 + 100.0; - $265 = +($ydiv2$3 | 0); - $266 = +($sample_size$xdiv2$2 | 0); - $267 = $para + 48 | 0; - $268 = $para + 56 | 0; - $269 = $para + 64 | 0; - $270 = $para + 8 | 0; - $271 = $para + 16 | 0; - $272 = $para + 24 | 0; - $273 = $para + 32 | 0; - $274 = $para + 40 | 0; - $275 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $277 = ($sample_size$xdiv2$2 | 0) > 0; - $j$0241 = 0; - do { - $284 = $264 + $104 * (+($j$0241 | 0) + .5) / $265; - if ($277) { - $i$1237 = 0; - do { - $289 = $264 + $104 * (+($i$1237 | 0) + .5) / $266; - $296 = +HEAPF64[$269 >> 3] + (+HEAPF64[$267 >> 3] * $289 + $284 * +HEAPF64[$268 >> 3]); - if ($296 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $306 = (+HEAPF64[$271 >> 3] + ($289 * +HEAPF64[$para >> 3] + $284 * +HEAPF64[$270 >> 3])) / $296; - HEAPF32[$xc2 >> 2] = $306; - $315 = (+HEAPF64[$274 >> 3] + ($289 * +HEAPF64[$272 >> 3] + $284 * +HEAPF64[$273 >> 3])) / $296; - HEAPF32[$yc2 >> 2] = $315; - _arParamIdeal2ObservLTf($paramLTf, $306, $315, $xc2, $yc2) | 0; - $316 = +HEAPF32[$xc2 >> 2]; - if ($275) { - $xc$0 = ((~~($316 + 1.0) | 0) / 2 | 0) << 1; - $yc$0 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$0 = ~~($316 + .5); - $yc$0 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$0 | 0) > -1) if (($yc$0 | 0) < ($ysize | 0) & (($yc$0 | 0) > -1 & ($xc$0 | 0) < ($xsize | 0))) { - $337 = ((Math_imul($yc$0, $xsize) | 0) + $xc$0 | 0) * 3 | 0; - $346 = ((Math_imul(($j$0241 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$1237 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $347 = $108 + ($346 << 2) | 0; - HEAP32[$347 >> 2] = (HEAP32[$347 >> 2] | 0) + (HEAPU8[$image + ($337 + 2) >> 0] | 0); - $355 = $108 + ($346 + 1 << 2) | 0; - HEAP32[$355 >> 2] = (HEAP32[$355 >> 2] | 0) + (HEAPU8[$image + ($337 + 1) >> 0] | 0); - $362 = $108 + ($346 + 2 << 2) | 0; - HEAP32[$362 >> 2] = (HEAP32[$362 >> 2] | 0) + (HEAPU8[$image + $337 >> 0] | 0); - } - $i$1237 = $i$1237 + 1 | 0; - } while (($i$1237 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$0241 = $j$0241 + 1 | 0; - } while (($j$0241 | 0) < ($ydiv2$3 | 0)); - } - break; + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; } - case 1: - { - $250 = $103 + 100.0; - $251 = +($ydiv2$3 | 0); - $252 = +($sample_size$xdiv2$2 | 0); - $253 = $para + 48 | 0; - $254 = $para + 56 | 0; - $255 = $para + 64 | 0; - $256 = $para + 8 | 0; - $257 = $para + 16 | 0; - $258 = $para + 24 | 0; - $259 = $para + 32 | 0; - $260 = $para + 40 | 0; - $261 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $263 = ($sample_size$xdiv2$2 | 0) > 0; - $j$1247 = 0; - do { - $373 = $250 + $104 * (+($j$1247 | 0) + .5) / $251; - if ($263) { - $i$2243 = 0; - do { - $378 = $250 + $104 * (+($i$2243 | 0) + .5) / $252; - $385 = +HEAPF64[$255 >> 3] + (+HEAPF64[$253 >> 3] * $378 + $373 * +HEAPF64[$254 >> 3]); - if ($385 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $395 = (+HEAPF64[$257 >> 3] + ($378 * +HEAPF64[$para >> 3] + $373 * +HEAPF64[$256 >> 3])) / $385; - HEAPF32[$xc2 >> 2] = $395; - $404 = (+HEAPF64[$260 >> 3] + ($378 * +HEAPF64[$258 >> 3] + $373 * +HEAPF64[$259 >> 3])) / $385; - HEAPF32[$yc2 >> 2] = $404; - _arParamIdeal2ObservLTf($paramLTf, $395, $404, $xc2, $yc2) | 0; - $405 = +HEAPF32[$xc2 >> 2]; - if ($261) { - $xc$1 = ((~~($405 + 1.0) | 0) / 2 | 0) << 1; - $yc$1 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$1 = ~~($405 + .5); - $yc$1 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$1 | 0) > -1) if (($yc$1 | 0) < ($ysize | 0) & (($yc$1 | 0) > -1 & ($xc$1 | 0) < ($xsize | 0))) { - $426 = ((Math_imul($yc$1, $xsize) | 0) + $xc$1 | 0) * 3 | 0; - $434 = ((Math_imul(($j$1247 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$2243 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $435 = $108 + ($434 << 2) | 0; - HEAP32[$435 >> 2] = (HEAP32[$435 >> 2] | 0) + (HEAPU8[$image + $426 >> 0] | 0); - $443 = $108 + ($434 + 1 << 2) | 0; - HEAP32[$443 >> 2] = (HEAP32[$443 >> 2] | 0) + (HEAPU8[$image + ($426 + 1) >> 0] | 0); - $451 = $108 + ($434 + 2 << 2) | 0; - HEAP32[$451 >> 2] = (HEAP32[$451 >> 2] | 0) + (HEAPU8[$image + ($426 + 2) >> 0] | 0); - } - $i$2243 = $i$2243 + 1 | 0; - } while (($i$2243 | 0) < ($sample_size$xdiv2$2 | 0)); + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 * 3 | 0) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($40 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $40; + $43 = ($40 << 16 >> 16) * 7 | 0; + $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; + $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; + $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $j$1247 = $j$1247 + 1 | 0; - } while (($j$1247 | 0) < ($ydiv2$3 | 0)); - } - break; - } - case 2: - { - $236 = $103 + 100.0; - $237 = +($ydiv2$3 | 0); - $238 = +($sample_size$xdiv2$2 | 0); - $239 = $para + 48 | 0; - $240 = $para + 56 | 0; - $241 = $para + 64 | 0; - $242 = $para + 8 | 0; - $243 = $para + 16 | 0; - $244 = $para + 24 | 0; - $245 = $para + 32 | 0; - $246 = $para + 40 | 0; - $247 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $249 = ($sample_size$xdiv2$2 | 0) > 0; - $j$2253 = 0; - do { - $462 = $236 + $104 * (+($j$2253 | 0) + .5) / $237; - if ($249) { - $i$3249 = 0; - do { - $467 = $236 + $104 * (+($i$3249 | 0) + .5) / $238; - $474 = +HEAPF64[$241 >> 3] + (+HEAPF64[$239 >> 3] * $467 + $462 * +HEAPF64[$240 >> 3]); - if ($474 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $484 = (+HEAPF64[$243 >> 3] + ($467 * +HEAPF64[$para >> 3] + $462 * +HEAPF64[$242 >> 3])) / $474; - HEAPF32[$xc2 >> 2] = $484; - $493 = (+HEAPF64[$246 >> 3] + ($467 * +HEAPF64[$244 >> 3] + $462 * +HEAPF64[$245 >> 3])) / $474; - HEAPF32[$yc2 >> 2] = $493; - _arParamIdeal2ObservLTf($paramLTf, $484, $493, $xc2, $yc2) | 0; - $494 = +HEAPF32[$xc2 >> 2]; - if ($247) { - $xc$2 = ((~~($494 + 1.0) | 0) / 2 | 0) << 1; - $yc$2 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$2 = ~~($494 + .5); - $yc$2 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$2 | 0) > -1) if (($yc$2 | 0) < ($ysize | 0) & (($yc$2 | 0) > -1 & ($xc$2 | 0) < ($xsize | 0))) { - $515 = (Math_imul($yc$2, $xsize) | 0) + $xc$2 << 2; - $524 = ((Math_imul(($j$2253 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$3249 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $525 = $108 + ($524 << 2) | 0; - HEAP32[$525 >> 2] = (HEAP32[$525 >> 2] | 0) + (HEAPU8[$image + ($515 | 2) >> 0] | 0); - $533 = $108 + ($524 + 1 << 2) | 0; - HEAP32[$533 >> 2] = (HEAP32[$533 >> 2] | 0) + (HEAPU8[$image + ($515 | 1) >> 0] | 0); - $540 = $108 + ($524 + 2 << 2) | 0; - HEAP32[$540 >> 2] = (HEAP32[$540 >> 2] | 0) + (HEAPU8[$image + $515 >> 0] | 0); + $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $65 = $63 << 16 >> 16 > 0; + if ($59 << 16 >> 16 <= 0) { + if ($65) { + HEAP16[$pnt2$367 >> 1] = $63; + $165 = $64 * 7 | 0; + $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; + $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; + $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; + $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; + if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($185 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $185; + $188 = ($185 << 16 >> 16) * 7 | 0; + $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; + $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; + $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; + $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; + if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - $i$3249 = $i$3249 + 1 | 0; - } while (($i$3249 | 0) < ($sample_size$xdiv2$2 | 0)); + HEAP32[$202 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $205 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $205; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; + $210 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $205; + break; + } } - $j$2253 = $j$2253 + 1 | 0; - } while (($j$2253 | 0) < ($ydiv2$3 | 0)); - } - break; - } - case 3: - { - $222 = $103 + 100.0; - $223 = +($ydiv2$3 | 0); - $224 = +($sample_size$xdiv2$2 | 0); - $225 = $para + 48 | 0; - $226 = $para + 56 | 0; - $227 = $para + 64 | 0; - $228 = $para + 8 | 0; - $229 = $para + 16 | 0; - $230 = $para + 24 | 0; - $231 = $para + 32 | 0; - $232 = $para + 40 | 0; - $233 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $235 = ($sample_size$xdiv2$2 | 0) > 0; - $j$3259 = 0; - do { - $551 = $222 + $104 * (+($j$3259 | 0) + .5) / $223; - if ($235) { - $i$4255 = 0; - do { - $556 = $222 + $104 * (+($i$4255 | 0) + .5) / $224; - $563 = +HEAPF64[$227 >> 3] + (+HEAPF64[$225 >> 3] * $556 + $551 * +HEAPF64[$226 >> 3]); - if ($563 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $573 = (+HEAPF64[$229 >> 3] + ($556 * +HEAPF64[$para >> 3] + $551 * +HEAPF64[$228 >> 3])) / $563; - HEAPF32[$xc2 >> 2] = $573; - $582 = (+HEAPF64[$232 >> 3] + ($556 * +HEAPF64[$230 >> 3] + $551 * +HEAPF64[$231 >> 3])) / $563; - HEAPF32[$yc2 >> 2] = $582; - _arParamIdeal2ObservLTf($paramLTf, $573, $582, $xc2, $yc2) | 0; - $583 = +HEAPF32[$xc2 >> 2]; - if ($233) { - $xc$3 = ((~~($583 + 1.0) | 0) / 2 | 0) << 1; - $yc$3 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$3 = ~~($583 + .5); - $yc$3 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$3 | 0) > -1) if (($yc$3 | 0) < ($ysize | 0) & (($yc$3 | 0) > -1 & ($xc$3 | 0) < ($xsize | 0))) { - $604 = (Math_imul($yc$3, $xsize) | 0) + $xc$3 << 2; - $612 = ((Math_imul(($j$3259 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$4255 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $613 = $108 + ($612 << 2) | 0; - HEAP32[$613 >> 2] = (HEAP32[$613 >> 2] | 0) + (HEAPU8[$image + $604 >> 0] | 0); - $621 = $108 + ($612 + 1 << 2) | 0; - HEAP32[$621 >> 2] = (HEAP32[$621 >> 2] | 0) + (HEAPU8[$image + ($604 | 1) >> 0] | 0); - $629 = $108 + ($612 + 2 << 2) | 0; - HEAP32[$629 >> 2] = (HEAP32[$629 >> 2] | 0) + (HEAPU8[$image + ($604 | 2) >> 0] | 0); - } - $i$4255 = $i$4255 + 1 | 0; - } while (($i$4255 | 0) < ($sample_size$xdiv2$2 | 0)); + if ($65) { + $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + if (($68 | 0) > ($71 | 0)) { + HEAP16[$pnt2$367 >> 1] = $71; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $88 = $71; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $88 = $71; + } else { + HEAP16[$pnt2$367 >> 1] = $68; + if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $88 = $68; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $88 = $68; + } + $90 = ($88 << 16 >> 16) * 7 | 0; + $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; + $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; + $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $j$3259 = $j$3259 + 1 | 0; - } while (($j$3259 | 0) < ($ydiv2$3 | 0)); - } - break; - } - case 4: - { - $208 = $103 + 100.0; - $209 = +($ydiv2$3 | 0); - $210 = +($sample_size$xdiv2$2 | 0); - $211 = $para + 48 | 0; - $212 = $para + 56 | 0; - $213 = $para + 64 | 0; - $214 = $para + 8 | 0; - $215 = $para + 16 | 0; - $216 = $para + 24 | 0; - $217 = $para + 32 | 0; - $218 = $para + 40 | 0; - $219 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $221 = ($sample_size$xdiv2$2 | 0) > 0; - $j$4265 = 0; - do { - $640 = $208 + $104 * (+($j$4265 | 0) + .5) / $209; - if ($221) { - $i$5261 = 0; - do { - $645 = $208 + $104 * (+($i$5261 | 0) + .5) / $210; - $652 = +HEAPF64[$213 >> 3] + (+HEAPF64[$211 >> 3] * $645 + $640 * +HEAPF64[$212 >> 3]); - if ($652 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $662 = (+HEAPF64[$215 >> 3] + ($645 * +HEAPF64[$para >> 3] + $640 * +HEAPF64[$214 >> 3])) / $652; - HEAPF32[$xc2 >> 2] = $662; - $671 = (+HEAPF64[$218 >> 3] + ($645 * +HEAPF64[$216 >> 3] + $640 * +HEAPF64[$217 >> 3])) / $652; - HEAPF32[$yc2 >> 2] = $671; - _arParamIdeal2ObservLTf($paramLTf, $662, $671, $xc2, $yc2) | 0; - $672 = +HEAPF32[$xc2 >> 2]; - if ($219) { - $xc$4 = ((~~($672 + 1.0) | 0) / 2 | 0) << 1; - $yc$4 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$4 = ~~($672 + .5); - $yc$4 = ~~(+HEAPF32[$yc2 >> 2] + .5); + $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($106 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $59; + $146 = $60 * 7 | 0; + $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; + $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; + $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; + $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; + if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($111 | 0) > ($114 | 0)) { + HEAP16[$pnt2$367 >> 1] = $114; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $131 = $114; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - if (($xc$4 | 0) > -1) if (($yc$4 | 0) < ($ysize | 0) & (($yc$4 | 0) > -1 & ($xc$4 | 0) < ($xsize | 0))) { - $693 = (Math_imul($yc$4, $xsize) | 0) + $xc$4 << 2; - $702 = ((Math_imul(($j$4265 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$5261 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $703 = $108 + ($702 << 2) | 0; - HEAP32[$703 >> 2] = (HEAP32[$703 >> 2] | 0) + (HEAPU8[$image + ($693 | 1) >> 0] | 0); - $711 = $108 + ($702 + 1 << 2) | 0; - HEAP32[$711 >> 2] = (HEAP32[$711 >> 2] | 0) + (HEAPU8[$image + ($693 | 2) >> 0] | 0); - $719 = $108 + ($702 + 2 << 2) | 0; - HEAP32[$719 >> 2] = (HEAP32[$719 >> 2] | 0) + (HEAPU8[$image + ($693 | 3) >> 0] | 0); + } else $131 = $114; + } else { + HEAP16[$pnt2$367 >> 1] = $111; + if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $131 = $111; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - $i$5261 = $i$5261 + 1 | 0; - } while (($i$5261 | 0) < ($sample_size$xdiv2$2 | 0)); + } else $131 = $111; } - $j$4265 = $j$4265 + 1 | 0; - } while (($j$4265 | 0) < ($ydiv2$3 | 0)); + $133 = ($131 << 16 >> 16) * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $225 = $pnt$168 + 3 | 0; + $226 = $pnt2$367 + 2 | 0; + $227 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $227; + $pnt$1$lcssa = $225; + $pnt2$3$lcssa = $226; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $227; + $pnt$168 = $225; + $pnt2$367 = $226; + $wk_max$159 = $wk_max$2; + } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 5: - case 12: - case 13: - case 14: - { - $194 = $103 + 100.0; - $195 = +($ydiv2$3 | 0); - $196 = +($sample_size$xdiv2$2 | 0); - $197 = $para + 48 | 0; - $198 = $para + 56 | 0; - $199 = $para + 64 | 0; - $200 = $para + 8 | 0; - $201 = $para + 16 | 0; - $202 = $para + 24 | 0; - $203 = $para + 32 | 0; - $204 = $para + 40 | 0; - $205 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $207 = ($sample_size$xdiv2$2 | 0) > 0; - $j$5271 = 0; - do { - $730 = $194 + $104 * (+($j$5271 | 0) + .5) / $195; - if ($207) { - $i$6267 = 0; - do { - $735 = $194 + $104 * (+($i$6267 | 0) + .5) / $196; - $742 = +HEAPF64[$199 >> 3] + (+HEAPF64[$197 >> 3] * $735 + $730 * +HEAPF64[$198 >> 3]); - if ($742 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $752 = (+HEAPF64[$201 >> 3] + ($735 * +HEAPF64[$para >> 3] + $730 * +HEAPF64[$200 >> 3])) / $742; - HEAPF32[$xc2 >> 2] = $752; - $761 = (+HEAPF64[$204 >> 3] + ($735 * +HEAPF64[$202 >> 3] + $730 * +HEAPF64[$203 >> 3])) / $742; - HEAPF32[$yc2 >> 2] = $761; - _arParamIdeal2ObservLTf($paramLTf, $752, $761, $xc2, $yc2) | 0; - $762 = +HEAPF32[$xc2 >> 2]; - if ($205) { - $xc$5 = ((~~($762 + 1.0) | 0) / 2 | 0) << 1; - $yc$5 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$5 = ~~($762 + .5); - $yc$5 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$5 | 0) > -1) if (($yc$5 | 0) < ($ysize | 0) & (($yc$5 | 0) > -1 & ($xc$5 | 0) < ($xsize | 0))) { - $783 = $image + ((Math_imul($yc$5, $xsize) | 0) + $xc$5) | 0; - $785 = HEAPU8[$783 >> 0] | 0; - $790 = ((Math_imul(($j$5271 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$6267 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $791 = $108 + ($790 << 2) | 0; - HEAP32[$791 >> 2] = (HEAP32[$791 >> 2] | 0) + $785; - $795 = $108 + ($790 + 1 << 2) | 0; - HEAP32[$795 >> 2] = (HEAP32[$795 >> 2] | 0) + $785; - $799 = $108 + ($790 + 2 << 2) | 0; - HEAP32[$799 >> 2] = (HEAP32[$799 >> 2] | 0) + $785; - } - $i$6267 = $i$6267 + 1 | 0; - } while (($i$6267 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$5271 = $j$5271 + 1 | 0; - } while (($j$5271 | 0) < ($ydiv2$3 | 0)); + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 6 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $236 = HEAP32[$wk$443 >> 2] | 0; + if (($236 | 0) == ($i$341 | 0)) { + $242 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $242; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - break; } - case 6: - { - $180 = $103 + 100.0; - $181 = +($ydiv2$3 | 0); - $182 = +($sample_size$xdiv2$2 | 0); - $183 = $para + 48 | 0; - $184 = $para + 56 | 0; - $185 = $para + 64 | 0; - $186 = $para + 8 | 0; - $187 = $para + 16 | 0; - $188 = $para + 24 | 0; - $189 = $para + 32 | 0; - $190 = $para + 40 | 0; - $191 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $193 = ($sample_size$xdiv2$2 | 0) > 0; - $j$6277 = 0; - do { - $810 = $180 + $104 * (+($j$6277 | 0) + .5) / $181; - if ($193) { - $i$7273 = 0; - do { - $815 = $180 + $104 * (+($i$7273 | 0) + .5) / $182; - $822 = +HEAPF64[$185 >> 3] + (+HEAPF64[$183 >> 3] * $815 + $810 * +HEAPF64[$184 >> 3]); - if ($822 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; + } + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $254 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$537 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $321 = $labelInfo + 12 + ($i$636 << 2) | 0; + $324 = $i$636 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 * 3 | 0) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($40 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $40; + $43 = ($40 << 16 >> 16) * 7 | 0; + $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; + $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; + $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $65 = $63 << 16 >> 16 > 0; + if ($59 << 16 >> 16 <= 0) { + if ($65) { + HEAP16[$pnt2$367 >> 1] = $63; + $165 = $64 * 7 | 0; + $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; + $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; + $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; + $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; + if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($185 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $185; + $188 = ($185 << 16 >> 16) * 7 | 0; + $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; + $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; + $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; + $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; + if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - $832 = (+HEAPF64[$187 >> 3] + ($815 * +HEAPF64[$para >> 3] + $810 * +HEAPF64[$186 >> 3])) / $822; - HEAPF32[$xc2 >> 2] = $832; - $841 = (+HEAPF64[$190 >> 3] + ($815 * +HEAPF64[$188 >> 3] + $810 * +HEAPF64[$189 >> 3])) / $822; - HEAPF32[$yc2 >> 2] = $841; - _arParamIdeal2ObservLTf($paramLTf, $832, $841, $xc2, $yc2) | 0; - $842 = +HEAPF32[$xc2 >> 2]; - if ($191) { - $xc$6 = ((~~($842 + 1.0) | 0) / 2 | 0) << 1; - $yc$6 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$6 = ~~($842 + .5); - $yc$6 = ~~(+HEAPF32[$yc2 >> 2] + .5); + HEAP32[$202 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $205 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $205; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; + $210 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $205; + break; + } + } + if ($65) { + $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + if (($68 | 0) > ($71 | 0)) { + HEAP16[$pnt2$367 >> 1] = $71; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $88 = $71; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $88 = $71; + } else { + HEAP16[$pnt2$367 >> 1] = $68; + if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $88 = $68; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $88 = $68; + } + $90 = ($88 << 16 >> 16) * 7 | 0; + $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; + $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; + $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($106 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $59; + $146 = $60 * 7 | 0; + $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; + $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; + $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; + $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; + if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($111 | 0) > ($114 | 0)) { + HEAP16[$pnt2$367 >> 1] = $114; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $131 = $114; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - if (($xc$6 | 0) > -1) if (($yc$6 | 0) < ($ysize | 0) & (($yc$6 | 0) > -1 & ($xc$6 | 0) < ($xsize | 0))) { - $863 = (Math_imul($yc$6, $xsize) | 0) + $xc$6 << 2; - $872 = ((Math_imul(($j$6277 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$7273 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $873 = $108 + ($872 << 2) | 0; - HEAP32[$873 >> 2] = (HEAP32[$873 >> 2] | 0) + (HEAPU8[$image + ($863 | 3) >> 0] | 0); - $881 = $108 + ($872 + 1 << 2) | 0; - HEAP32[$881 >> 2] = (HEAP32[$881 >> 2] | 0) + (HEAPU8[$image + ($863 | 2) >> 0] | 0); - $889 = $108 + ($872 + 2 << 2) | 0; - HEAP32[$889 >> 2] = (HEAP32[$889 >> 2] | 0) + (HEAPU8[$image + ($863 | 1) >> 0] | 0); + } else $131 = $114; + } else { + HEAP16[$pnt2$367 >> 1] = $111; + if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $131 = $111; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - $i$7273 = $i$7273 + 1 | 0; - } while (($i$7273 | 0) < ($sample_size$xdiv2$2 | 0)); + } else $131 = $111; } - $j$6277 = $j$6277 + 1 | 0; - } while (($j$6277 | 0) < ($ydiv2$3 | 0)); + $133 = ($131 << 16 >> 16) * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $225 = $pnt$168 + 3 | 0; + $226 = $pnt2$367 + 2 | 0; + $227 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $227; + $pnt$1$lcssa = $225; + $pnt2$3$lcssa = $226; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $227; + $pnt$168 = $225; + $pnt2$367 = $226; + $wk_max$159 = $wk_max$2; + } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 7: - { - $166 = $103 + 100.0; - $167 = +($ydiv2$3 | 0); - $168 = +($sample_size$xdiv2$2 | 0); - $169 = $para + 48 | 0; - $170 = $para + 56 | 0; - $171 = $para + 64 | 0; - $172 = $para + 8 | 0; - $173 = $para + 16 | 0; - $174 = $para + 24 | 0; - $175 = $para + 32 | 0; - $176 = $para + 40 | 0; - $177 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $179 = ($sample_size$xdiv2$2 | 0) > 0; - $j$7283 = 0; - do { - $900 = $166 + $104 * (+($j$7283 | 0) + .5) / $167; - if ($179) { - $i$8279 = 0; - do { - $905 = $166 + $104 * (+($i$8279 | 0) + .5) / $168; - $912 = +HEAPF64[$171 >> 3] + (+HEAPF64[$169 >> 3] * $905 + $900 * +HEAPF64[$170 >> 3]); - if ($912 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $922 = (+HEAPF64[$173 >> 3] + ($905 * +HEAPF64[$para >> 3] + $900 * +HEAPF64[$172 >> 3])) / $912; - HEAPF32[$xc2 >> 2] = $922; - $931 = (+HEAPF64[$176 >> 3] + ($905 * +HEAPF64[$174 >> 3] + $900 * +HEAPF64[$175 >> 3])) / $912; - HEAPF32[$yc2 >> 2] = $931; - _arParamIdeal2ObservLTf($paramLTf, $922, $931, $xc2, $yc2) | 0; - $932 = +HEAPF32[$xc2 >> 2]; - if ($177) { - $xc$7 = ((~~($932 + 1.0) | 0) / 2 | 0) << 1; - $yc$7 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$7 = ~~($932 + .5); - $yc$7 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$7 | 0) > -1) if (($yc$7 | 0) < ($ysize | 0) & (($yc$7 | 0) > -1 & ($xc$7 | 0) < ($xsize | 0))) { - $951 = Math_imul($yc$7, $xsize) | 0; - $954 = ($xc$7 & 65534) + $951 << 1; - $959 = +((HEAPU8[$image + $954 >> 0] | 0) + -128 | 0); - $973 = +((HEAPU8[$image + ($954 + 2) >> 0] | 0) + -128 | 0); - $974 = +((HEAPU8[$image + ($951 + $xc$7 << 1 | 1) >> 0] | 0) + -16 | 0) * 298.0820007324219; - $978 = ~~($959 * 516.4110107421875 + $974) >> 8; - $984 = ~~($974 - $959 * 100.29100036621094 - $973 * 208.1199951171875) >> 8; - $988 = ~~($974 + $973 * 408.5830078125) >> 8; - $990 = ($978 | 0) > 0 ? $978 : 0; - $996 = ((Math_imul(($j$7283 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$8279 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $997 = $108 + ($996 << 2) | 0; - HEAP32[$997 >> 2] = (($990 | 0) < 255 ? $990 : 255) + (HEAP32[$997 >> 2] | 0); - $1001 = ($984 | 0) > 0 ? $984 : 0; - $1005 = $108 + ($996 + 1 << 2) | 0; - HEAP32[$1005 >> 2] = (($1001 | 0) < 255 ? $1001 : 255) + (HEAP32[$1005 >> 2] | 0); - $1009 = ($988 | 0) > 0 ? $988 : 0; - $1012 = $108 + ($996 + 2 << 2) | 0; - HEAP32[$1012 >> 2] = (($1009 | 0) < 255 ? $1009 : 255) + (HEAP32[$1012 >> 2] | 0); - } - $i$8279 = $i$8279 + 1 | 0; - } while (($i$8279 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$7283 = $j$7283 + 1 | 0; - } while (($j$7283 | 0) < ($ydiv2$3 | 0)); + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 6 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $236 = HEAP32[$wk$443 >> 2] | 0; + if (($236 | 0) == ($i$341 | 0)) { + $242 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $242; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - break; } - case 8: - { - $152 = $103 + 100.0; - $153 = +($ydiv2$3 | 0); - $154 = +($sample_size$xdiv2$2 | 0); - $155 = $para + 48 | 0; - $156 = $para + 56 | 0; - $157 = $para + 64 | 0; - $158 = $para + 8 | 0; - $159 = $para + 16 | 0; - $160 = $para + 24 | 0; - $161 = $para + 32 | 0; - $162 = $para + 40 | 0; - $163 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $165 = ($sample_size$xdiv2$2 | 0) > 0; - $j$8289 = 0; - do { - $1023 = $152 + $104 * (+($j$8289 | 0) + .5) / $153; - if ($165) { - $i$9285 = 0; - do { - $1028 = $152 + $104 * (+($i$9285 | 0) + .5) / $154; - $1035 = +HEAPF64[$157 >> 3] + (+HEAPF64[$155 >> 3] * $1028 + $1023 * +HEAPF64[$156 >> 3]); - if ($1035 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $1045 = (+HEAPF64[$159 >> 3] + ($1028 * +HEAPF64[$para >> 3] + $1023 * +HEAPF64[$158 >> 3])) / $1035; - HEAPF32[$xc2 >> 2] = $1045; - $1054 = (+HEAPF64[$162 >> 3] + ($1028 * +HEAPF64[$160 >> 3] + $1023 * +HEAPF64[$161 >> 3])) / $1035; - HEAPF32[$yc2 >> 2] = $1054; - _arParamIdeal2ObservLTf($paramLTf, $1045, $1054, $xc2, $yc2) | 0; - $1055 = +HEAPF32[$xc2 >> 2]; - if ($163) { - $xc$8 = ((~~($1055 + 1.0) | 0) / 2 | 0) << 1; - $yc$8 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$8 = ~~($1055 + .5); - $yc$8 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$8 | 0) > -1) if (($yc$8 | 0) < ($ysize | 0) & (($yc$8 | 0) > -1 & ($xc$8 | 0) < ($xsize | 0))) { - $1074 = Math_imul($yc$8, $xsize) | 0; - $1084 = ($xc$8 & 65534) + $1074 << 1; - $1090 = +((HEAPU8[$image + ($1084 | 1) >> 0] | 0) + -128 | 0); - $1096 = +((HEAPU8[$image + ($1084 + 3) >> 0] | 0) + -128 | 0); - $1097 = +((HEAPU8[$image + ($1074 + $xc$8 << 1) >> 0] | 0) + -16 | 0) * 298.0820007324219; - $1101 = ~~($1097 + $1090 * 516.4110107421875) >> 8; - $1107 = ~~($1097 - $1090 * 100.29100036621094 - $1096 * 208.1199951171875) >> 8; - $1111 = ~~($1097 + $1096 * 408.5830078125) >> 8; - $1113 = ($1101 | 0) > 0 ? $1101 : 0; - $1119 = ((Math_imul(($j$8289 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$9285 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $1120 = $108 + ($1119 << 2) | 0; - HEAP32[$1120 >> 2] = (($1113 | 0) < 255 ? $1113 : 255) + (HEAP32[$1120 >> 2] | 0); - $1124 = ($1107 | 0) > 0 ? $1107 : 0; - $1128 = $108 + ($1119 + 1 << 2) | 0; - HEAP32[$1128 >> 2] = (($1124 | 0) < 255 ? $1124 : 255) + (HEAP32[$1128 >> 2] | 0); - $1132 = ($1111 | 0) > 0 ? $1111 : 0; - $1135 = $108 + ($1119 + 2 << 2) | 0; - HEAP32[$1135 >> 2] = (($1132 | 0) < 255 ? $1132 : 255) + (HEAP32[$1135 >> 2] | 0); + } + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $254 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$537 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $321 = $labelInfo + 12 + ($i$636 << 2) | 0; + $324 = $i$636 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 2) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($40 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $40; + $43 = ($40 << 16 >> 16) * 7 | 0; + $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; + $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; + $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $65 = $63 << 16 >> 16 > 0; + if ($59 << 16 >> 16 <= 0) { + if ($65) { + HEAP16[$pnt2$367 >> 1] = $63; + $165 = $64 * 7 | 0; + $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; + $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; + $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; + $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; + if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($185 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $185; + $188 = ($185 << 16 >> 16) * 7 | 0; + $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; + $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; + $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; + $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; + if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - $i$9285 = $i$9285 + 1 | 0; - } while (($i$9285 | 0) < ($sample_size$xdiv2$2 | 0)); + HEAP32[$202 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $205 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $205; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; + $210 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $205; + break; + } + } + if ($65) { + $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + if (($68 | 0) > ($71 | 0)) { + HEAP16[$pnt2$367 >> 1] = $71; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $88 = $71; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $88 = $71; + } else { + HEAP16[$pnt2$367 >> 1] = $68; + if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $88 = $68; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $88 = $68; + } + $90 = ($88 << 16 >> 16) * 7 | 0; + $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; + $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; + $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $j$8289 = $j$8289 + 1 | 0; - } while (($j$8289 | 0) < ($ydiv2$3 | 0)); - } - break; - } - case 9: - { - $138 = $103 + 100.0; - $139 = +($ydiv2$3 | 0); - $140 = +($sample_size$xdiv2$2 | 0); - $141 = $para + 48 | 0; - $142 = $para + 56 | 0; - $143 = $para + 64 | 0; - $144 = $para + 8 | 0; - $145 = $para + 16 | 0; - $146 = $para + 24 | 0; - $147 = $para + 32 | 0; - $148 = $para + 40 | 0; - $149 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $151 = ($sample_size$xdiv2$2 | 0) > 0; - $j$9295 = 0; - do { - $1146 = $138 + $104 * (+($j$9295 | 0) + .5) / $139; - if ($151) { - $i$10291 = 0; - do { - $1151 = $138 + $104 * (+($i$10291 | 0) + .5) / $140; - $1158 = +HEAPF64[$143 >> 3] + (+HEAPF64[$141 >> 3] * $1151 + $1146 * +HEAPF64[$142 >> 3]); - if ($1158 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $1168 = (+HEAPF64[$145 >> 3] + ($1151 * +HEAPF64[$para >> 3] + $1146 * +HEAPF64[$144 >> 3])) / $1158; - HEAPF32[$xc2 >> 2] = $1168; - $1177 = (+HEAPF64[$148 >> 3] + ($1151 * +HEAPF64[$146 >> 3] + $1146 * +HEAPF64[$147 >> 3])) / $1158; - HEAPF32[$yc2 >> 2] = $1177; - _arParamIdeal2ObservLTf($paramLTf, $1168, $1177, $xc2, $yc2) | 0; - $1178 = +HEAPF32[$xc2 >> 2]; - if ($149) { - $xc$9 = ((~~($1178 + 1.0) | 0) / 2 | 0) << 1; - $yc$9 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$9 = ~~($1178 + .5); - $yc$9 = ~~(+HEAPF32[$yc2 >> 2] + .5); + $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($106 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $59; + $146 = $60 * 7 | 0; + $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; + $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; + $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; + $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; + if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($111 | 0) > ($114 | 0)) { + HEAP16[$pnt2$367 >> 1] = $114; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $131 = $114; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - if (($xc$9 | 0) > -1) if (($yc$9 | 0) < ($ysize | 0) & (($yc$9 | 0) > -1 & ($xc$9 | 0) < ($xsize | 0))) { - $1199 = (Math_imul($yc$9, $xsize) | 0) + $xc$9 << 1; - $1203 = HEAPU8[$image + ($1199 | 1) >> 0] | 0; - $1211 = ((Math_imul(($j$9295 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$10291 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $1212 = $108 + ($1211 << 2) | 0; - HEAP32[$1212 >> 2] = ($1203 << 3 & 248 | 4) + (HEAP32[$1212 >> 2] | 0); - $1217 = HEAPU8[$image + $1199 >> 0] | 0; - $1225 = $108 + ($1211 + 1 << 2) | 0; - HEAP32[$1225 >> 2] = ($1217 << 5 & 224 | $1203 >>> 3 & 28 | 2) + (HEAP32[$1225 >> 2] | 0); - $1231 = $108 + ($1211 + 2 << 2) | 0; - HEAP32[$1231 >> 2] = ($1217 & 248 | 4) + (HEAP32[$1231 >> 2] | 0); + } else $131 = $114; + } else { + HEAP16[$pnt2$367 >> 1] = $111; + if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $131 = $111; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - $i$10291 = $i$10291 + 1 | 0; - } while (($i$10291 | 0) < ($sample_size$xdiv2$2 | 0)); + } else $131 = $111; } - $j$9295 = $j$9295 + 1 | 0; - } while (($j$9295 | 0) < ($ydiv2$3 | 0)); + $133 = ($131 << 16 >> 16) * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $225 = $pnt$168 + 4 | 0; + $226 = $pnt2$367 + 2 | 0; + $227 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $227; + $pnt$1$lcssa = $225; + $pnt2$3$lcssa = $226; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $227; + $pnt$168 = $225; + $pnt2$367 = $226; + $wk_max$159 = $wk_max$2; + } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - case 10: - { - $124 = $103 + 100.0; - $125 = +($ydiv2$3 | 0); - $126 = +($sample_size$xdiv2$2 | 0); - $127 = $para + 48 | 0; - $128 = $para + 56 | 0; - $129 = $para + 64 | 0; - $130 = $para + 8 | 0; - $131 = $para + 16 | 0; - $132 = $para + 24 | 0; - $133 = $para + 32 | 0; - $134 = $para + 40 | 0; - $135 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $137 = ($sample_size$xdiv2$2 | 0) > 0; - $j$10301 = 0; - do { - $1242 = $124 + $104 * (+($j$10301 | 0) + .5) / $125; - if ($137) { - $i$11297 = 0; - do { - $1247 = $124 + $104 * (+($i$11297 | 0) + .5) / $126; - $1254 = +HEAPF64[$129 >> 3] + (+HEAPF64[$127 >> 3] * $1247 + $1242 * +HEAPF64[$128 >> 3]); - if ($1254 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; - } - $1264 = (+HEAPF64[$131 >> 3] + ($1247 * +HEAPF64[$para >> 3] + $1242 * +HEAPF64[$130 >> 3])) / $1254; - HEAPF32[$xc2 >> 2] = $1264; - $1273 = (+HEAPF64[$134 >> 3] + ($1247 * +HEAPF64[$132 >> 3] + $1242 * +HEAPF64[$133 >> 3])) / $1254; - HEAPF32[$yc2 >> 2] = $1273; - _arParamIdeal2ObservLTf($paramLTf, $1264, $1273, $xc2, $yc2) | 0; - $1274 = +HEAPF32[$xc2 >> 2]; - if ($135) { - $xc$10 = ((~~($1274 + 1.0) | 0) / 2 | 0) << 1; - $yc$10 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$10 = ~~($1274 + .5); - $yc$10 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$10 | 0) > -1) if (($yc$10 | 0) < ($ysize | 0) & (($yc$10 | 0) > -1 & ($xc$10 | 0) < ($xsize | 0))) { - $1295 = (Math_imul($yc$10, $xsize) | 0) + $xc$10 << 1; - $1299 = HEAPU8[$image + ($1295 | 1) >> 0] | 0; - $1307 = ((Math_imul(($j$10301 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$11297 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $1308 = $108 + ($1307 << 2) | 0; - HEAP32[$1308 >> 2] = ($1299 << 2 & 248 | 4) + (HEAP32[$1308 >> 2] | 0); - $1313 = HEAPU8[$image + $1295 >> 0] | 0; - $1321 = $108 + ($1307 + 1 << 2) | 0; - HEAP32[$1321 >> 2] = ($1313 << 5 & 224 | $1299 >>> 3 & 24 | 4) + (HEAP32[$1321 >> 2] | 0); - $1327 = $108 + ($1307 + 2 << 2) | 0; - HEAP32[$1327 >> 2] = ($1313 & 248 | 4) + (HEAP32[$1327 >> 2] | 0); - } - $i$11297 = $i$11297 + 1 | 0; - } while (($i$11297 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$10301 = $j$10301 + 1 | 0; - } while (($j$10301 | 0) < ($ydiv2$3 | 0)); + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 8 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $236 = HEAP32[$wk$443 >> 2] | 0; + if (($236 | 0) == ($i$341 | 0)) { + $242 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $242; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - break; } - case 11: - { - $110 = $103 + 100.0; - $111 = +($ydiv2$3 | 0); - $112 = +($sample_size$xdiv2$2 | 0); - $113 = $para + 48 | 0; - $114 = $para + 56 | 0; - $115 = $para + 64 | 0; - $116 = $para + 8 | 0; - $117 = $para + 16 | 0; - $118 = $para + 24 | 0; - $119 = $para + 32 | 0; - $120 = $para + 40 | 0; - $121 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $123 = ($sample_size$xdiv2$2 | 0) > 0; - $j$11307 = 0; - do { - $1338 = $110 + $104 * (+($j$11307 | 0) + .5) / $111; - if ($123) { - $i$12303 = 0; - do { - $1343 = $110 + $104 * (+($i$12303 | 0) + .5) / $112; - $1350 = +HEAPF64[$115 >> 3] + (+HEAPF64[$113 >> 3] * $1343 + $1338 * +HEAPF64[$114 >> 3]); - if ($1350 == 0.0) { - $ext_patt2$0 = $108; - label = 278; - break L13; + } + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $254 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$537 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $321 = $labelInfo + 12 + ($i$636 << 2) | 0; + $324 = $i$636 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $27 = ($10 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; + $j$075 = 1; + $pnt$079 = $image + ($18 << 2) | 0; + $pnt2$278 = $0 + ($18 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($27) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; + if ($40 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $40; + $43 = ($40 << 16 >> 16) * 7 | 0; + $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; + $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; + $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $64 = $63 << 16 >> 16; + $65 = $63 << 16 >> 16 > 0; + if ($59 << 16 >> 16 <= 0) { + if ($65) { + HEAP16[$pnt2$367 >> 1] = $63; + $165 = $64 * 7 | 0; + $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; + $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; + $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; + HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; + $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; + if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($185 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $185; + $188 = ($185 << 16 >> 16) * 7 | 0; + $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; + $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; + $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; + HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; + $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; + if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - $1360 = (+HEAPF64[$117 >> 3] + ($1343 * +HEAPF64[$para >> 3] + $1338 * +HEAPF64[$116 >> 3])) / $1350; - HEAPF32[$xc2 >> 2] = $1360; - $1369 = (+HEAPF64[$120 >> 3] + ($1343 * +HEAPF64[$118 >> 3] + $1338 * +HEAPF64[$119 >> 3])) / $1350; - HEAPF32[$yc2 >> 2] = $1369; - _arParamIdeal2ObservLTf($paramLTf, $1360, $1369, $xc2, $yc2) | 0; - $1370 = +HEAPF32[$xc2 >> 2]; - if ($121) { - $xc$11 = ((~~($1370 + 1.0) | 0) / 2 | 0) << 1; - $yc$11 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$11 = ~~($1370 + .5); - $yc$11 = ~~(+HEAPF32[$yc2 >> 2] + .5); + HEAP32[$202 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $205 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $205; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; + $210 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $205; + break; + } + } + if ($65) { + $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; + if (($68 | 0) > ($71 | 0)) { + HEAP16[$pnt2$367 >> 1] = $71; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $17; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $88 = $71; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $88 = $71; + } else { + HEAP16[$pnt2$367 >> 1] = $68; + if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $17; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $88 = $68; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $88 = $68; + } + $90 = ($88 << 16 >> 16) * 7 | 0; + $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; + $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; + $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($106 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $59; + $146 = $60 * 7 | 0; + $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; + $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; + $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; + $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; + if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($111 | 0) > ($114 | 0)) { + HEAP16[$pnt2$367 >> 1] = $114; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $17; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $131 = $114; + break; + } else $wk$249 = $wk$249 + 4 | 0; } - if (($xc$11 | 0) > -1) if (($yc$11 | 0) < ($ysize | 0) & (($yc$11 | 0) > -1 & ($xc$11 | 0) < ($xsize | 0))) { - $1391 = (Math_imul($yc$11, $xsize) | 0) + $xc$11 << 1; - $1402 = ((Math_imul(($j$11307 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$12303 | 0) / ($99 | 0) | 0) | 0) * 3 | 0; - $1403 = $108 + ($1402 << 2) | 0; - HEAP32[$1403 >> 2] = (HEAP32[$1403 >> 2] | 0) + ((HEAPU8[$image + ($1391 | 1) >> 0] | 0) & 240 | 8); - $1408 = HEAPU8[$image + $1391 >> 0] | 0; - $1413 = $108 + ($1402 + 1 << 2) | 0; - HEAP32[$1413 >> 2] = ($1408 << 4 & 240 | 8) + (HEAP32[$1413 >> 2] | 0); - $1419 = $108 + ($1402 + 2 << 2) | 0; - HEAP32[$1419 >> 2] = ($1408 & 240 | 8) + (HEAP32[$1419 >> 2] | 0); + } else $131 = $114; + } else { + HEAP16[$pnt2$367 >> 1] = $111; + if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $17; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $131 = $111; + break; + } else $wk$346 = $wk$346 + 4 | 0; } - $i$12303 = $i$12303 + 1 | 0; - } while (($i$12303 | 0) < ($sample_size$xdiv2$2 | 0)); + } else $131 = $111; } - $j$11307 = $j$11307 + 1 | 0; - } while (($j$11307 | 0) < ($ydiv2$3 | 0)); + $133 = ($131 << 16 >> 16) * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $225 = $pnt$168 + 4 | 0; + $226 = $pnt2$367 + 2 | 0; + $227 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($10 | 0)) { + $dpnt$1$lcssa = $227; + $pnt$1$lcssa = $225; + $pnt2$3$lcssa = $226; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $227; + $pnt$168 = $225; + $pnt2$367 = $226; + $wk_max$159 = $wk_max$2; + } } - break; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - default: - { - _arLog(3, 4615, $vararg_buffer1); - $ext_patt2$0 = $108; - label = 278; - break L13; + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 8 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - } while (0); - $278 = Math_imul($100, $99) | 0; - if ($106) { - $i$13236 = 0; - do { - HEAP8[$ext_patt + $i$13236 >> 0] = ((HEAP32[$108 + ($i$13236 << 2) >> 2] | 0) >>> 0) / ($278 >>> 0) | 0; - $i$13236 = $i$13236 + 1 | 0; - } while (($i$13236 | 0) < ($107 | 0)); } - _free($108); - $$0 = 0; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; } else { - $1433 = _calloc($106, 4) | 0; - if (!$1433) { - _arLog(3, 5471, $vararg_buffer3); - _exit(1); + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $17; + while (1) { + $236 = HEAP32[$wk$443 >> 2] | 0; + if (($236 | 0) == ($i$341 | 0)) { + $242 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $242; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } } - L233 : do if ($pixelFormat >>> 0 < 2) { - $1436 = $103 + 100.0; - $1437 = +($ydiv2$3 | 0); - $1438 = +($sample_size$xdiv2$2 | 0); - $1439 = $para + 48 | 0; - $1440 = $para + 56 | 0; - $1441 = $para + 64 | 0; - $1442 = $para + 8 | 0; - $1443 = $para + 16 | 0; - $1444 = $para + 24 | 0; - $1445 = $para + 32 | 0; - $1446 = $para + 40 | 0; - $1447 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) > 0) { - $1449 = ($sample_size$xdiv2$2 | 0) > 0; - $j$12316 = 0; + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; do { - $1456 = $1436 + $104 * (+($j$12316 | 0) + .5) / $1437; - if ($1449) { - $i$14312 = 0; - do { - $1461 = $1436 + $104 * (+($i$14312 | 0) + .5) / $1438; - $1468 = +HEAPF64[$1441 >> 3] + (+HEAPF64[$1439 >> 3] * $1461 + $1456 * +HEAPF64[$1440 >> 3]); - if ($1468 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1478 = (+HEAPF64[$1443 >> 3] + ($1461 * +HEAPF64[$para >> 3] + $1456 * +HEAPF64[$1442 >> 3])) / $1468; - HEAPF32[$xc2 >> 2] = $1478; - $1487 = (+HEAPF64[$1446 >> 3] + ($1461 * +HEAPF64[$1444 >> 3] + $1456 * +HEAPF64[$1445 >> 3])) / $1468; - HEAPF32[$yc2 >> 2] = $1487; - _arParamIdeal2ObservLTf($paramLTf, $1478, $1487, $xc2, $yc2) | 0; - $1488 = +HEAPF32[$xc2 >> 2]; - if ($1447) { - $xc$12 = ((~~($1488 + 1.0) | 0) / 2 | 0) << 1; - $yc$12 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$12 = ~~($1488 + .5); - $yc$12 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$12 | 0) > -1) if (($yc$12 | 0) < ($ysize | 0) & (($yc$12 | 0) > -1 & ($xc$12 | 0) < ($xsize | 0))) { - $1509 = ((Math_imul($yc$12, $xsize) | 0) + $xc$12 | 0) * 3 | 0; - $1528 = $1433 + ((Math_imul(($j$12316 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$14312 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$1528 >> 2] = (HEAP32[$1528 >> 2] | 0) + ((((HEAPU8[$image + ($1509 + 1) >> 0] | 0) + (HEAPU8[$image + $1509 >> 0] | 0) + (HEAPU8[$image + ($1509 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0); - } - $i$14312 = $i$14312 + 1 | 0; - } while (($i$14312 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$12316 = $j$12316 + 1 | 0; - } while (($j$12316 | 0) < ($ydiv2$3 | 0)); + $254 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); } - } else { - if (($pixelFormat & -2 | 0) == 2) { - $1537 = $103 + 100.0; - $1538 = +($ydiv2$3 | 0); - $1539 = +($sample_size$xdiv2$2 | 0); - $1540 = $para + 48 | 0; - $1541 = $para + 56 | 0; - $1542 = $para + 64 | 0; - $1543 = $para + 8 | 0; - $1544 = $para + 16 | 0; - $1545 = $para + 24 | 0; - $1546 = $para + 32 | 0; - $1547 = $para + 40 | 0; - $1548 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break; - $1550 = ($sample_size$xdiv2$2 | 0) > 0; - $j$13322 = 0; - while (1) { - $1555 = $1537 + $104 * (+($j$13322 | 0) + .5) / $1538; - if ($1550) { - $i$15318 = 0; - do { - $1560 = $1537 + $104 * (+($i$15318 | 0) + .5) / $1539; - $1567 = +HEAPF64[$1542 >> 3] + (+HEAPF64[$1540 >> 3] * $1560 + $1555 * +HEAPF64[$1541 >> 3]); - if ($1567 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1577 = (+HEAPF64[$1544 >> 3] + ($1560 * +HEAPF64[$para >> 3] + $1555 * +HEAPF64[$1543 >> 3])) / $1567; - HEAPF32[$xc2 >> 2] = $1577; - $1586 = (+HEAPF64[$1547 >> 3] + ($1560 * +HEAPF64[$1545 >> 3] + $1555 * +HEAPF64[$1546 >> 3])) / $1567; - HEAPF32[$yc2 >> 2] = $1586; - _arParamIdeal2ObservLTf($paramLTf, $1577, $1586, $xc2, $yc2) | 0; - $1587 = +HEAPF32[$xc2 >> 2]; - if ($1548) { - $xc$13 = ((~~($1587 + 1.0) | 0) / 2 | 0) << 1; - $yc$13 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$13 = ~~($1587 + .5); - $yc$13 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$13 | 0) > -1) if (($yc$13 | 0) < ($ysize | 0) & (($yc$13 | 0) > -1 & ($xc$13 | 0) < ($xsize | 0))) { - $1608 = (Math_imul($yc$13, $xsize) | 0) + $xc$13 << 2; - $1627 = $1433 + ((Math_imul(($j$13322 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$15318 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$1627 >> 2] = (HEAP32[$1627 >> 2] | 0) + ((((HEAPU8[$image + ($1608 | 1) >> 0] | 0) + (HEAPU8[$image + $1608 >> 0] | 0) + (HEAPU8[$image + ($1608 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0); - } - $i$15318 = $i$15318 + 1 | 0; - } while (($i$15318 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$13322 = $j$13322 + 1 | 0; - if (($j$13322 | 0) >= ($ydiv2$3 | 0)) break L233; - } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$537 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); } - if (($pixelFormat & -3 | 0) == 4) { - $1636 = $103 + 100.0; - $1637 = +($ydiv2$3 | 0); - $1638 = +($sample_size$xdiv2$2 | 0); - $1639 = $para + 48 | 0; - $1640 = $para + 56 | 0; - $1641 = $para + 64 | 0; - $1642 = $para + 8 | 0; - $1643 = $para + 16 | 0; - $1644 = $para + 24 | 0; - $1645 = $para + 32 | 0; - $1646 = $para + 40 | 0; - $1647 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break; - $1649 = ($sample_size$xdiv2$2 | 0) > 0; - $j$14328 = 0; - while (1) { - $1654 = $1636 + $104 * (+($j$14328 | 0) + .5) / $1637; - if ($1649) { - $i$16324 = 0; - do { - $1659 = $1636 + $104 * (+($i$16324 | 0) + .5) / $1638; - $1666 = +HEAPF64[$1641 >> 3] + (+HEAPF64[$1639 >> 3] * $1659 + $1654 * +HEAPF64[$1640 >> 3]); - if ($1666 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1676 = (+HEAPF64[$1643 >> 3] + ($1659 * +HEAPF64[$para >> 3] + $1654 * +HEAPF64[$1642 >> 3])) / $1666; - HEAPF32[$xc2 >> 2] = $1676; - $1685 = (+HEAPF64[$1646 >> 3] + ($1659 * +HEAPF64[$1644 >> 3] + $1654 * +HEAPF64[$1645 >> 3])) / $1666; - HEAPF32[$yc2 >> 2] = $1685; - _arParamIdeal2ObservLTf($paramLTf, $1676, $1685, $xc2, $yc2) | 0; - $1686 = +HEAPF32[$xc2 >> 2]; - if ($1647) { - $xc$14 = ((~~($1686 + 1.0) | 0) / 2 | 0) << 1; - $yc$14 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$14 = ~~($1686 + .5); - $yc$14 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$14 | 0) > -1) if (($yc$14 | 0) < ($ysize | 0) & (($yc$14 | 0) > -1 & ($xc$14 | 0) < ($xsize | 0))) { - $1707 = (Math_imul($yc$14, $xsize) | 0) + $xc$14 << 2; - $1727 = $1433 + ((Math_imul(($j$14328 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$16324 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$1727 >> 2] = (HEAP32[$1727 >> 2] | 0) + ((((HEAPU8[$image + ($1707 | 2) >> 0] | 0) + (HEAPU8[$image + ($1707 | 1) >> 0] | 0) + (HEAPU8[$image + ($1707 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0); - } - $i$16324 = $i$16324 + 1 | 0; - } while (($i$16324 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$14328 = $j$14328 + 1 | 0; - if (($j$14328 | 0) >= ($ydiv2$3 | 0)) break L233; - } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $321 = $labelInfo + 12 + ($i$636 << 2) | 0; + $324 = $i$636 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - switch ($pixelFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $1804 = $103 + 100.0; - $1805 = +($ydiv2$3 | 0); - $1806 = +($sample_size$xdiv2$2 | 0); - $1807 = $para + 48 | 0; - $1808 = $para + 56 | 0; - $1809 = $para + 64 | 0; - $1810 = $para + 8 | 0; - $1811 = $para + 16 | 0; - $1812 = $para + 24 | 0; - $1813 = $para + 32 | 0; - $1814 = $para + 40 | 0; - $1815 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1817 = ($sample_size$xdiv2$2 | 0) > 0; - $j$15334 = 0; - do { - $1822 = $1804 + $104 * (+($j$15334 | 0) + .5) / $1805; - if ($1817) { - $i$17330 = 0; - do { - $1827 = $1804 + $104 * (+($i$17330 | 0) + .5) / $1806; - $1834 = +HEAPF64[$1809 >> 3] + (+HEAPF64[$1807 >> 3] * $1827 + $1822 * +HEAPF64[$1808 >> 3]); - if ($1834 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1844 = (+HEAPF64[$1811 >> 3] + ($1827 * +HEAPF64[$para >> 3] + $1822 * +HEAPF64[$1810 >> 3])) / $1834; - HEAPF32[$xc2 >> 2] = $1844; - $1853 = (+HEAPF64[$1814 >> 3] + ($1827 * +HEAPF64[$1812 >> 3] + $1822 * +HEAPF64[$1813 >> 3])) / $1834; - HEAPF32[$yc2 >> 2] = $1853; - _arParamIdeal2ObservLTf($paramLTf, $1844, $1853, $xc2, $yc2) | 0; - $1854 = +HEAPF32[$xc2 >> 2]; - if ($1815) { - $xc$15 = ((~~($1854 + 1.0) | 0) / 2 | 0) << 1; - $yc$15 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$15 = ~~($1854 + .5); - $yc$15 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$15 | 0) > -1) if (($yc$15 | 0) < ($ysize | 0) & (($yc$15 | 0) > -1 & ($xc$15 | 0) < ($xsize | 0))) { - $1875 = $image + ((Math_imul($yc$15, $xsize) | 0) + $xc$15) | 0; - $1882 = $1433 + ((Math_imul(($j$15334 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$17330 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$1882 >> 2] = (HEAP32[$1882 >> 2] | 0) + (HEAPU8[$1875 >> 0] | 0); - } - $i$17330 = $i$17330 + 1 | 0; - } while (($i$17330 | 0) < ($sample_size$xdiv2$2 | 0)); + } + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $30 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($30) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($36 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $36; + $39 = ($36 << 16 >> 16) * 7 | 0; + $41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1; + $45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265; + $49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $j$15334 = $j$15334 + 1 | 0; - } while (($j$15334 | 0) < ($ydiv2$3 | 0)); - break; - } - case 7: - { - $1790 = $103 + 100.0; - $1791 = +($ydiv2$3 | 0); - $1792 = +($sample_size$xdiv2$2 | 0); - $1793 = $para + 48 | 0; - $1794 = $para + 56 | 0; - $1795 = $para + 64 | 0; - $1796 = $para + 8 | 0; - $1797 = $para + 16 | 0; - $1798 = $para + 24 | 0; - $1799 = $para + 32 | 0; - $1800 = $para + 40 | 0; - $1801 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1803 = ($sample_size$xdiv2$2 | 0) > 0; - $j$16340 = 0; - do { - $1893 = $1790 + $104 * (+($j$16340 | 0) + .5) / $1791; - if ($1803) { - $i$18336 = 0; - do { - $1898 = $1790 + $104 * (+($i$18336 | 0) + .5) / $1792; - $1905 = +HEAPF64[$1795 >> 3] + (+HEAPF64[$1793 >> 3] * $1898 + $1893 * +HEAPF64[$1794 >> 3]); - if ($1905 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1915 = (+HEAPF64[$1797 >> 3] + ($1898 * +HEAPF64[$para >> 3] + $1893 * +HEAPF64[$1796 >> 3])) / $1905; - HEAPF32[$xc2 >> 2] = $1915; - $1924 = (+HEAPF64[$1800 >> 3] + ($1898 * +HEAPF64[$1798 >> 3] + $1893 * +HEAPF64[$1799 >> 3])) / $1905; - HEAPF32[$yc2 >> 2] = $1924; - _arParamIdeal2ObservLTf($paramLTf, $1915, $1924, $xc2, $yc2) | 0; - $1925 = +HEAPF32[$xc2 >> 2]; - if ($1801) { - $xc$16 = ((~~($1925 + 1.0) | 0) / 2 | 0) << 1; - $yc$16 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$16 = ~~($1925 + .5); - $yc$16 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$16 | 0) > -1) if (($yc$16 | 0) < ($ysize | 0) & (($yc$16 | 0) > -1 & ($xc$16 | 0) < ($xsize | 0))) { - $1948 = $image + ((Math_imul($yc$16, $xsize) | 0) + $xc$16 << 1 | 1) | 0; - $1955 = $1433 + ((Math_imul(($j$16340 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$18336 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$1955 >> 2] = (HEAP32[$1955 >> 2] | 0) + (HEAPU8[$1948 >> 0] | 0); + $55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $61 = $59 << 16 >> 16 > 0; + if ($55 << 16 >> 16 <= 0) { + if ($61) { + HEAP16[$pnt2$368 >> 1] = $59; + $161 = $60 * 7 | 0; + $163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1; + $167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265; + $171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076; + $175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0; + if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $181 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($181 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $181; + $184 = ($181 << 16 >> 16) * 7 | 0; + $186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1; + $190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265; + $194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076; + $198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0; + if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; } - $i$18336 = $i$18336 + 1 | 0; - } while (($i$18336 | 0) < ($sample_size$xdiv2$2 | 0)); + HEAP32[$198 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $201 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $201; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16; + $206 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $201; + break; + } } - $j$16340 = $j$16340 + 1 | 0; - } while (($j$16340 | 0) < ($ydiv2$3 | 0)); - break; - } - case 8: - { - $1776 = $103 + 100.0; - $1777 = +($ydiv2$3 | 0); - $1778 = +($sample_size$xdiv2$2 | 0); - $1779 = $para + 48 | 0; - $1780 = $para + 56 | 0; - $1781 = $para + 64 | 0; - $1782 = $para + 8 | 0; - $1783 = $para + 16 | 0; - $1784 = $para + 24 | 0; - $1785 = $para + 32 | 0; - $1786 = $para + 40 | 0; - $1787 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1789 = ($sample_size$xdiv2$2 | 0) > 0; - $j$17346 = 0; - do { - $1966 = $1776 + $104 * (+($j$17346 | 0) + .5) / $1777; - if ($1789) { - $i$19342 = 0; - do { - $1971 = $1776 + $104 * (+($i$19342 | 0) + .5) / $1778; - $1978 = +HEAPF64[$1781 >> 3] + (+HEAPF64[$1779 >> 3] * $1971 + $1966 * +HEAPF64[$1780 >> 3]); - if ($1978 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $1988 = (+HEAPF64[$1783 >> 3] + ($1971 * +HEAPF64[$para >> 3] + $1966 * +HEAPF64[$1782 >> 3])) / $1978; - HEAPF32[$xc2 >> 2] = $1988; - $1997 = (+HEAPF64[$1786 >> 3] + ($1971 * +HEAPF64[$1784 >> 3] + $1966 * +HEAPF64[$1785 >> 3])) / $1978; - HEAPF32[$yc2 >> 2] = $1997; - _arParamIdeal2ObservLTf($paramLTf, $1988, $1997, $xc2, $yc2) | 0; - $1998 = +HEAPF32[$xc2 >> 2]; - if ($1787) { - $xc$17 = ((~~($1998 + 1.0) | 0) / 2 | 0) << 1; - $yc$17 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$17 = ~~($1998 + .5); - $yc$17 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$17 | 0) > -1) if (($yc$17 | 0) < ($ysize | 0) & (($yc$17 | 0) > -1 & ($xc$17 | 0) < ($xsize | 0))) { - $2020 = $image + ((Math_imul($yc$17, $xsize) | 0) + $xc$17 << 1) | 0; - $2027 = $1433 + ((Math_imul(($j$17346 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$19342 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$2027 >> 2] = (HEAP32[$2027 >> 2] | 0) + (HEAPU8[$2020 >> 0] | 0); - } - $i$19342 = $i$19342 + 1 | 0; - } while (($i$19342 | 0) < ($sample_size$xdiv2$2 | 0)); + if ($61) { + $64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + $67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + if (($64 | 0) > ($67 | 0)) { + HEAP16[$pnt2$368 >> 1] = $67; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $84 = $67; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $84 = $67; + } else { + HEAP16[$pnt2$368 >> 1] = $64; + if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $84 = $64; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $84 = $64; + } + $86 = ($84 << 16 >> 16) * 7 | 0; + $88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1; + $92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265; + $96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $j$17346 = $j$17346 + 1 | 0; - } while (($j$17346 | 0) < ($ydiv2$3 | 0)); - break; - } - case 9: - { - $1762 = $103 + 100.0; - $1763 = +($ydiv2$3 | 0); - $1764 = +($sample_size$xdiv2$2 | 0); - $1765 = $para + 48 | 0; - $1766 = $para + 56 | 0; - $1767 = $para + 64 | 0; - $1768 = $para + 8 | 0; - $1769 = $para + 16 | 0; - $1770 = $para + 24 | 0; - $1771 = $para + 32 | 0; - $1772 = $para + 40 | 0; - $1773 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1775 = ($sample_size$xdiv2$2 | 0) > 0; - $j$18352 = 0; - do { - $2038 = $1762 + $104 * (+($j$18352 | 0) + .5) / $1763; - if ($1775) { - $i$20348 = 0; - do { - $2043 = $1762 + $104 * (+($i$20348 | 0) + .5) / $1764; - $2050 = +HEAPF64[$1767 >> 3] + (+HEAPF64[$1765 >> 3] * $2043 + $2038 * +HEAPF64[$1766 >> 3]); - if ($2050 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $2060 = (+HEAPF64[$1769 >> 3] + ($2043 * +HEAPF64[$para >> 3] + $2038 * +HEAPF64[$1768 >> 3])) / $2050; - HEAPF32[$xc2 >> 2] = $2060; - $2069 = (+HEAPF64[$1772 >> 3] + ($2043 * +HEAPF64[$1770 >> 3] + $2038 * +HEAPF64[$1771 >> 3])) / $2050; - HEAPF32[$yc2 >> 2] = $2069; - _arParamIdeal2ObservLTf($paramLTf, $2060, $2069, $xc2, $yc2) | 0; - $2070 = +HEAPF32[$xc2 >> 2]; - if ($1773) { - $xc$18 = ((~~($2070 + 1.0) | 0) / 2 | 0) << 1; - $yc$18 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$18 = ~~($2070 + .5); - $yc$18 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$18 | 0) > -1) if (($yc$18 | 0) < ($ysize | 0) & (($yc$18 | 0) > -1 & ($xc$18 | 0) < ($xsize | 0))) { - $2091 = (Math_imul($yc$18, $xsize) | 0) + $xc$18 << 1; - $2094 = HEAPU8[$image + $2091 >> 0] | 0; - $2102 = HEAPU8[$image + ($2091 | 1) >> 0] | 0; - $2117 = $1433 + ((Math_imul(($j$18352 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$20348 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$2117 >> 2] = (HEAP32[$2117 >> 2] | 0) + (((($2102 << 3 & 248 | 4) + ($2094 & 248 | 4) + ($2094 << 5 & 224 | $2102 >>> 3 & 28 | 2) | 0) >>> 0) / 3 | 0); - } - $i$20348 = $i$20348 + 1 | 0; - } while (($i$20348 | 0) < ($sample_size$xdiv2$2 | 0)); + $102 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($102 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $55; + $142 = $56 * 7 | 0; + $144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1; + $148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265; + $152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076; + $156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0; + if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $j$18352 = $j$18352 + 1 | 0; - } while (($j$18352 | 0) < ($ydiv2$3 | 0)); - break; - } - case 10: - { - $1748 = $103 + 100.0; - $1749 = +($ydiv2$3 | 0); - $1750 = +($sample_size$xdiv2$2 | 0); - $1751 = $para + 48 | 0; - $1752 = $para + 56 | 0; - $1753 = $para + 64 | 0; - $1754 = $para + 8 | 0; - $1755 = $para + 16 | 0; - $1756 = $para + 24 | 0; - $1757 = $para + 32 | 0; - $1758 = $para + 40 | 0; - $1759 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1761 = ($sample_size$xdiv2$2 | 0) > 0; - $j$19358 = 0; - do { - $2128 = $1748 + $104 * (+($j$19358 | 0) + .5) / $1749; - if ($1761) { - $i$21354 = 0; - do { - $2133 = $1748 + $104 * (+($i$21354 | 0) + .5) / $1750; - $2140 = +HEAPF64[$1753 >> 3] + (+HEAPF64[$1751 >> 3] * $2133 + $2128 * +HEAPF64[$1752 >> 3]); - if ($2140 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $2150 = (+HEAPF64[$1755 >> 3] + ($2133 * +HEAPF64[$para >> 3] + $2128 * +HEAPF64[$1754 >> 3])) / $2140; - HEAPF32[$xc2 >> 2] = $2150; - $2159 = (+HEAPF64[$1758 >> 3] + ($2133 * +HEAPF64[$1756 >> 3] + $2128 * +HEAPF64[$1757 >> 3])) / $2140; - HEAPF32[$yc2 >> 2] = $2159; - _arParamIdeal2ObservLTf($paramLTf, $2150, $2159, $xc2, $yc2) | 0; - $2160 = +HEAPF32[$xc2 >> 2]; - if ($1759) { - $xc$19 = ((~~($2160 + 1.0) | 0) / 2 | 0) << 1; - $yc$19 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$19 = ~~($2160 + .5); - $yc$19 = ~~(+HEAPF32[$yc2 >> 2] + .5); + $107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + $110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($107 | 0) > ($110 | 0)) { + HEAP16[$pnt2$368 >> 1] = $110; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $127 = $110; + break; + } else $wk$250 = $wk$250 + 4 | 0; } - if (($xc$19 | 0) > -1) if (($yc$19 | 0) < ($ysize | 0) & (($yc$19 | 0) > -1 & ($xc$19 | 0) < ($xsize | 0))) { - $2181 = (Math_imul($yc$19, $xsize) | 0) + $xc$19 << 1; - $2184 = HEAPU8[$image + $2181 >> 0] | 0; - $2192 = HEAPU8[$image + ($2181 | 1) >> 0] | 0; - $2207 = $1433 + ((Math_imul(($j$19358 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$21354 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$2207 >> 2] = (HEAP32[$2207 >> 2] | 0) + (((($2192 << 2 & 248 | 4) + ($2184 & 248 | 4) + ($2184 << 5 & 224 | $2192 >>> 3 & 24 | 4) | 0) >>> 0) / 3 | 0); + } else $127 = $110; + } else { + HEAP16[$pnt2$368 >> 1] = $107; + if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $127 = $107; + break; + } else $wk$347 = $wk$347 + 4 | 0; } - $i$21354 = $i$21354 + 1 | 0; - } while (($i$21354 | 0) < ($sample_size$xdiv2$2 | 0)); + } else $127 = $107; } - $j$19358 = $j$19358 + 1 | 0; - } while (($j$19358 | 0) < ($ydiv2$3 | 0)); - break; + $129 = ($127 << 16 >> 16) * 7 | 0; + $131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1; + $135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265; + $139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $221 = $pnt$169 + 4 | 0; + $222 = $pnt2$368 + 2 | 0; + $223 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $223; + $pnt$1$lcssa = $221; + $pnt2$3$lcssa = $222; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $223; + $pnt$169 = $221; + $pnt2$368 = $222; + $wk_max$160 = $wk_max$2; + } } - case 11: - { - $1734 = $103 + 100.0; - $1735 = +($ydiv2$3 | 0); - $1736 = +($sample_size$xdiv2$2 | 0); - $1737 = $para + 48 | 0; - $1738 = $para + 56 | 0; - $1739 = $para + 64 | 0; - $1740 = $para + 8 | 0; - $1741 = $para + 16 | 0; - $1742 = $para + 24 | 0; - $1743 = $para + 32 | 0; - $1744 = $para + 40 | 0; - $1745 = ($imageProcMode | 0) == 1; - if (($ydiv2$3 | 0) <= 0) break L233; - $1747 = ($sample_size$xdiv2$2 | 0) > 0; - $j$20364 = 0; - do { - $2218 = $1734 + $104 * (+($j$20364 | 0) + .5) / $1735; - if ($1747) { - $i$22360 = 0; - do { - $2223 = $1734 + $104 * (+($i$22360 | 0) + .5) / $1736; - $2230 = +HEAPF64[$1739 >> 3] + (+HEAPF64[$1737 >> 3] * $2223 + $2218 * +HEAPF64[$1738 >> 3]); - if ($2230 == 0.0) { - $ext_patt2$0 = $1433; - label = 278; - break L13; - } - $2240 = (+HEAPF64[$1741 >> 3] + ($2223 * +HEAPF64[$para >> 3] + $2218 * +HEAPF64[$1740 >> 3])) / $2230; - HEAPF32[$xc2 >> 2] = $2240; - $2249 = (+HEAPF64[$1744 >> 3] + ($2223 * +HEAPF64[$1742 >> 3] + $2218 * +HEAPF64[$1743 >> 3])) / $2230; - HEAPF32[$yc2 >> 2] = $2249; - _arParamIdeal2ObservLTf($paramLTf, $2240, $2249, $xc2, $yc2) | 0; - $2250 = +HEAPF32[$xc2 >> 2]; - if ($1745) { - $xc$20 = ((~~($2250 + 1.0) | 0) / 2 | 0) << 1; - $yc$20 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1; - } else { - $xc$20 = ~~($2250 + .5); - $yc$20 = ~~(+HEAPF32[$yc2 >> 2] + .5); - } - if (($xc$20 | 0) > -1) if (($yc$20 | 0) < ($ysize | 0) & (($yc$20 | 0) > -1 & ($xc$20 | 0) < ($xsize | 0))) { - $2271 = (Math_imul($yc$20, $xsize) | 0) + $xc$20 << 1; - $2274 = HEAPU8[$image + $2271 >> 0] | 0; - $2293 = $1433 + ((Math_imul(($j$20364 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$22360 | 0) / ($99 | 0) | 0) << 2) | 0; - HEAP32[$2293 >> 2] = (HEAP32[$2293 >> 2] | 0) + (((($2274 << 4 & 240 | 8) + ($2274 & 240 | 8) + ((HEAPU8[$image + ($2271 | 1) >> 0] | 0) & 240 | 8) | 0) >>> 0) / 3 | 0); - } - $i$22360 = $i$22360 + 1 | 0; - } while (($i$22360 | 0) < ($sample_size$xdiv2$2 | 0)); - } - $j$20364 = $j$20364 + 1 | 0; - } while (($j$20364 | 0) < ($ydiv2$3 | 0)); - break; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $230 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $232 = HEAP32[$wk$444 >> 2] | 0; + if (($232 | 0) == ($i$342 | 0)) { + $238 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; } - default: - { - _arLog(3, 4615, $vararg_buffer5); - $ext_patt2$0 = $1433; - label = 278; - break L13; + HEAP32[$wk$444 >> 2] = $238; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } } - } while (0); - $1450 = Math_imul($100, $99) | 0; - if ($106) { - $i$23309 = 0; - do { - HEAP8[$ext_patt + $i$23309 >> 0] = ((HEAP32[$1433 + ($i$23309 << 2) >> 2] | 0) >>> 0) / ($1450 >>> 0) | 0; - $i$23309 = $i$23309 + 1 | 0; - } while (($i$23309 | 0) < ($106 | 0)); } - _free($1433); - $$0 = 0; - } while (0); - if ((label | 0) == 278) { - _free($ext_patt2$0); - $$0 = -1; + $242 = $labelInfo + 8 | 0; + $243 = $j$1$lcssa + -1 | 0; + HEAP32[$242 >> 2] = $243; + if (!$243) $$0 = 0; else { + _memset($230 | 0, 0, $243 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $250 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $265 = $i$538 * 7 | 0; + $268 = $labelInfo + 12 + ($264 << 2) | 0; + HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); + $275 = $264 << 1; + $276 = $labelInfo + 655376 + ($275 << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); + $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); + $287 = $264 << 2; + $288 = $labelInfo + 131084 + ($287 << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$242 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $317 = $labelInfo + 12 + ($i$637 << 2) | 0; + $320 = $i$637 << 1; + $321 = $labelInfo + 655376 + ($320 << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); + $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i103 = 0, $$0$i$i$i108 = 0, $$0$i$i$i113 = 0, $$0$i$i$i118 = 0, $$0$i$i$i123 = 0, $$0$i$i$i128 = 0, $$0$i$i$i133 = 0, $$0$i$i$i138 = 0, $$0$i$i$i14 = 0, $$0$i$i$i143 = 0, $$0$i$i$i19 = 0, $$0$i$i$i24 = 0, $$0$i$i$i29 = 0, $$0$i$i$i34 = 0, $$0$i$i$i39 = 0, $$0$i$i$i4 = 0, $$0$i$i$i44 = 0, $$0$i$i$i49 = 0, $$0$i$i$i54 = 0, $$0$i$i$i59 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i88 = 0, $$0$i$i$i9 = 0, $$0$i$i$i93 = 0, $$0$i$i$i98 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $106 = 0, $108 = 0, $11 = 0, $111 = 0, $112 = 0, $115 = 0, $116 = 0, $118 = 0, $12 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $132 = 0, $134 = 0, $137 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $144 = 0, $15 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $158 = 0, $16 = 0, $160 = 0, $163 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $19 = 0, $190 = 0, $193 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $21 = 0, $210 = 0, $212 = 0, $215 = 0, $216 = 0, $219 = 0, $22 = 0, $220 = 0, $222 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $238 = 0, $24 = 0, $241 = 0, $242 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $26 = 0, $262 = 0, $264 = 0, $267 = 0, $268 = 0, $27 = 0, $271 = 0, $272 = 0, $274 = 0, $28 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $288 = 0, $290 = 0, $293 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $300 = 0, $307 = 0, $308 = 0, $309 = 0, $310 = 0, $314 = 0, $316 = 0, $319 = 0, $32 = 0, $320 = 0, $323 = 0, $324 = 0, $326 = 0, $33 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $340 = 0, $342 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $350 = 0, $352 = 0, $359 = 0, $360 = 0, $361 = 0, $362 = 0, $366 = 0, $368 = 0, $371 = 0, $372 = 0, $375 = 0, $379 = 0, $382 = 0, $383 = 0, $385 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $399 = 0, $4 = 0, $401 = 0, $404 = 0, $405 = 0, $408 = 0, $409 = 0, $411 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $425 = 0, $427 = 0, $43 = 0, $430 = 0, $431 = 0, $434 = 0, $435 = 0, $437 = 0, $44 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $45 = 0, $451 = 0, $453 = 0, $456 = 0, $457 = 0, $460 = 0, $461 = 0, $463 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $477 = 0, $479 = 0, $482 = 0, $483 = 0, $486 = 0, $488 = 0, $49 = 0, $491 = 0, $492 = 0, $494 = 0, $5 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $508 = 0, $51 = 0, $510 = 0, $513 = 0, $514 = 0, $517 = 0, $518 = 0, $520 = 0, $527 = 0, $528 = 0, $529 = 0, $530 = 0, $534 = 0, $536 = 0, $539 = 0, $54 = 0, $540 = 0, $543 = 0, $544 = 0, $546 = 0, $55 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $560 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $570 = 0, $572 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $586 = 0, $588 = 0, $591 = 0, $592 = 0, $595 = 0, $596 = 0, $598 = 0, $6 = 0, $60 = 0, $602 = 0, $603 = 0, $605 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $619 = 0, $621 = 0, $624 = 0, $625 = 0, $628 = 0, $629 = 0, $63 = 0, $631 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $645 = 0, $647 = 0, $650 = 0, $651 = 0, $654 = 0, $655 = 0, $657 = 0, $66 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $671 = 0, $673 = 0, $676 = 0, $677 = 0, $680 = 0, $681 = 0, $683 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $697 = 0, $699 = 0, $7 = 0, $702 = 0, $703 = 0, $706 = 0, $707 = 0, $709 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $723 = 0, $725 = 0, $728 = 0, $729 = 0, $73 = 0, $732 = 0, $733 = 0, $735 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $749 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $758 = 0, $759 = 0, $76 = 0, $761 = 0, $768 = 0, $769 = 0, $770 = 0, $771 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $8 = 0, $80 = 0, $801 = 0, $803 = 0, $806 = 0, $807 = 0, $82 = 0, $85 = 0, $86 = 0, $89 = 0, $9 = 0, $90 = 0, $92 = 0, $99 = 0, $__v$i$i142 = 0, dest = 0, sp = 0, src = 0, stop = 0; +function _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 720 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i142 = sp + 696 | 0; - $0 = sp + 672 | 0; - $1 = sp + 648 | 0; - $2 = sp + 624 | 0; - $3 = sp + 600 | 0; - $4 = sp + 576 | 0; - $5 = sp + 552 | 0; - $6 = sp + 528 | 0; - $7 = sp + 504 | 0; - $8 = sp + 480 | 0; - $9 = sp + 456 | 0; - $10 = sp + 432 | 0; - $11 = sp + 408 | 0; - $12 = sp + 384 | 0; - $13 = sp + 360 | 0; - $14 = sp + 336 | 0; - $15 = sp + 312 | 0; - $16 = sp + 288 | 0; - $17 = sp + 264 | 0; - $18 = sp + 240 | 0; - $19 = sp + 216 | 0; - $20 = sp + 192 | 0; - $21 = sp + 168 | 0; - $22 = sp + 144 | 0; - $23 = sp + 120 | 0; - $24 = sp + 96 | 0; - $25 = sp + 72 | 0; - $26 = sp + 48 | 0; - $27 = sp + 24 | 0; - $28 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else do switch (HEAP8[$first >> 0] | 0) { - case 118: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($0, 14202); - $32 = $db + 4 | 0; - $33 = HEAP32[$32 >> 2] | 0; - $35 = HEAP32[$db + 8 >> 2] | 0; - if ($33 >>> 0 < $35 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($33, $0); - HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 24; - } else { - $42 = HEAP32[$db >> 2] | 0; - $43 = $33 - $42 | 0; - $44 = ($43 | 0) / 24 | 0; - $45 = $44 + 1 | 0; - if (($43 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $49 = ($35 - $42 | 0) / 24 | 0; - if ($49 >>> 0 < 1073741823) { - $51 = $49 << 1; - $$0$i$i$i = $51 >>> 0 < $45 >>> 0 ? $45 : $51; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i, $44, $db + 12 | 0); - $54 = $__v$i$i142 + 8 | 0; - $55 = HEAP32[$54 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($55, $0); - HEAP32[$54 >> 2] = $55 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 119: - { - HEAP8[$1 >> 0] = 14; - $58 = $1 + 1 | 0; - HEAP8[$58 >> 0] = HEAP8[13764] | 0; - HEAP8[$58 + 1 >> 0] = HEAP8[13765] | 0; - HEAP8[$58 + 2 >> 0] = HEAP8[13766] | 0; - HEAP8[$58 + 3 >> 0] = HEAP8[13767] | 0; - HEAP8[$58 + 4 >> 0] = HEAP8[13768] | 0; - HEAP8[$58 + 5 >> 0] = HEAP8[13769] | 0; - HEAP8[$58 + 6 >> 0] = HEAP8[13770] | 0; - HEAP8[$1 + 8 >> 0] = 0; - $60 = $1 + 12 | 0; - HEAP32[$60 >> 2] = 0; - HEAP32[$60 + 4 >> 2] = 0; - HEAP32[$60 + 8 >> 2] = 0; - $63 = $db + 4 | 0; - $64 = HEAP32[$63 >> 2] | 0; - $66 = HEAP32[$db + 8 >> 2] | 0; - if ($64 >>> 0 < $66 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1); - HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + 24; - } else { - $73 = HEAP32[$db >> 2] | 0; - $74 = $64 - $73 | 0; - $75 = ($74 | 0) / 24 | 0; - $76 = $75 + 1 | 0; - if (($74 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $80 = ($66 - $73 | 0) / 24 | 0; - if ($80 >>> 0 < 1073741823) { - $82 = $80 << 1; - $$0$i$i$i4 = $82 >>> 0 < $76 >>> 0 ? $76 : $82; - } else $$0$i$i$i4 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i4, $75, $db + 12 | 0); - $85 = $__v$i$i142 + 8 | 0; - $86 = HEAP32[$85 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($86, $1); - HEAP32[$85 >> 2] = $86 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 98: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($2, 14207); - $89 = $db + 4 | 0; - $90 = HEAP32[$89 >> 2] | 0; - $92 = HEAP32[$db + 8 >> 2] | 0; - if ($90 >>> 0 < $92 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2); - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 24; - } else { - $99 = HEAP32[$db >> 2] | 0; - $100 = $90 - $99 | 0; - $101 = ($100 | 0) / 24 | 0; - $102 = $101 + 1 | 0; - if (($100 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $106 = ($92 - $99 | 0) / 24 | 0; - if ($106 >>> 0 < 1073741823) { - $108 = $106 << 1; - $$0$i$i$i9 = $108 >>> 0 < $102 >>> 0 ? $102 : $108; - } else $$0$i$i$i9 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i9, $101, $db + 12 | 0); - $111 = $__v$i$i142 + 8 | 0; - $112 = HEAP32[$111 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($112, $2); - HEAP32[$111 >> 2] = $112 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - $$0 = $first + 1 | 0; - break L1; - break; } - case 99: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($3, 13783); - $115 = $db + 4 | 0; - $116 = HEAP32[$115 >> 2] | 0; - $118 = HEAP32[$db + 8 >> 2] | 0; - if ($116 >>> 0 < $118 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3); - HEAP32[$115 >> 2] = (HEAP32[$115 >> 2] | 0) + 24; - } else { - $125 = HEAP32[$db >> 2] | 0; - $126 = $116 - $125 | 0; - $127 = ($126 | 0) / 24 | 0; - $128 = $127 + 1 | 0; - if (($126 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $132 = ($118 - $125 | 0) / 24 | 0; - if ($132 >>> 0 < 1073741823) { - $134 = $132 << 1; - $$0$i$i$i14 = $134 >>> 0 < $128 >>> 0 ? $128 : $134; - } else $$0$i$i$i14 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i14, $127, $db + 12 | 0); - $137 = $__v$i$i142 + 8 | 0; - $138 = HEAP32[$137 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($138, $3); - HEAP32[$137 >> 2] = $138 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); - $$0 = $first + 1 | 0; - break L1; - break; } - case 97: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($4, 13788); - $141 = $db + 4 | 0; - $142 = HEAP32[$141 >> 2] | 0; - $144 = HEAP32[$db + 8 >> 2] | 0; - if ($142 >>> 0 < $144 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4); - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 24; + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $30 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($30) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($36 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $36; + $39 = ($36 << 16 >> 16) * 7 | 0; + $41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1; + $45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265; + $49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $60 = $59 << 16 >> 16; + $61 = $59 << 16 >> 16 > 0; + if ($55 << 16 >> 16 <= 0) { + if ($61) { + HEAP16[$pnt2$368 >> 1] = $59; + $161 = $60 * 7 | 0; + $163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1; + $167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265; + $171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0; + HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076; + $175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0; + if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $181 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($181 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $181; + $184 = ($181 << 16 >> 16) * 7 | 0; + $186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1; + $190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265; + $194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0; + HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076; + $198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0; + if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$198 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $201 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $201; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16; + $206 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $201; + break; + } + } + if ($61) { + $64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + $67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; + if (($64 | 0) > ($67 | 0)) { + HEAP16[$pnt2$368 >> 1] = $67; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $84 = $67; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $84 = $67; + } else { + HEAP16[$pnt2$368 >> 1] = $64; + if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $84 = $64; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $84 = $64; + } + $86 = ($84 << 16 >> 16) * 7 | 0; + $88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1; + $92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265; + $96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0; + HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $102 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($102 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $55; + $142 = $56 * 7 | 0; + $144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1; + $148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265; + $152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0; + HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076; + $156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0; + if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + $110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($107 | 0) > ($110 | 0)) { + HEAP16[$pnt2$368 >> 1] = $110; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $127 = $110; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $127 = $110; + } else { + HEAP16[$pnt2$368 >> 1] = $107; + if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $127 = $107; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $127 = $107; + } + $129 = ($127 << 16 >> 16) * 7 | 0; + $131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1; + $135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265; + $139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $221 = $pnt$169 + 4 | 0; + $222 = $pnt2$368 + 2 | 0; + $223 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $223; + $pnt$1$lcssa = $221; + $pnt2$3$lcssa = $222; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $223; + $pnt$169 = $221; + $pnt2$368 = $222; + $wk_max$160 = $wk_max$2; + } + } } else { - $151 = HEAP32[$db >> 2] | 0; - $152 = $142 - $151 | 0; - $153 = ($152 | 0) / 24 | 0; - $154 = $153 + 1 | 0; - if (($152 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $158 = ($144 - $151 | 0) / 24 | 0; - if ($158 >>> 0 < 1073741823) { - $160 = $158 << 1; - $$0$i$i$i19 = $160 >>> 0 < $154 >>> 0 ? $154 : $160; - } else $$0$i$i$i19 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i19, $153, $db + 12 | 0); - $163 = $__v$i$i142 + 8 | 0; - $164 = HEAP32[$163 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($164, $4); - HEAP32[$163 >> 2] = $164 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 104: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 13800); - $167 = $db + 4 | 0; - $168 = HEAP32[$167 >> 2] | 0; - $170 = HEAP32[$db + 8 >> 2] | 0; - if ($168 >>> 0 < $170 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5); - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24; + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $177 = HEAP32[$db >> 2] | 0; - $178 = $168 - $177 | 0; - $179 = ($178 | 0) / 24 | 0; - $180 = $179 + 1 | 0; - if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $184 = ($170 - $177 | 0) / 24 | 0; - if ($184 >>> 0 < 1073741823) { - $186 = $184 << 1; - $$0$i$i$i24 = $186 >>> 0 < $180 >>> 0 ? $180 : $186; - } else $$0$i$i$i24 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i24, $179, $db + 12 | 0); - $189 = $__v$i$i142 + 8 | 0; - $190 = HEAP32[$189 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $5); - HEAP32[$189 >> 2] = $190 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $$0 = $first + 1 | 0; - break L1; - break; } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($6, 13814); - $193 = $db + 4 | 0; - $194 = HEAP32[$193 >> 2] | 0; - $196 = HEAP32[$db + 8 >> 2] | 0; - if ($194 >>> 0 < $196 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($194, $6); - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 24; - } else { - $203 = HEAP32[$db >> 2] | 0; - $204 = $194 - $203 | 0; - $205 = ($204 | 0) / 24 | 0; - $206 = $205 + 1 | 0; - if (($204 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $210 = ($196 - $203 | 0) / 24 | 0; - if ($210 >>> 0 < 1073741823) { - $212 = $210 << 1; - $$0$i$i$i29 = $212 >>> 0 < $206 >>> 0 ? $206 : $212; - } else $$0$i$i$i29 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i29, $205, $db + 12 | 0); - $215 = $__v$i$i142 + 8 | 0; - $216 = HEAP32[$215 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($216, $6); - HEAP32[$215 >> 2] = $216 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $230 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $232 = HEAP32[$wk$444 >> 2] | 0; + if (($232 | 0) == ($i$342 | 0)) { + $238 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $238; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6); - $$0 = $first + 1 | 0; - break L1; - break; } - case 116: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($7, 13820); - $219 = $db + 4 | 0; - $220 = HEAP32[$219 >> 2] | 0; - $222 = HEAP32[$db + 8 >> 2] | 0; - if ($220 >>> 0 < $222 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($220, $7); - HEAP32[$219 >> 2] = (HEAP32[$219 >> 2] | 0) + 24; - } else { - $229 = HEAP32[$db >> 2] | 0; - $230 = $220 - $229 | 0; - $231 = ($230 | 0) / 24 | 0; - $232 = $231 + 1 | 0; - if (($230 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $236 = ($222 - $229 | 0) / 24 | 0; - if ($236 >>> 0 < 1073741823) { - $238 = $236 << 1; - $$0$i$i$i34 = $238 >>> 0 < $232 >>> 0 ? $232 : $238; - } else $$0$i$i$i34 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i34, $231, $db + 12 | 0); - $241 = $__v$i$i142 + 8 | 0; - $242 = HEAP32[$241 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($242, $7); - HEAP32[$241 >> 2] = $242 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $242 = $labelInfo + 8 | 0; + $243 = $j$1$lcssa + -1 | 0; + HEAP32[$242 >> 2] = $243; + if (!$243) $$0 = 0; else { + _memset($230 | 0, 0, $243 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $250 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7); - $$0 = $first + 1 | 0; - break L1; - break; + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $265 = $i$538 * 7 | 0; + $268 = $labelInfo + 12 + ($264 << 2) | 0; + HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); + $275 = $264 << 1; + $276 = $labelInfo + 655376 + ($275 << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); + $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); + $287 = $264 << 2; + $288 = $labelInfo + 131084 + ($287 << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$242 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $317 = $labelInfo + 12 + ($i$637 << 2) | 0; + $320 = $i$637 << 1; + $321 = $labelInfo + 655376 + ($320 << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); + $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - case 105: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($8, 14212); - $245 = $db + 4 | 0; - $246 = HEAP32[$245 >> 2] | 0; - $248 = HEAP32[$db + 8 >> 2] | 0; - if ($246 >>> 0 < $248 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($246, $8); - HEAP32[$245 >> 2] = (HEAP32[$245 >> 2] | 0) + 24; - } else { - $255 = HEAP32[$db >> 2] | 0; - $256 = $246 - $255 | 0; - $257 = ($256 | 0) / 24 | 0; - $258 = $257 + 1 | 0; - if (($256 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $262 = ($248 - $255 | 0) / 24 | 0; - if ($262 >>> 0 < 1073741823) { - $264 = $262 << 1; - $$0$i$i$i39 = $264 >>> 0 < $258 >>> 0 ? $258 : $264; - } else $$0$i$i$i39 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i39, $257, $db + 12 | 0); - $267 = $__v$i$i142 + 8 | 0; - $268 = HEAP32[$267 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($268, $8); - HEAP32[$267 >> 2] = $268 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8); - $$0 = $first + 1 | 0; - break L1; - break; } - case 106: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($9, 14216); - $271 = $db + 4 | 0; - $272 = HEAP32[$271 >> 2] | 0; - $274 = HEAP32[$db + 8 >> 2] | 0; - if ($272 >>> 0 < $274 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($272, $9); - HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + 24; - } else { - $281 = HEAP32[$db >> 2] | 0; - $282 = $272 - $281 | 0; - $283 = ($282 | 0) / 24 | 0; - $284 = $283 + 1 | 0; - if (($282 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $288 = ($274 - $281 | 0) / 24 | 0; - if ($288 >>> 0 < 1073741823) { - $290 = $288 << 1; - $$0$i$i$i44 = $290 >>> 0 < $284 >>> 0 ? $284 : $290; - } else $$0$i$i$i44 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i44, $283, $db + 12 | 0); - $293 = $__v$i$i142 + 8 | 0; - $294 = HEAP32[$293 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($294, $9); - HEAP32[$293 >> 2] = $294 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9); - $$0 = $first + 1 | 0; - break L1; - break; } - case 108: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($10, 14229); - $297 = $db + 4 | 0; - $298 = HEAP32[$297 >> 2] | 0; - $300 = HEAP32[$db + 8 >> 2] | 0; - if ($298 >>> 0 < $300 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($298, $10); - HEAP32[$297 >> 2] = (HEAP32[$297 >> 2] | 0) + 24; + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $30 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($30) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } else { + HEAP8[$dpnt$167 >> 0] = -1; + $35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($35 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $35; + $38 = ($35 << 16 >> 16) * 7 | 0; + $40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1; + $44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265; + $48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $59 = $58 << 16 >> 16; + $60 = $58 << 16 >> 16 > 0; + if ($54 << 16 >> 16 <= 0) { + if ($60) { + HEAP16[$pnt2$368 >> 1] = $58; + $160 = $59 * 7 | 0; + $162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1; + $166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265; + $170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076; + $174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0; + if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $180 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($180 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $180; + $183 = ($180 << 16 >> 16) * 7 | 0; + $185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1; + $189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265; + $193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076; + $197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0; + if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$197 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $200 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $200; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16; + $205 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $200; + break; + } + } + if ($60) { + $63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + $66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + if (($63 | 0) > ($66 | 0)) { + HEAP16[$pnt2$368 >> 1] = $66; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $83 = $66; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $83 = $66; + } else { + HEAP16[$pnt2$368 >> 1] = $63; + if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $83 = $63; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $83 = $63; + } + $85 = ($83 << 16 >> 16) * 7 | 0; + $87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1; + $91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265; + $95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $101 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($101 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $54; + $141 = $55 * 7 | 0; + $143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1; + $147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265; + $151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076; + $155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0; + if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + $109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($106 | 0) > ($109 | 0)) { + HEAP16[$pnt2$368 >> 1] = $109; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $126 = $109; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $126 = $109; + } else { + HEAP16[$pnt2$368 >> 1] = $106; + if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $126 = $106; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $126 = $106; + } + $128 = ($126 << 16 >> 16) * 7 | 0; + $130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1; + $134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265; + $138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $220 = $pnt$169 + 4 | 0; + $221 = $pnt2$368 + 2 | 0; + $222 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $222; + $pnt$1$lcssa = $220; + $pnt2$3$lcssa = $221; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $222; + $pnt$169 = $220; + $pnt2$368 = $221; + $wk_max$160 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $307 = HEAP32[$db >> 2] | 0; - $308 = $298 - $307 | 0; - $309 = ($308 | 0) / 24 | 0; - $310 = $309 + 1 | 0; - if (($308 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $314 = ($300 - $307 | 0) / 24 | 0; - if ($314 >>> 0 < 1073741823) { - $316 = $314 << 1; - $$0$i$i$i49 = $316 >>> 0 < $310 >>> 0 ? $310 : $316; - } else $$0$i$i$i49 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i49, $309, $db + 12 | 0); - $319 = $__v$i$i142 + 8 | 0; - $320 = HEAP32[$319 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($320, $10); - HEAP32[$319 >> 2] = $320 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10); - $$0 = $first + 1 | 0; - break L1; - break; } - case 109: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($11, 14234); - $323 = $db + 4 | 0; - $324 = HEAP32[$323 >> 2] | 0; - $326 = HEAP32[$db + 8 >> 2] | 0; - if ($324 >>> 0 < $326 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($324, $11); - HEAP32[$323 >> 2] = (HEAP32[$323 >> 2] | 0) + 24; - } else { - $333 = HEAP32[$db >> 2] | 0; - $334 = $324 - $333 | 0; - $335 = ($334 | 0) / 24 | 0; - $336 = $335 + 1 | 0; - if (($334 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $340 = ($326 - $333 | 0) / 24 | 0; - if ($340 >>> 0 < 1073741823) { - $342 = $340 << 1; - $$0$i$i$i54 = $342 >>> 0 < $336 >>> 0 ? $336 : $342; - } else $$0$i$i$i54 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i54, $335, $db + 12 | 0); - $345 = $__v$i$i142 + 8 | 0; - $346 = HEAP32[$345 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($346, $11); - HEAP32[$345 >> 2] = $346 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $231 = HEAP32[$wk$444 >> 2] | 0; + if (($231 | 0) == ($i$342 | 0)) { + $237 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $237; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11); - $$0 = $first + 1 | 0; - break L1; - break; } - case 120: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 14248); - $349 = $db + 4 | 0; - $350 = HEAP32[$349 >> 2] | 0; - $352 = HEAP32[$db + 8 >> 2] | 0; - if ($350 >>> 0 < $352 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($350, $12); - HEAP32[$349 >> 2] = (HEAP32[$349 >> 2] | 0) + 24; - } else { - $359 = HEAP32[$db >> 2] | 0; - $360 = $350 - $359 | 0; - $361 = ($360 | 0) / 24 | 0; - $362 = $361 + 1 | 0; - if (($360 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $366 = ($352 - $359 | 0) / 24 | 0; - if ($366 >>> 0 < 1073741823) { - $368 = $366 << 1; - $$0$i$i$i59 = $368 >>> 0 < $362 >>> 0 ? $362 : $368; - } else $$0$i$i$i59 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i59, $361, $db + 12 | 0); - $371 = $__v$i$i142 + 8 | 0; - $372 = HEAP32[$371 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($372, $12); - HEAP32[$371 >> 2] = $372 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $249 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12); - $$0 = $first + 1 | 0; - break L1; - break; + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$538 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $316 = $labelInfo + 12 + ($i$637 << 2) | 0; + $319 = $i$637 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - case 121: - { - $375 = _malloc(32) | 0; - HEAP32[$13 + 8 >> 2] = $375; - HEAP32[$13 >> 2] = 33; - HEAP32[$13 + 4 >> 2] = 18; - dest = $375; - src = 14258; - stop = dest + 18 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$375 + 18 >> 0] = 0; - $379 = $13 + 12 | 0; - HEAP32[$379 >> 2] = 0; - HEAP32[$379 + 4 >> 2] = 0; - HEAP32[$379 + 8 >> 2] = 0; - $382 = $db + 4 | 0; - $383 = HEAP32[$382 >> 2] | 0; - $385 = HEAP32[$db + 8 >> 2] | 0; - if ($383 >>> 0 < $385 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($383, $13); - HEAP32[$382 >> 2] = (HEAP32[$382 >> 2] | 0) + 24; - } else { - $392 = HEAP32[$db >> 2] | 0; - $393 = $383 - $392 | 0; - $394 = ($393 | 0) / 24 | 0; - $395 = $394 + 1 | 0; - if (($393 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $399 = ($385 - $392 | 0) / 24 | 0; - if ($399 >>> 0 < 1073741823) { - $401 = $399 << 1; - $$0$i$i$i66 = $401 >>> 0 < $395 >>> 0 ? $395 : $401; - } else $$0$i$i$i66 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i66, $394, $db + 12 | 0); - $404 = $__v$i$i142 + 8 | 0; - $405 = HEAP32[$404 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($405, $13); - HEAP32[$404 >> 2] = $405 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + STACKTOP = sp; + return $$0 | 0; +} +function _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13); - $$0 = $first + 1 | 0; - break L1; - break; } - case 110: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($14, 13850); - $408 = $db + 4 | 0; - $409 = HEAP32[$408 >> 2] | 0; - $411 = HEAP32[$db + 8 >> 2] | 0; - if ($409 >>> 0 < $411 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($409, $14); - HEAP32[$408 >> 2] = (HEAP32[$408 >> 2] | 0) + 24; - } else { - $418 = HEAP32[$db >> 2] | 0; - $419 = $409 - $418 | 0; - $420 = ($419 | 0) / 24 | 0; - $421 = $420 + 1 | 0; - if (($419 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $425 = ($411 - $418 | 0) / 24 | 0; - if ($425 >>> 0 < 1073741823) { - $427 = $425 << 1; - $$0$i$i$i71 = $427 >>> 0 < $421 >>> 0 ? $421 : $427; - } else $$0$i$i$i71 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i71, $420, $db + 12 | 0); - $430 = $__v$i$i142 + 8 | 0; - $431 = HEAP32[$430 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($431, $14); - HEAP32[$430 >> 2] = $431 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14); - $$0 = $first + 1 | 0; - break L1; - break; } - case 111: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($15, 13859); - $434 = $db + 4 | 0; - $435 = HEAP32[$434 >> 2] | 0; - $437 = HEAP32[$db + 8 >> 2] | 0; - if ($435 >>> 0 < $437 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($435, $15); - HEAP32[$434 >> 2] = (HEAP32[$434 >> 2] | 0) + 24; + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $30 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 2) + 4) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($30) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; + if ($35 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $35; + $38 = ($35 << 16 >> 16) * 7 | 0; + $40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1; + $44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265; + $48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $59 = $58 << 16 >> 16; + $60 = $58 << 16 >> 16 > 0; + if ($54 << 16 >> 16 <= 0) { + if ($60) { + HEAP16[$pnt2$368 >> 1] = $58; + $160 = $59 * 7 | 0; + $162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1; + $166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265; + $170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076; + $174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0; + if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $180 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($180 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $180; + $183 = ($180 << 16 >> 16) * 7 | 0; + $185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1; + $189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265; + $193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076; + $197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0; + if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$197 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $200 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $200; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16; + $205 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $200; + break; + } + } + if ($60) { + $63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + $66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + if (($63 | 0) > ($66 | 0)) { + HEAP16[$pnt2$368 >> 1] = $66; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $83 = $66; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $83 = $66; + } else { + HEAP16[$pnt2$368 >> 1] = $63; + if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $83 = $63; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $83 = $63; + } + $85 = ($83 << 16 >> 16) * 7 | 0; + $87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1; + $91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265; + $95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $101 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($101 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $54; + $141 = $55 * 7 | 0; + $143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1; + $147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265; + $151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076; + $155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0; + if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + $109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($106 | 0) > ($109 | 0)) { + HEAP16[$pnt2$368 >> 1] = $109; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $126 = $109; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $126 = $109; + } else { + HEAP16[$pnt2$368 >> 1] = $106; + if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $126 = $106; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $126 = $106; + } + $128 = ($126 << 16 >> 16) * 7 | 0; + $130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1; + $134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265; + $138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $220 = $pnt$169 + 4 | 0; + $221 = $pnt2$368 + 2 | 0; + $222 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $222; + $pnt$1$lcssa = $220; + $pnt2$3$lcssa = $221; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$167 = $222; + $pnt$169 = $220; + $pnt2$368 = $221; + $wk_max$160 = $wk_max$2; + } + } } else { - $444 = HEAP32[$db >> 2] | 0; - $445 = $435 - $444 | 0; - $446 = ($445 | 0) / 24 | 0; - $447 = $446 + 1 | 0; - if (($445 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $451 = ($437 - $444 | 0) / 24 | 0; - if ($451 >>> 0 < 1073741823) { - $453 = $451 << 1; - $$0$i$i$i76 = $453 >>> 0 < $447 >>> 0 ? $447 : $453; - } else $$0$i$i$i76 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i76, $446, $db + 12 | 0); - $456 = $__v$i$i142 + 8 | 0; - $457 = HEAP32[$456 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($457, $15); - HEAP32[$456 >> 2] = $457 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 102: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($16, 14277); - $460 = $db + 4 | 0; - $461 = HEAP32[$460 >> 2] | 0; - $463 = HEAP32[$db + 8 >> 2] | 0; - if ($461 >>> 0 < $463 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($461, $16); - HEAP32[$460 >> 2] = (HEAP32[$460 >> 2] | 0) + 24; + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $470 = HEAP32[$db >> 2] | 0; - $471 = $461 - $470 | 0; - $472 = ($471 | 0) / 24 | 0; - $473 = $472 + 1 | 0; - if (($471 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $477 = ($463 - $470 | 0) / 24 | 0; - if ($477 >>> 0 < 1073741823) { - $479 = $477 << 1; - $$0$i$i$i81 = $479 >>> 0 < $473 >>> 0 ? $473 : $479; - } else $$0$i$i$i81 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i81, $472, $db + 12 | 0); - $482 = $__v$i$i142 + 8 | 0; - $483 = HEAP32[$482 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($483, $16); - HEAP32[$482 >> 2] = $483 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); - $$0 = $first + 1 | 0; - break L1; - break; } - case 100: - { - HEAP8[$17 >> 0] = 12; - $486 = $17 + 1 | 0; - HEAP8[$486 >> 0] = HEAP8[14283] | 0; - HEAP8[$486 + 1 >> 0] = HEAP8[14284] | 0; - HEAP8[$486 + 2 >> 0] = HEAP8[14285] | 0; - HEAP8[$486 + 3 >> 0] = HEAP8[14286] | 0; - HEAP8[$486 + 4 >> 0] = HEAP8[14287] | 0; - HEAP8[$486 + 5 >> 0] = HEAP8[14288] | 0; - HEAP8[$17 + 7 >> 0] = 0; - $488 = $17 + 12 | 0; - HEAP32[$488 >> 2] = 0; - HEAP32[$488 + 4 >> 2] = 0; - HEAP32[$488 + 8 >> 2] = 0; - $491 = $db + 4 | 0; - $492 = HEAP32[$491 >> 2] | 0; - $494 = HEAP32[$db + 8 >> 2] | 0; - if ($492 >>> 0 < $494 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($492, $17); - HEAP32[$491 >> 2] = (HEAP32[$491 >> 2] | 0) + 24; - } else { - $501 = HEAP32[$db >> 2] | 0; - $502 = $492 - $501 | 0; - $503 = ($502 | 0) / 24 | 0; - $504 = $503 + 1 | 0; - if (($502 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $508 = ($494 - $501 | 0) / 24 | 0; - if ($508 >>> 0 < 1073741823) { - $510 = $508 << 1; - $$0$i$i$i88 = $510 >>> 0 < $504 >>> 0 ? $504 : $510; - } else $$0$i$i$i88 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i88, $503, $db + 12 | 0); - $513 = $__v$i$i142 + 8 | 0; - $514 = HEAP32[$513 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($514, $17); - HEAP32[$513 >> 2] = $514 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $231 = HEAP32[$wk$444 >> 2] | 0; + if (($231 | 0) == ($i$342 | 0)) { + $237 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; + } + HEAP32[$wk$444 >> 2] = $237; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17); - $$0 = $first + 1 | 0; - break L1; - break; } - case 101: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($18, 14290); - $517 = $db + 4 | 0; - $518 = HEAP32[$517 >> 2] | 0; - $520 = HEAP32[$db + 8 >> 2] | 0; - if ($518 >>> 0 < $520 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($518, $18); - HEAP32[$517 >> 2] = (HEAP32[$517 >> 2] | 0) + 24; - } else { - $527 = HEAP32[$db >> 2] | 0; - $528 = $518 - $527 | 0; - $529 = ($528 | 0) / 24 | 0; - $530 = $529 + 1 | 0; - if (($528 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $534 = ($520 - $527 | 0) / 24 | 0; - if ($534 >>> 0 < 1073741823) { - $536 = $534 << 1; - $$0$i$i$i93 = $536 >>> 0 < $530 >>> 0 ? $530 : $536; - } else $$0$i$i$i93 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i93, $529, $db + 12 | 0); - $539 = $__v$i$i142 + 8 | 0; - $540 = HEAP32[$539 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($540, $18); - HEAP32[$539 >> 2] = $540 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $249 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 103: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 14302); - $543 = $db + 4 | 0; - $544 = HEAP32[$543 >> 2] | 0; - $546 = HEAP32[$db + 8 >> 2] | 0; - if ($544 >>> 0 < $546 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($544, $19); - HEAP32[$543 >> 2] = (HEAP32[$543 >> 2] | 0) + 24; - } else { - $553 = HEAP32[$db >> 2] | 0; - $554 = $544 - $553 | 0; - $555 = ($554 | 0) / 24 | 0; - $556 = $555 + 1 | 0; - if (($554 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $560 = ($546 - $553 | 0) / 24 | 0; - if ($560 >>> 0 < 1073741823) { - $562 = $560 << 1; - $$0$i$i$i98 = $562 >>> 0 < $556 >>> 0 ? $556 : $562; - } else $$0$i$i$i98 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i98, $555, $db + 12 | 0); - $565 = $__v$i$i142 + 8 | 0; - $566 = HEAP32[$565 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($566, $19); - HEAP32[$565 >> 2] = $566 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$538 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); - $$0 = $first + 1 | 0; - break L1; - break; + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $316 = $labelInfo + 12 + ($i$637 << 2) | 0; + $319 = $i$637 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - case 122: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($20, 14313); - $569 = $db + 4 | 0; - $570 = HEAP32[$569 >> 2] | 0; - $572 = HEAP32[$db + 8 >> 2] | 0; - if ($570 >>> 0 < $572 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($570, $20); - HEAP32[$569 >> 2] = (HEAP32[$569 >> 2] | 0) + 24; - } else { - $579 = HEAP32[$db >> 2] | 0; - $580 = $570 - $579 | 0; - $581 = ($580 | 0) / 24 | 0; - $582 = $581 + 1 | 0; - if (($580 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $586 = ($572 - $579 | 0) / 24 | 0; - if ($586 >>> 0 < 1073741823) { - $588 = $586 << 1; - $$0$i$i$i103 = $588 >>> 0 < $582 >>> 0 ? $582 : $588; - } else $$0$i$i$i103 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i103, $581, $db + 12 | 0); - $591 = $__v$i$i142 + 8 | 0; - $592 = HEAP32[$591 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($592, $20); - HEAP32[$591 >> 2] = $592 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20); - $$0 = $first + 1 | 0; - break L1; - break; - } - case 117: - { - $595 = $first + 1 | 0; - $596 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($595, $last, $db) | 0; - STACKTOP = sp; - return (($596 | 0) == ($595 | 0) ? $first : $596) | 0; } - case 68: - { - $598 = $first + 1 | 0; - if (($598 | 0) == ($last | 0)) { - $$0 = $first; - break L1; + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; } - switch (HEAP8[$598 >> 0] | 0) { - case 100: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 14317); - $602 = $db + 4 | 0; - $603 = HEAP32[$602 >> 2] | 0; - $605 = HEAP32[$db + 8 >> 2] | 0; - if ($603 >>> 0 < $605 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($603, $21); - HEAP32[$602 >> 2] = (HEAP32[$602 >> 2] | 0) + 24; + } + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = $xsize + 4 | 0; + L11 : do if (($3 | 0) > 1) { + $29 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 1) + 2) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($29) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$167 >> 0] = -1; + $34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0; + if ($34 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $34; + $37 = ($34 << 16 >> 16) * 7 | 0; + $39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0; + HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1; + $43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265; + $47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $54 = $53 << 16 >> 16; + $57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $58 = $57 << 16 >> 16; + $59 = $57 << 16 >> 16 > 0; + if ($53 << 16 >> 16 <= 0) { + if ($59) { + HEAP16[$pnt2$368 >> 1] = $57; + $159 = $58 * 7 | 0; + $161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1; + $165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265; + $169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076; + $173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0; + if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $179 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($179 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $179; + $182 = ($179 << 16 >> 16) * 7 | 0; + $184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0; + HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1; + $188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265; + $192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076; + $196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0; + if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$196 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $199 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $199; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16; + $204 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $199; + break; + } + } + if ($59) { + $62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + $65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + if (($62 | 0) > ($65 | 0)) { + HEAP16[$pnt2$368 >> 1] = $65; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $82 = $65; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $82 = $65; + } else { + HEAP16[$pnt2$368 >> 1] = $62; + if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $82 = $62; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $82 = $62; + } + $84 = ($82 << 16 >> 16) * 7 | 0; + $86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1; + $90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265; + $94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $100 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($100 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $53; + $140 = $54 * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076; + $154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0; + if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + $108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($105 | 0) > ($108 | 0)) { + HEAP16[$pnt2$368 >> 1] = $108; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $125 = $108; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $125 = $108; + } else { + HEAP16[$pnt2$368 >> 1] = $105; + if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $125 = $105; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $125 = $105; + } + $127 = ($125 << 16 >> 16) * 7 | 0; + $129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0; + HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1; + $133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265; + $137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; } else { - $612 = HEAP32[$db >> 2] | 0; - $613 = $603 - $612 | 0; - $614 = ($613 | 0) / 24 | 0; - $615 = $614 + 1 | 0; - if (($613 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $619 = ($605 - $612 | 0) / 24 | 0; - if ($619 >>> 0 < 1073741823) { - $621 = $619 << 1; - $$0$i$i$i108 = $621 >>> 0 < $615 >>> 0 ? $615 : $621; - } else $$0$i$i$i108 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i108, $614, $db + 12 | 0); - $624 = $__v$i$i142 + 8 | 0; - $625 = HEAP32[$624 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($625, $21); - HEAP32[$624 >> 2] = $625 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 101: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($22, 14327); - $628 = $db + 4 | 0; - $629 = HEAP32[$628 >> 2] | 0; - $631 = HEAP32[$db + 8 >> 2] | 0; - if ($629 >>> 0 < $631 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($629, $22); - HEAP32[$628 >> 2] = (HEAP32[$628 >> 2] | 0) + 24; + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $219 = $pnt$169 + 2 | 0; + $220 = $pnt2$368 + 2 | 0; + $221 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $221; + $pnt$1$lcssa = $219; + $pnt2$3$lcssa = $220; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $638 = HEAP32[$db >> 2] | 0; - $639 = $629 - $638 | 0; - $640 = ($639 | 0) / 24 | 0; - $641 = $640 + 1 | 0; - if (($639 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $645 = ($631 - $638 | 0) / 24 | 0; - if ($645 >>> 0 < 1073741823) { - $647 = $645 << 1; - $$0$i$i$i113 = $647 >>> 0 < $641 >>> 0 ? $641 : $647; - } else $$0$i$i$i113 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i113, $640, $db + 12 | 0); - $650 = $__v$i$i142 + 8 | 0; - $651 = HEAP32[$650 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($651, $22); - HEAP32[$650 >> 2] = $651 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$167 = $221; + $pnt$169 = $219; + $pnt2$368 = $220; + $wk_max$160 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22); - $$0 = $first + 2 | 0; - break L1; - break; } - case 102: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($23, 14338); - $654 = $db + 4 | 0; - $655 = HEAP32[$654 >> 2] | 0; - $657 = HEAP32[$db + 8 >> 2] | 0; - if ($655 >>> 0 < $657 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($655, $23); - HEAP32[$654 >> 2] = (HEAP32[$654 >> 2] | 0) + 24; - } else { - $664 = HEAP32[$db >> 2] | 0; - $665 = $655 - $664 | 0; - $666 = ($665 | 0) / 24 | 0; - $667 = $666 + 1 | 0; - if (($665 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $671 = ($657 - $664 | 0) / 24 | 0; - if ($671 >>> 0 < 1073741823) { - $673 = $671 << 1; - $$0$i$i$i118 = $673 >>> 0 < $667 >>> 0 ? $667 : $673; - } else $$0$i$i$i118 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i118, $666, $db + 12 | 0); - $676 = $__v$i$i142 + 8 | 0; - $677 = HEAP32[$676 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($677, $23); - HEAP32[$676 >> 2] = $677 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23); - $$0 = $first + 2 | 0; - break L1; - break; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $228 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $230 = HEAP32[$wk$444 >> 2] | 0; + if (($230 | 0) == ($i$342 | 0)) { + $236 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; } - case 104: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 14348); - $680 = $db + 4 | 0; - $681 = HEAP32[$680 >> 2] | 0; - $683 = HEAP32[$db + 8 >> 2] | 0; - if ($681 >>> 0 < $683 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($681, $24); - HEAP32[$680 >> 2] = (HEAP32[$680 >> 2] | 0) + 24; - } else { - $690 = HEAP32[$db >> 2] | 0; - $691 = $681 - $690 | 0; - $692 = ($691 | 0) / 24 | 0; - $693 = $692 + 1 | 0; - if (($691 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $697 = ($683 - $690 | 0) / 24 | 0; - if ($697 >>> 0 < 1073741823) { - $699 = $697 << 1; - $$0$i$i$i123 = $699 >>> 0 < $693 >>> 0 ? $693 : $699; - } else $$0$i$i$i123 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i123, $692, $db + 12 | 0); - $702 = $__v$i$i142 + 8 | 0; - $703 = HEAP32[$702 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($703, $24); - HEAP32[$702 >> 2] = $703 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$444 >> 2] = $236; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - case 105: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($25, 14358); - $706 = $db + 4 | 0; - $707 = HEAP32[$706 >> 2] | 0; - $709 = HEAP32[$db + 8 >> 2] | 0; - if ($707 >>> 0 < $709 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($707, $25); - HEAP32[$706 >> 2] = (HEAP32[$706 >> 2] | 0) + 24; + } + } + $240 = $labelInfo + 8 | 0; + $241 = $j$1$lcssa + -1 | 0; + HEAP32[$240 >> 2] = $241; + if (!$241) $$0 = 0; else { + _memset($228 | 0, 0, $241 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $248 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $263 = $i$538 * 7 | 0; + $266 = $labelInfo + 12 + ($262 << 2) | 0; + HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0); + $273 = $262 << 1; + $274 = $labelInfo + 655376 + ($273 << 3) | 0; + HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0); + $282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0; + HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0); + $285 = $262 << 2; + $286 = $labelInfo + 131084 + ($285 << 2) | 0; + $290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0; + if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290; + $293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$240 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $315 = $labelInfo + 12 + ($i$637 << 2) | 0; + $318 = $i$637 << 1; + $319 = $labelInfo + 655376 + ($318 << 3) | 0; + HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0); + $325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} +function _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$089 = 0; + $pnt1$091 = $2; + $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$090 >> 1] = 0; + HEAP16[$pnt1$091 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($0 | 0)) break; else { + $pnt1$091 = $pnt1$091 + 2 | 0; + $pnt2$090 = $pnt2$090 + 2 | 0; + } + } + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$183 = 0; + $pnt1$185 = $2; + $pnt2$184 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$184 >> 1] = 0; + HEAP16[$pnt1$185 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($1 | 0)) break; else { + $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; + $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + } + } + } + $18 = $labelInfo + 1179664 | 0; + $19 = $0 + 1 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = $xsize + 4 | 0; + L11 : do if (($3 | 0) > 1) { + $29 = ($11 | 0) > 1; + $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; + $j$076 = 1; + $pnt$080 = $image + (($xsize << 1) + 2) | 0; + $pnt2$279 = $2 + ($19 << 1) | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($29) { + $dpnt$167 = $dpnt$078; + $i$265 = 1; + $pnt$169 = $pnt$080; + $pnt2$368 = $pnt2$279; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$368 >> 1] = 0; + HEAP8[$dpnt$167 >> 0] = 0; + $wk_max$2 = $wk_max$160; } else { - $716 = HEAP32[$db >> 2] | 0; - $717 = $707 - $716 | 0; - $718 = ($717 | 0) / 24 | 0; - $719 = $718 + 1 | 0; - if (($717 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $723 = ($709 - $716 | 0) / 24 | 0; - if ($723 >>> 0 < 1073741823) { - $725 = $723 << 1; - $$0$i$i$i128 = $725 >>> 0 < $719 >>> 0 ? $719 : $725; - } else $$0$i$i$i128 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i128, $718, $db + 12 | 0); - $728 = $__v$i$i142 + 8 | 0; - $729 = HEAP32[$728 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($729, $25); - HEAP32[$728 >> 2] = $729 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($26, 14367); - $732 = $db + 4 | 0; - $733 = HEAP32[$732 >> 2] | 0; - $735 = HEAP32[$db + 8 >> 2] | 0; - if ($733 >>> 0 < $735 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($733, $26); - HEAP32[$732 >> 2] = (HEAP32[$732 >> 2] | 0) + 24; + HEAP8[$dpnt$167 >> 0] = -1; + $34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0; + if ($34 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $34; + $37 = ($34 << 16 >> 16) * 7 | 0; + $39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0; + HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1; + $43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265; + $47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; + $54 = $53 << 16 >> 16; + $57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; + $58 = $57 << 16 >> 16; + $59 = $57 << 16 >> 16 > 0; + if ($53 << 16 >> 16 <= 0) { + if ($59) { + HEAP16[$pnt2$368 >> 1] = $57; + $159 = $58 * 7 | 0; + $161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1; + $165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265; + $169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076; + $173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0; + if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $179 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($179 << 16 >> 16 > 0) { + HEAP16[$pnt2$368 >> 1] = $179; + $182 = ($179 << 16 >> 16) * 7 | 0; + $184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0; + HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1; + $188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265; + $192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076; + $196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0; + if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$196 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; + break; + } else { + $199 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$368 >> 1] = $199; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16; + $204 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $199; + break; + } + } + if ($59) { + $62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + $65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + if (($62 | 0) > ($65 | 0)) { + HEAP16[$pnt2$368 >> 1] = $65; + if (($wk_max$160 | 0) > 0) { + $k$056 = 0; + $wk$057 = $18; + while (1) { + if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65; + $k$056 = $k$056 + 1 | 0; + if (($k$056 | 0) >= ($wk_max$160 | 0)) { + $82 = $65; + break; + } else $wk$057 = $wk$057 + 4 | 0; + } + } else $82 = $65; + } else { + HEAP16[$pnt2$368 >> 1] = $62; + if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) { + $k$153 = 0; + $wk$154 = $18; + while (1) { + if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62; + $k$153 = $k$153 + 1 | 0; + if (($k$153 | 0) >= ($wk_max$160 | 0)) { + $82 = $62; + break; + } else $wk$154 = $wk$154 + 4 | 0; + } + } else $82 = $62; + } + $84 = ($82 << 16 >> 16) * 7 | 0; + $86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1; + $90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265; + $94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $100 = HEAP16[$pnt2$368 + -2 >> 1] | 0; + if ($100 << 16 >> 16 <= 0) { + HEAP16[$pnt2$368 >> 1] = $53; + $140 = $54 * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076; + $154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0; + if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + $108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($105 | 0) > ($108 | 0)) { + HEAP16[$pnt2$368 >> 1] = $108; + if (($wk_max$160 | 0) > 0) { + $k$249 = 0; + $wk$250 = $18; + while (1) { + if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108; + $k$249 = $k$249 + 1 | 0; + if (($k$249 | 0) >= ($wk_max$160 | 0)) { + $125 = $108; + break; + } else $wk$250 = $wk$250 + 4 | 0; + } + } else $125 = $108; + } else { + HEAP16[$pnt2$368 >> 1] = $105; + if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) { + $k$346 = 0; + $wk$347 = $18; + while (1) { + if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105; + $k$346 = $k$346 + 1 | 0; + if (($k$346 | 0) >= ($wk_max$160 | 0)) { + $125 = $105; + break; + } else $wk$347 = $wk$347 + 4 | 0; + } + } else $125 = $105; + } + $127 = ($125 << 16 >> 16) * 7 | 0; + $129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0; + HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1; + $133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265; + $137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $219 = $pnt$169 + 2 | 0; + $220 = $pnt2$368 + 2 | 0; + $221 = $dpnt$167 + 1 | 0; + if (($i$265 | 0) >= ($11 | 0)) { + $dpnt$1$lcssa = $221; + $pnt$1$lcssa = $219; + $pnt2$3$lcssa = $220; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $742 = HEAP32[$db >> 2] | 0; - $743 = $733 - $742 | 0; - $744 = ($743 | 0) / 24 | 0; - $745 = $744 + 1 | 0; - if (($743 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $749 = ($735 - $742 | 0) / 24 | 0; - if ($749 >>> 0 < 1073741823) { - $751 = $749 << 1; - $$0$i$i$i133 = $751 >>> 0 < $745 >>> 0 ? $745 : $751; - } else $$0$i$i$i133 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i133, $744, $db + 12 | 0); - $754 = $__v$i$i142 + 8 | 0; - $755 = HEAP32[$754 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($755, $26); - HEAP32[$754 >> 2] = $755 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); + $dpnt$167 = $221; + $pnt$169 = $219; + $pnt2$368 = $220; + $wk_max$160 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26); - $$0 = $first + 2 | 0; - break L1; - break; } - case 97: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($27, 14376); - $758 = $db + 4 | 0; - $759 = HEAP32[$758 >> 2] | 0; - $761 = HEAP32[$db + 8 >> 2] | 0; - if ($759 >>> 0 < $761 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($759, $27); - HEAP32[$758 >> 2] = (HEAP32[$758 >> 2] | 0) + 24; - } else { - $768 = HEAP32[$db >> 2] | 0; - $769 = $759 - $768 | 0; - $770 = ($769 | 0) / 24 | 0; - $771 = $770 + 1 | 0; - if (($769 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $775 = ($761 - $768 | 0) / 24 | 0; - if ($775 >>> 0 < 1073741823) { - $777 = $775 << 1; - $$0$i$i$i138 = $777 >>> 0 < $771 >>> 0 ? $771 : $777; - } else $$0$i$i$i138 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i138, $770, $db + 12 | 0); - $780 = $__v$i$i142 + 8 | 0; - $781 = HEAP32[$780 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($781, $27); - HEAP32[$780 >> 2] = $781 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27); - $$0 = $first + 2 | 0; - break L1; - break; + } else { + $dpnt$1$lcssa = $dpnt$078; + $pnt$1$lcssa = $pnt$080; + $pnt2$3$lcssa = $pnt2$279; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$078 = $dpnt$1$lcssa + 2 | 0; + $pnt$080 = $pnt$1$lcssa + $$sum | 0; + $pnt2$279 = $pnt2$3$lcssa + 4 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $228 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$342 = 1; + $j$143 = 1; + $wk$444 = $18; + while (1) { + $230 = HEAP32[$wk$444 >> 2] | 0; + if (($230 | 0) == ($i$342 | 0)) { + $236 = $j$143; + $j$2 = $j$143 + 1 | 0; + } else { + $236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0; + $j$2 = $j$143; } - case 110: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($28, 14381); - $784 = $db + 4 | 0; - $785 = HEAP32[$784 >> 2] | 0; - $787 = HEAP32[$db + 8 >> 2] | 0; - if ($785 >>> 0 < $787 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($785, $28); - HEAP32[$784 >> 2] = (HEAP32[$784 >> 2] | 0) + 24; - } else { - $794 = HEAP32[$db >> 2] | 0; - $795 = $785 - $794 | 0; - $796 = ($795 | 0) / 24 | 0; - $797 = $796 + 1 | 0; - if (($795 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $801 = ($787 - $794 | 0) / 24 | 0; - if ($801 >>> 0 < 1073741823) { - $803 = $801 << 1; - $$0$i$i$i143 = $803 >>> 0 < $797 >>> 0 ? $797 : $803; - } else $$0$i$i$i143 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i143, $796, $db + 12 | 0); - $806 = $__v$i$i142 + 8 | 0; - $807 = HEAP32[$806 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($807, $28); - HEAP32[$806 >> 2] = $807 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28); - $$0 = $first + 2 | 0; - break L1; + HEAP32[$wk$444 >> 2] = $236; + if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { + $i$342 = $i$342 + 1 | 0; + $j$143 = $j$2; + $wk$444 = $wk$444 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - default: - { - $$0 = $first; - break L1; - } } - break; } - default: - { - $$0 = $first; - break L1; + $240 = $labelInfo + 8 | 0; + $241 = $j$1$lcssa + -1 | 0; + HEAP32[$240 >> 2] = $241; + if (!$241) $$0 = 0; else { + _memset($228 | 0, 0, $241 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$440 = 0; + do { + $248 = $i$440 << 2; + HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0; + $i$440 = $i$440 + 1 | 0; + } while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$538 = 0; + do { + $262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; + $263 = $i$538 * 7 | 0; + $266 = $labelInfo + 12 + ($262 << 2) | 0; + HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0); + $273 = $262 << 1; + $274 = $labelInfo + 655376 + ($273 << 3) | 0; + HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0); + $282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0; + HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0); + $285 = $262 << 2; + $286 = $labelInfo + 131084 + ($285 << 2) | 0; + $290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0; + if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290; + $293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311; + $i$538 = $i$538 + 1 | 0; + } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$240 >> 2] | 0) > 0) { + $i$637 = 0; + do { + $315 = $labelInfo + 12 + ($i$637 << 2) | 0; + $318 = $i$637 << 1; + $319 = $labelInfo + 655376 + ($318 << 3) | 0; + HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0); + $325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0); + $i$637 = $i$637 + 1 | 0; + } while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - } while (0); while (0); + } STACKTOP = sp; return $$0 | 0; } -function _malloc($bytes) { - $bytes = $bytes | 0; - var $$3$i = 0, $$lcssa = 0, $$lcssa211 = 0, $$lcssa215 = 0, $$lcssa216 = 0, $$lcssa217 = 0, $$lcssa219 = 0, $$lcssa222 = 0, $$lcssa224 = 0, $$lcssa226 = 0, $$lcssa228 = 0, $$lcssa230 = 0, $$lcssa232 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i23$iZ2D = 0, $$pre$phi$i26Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi58$i$iZ2D = 0, $$pre$phiZ2D = 0, $$rsize$3$i = 0, $$sum$i19$i = 0, $$sum2$i21$i = 0, $$sum3132$i$i = 0, $$sum67$i$i = 0, $100 = 0, $1000 = 0, $1002 = 0, $1005 = 0, $1010 = 0, $1016 = 0, $1019 = 0, $1020 = 0, $1027 = 0, $1039 = 0, $1044 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $106 = 0, $1060 = 0, $1062 = 0, $1063 = 0, $1070 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $117 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $127 = 0, $13 = 0, $132 = 0, $138 = 0, $14 = 0, $141 = 0, $144 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $151 = 0, $154 = 0, $156 = 0, $159 = 0, $16 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $201 = 0, $207 = 0, $214 = 0, $217 = 0, $225 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $237 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $25 = 0, $250 = 0, $255 = 0, $256 = 0, $259 = 0, $261 = 0, $264 = 0, $269 = 0, $276 = 0, $28 = 0, $285 = 0, $286 = 0, $290 = 0, $300 = 0, $303 = 0, $307 = 0, $309 = 0, $31 = 0, $310 = 0, $312 = 0, $314 = 0, $316 = 0, $318 = 0, $320 = 0, $322 = 0, $324 = 0, $334 = 0, $335 = 0, $337 = 0, $34 = 0, $346 = 0, $348 = 0, $351 = 0, $353 = 0, $356 = 0, $358 = 0, $361 = 0, $364 = 0, $365 = 0, $367 = 0, $368 = 0, $370 = 0, $371 = 0, $373 = 0, $374 = 0, $379 = 0, $38 = 0, $380 = 0, $389 = 0, $394 = 0, $398 = 0, $4 = 0, $404 = 0, $41 = 0, $411 = 0, $414 = 0, $422 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $431 = 0, $432 = 0, $438 = 0, $44 = 0, $443 = 0, $444 = 0, $447 = 0, $449 = 0, $452 = 0, $457 = 0, $46 = 0, $463 = 0, $467 = 0, $468 = 0, $47 = 0, $475 = 0, $487 = 0, $49 = 0, $492 = 0, $499 = 0, $5 = 0, $500 = 0, $501 = 0, $509 = 0, $51 = 0, $511 = 0, $512 = 0, $522 = 0, $526 = 0, $528 = 0, $529 = 0, $53 = 0, $538 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $552 = 0, $554 = 0, $555 = 0, $561 = 0, $563 = 0, $565 = 0, $57 = 0, $572 = 0, $574 = 0, $575 = 0, $576 = 0, $584 = 0, $585 = 0, $588 = 0, $59 = 0, $592 = 0, $593 = 0, $596 = 0, $598 = 0, $6 = 0, $602 = 0, $604 = 0, $608 = 0, $61 = 0, $612 = 0, $621 = 0, $622 = 0, $628 = 0, $630 = 0, $632 = 0, $635 = 0, $637 = 0, $64 = 0, $641 = 0, $642 = 0, $648 = 0, $65 = 0, $653 = 0, $655 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $67 = 0, $676 = 0, $678 = 0, $68 = 0, $683 = 0, $685 = 0, $69 = 0, $690 = 0, $692 = 0, $7 = 0, $70 = 0, $702 = 0, $706 = 0, $711 = 0, $714 = 0, $719 = 0, $720 = 0, $724 = 0, $725 = 0, $730 = 0, $736 = 0, $741 = 0, $744 = 0, $745 = 0, $748 = 0, $750 = 0, $752 = 0, $755 = 0, $766 = 0, $77 = 0, $771 = 0, $773 = 0, $776 = 0, $778 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $788 = 0, $790 = 0, $791 = 0, $793 = 0, $794 = 0, $799 = 0, $80 = 0, $800 = 0, $809 = 0, $81 = 0, $814 = 0, $818 = 0, $824 = 0, $832 = 0, $838 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $847 = 0, $848 = 0, $854 = 0, $859 = 0, $860 = 0, $863 = 0, $865 = 0, $868 = 0, $873 = 0, $879 = 0, $883 = 0, $884 = 0, $89 = 0, $891 = 0, $90 = 0, $903 = 0, $908 = 0, $91 = 0, $915 = 0, $916 = 0, $917 = 0, $92 = 0, $925 = 0, $928 = 0, $929 = 0, $93 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $944 = 0, $947 = 0, $95 = 0, $952 = 0, $954 = 0, $959 = 0, $960 = 0, $964 = 0, $970 = 0, $975 = 0, $977 = 0, $978 = 0, $979 = 0, $980 = 0, $984 = 0, $985 = 0, $99 = 0, $991 = 0, $996 = 0, $997 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0, $K12$029$i = 0, $K2$07$i$i = 0, $K8$051$i$i = 0, $R$0$i = 0, $R$0$i$i = 0, $R$0$i$i$lcssa = 0, $R$0$i$lcssa = 0, $R$0$i18 = 0, $R$0$i18$lcssa = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i20 = 0, $RP$0$i = 0, $RP$0$i$i = 0, $RP$0$i$i$lcssa = 0, $RP$0$i$lcssa = 0, $RP$0$i17 = 0, $RP$0$i17$lcssa = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i25$i = 0, $T$028$i = 0, $T$028$i$lcssa = 0, $T$050$i$i = 0, $T$050$i$i$lcssa = 0, $T$06$i$i = 0, $T$06$i$i$lcssa = 0, $br$0$ph$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0, $oldfirst$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i15 = 0, $rsize$1$i = 0, $rsize$2$i = 0, $rsize$3$lcssa$i = 0, $rsize$331$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$084$i = 0, $sp$084$i$lcssa = 0, $sp$183$i = 0, $sp$183$i$lcssa = 0, $ssize$0$$i = 0, $ssize$0$i = 0, $ssize$1$ph$i = 0, $ssize$2$i = 0, $t$0$i = 0, $t$0$i14 = 0, $t$1$i = 0, $t$2$ph$i = 0, $t$2$v$3$i = 0, $t$230$i = 0, $tbase$255$i = 0, $tsize$0$ph$i = 0, $tsize$0323944$i = 0, $tsize$1$i = 0, $tsize$254$i = 0, $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i16 = 0, $v$1$i = 0, $v$2$i = 0, $v$3$lcssa$i = 0, $v$3$ph$i = 0, $v$332$i = 0, label = 0, $964$looptemp = 0; - do if ($bytes >>> 0 < 245) { - $4 = $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8; - $5 = $4 >>> 3; - $6 = HEAP32[756] | 0; - $7 = $6 >>> $5; - if ($7 & 3) { - $12 = ($7 & 1 ^ 1) + $5 | 0; - $13 = $12 << 1; - $14 = 3064 + ($13 << 2) | 0; - $15 = 3064 + ($13 + 2 << 2) | 0; - $16 = HEAP32[$15 >> 2] | 0; - $17 = $16 + 8 | 0; - $18 = HEAP32[$17 >> 2] | 0; - do if (($14 | 0) == ($18 | 0)) HEAP32[756] = $6 & ~(1 << $12); else { - if ($18 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $25 = $18 + 12 | 0; - if ((HEAP32[$25 >> 2] | 0) == ($16 | 0)) { - HEAP32[$25 >> 2] = $14; - HEAP32[$15 >> 2] = $18; - break; - } else _abort(); - } while (0); - $28 = $12 << 3; - HEAP32[$16 + 4 >> 2] = $28 | 3; - $31 = $16 + ($28 | 4) | 0; - HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1; - $mem$0 = $17; - return $mem$0 | 0; +function _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } } - $34 = HEAP32[758] | 0; - if ($4 >>> 0 > $34 >>> 0) { - if ($7) { - $38 = 2 << $5; - $41 = $7 << $5 & ($38 | 0 - $38); - $44 = ($41 & 0 - $41) + -1 | 0; - $46 = $44 >>> 12 & 16; - $47 = $44 >>> $46; - $49 = $47 >>> 5 & 8; - $51 = $47 >>> $49; - $53 = $51 >>> 2 & 4; - $55 = $51 >>> $53; - $57 = $55 >>> 1 & 2; - $59 = $55 >>> $57; - $61 = $59 >>> 1 & 1; - $64 = ($49 | $46 | $53 | $57 | $61) + ($59 >>> $61) | 0; - $65 = $64 << 1; - $66 = 3064 + ($65 << 2) | 0; - $67 = 3064 + ($65 + 2 << 2) | 0; - $68 = HEAP32[$67 >> 2] | 0; - $69 = $68 + 8 | 0; - $70 = HEAP32[$69 >> 2] | 0; - do if (($66 | 0) == ($70 | 0)) { - HEAP32[756] = $6 & ~(1 << $64); - $89 = $34; - } else { - if ($70 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $77 = $70 + 12 | 0; - if ((HEAP32[$77 >> 2] | 0) == ($68 | 0)) { - HEAP32[$77 >> 2] = $66; - HEAP32[$67 >> 2] = $70; - $89 = HEAP32[758] | 0; - break; - } else _abort(); - } while (0); - $80 = $64 << 3; - $81 = $80 - $4 | 0; - HEAP32[$68 + 4 >> 2] = $4 | 3; - $84 = $68 + $4 | 0; - HEAP32[$68 + ($4 | 4) >> 2] = $81 | 1; - HEAP32[$68 + $80 >> 2] = $81; - if ($89) { - $90 = HEAP32[761] | 0; - $91 = $89 >>> 3; - $92 = $91 << 1; - $93 = 3064 + ($92 << 2) | 0; - $94 = HEAP32[756] | 0; - $95 = 1 << $91; - if (!($94 & $95)) { - HEAP32[756] = $94 | $95; - $$pre$phiZ2D = 3064 + ($92 + 2 << 2) | 0; - $F4$0 = $93; - } else { - $99 = 3064 + ($92 + 2 << 2) | 0; - $100 = HEAP32[$99 >> 2] | 0; - if ($100 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phiZ2D = $99; - $F4$0 = $100; - } - } - HEAP32[$$pre$phiZ2D >> 2] = $90; - HEAP32[$F4$0 + 12 >> 2] = $90; - HEAP32[$90 + 8 >> 2] = $F4$0; - HEAP32[$90 + 12 >> 2] = $93; - } - HEAP32[758] = $81; - HEAP32[761] = $84; - $mem$0 = $69; - return $mem$0 | 0; + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; } - $106 = HEAP32[757] | 0; - if (!$106) $nb$0 = $4; else { - $110 = ($106 & 0 - $106) + -1 | 0; - $112 = $110 >>> 12 & 16; - $113 = $110 >>> $112; - $115 = $113 >>> 5 & 8; - $117 = $113 >>> $115; - $119 = $117 >>> 2 & 4; - $121 = $117 >>> $119; - $123 = $121 >>> 1 & 2; - $125 = $121 >>> $123; - $127 = $125 >>> 1 & 1; - $132 = HEAP32[3328 + (($115 | $112 | $119 | $123 | $127) + ($125 >>> $127) << 2) >> 2] | 0; - $rsize$0$i = (HEAP32[$132 + 4 >> 2] & -8) - $4 | 0; - $t$0$i = $132; - $v$0$i = $132; + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + ($17 << 1) | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($26) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; while (1) { - $138 = HEAP32[$t$0$i + 16 >> 2] | 0; - if (!$138) { - $141 = HEAP32[$t$0$i + 20 >> 2] | 0; - if (!$141) { - $rsize$0$i$lcssa = $rsize$0$i; - $v$0$i$lcssa = $v$0$i; + do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($32 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $32; + $35 = ($32 << 16 >> 16) * 7 | 0; + $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; + $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264; + $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; - } else $144 = $141; - } else $144 = $138; - $147 = (HEAP32[$144 + 4 >> 2] & -8) - $4 | 0; - $148 = $147 >>> 0 < $rsize$0$i >>> 0; - $rsize$0$i = $148 ? $147 : $rsize$0$i; - $t$0$i = $144; - $v$0$i = $148 ? $144 : $v$0$i; - } - $149 = HEAP32[760] | 0; - if ($v$0$i$lcssa >>> 0 < $149 >>> 0) _abort(); - $151 = $v$0$i$lcssa + $4 | 0; - if ($v$0$i$lcssa >>> 0 >= $151 >>> 0) _abort(); - $154 = HEAP32[$v$0$i$lcssa + 24 >> 2] | 0; - $156 = HEAP32[$v$0$i$lcssa + 12 >> 2] | 0; - do if (($156 | 0) == ($v$0$i$lcssa | 0)) { - $167 = $v$0$i$lcssa + 20 | 0; - $168 = HEAP32[$167 >> 2] | 0; - if (!$168) { - $170 = $v$0$i$lcssa + 16 | 0; - $171 = HEAP32[$170 >> 2] | 0; - if (!$171) { - $R$1$i = 0; + } + $51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $57 = $55 << 16 >> 16 > 0; + if ($51 << 16 >> 16 <= 0) { + if ($57) { + HEAP16[$pnt2$367 >> 1] = $55; + $157 = $56 * 7 | 0; + $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; + $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264; + $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075; + $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; + if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $177 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($177 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $177; + $180 = ($177 << 16 >> 16) * 7 | 0; + $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; + $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264; + $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075; + $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; + if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$194 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $197 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $197; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16; + $202 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $197; + break; + } + } + if ($57) { + $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + if (($60 | 0) > ($63 | 0)) { + HEAP16[$pnt2$367 >> 1] = $63; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $80 = $63; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $80 = $63; + } else { + HEAP16[$pnt2$367 >> 1] = $60; + if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $80 = $60; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $80 = $60; + } + $82 = ($80 << 16 >> 16) * 7 | 0; + $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; + $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264; + $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; - } else { - $R$0$i = $171; - $RP$0$i = $170; - } - } else { - $R$0$i = $168; - $RP$0$i = $167; - } - while (1) { - $173 = $R$0$i + 20 | 0; - $174 = HEAP32[$173 >> 2] | 0; - if ($174) { - $R$0$i = $174; - $RP$0$i = $173; - continue; } - $176 = $R$0$i + 16 | 0; - $177 = HEAP32[$176 >> 2] | 0; - if (!$177) { - $R$0$i$lcssa = $R$0$i; - $RP$0$i$lcssa = $RP$0$i; + $98 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($98 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $51; + $138 = $52 * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075; + $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; + if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; - } else { - $R$0$i = $177; - $RP$0$i = $176; } - } - if ($RP$0$i$lcssa >>> 0 < $149 >>> 0) _abort(); else { - HEAP32[$RP$0$i$lcssa >> 2] = 0; - $R$1$i = $R$0$i$lcssa; - break; - } - } else { - $159 = HEAP32[$v$0$i$lcssa + 8 >> 2] | 0; - if ($159 >>> 0 < $149 >>> 0) _abort(); - $161 = $159 + 12 | 0; - if ((HEAP32[$161 >> 2] | 0) != ($v$0$i$lcssa | 0)) _abort(); - $164 = $156 + 8 | 0; - if ((HEAP32[$164 >> 2] | 0) == ($v$0$i$lcssa | 0)) { - HEAP32[$161 >> 2] = $156; - HEAP32[$164 >> 2] = $159; - $R$1$i = $156; - break; - } else _abort(); - } while (0); - do if ($154) { - $182 = HEAP32[$v$0$i$lcssa + 28 >> 2] | 0; - $183 = 3328 + ($182 << 2) | 0; - if (($v$0$i$lcssa | 0) == (HEAP32[$183 >> 2] | 0)) { - HEAP32[$183 >> 2] = $R$1$i; - if (!$R$1$i) { - HEAP32[757] = HEAP32[757] & ~(1 << $182); - break; + $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($103 | 0) > ($106 | 0)) { + HEAP16[$pnt2$367 >> 1] = $106; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $123 = $106; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $123 = $106; + } else { + HEAP16[$pnt2$367 >> 1] = $103; + if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $123 = $103; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $123 = $103; } + $125 = ($123 << 16 >> 16) * 7 | 0; + $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; + $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264; + $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; } else { - if ($154 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $192 = $154 + 16 | 0; - if ((HEAP32[$192 >> 2] | 0) == ($v$0$i$lcssa | 0)) HEAP32[$192 >> 2] = $R$1$i; else HEAP32[$154 + 20 >> 2] = $R$1$i; - if (!$R$1$i) break; - } - $197 = HEAP32[760] | 0; - if ($R$1$i >>> 0 < $197 >>> 0) _abort(); - HEAP32[$R$1$i + 24 >> 2] = $154; - $201 = HEAP32[$v$0$i$lcssa + 16 >> 2] | 0; - do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else { - HEAP32[$R$1$i + 16 >> 2] = $201; - HEAP32[$201 + 24 >> 2] = $R$1$i; - break; + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; } while (0); - $207 = HEAP32[$v$0$i$lcssa + 20 >> 2] | 0; - if ($207) if ($207 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1$i + 20 >> 2] = $207; - HEAP32[$207 + 24 >> 2] = $R$1$i; + $i$264 = $i$264 + 1 | 0; + $217 = $pnt$168 + 2 | 0; + $218 = $pnt2$367 + 2 | 0; + $219 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $219; + $pnt$1$lcssa = $217; + $pnt2$3$lcssa = $218; + $wk_max$1$lcssa = $wk_max$2; break; + } else { + $dpnt$166 = $219; + $pnt$168 = $217; + $pnt2$367 = $218; + $wk_max$159 = $wk_max$2; } - } while (0); - if ($rsize$0$i$lcssa >>> 0 < 16) { - $214 = $rsize$0$i$lcssa + $4 | 0; - HEAP32[$v$0$i$lcssa + 4 >> 2] = $214 | 3; - $217 = $v$0$i$lcssa + ($214 + 4) | 0; - HEAP32[$217 >> 2] = HEAP32[$217 >> 2] | 1; - } else { - HEAP32[$v$0$i$lcssa + 4 >> 2] = $4 | 3; - HEAP32[$v$0$i$lcssa + ($4 | 4) >> 2] = $rsize$0$i$lcssa | 1; - HEAP32[$v$0$i$lcssa + ($rsize$0$i$lcssa + $4) >> 2] = $rsize$0$i$lcssa; - $225 = HEAP32[758] | 0; - if ($225) { - $227 = HEAP32[761] | 0; - $228 = $225 >>> 3; - $229 = $228 << 1; - $230 = 3064 + ($229 << 2) | 0; - $231 = HEAP32[756] | 0; - $232 = 1 << $228; - if (!($231 & $232)) { - HEAP32[756] = $231 | $232; - $$pre$phi$iZ2D = 3064 + ($229 + 2 << 2) | 0; - $F1$0$i = $230; - } else { - $236 = 3064 + ($229 + 2 << 2) | 0; - $237 = HEAP32[$236 >> 2] | 0; - if ($237 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phi$iZ2D = $236; - $F1$0$i = $237; - } - } - HEAP32[$$pre$phi$iZ2D >> 2] = $227; - HEAP32[$F1$0$i + 12 >> 2] = $227; - HEAP32[$227 + 8 >> 2] = $F1$0$i; - HEAP32[$227 + 12 >> 2] = $230; - } - HEAP32[758] = $rsize$0$i$lcssa; - HEAP32[761] = $151; } - $mem$0 = $v$0$i$lcssa + 8 | 0; - return $mem$0 | 0; - } - } else $nb$0 = $4; - } else if ($bytes >>> 0 > 4294967231) $nb$0 = -1; else { - $245 = $bytes + 11 | 0; - $246 = $245 & -8; - $247 = HEAP32[757] | 0; - if (!$247) $nb$0 = $246; else { - $249 = 0 - $246 | 0; - $250 = $245 >>> 8; - if (!$250) $idx$0$i = 0; else if ($246 >>> 0 > 16777215) $idx$0$i = 31; else { - $255 = ($250 + 1048320 | 0) >>> 16 & 8; - $256 = $250 << $255; - $259 = ($256 + 520192 | 0) >>> 16 & 4; - $261 = $256 << $259; - $264 = ($261 + 245760 | 0) >>> 16 & 2; - $269 = 14 - ($259 | $255 | $264) + ($261 << $264 >>> 15) | 0; - $idx$0$i = $246 >>> ($269 + 7 | 0) & 1 | $269 << 1; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - $276 = HEAP32[3328 + ($idx$0$i << 2) >> 2] | 0; - L123 : do if (!$276) { - $rsize$2$i = $249; - $t$1$i = 0; - $v$2$i = 0; - label = 86; + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $rsize$0$i15 = $249; - $rst$0$i = 0; - $sizebits$0$i = $246 << (($idx$0$i | 0) == 31 ? 0 : 25 - ($idx$0$i >>> 1) | 0); - $t$0$i14 = $276; - $v$0$i16 = 0; - while (1) { - $285 = HEAP32[$t$0$i14 + 4 >> 2] & -8; - $286 = $285 - $246 | 0; - if ($286 >>> 0 < $rsize$0$i15 >>> 0) if (($285 | 0) == ($246 | 0)) { - $rsize$331$i = $286; - $t$230$i = $t$0$i14; - $v$332$i = $t$0$i14; - label = 90; - break L123; - } else { - $rsize$1$i = $286; - $v$1$i = $t$0$i14; - } else { - $rsize$1$i = $rsize$0$i15; - $v$1$i = $v$0$i16; - } - $290 = HEAP32[$t$0$i14 + 20 >> 2] | 0; - $t$0$i14 = HEAP32[$t$0$i14 + 16 + ($sizebits$0$i >>> 31 << 2) >> 2] | 0; - $rst$1$i = ($290 | 0) == 0 | ($290 | 0) == ($t$0$i14 | 0) ? $rst$0$i : $290; - if (!$t$0$i14) { - $rsize$2$i = $rsize$1$i; - $t$1$i = $rst$1$i; - $v$2$i = $v$1$i; - label = 86; - break; - } else { - $rsize$0$i15 = $rsize$1$i; - $rst$0$i = $rst$1$i; - $sizebits$0$i = $sizebits$0$i << 1; - $v$0$i16 = $v$1$i; - } - } - } while (0); - if ((label | 0) == 86) { - if (($t$1$i | 0) == 0 & ($v$2$i | 0) == 0) { - $300 = 2 << $idx$0$i; - $303 = $247 & ($300 | 0 - $300); - if (!$303) { - $nb$0 = $246; - break; - } - $307 = ($303 & 0 - $303) + -1 | 0; - $309 = $307 >>> 12 & 16; - $310 = $307 >>> $309; - $312 = $310 >>> 5 & 8; - $314 = $310 >>> $312; - $316 = $314 >>> 2 & 4; - $318 = $314 >>> $316; - $320 = $318 >>> 1 & 2; - $322 = $318 >>> $320; - $324 = $322 >>> 1 & 1; - $t$2$ph$i = HEAP32[3328 + (($312 | $309 | $316 | $320 | $324) + ($322 >>> $324) << 2) >> 2] | 0; - $v$3$ph$i = 0; + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $226 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $228 = HEAP32[$wk$443 >> 2] | 0; + if (($228 | 0) == ($i$341 | 0)) { + $234 = $j$142; + $j$2 = $j$142 + 1 | 0; } else { - $t$2$ph$i = $t$1$i; - $v$3$ph$i = $v$2$i; + $234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - if (!$t$2$ph$i) { - $rsize$3$lcssa$i = $rsize$2$i; - $v$3$lcssa$i = $v$3$ph$i; + HEAP32[$wk$443 >> 2] = $234; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; } else { - $rsize$331$i = $rsize$2$i; - $t$230$i = $t$2$ph$i; - $v$332$i = $v$3$ph$i; - label = 90; - } - } - if ((label | 0) == 90) while (1) { - label = 0; - $334 = (HEAP32[$t$230$i + 4 >> 2] & -8) - $246 | 0; - $335 = $334 >>> 0 < $rsize$331$i >>> 0; - $$rsize$3$i = $335 ? $334 : $rsize$331$i; - $t$2$v$3$i = $335 ? $t$230$i : $v$332$i; - $337 = HEAP32[$t$230$i + 16 >> 2] | 0; - if ($337) { - $rsize$331$i = $$rsize$3$i; - $t$230$i = $337; - $v$332$i = $t$2$v$3$i; - label = 90; - continue; - } - $t$230$i = HEAP32[$t$230$i + 20 >> 2] | 0; - if (!$t$230$i) { - $rsize$3$lcssa$i = $$rsize$3$i; - $v$3$lcssa$i = $t$2$v$3$i; + $j$1$lcssa = $j$2; break; - } else { - $rsize$331$i = $$rsize$3$i; - $v$332$i = $t$2$v$3$i; - label = 90; } } - if (!$v$3$lcssa$i) $nb$0 = $246; else if ($rsize$3$lcssa$i >>> 0 < ((HEAP32[758] | 0) - $246 | 0) >>> 0) { - $346 = HEAP32[760] | 0; - if ($v$3$lcssa$i >>> 0 < $346 >>> 0) _abort(); - $348 = $v$3$lcssa$i + $246 | 0; - if ($v$3$lcssa$i >>> 0 >= $348 >>> 0) _abort(); - $351 = HEAP32[$v$3$lcssa$i + 24 >> 2] | 0; - $353 = HEAP32[$v$3$lcssa$i + 12 >> 2] | 0; - do if (($353 | 0) == ($v$3$lcssa$i | 0)) { - $364 = $v$3$lcssa$i + 20 | 0; - $365 = HEAP32[$364 >> 2] | 0; - if (!$365) { - $367 = $v$3$lcssa$i + 16 | 0; - $368 = HEAP32[$367 >> 2] | 0; - if (!$368) { - $R$1$i20 = 0; - break; - } else { - $R$0$i18 = $368; - $RP$0$i17 = $367; - } - } else { - $R$0$i18 = $365; - $RP$0$i17 = $364; - } - while (1) { - $370 = $R$0$i18 + 20 | 0; - $371 = HEAP32[$370 >> 2] | 0; - if ($371) { - $R$0$i18 = $371; - $RP$0$i17 = $370; - continue; - } - $373 = $R$0$i18 + 16 | 0; - $374 = HEAP32[$373 >> 2] | 0; - if (!$374) { - $R$0$i18$lcssa = $R$0$i18; - $RP$0$i17$lcssa = $RP$0$i17; - break; - } else { - $R$0$i18 = $374; - $RP$0$i17 = $373; - } - } - if ($RP$0$i17$lcssa >>> 0 < $346 >>> 0) _abort(); else { - HEAP32[$RP$0$i17$lcssa >> 2] = 0; - $R$1$i20 = $R$0$i18$lcssa; - break; - } - } else { - $356 = HEAP32[$v$3$lcssa$i + 8 >> 2] | 0; - if ($356 >>> 0 < $346 >>> 0) _abort(); - $358 = $356 + 12 | 0; - if ((HEAP32[$358 >> 2] | 0) != ($v$3$lcssa$i | 0)) _abort(); - $361 = $353 + 8 | 0; - if ((HEAP32[$361 >> 2] | 0) == ($v$3$lcssa$i | 0)) { - HEAP32[$358 >> 2] = $353; - HEAP32[$361 >> 2] = $356; - $R$1$i20 = $353; - break; - } else _abort(); - } while (0); - do if ($351) { - $379 = HEAP32[$v$3$lcssa$i + 28 >> 2] | 0; - $380 = 3328 + ($379 << 2) | 0; - if (($v$3$lcssa$i | 0) == (HEAP32[$380 >> 2] | 0)) { - HEAP32[$380 >> 2] = $R$1$i20; - if (!$R$1$i20) { - HEAP32[757] = HEAP32[757] & ~(1 << $379); + } + $238 = $labelInfo + 8 | 0; + $239 = $j$1$lcssa + -1 | 0; + HEAP32[$238 >> 2] = $239; + if (!$239) $$0 = 0; else { + _memset($226 | 0, 0, $239 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $246 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $261 = $i$537 * 7 | 0; + $264 = $labelInfo + 12 + ($260 << 2) | 0; + HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0); + $271 = $260 << 1; + $272 = $labelInfo + 655376 + ($271 << 3) | 0; + HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0); + $280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0); + $283 = $260 << 2; + $284 = $labelInfo + 131084 + ($283 << 2) | 0; + $288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0; + if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288; + $291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$238 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $313 = $labelInfo + 12 + ($i$636 << 2) | 0; + $316 = $i$636 << 1; + $317 = $labelInfo + 655376 + ($316 << 3) | 0; + HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0); + $323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0; + HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + ($17 << 1) | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($26) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($32 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $32; + $35 = ($32 << 16 >> 16) * 7 | 0; + $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; + $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264; + $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; } - } else { - if ($351 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $389 = $351 + 16 | 0; - if ((HEAP32[$389 >> 2] | 0) == ($v$3$lcssa$i | 0)) HEAP32[$389 >> 2] = $R$1$i20; else HEAP32[$351 + 20 >> 2] = $R$1$i20; - if (!$R$1$i20) break; - } - $394 = HEAP32[760] | 0; - if ($R$1$i20 >>> 0 < $394 >>> 0) _abort(); - HEAP32[$R$1$i20 + 24 >> 2] = $351; - $398 = HEAP32[$v$3$lcssa$i + 16 >> 2] | 0; - do if ($398) if ($398 >>> 0 < $394 >>> 0) _abort(); else { - HEAP32[$R$1$i20 + 16 >> 2] = $398; - HEAP32[$398 + 24 >> 2] = $R$1$i20; - break; - } while (0); - $404 = HEAP32[$v$3$lcssa$i + 20 >> 2] | 0; - if ($404) if ($404 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1$i20 + 20 >> 2] = $404; - HEAP32[$404 + 24 >> 2] = $R$1$i20; - break; - } - } while (0); - L199 : do if ($rsize$3$lcssa$i >>> 0 < 16) { - $411 = $rsize$3$lcssa$i + $246 | 0; - HEAP32[$v$3$lcssa$i + 4 >> 2] = $411 | 3; - $414 = $v$3$lcssa$i + ($411 + 4) | 0; - HEAP32[$414 >> 2] = HEAP32[$414 >> 2] | 1; - } else { - HEAP32[$v$3$lcssa$i + 4 >> 2] = $246 | 3; - HEAP32[$v$3$lcssa$i + ($246 | 4) >> 2] = $rsize$3$lcssa$i | 1; - HEAP32[$v$3$lcssa$i + ($rsize$3$lcssa$i + $246) >> 2] = $rsize$3$lcssa$i; - $422 = $rsize$3$lcssa$i >>> 3; - if ($rsize$3$lcssa$i >>> 0 < 256) { - $424 = $422 << 1; - $425 = 3064 + ($424 << 2) | 0; - $426 = HEAP32[756] | 0; - $427 = 1 << $422; - if (!($426 & $427)) { - HEAP32[756] = $426 | $427; - $$pre$phi$i26Z2D = 3064 + ($424 + 2 << 2) | 0; - $F5$0$i = $425; - } else { - $431 = 3064 + ($424 + 2 << 2) | 0; - $432 = HEAP32[$431 >> 2] | 0; - if ($432 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phi$i26Z2D = $431; - $F5$0$i = $432; + $51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $57 = $55 << 16 >> 16 > 0; + if ($51 << 16 >> 16 <= 0) { + if ($57) { + HEAP16[$pnt2$367 >> 1] = $55; + $157 = $56 * 7 | 0; + $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; + $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264; + $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075; + $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; + if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - } - HEAP32[$$pre$phi$i26Z2D >> 2] = $348; - HEAP32[$F5$0$i + 12 >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $F5$0$i; - HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $425; - break; - } - $438 = $rsize$3$lcssa$i >>> 8; - if (!$438) $I7$0$i = 0; else if ($rsize$3$lcssa$i >>> 0 > 16777215) $I7$0$i = 31; else { - $443 = ($438 + 1048320 | 0) >>> 16 & 8; - $444 = $438 << $443; - $447 = ($444 + 520192 | 0) >>> 16 & 4; - $449 = $444 << $447; - $452 = ($449 + 245760 | 0) >>> 16 & 2; - $457 = 14 - ($447 | $443 | $452) + ($449 << $452 >>> 15) | 0; - $I7$0$i = $rsize$3$lcssa$i >>> ($457 + 7 | 0) & 1 | $457 << 1; - } - $463 = 3328 + ($I7$0$i << 2) | 0; - HEAP32[$v$3$lcssa$i + ($246 + 28) >> 2] = $I7$0$i; - HEAP32[$v$3$lcssa$i + ($246 + 20) >> 2] = 0; - HEAP32[$v$3$lcssa$i + ($246 + 16) >> 2] = 0; - $467 = HEAP32[757] | 0; - $468 = 1 << $I7$0$i; - if (!($467 & $468)) { - HEAP32[757] = $467 | $468; - HEAP32[$463 >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $463; - HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348; - break; - } - $475 = HEAP32[$463 >> 2] | 0; - L217 : do if ((HEAP32[$475 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) $T$0$lcssa$i = $475; else { - $K12$029$i = $rsize$3$lcssa$i << (($I7$0$i | 0) == 31 ? 0 : 25 - ($I7$0$i >>> 1) | 0); - $T$028$i = $475; - while (1) { - $492 = $T$028$i + 16 + ($K12$029$i >>> 31 << 2) | 0; - $487 = HEAP32[$492 >> 2] | 0; - if (!$487) { - $$lcssa232 = $492; - $T$028$i$lcssa = $T$028$i; + $177 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($177 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $177; + $180 = ($177 << 16 >> 16) * 7 | 0; + $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; + $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264; + $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075; + $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; + if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; + } + HEAP32[$194 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $197 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $197; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16; + $202 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $197; break; } - if ((HEAP32[$487 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) { - $T$0$lcssa$i = $487; - break L217; + } + if ($57) { + $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + if (($60 | 0) > ($63 | 0)) { + HEAP16[$pnt2$367 >> 1] = $63; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $80 = $63; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $80 = $63; } else { - $K12$029$i = $K12$029$i << 1; - $T$028$i = $487; + HEAP16[$pnt2$367 >> 1] = $60; + if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $80 = $60; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $80 = $60; } + $82 = ($80 << 16 >> 16) * 7 | 0; + $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; + $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264; + $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - if ($$lcssa232 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$$lcssa232 >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $T$028$i$lcssa; - HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348; - break L199; + $98 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($98 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $51; + $138 = $52 * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075; + $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; + if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($103 | 0) > ($106 | 0)) { + HEAP16[$pnt2$367 >> 1] = $106; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $123 = $106; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $123 = $106; + } else { + HEAP16[$pnt2$367 >> 1] = $103; + if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $123 = $103; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $123 = $103; } + $125 = ($123 << 16 >> 16) * 7 | 0; + $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; + $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264; + $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; } while (0); - $499 = $T$0$lcssa$i + 8 | 0; - $500 = HEAP32[$499 >> 2] | 0; - $501 = HEAP32[760] | 0; - if ($500 >>> 0 >= $501 >>> 0 & $T$0$lcssa$i >>> 0 >= $501 >>> 0) { - HEAP32[$500 + 12 >> 2] = $348; - HEAP32[$499 >> 2] = $348; - HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $500; - HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $T$0$lcssa$i; - HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = 0; - break; - } else _abort(); - } while (0); - $mem$0 = $v$3$lcssa$i + 8 | 0; - return $mem$0 | 0; - } else $nb$0 = $246; - } - } while (0); - $509 = HEAP32[758] | 0; - if ($509 >>> 0 >= $nb$0 >>> 0) { - $511 = $509 - $nb$0 | 0; - $512 = HEAP32[761] | 0; - if ($511 >>> 0 > 15) { - HEAP32[761] = $512 + $nb$0; - HEAP32[758] = $511; - HEAP32[$512 + ($nb$0 + 4) >> 2] = $511 | 1; - HEAP32[$512 + $509 >> 2] = $511; - HEAP32[$512 + 4 >> 2] = $nb$0 | 3; - } else { - HEAP32[758] = 0; - HEAP32[761] = 0; - HEAP32[$512 + 4 >> 2] = $509 | 3; - $522 = $512 + ($509 + 4) | 0; - HEAP32[$522 >> 2] = HEAP32[$522 >> 2] | 1; - } - $mem$0 = $512 + 8 | 0; - return $mem$0 | 0; - } - $526 = HEAP32[759] | 0; - if ($526 >>> 0 > $nb$0 >>> 0) { - $528 = $526 - $nb$0 | 0; - HEAP32[759] = $528; - $529 = HEAP32[762] | 0; - HEAP32[762] = $529 + $nb$0; - HEAP32[$529 + ($nb$0 + 4) >> 2] = $528 | 1; - HEAP32[$529 + 4 >> 2] = $nb$0 | 3; - $mem$0 = $529 + 8 | 0; - return $mem$0 | 0; - } - do if (!(HEAP32[874] | 0)) { - $538 = _sysconf(30) | 0; - if (!($538 + -1 & $538)) { - HEAP32[876] = $538; - HEAP32[875] = $538; - HEAP32[877] = -1; - HEAP32[878] = -1; - HEAP32[879] = 0; - HEAP32[867] = 0; - $544 = (_time(0) | 0) & -16 ^ 1431655768; - HEAP32[874] = $544; - break; - } else _abort(); - } while (0); - $545 = $nb$0 + 48 | 0; - $546 = HEAP32[876] | 0; - $547 = $nb$0 + 47 | 0; - $548 = $546 + $547 | 0; - $549 = 0 - $546 | 0; - $550 = $548 & $549; - if ($550 >>> 0 <= $nb$0 >>> 0) { - $mem$0 = 0; - return $mem$0 | 0; - } - $552 = HEAP32[866] | 0; - if ($552) { - $554 = HEAP32[864] | 0; - $555 = $554 + $550 | 0; - if ($555 >>> 0 <= $554 >>> 0 | $555 >>> 0 > $552 >>> 0) { - $mem$0 = 0; - return $mem$0 | 0; - } - } - L258 : do if (!(HEAP32[867] & 4)) { - $561 = HEAP32[762] | 0; - L260 : do if (!$561) label = 174; else { - $sp$0$i$i = 3472; - while (1) { - $563 = HEAP32[$sp$0$i$i >> 2] | 0; - if ($563 >>> 0 <= $561 >>> 0) { - $565 = $sp$0$i$i + 4 | 0; - if (($563 + (HEAP32[$565 >> 2] | 0) | 0) >>> 0 > $561 >>> 0) { - $$lcssa228 = $sp$0$i$i; - $$lcssa230 = $565; + $i$264 = $i$264 + 1 | 0; + $217 = $pnt$168 + 2 | 0; + $218 = $pnt2$367 + 2 | 0; + $219 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $219; + $pnt$1$lcssa = $217; + $pnt2$3$lcssa = $218; + $wk_max$1$lcssa = $wk_max$2; break; + } else { + $dpnt$166 = $219; + $pnt$168 = $217; + $pnt2$367 = $218; + $wk_max$159 = $wk_max$2; } } - $sp$0$i$i = HEAP32[$sp$0$i$i + 8 >> 2] | 0; - if (!$sp$0$i$i) { - label = 174; - break L260; - } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - $596 = $548 - (HEAP32[759] | 0) & $549; - if ($596 >>> 0 < 2147483647) { - $598 = _sbrk($596 | 0) | 0; - $602 = ($598 | 0) == ((HEAP32[$$lcssa228 >> 2] | 0) + (HEAP32[$$lcssa230 >> 2] | 0) | 0); - $$3$i = $602 ? $596 : 0; - if ($602) if (($598 | 0) == (-1 | 0)) $tsize$0323944$i = $$3$i; else { - $tbase$255$i = $598; - $tsize$254$i = $$3$i; - label = 194; - break L258; + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $226 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $228 = HEAP32[$wk$443 >> 2] | 0; + if (($228 | 0) == ($i$341 | 0)) { + $234 = $j$142; + $j$2 = $j$142 + 1 | 0; } else { - $br$0$ph$i = $598; - $ssize$1$ph$i = $596; - $tsize$0$ph$i = $$3$i; - label = 184; + $234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - } else $tsize$0323944$i = 0; - } while (0); - do if ((label | 0) == 174) { - $572 = _sbrk(0) | 0; - if (($572 | 0) == (-1 | 0)) $tsize$0323944$i = 0; else { - $574 = $572; - $575 = HEAP32[875] | 0; - $576 = $575 + -1 | 0; - if (!($576 & $574)) $ssize$0$i = $550; else $ssize$0$i = $550 - $574 + ($576 + $574 & 0 - $575) | 0; - $584 = HEAP32[864] | 0; - $585 = $584 + $ssize$0$i | 0; - if ($ssize$0$i >>> 0 > $nb$0 >>> 0 & $ssize$0$i >>> 0 < 2147483647) { - $588 = HEAP32[866] | 0; - if ($588) if ($585 >>> 0 <= $584 >>> 0 | $585 >>> 0 > $588 >>> 0) { - $tsize$0323944$i = 0; - break; - } - $592 = _sbrk($ssize$0$i | 0) | 0; - $593 = ($592 | 0) == ($572 | 0); - $ssize$0$$i = $593 ? $ssize$0$i : 0; - if ($593) { - $tbase$255$i = $572; - $tsize$254$i = $ssize$0$$i; - label = 194; - break L258; - } else { - $br$0$ph$i = $592; - $ssize$1$ph$i = $ssize$0$i; - $tsize$0$ph$i = $ssize$0$$i; - label = 184; - } - } else $tsize$0323944$i = 0; - } - } while (0); - L280 : do if ((label | 0) == 184) { - $604 = 0 - $ssize$1$ph$i | 0; - do if ($545 >>> 0 > $ssize$1$ph$i >>> 0 & ($ssize$1$ph$i >>> 0 < 2147483647 & ($br$0$ph$i | 0) != (-1 | 0))) { - $608 = HEAP32[876] | 0; - $612 = $547 - $ssize$1$ph$i + $608 & 0 - $608; - if ($612 >>> 0 < 2147483647) if ((_sbrk($612 | 0) | 0) == (-1 | 0)) { - _sbrk($604 | 0) | 0; - $tsize$0323944$i = $tsize$0$ph$i; - break L280; + HEAP32[$wk$443 >> 2] = $234; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; } else { - $ssize$2$i = $612 + $ssize$1$ph$i | 0; + $j$1$lcssa = $j$2; break; - } else $ssize$2$i = $ssize$1$ph$i; - } else $ssize$2$i = $ssize$1$ph$i; while (0); - if (($br$0$ph$i | 0) == (-1 | 0)) $tsize$0323944$i = $tsize$0$ph$i; else { - $tbase$255$i = $br$0$ph$i; - $tsize$254$i = $ssize$2$i; - label = 194; - break L258; + } } - } while (0); - HEAP32[867] = HEAP32[867] | 4; - $tsize$1$i = $tsize$0323944$i; - label = 191; - } else { - $tsize$1$i = 0; - label = 191; - } while (0); - if ((label | 0) == 191) if ($550 >>> 0 < 2147483647) { - $621 = _sbrk($550 | 0) | 0; - $622 = _sbrk(0) | 0; - if ($621 >>> 0 < $622 >>> 0 & (($621 | 0) != (-1 | 0) & ($622 | 0) != (-1 | 0))) { - $628 = $622 - $621 | 0; - $630 = $628 >>> 0 > ($nb$0 + 40 | 0) >>> 0; - if ($630) { - $tbase$255$i = $621; - $tsize$254$i = $630 ? $628 : $tsize$1$i; - label = 194; + } + $238 = $labelInfo + 8 | 0; + $239 = $j$1$lcssa + -1 | 0; + HEAP32[$238 >> 2] = $239; + if (!$239) $$0 = 0; else { + _memset($226 | 0, 0, $239 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $246 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $261 = $i$537 * 7 | 0; + $264 = $labelInfo + 12 + ($260 << 2) | 0; + HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0); + $271 = $260 << 1; + $272 = $labelInfo + 655376 + ($271 << 3) | 0; + HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0); + $280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0); + $283 = $260 << 2; + $284 = $labelInfo + 131084 + ($283 << 2) | 0; + $288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0; + if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288; + $291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); } + if ((HEAP32[$238 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $313 = $labelInfo + 12 + ($i$636 << 2) | 0; + $316 = $i$636 << 1; + $317 = $labelInfo + 655376 + ($316 << 3) | 0; + HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0); + $323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0; + HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } } - if ((label | 0) == 194) { - $632 = (HEAP32[864] | 0) + $tsize$254$i | 0; - HEAP32[864] = $632; - if ($632 >>> 0 > (HEAP32[865] | 0) >>> 0) HEAP32[865] = $632; - $635 = HEAP32[762] | 0; - L299 : do if (!$635) { - $637 = HEAP32[760] | 0; - if (($637 | 0) == 0 | $tbase$255$i >>> 0 < $637 >>> 0) HEAP32[760] = $tbase$255$i; - HEAP32[868] = $tbase$255$i; - HEAP32[869] = $tsize$254$i; - HEAP32[871] = 0; - HEAP32[765] = HEAP32[874]; - HEAP32[764] = -1; - $i$02$i$i = 0; - do { - $641 = $i$02$i$i << 1; - $642 = 3064 + ($641 << 2) | 0; - HEAP32[3064 + ($641 + 3 << 2) >> 2] = $642; - HEAP32[3064 + ($641 + 2 << 2) >> 2] = $642; - $i$02$i$i = $i$02$i$i + 1 | 0; - } while (($i$02$i$i | 0) != 32); - $648 = $tbase$255$i + 8 | 0; - $653 = ($648 & 7 | 0) == 0 ? 0 : 0 - $648 & 7; - $655 = $tsize$254$i + -40 - $653 | 0; - HEAP32[762] = $tbase$255$i + $653; - HEAP32[759] = $655; - HEAP32[$tbase$255$i + ($653 + 4) >> 2] = $655 | 1; - HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40; - HEAP32[763] = HEAP32[878]; - } else { - $sp$084$i = 3472; - do { - $660 = HEAP32[$sp$084$i >> 2] | 0; - $661 = $sp$084$i + 4 | 0; - $662 = HEAP32[$661 >> 2] | 0; - if (($tbase$255$i | 0) == ($660 + $662 | 0)) { - $$lcssa222 = $660; - $$lcssa224 = $661; - $$lcssa226 = $662; - $sp$084$i$lcssa = $sp$084$i; - label = 204; - break; - } - $sp$084$i = HEAP32[$sp$084$i + 8 >> 2] | 0; - } while (($sp$084$i | 0) != 0); - if ((label | 0) == 204) if (!(HEAP32[$sp$084$i$lcssa + 12 >> 2] & 8)) if ($635 >>> 0 < $tbase$255$i >>> 0 & $635 >>> 0 >= $$lcssa222 >>> 0) { - HEAP32[$$lcssa224 >> 2] = $$lcssa226 + $tsize$254$i; - $676 = (HEAP32[759] | 0) + $tsize$254$i | 0; - $678 = $635 + 8 | 0; - $683 = ($678 & 7 | 0) == 0 ? 0 : 0 - $678 & 7; - $685 = $676 - $683 | 0; - HEAP32[762] = $635 + $683; - HEAP32[759] = $685; - HEAP32[$635 + ($683 + 4) >> 2] = $685 | 1; - HEAP32[$635 + ($676 + 4) >> 2] = 40; - HEAP32[763] = HEAP32[878]; - break; + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; } - $690 = HEAP32[760] | 0; - if ($tbase$255$i >>> 0 < $690 >>> 0) { - HEAP32[760] = $tbase$255$i; - $755 = $tbase$255$i; - } else $755 = $690; - $692 = $tbase$255$i + $tsize$254$i | 0; - $sp$183$i = 3472; - while (1) { - if ((HEAP32[$sp$183$i >> 2] | 0) == ($692 | 0)) { - $$lcssa219 = $sp$183$i; - $sp$183$i$lcssa = $sp$183$i; - label = 212; - break; - } - $sp$183$i = HEAP32[$sp$183$i + 8 >> 2] | 0; - if (!$sp$183$i) { - $sp$0$i$i$i = 3472; - break; - } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; } - if ((label | 0) == 212) if (!(HEAP32[$sp$183$i$lcssa + 12 >> 2] & 8)) { - HEAP32[$$lcssa219 >> 2] = $tbase$255$i; - $702 = $sp$183$i$lcssa + 4 | 0; - HEAP32[$702 >> 2] = (HEAP32[$702 >> 2] | 0) + $tsize$254$i; - $706 = $tbase$255$i + 8 | 0; - $711 = ($706 & 7 | 0) == 0 ? 0 : 0 - $706 & 7; - $714 = $tbase$255$i + ($tsize$254$i + 8) | 0; - $719 = ($714 & 7 | 0) == 0 ? 0 : 0 - $714 & 7; - $720 = $tbase$255$i + ($719 + $tsize$254$i) | 0; - $$sum$i19$i = $711 + $nb$0 | 0; - $724 = $tbase$255$i + $$sum$i19$i | 0; - $725 = $720 - ($tbase$255$i + $711) - $nb$0 | 0; - HEAP32[$tbase$255$i + ($711 + 4) >> 2] = $nb$0 | 3; - L324 : do if (($720 | 0) == ($635 | 0)) { - $730 = (HEAP32[759] | 0) + $725 | 0; - HEAP32[759] = $730; - HEAP32[762] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $730 | 1; - } else { - if (($720 | 0) == (HEAP32[761] | 0)) { - $736 = (HEAP32[758] | 0) + $725 | 0; - HEAP32[758] = $736; - HEAP32[761] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $736 | 1; - HEAP32[$tbase$255$i + ($736 + $$sum$i19$i) >> 2] = $736; - break; - } - $$sum2$i21$i = $tsize$254$i + 4 | 0; - $741 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $719) >> 2] | 0; - if (($741 & 3 | 0) == 1) { - $744 = $741 & -8; - $745 = $741 >>> 3; - L332 : do if ($741 >>> 0 < 256) { - $748 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0; - $750 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0; - $752 = 3064 + ($745 << 1 << 2) | 0; - do if (($748 | 0) != ($752 | 0)) { - if ($748 >>> 0 < $755 >>> 0) _abort(); - if ((HEAP32[$748 + 12 >> 2] | 0) == ($720 | 0)) break; - _abort(); - } while (0); - if (($750 | 0) == ($748 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $745); + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + ($17 << 1) | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($26) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$367 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; } - do if (($750 | 0) == ($752 | 0)) $$pre$phi58$i$iZ2D = $750 + 8 | 0; else { - if ($750 >>> 0 < $755 >>> 0) _abort(); - $766 = $750 + 8 | 0; - if ((HEAP32[$766 >> 2] | 0) == ($720 | 0)) { - $$pre$phi58$i$iZ2D = $766; - break; - } - _abort(); - } while (0); - HEAP32[$748 + 12 >> 2] = $750; - HEAP32[$$pre$phi58$i$iZ2D >> 2] = $748; - } else { - $771 = HEAP32[$tbase$255$i + (($719 | 24) + $tsize$254$i) >> 2] | 0; - $773 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0; - do if (($773 | 0) == ($720 | 0)) { - $$sum67$i$i = $719 | 16; - $784 = $tbase$255$i + ($$sum2$i21$i + $$sum67$i$i) | 0; - $785 = HEAP32[$784 >> 2] | 0; - if (!$785) { - $787 = $tbase$255$i + ($$sum67$i$i + $tsize$254$i) | 0; - $788 = HEAP32[$787 >> 2] | 0; - if (!$788) { - $R$1$i$i = 0; - break; - } else { - $R$0$i$i = $788; - $RP$0$i$i = $787; - } - } else { - $R$0$i$i = $785; - $RP$0$i$i = $784; - } - while (1) { - $790 = $R$0$i$i + 20 | 0; - $791 = HEAP32[$790 >> 2] | 0; - if ($791) { - $R$0$i$i = $791; - $RP$0$i$i = $790; - continue; - } - $793 = $R$0$i$i + 16 | 0; - $794 = HEAP32[$793 >> 2] | 0; - if (!$794) { - $R$0$i$i$lcssa = $R$0$i$i; - $RP$0$i$i$lcssa = $RP$0$i$i; - break; - } else { - $R$0$i$i = $794; - $RP$0$i$i = $793; - } - } - if ($RP$0$i$i$lcssa >>> 0 < $755 >>> 0) _abort(); else { - HEAP32[$RP$0$i$i$lcssa >> 2] = 0; - $R$1$i$i = $R$0$i$i$lcssa; + $176 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; break; } - } else { - $776 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0; - if ($776 >>> 0 < $755 >>> 0) _abort(); - $778 = $776 + 12 | 0; - if ((HEAP32[$778 >> 2] | 0) != ($720 | 0)) _abort(); - $781 = $773 + 8 | 0; - if ((HEAP32[$781 >> 2] | 0) == ($720 | 0)) { - HEAP32[$778 >> 2] = $773; - HEAP32[$781 >> 2] = $776; - $R$1$i$i = $773; - break; - } else _abort(); - } while (0); - if (!$771) break; - $799 = HEAP32[$tbase$255$i + ($tsize$254$i + 28 + $719) >> 2] | 0; - $800 = 3328 + ($799 << 2) | 0; - do if (($720 | 0) == (HEAP32[$800 >> 2] | 0)) { - HEAP32[$800 >> 2] = $R$1$i$i; - if ($R$1$i$i) break; - HEAP32[757] = HEAP32[757] & ~(1 << $799); - break L332; - } else { - if ($771 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $809 = $771 + 16 | 0; - if ((HEAP32[$809 >> 2] | 0) == ($720 | 0)) HEAP32[$809 >> 2] = $R$1$i$i; else HEAP32[$771 + 20 >> 2] = $R$1$i$i; - if (!$R$1$i$i) break L332; - } while (0); - $814 = HEAP32[760] | 0; - if ($R$1$i$i >>> 0 < $814 >>> 0) _abort(); - HEAP32[$R$1$i$i + 24 >> 2] = $771; - $$sum3132$i$i = $719 | 16; - $818 = HEAP32[$tbase$255$i + ($$sum3132$i$i + $tsize$254$i) >> 2] | 0; - do if ($818) if ($818 >>> 0 < $814 >>> 0) _abort(); else { - HEAP32[$R$1$i$i + 16 >> 2] = $818; - HEAP32[$818 + 24 >> 2] = $R$1$i$i; - break; - } while (0); - $824 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $$sum3132$i$i) >> 2] | 0; - if (!$824) break; - if ($824 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1$i$i + 20 >> 2] = $824; - HEAP32[$824 + 24 >> 2] = $R$1$i$i; + HEAP32[$193 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; break; - } - } while (0); - $oldfirst$0$i$i = $tbase$255$i + (($744 | $719) + $tsize$254$i) | 0; - $qsize$0$i$i = $744 + $725 | 0; - } else { - $oldfirst$0$i$i = $720; - $qsize$0$i$i = $725; - } - $832 = $oldfirst$0$i$i + 4 | 0; - HEAP32[$832 >> 2] = HEAP32[$832 >> 2] & -2; - HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $qsize$0$i$i | 1; - HEAP32[$tbase$255$i + ($qsize$0$i$i + $$sum$i19$i) >> 2] = $qsize$0$i$i; - $838 = $qsize$0$i$i >>> 3; - if ($qsize$0$i$i >>> 0 < 256) { - $840 = $838 << 1; - $841 = 3064 + ($840 << 2) | 0; - $842 = HEAP32[756] | 0; - $843 = 1 << $838; - do if (!($842 & $843)) { - HEAP32[756] = $842 | $843; - $$pre$phi$i23$iZ2D = 3064 + ($840 + 2 << 2) | 0; - $F4$0$i$i = $841; - } else { - $847 = 3064 + ($840 + 2 << 2) | 0; - $848 = HEAP32[$847 >> 2] | 0; - if ($848 >>> 0 >= (HEAP32[760] | 0) >>> 0) { - $$pre$phi$i23$iZ2D = $847; - $F4$0$i$i = $848; + } else { + $196 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $196; break; } - _abort(); - } while (0); - HEAP32[$$pre$phi$i23$iZ2D >> 2] = $724; - HEAP32[$F4$0$i$i + 12 >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $F4$0$i$i; - HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $841; - break; - } - $854 = $qsize$0$i$i >>> 8; - do if (!$854) $I7$0$i$i = 0; else { - if ($qsize$0$i$i >>> 0 > 16777215) { - $I7$0$i$i = 31; - break; } - $859 = ($854 + 1048320 | 0) >>> 16 & 8; - $860 = $854 << $859; - $863 = ($860 + 520192 | 0) >>> 16 & 4; - $865 = $860 << $863; - $868 = ($865 + 245760 | 0) >>> 16 & 2; - $873 = 14 - ($863 | $859 | $868) + ($865 << $868 >>> 15) | 0; - $I7$0$i$i = $qsize$0$i$i >>> ($873 + 7 | 0) & 1 | $873 << 1; - } while (0); - $879 = 3328 + ($I7$0$i$i << 2) | 0; - HEAP32[$tbase$255$i + ($$sum$i19$i + 28) >> 2] = $I7$0$i$i; - HEAP32[$tbase$255$i + ($$sum$i19$i + 20) >> 2] = 0; - HEAP32[$tbase$255$i + ($$sum$i19$i + 16) >> 2] = 0; - $883 = HEAP32[757] | 0; - $884 = 1 << $I7$0$i$i; - if (!($883 & $884)) { - HEAP32[757] = $883 | $884; - HEAP32[$879 >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $879; - HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724; - break; - } - $891 = HEAP32[$879 >> 2] | 0; - L418 : do if ((HEAP32[$891 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) $T$0$lcssa$i25$i = $891; else { - $K8$051$i$i = $qsize$0$i$i << (($I7$0$i$i | 0) == 31 ? 0 : 25 - ($I7$0$i$i >>> 1) | 0); - $T$050$i$i = $891; - while (1) { - $908 = $T$050$i$i + 16 + ($K8$051$i$i >>> 31 << 2) | 0; - $903 = HEAP32[$908 >> 2] | 0; - if (!$903) { - $$lcssa = $908; - $T$050$i$i$lcssa = $T$050$i$i; - break; - } - if ((HEAP32[$903 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) { - $T$0$lcssa$i25$i = $903; - break L418; + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$367 >> 1] = $62; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $79 = $62; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $79 = $62; } else { - $K8$051$i$i = $K8$051$i$i << 1; - $T$050$i$i = $903; + HEAP16[$pnt2$367 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $79 = $59; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $79 = $59; } + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$$lcssa >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $T$050$i$i$lcssa; - HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724; - break L324; + $97 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$367 >> 1] = $105; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $122 = $105; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $122 = $105; + } else { + HEAP16[$pnt2$367 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $122 = $102; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $122 = $102; } + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; } while (0); - $915 = $T$0$lcssa$i25$i + 8 | 0; - $916 = HEAP32[$915 >> 2] | 0; - $917 = HEAP32[760] | 0; - if ($916 >>> 0 >= $917 >>> 0 & $T$0$lcssa$i25$i >>> 0 >= $917 >>> 0) { - HEAP32[$916 + 12 >> 2] = $724; - HEAP32[$915 >> 2] = $724; - HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $916; - HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $T$0$lcssa$i25$i; - HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = 0; - break; - } else _abort(); - } while (0); - $mem$0 = $tbase$255$i + ($711 | 8) | 0; - return $mem$0 | 0; - } else $sp$0$i$i$i = 3472; - while (1) { - $925 = HEAP32[$sp$0$i$i$i >> 2] | 0; - if ($925 >>> 0 <= $635 >>> 0) { - $928 = HEAP32[$sp$0$i$i$i + 4 >> 2] | 0; - $929 = $925 + $928 | 0; - if ($929 >>> 0 > $635 >>> 0) { - $$lcssa215 = $925; - $$lcssa216 = $928; - $$lcssa217 = $929; + $i$264 = $i$264 + 1 | 0; + $216 = $pnt$168 + 2 | 0; + $217 = $pnt2$367 + 2 | 0; + $218 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $218; + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $217; + $wk_max$1$lcssa = $wk_max$2; break; + } else { + $dpnt$166 = $218; + $pnt$168 = $216; + $pnt2$367 = $217; + $wk_max$159 = $wk_max$2; } } - $sp$0$i$i$i = HEAP32[$sp$0$i$i$i + 8 >> 2] | 0; + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; } - $934 = $$lcssa215 + ($$lcssa216 + -39) | 0; - $940 = $$lcssa215 + ($$lcssa216 + -47 + (($934 & 7 | 0) == 0 ? 0 : 0 - $934 & 7)) | 0; - $941 = $635 + 16 | 0; - $943 = $940 >>> 0 < $941 >>> 0 ? $635 : $940; - $944 = $943 + 8 | 0; - $947 = $tbase$255$i + 8 | 0; - $952 = ($947 & 7 | 0) == 0 ? 0 : 0 - $947 & 7; - $954 = $tsize$254$i + -40 - $952 | 0; - HEAP32[762] = $tbase$255$i + $952; - HEAP32[759] = $954; - HEAP32[$tbase$255$i + ($952 + 4) >> 2] = $954 | 1; - HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40; - HEAP32[763] = HEAP32[878]; - $959 = $943 + 4 | 0; - HEAP32[$959 >> 2] = 27; - HEAP32[$944 >> 2] = HEAP32[868]; - HEAP32[$944 + 4 >> 2] = HEAP32[869]; - HEAP32[$944 + 8 >> 2] = HEAP32[870]; - HEAP32[$944 + 12 >> 2] = HEAP32[871]; - HEAP32[868] = $tbase$255$i; - HEAP32[869] = $tsize$254$i; - HEAP32[871] = 0; - HEAP32[870] = $944; - $960 = $943 + 28 | 0; - HEAP32[$960 >> 2] = 7; - if (($943 + 32 | 0) >>> 0 < $$lcssa217 >>> 0) { - $964 = $960; - do { - $964$looptemp = $964; - $964 = $964 + 4 | 0; - HEAP32[$964 >> 2] = 7; - } while (($964$looptemp + 8 | 0) >>> 0 < $$lcssa217 >>> 0); + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; } - if (($943 | 0) != ($635 | 0)) { - $970 = $943 - $635 | 0; - HEAP32[$959 >> 2] = HEAP32[$959 >> 2] & -2; - HEAP32[$635 + 4 >> 2] = $970 | 1; - HEAP32[$943 >> 2] = $970; - $975 = $970 >>> 3; - if ($970 >>> 0 < 256) { - $977 = $975 << 1; - $978 = 3064 + ($977 << 2) | 0; - $979 = HEAP32[756] | 0; - $980 = 1 << $975; - if (!($979 & $980)) { - HEAP32[756] = $979 | $980; - $$pre$phi$i$iZ2D = 3064 + ($977 + 2 << 2) | 0; - $F$0$i$i = $978; - } else { - $984 = 3064 + ($977 + 2 << 2) | 0; - $985 = HEAP32[$984 >> 2] | 0; - if ($985 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phi$i$iZ2D = $984; - $F$0$i$i = $985; - } - } - HEAP32[$$pre$phi$i$iZ2D >> 2] = $635; - HEAP32[$F$0$i$i + 12 >> 2] = $635; - HEAP32[$635 + 8 >> 2] = $F$0$i$i; - HEAP32[$635 + 12 >> 2] = $978; - break; - } - $991 = $970 >>> 8; - if (!$991) $I1$0$i$i = 0; else if ($970 >>> 0 > 16777215) $I1$0$i$i = 31; else { - $996 = ($991 + 1048320 | 0) >>> 16 & 8; - $997 = $991 << $996; - $1000 = ($997 + 520192 | 0) >>> 16 & 4; - $1002 = $997 << $1000; - $1005 = ($1002 + 245760 | 0) >>> 16 & 2; - $1010 = 14 - ($1000 | $996 | $1005) + ($1002 << $1005 >>> 15) | 0; - $I1$0$i$i = $970 >>> ($1010 + 7 | 0) & 1 | $1010 << 1; + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $225 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $227 = HEAP32[$wk$443 >> 2] | 0; + if (($227 | 0) == ($i$341 | 0)) { + $233 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; } - $1016 = 3328 + ($I1$0$i$i << 2) | 0; - HEAP32[$635 + 28 >> 2] = $I1$0$i$i; - HEAP32[$635 + 20 >> 2] = 0; - HEAP32[$941 >> 2] = 0; - $1019 = HEAP32[757] | 0; - $1020 = 1 << $I1$0$i$i; - if (!($1019 & $1020)) { - HEAP32[757] = $1019 | $1020; - HEAP32[$1016 >> 2] = $635; - HEAP32[$635 + 24 >> 2] = $1016; - HEAP32[$635 + 12 >> 2] = $635; - HEAP32[$635 + 8 >> 2] = $635; + HEAP32[$wk$443 >> 2] = $233; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } - $1027 = HEAP32[$1016 >> 2] | 0; - L459 : do if ((HEAP32[$1027 + 4 >> 2] & -8 | 0) == ($970 | 0)) $T$0$lcssa$i$i = $1027; else { - $K2$07$i$i = $970 << (($I1$0$i$i | 0) == 31 ? 0 : 25 - ($I1$0$i$i >>> 1) | 0); - $T$06$i$i = $1027; - while (1) { - $1044 = $T$06$i$i + 16 + ($K2$07$i$i >>> 31 << 2) | 0; - $1039 = HEAP32[$1044 >> 2] | 0; - if (!$1039) { - $$lcssa211 = $1044; - $T$06$i$i$lcssa = $T$06$i$i; - break; - } - if ((HEAP32[$1039 + 4 >> 2] & -8 | 0) == ($970 | 0)) { - $T$0$lcssa$i$i = $1039; - break L459; - } else { - $K2$07$i$i = $K2$07$i$i << 1; - $T$06$i$i = $1039; - } - } - if ($$lcssa211 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$$lcssa211 >> 2] = $635; - HEAP32[$635 + 24 >> 2] = $T$06$i$i$lcssa; - HEAP32[$635 + 12 >> 2] = $635; - HEAP32[$635 + 8 >> 2] = $635; - break L299; - } - } while (0); - $1051 = $T$0$lcssa$i$i + 8 | 0; - $1052 = HEAP32[$1051 >> 2] | 0; - $1053 = HEAP32[760] | 0; - if ($1052 >>> 0 >= $1053 >>> 0 & $T$0$lcssa$i$i >>> 0 >= $1053 >>> 0) { - HEAP32[$1052 + 12 >> 2] = $635; - HEAP32[$1051 >> 2] = $635; - HEAP32[$635 + 8 >> 2] = $1052; - HEAP32[$635 + 12 >> 2] = $T$0$lcssa$i$i; - HEAP32[$635 + 24 >> 2] = 0; - break; - } else _abort(); } - } while (0); - $1060 = HEAP32[759] | 0; - if ($1060 >>> 0 > $nb$0 >>> 0) { - $1062 = $1060 - $nb$0 | 0; - HEAP32[759] = $1062; - $1063 = HEAP32[762] | 0; - HEAP32[762] = $1063 + $nb$0; - HEAP32[$1063 + ($nb$0 + 4) >> 2] = $1062 | 1; - HEAP32[$1063 + 4 >> 2] = $nb$0 | 3; - $mem$0 = $1063 + 8 | 0; - return $mem$0 | 0; + } + $237 = $labelInfo + 8 | 0; + $238 = $j$1$lcssa + -1 | 0; + HEAP32[$237 >> 2] = $238; + if (!$238) $$0 = 0; else { + _memset($225 | 0, 0, $238 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $245 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $260 = $i$537 * 7 | 0; + $263 = $labelInfo + 12 + ($259 << 2) | 0; + HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); + $270 = $259 << 1; + $271 = $labelInfo + 655376 + ($270 << 3) | 0; + HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); + $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); + $282 = $259 << 2; + $283 = $labelInfo + 131084 + ($282 << 2) | 0; + $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; + if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; + $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; + $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; + if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; + $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$237 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $312 = $labelInfo + 12 + ($i$636 << 2) | 0; + $315 = $i$636 << 1; + $316 = $labelInfo + 655376 + ($315 << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); + $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } } - $1070 = ___errno_location() | 0; - HEAP32[$1070 >> 2] = 12; - $mem$0 = 0; - return $mem$0 | 0; + STACKTOP = sp; + return $$0 | 0; } -function ___floatscan($f, $prec, $pok) { - $f = $f | 0; - $prec = $prec | 0; - $pok = $pok | 0; - var $$0 = 0.0, $$0$i27 = 0.0, $$010$i = 0, $$07$i = 0, $$0710$i = 0, $$0711$i = 0, $$09$i = 0, $$1$be$i = 0, $$1$ph$i = 0, $$18$i = 0, $$2$i = 0, $$3$be$i = 0, $$3$lcssa$i = 0, $$3105$i = 0, $$in = 0, $$lcssa = 0, $$lcssa256 = 0, $$lcssa256$lcssa = 0, $$lcssa257 = 0, $$lcssa257$lcssa = 0, $$lcssa263 = 0, $$lcssa264 = 0, $$lcssa265 = 0, $$lcssa275 = 0, $$not$i = 0, $$pre$i = 0, $$pre$i17 = 0, $$pre$phi42$iZ2D = 0.0, $$sink$off0$i = 0, $0 = 0, $1 = 0, $103 = 0, $113 = 0, $115 = 0, $123 = 0, $125 = 0, $132 = 0, $139 = 0, $147 = 0, $15 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $183 = 0.0, $190 = 0, $192 = 0, $2 = 0, $201 = 0, $205 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $223 = 0, $224 = 0, $225 = 0, $235 = 0, $236 = 0, $249 = 0, $251 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $266 = 0, $270 = 0, $272 = 0, $279 = 0, $283 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $295 = 0, $297 = 0, $298 = 0, $299 = 0, $300 = 0, $310 = 0.0, $322 = 0.0, $324 = 0, $330 = 0, $331 = 0, $338 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $350 = 0, $358 = 0, $36 = 0, $360 = 0, $362 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $371 = 0, $376 = 0, $377 = 0, $381 = 0, $39 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $402 = 0, $403 = 0, $412 = 0, $413 = 0, $414 = 0, $42 = 0, $421 = 0, $422 = 0, $427 = 0, $428 = 0, $430 = 0, $431 = 0, $444 = 0, $446 = 0, $452 = 0, $456 = 0, $458 = 0, $464 = 0, $470 = 0, $471 = 0, $472 = 0, $494 = 0, $506 = 0, $510 = 0, $513 = 0, $515 = 0, $516 = 0, $517 = 0, $520 = 0, $521 = 0, $533 = 0, $534 = 0, $535 = 0, $539 = 0, $541 = 0, $543 = 0, $544 = 0, $550 = 0, $552 = 0, $557 = 0, $560 = 0, $564 = 0, $567 = 0, $572 = 0, $576 = 0, $577 = 0, $579 = 0, $583 = 0, $585 = 0, $588 = 0, $589 = 0, $590 = 0, $591 = 0, $594 = 0, $595 = 0, $60 = 0, $604 = 0, $609 = 0, $610 = 0, $617 = 0, $619 = 0.0, $621 = 0, $625 = 0.0, $626 = 0.0, $629 = 0.0, $633 = 0, $636 = 0, $643 = 0.0, $661 = 0.0, $663 = 0, $669 = 0, $67 = 0, $670 = 0, $677 = 0, $680 = 0, $69 = 0, $691 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $77 = 0, $82 = 0, $9 = 0, $90 = 0, $99 = 0, $a$0$lcssa151$i = 0, $a$085$i = 0, $a$1$i = 0, $a$1$i$lcssa = 0, $a$2$ph38$i = 0, $a$3$i = 0, $a$3$i$lcssa248 = 0, $a$3$i249 = 0, $a$3$ph$i = 0, $a$3$ph157$i = 0, $a$478$i = 0, $a$5$i = 0, $a$5$i$lcssa = 0, $a$5$i$lcssa$lcssa = 0, $bias$0$i = 0.0, $bias$0$i25 = 0.0, $bits$0$ph = 0, $c$0 = 0, $c$0$i = 0, $c$1$lcssa = 0, $c$1$ph$i = 0, $c$179 = 0, $c$2 = 0, $c$2$i = 0, $c$2$lcssa$i = 0, $c$377 = 0, $c$4 = 0, $c$5 = 0, $c$6 = 0, $carry$087$i = 0, $carry1$0$i = 0, $carry1$1$i = 0, $carry1$1$i$lcssa = 0, $carry1$1$i$lcssa$lcssa = 0, $carry3$081$i = 0, $d$0$i = 0, $denormal$0$i = 0, $denormal$2$i = 0, $e2$0$i19 = 0, $e2$0$ph$i = 0, $e2$1$i = 0, $e2$1$i246 = 0, $e2$1$ph$i = 0, $e2$1$ph156$i = 0, $e2$2$i = 0, $e2$3$i = 0, $emin$0$ph = 0, $frac$0$i = 0.0, $frac$1$i = 0.0, $frac$2$i = 0.0, $gotdig$0$i = 0, $gotdig$0$i$lcssa242 = 0, $gotdig$0$i12 = 0, $gotdig$0$i12$lcssa273 = 0, $gotdig$2$i = 0, $gotdig$2$i$lcssa = 0, $gotdig$2$i13 = 0, $gotdig$3$i = 0, $gotdig$3$lcssa$i = 0, $gotdig$3101$i = 0, $gotdig$3101$i$lcssa = 0, $gotdig$4$i = 0, $gotrad$0$i = 0, $gotrad$0$i$lcssa = 0, $gotrad$0$i14 = 0, $gotrad$1$i = 0, $gotrad$1$lcssa$i = 0, $gotrad$1102$i = 0, $gotrad$2$i = 0, $gottail$0$i = 0, $gottail$1$i = 0, $gottail$2$i = 0, $i$0$lcssa = 0, $i$078 = 0, $i$1 = 0, $i$276 = 0, $i$3 = 0, $i$4 = 0, $i$4$lcssa = 0, $j$0$lcssa$i = 0, $j$0104$i = 0, $j$0104$i$lcssa = 0, $j$067$i = 0, $j$068$i = 0, $j$069$i = 0, $j$2$i = 0, $j$394$i = 0, $k$0$lcssa$i = 0, $k$0103$i = 0, $k$0103$i$lcssa = 0, $k$063$i = 0, $k$064$i = 0, $k$065$i = 0, $k$2$i = 0, $k$3$i = 0, $k$486$i = 0, $k$5$i = 0, $k$5$in$i = 0, $k$679$i = 0, $lnz$0$lcssa$i = 0, $lnz$0100$i = 0, $lnz$0100$i$lcssa = 0, $lnz$057$i = 0, $lnz$058$i = 0, $lnz$059$i = 0, $lnz$2$i = 0, $or$cond16$i = 0, $or$cond19$i = 0, $or$cond9$i = 0, $rp$0$lcssa152$i = 0, $rp$084$i = 0, $rp$1$i18 = 0, $rp$1$i18$lcssa = 0, $rp$2$ph36$i = 0, $rp$3$ph$i = 0, $rp$3$ph34$i = 0, $rp$477$i = 0, $rp$5$i = 0, $rp$5$i$lcssa = 0, $rp$5$i$lcssa$lcssa = 0, $scale$0$i = 0.0, $scale$1$i = 0.0, $scale$2$i = 0.0, $sign$0 = 0, $storemerge$i = 0, $sum$i = 0, $x$0$i = 0, $x$0$i$lcssa = 0, $x$1$i = 0, $x$2$i = 0, $x$3$lcssa$i = 0, $x$324$i = 0, $x$4$lcssa$i = 0, $x$419$i = 0, $x$5$i = 0, $x$i = 0, $y$0$i = 0.0, $y$0$i$lcssa = 0.0, $y$1$i = 0.0, $y$1$i24 = 0.0, $y$2$i = 0.0, $y$2$i26 = 0.0, $y$3$i = 0.0, $y$3$lcssa$i = 0.0, $y$320$i = 0.0, $y$4$i = 0.0, $z$0$i = 0, $z$1$i = 0, $z$1$ph37$i = 0, $z$2$i = 0, $z$3$i = 0, $z$3$i$lcssa = 0, $z$3$i$lcssa$lcssa = 0, $z$4$i = 0, $z$5$ph$i = 0, $z$7$1$i = 0, $z$7$i = 0, label = 0, sp = 0; +function _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 512 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $x$i = sp; - switch ($prec | 0) { - case 0: - { - $bits$0$ph = 24; - $emin$0$ph = -149; - label = 4; - break; - } - case 1: - { - $bits$0$ph = 53; - $emin$0$ph = -1074; - label = 4; - break; - } - case 2: - { - $bits$0$ph = 53; - $emin$0$ph = -1074; - label = 4; - break; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } } - default: - $$0 = 0.0; } - L4 : do if ((label | 0) == 4) { - $0 = $f + 4 | 0; - $1 = $f + 100 | 0; - do { - $2 = HEAP32[$0 >> 2] | 0; - if ($2 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $2 + 1; - $9 = HEAPU8[$2 >> 0] | 0; - } else $9 = ___shgetc($f) | 0; - } while ((_isspace($9) | 0) != 0); - $$lcssa275 = $9; - L13 : do switch ($$lcssa275 | 0) { - case 43: - case 45: - { - $15 = 1 - ((($$lcssa275 | 0) == 45 & 1) << 1) | 0; - $16 = HEAP32[$0 >> 2] | 0; - if ($16 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $16 + 1; - $c$0 = HEAPU8[$16 >> 0] | 0; - $sign$0 = $15; - break L13; - } else { - $c$0 = ___shgetc($f) | 0; - $sign$0 = $15; - break L13; - } - break; - } - default: - { - $c$0 = $$lcssa275; - $sign$0 = 1; - } - } while (0); - $c$179 = $c$0; - $i$078 = 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; while (1) { - if (($c$179 | 32 | 0) != (HEAP8[16484 + $i$078 >> 0] | 0)) { - $c$1$lcssa = $c$179; - $i$0$lcssa = $i$078; - break; - } - do if ($i$078 >>> 0 < 7) { - $29 = HEAP32[$0 >> 2] | 0; - if ($29 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $29 + 1; - $c$2 = HEAPU8[$29 >> 0] | 0; - break; - } else { - $c$2 = ___shgetc($f) | 0; - break; - } - } else $c$2 = $c$179; while (0); - $36 = $i$078 + 1 | 0; - if ($36 >>> 0 < 8) { - $c$179 = $c$2; - $i$078 = $36; - } else { - $c$1$lcssa = $c$2; - $i$0$lcssa = $36; - break; + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; } } - L29 : do switch ($i$0$lcssa | 0) { - case 8: - break; - case 3: - { - label = 23; - break; - } - default: - { - $39 = ($pok | 0) != 0; - if ($39 & $i$0$lcssa >>> 0 > 3) if (($i$0$lcssa | 0) == 8) break L29; else { - label = 23; - break L29; - } - L34 : do if (!$i$0$lcssa) { - $c$377 = $c$1$lcssa; - $i$276 = 0; - while (1) { - if (($c$377 | 32 | 0) != (HEAP8[18327 + $i$276 >> 0] | 0)) { - $c$5 = $c$377; - $i$3 = $i$276; - break L34; - } - do if ($i$276 >>> 0 < 2) { - $60 = HEAP32[$0 >> 2] | 0; - if ($60 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $60 + 1; - $c$4 = HEAPU8[$60 >> 0] | 0; - break; - } else { - $c$4 = ___shgetc($f) | 0; - break; - } - } else $c$4 = $c$377; while (0); - $67 = $i$276 + 1 | 0; - if ($67 >>> 0 < 3) { - $c$377 = $c$4; - $i$276 = $67; - } else { - $c$5 = $c$4; - $i$3 = $67; + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $26 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + ($17 << 1) | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($26) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; break; } - } - } else { - $c$5 = $c$1$lcssa; - $i$3 = $i$0$lcssa; - } while (0); - switch ($i$3 | 0) { - case 3: - { - $69 = HEAP32[$0 >> 2] | 0; - if ($69 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $69 + 1; - $77 = HEAPU8[$69 >> 0] | 0; - } else $77 = ___shgetc($f) | 0; - if (($77 | 0) == 40) $i$4 = 1; else { - if (!(HEAP32[$1 >> 2] | 0)) { - $$0 = nan; - break L4; - } - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $$0 = nan; - break L4; - } - while (1) { - $82 = HEAP32[$0 >> 2] | 0; - if ($82 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $82 + 1; - $90 = HEAPU8[$82 >> 0] | 0; - } else $90 = ___shgetc($f) | 0; - if (!(($90 + -48 | 0) >>> 0 < 10 | ($90 + -65 | 0) >>> 0 < 26)) if (!(($90 | 0) == 95 | ($90 + -97 | 0) >>> 0 < 26)) { - $$lcssa = $90; - $i$4$lcssa = $i$4; - break; - } - $i$4 = $i$4 + 1 | 0; - } - if (($$lcssa | 0) == 41) { - $$0 = nan; - break L4; - } - $99 = (HEAP32[$1 >> 2] | 0) == 0; - if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - if (!$39) { - $103 = ___errno_location() | 0; - HEAP32[$103 >> 2] = 22; - ___shlim($f, 0); - $$0 = 0.0; - break L4; - } - if (!$i$4$lcssa) { - $$0 = nan; - break L4; - } else $$in = $i$4$lcssa; - while (1) { - $$in = $$in + -1 | 0; - if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - if (!$$in) { - $$0 = nan; - break L4; - } - } - break; - } - case 0: - { - do if (($c$5 | 0) == 48) { - $115 = HEAP32[$0 >> 2] | 0; - if ($115 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $115 + 1; - $123 = HEAPU8[$115 >> 0] | 0; - } else $123 = ___shgetc($f) | 0; - if (($123 | 32 | 0) != 120) { - if (!(HEAP32[$1 >> 2] | 0)) { - $c$6 = 48; + $50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$367 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $176 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; break; } - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $c$6 = 48; + HEAP32[$193 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; break; - } - $125 = HEAP32[$0 >> 2] | 0; - if ($125 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $125 + 1; - $c$0$i = HEAPU8[$125 >> 0] | 0; - $gotdig$0$i = 0; } else { - $c$0$i = ___shgetc($f) | 0; - $gotdig$0$i = 0; + $196 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $196; + break; } - L94 : while (1) { - switch ($c$0$i | 0) { - case 46: - { - $gotdig$0$i$lcssa242 = $gotdig$0$i; - label = 74; - break L94; - break; - } - case 48: - break; - default: - { - $169 = 0; - $171 = 0; - $694 = 0; - $695 = 0; - $c$2$i = $c$0$i; - $gotdig$2$i = $gotdig$0$i; - $gotrad$0$i = 0; - $gottail$0$i = 0; - $scale$0$i = 1.0; - $x$0$i = 0; - $y$0$i = 0.0; - break L94; + } + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$367 >> 1] = $62; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $79 = $62; + break; + } else $wk$056 = $wk$056 + 4 | 0; } - } - $132 = HEAP32[$0 >> 2] | 0; - if ($132 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $132 + 1; - $c$0$i = HEAPU8[$132 >> 0] | 0; - $gotdig$0$i = 1; - continue; - } else { - $c$0$i = ___shgetc($f) | 0; - $gotdig$0$i = 1; - continue; - } - } - if ((label | 0) == 74) { - $139 = HEAP32[$0 >> 2] | 0; - if ($139 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $139 + 1; - $c$1$ph$i = HEAPU8[$139 >> 0] | 0; - } else $c$1$ph$i = ___shgetc($f) | 0; - if (($c$1$ph$i | 0) == 48) { - $154 = 0; - $155 = 0; + } else $79 = $62; + } else { + HEAP16[$pnt2$367 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; while (1) { - $147 = HEAP32[$0 >> 2] | 0; - if ($147 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $147 + 1; - $159 = HEAPU8[$147 >> 0] | 0; - } else $159 = ___shgetc($f) | 0; - $156 = _i64Add($154 | 0, $155 | 0, -1, -1) | 0; - $157 = tempRet0; - if (($159 | 0) == 48) { - $154 = $156; - $155 = $157; - } else { - $169 = 0; - $171 = 0; - $694 = $156; - $695 = $157; - $c$2$i = $159; - $gotdig$2$i = 1; - $gotrad$0$i = 1; - $gottail$0$i = 0; - $scale$0$i = 1.0; - $x$0$i = 0; - $y$0$i = 0.0; + if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $79 = $59; break; - } + } else $wk$153 = $wk$153 + 4 | 0; } - } else { - $169 = 0; - $171 = 0; - $694 = 0; - $695 = 0; - $c$2$i = $c$1$ph$i; - $gotdig$2$i = $gotdig$0$i$lcssa242; - $gotrad$0$i = 1; - $gottail$0$i = 0; - $scale$0$i = 1.0; - $x$0$i = 0; - $y$0$i = 0.0; - } + } else $79 = $59; } - while (1) { - $160 = $c$2$i + -48 | 0; - $$pre$i = $c$2$i | 32; - if ($160 >>> 0 < 10) label = 86; else { - $164 = ($c$2$i | 0) == 46; - if (!($164 | ($$pre$i + -97 | 0) >>> 0 < 6)) { - $213 = $171; - $214 = $694; - $216 = $169; - $217 = $695; - $c$2$lcssa$i = $c$2$i; - $gotdig$2$i$lcssa = $gotdig$2$i; - $gotrad$0$i$lcssa = $gotrad$0$i; - $x$0$i$lcssa = $x$0$i; - $y$0$i$lcssa = $y$0$i; - break; - } - if ($164) if (!$gotrad$0$i) { - $696 = $171; - $697 = $169; - $698 = $171; - $699 = $169; - $gotdig$3$i = $gotdig$2$i; - $gotrad$1$i = 1; - $gottail$2$i = $gottail$0$i; - $scale$2$i = $scale$0$i; - $x$2$i = $x$0$i; - $y$2$i = $y$0$i; - } else { - $213 = $171; - $214 = $694; - $216 = $169; - $217 = $695; - $c$2$lcssa$i = 46; - $gotdig$2$i$lcssa = $gotdig$2$i; - $gotrad$0$i$lcssa = $gotrad$0$i; - $x$0$i$lcssa = $x$0$i; - $y$0$i$lcssa = $y$0$i; + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $97 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$367 >> 1] = $105; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $122 = $105; break; - } else label = 86; - } - if ((label | 0) == 86) { - label = 0; - $d$0$i = ($c$2$i | 0) > 57 ? $$pre$i + -87 | 0 : $160; - do if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 8) { - $gottail$1$i = $gottail$0$i; - $scale$1$i = $scale$0$i; - $x$1$i = $d$0$i + ($x$0$i << 4) | 0; - $y$1$i = $y$0$i; - } else { - if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 14) { - $183 = $scale$0$i * .0625; - $gottail$1$i = $gottail$0$i; - $scale$1$i = $183; - $x$1$i = $x$0$i; - $y$1$i = $y$0$i + $183 * +($d$0$i | 0); - break; - } - if (($gottail$0$i | 0) != 0 | ($d$0$i | 0) == 0) { - $gottail$1$i = $gottail$0$i; - $scale$1$i = $scale$0$i; - $x$1$i = $x$0$i; - $y$1$i = $y$0$i; - } else { - $gottail$1$i = 1; - $scale$1$i = $scale$0$i; - $x$1$i = $x$0$i; - $y$1$i = $y$0$i + $scale$0$i * .5; - } - } while (0); - $190 = _i64Add($171 | 0, $169 | 0, 1, 0) | 0; - $696 = $694; - $697 = $695; - $698 = $190; - $699 = tempRet0; - $gotdig$3$i = 1; - $gotrad$1$i = $gotrad$0$i; - $gottail$2$i = $gottail$1$i; - $scale$2$i = $scale$1$i; - $x$2$i = $x$1$i; - $y$2$i = $y$1$i; + } else $wk$249 = $wk$249 + 4 | 0; } - $192 = HEAP32[$0 >> 2] | 0; - if ($192 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $192 + 1; - $169 = $699; - $171 = $698; - $694 = $696; - $695 = $697; - $c$2$i = HEAPU8[$192 >> 0] | 0; - $gotdig$2$i = $gotdig$3$i; - $gotrad$0$i = $gotrad$1$i; - $gottail$0$i = $gottail$2$i; - $scale$0$i = $scale$2$i; - $x$0$i = $x$2$i; - $y$0$i = $y$2$i; - continue; - } else { - $169 = $699; - $171 = $698; - $694 = $696; - $695 = $697; - $c$2$i = ___shgetc($f) | 0; - $gotdig$2$i = $gotdig$3$i; - $gotrad$0$i = $gotrad$1$i; - $gottail$0$i = $gottail$2$i; - $scale$0$i = $scale$2$i; - $x$0$i = $x$2$i; - $y$0$i = $y$2$i; - continue; + } else $122 = $105; + } else { + HEAP16[$pnt2$367 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $122 = $102; + break; + } else $wk$346 = $wk$346 + 4 | 0; } + } else $122 = $102; + } + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $216 = $pnt$168 + 2 | 0; + $217 = $pnt2$367 + 2 | 0; + $218 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $218; + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $217; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $218; + $pnt$168 = $216; + $pnt2$367 = $217; + $wk_max$159 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 4 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $225 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $227 = HEAP32[$wk$443 >> 2] | 0; + if (($227 | 0) == ($i$341 | 0)) { + $233 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $233; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $237 = $labelInfo + 8 | 0; + $238 = $j$1$lcssa + -1 | 0; + HEAP32[$237 >> 2] = $238; + if (!$238) $$0 = 0; else { + _memset($225 | 0, 0, $238 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $245 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $260 = $i$537 * 7 | 0; + $263 = $labelInfo + 12 + ($259 << 2) | 0; + HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); + $270 = $259 << 1; + $271 = $labelInfo + 655376 + ($270 << 3) | 0; + HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); + $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); + $282 = $259 << 2; + $283 = $labelInfo + 131084 + ($282 << 2) | 0; + $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; + if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; + $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; + $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; + if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; + $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$237 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $312 = $labelInfo + 12 + ($i$636 << 2) | 0; + $315 = $i$636 << 1; + $316 = $labelInfo + 655376 + ($315 << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); + $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $25 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + $17 | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($25) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP8[$dpnt$166 >> 0] = -1; + $30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($30 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $30; + $33 = ($30 << 16 >> 16) * 7 | 0; + $35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0; + HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1; + $39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0; + HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264; + $43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $50 = $49 << 16 >> 16; + $53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $54 = $53 << 16 >> 16; + $55 = $53 << 16 >> 16 > 0; + if ($49 << 16 >> 16 <= 0) { + if ($55) { + HEAP16[$pnt2$367 >> 1] = $53; + $155 = $54 * 7 | 0; + $157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1; + $161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264; + $165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075; + $169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0; + if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - if (!$gotdig$2$i$lcssa) { - $201 = (HEAP32[$1 >> 2] | 0) == 0; - if (!$201) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - if (!$pok) ___shlim($f, 0); else if (!$201) { - $205 = HEAP32[$0 >> 2] | 0; - HEAP32[$0 >> 2] = $205 + -1; - if ($gotrad$0$i$lcssa) HEAP32[$0 >> 2] = $205 + -2; + $175 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($175 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $175; + $178 = ($175 << 16 >> 16) * 7 | 0; + $180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0; + HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1; + $184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0; + HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264; + $188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075; + $192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0; + if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; + break; } - $$0 = +($sign$0 | 0) * 0.0; - break L4; + HEAP32[$192 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; + break; + } else { + $195 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $195; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16; + $200 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $195; + break; } - $211 = ($gotrad$0$i$lcssa | 0) == 0; - $212 = $211 ? $213 : $214; - $215 = $211 ? $216 : $217; - if (($216 | 0) < 0 | ($216 | 0) == 0 & $213 >>> 0 < 8) { - $224 = $213; - $225 = $216; - $x$324$i = $x$0$i$lcssa; - while (1) { - $223 = $x$324$i << 4; - $224 = _i64Add($224 | 0, $225 | 0, 1, 0) | 0; - $225 = tempRet0; - if (!(($225 | 0) < 0 | ($225 | 0) == 0 & $224 >>> 0 < 8)) { - $x$3$lcssa$i = $223; - break; - } else $x$324$i = $223; - } - } else $x$3$lcssa$i = $x$0$i$lcssa; - if (($c$2$lcssa$i | 32 | 0) == 112) { - $235 = _scanexp($f, $pok) | 0; - $236 = tempRet0; - if (($235 | 0) == 0 & ($236 | 0) == -2147483648) { - if (!$pok) { - ___shlim($f, 0); - $$0 = 0.0; - break L4; - } - if (!(HEAP32[$1 >> 2] | 0)) { - $253 = 0; - $254 = 0; - } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $253 = 0; - $254 = 0; + } + if ($55) { + $58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; + $61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + if (($58 | 0) > ($61 | 0)) { + HEAP16[$pnt2$367 >> 1] = $61; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $78 = $61; + break; + } else $wk$056 = $wk$056 + 4 | 0; } - } else { - $253 = $235; - $254 = $236; - } - } else if (!(HEAP32[$1 >> 2] | 0)) { - $253 = 0; - $254 = 0; + } else $78 = $61; } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $253 = 0; - $254 = 0; - } - $249 = _bitshift64Shl($212 | 0, $215 | 0, 2) | 0; - $251 = _i64Add($249 | 0, tempRet0 | 0, -32, -1) | 0; - $255 = _i64Add($251 | 0, tempRet0 | 0, $253 | 0, $254 | 0) | 0; - $256 = tempRet0; - if (!$x$3$lcssa$i) { - $$0 = +($sign$0 | 0) * 0.0; - break L4; - } - if (($256 | 0) > 0 | ($256 | 0) == 0 & $255 >>> 0 > (0 - $emin$0$ph | 0) >>> 0) { - $266 = ___errno_location() | 0; - HEAP32[$266 >> 2] = 34; - $$0 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284; - break L4; - } - $270 = $emin$0$ph + -106 | 0; - $272 = (($270 | 0) < 0) << 31 >> 31; - if (($256 | 0) < ($272 | 0) | ($256 | 0) == ($272 | 0) & $255 >>> 0 < $270 >>> 0) { - $279 = ___errno_location() | 0; - HEAP32[$279 >> 2] = 34; - $$0 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; - break L4; + HEAP16[$pnt2$367 >> 1] = $58; + if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $78 = $58; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $78 = $58; } - if (($x$3$lcssa$i | 0) > -1) { - $288 = $255; - $289 = $256; - $x$419$i = $x$3$lcssa$i; - $y$320$i = $y$0$i$lcssa; + $80 = ($78 << 16 >> 16) * 7 | 0; + $82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0; + HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1; + $86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264; + $90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $96 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($96 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $49; + $136 = $50 * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075; + $150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0; + if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; + $104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($101 | 0) > ($104 | 0)) { + HEAP16[$pnt2$367 >> 1] = $104; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; while (1) { - $283 = !($y$320$i >= .5); - $287 = $283 & 1 | $x$419$i << 1; - $x$5$i = $287 ^ 1; - $y$4$i = $y$320$i + ($283 ? $y$320$i : $y$320$i + -1.0); - $290 = _i64Add($288 | 0, $289 | 0, -1, -1) | 0; - $291 = tempRet0; - if (($287 | 0) > -1) { - $288 = $290; - $289 = $291; - $x$419$i = $x$5$i; - $y$320$i = $y$4$i; - } else { - $297 = $290; - $298 = $291; - $x$4$lcssa$i = $x$5$i; - $y$3$lcssa$i = $y$4$i; + if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $121 = $104; break; - } + } else $wk$249 = $wk$249 + 4 | 0; } - } else { - $297 = $255; - $298 = $256; - $x$4$lcssa$i = $x$3$lcssa$i; - $y$3$lcssa$i = $y$0$i$lcssa; - } - $295 = _i64Subtract(32, 0, $emin$0$ph | 0, (($emin$0$ph | 0) < 0) << 31 >> 31 | 0) | 0; - $299 = _i64Add($297 | 0, $298 | 0, $295 | 0, tempRet0 | 0) | 0; - $300 = tempRet0; - if (0 > ($300 | 0) | 0 == ($300 | 0) & $bits$0$ph >>> 0 > $299 >>> 0) if (($299 | 0) < 0) { - $$0710$i = 0; - label = 127; - } else { - $$07$i = $299; - label = 125; - } else { - $$07$i = $bits$0$ph; - label = 125; - } - if ((label | 0) == 125) if (($$07$i | 0) < 53) { - $$0710$i = $$07$i; - label = 127; - } else { - $$0711$i = $$07$i; - $$pre$phi42$iZ2D = +($sign$0 | 0); - $bias$0$i = 0.0; - } - if ((label | 0) == 127) { - $310 = +($sign$0 | 0); - $$0711$i = $$0710$i; - $$pre$phi42$iZ2D = $310; - $bias$0$i = +_copysignl(+_scalbn(1.0, 84 - $$0710$i | 0), $310); - } - $or$cond9$i = ($x$4$lcssa$i & 1 | 0) == 0 & ($y$3$lcssa$i != 0.0 & ($$0711$i | 0) < 32); - $322 = $$pre$phi42$iZ2D * ($or$cond9$i ? 0.0 : $y$3$lcssa$i) + ($bias$0$i + $$pre$phi42$iZ2D * +((($or$cond9$i & 1) + $x$4$lcssa$i | 0) >>> 0)) - $bias$0$i; - if (!($322 != 0.0)) { - $324 = ___errno_location() | 0; - HEAP32[$324 >> 2] = 34; + } else $121 = $104; + } else { + HEAP16[$pnt2$367 >> 1] = $101; + if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $121 = $101; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $121 = $101; + } + $123 = ($121 << 16 >> 16) * 7 | 0; + $125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0; + HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1; + $129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0; + HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264; + $133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } else { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $215 = $pnt$168 + 1 | 0; + $216 = $pnt2$367 + 2 | 0; + $217 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $217; + $pnt$1$lcssa = $215; + $pnt2$3$lcssa = $216; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $217; + $pnt$168 = $215; + $pnt2$367 = $216; + $wk_max$159 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 2 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $224 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $226 = HEAP32[$wk$443 >> 2] | 0; + if (($226 | 0) == ($i$341 | 0)) { + $232 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $232; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $236 = $labelInfo + 8 | 0; + $237 = $j$1$lcssa + -1 | 0; + HEAP32[$236 >> 2] = $237; + if (!$237) $$0 = 0; else { + _memset($224 | 0, 0, $237 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $244 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $259 = $i$537 * 7 | 0; + $262 = $labelInfo + 12 + ($258 << 2) | 0; + HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); + $269 = $258 << 1; + $270 = $labelInfo + 655376 + ($269 << 3) | 0; + HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); + $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; + HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); + $281 = $258 << 2; + $282 = $labelInfo + 131084 + ($281 << 2) | 0; + $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; + if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; + $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$236 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $311 = $labelInfo + 12 + ($i$636 << 2) | 0; + $314 = $i$636 << 1; + $315 = $labelInfo + 655376 + ($314 << 3) | 0; + HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); + $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$088 = 0; + $pnt1$090 = $0; + $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$089 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$088 = $i$088 + 1 | 0; + if (($i$088 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$089 = $pnt2$089 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$182 = 0; + $pnt1$184 = $0; + $pnt2$183 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$183 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$182 = $i$182 + 1 | 0; + if (($i$182 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $25 = ($9 | 0) > 1; + $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; + $j$075 = 1; + $pnt$079 = $image + $17 | 0; + $pnt2$278 = $0 + ($17 << 1) | 0; + $wk_max$074 = 0; + L13 : while (1) { + if ($25) { + $dpnt$166 = $dpnt$077; + $i$264 = 1; + $pnt$168 = $pnt$079; + $pnt2$367 = $pnt2$278; + $wk_max$159 = $wk_max$074; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$367 >> 1] = 0; + HEAP8[$dpnt$166 >> 0] = 0; + $wk_max$2 = $wk_max$159; + } else { + HEAP8[$dpnt$166 >> 0] = -1; + $30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; + if ($30 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $30; + $33 = ($30 << 16 >> 16) * 7 | 0; + $35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0; + HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1; + $39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0; + HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264; + $43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; + $50 = $49 << 16 >> 16; + $53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; + $54 = $53 << 16 >> 16; + $55 = $53 << 16 >> 16 > 0; + if ($49 << 16 >> 16 <= 0) { + if ($55) { + HEAP16[$pnt2$367 >> 1] = $53; + $155 = $54 * 7 | 0; + $157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1; + $161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0; + HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264; + $165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075; + $169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0; + if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - $$0 = +_scalbnl($322, $297); - break L4; - } else $c$6 = $c$5; while (0); - $sum$i = $emin$0$ph + $bits$0$ph | 0; - $330 = 0 - $sum$i | 0; - $$09$i = $c$6; - $gotdig$0$i12 = 0; - L184 : while (1) { - switch ($$09$i | 0) { - case 46: - { - $gotdig$0$i12$lcssa273 = $gotdig$0$i12; - label = 138; - break L184; + $175 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($175 << 16 >> 16 > 0) { + HEAP16[$pnt2$367 >> 1] = $175; + $178 = ($175 << 16 >> 16) * 7 | 0; + $180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0; + HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1; + $184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0; + HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264; + $188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075; + $192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0; + if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) { + $wk_max$2 = $wk_max$159; break; } - case 48: + HEAP32[$192 >> 2] = $i$264; + $wk_max$2 = $wk_max$159; break; - default: - { - $$2$i = $$09$i; - $700 = 0; - $701 = 0; - $gotdig$2$i13 = $gotdig$0$i12; - $gotrad$0$i14 = 0; - break L184; - } - } - $331 = HEAP32[$0 >> 2] | 0; - if ($331 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $331 + 1; - $$09$i = HEAPU8[$331 >> 0] | 0; - $gotdig$0$i12 = 1; - continue; } else { - $$09$i = ___shgetc($f) | 0; - $gotdig$0$i12 = 1; - continue; + $195 = $wk_max$159 + 1 | 0; + if (($wk_max$159 | 0) > 32767) break L13; + HEAP16[$pnt2$367 >> 1] = $195; + HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16; + $200 = $wk_max$159 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075; + HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075; + $wk_max$2 = $195; + break; } } - if ((label | 0) == 138) { - $338 = HEAP32[$0 >> 2] | 0; - if ($338 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $338 + 1; - $$1$ph$i = HEAPU8[$338 >> 0] | 0; - } else $$1$ph$i = ___shgetc($f) | 0; - if (($$1$ph$i | 0) == 48) { - $346 = 0; - $347 = 0; - while (1) { - $348 = _i64Add($346 | 0, $347 | 0, -1, -1) | 0; - $349 = tempRet0; - $350 = HEAP32[$0 >> 2] | 0; - if ($350 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $350 + 1; - $$1$be$i = HEAPU8[$350 >> 0] | 0; - } else $$1$be$i = ___shgetc($f) | 0; - if (($$1$be$i | 0) == 48) { - $346 = $348; - $347 = $349; - } else { - $$2$i = $$1$be$i; - $700 = $348; - $701 = $349; - $gotdig$2$i13 = 1; - $gotrad$0$i14 = 1; - break; + if ($55) { + $58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; + $61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; + if (($58 | 0) > ($61 | 0)) { + HEAP16[$pnt2$367 >> 1] = $61; + if (($wk_max$159 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$159 | 0)) { + $78 = $61; + break; + } else $wk$056 = $wk$056 + 4 | 0; } - } + } else $78 = $61; } else { - $$2$i = $$1$ph$i; - $700 = 0; - $701 = 0; - $gotdig$2$i13 = $gotdig$0$i12$lcssa273; - $gotrad$0$i14 = 1; + HEAP16[$pnt2$367 >> 1] = $58; + if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$159 | 0)) { + $78 = $58; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $78 = $58; } + $80 = ($78 << 16 >> 16) * 7 | 0; + $82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0; + HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1; + $86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0; + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264; + $90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075; + HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; } - HEAP32[$x$i >> 2] = 0; - $358 = $$2$i + -48 | 0; - $360 = ($$2$i | 0) == 46; - L203 : do if ($360 | $358 >>> 0 < 10) { - $362 = $x$i + 496 | 0; - $$3105$i = $$2$i; - $365 = 0; - $366 = 0; - $702 = $360; - $703 = $358; - $704 = $700; - $705 = $701; - $gotdig$3101$i = $gotdig$2$i13; - $gotrad$1102$i = $gotrad$0$i14; - $j$0104$i = 0; - $k$0103$i = 0; - $lnz$0100$i = 0; - L205 : while (1) { - do if ($702) if (!$gotrad$1102$i) { - $706 = $365; - $707 = $366; - $708 = $365; - $709 = $366; - $gotdig$4$i = $gotdig$3101$i; - $gotrad$2$i = 1; - $j$2$i = $j$0104$i; - $k$2$i = $k$0103$i; - $lnz$2$i = $lnz$0100$i; - } else { - $710 = $704; - $711 = $705; - $712 = $365; - $713 = $366; - $gotdig$3101$i$lcssa = $gotdig$3101$i; - $j$0104$i$lcssa = $j$0104$i; - $k$0103$i$lcssa = $k$0103$i; - $lnz$0100$i$lcssa = $lnz$0100$i; - break L205; - } else { - $367 = _i64Add($365 | 0, $366 | 0, 1, 0) | 0; - $368 = tempRet0; - $369 = ($$3105$i | 0) != 48; - if (($k$0103$i | 0) >= 125) { - if (!$369) { - $706 = $704; - $707 = $705; - $708 = $367; - $709 = $368; - $gotdig$4$i = $gotdig$3101$i; - $gotrad$2$i = $gotrad$1102$i; - $j$2$i = $j$0104$i; - $k$2$i = $k$0103$i; - $lnz$2$i = $lnz$0100$i; - break; - } - HEAP32[$362 >> 2] = HEAP32[$362 >> 2] | 1; - $706 = $704; - $707 = $705; - $708 = $367; - $709 = $368; - $gotdig$4$i = $gotdig$3101$i; - $gotrad$2$i = $gotrad$1102$i; - $j$2$i = $j$0104$i; - $k$2$i = $k$0103$i; - $lnz$2$i = $lnz$0100$i; + $96 = HEAP16[$pnt2$367 + -2 >> 1] | 0; + if ($96 << 16 >> 16 <= 0) { + HEAP16[$pnt2$367 >> 1] = $49; + $136 = $50 * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075; + $150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0; + if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264; + HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075; + $wk_max$2 = $wk_max$159; + break; + } + $101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; + $104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($101 | 0) > ($104 | 0)) { + HEAP16[$pnt2$367 >> 1] = $104; + if (($wk_max$159 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$159 | 0)) { + $121 = $104; break; - } - $371 = $x$i + ($k$0103$i << 2) | 0; - if (!$j$0104$i) $storemerge$i = $703; else $storemerge$i = $$3105$i + -48 + ((HEAP32[$371 >> 2] | 0) * 10 | 0) | 0; - HEAP32[$371 >> 2] = $storemerge$i; - $376 = $j$0104$i + 1 | 0; - $377 = ($376 | 0) == 9; - $706 = $704; - $707 = $705; - $708 = $367; - $709 = $368; - $gotdig$4$i = 1; - $gotrad$2$i = $gotrad$1102$i; - $j$2$i = $377 ? 0 : $376; - $k$2$i = ($377 & 1) + $k$0103$i | 0; - $lnz$2$i = $369 ? $367 : $lnz$0100$i; - } while (0); - $381 = HEAP32[$0 >> 2] | 0; - if ($381 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $381 + 1; - $$3$be$i = HEAPU8[$381 >> 0] | 0; - } else $$3$be$i = ___shgetc($f) | 0; - $703 = $$3$be$i + -48 | 0; - $702 = ($$3$be$i | 0) == 46; - if (!($702 | $703 >>> 0 < 10)) { - $$3$lcssa$i = $$3$be$i; - $394 = $708; - $395 = $706; - $397 = $709; - $398 = $707; - $gotdig$3$lcssa$i = $gotdig$4$i; - $gotrad$1$lcssa$i = $gotrad$2$i; - $j$0$lcssa$i = $j$2$i; - $k$0$lcssa$i = $k$2$i; - $lnz$0$lcssa$i = $lnz$2$i; - label = 161; - break L203; - } else { - $$3105$i = $$3$be$i; - $365 = $708; - $366 = $709; - $704 = $706; - $705 = $707; - $gotdig$3101$i = $gotdig$4$i; - $gotrad$1102$i = $gotrad$2$i; - $j$0104$i = $j$2$i; - $k$0103$i = $k$2$i; - $lnz$0100$i = $lnz$2$i; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $121 = $104; + } else { + HEAP16[$pnt2$367 >> 1] = $101; + if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$159 | 0)) { + $121 = $101; + break; + } else $wk$346 = $wk$346 + 4 | 0; } + } else $121 = $101; + } + $123 = ($121 << 16 >> 16) * 7 | 0; + $125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0; + HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1; + $129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0; + HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264; + $133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075; + $wk_max$2 = $wk_max$159; + } while (0); + $i$264 = $i$264 + 1 | 0; + $215 = $pnt$168 + 1 | 0; + $216 = $pnt2$367 + 2 | 0; + $217 = $dpnt$166 + 1 | 0; + if (($i$264 | 0) >= ($9 | 0)) { + $dpnt$1$lcssa = $217; + $pnt$1$lcssa = $215; + $pnt2$3$lcssa = $216; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $dpnt$166 = $217; + $pnt$168 = $215; + $pnt2$367 = $216; + $wk_max$159 = $wk_max$2; + } + } + } else { + $dpnt$1$lcssa = $dpnt$077; + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$278; + $wk_max$1$lcssa = $wk_max$074; + } + $j$075 = $j$075 + 1 | 0; + if (($j$075 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $dpnt$077 = $dpnt$1$lcssa + 2 | 0; + $pnt$079 = $pnt$1$lcssa + 2 | 0; + $pnt2$278 = $pnt2$3$lcssa + 4 | 0; + $wk_max$074 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $224 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $226 = HEAP32[$wk$443 >> 2] | 0; + if (($226 | 0) == ($i$341 | 0)) { + $232 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $232; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $236 = $labelInfo + 8 | 0; + $237 = $j$1$lcssa + -1 | 0; + HEAP32[$236 >> 2] = $237; + if (!$237) $$0 = 0; else { + _memset($224 | 0, 0, $237 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $244 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $259 = $i$537 * 7 | 0; + $262 = $labelInfo + 12 + ($258 << 2) | 0; + HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); + $269 = $258 << 1; + $270 = $labelInfo + 655376 + ($269 << 3) | 0; + HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); + $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; + HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); + $281 = $258 << 2; + $282 = $labelInfo + 131084 + ($281 << 2) | 0; + $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; + if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; + $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$236 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $311 = $labelInfo + 12 + ($i$636 << 2) | 0; + $314 = $i$636 << 1; + $315 = $labelInfo + 655376 + ($314 << 3) | 0; + HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); + $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $image_thresh = $image_thresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$089 = 0; + $pnt1$090 = $0; + $pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$088 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$088 = $pnt2$088 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$183 = 0; + $pnt1$184 = $0; + $pnt2$182 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$182 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$182 = $pnt2$182 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$076 = 1; + $pnt$079 = $image + $17 | 0; + $pnt2$274 = $0 + ($17 << 1) | 0; + $pnt_thresh$078 = $image_thresh + $17 | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($23) { + $i$265 = 1; + $pnt$168 = $pnt$079; + $pnt2$359 = $pnt2$274; + $pnt_thresh$167 = $pnt_thresh$078; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) { + $28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0; + if ($28 << 16 >> 16 > 0) { + HEAP16[$pnt2$359 >> 1] = $28; + $31 = ($28 << 16 >> 16) * 7 | 0; + $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265; + $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0; + $48 = $47 << 16 >> 16; + $51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $53 = $51 << 16 >> 16 > 0; + if ($47 << 16 >> 16 <= 0) { + if ($53) { + HEAP16[$pnt2$359 >> 1] = $51; + $153 = $52 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076; + $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; } - $714 = $712; - $715 = $713; - $716 = $710; - $717 = $711; - $718 = ($gotdig$3101$i$lcssa | 0) != 0; - $j$069$i = $j$0104$i$lcssa; - $k$065$i = $k$0103$i$lcssa; - $lnz$059$i = $lnz$0100$i$lcssa; - label = 169; - } else { - $$3$lcssa$i = $$2$i; - $394 = 0; - $395 = $700; - $397 = 0; - $398 = $701; - $gotdig$3$lcssa$i = $gotdig$2$i13; - $gotrad$1$lcssa$i = $gotrad$0$i14; - $j$0$lcssa$i = 0; - $k$0$lcssa$i = 0; - $lnz$0$lcssa$i = 0; - label = 161; - } while (0); - do if ((label | 0) == 161) { - $392 = ($gotrad$1$lcssa$i | 0) == 0; - $393 = $392 ? $394 : $395; - $396 = $392 ? $397 : $398; - $399 = ($gotdig$3$lcssa$i | 0) != 0; - if (!(($$3$lcssa$i | 32 | 0) == 101 & $399)) if (($$3$lcssa$i | 0) > -1) { - $714 = $394; - $715 = $397; - $716 = $393; - $717 = $396; - $718 = $399; - $j$069$i = $j$0$lcssa$i; - $k$065$i = $k$0$lcssa$i; - $lnz$059$i = $lnz$0$lcssa$i; - label = 169; + $173 = HEAP16[$pnt2$359 + -2 >> 1] | 0; + if ($173 << 16 >> 16 > 0) { + HEAP16[$pnt2$359 >> 1] = $173; + $176 = ($173 << 16 >> 16) * 7 | 0; + $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; + $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265; + $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076; + $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; + if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$190 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; break; } else { - $719 = $394; - $720 = $397; - $721 = $399; - $722 = $393; - $723 = $396; - $j$068$i = $j$0$lcssa$i; - $k$064$i = $k$0$lcssa$i; - $lnz$058$i = $lnz$0$lcssa$i; - label = 171; + $193 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$359 >> 1] = $193; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16; + $198 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $193; break; } - $402 = _scanexp($f, $pok) | 0; - $403 = tempRet0; - if (($402 | 0) == 0 & ($403 | 0) == -2147483648) { - if (!$pok) { - ___shlim($f, 0); - $$0$i27 = 0.0; - break; - } - if (!(HEAP32[$1 >> 2] | 0)) { - $412 = 0; - $413 = 0; - } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $412 = 0; - $413 = 0; - } + } + if ($53) { + $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + if (($56 | 0) > ($59 | 0)) { + HEAP16[$pnt2$359 >> 1] = $59; + if (($wk_max$160 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; + while (1) { + if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$160 | 0)) { + $76 = $59; + break; + } else $wk$056 = $wk$056 + 4 | 0; + } + } else $76 = $59; } else { - $412 = $402; - $413 = $403; + HEAP16[$pnt2$359 >> 1] = $56; + if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; + while (1) { + if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$160 | 0)) { + $76 = $56; + break; + } else $wk$153 = $wk$153 + 4 | 0; + } + } else $76 = $56; } - $414 = _i64Add($412 | 0, $413 | 0, $393 | 0, $396 | 0) | 0; - $427 = $414; - $428 = $394; - $430 = tempRet0; - $431 = $397; - $j$067$i = $j$0$lcssa$i; - $k$063$i = $k$0$lcssa$i; - $lnz$057$i = $lnz$0$lcssa$i; - label = 173; - } while (0); - if ((label | 0) == 169) if (!(HEAP32[$1 >> 2] | 0)) { - $719 = $714; - $720 = $715; - $721 = $718; - $722 = $716; - $723 = $717; - $j$068$i = $j$069$i; - $k$064$i = $k$065$i; - $lnz$058$i = $lnz$059$i; - label = 171; + $78 = ($76 << 16 >> 16) * 7 | 0; + $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; + HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; + $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265; + $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $94 = HEAP16[$pnt2$359 + -2 >> 1] | 0; + if ($94 << 16 >> 16 <= 0) { + HEAP16[$pnt2$359 >> 1] = $47; + $134 = $48 * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076; + $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; + if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($99 | 0) > ($102 | 0)) { + HEAP16[$pnt2$359 >> 1] = $102; + if (($wk_max$160 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; + while (1) { + if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$160 | 0)) { + $119 = $102; + break; + } else $wk$249 = $wk$249 + 4 | 0; + } + } else $119 = $102; } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - if ($718) { - $427 = $716; - $428 = $714; - $430 = $717; - $431 = $715; - $j$067$i = $j$069$i; - $k$063$i = $k$065$i; - $lnz$057$i = $lnz$059$i; - label = 173; - } else label = 172; + HEAP16[$pnt2$359 >> 1] = $99; + if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; + while (1) { + if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$160 | 0)) { + $119 = $99; + break; + } else $wk$346 = $wk$346 + 4 | 0; + } + } else $119 = $99; } - if ((label | 0) == 171) if ($721) { - $427 = $722; - $428 = $719; - $430 = $723; - $431 = $720; - $j$067$i = $j$068$i; - $k$063$i = $k$064$i; - $lnz$057$i = $lnz$058$i; - label = 173; - } else label = 172; - do if ((label | 0) == 172) { - $421 = ___errno_location() | 0; - HEAP32[$421 >> 2] = 22; - ___shlim($f, 0); - $$0$i27 = 0.0; - } else if ((label | 0) == 173) { - $422 = HEAP32[$x$i >> 2] | 0; - if (!$422) { - $$0$i27 = +($sign$0 | 0) * 0.0; - break; - } - if ((($431 | 0) < 0 | ($431 | 0) == 0 & $428 >>> 0 < 10) & (($427 | 0) == ($428 | 0) & ($430 | 0) == ($431 | 0))) if ($bits$0$ph >>> 0 > 30 | ($422 >>> $bits$0$ph | 0) == 0) { - $$0$i27 = +($sign$0 | 0) * +($422 >>> 0); + $121 = ($119 << 16 >> 16) * 7 | 0; + $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; + HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; + $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265; + $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } else { + HEAP16[$pnt2$359 >> 1] = 0; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $213 = $pnt$168 + 1 | 0; + $214 = $pnt_thresh$167 + 1 | 0; + $215 = $pnt2$359 + 2 | 0; + if (($i$265 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $213; + $pnt2$3$lcssa = $215; + $pnt_thresh$1$lcssa = $214; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$168 = $213; + $pnt2$359 = $215; + $pnt_thresh$167 = $214; + $wk_max$160 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$274; + $pnt_thresh$1$lcssa = $pnt_thresh$078; + $wk_max$1$lcssa = $wk_max$075; + } + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$079 = $pnt$1$lcssa + 2 | 0; + $pnt2$274 = $pnt2$3$lcssa + 4 | 0; + $pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0; + $wk_max$075 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $222 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $224 = HEAP32[$wk$443 >> 2] | 0; + if (($224 | 0) == ($i$341 | 0)) { + $230 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $230; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $234 = $labelInfo + 8 | 0; + $235 = $j$1$lcssa + -1 | 0; + HEAP32[$234 >> 2] = $235; + if (!$235) $$0 = 0; else { + _memset($222 | 0, 0, $235 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $242 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $257 = $i$537 * 7 | 0; + $260 = $labelInfo + 12 + ($256 << 2) | 0; + HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0); + $267 = $256 << 1; + $268 = $labelInfo + 655376 + ($267 << 3) | 0; + HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0); + $276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0); + $279 = $256 << 2; + $280 = $labelInfo + 131084 + ($279 << 2) | 0; + $284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0; + if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284; + $287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$234 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $309 = $labelInfo + 12 + ($i$636 << 2) | 0; + $312 = $i$636 << 1; + $313 = $labelInfo + 655376 + ($312 << 3) | 0; + HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0); + $319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0; + HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $image_thresh = $image_thresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$089 = 0; + $pnt1$090 = $0; + $pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$088 >> 1] = 0; + HEAP16[$pnt1$090 >> 1] = 0; + $i$089 = $i$089 + 1 | 0; + if (($i$089 | 0) >= ($xsize | 0)) break; else { + $pnt1$090 = $pnt1$090 + 2 | 0; + $pnt2$088 = $pnt2$088 + 2 | 0; + } + } + } + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$183 = 0; + $pnt1$184 = $0; + $pnt2$182 = $0 + ($9 << 1) | 0; + while (1) { + HEAP16[$pnt2$182 >> 1] = 0; + HEAP16[$pnt1$184 >> 1] = 0; + $i$183 = $i$183 + 1 | 0; + if (($i$183 | 0) >= ($ysize | 0)) break; else { + $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; + $pnt2$182 = $pnt2$182 + ($xsize << 1) | 0; + } + } + } + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$076 = 1; + $pnt$079 = $image + $17 | 0; + $pnt2$274 = $0 + ($17 << 1) | 0; + $pnt_thresh$078 = $image_thresh + $17 | 0; + $wk_max$075 = 0; + L13 : while (1) { + if ($23) { + $i$265 = 1; + $pnt$168 = $pnt$079; + $pnt2$359 = $pnt2$274; + $pnt_thresh$167 = $pnt_thresh$078; + $wk_max$160 = $wk_max$075; + while (1) { + do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) { + HEAP16[$pnt2$359 >> 1] = 0; + $wk_max$2 = $wk_max$160; + } else { + $28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0; + if ($28 << 16 >> 16 > 0) { + HEAP16[$pnt2$359 >> 1] = $28; + $31 = ($28 << 16 >> 16) * 7 | 0; + $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265; + $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0; + $48 = $47 << 16 >> 16; + $51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $53 = $51 << 16 >> 16 > 0; + if ($47 << 16 >> 16 <= 0) { + if ($53) { + HEAP16[$pnt2$359 >> 1] = $51; + $153 = $52 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076; + $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; break; } - $444 = ($emin$0$ph | 0) / -2 | 0; - $446 = (($444 | 0) < 0) << 31 >> 31; - if (($430 | 0) > ($446 | 0) | ($430 | 0) == ($446 | 0) & $427 >>> 0 > $444 >>> 0) { - $452 = ___errno_location() | 0; - HEAP32[$452 >> 2] = 34; - $$0$i27 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284; + $173 = HEAP16[$pnt2$359 + -2 >> 1] | 0; + if ($173 << 16 >> 16 > 0) { + HEAP16[$pnt2$359 >> 1] = $173; + $176 = ($173 << 16 >> 16) * 7 | 0; + $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; + $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265; + $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076; + $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; + if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) { + $wk_max$2 = $wk_max$160; + break; + } + HEAP32[$190 >> 2] = $i$265; + $wk_max$2 = $wk_max$160; break; - } - $456 = $emin$0$ph + -106 | 0; - $458 = (($456 | 0) < 0) << 31 >> 31; - if (($430 | 0) < ($458 | 0) | ($430 | 0) == ($458 | 0) & $427 >>> 0 < $456 >>> 0) { - $464 = ___errno_location() | 0; - HEAP32[$464 >> 2] = 34; - $$0$i27 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; + } else { + $193 = $wk_max$160 + 1 | 0; + if (($wk_max$160 | 0) > 32767) break L13; + HEAP16[$pnt2$359 >> 1] = $193; + HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16; + $198 = $wk_max$160 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076; + HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076; + $wk_max$2 = $193; break; } - if (!$j$067$i) $k$3$i = $k$063$i; else { - if (($j$067$i | 0) < 9) { - $470 = $x$i + ($k$063$i << 2) | 0; - $472 = HEAP32[$470 >> 2] | 0; - $j$394$i = $j$067$i; + } + if ($53) { + $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + if (($56 | 0) > ($59 | 0)) { + HEAP16[$pnt2$359 >> 1] = $59; + if (($wk_max$160 | 0) > 0) { + $k$055 = 0; + $wk$056 = $16; while (1) { - $471 = $472 * 10 | 0; - $j$394$i = $j$394$i + 1 | 0; - if (($j$394$i | 0) == 9) { - $$lcssa265 = $471; + if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59; + $k$055 = $k$055 + 1 | 0; + if (($k$055 | 0) >= ($wk_max$160 | 0)) { + $76 = $59; break; - } else $472 = $471; + } else $wk$056 = $wk$056 + 4 | 0; } - HEAP32[$470 >> 2] = $$lcssa265; - } - $k$3$i = $k$063$i + 1 | 0; - } - if (($lnz$057$i | 0) < 9) if (($lnz$057$i | 0) <= ($427 | 0) & ($427 | 0) < 18) { - if (($427 | 0) == 9) { - $$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0); - break; - } - if (($427 | 0) < 9) { - $$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0) / +(HEAP32[2648 + (8 - $427 << 2) >> 2] | 0); - break; - } - $494 = $bits$0$ph + 27 + (Math_imul($427, -3) | 0) | 0; - $$pre$i17 = HEAP32[$x$i >> 2] | 0; - if (($494 | 0) > 30 | ($$pre$i17 >>> $494 | 0) == 0) { - $$0$i27 = +($sign$0 | 0) * +($$pre$i17 >>> 0) * +(HEAP32[2648 + ($427 + -10 << 2) >> 2] | 0); - break; - } - } - $506 = ($427 | 0) % 9 | 0; - if (!$506) { - $a$2$ph38$i = 0; - $e2$0$ph$i = 0; - $rp$2$ph36$i = $427; - $z$1$ph37$i = $k$3$i; + } else $76 = $59; } else { - $510 = ($427 | 0) > -1 ? $506 : $506 + 9 | 0; - $513 = HEAP32[2648 + (8 - $510 << 2) >> 2] | 0; - if (!$k$3$i) { - $a$0$lcssa151$i = 0; - $rp$0$lcssa152$i = $427; - $z$0$i = 0; - } else { - $515 = 1e9 / ($513 | 0) | 0; - $a$085$i = 0; - $carry$087$i = 0; - $k$486$i = 0; - $rp$084$i = $427; + HEAP16[$pnt2$359 >> 1] = $56; + if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) { + $k$152 = 0; + $wk$153 = $16; while (1) { - $516 = $x$i + ($k$486$i << 2) | 0; - $517 = HEAP32[$516 >> 2] | 0; - $520 = (($517 >>> 0) / ($513 >>> 0) | 0) + $carry$087$i | 0; - HEAP32[$516 >> 2] = $520; - $521 = Math_imul(($517 >>> 0) % ($513 >>> 0) | 0, $515) | 0; - $or$cond16$i = ($k$486$i | 0) == ($a$085$i | 0) & ($520 | 0) == 0; - $k$486$i = $k$486$i + 1 | 0; - $rp$1$i18 = $or$cond16$i ? $rp$084$i + -9 | 0 : $rp$084$i; - $a$1$i = $or$cond16$i ? $k$486$i & 127 : $a$085$i; - if (($k$486$i | 0) == ($k$3$i | 0)) { - $$lcssa264 = $521; - $a$1$i$lcssa = $a$1$i; - $rp$1$i18$lcssa = $rp$1$i18; + if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56; + $k$152 = $k$152 + 1 | 0; + if (($k$152 | 0) >= ($wk_max$160 | 0)) { + $76 = $56; break; - } else { - $a$085$i = $a$1$i; - $carry$087$i = $521; - $rp$084$i = $rp$1$i18; - } - } - if (!$$lcssa264) { - $a$0$lcssa151$i = $a$1$i$lcssa; - $rp$0$lcssa152$i = $rp$1$i18$lcssa; - $z$0$i = $k$3$i; - } else { - HEAP32[$x$i + ($k$3$i << 2) >> 2] = $$lcssa264; - $a$0$lcssa151$i = $a$1$i$lcssa; - $rp$0$lcssa152$i = $rp$1$i18$lcssa; - $z$0$i = $k$3$i + 1 | 0; + } else $wk$153 = $wk$153 + 4 | 0; } - } - $a$2$ph38$i = $a$0$lcssa151$i; - $e2$0$ph$i = 0; - $rp$2$ph36$i = 9 - $510 + $rp$0$lcssa152$i | 0; - $z$1$ph37$i = $z$0$i; + } else $76 = $56; } - L284 : while (1) { - $533 = ($rp$2$ph36$i | 0) < 18; - $534 = ($rp$2$ph36$i | 0) == 18; - $535 = $x$i + ($a$2$ph38$i << 2) | 0; - $e2$0$i19 = $e2$0$ph$i; - $z$1$i = $z$1$ph37$i; + $78 = ($76 << 16 >> 16) * 7 | 0; + $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; + HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; + $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265; + $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076; + HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $94 = HEAP16[$pnt2$359 + -2 >> 1] | 0; + if ($94 << 16 >> 16 <= 0) { + HEAP16[$pnt2$359 >> 1] = $47; + $134 = $48 * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076; + $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; + if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265; + HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076; + $wk_max$2 = $wk_max$160; + break; + } + $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($99 | 0) > ($102 | 0)) { + HEAP16[$pnt2$359 >> 1] = $102; + if (($wk_max$160 | 0) > 0) { + $k$248 = 0; + $wk$249 = $16; while (1) { - if (!$533) { - if (!$534) { - $a$3$ph$i = $a$2$ph38$i; - $e2$1$ph$i = $e2$0$i19; - $rp$3$ph34$i = $rp$2$ph36$i; - $z$5$ph$i = $z$1$i; - break L284; - } - if ((HEAP32[$535 >> 2] | 0) >>> 0 >= 9007199) { - $a$3$ph$i = $a$2$ph38$i; - $e2$1$ph$i = $e2$0$i19; - $rp$3$ph34$i = 18; - $z$5$ph$i = $z$1$i; - break L284; - } - } - $carry1$0$i = 0; - $k$5$in$i = $z$1$i + 127 | 0; - $z$2$i = $z$1$i; - while (1) { - $k$5$i = $k$5$in$i & 127; - $539 = $x$i + ($k$5$i << 2) | 0; - $541 = _bitshift64Shl(HEAP32[$539 >> 2] | 0, 0, 29) | 0; - $543 = _i64Add($541 | 0, tempRet0 | 0, $carry1$0$i | 0, 0) | 0; - $544 = tempRet0; - if ($544 >>> 0 > 0 | ($544 | 0) == 0 & $543 >>> 0 > 1e9) { - $550 = ___udivdi3($543 | 0, $544 | 0, 1e9, 0) | 0; - $552 = ___uremdi3($543 | 0, $544 | 0, 1e9, 0) | 0; - $$sink$off0$i = $552; - $carry1$1$i = $550; - } else { - $$sink$off0$i = $543; - $carry1$1$i = 0; - } - HEAP32[$539 >> 2] = $$sink$off0$i; - $557 = ($k$5$i | 0) == ($a$2$ph38$i | 0); - $z$3$i = ($k$5$i | 0) != ($z$2$i + 127 & 127 | 0) | $557 ? $z$2$i : ($$sink$off0$i | 0) == 0 ? $k$5$i : $z$2$i; - if ($557) { - $carry1$1$i$lcssa = $carry1$1$i; - $z$3$i$lcssa = $z$3$i; - break; - } else { - $carry1$0$i = $carry1$1$i; - $k$5$in$i = $k$5$i + -1 | 0; - $z$2$i = $z$3$i; - } - } - $560 = $e2$0$i19 + -29 | 0; - if (!$carry1$1$i$lcssa) { - $e2$0$i19 = $560; - $z$1$i = $z$3$i$lcssa; - } else { - $$lcssa263 = $560; - $carry1$1$i$lcssa$lcssa = $carry1$1$i$lcssa; - $z$3$i$lcssa$lcssa = $z$3$i$lcssa; + if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102; + $k$248 = $k$248 + 1 | 0; + if (($k$248 | 0) >= ($wk_max$160 | 0)) { + $119 = $102; break; - } + } else $wk$249 = $wk$249 + 4 | 0; } - $564 = $a$2$ph38$i + 127 & 127; - if (($564 | 0) == ($z$3$i$lcssa$lcssa | 0)) { - $567 = $z$3$i$lcssa$lcssa + 127 & 127; - $572 = $x$i + (($z$3$i$lcssa$lcssa + 126 & 127) << 2) | 0; - HEAP32[$572 >> 2] = HEAP32[$572 >> 2] | HEAP32[$x$i + ($567 << 2) >> 2]; - $z$4$i = $567; - } else $z$4$i = $z$3$i$lcssa$lcssa; - HEAP32[$x$i + ($564 << 2) >> 2] = $carry1$1$i$lcssa$lcssa; - $a$2$ph38$i = $564; - $e2$0$ph$i = $$lcssa263; - $rp$2$ph36$i = $rp$2$ph36$i + 9 | 0; - $z$1$ph37$i = $z$4$i; - } - L302 : while (1) { - $604 = $z$5$ph$i + 1 & 127; - $609 = $x$i + (($z$5$ph$i + 127 & 127) << 2) | 0; - $a$3$ph157$i = $a$3$ph$i; - $e2$1$ph156$i = $e2$1$ph$i; - $rp$3$ph$i = $rp$3$ph34$i; + } else $119 = $102; + } else { + HEAP16[$pnt2$359 >> 1] = $99; + if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) { + $k$345 = 0; + $wk$346 = $16; while (1) { - $610 = ($rp$3$ph$i | 0) == 18; - $$18$i = ($rp$3$ph$i | 0) > 27 ? 9 : 1; - $$not$i = $610 ^ 1; - $a$3$i = $a$3$ph157$i; - $e2$1$i = $e2$1$ph156$i; - while (1) { - $576 = $a$3$i & 127; - $577 = ($576 | 0) == ($z$5$ph$i | 0); - do if ($577) label = 219; else { - $579 = HEAP32[$x$i + ($576 << 2) >> 2] | 0; - if ($579 >>> 0 < 9007199) { - label = 219; - break; - } - if ($579 >>> 0 > 9007199) break; - $583 = $a$3$i + 1 & 127; - if (($583 | 0) == ($z$5$ph$i | 0)) { - label = 219; - break; - } - $691 = HEAP32[$x$i + ($583 << 2) >> 2] | 0; - if ($691 >>> 0 < 254740991) { - label = 219; - break; - } - if (!($691 >>> 0 > 254740991 | $$not$i)) { - $617 = $576; - $a$3$i249 = $a$3$i; - $e2$1$i246 = $e2$1$i; - $z$7$i = $z$5$ph$i; - break L302; - } - } while (0); - if ((label | 0) == 219) { - label = 0; - if ($610) { - label = 220; - break L302; - } - } - $585 = $e2$1$i + $$18$i | 0; - if (($a$3$i | 0) == ($z$5$ph$i | 0)) { - $a$3$i = $z$5$ph$i; - $e2$1$i = $585; - } else { - $$lcssa256 = $585; - $a$3$i$lcssa248 = $a$3$i; - break; - } - } - $588 = (1 << $$18$i) + -1 | 0; - $589 = 1e9 >>> $$18$i; - $a$478$i = $a$3$i$lcssa248; - $carry3$081$i = 0; - $k$679$i = $a$3$i$lcssa248; - $rp$477$i = $rp$3$ph$i; - while (1) { - $590 = $x$i + ($k$679$i << 2) | 0; - $591 = HEAP32[$590 >> 2] | 0; - $594 = ($591 >>> $$18$i) + $carry3$081$i | 0; - HEAP32[$590 >> 2] = $594; - $595 = Math_imul($591 & $588, $589) | 0; - $or$cond19$i = ($k$679$i | 0) == ($a$478$i | 0) & ($594 | 0) == 0; - $k$679$i = $k$679$i + 1 & 127; - $rp$5$i = $or$cond19$i ? $rp$477$i + -9 | 0 : $rp$477$i; - $a$5$i = $or$cond19$i ? $k$679$i : $a$478$i; - if (($k$679$i | 0) == ($z$5$ph$i | 0)) { - $$lcssa257 = $595; - $a$5$i$lcssa = $a$5$i; - $rp$5$i$lcssa = $rp$5$i; - break; - } else { - $a$478$i = $a$5$i; - $carry3$081$i = $595; - $rp$477$i = $rp$5$i; - } - } - if (!$$lcssa257) { - $a$3$ph157$i = $a$5$i$lcssa; - $e2$1$ph156$i = $$lcssa256; - $rp$3$ph$i = $rp$5$i$lcssa; - continue; - } - if (($604 | 0) != ($a$5$i$lcssa | 0)) { - $$lcssa256$lcssa = $$lcssa256; - $$lcssa257$lcssa = $$lcssa257; - $a$5$i$lcssa$lcssa = $a$5$i$lcssa; - $rp$5$i$lcssa$lcssa = $rp$5$i$lcssa; - break; - } - HEAP32[$609 >> 2] = HEAP32[$609 >> 2] | 1; - $a$3$ph157$i = $a$5$i$lcssa; - $e2$1$ph156$i = $$lcssa256; - $rp$3$ph$i = $rp$5$i$lcssa; - } - HEAP32[$x$i + ($z$5$ph$i << 2) >> 2] = $$lcssa257$lcssa; - $a$3$ph$i = $a$5$i$lcssa$lcssa; - $e2$1$ph$i = $$lcssa256$lcssa; - $rp$3$ph34$i = $rp$5$i$lcssa$lcssa; - $z$5$ph$i = $604; - } - if ((label | 0) == 220) if ($577) { - HEAP32[$x$i + ($604 + -1 << 2) >> 2] = 0; - $617 = $z$5$ph$i; - $a$3$i249 = $a$3$i; - $e2$1$i246 = $e2$1$i; - $z$7$i = $604; - } else { - $617 = $576; - $a$3$i249 = $a$3$i; - $e2$1$i246 = $e2$1$i; - $z$7$i = $z$5$ph$i; - } - $619 = +((HEAP32[$x$i + ($617 << 2) >> 2] | 0) >>> 0); - $621 = $a$3$i249 + 1 & 127; - if (($621 | 0) == ($z$7$i | 0)) { - $680 = $a$3$i249 + 2 & 127; - HEAP32[$x$i + ($680 + -1 << 2) >> 2] = 0; - $z$7$1$i = $680; - } else $z$7$1$i = $z$7$i; - $643 = +($sign$0 | 0); - $625 = $643 * ($619 * 1.0e9 + +((HEAP32[$x$i + ($621 << 2) >> 2] | 0) >>> 0)); - $663 = $e2$1$i246 + 53 | 0; - $669 = $663 - $emin$0$ph | 0; - $670 = ($669 | 0) < ($bits$0$ph | 0); - $denormal$0$i = $670 & 1; - $$010$i = $670 ? (($669 | 0) < 0 ? 0 : $669) : $bits$0$ph; - if (($$010$i | 0) < 53) { - $626 = +_copysignl(+_scalbn(1.0, 105 - $$010$i | 0), $625); - $629 = +_fmodl($625, +_scalbn(1.0, 53 - $$010$i | 0)); - $bias$0$i25 = $626; - $frac$0$i = $629; - $y$1$i24 = $626 + ($625 - $629); - } else { - $bias$0$i25 = 0.0; - $frac$0$i = 0.0; - $y$1$i24 = $625; - } - $633 = $a$3$i249 + 2 & 127; - do if (($633 | 0) == ($z$7$1$i | 0)) $frac$2$i = $frac$0$i; else { - $636 = HEAP32[$x$i + ($633 << 2) >> 2] | 0; - do if ($636 >>> 0 < 5e8) { - if (!$636) if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) { - $frac$1$i = $frac$0$i; - break; - } - $frac$1$i = $643 * .25 + $frac$0$i; - } else { - if ($636 >>> 0 > 5e8) { - $frac$1$i = $643 * .75 + $frac$0$i; - break; - } - if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) { - $frac$1$i = $643 * .5 + $frac$0$i; - break; - } else { - $frac$1$i = $643 * .75 + $frac$0$i; + if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99; + $k$345 = $k$345 + 1 | 0; + if (($k$345 | 0) >= ($wk_max$160 | 0)) { + $119 = $99; break; - } - } while (0); - if ((53 - $$010$i | 0) <= 1) { - $frac$2$i = $frac$1$i; - break; - } - if (+_fmodl($frac$1$i, 1.0) != 0.0) { - $frac$2$i = $frac$1$i; - break; - } - $frac$2$i = $frac$1$i + 1.0; - } while (0); - $661 = $y$1$i24 + $frac$2$i - $bias$0$i25; - do if (($663 & 2147483647 | 0) > (-2 - $sum$i | 0)) { - if (!(+Math_abs(+$661) >= 9007199254740992.0)) { - $denormal$2$i = $denormal$0$i; - $e2$2$i = $e2$1$i246; - $y$2$i26 = $661; - } else { - $denormal$2$i = $670 & ($$010$i | 0) == ($669 | 0) ? 0 : $denormal$0$i; - $e2$2$i = $e2$1$i246 + 1 | 0; - $y$2$i26 = $661 * .5; - } - if (($e2$2$i + 50 | 0) <= ($330 | 0)) if (!($frac$2$i != 0.0 & ($denormal$2$i | 0) != 0)) { - $e2$3$i = $e2$2$i; - $y$3$i = $y$2$i26; - break; + } else $wk$346 = $wk$346 + 4 | 0; } - $677 = ___errno_location() | 0; - HEAP32[$677 >> 2] = 34; - $e2$3$i = $e2$2$i; - $y$3$i = $y$2$i26; - } else { - $e2$3$i = $e2$1$i246; - $y$3$i = $661; - } while (0); - $$0$i27 = +_scalbnl($y$3$i, $e2$3$i); - } while (0); - $$0 = $$0$i27; - break L4; - break; - } - default: - { - if (HEAP32[$1 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $113 = ___errno_location() | 0; - HEAP32[$113 >> 2] = 22; - ___shlim($f, 0); - $$0 = 0.0; - break L4; + } else $119 = $99; + } + $121 = ($119 << 16 >> 16) * 7 | 0; + $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; + HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; + $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265; + $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076; + $wk_max$2 = $wk_max$160; + } while (0); + $i$265 = $i$265 + 1 | 0; + $213 = $pnt$168 + 1 | 0; + $214 = $pnt_thresh$167 + 1 | 0; + $215 = $pnt2$359 + 2 | 0; + if (($i$265 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $213; + $pnt2$3$lcssa = $215; + $pnt_thresh$1$lcssa = $214; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$168 = $213; + $pnt2$359 = $215; + $pnt_thresh$167 = $214; + $wk_max$160 = $wk_max$2; } } + } else { + $pnt$1$lcssa = $pnt$079; + $pnt2$3$lcssa = $pnt2$274; + $pnt_thresh$1$lcssa = $pnt_thresh$078; + $wk_max$1$lcssa = $wk_max$075; } - } while (0); - if ((label | 0) == 23) { - $42 = (HEAP32[$1 >> 2] | 0) == 0; - if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - if (($pok | 0) != 0 & $i$0$lcssa >>> 0 > 3) { - $i$1 = $i$0$lcssa; - do { - if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $i$1 = $i$1 + -1 | 0; - } while ($i$1 >>> 0 > 3); + $j$076 = $j$076 + 1 | 0; + if (($j$076 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$079 = $pnt$1$lcssa + 2 | 0; + $pnt2$274 = $pnt2$3$lcssa + 4 | 0; + $pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0; + $wk_max$075 = $wk_max$1$lcssa; } } - $$0 = +($sign$0 | 0) * inf; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; } while (0); + if ((label | 0) == 52) { + $222 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$341 = 1; + $j$142 = 1; + $wk$443 = $16; + while (1) { + $224 = HEAP32[$wk$443 >> 2] | 0; + if (($224 | 0) == ($i$341 | 0)) { + $230 = $j$142; + $j$2 = $j$142 + 1 | 0; + } else { + $230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0; + $j$2 = $j$142; + } + HEAP32[$wk$443 >> 2] = $230; + if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { + $i$341 = $i$341 + 1 | 0; + $j$142 = $j$2; + $wk$443 = $wk$443 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $234 = $labelInfo + 8 | 0; + $235 = $j$1$lcssa + -1 | 0; + HEAP32[$234 >> 2] = $235; + if (!$235) $$0 = 0; else { + _memset($222 | 0, 0, $235 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$439 = 0; + do { + $242 = $i$439 << 2; + HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0; + $i$439 = $i$439 + 1 | 0; + } while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$537 = 0; + do { + $256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; + $257 = $i$537 * 7 | 0; + $260 = $labelInfo + 12 + ($256 << 2) | 0; + HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0); + $267 = $256 << 1; + $268 = $labelInfo + 655376 + ($267 << 3) | 0; + HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0); + $276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0); + $279 = $256 << 2; + $280 = $labelInfo + 131084 + ($279 << 2) | 0; + $284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0; + if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284; + $287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; + $i$537 = $i$537 + 1 | 0; + } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$234 >> 2] | 0) > 0) { + $i$636 = 0; + do { + $309 = $labelInfo + 12 + ($i$636 << 2) | 0; + $312 = $i$636 << 1; + $313 = $labelInfo + 655376 + ($312 << 3) | 0; + HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0); + $319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0; + HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0); + $i$636 = $i$636 + 1 | 0; + } while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; - return +$$0; + return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i16$i = 0, $$0$i$i$i23$i = 0, $$0$i$i$i33$i = 0, $$0$i$i$i42$i = 0, $$0$i$i$i52$i = 0, $$0$i10 = 0, $$02 = 0, $$07$i = 0, $$first = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $129 = 0, $13 = 0, $130 = 0, $134 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $144 = 0, $145 = 0, $15 = 0, $153 = 0, $154 = 0, $156 = 0, $16 = 0, $164 = 0, $166 = 0, $167 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $211 = 0, $212 = 0, $220 = 0, $221 = 0, $223 = 0, $23 = 0, $231 = 0, $233 = 0, $234 = 0, $247 = 0, $248 = 0, $249 = 0, $250 = 0, $253 = 0, $256 = 0, $259 = 0, $268 = 0, $271 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $281 = 0, $282 = 0, $290 = 0, $291 = 0, $293 = 0, $3 = 0, $30 = 0, $301 = 0, $303 = 0, $304 = 0, $317 = 0, $318 = 0, $319 = 0, $320 = 0, $323 = 0, $326 = 0, $329 = 0, $338 = 0, $34 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $351 = 0, $359 = 0, $361 = 0, $362 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $381 = 0, $384 = 0, $387 = 0, $398 = 0, $4 = 0, $400 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $419 = 0, $420 = 0, $422 = 0, $430 = 0, $432 = 0, $433 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $452 = 0, $455 = 0, $458 = 0, $469 = 0, $474 = 0, $476 = 0, $477 = 0, $478 = 0, $483 = 0, $484 = 0, $489 = 0, $49 = 0, $494 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $502 = 0, $506 = 0, $507 = 0, $509 = 0, $51 = 0, $510 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $526 = 0, $528 = 0, $538 = 0, $539 = 0, $540 = 0, $542 = 0, $544 = 0, $545 = 0, $546 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $56 = 0, $562 = 0, $564 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $58 = 0, $588 = 0, $593 = 0, $594 = 0, $597 = 0, $6 = 0, $605 = 0, $606 = 0, $608 = 0, $61 = 0, $612 = 0, $613 = 0, $615 = 0, $62 = 0, $622 = 0, $624 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $638 = 0, $641 = 0, $644 = 0, $645 = 0, $65 = 0, $651 = 0, $653 = 0, $657 = 0, $659 = 0, $667 = 0, $668 = 0, $669 = 0, $670 = 0, $673 = 0, $675 = 0, $685 = 0, $690 = 0, $692 = 0, $693 = 0, $7 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $707 = 0, $709 = 0, $719 = 0, $8 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $St$0$off0$i = 0, $__v$i$i51$i = 0, $cv$i = 0, $name$i11 = 0, $name1$i = 0, $name2$i12 = 0, $name3$i = 0, $name4$i = 0, $pop_subs$0$off0$i$ph$lcssa = 0, $pop_subs$0$off0$i$ph136 = 0, $t0$0$i = 0, $t0$0$i13 = 0, $t0$1$i = 0, $t0$2$i$be = 0, $t0$2$i$lcssa = 0, $t0$2$i$ph$be = 0, $t0$2$i$ph135 = 0, $t0$2$i131 = 0, $t0$2$i131$lcssa177 = 0, $t0$2$i131$lcssa178 = 0, $t0$2$i131$lcssa179 = 0, $t0$2$i131184 = 0, $tmp = 0, $tmp3 = 0, label = 0, sp = 0; +function _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 304 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i51$i = sp + 276 | 0; - $cv$i = sp + 264 | 0; - $name$i11 = sp + 252 | 0; - $0 = sp + 240 | 0; - $1 = sp + 224 | 0; - $2 = sp + 216 | 0; - $name1$i = sp + 204 | 0; - $3 = sp + 192 | 0; - $4 = sp + 176 | 0; - $5 = sp + 168 | 0; - $name2$i12 = sp + 156 | 0; - $6 = sp + 144 | 0; - $7 = sp + 128 | 0; - $8 = sp + 124 | 0; - $name3$i = sp + 112 | 0; - $9 = sp + 96 | 0; - $10 = sp + 76 | 0; - $name4$i = sp + 64 | 0; - $11 = sp + 48 | 0; - $12 = sp + 8 | 0; - $13 = sp; - $14 = sp + 80 | 0; - $15 = sp + 60 | 0; - $tmp = sp + 36 | 0; - $tmp3 = sp + 24 | 0; - $16 = $last; - L1 : do if (($16 - $first | 0) > 1) { - $$first = (HEAP8[$first >> 0] | 0) == 76 ? $first + 1 | 0 : $first; - $23 = HEAP8[$$first >> 0] | 0; - switch ($23 << 24 >> 24 | 0) { - case 78: - { - L44 : do if (($$first | 0) == ($last | 0)) $$07$i = $last; else if ($23 << 24 >> 24 == 78) { - $28 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($$first + 1 | 0, $last, $cv$i) | 0; - if (($28 | 0) == ($last | 0)) $$07$i = $$first; else { - $30 = $db + 52 | 0; - HEAP32[$30 >> 2] = 0; - switch (HEAP8[$28 >> 0] | 0) { - case 82: - { - HEAP32[$30 >> 2] = 1; - $t0$0$i13 = $28 + 1 | 0; - break; - } - case 79: - { - HEAP32[$30 >> 2] = 2; - $t0$0$i13 = $28 + 1 | 0; - break; - } - default: - $t0$0$i13 = $28; - } - $34 = $db + 4 | 0; - $35 = HEAP32[$34 >> 2] | 0; - $37 = HEAP32[$db + 8 >> 2] | 0; - if ($35 >>> 0 < $37 >>> 0) { - HEAP32[$35 >> 2] = 0; - HEAP32[$35 + 4 >> 2] = 0; - HEAP32[$35 + 8 >> 2] = 0; - HEAP32[$35 + 12 >> 2] = 0; - HEAP32[$35 + 16 >> 2] = 0; - HEAP32[$35 + 20 >> 2] = 0; - HEAP32[$35 >> 2] = 0; - HEAP32[$35 + 4 >> 2] = 0; - HEAP32[$35 + 8 >> 2] = 0; - $41 = $35 + 12 | 0; - HEAP32[$41 >> 2] = 0; - HEAP32[$41 + 4 >> 2] = 0; - HEAP32[$41 + 8 >> 2] = 0; - HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 24; - } else { - $49 = HEAP32[$db >> 2] | 0; - $50 = $35 - $49 | 0; - $51 = ($50 | 0) / 24 | 0; - $52 = $51 + 1 | 0; - if (($50 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $56 = ($37 - $49 | 0) / 24 | 0; - if ($56 >>> 0 < 1073741823) { - $58 = $56 << 1; - $$0$i$i$i$i = $58 >>> 0 < $52 >>> 0 ? $52 : $58; - } else $$0$i$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i51$i, $$0$i$i$i$i, $51, $db + 12 | 0); - $61 = $__v$i$i51$i + 8 | 0; - $62 = HEAP32[$61 >> 2] | 0; - HEAP32[$62 >> 2] = 0; - HEAP32[$62 + 4 >> 2] = 0; - HEAP32[$62 + 8 >> 2] = 0; - HEAP32[$62 + 12 >> 2] = 0; - HEAP32[$62 + 16 >> 2] = 0; - HEAP32[$62 + 20 >> 2] = 0; - HEAP32[$62 >> 2] = 0; - HEAP32[$62 + 4 >> 2] = 0; - HEAP32[$62 + 8 >> 2] = 0; - $65 = $62 + 12 | 0; - HEAP32[$65 >> 2] = 0; - HEAP32[$65 + 4 >> 2] = 0; - HEAP32[$65 + 8 >> 2] = 0; - HEAP32[$61 >> 2] = $62 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i51$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i51$i); - } - if (($16 - $t0$0$i13 | 0) > 1) if ((HEAP8[$t0$0$i13 >> 0] | 0) == 83) if ((HEAP8[$t0$0$i13 + 1 >> 0] | 0) == 116) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj((HEAP32[$34 >> 2] | 0) + -24 | 0, 12898, 3); - $t0$1$i = $t0$0$i13 + 2 | 0; - } else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13; - if (($t0$1$i | 0) == ($last | 0)) { - $123 = HEAP32[$34 >> 2] | 0; - $124 = $123 + -24 | 0; - $126 = $123; - while (1) { - $125 = $126 + -24 | 0; - HEAP32[$34 >> 2] = $125; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($125); - $126 = HEAP32[$34 >> 2] | 0; - if (($126 | 0) == ($124 | 0)) { - $$07$i = $$first; - break L44; - } - } + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + $30 = HEAPU8[$pnt$164 >> 0] | 0; + $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; + do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) { + $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($47 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $47; + $50 = ($47 << 16 >> 16) * 7 | 0; + $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; + $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; + $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; + HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - $81 = $name3$i + 8 | 0; - $82 = $name3$i + 1 | 0; - $83 = $name3$i + 4 | 0; - $84 = $db + 12 | 0; - $85 = $db + 16 | 0; - $86 = $db + 20 | 0; - $87 = $db + 24 | 0; - $88 = $9 + 12 | 0; - $89 = $9 + 4 | 0; - $90 = $9 + 8 | 0; - $91 = $db + 28 | 0; - $92 = $__v$i$i51$i + 8 | 0; - $93 = $12 + 12 | 0; - $94 = $12 + 4 | 0; - $95 = $12 + 8 | 0; - $96 = $__v$i$i51$i + 8 | 0; - $97 = $11 + 8 | 0; - $98 = $11 + 1 | 0; - $99 = $11 + 4 | 0; - $100 = $0 + 8 | 0; - $101 = $0 + 1 | 0; - $102 = $0 + 4 | 0; - $103 = $1 + 12 | 0; - $104 = $1 + 4 | 0; - $105 = $1 + 8 | 0; - $106 = $__v$i$i51$i + 8 | 0; - $107 = $4 + 12 | 0; - $108 = $4 + 4 | 0; - $109 = $4 + 8 | 0; - $110 = $__v$i$i51$i + 8 | 0; - $111 = $3 + 8 | 0; - $112 = $3 + 1 | 0; - $113 = $3 + 4 | 0; - $114 = $7 + 12 | 0; - $115 = $7 + 4 | 0; - $116 = $7 + 8 | 0; - $117 = $__v$i$i51$i + 8 | 0; - $118 = $6 + 8 | 0; - $119 = $6 + 1 | 0; - $120 = $6 + 4 | 0; - $121 = HEAP8[$t0$1$i >> 0] | 0; - L72 : do if ($121 << 24 >> 24 == 69) { - $pop_subs$0$off0$i$ph$lcssa = 0; - $t0$2$i$lcssa = $t0$1$i; - } else { - $719 = $121; - $pop_subs$0$off0$i$ph136 = 0; - $t0$2$i$ph135 = $t0$1$i; - L73 : while (1) { - $129 = $719; - $t0$2$i131 = $t0$2$i$ph135; - L75 : while (1) { - switch ($129 << 24 >> 24 | 0) { - case 83: - { - $t0$2$i131$lcssa177 = $t0$2$i131; - label = 25; - break L75; - break; - } - case 84: - { - $t0$2$i131$lcssa178 = $t0$2$i131; - label = 44; - break L75; - break; - } - case 68: - { - $t0$2$i131$lcssa179 = $t0$2$i131; - label = 61; - break L75; - break; - } - case 73: - { - $338 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131, $last, $db) | 0; - if (($338 | 0) == ($t0$2$i131 | 0) | ($338 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name3$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); - $343 = HEAP32[$34 >> 2] | 0; - $344 = $343 + -24 | 0; - $346 = $343; - do { - $345 = $346 + -24 | 0; - HEAP32[$34 >> 2] = $345; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($345); - $346 = HEAP32[$34 >> 2] | 0; - } while (($346 | 0) != ($344 | 0)); - $349 = HEAP8[$name3$i >> 0] | 0; - $351 = ($349 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($343 + -48 | 0, $351 ? $82 : HEAP32[$81 >> 2] | 0, $351 ? ($349 & 255) >>> 1 : HEAP32[$83 >> 2] | 0) | 0; - $359 = (HEAP32[$34 >> 2] | 0) + -24 | 0; - HEAP32[$10 >> 2] = HEAP32[$84 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($9, $359, $10); - $361 = HEAP32[$86 >> 2] | 0; - $362 = HEAP32[$87 >> 2] | 0; - if ($361 >>> 0 < $362 >>> 0) { - HEAP32[$361 + 12 >> 2] = HEAP32[$88 >> 2]; - HEAP32[$361 >> 2] = HEAP32[$9 >> 2]; - HEAP32[$361 + 4 >> 2] = HEAP32[$89 >> 2]; - HEAP32[$361 + 8 >> 2] = HEAP32[$90 >> 2]; - HEAP32[$90 >> 2] = 0; - HEAP32[$89 >> 2] = 0; - HEAP32[$9 >> 2] = 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; - } else { - $375 = HEAP32[$85 >> 2] | 0; - $376 = $361 - $375 | 0; - $377 = $376 >> 4; - $378 = $377 + 1 | 0; - if (($376 | 0) < -16) { - label = 86; - break L73; - } - $381 = $362 - $375 | 0; - if ($381 >> 4 >>> 0 < 1073741823) { - $384 = $381 >> 3; - $$0$i$i$i42$i = $384 >>> 0 < $378 >>> 0 ? $378 : $384; - } else $$0$i$i$i42$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i42$i, $377, $91); - $387 = HEAP32[$92 >> 2] | 0; - HEAP32[$387 + 12 >> 2] = HEAP32[$88 >> 2]; - HEAP32[$387 >> 2] = HEAP32[$9 >> 2]; - HEAP32[$387 + 4 >> 2] = HEAP32[$89 >> 2]; - HEAP32[$387 + 8 >> 2] = HEAP32[$90 >> 2]; - HEAP32[$90 >> 2] = 0; - HEAP32[$89 >> 2] = 0; - HEAP32[$9 >> 2] = 0; - HEAP32[$92 >> 2] = $387 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($9); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name3$i); - $t0$2$i$be = $338; - break; - } - case 76: - { - $398 = $t0$2$i131 + 1 | 0; - if (($398 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } else $t0$2$i$be = $398; - break; - } - default: - { - $t0$2$i131184 = $t0$2$i131; - label = 93; - break L75; - } - } - $129 = HEAP8[$t0$2$i$be >> 0] | 0; - if ($129 << 24 >> 24 == 69) { - $pop_subs$0$off0$i$ph$lcssa = $pop_subs$0$off0$i$ph136; - $t0$2$i$lcssa = $t0$2$i$be; - break L72; - } else $t0$2$i131 = $t0$2$i$be; + $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $71 = $70 << 16 >> 16; + $72 = $70 << 16 >> 16 > 0; + if ($66 << 16 >> 16 <= 0) { + if ($72) { + HEAP16[$pnt2$363 >> 1] = $70; + $172 = $71 * 7 | 0; + $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; + $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; + $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; + $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; + if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($192 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $192; + $195 = ($192 << 16 >> 16) * 7 | 0; + $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; + $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; + $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; + HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; + $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; + if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; } - L93 : do if ((label | 0) == 25) { - label = 0; - $130 = $t0$2$i131$lcssa177 + 1 | 0; - if (($130 | 0) != ($last | 0)) if ((HEAP8[$130 >> 0] | 0) == 116) { - $t0$2$i131184 = $t0$2$i131$lcssa177; - label = 93; - break; - } - $134 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa177, $last, $db) | 0; - if (($134 | 0) == ($t0$2$i131$lcssa177 | 0) | ($134 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name$i11, (HEAP32[$34 >> 2] | 0) + -24 | 0); - $139 = HEAP32[$34 >> 2] | 0; - $140 = $139 + -24 | 0; - $142 = $139; - do { - $141 = $142 + -24 | 0; - HEAP32[$34 >> 2] = $141; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($141); - $142 = HEAP32[$34 >> 2] | 0; - } while (($142 | 0) != ($140 | 0)); - $144 = $139 + -48 | 0; - $145 = HEAP8[$144 >> 0] | 0; - if (!($145 & 1)) $153 = ($145 & 255) >>> 1; else $153 = HEAP32[$139 + -44 >> 2] | 0; - if (!$153) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($144, $name$i11); else { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($0, 12902, $name$i11); - $154 = HEAP8[$0 >> 0] | 0; - $156 = ($154 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($144, $156 ? $101 : HEAP32[$100 >> 2] | 0, $156 ? ($154 & 255) >>> 1 : HEAP32[$102 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $164 = (HEAP32[$34 >> 2] | 0) + -24 | 0; - HEAP32[$2 >> 2] = HEAP32[$84 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($1, $164, $2); - $166 = HEAP32[$86 >> 2] | 0; - $167 = HEAP32[$87 >> 2] | 0; - if ($166 >>> 0 < $167 >>> 0) { - HEAP32[$166 + 12 >> 2] = HEAP32[$103 >> 2]; - HEAP32[$166 >> 2] = HEAP32[$1 >> 2]; - HEAP32[$166 + 4 >> 2] = HEAP32[$104 >> 2]; - HEAP32[$166 + 8 >> 2] = HEAP32[$105 >> 2]; - HEAP32[$105 >> 2] = 0; - HEAP32[$104 >> 2] = 0; - HEAP32[$1 >> 2] = 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; - } else { - $180 = HEAP32[$85 >> 2] | 0; - $181 = $166 - $180 | 0; - $182 = $181 >> 4; - $183 = $182 + 1 | 0; - if (($181 | 0) < -16) { - label = 37; - break L73; - } - $186 = $167 - $180 | 0; - if ($186 >> 4 >>> 0 < 1073741823) { - $189 = $186 >> 3; - $$0$i$i$i16$i = $189 >>> 0 < $183 >>> 0 ? $183 : $189; - } else $$0$i$i$i16$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i16$i, $182, $91); - $192 = HEAP32[$106 >> 2] | 0; - HEAP32[$192 + 12 >> 2] = HEAP32[$103 >> 2]; - HEAP32[$192 >> 2] = HEAP32[$1 >> 2]; - HEAP32[$192 + 4 >> 2] = HEAP32[$104 >> 2]; - HEAP32[$192 + 8 >> 2] = HEAP32[$105 >> 2]; - HEAP32[$105 >> 2] = 0; - HEAP32[$104 >> 2] = 0; - HEAP32[$1 >> 2] = 0; - HEAP32[$106 >> 2] = $192 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($1); - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name$i11); - $t0$2$i$ph$be = $134; - } else if ((label | 0) == 44) { - label = 0; - $201 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa178, $last, $db) | 0; - if (($201 | 0) == ($t0$2$i131$lcssa178 | 0) | ($201 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name1$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); - $206 = HEAP32[$34 >> 2] | 0; - $207 = $206 + -24 | 0; - $209 = $206; - do { - $208 = $209 + -24 | 0; - HEAP32[$34 >> 2] = $208; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($208); - $209 = HEAP32[$34 >> 2] | 0; - } while (($209 | 0) != ($207 | 0)); - $211 = $206 + -48 | 0; - $212 = HEAP8[$211 >> 0] | 0; - if (!($212 & 1)) $220 = ($212 & 255) >>> 1; else $220 = HEAP32[$206 + -44 >> 2] | 0; - if (!$220) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($211, $name1$i); else { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($3, 12902, $name1$i); - $221 = HEAP8[$3 >> 0] | 0; - $223 = ($221 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($211, $223 ? $112 : HEAP32[$111 >> 2] | 0, $223 ? ($221 & 255) >>> 1 : HEAP32[$113 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - } - $231 = (HEAP32[$34 >> 2] | 0) + -24 | 0; - HEAP32[$5 >> 2] = HEAP32[$84 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $231, $5); - $233 = HEAP32[$86 >> 2] | 0; - $234 = HEAP32[$87 >> 2] | 0; - if ($233 >>> 0 < $234 >>> 0) { - HEAP32[$233 + 12 >> 2] = HEAP32[$107 >> 2]; - HEAP32[$233 >> 2] = HEAP32[$4 >> 2]; - HEAP32[$233 + 4 >> 2] = HEAP32[$108 >> 2]; - HEAP32[$233 + 8 >> 2] = HEAP32[$109 >> 2]; - HEAP32[$109 >> 2] = 0; - HEAP32[$108 >> 2] = 0; - HEAP32[$4 >> 2] = 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; - } else { - $247 = HEAP32[$85 >> 2] | 0; - $248 = $233 - $247 | 0; - $249 = $248 >> 4; - $250 = $249 + 1 | 0; - if (($248 | 0) < -16) { - label = 56; - break L73; - } - $253 = $234 - $247 | 0; - if ($253 >> 4 >>> 0 < 1073741823) { - $256 = $253 >> 3; - $$0$i$i$i23$i = $256 >>> 0 < $250 >>> 0 ? $250 : $256; - } else $$0$i$i$i23$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i23$i, $249, $91); - $259 = HEAP32[$110 >> 2] | 0; - HEAP32[$259 + 12 >> 2] = HEAP32[$107 >> 2]; - HEAP32[$259 >> 2] = HEAP32[$4 >> 2]; - HEAP32[$259 + 4 >> 2] = HEAP32[$108 >> 2]; - HEAP32[$259 + 8 >> 2] = HEAP32[$109 >> 2]; - HEAP32[$109 >> 2] = 0; - HEAP32[$108 >> 2] = 0; - HEAP32[$4 >> 2] = 0; - HEAP32[$110 >> 2] = $259 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name1$i); - $t0$2$i$ph$be = $201; - } else if ((label | 0) == 61) { - label = 0; - $268 = $t0$2$i131$lcssa179 + 1 | 0; - if (($268 | 0) != ($last | 0)) switch (HEAP8[$268 >> 0] | 0) { - case 84: - case 116: - break; - default: - { - $t0$2$i131184 = $t0$2$i131$lcssa179; - label = 93; - break L93; - } - } - $271 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa179, $last, $db) | 0; - if (($271 | 0) == ($t0$2$i131$lcssa179 | 0) | ($271 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name2$i12, (HEAP32[$34 >> 2] | 0) + -24 | 0); - $276 = HEAP32[$34 >> 2] | 0; - $277 = $276 + -24 | 0; - $279 = $276; - do { - $278 = $279 + -24 | 0; - HEAP32[$34 >> 2] = $278; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($278); - $279 = HEAP32[$34 >> 2] | 0; - } while (($279 | 0) != ($277 | 0)); - $281 = $276 + -48 | 0; - $282 = HEAP8[$281 >> 0] | 0; - if (!($282 & 1)) $290 = ($282 & 255) >>> 1; else $290 = HEAP32[$276 + -44 >> 2] | 0; - if (!$290) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($281, $name2$i12); else { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($6, 12902, $name2$i12); - $291 = HEAP8[$6 >> 0] | 0; - $293 = ($291 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($281, $293 ? $119 : HEAP32[$118 >> 2] | 0, $293 ? ($291 & 255) >>> 1 : HEAP32[$120 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - } - $301 = (HEAP32[$34 >> 2] | 0) + -24 | 0; - HEAP32[$8 >> 2] = HEAP32[$84 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($7, $301, $8); - $303 = HEAP32[$86 >> 2] | 0; - $304 = HEAP32[$87 >> 2] | 0; - if ($303 >>> 0 < $304 >>> 0) { - HEAP32[$303 + 12 >> 2] = HEAP32[$114 >> 2]; - HEAP32[$303 >> 2] = HEAP32[$7 >> 2]; - HEAP32[$303 + 4 >> 2] = HEAP32[$115 >> 2]; - HEAP32[$303 + 8 >> 2] = HEAP32[$116 >> 2]; - HEAP32[$116 >> 2] = 0; - HEAP32[$115 >> 2] = 0; - HEAP32[$7 >> 2] = 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; - } else { - $317 = HEAP32[$85 >> 2] | 0; - $318 = $303 - $317 | 0; - $319 = $318 >> 4; - $320 = $319 + 1 | 0; - if (($318 | 0) < -16) { - label = 75; - break L73; - } - $323 = $304 - $317 | 0; - if ($323 >> 4 >>> 0 < 1073741823) { - $326 = $323 >> 3; - $$0$i$i$i33$i = $326 >>> 0 < $320 >>> 0 ? $320 : $326; - } else $$0$i$i$i33$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i33$i, $319, $91); - $329 = HEAP32[$117 >> 2] | 0; - HEAP32[$329 + 12 >> 2] = HEAP32[$114 >> 2]; - HEAP32[$329 >> 2] = HEAP32[$7 >> 2]; - HEAP32[$329 + 4 >> 2] = HEAP32[$115 >> 2]; - HEAP32[$329 + 8 >> 2] = HEAP32[$116 >> 2]; - HEAP32[$116 >> 2] = 0; - HEAP32[$115 >> 2] = 0; - HEAP32[$7 >> 2] = 0; - HEAP32[$117 >> 2] = $329 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($7); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name2$i12); - $t0$2$i$ph$be = $271; - } while (0); - if ((label | 0) == 93) { - label = 0; - $400 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131184, $last, $db) | 0; - if (($400 | 0) == ($t0$2$i131184 | 0) | ($400 | 0) == ($last | 0)) { - $$07$i = $$first; - break L44; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name4$i, (HEAP32[$34 >> 2] | 0) + -24 | 0); - $405 = HEAP32[$34 >> 2] | 0; - $406 = $405 + -24 | 0; - $408 = $405; - do { - $407 = $408 + -24 | 0; - HEAP32[$34 >> 2] = $407; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($407); - $408 = HEAP32[$34 >> 2] | 0; - } while (($408 | 0) != ($406 | 0)); - $410 = $405 + -48 | 0; - $411 = HEAP8[$410 >> 0] | 0; - if (!($411 & 1)) $419 = ($411 & 255) >>> 1; else $419 = HEAP32[$405 + -44 >> 2] | 0; - if (!$419) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($410, $name4$i); else { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($11, 12902, $name4$i); - $420 = HEAP8[$11 >> 0] | 0; - $422 = ($420 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($410, $422 ? $98 : HEAP32[$97 >> 2] | 0, $422 ? ($420 & 255) >>> 1 : HEAP32[$99 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11); + HEAP32[$209 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $212 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $212; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; + $217 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $212; + break; + } + } + if ($72) { + $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; + if (($75 | 0) > ($78 | 0)) { + HEAP16[$pnt2$363 >> 1] = $78; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $95 = $78; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - $430 = (HEAP32[$34 >> 2] | 0) + -24 | 0; - HEAP32[$13 >> 2] = HEAP32[$84 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $430, $13); - $432 = HEAP32[$86 >> 2] | 0; - $433 = HEAP32[$87 >> 2] | 0; - if ($432 >>> 0 < $433 >>> 0) { - HEAP32[$432 + 12 >> 2] = HEAP32[$93 >> 2]; - HEAP32[$432 >> 2] = HEAP32[$12 >> 2]; - HEAP32[$432 + 4 >> 2] = HEAP32[$94 >> 2]; - HEAP32[$432 + 8 >> 2] = HEAP32[$95 >> 2]; - HEAP32[$95 >> 2] = 0; - HEAP32[$94 >> 2] = 0; - HEAP32[$12 >> 2] = 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16; - } else { - $446 = HEAP32[$85 >> 2] | 0; - $447 = $432 - $446 | 0; - $448 = $447 >> 4; - $449 = $448 + 1 | 0; - if (($447 | 0) < -16) { - label = 105; + } else $95 = $78; + } else { + HEAP16[$pnt2$363 >> 1] = $75; + if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $95 = $75; break; - } - $452 = $433 - $446 | 0; - if ($452 >> 4 >>> 0 < 1073741823) { - $455 = $452 >> 3; - $$0$i$i$i52$i = $455 >>> 0 < $449 >>> 0 ? $449 : $455; - } else $$0$i$i$i52$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i52$i, $448, $91); - $458 = HEAP32[$96 >> 2] | 0; - HEAP32[$458 + 12 >> 2] = HEAP32[$93 >> 2]; - HEAP32[$458 >> 2] = HEAP32[$12 >> 2]; - HEAP32[$458 + 4 >> 2] = HEAP32[$94 >> 2]; - HEAP32[$458 + 8 >> 2] = HEAP32[$95 >> 2]; - HEAP32[$95 >> 2] = 0; - HEAP32[$94 >> 2] = 0; - HEAP32[$12 >> 2] = 0; - HEAP32[$96 >> 2] = $458 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); + } else $wk$150 = $wk$150 + 4 | 0; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name4$i); - $t0$2$i$ph$be = $400; + } else $95 = $75; + } + $97 = ($95 << 16 >> 16) * 7 | 0; + $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; + $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; + $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($113 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $66; + $153 = $67 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; + $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($118 | 0) > ($121 | 0)) { + HEAP16[$pnt2$363 >> 1] = $121; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $138 = $121; + break; + } else $wk$246 = $wk$246 + 4 | 0; } - $719 = HEAP8[$t0$2$i$ph$be >> 0] | 0; - if ($719 << 24 >> 24 == 69) { - $pop_subs$0$off0$i$ph$lcssa = 1; - $t0$2$i$lcssa = $t0$2$i$ph$be; - break L72; - } else { - $pop_subs$0$off0$i$ph136 = 1; - $t0$2$i$ph135 = $t0$2$i$ph$be; + } else $138 = $121; + } else { + HEAP16[$pnt2$363 >> 1] = $118; + if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $138 = $118; + break; + } else $wk$343 = $wk$343 + 4 | 0; } - } - if ((label | 0) == 37) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 56) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 75) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 86) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 105) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); - } while (0); - $469 = $t0$2$i$lcssa + 1 | 0; - HEAP32[$db + 48 >> 2] = HEAP32[$cv$i >> 2]; - if ($pop_subs$0$off0$i$ph$lcssa) { - $474 = HEAP32[$86 >> 2] | 0; - if ((HEAP32[$db + 16 >> 2] | 0) == ($474 | 0)) $$07$i = $469; else { - $476 = $474 + -16 | 0; - $478 = $474; - do { - $477 = $478 + -16 | 0; - HEAP32[$86 >> 2] = $477; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($477); - $478 = HEAP32[$86 >> 2] | 0; - } while (($478 | 0) != ($476 | 0)); - $$07$i = $469; - } - } else $$07$i = $469; + } else $138 = $118; + } + $140 = ($138 << 16 >> 16) * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $232 = $pnt$164 + 4 | 0; + $233 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $232; + $pnt2$3$lcssa = $233; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $232; + $pnt2$363 = $233; + $wk_max$158 = $wk_max$2; } - } else $$07$i = $$first; while (0); - $$02 = ($$07$i | 0) == ($$first | 0) ? $first : $$07$i; - break L1; - break; + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $241 = HEAP32[$wk$440 >> 2] | 0; + if (($241 | 0) == ($i$338 | 0)) { + $247 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $247; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } } - case 90: - { - L199 : do if (($$first | 0) == ($last | 0)) $$0$i10 = $last; else if ($23 << 24 >> 24 == 90) { - $483 = $$first + 1 | 0; - $484 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($483, $last, $db) | 0; - if (($484 | 0) == ($483 | 0) | ($484 | 0) == ($last | 0)) $$0$i10 = $$first; else if ((HEAP8[$484 >> 0] | 0) == 69) { - $489 = $484 + 1 | 0; - if (($489 | 0) == ($last | 0)) $$0$i10 = $$first; else switch (HEAP8[$489 >> 0] | 0) { - case 115: - { - $494 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($484 + 2 | 0, $last) | 0; - $497 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($497 | 0)) { - $$0$i10 = $494; - break L199; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($497 + -24 | 0, 12905) | 0; - $$0$i10 = $494; - break L199; + } + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $259 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$534 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $326 = $labelInfo + 12 + ($i$633 << 2) | 0; + $329 = $i$633 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + $30 = HEAPU8[$pnt$164 >> 0] | 0; + $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; + do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($47 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $47; + $50 = ($47 << 16 >> 16) * 7 | 0; + $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; + $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; + $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; + HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $71 = $70 << 16 >> 16; + $72 = $70 << 16 >> 16 > 0; + if ($66 << 16 >> 16 <= 0) { + if ($72) { + HEAP16[$pnt2$363 >> 1] = $70; + $172 = $71 * 7 | 0; + $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; + $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; + $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; + $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; + if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 100: - { - $500 = $484 + 2 | 0; - if (($500 | 0) == ($last | 0)) { - $$0$i10 = $$first; - break L199; - } - $502 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($500, $last) | 0; - if (($502 | 0) == ($last | 0)) { - $$0$i10 = $$first; - break L199; - } - if ((HEAP8[$502 >> 0] | 0) != 95) { - $$0$i10 = $$first; - break L199; - } - $506 = $502 + 1 | 0; - $507 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($506, $last, $db) | 0; - $509 = $db + 4 | 0; - $510 = HEAP32[$509 >> 2] | 0; - if (($507 | 0) == ($506 | 0)) { - $538 = $510 + -24 | 0; - $540 = $510; - while (1) { - $539 = $540 + -24 | 0; - HEAP32[$509 >> 2] = $539; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($539); - $540 = HEAP32[$509 >> 2] | 0; - if (($540 | 0) == ($538 | 0)) { - $$0$i10 = $$first; - break L199; - } - } - } - if ((($510 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0$i10 = $$first; - break L199; + $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($192 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $192; + $195 = ($192 << 16 >> 16) * 7 | 0; + $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; + $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; + $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; + HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; + $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; + if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($__v$i$i51$i, $510 + -24 | 0); - $518 = HEAP32[$509 >> 2] | 0; - $519 = $518 + -24 | 0; - $521 = $518; - do { - $520 = $521 + -24 | 0; - HEAP32[$509 >> 2] = $520; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($520); - $521 = HEAP32[$509 >> 2] | 0; - } while (($521 | 0) != ($519 | 0)); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($518 + -48 | 0, 12902) | 0; - $526 = HEAP8[$__v$i$i51$i >> 0] | 0; - $528 = ($526 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$509 >> 2] | 0) + -24 | 0, $528 ? $__v$i$i51$i + 1 | 0 : HEAP32[$__v$i$i51$i + 8 >> 2] | 0, $528 ? ($526 & 255) >>> 1 : HEAP32[$__v$i$i51$i + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i51$i); - $$0$i10 = $507; - break L199; + HEAP32[$209 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $212 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $212; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; + $217 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $212; break; } - default: - { - $542 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($489, $last, $db) | 0; - if (($542 | 0) == ($489 | 0)) { - $574 = $db + 4 | 0; - $575 = HEAP32[$574 >> 2] | 0; - $576 = $575 + -24 | 0; - $578 = $575; + } + if ($72) { + $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; + if (($75 | 0) > ($78 | 0)) { + HEAP16[$pnt2$363 >> 1] = $78; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; while (1) { - $577 = $578 + -24 | 0; - HEAP32[$574 >> 2] = $577; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($577); - $578 = HEAP32[$574 >> 2] | 0; - if (($578 | 0) == ($576 | 0)) { - $$0$i10 = $$first; - break L199; - } + if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $95 = $78; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - } - $544 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($542, $last) | 0; - $545 = $db + 4 | 0; - $546 = HEAP32[$545 >> 2] | 0; - if ((($546 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0$i10 = $544; - break L199; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($cv$i, $546 + -24 | 0); - $554 = HEAP32[$545 >> 2] | 0; - $555 = $554 + -24 | 0; - $557 = $554; - do { - $556 = $557 + -24 | 0; - HEAP32[$545 >> 2] = $556; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($556); - $557 = HEAP32[$545 >> 2] | 0; - } while (($557 | 0) != ($555 | 0)); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($554 + -48 | 0, 12902) | 0; - $562 = HEAP8[$cv$i >> 0] | 0; - $564 = ($562 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$545 >> 2] | 0) + -24 | 0, $564 ? $cv$i + 1 | 0 : HEAP32[$cv$i + 8 >> 2] | 0, $564 ? ($562 & 255) >>> 1 : HEAP32[$cv$i + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($cv$i); - $$0$i10 = $544; - break L199; + } else $95 = $78; + } else { + HEAP16[$pnt2$363 >> 1] = $75; + if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $95 = $75; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $95 = $75; } + $97 = ($95 << 16 >> 16) * 7 | 0; + $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; + $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; + $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - } else $$0$i10 = $$first; - } else $$0$i10 = $$first; while (0); - STACKTOP = sp; - return (($$0$i10 | 0) == ($$first | 0) ? $first : $$0$i10) | 0; - } - default: - { - do if (($16 - $$first | 0) > 1) { - if ($23 << 24 >> 24 == 83) if ((HEAP8[$$first + 1 >> 0] | 0) == 116) { - $588 = $$first + 2 | 0; - if (($588 | 0) == ($last | 0)) { - $St$0$off0$i = 0; - $t0$0$i = $last; - } else { - $St$0$off0$i = 0; - $t0$0$i = (HEAP8[$588 >> 0] | 0) == 76 ? $$first + 3 | 0 : $588; - } - } else { - $St$0$off0$i = 1; - $t0$0$i = $$first; - } else { - $St$0$off0$i = 1; - $t0$0$i = $$first; - } - $593 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$0$i, $last, $db) | 0; - $594 = ($593 | 0) == ($t0$0$i | 0); - if ($St$0$off0$i | $594) $$0$i = $594 ? $$first : $593; else { - $597 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($597 | 0)) break; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($597 + -24 | 0, 0, 12922) | 0; - $$0$i = $593; - } - if (($$0$i | 0) != ($$first | 0)) { - if (($$0$i | 0) == ($last | 0)) { - $$02 = $last; - break L1; - } - if ((HEAP8[$$0$i >> 0] | 0) != 73) { - $$02 = $$0$i; - break L1; - } - $605 = $db + 4 | 0; - $606 = HEAP32[$605 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($606 | 0)) { - $$02 = $first; - break L1; + $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($113 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $66; + $153 = $67 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; + $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - $608 = $db + 16 | 0; - HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $606 + -24 | 0, $15); - $612 = $db + 20 | 0; - $613 = HEAP32[$612 >> 2] | 0; - $615 = HEAP32[$db + 24 >> 2] | 0; - if ($613 >>> 0 < $615 >>> 0) { - HEAP32[$613 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; - HEAP32[$613 >> 2] = HEAP32[$14 >> 2]; - $622 = $14 + 4 | 0; - HEAP32[$613 + 4 >> 2] = HEAP32[$622 >> 2]; - $624 = $14 + 8 | 0; - HEAP32[$613 + 8 >> 2] = HEAP32[$624 >> 2]; - HEAP32[$624 >> 2] = 0; - HEAP32[$622 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$612 >> 2] = (HEAP32[$612 >> 2] | 0) + 16; + $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($118 | 0) > ($121 | 0)) { + HEAP16[$pnt2$363 >> 1] = $121; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $138 = $121; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $138 = $121; } else { - $632 = HEAP32[$608 >> 2] | 0; - $633 = $613 - $632 | 0; - $634 = $633 >> 4; - $635 = $634 + 1 | 0; - if (($633 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($608); - $638 = $615 - $632 | 0; - if ($638 >> 4 >>> 0 < 1073741823) { - $641 = $638 >> 3; - $$0$i$i$i = $641 >>> 0 < $635 >>> 0 ? $635 : $641; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i, $634, $db + 28 | 0); - $644 = $__v$i$i51$i + 8 | 0; - $645 = HEAP32[$644 >> 2] | 0; - HEAP32[$645 + 12 >> 2] = HEAP32[$14 + 12 >> 2]; - HEAP32[$645 >> 2] = HEAP32[$14 >> 2]; - $651 = $14 + 4 | 0; - HEAP32[$645 + 4 >> 2] = HEAP32[$651 >> 2]; - $653 = $14 + 8 | 0; - HEAP32[$645 + 8 >> 2] = HEAP32[$653 >> 2]; - HEAP32[$653 >> 2] = 0; - HEAP32[$651 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$644 >> 2] = $645 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($608, $__v$i$i51$i); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i); - } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14); - $657 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($$0$i, $last, $db) | 0; - if (($657 | 0) == ($$0$i | 0)) { - $$02 = $first; - break L1; - } - $659 = HEAP32[$605 >> 2] | 0; - if ((($659 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$02 = $first; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp, $659 + -24 | 0); - $667 = HEAP32[$605 >> 2] | 0; - $668 = $667 + -24 | 0; - $670 = $667; - do { - $669 = $670 + -24 | 0; - HEAP32[$605 >> 2] = $669; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($669); - $670 = HEAP32[$605 >> 2] | 0; - } while (($670 | 0) != ($668 | 0)); - $673 = HEAP8[$tmp >> 0] | 0; - $675 = ($673 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($667 + -48 | 0, $675 ? $tmp + 1 | 0 : HEAP32[$tmp + 8 >> 2] | 0, $675 ? ($673 & 255) >>> 1 : HEAP32[$tmp + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); - $$02 = $657; - break L1; + HEAP16[$pnt2$363 >> 1] = $118; + if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $138 = $118; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $138 = $118; + } + $140 = ($138 << 16 >> 16) * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $232 = $pnt$164 + 4 | 0; + $233 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $232; + $pnt2$3$lcssa = $233; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $232; + $pnt2$363 = $233; + $wk_max$158 = $wk_max$2; } - } while (0); - $685 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($$first, $last, $db) | 0; - if (($685 | 0) == ($$first | 0) | ($685 | 0) == ($last | 0)) { - $$02 = $first; - break L1; - } - if ((HEAP8[$685 >> 0] | 0) != 73) { - $$02 = $first; - break L1; } - $690 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($685, $last, $db) | 0; - if (($690 | 0) == ($685 | 0)) { - $$02 = $first; - break L1; + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $241 = HEAP32[$wk$440 >> 2] | 0; + if (($241 | 0) == ($i$338 | 0)) { + $247 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - $692 = $db + 4 | 0; - $693 = HEAP32[$692 >> 2] | 0; - if ((($693 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$02 = $first; - break L1; + HEAP32[$wk$440 >> 2] = $247; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp3, $693 + -24 | 0); - $701 = HEAP32[$692 >> 2] | 0; - $702 = $701 + -24 | 0; - $704 = $701; + } + } + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; do { - $703 = $704 + -24 | 0; - HEAP32[$692 >> 2] = $703; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($703); - $704 = HEAP32[$692 >> 2] | 0; - } while (($704 | 0) != ($702 | 0)); - $707 = HEAP8[$tmp3 >> 0] | 0; - $709 = ($707 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($701 + -48 | 0, $709 ? $tmp3 + 1 | 0 : HEAP32[$tmp3 + 8 >> 2] | 0, $709 ? ($707 & 255) >>> 1 : HEAP32[$tmp3 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp3); - $$02 = $690; - break L1; + $259 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$534 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $326 = $labelInfo + 12 + ($i$633 << 2) | 0; + $329 = $i$633 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - } else $$02 = $first; while (0); + } STACKTOP = sp; - return $$02 | 0; + return $$0 | 0; } -function _printf_core($f, $fmt, $ap, $nl_arg, $nl_type) { - $f = $f | 0; - $fmt = $fmt | 0; - $ap = $ap | 0; - $nl_arg = $nl_arg | 0; - $nl_type = $nl_type | 0; - var $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$21$i = 0, $$210$i = 0, $$23$i = 0, $$3$i = 0.0, $$31$i = 0, $$311$i = 0, $$4$i = 0.0, $$412$lcssa$i = 0, $$41276$i = 0, $$5$lcssa$i = 0, $$51 = 0, $$587$i = 0, $$a$3$i = 0, $$a$3186$i = 0, $$fl$4 = 0, $$lcssa = 0, $$lcssa159$i = 0, $$lcssa318 = 0, $$lcssa323 = 0, $$lcssa324 = 0, $$lcssa325 = 0, $$lcssa326 = 0, $$lcssa327 = 0, $$lcssa329 = 0, $$lcssa339 = 0, $$lcssa342 = 0.0, $$lcssa344 = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr47$i = 0, $$pre$phi184$iZ2D = 0, $$pre182$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $107 = 0, $109 = 0, $11 = 0, $12 = 0, $13 = 0, $133 = 0, $134 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $144 = 0, $146 = 0, $148 = 0, $149 = 0, $15 = 0, $154 = 0, $157 = 0, $162 = 0, $163 = 0, $168 = 0, $175 = 0, $176 = 0, $187 = 0, $19 = 0, $199 = 0, $2 = 0, $206 = 0, $208 = 0, $21 = 0, $211 = 0, $212 = 0, $217 = 0, $223 = 0, $224 = 0, $23 = 0, $230 = 0, $24 = 0, $243 = 0, $245 = 0, $248 = 0, $253 = 0, $256 = 0, $257 = 0, $267 = 0, $269 = 0, $271 = 0, $274 = 0, $276 = 0, $277 = 0, $278 = 0, $28 = 0, $284 = 0, $286 = 0, $287 = 0, $29 = 0, $291 = 0, $299 = 0, $3 = 0, $305 = 0, $314 = 0, $317 = 0, $320 = 0, $321 = 0, $334 = 0, $336 = 0, $34 = 0, $341 = 0, $346 = 0, $349 = 0, $359 = 0.0, $366 = 0, $370 = 0, $377 = 0, $379 = 0, $381 = 0, $382 = 0, $386 = 0, $39 = 0, $392 = 0.0, $393 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $401 = 0, $403 = 0, $407 = 0.0, $417 = 0, $420 = 0, $423 = 0, $432 = 0, $434 = 0, $435 = 0, $44 = 0, $441 = 0, $459 = 0, $46 = 0, $464 = 0, $469 = 0, $47 = 0, $479 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $491 = 0, $492 = 0, $495 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $501 = 0, $505 = 0, $507 = 0, $51 = 0, $511 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $521 = 0, $527 = 0, $528 = 0, $529 = 0, $533 = 0, $541 = 0, $555 = 0, $556 = 0, $559 = 0, $56 = 0, $564 = 0, $565 = 0, $567 = 0, $574 = 0, $575 = 0, $576 = 0, $579 = 0, $580 = 0, $581 = 0, $588 = 0, $59 = 0, $598 = 0, $6 = 0, $60 = 0, $601 = 0, $603 = 0, $605 = 0, $607 = 0, $61 = 0, $612 = 0, $613 = 0, $616 = 0, $618 = 0, $620 = 0, $622 = 0, $633 = 0, $636 = 0, $641 = 0, $650 = 0, $651 = 0, $655 = 0, $658 = 0, $66 = 0, $660 = 0, $662 = 0, $666 = 0, $669 = 0, $67 = 0, $673 = 0, $683 = 0, $688 = 0, $695 = 0, $698 = 0, $7 = 0, $706 = 0, $716 = 0, $718 = 0, $726 = 0, $733 = 0, $735 = 0, $739 = 0, $741 = 0, $750 = 0, $756 = 0, $771 = 0, $773 = 0, $786 = 0, $8 = 0, $9 = 0, $91 = 0, $92 = 0, $98 = 0, $99 = 0, $a$0 = 0, $a$1 = 0, $a$1$lcssa$i = 0, $a$1147$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3134$i = 0, $a$5$lcssa$i = 0, $a$5109$i = 0, $a$6$i = 0, $a$7$i = 0, $a$8$ph$i = 0, $arg = 0, $argpos$0 = 0, $big$i = 0, $buf = 0, $buf$i = 0, $carry$0140$i = 0, $carry3$0128$i = 0, $cnt$0 = 0, $cnt$1 = 0, $cnt$1$lcssa = 0, $d$0139$i = 0, $d$0141$i = 0, $d$1127$i = 0, $d$2$lcssa$i = 0, $d$2108$i = 0, $d$3$i = 0, $d$482$i = 0, $d$575$i = 0, $d$686$i = 0, $e$0123$i = 0, $e$1$i = 0, $e$2104$i = 0, $e$3$i = 0, $e$4$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$193$i = 0, $estr$2$i = 0, $fl$0109 = 0, $fl$062 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $fmt39$lcssa = 0, $fmt39101 = 0, $fmt40 = 0, $fmt41 = 0, $fmt42 = 0, $fmt44 = 0, $fmt44$lcssa321 = 0, $fmt45 = 0, $i$0$lcssa = 0, $i$0$lcssa200 = 0, $i$0114 = 0, $i$0122$i = 0, $i$03$i = 0, $i$03$i25 = 0, $i$1$lcssa$i = 0, $i$1116$i = 0, $i$1125 = 0, $i$2100 = 0, $i$2100$lcssa = 0, $i$2103$i = 0, $i$398 = 0, $i$399$i = 0, $isdigittmp = 0, $isdigittmp1$i = 0, $isdigittmp1$i22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i24 = 0, $isdigittmp9 = 0, $j$0115$i = 0, $j$0117$i = 0, $j$1100$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1113 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notrhs$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $p$4198 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0, $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$8$i = 0, $re$169$i = 0, $round$068$i = 0.0, $round6$1$i = 0.0, $s$0$i = 0, $s$1$i = 0, $s$1$i$lcssa = 0, $s7$079$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$070$i = 0, $s9$0$i = 0, $s9$183$i = 0, $s9$2$i = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa322 = 0, $storemerge = 0, $storemerge13 = 0, $storemerge8108 = 0, $storemerge860 = 0, $t$0 = 0, $t$1 = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $wc = 0, $ws$0115 = 0, $ws$1126 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$0102 = 0, $z$1$lcssa$i = 0, $z$1146$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0, $z$3$lcssa$i = 0, $z$3133$i = 0, $z$4$i = 0, $z$6$$i = 0, $z$6$i = 0, $z$6$i$lcssa = 0, $z$6$ph$i = 0, label = 0, sp = 0; +function _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 624 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $big$i = sp + 24 | 0; - $e2$i = sp + 16 | 0; - $buf$i = sp + 588 | 0; - $ebuf0$i = sp + 576 | 0; - $arg = sp; - $buf = sp + 536 | 0; - $wc = sp + 8 | 0; - $mb = sp + 528 | 0; - $0 = ($f | 0) != 0; - $1 = $buf + 40 | 0; - $2 = $1; - $3 = $buf + 39 | 0; - $4 = $wc + 4 | 0; - $5 = $ebuf0$i + 12 | 0; - $6 = $ebuf0$i + 11 | 0; - $7 = $buf$i; - $8 = $5; - $9 = $8 - $7 | 0; - $10 = -2 - $7 | 0; - $11 = $8 + 2 | 0; - $12 = $big$i + 288 | 0; - $13 = $buf$i + 9 | 0; - $14 = $13; - $15 = $buf$i + 8 | 0; - $cnt$0 = 0; - $fmt41 = $fmt; - $l$0 = 0; - $l10n$0 = 0; - L1 : while (1) { - do if (($cnt$0 | 0) > -1) if (($l$0 | 0) > (2147483647 - $cnt$0 | 0)) { - $19 = ___errno_location() | 0; - HEAP32[$19 >> 2] = 75; - $cnt$1 = -1; - break; - } else { - $cnt$1 = $l$0 + $cnt$0 | 0; - break; - } else $cnt$1 = $cnt$0; while (0); - $21 = HEAP8[$fmt41 >> 0] | 0; - if (!($21 << 24 >> 24)) { - $cnt$1$lcssa = $cnt$1; - $l10n$0$lcssa = $l10n$0; - label = 245; - break; - } else { - $23 = $21; - $fmt40 = $fmt41; - } - L9 : while (1) { - switch ($23 << 24 >> 24) { - case 37: - { - $fmt39101 = $fmt40; - $z$0102 = $fmt40; - label = 9; - break L9; - break; - } - case 0: - { - $fmt39$lcssa = $fmt40; - $z$0$lcssa = $fmt40; - break L9; - break; - } - default: - {} + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } - $24 = $fmt40 + 1 | 0; - $23 = HEAP8[$24 >> 0] | 0; - $fmt40 = $24; } - L12 : do if ((label | 0) == 9) while (1) { - label = 0; - if ((HEAP8[$fmt39101 + 1 >> 0] | 0) != 37) { - $fmt39$lcssa = $fmt39101; - $z$0$lcssa = $z$0102; - break L12; - } - $28 = $z$0102 + 1 | 0; - $29 = $fmt39101 + 2 | 0; - if ((HEAP8[$29 >> 0] | 0) == 37) { - $fmt39101 = $29; - $z$0102 = $28; - label = 9; - } else { - $fmt39$lcssa = $29; - $z$0$lcssa = $28; - break; + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } - } while (0); - $34 = $z$0$lcssa - $fmt41 | 0; - if ($0) if (!(HEAP32[$f >> 2] & 32)) ___fwritex($fmt41, $34, $f) | 0; - if (($z$0$lcssa | 0) != ($fmt41 | 0)) { - $cnt$0 = $cnt$1; - $fmt41 = $fmt39$lcssa; - $l$0 = $34; - continue; - } - $39 = $fmt39$lcssa + 1 | 0; - $40 = HEAP8[$39 >> 0] | 0; - $isdigittmp = ($40 << 24 >> 24) + -48 | 0; - if ($isdigittmp >>> 0 < 10) { - $44 = (HEAP8[$fmt39$lcssa + 2 >> 0] | 0) == 36; - $$51 = $44 ? $fmt39$lcssa + 3 | 0 : $39; - $47 = HEAP8[$$51 >> 0] | 0; - $argpos$0 = $44 ? $isdigittmp : -1; - $l10n$1 = $44 ? 1 : $l10n$0; - $storemerge = $$51; - } else { - $47 = $40; - $argpos$0 = -1; - $l10n$1 = $l10n$0; - $storemerge = $39; } - $46 = $47 << 24 >> 24; - L25 : do if (($46 & -32 | 0) == 32) { - $51 = $46; - $56 = $47; - $fl$0109 = 0; - $storemerge8108 = $storemerge; - while (1) { - if (!(1 << $51 + -32 & 75913)) { - $66 = $56; - $fl$062 = $fl$0109; - $storemerge860 = $storemerge8108; - break L25; - } - $59 = 1 << ($56 << 24 >> 24) + -32 | $fl$0109; - $60 = $storemerge8108 + 1 | 0; - $61 = HEAP8[$60 >> 0] | 0; - $51 = $61 << 24 >> 24; - if (($51 & -32 | 0) != 32) { - $66 = $61; - $fl$062 = $59; - $storemerge860 = $60; - break; - } else { - $56 = $61; - $fl$0109 = $59; - $storemerge8108 = $60; - } - } - } else { - $66 = $47; - $fl$062 = 0; - $storemerge860 = $storemerge; - } while (0); - do if ($66 << 24 >> 24 == 42) { - $67 = $storemerge860 + 1 | 0; - $isdigittmp11 = (HEAP8[$67 >> 0] | 0) + -48 | 0; - if ($isdigittmp11 >>> 0 < 10) if ((HEAP8[$storemerge860 + 2 >> 0] | 0) == 36) { - HEAP32[$nl_type + ($isdigittmp11 << 2) >> 2] = 10; - $l10n$2 = 1; - $storemerge13 = $storemerge860 + 3 | 0; - $w$0 = HEAP32[$nl_arg + ((HEAP8[$67 >> 0] | 0) + -48 << 3) >> 2] | 0; - } else label = 24; else label = 24; - if ((label | 0) == 24) { - label = 0; - if ($l10n$1) { - $$0 = -1; - break L1; - } - if (!$0) { - $fl$1 = $fl$062; - $fmt42 = $67; - $l10n$3 = 0; - $w$1 = 0; - break; - } - $91 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $92 = HEAP32[$91 >> 2] | 0; - HEAP32[$ap >> 2] = $91 + 4; - $l10n$2 = 0; - $storemerge13 = $67; - $w$0 = $92; - } - if (($w$0 | 0) < 0) { - $fl$1 = $fl$062 | 8192; - $fmt42 = $storemerge13; - $l10n$3 = $l10n$2; - $w$1 = 0 - $w$0 | 0; - } else { - $fl$1 = $fl$062; - $fmt42 = $storemerge13; - $l10n$3 = $l10n$2; - $w$1 = $w$0; - } - } else { - $isdigittmp1$i = ($66 << 24 >> 24) + -48 | 0; - if ($isdigittmp1$i >>> 0 < 10) { - $100 = $storemerge860; - $i$03$i = 0; - $isdigittmp4$i = $isdigittmp1$i; + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - $98 = ($i$03$i * 10 | 0) + $isdigittmp4$i | 0; - $99 = $100 + 1 | 0; - $isdigittmp4$i = (HEAP8[$99 >> 0] | 0) + -48 | 0; - if ($isdigittmp4$i >>> 0 >= 10) { - $$lcssa = $98; - $$lcssa318 = $99; + $30 = HEAPU8[$pnt$164 >> 0] | 0; + $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; + do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) { + $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($47 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $47; + $50 = ($47 << 16 >> 16) * 7 | 0; + $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; + $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; + $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; + HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $71 = $70 << 16 >> 16; + $72 = $70 << 16 >> 16 > 0; + if ($66 << 16 >> 16 <= 0) { + if ($72) { + HEAP16[$pnt2$363 >> 1] = $70; + $172 = $71 * 7 | 0; + $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; + $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; + $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; + $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; + if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($192 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $192; + $195 = ($192 << 16 >> 16) * 7 | 0; + $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; + $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; + $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; + HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; + $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; + if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$209 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $212 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $212; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; + $217 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $212; + break; + } + } + if ($72) { + $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; + if (($75 | 0) > ($78 | 0)) { + HEAP16[$pnt2$363 >> 1] = $78; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $95 = $78; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $95 = $78; + } else { + HEAP16[$pnt2$363 >> 1] = $75; + if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $95 = $75; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $95 = $75; + } + $97 = ($95 << 16 >> 16) * 7 | 0; + $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; + $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; + $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($113 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $66; + $153 = $67 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; + $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($118 | 0) > ($121 | 0)) { + HEAP16[$pnt2$363 >> 1] = $121; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $138 = $121; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $138 = $121; + } else { + HEAP16[$pnt2$363 >> 1] = $118; + if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $138 = $118; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $138 = $118; + } + $140 = ($138 << 16 >> 16) * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $232 = $pnt$164 + 4 | 0; + $233 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $232; + $pnt2$3$lcssa = $233; + $wk_max$1$lcssa = $wk_max$2; break; } else { - $100 = $99; - $i$03$i = $98; + $pnt$164 = $232; + $pnt2$363 = $233; + $wk_max$158 = $wk_max$2; } } - if (($$lcssa | 0) < 0) { - $$0 = -1; - break L1; - } else { - $fl$1 = $fl$062; - $fmt42 = $$lcssa318; - $l10n$3 = $l10n$1; - $w$1 = $$lcssa; - } } else { - $fl$1 = $fl$062; - $fmt42 = $storemerge860; - $l10n$3 = $l10n$1; - $w$1 = 0; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - } while (0); - L46 : do if ((HEAP8[$fmt42 >> 0] | 0) == 46) { - $106 = $fmt42 + 1 | 0; - $107 = HEAP8[$106 >> 0] | 0; - if ($107 << 24 >> 24 != 42) { - $isdigittmp1$i22 = ($107 << 24 >> 24) + -48 | 0; - if ($isdigittmp1$i22 >>> 0 < 10) { - $139 = $106; - $i$03$i25 = 0; - $isdigittmp4$i24 = $isdigittmp1$i22; + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $241 = HEAP32[$wk$440 >> 2] | 0; + if (($241 | 0) == ($i$338 | 0)) { + $247 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $fmt45 = $106; - $p$0 = 0; - break; + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - while (1) { - $137 = ($i$03$i25 * 10 | 0) + $isdigittmp4$i24 | 0; - $138 = $139 + 1 | 0; - $isdigittmp4$i24 = (HEAP8[$138 >> 0] | 0) + -48 | 0; - if ($isdigittmp4$i24 >>> 0 >= 10) { - $fmt45 = $138; - $p$0 = $137; - break L46; - } else { - $139 = $138; - $i$03$i25 = $137; - } + HEAP32[$wk$440 >> 2] = $247; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } } - $109 = $fmt42 + 2 | 0; - $isdigittmp9 = (HEAP8[$109 >> 0] | 0) + -48 | 0; - if ($isdigittmp9 >>> 0 < 10) if ((HEAP8[$fmt42 + 3 >> 0] | 0) == 36) { - HEAP32[$nl_type + ($isdigittmp9 << 2) >> 2] = 10; - $fmt45 = $fmt42 + 4 | 0; - $p$0 = HEAP32[$nl_arg + ((HEAP8[$109 >> 0] | 0) + -48 << 3) >> 2] | 0; - break; - } - if ($l10n$3) { - $$0 = -1; - break L1; + } + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $259 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); } - if ($0) { - $133 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $134 = HEAP32[$133 >> 2] | 0; - HEAP32[$ap >> 2] = $133 + 4; - $fmt45 = $109; - $p$0 = $134; - } else { - $fmt45 = $109; - $p$0 = 0; + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$534 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - } else { - $fmt45 = $fmt42; - $p$0 = -1; - } while (0); - $fmt44 = $fmt45; - $st$0 = 0; + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $326 = $labelInfo + 12 + ($i$633 << 2) | 0; + $329 = $i$633 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - $144 = (HEAP8[$fmt44 >> 0] | 0) + -65 | 0; - if ($144 >>> 0 > 57) { - $$0 = -1; - break L1; - } - $146 = $fmt44 + 1 | 0; - $148 = HEAP8[17803 + ($st$0 * 58 | 0) + $144 >> 0] | 0; - $149 = $148 & 255; - if (($149 + -1 | 0) >>> 0 < 8) { - $fmt44 = $146; - $st$0 = $149; - } else { - $$lcssa323 = $146; - $$lcssa324 = $148; - $$lcssa325 = $149; - $fmt44$lcssa321 = $fmt44; - $st$0$lcssa322 = $st$0; - break; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } - if (!($$lcssa324 << 24 >> 24)) { - $$0 = -1; - break; - } - $154 = ($argpos$0 | 0) > -1; - do if ($$lcssa324 << 24 >> 24 == 19) if ($154) { - $$0 = -1; - break L1; - } else label = 52; else { - if ($154) { - HEAP32[$nl_type + ($argpos$0 << 2) >> 2] = $$lcssa325; - $157 = $nl_arg + ($argpos$0 << 3) | 0; - $162 = HEAP32[$157 + 4 >> 2] | 0; - $163 = $arg; - HEAP32[$163 >> 2] = HEAP32[$157 >> 2]; - HEAP32[$163 + 4 >> 2] = $162; - label = 52; - break; - } - if (!$0) { - $$0 = 0; - break L1; - } - _pop_arg($arg, $$lcssa325, $ap); - } while (0); - if ((label | 0) == 52) { - label = 0; - if (!$0) { - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue; + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } - $168 = HEAP8[$fmt44$lcssa321 >> 0] | 0; - $t$0 = ($st$0$lcssa322 | 0) != 0 & ($168 & 15 | 0) == 3 ? $168 & -33 : $168; - $175 = $fl$1 & -65537; - $fl$1$ = ($fl$1 & 8192 | 0) == 0 ? $fl$1 : $175; - L75 : do switch ($t$0 | 0) { - case 110: - { - switch ($st$0$lcssa322 | 0) { - case 0: - { - HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 1: - { - HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 2: - { - $187 = HEAP32[$arg >> 2] | 0; - HEAP32[$187 >> 2] = $cnt$1; - HEAP32[$187 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 3: - { - HEAP16[HEAP32[$arg >> 2] >> 1] = $cnt$1; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 4: - { - HEAP8[HEAP32[$arg >> 2] >> 0] = $cnt$1; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 6: - { - HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; - break; - } - case 7: - { - $199 = HEAP32[$arg >> 2] | 0; - HEAP32[$199 >> 2] = $cnt$1; - HEAP32[$199 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31; - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + $30 = HEAPU8[$pnt$164 >> 0] | 0; + $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; + do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($47 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $47; + $50 = ($47 << 16 >> 16) * 7 | 0; + $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; + $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; + $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; + HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $71 = $70 << 16 >> 16; + $72 = $70 << 16 >> 16 > 0; + if ($66 << 16 >> 16 <= 0) { + if ($72) { + HEAP16[$pnt2$363 >> 1] = $70; + $172 = $71 * 7 | 0; + $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; + $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; + $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; + $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; + if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($192 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $192; + $195 = ($192 << 16 >> 16) * 7 | 0; + $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; + $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; + $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; + HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; + $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; + if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$209 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $212 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $212; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; + $217 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $212; + break; + } + } + if ($72) { + $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; + if (($75 | 0) > ($78 | 0)) { + HEAP16[$pnt2$363 >> 1] = $78; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $95 = $78; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $95 = $78; + } else { + HEAP16[$pnt2$363 >> 1] = $75; + if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $95 = $75; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $95 = $75; + } + $97 = ($95 << 16 >> 16) * 7 | 0; + $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; + $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; + $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($113 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $66; + $153 = $67 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; + $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($118 | 0) > ($121 | 0)) { + HEAP16[$pnt2$363 >> 1] = $121; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $138 = $121; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $138 = $121; + } else { + HEAP16[$pnt2$363 >> 1] = $118; + if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $138 = $118; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $138 = $118; + } + $140 = ($138 << 16 >> 16) * 7 | 0; + $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; + $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; + $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $232 = $pnt$164 + 4 | 0; + $233 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $232; + $pnt2$3$lcssa = $233; + $wk_max$1$lcssa = $wk_max$2; break; - } - default: - { - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $34; - $l10n$0 = $l10n$3; - continue L1; + } else { + $pnt$164 = $232; + $pnt2$363 = $233; + $wk_max$158 = $wk_max$2; } } - break; - } - case 112: - { - $fl$3 = $fl$1$ | 8; - $p$1 = $p$0 >>> 0 > 8 ? $p$0 : 8; - $t$1 = 120; - label = 64; - break; + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - case 88: - case 120: - { - $fl$3 = $fl$1$; - $p$1 = $p$0; - $t$1 = $t$0; - label = 64; - break; + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } - case 111: - { - $243 = $arg; - $245 = HEAP32[$243 >> 2] | 0; - $248 = HEAP32[$243 + 4 >> 2] | 0; - if (($245 | 0) == 0 & ($248 | 0) == 0) $$0$lcssa$i = $1; else { - $$03$i33 = $1; - $253 = $245; - $257 = $248; - while (1) { - $256 = $$03$i33 + -1 | 0; - HEAP8[$256 >> 0] = $253 & 7 | 48; - $253 = _bitshift64Lshr($253 | 0, $257 | 0, 3) | 0; - $257 = tempRet0; - if (($253 | 0) == 0 & ($257 | 0) == 0) { - $$0$lcssa$i = $256; - break; - } else $$03$i33 = $256; - } - } - if (!($fl$1$ & 8)) { - $a$0 = $$0$lcssa$i; - $fl$4 = $fl$1$; - $p$2 = $p$0; - $pl$1 = 0; - $prefix$1 = 18283; - label = 77; + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $239 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $241 = HEAP32[$wk$440 >> 2] | 0; + if (($241 | 0) == ($i$338 | 0)) { + $247 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $267 = $2 - $$0$lcssa$i + 1 | 0; - $a$0 = $$0$lcssa$i; - $fl$4 = $fl$1$; - $p$2 = ($p$0 | 0) < ($267 | 0) ? $267 : $p$0; - $pl$1 = 0; - $prefix$1 = 18283; - label = 77; - } - break; - } - case 105: - case 100: - { - $269 = $arg; - $271 = HEAP32[$269 >> 2] | 0; - $274 = HEAP32[$269 + 4 >> 2] | 0; - if (($274 | 0) < 0) { - $276 = _i64Subtract(0, 0, $271 | 0, $274 | 0) | 0; - $277 = tempRet0; - $278 = $arg; - HEAP32[$278 >> 2] = $276; - HEAP32[$278 + 4 >> 2] = $277; - $286 = $276; - $287 = $277; - $pl$0 = 1; - $prefix$0 = 18283; - label = 76; - break L75; + $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - if (!($fl$1$ & 2048)) { - $284 = $fl$1$ & 1; - $286 = $271; - $287 = $274; - $pl$0 = $284; - $prefix$0 = ($284 | 0) == 0 ? 18283 : 18285; - label = 76; + HEAP32[$wk$440 >> 2] = $247; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { - $286 = $271; - $287 = $274; - $pl$0 = 1; - $prefix$0 = 18284; - label = 76; + $j$1$lcssa = $j$2; + break; } - break; - } - case 117: - { - $176 = $arg; - $286 = HEAP32[$176 >> 2] | 0; - $287 = HEAP32[$176 + 4 >> 2] | 0; - $pl$0 = 0; - $prefix$0 = 18283; - label = 76; - break; - } - case 99: - { - HEAP8[$3 >> 0] = HEAP32[$arg >> 2]; - $a$2 = $3; - $fl$6 = $175; - $p$5 = 1; - $pl$2 = 0; - $prefix$2 = 18283; - $z$2 = $1; - break; } - case 109: - { - $314 = ___errno_location() | 0; - $a$1 = _strerror(HEAP32[$314 >> 2] | 0) | 0; - label = 82; - break; + } + $251 = $labelInfo + 8 | 0; + $252 = $j$1$lcssa + -1 | 0; + HEAP32[$251 >> 2] = $252; + if (!$252) $$0 = 0; else { + _memset($239 | 0, 0, $252 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $259 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); } - case 115: - { - $317 = HEAP32[$arg >> 2] | 0; - $a$1 = ($317 | 0) != 0 ? $317 : 18293; - label = 82; - break; + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $274 = $i$534 * 7 | 0; + $277 = $labelInfo + 12 + ($273 << 2) | 0; + HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); + $284 = $273 << 1; + $285 = $labelInfo + 655376 + ($284 << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); + $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; + HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); + $296 = $273 << 2; + $297 = $labelInfo + 131084 + ($296 << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; + $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; + if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; + $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; + $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; + if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - case 67: - { - HEAP32[$wc >> 2] = HEAP32[$arg >> 2]; - HEAP32[$4 >> 2] = 0; - HEAP32[$arg >> 2] = $wc; - $p$4198 = -1; - label = 86; - break; + if ((HEAP32[$251 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $326 = $labelInfo + 12 + ($i$633 << 2) | 0; + $329 = $i$633 << 1; + $330 = $labelInfo + 655376 + ($329 << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); + $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; + HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } - case 83: - { - if (!$p$0) { - _pad($f, 32, $w$1, 0, $fl$1$); - $i$0$lcssa200 = 0; - label = 98; - } else { - $p$4198 = $p$0; - label = 86; - } - break; + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } - case 65: - case 71: - case 70: - case 69: - case 97: - case 103: - case 102: - case 101: - { - $359 = +HEAPF64[$arg >> 3]; - HEAP32[$e2$i >> 2] = 0; - HEAPF64[tempDoublePtr >> 3] = $359; - if ((HEAP32[tempDoublePtr + 4 >> 2] | 0) < 0) { - $$07$i = -$359; - $pl$0$i = 1; - $prefix$0$i = 18300; - } else if (!($fl$1$ & 2048)) { - $366 = $fl$1$ & 1; - $$07$i = $359; - $pl$0$i = $366; - $prefix$0$i = ($366 | 0) == 0 ? 18301 : 18306; - } else { - $$07$i = $359; - $pl$0$i = 1; - $prefix$0$i = 18303; - } - HEAPF64[tempDoublePtr >> 3] = $$07$i; - $370 = HEAP32[tempDoublePtr + 4 >> 2] & 2146435072; - do if ($370 >>> 0 < 2146435072 | ($370 | 0) == 2146435072 & 0 < 0) { - $392 = +_frexpl($$07$i, $e2$i) * 2.0; - $393 = $392 != 0.0; - if ($393) HEAP32[$e2$i >> 2] = (HEAP32[$e2$i >> 2] | 0) + -1; - $396 = $t$0 | 32; - if (($396 | 0) == 97) { - $398 = $t$0 & 32; - $prefix$0$$i = ($398 | 0) == 0 ? $prefix$0$i : $prefix$0$i + 9 | 0; - $401 = $pl$0$i | 2; - $403 = 12 - $p$0 | 0; - do if ($p$0 >>> 0 > 11 | ($403 | 0) == 0) $$1$i = $392; else { - $re$169$i = $403; - $round$068$i = 8.0; - while (1) { - $re$169$i = $re$169$i + -1 | 0; - $407 = $round$068$i * 16.0; - if (!$re$169$i) { - $$lcssa342 = $407; - break; - } else $round$068$i = $407; - } - if ((HEAP8[$prefix$0$$i >> 0] | 0) == 45) { - $$1$i = -($$lcssa342 + (-$392 - $$lcssa342)); - break; - } else { - $$1$i = $392 + $$lcssa342 - $$lcssa342; + } + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + $30 = HEAPU8[$pnt$164 >> 0] | 0; + do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$363 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - } while (0); - $417 = HEAP32[$e2$i >> 2] | 0; - $420 = ($417 | 0) < 0 ? 0 - $417 | 0 : $417; - $423 = _fmt_u($420, (($420 | 0) < 0) << 31 >> 31, $5) | 0; - if (($423 | 0) == ($5 | 0)) { - HEAP8[$6 >> 0] = 48; - $estr$0$i = $6; - } else $estr$0$i = $423; - HEAP8[$estr$0$i + -1 >> 0] = ($417 >> 31 & 2) + 43; - $432 = $estr$0$i + -2 | 0; - HEAP8[$432 >> 0] = $t$0 + 15; - $notrhs$i = ($p$0 | 0) < 1; - $434 = ($fl$1$ & 8 | 0) == 0; - $$2$i = $$1$i; - $s$0$i = $buf$i; - while (1) { - $435 = ~~$$2$i; - $441 = $s$0$i + 1 | 0; - HEAP8[$s$0$i >> 0] = HEAPU8[18267 + $435 >> 0] | $398; - $$2$i = ($$2$i - +($435 | 0)) * 16.0; - do if (($441 - $7 | 0) == 1) { - if ($434 & ($notrhs$i & $$2$i == 0.0)) { - $s$1$i = $441; + $188 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP8[$441 >> 0] = 46; - $s$1$i = $s$0$i + 2 | 0; - } else $s$1$i = $441; while (0); - if (!($$2$i != 0.0)) { - $s$1$i$lcssa = $s$1$i; + HEAP32[$205 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; - } else $s$0$i = $s$1$i; - } - $$pre182$i = $s$1$i$lcssa; - $l$0$i = ($p$0 | 0) != 0 & ($10 + $$pre182$i | 0) < ($p$0 | 0) ? $11 + $p$0 - $432 | 0 : $9 - $432 + $$pre182$i | 0; - $459 = $l$0$i + $401 | 0; - _pad($f, 32, $w$1, $459, $fl$1$); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$$i, $401, $f) | 0; - _pad($f, 48, $w$1, $459, $fl$1$ ^ 65536); - $464 = $$pre182$i - $7 | 0; - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($buf$i, $464, $f) | 0; - $469 = $8 - $432 | 0; - _pad($f, 48, $l$0$i - ($464 + $469) | 0, 0, 0); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($432, $469, $f) | 0; - _pad($f, 32, $w$1, $459, $fl$1$ ^ 8192); - $$0$i = ($459 | 0) < ($w$1 | 0) ? $w$1 : $459; - break; - } - $$p$i = ($p$0 | 0) < 0 ? 6 : $p$0; - if ($393) { - $479 = (HEAP32[$e2$i >> 2] | 0) + -28 | 0; - HEAP32[$e2$i >> 2] = $479; - $$3$i = $392 * 268435456.0; - $481 = $479; - } else { - $$3$i = $392; - $481 = HEAP32[$e2$i >> 2] | 0; - } - $$31$i = ($481 | 0) < 0 ? $big$i : $12; - $482 = $$31$i; - $$4$i = $$3$i; - $z$0$i = $$31$i; - while (1) { - $483 = ~~$$4$i >>> 0; - HEAP32[$z$0$i >> 2] = $483; - $484 = $z$0$i + 4 | 0; - $$4$i = ($$4$i - +($483 >>> 0)) * 1.0e9; - if (!($$4$i != 0.0)) { - $$lcssa326 = $484; - break; - } else $z$0$i = $484; - } - $$pr$i = HEAP32[$e2$i >> 2] | 0; - if (($$pr$i | 0) > 0) { - $491 = $$pr$i; - $a$1147$i = $$31$i; - $z$1146$i = $$lcssa326; - while (1) { - $492 = ($491 | 0) > 29 ? 29 : $491; - $d$0139$i = $z$1146$i + -4 | 0; - do if ($d$0139$i >>> 0 < $a$1147$i >>> 0) $a$2$ph$i = $a$1147$i; else { - $carry$0140$i = 0; - $d$0141$i = $d$0139$i; - while (1) { - $495 = _bitshift64Shl(HEAP32[$d$0141$i >> 2] | 0, 0, $492 | 0) | 0; - $497 = _i64Add($495 | 0, tempRet0 | 0, $carry$0140$i | 0, 0) | 0; - $498 = tempRet0; - $499 = ___uremdi3($497 | 0, $498 | 0, 1e9, 0) | 0; - HEAP32[$d$0141$i >> 2] = $499; - $501 = ___udivdi3($497 | 0, $498 | 0, 1e9, 0) | 0; - $d$0141$i = $d$0141$i + -4 | 0; - if ($d$0141$i >>> 0 < $a$1147$i >>> 0) { - $$lcssa327 = $501; - break; - } else $carry$0140$i = $501; - } - if (!$$lcssa327) { - $a$2$ph$i = $a$1147$i; - break; - } - $505 = $a$1147$i + -4 | 0; - HEAP32[$505 >> 2] = $$lcssa327; - $a$2$ph$i = $505; - } while (0); - $z$2$i = $z$1146$i; - while (1) { - if ($z$2$i >>> 0 <= $a$2$ph$i >>> 0) { - $z$2$i$lcssa = $z$2$i; - break; - } - $507 = $z$2$i + -4 | 0; - if (!(HEAP32[$507 >> 2] | 0)) $z$2$i = $507; else { - $z$2$i$lcssa = $z$2$i; - break; - } - } - $511 = (HEAP32[$e2$i >> 2] | 0) - $492 | 0; - HEAP32[$e2$i >> 2] = $511; - if (($511 | 0) > 0) { - $491 = $511; - $a$1147$i = $a$2$ph$i; - $z$1146$i = $z$2$i$lcssa; } else { - $$pr47$i = $511; - $a$1$lcssa$i = $a$2$ph$i; - $z$1$lcssa$i = $z$2$i$lcssa; + $208 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $208; break; } } - } else { - $$pr47$i = $$pr$i; - $a$1$lcssa$i = $$31$i; - $z$1$lcssa$i = $$lcssa326; - } - if (($$pr47$i | 0) < 0) { - $516 = (($$p$i + 25 | 0) / 9 | 0) + 1 | 0; - $517 = ($396 | 0) == 102; - $519 = $$pr47$i; - $a$3134$i = $a$1$lcssa$i; - $z$3133$i = $z$1$lcssa$i; - while (1) { - $518 = 0 - $519 | 0; - $521 = ($518 | 0) > 9 ? 9 : $518; - do if ($a$3134$i >>> 0 < $z$3133$i >>> 0) { - $527 = (1 << $521) + -1 | 0; - $528 = 1e9 >>> $521; - $carry3$0128$i = 0; - $d$1127$i = $a$3134$i; + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$363 >> 1] = $74; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $91 = $74; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $91 = $74; + } else { + HEAP16[$pnt2$363 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $91 = $71; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $91 = $71; + } + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $109 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$363 >> 1] = $117; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; while (1) { - $529 = HEAP32[$d$1127$i >> 2] | 0; - HEAP32[$d$1127$i >> 2] = ($529 >>> $521) + $carry3$0128$i; - $533 = Math_imul($529 & $527, $528) | 0; - $d$1127$i = $d$1127$i + 4 | 0; - if ($d$1127$i >>> 0 >= $z$3133$i >>> 0) { - $$lcssa329 = $533; + if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $134 = $117; break; - } else $carry3$0128$i = $533; + } else $wk$246 = $wk$246 + 4 | 0; } - $$a$3$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i; - if (!$$lcssa329) { - $$a$3186$i = $$a$3$i; - $z$4$i = $z$3133$i; - break; + } else $134 = $117; + } else { + HEAP16[$pnt2$363 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $134 = $114; + break; + } else $wk$343 = $wk$343 + 4 | 0; } - HEAP32[$z$3133$i >> 2] = $$lcssa329; - $$a$3186$i = $$a$3$i; - $z$4$i = $z$3133$i + 4 | 0; - } else { - $$a$3186$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i; - $z$4$i = $z$3133$i; - } while (0); - $541 = $517 ? $$31$i : $$a$3186$i; - $$z$4$i = ($z$4$i - $541 >> 2 | 0) > ($516 | 0) ? $541 + ($516 << 2) | 0 : $z$4$i; - $519 = (HEAP32[$e2$i >> 2] | 0) + $521 | 0; - HEAP32[$e2$i >> 2] = $519; - if (($519 | 0) >= 0) { - $a$3$lcssa$i = $$a$3186$i; - $z$3$lcssa$i = $$z$4$i; - break; - } else { - $a$3134$i = $$a$3186$i; - $z$3133$i = $$z$4$i; - } + } else $134 = $114; } + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $228 = $pnt$164 + 4 | 0; + $229 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $a$3$lcssa$i = $a$1$lcssa$i; - $z$3$lcssa$i = $z$1$lcssa$i; + $pnt$164 = $228; + $pnt2$363 = $229; + $wk_max$158 = $wk_max$2; } - do if ($a$3$lcssa$i >>> 0 < $z$3$lcssa$i >>> 0) { - $555 = ($482 - $a$3$lcssa$i >> 2) * 9 | 0; - $556 = HEAP32[$a$3$lcssa$i >> 2] | 0; - if ($556 >>> 0 < 10) { - $e$1$i = $555; - break; - } else { - $e$0123$i = $555; - $i$0122$i = 10; - } - while (1) { - $i$0122$i = $i$0122$i * 10 | 0; - $559 = $e$0123$i + 1 | 0; - if ($556 >>> 0 < $i$0122$i >>> 0) { - $e$1$i = $559; - break; - } else $e$0123$i = $559; + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $237 = HEAP32[$wk$440 >> 2] | 0; + if (($237 | 0) == ($i$338 | 0)) { + $243 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $243; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $255 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$534 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $322 = $labelInfo + 12 + ($i$633 << 2) | 0; + $325 = $i$633 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} +function _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $21 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + $30 = HEAPU8[$pnt$164 >> 0] | 0; + do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { + $43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - } else $e$1$i = 0; while (0); - $564 = ($396 | 0) == 103; - $565 = ($$p$i | 0) != 0; - $567 = $$p$i - (($396 | 0) != 102 ? $e$1$i : 0) + (($565 & $564) << 31 >> 31) | 0; - if (($567 | 0) < ((($z$3$lcssa$i - $482 >> 2) * 9 | 0) + -9 | 0)) { - $574 = $567 + 9216 | 0; - $575 = ($574 | 0) / 9 | 0; - $576 = $$31$i + ($575 + -1023 << 2) | 0; - $j$0115$i = (($574 | 0) % 9 | 0) + 1 | 0; - if (($j$0115$i | 0) < 9) { - $i$1116$i = 10; - $j$0117$i = $j$0115$i; - while (1) { - $579 = $i$1116$i * 10 | 0; - $j$0117$i = $j$0117$i + 1 | 0; - if (($j$0117$i | 0) == 9) { - $i$1$lcssa$i = $579; - break; - } else $i$1116$i = $579; + $62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$363 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - } else $i$1$lcssa$i = 10; - $580 = HEAP32[$576 >> 2] | 0; - $581 = ($580 >>> 0) % ($i$1$lcssa$i >>> 0) | 0; - if (!$581) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) { - $a$7$i = $a$3$lcssa$i; - $d$3$i = $576; - $e$3$i = $e$1$i; - } else label = 163; else label = 163; - do if ((label | 0) == 163) { - label = 0; - $$20$i = ((($580 >>> 0) / ($i$1$lcssa$i >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0; - $588 = ($i$1$lcssa$i | 0) / 2 | 0; - do if ($581 >>> 0 < $588 >>> 0) $small$0$i = .5; else { - if (($581 | 0) == ($588 | 0)) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) { - $small$0$i = 1.0; + $188 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - $small$0$i = 1.5; - } while (0); - do if (!$pl$0$i) { - $round6$1$i = $$20$i; - $small$1$i = $small$0$i; + HEAP32[$205 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; } else { - if ((HEAP8[$prefix$0$i >> 0] | 0) != 45) { - $round6$1$i = $$20$i; - $small$1$i = $small$0$i; - break; - } - $round6$1$i = -$$20$i; - $small$1$i = -$small$0$i; - } while (0); - $598 = $580 - $581 | 0; - HEAP32[$576 >> 2] = $598; - if (!($round6$1$i + $small$1$i != $round6$1$i)) { - $a$7$i = $a$3$lcssa$i; - $d$3$i = $576; - $e$3$i = $e$1$i; + $208 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $208; break; } - $601 = $598 + $i$1$lcssa$i | 0; - HEAP32[$576 >> 2] = $601; - if ($601 >>> 0 > 999999999) { - $a$5109$i = $a$3$lcssa$i; - $d$2108$i = $576; - while (1) { - $603 = $d$2108$i + -4 | 0; - HEAP32[$d$2108$i >> 2] = 0; - if ($603 >>> 0 < $a$5109$i >>> 0) { - $605 = $a$5109$i + -4 | 0; - HEAP32[$605 >> 2] = 0; - $a$6$i = $605; - } else $a$6$i = $a$5109$i; - $607 = (HEAP32[$603 >> 2] | 0) + 1 | 0; - HEAP32[$603 >> 2] = $607; - if ($607 >>> 0 > 999999999) { - $a$5109$i = $a$6$i; - $d$2108$i = $603; - } else { - $a$5$lcssa$i = $a$6$i; - $d$2$lcssa$i = $603; - break; + } + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$363 >> 1] = $74; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $91 = $74; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - } - } else { - $a$5$lcssa$i = $a$3$lcssa$i; - $d$2$lcssa$i = $576; - } - $612 = ($482 - $a$5$lcssa$i >> 2) * 9 | 0; - $613 = HEAP32[$a$5$lcssa$i >> 2] | 0; - if ($613 >>> 0 < 10) { - $a$7$i = $a$5$lcssa$i; - $d$3$i = $d$2$lcssa$i; - $e$3$i = $612; - break; + } else $91 = $74; } else { - $e$2104$i = $612; - $i$2103$i = 10; - } - while (1) { - $i$2103$i = $i$2103$i * 10 | 0; - $616 = $e$2104$i + 1 | 0; - if ($613 >>> 0 < $i$2103$i >>> 0) { - $a$7$i = $a$5$lcssa$i; - $d$3$i = $d$2$lcssa$i; - $e$3$i = $616; - break; - } else $e$2104$i = $616; + HEAP16[$pnt2$363 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $91 = $71; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $91 = $71; } - } while (0); - $618 = $d$3$i + 4 | 0; - $a$8$ph$i = $a$7$i; - $e$4$ph$i = $e$3$i; - $z$6$ph$i = $z$3$lcssa$i >>> 0 > $618 >>> 0 ? $618 : $z$3$lcssa$i; - } else { - $a$8$ph$i = $a$3$lcssa$i; - $e$4$ph$i = $e$1$i; - $z$6$ph$i = $z$3$lcssa$i; - } - $620 = 0 - $e$4$ph$i | 0; - $z$6$i = $z$6$ph$i; - while (1) { - if ($z$6$i >>> 0 <= $a$8$ph$i >>> 0) { - $$lcssa159$i = 0; - $z$6$i$lcssa = $z$6$i; + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $622 = $z$6$i + -4 | 0; - if (!(HEAP32[$622 >> 2] | 0)) $z$6$i = $622; else { - $$lcssa159$i = 1; - $z$6$i$lcssa = $z$6$i; + $109 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - } - do if ($564) { - $$p$$i = ($565 & 1 ^ 1) + $$p$i | 0; - if (($$p$$i | 0) > ($e$4$ph$i | 0) & ($e$4$ph$i | 0) > -5) { - $$013$i = $t$0 + -1 | 0; - $$210$i = $$p$$i + -1 - $e$4$ph$i | 0; + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$363 >> 1] = $117; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $134 = $117; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $134 = $117; } else { - $$013$i = $t$0 + -2 | 0; - $$210$i = $$p$$i + -1 | 0; - } - $633 = $fl$1$ & 8; - if ($633) { - $$114$i = $$013$i; - $$311$i = $$210$i; - $$pre$phi184$iZ2D = $633; - break; + HEAP16[$pnt2$363 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $134 = $114; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $134 = $114; } - do if ($$lcssa159$i) { - $636 = HEAP32[$z$6$i$lcssa + -4 >> 2] | 0; - if (!$636) { - $j$2$i = 9; - break; - } - if (!(($636 >>> 0) % 10 | 0)) { - $i$399$i = 10; - $j$1100$i = 0; - } else { - $j$2$i = 0; - break; - } - while (1) { - $i$399$i = $i$399$i * 10 | 0; - $641 = $j$1100$i + 1 | 0; - if (($636 >>> 0) % ($i$399$i >>> 0) | 0) { - $j$2$i = $641; - break; - } else $j$1100$i = $641; - } - } else $j$2$i = 9; while (0); - $650 = (($z$6$i$lcssa - $482 >> 2) * 9 | 0) + -9 | 0; - if (($$013$i | 32 | 0) == 102) { - $651 = $650 - $j$2$i | 0; - $$21$i = ($651 | 0) < 0 ? 0 : $651; - $$114$i = $$013$i; - $$311$i = ($$210$i | 0) < ($$21$i | 0) ? $$210$i : $$21$i; - $$pre$phi184$iZ2D = 0; - break; - } else { - $655 = $650 + $e$4$ph$i - $j$2$i | 0; - $$23$i = ($655 | 0) < 0 ? 0 : $655; - $$114$i = $$013$i; - $$311$i = ($$210$i | 0) < ($$23$i | 0) ? $$210$i : $$23$i; - $$pre$phi184$iZ2D = 0; + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $228 = $pnt$164 + 4 | 0; + $229 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $228; + $pnt2$363 = $229; + $wk_max$158 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $237 = HEAP32[$wk$440 >> 2] | 0; + if (($237 | 0) == ($i$338 | 0)) { + $243 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $243; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $255 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$534 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $322 = $labelInfo + 12 + ($i$633 << 2) | 0; + $325 = $i$633 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; + do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) { + $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - } else { - $$114$i = $t$0; - $$311$i = $$p$i; - $$pre$phi184$iZ2D = $fl$1$ & 8; - } while (0); - $658 = $$311$i | $$pre$phi184$iZ2D; - $660 = ($658 | 0) != 0 & 1; - $662 = ($$114$i | 32 | 0) == 102; - if ($662) { - $$pn$i = ($e$4$ph$i | 0) > 0 ? $e$4$ph$i : 0; - $estr$2$i = 0; - } else { - $666 = ($e$4$ph$i | 0) < 0 ? $620 : $e$4$ph$i; - $669 = _fmt_u($666, (($666 | 0) < 0) << 31 >> 31, $5) | 0; - if (($8 - $669 | 0) < 2) { - $estr$193$i = $669; - while (1) { - $673 = $estr$193$i + -1 | 0; - HEAP8[$673 >> 0] = 48; - if (($8 - $673 | 0) < 2) $estr$193$i = $673; else { - $estr$1$lcssa$i = $673; - break; - } + $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$362 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - } else $estr$1$lcssa$i = $669; - HEAP8[$estr$1$lcssa$i + -1 >> 0] = ($e$4$ph$i >> 31 & 2) + 43; - $683 = $estr$1$lcssa$i + -2 | 0; - HEAP8[$683 >> 0] = $$114$i; - $$pn$i = $8 - $683 | 0; - $estr$2$i = $683; - } - $688 = $pl$0$i + 1 + $$311$i + $660 + $$pn$i | 0; - _pad($f, 32, $w$1, $688, $fl$1$); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$i, $pl$0$i, $f) | 0; - _pad($f, 48, $w$1, $688, $fl$1$ ^ 65536); - do if ($662) { - $r$0$a$8$i = $a$8$ph$i >>> 0 > $$31$i >>> 0 ? $$31$i : $a$8$ph$i; - $d$482$i = $r$0$a$8$i; - while (1) { - $695 = _fmt_u(HEAP32[$d$482$i >> 2] | 0, 0, $13) | 0; - do if (($d$482$i | 0) == ($r$0$a$8$i | 0)) { - if (($695 | 0) != ($13 | 0)) { - $s7$1$i = $695; + $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP8[$15 >> 0] = 48; - $s7$1$i = $15; + HEAP32[$205 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; } else { - if ($695 >>> 0 > $buf$i >>> 0) $s7$079$i = $695; else { - $s7$1$i = $695; - break; - } - while (1) { - $698 = $s7$079$i + -1 | 0; - HEAP8[$698 >> 0] = 48; - if ($698 >>> 0 > $buf$i >>> 0) $s7$079$i = $698; else { - $s7$1$i = $698; - break; - } - } - } while (0); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s7$1$i, $14 - $s7$1$i | 0, $f) | 0; - $706 = $d$482$i + 4 | 0; - if ($706 >>> 0 > $$31$i >>> 0) { - $$lcssa339 = $706; + $208 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $208; break; - } else $d$482$i = $706; + } } - do if ($658) { - if (HEAP32[$f >> 2] & 32) break; - ___fwritex(18335, 1, $f) | 0; - } while (0); - if (($$311$i | 0) > 0 & $$lcssa339 >>> 0 < $z$6$i$lcssa >>> 0) { - $$41276$i = $$311$i; - $d$575$i = $$lcssa339; - while (1) { - $716 = _fmt_u(HEAP32[$d$575$i >> 2] | 0, 0, $13) | 0; - if ($716 >>> 0 > $buf$i >>> 0) { - $s8$070$i = $716; + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$362 >> 1] = $74; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; while (1) { - $718 = $s8$070$i + -1 | 0; - HEAP8[$718 >> 0] = 48; - if ($718 >>> 0 > $buf$i >>> 0) $s8$070$i = $718; else { - $s8$0$lcssa$i = $718; + if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $91 = $74; break; - } - } - } else $s8$0$lcssa$i = $716; - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s8$0$lcssa$i, ($$41276$i | 0) > 9 ? 9 : $$41276$i, $f) | 0; - $d$575$i = $d$575$i + 4 | 0; - $726 = $$41276$i + -9 | 0; - if (!(($$41276$i | 0) > 9 & $d$575$i >>> 0 < $z$6$i$lcssa >>> 0)) { - $$412$lcssa$i = $726; - break; - } else $$41276$i = $726; - } - } else $$412$lcssa$i = $$311$i; - _pad($f, 48, $$412$lcssa$i + 9 | 0, 9, 0); - } else { - $z$6$$i = $$lcssa159$i ? $z$6$i$lcssa : $a$8$ph$i + 4 | 0; - if (($$311$i | 0) > -1) { - $733 = ($$pre$phi184$iZ2D | 0) == 0; - $$587$i = $$311$i; - $d$686$i = $a$8$ph$i; - while (1) { - $735 = _fmt_u(HEAP32[$d$686$i >> 2] | 0, 0, $13) | 0; - if (($735 | 0) == ($13 | 0)) { - HEAP8[$15 >> 0] = 48; - $s9$0$i = $15; - } else $s9$0$i = $735; - do if (($d$686$i | 0) == ($a$8$ph$i | 0)) { - $741 = $s9$0$i + 1 | 0; - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$0$i, 1, $f) | 0; - if ($733 & ($$587$i | 0) < 1) { - $s9$2$i = $741; - break; - } - if (HEAP32[$f >> 2] & 32) { - $s9$2$i = $741; - break; - } - ___fwritex(18335, 1, $f) | 0; - $s9$2$i = $741; - } else { - if ($s9$0$i >>> 0 > $buf$i >>> 0) $s9$183$i = $s9$0$i; else { - $s9$2$i = $s9$0$i; - break; + } else $wk$052 = $wk$052 + 4 | 0; } + } else $91 = $74; + } else { + HEAP16[$pnt2$362 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; while (1) { - $739 = $s9$183$i + -1 | 0; - HEAP8[$739 >> 0] = 48; - if ($739 >>> 0 > $buf$i >>> 0) $s9$183$i = $739; else { - $s9$2$i = $739; + if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $91 = $71; break; - } + } else $wk$149 = $wk$149 + 4 | 0; } - } while (0); - $750 = $14 - $s9$2$i | 0; - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$2$i, ($$587$i | 0) > ($750 | 0) ? $750 : $$587$i, $f) | 0; - $756 = $$587$i - $750 | 0; - $d$686$i = $d$686$i + 4 | 0; - if (!($d$686$i >>> 0 < $z$6$$i >>> 0 & ($756 | 0) > -1)) { - $$5$lcssa$i = $756; - break; - } else $$587$i = $756; + } else $91 = $71; } - } else $$5$lcssa$i = $$311$i; - _pad($f, 48, $$5$lcssa$i + 18 | 0, 18, 0); - if (HEAP32[$f >> 2] & 32) break; - ___fwritex($estr$2$i, $8 - $estr$2$i | 0, $f) | 0; + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$362 >> 1] = $117; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $134 = $117; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $134 = $117; + } else { + HEAP16[$pnt2$362 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $134 = $114; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $134 = $114; + } + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; } while (0); - _pad($f, 32, $w$1, $688, $fl$1$ ^ 8192); - $$0$i = ($688 | 0) < ($w$1 | 0) ? $w$1 : $688; - } else { - $377 = ($t$0 & 32 | 0) != 0; - $379 = $$07$i != $$07$i | 0.0 != 0.0; - $pl$1$i = $379 ? 0 : $pl$0$i; - $381 = $pl$1$i + 3 | 0; - _pad($f, 32, $w$1, $381, $175); - $382 = HEAP32[$f >> 2] | 0; - if (!($382 & 32)) { - ___fwritex($prefix$0$i, $pl$1$i, $f) | 0; - $386 = HEAP32[$f >> 2] | 0; - } else $386 = $382; - if (!($386 & 32)) ___fwritex($379 ? ($377 ? 18327 : 18331) : $377 ? 18319 : 18323, 3, $f) | 0; - _pad($f, 32, $w$1, $381, $fl$1$ ^ 8192); - $$0$i = ($381 | 0) < ($w$1 | 0) ? $w$1 : $381; - } while (0); - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $$0$i; - $l10n$0 = $l10n$3; - continue L1; - break; - } - default: - { - $a$2 = $fmt41; - $fl$6 = $fl$1$; - $p$5 = $p$0; - $pl$2 = 0; - $prefix$2 = 18283; - $z$2 = $1; - } - } while (0); - L313 : do if ((label | 0) == 64) { - label = 0; - $206 = $arg; - $208 = HEAP32[$206 >> 2] | 0; - $211 = HEAP32[$206 + 4 >> 2] | 0; - $212 = $t$1 & 32; - if (($208 | 0) == 0 & ($211 | 0) == 0) { - $a$0 = $1; - $fl$4 = $fl$3; - $p$2 = $p$1; - $pl$1 = 0; - $prefix$1 = 18283; - label = 77; - } else { - $$012$i = $1; - $217 = $208; - $224 = $211; - while (1) { - $223 = $$012$i + -1 | 0; - HEAP8[$223 >> 0] = HEAPU8[18267 + ($217 & 15) >> 0] | $212; - $217 = _bitshift64Lshr($217 | 0, $224 | 0, 4) | 0; - $224 = tempRet0; - if (($217 | 0) == 0 & ($224 | 0) == 0) { - $$lcssa344 = $223; + $i$255 = $i$255 + 1 | 0; + $228 = $pnt$163 + 2 | 0; + $229 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; break; - } else $$012$i = $223; - } - $230 = $arg; - if (($fl$3 & 8 | 0) == 0 | (HEAP32[$230 >> 2] | 0) == 0 & (HEAP32[$230 + 4 >> 2] | 0) == 0) { - $a$0 = $$lcssa344; - $fl$4 = $fl$3; - $p$2 = $p$1; - $pl$1 = 0; - $prefix$1 = 18283; - label = 77; - } else { - $a$0 = $$lcssa344; - $fl$4 = $fl$3; - $p$2 = $p$1; - $pl$1 = 2; - $prefix$1 = 18283 + ($t$1 >> 4) | 0; - label = 77; - } - } - } else if ((label | 0) == 76) { - label = 0; - $a$0 = _fmt_u($286, $287, $1) | 0; - $fl$4 = $fl$1$; - $p$2 = $p$0; - $pl$1 = $pl$0; - $prefix$1 = $prefix$0; - label = 77; - } else if ((label | 0) == 82) { - label = 0; - $320 = _memchr($a$1, 0, $p$0) | 0; - $321 = ($320 | 0) == 0; - $a$2 = $a$1; - $fl$6 = $175; - $p$5 = $321 ? $p$0 : $320 - $a$1 | 0; - $pl$2 = 0; - $prefix$2 = 18283; - $z$2 = $321 ? $a$1 + $p$0 | 0 : $320; - } else if ((label | 0) == 86) { - label = 0; - $i$0114 = 0; - $l$1113 = 0; - $ws$0115 = HEAP32[$arg >> 2] | 0; - while (1) { - $334 = HEAP32[$ws$0115 >> 2] | 0; - if (!$334) { - $i$0$lcssa = $i$0114; - $l$2 = $l$1113; - break; - } - $336 = _wctomb($mb, $334) | 0; - if (($336 | 0) < 0 | $336 >>> 0 > ($p$4198 - $i$0114 | 0) >>> 0) { - $i$0$lcssa = $i$0114; - $l$2 = $336; - break; - } - $341 = $336 + $i$0114 | 0; - if ($p$4198 >>> 0 > $341 >>> 0) { - $i$0114 = $341; - $l$1113 = $336; - $ws$0115 = $ws$0115 + 4 | 0; - } else { - $i$0$lcssa = $341; - $l$2 = $336; - break; - } - } - if (($l$2 | 0) < 0) { - $$0 = -1; - break L1; - } - _pad($f, 32, $w$1, $i$0$lcssa, $fl$1$); - if (!$i$0$lcssa) { - $i$0$lcssa200 = 0; - label = 98; - } else { - $i$1125 = 0; - $ws$1126 = HEAP32[$arg >> 2] | 0; - while (1) { - $346 = HEAP32[$ws$1126 >> 2] | 0; - if (!$346) { - $i$0$lcssa200 = $i$0$lcssa; - label = 98; - break L313; - } - $349 = _wctomb($mb, $346) | 0; - $i$1125 = $349 + $i$1125 | 0; - if (($i$1125 | 0) > ($i$0$lcssa | 0)) { - $i$0$lcssa200 = $i$0$lcssa; - label = 98; - break L313; + } else { + $pnt$163 = $228; + $pnt2$362 = $229; + $wk_max$157 = $wk_max$2; } - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($mb, $349, $f) | 0; - if ($i$1125 >>> 0 >= $i$0$lcssa >>> 0) { - $i$0$lcssa200 = $i$0$lcssa; - label = 98; - break; - } else $ws$1126 = $ws$1126 + 4 | 0; } - } - } while (0); - if ((label | 0) == 98) { - label = 0; - _pad($f, 32, $w$1, $i$0$lcssa200, $fl$1$ ^ 8192); - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = ($w$1 | 0) > ($i$0$lcssa200 | 0) ? $w$1 : $i$0$lcssa200; - $l10n$0 = $l10n$3; - continue; - } - if ((label | 0) == 77) { - label = 0; - $$fl$4 = ($p$2 | 0) > -1 ? $fl$4 & -65537 : $fl$4; - $291 = $arg; - $299 = (HEAP32[$291 >> 2] | 0) != 0 | (HEAP32[$291 + 4 >> 2] | 0) != 0; - if (($p$2 | 0) != 0 | $299) { - $305 = ($299 & 1 ^ 1) + ($2 - $a$0) | 0; - $a$2 = $a$0; - $fl$6 = $$fl$4; - $p$5 = ($p$2 | 0) > ($305 | 0) ? $p$2 : $305; - $pl$2 = $pl$1; - $prefix$2 = $prefix$1; - $z$2 = $1; } else { - $a$2 = $1; - $fl$6 = $$fl$4; - $p$5 = 0; - $pl$2 = $pl$1; - $prefix$2 = $prefix$1; - $z$2 = $1; - } - } - $771 = $z$2 - $a$2 | 0; - $$p$5 = ($p$5 | 0) < ($771 | 0) ? $771 : $p$5; - $773 = $pl$2 + $$p$5 | 0; - $w$2 = ($w$1 | 0) < ($773 | 0) ? $773 : $w$1; - _pad($f, 32, $w$2, $773, $fl$6); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$2, $pl$2, $f) | 0; - _pad($f, 48, $w$2, $773, $fl$6 ^ 65536); - _pad($f, 48, $$p$5, $771, 0); - if (!(HEAP32[$f >> 2] & 32)) ___fwritex($a$2, $771, $f) | 0; - _pad($f, 32, $w$2, $773, $fl$6 ^ 8192); - $cnt$0 = $cnt$1; - $fmt41 = $$lcssa323; - $l$0 = $w$2; - $l10n$0 = $l10n$3; - } - L348 : do if ((label | 0) == 245) if (!$f) if (!$l10n$0$lcssa) $$0 = 0; else { - $i$2100 = 1; - while (1) { - $786 = HEAP32[$nl_type + ($i$2100 << 2) >> 2] | 0; - if (!$786) { - $i$2100$lcssa = $i$2100; - break; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - _pop_arg($nl_arg + ($i$2100 << 3) | 0, $786, $ap); - $i$2100 = $i$2100 + 1 | 0; - if (($i$2100 | 0) >= 10) { - $$0 = 1; - break L348; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - if (($i$2100$lcssa | 0) < 10) { - $i$398 = $i$2100$lcssa; + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; while (1) { - if (HEAP32[$nl_type + ($i$398 << 2) >> 2] | 0) { - $$0 = -1; - break L348; + $237 = HEAP32[$wk$439 >> 2] | 0; + if (($237 | 0) == ($i$337 | 0)) { + $243 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - $i$398 = $i$398 + 1 | 0; - if (($i$398 | 0) >= 10) { - $$0 = 1; + HEAP32[$wk$439 >> 2] = $243; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; } } - } else $$0 = 1; - } else $$0 = $cnt$1$lcssa; while (0); + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $255 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$533 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $322 = $labelInfo + 12 + ($i$632 << 2) | 0; + $325 = $i$632 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i46 = 0, $$0$i$i$i$i62 = 0, $$0$i$i$i26 = 0, $$0$i$i117 = 0, $$0$i49 = 0, $$01$i$i$i122 = 0, $$01$i$i$i41126 = 0, $$01$i$i$i57130 = 0, $$1$i = 0, $$lcssa = 0, $$lcssa154 = 0, $$lcssa155 = 0, $$lcssa157 = 0, $$lcssa158 = 0, $$lcssa160 = 0, $$lcssa161 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $105 = 0, $107 = 0, $108 = 0, $11 = 0, $110 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $117 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $123 = 0, $125 = 0, $126 = 0, $128 = 0, $129 = 0, $13 = 0, $131 = 0, $132 = 0, $134 = 0, $138 = 0, $14 = 0, $141 = 0, $145 = 0, $148 = 0, $148$phi = 0, $149 = 0, $15 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $165 = 0, $17 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $18 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $19 = 0, $190 = 0, $192 = 0, $195 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $21 = 0, $211 = 0, $214 = 0, $214$phi = 0, $215 = 0, $22 = 0, $222 = 0, $223 = 0, $225 = 0, $229 = 0, $23 = 0, $231 = 0, $236 = 0, $238 = 0, $239 = 0, $24 = 0, $241 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $255 = 0, $257 = 0, $260 = 0, $261 = 0, $265 = 0, $269 = 0, $272 = 0, $276 = 0, $279 = 0, $279$phi = 0, $280 = 0, $287 = 0, $288 = 0, $290 = 0, $294 = 0, $296 = 0, $3 = 0, $301 = 0, $303 = 0, $304 = 0, $306 = 0, $31 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $320 = 0, $322 = 0, $325 = 0, $326 = 0, $333 = 0, $334 = 0, $34 = 0, $340 = 0, $346 = 0, $35 = 0, $354 = 0, $356 = 0, $357 = 0, $360 = 0, $365 = 0, $372 = 0, $373 = 0, $382 = 0, $384 = 0, $394 = 0, $4 = 0, $43 = 0, $44 = 0, $46 = 0, $5 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $60 = 0, $62 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $70 = 0, $72 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $86 = 0, $88 = 0, $9 = 0, $91 = 0, $92 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__p$0$i$i116 = 0, $__p$0$ph$i$i = 0, $e$0$i124 = 0, $e$0$i124$lcssa153 = 0, $e$0$i33128 = 0, $e$0$i33128$lcssa156 = 0, $e$0$i52132 = 0, $e$0$i52132$lcssa159 = 0, $n$0120 = 0, $n$0120$lcssa = 0, $num$i51 = 0, $t$0$i125 = 0, $t$0$i34129 = 0, $t$0$i53133 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, dest = 0, sp = 0, stop = 0; + +function _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 480 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer4 = sp + 72 | 0; - $vararg_buffer1 = sp + 48 | 0; - $vararg_buffer = sp + 24 | 0; - $0 = sp; - $num$i51 = sp + 432 | 0; - $1 = sp + 408 | 0; - $2 = sp + 396 | 0; - $3 = sp + 384 | 0; - $4 = sp + 360 | 0; - $5 = sp + 336 | 0; - $6 = sp + 320 | 0; - $7 = sp + 308 | 0; - $8 = sp + 296 | 0; - $9 = sp + 284 | 0; - $10 = sp + 272 | 0; - $11 = sp + 260 | 0; - $12 = sp + 248 | 0; - $13 = sp + 236 | 0; - $14 = sp + 224 | 0; - $15 = sp + 212 | 0; - $16 = sp + 200 | 0; - $17 = sp + 188 | 0; - $18 = sp + 176 | 0; - $19 = sp + 152 | 0; - $20 = sp + 140 | 0; - $21 = sp + 128 | 0; - $22 = sp + 116 | 0; - $23 = sp + 104 | 0; - $24 = sp + 92 | 0; - $25 = $last; - L1 : do if (($25 - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 76) { - $31 = $first + 1 | 0; - do switch (HEAP8[$31 >> 0] | 0) { - case 84: - { - $$0 = $first; - break L1; - break; - } - case 119: - { - $34 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 13764, 7); - $35 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($34, $last, $3, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$0 = ($35 | 0) == ($34 | 0) ? $first : $35; - break L1; - break; - } - case 98: - { - if ((HEAP8[$first + 3 >> 0] | 0) != 69) { - $$0 = $first; - break L1; - } - switch (HEAP8[$first + 2 >> 0] | 0) { - case 48: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($4, 13772); - $43 = $db + 4 | 0; - $44 = HEAP32[$43 >> 2] | 0; - $46 = HEAP32[$db + 8 >> 2] | 0; - if ($44 >>> 0 < $46 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($44, $4); - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 24; - } else { - $53 = HEAP32[$db >> 2] | 0; - $54 = $44 - $53 | 0; - $55 = ($54 | 0) / 24 | 0; - $56 = $55 + 1 | 0; - if (($54 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $60 = ($46 - $53 | 0) / 24 | 0; - if ($60 >>> 0 < 1073741823) { - $62 = $60 << 1; - $$0$i$i$i = $62 >>> 0 < $56 >>> 0 ? $56 : $62; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $55, $db + 12 | 0); - $65 = $0 + 8 | 0; - $66 = HEAP32[$65 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($66, $4); - HEAP32[$65 >> 2] = $66 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); - $$0 = $first + 4 | 0; - break L1; - break; - } - case 49: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($5, 13778); - $69 = $db + 4 | 0; - $70 = HEAP32[$69 >> 2] | 0; - $72 = HEAP32[$db + 8 >> 2] | 0; - if ($70 >>> 0 < $72 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($70, $5); - HEAP32[$69 >> 2] = (HEAP32[$69 >> 2] | 0) + 24; - } else { - $79 = HEAP32[$db >> 2] | 0; - $80 = $70 - $79 | 0; - $81 = ($80 | 0) / 24 | 0; - $82 = $81 + 1 | 0; - if (($80 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $86 = ($72 - $79 | 0) / 24 | 0; - if ($86 >>> 0 < 1073741823) { - $88 = $86 << 1; - $$0$i$i$i26 = $88 >>> 0 < $82 >>> 0 ? $82 : $88; - } else $$0$i$i$i26 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i26, $81, $db + 12 | 0); - $91 = $0 + 8 | 0; - $92 = HEAP32[$91 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($92, $5); - HEAP32[$91 >> 2] = $92 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $$0 = $first + 4 | 0; - break L1; - break; - } - default: - { - $$0 = $first; - break L1; - } - } - break; - } - case 99: - { - $95 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, 13783, 4); - $96 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($95, $last, $6, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6); - $$0 = ($96 | 0) == ($95 | 0) ? $first : $96; - break L1; - break; - } - case 97: - { - $98 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($7, 13788, 11); - $99 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($98, $last, $7, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7); - $$0 = ($99 | 0) == ($98 | 0) ? $first : $99; - break L1; - break; - } - case 104: - { - $101 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($8, 13800, 13); - $102 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($101, $last, $8, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8); - $$0 = ($102 | 0) == ($101 | 0) ? $first : $102; - break L1; - break; - } - case 115: - { - $104 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($9, 13814, 5); - $105 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($104, $last, $9, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9); - $$0 = ($105 | 0) == ($104 | 0) ? $first : $105; - break L1; - break; - } - case 116: - { - $107 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($10, 13820, 14); - $108 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($107, $last, $10, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10); - $$0 = ($108 | 0) == ($107 | 0) ? $first : $108; - break L1; - break; - } - case 105: - { - $110 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($11, 13835, 0); - $111 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($110, $last, $11, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11); - $$0 = ($111 | 0) == ($110 | 0) ? $first : $111; - break L1; - break; - } - case 106: - { - $113 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($12, 13836, 1); - $114 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($113, $last, $12, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12); - $$0 = ($114 | 0) == ($113 | 0) ? $first : $114; - break L1; - break; - } - case 108: - { - $116 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 13838, 1); - $117 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($116, $last, $13, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13); - $$0 = ($117 | 0) == ($116 | 0) ? $first : $117; - break L1; - break; - } - case 109: - { - $119 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 13840, 2); - $120 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($119, $last, $14, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14); - $$0 = ($120 | 0) == ($119 | 0) ? $first : $120; - break L1; - break; - } - case 120: - { - $122 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 13843, 2); - $123 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($122, $last, $15, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15); - $$0 = ($123 | 0) == ($122 | 0) ? $first : $123; - break L1; - break; - } - case 121: - { - $125 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 13846, 3); - $126 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($125, $last, $16, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16); - $$0 = ($126 | 0) == ($125 | 0) ? $first : $126; - break L1; - break; - } - case 110: - { - $128 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 13850, 8); - $129 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($128, $last, $17, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17); - $$0 = ($129 | 0) == ($128 | 0) ? $first : $129; - break L1; - break; - } - case 111: - { - $131 = $first + 2 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 13859, 17); - $132 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($131, $last, $18, $db) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18); - $$0 = ($132 | 0) == ($131 | 0) ? $first : $132; - break L1; - break; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } - case 102: - { - $134 = $first + 2 | 0; - L67 : do if (($25 - $134 | 0) >>> 0 > 8) { - $138 = $first + 10 | 0; - $141 = HEAP8[$134 >> 0] | 0; - $148 = $first; - $e$0$i124 = $0; - $t$0$i125 = $134; - while (1) { - if (!(_isxdigit($141 << 24 >> 24) | 0)) { - $$0$i = $134; - break L67; - } - $145 = HEAP8[$t$0$i125 >> 0] | 0; - $149 = HEAP8[$148 + 3 >> 0] | 0; - HEAP8[$e$0$i124 >> 0] = ((($149 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($149 & 255) + ((($145 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $145 << 4); - $156 = $t$0$i125 + 2 | 0; - $157 = $e$0$i124 + 1 | 0; - $159 = HEAP8[$156 >> 0] | 0; - if (($156 | 0) == ($138 | 0)) { - $$lcssa154 = $157; - $$lcssa155 = $159; - $e$0$i124$lcssa153 = $e$0$i124; - break; - } else { - $148$phi = $t$0$i125; - $141 = $159; - $e$0$i124 = $157; - $t$0$i125 = $156; - $148 = $148$phi; - } - } - if ($$lcssa155 << 24 >> 24 == 69) { - if (($0 | 0) != ($$lcssa154 | 0) & $0 >>> 0 < $e$0$i124$lcssa153 >>> 0) { - $$01$i$i$i122 = $0; - $165 = $e$0$i124$lcssa153; - do { - $163 = HEAP8[$$01$i$i$i122 >> 0] | 0; - HEAP8[$$01$i$i$i122 >> 0] = HEAP8[$165 >> 0] | 0; - HEAP8[$165 >> 0] = $163; - $$01$i$i$i122 = $$01$i$i$i122 + 1 | 0; - $165 = $165 + -1 | 0; - } while ($$01$i$i$i122 >>> 0 < $165 >>> 0); - } - dest = $num$i51; - stop = dest + 24 | 0; - do { - HEAP8[dest >> 0] = 0; - dest = dest + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAPF64[$vararg_buffer >> 3] = +HEAPF32[$0 >> 2]; - $171 = _snprintf($num$i51, 24, 13877, $vararg_buffer) | 0; - if ($171 >>> 0 > 23) $$0$i = $134; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $171); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - $173 = $db + 4 | 0; - $174 = HEAP32[$173 >> 2] | 0; - $176 = HEAP32[$db + 8 >> 2] | 0; - if ($174 >>> 0 < $176 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($174, $1); - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 24; - } else { - $183 = HEAP32[$db >> 2] | 0; - $184 = $174 - $183 | 0; - $185 = ($184 | 0) / 24 | 0; - $186 = $185 + 1 | 0; - if (($184 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $190 = ($176 - $183 | 0) / 24 | 0; - if ($190 >>> 0 < 1073741823) { - $192 = $190 << 1; - $$0$i$i$i$i = $192 >>> 0 < $186 >>> 0 ? $186 : $192; - } else $$0$i$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer, $$0$i$i$i$i, $185, $db + 12 | 0); - $195 = $vararg_buffer + 8 | 0; - $196 = HEAP32[$195 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($196, $1); - HEAP32[$195 >> 2] = $196 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$0$i = $first + 11 | 0; - } - } else $$0$i = $134; - } else $$0$i = $134; while (0); - $$0 = ($$0$i | 0) == ($134 | 0) ? $first : $$0$i; - break L1; - break; + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } - case 100: - { - $200 = $first + 2 | 0; - L91 : do if (($25 - $200 | 0) >>> 0 > 16) { - $204 = $first + 18 | 0; - $207 = HEAP8[$200 >> 0] | 0; - $214 = $first; - $e$0$i33128 = $0; - $t$0$i34129 = $200; - while (1) { - if (!(_isxdigit($207 << 24 >> 24) | 0)) { - $$0$i49 = $200; - break L91; - } - $211 = HEAP8[$t$0$i34129 >> 0] | 0; - $215 = HEAP8[$214 + 3 >> 0] | 0; - HEAP8[$e$0$i33128 >> 0] = ((($215 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($215 & 255) + ((($211 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $211 << 4); - $222 = $t$0$i34129 + 2 | 0; - $223 = $e$0$i33128 + 1 | 0; - $225 = HEAP8[$222 >> 0] | 0; - if (($222 | 0) == ($204 | 0)) { - $$lcssa157 = $223; - $$lcssa158 = $225; - $e$0$i33128$lcssa156 = $e$0$i33128; + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; + do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; - } else { - $214$phi = $t$0$i34129; - $207 = $225; - $e$0$i33128 = $223; - $t$0$i34129 = $222; - $214 = $214$phi; - } - } - if ($$lcssa158 << 24 >> 24 == 69) { - if (($0 | 0) != ($$lcssa157 | 0) & $0 >>> 0 < $e$0$i33128$lcssa156 >>> 0) { - $$01$i$i$i41126 = $0; - $231 = $e$0$i33128$lcssa156; - do { - $229 = HEAP8[$$01$i$i$i41126 >> 0] | 0; - HEAP8[$$01$i$i$i41126 >> 0] = HEAP8[$231 >> 0] | 0; - HEAP8[$231 >> 0] = $229; - $$01$i$i$i41126 = $$01$i$i$i41126 + 1 | 0; - $231 = $231 + -1 | 0; - } while ($$01$i$i$i41126 >>> 0 < $231 >>> 0); } - dest = $num$i51; - stop = dest + 32 | 0; - do { - HEAP8[dest >> 0] = 0; - dest = dest + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAPF64[$vararg_buffer1 >> 3] = +HEAPF64[$0 >> 3]; - $236 = _snprintf($num$i51, 32, 13881, $vararg_buffer1) | 0; - if ($236 >>> 0 > 31) $$0$i49 = $200; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $236); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - $238 = $db + 4 | 0; - $239 = HEAP32[$238 >> 2] | 0; - $241 = HEAP32[$db + 8 >> 2] | 0; - if ($239 >>> 0 < $241 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($239, $1); - HEAP32[$238 >> 2] = (HEAP32[$238 >> 2] | 0) + 24; + $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$362 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$205 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; } else { - $248 = HEAP32[$db >> 2] | 0; - $249 = $239 - $248 | 0; - $250 = ($249 | 0) / 24 | 0; - $251 = $250 + 1 | 0; - if (($249 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $255 = ($241 - $248 | 0) / 24 | 0; - if ($255 >>> 0 < 1073741823) { - $257 = $255 << 1; - $$0$i$i$i$i46 = $257 >>> 0 < $251 >>> 0 ? $251 : $257; - } else $$0$i$i$i$i46 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer1, $$0$i$i$i$i46, $250, $db + 12 | 0); - $260 = $vararg_buffer1 + 8 | 0; - $261 = HEAP32[$260 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($261, $1); - HEAP32[$260 >> 2] = $261 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer1); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer1); + $208 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $208; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$0$i49 = $first + 19 | 0; - } - } else $$0$i49 = $200; - } else $$0$i49 = $200; while (0); - $$0 = ($$0$i49 | 0) == ($200 | 0) ? $first : $$0$i49; - break L1; - break; - } - case 101: - { - $265 = $first + 2 | 0; - L115 : do if (($25 - $265 | 0) >>> 0 > 20) { - $269 = $first + 22 | 0; - $272 = HEAP8[$265 >> 0] | 0; - $279 = $first; - $e$0$i52132 = $0; - $t$0$i53133 = $265; - while (1) { - if (!(_isxdigit($272 << 24 >> 24) | 0)) { - $$1$i = $265; - break L115; } - $276 = HEAP8[$t$0$i53133 >> 0] | 0; - $280 = HEAP8[$279 + 3 >> 0] | 0; - HEAP8[$e$0$i52132 >> 0] = ((($280 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($280 & 255) + ((($276 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $276 << 4); - $287 = $t$0$i53133 + 2 | 0; - $288 = $e$0$i52132 + 1 | 0; - $290 = HEAP8[$287 >> 0] | 0; - if (($287 | 0) == ($269 | 0)) { - $$lcssa160 = $288; - $$lcssa161 = $290; - $e$0$i52132$lcssa159 = $e$0$i52132; + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$362 >> 1] = $74; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $91 = $74; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $91 = $74; + } else { + HEAP16[$pnt2$362 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $91 = $71; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $91 = $71; + } + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; - } else { - $279$phi = $t$0$i53133; - $272 = $290; - $e$0$i52132 = $288; - $t$0$i53133 = $287; - $279 = $279$phi; - } - } - if ($$lcssa161 << 24 >> 24 == 69) { - if (($0 | 0) != ($$lcssa160 | 0) & $0 >>> 0 < $e$0$i52132$lcssa159 >>> 0) { - $$01$i$i$i57130 = $0; - $296 = $e$0$i52132$lcssa159; - do { - $294 = HEAP8[$$01$i$i$i57130 >> 0] | 0; - HEAP8[$$01$i$i$i57130 >> 0] = HEAP8[$296 >> 0] | 0; - HEAP8[$296 >> 0] = $294; - $$01$i$i$i57130 = $$01$i$i$i57130 + 1 | 0; - $296 = $296 + -1 | 0; - } while ($$01$i$i$i57130 >>> 0 < $296 >>> 0); } - dest = $num$i51; - stop = dest + 40 | 0; - do { - HEAP8[dest >> 0] = 0; - dest = dest + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAPF64[$vararg_buffer4 >> 3] = +HEAPF64[$0 >> 3]; - $301 = _snprintf($num$i51, 40, 13884, $vararg_buffer4) | 0; - if ($301 >>> 0 > 39) { - $$1$i = $265; + $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $301); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - $303 = $db + 4 | 0; - $304 = HEAP32[$303 >> 2] | 0; - $306 = HEAP32[$db + 8 >> 2] | 0; - if ($304 >>> 0 < $306 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($304, $1); - HEAP32[$303 >> 2] = (HEAP32[$303 >> 2] | 0) + 24; + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$362 >> 1] = $117; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $134 = $117; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $134 = $117; } else { - $313 = HEAP32[$db >> 2] | 0; - $314 = $304 - $313 | 0; - $315 = ($314 | 0) / 24 | 0; - $316 = $315 + 1 | 0; - if (($314 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $320 = ($306 - $313 | 0) / 24 | 0; - if ($320 >>> 0 < 1073741823) { - $322 = $320 << 1; - $$0$i$i$i$i62 = $322 >>> 0 < $316 >>> 0 ? $316 : $322; - } else $$0$i$i$i$i62 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer4, $$0$i$i$i$i62, $315, $db + 12 | 0); - $325 = $vararg_buffer4 + 8 | 0; - $326 = HEAP32[$325 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($326, $1); - HEAP32[$325 >> 2] = $326 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer4); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer4); + HEAP16[$pnt2$362 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $134 = $114; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $134 = $114; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$1$i = $first + 23 | 0; - } else $$1$i = $265; - } else $$1$i = $265; while (0); - $$0 = ($$1$i | 0) == ($265 | 0) ? $first : $$1$i; - break L1; - break; - } - case 95: - { - if ((HEAP8[$first + 2 >> 0] | 0) != 90) { - $$0 = $first; - break L1; - } - $333 = $first + 3 | 0; - $334 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($333, $last, $db) | 0; - if (($334 | 0) == ($333 | 0) | ($334 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - STACKTOP = sp; - return ((HEAP8[$334 >> 0] | 0) == 69 ? $334 + 1 | 0 : $first) | 0; - } - default: - { - $340 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($31, $last, $db) | 0; - if (($340 | 0) == ($31 | 0) | ($340 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - if ((HEAP8[$340 >> 0] | 0) == 69) { - $$0 = $340 + 1 | 0; - break L1; - } - if (($340 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } else $n$0120 = $340; - while (1) { - $346 = HEAP8[$n$0120 >> 0] | 0; - if ((($346 << 24 >> 24) + -48 | 0) >>> 0 >= 10) { - $$lcssa = $346; - $n$0120$lcssa = $n$0120; + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $228 = $pnt$163 + 2 | 0; + $229 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; break; + } else { + $pnt$163 = $228; + $pnt2$362 = $229; + $wk_max$157 = $wk_max$2; } - $n$0120 = $n$0120 + 1 | 0; - if (($n$0120 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - } - if (!(($n$0120$lcssa | 0) != ($340 | 0) & $$lcssa << 24 >> 24 == 69)) { - $$0 = $first; - break L1; - } - $354 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($354 | 0)) { - $$0 = $first; - break L1; } - $356 = $354 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, $356); - $357 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($23, 0, 12714) | 0; - HEAP32[$22 >> 2] = HEAP32[$357 >> 2]; - HEAP32[$22 + 4 >> 2] = HEAP32[$357 + 4 >> 2]; - HEAP32[$22 + 8 >> 2] = HEAP32[$357 + 8 >> 2]; - HEAP32[$357 >> 2] = 0; - HEAP32[$357 + 4 >> 2] = 0; - HEAP32[$357 + 8 >> 2] = 0; - $360 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 12619) | 0; - HEAP32[$21 >> 2] = HEAP32[$360 >> 2]; - HEAP32[$21 + 4 >> 2] = HEAP32[$360 + 4 >> 2]; - HEAP32[$21 + 8 >> 2] = HEAP32[$360 + 8 >> 2]; - HEAP32[$360 >> 2] = 0; - HEAP32[$360 + 4 >> 2] = 0; - HEAP32[$360 + 8 >> 2] = 0; - $365 = $n$0120$lcssa - $340 | 0; - if ($365 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($24); - if ($365 >>> 0 < 11) { - HEAP8[$24 >> 0] = $365 << 1; - $__p$0$ph$i$i = $24 + 1 | 0; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; + } + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $237 = HEAP32[$wk$439 >> 2] | 0; + if (($237 | 0) == ($i$337 | 0)) { + $243 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $372 = $365 + 16 & -16; - $373 = _malloc($372) | 0; - HEAP32[$24 + 8 >> 2] = $373; - HEAP32[$24 >> 2] = $372 | 1; - HEAP32[$24 + 4 >> 2] = $365; - $__p$0$ph$i$i = $373; + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - if (($340 | 0) != ($n$0120$lcssa | 0)) { - $$0$i$i117 = $340; - $__p$0$i$i116 = $__p$0$ph$i$i; - while (1) { - HEAP8[$__p$0$i$i116 >> 0] = HEAP8[$$0$i$i117 >> 0] | 0; - $$0$i$i117 = $$0$i$i117 + 1 | 0; - if (($$0$i$i117 | 0) == ($n$0120$lcssa | 0)) break; else $__p$0$i$i116 = $__p$0$i$i116 + 1 | 0; - } + HEAP32[$wk$439 >> 2] = $243; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - HEAP8[$__p$0$ph$i$i + $365 >> 0] = 0; - $382 = HEAP8[$24 >> 0] | 0; - $384 = ($382 & 1) == 0; - $394 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $384 ? $24 + 1 | 0 : HEAP32[$24 + 8 >> 2] | 0, $384 ? ($382 & 255) >>> 1 : HEAP32[$24 + 4 >> 2] | 0) | 0; - HEAP32[$20 >> 2] = HEAP32[$394 >> 2]; - HEAP32[$20 + 4 >> 2] = HEAP32[$394 + 4 >> 2]; - HEAP32[$20 + 8 >> 2] = HEAP32[$394 + 8 >> 2]; - HEAP32[$394 >> 2] = 0; - HEAP32[$394 + 4 >> 2] = 0; - HEAP32[$394 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($19, $20); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($356, $19); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23); - $$0 = $n$0120$lcssa + 1 | 0; - break L1; } - } while (0); - } else $$0 = $first; else $$0 = $first; while (0); + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $255 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$533 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $322 = $labelInfo + 12 + ($i$632 << 2) | 0; + $325 = $i$632 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0$i = 0, $$24$ph = 0, $$7 = 0, $$in = 0, $$in109 = 0, $$lcssa150 = 0, $$lcssa151 = 0, $$lcssa156 = 0, $$ph96 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $111 = 0, $118 = 0, $120 = 0, $123 = 0, $127 = 0, $13 = 0, $130 = 0, $135 = 0, $136 = 0, $139 = 0, $140 = 0, $142 = 0, $143 = 0, $152 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $171 = 0, $175 = 0, $176 = 0, $18 = 0, $180 = 0, $183 = 0, $184 = 0, $188 = 0, $191 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $206 = 0, $207 = 0, $209 = 0, $21 = 0, $215 = 0, $22 = 0, $226 = 0, $228 = 0, $240 = 0, $252 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $267 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $281 = 0, $284 = 0, $287 = 0, $29 = 0, $3 = 0, $30 = 0, $303 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $318 = 0, $320 = 0, $331 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $345 = 0, $347 = 0, $349 = 0, $350 = 0, $356 = 0, $361 = 0, $37 = 0, $371 = 0, $373 = 0, $38 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $389 = 0, $392 = 0, $398 = 0, $4 = 0, $402 = 0, $404 = 0, $405 = 0, $411 = 0, $413 = 0, $414 = 0, $42 = 0, $434 = 0, $436 = 0, $446 = 0, $45 = 0, $46 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $58 = 0, $6 = 0, $62 = 0, $65 = 0, $66 = 0, $68 = 0, $7 = 0, $73 = 0, $74 = 0, $76 = 0, $77 = 0, $8 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $90 = 0, $91 = 0, $94 = 0, $99 = 0, $first_arg$0$off0$ph = 0, $first_arg$3$off0$ph = 0, $k$0121 = 0, $k2$0122 = 0, $left$i = 0, $phitmp$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i = 0, $ret1 = 0, $ret2 = 0, $t$0 = 0, $t$1 = 0, $t$1$ph = 0, $t$2 = 0, $tmp = 0, label = 0, sp = 0; +function _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 112 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $left$i = sp + 96 | 0; - $0 = sp + 84 | 0; - $1 = sp + 72 | 0; - $2 = sp + 60 | 0; - $3 = sp + 48 | 0; - $ret2 = sp + 36 | 0; - $ret1 = sp + 24 | 0; - $tmp = sp + 12 | 0; - $4 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$7 = $first; else { - $6 = $db + 56 | 0; - $7 = HEAP32[$6 >> 2] | 0; - $8 = $7 + 1 | 0; - HEAP32[$6 >> 2] = $8; - $9 = $db + 61 | 0; - $10 = HEAP8[$9 >> 0] | 0; - if ($8 >>> 0 > 1) HEAP8[$9 >> 0] = 1; - $13 = HEAP8[$first >> 0] | 0; - L6 : do switch ($13 | 0) { - case 84: - case 71: - { - L107 : do if (($last - $first | 0) > 2) { - switch ($13 | 0) { - case 84: - break; - case 71: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 86: - { - $175 = $first + 2 | 0; - $176 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($175, $last, $db) | 0; - if (($176 | 0) == ($175 | 0)) { - $$0$i = $first; - break L107; - } - $180 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($180 | 0)) { - $$0$i = $first; - break L107; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($180 + -24 | 0, 0, 14547) | 0; - $$0$i = $176; - break L107; - break; - } - case 82: - { - $183 = $first + 2 | 0; - $184 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($183, $last, $db) | 0; - if (($184 | 0) == ($183 | 0)) { - $$0$i = $first; - break L107; - } - $188 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($188 | 0)) { - $$0$i = $first; - break L107; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($188 + -24 | 0, 0, 14567) | 0; - $$0$i = $184; - break L107; - break; - } - default: - { - $$0$i = $first; - break L107; - } - } - break; - } - default: - { - $$0$i = $first; - break L107; - } - } - $18 = $first + 1 | 0; - switch (HEAP8[$18 >> 0] | 0) { - case 86: - { - $21 = $first + 2 | 0; - $22 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0; - if (($22 | 0) == ($21 | 0)) { - $$0$i = $first; - break L107; - } - $26 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($26 | 0)) { - $$0$i = $first; - break L107; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($26 + -24 | 0, 0, 14396) | 0; - $$0$i = $22; - break L107; - break; - } - case 84: - { - $29 = $first + 2 | 0; - $30 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($29, $last, $db) | 0; - if (($30 | 0) == ($29 | 0)) { - $$0$i = $first; - break L107; - } - $34 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($34 | 0)) { - $$0$i = $first; - break L107; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($34 + -24 | 0, 0, 14408) | 0; - $$0$i = $30; - break L107; - break; - } - case 73: - { - $37 = $first + 2 | 0; - $38 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($37, $last, $db) | 0; - if (($38 | 0) == ($37 | 0)) { - $$0$i = $first; - break L107; - } - $42 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($42 | 0)) { - $$0$i = $first; - break L107; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($42 + -24 | 0, 0, 14417) | 0; - $$0$i = $38; - break L107; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; + do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) { + $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - case 83: - { - $45 = $first + 2 | 0; - $46 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($45, $last, $db) | 0; - if (($46 | 0) == ($45 | 0)) { - $$0$i = $first; - break L107; + $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$362 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - $50 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($50 | 0)) { - $$0$i = $first; - break L107; + $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$205 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $208 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $208; + break; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($50 + -24 | 0, 0, 14431) | 0; - $$0$i = $46; - break L107; - break; } - case 99: - { - $53 = $first + 2 | 0; - $54 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($53, $last) | 0; - if (($54 | 0) == ($53 | 0)) { - $$0$i = $first; - break L107; - } - $56 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($54, $last) | 0; - if (($56 | 0) == ($54 | 0)) { - $$0$i = $first; - break L107; - } - $58 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($56, $last, $db) | 0; - if (($58 | 0) == ($56 | 0)) { - $$0$i = $first; - break L107; - } - $62 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($62 | 0)) { - $$0$i = $first; - break L107; + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$362 >> 1] = $74; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $91 = $74; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $91 = $74; + } else { + HEAP16[$pnt2$362 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $91 = $71; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $91 = $71; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($62 + -24 | 0, 0, 14450) | 0; - $$0$i = $58; - break L107; + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - case 67: - { - $65 = $first + 2 | 0; - $66 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($65, $last, $db) | 0; - if (($66 | 0) == ($65 | 0)) { - $$0$i = $first; - break L107; - } - $68 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($66, $last) | 0; - if (($68 | 0) == ($66 | 0) | ($68 | 0) == ($last | 0)) { - $$0$i = $first; - break L107; - } - if ((HEAP8[$68 >> 0] | 0) != 95) { - $$0$i = $first; - break L107; - } - $73 = $68 + 1 | 0; - $74 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($73, $last, $db) | 0; - if (($74 | 0) == ($73 | 0)) { - $$0$i = $first; - break L107; - } - $76 = $db + 4 | 0; - $77 = HEAP32[$76 >> 2] | 0; - if ((($77 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0$i = $first; - break L107; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($left$i, $77 + -24 | 0); - $85 = HEAP32[$76 >> 2] | 0; - $86 = $85 + -24 | 0; - $88 = $85; - do { - $87 = $88 + -24 | 0; - HEAP32[$76 >> 2] = $87; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($87); - $88 = HEAP32[$76 >> 2] | 0; - } while (($88 | 0) != ($86 | 0)); - $90 = $85 + -48 | 0; - $91 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($left$i, 0, 14477) | 0; - HEAP32[$2 >> 2] = HEAP32[$91 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$91 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$91 + 8 >> 2]; - HEAP32[$91 >> 2] = 0; - HEAP32[$91 + 4 >> 2] = 0; - HEAP32[$91 + 8 >> 2] = 0; - $94 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 14502) | 0; - HEAP32[$1 >> 2] = HEAP32[$94 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$94 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$94 + 8 >> 2]; - HEAP32[$94 >> 2] = 0; - HEAP32[$94 + 4 >> 2] = 0; - HEAP32[$94 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$76 >> 2] | 0) + -24 | 0); - $99 = HEAP8[$3 >> 0] | 0; - $101 = ($99 & 1) == 0; - $111 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $101 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $101 ? ($99 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; - HEAP32[$0 >> 2] = HEAP32[$111 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$111 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$111 + 8 >> 2]; - HEAP32[$111 >> 2] = 0; - HEAP32[$111 + 4 >> 2] = 0; - HEAP32[$111 + 8 >> 2] = 0; - do if (!(HEAP8[$90 >> 0] & 1)) { - HEAP8[$90 + 1 >> 0] = 0; - HEAP8[$90 >> 0] = 0; - } else { - $118 = $85 + -40 | 0; - HEAP8[HEAP32[$118 >> 2] >> 0] = 0; - $120 = $85 + -44 | 0; - HEAP32[$120 >> 2] = 0; - $$pre$i$i$i$i = HEAP8[$90 >> 0] | 0; - if (!($$pre$i$i$i$i & 1)) { - $127 = $$pre$i$i$i$i; - $136 = 10; - } else { - $123 = HEAP32[$90 >> 2] | 0; - $127 = $123 & 255; - $136 = ($123 & -2) + -1 | 0; - } - if (!($127 & 1)) { - $130 = ($127 & 255) >>> 1; - if (($127 & 255) < 22) { - $135 = 10; - $155 = $130; - $446 = 1; - } else { - $135 = ($130 + 16 & 240) + -1 | 0; - $155 = $130; - $446 = 1; - } - } else { - $135 = 10; - $155 = 0; - $446 = 0; - } - if (($135 | 0) != ($136 | 0)) { - if (($135 | 0) == 10) { - $142 = $90 + 1 | 0; - $143 = HEAP32[$118 >> 2] | 0; - if ($446) { - _memcpy($142 | 0, $143 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0; - _free($143); - } else { - HEAP8[$142 >> 0] = HEAP8[$143 >> 0] | 0; - _free($143); - } - HEAP8[$90 >> 0] = $155 << 1; - break; - } - $139 = $135 + 1 | 0; - $140 = _malloc($139) | 0; - if (!($135 >>> 0 <= $136 >>> 0 & ($140 | 0) == 0)) { - if ($446) _memcpy($140 | 0, $90 + 1 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0; else { - $152 = HEAP32[$118 >> 2] | 0; - HEAP8[$140 >> 0] = HEAP8[$152 >> 0] | 0; - _free($152); - } - HEAP32[$90 >> 2] = $139 | 1; - HEAP32[$120 >> 2] = $155; - HEAP32[$118 >> 2] = $140; - } - } - } while (0); - HEAP32[$90 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$90 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$90 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($left$i); - $$0$i = $74; - break L107; + $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - default: - { - $160 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($18, $last) | 0; - if (($160 | 0) == ($18 | 0)) { - $$0$i = $first; - break L107; - } - $162 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($160, $last, $db) | 0; - if (($162 | 0) == ($160 | 0)) { - $$0$i = $first; - break L107; - } - $166 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($166 | 0)) { - $$0$i = $first; - break L107; - } - $171 = $166 + -24 | 0; - if ((HEAP8[$first + 2 >> 0] | 0) == 118) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 14507) | 0; - $$0$i = $162; - break L107; - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 14525) | 0; - $$0$i = $162; - break L107; - } + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$362 >> 1] = $117; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $134 = $117; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $134 = $117; + } else { + HEAP16[$pnt2$362 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $134 = $114; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $134 = $114; } + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $228 = $pnt$163 + 2 | 0; + $229 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $228; + $pnt2$362 = $229; + $wk_max$157 = $wk_max$2; } - } else $$0$i = $first; while (0); - $$24$ph = $$0$i; - break; + } + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - default: - { - $191 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - $193 = HEAP32[$db + 48 >> 2] | 0; - $195 = HEAP32[$db + 52 >> 2] | 0; - if (($191 | 0) == ($first | 0)) $$24$ph = $first; else if (($191 | 0) == ($last | 0)) $$24$ph = $last; else { - switch (HEAP8[$191 >> 0] | 0) { - case 46: - case 69: - { - $$24$ph = $191; - break L6; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $237 = HEAP32[$wk$439 >> 2] | 0; + if (($237 | 0) == ($i$337 | 0)) { + $243 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; + } + HEAP32[$wk$439 >> 2] = $243; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $255 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$533 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $322 = $labelInfo + 12 + ($i$632 << 2) | 0; + $325 = $i$632 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; + do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($43 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $43; + $46 = ($43 << 16 >> 16) * 7 | 0; + $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; + $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; + $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; + HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - default: - {} - } - $199 = HEAP8[$9 >> 0] | 0; - HEAP8[$9 >> 0] = 0; - HEAP32[$ret2 >> 2] = 0; - HEAP32[$ret2 + 4 >> 2] = 0; - HEAP32[$ret2 + 8 >> 2] = 0; - $203 = $db + 4 | 0; - $204 = HEAP32[$203 >> 2] | 0; - L11 : do if ((HEAP32[$db >> 2] | 0) != ($204 | 0)) { - $206 = $204 + -24 | 0; - $207 = HEAP8[$206 >> 0] | 0; - $209 = ($207 & 1) == 0; - if ($209) $215 = ($207 & 255) >>> 1; else $215 = HEAP32[$204 + -20 >> 2] | 0; - if ($215) { - if (!(HEAP8[$db + 60 >> 0] | 0)) { - if ($209) { - $226 = ($207 & 255) >>> 1; - $228 = $206 + 1 | 0; - } else { - $226 = HEAP32[$204 + -20 >> 2] | 0; - $228 = HEAP32[$204 + -16 >> 2] | 0; - } - if ((HEAP8[$228 + ($226 + -1) >> 0] | 0) == 62) { - if ($209) { - $$in = ($207 & 255) >>> 1; - $240 = $206 + 1 | 0; - } else { - $$in = HEAP32[$204 + -20 >> 2] | 0; - $240 = HEAP32[$204 + -16 >> 2] | 0; - } - if ((HEAP8[$240 + ($$in + -2) >> 0] | 0) == 45) { - $331 = $204; - $t$0 = $191; - } else { - if ($209) { - $$in109 = ($207 & 255) >>> 1; - $252 = $206 + 1 | 0; - } else { - $$in109 = HEAP32[$204 + -20 >> 2] | 0; - $252 = HEAP32[$204 + -16 >> 2] | 0; - } - if ((HEAP8[$252 + ($$in109 + -2) >> 0] | 0) == 62) { - $331 = $204; - $t$0 = $191; - } else { - $255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($191, $last, $db) | 0; - if (($255 | 0) == ($191 | 0)) break; - $257 = HEAP32[$203 >> 2] | 0; - if ((($257 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) break; - $264 = $257 + -24 | 0; - HEAP32[$ret1 >> 2] = HEAP32[$264 >> 2]; - HEAP32[$ret1 + 4 >> 2] = HEAP32[$264 + 4 >> 2]; - HEAP32[$ret1 + 8 >> 2] = HEAP32[$264 + 8 >> 2]; - HEAP32[$264 >> 2] = 0; - HEAP32[$264 + 4 >> 2] = 0; - HEAP32[$264 + 8 >> 2] = 0; - $267 = $257 + -12 | 0; - L37 : do if (!(HEAP8[$ret2 >> 0] & 1)) { - HEAP8[$ret2 + 1 >> 0] = 0; - HEAP8[$ret2 >> 0] = 0; - } else { - $272 = $ret2 + 8 | 0; - $273 = HEAP32[$272 >> 2] | 0; - HEAP8[$273 >> 0] = 0; - $274 = $ret2 + 4 | 0; - HEAP32[$274 >> 2] = 0; - $275 = HEAP32[$ret2 >> 2] | 0; - $phitmp$i$i$i$i$i$i = ($275 & -2) + -1 | 0; - $277 = $275 & 255; - do if (!($277 & 1)) { - $281 = $275 >>> 1 & 127; - if (($277 & 255) < 22) { - _memcpy($ret2 + 1 | 0, $273 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0; - _free($273); - $$ph96 = $281; - break; - } - $284 = $281 + 16 & 240; - $phitmp$i2$i$i$i$i$i = $284 + -1 | 0; - if (($phitmp$i2$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i | 0)) break L37; - $287 = _malloc($284) | 0; - if ($phitmp$i2$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i >>> 0 & ($287 | 0) == 0) break L37; - _memcpy($287 | 0, $ret2 + 1 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0; - HEAP32[$ret2 >> 2] = $284 | 1; - HEAP32[$274 >> 2] = $281; - HEAP32[$272 >> 2] = $287; - break L37; - } else { - HEAP8[$ret2 + 1 >> 0] = 0; - _free($273); - $$ph96 = 0; - } while (0); - HEAP8[$ret2 >> 0] = $$ph96 << 1; - } while (0); - HEAP32[$ret2 >> 2] = HEAP32[$267 >> 2]; - HEAP32[$ret2 + 4 >> 2] = HEAP32[$267 + 4 >> 2]; - HEAP32[$ret2 + 8 >> 2] = HEAP32[$267 + 8 >> 2]; - HEAP32[$267 >> 2] = 0; - HEAP32[$267 + 4 >> 2] = 0; - HEAP32[$267 + 8 >> 2] = 0; - $303 = HEAP8[$ret2 >> 0] | 0; - if (!((($303 & 1) == 0 ? ($303 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($ret1, 32); - $312 = HEAP32[$203 >> 2] | 0; - $313 = $312 + -24 | 0; - $315 = $312; - do { - $314 = $315 + -24 | 0; - HEAP32[$203 >> 2] = $314; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($314); - $315 = HEAP32[$203 >> 2] | 0; - } while (($315 | 0) != ($313 | 0)); - $318 = HEAP8[$ret1 >> 0] | 0; - $320 = ($318 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($312 + -48 | 0, 0, $320 ? $ret1 + 1 | 0 : HEAP32[$ret1 + 8 >> 2] | 0, $320 ? ($318 & 255) >>> 1 : HEAP32[$ret1 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret1); - $331 = HEAP32[$203 >> 2] | 0; - $t$0 = $255; - } - } - } else { - $331 = $204; - $t$0 = $191; + $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $67 = $66 << 16 >> 16; + $68 = $66 << 16 >> 16 > 0; + if ($62 << 16 >> 16 <= 0) { + if ($68) { + HEAP16[$pnt2$362 >> 1] = $66; + $168 = $67 * 7 | 0; + $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; + $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; + $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; + $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; + if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($188 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $188; + $191 = ($188 << 16 >> 16) * 7 | 0; + $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; + $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; + $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; + HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; + $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; + if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; } + HEAP32[$205 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; } else { - $331 = $204; - $t$0 = $191; + $208 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $208; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; + $213 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $208; + break; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($331 + -24 | 0, 40); - if (($t$0 | 0) == ($last | 0)) label = 105; else if ((HEAP8[$t$0 >> 0] | 0) == 118) { - $413 = HEAP32[$db >> 2] | 0; - $414 = HEAP32[$203 >> 2] | 0; - $t$2 = $t$0 + 1 | 0; - } else label = 105; - L60 : do if ((label | 0) == 105) { - $335 = $tmp + 4 | 0; - $336 = $4 + 8 | 0; - $337 = $4 + 1 | 0; - $338 = $4 + 4 | 0; - $339 = $tmp + 8 | 0; - $340 = $tmp + 1 | 0; - $341 = $tmp + 4 | 0; - $342 = $tmp + 8 | 0; - $first_arg$0$off0$ph = 1; - $t$1$ph = $t$0; - while (1) { - $345 = HEAP32[$203 >> 2] | 0; - $347 = HEAP32[$db >> 2] | 0; - $t$1 = $t$1$ph; + } + if ($68) { + $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; + if (($71 | 0) > ($74 | 0)) { + HEAP16[$pnt2$362 >> 1] = $74; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; while (1) { - $349 = ($345 - $347 | 0) / 24 | 0; - $350 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1, $last, $db) | 0; - $345 = HEAP32[$203 >> 2] | 0; - $347 = HEAP32[$db >> 2] | 0; - $356 = ($345 - $347 | 0) / 24 | 0; - if (($350 | 0) == ($t$1 | 0)) { - $413 = $347; - $414 = $345; - $t$2 = $t$1; - break L60; - } - if ($356 >>> 0 > $349 >>> 0) { - $$lcssa150 = $349; - $$lcssa151 = $350; - $$lcssa156 = $356; + if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $91 = $74; break; - } else $t$1 = $350; - } - HEAP32[$tmp >> 2] = 0; - HEAP32[$341 >> 2] = 0; - HEAP32[$342 >> 2] = 0; - if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) { - $k$0121 = $$lcssa150; - do { - $361 = HEAP8[$tmp >> 0] | 0; - if ((($361 & 1) == 0 ? ($361 & 255) >>> 1 : HEAP32[$335 >> 2] | 0) | 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($tmp, 12716) | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0121 * 24 | 0) | 0); - $371 = HEAP8[$4 >> 0] | 0; - $373 = ($371 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($tmp, $373 ? $337 : HEAP32[$336 >> 2] | 0, $373 ? ($371 & 255) >>> 1 : HEAP32[$338 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - $k$0121 = $k$0121 + 1 | 0; - } while ($k$0121 >>> 0 < $$lcssa156 >>> 0); - } - if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) { - $k2$0122 = $$lcssa150; - do { - $382 = HEAP32[$203 >> 2] | 0; - $383 = $382 + -24 | 0; - $385 = $382; - do { - $384 = $385 + -24 | 0; - HEAP32[$203 >> 2] = $384; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($384); - $385 = HEAP32[$203 >> 2] | 0; - } while (($385 | 0) != ($383 | 0)); - $k2$0122 = $k2$0122 + 1 | 0; - } while ($k2$0122 >>> 0 < $$lcssa156 >>> 0); + } else $wk$052 = $wk$052 + 4 | 0; } - $389 = HEAP8[$tmp >> 0] | 0; - $392 = HEAP32[$335 >> 2] | 0; - if (!((($389 & 1) == 0 ? ($389 & 255) >>> 1 : $392) | 0)) $first_arg$3$off0$ph = $first_arg$0$off0$ph; else { - $398 = HEAP32[$203 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($398 | 0)) break; - if ($first_arg$0$off0$ph) { - $402 = $398; - $404 = $389; - $411 = $392; - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($398 + -24 | 0, 12716) | 0; - $402 = HEAP32[$203 >> 2] | 0; - $404 = HEAP8[$tmp >> 0] | 0; - $411 = HEAP32[$335 >> 2] | 0; - } - $405 = ($404 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($402 + -24 | 0, $405 ? $340 : HEAP32[$339 >> 2] | 0, $405 ? ($404 & 255) >>> 1 : $411) | 0; - $first_arg$3$off0$ph = 0; + } else $91 = $74; + } else { + HEAP16[$pnt2$362 >> 1] = $71; + if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $91 = $71; + break; + } else $wk$149 = $wk$149 + 4 | 0; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); - $first_arg$0$off0$ph = $first_arg$3$off0$ph; - $t$1$ph = $$lcssa151; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp); - break L11; - } while (0); - if (($413 | 0) != ($414 | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($414 + -24 | 0, 41); - if ($193 & 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12669) | 0; - if ($193 & 2) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12676) | 0; - if ($193 & 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12686) | 0; - switch ($195 | 0) { - case 1: - { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12719) | 0; + } else $91 = $71; + } + $93 = ($91 << 16 >> 16) * 7 | 0; + $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; + $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; + $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; + HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($109 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $62; + $149 = $63 * 7 | 0; + $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; + $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; + $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; + $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; + if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($114 | 0) > ($117 | 0)) { + HEAP16[$pnt2$362 >> 1] = $117; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $134 = $117; break; - } - case 2: - { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12722) | 0; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $134 = $117; + } else { + HEAP16[$pnt2$362 >> 1] = $114; + if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $134 = $114; break; - } - default: - {} + } else $wk$342 = $wk$342 + 4 | 0; } - $434 = HEAP8[$ret2 >> 0] | 0; - $436 = ($434 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$203 >> 2] | 0) + -24 | 0, $436 ? $ret2 + 1 | 0 : HEAP32[$ret2 + 8 >> 2] | 0, $436 ? ($434 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2); - HEAP8[$9 >> 0] = $199; - $$24$ph = $t$2; - break L6; - } + } else $134 = $114; } + $136 = ($134 << 16 >> 16) * 7 | 0; + $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; + $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; + $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; } while (0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2); - HEAP8[$9 >> 0] = $10; - HEAP32[$6 >> 2] = $7; - $$7 = $first; - break L1; + $i$255 = $i$255 + 1 | 0; + $228 = $pnt$163 + 2 | 0; + $229 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $228; + $pnt2$3$lcssa = $229; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $228; + $pnt2$362 = $229; + $wk_max$157 = $wk_max$2; + } } + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - } while (0); - HEAP8[$9 >> 0] = $10; - HEAP32[$6 >> 2] = $7; - $$7 = $$24$ph; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; } while (0); + if ((label | 0) == 52) { + $235 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $237 = HEAP32[$wk$439 >> 2] | 0; + if (($237 | 0) == ($i$337 | 0)) { + $243 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; + } + HEAP32[$wk$439 >> 2] = $243; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $247 = $labelInfo + 8 | 0; + $248 = $j$1$lcssa + -1 | 0; + HEAP32[$247 >> 2] = $248; + if (!$248) $$0 = 0; else { + _memset($235 | 0, 0, $248 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $255 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $270 = $i$533 * 7 | 0; + $273 = $labelInfo + 12 + ($269 << 2) | 0; + HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); + $280 = $269 << 1; + $281 = $labelInfo + 655376 + ($280 << 3) | 0; + HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); + $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; + HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); + $292 = $269 << 2; + $293 = $labelInfo + 131084 + ($292 << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; + $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; + if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; + $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; + $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; + if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$247 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $322 = $labelInfo + 12 + ($i$632 << 2) | 0; + $325 = $i$632 << 1; + $326 = $labelInfo + 655376 + ($325 << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); + $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; + HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; - return $$7 | 0; + return $$0 | 0; } -function _vfscanf($f, $fmt, $ap) { - $f = $f | 0; - $fmt = $fmt | 0; - $ap = $ap | 0; - var $$ = 0, $$lcssa = 0, $$lcssa38 = 0, $$lcssa384 = 0, $$pre = 0, $$pre$phi182Z2D = 0, $$pre170 = 0, $$pre178 = 0, $$size$0 = 0, $0 = 0, $10 = 0, $104 = 0, $105 = 0, $107 = 0, $109 = 0, $11 = 0, $112 = 0, $115 = 0, $117 = 0, $12 = 0, $125 = 0, $129 = 0, $13 = 0, $136 = 0, $14 = 0, $141 = 0, $145 = 0, $15 = 0, $150 = 0, $151 = 0, $157 = 0, $160 = 0, $164 = 0, $166 = 0, $168 = 0, $17 = 0, $173 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $181 = 0, $186 = 0, $190 = 0, $195 = 0, $196 = 0, $197 = 0, $199 = 0, $20 = 0, $201 = 0, $202 = 0, $210 = 0, $220 = 0, $222 = 0, $226 = 0, $228 = 0, $236 = 0, $244 = 0, $245 = 0, $248 = 0, $25 = 0, $250 = 0, $256 = 0, $263 = 0, $265 = 0, $271 = 0, $277 = 0, $281 = 0, $284 = 0, $291 = 0, $306 = 0, $310 = 0.0, $32 = 0, $334 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $62 = 0, $7 = 0, $8 = 0, $81 = 0, $82 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $alloc$0 = 0, $alloc$0400 = 0, $alloc$1 = 0, $alloc$2 = 0, $ap2$i = 0, $base$0 = 0, $c$0100 = 0, $dest$0 = 0, $i$0$i = 0, $i$0$ph = 0, $i$0$ph$phi = 0, $i$0$ph20 = 0, $i$0$ph20$lcssa = 0, $i$1 = 0, $i$2 = 0, $i$2$ph = 0, $i$2$ph$phi = 0, $i$3 = 0, $i$4 = 0, $invert$0 = 0, $isdigittmp = 0, $k$0$ph = 0, $k$1$ph = 0, $matches$0104 = 0, $matches$0104$lcssa = 0, $matches$0104376 = 0, $matches$1 = 0, $matches$2 = 0, $matches$3 = 0, $p$0109 = 0, $p$1 = 0, $p$1$lcssa = 0, $p$10 = 0, $p$11 = 0, $p$2 = 0, $p$3$lcssa = 0, $p$396 = 0, $p$4 = 0, $p$5 = 0, $p$6 = 0, $p$7 = 0, $p$7$ph = 0, $p$8 = 0, $p$9 = 0, $pos$0108 = 0, $pos$1 = 0, $pos$2 = 0, $s$0107 = 0, $s$0107$lcssa = 0, $s$1 = 0, $s$2$ph = 0, $s$3 = 0, $s$4 = 0, $s$5 = 0, $s$6 = 0, $s$7 = 0, $s$8 = 0, $scanset = 0, $size$0 = 0, $st = 0, $wc = 0, $wcs$0103 = 0, $wcs$0103$lcssa = 0, $wcs$1 = 0, $wcs$2 = 0, $wcs$3$ph = 0, $wcs$3$ph$lcssa = 0, $wcs$4 = 0, $wcs$5 = 0, $wcs$6 = 0, $wcs$7 = 0, $wcs$8 = 0, $wcs$9 = 0, $width$0$lcssa = 0, $width$097 = 0, $width$1 = 0, label = 0, sp = 0; +function _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 304 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ap2$i = sp + 16 | 0; - $st = sp + 8 | 0; - $scanset = sp + 33 | 0; - $wc = sp; - $0 = sp + 32 | 0; - if ((HEAP32[$f + 76 >> 2] | 0) > -1) $334 = ___lockfile($f) | 0; else $334 = 0; - $5 = HEAP8[$fmt >> 0] | 0; - L4 : do if (!($5 << 24 >> 24)) $matches$3 = 0; else { - $7 = $f + 4 | 0; - $8 = $f + 100 | 0; - $9 = $f + 108 | 0; - $10 = $f + 8 | 0; - $11 = $scanset + 10 | 0; - $12 = $scanset + 33 | 0; - $13 = $st + 4 | 0; - $14 = $scanset + 46 | 0; - $15 = $scanset + 94 | 0; - $17 = $5; - $matches$0104 = 0; - $p$0109 = $fmt; - $pos$0108 = 0; - $s$0107 = 0; - $wcs$0103 = 0; - L6 : while (1) { - L8 : do if (!(_isspace($17 & 255) | 0)) { - $47 = (HEAP8[$p$0109 >> 0] | 0) == 37; - L10 : do if ($47) { - $48 = $p$0109 + 1 | 0; - $49 = HEAP8[$48 >> 0] | 0; - L12 : do switch ($49 << 24 >> 24) { - case 37: - { - break L10; + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize * 3 | 0) + 12 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 42: - { - $dest$0 = 0; - $p$2 = $p$0109 + 2 | 0; + $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$363 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$203 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $206 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $206; + break; + } + } + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$363 >> 1] = $72; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $89 = $72; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $89 = $72; + } else { + HEAP16[$pnt2$363 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $89 = $69; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $89 = $69; + } + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - default: - { - $isdigittmp = ($49 & 255) + -48 | 0; - if ($isdigittmp >>> 0 < 10) if ((HEAP8[$p$0109 + 2 >> 0] | 0) == 36) { - HEAP32[$ap2$i >> 2] = HEAP32[$ap >> 2]; - $i$0$i = $isdigittmp; + $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$363 >> 1] = $115; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; while (1) { - $81 = (HEAP32[$ap2$i >> 2] | 0) + (4 - 1) & ~(4 - 1); - $82 = HEAP32[$81 >> 2] | 0; - HEAP32[$ap2$i >> 2] = $81 + 4; - if ($i$0$i >>> 0 > 1) $i$0$i = $i$0$i + -1 | 0; else { - $$lcssa = $82; + if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $132 = $115; break; - } + } else $wk$246 = $wk$246 + 4 | 0; } - $dest$0 = $$lcssa; - $p$2 = $p$0109 + 3 | 0; - break L12; - } - $90 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $91 = HEAP32[$90 >> 2] | 0; - HEAP32[$ap >> 2] = $90 + 4; - $dest$0 = $91; - $p$2 = $48; + } else $132 = $115; + } else { + HEAP16[$pnt2$363 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $132 = $112; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $132 = $112; } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } while (0); - $92 = HEAP8[$p$2 >> 0] | 0; - $93 = $92 & 255; - if (($93 + -48 | 0) >>> 0 < 10) { - $97 = $93; - $p$396 = $p$2; - $width$097 = 0; - while (1) { - $96 = ($width$097 * 10 | 0) + -48 + $97 | 0; - $98 = $p$396 + 1 | 0; - $99 = HEAP8[$98 >> 0] | 0; - $97 = $99 & 255; - if (($97 + -48 | 0) >>> 0 >= 10) { - $$lcssa38 = $99; - $p$3$lcssa = $98; - $width$0$lcssa = $96; - break; - } else { - $p$396 = $98; - $width$097 = $96; - } - } + $i$256 = $i$256 + 1 | 0; + $226 = $pnt$164 + 6 | 0; + $227 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; } else { - $$lcssa38 = $92; - $p$3$lcssa = $p$2; - $width$0$lcssa = 0; + $pnt$164 = $226; + $pnt2$363 = $227; + $wk_max$158 = $wk_max$2; } - if ($$lcssa38 << 24 >> 24 == 109) { - $104 = $p$3$lcssa + 1 | 0; - $107 = HEAP8[$104 >> 0] | 0; - $alloc$0 = ($dest$0 | 0) != 0 & 1; - $p$4 = $104; - $s$1 = 0; - $wcs$1 = 0; + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $233 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $235 = HEAP32[$wk$440 >> 2] | 0; + if (($235 | 0) == ($i$338 | 0)) { + $241 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $241; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $245 = $labelInfo + 8 | 0; + $246 = $j$1$lcssa + -1 | 0; + HEAP32[$245 >> 2] = $246; + if (!$246) $$0 = 0; else { + _memset($233 | 0, 0, $246 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $253 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $268 = $i$534 * 7 | 0; + $271 = $labelInfo + 12 + ($267 << 2) | 0; + HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); + $278 = $267 << 1; + $279 = $labelInfo + 655376 + ($278 << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); + $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; + HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); + $290 = $267 << 2; + $291 = $labelInfo + 131084 + ($290 << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$245 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $320 = $labelInfo + 12 + ($i$633 << 2) | 0; + $323 = $i$633 << 1; + $324 = $labelInfo + 655376 + ($323 << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); + $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize * 3 | 0) + 12 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } else { - $107 = $$lcssa38; - $alloc$0 = 0; - $p$4 = $p$3$lcssa; - $s$1 = $s$0107; - $wcs$1 = $wcs$0103; - } - $105 = $p$4 + 1 | 0; - switch ($107 & 255 | 0) { - case 104: - { - $109 = (HEAP8[$105 >> 0] | 0) == 104; - $p$5 = $109 ? $p$4 + 2 | 0 : $105; - $size$0 = $109 ? -2 : -1; - break; - } - case 108: - { - $112 = (HEAP8[$105 >> 0] | 0) == 108; - $p$5 = $112 ? $p$4 + 2 | 0 : $105; - $size$0 = $112 ? 3 : 1; - break; - } - case 106: - { - $p$5 = $105; - $size$0 = 3; - break; - } - case 116: - case 122: - { - $p$5 = $105; - $size$0 = 1; - break; - } - case 76: - { - $p$5 = $105; - $size$0 = 2; - break; - } - case 110: - case 112: - case 67: - case 83: - case 91: - case 99: - case 115: - case 88: - case 71: - case 70: - case 69: - case 65: - case 103: - case 102: - case 101: - case 97: - case 120: - case 117: - case 111: - case 105: - case 100: - { - $p$5 = $p$4; - $size$0 = 0; - break; - } - default: - { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = $s$1; - $wcs$7 = $wcs$1; - label = 152; - break L6; - } - } - $115 = HEAPU8[$p$5 >> 0] | 0; - $117 = ($115 & 47 | 0) == 3; - $$ = $117 ? $115 | 32 : $115; - $$size$0 = $117 ? 1 : $size$0; - switch ($$ | 0) { - case 99: - { - $pos$1 = $pos$0108; - $width$1 = ($width$0$lcssa | 0) < 1 ? 1 : $width$0$lcssa; - break; - } - case 91: - { - $pos$1 = $pos$0108; - $width$1 = $width$0$lcssa; + $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 110: - { - if (!$dest$0) { - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; + $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$363 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - switch ($$size$0 | 0) { - case -2: - { - HEAP8[$dest$0 >> 0] = $pos$0108; - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; - break; - } - case -1: - { - HEAP16[$dest$0 >> 1] = $pos$0108; - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; - break; - } - case 0: - { - HEAP32[$dest$0 >> 2] = $pos$0108; - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; - break; - } - case 1: - { - HEAP32[$dest$0 >> 2] = $pos$0108; - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; - break; - } - case 3: - { - $125 = $dest$0; - HEAP32[$125 >> 2] = $pos$0108; - HEAP32[$125 + 4 >> 2] = (($pos$0108 | 0) < 0) << 31 >> 31; - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; + $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - default: - { - $matches$1 = $matches$0104; - $p$11 = $p$5; - $pos$2 = $pos$0108; - $s$5 = $s$1; - $wcs$6 = $wcs$1; - break L8; - } - } - break; - } - default: - { - ___shlim($f, 0); - do { - $129 = HEAP32[$7 >> 2] | 0; - if ($129 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { - HEAP32[$7 >> 2] = $129 + 1; - $136 = HEAPU8[$129 >> 0] | 0; - } else $136 = ___shgetc($f) | 0; - } while ((_isspace($136) | 0) != 0); - $$pre170 = HEAP32[$7 >> 2] | 0; - if (!(HEAP32[$8 >> 2] | 0)) $145 = $$pre170; else { - $141 = $$pre170 + -1 | 0; - HEAP32[$7 >> 2] = $141; - $145 = $141; + HEAP32[$203 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $206 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $206; + break; } - $pos$1 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $145 - (HEAP32[$10 >> 2] | 0) | 0; - $width$1 = $width$0$lcssa; - } - } - ___shlim($f, $width$1); - $150 = HEAP32[$7 >> 2] | 0; - $151 = HEAP32[$8 >> 2] | 0; - if ($150 >>> 0 < $151 >>> 0) { - HEAP32[$7 >> 2] = $150 + 1; - $157 = $151; - } else { - if ((___shgetc($f) | 0) < 0) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = $s$1; - $wcs$7 = $wcs$1; - label = 152; - break L6; } - $157 = HEAP32[$8 >> 2] | 0; - } - if ($157) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1; - L67 : do switch ($$ | 0) { - case 91: - case 99: - case 115: - { - $160 = ($$ | 0) == 99; - L69 : do if (($$ & 239 | 0) == 99) { - _memset($scanset | 0, -1, 257) | 0; - HEAP8[$scanset >> 0] = 0; - if (($$ | 0) == 115) { - HEAP8[$12 >> 0] = 0; - HEAP8[$11 >> 0] = 0; - HEAP8[$11 + 1 >> 0] = 0; - HEAP8[$11 + 2 >> 0] = 0; - HEAP8[$11 + 3 >> 0] = 0; - HEAP8[$11 + 4 >> 0] = 0; - $p$9 = $p$5; - } else $p$9 = $p$5; + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$363 >> 1] = $72; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $89 = $72; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $89 = $72; } else { - $164 = $p$5 + 1 | 0; - $166 = (HEAP8[$164 >> 0] | 0) == 94; - $invert$0 = $166 & 1; - $168 = $166 ? $164 : $p$5; - $p$6 = $166 ? $p$5 + 2 | 0 : $164; - _memset($scanset | 0, $166 & 1 | 0, 257) | 0; - HEAP8[$scanset >> 0] = 0; - switch (HEAP8[$p$6 >> 0] | 0) { - case 45: - { - $173 = ($invert$0 ^ 1) & 255; - HEAP8[$14 >> 0] = $173; - $$pre$phi182Z2D = $173; - $p$7$ph = $168 + 2 | 0; - break; + HEAP16[$pnt2$363 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $89 = $69; + break; + } else $wk$150 = $wk$150 + 4 | 0; } - case 93: - { - $176 = ($invert$0 ^ 1) & 255; - HEAP8[$15 >> 0] = $176; - $$pre$phi182Z2D = $176; - $p$7$ph = $168 + 2 | 0; + } else $89 = $69; + } + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$363 >> 1] = $115; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $132 = $115; break; - } - default: - { - $$pre$phi182Z2D = ($invert$0 ^ 1) & 255; - $p$7$ph = $p$6; - } + } else $wk$246 = $wk$246 + 4 | 0; } - $p$7 = $p$7$ph; + } else $132 = $115; + } else { + HEAP16[$pnt2$363 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; while (1) { - $177 = HEAP8[$p$7 >> 0] | 0; - L80 : do switch ($177 << 24 >> 24) { - case 0: - { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = $s$1; - $wcs$7 = $wcs$1; - label = 152; - break L6; - break; - } - case 93: - { - $p$9 = $p$7; - break L69; - break; - } - case 45: - { - $178 = $p$7 + 1 | 0; - $179 = HEAP8[$178 >> 0] | 0; - switch ($179 << 24 >> 24) { - case 93: - case 0: - { - $190 = 45; - $p$8 = $p$7; - break L80; - break; - } - default: - {} - } - $181 = HEAP8[$p$7 + -1 >> 0] | 0; - if (($181 & 255) < ($179 & 255)) { - $c$0100 = $181 & 255; - do { - $c$0100 = $c$0100 + 1 | 0; - HEAP8[$scanset + $c$0100 >> 0] = $$pre$phi182Z2D; - $186 = HEAP8[$178 >> 0] | 0; - } while (($c$0100 | 0) < ($186 & 255 | 0)); - $190 = $186; - $p$8 = $178; - } else { - $190 = $179; - $p$8 = $178; - } - break; - } - default: - { - $190 = $177; - $p$8 = $p$7; - } - } while (0); - HEAP8[$scanset + (($190 & 255) + 1) >> 0] = $$pre$phi182Z2D; - $p$7 = $p$8 + 1 | 0; - } - } while (0); - $195 = $160 ? $width$1 + 1 | 0 : 31; - $196 = ($$size$0 | 0) == 1; - $197 = ($alloc$0 | 0) != 0; - L88 : do if ($196) { - if ($197) { - $199 = _malloc($195 << 2) | 0; - if (!$199) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = 0; - $wcs$7 = $199; - label = 152; - break L6; - } else $wcs$2 = $199; - } else $wcs$2 = $dest$0; - HEAP32[$st >> 2] = 0; - HEAP32[$13 >> 2] = 0; - $i$0$ph = 0; - $k$0$ph = $195; - $wcs$3$ph = $wcs$2; - L94 : while (1) { - $201 = ($wcs$3$ph | 0) == 0; - $i$0$ph20 = $i$0$ph; - while (1) { - L98 : while (1) { - $202 = HEAP32[$7 >> 2] | 0; - if ($202 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { - HEAP32[$7 >> 2] = $202 + 1; - $210 = HEAPU8[$202 >> 0] | 0; - } else $210 = ___shgetc($f) | 0; - if (!(HEAP8[$scanset + ($210 + 1) >> 0] | 0)) { - $i$0$ph20$lcssa = $i$0$ph20; - $wcs$3$ph$lcssa = $wcs$3$ph; - break L94; - } - HEAP8[$0 >> 0] = $210; - switch (_mbrtowc($wc, $0, 1, $st) | 0) { - case -1: - { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = 0; - $wcs$7 = $wcs$3$ph; - label = 152; - break L6; - break; - } - case -2: - break; - default: - break L98; - } - } - if ($201) $i$1 = $i$0$ph20; else { - HEAP32[$wcs$3$ph + ($i$0$ph20 << 2) >> 2] = HEAP32[$wc >> 2]; - $i$1 = $i$0$ph20 + 1 | 0; - } - if ($197 & ($i$1 | 0) == ($k$0$ph | 0)) break; else $i$0$ph20 = $i$1; - } - $220 = $k$0$ph << 1 | 1; - $222 = _realloc($wcs$3$ph, $220 << 2) | 0; - if (!$222) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = 0; - $wcs$7 = $wcs$3$ph; - label = 152; - break L6; - } - $i$0$ph$phi = $k$0$ph; - $k$0$ph = $220; - $wcs$3$ph = $222; - $i$0$ph = $i$0$ph$phi; + if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $132 = $112; + break; + } else $wk$343 = $wk$343 + 4 | 0; } - if (!(_mbsinit($st) | 0)) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = 0; - $wcs$7 = $wcs$3$ph$lcssa; - label = 152; - break L6; - } else { - $i$4 = $i$0$ph20$lcssa; - $s$3 = 0; - $wcs$4 = $wcs$3$ph$lcssa; + } else $132 = $112; + } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $226 = $pnt$164 + 6 | 0; + $227 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $226; + $pnt2$363 = $227; + $wk_max$158 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $233 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $235 = HEAP32[$wk$440 >> 2] | 0; + if (($235 | 0) == ($i$338 | 0)) { + $241 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $241; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $245 = $labelInfo + 8 | 0; + $246 = $j$1$lcssa + -1 | 0; + HEAP32[$245 >> 2] = $246; + if (!$246) $$0 = 0; else { + _memset($233 | 0, 0, $246 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $253 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $268 = $i$534 * 7 | 0; + $271 = $labelInfo + 12 + ($267 << 2) | 0; + HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); + $278 = $267 << 1; + $279 = $labelInfo + 655376 + ($278 << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); + $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; + HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); + $290 = $267 << 2; + $291 = $labelInfo + 131084 + ($290 << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$245 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $320 = $labelInfo + 12 + ($i$633 << 2) | 0; + $323 = $i$633 << 1; + $324 = $labelInfo + 655376 + ($323 << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); + $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 3) + 8) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) { + $42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($42 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $42; + $45 = ($42 << 16 >> 16) * 7 | 0; + $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; + $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256; + $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $67 = $65 << 16 >> 16 > 0; + if ($61 << 16 >> 16 <= 0) { + if ($67) { + HEAP16[$pnt2$363 >> 1] = $65; + $167 = $66 * 7 | 0; + $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; + $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256; + $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069; + $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; + if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $187 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($187 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $187; + $190 = ($187 << 16 >> 16) * 7 | 0; + $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; + $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256; + $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069; + $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; + if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; } + HEAP32[$204 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; } else { - if ($197) { - $226 = _malloc($195) | 0; - if (!$226) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = 0; - $wcs$7 = 0; - label = 152; - break L6; - } else { - $i$2$ph = 0; - $k$1$ph = $195; - $s$2$ph = $226; - } - while (1) { - $i$2 = $i$2$ph; - do { - $228 = HEAP32[$7 >> 2] | 0; - if ($228 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { - HEAP32[$7 >> 2] = $228 + 1; - $236 = HEAPU8[$228 >> 0] | 0; - } else $236 = ___shgetc($f) | 0; - if (!(HEAP8[$scanset + ($236 + 1) >> 0] | 0)) { - $i$4 = $i$2; - $s$3 = $s$2$ph; - $wcs$4 = 0; - break L88; - } - HEAP8[$s$2$ph + $i$2 >> 0] = $236; - $i$2 = $i$2 + 1 | 0; - } while (($i$2 | 0) != ($k$1$ph | 0)); - $244 = $k$1$ph << 1 | 1; - $245 = _realloc($s$2$ph, $244) | 0; - if (!$245) { - $alloc$0400 = $alloc$0; - $matches$0104376 = $matches$0104; - $s$6 = $s$2$ph; - $wcs$7 = 0; - label = 152; - break L6; - } else { - $i$2$ph$phi = $k$1$ph; - $k$1$ph = $244; - $s$2$ph = $245; - $i$2$ph = $i$2$ph$phi; - } - } - } - if (!$dest$0) { - $265 = $157; + $207 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $207; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16; + $212 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $207; + break; + } + } + if ($67) { + $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + if (($70 | 0) > ($73 | 0)) { + HEAP16[$pnt2$363 >> 1] = $73; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; while (1) { - $263 = HEAP32[$7 >> 2] | 0; - if ($263 >>> 0 < $265 >>> 0) { - HEAP32[$7 >> 2] = $263 + 1; - $271 = HEAPU8[$263 >> 0] | 0; - } else $271 = ___shgetc($f) | 0; - if (!(HEAP8[$scanset + ($271 + 1) >> 0] | 0)) { - $i$4 = 0; - $s$3 = 0; - $wcs$4 = 0; - break L88; - } - $265 = HEAP32[$8 >> 2] | 0; + if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $90 = $73; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - } else { - $250 = $157; - $i$3 = 0; + } else $90 = $73; + } else { + HEAP16[$pnt2$363 >> 1] = $70; + if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; while (1) { - $248 = HEAP32[$7 >> 2] | 0; - if ($248 >>> 0 < $250 >>> 0) { - HEAP32[$7 >> 2] = $248 + 1; - $256 = HEAPU8[$248 >> 0] | 0; - } else $256 = ___shgetc($f) | 0; - if (!(HEAP8[$scanset + ($256 + 1) >> 0] | 0)) { - $i$4 = $i$3; - $s$3 = $dest$0; - $wcs$4 = 0; - break L88; - } - HEAP8[$dest$0 + $i$3 >> 0] = $256; - $250 = HEAP32[$8 >> 2] | 0; - $i$3 = $i$3 + 1 | 0; + if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $90 = $70; + break; + } else $wk$150 = $wk$150 + 4 | 0; } - } - } while (0); - $$pre178 = HEAP32[$7 >> 2] | 0; - if (!(HEAP32[$8 >> 2] | 0)) $281 = $$pre178; else { - $277 = $$pre178 + -1 | 0; - HEAP32[$7 >> 2] = $277; - $281 = $277; - } - $284 = $281 - (HEAP32[$10 >> 2] | 0) + (HEAP32[$9 >> 2] | 0) | 0; - if (!$284) { - $alloc$2 = $alloc$0; - $matches$2 = $matches$0104; - $s$8 = $s$3; - $wcs$9 = $wcs$4; - break L6; - } - if (!(($284 | 0) == ($width$1 | 0) | $160 ^ 1)) { - $alloc$2 = $alloc$0; - $matches$2 = $matches$0104; - $s$8 = $s$3; - $wcs$9 = $wcs$4; - break L6; - } - do if ($197) if ($196) { - HEAP32[$dest$0 >> 2] = $wcs$4; - break; - } else { - HEAP32[$dest$0 >> 2] = $s$3; - break; - } while (0); - if ($160) { - $p$10 = $p$9; - $s$4 = $s$3; - $wcs$5 = $wcs$4; - } else { - if ($wcs$4) HEAP32[$wcs$4 + ($i$4 << 2) >> 2] = 0; - if (!$s$3) { - $p$10 = $p$9; - $s$4 = 0; - $wcs$5 = $wcs$4; - break L67; - } - HEAP8[$s$3 + $i$4 >> 0] = 0; - $p$10 = $p$9; - $s$4 = $s$3; - $wcs$5 = $wcs$4; + } else $90 = $70; } + $92 = ($90 << 16 >> 16) * 7 | 0; + $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; + $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256; + $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 120: - case 88: - case 112: - { - $base$0 = 16; - label = 134; - break; - } - case 111: - { - $base$0 = 8; - label = 134; - break; - } - case 117: - case 100: - { - $base$0 = 10; - label = 134; - break; - } - case 105: - { - $base$0 = 0; - label = 134; + $108 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($108 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $61; + $148 = $62 * 7 | 0; + $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; + $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256; + $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069; + $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; + if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 71: - case 103: - case 70: - case 102: - case 69: - case 101: - case 65: - case 97: - { - $310 = +___floatscan($f, $$size$0, 0); - if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) { - $alloc$2 = $alloc$0; - $matches$2 = $matches$0104; - $s$8 = $s$1; - $wcs$9 = $wcs$1; - break L6; - } - if (!$dest$0) { - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - } else switch ($$size$0 | 0) { - case 0: - { - HEAPF32[$dest$0 >> 2] = $310; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L67; - break; - } - case 1: - { - HEAPF64[$dest$0 >> 3] = $310; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L67; - break; - } - case 2: - { - HEAPF64[$dest$0 >> 3] = $310; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L67; - break; + $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($113 | 0) > ($116 | 0)) { + HEAP16[$pnt2$363 >> 1] = $116; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $133 = $116; + break; + } else $wk$246 = $wk$246 + 4 | 0; } - default: - { - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L67; + } else $133 = $116; + } else { + HEAP16[$pnt2$363 >> 1] = $113; + if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $133 = $113; + break; + } else $wk$343 = $wk$343 + 4 | 0; } - } - break; - } - default: - { - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; + } else $133 = $113; } + $135 = ($133 << 16 >> 16) * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } while (0); - L168 : do if ((label | 0) == 134) { - label = 0; - $291 = ___intscan($f, $base$0, 0, -1, -1) | 0; - if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) { - $alloc$2 = $alloc$0; - $matches$2 = $matches$0104; - $s$8 = $s$1; - $wcs$9 = $wcs$1; - break L6; - } - if (($dest$0 | 0) != 0 & ($$ | 0) == 112) { - HEAP32[$dest$0 >> 2] = $291; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; + $i$256 = $i$256 + 1 | 0; + $227 = $pnt$164 + 8 | 0; + $228 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $227; + $pnt2$3$lcssa = $228; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $227; + $pnt2$363 = $228; + $wk_max$158 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $236 = HEAP32[$wk$440 >> 2] | 0; + if (($236 | 0) == ($i$338 | 0)) { + $242 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $242; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $254 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$534 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $321 = $labelInfo + 12 + ($i$633 << 2) | 0; + $324 = $i$633 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 3) + 8) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($42 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $42; + $45 = ($42 << 16 >> 16) * 7 | 0; + $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; + $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256; + $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - if (!$dest$0) { - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - } else switch ($$size$0 | 0) { - case -2: - { - HEAP8[$dest$0 >> 0] = $291; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; - break; - } - case -1: - { - HEAP16[$dest$0 >> 1] = $291; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; - break; - } - case 0: - { - HEAP32[$dest$0 >> 2] = $291; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; + $61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $66 = $65 << 16 >> 16; + $67 = $65 << 16 >> 16 > 0; + if ($61 << 16 >> 16 <= 0) { + if ($67) { + HEAP16[$pnt2$363 >> 1] = $65; + $167 = $66 * 7 | 0; + $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; + $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256; + $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069; + $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; + if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 1: - { - HEAP32[$dest$0 >> 2] = $291; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; + $187 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($187 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $187; + $190 = ($187 << 16 >> 16) * 7 | 0; + $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; + $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256; + $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; + HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069; + $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; + if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$204 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; - } - case 3: - { - $306 = $dest$0; - HEAP32[$306 >> 2] = $291; - HEAP32[$306 + 4 >> 2] = tempRet0; - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; + } else { + $207 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $207; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16; + $212 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $207; break; } - default: - { - $p$10 = $p$5; - $s$4 = $s$1; - $wcs$5 = $wcs$1; - break L168; + } + if ($67) { + $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; + if (($70 | 0) > ($73 | 0)) { + HEAP16[$pnt2$363 >> 1] = $73; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $90 = $73; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $90 = $73; + } else { + HEAP16[$pnt2$363 >> 1] = $70; + if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $90 = $70; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $90 = $70; } + $92 = ($90 << 16 >> 16) * 7 | 0; + $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; + $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256; + $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; + HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $108 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($108 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $61; + $148 = $62 * 7 | 0; + $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; + $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256; + $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069; + $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; + if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($113 | 0) > ($116 | 0)) { + HEAP16[$pnt2$363 >> 1] = $116; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $133 = $116; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $133 = $116; + } else { + HEAP16[$pnt2$363 >> 1] = $113; + if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $133 = $113; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $133 = $113; } + $135 = ($133 << 16 >> 16) * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; } while (0); - $matches$1 = (($dest$0 | 0) != 0 & 1) + $matches$0104 | 0; - $p$11 = $p$10; - $pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$1 + (HEAP32[$7 >> 2] | 0) - (HEAP32[$10 >> 2] | 0) | 0; - $s$5 = $s$4; - $wcs$6 = $wcs$5; - break L8; - } while (0); - $51 = $p$0109 + ($47 & 1) | 0; - ___shlim($f, 0); - $52 = HEAP32[$7 >> 2] | 0; - if ($52 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { - HEAP32[$7 >> 2] = $52 + 1; - $62 = HEAPU8[$52 >> 0] | 0; - } else $62 = ___shgetc($f) | 0; - if (($62 | 0) != (HEAPU8[$51 >> 0] | 0)) { - $$lcssa384 = $62; - $matches$0104$lcssa = $matches$0104; - $s$0107$lcssa = $s$0107; - $wcs$0103$lcssa = $wcs$0103; - label = 21; - break L6; + $i$256 = $i$256 + 1 | 0; + $227 = $pnt$164 + 8 | 0; + $228 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $227; + $pnt2$3$lcssa = $228; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $227; + $pnt2$363 = $228; + $wk_max$158 = $wk_max$2; + } } - $matches$1 = $matches$0104; - $p$11 = $51; - $pos$2 = $pos$0108 + 1 | 0; - $s$5 = $s$0107; - $wcs$6 = $wcs$0103; } else { - $p$1 = $p$0109; - while (1) { - $20 = $p$1 + 1 | 0; - if (!(_isspace(HEAPU8[$20 >> 0] | 0) | 0)) { - $p$1$lcssa = $p$1; - break; - } else $p$1 = $20; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $234 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $236 = HEAP32[$wk$440 >> 2] | 0; + if (($236 | 0) == ($i$338 | 0)) { + $242 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - ___shlim($f, 0); - do { - $25 = HEAP32[$7 >> 2] | 0; - if ($25 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) { - HEAP32[$7 >> 2] = $25 + 1; - $32 = HEAPU8[$25 >> 0] | 0; - } else $32 = ___shgetc($f) | 0; - } while ((_isspace($32) | 0) != 0); - $$pre = HEAP32[$7 >> 2] | 0; - if (!(HEAP32[$8 >> 2] | 0)) $41 = $$pre; else { - $37 = $$pre + -1 | 0; - HEAP32[$7 >> 2] = $37; - $41 = $37; + HEAP32[$wk$440 >> 2] = $242; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - $matches$1 = $matches$0104; - $p$11 = $p$1$lcssa; - $pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $41 - (HEAP32[$10 >> 2] | 0) | 0; - $s$5 = $s$0107; - $wcs$6 = $wcs$0103; - } while (0); - $p$0109 = $p$11 + 1 | 0; - $17 = HEAP8[$p$0109 >> 0] | 0; - if (!($17 << 24 >> 24)) { - $matches$3 = $matches$1; - break L4; - } else { - $matches$0104 = $matches$1; - $pos$0108 = $pos$2; - $s$0107 = $s$5; - $wcs$0103 = $wcs$6; } } - if ((label | 0) == 21) { - if (HEAP32[$8 >> 2] | 0) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1; - if (($matches$0104$lcssa | 0) != 0 | ($$lcssa384 | 0) > -1) { - $matches$3 = $matches$0104$lcssa; - break; - } else { - $alloc$1 = 0; - $s$7 = $s$0107$lcssa; - $wcs$8 = $wcs$0103$lcssa; - label = 153; + $246 = $labelInfo + 8 | 0; + $247 = $j$1$lcssa + -1 | 0; + HEAP32[$246 >> 2] = $247; + if (!$247) $$0 = 0; else { + _memset($234 | 0, 0, $247 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $254 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0)); } - } else if ((label | 0) == 152) if (!$matches$0104376) { - $alloc$1 = $alloc$0400; - $s$7 = $s$6; - $wcs$8 = $wcs$7; - label = 153; - } else { - $alloc$2 = $alloc$0400; - $matches$2 = $matches$0104376; - $s$8 = $s$6; - $wcs$9 = $wcs$7; + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $269 = $i$534 * 7 | 0; + $272 = $labelInfo + 12 + ($268 << 2) | 0; + HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); + $279 = $268 << 1; + $280 = $labelInfo + 655376 + ($279 << 3) | 0; + HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); + $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; + HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); + $291 = $268 << 2; + $292 = $labelInfo + 131084 + ($291 << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; + $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; + if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; + $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; + $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; + if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$246 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $321 = $labelInfo + 12 + ($i$633 << 2) | 0; + $324 = $i$633 << 1; + $325 = $labelInfo + 655376 + ($324 << 3) | 0; + HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); + $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; + HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - if ((label | 0) == 153) { - $alloc$2 = $alloc$1; - $matches$2 = -1; - $s$8 = $s$7; - $wcs$9 = $wcs$8; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } } - if (!$alloc$2) $matches$3 = $matches$2; else { - _free($s$8); - _free($wcs$9); - $matches$3 = $matches$2; + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } } - } while (0); - if ($334) ___unlockfile($f); - STACKTOP = sp; - return $matches$3 | 0; -} - -function __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i6 = 0, $$0$i$i$i18$i = 0, $$0$i$i$i7$i = 0, $$0$i$i49 = 0, $$03$i = 0, $$1$i9 = 0, $$lcssa = 0, $$ph26 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $121 = 0, $13 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $140 = 0, $141 = 0, $143 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $157 = 0, $159 = 0, $162 = 0, $163 = 0, $165 = 0, $171 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $191 = 0, $193 = 0, $194 = 0, $196 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $207 = 0, $217 = 0, $218 = 0, $22 = 0, $220 = 0, $224 = 0, $227 = 0, $230 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $248 = 0, $252 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $268 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $277 = 0, $283 = 0, $284 = 0, $285 = 0, $29 = 0, $292 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $304 = 0, $31 = 0, $312 = 0, $318 = 0, $32 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $341 = 0, $36 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $50 = 0, $53 = 0, $55 = 0, $6 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $69 = 0, $7 = 0, $71 = 0, $74 = 0, $75 = 0, $87 = 0, $88 = 0, $90 = 0, $97 = 0, $98 = 0, $99 = 0, $__p$0$i$i = 0, $__p$1$i$i48 = 0, $__v$i$i17$i = 0, $phitmp$i$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i$i = 0, $t0$0$i = 0, $t01$0$i = 0, $t01$0$i$lcssa67 = 0, $t01$1$i = 0, $t01$2$i = 0, $t1$0$i$lcssa = 0, $t1$0$i45 = 0, $t13$0$i$lcssa = 0, $t13$0$i51 = 0, $tmp$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i17$i = sp + 104 | 0; - $0 = sp + 80 | 0; - $1 = sp + 64 | 0; - $2 = sp + 40 | 0; - $3 = sp + 24 | 0; - $tmp$i = sp + 12 | 0; - $4 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { - $6 = HEAP8[$first >> 0] | 0; - $7 = $6 << 24 >> 24; - switch ($7 | 0) { - case 68: - case 67: - { - L6 : do if (($last - $first | 0) > 1) { - $13 = $db + 4 | 0; - $14 = HEAP32[$13 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($14 | 0)) $$03$i = $first; else switch ($7 | 0) { - case 67: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 53: - case 51: - case 50: - case 49: - break; - default: - { - $$03$i = $first; - break L6; - } - } - __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($1, $14 + -24 | 0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - $20 = HEAP32[$13 >> 2] | 0; - $22 = HEAP32[$db + 8 >> 2] | 0; - if ($20 >>> 0 < $22 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($20, $0); - HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24; - } else { - $29 = HEAP32[$db >> 2] | 0; - $30 = $20 - $29 | 0; - $31 = ($30 | 0) / 24 | 0; - $32 = $31 + 1 | 0; - if (($30 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $36 = ($22 - $29 | 0) / 24 | 0; - if ($36 >>> 0 < 1073741823) { - $38 = $36 << 1; - $$0$i$i$i$i = $38 >>> 0 < $32 >>> 0 ? $32 : $38; - } else $$0$i$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i, $31, $db + 12 | 0); - $41 = $__v$i$i17$i + 8 | 0; - $42 = HEAP32[$41 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $0); - HEAP32[$41 >> 2] = $42 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - HEAP8[$db + 60 >> 0] = 1; - $$03$i = $first + 2 | 0; - break L6; + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 3) + 8) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 68: - { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 53: - case 50: - case 49: - case 48: + $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$363 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; - default: - { - $$03$i = $first; - break L6; - } } - __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($tmp$i, $14 + -24 | 0); - $50 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($tmp$i, 0, 12928) | 0; - HEAP32[$3 >> 2] = HEAP32[$50 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$50 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$50 + 8 >> 2]; - HEAP32[$50 >> 2] = 0; - HEAP32[$50 + 4 >> 2] = 0; - HEAP32[$50 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); - $53 = HEAP32[$13 >> 2] | 0; - $55 = HEAP32[$db + 8 >> 2] | 0; - if ($53 >>> 0 < $55 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($53, $2); - HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24; + $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$203 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; } else { - $62 = HEAP32[$db >> 2] | 0; - $63 = $53 - $62 | 0; - $64 = ($63 | 0) / 24 | 0; - $65 = $64 + 1 | 0; - if (($63 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $69 = ($55 - $62 | 0) / 24 | 0; - if ($69 >>> 0 < 1073741823) { - $71 = $69 << 1; - $$0$i$i$i7$i = $71 >>> 0 < $65 >>> 0 ? $65 : $71; - } else $$0$i$i$i7$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i7$i, $64, $db + 12 | 0); - $74 = $__v$i$i17$i + 8 | 0; - $75 = HEAP32[$74 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($75, $2); - HEAP32[$74 >> 2] = $75 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + $206 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $206; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); - HEAP8[$db + 60 >> 0] = 1; - $$03$i = $first + 2 | 0; - break L6; - break; - } - default: - { - $$03$i = $first; - break L6; } - } - } else $$03$i = $first; while (0); - $$0 = $$03$i; - break L1; - break; - } - case 85: - { - L36 : do if (($last - $first | 0) > 2 & $6 << 24 >> 24 == 85) { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 116: - { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($1, 12930, 8); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - $87 = $db + 4 | 0; - $88 = HEAP32[$87 >> 2] | 0; - $90 = HEAP32[$db + 8 >> 2] | 0; - if ($88 >>> 0 < $90 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($88, $0); - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 24; - } else { - $97 = HEAP32[$db >> 2] | 0; - $98 = $88 - $97 | 0; - $99 = ($98 | 0) / 24 | 0; - $100 = $99 + 1 | 0; - if (($98 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $104 = ($90 - $97 | 0) / 24 | 0; - if ($104 >>> 0 < 1073741823) { - $106 = $104 << 1; - $$0$i$i$i$i6 = $106 >>> 0 < $100 >>> 0 ? $100 : $106; - } else $$0$i$i$i$i6 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i6, $99, $db + 12 | 0); - $109 = $__v$i$i17$i + 8 | 0; - $110 = HEAP32[$109 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($110, $0); - HEAP32[$109 >> 2] = $110 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - $112 = $first + 2 | 0; - if (($112 | 0) == ($last | 0)) { - $114 = HEAP32[$87 >> 2] | 0; - $115 = $114 + -24 | 0; - $117 = $114; - while (1) { - $116 = $117 + -24 | 0; - HEAP32[$87 >> 2] = $116; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($116); - $117 = HEAP32[$87 >> 2] | 0; - if (($117 | 0) == ($115 | 0)) { - $$1$i9 = $first; - break L36; + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$363 >> 1] = $72; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $89 = $72; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - } - } - if (((HEAP8[$112 >> 0] | 0) + -48 | 0) >>> 0 < 10) { - $121 = $first + 3 | 0; - L57 : do if (($121 | 0) == ($last | 0)) $t1$0$i$lcssa = $last; else { - $t1$0$i45 = $121; + } else $89 = $72; + } else { + HEAP16[$pnt2$363 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; while (1) { - if (((HEAP8[$t1$0$i45 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { - $t1$0$i$lcssa = $t1$0$i45; - break L57; - } - $t1$0$i45 = $t1$0$i45 + 1 | 0; - if (($t1$0$i45 | 0) == ($last | 0)) { - $t1$0$i$lcssa = $last; + if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $89 = $69; break; - } + } else $wk$150 = $wk$150 + 4 | 0; } - } while (0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$87 >> 2] | 0) + -24 | 0, $112, $t1$0$i$lcssa); - $t0$0$i = $t1$0$i$lcssa; - } else $t0$0$i = $112; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$87 >> 2] | 0) + -24 | 0, 39); - if (($t0$0$i | 0) != ($last | 0)) if ((HEAP8[$t0$0$i >> 0] | 0) == 95) { - $$1$i9 = $t0$0$i + 1 | 0; - break L36; - } - $134 = HEAP32[$87 >> 2] | 0; - $135 = $134 + -24 | 0; - $137 = $134; - while (1) { - $136 = $137 + -24 | 0; - HEAP32[$87 >> 2] = $136; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($136); - $137 = HEAP32[$87 >> 2] | 0; - if (($137 | 0) == ($135 | 0)) { - $$1$i9 = $first; - break L36; - } + } else $89 = $69; } + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - case 108: - break; - default: - { - $$1$i9 = $first; - break L36; + $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 12939, 9); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); - $140 = $db + 4 | 0; - $141 = HEAP32[$140 >> 2] | 0; - $143 = HEAP32[$db + 8 >> 2] | 0; - if ($141 >>> 0 < $143 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($141, $2); - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 24; + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$363 >> 1] = $115; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $132 = $115; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $132 = $115; + } else { + HEAP16[$pnt2$363 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $132 = $112; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $132 = $112; + } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; } else { - $150 = HEAP32[$db >> 2] | 0; - $151 = $141 - $150 | 0; - $152 = ($151 | 0) / 24 | 0; - $153 = $152 + 1 | 0; - if (($151 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $157 = ($143 - $150 | 0) / 24 | 0; - if ($157 >>> 0 < 1073741823) { - $159 = $157 << 1; - $$0$i$i$i18$i = $159 >>> 0 < $153 >>> 0 ? $153 : $159; - } else $$0$i$i$i18$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i18$i, $152, $db + 12 | 0); - $162 = $__v$i$i17$i + 8 | 0; - $163 = HEAP32[$162 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $2); - HEAP32[$162 >> 2] = $163 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i); + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $226 = $pnt$164 + 8 | 0; + $227 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $226; + $pnt2$363 = $227; + $wk_max$158 = $wk_max$2; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $165 = $first + 2 | 0; - do if ((HEAP8[$165 >> 0] | 0) == 118) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$140 >> 2] | 0) + -24 | 0, 41); - $t01$1$i = $first + 3 | 0; + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $233 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $235 = HEAP32[$wk$440 >> 2] | 0; + if (($235 | 0) == ($i$338 | 0)) { + $241 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $241; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $245 = $labelInfo + 8 | 0; + $246 = $j$1$lcssa + -1 | 0; + HEAP32[$245 >> 2] = $246; + if (!$246) $$0 = 0; else { + _memset($233 | 0, 0, $246 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $253 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $268 = $i$534 * 7 | 0; + $271 = $labelInfo + 12 + ($267 << 2) | 0; + HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); + $278 = $267 << 1; + $279 = $labelInfo + 655376 + ($278 << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); + $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; + HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); + $290 = $267 << 2; + $291 = $labelInfo + 131084 + ($290 << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$245 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $320 = $labelInfo + 12 + ($i$633 << 2) | 0; + $323 = $i$633 << 1; + $324 = $labelInfo + 655376 + ($323 << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); + $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $labelingThresh * 3 | 0; + $12 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($12 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $19 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 2) + 16 | 0; + L11 : do if (($3 | 0) > 1) { + $28 = ($12 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 3) + 8) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($28) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } else { - $171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($165, $last, $db) | 0; - $173 = HEAP32[$140 >> 2] | 0; - if (($171 | 0) == ($165 | 0)) { - $174 = $173 + -24 | 0; - $176 = $173; - while (1) { - $175 = $176 + -24 | 0; - HEAP32[$140 >> 2] = $175; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($175); - $176 = HEAP32[$140 >> 2] | 0; - if (($176 | 0) == ($174 | 0)) { - $$1$i9 = $first; - break L36; - } - } - } - if ((($173 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$1$i9 = $first; - break L36; + $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($41 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $41; + $44 = ($41 << 16 >> 16) * 7 | 0; + $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; + $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; + $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; + HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp$i, $173 + -24 | 0); - $185 = HEAP32[$140 >> 2] | 0; - $186 = $185 + -24 | 0; - $188 = $185; - do { - $187 = $188 + -24 | 0; - HEAP32[$140 >> 2] = $187; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187); - $188 = HEAP32[$140 >> 2] | 0; - } while (($188 | 0) != ($186 | 0)); - $191 = HEAP8[$tmp$i >> 0] | 0; - $193 = ($191 & 1) == 0; - $194 = $tmp$i + 8 | 0; - $196 = $tmp$i + 1 | 0; - $198 = $tmp$i + 4 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($185 + -48 | 0, $193 ? $196 : HEAP32[$194 >> 2] | 0, $193 ? ($191 & 255) >>> 1 : HEAP32[$198 >> 2] | 0) | 0; - $203 = $4 + 4 | 0; - $204 = $4 + 8 | 0; - $$pre$i$i$i$i = $191; - $t01$0$i = $171; - while (1) { - $205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t01$0$i, $last, $db) | 0; - $207 = HEAP32[$140 >> 2] | 0; - if (($205 | 0) == ($t01$0$i | 0)) { - $$lcssa = $207; - $t01$0$i$lcssa67 = $t01$0$i; - label = 79; + $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $65 = $64 << 16 >> 16; + $66 = $64 << 16 >> 16 > 0; + if ($60 << 16 >> 16 <= 0) { + if ($66) { + HEAP16[$pnt2$363 >> 1] = $64; + $166 = $65 * 7 | 0; + $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; + $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; + $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; + HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; + $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; + if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - if ((($207 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - label = 113; + $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($186 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $186; + $189 = ($186 << 16 >> 16) * 7 | 0; + $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; + $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; + $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; + HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; + $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; + if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$203 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $207 + -24 | 0); - L96 : do if (!($$pre$i$i$i$i & 1)) { - HEAP8[$196 >> 0] = 0; - HEAP8[$tmp$i >> 0] = 0; } else { - $217 = HEAP32[$194 >> 2] | 0; - HEAP8[$217 >> 0] = 0; - HEAP32[$198 >> 2] = 0; - $218 = HEAP32[$tmp$i >> 2] | 0; - $phitmp$i$i$i$i$i$i$i = ($218 & -2) + -1 | 0; - $220 = $218 & 255; - do if (!($220 & 1)) { - $224 = $218 >>> 1 & 127; - if (($220 & 255) < 22) { - _memcpy($196 | 0, $217 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0; - _free($217); - $$ph26 = $224; - break; - } - $227 = $224 + 16 & 240; - $phitmp$i2$i$i$i$i$i$i = $227 + -1 | 0; - if (($phitmp$i2$i$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i$i | 0)) break L96; - $230 = _malloc($227) | 0; - if ($phitmp$i2$i$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i$i >>> 0 & ($230 | 0) == 0) break L96; - _memcpy($230 | 0, $196 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0; - HEAP32[$tmp$i >> 2] = $227 | 1; - HEAP32[$198 >> 2] = $224; - HEAP32[$194 >> 2] = $230; - break L96; - } else { - HEAP8[$196 >> 0] = 0; - _free($217); - $$ph26 = 0; - } while (0); - HEAP8[$tmp$i >> 0] = $$ph26 << 1; - } while (0); - HEAP32[$tmp$i >> 2] = HEAP32[$4 >> 2]; - HEAP32[$tmp$i + 4 >> 2] = HEAP32[$4 + 4 >> 2]; - HEAP32[$tmp$i + 8 >> 2] = HEAP32[$4 + 8 >> 2]; - HEAP32[$4 >> 2] = 0; - HEAP32[$203 >> 2] = 0; - HEAP32[$204 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - $241 = HEAP32[$140 >> 2] | 0; - $242 = $241 + -24 | 0; - $244 = $241; - do { - $243 = $244 + -24 | 0; - HEAP32[$140 >> 2] = $243; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243); - $244 = HEAP32[$140 >> 2] | 0; - } while (($244 | 0) != ($242 | 0)); - $246 = HEAP8[$tmp$i >> 0] | 0; - $248 = ($246 & 1) == 0; - $252 = $248 ? ($246 & 255) >>> 1 : HEAP32[$198 >> 2] | 0; - if (!$252) { - $$pre$i$i$i$i = $246; - $t01$0$i = $205; - continue; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($241 + -48 | 0, 12716) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$140 >> 2] | 0) + -24 | 0, $248 ? $196 : HEAP32[$194 >> 2] | 0, $252) | 0; - $$pre$i$i$i$i = $246; - $t01$0$i = $205; - } - if ((label | 0) == 79) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($$lcssa + -24 | 0, 12619) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); - $t01$1$i = $t01$0$i$lcssa67; - break; - } else if ((label | 0) == 113) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i); - $$1$i9 = $first; - break L36; - } - } while (0); - if (($t01$1$i | 0) != ($last | 0)) if ((HEAP8[$t01$1$i >> 0] | 0) == 69) { - $268 = $t01$1$i + 1 | 0; - if (($268 | 0) == ($last | 0)) { - $270 = HEAP32[$140 >> 2] | 0; - $271 = $270 + -24 | 0; - $273 = $270; - while (1) { - $272 = $273 + -24 | 0; - HEAP32[$140 >> 2] = $272; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272); - $273 = HEAP32[$140 >> 2] | 0; - if (($273 | 0) == ($271 | 0)) { - $$1$i9 = $first; - break L36; - } + $206 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $206; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; + $211 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $206; + break; } } - if (((HEAP8[$268 >> 0] | 0) + -48 | 0) >>> 0 < 10) { - $277 = $t01$1$i + 2 | 0; - L127 : do if (($277 | 0) == ($last | 0)) $t13$0$i$lcssa = $last; else { - $t13$0$i51 = $277; - while (1) { - if (((HEAP8[$t13$0$i51 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { - $t13$0$i$lcssa = $t13$0$i51; - break L127; - } - $t13$0$i51 = $t13$0$i51 + 1 | 0; - if (($t13$0$i51 | 0) == ($last | 0)) { - $t13$0$i$lcssa = $last; - break; + if ($66) { + $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; + if (($69 | 0) > ($72 | 0)) { + HEAP16[$pnt2$363 >> 1] = $72; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $19; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $89 = $72; + break; + } else $wk$053 = $wk$053 + 4 | 0; } - } - } while (0); - $283 = HEAP32[$140 >> 2] | 0; - $284 = $283 + -24 | 0; - $285 = HEAP8[$284 >> 0] | 0; - if (!($285 & 1)) { - $300 = 10; - $301 = ($285 & 255) >>> 1; - $304 = $285; + } else $89 = $72; } else { - $292 = HEAP32[$284 >> 2] | 0; - $300 = ($292 & -2) + -1 | 0; - $301 = HEAP32[$283 + -20 >> 2] | 0; - $304 = $292 & 255; - } - $297 = $t13$0$i$lcssa - $268 | 0; - if (($t13$0$i$lcssa | 0) == ($268 | 0)) $t01$2$i = $268; else { - if (($300 - $301 | 0) >>> 0 < $297 >>> 0) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($284, $300, $301 + $297 - $300 | 0, $301, 7, $297); - $__p$0$i$i = HEAP32[$283 + -16 >> 2] | 0; - } else { - if (!($304 & 1)) $312 = $284 + 1 | 0; else $312 = HEAP32[$283 + -16 >> 2] | 0; - if (($301 | 0) == 7) $__p$0$i$i = $312; else { - _memmove($312 + ($297 + 7) | 0, $312 + 7 | 0, $301 + -7 | 0) | 0; - $__p$0$i$i = $312; - } - } - $318 = $301 + $297 | 0; - if (!(HEAP8[$284 >> 0] & 1)) HEAP8[$284 >> 0] = $318 << 1; else HEAP32[$283 + -20 >> 2] = $318; - HEAP8[$__p$0$i$i + $318 >> 0] = 0; - if (($268 | 0) == ($t13$0$i$lcssa | 0)) $t01$2$i = $t13$0$i$lcssa; else { - $$0$i$i49 = $268; - $__p$1$i$i48 = $__p$0$i$i + 7 | 0; + HEAP16[$pnt2$363 >> 1] = $69; + if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $19; while (1) { - HEAP8[$__p$1$i$i48 >> 0] = HEAP8[$$0$i$i49 >> 0] | 0; - $$0$i$i49 = $$0$i$i49 + 1 | 0; - if (($$0$i$i49 | 0) == ($t13$0$i$lcssa | 0)) { - $t01$2$i = $t13$0$i$lcssa; + if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $89 = $69; break; - } else $__p$1$i$i48 = $__p$1$i$i48 + 1 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } + } else $89 = $69; } - } else $t01$2$i = $268; - if (($t01$2$i | 0) != ($last | 0)) if ((HEAP8[$t01$2$i >> 0] | 0) == 95) { - $$1$i9 = $t01$2$i + 1 | 0; + $91 = ($89 << 16 >> 16) * 7 | 0; + $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; + $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; + $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $335 = HEAP32[$140 >> 2] | 0; - $336 = $335 + -24 | 0; - $338 = $335; - while (1) { - $337 = $338 + -24 | 0; - HEAP32[$140 >> 2] = $337; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($337); - $338 = HEAP32[$140 >> 2] | 0; - if (($338 | 0) == ($336 | 0)) { - $$1$i9 = $first; - break L36; - } + $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($107 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $60; + $147 = $61 * 7 | 0; + $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; + $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; + $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; + HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; + $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; + if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; } - } - $263 = HEAP32[$140 >> 2] | 0; - $264 = $263 + -24 | 0; - $266 = $263; - do { - $265 = $266 + -24 | 0; - HEAP32[$140 >> 2] = $265; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($265); - $266 = HEAP32[$140 >> 2] | 0; - } while (($266 | 0) != ($264 | 0)); - $$1$i9 = $first; - } else $$1$i9 = $first; while (0); - $$0 = $$1$i9; - break L1; - break; - } - case 57: - case 56: - case 55: - case 54: - case 53: - case 52: - case 51: - case 50: - case 49: - { - $341 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - STACKTOP = sp; - return $341 | 0; + $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($112 | 0) > ($115 | 0)) { + HEAP16[$pnt2$363 >> 1] = $115; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $19; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $132 = $115; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $132 = $115; + } else { + HEAP16[$pnt2$363 >> 1] = $112; + if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $19; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $132 = $112; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $132 = $112; + } + $134 = ($132 << 16 >> 16) * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $226 = $pnt$164 + 8 | 0; + $227 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($12 | 0)) { + $pnt$1$lcssa = $226; + $pnt2$3$lcssa = $227; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $226; + $pnt2$363 = $227; + $wk_max$158 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - default: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; } while (0); + if ((label | 0) == 52) { + $233 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $19; + while (1) { + $235 = HEAP32[$wk$440 >> 2] | 0; + if (($235 | 0) == ($i$338 | 0)) { + $241 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; + } + HEAP32[$wk$440 >> 2] = $241; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $245 = $labelInfo + 8 | 0; + $246 = $j$1$lcssa + -1 | 0; + HEAP32[$245 >> 2] = $246; + if (!$246) $$0 = 0; else { + _memset($233 | 0, 0, $246 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $253 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $268 = $i$534 * 7 | 0; + $271 = $labelInfo + 12 + ($267 << 2) | 0; + HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); + $278 = $267 << 1; + $279 = $labelInfo + 655376 + ($278 << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); + $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; + HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); + $290 = $267 << 2; + $291 = $labelInfo + 131084 + ($290 << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; + $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; + if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; + $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; + $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; + if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$245 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $320 = $labelInfo + 12 + ($i$633 << 2) | 0; + $323 = $i$633 << 1; + $324 = $labelInfo + 655376 + ($323 << 3) | 0; + HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); + $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; + HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; return $$0 | 0; } -function _PCA($input, $output, $ev) { - $input = $input | 0; - $output = $output | 0; - $ev = $ev | 0; - var $$0 = 0, $0 = 0, $1 = 0, $102 = 0.0, $11 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $120 = 0, $121 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $128 = 0.0, $138 = 0.0, $14 = 0, $143 = 0.0, $147 = 0.0, $150 = 0.0, $154 = 0.0, $156 = 0, $157 = 0.0, $159 = 0, $160 = 0.0, $161 = 0.0, $164 = 0, $168 = 0.0, $17 = 0, $172 = 0, $179 = 0.0, $18 = 0, $184 = 0, $185 = 0, $186 = 0, $188 = 0, $189 = 0.0, $191 = 0, $192 = 0.0, $2 = 0, $202 = 0.0, $204 = 0, $205 = 0.0, $21 = 0, $210 = 0.0, $212 = 0.0, $219 = 0, $220 = 0.0, $223 = 0.0, $224 = 0, $232 = 0.0, $237 = 0, $238 = 0, $24 = 0, $25 = 0, $251 = 0, $253 = 0, $256 = 0, $257 = 0, $259 = 0.0, $26 = 0, $263 = 0.0, $264 = 0, $272 = 0.0, $279 = 0, $28 = 0, $287 = 0, $289 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $30 = 0, $304 = 0, $31 = 0, $35 = 0, $37 = 0, $47 = 0.0, $5 = 0, $55 = 0, $57 = 0, $61 = 0, $63 = 0, $70 = 0.0, $8 = 0, $82 = 0, $84 = 0, $90 = 0, $92 = 0, $93 = 0, $97 = 0.0, $98 = 0, $99 = 0, $c$0$i = 0.0, $ev1$i = 0, $exitcond$i133 = 0, $exitcond$i14148 = 0, $exitcond$i28106 = 0, $exitcond$i651 = 0, $exitcond3$i59 = 0, $exitcond6$i115 = 0, $exitcond82 = 0, $h$0$i127 = 0, $h$1$i$lcssa = 0, $h$1$i100 = 0, $h$2$i = 0, $i$0$i11155 = 0, $i$0$i141 = 0, $i$0$i2$lcssa = 0, $i$0$i25116 = 0, $i$0$i266 = 0, $i$0$lcssa = 0, $i$090 = 0, $i$1$i2799 = 0, $i$1$i49 = 0, $i$180 = 0, $i$2$i109 = 0, $in1$0$i129 = 0, $in1$0$i17144 = 0, $in2$0$i128 = 0, $in2$0$i16143 = 0, $iter$0$i = 0, $j$0$i13152 = 0, $j$0$i137 = 0, $j$0$i23 = 0, $j$0$i23$lcssa = 0, $j$0$i461 = 0, $j$085 = 0, $j$1$i47 = 0, $j$175 = 0, $k$0$i130 = 0, $k$0$i18145 = 0, $k$0$i24124 = 0, $k$0$i555 = 0, $k$1$i113 = 0, $m$0$i$lcssa = 0, $m$0$i65 = 0, $m$1$i60 = 0, $m$2$i48 = 0, $m$3$i46 = 0, $m1$0$i54 = 0, $m1$089 = 0, $m1$184 = 0, $m2$0$i52 = 0, $m2$0$lcssa = 0, $m2$088 = 0, $m2$183 = 0, $m2$279 = 0, $m2$374 = 0, $out$0$i10154 = 0, $out$0$i140 = 0, $out$1$i12149 = 0, $out$1$i134 = 0, $s$1$i = 0.0, $scevgep2$i = 0, $scevgep41 = 0, $smax$i = 0, $smax38 = 0, $sum$0$i$lcssa = 0.0, $sum$0$i53 = 0.0, $t$0$i$lcssa = 0.0, $t$0$i98 = 0.0, $t$1$i = 0.0, $v1$0$i107 = 0, $v2$0$i108 = 0, $x$0$i$be = 0.0, $x$0$i122 = 0.0, $x$1$i$lcssa = 0.0, $y$0$i$be = 0.0, $y$0$i123 = 0.0, $y$1$i$lcssa = 0.0, sp = 0, $k$0$i24124$looptemp = 0, $h$0$i127$looptemp = 0, $k$1$i113$looptemp = 0; +function _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ev1$i = sp; - $0 = $input + 4 | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = $input + 8 | 0; - $3 = HEAP32[$2 >> 2] | 0; - $5 = ($3 | 0) < ($1 | 0) ? $3 : $1; - L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else { - $8 = $output + 8 | 0; - if ((HEAP32[$8 >> 2] | 0) == ($3 | 0)) { - $11 = $output + 4 | 0; - if ((HEAP32[$11 >> 2] | 0) == ($5 | 0)) { - $14 = $ev + 4 | 0; - if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { - $17 = _arMatrixAlloc($5, $5) | 0; - $18 = $17 + 4 | 0; - if ((HEAP32[$18 >> 2] | 0) == ($5 | 0)) { - $21 = $17 + 8 | 0; - if ((HEAP32[$21 >> 2] | 0) == ($5 | 0)) { - $24 = ($1 | 0) < ($3 | 0); - $25 = HEAP32[$0 >> 2] | 0; - $26 = HEAP32[$2 >> 2] | 0; - if ($24) { - if (($5 | 0) != ($25 | 0)) { - _arMatrixFree($17) | 0; - $$0 = -1; - break; - } - $28 = HEAP32[$17 >> 2] | 0; - if (($5 | 0) > 0) { - $exitcond$i133 = ($5 | 0) == 0; - $30 = ($26 | 0) > 0; - $i$0$i141 = 0; - $out$0$i140 = $28; - while (1) { - $31 = Math_imul($i$0$i141, $26) | 0; - if (!$exitcond$i133) { - $j$0$i137 = 0; - $out$1$i134 = $out$0$i140; - while (1) { - if (($j$0$i137 | 0) < ($i$0$i141 | 0)) { - $35 = $28 + ((Math_imul($j$0$i137, $5) | 0) + $i$0$i141 << 3) | 0; - HEAPF64[$out$1$i134 >> 3] = +HEAPF64[$35 >> 3]; - } else { - $37 = HEAP32[$input >> 2] | 0; - HEAPF64[$out$1$i134 >> 3] = 0.0; - if ($30) { - $47 = 0.0; - $in1$0$i129 = $37 + ($31 << 3) | 0; - $in2$0$i128 = $37 + ((Math_imul($j$0$i137, $26) | 0) << 3) | 0; - $k$0$i130 = 0; - while (1) { - $47 = $47 + +HEAPF64[$in1$0$i129 >> 3] * +HEAPF64[$in2$0$i128 >> 3]; - HEAPF64[$out$1$i134 >> 3] = $47; - $k$0$i130 = $k$0$i130 + 1 | 0; - if (($k$0$i130 | 0) >= ($26 | 0)) break; else { - $in1$0$i129 = $in1$0$i129 + 8 | 0; - $in2$0$i128 = $in2$0$i128 + 8 | 0; - } - } - } - } - $j$0$i137 = $j$0$i137 + 1 | 0; - if (($j$0$i137 | 0) == ($5 | 0)) break; else $out$1$i134 = $out$1$i134 + 8 | 0; - } - } - $i$0$i141 = $i$0$i141 + 1 | 0; - if (($i$0$i141 | 0) >= ($5 | 0)) break; else $out$0$i140 = $out$0$i140 + ($5 << 3) | 0; - } - } - } else { - if (($5 | 0) != ($26 | 0)) { - _arMatrixFree($17) | 0; - $$0 = -1; - break; - } - $55 = HEAP32[$17 >> 2] | 0; - if (($5 | 0) > 0) { - $exitcond$i14148 = ($5 | 0) == 0; - $57 = ($25 | 0) > 0; - $i$0$i11155 = 0; - $out$0$i10154 = $55; - while (1) { - if (!$exitcond$i14148) { - $j$0$i13152 = 0; - $out$1$i12149 = $out$0$i10154; - while (1) { - if (($j$0$i13152 | 0) < ($i$0$i11155 | 0)) { - $61 = $55 + ((Math_imul($j$0$i13152, $5) | 0) + $i$0$i11155 << 3) | 0; - HEAPF64[$out$1$i12149 >> 3] = +HEAPF64[$61 >> 3]; - } else { - $63 = HEAP32[$input >> 2] | 0; - HEAPF64[$out$1$i12149 >> 3] = 0.0; - if ($57) { - $70 = 0.0; - $in1$0$i17144 = $63 + ($i$0$i11155 << 3) | 0; - $in2$0$i16143 = $63 + ($j$0$i13152 << 3) | 0; - $k$0$i18145 = 0; - while (1) { - $70 = $70 + +HEAPF64[$in1$0$i17144 >> 3] * +HEAPF64[$in2$0$i16143 >> 3]; - HEAPF64[$out$1$i12149 >> 3] = $70; - $k$0$i18145 = $k$0$i18145 + 1 | 0; - if (($k$0$i18145 | 0) >= ($25 | 0)) break; else { - $in1$0$i17144 = $in1$0$i17144 + ($5 << 3) | 0; - $in2$0$i16143 = $in2$0$i16143 + ($5 << 3) | 0; - } - } - } - } - $j$0$i13152 = $j$0$i13152 + 1 | 0; - if (($j$0$i13152 | 0) == ($5 | 0)) break; else $out$1$i12149 = $out$1$i12149 + 8 | 0; - } - } - $i$0$i11155 = $i$0$i11155 + 1 | 0; - if (($i$0$i11155 | 0) >= ($5 | 0)) break; else $out$0$i10154 = $out$0$i10154 + ($5 << 3) | 0; - } - } + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { + $39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($39 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $39; + $42 = ($39 << 16 >> 16) * 7 | 0; + $44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1; + $48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255; + $52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $59 = $58 << 16 >> 16; + $62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $64 = $62 << 16 >> 16 > 0; + if ($58 << 16 >> 16 <= 0) { + if ($64) { + HEAP16[$pnt2$362 >> 1] = $62; + $164 = $63 * 7 | 0; + $166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1; + $170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255; + $174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068; + $178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0; + if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - do if (($5 | 0) >= 2) if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { - $82 = _arVecAlloc($5) | 0; - if ($82) { - $84 = $5 + -1 | 0; - HEAP32[$ev1$i + 4 >> 2] = $84; - HEAP32[$ev1$i >> 2] = (HEAP32[$82 >> 2] | 0) + 8; - if ((_arVecTridiagonalize($17, $ev, $ev1$i) | 0) < 0) { - _arVecFree($82) | 0; - break; - } - $90 = HEAP32[$82 >> 2] | 0; - HEAPF64[$90 >> 3] = 0.0; - if (($84 | 0) > 0) { - $exitcond6$i115 = ($5 | 0) == 0; - $h$0$i127 = $84; - do { - $j$0$i23 = $h$0$i127; - while (1) { - if (($j$0$i23 | 0) <= 0) { - $j$0$i23$lcssa = $j$0$i23; - break; - } - $97 = +Math_abs(+(+HEAPF64[$90 + ($j$0$i23 << 3) >> 3])); - $98 = $j$0$i23 + -1 | 0; - $99 = HEAP32[$ev >> 2] | 0; - $102 = +Math_abs(+(+HEAPF64[$99 + ($98 << 3) >> 3])); - if ($97 > ($102 + +Math_abs(+(+HEAPF64[$99 + ($j$0$i23 << 3) >> 3]))) * 1.0e-06) $j$0$i23 = $98; else { - $j$0$i23$lcssa = $j$0$i23; - break; - } - } - $h$0$i127$looptemp = $h$0$i127; - $h$0$i127 = $h$0$i127 + -1 | 0; - L62 : do if (($j$0$i23$lcssa | 0) != ($h$0$i127$looptemp | 0)) { - $112 = $90 + ($h$0$i127$looptemp << 3) | 0; - $113 = $90 + ($j$0$i23$lcssa + 1 << 3) | 0; - $114 = ($j$0$i23$lcssa | 0) < ($h$0$i127$looptemp | 0); - $iter$0$i = 0; - do { - if (($iter$0$i | 0) > 99) break L62; - $iter$0$i = $iter$0$i + 1 | 0; - $117 = HEAP32[$ev >> 2] | 0; - $118 = $117 + ($h$0$i127 << 3) | 0; - $120 = $117 + ($h$0$i127$looptemp << 3) | 0; - $121 = +HEAPF64[$120 >> 3]; - $123 = (+HEAPF64[$118 >> 3] - $121) * .5; - $124 = +HEAPF64[$112 >> 3]; - $125 = $124 * $124; - $128 = +Math_sqrt(+($125 + $123 * $123)); - if ($114) { - $k$0$i24124 = $j$0$i23$lcssa; - $x$0$i122 = +HEAPF64[$117 + ($j$0$i23$lcssa << 3) >> 3] - $121 + $125 / ($123 + ($123 < 0.0 ? -$128 : $128)); - $y$0$i123 = +HEAPF64[$113 >> 3]; - while (1) { - $138 = +Math_abs(+$x$0$i122); - do if (!($138 >= +Math_abs(+$y$0$i123))) { - $150 = -$x$0$i122 / $y$0$i123; - $154 = 1.0 / +Math_sqrt(+($150 * $150 + 1.0)); - $c$0$i = $150 * $154; - $s$1$i = $154; - } else { - if (!($138 > 1.0e-16)) { - $c$0$i = 1.0; - $s$1$i = 0.0; - break; - } - $143 = -$y$0$i123 / $x$0$i122; - $147 = 1.0 / +Math_sqrt(+($143 * $143 + 1.0)); - $c$0$i = $147; - $s$1$i = $143 * $147; - } while (0); - $156 = $117 + ($k$0$i24124 << 3) | 0; - $157 = +HEAPF64[$156 >> 3]; - $k$0$i24124$looptemp = $k$0$i24124; - $k$0$i24124 = $k$0$i24124 + 1 | 0; - $159 = $117 + ($k$0$i24124 << 3) | 0; - $160 = +HEAPF64[$159 >> 3]; - $161 = $157 - $160; - $164 = $90 + ($k$0$i24124 << 3) | 0; - $168 = $s$1$i * ($s$1$i * $161 + $c$0$i * 2.0 * +HEAPF64[$164 >> 3]); - HEAPF64[$156 >> 3] = $157 - $168; - HEAPF64[$159 >> 3] = $160 + $168; - if (($k$0$i24124$looptemp | 0) > ($j$0$i23$lcssa | 0)) { - $172 = $90 + ($k$0$i24124$looptemp << 3) | 0; - HEAPF64[$172 >> 3] = $c$0$i * +HEAPF64[$172 >> 3] - $y$0$i123 * $s$1$i; - } - $179 = +HEAPF64[$164 >> 3]; - HEAPF64[$164 >> 3] = $179 + $s$1$i * ($c$0$i * $161 - $s$1$i * 2.0 * $179); - $184 = Math_imul($k$0$i24124$looptemp, $5) | 0; - $185 = Math_imul($k$0$i24124, $5) | 0; - if ($exitcond6$i115) { - $x$1$i$lcssa = $x$0$i122; - $y$1$i$lcssa = $y$0$i123; - } else { - $186 = HEAP32[$17 >> 2] | 0; - $i$0$i25116 = 0; - do { - $188 = $186 + ($i$0$i25116 + $184 << 3) | 0; - $189 = +HEAPF64[$188 >> 3]; - $191 = $186 + ($i$0$i25116 + $185 << 3) | 0; - $192 = +HEAPF64[$191 >> 3]; - HEAPF64[$188 >> 3] = $c$0$i * $189 - $s$1$i * $192; - HEAPF64[$191 >> 3] = $s$1$i * $189 + $c$0$i * $192; - $i$0$i25116 = $i$0$i25116 + 1 | 0; - } while (($i$0$i25116 | 0) != ($5 | 0)); - $x$1$i$lcssa = $189; - $y$1$i$lcssa = $192; - } - if (($k$0$i24124$looptemp | 0) < ($h$0$i127 | 0)) { - $202 = +HEAPF64[$164 >> 3]; - $204 = $90 + ($k$0$i24124$looptemp + 2 << 3) | 0; - $205 = +HEAPF64[$204 >> 3]; - HEAPF64[$204 >> 3] = $c$0$i * $205; - $x$0$i$be = $202; - $y$0$i$be = -($s$1$i * $205); - } else { - $x$0$i$be = $x$1$i$lcssa; - $y$0$i$be = $y$1$i$lcssa; - } - if (($k$0$i24124 | 0) >= ($h$0$i127$looptemp | 0)) break; else { - $x$0$i122 = $x$0$i$be; - $y$0$i123 = $y$0$i$be; - } - } - } - $210 = +Math_abs(+(+HEAPF64[$112 >> 3])); - $212 = +Math_abs(+(+HEAPF64[$118 >> 3])); - } while ($210 > ($212 + +Math_abs(+(+HEAPF64[$120 >> 3]))) * 1.0e-06); - } while (0); - } while (($h$0$i127$looptemp | 0) > 1); - } - if ($84) { - $92 = HEAP32[$ev >> 2] | 0; - $93 = HEAP32[$17 >> 2] | 0; - $exitcond$i28106 = ($5 | 0) == 0; - $k$1$i113 = 0; - do { - $219 = $92 + ($k$1$i113 << 3) | 0; - $220 = +HEAPF64[$219 >> 3]; - $k$1$i113$looptemp = $k$1$i113; - $k$1$i113 = $k$1$i113 + 1 | 0; - if (($k$1$i113 | 0) < ($5 | 0)) { - $h$1$i100 = $k$1$i113$looptemp; - $i$1$i2799 = $k$1$i113; - $t$0$i98 = $220; - while (1) { - $223 = +HEAPF64[$92 + ($i$1$i2799 << 3) >> 3]; - $224 = $223 > $t$0$i98; - $t$1$i = $224 ? $223 : $t$0$i98; - $h$2$i = $224 ? $i$1$i2799 : $h$1$i100; - $i$1$i2799 = $i$1$i2799 + 1 | 0; - if (($i$1$i2799 | 0) >= ($5 | 0)) { - $h$1$i$lcssa = $h$2$i; - $t$0$i$lcssa = $t$1$i; - break; - } else { - $h$1$i100 = $h$2$i; - $t$0$i98 = $t$1$i; - } - } - } else { - $h$1$i$lcssa = $k$1$i113$looptemp; - $t$0$i$lcssa = $220; - } - HEAPF64[$92 + ($h$1$i$lcssa << 3) >> 3] = $220; - HEAPF64[$219 >> 3] = $t$0$i$lcssa; - if (!$exitcond$i28106) { - $i$2$i109 = 0; - $v1$0$i107 = $93 + ((Math_imul($h$1$i$lcssa, $5) | 0) << 3) | 0; - $v2$0$i108 = $93 + ((Math_imul($k$1$i113$looptemp, $5) | 0) << 3) | 0; - while (1) { - $232 = +HEAPF64[$v1$0$i107 >> 3]; - HEAPF64[$v1$0$i107 >> 3] = +HEAPF64[$v2$0$i108 >> 3]; - HEAPF64[$v2$0$i108 >> 3] = $232; - $i$2$i109 = $i$2$i109 + 1 | 0; - if (($i$2$i109 | 0) == ($5 | 0)) break; else { - $v1$0$i107 = $v1$0$i107 + 8 | 0; - $v2$0$i108 = $v2$0$i108 + 8 | 0; - } - } - } - } while (($k$1$i113 | 0) != ($84 | 0)); + $184 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($184 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $184; + $187 = ($184 << 16 >> 16) * 7 | 0; + $189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1; + $193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255; + $197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068; + $201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0; + if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$201 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $204 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $204; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16; + $209 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $204; + break; + } + } + if ($64) { + $67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + $70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + if (($67 | 0) > ($70 | 0)) { + HEAP16[$pnt2$362 >> 1] = $70; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $87 = $70; + break; + } else $wk$052 = $wk$052 + 4 | 0; } - _arVecFree($82) | 0; - L104 : do if ($24) { - $237 = HEAP32[$0 >> 2] | 0; - $238 = HEAP32[$2 >> 2] | 0; - do if (!(($237 | 0) < 1 | ($238 | 0) < 1)) { - if ((HEAP32[$18 >> 2] | 0) != ($237 | 0)) break; - if ((HEAP32[$21 >> 2] | 0) != ($237 | 0)) break; - if ((HEAP32[$11 >> 2] | 0) != ($237 | 0)) break; - if ((HEAP32[$8 >> 2] | 0) != ($238 | 0)) break; - if ((HEAP32[$14 >> 2] | 0) != ($237 | 0)) break; - $251 = HEAP32[$output >> 2] | 0; - L113 : do if (($237 | 0) > 0) { - $253 = HEAP32[$ev >> 2] | 0; - $exitcond3$i59 = ($238 | 0) == 0; - $exitcond$i651 = ($237 | 0) == 0; - $i$0$i266 = 0; - $m$0$i65 = $251; - while (1) { - $259 = +HEAPF64[$253 + ($i$0$i266 << 3) >> 3]; - if ($259 < 1.0e-16) { - $i$0$i2$lcssa = $i$0$i266; - $m$0$i$lcssa = $m$0$i65; - break L113; - } - $263 = 1.0 / +Math_sqrt(+(+Math_abs(+$259))); - $264 = Math_imul($i$0$i266, $237) | 0; - if (!$exitcond3$i59) { - $j$0$i461 = 0; - $m$1$i60 = $m$0$i65; - while (1) { - if ($exitcond$i651) $sum$0$i$lcssa = 0.0; else { - $k$0$i555 = 0; - $m1$0$i54 = (HEAP32[$17 >> 2] | 0) + ($264 << 3) | 0; - $m2$0$i52 = (HEAP32[$input >> 2] | 0) + ($j$0$i461 << 3) | 0; - $sum$0$i53 = 0.0; - while (1) { - $272 = $sum$0$i53 + +HEAPF64[$m1$0$i54 >> 3] * +HEAPF64[$m2$0$i52 >> 3]; - $k$0$i555 = $k$0$i555 + 1 | 0; - if (($k$0$i555 | 0) == ($237 | 0)) { - $sum$0$i$lcssa = $272; - break; - } else { - $m1$0$i54 = $m1$0$i54 + 8 | 0; - $m2$0$i52 = $m2$0$i52 + ($238 << 3) | 0; - $sum$0$i53 = $272; - } - } - } - HEAPF64[$m$1$i60 >> 3] = $263 * $sum$0$i$lcssa; - $j$0$i461 = $j$0$i461 + 1 | 0; - if (($j$0$i461 | 0) == ($238 | 0)) break; else $m$1$i60 = $m$1$i60 + 8 | 0; - } - } - $scevgep2$i = $m$0$i65 + ($238 << 3) | 0; - $279 = $i$0$i266 + 1 | 0; - if (($279 | 0) < ($237 | 0)) { - $i$0$i266 = $279; - $m$0$i65 = $scevgep2$i; - } else { - $i$0$i2$lcssa = $279; - $m$0$i$lcssa = $scevgep2$i; - break; - } - } - } else { - $i$0$i2$lcssa = 0; - $m$0$i$lcssa = $251; - } while (0); - $smax$i = ($238 | 0) > 0 ? $238 : 0; - if (($i$0$i2$lcssa | 0) >= ($237 | 0)) break L104; - $256 = HEAP32[$ev >> 2] | 0; - $257 = ($238 | 0) > 0; - $i$1$i49 = $i$0$i2$lcssa; - $m$2$i48 = $m$0$i$lcssa; - while (1) { - HEAPF64[$256 + ($i$1$i49 << 3) >> 3] = 0.0; - if ($257) { - $j$1$i47 = 0; - $m$3$i46 = $m$2$i48; - while (1) { - HEAPF64[$m$3$i46 >> 3] = 0.0; - $j$1$i47 = $j$1$i47 + 1 | 0; - if (($j$1$i47 | 0) >= ($238 | 0)) break; else $m$3$i46 = $m$3$i46 + 8 | 0; - } - } - $i$1$i49 = $i$1$i49 + 1 | 0; - if (($i$1$i49 | 0) >= ($237 | 0)) break L104; else $m$2$i48 = $m$2$i48 + ($smax$i << 3) | 0; - } - } while (0); - _arMatrixFree($17) | 0; - $$0 = -1; - break L1; - } else { - $287 = HEAP32[$output >> 2] | 0; - $289 = ($1 | 0) > ($3 | 0) ? $3 : $1; - L137 : do if (($5 | 0) > 0) { - $292 = HEAP32[$ev >> 2] | 0; - $exitcond82 = ($289 | 0) == 0; - $i$090 = 0; - $m1$089 = HEAP32[$17 >> 2] | 0; - $m2$088 = $287; - while (1) { - if (+HEAPF64[$292 + ($i$090 << 3) >> 3] < 1.0e-16) { - $i$0$lcssa = $i$090; - $m2$0$lcssa = $m2$088; - break L137; - } - if (!$exitcond82) { - $j$085 = 0; - $m1$184 = $m1$089; - $m2$183 = $m2$088; - while (1) { - HEAPF64[$m2$183 >> 3] = +HEAPF64[$m1$184 >> 3]; - $j$085 = $j$085 + 1 | 0; - if (($j$085 | 0) == ($289 | 0)) break; else { - $m1$184 = $m1$184 + 8 | 0; - $m2$183 = $m2$183 + 8 | 0; - } - } - } - $m1$089 = $m1$089 + ($289 << 3) | 0; - $scevgep41 = $m2$088 + ($289 << 3) | 0; - $304 = $i$090 + 1 | 0; - if (($304 | 0) >= ($5 | 0)) { - $i$0$lcssa = $304; - $m2$0$lcssa = $scevgep41; - break; - } else { - $i$090 = $304; - $m2$088 = $scevgep41; - } - } - } else { - $i$0$lcssa = 0; - $m2$0$lcssa = $287; - } while (0); - $smax38 = ($289 | 0) > 0 ? $289 : 0; - if (($i$0$lcssa | 0) < ($5 | 0)) { - $295 = HEAP32[$ev >> 2] | 0; - $296 = ($5 | 0) > 0; - $i$180 = $i$0$lcssa; - $m2$279 = $m2$0$lcssa; - while (1) { - HEAPF64[$295 + ($i$180 << 3) >> 3] = 0.0; - if ($296) { - $j$175 = 0; - $m2$374 = $m2$279; - while (1) { - HEAPF64[$m2$374 >> 3] = 0.0; - $j$175 = $j$175 + 1 | 0; - if (($j$175 | 0) >= ($5 | 0)) break; else $m2$374 = $m2$374 + 8 | 0; - } - } - $i$180 = $i$180 + 1 | 0; - if (($i$180 | 0) >= ($5 | 0)) break; else $m2$279 = $m2$279 + ($smax38 << 3) | 0; - } - } - } while (0); - _arMatrixFree($17) | 0; - $$0 = 0; - break L1; + } else $87 = $70; + } else { + HEAP16[$pnt2$362 >> 1] = $67; + if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $87 = $67; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $87 = $67; + } + $89 = ($87 << 16 >> 16) * 7 | 0; + $91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1; + $95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255; + $99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $105 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($105 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $58; + $145 = $59 * 7 | 0; + $147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1; + $151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255; + $155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068; + $159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0; + if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + $113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($110 | 0) > ($113 | 0)) { + HEAP16[$pnt2$362 >> 1] = $113; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $130 = $113; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $130 = $113; + } else { + HEAP16[$pnt2$362 >> 1] = $110; + if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $130 = $110; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $130 = $110; + } + $132 = ($130 << 16 >> 16) * 7 | 0; + $134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1; + $138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255; + $142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $224 = $pnt$163 + 2 | 0; + $225 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $224; + $pnt2$3$lcssa = $225; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $224; + $pnt2$362 = $225; + $wk_max$157 = $wk_max$2; + } + } + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; + } + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $231 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $233 = HEAP32[$wk$439 >> 2] | 0; + if (($233 | 0) == ($i$337 | 0)) { + $239 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; + } + HEAP32[$wk$439 >> 2] = $239; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } + } + $243 = $labelInfo + 8 | 0; + $244 = $j$1$lcssa + -1 | 0; + HEAP32[$243 >> 2] = $244; + if (!$244) $$0 = 0; else { + _memset($231 | 0, 0, $244 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $251 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $266 = $i$533 * 7 | 0; + $269 = $labelInfo + 12 + ($265 << 2) | 0; + HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0); + $276 = $265 << 1; + $277 = $labelInfo + 655376 + ($276 << 3) | 0; + HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0); + $285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0); + $288 = $265 << 2; + $289 = $labelInfo + 131084 + ($288 << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$243 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $318 = $labelInfo + 12 + ($i$632 << 2) | 0; + $321 = $i$632 << 1; + $322 = $labelInfo + 655376 + ($321 << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0); + $328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0; + HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 1) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + $26 = HEAPU8[$pnt$163 >> 0] | 0; + do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($39 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $39; + $42 = ($39 << 16 >> 16) * 7 | 0; + $44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1; + $48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0; + HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255; + $52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0; + HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $59 = $58 << 16 >> 16; + $62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $63 = $62 << 16 >> 16; + $64 = $62 << 16 >> 16 > 0; + if ($58 << 16 >> 16 <= 0) { + if ($64) { + HEAP16[$pnt2$362 >> 1] = $62; + $164 = $63 * 7 | 0; + $166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1; + $170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0; + HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255; + $174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0; + HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068; + $178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0; + if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $184 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($184 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $184; + $187 = ($184 << 16 >> 16) * 7 | 0; + $189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1; + $193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0; + HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255; + $197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0; + HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068; + $201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0; + if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; } - } while (0); - _arMatrixFree($17) | 0; - $$0 = -1; + HEAP32[$201 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $204 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $204; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16; + $209 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $204; + break; + } + } + if ($64) { + $67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + $70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; + if (($67 | 0) > ($70 | 0)) { + HEAP16[$pnt2$362 >> 1] = $70; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $87 = $70; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $87 = $70; + } else { + HEAP16[$pnt2$362 >> 1] = $67; + if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $87 = $67; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $87 = $67; + } + $89 = ($87 << 16 >> 16) * 7 | 0; + $91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1; + $95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0; + HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255; + $99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $105 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($105 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $58; + $145 = $59 * 7 | 0; + $147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1; + $151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0; + HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255; + $155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068; + $159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0; + if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } + $110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; + $113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($110 | 0) > ($113 | 0)) { + HEAP16[$pnt2$362 >> 1] = $113; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $130 = $113; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $130 = $113; + } else { + HEAP16[$pnt2$362 >> 1] = $110; + if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $130 = $110; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $130 = $110; + } + $132 = ($130 << 16 >> 16) * 7 | 0; + $134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1; + $138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0; + HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255; + $142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0; + HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $224 = $pnt$163 + 2 | 0; + $225 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $224; + $pnt2$3$lcssa = $225; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $224; + $pnt2$362 = $225; + $wk_max$157 = $wk_max$2; } - _arMatrixFree($17) | 0; - $$0 = -1; - } else $$0 = -1; - } else $$0 = -1; - } else $$0 = -1; - } while (0); - STACKTOP = sp; - return $$0 | 0; -} - -function _arDetectMarker($arHandle, $dataPtr) { - $arHandle = $arHandle | 0; - $dataPtr = $dataPtr | 0; - var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa109 = 0.0, $$lcssa110 = 0.0, $$pr10 = 0, $$pre$phi45Z2D = 0, $$pre$phi47Z2D = 0, $$pre$phi49Z2D = 0, $$pre$phi51Z2D = 0, $$pre$phi53Z2D = 0, $$pre$phiZ2D = 0, $$pre35 = 0, $$pre37 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $106 = 0, $115 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $126 = 0, $132 = 0, $135 = 0, $14 = 0, $144 = 0, $146 = 0, $155 = 0, $157 = 0, $16 = 0, $163 = 0, $164 = 0, $187 = 0, $190 = 0, $191 = 0, $193 = 0, $195 = 0, $196 = 0, $199 = 0.0, $2 = 0, $20 = 0, $202 = 0.0, $203 = 0.0, $209 = 0.0, $21 = 0, $214 = 0.0, $217 = 0.0, $22 = 0, $222 = 0, $223 = 0, $226 = 0.0, $229 = 0, $23 = 0, $231 = 0, $235 = 0, $238 = 0.0, $24 = 0, $244 = 0.0, $247 = 0.0, $25 = 0, $26 = 0, $262 = 0, $265 = 0.0, $267 = 0, $269 = 0, $27 = 0, $28 = 0, $282 = 0, $285 = 0.0, $29 = 0, $291 = 0.0, $294 = 0.0, $296 = 0, $30 = 0, $300 = 0, $31 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $324 = 0, $326 = 0, $328 = 0, $33 = 0, $330 = 0, $335 = 0, $343 = 0, $350 = 0, $351 = 0, $353 = 0, $355 = 0.0, $358 = 0.0, $359 = 0.0, $365 = 0.0, $370 = 0.0, $375 = 0, $381 = 0, $385 = 0, $386 = 0, $387 = 0, $4 = 0, $5 = 0, $69 = 0, $71 = 0, $72 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $8 = 0, $80 = 0, $83 = 0, $86 = 0, $89 = 0, $9 = 0, $91 = 0, $92 = 0, $cdir$1 = 0, $cdir$1$lcssa = 0, $cdir$295 = 0, $cdir$3 = 0, $cdir$3$lcssa = 0, $cid$0$lcssa = 0, $cid$087 = 0, $cid$1 = 0, $diff$097 = 0.0, $diff$192 = 0.0, $diffmin$099 = 0.0, $diffmin$1 = 0.0, $diffmin$294 = 0.0, $i$0104 = 0, $i$1101 = 0, $i$280 = 0, $i$373 = 0, $i$467 = 0, $j$088 = 0, $j$1100 = 0, $j$296 = 0, $j$3$lcssa = 0, $j$381 = 0, $j$4 = 0, $j$5$lcssa = 0, $j$568 = 0, $j$6$lcssa = 0, $j$663 = 0, $k$098 = 0, $k$193 = 0, $marker_nums = 0, $ret1$0 = 0, $rlenmin$086 = 0.0, $rlenmin$1 = 0.0, $storemerge = 0, $storemerge11 = 0, $storemerge4 = 0, $thresholds = 0, $value = 0, $vararg_buffer = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer9 = sp + 32 | 0; - $vararg_buffer6 = sp + 24 | 0; - $vararg_buffer = sp; - $thresholds = sp + 52 | 0; - $marker_nums = sp + 40 | 0; - $value = sp + 64 | 0; - $0 = $arHandle + 44 | 0; - HEAP32[$0 >> 2] = 0; - $1 = $arHandle + 7062388 | 0; - $2 = HEAP32[$1 >> 2] | 0; - L1 : do if (($2 | 0) == 4) { - $4 = $arHandle + 7062396 | 0; - $5 = HEAP32[$4 >> 2] | 0; - do if (($5 | 0) > 0) { - $$pr10 = 4; - $storemerge11 = $5 + -1 | 0; - } else { - $8 = $arHandle + 16 | 0; - $9 = HEAP32[$8 >> 2] | 0; - $10 = $arHandle + 7062400 | 0; - $12 = (HEAP32[$10 >> 2] | 0) + $9 | 0; - $$ = ($12 | 0) > 255 ? 255 : $12; - HEAP32[$thresholds >> 2] = $$; - $14 = $arHandle + 7062404 | 0; - $16 = $9 - (HEAP32[$14 >> 2] | 0) | 0; - $storemerge4 = ($16 | 0) < 0 ? 0 : $16; - HEAP32[$thresholds + 4 >> 2] = $storemerge4; - HEAP32[$thresholds + 8 >> 2] = $9; - $20 = $arHandle + 36 | 0; - $21 = $arHandle + 40 | 0; - $22 = $arHandle + 4 | 0; - $23 = $arHandle + 12 | 0; - $24 = $arHandle + 20 | 0; - $25 = $arHandle + 4834144 | 0; - $26 = $arHandle + 15416 | 0; - $27 = $arHandle + 15408 | 0; - $28 = $arHandle + 7062384 | 0; - $29 = $arHandle + 24 | 0; - $30 = $arHandle + 32 | 0; - $31 = $arHandle + 7062416 | 0; - $32 = $arHandle + 48 | 0; - $33 = $arHandle + 7062424 | 0; - $i$0104 = 0; - do { - if ((_arLabeling($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$23 >> 2] | 0, HEAP32[$thresholds + ($i$0104 << 2) >> 2] | 0, HEAP32[$24 >> 2] | 0, $25, 0) | 0) < 0) { - $$0 = -1; - break L1; - } - if ((_arDetectMarker2(HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, $25, HEAP32[$24 >> 2] | 0, 1e6, 70, 1.0, $26, $27) | 0) < 0) { - $$0 = -1; - break L1; - } - if ((_arGetMarkerInfo($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, $26, HEAP32[$27 >> 2] | 0, HEAP32[$28 >> 2] | 0, HEAP32[$24 >> 2] | 0, HEAP32[$29 >> 2] | 0, (HEAP32[$30 >> 2] | 0) + 184 | 0, +HEAPF64[$31 >> 3], $32, $0, HEAP32[$33 >> 2] | 0) | 0) < 0) { - $$0 = -1; - break L1; } - HEAP32[$marker_nums + ($i$0104 << 2) >> 2] = HEAP32[$0 >> 2]; - $i$0104 = $i$0104 + 1 | 0; - } while (($i$0104 | 0) < 3); - if ((HEAP32[$arHandle >> 2] | 0) == 1) { - $69 = HEAP32[$marker_nums + 4 >> 2] | 0; - $71 = HEAP32[$marker_nums + 8 >> 2] | 0; - $72 = HEAP32[$marker_nums >> 2] | 0; - HEAP32[$vararg_buffer >> 2] = $storemerge4; - HEAP32[$vararg_buffer + 4 >> 2] = $69; - HEAP32[$vararg_buffer + 8 >> 2] = $9; - HEAP32[$vararg_buffer + 12 >> 2] = $71; - HEAP32[$vararg_buffer + 16 >> 2] = $$; - HEAP32[$vararg_buffer + 20 >> 2] = $72; - _arLog(3, 4153, $vararg_buffer); - $74 = $72; - $75 = $71; } else { - $74 = HEAP32[$marker_nums >> 2] | 0; - $75 = HEAP32[$marker_nums + 8 >> 2] | 0; - } - $$pre35 = HEAP32[$marker_nums + 4 >> 2] | 0; - if (($74 | 0) > ($75 | 0) | ($$pre35 | 0) > ($75 | 0)) { - $91 = ($74 | 0) >= ($$pre35 | 0) ? $$ : $storemerge4; - HEAP32[$8 >> 2] = $91; - $92 = $91 - $9 | 0; - if (($92 | 0) > 0) { - HEAP32[$10 >> 2] = $92; - $storemerge = 1; - } else { - HEAP32[$10 >> 2] = 1; - $storemerge = 0 - $92 | 0; - } - HEAP32[$14 >> 2] = $storemerge; - if ((HEAP32[$arHandle >> 2] | 0) == 1) { - HEAP32[$vararg_buffer6 >> 2] = $91; - _arLog(3, 4229, $vararg_buffer6); - } - $$pr10 = HEAP32[$1 >> 2] | 0; - $storemerge11 = HEAP32[$arHandle + 7062392 >> 2] | 0; - break; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $77 = HEAP32[$10 >> 2] | 0; - $78 = HEAP32[$14 >> 2] | 0; - do if (($77 | 0) < ($78 | 0)) { - $80 = $77 + 1 | 0; - HEAP32[$10 >> 2] = $80; - $86 = $80; - } else if (($77 | 0) > ($78 | 0)) { - HEAP32[$14 >> 2] = $78 + 1; - $86 = $77; - break; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $83 = $77 + 1 | 0; - HEAP32[$10 >> 2] = $83; - HEAP32[$14 >> 2] = $78 + 1; - $86 = $83; - break; - } while (0); - if (($86 + $9 | 0) > 254) { - HEAP32[$10 >> 2] = 1; - $89 = 1; - } else $89 = $86; - if (($9 | 0) <= ($89 | 0)) HEAP32[$14 >> 2] = 1; - HEAP32[$4 >> 2] = HEAP32[$arHandle + 7062392 >> 2]; - label = 47; - break L1; - } while (0); - HEAP32[$4 >> 2] = $storemerge11; - $101 = $$pr10; - label = 30; + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; } else { - $101 = $2; - label = 30; + $wk_max$0$lcssa = 0; + label = 52; } while (0); - L40 : do if ((label | 0) == 30) { - L42 : do switch ($101 | 0) { - case 3: - { - $102 = $arHandle + 7062408 | 0; - $104 = _arImageProcLumaHistAndBoxFilterWithBias(HEAP32[$102 >> 2] | 0, $dataPtr, 9, -7) | 0; - if (($104 | 0) < 0) { - $$0 = $104; - break L40; + if ((label | 0) == 52) { + $231 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $233 = HEAP32[$wk$439 >> 2] | 0; + if (($233 | 0) == ($i$337 | 0)) { + $239 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - $106 = HEAP32[$102 >> 2] | 0; - $115 = $arHandle + 4834144 | 0; - $118 = _arLabeling(HEAP32[$106 >> 2] | 0, HEAP32[$106 + 8 >> 2] | 0, HEAP32[$106 + 12 >> 2] | 0, 5, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, 0, 0, $115, HEAP32[$106 + 4 >> 2] | 0) | 0; - if (($118 | 0) < 0) { - $$0 = $118; - break L40; + HEAP32[$wk$439 >> 2] = $239; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - $$pre$phi45Z2D = $arHandle + 36 | 0; - $$pre$phi47Z2D = $arHandle + 40 | 0; - $$pre$phi49Z2D = $arHandle + 20 | 0; - $$pre$phiZ2D = $115; - break; } - case 2: - case 1: - { - $120 = $arHandle + 7062396 | 0; - $121 = HEAP32[$120 >> 2] | 0; - if (($121 | 0) > 0) { - HEAP32[$120 >> 2] = $121 + -1; - label = 44; - break L42; - } - $126 = HEAP32[$arHandle + 7062408 >> 2] | 0; - if (($101 | 0) == 1) $ret1$0 = _arImageProcLumaHistAndCDFAndMedian($126, $dataPtr, $value) | 0; else $ret1$0 = _arImageProcLumaHistAndOtsu($126, $dataPtr, $value) | 0; - if (($ret1$0 | 0) < 0) { - $$0 = $ret1$0; - break L40; - } - $132 = $arHandle + 16 | 0; - if ((HEAP32[$arHandle >> 2] | 0) == 1) { - $135 = HEAPU8[$value >> 0] | 0; - if ((HEAP32[$132 >> 2] | 0) != ($135 | 0)) { - HEAP32[$vararg_buffer9 >> 2] = (HEAP32[$1 >> 2] | 0) == 1 ? 4281 : 4288; - HEAP32[$vararg_buffer9 + 4 >> 2] = $135; - _arLog(3, 4293, $vararg_buffer9); - } - } - HEAP32[$132 >> 2] = HEAPU8[$value >> 0]; - HEAP32[$120 >> 2] = HEAP32[$arHandle + 7062392 >> 2]; - label = 44; - break; + } + $243 = $labelInfo + 8 | 0; + $244 = $j$1$lcssa + -1 | 0; + HEAP32[$243 >> 2] = $244; + if (!$244) $$0 = 0; else { + _memset($231 | 0, 0, $244 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $251 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0)); } - default: - label = 44; - } while (0); - if ((label | 0) == 44) { - $144 = $arHandle + 36 | 0; - $146 = $arHandle + 40 | 0; - $155 = $arHandle + 20 | 0; - $157 = $arHandle + 4834144 | 0; - if ((_arLabeling($dataPtr, HEAP32[$144 >> 2] | 0, HEAP32[$146 >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, HEAP32[$arHandle + 16 >> 2] | 0, HEAP32[$155 >> 2] | 0, $157, 0) | 0) < 0) { - $$0 = -1; - break; - } else { - $$pre$phi45Z2D = $144; - $$pre$phi47Z2D = $146; - $$pre$phi49Z2D = $155; - $$pre$phiZ2D = $157; + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $266 = $i$533 * 7 | 0; + $269 = $labelInfo + 12 + ($265 << 2) | 0; + HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0); + $276 = $265 << 1; + $277 = $labelInfo + 655376 + ($276 << 3) | 0; + HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0); + $285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0; + HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0); + $288 = $265 << 2; + $289 = $labelInfo + 131084 + ($288 << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307; + $310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0; + $314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0; + if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } + if ((HEAP32[$243 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $318 = $labelInfo + 12 + ($i$632 << 2) | 0; + $321 = $i$632 << 1; + $322 = $labelInfo + 655376 + ($321 << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0); + $328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0; + HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - $163 = $arHandle + 15416 | 0; - $164 = $arHandle + 15408 | 0; - if ((_arDetectMarker2(HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, $$pre$phiZ2D, HEAP32[$$pre$phi49Z2D >> 2] | 0, 1e6, 70, 1.0, $163, $164) | 0) < 0) $$0 = -1; else if ((_arGetMarkerInfo($dataPtr, HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, $163, HEAP32[$164 >> 2] | 0, HEAP32[$arHandle + 7062384 >> 2] | 0, HEAP32[$$pre$phi49Z2D >> 2] | 0, HEAP32[$arHandle + 24 >> 2] | 0, (HEAP32[$arHandle + 32 >> 2] | 0) + 184 | 0, +HEAPF64[$arHandle + 7062416 >> 3], $arHandle + 48 | 0, $0, HEAP32[$arHandle + 7062424 >> 2] | 0) | 0) < 0) $$0 = -1; else label = 47; - } while (0); - L63 : do if ((label | 0) == 47) { - $187 = $arHandle + 28 | 0; - if ((HEAP32[$187 >> 2] | 0) == 1) { - _confidenceCutoff($arHandle); - $$0 = 0; - break; - } - $190 = $arHandle + 4818296 | 0; - $191 = $arHandle + 24 | 0; - $$pre37 = HEAP32[$190 >> 2] | 0; - if (($$pre37 | 0) > 0) { - $i$1101 = 0; - do { - $193 = HEAP32[$0 >> 2] | 0; - $195 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 56 | 0; - $196 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 64 | 0; - if (($193 | 0) > 0) { - $199 = +(HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) >> 2] | 0); - $cid$087 = -1; - $j$088 = 0; - $rlenmin$086 = .5; - while (1) { - $202 = +(HEAP32[$arHandle + 48 + ($j$088 << 8) >> 2] | 0); - $203 = $199 / $202; - if ($203 < .7 | $203 > 1.43) { - $cid$1 = $cid$087; - $rlenmin$1 = $rlenmin$086; - } else { - $209 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 56 >> 3] - +HEAPF64[$195 >> 3]; - $214 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 64 >> 3] - +HEAPF64[$196 >> 3]; - $217 = ($209 * $209 + $214 * $214) / $202; - if ($217 < $rlenmin$086) { - $cid$1 = $j$088; - $rlenmin$1 = $217; - } else { - $cid$1 = $cid$087; - $rlenmin$1 = $rlenmin$086; - } - } - $j$088 = $j$088 + 1 | 0; - if (($j$088 | 0) >= ($193 | 0)) { - $cid$0$lcssa = $cid$1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 2) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) { + $38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($38 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $38; + $41 = ($38 << 16 >> 16) * 7 | 0; + $43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1; + $47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255; + $51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; - } else { - $cid$087 = $cid$1; - $rlenmin$086 = $rlenmin$1; } - } - } else $cid$0$lcssa = -1; - L80 : do if (($cid$0$lcssa | 0) > -1) { - $222 = HEAP32[$191 >> 2] | 0; - switch ($222 | 0) { - case 2: - case 1: - case 0: - break; - case 4: - case 3: - { - $262 = $arHandle + 48 + ($cid$0$lcssa << 8) + 40 | 0; - $265 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 40 >> 3]; - if (+HEAPF64[$262 >> 3] < $265) { - $$pre$phi51Z2D = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0; - $$pre$phi53Z2D = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0; - } else { - $267 = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0; - $269 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0; - if (+HEAPF64[$267 >> 3] < +HEAPF64[$269 >> 3]) { - $$pre$phi51Z2D = $269; - $$pre$phi53Z2D = $267; - } else break L80; + $57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $58 = $57 << 16 >> 16; + $61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $63 = $61 << 16 >> 16 > 0; + if ($57 << 16 >> 16 <= 0) { + if ($63) { + HEAP16[$pnt2$362 >> 1] = $61; + $163 = $62 * 7 | 0; + $165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1; + $169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255; + $173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068; + $177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0; + if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - HEAPF64[$262 >> 3] = $265; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 8 >> 2]; - HEAPF64[$$pre$phi53Z2D >> 3] = +HEAPF64[$$pre$phi51Z2D >> 3]; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 12 >> 2]; - $cdir$295 = -1; - $diffmin$294 = 1.0e8; - $j$296 = 0; - while (1) { - $diff$192 = 0.0; - $k$193 = 0; - while (1) { - $282 = ($k$193 + $j$296 | 0) % 4 | 0; - $285 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) >> 3]; - $291 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) + 8 >> 3]; - $294 = $diff$192 + ($285 * $285 + $291 * $291); - $k$193 = $k$193 + 1 | 0; - if (($k$193 | 0) == 4) { - $$lcssa109 = $294; - break; - } else $diff$192 = $294; - } - $296 = $$lcssa109 < $diffmin$294; - $cdir$3 = $296 ? $j$296 : $cdir$295; - $j$296 = $j$296 + 1 | 0; - if (($j$296 | 0) == 4) { - $cdir$3$lcssa = $cdir$3; + $183 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($183 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $183; + $186 = ($183 << 16 >> 16) * 7 | 0; + $188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1; + $192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255; + $196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068; + $200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0; + if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; - } else { - $cdir$295 = $cdir$3; - $diffmin$294 = $296 ? $$lcssa109 : $diffmin$294; } - } - $300 = 4 - $cdir$3$lcssa | 0; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 20 >> 2] | 0) | 0) % 4 | 0; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 24 >> 2] | 0) | 0) % 4 | 0; - break L80; - break; - } - default: - { - $$0 = -1; - break L63; - } - } - $223 = $arHandle + 48 + ($cid$0$lcssa << 8) + 32 | 0; - $226 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 32 >> 3]; - if (+HEAPF64[$223 >> 3] < $226) { - HEAPF64[$223 >> 3] = $226; - $229 = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 4 >> 2] | 0; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 4 >> 2] = $229; - $231 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 16 | 0; - $385 = -1; - $diffmin$099 = 1.0e8; - $j$1100 = 0; - while (1) { - $diff$097 = 0.0; - $k$098 = 0; - while (1) { - $235 = ($k$098 + $j$1100 | 0) % 4 | 0; - $238 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) >> 3]; - $244 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) + 8 >> 3]; - $247 = $diff$097 + ($238 * $238 + $244 * $244); - $k$098 = $k$098 + 1 | 0; - if (($k$098 | 0) == 4) { - $$lcssa110 = $247; - break; - } else $diff$097 = $247; - } - if ($$lcssa110 < $diffmin$099) { - $cdir$1 = (4 - $j$1100 + (HEAP32[$231 >> 2] | 0) | 0) % 4 | 0; - $diffmin$1 = $$lcssa110; + HEAP32[$200 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; } else { - $cdir$1 = $385; - $diffmin$1 = $diffmin$099; - } - $j$1100 = $j$1100 + 1 | 0; - if (($j$1100 | 0) == 4) { - $cdir$1$lcssa = $cdir$1; + $203 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $203; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16; + $208 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $203; break; + } + } + if ($63) { + $66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + $69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + if (($66 | 0) > ($69 | 0)) { + HEAP16[$pnt2$362 >> 1] = $69; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $86 = $69; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $86 = $69; } else { - $385 = $cdir$1; - $diffmin$099 = $diffmin$1; + HEAP16[$pnt2$362 >> 1] = $66; + if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $86 = $66; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $86 = $66; } + $88 = ($86 << 16 >> 16) * 7 | 0; + $90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1; + $94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255; + $98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 16 >> 2] = $cdir$1$lcssa; - if ($222 >>> 0 < 2) { - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = $229; - HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 40 >> 3] = $226; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = $cdir$1$lcssa; + $104 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($104 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $57; + $144 = $58 * 7 | 0; + $146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1; + $150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255; + $154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068; + $158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0; + if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; + } + $109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + $112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($109 | 0) > ($112 | 0)) { + HEAP16[$pnt2$362 >> 1] = $112; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $129 = $112; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $129 = $112; } else { - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = $229; - HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 48 >> 3] = $226; - HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = $cdir$1$lcssa; - break; + HEAP16[$pnt2$362 >> 1] = $109; + if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $129 = $109; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $129 = $109; } + $131 = ($129 << 16 >> 16) * 7 | 0; + $133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1; + $137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255; + $141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $223 = $pnt$163 + 4 | 0; + $224 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $223; + $pnt2$3$lcssa = $224; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $223; + $pnt2$362 = $224; + $wk_max$157 = $wk_max$2; } - } while (0); - $i$1101 = $i$1101 + 1 | 0; - } while (($i$1101 | 0) < ($$pre37 | 0)); - } - _confidenceCutoff($arHandle); - if ((HEAP32[$190 >> 2] | 0) > 0) { - $i$280 = 0; - $j$381 = 0; - while (1) { - $313 = $arHandle + 4818304 + ($i$280 * 264 | 0) | 0; - $314 = $arHandle + 4818304 + ($i$280 * 264 | 0) + 256 | 0; - $316 = (HEAP32[$314 >> 2] | 0) + 1 | 0; - HEAP32[$314 >> 2] = $316; - if (($316 | 0) < 4) { - if (($i$280 | 0) != ($j$381 | 0)) _memcpy($arHandle + 4818304 + ($j$381 * 264 | 0) | 0, $313 | 0, 264) | 0; - $j$4 = $j$381 + 1 | 0; - } else $j$4 = $j$381; - $i$280 = $i$280 + 1 | 0; - if (($i$280 | 0) >= (HEAP32[$190 >> 2] | 0)) { - $j$3$lcssa = $j$4; - break; - } else $j$381 = $j$4; + } + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - } else $j$3$lcssa = 0; - HEAP32[$190 >> 2] = $j$3$lcssa; - $324 = HEAP32[$0 >> 2] | 0; - L120 : do if (($324 | 0) > 0) { - $386 = $324; - $i$373 = 0; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 8 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $230 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; while (1) { - $326 = $arHandle + 48 + ($i$373 << 8) | 0; - $328 = HEAP32[$arHandle + 48 + ($i$373 << 8) + 4 >> 2] | 0; - if (($328 | 0) >= 0) { - $330 = HEAP32[$190 >> 2] | 0; - L125 : do if (($330 | 0) > 0) { - $j$568 = 0; - while (1) { - if ((HEAP32[$arHandle + 4818304 + ($j$568 * 264 | 0) + 4 >> 2] | 0) == ($328 | 0)) { - $j$5$lcssa = $j$568; - break L125; - } - $335 = $j$568 + 1 | 0; - if (($335 | 0) < ($330 | 0)) $j$568 = $335; else { - $j$5$lcssa = $335; - break; - } - } - } else $j$5$lcssa = 0; while (0); - if (($j$5$lcssa | 0) == ($330 | 0)) { - if (($330 | 0) == 60) { - $$lcssa = $386; - break L120; - } - HEAP32[$190 >> 2] = $330 + 1; - } - _memcpy($arHandle + 4818304 + ($j$5$lcssa * 264 | 0) | 0, $326 | 0, 256) | 0; - HEAP32[$arHandle + 4818304 + ($j$5$lcssa * 264 | 0) + 256 >> 2] = 1; + $232 = HEAP32[$wk$439 >> 2] | 0; + if (($232 | 0) == ($i$337 | 0)) { + $238 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - $i$373 = $i$373 + 1 | 0; - $343 = HEAP32[$0 >> 2] | 0; - if (($i$373 | 0) >= ($343 | 0)) { - $$lcssa = $343; + HEAP32[$wk$439 >> 2] = $238; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; break; - } else $386 = $343; + } } - } else $$lcssa = $324; while (0); - if ((HEAP32[$187 >> 2] | 0) == 2) $$0 = 0; else if ((HEAP32[$190 >> 2] | 0) > 0) { - $353 = $$lcssa; - $i$467 = 0; - while (1) { - $350 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 56 | 0; - $351 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 64 | 0; - L139 : do if (($353 | 0) > 0) { - $355 = +(HEAP32[$arHandle + 4818304 + ($i$467 * 264 | 0) >> 2] | 0); - $j$663 = 0; - while (1) { - $358 = +(HEAP32[$arHandle + 48 + ($j$663 << 8) >> 2] | 0); - $359 = $355 / $358; - if (!($359 < .7 | $359 > 1.43)) { - $365 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 56 >> 3] - +HEAPF64[$350 >> 3]; - $370 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 64 >> 3] - +HEAPF64[$351 >> 3]; - if (($365 * $365 + $370 * $370) / $358 < .5) { - $j$6$lcssa = $j$663; - break L139; - } - } - $375 = $j$663 + 1 | 0; - if (($375 | 0) < ($353 | 0)) $j$663 = $375; else { - $j$6$lcssa = $375; - break; - } - } - } else $j$6$lcssa = 0; while (0); - if (($j$6$lcssa | 0) == ($353 | 0)) { - _memcpy($arHandle + 48 + ($353 << 8) | 0, $arHandle + 4818304 + ($i$467 * 264 | 0) | 0, 256) | 0; - $381 = (HEAP32[$0 >> 2] | 0) + 1 | 0; - HEAP32[$0 >> 2] = $381; - $387 = $381; - } else $387 = $353; - $i$467 = $i$467 + 1 | 0; - if (($i$467 | 0) >= (HEAP32[$190 >> 2] | 0)) { - $$0 = 0; - break; - } else $353 = $387; + } + $242 = $labelInfo + 8 | 0; + $243 = $j$1$lcssa + -1 | 0; + HEAP32[$242 >> 2] = $243; + if (!$243) $$0 = 0; else { + _memset($230 | 0, 0, $243 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $250 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $265 = $i$533 * 7 | 0; + $268 = $labelInfo + 12 + ($264 << 2) | 0; + HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); + $275 = $264 << 1; + $276 = $labelInfo + 655376 + ($275 << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); + $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); + $287 = $264 << 2; + $288 = $labelInfo + 131084 + ($287 << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - } else $$0 = 0; - } while (0); + if ((HEAP32[$242 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $317 = $labelInfo + 12 + ($i$632 << 2) | 0; + $320 = $i$632 << 1; + $321 = $labelInfo + 655376 + ($320 << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); + $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$19 = 0, $$pre = 0, $$pre$phi80Z2D = 0, $$pre$phi82Z2D = 0, $$pre$phi84Z2D = 0, $0 = 0, $1 = 0, $107 = 0, $108 = 0, $111 = 0, $113 = 0, $114 = 0, $115 = 0, $117 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $130 = 0, $134 = 0, $136 = 0, $146 = 0, $148 = 0, $15 = 0, $150 = 0, $151 = 0, $159 = 0, $160 = 0, $161 = 0, $162 = 0, $165 = 0, $167 = 0, $177 = 0, $180 = 0, $181 = 0, $183 = 0, $184 = 0, $185 = 0, $187 = 0, $188 = 0, $19 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $201 = 0, $205 = 0, $207 = 0, $217 = 0, $221 = 0, $222 = 0, $225 = 0, $226 = 0, $227 = 0, $230 = 0, $233 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $250 = 0, $252 = 0, $261 = 0, $262 = 0, $265 = 0, $267 = 0, $268 = 0, $269 = 0, $271 = 0, $279 = 0, $280 = 0, $281 = 0, $282 = 0, $284 = 0, $288 = 0, $290 = 0, $3 = 0, $30 = 0, $33 = 0, $34 = 0, $37 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $53 = 0, $55 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $71 = 0, $72 = 0, $73 = 0, $76 = 0, $79 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $92 = 0, $96 = 0, $98 = 0, $args = 0, $args3 = 0, $global$0$off0 = 0, $s = 0, $s1 = 0, $s4 = 0, $s5 = 0, $s6 = 0, $t$0 = 0, $t$1$lcssa = 0, $t$1$ph = 0, $t$1107 = 0, $t$2 = 0, $t$3$lcssa = 0, $t$3110 = 0, sp = 0; +function _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 144 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $args = sp + 132 | 0; - $s = sp + 120 | 0; - $0 = sp + 108 | 0; - $s1 = sp + 96 | 0; - $1 = sp + 84 | 0; - $args3 = sp + 72 | 0; - $s4 = sp + 60 | 0; - $2 = sp + 48 | 0; - $s5 = sp + 36 | 0; - $3 = sp + 24 | 0; - $s6 = sp + 12 | 0; - $4 = sp; - $5 = $last; - L1 : do if (($5 - $first | 0) > 2) { - if ((HEAP8[$first >> 0] | 0) == 103) { - $13 = (HEAP8[$first + 1 >> 0] | 0) == 115; - $global$0$off0 = $13; - $t$0 = $13 ? $first + 2 | 0 : $first; - } else { - $global$0$off0 = 0; - $t$0 = $first; - } - $15 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0; - if (($15 | 0) != ($t$0 | 0)) { - if (!$global$0$off0) { - $$19 = $15; - break; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } - $19 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($19 | 0)) { - $$19 = $first; - break; + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($19 + -24 | 0, 0, 12902) | 0; - $$19 = $15; - break; } - if (($5 - $t$0 | 0) > 2) if ((HEAP8[$t$0 >> 0] | 0) == 115) if ((HEAP8[$t$0 + 1 >> 0] | 0) == 114) { - $30 = $t$0 + 2 | 0; - if ((HEAP8[$30 >> 0] | 0) == 78) { - $33 = $t$0 + 3 | 0; - $34 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($33, $last, $db) | 0; - if (($34 | 0) == ($33 | 0) | ($34 | 0) == ($last | 0)) { - $$19 = $first; - break; - } - $37 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($34, $last, $db) | 0; - $$pre = $db + 4 | 0; - do if (($37 | 0) == ($34 | 0)) { - $$pre$phi80Z2D = $db; - $t$1$ph = $34; - } else { - $39 = HEAP32[$$pre >> 2] | 0; - if ((($39 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $39 + -24 | 0); - $47 = HEAP32[$$pre >> 2] | 0; - $48 = $47 + -24 | 0; - $50 = $47; - do { - $49 = $50 + -24 | 0; - HEAP32[$$pre >> 2] = $49; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($49); - $50 = HEAP32[$$pre >> 2] | 0; - } while (($50 | 0) != ($48 | 0)); - $53 = HEAP8[$args >> 0] | 0; - $55 = ($53 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($47 + -48 | 0, $55 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $55 ? ($53 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; - if (($37 | 0) != ($last | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$pre$phi80Z2D = $db; - $t$1$ph = $37; - break; - } - $66 = HEAP32[$$pre >> 2] | 0; - $67 = $66 + -24 | 0; - $69 = $66; - do { - $68 = $69 + -24 | 0; - HEAP32[$$pre >> 2] = $68; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($68); - $69 = HEAP32[$$pre >> 2] | 0; - } while (($69 | 0) != ($67 | 0)); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$19 = $first; - break L1; - } while (0); - $71 = $0 + 8 | 0; - $72 = $0 + 1 | 0; - $73 = $0 + 4 | 0; - if ((HEAP8[$t$1$ph >> 0] | 0) == 69) $t$1$lcssa = $t$1$ph; else { - $t$1107 = $t$1$ph; - while (1) { - $76 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$1107, $last, $db) | 0; - if (($76 | 0) == ($t$1107 | 0) | ($76 | 0) == ($last | 0)) { - $$19 = $first; - break L1; - } - $79 = HEAP32[$$pre >> 2] | 0; - if ((($79 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s, $79 + -24 | 0); - $87 = HEAP32[$$pre >> 2] | 0; - $88 = $87 + -24 | 0; - $90 = $87; - do { - $89 = $90 + -24 | 0; - HEAP32[$$pre >> 2] = $89; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($89); - $90 = HEAP32[$$pre >> 2] | 0; - } while (($90 | 0) != ($88 | 0)); - $92 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s, 0, 12902) | 0; - HEAP32[$0 >> 2] = HEAP32[$92 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$92 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$92 + 8 >> 2]; - HEAP32[$92 >> 2] = 0; - HEAP32[$92 + 4 >> 2] = 0; - HEAP32[$92 + 8 >> 2] = 0; - $96 = HEAP8[$0 >> 0] | 0; - $98 = ($96 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($87 + -48 | 0, $98 ? $72 : HEAP32[$71 >> 2] | 0, $98 ? ($96 & 255) >>> 1 : HEAP32[$73 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s); - if ((HEAP8[$76 >> 0] | 0) == 69) { - $t$1$lcssa = $76; + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 2) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($38 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $38; + $41 = ($38 << 16 >> 16) * 7 | 0; + $43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0; + HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1; + $47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255; + $51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; - } else $t$1107 = $76; - } - } - $107 = $t$1$lcssa + 1 | 0; - $108 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($107, $last, $db) | 0; - if (($108 | 0) == ($107 | 0)) { - $111 = HEAP32[$$pre >> 2] | 0; - if ((HEAP32[$$pre$phi80Z2D >> 2] | 0) == ($111 | 0)) { - $$19 = $first; - break; - } - $113 = $111 + -24 | 0; - $115 = $111; - while (1) { - $114 = $115 + -24 | 0; - HEAP32[$$pre >> 2] = $114; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($114); - $115 = HEAP32[$$pre >> 2] | 0; - if (($115 | 0) == ($113 | 0)) { - $$19 = $first; - break L1; - } - } - } - $117 = HEAP32[$$pre >> 2] | 0; - if ((($117 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s1, $117 + -24 | 0); - $125 = HEAP32[$$pre >> 2] | 0; - $126 = $125 + -24 | 0; - $128 = $125; - do { - $127 = $128 + -24 | 0; - HEAP32[$$pre >> 2] = $127; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($127); - $128 = HEAP32[$$pre >> 2] | 0; - } while (($128 | 0) != ($126 | 0)); - $130 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s1, 0, 12902) | 0; - HEAP32[$1 >> 2] = HEAP32[$130 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$130 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$130 + 8 >> 2]; - HEAP32[$130 >> 2] = 0; - HEAP32[$130 + 4 >> 2] = 0; - HEAP32[$130 + 8 >> 2] = 0; - $134 = HEAP8[$1 >> 0] | 0; - $136 = ($134 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($125 + -48 | 0, $136 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $136 ? ($134 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s1); - $$19 = $108; - break; - } - $146 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0; - if (($146 | 0) != ($30 | 0)) { - $148 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($146, $last, $db) | 0; - if (($148 | 0) == ($146 | 0)) $t$2 = $146; else { - $150 = $db + 4 | 0; - $151 = HEAP32[$150 >> 2] | 0; - if ((($151 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $151 + -24 | 0); - $159 = HEAP32[$150 >> 2] | 0; - $160 = $159 + -24 | 0; - $162 = $159; - do { - $161 = $162 + -24 | 0; - HEAP32[$150 >> 2] = $161; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($161); - $162 = HEAP32[$150 >> 2] | 0; - } while (($162 | 0) != ($160 | 0)); - $165 = HEAP8[$args3 >> 0] | 0; - $167 = ($165 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($159 + -48 | 0, $167 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $167 ? ($165 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3); - $t$2 = $148; - } - $177 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$2, $last, $db) | 0; - if (($177 | 0) == ($t$2 | 0)) { - $180 = $db + 4 | 0; - $181 = HEAP32[$180 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($181 | 0)) { - $$19 = $first; - break; - } - $183 = $181 + -24 | 0; - $185 = $181; - while (1) { - $184 = $185 + -24 | 0; - HEAP32[$180 >> 2] = $184; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($184); - $185 = HEAP32[$180 >> 2] | 0; - if (($185 | 0) == ($183 | 0)) { - $$19 = $first; - break L1; } - } - } - $187 = $db + 4 | 0; - $188 = HEAP32[$187 >> 2] | 0; - if ((($188 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s4, $188 + -24 | 0); - $196 = HEAP32[$187 >> 2] | 0; - $197 = $196 + -24 | 0; - $199 = $196; - do { - $198 = $199 + -24 | 0; - HEAP32[$187 >> 2] = $198; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($198); - $199 = HEAP32[$187 >> 2] | 0; - } while (($199 | 0) != ($197 | 0)); - $201 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s4, 0, 12902) | 0; - HEAP32[$2 >> 2] = HEAP32[$201 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$201 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$201 + 8 >> 2]; - HEAP32[$201 >> 2] = 0; - HEAP32[$201 + 4 >> 2] = 0; - HEAP32[$201 + 8 >> 2] = 0; - $205 = HEAP8[$2 >> 0] | 0; - $207 = ($205 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($196 + -48 | 0, $207 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $207 ? ($205 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s4); - $$19 = $177; - break; - } - $217 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0; - if (($217 | 0) == ($30 | 0) | ($217 | 0) == ($last | 0)) $$19 = $first; else { - if ($global$0$off0) { - $221 = $db + 4 | 0; - $222 = HEAP32[$221 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($222 | 0)) { - $$19 = $first; - break; - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($222 + -24 | 0, 0, 12902) | 0; - $$pre$phi82Z2D = $221; - $$pre$phi84Z2D = $db; - } else { - $$pre$phi82Z2D = $db + 4 | 0; - $$pre$phi84Z2D = $db; - } - $225 = $3 + 8 | 0; - $226 = $3 + 1 | 0; - $227 = $3 + 4 | 0; - if ((HEAP8[$217 >> 0] | 0) == 69) $t$3$lcssa = $217; else { - $t$3110 = $217; - while (1) { - $230 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$3110, $last, $db) | 0; - if (($230 | 0) == ($t$3110 | 0) | ($230 | 0) == ($last | 0)) { - $$19 = $first; - break L1; + $57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $58 = $57 << 16 >> 16; + $61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $62 = $61 << 16 >> 16; + $63 = $61 << 16 >> 16 > 0; + if ($57 << 16 >> 16 <= 0) { + if ($63) { + HEAP16[$pnt2$362 >> 1] = $61; + $163 = $62 * 7 | 0; + $165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0; + HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1; + $169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0; + HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255; + $173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0; + HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068; + $177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0; + if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $183 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($183 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $183; + $186 = ($183 << 16 >> 16) * 7 | 0; + $188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0; + HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1; + $192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0; + HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255; + $196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0; + HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068; + $200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0; + if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$200 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $203 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $203; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16; + $208 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $203; + break; + } } - $233 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - if ((($233 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$19 = $first; - break L1; + if ($63) { + $66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + $69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; + if (($66 | 0) > ($69 | 0)) { + HEAP16[$pnt2$362 >> 1] = $69; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $86 = $69; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $86 = $69; + } else { + HEAP16[$pnt2$362 >> 1] = $66; + if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $86 = $66; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $86 = $66; + } + $88 = ($86 << 16 >> 16) * 7 | 0; + $90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1; + $94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0; + HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255; + $98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s5, $233 + -24 | 0); - $241 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - $242 = $241 + -24 | 0; - $244 = $241; - do { - $243 = $244 + -24 | 0; - HEAP32[$$pre$phi82Z2D >> 2] = $243; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243); - $244 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - } while (($244 | 0) != ($242 | 0)); - $246 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s5, 0, 12902) | 0; - HEAP32[$3 >> 2] = HEAP32[$246 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$246 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$246 + 8 >> 2]; - HEAP32[$246 >> 2] = 0; - HEAP32[$246 + 4 >> 2] = 0; - HEAP32[$246 + 8 >> 2] = 0; - $250 = HEAP8[$3 >> 0] | 0; - $252 = ($250 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($241 + -48 | 0, $252 ? $226 : HEAP32[$225 >> 2] | 0, $252 ? ($250 & 255) >>> 1 : HEAP32[$227 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s5); - if ((HEAP8[$230 >> 0] | 0) == 69) { - $t$3$lcssa = $230; + $104 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($104 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $57; + $144 = $58 * 7 | 0; + $146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0; + HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1; + $150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0; + HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255; + $154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068; + $158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0; + if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; - } else $t$3110 = $230; - } - } - $261 = $t$3$lcssa + 1 | 0; - $262 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($261, $last, $db) | 0; - if (($262 | 0) == ($261 | 0)) { - $265 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - if ((HEAP32[$$pre$phi84Z2D >> 2] | 0) == ($265 | 0)) { - $$19 = $first; - break; - } - $267 = $265 + -24 | 0; - $269 = $265; - while (1) { - $268 = $269 + -24 | 0; - HEAP32[$$pre$phi82Z2D >> 2] = $268; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($268); - $269 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - if (($269 | 0) == ($267 | 0)) { - $$19 = $first; - break L1; } + $109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; + $112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($109 | 0) > ($112 | 0)) { + HEAP16[$pnt2$362 >> 1] = $112; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $129 = $112; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $129 = $112; + } else { + HEAP16[$pnt2$362 >> 1] = $109; + if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $129 = $109; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $129 = $109; + } + $131 = ($129 << 16 >> 16) * 7 | 0; + $133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0; + HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1; + $137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255; + $141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $223 = $pnt$163 + 4 | 0; + $224 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $223; + $pnt2$3$lcssa = $224; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $223; + $pnt2$362 = $224; + $wk_max$157 = $wk_max$2; } } - $271 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - if ((($271 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$19 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s6, $271 + -24 | 0); - $279 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - $280 = $279 + -24 | 0; - $282 = $279; - do { - $281 = $282 + -24 | 0; - HEAP32[$$pre$phi82Z2D >> 2] = $281; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($281); - $282 = HEAP32[$$pre$phi82Z2D >> 2] | 0; - } while (($282 | 0) != ($280 | 0)); - $284 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s6, 0, 12902) | 0; - HEAP32[$4 >> 2] = HEAP32[$284 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$284 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$284 + 8 >> 2]; - HEAP32[$284 >> 2] = 0; - HEAP32[$284 + 4 >> 2] = 0; - HEAP32[$284 + 8 >> 2] = 0; - $288 = HEAP8[$4 >> 0] | 0; - $290 = ($288 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($279 + -48 | 0, $290 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $290 ? ($288 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s6); - $$19 = $262; - } - } - } else $$19 = $first; else $$19 = $first; else $$19 = $first; - } else $$19 = $first; while (0); - STACKTOP = sp; - return $$19 | 0; -} - -function __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i12 = 0, $$0$i$i$i17 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i32 = 0, $$0$i$i$i37 = 0, $$0$i$i$i40 = 0, $$lcssa98 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $110 = 0, $112 = 0, $115 = 0, $116 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $136 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $145 = 0, $146 = 0, $148 = 0, $15 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $162 = 0, $164 = 0, $167 = 0, $168 = 0, $172 = 0, $176 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $184 = 0, $187 = 0, $195 = 0, $196 = 0, $197 = 0, $2 = 0, $200 = 0, $203 = 0, $212 = 0, $213 = 0, $214 = 0, $217 = 0, $218 = 0, $220 = 0, $221 = 0, $223 = 0, $224 = 0, $229 = 0, $233 = 0, $240 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $251 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $267 = 0, $27 = 0, $28 = 0, $3 = 0, $32 = 0, $34 = 0, $37 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $58 = 0, $60 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $84 = 0, $86 = 0, $89 = 0, $90 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i38 = 0, $isdigittmp5 = 0, $isdigittmp9 = 0, $sub$179 = 0, $sub$179$lcssa = 0, $t$080 = 0, $t$080$lcssa = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 176 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i38 = sp + 144 | 0; - $0 = sp + 120 | 0; - $1 = sp + 96 | 0; - $2 = sp + 72 | 0; - $3 = sp + 48 | 0; - $4 = sp + 24 | 0; - $5 = sp; - L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 83) { - $12 = $first + 1 | 0; - $13 = HEAP8[$12 >> 0] | 0; - $14 = $13 << 24 >> 24; - switch ($14 | 0) { - case 97: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($0, 12813); - $15 = $db + 4 | 0; - $16 = HEAP32[$15 >> 2] | 0; - $18 = HEAP32[$db + 8 >> 2] | 0; - if ($16 >>> 0 < $18 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($16, $0); - HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 24; - } else { - $25 = HEAP32[$db >> 2] | 0; - $26 = $16 - $25 | 0; - $27 = ($26 | 0) / 24 | 0; - $28 = $27 + 1 | 0; - if (($26 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $32 = ($18 - $25 | 0) / 24 | 0; - if ($32 >>> 0 < 1073741823) { - $34 = $32 << 1; - $$0$i$i$i = $34 >>> 0 < $28 >>> 0 ? $28 : $34; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i, $27, $db + 12 | 0); - $37 = $__v$i$i38 + 8 | 0; - $38 = HEAP32[$37 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($38, $0); - HEAP32[$37 >> 2] = $38 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 98: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($1, 12828); - $41 = $db + 4 | 0; - $42 = HEAP32[$41 >> 2] | 0; - $44 = HEAP32[$db + 8 >> 2] | 0; - if ($42 >>> 0 < $44 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $1); - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 24; - } else { - $51 = HEAP32[$db >> 2] | 0; - $52 = $42 - $51 | 0; - $53 = ($52 | 0) / 24 | 0; - $54 = $53 + 1 | 0; - if (($52 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $58 = ($44 - $51 | 0) / 24 | 0; - if ($58 >>> 0 < 1073741823) { - $60 = $58 << 1; - $$0$i$i$i12 = $60 >>> 0 < $54 >>> 0 ? $54 : $60; - } else $$0$i$i$i12 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i12, $53, $db + 12 | 0); - $63 = $__v$i$i38 + 8 | 0; - $64 = HEAP32[$63 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1); - HEAP32[$63 >> 2] = $64 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 115: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($2, 12846); - $67 = $db + 4 | 0; - $68 = HEAP32[$67 >> 2] | 0; - $70 = HEAP32[$db + 8 >> 2] | 0; - if ($68 >>> 0 < $70 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($68, $2); - HEAP32[$67 >> 2] = (HEAP32[$67 >> 2] | 0) + 24; - } else { - $77 = HEAP32[$db >> 2] | 0; - $78 = $68 - $77 | 0; - $79 = ($78 | 0) / 24 | 0; - $80 = $79 + 1 | 0; - if (($78 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $84 = ($70 - $77 | 0) / 24 | 0; - if ($84 >>> 0 < 1073741823) { - $86 = $84 << 1; - $$0$i$i$i17 = $86 >>> 0 < $80 >>> 0 ? $80 : $86; - } else $$0$i$i$i17 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i17, $79, $db + 12 | 0); - $89 = $__v$i$i38 + 8 | 0; - $90 = HEAP32[$89 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2); - HEAP32[$89 >> 2] = $90 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - $$0 = $first + 2 | 0; - break L1; - break; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - case 105: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($3, 12858); - $93 = $db + 4 | 0; - $94 = HEAP32[$93 >> 2] | 0; - $96 = HEAP32[$db + 8 >> 2] | 0; - if ($94 >>> 0 < $96 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($94, $3); - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 24; - } else { - $103 = HEAP32[$db >> 2] | 0; - $104 = $94 - $103 | 0; - $105 = ($104 | 0) / 24 | 0; - $106 = $105 + 1 | 0; - if (($104 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $110 = ($96 - $103 | 0) / 24 | 0; - if ($110 >>> 0 < 1073741823) { - $112 = $110 << 1; - $$0$i$i$i22 = $112 >>> 0 < $106 >>> 0 ? $106 : $112; - } else $$0$i$i$i22 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i22, $105, $db + 12 | 0); - $115 = $__v$i$i38 + 8 | 0; - $116 = HEAP32[$115 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3); - HEAP32[$115 >> 2] = $116 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); - $$0 = $first + 2 | 0; - break L1; - break; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 8 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } - case 111: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($4, 12871); - $119 = $db + 4 | 0; - $120 = HEAP32[$119 >> 2] | 0; - $122 = HEAP32[$db + 8 >> 2] | 0; - if ($120 >>> 0 < $122 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($120, $4); - HEAP32[$119 >> 2] = (HEAP32[$119 >> 2] | 0) + 24; + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $230 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $232 = HEAP32[$wk$439 >> 2] | 0; + if (($232 | 0) == ($i$337 | 0)) { + $238 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $129 = HEAP32[$db >> 2] | 0; - $130 = $120 - $129 | 0; - $131 = ($130 | 0) / 24 | 0; - $132 = $131 + 1 | 0; - if (($130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $136 = ($122 - $129 | 0) / 24 | 0; - if ($136 >>> 0 < 1073741823) { - $138 = $136 << 1; - $$0$i$i$i27 = $138 >>> 0 < $132 >>> 0 ? $132 : $138; - } else $$0$i$i$i27 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i27, $131, $db + 12 | 0); - $141 = $__v$i$i38 + 8 | 0; - $142 = HEAP32[$141 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4); - HEAP32[$141 >> 2] = $142 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4); - $$0 = $first + 2 | 0; - break L1; - break; - } - case 100: - { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 12884); - $145 = $db + 4 | 0; - $146 = HEAP32[$145 >> 2] | 0; - $148 = HEAP32[$db + 8 >> 2] | 0; - if ($146 >>> 0 < $148 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($146, $5); - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 24; + HEAP32[$wk$439 >> 2] = $238; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { - $155 = HEAP32[$db >> 2] | 0; - $156 = $146 - $155 | 0; - $157 = ($156 | 0) / 24 | 0; - $158 = $157 + 1 | 0; - if (($156 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $162 = ($148 - $155 | 0) / 24 | 0; - if ($162 >>> 0 < 1073741823) { - $164 = $162 << 1; - $$0$i$i$i32 = $164 >>> 0 < $158 >>> 0 ? $158 : $164; - } else $$0$i$i$i32 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i32, $157, $db + 12 | 0); - $167 = $__v$i$i38 + 8 | 0; - $168 = HEAP32[$167 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5); - HEAP32[$167 >> 2] = $168 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); + $j$1$lcssa = $j$2; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $$0 = $first + 2 | 0; - break L1; - break; } - case 95: - { - $172 = HEAP32[$db + 16 >> 2] | 0; - if (($172 | 0) == (HEAP32[$db + 20 >> 2] | 0)) { - $$0 = $first; - break L1; - } - $176 = HEAP32[$172 >> 2] | 0; - $178 = HEAP32[$172 + 4 >> 2] | 0; - $179 = $db + 4 | 0; - $180 = $db + 8 | 0; - $181 = $db + 12 | 0; - $182 = $__v$i$i38 + 8 | 0; - L100 : do if (($176 | 0) != ($178 | 0)) { - $187 = $176; - while (1) { - $184 = HEAP32[$179 >> 2] | 0; - if (($184 | 0) == (HEAP32[$180 >> 2] | 0)) { - $195 = $184 - (HEAP32[$db >> 2] | 0) | 0; - $196 = ($195 | 0) / 24 | 0; - $197 = $196 + 1 | 0; - if (($195 | 0) < -24) break; - if ($196 >>> 0 < 1073741823) { - $200 = $196 << 1; - $$0$i$i$i37 = $200 >>> 0 < $197 >>> 0 ? $197 : $200; - } else $$0$i$i$i37 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i37, $196, $181); - $203 = HEAP32[$182 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203, $187); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203 + 12 | 0, $187 + 12 | 0); - HEAP32[$182 >> 2] = $203 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184, $187); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184 + 12 | 0, $187 + 12 | 0); - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 24; - } - $187 = $187 + 24 | 0; - if (($187 | 0) == ($178 | 0)) break L100; - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - } while (0); - $$0 = $first + 2 | 0; - break L1; - break; + } + $242 = $labelInfo + 8 | 0; + $243 = $j$1$lcssa + -1 | 0; + HEAP32[$242 >> 2] = $243; + if (!$243) $$0 = 0; else { + _memset($230 | 0, 0, $243 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $250 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0)); } - default: - { - if (($14 + -48 | 0) >>> 0 < 10) $213 = $13; else { - if (!(_isupper($14) | 0)) { - $$0 = $first; - break L1; - } - $213 = HEAP8[$12 >> 0] | 0; - } - $212 = $213 << 24 >> 24; - $isdigittmp5 = $212 + -48 | 0; - $214 = $first + 2 | 0; - if (($214 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - $sub$179 = $isdigittmp5 >>> 0 < 10 ? $isdigittmp5 : $212 + -55 | 0; - $t$080 = $214; - while (1) { - $217 = HEAP8[$t$080 >> 0] | 0; - $218 = $217 << 24 >> 24; - if (($218 + -48 | 0) >>> 0 < 10) $224 = $217; else { - $220 = (_isupper($218) | 0) == 0; - $221 = HEAP8[$t$080 >> 0] | 0; - if ($220) { - $$lcssa98 = $221; - $sub$179$lcssa = $sub$179; - $t$080$lcssa = $t$080; - break; - } else $224 = $221; - } - $223 = $224 << 24 >> 24; - $isdigittmp9 = $223 + -48 | 0; - $t$080 = $t$080 + 1 | 0; - if (($t$080 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } else $sub$179 = ($isdigittmp9 >>> 0 < 10 ? $isdigittmp9 : $223 + -55 | 0) + ($sub$179 * 36 | 0) | 0; - } - if ($$lcssa98 << 24 >> 24 != 95) { - $$0 = $first; - break L1; - } - $229 = $sub$179$lcssa + 1 | 0; - $233 = HEAP32[$db + 16 >> 2] | 0; - if ($229 >>> 0 >= (HEAP32[$db + 20 >> 2] | 0) - $233 >> 4 >>> 0) { - $$0 = $first; - break L1; - } - $240 = HEAP32[$233 + ($229 << 4) >> 2] | 0; - $242 = HEAP32[$233 + ($229 << 4) + 4 >> 2] | 0; - $243 = $db + 4 | 0; - $244 = $db + 8 | 0; - $245 = $db + 12 | 0; - $246 = $__v$i$i38 + 8 | 0; - L19 : do if (($240 | 0) != ($242 | 0)) { - $251 = $240; - while (1) { - $248 = HEAP32[$243 >> 2] | 0; - if (($248 | 0) == (HEAP32[$244 >> 2] | 0)) { - $259 = $248 - (HEAP32[$db >> 2] | 0) | 0; - $260 = ($259 | 0) / 24 | 0; - $261 = $260 + 1 | 0; - if (($259 | 0) < -24) break; - if ($260 >>> 0 < 1073741823) { - $264 = $260 << 1; - $$0$i$i$i40 = $264 >>> 0 < $261 >>> 0 ? $261 : $264; - } else $$0$i$i$i40 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i40, $260, $245); - $267 = HEAP32[$246 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267, $251); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267 + 12 | 0, $251 + 12 | 0); - HEAP32[$246 >> 2] = $267 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248, $251); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248 + 12 | 0, $251 + 12 | 0); - HEAP32[$243 >> 2] = (HEAP32[$243 >> 2] | 0) + 24; - } - $251 = $251 + 24 | 0; - if (($251 | 0) == ($242 | 0)) break L19; - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - } while (0); - $$0 = $t$080$lcssa + 1 | 0; - break L1; + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $265 = $i$533 * 7 | 0; + $268 = $labelInfo + 12 + ($264 << 2) | 0; + HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); + $275 = $264 << 1; + $276 = $labelInfo + 655376 + ($275 << 3) | 0; + HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); + $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; + HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); + $287 = $264 << 2; + $288 = $labelInfo + 131084 + ($287 << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; + $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; + $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; + if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } + if ((HEAP32[$242 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $317 = $labelInfo + 12 + ($i$632 << 2) | 0; + $320 = $i$632 << 1; + $321 = $labelInfo + 655376 + ($320 << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); + $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; + HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - } else $$0 = $first; else $$0 = $first; while (0); + } STACKTOP = sp; return $$0 | 0; } -function _icpGetInitXw2Xc_from_PlanarData($matXc2U, $screenCoord, $worldCoord, $num, $initMatXw2Xc) { - $matXc2U = $matXc2U | 0; - $screenCoord = $screenCoord | 0; - $worldCoord = $worldCoord | 0; - $num = $num | 0; - $initMatXw2Xc = $initMatXw2Xc | 0; - var $$$10$i = 0.0, $$$16$i = 0.0, $$$18$i = 0.0, $$$8$i = 0.0, $$0 = 0, $$10$$i = 0.0, $$10$i = 0.0, $$15$i = 0.0, $$16$$i = 0.0, $$16$i = 0.0, $$17$i = 0.0, $$18$$i = 0.0, $$18$i = 0.0, $$7$i = 0.0, $$7$i1 = 0.0, $$7$i2 = 0.0, $$8$$i = 0.0, $$8$i = 0.0, $$9$i = 0.0, $102 = 0, $104 = 0, $106 = 0, $11 = 0, $110 = 0, $112 = 0, $114 = 0.0, $118 = 0.0, $121 = 0.0, $122 = 0.0, $125 = 0.0, $129 = 0.0, $132 = 0.0, $133 = 0.0, $135 = 0.0, $140 = 0.0, $147 = 0.0, $151 = 0.0, $157 = 0.0, $163 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $177 = 0.0, $178 = 0.0, $180 = 0.0, $191 = 0.0, $193 = 0.0, $194 = 0.0, $195 = 0.0, $197 = 0.0, $199 = 0.0, $200 = 0.0, $203 = 0.0, $209 = 0.0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $218 = 0.0, $226 = 0.0, $234 = 0, $235 = 0.0, $236 = 0.0, $237 = 0.0, $242 = 0.0, $244 = 0.0, $248 = 0.0, $249 = 0.0, $251 = 0.0, $255 = 0.0, $258 = 0.0, $265 = 0.0, $268 = 0.0, $270 = 0.0, $272 = 0.0, $274 = 0.0, $276 = 0.0, $278 = 0.0, $280 = 0.0, $281 = 0, $283 = 0, $291 = 0, $292 = 0.0, $293 = 0.0, $294 = 0.0, $299 = 0.0, $301 = 0.0, $305 = 0.0, $306 = 0.0, $308 = 0.0, $312 = 0.0, $315 = 0.0, $32 = 0, $322 = 0.0, $325 = 0.0, $327 = 0.0, $329 = 0.0, $33 = 0, $331 = 0.0, $333 = 0.0, $335 = 0.0, $337 = 0.0, $338 = 0, $340 = 0, $345 = 0.0, $35 = 0, $352 = 0.0, $359 = 0.0, $366 = 0.0, $37 = 0, $377 = 0.0, $379 = 0.0, $38 = 0, $380 = 0.0, $381 = 0.0, $383 = 0.0, $385 = 0.0, $386 = 0.0, $389 = 0.0, $39 = 0, $395 = 0.0, $41 = 0, $43 = 0, $56 = 0, $83 = 0, $96 = 0, $cb$0$i = 0.0, $e1$0$i = 0.0, $e2$0$i = 0.0, $e3$0$i = 0.0, $e4$0$i = 0.0, $f$0$i = 0, $f$2$i = 0, $i$0 = 0, $i$15 = 0, $t$sroa$0$0 = 0.0, $t$sroa$6$0 = 0.0, $v1$sroa$0$0$i = 0.0, $v1$sroa$16$0$i = 0.0, $v1$sroa$31$0$i = 0.0, $v2$sroa$0$0$i = 0.0, $v2$sroa$16$0$i = 0.0, $v2$sroa$31$0$i = 0.0, $v3$sroa$0$0$i = 0.0, $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$0$2$i = 0.0, $v3$sroa$31$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = 0.0, $v3$sroa$31$2$i = 0.0, $v3$sroa$60$0$i = 0.0, $v3$sroa$60$0$v3$sroa$31$0$i = 0.0, $v3$sroa$60$3$i = 0.0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, sp = 0; +function _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer11 = sp + 48 | 0; - $vararg_buffer9 = sp + 40 | 0; - $vararg_buffer7 = sp + 32 | 0; - $vararg_buffer5 = sp + 24 | 0; - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer1 = sp + 8 | 0; $vararg_buffer = sp; - L1 : do if (($num | 0) < 4) $$0 = -1; else { - $i$0 = 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - if (($i$0 | 0) >= ($num | 0)) break; - if (+HEAPF64[$worldCoord + ($i$0 * 24 | 0) + 16 >> 3] != 0.0) { - $$0 = -1; - break L1; - } else $i$0 = $i$0 + 1 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } } - if (+HEAPF64[$matXc2U >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 32 >> 3] != 0.0) $$0 = -1; else { - $11 = $matXc2U + 40 | 0; - if (+HEAPF64[$11 >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 64 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 72 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 80 >> 3] != 1.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 24 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 56 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 88 >> 3] != 0.0) $$0 = -1; else { - $32 = $num << 1; - $33 = _arMatrixAlloc($32, 8) | 0; - if (!$33) { - _arLog(3, 5124, $vararg_buffer); - $$0 = -1; - break; - } - $35 = _arMatrixAlloc($32, 1) | 0; - if (!$35) { - _arMatrixFree($33) | 0; - _arLog(3, 5150, $vararg_buffer1); - $$0 = -1; - break; - } - if ($num) { - $37 = HEAP32[$33 >> 2] | 0; - $38 = HEAP32[$35 >> 2] | 0; - $i$15 = 0; - do { - $39 = $worldCoord + ($i$15 * 24 | 0) | 0; - $41 = $i$15 << 4; - HEAPF64[$37 + ($41 << 3) >> 3] = +HEAPF64[$39 >> 3]; - $43 = $worldCoord + ($i$15 * 24 | 0) + 8 | 0; - HEAPF64[$37 + (($41 | 1) << 3) >> 3] = +HEAPF64[$43 >> 3]; - HEAPF64[$37 + (($41 | 2) << 3) >> 3] = 1.0; - HEAPF64[$37 + (($41 | 3) << 3) >> 3] = 0.0; - HEAPF64[$37 + (($41 | 4) << 3) >> 3] = 0.0; - HEAPF64[$37 + (($41 | 5) << 3) >> 3] = 0.0; - $56 = $screenCoord + ($i$15 << 4) | 0; - HEAPF64[$37 + (($41 | 6) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$56 >> 3]); - HEAPF64[$37 + (($41 | 7) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$56 >> 3]); - HEAPF64[$37 + (($41 | 8) << 3) >> 3] = 0.0; - HEAPF64[$37 + (($41 | 9) << 3) >> 3] = 0.0; - HEAPF64[$37 + (($41 | 10) << 3) >> 3] = 0.0; - HEAPF64[$37 + (($41 | 11) << 3) >> 3] = +HEAPF64[$39 >> 3]; - HEAPF64[$37 + (($41 | 12) << 3) >> 3] = +HEAPF64[$43 >> 3]; - HEAPF64[$37 + (($41 | 13) << 3) >> 3] = 1.0; - $83 = $screenCoord + ($i$15 << 4) + 8 | 0; - HEAPF64[$37 + (($41 | 14) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$83 >> 3]); - HEAPF64[$37 + (($41 | 15) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$83 >> 3]); - $96 = $i$15 << 1; - HEAPF64[$38 + ($96 << 3) >> 3] = +HEAPF64[$56 >> 3]; - HEAPF64[$38 + (($96 | 1) << 3) >> 3] = +HEAPF64[$83 >> 3]; - $i$15 = $i$15 + 1 | 0; - } while (($i$15 | 0) != ($num | 0)); - } - $102 = _arMatrixAllocTrans($33) | 0; - if (!$102) { - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arLog(3, 5176, $vararg_buffer3); - $$0 = -1; - break; - } - $104 = _arMatrixAllocMul($102, $33) | 0; - if (!$104) { - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arMatrixFree($102) | 0; - _arLog(3, 5202, $vararg_buffer5); - $$0 = -1; - break; - } - $106 = _arMatrixAllocMul($102, $35) | 0; - if (!$106) { - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arMatrixFree($102) | 0; - _arMatrixFree($104) | 0; - _arLog(3, 5228, $vararg_buffer7); - $$0 = -1; - break; - } - if ((_arMatrixSelfInv($104) | 0) < 0) { - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arMatrixFree($102) | 0; - _arMatrixFree($104) | 0; - _arMatrixFree($106) | 0; - _arLog(3, 5254, $vararg_buffer9); - $$0 = -1; - break; - } - $110 = _arMatrixAllocMul($104, $106) | 0; - if (!$110) { - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arMatrixFree($102) | 0; - _arMatrixFree($104) | 0; - _arMatrixFree($106) | 0; - _arLog(3, 5280, $vararg_buffer11); - $$0 = -1; - break; - } - $112 = HEAP32[$110 >> 2] | 0; - $114 = +HEAPF64[$112 + 48 >> 3]; - $118 = +HEAPF64[$matXc2U + 48 >> 3]; - $121 = +HEAPF64[$11 >> 3]; - $122 = (+HEAPF64[$112 + 24 >> 3] - $114 * $118) / $121; - $125 = +HEAPF64[$matXc2U + 16 >> 3]; - $129 = +HEAPF64[$matXc2U + 8 >> 3]; - $132 = +HEAPF64[$matXc2U >> 3]; - $133 = (+HEAPF64[$112 >> 3] - $114 * $125 - $122 * $129) / $132; - $135 = +HEAPF64[$112 + 56 >> 3]; - $140 = (+HEAPF64[$112 + 32 >> 3] - $118 * $135) / $121; - $147 = (+HEAPF64[$112 + 8 >> 3] - $125 * $135 - $129 * $140) / $132; - $151 = (+HEAPF64[$112 + 40 >> 3] - $118) / $121; - $157 = (+HEAPF64[$112 + 16 >> 3] - $125 - $129 * $151) / $132; - _arMatrixFree($33) | 0; - _arMatrixFree($35) | 0; - _arMatrixFree($102) | 0; - _arMatrixFree($104) | 0; - _arMatrixFree($106) | 0; - _arMatrixFree($110) | 0; - $163 = +Math_sqrt(+($114 * $114 + ($122 * $122 + $133 * $133))); - $169 = +Math_sqrt(+($135 * $135 + ($140 * $140 + $147 * $147))); - $170 = $133 / $163; - $171 = $122 / $163; - $172 = $114 / $163; - $173 = $147 / $169; - $174 = $140 / $169; - $175 = $135 / $169; - $177 = ($163 + $169) * .5; - $178 = $157 / $177; - $180 = 1.0 / $177; - if ($180 < 0.0) { - $$7$i1 = -$171; - $191 = -$175; - $193 = -$174; - $194 = -$172; - $197 = -$173; - $199 = -$170; - $t$sroa$0$0 = -$178; - $t$sroa$6$0 = -$180; - } else { - $$7$i1 = $171; - $191 = $175; - $193 = $174; - $194 = $172; - $197 = $173; - $199 = $170; - $t$sroa$0$0 = $178; - $t$sroa$6$0 = $151 / $177; - } - $195 = $191 * $$7$i1 - $193 * $194; - $200 = $197 * $194 - $191 * $199; - $203 = $193 * $199 - $197 * $$7$i1; - $209 = +Math_sqrt(+($203 * $203 + ($195 * $195 + $200 * $200))); - do if ($209 == 0.0) { - $$7$i2 = $$7$i1; - $377 = $191; - $379 = $193; - $380 = $194; - $383 = $197; - $385 = $199; - } else { - $211 = $195 / $209; - $212 = $200 / $209; - $213 = $203 / $209; - $218 = $191 * $194 + ($193 * $$7$i1 + $197 * $199); - $cb$0$i = $218 < 0.0 ? -$218 : $218; - $226 = (+Math_sqrt(+($cb$0$i + 1.0)) + +Math_sqrt(+(1.0 - $cb$0$i))) * .5; - if ($199 * $212 - $$7$i1 * $211 != 0.0) { - $f$0$i = 0; - $v1$sroa$0$0$i = $199; - $v1$sroa$16$0$i = $$7$i1; - $v1$sroa$31$0$i = $194; - $v3$sroa$0$0$i = $211; - $v3$sroa$31$0$i = $212; - $v3$sroa$60$0$i = $213; - } else { - $234 = $199 * $213 - $194 * $211 != 0.0; - $f$0$i = $234 ? 1 : 2; - $v1$sroa$0$0$i = $234 ? $199 : $194; - $v1$sroa$16$0$i = $234 ? $194 : $$7$i1; - $v1$sroa$31$0$i = $234 ? $$7$i1 : $199; - $v3$sroa$0$0$i = $234 ? $211 : $213; - $v3$sroa$31$0$i = $234 ? $213 : $212; - $v3$sroa$60$0$i = $234 ? $212 : $211; - } - $235 = $v1$sroa$0$0$i * $v3$sroa$31$0$i; - $236 = $v1$sroa$16$0$i * $v3$sroa$0$0$i; - $237 = $235 - $236; - if ($237 == 0.0) { - $$7$i2 = $$7$i1; - $377 = $191; - $379 = $193; - $380 = $194; - $383 = $197; - $385 = $199; - break; - } - $242 = ($v1$sroa$16$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$31$0$i) / $237; - $244 = $226 * $v3$sroa$31$0$i / $237; - $248 = $236 - $235; - $249 = ($v1$sroa$0$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$0$0$i) / $248; - $251 = $226 * $v3$sroa$0$0$i / $248; - $255 = $242 * $242 + $249 * $249 + 1.0; - $258 = $242 * $244 + $249 * $251; - $265 = $258 * $258 - $255 * ($244 * $244 + $251 * $251 + -1.0); - if ($265 < 0.0) { - $$7$i2 = $$7$i1; - $377 = $191; - $379 = $193; - $380 = $194; - $383 = $197; - $385 = $199; - break; - } - $268 = +Math_sqrt(+$265); - $270 = ($268 - $258) / $255; - $272 = $244 + $242 * $270; - $274 = $251 + $249 * $270; - $276 = (-$258 - $268) / $255; - $278 = $244 + $242 * $276; - $280 = $251 + $249 * $276; - $281 = ($f$0$i | 0) == 1; - $v3$sroa$31$0$v3$sroa$60$0$i = $281 ? $v3$sroa$31$0$i : $v3$sroa$60$0$i; - $v3$sroa$60$0$v3$sroa$31$0$i = $281 ? $v3$sroa$60$0$i : $v3$sroa$31$0$i; - $$7$i = $281 ? $270 : $274; - $$8$i = $281 ? $274 : $270; - $$9$i = $281 ? $276 : $280; - $$10$i = $281 ? $280 : $276; - $283 = ($f$0$i | 0) == 2 & ($281 ^ 1); - $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = $283 ? $v3$sroa$0$0$i : $v3$sroa$31$0$v3$sroa$60$0$i; - $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = $283 ? $v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$0$0$i; - $$8$$i = $283 ? $$8$i : $272; - $$$8$i = $283 ? $272 : $$8$i; - $$10$$i = $283 ? $$10$i : $278; - $$$10$i = $283 ? $278 : $$10$i; - if ($197 * $v3$sroa$60$0$v3$sroa$31$0$i - $193 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0) { - $f$2$i = 0; - $v2$sroa$0$0$i = $197; - $v2$sroa$16$0$i = $193; - $v2$sroa$31$0$i = $191; - $v3$sroa$0$2$i = $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i; - $v3$sroa$31$2$i = $v3$sroa$60$0$v3$sroa$31$0$i; - $v3$sroa$60$3$i = $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i; - } else { - $291 = $197 * $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i - $191 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0; - $f$2$i = $291 ? 1 : 2; - $v2$sroa$0$0$i = $291 ? $197 : $191; - $v2$sroa$16$0$i = $291 ? $191 : $193; - $v2$sroa$31$0$i = $291 ? $193 : $197; - $v3$sroa$0$2$i = $291 ? $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i : $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i; - $v3$sroa$31$2$i = $291 ? $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$60$0$v3$sroa$31$0$i; - $v3$sroa$60$3$i = $291 ? $v3$sroa$60$0$v3$sroa$31$0$i : $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i; - } - $292 = $v2$sroa$0$0$i * $v3$sroa$31$2$i; - $293 = $v2$sroa$16$0$i * $v3$sroa$0$2$i; - $294 = $292 - $293; - if ($294 == 0.0) { - $$7$i2 = $$7$i1; - $377 = $191; - $379 = $193; - $380 = $194; - $383 = $197; - $385 = $199; - break; - } - $299 = ($v2$sroa$16$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$31$2$i) / $294; - $301 = $226 * $v3$sroa$31$2$i / $294; - $305 = $293 - $292; - $306 = ($v2$sroa$0$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$0$2$i) / $305; - $308 = $226 * $v3$sroa$0$2$i / $305; - $312 = $299 * $299 + $306 * $306 + 1.0; - $315 = $299 * $301 + $306 * $308; - $322 = $315 * $315 - $312 * ($301 * $301 + $308 * $308 + -1.0); - if ($322 < 0.0) { - $$7$i2 = $$7$i1; - $377 = $191; - $379 = $193; - $380 = $194; - $383 = $197; - $385 = $199; - break; - } - $325 = +Math_sqrt(+$322); - $327 = ($325 - $315) / $312; - $329 = $301 + $299 * $327; - $331 = $308 + $306 * $327; - $333 = (-$315 - $325) / $312; - $335 = $301 + $299 * $333; - $337 = $308 + $306 * $333; - $338 = ($f$2$i | 0) == 1; - $$15$i = $338 ? $327 : $331; - $$16$i = $338 ? $331 : $327; - $$17$i = $338 ? $333 : $337; - $$18$i = $338 ? $337 : $333; - $340 = ($f$2$i | 0) == 2 & ($338 ^ 1); - $$16$$i = $340 ? $$16$i : $329; - $$$16$i = $340 ? $329 : $$16$i; - $$18$$i = $340 ? $$18$i : $335; - $$$18$i = $340 ? $335 : $$18$i; - $345 = $$$8$i * $$$16$i + ($$7$i * $$15$i + $$8$$i * $$16$$i); - $e1$0$i = $345 < 0.0 ? -$345 : $345; - $352 = $$$8$i * $$$18$i + ($$7$i * $$17$i + $$8$$i * $$18$$i); - $e2$0$i = $352 < 0.0 ? -$352 : $352; - $359 = $$$10$i * $$$16$i + ($$9$i * $$15$i + $$10$$i * $$16$$i); - $e3$0$i = $359 < 0.0 ? -$359 : $359; - $366 = $$$10$i * $$$18$i + ($$9$i * $$17$i + $$10$$i * $$18$$i); - $e4$0$i = $366 < 0.0 ? -$366 : $366; - if ($e1$0$i < $e2$0$i) if ($e1$0$i < $e3$0$i) { - if ($e1$0$i < $e4$0$i) { - $$7$i2 = $$7$i; - $377 = $$$16$i; - $379 = $$15$i; - $380 = $$$8$i; - $383 = $$16$$i; - $385 = $$8$$i; + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 * 3 | 0) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($37 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $37; + $40 = ($37 << 16 >> 16) * 7 | 0; + $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; + $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; + $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $62 = $60 << 16 >> 16 > 0; + if ($56 << 16 >> 16 <= 0) { + if ($62) { + HEAP16[$pnt2$362 >> 1] = $60; + $162 = $61 * 7 | 0; + $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; + $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; + $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; + $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; + if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($182 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $182; + $185 = ($182 << 16 >> 16) * 7 | 0; + $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; + $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; + $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; + $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; + if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$199 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $202 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $202; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; + $207 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $202; + break; + } + } + if ($62) { + $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + if (($65 | 0) > ($68 | 0)) { + HEAP16[$pnt2$362 >> 1] = $68; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $85 = $68; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $85 = $68; + } else { + HEAP16[$pnt2$362 >> 1] = $65; + if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $85 = $65; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $85 = $65; + } + $87 = ($85 << 16 >> 16) * 7 | 0; + $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; + $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; + $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $$7$i2 = $$9$i; - $377 = $$$18$i; - $379 = $$17$i; - $380 = $$$10$i; - $383 = $$18$$i; - $385 = $$10$$i; - break; - } else { - if ($e3$0$i < $e4$0$i) { - $$7$i2 = $$9$i; - $377 = $$$16$i; - $379 = $$15$i; - $380 = $$$10$i; - $383 = $$16$$i; - $385 = $$10$$i; + $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($103 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $56; + $143 = $57 * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; + $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; + if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $$7$i2 = $$9$i; - $377 = $$$18$i; - $379 = $$17$i; - $380 = $$$10$i; - $383 = $$18$$i; - $385 = $$10$$i; - break; - } else if ($e2$0$i < $e3$0$i) { - if ($e2$0$i < $e4$0$i) { - $$7$i2 = $$7$i; - $377 = $$$18$i; - $379 = $$17$i; - $380 = $$$8$i; - $383 = $$18$$i; - $385 = $$8$$i; - break; + $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($108 | 0) > ($111 | 0)) { + HEAP16[$pnt2$362 >> 1] = $111; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $128 = $111; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $128 = $111; + } else { + HEAP16[$pnt2$362 >> 1] = $108; + if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $128 = $108; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $128 = $108; } - $$7$i2 = $$9$i; - $377 = $$$18$i; - $379 = $$17$i; - $380 = $$$10$i; - $383 = $$18$$i; - $385 = $$10$$i; - break; + $130 = ($128 << 16 >> 16) * 7 | 0; + $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; + $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; + $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; } else { - if ($e3$0$i < $e4$0$i) { - $$7$i2 = $$9$i; - $377 = $$$16$i; - $379 = $$15$i; - $380 = $$$10$i; - $383 = $$16$$i; - $385 = $$10$$i; - break; - } - $$7$i2 = $$9$i; - $377 = $$$18$i; - $379 = $$17$i; - $380 = $$$10$i; - $383 = $$18$$i; - $385 = $$10$$i; + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $222 = $pnt$163 + 3 | 0; + $223 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $222; + $pnt2$3$lcssa = $223; + $wk_max$1$lcssa = $wk_max$2; break; + } else { + $pnt$163 = $222; + $pnt2$362 = $223; + $wk_max$157 = $wk_max$2; } - } while (0); - $381 = $377 * $$7$i2 - $379 * $380; - $386 = $383 * $380 - $377 * $385; - $389 = $379 * $385 - $383 * $$7$i2; - $395 = +Math_sqrt(+($389 * $389 + ($381 * $381 + $386 * $386))); - HEAPF64[$initMatXw2Xc >> 3] = $385; - HEAPF64[$initMatXw2Xc + 32 >> 3] = $$7$i2; - HEAPF64[$initMatXw2Xc + 64 >> 3] = $380; - HEAPF64[$initMatXw2Xc + 8 >> 3] = $383; - HEAPF64[$initMatXw2Xc + 40 >> 3] = $379; - HEAPF64[$initMatXw2Xc + 72 >> 3] = $377; - HEAPF64[$initMatXw2Xc + 16 >> 3] = $381 / $395; - HEAPF64[$initMatXw2Xc + 48 >> 3] = $386 / $395; - HEAPF64[$initMatXw2Xc + 80 >> 3] = $389 / $395; - HEAPF64[$initMatXw2Xc + 24 >> 3] = $t$sroa$0$0; - HEAPF64[$initMatXw2Xc + 56 >> 3] = $t$sroa$6$0; - HEAPF64[$initMatXw2Xc + 88 >> 3] = $180; - $$0 = 0; - } - } - } while (0); - STACKTOP = sp; - return $$0 | 0; -} - -function _arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, $robustFlag) { - $handle = $handle | 0; - $marker_info = $marker_info | 0; - $marker_num = $marker_num | 0; - $config = $config | 0; - $robustFlag = $robustFlag | 0; - var $$0 = 0.0, $$pre38 = 0, $0 = 0, $1 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $128 = 0, $13 = 0, $130 = 0, $133 = 0, $140 = 0, $15 = 0, $150 = 0, $160 = 0, $171 = 0, $2 = 0, $20 = 0.0, $209 = 0, $221 = 0, $224 = 0, $225 = 0, $226 = 0.0, $229 = 0.0, $232 = 0.0, $235 = 0.0, $239 = 0.0, $240 = 0, $241 = 0.0, $242 = 0, $258 = 0.0, $259 = 0.0, $276 = 0.0, $277 = 0.0, $294 = 0.0, $295 = 0.0, $3 = 0, $312 = 0.0, $313 = 0.0, $342 = 0, $344 = 0, $346 = 0, $348 = 0, $35 = 0, $38 = 0, $40 = 0, $43 = 0, $47 = 0, $5 = 0, $59 = 0.0, $6 = 0, $7 = 0, $75 = 0, $77 = 0, $79 = 0, $86 = 0, $err$0 = 0.0, $err$1 = 0.0, $err$2 = 0.0, $err$3 = 0.0, $err$4 = 0.0, $err$5 = 0.0, $err$6 = 0.0, $i$081 = 0, $i$165 = 0, $i$256 = 0, $i$942 = 0, $j$077 = 0, $j$1055 = 0, $j$171 = 0, $j$261 = 0, $j$357 = 0, $j$4 = 0, $j$553 = 0, $j$651 = 0, $j$749 = 0, $j$847 = 0, $j$945 = 0, $k$0$lcssa = 0, $k$078 = 0, $k$1 = 0, $k$2$lcssa = 0, $k$273 = 0, $k$3 = 0, $max$0$lcssa = 0, $max$062 = 0, $max$1 = 0, $max$2 = 0, $maxArea$063 = 0, $maxArea$1 = 0, $maxArea$2 = 0, $trans1 = 0, $trans2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vnum$0$lcssa = 0, $vnum$064 = 0, $vnum$1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 200 | 0; - $vararg_buffer = sp + 192 | 0; - $trans1 = sp + 96 | 0; - $trans2 = sp; - $0 = $config + 4 | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = $config + 112 | 0; - $3 = $config + 120 | 0; - if (($1 | 0) > 0) { - $5 = HEAP32[$config >> 2] | 0; - $6 = ($marker_num | 0) > 0; - $7 = ($marker_num | 0) > 0; - $i$081 = 0; - do { - if (!(HEAP32[$5 + ($i$081 * 320 | 0) + 4 >> 2] | 0)) { - if ($6) { - $15 = HEAP32[$5 + ($i$081 * 320 | 0) >> 2] | 0; - $j$077 = 0; - $k$078 = -1; - while (1) { - if ((HEAP32[$marker_info + ($j$077 << 8) + 8 >> 2] | 0) == ($15 | 0)) { - $20 = +HEAPF64[$marker_info + ($j$077 << 8) + 40 >> 3]; - if ($20 < +HEAPF64[$2 >> 3]) $k$1 = $k$078; else if (($k$078 | 0) == -1) $k$1 = $j$077; else if (+HEAPF64[$marker_info + ($k$078 << 8) + 40 >> 3] < $20) $k$1 = $j$077; else $k$1 = $k$078; - } else $k$1 = $k$078; - $j$077 = $j$077 + 1 | 0; - if (($j$077 | 0) >= ($marker_num | 0)) { - $k$0$lcssa = $k$1; - break; - } else $k$078 = $k$1; - } - } else $k$0$lcssa = -1; - HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$0$lcssa; - if (($k$0$lcssa | 0) > -1) HEAP32[$marker_info + ($k$0$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$0$lcssa << 8) + 20 >> 2]; + } } else { - $12 = $5 + ($i$081 * 320 | 0) + 312 | 0; - $13 = $5 + ($i$081 * 320 | 0) | 0; - if ($7) { - $j$171 = 0; - $k$273 = -1; - while (1) { - $35 = HEAP32[$marker_info + ($j$171 << 8) + 12 >> 2] | 0; - if (!$35) { - $38 = $marker_info + ($j$171 << 8) + 248 | 0; - $40 = HEAP32[$38 >> 2] | 0; - $43 = HEAP32[$38 + 4 >> 2] | 0; - if (($40 | 0) == 0 & ($43 | 0) == 0) label = 19; else { - $47 = $12; - if (($40 | 0) == (HEAP32[$47 >> 2] | 0) ? ($43 | 0) == (HEAP32[$47 + 4 >> 2] | 0) : 0) label = 20; else $k$3 = $k$273; - } - } else label = 19; - if ((label | 0) == 19) { - label = 0; - if (($35 | 0) == (HEAP32[$13 >> 2] | 0)) label = 20; else $k$3 = $k$273; - } - if ((label | 0) == 20) { - label = 0; - $59 = +HEAPF64[$marker_info + ($j$171 << 8) + 48 >> 3]; - if ($59 < +HEAPF64[$3 >> 3]) $k$3 = $k$273; else if (($k$273 | 0) == -1) $k$3 = $j$171; else if (+HEAPF64[$marker_info + ($k$273 << 8) + 48 >> 3] < $59) $k$3 = $j$171; else $k$3 = $k$273; - } - $j$171 = $j$171 + 1 | 0; - if (($j$171 | 0) >= ($marker_num | 0)) { - $k$2$lcssa = $k$3; - break; - } else $k$273 = $k$3; - } - } else $k$2$lcssa = -1; - HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$2$lcssa; - if (($k$2$lcssa | 0) > -1) HEAP32[$marker_info + ($k$2$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$2$lcssa << 8) + 24 >> 2]; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $i$081 = $i$081 + 1 | 0; - } while (($i$081 | 0) < ($1 | 0)); - } - if (($1 | 0) > 0) { - $i$165 = 0; - $max$062 = 0; - $maxArea$063 = 0; - $vnum$064 = 0; - while (1) { - $75 = HEAP32[$config >> 2] | 0; - $77 = HEAP32[$75 + ($i$165 * 320 | 0) + 304 >> 2] | 0; - do if (($77 | 0) < 0) { - $max$2 = $max$062; - $maxArea$2 = $maxArea$063; - $vnum$1 = $vnum$064; - } else { - $79 = $marker_info + ($77 << 8) | 0; - if (+_arGetTransMatSquare($handle, $79, +HEAPF64[$75 + ($i$165 * 320 | 0) + 8 >> 3], $trans2) > 4.0) { - HEAP32[(HEAP32[$config >> 2] | 0) + ($i$165 * 320 | 0) + 304 >> 2] = -1; - $86 = $marker_info + ($77 << 8) + 236 | 0; - if (HEAP32[$86 >> 2] | 0) { - $max$2 = $max$062; - $maxArea$2 = $maxArea$063; - $vnum$1 = $vnum$064; - break; - } - HEAP32[$86 >> 2] = 7; - $max$2 = $max$062; - $maxArea$2 = $maxArea$063; - $vnum$1 = $vnum$064; - break; - } - $$pre38 = HEAP32[$79 >> 2] | 0; - if (($vnum$064 | 0) == 0 | ($maxArea$063 | 0) < ($$pre38 | 0)) { - $j$261 = 0; - do { - HEAPF64[$trans1 + ($j$261 << 5) >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) >> 3]; - HEAPF64[$trans1 + ($j$261 << 5) + 8 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 8 >> 3]; - HEAPF64[$trans1 + ($j$261 << 5) + 16 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 16 >> 3]; - HEAPF64[$trans1 + ($j$261 << 5) + 24 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 24 >> 3]; - $j$261 = $j$261 + 1 | 0; - } while (($j$261 | 0) != 3); - $max$1 = $i$165; - $maxArea$1 = $$pre38; - } else { - $max$1 = $max$062; - $maxArea$1 = $maxArea$063; - } - $max$2 = $max$1; - $maxArea$2 = $maxArea$1; - $vnum$1 = $vnum$064 + 1 | 0; - } while (0); - $i$165 = $i$165 + 1 | 0; - if (($i$165 | 0) >= (HEAP32[$0 >> 2] | 0)) { - $max$0$lcssa = $max$2; - $vnum$0$lcssa = $vnum$1; - break; + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; } else { - $max$062 = $max$2; - $maxArea$063 = $maxArea$2; - $vnum$064 = $vnum$1; + $pnt$072 = $pnt$1$lcssa + 6 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; } else { - $max$0$lcssa = 0; - $vnum$0$lcssa = 0; - } - do if (!$vnum$0$lcssa) label = 38; else if (($vnum$0$lcssa | 0) < (HEAP32[$config + 128 >> 2] | 0)) label = 38; else { - _arUtilMatMul($trans1, (HEAP32[$config >> 2] | 0) + ($max$0$lcssa * 320 | 0) + 112 | 0, $trans2) | 0; - $114 = $vnum$0$lcssa << 2; - $116 = _malloc($vnum$0$lcssa << 6) | 0; - if (!$116) { - _arLog(3, 5471, $vararg_buffer); - _exit(1); - } - $119 = _malloc($vnum$0$lcssa * 96 | 0) | 0; - if (!$119) { - _arLog(3, 5471, $vararg_buffer1); - _exit(1); - } - $121 = HEAP32[$0 >> 2] | 0; - if (($121 | 0) > 0) { - $123 = HEAP32[$config >> 2] | 0; - $i$256 = 0; - $j$357 = 0; + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; while (1) { - $125 = HEAP32[$123 + ($i$256 * 320 | 0) + 304 >> 2] | 0; - if (($125 | 0) < 0) $j$4 = $j$357; else { - $128 = HEAP32[$marker_info + ($125 << 8) + 16 >> 2] | 0; - $130 = (4 - $128 | 0) % 4 | 0; - $133 = $j$357 << 3; - HEAPF64[$116 + ($133 << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) >> 3]; - HEAPF64[$116 + (($133 | 1) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) + 8 >> 3]; - $140 = (5 - $128 | 0) % 4 | 0; - HEAPF64[$116 + (($133 | 2) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) >> 3]; - HEAPF64[$116 + (($133 | 3) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) + 8 >> 3]; - $150 = (6 - $128 | 0) % 4 | 0; - HEAPF64[$116 + (($133 | 4) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) >> 3]; - HEAPF64[$116 + (($133 | 5) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) + 8 >> 3]; - $160 = (7 - $128 | 0) % 4 | 0; - HEAPF64[$116 + (($133 | 6) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) >> 3]; - HEAPF64[$116 + (($133 | 7) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) + 8 >> 3]; - $171 = $j$357 * 12 | 0; - HEAPF64[$119 + ($171 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 208 >> 3]; - HEAPF64[$119 + (($171 | 1) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 216 >> 3]; - HEAPF64[$119 + (($171 | 2) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 224 >> 3]; - HEAPF64[$119 + (($171 | 3) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 232 >> 3]; - HEAPF64[$119 + ($171 + 4 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 240 >> 3]; - HEAPF64[$119 + ($171 + 5 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 248 >> 3]; - HEAPF64[$119 + ($171 + 6 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 256 >> 3]; - HEAPF64[$119 + ($171 + 7 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 264 >> 3]; - HEAPF64[$119 + ($171 + 8 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 272 >> 3]; - HEAPF64[$119 + ($171 + 9 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 280 >> 3]; - $209 = HEAP32[$config >> 2] | 0; - HEAPF64[$119 + ($171 + 10 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 288 >> 3]; - HEAPF64[$119 + ($171 + 11 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 296 >> 3]; - $j$4 = $j$357 + 1 | 0; - } - $i$256 = $i$256 + 1 | 0; - if (($i$256 | 0) >= ($121 | 0)) break; else $j$357 = $j$4; - } - } - $221 = $config + 104 | 0; - $224 = ($robustFlag | 0) != 0; - if (!(HEAP32[$221 >> 2] | 0)) { - $225 = $config + 8 | 0; - $226 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $225); - if ($224 & $226 >= 20.0) { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0; - $229 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); - if (!($229 >= 20.0)) $err$0 = $229; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0; - $232 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); - if (!($232 >= 20.0)) $err$0 = $232; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0; - $235 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); - if (!($235 >= 20.0)) $err$0 = $235; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0; - $err$0 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225); - } - } - } - } else $err$0 = $226; - _free($119); - _free($116); - $err$6 = $err$0; - } else { - $239 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $trans1); - $240 = $config + 8 | 0; - $241 = +_arGetTransMat($handle, $240, $116, $119, $114, $240); - $242 = $239 < $241; - do if ($224) { - if ($242) { - $j$553 = 0; - do { - HEAPF64[$config + 8 + ($j$553 << 5) >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$553 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$553 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$553 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 24 >> 3]; - $j$553 = $j$553 + 1 | 0; - } while (($j$553 | 0) != 3); - $err$1 = $239; - } else $err$1 = $241; - if (!($err$1 >= 20.0)) $err$5 = $err$1; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0; - $258 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); - $259 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); - if ($258 < $259) { - $j$651 = 0; - do { - HEAPF64[$config + 8 + ($j$651 << 5) >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$651 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$651 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$651 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 24 >> 3]; - $j$651 = $j$651 + 1 | 0; - } while (($j$651 | 0) != 3); - $err$2 = $258; - } else $err$2 = $259; - if (!($err$2 >= 20.0)) $err$5 = $err$2; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0; - $276 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); - $277 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); - if ($276 < $277) { - $j$749 = 0; - do { - HEAPF64[$config + 8 + ($j$749 << 5) >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$749 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$749 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$749 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 24 >> 3]; - $j$749 = $j$749 + 1 | 0; - } while (($j$749 | 0) != 3); - $err$3 = $276; - } else $err$3 = $277; - if (!($err$3 >= 20.0)) $err$5 = $err$3; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0; - $294 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); - $295 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); - if ($294 < $295) { - $j$847 = 0; - do { - HEAPF64[$config + 8 + ($j$847 << 5) >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$847 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$847 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$847 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 24 >> 3]; - $j$847 = $j$847 + 1 | 0; - } while (($j$847 | 0) != 3); - $err$4 = $294; - } else $err$4 = $295; - if (!($err$4 >= 20.0)) $err$5 = $err$4; else { - _icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0; - $312 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1); - $313 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240); - if ($312 < $313) $j$945 = 0; else { - $err$5 = $313; - break; - } - do { - HEAPF64[$config + 8 + ($j$945 << 5) >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$945 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$945 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$945 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 24 >> 3]; - $j$945 = $j$945 + 1 | 0; - } while (($j$945 | 0) != 3); - $err$5 = $312; - } - } - } + $231 = HEAP32[$wk$439 >> 2] | 0; + if (($231 | 0) == ($i$337 | 0)) { + $237 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - } else if ($242) { - $j$1055 = 0; - do { - HEAPF64[$config + 8 + ($j$1055 << 5) >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) >> 3]; - HEAPF64[$config + 8 + ($j$1055 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 8 >> 3]; - HEAPF64[$config + 8 + ($j$1055 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 16 >> 3]; - HEAPF64[$config + 8 + ($j$1055 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 24 >> 3]; - $j$1055 = $j$1055 + 1 | 0; - } while (($j$1055 | 0) != 3); - $err$5 = $239; - } else $err$5 = $241; while (0); - _free($119); - _free($116); - $err$6 = $err$5; + HEAP32[$wk$439 >> 2] = $237; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; + } + } } - if ($err$6 < 20.0) { - HEAP32[$221 >> 2] = 1; - $$0 = $err$6; - break; + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $249 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$533 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $316 = $labelInfo + 12 + ($i$632 << 2) | 0; + $319 = $i$632 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - HEAP32[$221 >> 2] = 0; - $342 = HEAP32[$0 >> 2] | 0; - if (($342 | 0) > 0) { - $344 = HEAP32[$config >> 2] | 0; - $i$942 = 0; - do { - $346 = HEAP32[$344 + ($i$942 * 320 | 0) + 304 >> 2] | 0; - if (($346 | 0) >= 0) { - $348 = $marker_info + ($346 << 8) + 236 | 0; - if (!(HEAP32[$348 >> 2] | 0)) HEAP32[$348 >> 2] = 8; - } - $i$942 = $i$942 + 1 | 0; - } while (($i$942 | 0) < ($342 | 0)); - $$0 = $err$6; - } else $$0 = $err$6; - } while (0); - if ((label | 0) == 38) { - HEAP32[$config + 104 >> 2] = 0; - $$0 = -1.0; } STACKTOP = sp; - return +$$0; + return $$0 | 0; } -function __ZNSt3__112__next_primeEj($n) { - $n = $n | 0; - var $$ = 0, $$0 = 0, $$k0$0 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $108 = 0, $109 = 0, $113 = 0, $114 = 0, $118 = 0, $119 = 0, $12 = 0, $123 = 0, $124 = 0, $128 = 0, $129 = 0, $133 = 0, $134 = 0, $138 = 0, $139 = 0, $143 = 0, $144 = 0, $148 = 0, $149 = 0, $153 = 0, $154 = 0, $158 = 0, $159 = 0, $163 = 0, $164 = 0, $168 = 0, $169 = 0, $173 = 0, $174 = 0, $178 = 0, $179 = 0, $18 = 0, $183 = 0, $184 = 0, $188 = 0, $189 = 0, $19 = 0, $193 = 0, $194 = 0, $198 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $208 = 0, $209 = 0, $213 = 0, $214 = 0, $218 = 0, $219 = 0, $223 = 0, $224 = 0, $228 = 0, $229 = 0, $233 = 0, $234 = 0, $238 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $248 = 0, $249 = 0, $253 = 0, $254 = 0, $258 = 0, $259 = 0, $264 = 0, $265 = 0, $28 = 0, $29 = 0, $33 = 0, $34 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $44 = 0, $48 = 0, $49 = 0, $53 = 0, $54 = 0, $58 = 0, $59 = 0, $6 = 0, $63 = 0, $64 = 0, $68 = 0, $69 = 0, $7 = 0, $73 = 0, $74 = 0, $78 = 0, $79 = 0, $83 = 0, $84 = 0, $88 = 0, $89 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $i$0 = 0, $in$0 = 0, $j$0 = 0, $k0$0 = 0, $storemerge = 0, $storemerge$lcssa = 0, $storemerge$lcssa15 = 0, label = 0, sp = 0; +function _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 8 | 0; - $1 = sp + 4 | 0; - $2 = sp; - HEAP32[$1 >> 2] = $n; - do if ($n >>> 0 < 212) { - $4 = __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(3520, 3712, $1, $0) | 0; - $$0 = HEAP32[$4 >> 2] | 0; - } else { - $6 = ($n >>> 0) / 210 | 0; - $7 = $6 * 210 | 0; - HEAP32[$2 >> 2] = $n - $7; - $12 = (__ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(3712, 3904, $2, $0) | 0) - 3712 >> 2; - $in$0 = $12; - $k0$0 = $6; - $storemerge = (HEAP32[3712 + ($12 << 2) >> 2] | 0) + $7 | 0; - L4 : while (1) { - $j$0 = 5; - while (1) { - if ($j$0 >>> 0 >= 47) { - $i$0 = 211; - label = 8; - break; - } - $18 = HEAP32[3520 + ($j$0 << 2) >> 2] | 0; - $19 = ($storemerge >>> 0) / ($18 >>> 0) | 0; - if ($19 >>> 0 < $18 >>> 0) { - $storemerge$lcssa15 = $storemerge; - label = 106; - break L4; - } - if (($storemerge | 0) == (Math_imul($19, $18) | 0)) break; else $j$0 = $j$0 + 1 | 0; + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } - L10 : do if ((label | 0) == 8) while (1) { - label = 0; - $24 = ($storemerge >>> 0) / ($i$0 >>> 0) | 0; - if ($24 >>> 0 < $i$0 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($24, $i$0) | 0)) break L10; - $28 = $i$0 + 10 | 0; - $29 = ($storemerge >>> 0) / ($28 >>> 0) | 0; - if ($29 >>> 0 < $28 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($29, $28) | 0)) break L10; - $33 = $i$0 + 12 | 0; - $34 = ($storemerge >>> 0) / ($33 >>> 0) | 0; - if ($34 >>> 0 < $33 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($34, $33) | 0)) break L10; - $38 = $i$0 + 16 | 0; - $39 = ($storemerge >>> 0) / ($38 >>> 0) | 0; - if ($39 >>> 0 < $38 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($39, $38) | 0)) break L10; - $43 = $i$0 + 18 | 0; - $44 = ($storemerge >>> 0) / ($43 >>> 0) | 0; - if ($44 >>> 0 < $43 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($44, $43) | 0)) break L10; - $48 = $i$0 + 22 | 0; - $49 = ($storemerge >>> 0) / ($48 >>> 0) | 0; - if ($49 >>> 0 < $48 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($49, $48) | 0)) break L10; - $53 = $i$0 + 28 | 0; - $54 = ($storemerge >>> 0) / ($53 >>> 0) | 0; - if ($54 >>> 0 < $53 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($54, $53) | 0)) break L10; - $58 = $i$0 + 30 | 0; - $59 = ($storemerge >>> 0) / ($58 >>> 0) | 0; - if ($59 >>> 0 < $58 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($59, $58) | 0)) break L10; - $63 = $i$0 + 36 | 0; - $64 = ($storemerge >>> 0) / ($63 >>> 0) | 0; - if ($64 >>> 0 < $63 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($64, $63) | 0)) break L10; - $68 = $i$0 + 40 | 0; - $69 = ($storemerge >>> 0) / ($68 >>> 0) | 0; - if ($69 >>> 0 < $68 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($69, $68) | 0)) break L10; - $73 = $i$0 + 42 | 0; - $74 = ($storemerge >>> 0) / ($73 >>> 0) | 0; - if ($74 >>> 0 < $73 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($74, $73) | 0)) break L10; - $78 = $i$0 + 46 | 0; - $79 = ($storemerge >>> 0) / ($78 >>> 0) | 0; - if ($79 >>> 0 < $78 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($79, $78) | 0)) break L10; - $83 = $i$0 + 52 | 0; - $84 = ($storemerge >>> 0) / ($83 >>> 0) | 0; - if ($84 >>> 0 < $83 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($84, $83) | 0)) break L10; - $88 = $i$0 + 58 | 0; - $89 = ($storemerge >>> 0) / ($88 >>> 0) | 0; - if ($89 >>> 0 < $88 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($89, $88) | 0)) break L10; - $93 = $i$0 + 60 | 0; - $94 = ($storemerge >>> 0) / ($93 >>> 0) | 0; - if ($94 >>> 0 < $93 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($94, $93) | 0)) break L10; - $98 = $i$0 + 66 | 0; - $99 = ($storemerge >>> 0) / ($98 >>> 0) | 0; - if ($99 >>> 0 < $98 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($99, $98) | 0)) break L10; - $103 = $i$0 + 70 | 0; - $104 = ($storemerge >>> 0) / ($103 >>> 0) | 0; - if ($104 >>> 0 < $103 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($104, $103) | 0)) break L10; - $108 = $i$0 + 72 | 0; - $109 = ($storemerge >>> 0) / ($108 >>> 0) | 0; - if ($109 >>> 0 < $108 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($109, $108) | 0)) break L10; - $113 = $i$0 + 78 | 0; - $114 = ($storemerge >>> 0) / ($113 >>> 0) | 0; - if ($114 >>> 0 < $113 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($114, $113) | 0)) break L10; - $118 = $i$0 + 82 | 0; - $119 = ($storemerge >>> 0) / ($118 >>> 0) | 0; - if ($119 >>> 0 < $118 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($119, $118) | 0)) break L10; - $123 = $i$0 + 88 | 0; - $124 = ($storemerge >>> 0) / ($123 >>> 0) | 0; - if ($124 >>> 0 < $123 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($124, $123) | 0)) break L10; - $128 = $i$0 + 96 | 0; - $129 = ($storemerge >>> 0) / ($128 >>> 0) | 0; - if ($129 >>> 0 < $128 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($129, $128) | 0)) break L10; - $133 = $i$0 + 100 | 0; - $134 = ($storemerge >>> 0) / ($133 >>> 0) | 0; - if ($134 >>> 0 < $133 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($134, $133) | 0)) break L10; - $138 = $i$0 + 102 | 0; - $139 = ($storemerge >>> 0) / ($138 >>> 0) | 0; - if ($139 >>> 0 < $138 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($139, $138) | 0)) break L10; - $143 = $i$0 + 106 | 0; - $144 = ($storemerge >>> 0) / ($143 >>> 0) | 0; - if ($144 >>> 0 < $143 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($144, $143) | 0)) break L10; - $148 = $i$0 + 108 | 0; - $149 = ($storemerge >>> 0) / ($148 >>> 0) | 0; - if ($149 >>> 0 < $148 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($149, $148) | 0)) break L10; - $153 = $i$0 + 112 | 0; - $154 = ($storemerge >>> 0) / ($153 >>> 0) | 0; - if ($154 >>> 0 < $153 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($154, $153) | 0)) break L10; - $158 = $i$0 + 120 | 0; - $159 = ($storemerge >>> 0) / ($158 >>> 0) | 0; - if ($159 >>> 0 < $158 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($159, $158) | 0)) break L10; - $163 = $i$0 + 126 | 0; - $164 = ($storemerge >>> 0) / ($163 >>> 0) | 0; - if ($164 >>> 0 < $163 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($164, $163) | 0)) break L10; - $168 = $i$0 + 130 | 0; - $169 = ($storemerge >>> 0) / ($168 >>> 0) | 0; - if ($169 >>> 0 < $168 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($169, $168) | 0)) break L10; - $173 = $i$0 + 136 | 0; - $174 = ($storemerge >>> 0) / ($173 >>> 0) | 0; - if ($174 >>> 0 < $173 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($174, $173) | 0)) break L10; - $178 = $i$0 + 138 | 0; - $179 = ($storemerge >>> 0) / ($178 >>> 0) | 0; - if ($179 >>> 0 < $178 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($179, $178) | 0)) break L10; - $183 = $i$0 + 142 | 0; - $184 = ($storemerge >>> 0) / ($183 >>> 0) | 0; - if ($184 >>> 0 < $183 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($184, $183) | 0)) break L10; - $188 = $i$0 + 148 | 0; - $189 = ($storemerge >>> 0) / ($188 >>> 0) | 0; - if ($189 >>> 0 < $188 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($189, $188) | 0)) break L10; - $193 = $i$0 + 150 | 0; - $194 = ($storemerge >>> 0) / ($193 >>> 0) | 0; - if ($194 >>> 0 < $193 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($194, $193) | 0)) break L10; - $198 = $i$0 + 156 | 0; - $199 = ($storemerge >>> 0) / ($198 >>> 0) | 0; - if ($199 >>> 0 < $198 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($199, $198) | 0)) break L10; - $203 = $i$0 + 162 | 0; - $204 = ($storemerge >>> 0) / ($203 >>> 0) | 0; - if ($204 >>> 0 < $203 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; - } - if (($storemerge | 0) == (Math_imul($204, $203) | 0)) break L10; - $208 = $i$0 + 166 | 0; - $209 = ($storemerge >>> 0) / ($208 >>> 0) | 0; - if ($209 >>> 0 < $208 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 * 3 | 0) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($37 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $37; + $40 = ($37 << 16 >> 16) * 7 | 0; + $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; + $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; + $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $62 = $60 << 16 >> 16 > 0; + if ($56 << 16 >> 16 <= 0) { + if ($62) { + HEAP16[$pnt2$362 >> 1] = $60; + $162 = $61 * 7 | 0; + $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; + $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; + $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; + $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; + if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($182 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $182; + $185 = ($182 << 16 >> 16) * 7 | 0; + $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; + $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; + $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; + $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; + if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$199 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $202 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $202; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; + $207 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $202; + break; + } + } + if ($62) { + $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + if (($65 | 0) > ($68 | 0)) { + HEAP16[$pnt2$362 >> 1] = $68; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $85 = $68; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $85 = $68; + } else { + HEAP16[$pnt2$362 >> 1] = $65; + if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $85 = $65; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $85 = $65; + } + $87 = ($85 << 16 >> 16) * 7 | 0; + $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; + $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; + $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($103 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $56; + $143 = $57 * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; + $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; + if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($108 | 0) > ($111 | 0)) { + HEAP16[$pnt2$362 >> 1] = $111; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $128 = $111; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $128 = $111; + } else { + HEAP16[$pnt2$362 >> 1] = $108; + if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $128 = $108; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $128 = $108; + } + $130 = ($128 << 16 >> 16) * 7 | 0; + $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; + $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; + $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $222 = $pnt$163 + 3 | 0; + $223 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $222; + $pnt2$3$lcssa = $223; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $222; + $pnt2$362 = $223; + $wk_max$157 = $wk_max$2; + } } - if (($storemerge | 0) == (Math_imul($209, $208) | 0)) break L10; - $213 = $i$0 + 168 | 0; - $214 = ($storemerge >>> 0) / ($213 >>> 0) | 0; - if ($214 >>> 0 < $213 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; + } + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 6 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $231 = HEAP32[$wk$439 >> 2] | 0; + if (($231 | 0) == ($i$337 | 0)) { + $237 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - if (($storemerge | 0) == (Math_imul($214, $213) | 0)) break L10; - $218 = $i$0 + 172 | 0; - $219 = ($storemerge >>> 0) / ($218 >>> 0) | 0; - if ($219 >>> 0 < $218 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + HEAP32[$wk$439 >> 2] = $237; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - if (($storemerge | 0) == (Math_imul($219, $218) | 0)) break L10; - $223 = $i$0 + 178 | 0; - $224 = ($storemerge >>> 0) / ($223 >>> 0) | 0; - if ($224 >>> 0 < $223 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } + } + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $249 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$533 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $316 = $labelInfo + 12 + ($i$632 << 2) | 0; + $319 = $i$632 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 2) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($37 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $37; + $40 = ($37 << 16 >> 16) * 7 | 0; + $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; + $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; + $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $62 = $60 << 16 >> 16 > 0; + if ($56 << 16 >> 16 <= 0) { + if ($62) { + HEAP16[$pnt2$362 >> 1] = $60; + $162 = $61 * 7 | 0; + $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; + $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; + $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; + $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; + if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($182 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $182; + $185 = ($182 << 16 >> 16) * 7 | 0; + $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; + $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; + $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; + $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; + if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$199 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $202 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $202; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; + $207 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $202; + break; + } + } + if ($62) { + $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + if (($65 | 0) > ($68 | 0)) { + HEAP16[$pnt2$362 >> 1] = $68; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $85 = $68; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $85 = $68; + } else { + HEAP16[$pnt2$362 >> 1] = $65; + if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $85 = $65; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $85 = $65; + } + $87 = ($85 << 16 >> 16) * 7 | 0; + $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; + $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; + $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($103 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $56; + $143 = $57 * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; + $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; + if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($108 | 0) > ($111 | 0)) { + HEAP16[$pnt2$362 >> 1] = $111; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $128 = $111; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $128 = $111; + } else { + HEAP16[$pnt2$362 >> 1] = $108; + if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $128 = $108; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $128 = $108; + } + $130 = ($128 << 16 >> 16) * 7 | 0; + $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; + $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; + $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $222 = $pnt$163 + 4 | 0; + $223 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $222; + $pnt2$3$lcssa = $223; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $222; + $pnt2$362 = $223; + $wk_max$157 = $wk_max$2; + } } - if (($storemerge | 0) == (Math_imul($224, $223) | 0)) break L10; - $228 = $i$0 + 180 | 0; - $229 = ($storemerge >>> 0) / ($228 >>> 0) | 0; - if ($229 >>> 0 < $228 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; + } + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 8 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $231 = HEAP32[$wk$439 >> 2] | 0; + if (($231 | 0) == ($i$337 | 0)) { + $237 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - if (($storemerge | 0) == (Math_imul($229, $228) | 0)) break L10; - $233 = $i$0 + 186 | 0; - $234 = ($storemerge >>> 0) / ($233 >>> 0) | 0; - if ($234 >>> 0 < $233 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + HEAP32[$wk$439 >> 2] = $237; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - if (($storemerge | 0) == (Math_imul($234, $233) | 0)) break L10; - $238 = $i$0 + 190 | 0; - $239 = ($storemerge >>> 0) / ($238 >>> 0) | 0; - if ($239 >>> 0 < $238 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } + } + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $249 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$533 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $316 = $labelInfo + 12 + ($i$632 << 2) | 0; + $319 = $i$632 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; + } + } + } + $9 = $labelingThresh * 3 | 0; + $10 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($10 << 1) | 0; + while (1) { + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } + } + } + $17 = $labelInfo + 1179664 | 0; + $18 = $xsize + 1 | 0; + $19 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $24 = ($10 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($18 << 2) | 0; + $pnt2$271 = $0 + ($18 << 1) | 0; + $wk_max$070 = 0; + L13 : while (1) { + if ($24) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; + while (1) { + do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; + if ($37 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $37; + $40 = ($37 << 16 >> 16) * 7 | 0; + $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; + $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; + $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; + HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $61 = $60 << 16 >> 16; + $62 = $60 << 16 >> 16 > 0; + if ($56 << 16 >> 16 <= 0) { + if ($62) { + HEAP16[$pnt2$362 >> 1] = $60; + $162 = $61 * 7 | 0; + $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; + $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; + $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; + HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; + $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; + if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($182 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $182; + $185 = ($182 << 16 >> 16) * 7 | 0; + $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; + $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; + $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; + $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; + if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; + break; + } + HEAP32[$199 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; + break; + } else { + $202 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $202; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; + $207 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $202; + break; + } + } + if ($62) { + $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; + if (($65 | 0) > ($68 | 0)) { + HEAP16[$pnt2$362 >> 1] = $68; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $17; + while (1) { + if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $85 = $68; + break; + } else $wk$052 = $wk$052 + 4 | 0; + } + } else $85 = $68; + } else { + HEAP16[$pnt2$362 >> 1] = $65; + if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $17; + while (1) { + if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $85 = $65; + break; + } else $wk$149 = $wk$149 + 4 | 0; + } + } else $85 = $65; + } + $87 = ($85 << 16 >> 16) * 7 | 0; + $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; + $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; + $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; + HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($103 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $56; + $143 = $57 * 7 | 0; + $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; + $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; + $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; + HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; + $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; + if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; + break; + } + $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($108 | 0) > ($111 | 0)) { + HEAP16[$pnt2$362 >> 1] = $111; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $17; + while (1) { + if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $128 = $111; + break; + } else $wk$245 = $wk$245 + 4 | 0; + } + } else $128 = $111; + } else { + HEAP16[$pnt2$362 >> 1] = $108; + if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $17; + while (1) { + if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $128 = $108; + break; + } else $wk$342 = $wk$342 + 4 | 0; + } + } else $128 = $108; + } + $130 = ($128 << 16 >> 16) * 7 | 0; + $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; + $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; + $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } while (0); + $i$255 = $i$255 + 1 | 0; + $222 = $pnt$163 + 4 | 0; + $223 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($10 | 0)) { + $pnt$1$lcssa = $222; + $pnt2$3$lcssa = $223; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$163 = $222; + $pnt2$362 = $223; + $wk_max$157 = $wk_max$2; + } } - if (($storemerge | 0) == (Math_imul($239, $238) | 0)) break L10; - $243 = $i$0 + 192 | 0; - $244 = ($storemerge >>> 0) / ($243 >>> 0) | 0; - if ($244 >>> 0 < $243 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; + } + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$072 = $pnt$1$lcssa + 8 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $229 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$337 = 1; + $j$138 = 1; + $wk$439 = $17; + while (1) { + $231 = HEAP32[$wk$439 >> 2] | 0; + if (($231 | 0) == ($i$337 | 0)) { + $237 = $j$138; + $j$2 = $j$138 + 1 | 0; + } else { + $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - if (($storemerge | 0) == (Math_imul($244, $243) | 0)) break L10; - $248 = $i$0 + 196 | 0; - $249 = ($storemerge >>> 0) / ($248 >>> 0) | 0; - if ($249 >>> 0 < $248 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + HEAP32[$wk$439 >> 2] = $237; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - if (($storemerge | 0) == (Math_imul($249, $248) | 0)) break L10; - $253 = $i$0 + 198 | 0; - $254 = ($storemerge >>> 0) / ($253 >>> 0) | 0; - if ($254 >>> 0 < $253 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } + } + $241 = $labelInfo + 8 | 0; + $242 = $j$1$lcssa + -1 | 0; + HEAP32[$241 >> 2] = $242; + if (!$242) $$0 = 0; else { + _memset($229 | 0, 0, $242 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $249 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; + do { + $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $264 = $i$533 * 7 | 0; + $267 = $labelInfo + 12 + ($263 << 2) | 0; + HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); + $274 = $263 << 1; + $275 = $labelInfo + 655376 + ($274 << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); + $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; + HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); + $286 = $263 << 2; + $287 = $labelInfo + 131084 + ($286 << 2) | 0; + $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; + if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; + $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; + $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; + if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; + $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; + $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; + if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; + $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; + $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; + if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$241 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $316 = $labelInfo + 12 + ($i$632 << 2) | 0; + $319 = $i$632 << 1; + $320 = $labelInfo + 655376 + ($319 << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); + $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; + HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { + $image = $image | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $labelingThresh = $labelingThresh | 0; + $labelInfo = $labelInfo | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + while (1) { + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; + } + } + } + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; + while (1) { + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + } + } + } + $18 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $27 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; + L13 : while (1) { + if ($27) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; + while (1) { + do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($33 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $33; + $36 = ($33 << 16 >> 16) * 7 | 0; + $38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; + $42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256; + $46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $53 = $52 << 16 >> 16; + $56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $58 = $56 << 16 >> 16 > 0; + if ($52 << 16 >> 16 <= 0) { + if ($58) { + HEAP16[$pnt2$363 >> 1] = $56; + $158 = $57 * 7 | 0; + $160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1; + $164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256; + $168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069; + $172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0; + if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $178 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($178 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $178; + $181 = ($178 << 16 >> 16) * 7 | 0; + $183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0; + HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1; + $187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256; + $191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069; + $195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0; + if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; + break; + } + HEAP32[$195 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; + break; + } else { + $198 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $198; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16; + $203 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $198; + break; + } + } + if ($58) { + $61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + $64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + if (($61 | 0) > ($64 | 0)) { + HEAP16[$pnt2$363 >> 1] = $64; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; + while (1) { + if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $81 = $64; + break; + } else $wk$053 = $wk$053 + 4 | 0; + } + } else $81 = $64; + } else { + HEAP16[$pnt2$363 >> 1] = $61; + if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; + while (1) { + if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $81 = $61; + break; + } else $wk$150 = $wk$150 + 4 | 0; + } + } else $81 = $61; + } + $83 = ($81 << 16 >> 16) * 7 | 0; + $85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0; + HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1; + $89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256; + $93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $99 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($99 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $52; + $139 = $53 * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069; + $153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0; + if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + $107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($104 | 0) > ($107 | 0)) { + HEAP16[$pnt2$363 >> 1] = $107; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; + while (1) { + if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $124 = $107; + break; + } else $wk$246 = $wk$246 + 4 | 0; + } + } else $124 = $107; + } else { + HEAP16[$pnt2$363 >> 1] = $104; + if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; + while (1) { + if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $124 = $104; + break; + } else $wk$343 = $wk$343 + 4 | 0; + } + } else $124 = $104; + } + $126 = ($124 << 16 >> 16) * 7 | 0; + $128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0; + HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1; + $132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256; + $136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } while (0); + $i$256 = $i$256 + 1 | 0; + $218 = $pnt$164 + 4 | 0; + $219 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $218; + $pnt2$3$lcssa = $219; + $wk_max$1$lcssa = $wk_max$2; + break; + } else { + $pnt$164 = $218; + $pnt2$363 = $219; + $wk_max$158 = $wk_max$2; + } } - if (($storemerge | 0) == (Math_imul($254, $253) | 0)) break L10; - $258 = $i$0 + 208 | 0; - $259 = ($storemerge >>> 0) / ($258 >>> 0) | 0; - if ($259 >>> 0 < $258 >>> 0) { - $storemerge$lcssa = $storemerge; - label = 105; - break L4; + } else { + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; + } + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { + $wk_max$0$lcssa = $wk_max$1$lcssa; + label = 52; + break L11; + } else { + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; + } + } + _arLog(3, 18092, $vararg_buffer); + $$0 = -1; + } else { + $wk_max$0$lcssa = 0; + label = 52; + } while (0); + if ((label | 0) == 52) { + $225 = $labelInfo + 12 | 0; + if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; + while (1) { + $227 = HEAP32[$wk$440 >> 2] | 0; + if (($227 | 0) == ($i$338 | 0)) { + $233 = $j$139; + $j$2 = $j$139 + 1 | 0; + } else { + $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - if (($storemerge | 0) == (Math_imul($259, $258) | 0)) break; else { - $i$0 = $i$0 + 210 | 0; - label = 8; + HEAP32[$wk$440 >> 2] = $233; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; + } else { + $j$1$lcssa = $j$2; + break; } - } while (0); - $264 = $in$0 + 1 | 0; - $265 = ($264 | 0) == 48; - $$ = $265 ? 0 : $264; - $$k0$0 = ($265 & 1) + $k0$0 | 0; - $in$0 = $$; - $k0$0 = $$k0$0; - $storemerge = (HEAP32[3712 + ($$ << 2) >> 2] | 0) + ($$k0$0 * 210 | 0) | 0; + } } - if ((label | 0) == 105) { - HEAP32[$1 >> 2] = $storemerge$lcssa; - $$0 = $storemerge$lcssa; - break; - } else if ((label | 0) == 106) { - HEAP32[$1 >> 2] = $storemerge$lcssa15; - $$0 = $storemerge$lcssa15; - break; + $237 = $labelInfo + 8 | 0; + $238 = $j$1$lcssa + -1 | 0; + HEAP32[$237 >> 2] = $238; + if (!$238) $$0 = 0; else { + _memset($225 | 0, 0, $238 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$436 = 0; + do { + $245 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0)); + } + if (($wk_max$0$lcssa | 0) > 0) { + $i$534 = 0; + do { + $259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $260 = $i$534 * 7 | 0; + $263 = $labelInfo + 12 + ($259 << 2) | 0; + HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); + $270 = $259 << 1; + $271 = $labelInfo + 655376 + ($270 << 3) | 0; + HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); + $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); + $282 = $259 << 2; + $283 = $labelInfo + 131084 + ($282 << 2) | 0; + $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; + if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; + $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; + $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; + if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; + $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$237 >> 2] | 0) > 0) { + $i$633 = 0; + do { + $312 = $labelInfo + 12 + ($i$633 << 2) | 0; + $315 = $i$633 << 1; + $316 = $labelInfo + 655376 + ($315 << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); + $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0)); + $$0 = 0; + } else $$0 = 0; } - } while (0); + } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { +function _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; - $image_thresh = $image_thresh | 0; + $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$096 = 0; - $pnt1$097 = $0; - $pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$095 >> 1] = 0; - HEAP16[$pnt1$097 >> 1] = 0; - $i$096 = $i$096 + 1 | 0; - if (($i$096 | 0) >= ($xsize | 0)) break; else { - $pnt1$097 = $pnt1$097 + 2 | 0; - $pnt2$095 = $pnt2$095 + 2 | 0; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$190 = 0; - $pnt1$191 = $0; - $pnt2$189 = $0 + ($9 << 1) | 0; + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; while (1) { - HEAP16[$pnt2$189 >> 1] = 0; - HEAP16[$pnt1$191 >> 1] = 0; - $i$190 = $i$190 + 1 | 0; - if (($i$190 | 0) >= ($ysize | 0)) break; else { - $pnt1$191 = $pnt1$191 + ($xsize << 1) | 0; - $pnt2$189 = $pnt2$189 + ($xsize << 1) | 0; + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$083 = 1; - $pnt$086 = $image + $17 | 0; - $pnt2$281 = $0 + ($17 << 1) | 0; - $pnt_thresh$085 = $image_thresh + $17 | 0; - $wk_max$082 = 0; + $18 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $27 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; L13 : while (1) { - if ($26) { - $dpnt$163 = $dpnt$080; - $i$270 = 1; - $pnt$173 = $pnt$086; - $pnt2$364 = $pnt2$281; - $pnt_thresh$172 = $pnt_thresh$085; - $wk_max$165 = $wk_max$082; + if ($27) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) { - HEAP8[$dpnt$163 >> 0] = -1; - $31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$364 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; - break; - } - $50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$364 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($33 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $33; + $36 = ($33 << 16 >> 16) * 7 | 0; + $38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; + $42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256; + $46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0; + HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; + break; + } + $52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $53 = $52 << 16 >> 16; + $56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $57 = $56 << 16 >> 16; + $58 = $56 << 16 >> 16 > 0; + if ($52 << 16 >> 16 <= 0) { + if ($58) { + HEAP16[$pnt2$363 >> 1] = $56; + $158 = $57 * 7 | 0; + $160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1; + $164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256; + $168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0; + HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069; + $172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0; + if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $176 = HEAP16[$pnt2$364 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$364 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) { - $wk_max$2 = $wk_max$165; + $178 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($178 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $178; + $181 = ($178 << 16 >> 16) * 7 | 0; + $183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0; + HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1; + $187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256; + $191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0; + HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069; + $195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0; + if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP32[$193 >> 2] = $i$270; - $wk_max$2 = $wk_max$165; + HEAP32[$195 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; } else { - $196 = $wk_max$165 + 1 | 0; - if (($wk_max$165 | 0) > 32767) break L13; - HEAP16[$pnt2$364 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$165 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083; - $wk_max$2 = $196; + $198 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $198; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16; + $203 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $198; break; } } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$364 >> 1] = $62; - if (($wk_max$165 | 0) > 0) { - $k$059 = 0; - $wk$060 = $16; + if ($58) { + $61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + $64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; + if (($61 | 0) > ($64 | 0)) { + HEAP16[$pnt2$363 >> 1] = $64; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; while (1) { - if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62; - $k$059 = $k$059 + 1 | 0; - if (($k$059 | 0) >= ($wk_max$165 | 0)) { - $79 = $62; + if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $81 = $64; break; - } else $wk$060 = $wk$060 + 4 | 0; + } else $wk$053 = $wk$053 + 4 | 0; } - } else $79 = $62; + } else $81 = $64; } else { - HEAP16[$pnt2$364 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) { - $k$156 = 0; - $wk$157 = $16; + HEAP16[$pnt2$363 >> 1] = $61; + if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; while (1) { - if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59; - $k$156 = $k$156 + 1 | 0; - if (($k$156 | 0) >= ($wk_max$165 | 0)) { - $79 = $59; + if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $81 = $61; break; - } else $wk$157 = $wk$157 + 4 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } else $79 = $59; + } else $81 = $61; } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + $83 = ($81 << 16 >> 16) * 7 | 0; + $85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0; + HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1; + $89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256; + $93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $97 = HEAP16[$pnt2$364 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$364 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + $99 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($99 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $52; + $139 = $53 * 7 | 0; + $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; + $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256; + $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; + HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069; + $153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0; + if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$364 >> 1] = $105; - if (($wk_max$165 | 0) > 0) { - $k$252 = 0; - $wk$253 = $16; + $104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + $107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($104 | 0) > ($107 | 0)) { + HEAP16[$pnt2$363 >> 1] = $107; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; while (1) { - if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105; - $k$252 = $k$252 + 1 | 0; - if (($k$252 | 0) >= ($wk_max$165 | 0)) { - $122 = $105; + if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $124 = $107; break; - } else $wk$253 = $wk$253 + 4 | 0; + } else $wk$246 = $wk$246 + 4 | 0; } - } else $122 = $105; + } else $124 = $107; } else { - HEAP16[$pnt2$364 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) { - $k$349 = 0; - $wk$350 = $16; + HEAP16[$pnt2$363 >> 1] = $104; + if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; while (1) { - if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102; - $k$349 = $k$349 + 1 | 0; - if (($k$349 | 0) >= ($wk_max$165 | 0)) { - $122 = $102; + if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $124 = $104; break; - } else $wk$350 = $wk$350 + 4 | 0; + } else $wk$343 = $wk$343 + 4 | 0; } - } else $122 = $102; + } else $124 = $104; } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083; - $wk_max$2 = $wk_max$165; - } else { - HEAP16[$pnt2$364 >> 1] = 0; - HEAP8[$dpnt$163 >> 0] = 0; - $wk_max$2 = $wk_max$165; + $126 = ($124 << 16 >> 16) * 7 | 0; + $128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0; + HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1; + $132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256; + $136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; } while (0); - $i$270 = $i$270 + 1 | 0; - $216 = $pnt$173 + 1 | 0; - $217 = $pnt_thresh$172 + 1 | 0; - $218 = $pnt2$364 + 2 | 0; - $219 = $dpnt$163 + 1 | 0; - if (($i$270 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $219; - $pnt$1$lcssa = $216; - $pnt2$3$lcssa = $218; - $pnt_thresh$1$lcssa = $217; + $i$256 = $i$256 + 1 | 0; + $218 = $pnt$164 + 4 | 0; + $219 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $218; + $pnt2$3$lcssa = $219; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$163 = $219; - $pnt$173 = $216; - $pnt2$364 = $218; - $pnt_thresh$172 = $217; - $wk_max$165 = $wk_max$2; + $pnt$164 = $218; + $pnt2$363 = $219; + $wk_max$158 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$080; - $pnt$1$lcssa = $pnt$086; - $pnt2$3$lcssa = $pnt2$281; - $pnt_thresh$1$lcssa = $pnt_thresh$085; - $wk_max$1$lcssa = $wk_max$082; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - $j$083 = $j$083 + 1 | 0; - if (($j$083 | 0) >= ($1 | 0)) { + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$080 = $dpnt$1$lcssa + 2 | 0; - $pnt$086 = $pnt$1$lcssa + 2 | 0; - $pnt2$281 = $pnt2$3$lcssa + 4 | 0; - $pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0; - $wk_max$082 = $wk_max$1$lcssa; + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $227 = $labelInfo + 12 | 0; + $225 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$345 = 1; - $j$146 = 1; - $wk$447 = $16; + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; while (1) { - $229 = HEAP32[$wk$447 >> 2] | 0; - if (($229 | 0) == ($i$345 | 0)) { - $235 = $j$146; - $j$2 = $j$146 + 1 | 0; + $227 = HEAP32[$wk$440 >> 2] | 0; + if (($227 | 0) == ($i$338 | 0)) { + $233 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0; - $j$2 = $j$146; + $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - HEAP32[$wk$447 >> 2] = $235; - if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) { - $i$345 = $i$345 + 1 | 0; - $j$146 = $j$2; - $wk$447 = $wk$447 + 4 | 0; + HEAP32[$wk$440 >> 2] = $233; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $239 = $labelInfo + 8 | 0; - $240 = $j$1$lcssa + -1 | 0; - HEAP32[$239 >> 2] = $240; - if (!$240) $$0 = 0; else { - _memset($227 | 0, 0, $240 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0; + $237 = $labelInfo + 8 | 0; + $238 = $j$1$lcssa + -1 | 0; + HEAP32[$237 >> 2] = $238; + if (!$238) $$0 = 0; else { + _memset($225 | 0, 0, $238 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$443 = 0; + $i$436 = 0; do { - $247 = $i$443 << 2; - HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0; - $i$443 = $i$443 + 1 | 0; - } while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0)); + $245 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$541 = 0; + $i$534 = 0; do { - $261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0; - $262 = $i$541 * 7 | 0; - $265 = $labelInfo + 12 + ($261 << 2) | 0; - HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0); - $272 = $261 << 1; - $273 = $labelInfo + 655376 + ($272 << 3) | 0; - HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0); - $281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0); - $284 = $261 << 2; - $285 = $labelInfo + 131084 + ($284 << 2) | 0; - $289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0; - if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289; - $292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310; - $i$541 = $i$541 + 1 | 0; - } while (($i$541 | 0) < ($wk_max$0$lcssa | 0)); + $259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $260 = $i$534 * 7 | 0; + $263 = $labelInfo + 12 + ($259 << 2) | 0; + HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); + $270 = $259 << 1; + $271 = $labelInfo + 655376 + ($270 << 3) | 0; + HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); + $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; + HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); + $282 = $259 << 2; + $283 = $labelInfo + 131084 + ($282 << 2) | 0; + $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; + if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; + $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; + $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; + if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; + $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; + $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; + if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; + $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; + $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; + if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$239 >> 2] | 0) > 0) { - $i$640 = 0; + if ((HEAP32[$237 >> 2] | 0) > 0) { + $i$633 = 0; do { - $314 = $labelInfo + 12 + ($i$640 << 2) | 0; - $317 = $i$640 << 1; - $318 = $labelInfo + 655376 + ($317 << 3) | 0; - HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0); - $324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0); - $i$640 = $i$640 + 1 | 0; - } while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0)); + $312 = $labelInfo + 12 + ($i$633 << 2) | 0; + $315 = $i$633 << 1; + $316 = $labelInfo + 655376 + ($315 << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); + $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; + HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -27399,373 +58513,359 @@ function _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { return $$0 | 0; } -function _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { +function _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; - $image_thresh = $image_thresh | 0; + $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$096 = 0; - $pnt1$097 = $0; - $pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $0 = ($xsize | 0) / 2 | 0; + $1 = ($ysize | 0) / 2 | 0; + $2 = HEAP32[$labelInfo >> 2] | 0; + $3 = $1 + -1 | 0; + if (($xsize | 0) > 1) { + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$095 >> 1] = 0; - HEAP16[$pnt1$097 >> 1] = 0; - $i$096 = $i$096 + 1 | 0; - if (($i$096 | 0) >= ($xsize | 0)) break; else { - $pnt1$097 = $pnt1$097 + 2 | 0; - $pnt2$095 = $pnt2$095 + 2 | 0; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$190 = 0; - $pnt1$191 = $0; - $pnt2$189 = $0 + ($9 << 1) | 0; + $11 = $0 + -1 | 0; + if (($ysize | 0) > 1) { + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; while (1) { - HEAP16[$pnt2$189 >> 1] = 0; - HEAP16[$pnt1$191 >> 1] = 0; - $i$190 = $i$190 + 1 | 0; - if (($i$190 | 0) >= ($ysize | 0)) break; else { - $pnt1$191 = $pnt1$191 + ($xsize << 1) | 0; - $pnt2$189 = $pnt2$189 + ($xsize << 1) | 0; + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$083 = 1; - $pnt$086 = $image + $17 | 0; - $pnt2$281 = $0 + ($17 << 1) | 0; - $pnt_thresh$085 = $image_thresh + $17 | 0; - $wk_max$082 = 0; + $18 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; + $$sum1 = 1 - $0 | 0; + $$sum2 = ~$0; + $$sum = ($xsize << 1) + 8 | 0; + L11 : do if (($3 | 0) > 1) { + $27 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; L13 : while (1) { - if ($26) { - $dpnt$163 = $dpnt$080; - $i$270 = 1; - $pnt$173 = $pnt$086; - $pnt2$364 = $pnt2$281; - $pnt_thresh$172 = $pnt_thresh$085; - $wk_max$165 = $wk_max$082; + if ($27) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) { - HEAP16[$pnt2$364 >> 1] = 0; - HEAP8[$dpnt$163 >> 0] = 0; - $wk_max$2 = $wk_max$165; - } else { - HEAP8[$dpnt$163 >> 0] = -1; - $31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$364 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($32 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $32; + $35 = ($32 << 16 >> 16) * 7 | 0; + $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; + $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256; + $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$364 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + $51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $57 = $55 << 16 >> 16 > 0; + if ($51 << 16 >> 16 <= 0) { + if ($57) { + HEAP16[$pnt2$363 >> 1] = $55; + $157 = $56 * 7 | 0; + $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; + $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256; + $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069; + $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; + if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $176 = HEAP16[$pnt2$364 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$364 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) { - $wk_max$2 = $wk_max$165; + $177 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($177 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $177; + $180 = ($177 << 16 >> 16) * 7 | 0; + $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; + $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256; + $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069; + $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; + if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP32[$193 >> 2] = $i$270; - $wk_max$2 = $wk_max$165; + HEAP32[$194 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; } else { - $196 = $wk_max$165 + 1 | 0; - if (($wk_max$165 | 0) > 32767) break L13; - HEAP16[$pnt2$364 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$165 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083; - $wk_max$2 = $196; + $197 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $197; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16; + $202 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $197; break; } } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$364 >> 1] = $62; - if (($wk_max$165 | 0) > 0) { - $k$059 = 0; - $wk$060 = $16; + if ($57) { + $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + if (($60 | 0) > ($63 | 0)) { + HEAP16[$pnt2$363 >> 1] = $63; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; while (1) { - if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62; - $k$059 = $k$059 + 1 | 0; - if (($k$059 | 0) >= ($wk_max$165 | 0)) { - $79 = $62; + if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $80 = $63; break; - } else $wk$060 = $wk$060 + 4 | 0; + } else $wk$053 = $wk$053 + 4 | 0; } - } else $79 = $62; + } else $80 = $63; } else { - HEAP16[$pnt2$364 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) { - $k$156 = 0; - $wk$157 = $16; + HEAP16[$pnt2$363 >> 1] = $60; + if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; while (1) { - if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59; - $k$156 = $k$156 + 1 | 0; - if (($k$156 | 0) >= ($wk_max$165 | 0)) { - $79 = $59; + if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $80 = $60; break; - } else $wk$157 = $wk$157 + 4 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } else $79 = $59; + } else $80 = $60; } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + $82 = ($80 << 16 >> 16) * 7 | 0; + $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; + $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256; + $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $97 = HEAP16[$pnt2$364 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$364 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083; - $wk_max$2 = $wk_max$165; + $98 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($98 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $51; + $138 = $52 * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069; + $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; + if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$364 >> 1] = $105; - if (($wk_max$165 | 0) > 0) { - $k$252 = 0; - $wk$253 = $16; + $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($103 | 0) > ($106 | 0)) { + HEAP16[$pnt2$363 >> 1] = $106; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; while (1) { - if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105; - $k$252 = $k$252 + 1 | 0; - if (($k$252 | 0) >= ($wk_max$165 | 0)) { - $122 = $105; + if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $123 = $106; break; - } else $wk$253 = $wk$253 + 4 | 0; + } else $wk$246 = $wk$246 + 4 | 0; } - } else $122 = $105; + } else $123 = $106; } else { - HEAP16[$pnt2$364 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) { - $k$349 = 0; - $wk$350 = $16; + HEAP16[$pnt2$363 >> 1] = $103; + if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; while (1) { - if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102; - $k$349 = $k$349 + 1 | 0; - if (($k$349 | 0) >= ($wk_max$165 | 0)) { - $122 = $102; + if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $123 = $103; break; - } else $wk$350 = $wk$350 + 4 | 0; + } else $wk$343 = $wk$343 + 4 | 0; } - } else $122 = $102; + } else $123 = $103; } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083; - $wk_max$2 = $wk_max$165; + $125 = ($123 << 16 >> 16) * 7 | 0; + $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; + $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256; + $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } while (0); - $i$270 = $i$270 + 1 | 0; - $216 = $pnt$173 + 1 | 0; - $217 = $pnt_thresh$172 + 1 | 0; - $218 = $pnt2$364 + 2 | 0; - $219 = $dpnt$163 + 1 | 0; - if (($i$270 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $219; - $pnt$1$lcssa = $216; + $i$256 = $i$256 + 1 | 0; + $217 = $pnt$164 + 4 | 0; + $218 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $217; $pnt2$3$lcssa = $218; - $pnt_thresh$1$lcssa = $217; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$163 = $219; - $pnt$173 = $216; - $pnt2$364 = $218; - $pnt_thresh$172 = $217; - $wk_max$165 = $wk_max$2; + $pnt$164 = $217; + $pnt2$363 = $218; + $wk_max$158 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$080; - $pnt$1$lcssa = $pnt$086; - $pnt2$3$lcssa = $pnt2$281; - $pnt_thresh$1$lcssa = $pnt_thresh$085; - $wk_max$1$lcssa = $wk_max$082; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - $j$083 = $j$083 + 1 | 0; - if (($j$083 | 0) >= ($1 | 0)) { + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$080 = $dpnt$1$lcssa + 2 | 0; - $pnt$086 = $pnt$1$lcssa + 2 | 0; - $pnt2$281 = $pnt2$3$lcssa + 4 | 0; - $pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0; - $wk_max$082 = $wk_max$1$lcssa; + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $227 = $labelInfo + 12 | 0; + $224 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$345 = 1; - $j$146 = 1; - $wk$447 = $16; + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; while (1) { - $229 = HEAP32[$wk$447 >> 2] | 0; - if (($229 | 0) == ($i$345 | 0)) { - $235 = $j$146; - $j$2 = $j$146 + 1 | 0; + $226 = HEAP32[$wk$440 >> 2] | 0; + if (($226 | 0) == ($i$338 | 0)) { + $232 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0; - $j$2 = $j$146; + $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - HEAP32[$wk$447 >> 2] = $235; - if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) { - $i$345 = $i$345 + 1 | 0; - $j$146 = $j$2; - $wk$447 = $wk$447 + 4 | 0; + HEAP32[$wk$440 >> 2] = $232; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $239 = $labelInfo + 8 | 0; - $240 = $j$1$lcssa + -1 | 0; - HEAP32[$239 >> 2] = $240; - if (!$240) $$0 = 0; else { - _memset($227 | 0, 0, $240 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0; + $236 = $labelInfo + 8 | 0; + $237 = $j$1$lcssa + -1 | 0; + HEAP32[$236 >> 2] = $237; + if (!$237) $$0 = 0; else { + _memset($224 | 0, 0, $237 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$443 = 0; + $i$436 = 0; do { - $247 = $i$443 << 2; - HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0; - $i$443 = $i$443 + 1 | 0; - } while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0)); + $244 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$541 = 0; + $i$534 = 0; do { - $261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0; - $262 = $i$541 * 7 | 0; - $265 = $labelInfo + 12 + ($261 << 2) | 0; - HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0); - $272 = $261 << 1; - $273 = $labelInfo + 655376 + ($272 << 3) | 0; - HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0); - $281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0); - $284 = $261 << 2; - $285 = $labelInfo + 131084 + ($284 << 2) | 0; - $289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0; - if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289; - $292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310; - $i$541 = $i$541 + 1 | 0; - } while (($i$541 | 0) < ($wk_max$0$lcssa | 0)); + $258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $259 = $i$534 * 7 | 0; + $262 = $labelInfo + 12 + ($258 << 2) | 0; + HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); + $269 = $258 << 1; + $270 = $labelInfo + 655376 + ($269 << 3) | 0; + HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); + $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; + HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); + $281 = $258 << 2; + $282 = $labelInfo + 131084 + ($281 << 2) | 0; + $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; + if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; + $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$239 >> 2] | 0) > 0) { - $i$640 = 0; + if ((HEAP32[$236 >> 2] | 0) > 0) { + $i$633 = 0; do { - $314 = $labelInfo + 12 + ($i$640 << 2) | 0; - $317 = $i$640 << 1; - $318 = $labelInfo + 655376 + ($317 << 3) | 0; - HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0); - $324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0); - $i$640 = $i$640 + 1 | 0; - } while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0)); + $311 = $labelInfo + 12 + ($i$633 << 2) | 0; + $314 = $i$633 << 1; + $315 = $labelInfo + 655376 + ($314 << 3) | 0; + HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); + $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -27774,13 +58874,13 @@ function _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { return $$0 | 0; } -function _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); @@ -27790,356 +58890,343 @@ function _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labe $2 = HEAP32[$labelInfo >> 2] | 0; $3 = $1 + -1 | 0; if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; + $11 = $0 + -1 | 0; if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; + $18 = $labelInfo + 1179664 | 0; + $20 = 0 - $0 | 0; $$sum1 = 1 - $0 | 0; $$sum2 = ~$0; $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + L11 : do if (($3 | 0) > 1) { + $27 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 2) + 4) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($27) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; - do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($50 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $50; - $53 = ($50 << 16 >> 16) * 7 | 0; - $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; - $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; - $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; - HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; + if ($32 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $32; + $35 = ($32 << 16 >> 16) * 7 | 0; + $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; + $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256; + $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $74 = $73 << 16 >> 16; - $75 = $73 << 16 >> 16 > 0; - if ($69 << 16 >> 16 <= 0) { - if ($75) { - HEAP16[$pnt2$368 >> 1] = $73; - $175 = $74 * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $56 = $55 << 16 >> 16; + $57 = $55 << 16 >> 16 > 0; + if ($51 << 16 >> 16 <= 0) { + if ($57) { + HEAP16[$pnt2$363 >> 1] = $55; + $157 = $56 * 7 | 0; + $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; + $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256; + $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069; + $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; + if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($195 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $195; - $198 = ($195 << 16 >> 16) * 7 | 0; - $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; - $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; - $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; - HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; - $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; - if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $177 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($177 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $177; + $180 = ($177 << 16 >> 16) * 7 | 0; + $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; + $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256; + $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; + HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069; + $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; + if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP32[$212 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$194 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; } else { - $215 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $215; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; - $220 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $215; + $197 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $197; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16; + $202 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $197; break; } } - if ($75) { - $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; - if (($78 | 0) > ($81 | 0)) { - HEAP16[$pnt2$368 >> 1] = $81; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($57) { + $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; + if (($60 | 0) > ($63 | 0)) { + HEAP16[$pnt2$363 >> 1] = $63; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $98 = $81; + if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $80 = $63; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$053 = $wk$053 + 4 | 0; } - } else $98 = $81; + } else $80 = $63; } else { - HEAP16[$pnt2$368 >> 1] = $78; - if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$363 >> 1] = $60; + if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $98 = $78; + if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $80 = $60; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } else $98 = $78; + } else $80 = $60; } - $100 = ($98 << 16 >> 16) * 7 | 0; - $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; - $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; - $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; - HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $82 = ($80 << 16 >> 16) * 7 | 0; + $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; + $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256; + $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; + HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($116 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $69; - $156 = $70 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; - $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $98 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($98 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $51; + $138 = $52 * 7 | 0; + $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; + $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256; + $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; + HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069; + $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; + if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($121 | 0) > ($124 | 0)) { - HEAP16[$pnt2$368 >> 1] = $124; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($103 | 0) > ($106 | 0)) { + HEAP16[$pnt2$363 >> 1] = $106; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $141 = $124; + if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $123 = $106; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$246 = $wk$246 + 4 | 0; } - } else $141 = $124; + } else $123 = $106; } else { - HEAP16[$pnt2$368 >> 1] = $121; - if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$363 >> 1] = $103; + if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $141 = $121; + if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $123 = $103; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$343 = $wk$343 + 4 | 0; } - } else $141 = $121; + } else $123 = $103; } - $143 = ($141 << 16 >> 16) * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $125 = ($123 << 16 >> 16) * 7 | 0; + $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; + $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256; + $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; } while (0); - $i$265 = $i$265 + 1 | 0; - $235 = $pnt$169 + 4 | 0; - $236 = $pnt2$368 + 2 | 0; - $237 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $237; - $pnt$1$lcssa = $235; - $pnt2$3$lcssa = $236; + $i$256 = $i$256 + 1 | 0; + $217 = $pnt$164 + 4 | 0; + $218 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $217; + $pnt2$3$lcssa = $218; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $237; - $pnt$169 = $235; - $pnt2$368 = $236; - $wk_max$160 = $wk_max$2; + $pnt$164 = $217; + $pnt2$363 = $218; + $wk_max$158 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $244 = $labelInfo + 12 | 0; + $224 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; while (1) { - $246 = HEAP32[$wk$444 >> 2] | 0; - if (($246 | 0) == ($i$342 | 0)) { - $252 = $j$143; - $j$2 = $j$143 + 1 | 0; + $226 = HEAP32[$wk$440 >> 2] | 0; + if (($226 | 0) == ($i$338 | 0)) { + $232 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - HEAP32[$wk$444 >> 2] = $252; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$440 >> 2] = $232; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $256 = $labelInfo + 8 | 0; - $257 = $j$1$lcssa + -1 | 0; - HEAP32[$256 >> 2] = $257; - if (!$257) $$0 = 0; else { - _memset($244 | 0, 0, $257 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + $236 = $labelInfo + 8 | 0; + $237 = $j$1$lcssa + -1 | 0; + HEAP32[$236 >> 2] = $237; + if (!$237) $$0 = 0; else { + _memset($224 | 0, 0, $237 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$436 = 0; do { - $264 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + $244 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$534 = 0; do { - $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $279 = $i$538 * 7 | 0; - $282 = $labelInfo + 12 + ($278 << 2) | 0; - HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); - $289 = $278 << 1; - $290 = $labelInfo + 655376 + ($289 << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); - $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; - HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); - $301 = $278 << 2; - $302 = $labelInfo + 131084 + ($301 << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; - $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; - if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; - $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; - $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; - if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $259 = $i$534 * 7 | 0; + $262 = $labelInfo + 12 + ($258 << 2) | 0; + HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); + $269 = $258 << 1; + $270 = $labelInfo + 655376 + ($269 << 3) | 0; + HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); + $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; + HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); + $281 = $258 << 2; + $282 = $labelInfo + 131084 + ($281 << 2) | 0; + $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; + if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; + $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; + $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; + if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; + $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; + $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; + if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; + $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; + $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; + if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$256 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$236 >> 2] | 0) > 0) { + $i$633 = 0; do { - $331 = $labelInfo + 12 + ($i$637 << 2) | 0; - $334 = $i$637 << 1; - $335 = $labelInfo + 655376 + ($334 << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); - $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; - HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $311 = $labelInfo + 12 + ($i$633 << 2) | 0; + $314 = $i$633 << 1; + $315 = $labelInfo + 655376 + ($314 << 3) | 0; + HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); + $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; + HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -28148,13 +59235,13 @@ function _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labe return $$0 | 0; } -function _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); @@ -28164,356 +59251,343 @@ function _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labe $2 = HEAP32[$labelInfo >> 2] | 0; $3 = $1 + -1 | 0; if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; + $11 = $0 + -1 | 0; if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; + $18 = $labelInfo + 1179664 | 0; + $19 = 0 - $0 | 0; $$sum1 = 1 - $0 | 0; $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; + $$sum = $xsize + 4 | 0; L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $26 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 1) + 2) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($26) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; - do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($50 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $50; - $53 = ($50 << 16 >> 16) * 7 | 0; - $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; - $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; - $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; - HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $74 = $73 << 16 >> 16; - $75 = $73 << 16 >> 16 > 0; - if ($69 << 16 >> 16 <= 0) { - if ($75) { - HEAP16[$pnt2$368 >> 1] = $73; - $175 = $74 * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$363 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($195 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $195; - $198 = ($195 << 16 >> 16) * 7 | 0; - $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; - $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; - $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; - HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; - $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; - if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $176 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP32[$212 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$193 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; } else { - $215 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $215; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; - $220 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $215; + $196 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $196; break; } } - if ($75) { - $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; - if (($78 | 0) > ($81 | 0)) { - HEAP16[$pnt2$368 >> 1] = $81; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$363 >> 1] = $62; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $98 = $81; + if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $79 = $62; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$053 = $wk$053 + 4 | 0; } - } else $98 = $81; + } else $79 = $62; } else { - HEAP16[$pnt2$368 >> 1] = $78; - if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$363 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $98 = $78; + if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $79 = $59; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } else $98 = $78; + } else $79 = $59; } - $100 = ($98 << 16 >> 16) * 7 | 0; - $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; - $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; - $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; - HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($116 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $69; - $156 = $70 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; - $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $97 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($121 | 0) > ($124 | 0)) { - HEAP16[$pnt2$368 >> 1] = $124; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$363 >> 1] = $105; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $141 = $124; + if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $122 = $105; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$246 = $wk$246 + 4 | 0; } - } else $141 = $124; + } else $122 = $105; } else { - HEAP16[$pnt2$368 >> 1] = $121; - if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$363 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $141 = $121; + if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $122 = $102; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$343 = $wk$343 + 4 | 0; } - } else $141 = $121; + } else $122 = $102; } - $143 = ($141 << 16 >> 16) * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; + } else { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; } while (0); - $i$265 = $i$265 + 1 | 0; - $235 = $pnt$169 + 4 | 0; - $236 = $pnt2$368 + 2 | 0; - $237 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $237; - $pnt$1$lcssa = $235; - $pnt2$3$lcssa = $236; + $i$256 = $i$256 + 1 | 0; + $216 = $pnt$164 + 2 | 0; + $217 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $217; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $237; - $pnt$169 = $235; - $pnt2$368 = $236; - $wk_max$160 = $wk_max$2; + $pnt$164 = $216; + $pnt2$363 = $217; + $wk_max$158 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $244 = $labelInfo + 12 | 0; + $223 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; while (1) { - $246 = HEAP32[$wk$444 >> 2] | 0; - if (($246 | 0) == ($i$342 | 0)) { - $252 = $j$143; - $j$2 = $j$143 + 1 | 0; + $225 = HEAP32[$wk$440 >> 2] | 0; + if (($225 | 0) == ($i$338 | 0)) { + $231 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - HEAP32[$wk$444 >> 2] = $252; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$440 >> 2] = $231; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $256 = $labelInfo + 8 | 0; - $257 = $j$1$lcssa + -1 | 0; - HEAP32[$256 >> 2] = $257; - if (!$257) $$0 = 0; else { - _memset($244 | 0, 0, $257 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + $235 = $labelInfo + 8 | 0; + $236 = $j$1$lcssa + -1 | 0; + HEAP32[$235 >> 2] = $236; + if (!$236) $$0 = 0; else { + _memset($223 | 0, 0, $236 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$436 = 0; do { - $264 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + $243 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$534 = 0; do { - $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $279 = $i$538 * 7 | 0; - $282 = $labelInfo + 12 + ($278 << 2) | 0; - HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); - $289 = $278 << 1; - $290 = $labelInfo + 655376 + ($289 << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); - $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; - HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); - $301 = $278 << 2; - $302 = $labelInfo + 131084 + ($301 << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; - $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; - if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; - $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; - $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; - if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $258 = $i$534 * 7 | 0; + $261 = $labelInfo + 12 + ($257 << 2) | 0; + HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0); + $268 = $257 << 1; + $269 = $labelInfo + 655376 + ($268 << 3) | 0; + HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0); + $277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0; + HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0); + $280 = $257 << 2; + $281 = $labelInfo + 131084 + ($280 << 2) | 0; + $285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0; + if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285; + $288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$256 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$235 >> 2] | 0) > 0) { + $i$633 = 0; do { - $331 = $labelInfo + 12 + ($i$637 << 2) | 0; - $334 = $i$637 << 1; - $335 = $labelInfo + 655376 + ($334 << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); - $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; - HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $310 = $labelInfo + 12 + ($i$633 << 2) | 0; + $313 = $i$633 << 1; + $314 = $labelInfo + 655376 + ($313 << 3) | 0; + HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0); + $320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -28522,13 +59596,13 @@ function _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labe return $$0 | 0; } -function _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); @@ -28538,356 +59612,343 @@ function _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelI $2 = HEAP32[$labelInfo >> 2] | 0; $3 = $1 + -1 | 0; if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $i$082 = 0; + $pnt1$084 = $2; + $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$083 >> 1] = 0; + HEAP16[$pnt1$084 >> 1] = 0; + $i$082 = $i$082 + 1 | 0; + if (($i$082 | 0) >= ($0 | 0)) break; else { + $pnt1$084 = $pnt1$084 + 2 | 0; + $pnt2$083 = $pnt2$083 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; + $11 = $0 + -1 | 0; if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $i$176 = 0; + $pnt1$178 = $2; + $pnt2$177 = $2 + ($11 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$177 >> 1] = 0; + HEAP16[$pnt1$178 >> 1] = 0; + $i$176 = $i$176 + 1 | 0; + if (($i$176 | 0) >= ($1 | 0)) break; else { + $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; + $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; + $18 = $labelInfo + 1179664 | 0; + $19 = 0 - $0 | 0; $$sum1 = 1 - $0 | 0; $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; + $$sum = $xsize + 4 | 0; L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $26 = ($11 | 0) > 1; + $j$069 = 1; + $pnt$073 = $image + (($xsize << 1) + 2) | 0; + $pnt2$272 = $2 + ($0 + 1 << 1) | 0; + $wk_max$071 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($26) { + $i$256 = 1; + $pnt$164 = $pnt$073; + $pnt2$363 = $pnt2$272; + $wk_max$158 = $wk_max$071; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; - do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($50 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $50; - $53 = ($50 << 16 >> 16) * 7 | 0; - $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; - $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; - $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; - HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$363 >> 1] = 0; + $wk_max$2 = $wk_max$158; + } else { + $31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0; + if ($31 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $31; + $34 = ($31 << 16 >> 16) * 7 | 0; + $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; + $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256; + $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $74 = $73 << 16 >> 16; - $75 = $73 << 16 >> 16 > 0; - if ($69 << 16 >> 16 <= 0) { - if ($75) { - HEAP16[$pnt2$368 >> 1] = $73; - $175 = $74 * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; + $55 = $54 << 16 >> 16; + $56 = $54 << 16 >> 16 > 0; + if ($50 << 16 >> 16 <= 0) { + if ($56) { + HEAP16[$pnt2$363 >> 1] = $54; + $156 = $55 * 7 | 0; + $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; + $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256; + $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; + HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069; + $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; + if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($195 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $195; - $198 = ($195 << 16 >> 16) * 7 | 0; - $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; - $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; - $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; - HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; - $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; - if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $176 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($176 << 16 >> 16 > 0) { + HEAP16[$pnt2$363 >> 1] = $176; + $179 = ($176 << 16 >> 16) * 7 | 0; + $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; + $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256; + $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; + HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069; + $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; + if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) { + $wk_max$2 = $wk_max$158; break; } - HEAP32[$212 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$193 >> 2] = $i$256; + $wk_max$2 = $wk_max$158; break; } else { - $215 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $215; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; - $220 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $215; + $196 = $wk_max$158 + 1 | 0; + if (($wk_max$158 | 0) > 32767) break L13; + HEAP16[$pnt2$363 >> 1] = $196; + HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16; + $201 = $wk_max$158 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069; + HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069; + $wk_max$2 = $196; break; } } - if ($75) { - $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; - if (($78 | 0) > ($81 | 0)) { - HEAP16[$pnt2$368 >> 1] = $81; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($56) { + $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; + if (($59 | 0) > ($62 | 0)) { + HEAP16[$pnt2$363 >> 1] = $62; + if (($wk_max$158 | 0) > 0) { + $k$052 = 0; + $wk$053 = $18; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $98 = $81; + if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62; + $k$052 = $k$052 + 1 | 0; + if (($k$052 | 0) >= ($wk_max$158 | 0)) { + $79 = $62; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$053 = $wk$053 + 4 | 0; } - } else $98 = $81; + } else $79 = $62; } else { - HEAP16[$pnt2$368 >> 1] = $78; - if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$363 >> 1] = $59; + if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) { + $k$149 = 0; + $wk$150 = $18; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $98 = $78; + if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59; + $k$149 = $k$149 + 1 | 0; + if (($k$149 | 0) >= ($wk_max$158 | 0)) { + $79 = $59; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$150 = $wk$150 + 4 | 0; } - } else $98 = $78; + } else $79 = $59; } - $100 = ($98 << 16 >> 16) * 7 | 0; - $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; - $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; - $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; - HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $81 = ($79 << 16 >> 16) * 7 | 0; + $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; + $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256; + $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069; + HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($116 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $69; - $156 = $70 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; - $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $97 = HEAP16[$pnt2$363 + -2 >> 1] | 0; + if ($97 << 16 >> 16 <= 0) { + HEAP16[$pnt2$363 >> 1] = $50; + $137 = $51 * 7 | 0; + $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; + $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256; + $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; + HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069; + $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; + if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256; + HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069; + $wk_max$2 = $wk_max$158; break; } - $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($121 | 0) > ($124 | 0)) { - HEAP16[$pnt2$368 >> 1] = $124; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($102 | 0) > ($105 | 0)) { + HEAP16[$pnt2$363 >> 1] = $105; + if (($wk_max$158 | 0) > 0) { + $k$245 = 0; + $wk$246 = $18; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $141 = $124; + if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105; + $k$245 = $k$245 + 1 | 0; + if (($k$245 | 0) >= ($wk_max$158 | 0)) { + $122 = $105; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$246 = $wk$246 + 4 | 0; } - } else $141 = $124; + } else $122 = $105; } else { - HEAP16[$pnt2$368 >> 1] = $121; - if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$363 >> 1] = $102; + if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) { + $k$342 = 0; + $wk$343 = $18; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $141 = $121; + if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102; + $k$342 = $k$342 + 1 | 0; + if (($k$342 | 0) >= ($wk_max$158 | 0)) { + $122 = $102; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$343 = $wk$343 + 4 | 0; } - } else $141 = $121; + } else $122 = $102; } - $143 = ($141 << 16 >> 16) * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $124 = ($122 << 16 >> 16) * 7 | 0; + $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; + $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256; + $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; + HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069; + $wk_max$2 = $wk_max$158; } while (0); - $i$265 = $i$265 + 1 | 0; - $235 = $pnt$169 + 4 | 0; - $236 = $pnt2$368 + 2 | 0; - $237 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $237; - $pnt$1$lcssa = $235; - $pnt2$3$lcssa = $236; + $i$256 = $i$256 + 1 | 0; + $216 = $pnt$164 + 2 | 0; + $217 = $pnt2$363 + 2 | 0; + if (($i$256 | 0) >= ($11 | 0)) { + $pnt$1$lcssa = $216; + $pnt2$3$lcssa = $217; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $237; - $pnt$169 = $235; - $pnt2$368 = $236; - $wk_max$160 = $wk_max$2; + $pnt$164 = $216; + $pnt2$363 = $217; + $wk_max$158 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$073; + $pnt2$3$lcssa = $pnt2$272; + $wk_max$1$lcssa = $wk_max$071; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$069 = $j$069 + 1 | 0; + if (($j$069 | 0) >= ($3 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$073 = $pnt$1$lcssa + $$sum | 0; + $pnt2$272 = $pnt2$3$lcssa + 4 | 0; + $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $244 = $labelInfo + 12 | 0; + $223 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$338 = 1; + $j$139 = 1; + $wk$440 = $18; while (1) { - $246 = HEAP32[$wk$444 >> 2] | 0; - if (($246 | 0) == ($i$342 | 0)) { - $252 = $j$143; - $j$2 = $j$143 + 1 | 0; + $225 = HEAP32[$wk$440 >> 2] | 0; + if (($225 | 0) == ($i$338 | 0)) { + $231 = $j$139; + $j$2 = $j$139 + 1 | 0; } else { - $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0; + $j$2 = $j$139; } - HEAP32[$wk$444 >> 2] = $252; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$440 >> 2] = $231; + if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { + $i$338 = $i$338 + 1 | 0; + $j$139 = $j$2; + $wk$440 = $wk$440 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $256 = $labelInfo + 8 | 0; - $257 = $j$1$lcssa + -1 | 0; - HEAP32[$256 >> 2] = $257; - if (!$257) $$0 = 0; else { - _memset($244 | 0, 0, $257 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + $235 = $labelInfo + 8 | 0; + $236 = $j$1$lcssa + -1 | 0; + HEAP32[$235 >> 2] = $236; + if (!$236) $$0 = 0; else { + _memset($223 | 0, 0, $236 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$436 = 0; do { - $264 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + $243 = $i$436 << 2; + HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0; + HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1; + HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$534 = 0; do { - $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $279 = $i$538 * 7 | 0; - $282 = $labelInfo + 12 + ($278 << 2) | 0; - HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); - $289 = $278 << 1; - $290 = $labelInfo + 655376 + ($289 << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); - $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; - HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); - $301 = $278 << 2; - $302 = $labelInfo + 131084 + ($301 << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; - $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; - if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; - $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; - $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; - if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; + $258 = $i$534 * 7 | 0; + $261 = $labelInfo + 12 + ($257 << 2) | 0; + HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0); + $268 = $257 << 1; + $269 = $labelInfo + 655376 + ($268 << 3) | 0; + HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0); + $277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0; + HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0); + $280 = $257 << 2; + $281 = $labelInfo + 131084 + ($280 << 2) | 0; + $285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0; + if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285; + $288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0; + $292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0; + if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292; + $295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0; + $299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0; + if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299; + $302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0; + $306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0; + if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306; + $i$534 = $i$534 + 1 | 0; + } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$256 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$235 >> 2] | 0) > 0) { + $i$633 = 0; do { - $331 = $labelInfo + 12 + ($i$637 << 2) | 0; - $334 = $i$637 << 1; - $335 = $labelInfo + 655376 + ($334 << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); - $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; - HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $310 = $labelInfo + 12 + ($i$633 << 2) | 0; + $313 = $i$633 << 1; + $314 = $labelInfo + 655376 + ($313 << 3) | 0; + HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0); + $320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0; + HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0); + $i$633 = $i$633 + 1 | 0; + } while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -28896,372 +59957,357 @@ function _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelI return $$0 | 0; } -function _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($17 << 1) | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($23) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - $39 = HEAPU8[$pnt$169 + 1 >> 0] | 0; - do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($50 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $50; - $53 = ($50 << 16 >> 16) * 7 | 0; - $55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1; - $59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265; - $63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0; - HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($29 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $29; + $32 = ($29 << 16 >> 16) * 7 | 0; + $34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0; + HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1; + $38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255; + $42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $74 = $73 << 16 >> 16; - $75 = $73 << 16 >> 16 > 0; - if ($69 << 16 >> 16 <= 0) { - if ($75) { - HEAP16[$pnt2$368 >> 1] = $73; - $175 = $74 * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $49 = $48 << 16 >> 16; + $52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $53 = $52 << 16 >> 16; + $54 = $52 << 16 >> 16 > 0; + if ($48 << 16 >> 16 <= 0) { + if ($54) { + HEAP16[$pnt2$362 >> 1] = $52; + $154 = $53 * 7 | 0; + $156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1; + $160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255; + $164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068; + $168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0; + if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $195 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($195 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $195; - $198 = ($195 << 16 >> 16) * 7 | 0; - $200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1; - $204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265; - $208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0; - HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076; - $212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0; - if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $174 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($174 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $174; + $177 = ($174 << 16 >> 16) * 7 | 0; + $179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1; + $183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0; + HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255; + $187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068; + $191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0; + if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$212 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$191 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $215 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $215; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16; - $220 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $215; + $194 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $194; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16; + $199 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $194; break; } } - if ($75) { - $78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0; - if (($78 | 0) > ($81 | 0)) { - HEAP16[$pnt2$368 >> 1] = $81; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($54) { + $57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; + $60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + if (($57 | 0) > ($60 | 0)) { + HEAP16[$pnt2$362 >> 1] = $60; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $98 = $81; + if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $77 = $60; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $98 = $81; + } else $77 = $60; } else { - HEAP16[$pnt2$368 >> 1] = $78; - if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $57; + if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $98 = $78; + if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $77 = $57; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $98 = $78; + } else $77 = $57; } - $100 = ($98 << 16 >> 16) * 7 | 0; - $102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1; - $106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265; - $110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0; - HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $79 = ($77 << 16 >> 16) * 7 | 0; + $81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0; + HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1; + $85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0; + HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255; + $89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $116 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($116 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $69; - $156 = $70 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076; - $170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $95 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($95 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $48; + $135 = $49 * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068; + $149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0; + if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - $124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($121 | 0) > ($124 | 0)) { - HEAP16[$pnt2$368 >> 1] = $124; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; + $103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($100 | 0) > ($103 | 0)) { + HEAP16[$pnt2$362 >> 1] = $103; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $141 = $124; + if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $120 = $103; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $141 = $124; + } else $120 = $103; } else { - HEAP16[$pnt2$368 >> 1] = $121; - if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $100; + if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $141 = $121; + if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $120 = $100; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $141 = $121; + } else $120 = $100; } - $143 = ($141 << 16 >> 16) * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; + $122 = ($120 << 16 >> 16) * 7 | 0; + $124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0; + HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1; + $128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0; + HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255; + $132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $235 = $pnt$169 + 4 | 0; - $236 = $pnt2$368 + 2 | 0; - $237 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $237; - $pnt$1$lcssa = $235; - $pnt2$3$lcssa = $236; + $i$255 = $i$255 + 1 | 0; + $214 = $pnt$163 + 2 | 0; + $215 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $214; + $pnt2$3$lcssa = $215; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $237; - $pnt$169 = $235; - $pnt2$368 = $236; - $wk_max$160 = $wk_max$2; + $pnt$163 = $214; + $pnt2$362 = $215; + $wk_max$157 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $244 = $labelInfo + 12 | 0; + $221 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $246 = HEAP32[$wk$444 >> 2] | 0; - if (($246 | 0) == ($i$342 | 0)) { - $252 = $j$143; - $j$2 = $j$143 + 1 | 0; + $223 = HEAP32[$wk$439 >> 2] | 0; + if (($223 | 0) == ($i$337 | 0)) { + $229 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $252; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $229; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $256 = $labelInfo + 8 | 0; - $257 = $j$1$lcssa + -1 | 0; - HEAP32[$256 >> 2] = $257; - if (!$257) $$0 = 0; else { - _memset($244 | 0, 0, $257 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0; + $233 = $labelInfo + 8 | 0; + $234 = $j$1$lcssa + -1 | 0; + HEAP32[$233 >> 2] = $234; + if (!$234) $$0 = 0; else { + _memset($221 | 0, 0, $234 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$435 = 0; do { - $264 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0)); + $241 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$533 = 0; do { - $278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $279 = $i$538 * 7 | 0; - $282 = $labelInfo + 12 + ($278 << 2) | 0; - HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0); - $289 = $278 << 1; - $290 = $labelInfo + 655376 + ($289 << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0); - $298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0; - HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0); - $301 = $278 << 2; - $302 = $labelInfo + 131084 + ($301 << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0; - $320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0; - if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320; - $323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0; - $327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0; - if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $256 = $i$533 * 7 | 0; + $259 = $labelInfo + 12 + ($255 << 2) | 0; + HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0); + $266 = $255 << 1; + $267 = $labelInfo + 655376 + ($266 << 3) | 0; + HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0); + $275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0); + $278 = $255 << 2; + $279 = $labelInfo + 131084 + ($278 << 2) | 0; + $283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0; + if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283; + $286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0; + $290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0; + if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290; + $293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$256 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$233 >> 2] | 0) > 0) { + $i$632 = 0; do { - $331 = $labelInfo + 12 + ($i$637 << 2) | 0; - $334 = $i$637 << 1; - $335 = $labelInfo + 655376 + ($334 << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0); - $341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0; - HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0)); + $308 = $labelInfo + 12 + ($i$632 << 2) | 0; + $311 = $i$632 << 1; + $312 = $labelInfo + 655376 + ($311 << 3) | 0; + HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0); + $318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0; + HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -29270,371 +60316,357 @@ function _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelI return $$0 | 0; } -function _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($17 << 1) | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($23) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($29 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $29; + $32 = ($29 << 16 >> 16) * 7 | 0; + $34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0; + HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1; + $38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255; + $42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0; + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$368 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $49 = $48 << 16 >> 16; + $52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $53 = $52 << 16 >> 16; + $54 = $52 << 16 >> 16 > 0; + if ($48 << 16 >> 16 <= 0) { + if ($54) { + HEAP16[$pnt2$362 >> 1] = $52; + $154 = $53 * 7 | 0; + $156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0; + HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1; + $160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255; + $164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0; + HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068; + $168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0; + if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $191 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $174 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($174 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $174; + $177 = ($174 << 16 >> 16) * 7 | 0; + $179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0; + HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1; + $183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0; + HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255; + $187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0; + HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068; + $191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0; + if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$208 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$191 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $211 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $211; + $194 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $194; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16; + $199 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $194; break; } } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$368 >> 1] = $77; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($54) { + $57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; + $60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; + if (($57 | 0) > ($60 | 0)) { + HEAP16[$pnt2$362 >> 1] = $60; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $94 = $77; + if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $77 = $60; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $94 = $77; + } else $77 = $60; } else { - HEAP16[$pnt2$368 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $57; + if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $94 = $74; + if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $77 = $57; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $94 = $74; + } else $77 = $57; } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $79 = ($77 << 16 >> 16) * 7 | 0; + $81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0; + HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1; + $85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0; + HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255; + $89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0; + HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $112 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $95 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($95 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $48; + $135 = $49 * 7 | 0; + $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; + HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; + $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; + HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255; + $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; + HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068; + $149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0; + if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$368 >> 1] = $120; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; + $103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($100 | 0) > ($103 | 0)) { + HEAP16[$pnt2$362 >> 1] = $103; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $137 = $120; + if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $120 = $103; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $137 = $120; + } else $120 = $103; } else { - HEAP16[$pnt2$368 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $100; + if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $137 = $117; + if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $120 = $100; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $137 = $117; + } else $120 = $100; } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $122 = ($120 << 16 >> 16) * 7 | 0; + $124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0; + HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1; + $128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0; + HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255; + $132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $231 = $pnt$169 + 4 | 0; - $232 = $pnt2$368 + 2 | 0; - $233 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; + $i$255 = $i$255 + 1 | 0; + $214 = $pnt$163 + 2 | 0; + $215 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $214; + $pnt2$3$lcssa = $215; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $233; - $pnt$169 = $231; - $pnt2$368 = $232; - $wk_max$160 = $wk_max$2; + $pnt$163 = $214; + $pnt2$362 = $215; + $wk_max$157 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; + $221 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $242 = HEAP32[$wk$444 >> 2] | 0; - if (($242 | 0) == ($i$342 | 0)) { - $248 = $j$143; - $j$2 = $j$143 + 1 | 0; + $223 = HEAP32[$wk$439 >> 2] | 0; + if (($223 | 0) == ($i$337 | 0)) { + $229 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $248; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $229; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $260 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$538 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $233 = $labelInfo + 8 | 0; + $234 = $j$1$lcssa + -1 | 0; + HEAP32[$233 >> 2] = $234; + if (!$234) $$0 = 0; else { + _memset($221 | 0, 0, $234 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0; + if (($j$1$lcssa | 0) > 1) { + $i$435 = 0; + do { + $241 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0)); } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$637 = 0; + if (($wk_max$0$lcssa | 0) > 0) { + $i$533 = 0; do { - $327 = $labelInfo + 12 + ($i$637 << 2) | 0; - $330 = $i$637 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0)); + $255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $256 = $i$533 * 7 | 0; + $259 = $labelInfo + 12 + ($255 << 2) | 0; + HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0); + $266 = $255 << 1; + $267 = $labelInfo + 655376 + ($266 << 3) | 0; + HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0); + $275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0; + HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0); + $278 = $255 << 2; + $279 = $labelInfo + 131084 + ($278 << 2) | 0; + $283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0; + if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283; + $286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0; + $290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0; + if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290; + $293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0; + $297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0; + if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; + $300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0; + $304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0; + if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + if ((HEAP32[$233 >> 2] | 0) > 0) { + $i$632 = 0; + do { + $308 = $labelInfo + 12 + ($i$632 << 2) | 0; + $311 = $i$632 << 1; + $312 = $labelInfo + 655376 + ($311 << 3) | 0; + HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0); + $318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0; + HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -29643,371 +60675,357 @@ function _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labe return $$0 | 0; } -function _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $22 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($17 << 1) | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($23) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - $33 = HEAPU8[$pnt$169 >> 0] | 0; - do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($28 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $28; + $31 = ($28 << 16 >> 16) * 7 | 0; + $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255; + $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$368 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $48 = $47 << 16 >> 16; + $51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $53 = $51 << 16 >> 16 > 0; + if ($47 << 16 >> 16 <= 0) { + if ($53) { + HEAP16[$pnt2$362 >> 1] = $51; + $153 = $52 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068; + $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $191 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $173 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($173 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $173; + $176 = ($173 << 16 >> 16) * 7 | 0; + $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; + $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255; + $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068; + $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; + if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$208 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$190 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $211 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $211; + $193 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $193; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16; + $198 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $193; break; } } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$368 >> 1] = $77; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($53) { + $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + if (($56 | 0) > ($59 | 0)) { + HEAP16[$pnt2$362 >> 1] = $59; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $94 = $77; + if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $76 = $59; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $94 = $77; + } else $76 = $59; } else { - HEAP16[$pnt2$368 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $56; + if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $94 = $74; + if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $76 = $56; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $94 = $74; + } else $76 = $56; } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $78 = ($76 << 16 >> 16) * 7 | 0; + $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; + HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; + $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255; + $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $112 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $94 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($94 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $47; + $134 = $48 * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068; + $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; + if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$368 >> 1] = $120; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($99 | 0) > ($102 | 0)) { + HEAP16[$pnt2$362 >> 1] = $102; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $137 = $120; + if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $119 = $102; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $137 = $120; + } else $119 = $102; } else { - HEAP16[$pnt2$368 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $99; + if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $137 = $117; + if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $119 = $99; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $137 = $117; + } else $119 = $99; } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; + $121 = ($119 << 16 >> 16) * 7 | 0; + $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; + HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; + $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255; + $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $231 = $pnt$169 + 4 | 0; - $232 = $pnt2$368 + 2 | 0; - $233 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; + $i$255 = $i$255 + 1 | 0; + $213 = $pnt$163 + 2 | 0; + $214 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $213; + $pnt2$3$lcssa = $214; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $233; - $pnt$169 = $231; - $pnt2$368 = $232; - $wk_max$160 = $wk_max$2; + $pnt$163 = $213; + $pnt2$362 = $214; + $wk_max$157 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; + $220 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $242 = HEAP32[$wk$444 >> 2] | 0; - if (($242 | 0) == ($i$342 | 0)) { - $248 = $j$143; - $j$2 = $j$143 + 1 | 0; + $222 = HEAP32[$wk$439 >> 2] | 0; + if (($222 | 0) == ($i$337 | 0)) { + $228 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $248; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $228; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; + $232 = $labelInfo + 8 | 0; + $233 = $j$1$lcssa + -1 | 0; + HEAP32[$232 >> 2] = $233; + if (!$233) $$0 = 0; else { + _memset($220 | 0, 0, $233 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$435 = 0; do { - $260 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0)); + $240 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$533 = 0; do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$538 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $255 = $i$533 * 7 | 0; + $258 = $labelInfo + 12 + ($254 << 2) | 0; + HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0); + $265 = $254 << 1; + $266 = $labelInfo + 655376 + ($265 << 3) | 0; + HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0); + $274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0; + HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0); + $277 = $254 << 2; + $278 = $labelInfo + 131084 + ($277 << 2) | 0; + $282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0; + if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282; + $285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0; + $289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0; + if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289; + $292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$232 >> 2] | 0) > 0) { + $i$632 = 0; do { - $327 = $labelInfo + 12 + ($i$637 << 2) | 0; - $330 = $i$637 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0)); + $307 = $labelInfo + 12 + ($i$632 << 2) | 0; + $310 = $i$632 << 1; + $311 = $labelInfo + 655376 + ($310 << 3) | 0; + HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0); + $317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0; + HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -30016,370 +61034,357 @@ function _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labe return $$0 | 0; } -function _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize * 3 | 0) + 12 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $23 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + ($17 << 1) | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($23) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($44 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $44; - $47 = ($44 << 16 >> 16) * 7 | 0; - $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; - $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; - $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; - HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($28 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $28; + $31 = ($28 << 16 >> 16) * 7 | 0; + $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; + HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255; + $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; + HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $68 = $67 << 16 >> 16; - $69 = $67 << 16 >> 16 > 0; - if ($63 << 16 >> 16 <= 0) { - if ($69) { - HEAP16[$pnt2$368 >> 1] = $67; - $169 = $68 * 7 | 0; - $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; - $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; - $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; - $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; - if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $48 = $47 << 16 >> 16; + $51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $52 = $51 << 16 >> 16; + $53 = $51 << 16 >> 16 > 0; + if ($47 << 16 >> 16 <= 0) { + if ($53) { + HEAP16[$pnt2$362 >> 1] = $51; + $153 = $52 * 7 | 0; + $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; + HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; + $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; + HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255; + $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; + HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068; + $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; + if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($189 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $189; - $192 = ($189 << 16 >> 16) * 7 | 0; - $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; - $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; - $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; - HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; - $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; - if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $173 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($173 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $173; + $176 = ($173 << 16 >> 16) * 7 | 0; + $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; + HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; + $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; + HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255; + $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; + HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068; + $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; + if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$206 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$190 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $209 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $209; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; - $214 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $209; + $193 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $193; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16; + $198 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $193; break; } } - if ($69) { - $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; - if (($72 | 0) > ($75 | 0)) { - HEAP16[$pnt2$368 >> 1] = $75; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($53) { + $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; + if (($56 | 0) > ($59 | 0)) { + HEAP16[$pnt2$362 >> 1] = $59; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $92 = $75; + if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $76 = $59; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $92 = $75; + } else $76 = $59; } else { - HEAP16[$pnt2$368 >> 1] = $72; - if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $56; + if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $92 = $72; + if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $76 = $56; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $92 = $72; + } else $76 = $56; } - $94 = ($92 << 16 >> 16) * 7 | 0; - $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; - $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; - $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; - HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $78 = ($76 << 16 >> 16) * 7 | 0; + $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; + HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; + $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; + HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255; + $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; + HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($110 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $63; - $150 = $64 * 7 | 0; - $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; - $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; - $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; - $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; - if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $94 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($94 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $47; + $134 = $48 * 7 | 0; + $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; + $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; + HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255; + $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; + HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068; + $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; + if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($115 | 0) > ($118 | 0)) { - HEAP16[$pnt2$368 >> 1] = $118; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; + $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($99 | 0) > ($102 | 0)) { + HEAP16[$pnt2$362 >> 1] = $102; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $135 = $118; + if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $119 = $102; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $135 = $118; + } else $119 = $102; } else { - HEAP16[$pnt2$368 >> 1] = $115; - if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $99; + if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $135 = $115; + if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $119 = $99; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $135 = $115; + } else $119 = $99; } - $137 = ($135 << 16 >> 16) * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $121 = ($119 << 16 >> 16) * 7 | 0; + $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; + HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; + $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; + HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255; + $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; + HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $229 = $pnt$169 + 6 | 0; - $230 = $pnt2$368 + 2 | 0; - $231 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $231; - $pnt$1$lcssa = $229; - $pnt2$3$lcssa = $230; + $i$255 = $i$255 + 1 | 0; + $213 = $pnt$163 + 2 | 0; + $214 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $213; + $pnt2$3$lcssa = $214; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $231; - $pnt$169 = $229; - $pnt2$368 = $230; - $wk_max$160 = $wk_max$2; + $pnt$163 = $213; + $pnt2$362 = $214; + $wk_max$157 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 4 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $238 = $labelInfo + 12 | 0; + $220 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $240 = HEAP32[$wk$444 >> 2] | 0; - if (($240 | 0) == ($i$342 | 0)) { - $246 = $j$143; - $j$2 = $j$143 + 1 | 0; + $222 = HEAP32[$wk$439 >> 2] | 0; + if (($222 | 0) == ($i$337 | 0)) { + $228 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $246; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $228; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $250 = $labelInfo + 8 | 0; - $251 = $j$1$lcssa + -1 | 0; - HEAP32[$250 >> 2] = $251; - if (!$251) $$0 = 0; else { - _memset($238 | 0, 0, $251 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + $232 = $labelInfo + 8 | 0; + $233 = $j$1$lcssa + -1 | 0; + HEAP32[$232 >> 2] = $233; + if (!$233) $$0 = 0; else { + _memset($220 | 0, 0, $233 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$435 = 0; do { - $258 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + $240 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$533 = 0; do { - $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $273 = $i$538 * 7 | 0; - $276 = $labelInfo + 12 + ($272 << 2) | 0; - HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); - $283 = $272 << 1; - $284 = $labelInfo + 655376 + ($283 << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); - $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; - HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); - $295 = $272 << 2; - $296 = $labelInfo + 131084 + ($295 << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; - $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; - $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; - if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $255 = $i$533 * 7 | 0; + $258 = $labelInfo + 12 + ($254 << 2) | 0; + HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0); + $265 = $254 << 1; + $266 = $labelInfo + 655376 + ($265 << 3) | 0; + HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0); + $274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0; + HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0); + $277 = $254 << 2; + $278 = $labelInfo + 131084 + ($277 << 2) | 0; + $282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0; + if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282; + $285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0; + $289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0; + if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289; + $292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0; + $296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0; + if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; + $299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0; + $303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0; + if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$250 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$232 >> 2] | 0) > 0) { + $i$632 = 0; do { - $325 = $labelInfo + 12 + ($i$637 << 2) | 0; - $328 = $i$637 << 1; - $329 = $labelInfo + 655376 + ($328 << 3) | 0; - HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); - $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $307 = $labelInfo + 12 + ($i$632 << 2) | 0; + $310 = $i$632 << 1; + $311 = $labelInfo + 655376 + ($310 << 3) | 0; + HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0); + $317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0; + HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -30388,370 +61393,357 @@ function _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo return $$0 | 0; } -function _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize * 3 | 0) + 12 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $22 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + $17 | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($22) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($44 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $44; - $47 = ($44 << 16 >> 16) * 7 | 0; - $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; - $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; - $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; - HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + $27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($27 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $27; + $30 = ($27 << 16 >> 16) * 7 | 0; + $32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0; + HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1; + $36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255; + $40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $68 = $67 << 16 >> 16; - $69 = $67 << 16 >> 16 > 0; - if ($63 << 16 >> 16 <= 0) { - if ($69) { - HEAP16[$pnt2$368 >> 1] = $67; - $169 = $68 * 7 | 0; - $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; - $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; - $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; - $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; - if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $47 = $46 << 16 >> 16; + $50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $52 = $50 << 16 >> 16 > 0; + if ($46 << 16 >> 16 <= 0) { + if ($52) { + HEAP16[$pnt2$362 >> 1] = $50; + $152 = $51 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068; + $166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($189 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $189; - $192 = ($189 << 16 >> 16) * 7 | 0; - $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; - $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; - $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; - HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; - $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; - if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $172 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($172 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $172; + $175 = ($172 << 16 >> 16) * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$206 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$189 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $209 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $209; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; - $214 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $209; + $192 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $192; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16; + $197 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $192; break; } } - if ($69) { - $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; - if (($72 | 0) > ($75 | 0)) { - HEAP16[$pnt2$368 >> 1] = $75; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($52) { + $55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; + $58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + if (($55 | 0) > ($58 | 0)) { + HEAP16[$pnt2$362 >> 1] = $58; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $92 = $75; + if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $75 = $58; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $92 = $75; + } else $75 = $58; } else { - HEAP16[$pnt2$368 >> 1] = $72; - if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $55; + if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $92 = $72; + if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $75 = $55; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $92 = $72; + } else $75 = $55; } - $94 = ($92 << 16 >> 16) * 7 | 0; - $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; - $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; - $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; - HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $77 = ($75 << 16 >> 16) * 7 | 0; + $79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0; + HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1; + $83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255; + $87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($110 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $63; - $150 = $64 * 7 | 0; - $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; - $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; - $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; - $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; - if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $93 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($93 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $46; + $133 = $47 * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068; + $147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0; + if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($115 | 0) > ($118 | 0)) { - HEAP16[$pnt2$368 >> 1] = $118; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; + $101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($98 | 0) > ($101 | 0)) { + HEAP16[$pnt2$362 >> 1] = $101; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $135 = $118; + if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $118 = $101; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $135 = $118; + } else $118 = $101; } else { - HEAP16[$pnt2$368 >> 1] = $115; - if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $98; + if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $135 = $115; + if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $118 = $98; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $135 = $115; + } else $118 = $98; } - $137 = ($135 << 16 >> 16) * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; + $120 = ($118 << 16 >> 16) * 7 | 0; + $122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0; + HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1; + $126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255; + $130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; + } else { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $229 = $pnt$169 + 6 | 0; - $230 = $pnt2$368 + 2 | 0; - $231 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $231; - $pnt$1$lcssa = $229; - $pnt2$3$lcssa = $230; + $i$255 = $i$255 + 1 | 0; + $212 = $pnt$163 + 1 | 0; + $213 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $212; + $pnt2$3$lcssa = $213; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $231; - $pnt$169 = $229; - $pnt2$368 = $230; - $wk_max$160 = $wk_max$2; + $pnt$163 = $212; + $pnt2$362 = $213; + $wk_max$157 = $wk_max$2; } } - } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + } else { + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 2 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $238 = $labelInfo + 12 | 0; + $219 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $240 = HEAP32[$wk$444 >> 2] | 0; - if (($240 | 0) == ($i$342 | 0)) { - $246 = $j$143; - $j$2 = $j$143 + 1 | 0; + $221 = HEAP32[$wk$439 >> 2] | 0; + if (($221 | 0) == ($i$337 | 0)) { + $227 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $246; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $227; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $250 = $labelInfo + 8 | 0; - $251 = $j$1$lcssa + -1 | 0; - HEAP32[$250 >> 2] = $251; - if (!$251) $$0 = 0; else { - _memset($238 | 0, 0, $251 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; + $231 = $labelInfo + 8 | 0; + $232 = $j$1$lcssa + -1 | 0; + HEAP32[$231 >> 2] = $232; + if (!$232) $$0 = 0; else { + _memset($219 | 0, 0, $232 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$435 = 0; do { - $258 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); + $239 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$533 = 0; do { - $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $273 = $i$538 * 7 | 0; - $276 = $labelInfo + 12 + ($272 << 2) | 0; - HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); - $283 = $272 << 1; - $284 = $labelInfo + 655376 + ($283 << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); - $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; - HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); - $295 = $272 << 2; - $296 = $labelInfo + 131084 + ($295 << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; - $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; - $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; - if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $254 = $i$533 * 7 | 0; + $257 = $labelInfo + 12 + ($253 << 2) | 0; + HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0); + $264 = $253 << 1; + $265 = $labelInfo + 655376 + ($264 << 3) | 0; + HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0); + $273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0; + HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0); + $276 = $253 << 2; + $277 = $labelInfo + 131084 + ($276 << 2) | 0; + $281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0; + if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281; + $284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0; + $288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0; + if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288; + $291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$250 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$231 >> 2] | 0) > 0) { + $i$632 = 0; do { - $325 = $labelInfo + 12 + ($i$637 << 2) | 0; - $328 = $i$637 << 1; - $329 = $labelInfo + 655376 + ($328 << 3) | 0; - HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); - $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); + $306 = $labelInfo + 12 + ($i$632 << 2) | 0; + $309 = $i$632 << 1; + $310 = $labelInfo + 655376 + ($309 << 3) | 0; + HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0); + $316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -30760,370 +61752,357 @@ function _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo return $$0 | 0; } -function _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; $labelingThresh = $labelingThresh | 0; $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = HEAP32[$labelInfo >> 2] | 0; + $1 = $ysize + -1 | 0; + if (($xsize | 0) > 0) { + $i$081 = 0; + $pnt1$083 = $0; + $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + HEAP16[$pnt2$082 >> 1] = 0; + HEAP16[$pnt1$083 >> 1] = 0; + $i$081 = $i$081 + 1 | 0; + if (($i$081 | 0) >= ($xsize | 0)) break; else { + $pnt1$083 = $pnt1$083 + 2 | 0; + $pnt2$082 = $pnt2$082 + 2 | 0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; + $9 = $xsize + -1 | 0; + if (($ysize | 0) > 0) { + $i$175 = 0; + $pnt1$177 = $0; + $pnt2$176 = $0 + ($9 << 1) | 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + HEAP16[$pnt2$176 >> 1] = 0; + HEAP16[$pnt1$177 >> 1] = 0; + $i$175 = $i$175 + 1 | 0; + if (($i$175 | 0) >= ($ysize | 0)) break; else { + $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; + $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; } } } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 3) + 8) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; + $16 = $labelInfo + 1179664 | 0; + $17 = $xsize + 1 | 0; + $18 = 0 - $xsize | 0; + $$sum = 1 - $xsize | 0; + $$sum1 = ~$xsize; + L11 : do if (($1 | 0) > 1) { + $22 = ($9 | 0) > 1; + $j$068 = 1; + $pnt$072 = $image + $17 | 0; + $pnt2$271 = $0 + ($17 << 1) | 0; + $wk_max$070 = 0; L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + if ($22) { + $i$255 = 1; + $pnt$163 = $pnt$072; + $pnt2$362 = $pnt2$271; + $wk_max$157 = $wk_max$070; while (1) { - do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($45 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $45; - $48 = ($45 << 16 >> 16) * 7 | 0; - $50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1; - $54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265; - $58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0; - HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { + HEAP16[$pnt2$362 >> 1] = 0; + $wk_max$2 = $wk_max$157; + } else { + $27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; + if ($27 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $27; + $30 = ($27 << 16 >> 16) * 7 | 0; + $32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0; + HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1; + $36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255; + $40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0; + HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $69 = $68 << 16 >> 16; - $70 = $68 << 16 >> 16 > 0; - if ($64 << 16 >> 16 <= 0) { - if ($70) { - HEAP16[$pnt2$368 >> 1] = $68; - $170 = $69 * 7 | 0; - $172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1; - $176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265; - $180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0; - HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076; - $184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0; - if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; + $47 = $46 << 16 >> 16; + $50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; + $51 = $50 << 16 >> 16; + $52 = $50 << 16 >> 16 > 0; + if ($46 << 16 >> 16 <= 0) { + if ($52) { + HEAP16[$pnt2$362 >> 1] = $50; + $152 = $51 * 7 | 0; + $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; + HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; + $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255; + $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; + HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068; + $166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0; + if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $190 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($190 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $190; - $193 = ($190 << 16 >> 16) * 7 | 0; - $195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1; - $199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265; - $203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0; - HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076; - $207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0; - if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; + $172 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($172 << 16 >> 16 > 0) { + HEAP16[$pnt2$362 >> 1] = $172; + $175 = ($172 << 16 >> 16) * 7 | 0; + $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; + HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; + $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; + HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255; + $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; + HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068; + $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; + if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) { + $wk_max$2 = $wk_max$157; break; } - HEAP32[$207 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + HEAP32[$189 >> 2] = $i$255; + $wk_max$2 = $wk_max$157; break; } else { - $210 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $210; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16; - $215 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $210; + $192 = $wk_max$157 + 1 | 0; + if (($wk_max$157 | 0) > 32767) break L13; + HEAP16[$pnt2$362 >> 1] = $192; + HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16; + $197 = $wk_max$157 * 7 | 0; + HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1; + HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068; + HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068; + $wk_max$2 = $192; break; } } - if ($70) { - $73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - $76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0; - if (($73 | 0) > ($76 | 0)) { - HEAP16[$pnt2$368 >> 1] = $76; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; + if ($52) { + $55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; + $58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; + if (($55 | 0) > ($58 | 0)) { + HEAP16[$pnt2$362 >> 1] = $58; + if (($wk_max$157 | 0) > 0) { + $k$051 = 0; + $wk$052 = $16; while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $93 = $76; + if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58; + $k$051 = $k$051 + 1 | 0; + if (($k$051 | 0) >= ($wk_max$157 | 0)) { + $75 = $58; break; - } else $wk$057 = $wk$057 + 4 | 0; + } else $wk$052 = $wk$052 + 4 | 0; } - } else $93 = $76; + } else $75 = $58; } else { - HEAP16[$pnt2$368 >> 1] = $73; - if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; + HEAP16[$pnt2$362 >> 1] = $55; + if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) { + $k$148 = 0; + $wk$149 = $16; while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $93 = $73; + if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55; + $k$148 = $k$148 + 1 | 0; + if (($k$148 | 0) >= ($wk_max$157 | 0)) { + $75 = $55; break; - } else $wk$154 = $wk$154 + 4 | 0; + } else $wk$149 = $wk$149 + 4 | 0; } - } else $93 = $73; + } else $75 = $55; } - $95 = ($93 << 16 >> 16) * 7 | 0; - $97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1; - $101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265; - $105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0; - HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $77 = ($75 << 16 >> 16) * 7 | 0; + $79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0; + HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1; + $83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0; + HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255; + $87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0; + HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068; + HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $111 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($111 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $64; - $151 = $65 * 7 | 0; - $153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1; - $157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265; - $161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076; - $165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0; - if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + $93 = HEAP16[$pnt2$362 + -2 >> 1] | 0; + if ($93 << 16 >> 16 <= 0) { + HEAP16[$pnt2$362 >> 1] = $46; + $133 = $47 * 7 | 0; + $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; + HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; + $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; + HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255; + $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; + HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068; + $147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0; + if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255; + HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068; + $wk_max$2 = $wk_max$157; break; } - $116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - $119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($116 | 0) > ($119 | 0)) { - HEAP16[$pnt2$368 >> 1] = $119; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; + $98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; + $101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0; + if (($98 | 0) > ($101 | 0)) { + HEAP16[$pnt2$362 >> 1] = $101; + if (($wk_max$157 | 0) > 0) { + $k$244 = 0; + $wk$245 = $16; while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $136 = $119; + if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101; + $k$244 = $k$244 + 1 | 0; + if (($k$244 | 0) >= ($wk_max$157 | 0)) { + $118 = $101; break; - } else $wk$250 = $wk$250 + 4 | 0; + } else $wk$245 = $wk$245 + 4 | 0; } - } else $136 = $119; + } else $118 = $101; } else { - HEAP16[$pnt2$368 >> 1] = $116; - if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; + HEAP16[$pnt2$362 >> 1] = $98; + if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) { + $k$341 = 0; + $wk$342 = $16; while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $136 = $116; + if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98; + $k$341 = $k$341 + 1 | 0; + if (($k$341 | 0) >= ($wk_max$157 | 0)) { + $118 = $98; break; - } else $wk$347 = $wk$347 + 4 | 0; + } else $wk$342 = $wk$342 + 4 | 0; } - } else $136 = $116; + } else $118 = $98; } - $138 = ($136 << 16 >> 16) * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $120 = ($118 << 16 >> 16) * 7 | 0; + $122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0; + HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1; + $126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0; + HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255; + $130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0; + HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068; + $wk_max$2 = $wk_max$157; } while (0); - $i$265 = $i$265 + 1 | 0; - $230 = $pnt$169 + 8 | 0; - $231 = $pnt2$368 + 2 | 0; - $232 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $232; - $pnt$1$lcssa = $230; - $pnt2$3$lcssa = $231; + $i$255 = $i$255 + 1 | 0; + $212 = $pnt$163 + 1 | 0; + $213 = $pnt2$362 + 2 | 0; + if (($i$255 | 0) >= ($9 | 0)) { + $pnt$1$lcssa = $212; + $pnt2$3$lcssa = $213; $wk_max$1$lcssa = $wk_max$2; break; } else { - $dpnt$167 = $232; - $pnt$169 = $230; - $pnt2$368 = $231; - $wk_max$160 = $wk_max$2; + $pnt$163 = $212; + $pnt2$362 = $213; + $wk_max$157 = $wk_max$2; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $pnt$1$lcssa = $pnt$072; + $pnt2$3$lcssa = $pnt2$271; + $wk_max$1$lcssa = $wk_max$070; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { + $j$068 = $j$068 + 1 | 0; + if (($j$068 | 0) >= ($1 | 0)) { $wk_max$0$lcssa = $wk_max$1$lcssa; label = 52; break L11; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $pnt$072 = $pnt$1$lcssa + 2 | 0; + $pnt2$271 = $pnt2$3$lcssa + 4 | 0; + $wk_max$070 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); + _arLog(3, 18092, $vararg_buffer); $$0 = -1; } else { $wk_max$0$lcssa = 0; label = 52; } while (0); if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; + $219 = $labelInfo + 12 | 0; if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $i$337 = 1; + $j$138 = 1; + $wk$439 = $16; while (1) { - $241 = HEAP32[$wk$444 >> 2] | 0; - if (($241 | 0) == ($i$342 | 0)) { - $247 = $j$143; - $j$2 = $j$143 + 1 | 0; + $221 = HEAP32[$wk$439 >> 2] | 0; + if (($221 | 0) == ($i$337 | 0)) { + $227 = $j$138; + $j$2 = $j$138 + 1 | 0; } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0; + $j$2 = $j$138; } - HEAP32[$wk$444 >> 2] = $247; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP32[$wk$439 >> 2] = $227; + if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { + $i$337 = $i$337 + 1 | 0; + $j$138 = $j$2; + $wk$439 = $wk$439 + 4 | 0; } else { $j$1$lcssa = $j$2; break; } } } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; + $231 = $labelInfo + 8 | 0; + $232 = $j$1$lcssa + -1 | 0; + HEAP32[$231 >> 2] = $232; + if (!$232) $$0 = 0; else { + _memset($219 | 0, 0, $232 << 2 | 0) | 0; + _memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0; if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; + $i$435 = 0; do { - $259 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0)); + $239 = $i$435 << 2; + HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize; + HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0; + HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize; + HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0; + $i$435 = $i$435 + 1 | 0; + } while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0)); } if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; + $i$533 = 0; do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$538 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; + $254 = $i$533 * 7 | 0; + $257 = $labelInfo + 12 + ($253 << 2) | 0; + HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0); + $264 = $253 << 1; + $265 = $labelInfo + 655376 + ($264 << 3) | 0; + HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0); + $273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0; + HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0); + $276 = $253 << 2; + $277 = $labelInfo + 131084 + ($276 << 2) | 0; + $281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0; + if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281; + $284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0; + $288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0; + if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288; + $291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0; + $295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0; + if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; + $298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0; + $302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0; + if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; + $i$533 = $i$533 + 1 | 0; + } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$637 = 0; + if ((HEAP32[$231 >> 2] | 0) > 0) { + $i$632 = 0; do { - $326 = $labelInfo + 12 + ($i$637 << 2) | 0; - $329 = $i$637 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0)); + $306 = $labelInfo + 12 + ($i$632 << 2) | 0; + $309 = $i$632 << 1; + $310 = $labelInfo + 655376 + ($309 << 3) | 0; + HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0); + $316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0; + HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0); + $i$632 = $i$632 + 1 | 0; + } while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0)); $$0 = 0; } else $$0 = 0; } @@ -31132,39420 +62111,58170 @@ function _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInf return $$0 | 0; } -function _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision36ComputeSubpixelHessianFineOctavePairEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y) { + $H = $H | 0; + $b = $b | 0; + $lap0 = $lap0 | 0; + $lap1 = $lap1 | 0; + $lap2 = $lap2 | 0; + $x = $x | 0; + $y = $y | 0; + var $0 = 0, $101 = 0, $103 = 0, $11 = 0, $111 = 0, $116 = 0, $117 = 0, $121 = 0, $123 = 0, $124 = 0, $127 = 0, $129 = 0, $133 = 0.0, $135 = 0.0, $136 = 0.0, $143 = 0, $148 = 0, $149 = 0, $153 = 0, $154 = 0.0, $16 = 0, $161 = 0, $166 = 0, $167 = 0, $17 = 0, $171 = 0, $172 = 0.0, $181 = 0, $186 = 0, $187 = 0, $191 = 0, $192 = 0.0, $2 = 0, $201 = 0, $206 = 0, $207 = 0, $21 = 0, $211 = 0, $212 = 0.0, $213 = 0.0, $219 = 0.0, $22 = 0, $221 = 0.0, $223 = 0.0, $225 = 0.0, $229 = 0.0, $230 = 0.0, $232 = 0.0, $233 = 0.0, $237 = 0.0, $239 = 0, $24 = 0, $26 = 0, $33 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $52 = 0, $57 = 0, $58 = 0, $62 = 0, $64 = 0, $72 = 0, $77 = 0, $78 = 0, $82 = 0, $91 = 0, $96 = 0, $97 = 0, $Dx = 0, $Dxx = 0, $Dxy = 0, $Dy = 0, $Dyy = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 20 | 0; + $Dx = sp + 16 | 0; + $Dy = sp + 12 | 0; + $Dxx = sp + 8 | 0; + $Dyy = sp + 4 | 0; + $Dxy = sp; + if (($x | 0) > 0) { + $2 = $x + 1 | 0; + $4 = HEAP32[$lap1 + 4 >> 2] | 0; + if ($2 >>> 0 < $4 >>> 0) { + $22 = $y + -1 | 0; + if (($y | 0) > 0) { + $24 = $y + 1 | 0; + $26 = HEAP32[$lap1 + 8 >> 2] | 0; + if ($24 >>> 0 < $26 >>> 0) { + if ((HEAP32[$lap0 + 4 >> 2] | 0) != ($4 | 0)) { + $52 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24217) | 0, 23408) | 0, 34302) | 0, 415) | 0, 34309) | 0, 23899) | 0; + $57 = __ZNKSt3__18ios_base6getlocEv($52 + (HEAP32[(HEAP32[$52 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $57; + $58 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $62 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$58 >> 2] | 0) + 28 >> 2] & 63]($58, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($52, $62) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($52) | 0; + _abort(); + } + $64 = $lap2 + 4 | 0; + if (($4 >>> 1 | 0) != (HEAP32[$64 >> 2] | 0)) { + $72 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23929) | 0, 23408) | 0, 34302) | 0, 416) | 0, 34309) | 0, 23899) | 0; + $77 = __ZNKSt3__18ios_base6getlocEv($72 + (HEAP32[(HEAP32[$72 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $77; + $78 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $82 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$78 >> 2] | 0) + 28 >> 2] & 63]($78, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($72, $82) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($72) | 0; + _abort(); + } + if ((HEAP32[$lap0 + 8 >> 2] | 0) != ($26 | 0)) { + $91 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24269) | 0, 23408) | 0, 34302) | 0, 417) | 0, 34309) | 0, 23899) | 0; + $96 = __ZNKSt3__18ios_base6getlocEv($91 + (HEAP32[(HEAP32[$91 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $96; + $97 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $101 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$97 >> 2] | 0) + 28 >> 2] & 63]($97, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($91, $101) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($91) | 0; + _abort(); + } + $103 = $lap2 + 8 | 0; + if (($26 >>> 1 | 0) != (HEAP32[$103 >> 2] | 0)) { + $111 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24045) | 0, 23408) | 0, 34302) | 0, 418) | 0, 34309) | 0, 23899) | 0; + $116 = __ZNKSt3__18ios_base6getlocEv($111 + (HEAP32[(HEAP32[$111 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $116; + $117 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $121 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$117 >> 2] | 0) + 28 >> 2] & 63]($117, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($111, $121) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($111) | 0; + _abort(); + } + $123 = (__ZNK6vision5Image3getIfEEPKT_j($lap0, $22) | 0) + ($x << 2) | 0; + $124 = __ZNK6vision5Image3getIfEEPKT_j($lap0, $y) | 0; + $127 = (__ZNK6vision5Image3getIfEEPKT_j($lap0, $24) | 0) + ($x << 2) | 0; + $129 = (__ZNK6vision5Image3getIfEEPKT_j($lap1, $y) | 0) + ($x << 2) | 0; + $133 = +($x | 0) * .5 + -.25; + $135 = +($y | 0) * .5 + -.25; + $136 = $133 + -.5; + if (!($136 >= 0.0)) { + $143 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24323) | 0, 23408) | 0, 34302) | 0, 428) | 0, 34309) | 0, 24364) | 0; + $148 = __ZNKSt3__18ios_base6getlocEv($143 + (HEAP32[(HEAP32[$143 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $148; + $149 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $153 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$149 >> 2] | 0) + 28 >> 2] & 63]($149, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($143, $153) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($143) | 0; + _abort(); + } + $154 = $135 + -.5; + if (!($154 >= 0.0)) { + $161 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24418) | 0, 23408) | 0, 34302) | 0, 429) | 0, 34309) | 0, 24459) | 0; + $166 = __ZNKSt3__18ios_base6getlocEv($161 + (HEAP32[(HEAP32[$161 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $166; + $167 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $171 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$167 >> 2] | 0) + 28 >> 2] & 63]($167, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($161, $171) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($161) | 0; + _abort(); + } + $172 = $133 + .5; + if (!($172 < +((HEAP32[$64 >> 2] | 0) >>> 0))) { + $181 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24513) | 0, 23408) | 0, 34302) | 0, 430) | 0, 34309) | 0, 24364) | 0; + $186 = __ZNKSt3__18ios_base6getlocEv($181 + (HEAP32[(HEAP32[$181 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $186; + $187 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $191 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$187 >> 2] | 0) + 28 >> 2] & 63]($187, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($181, $191) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($181) | 0; + _abort(); + } + $192 = $135 + .5; + if ($192 < +((HEAP32[$103 >> 2] | 0) >>> 0)) { + __ZN6vision26ComputeSubpixelDerivativesERfS0_S0_S0_S0_RKNS_5ImageEii($Dx, $Dy, $Dxx, $Dyy, $Dxy, $lap1, $x, $y); + $212 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap2, $133, $135); + $213 = +HEAPF32[$124 + ($x << 2) >> 2]; + $219 = $212 + ($213 - +HEAPF32[$129 >> 2] * 2.0); + $221 = +HEAPF32[$124 + ($x + -1 << 2) >> 2]; + $223 = $221 + +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap2, $172, $135); + $225 = +HEAPF32[$124 + ($2 << 2) >> 2]; + $229 = ($223 - ($225 + +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap2, $136, $135))) * .25; + $230 = +HEAPF32[$123 >> 2]; + $232 = $230 + +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap2, $133, $192); + $233 = +HEAPF32[$127 >> 2]; + $237 = ($232 - ($233 + +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap2, $133, $154))) * .25; + HEAP32[$H >> 2] = HEAP32[$Dxx >> 2]; + $239 = HEAP32[$Dxy >> 2] | 0; + HEAP32[$H + 4 >> 2] = $239; + HEAPF32[$H + 8 >> 2] = $229; + HEAP32[$H + 12 >> 2] = $239; + HEAP32[$H + 16 >> 2] = HEAP32[$Dyy >> 2]; + HEAPF32[$H + 20 >> 2] = $237; + HEAPF32[$H + 24 >> 2] = $229; + HEAPF32[$H + 28 >> 2] = $237; + HEAPF32[$H + 32 >> 2] = $219; + HEAPF32[$b >> 2] = -+HEAPF32[$Dx >> 2]; + HEAPF32[$b + 4 >> 2] = -+HEAPF32[$Dy >> 2]; + HEAPF32[$b + 8 >> 2] = -(($212 - $213) * .5); + STACKTOP = sp; + return; + } else { + $201 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24564) | 0, 23408) | 0, 34302) | 0, 431) | 0, 34309) | 0, 24459) | 0; + $206 = __ZNKSt3__18ios_base6getlocEv($201 + (HEAP32[(HEAP32[$201 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $206; + $207 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $211 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$207 >> 2] | 0) + 28 >> 2] & 63]($207, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($201, $211) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($201) | 0; + _abort(); + } + } + } + $33 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23767) | 0, 23408) | 0, 34302) | 0, 414) | 0, 34309) | 0, 23826) | 0; + $38 = __ZNKSt3__18ios_base6getlocEv($33 + (HEAP32[(HEAP32[$33 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $38; + $39 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $43 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$39 >> 2] | 0) + 28 >> 2] & 63]($39, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($33, $43) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($33) | 0; + _abort(); + } + } + $11 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23693) | 0, 23408) | 0, 34302) | 0, 413) | 0, 34309) | 0, 23751) | 0; + $16 = __ZNKSt3__18ios_base6getlocEv($11 + (HEAP32[(HEAP32[$11 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $21 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$17 >> 2] | 0) + 28 >> 2] & 63]($17, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($11, $21) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($11) | 0; + _abort(); +} + +function __ZN6vision21HoughSimilarityVoting4voteEffff($this, $x, $y, $angle, $scale) { + $this = $this | 0; + $x = +$x; + $y = +$y; + $angle = +$angle; + $scale = +$scale; + var $$0 = 0, $0 = 0, $101 = 0, $102 = 0, $106 = 0, $11 = 0.0, $113 = 0, $118 = 0, $119 = 0, $123 = 0, $13 = 0.0, $130 = 0, $135 = 0, $136 = 0, $140 = 0, $147 = 0, $152 = 0, $153 = 0, $157 = 0, $158 = 0, $159 = 0, $160 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0.0, $173 = 0, $177 = 0, $179 = 0, $181 = 0, $183 = 0, $188 = 0, $193 = 0, $198 = 0, $2 = 0.0, $20 = 0.0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $45 = 0, $5 = 0.0, $50 = 0, $51 = 0, $55 = 0, $62 = 0, $67 = 0, $68 = 0, $72 = 0, $79 = 0, $8 = 0.0, $84 = 0, $85 = 0, $89 = 0, $96 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; + $0 = sp; + $2 = +HEAPF32[$this + 20 >> 2]; + if ($2 > $x) $$0 = 0; else { + $5 = +HEAPF32[$this + 24 >> 2]; + if (!($5 <= $x)) { + $8 = +HEAPF32[$this + 28 >> 2]; + if ($8 > $y) $$0 = 0; else { + $11 = +HEAPF32[$this + 32 >> 2]; + if (!($11 <= $y)) { + $13 = $angle; + if ($13 <= -3.141592653589793 | $13 > 3.141592653589793) $$0 = 0; else { + $17 = +HEAPF32[$this + 36 >> 2]; + if ($17 > $scale) $$0 = 0; else { + $20 = +HEAPF32[$this + 40 >> 2]; + if (!($20 <= $scale)) { + if (!($2 <= $x)) { + $28 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31494) | 0, 32052) | 0, 34302) | 0, 360) | 0, 34309) | 0, 31528) | 0; + $33 = __ZNKSt3__18ios_base6getlocEv($28 + (HEAP32[(HEAP32[$28 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $38 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$34 >> 2] | 0) + 28 >> 2] & 63]($34, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($28, $38) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($28) | 0; + _abort(); + } + if (!($5 > $x)) { + $45 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31543) | 0, 32052) | 0, 34302) | 0, 361) | 0, 34309) | 0, 31528) | 0; + $50 = __ZNKSt3__18ios_base6getlocEv($45 + (HEAP32[(HEAP32[$45 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $50; + $51 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $55 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$51 >> 2] | 0) + 28 >> 2] & 63]($51, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($45, $55) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($45) | 0; + _abort(); + } + if (!($8 <= $y)) { + $62 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31576) | 0, 32052) | 0, 34302) | 0, 362) | 0, 34309) | 0, 31610) | 0; + $67 = __ZNKSt3__18ios_base6getlocEv($62 + (HEAP32[(HEAP32[$62 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $67; + $68 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $72 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$68 >> 2] | 0) + 28 >> 2] & 63]($68, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($62, $72) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($62) | 0; + _abort(); + } + if (!($11 > $y)) { + $79 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31625) | 0, 32052) | 0, 34302) | 0, 363) | 0, 34309) | 0, 31610) | 0; + $84 = __ZNKSt3__18ios_base6getlocEv($79 + (HEAP32[(HEAP32[$79 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $84; + $85 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $89 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$85 >> 2] | 0) + 28 >> 2] & 63]($85, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($79, $89) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($79) | 0; + _abort(); + } + if (!($13 > -3.141592653589793)) { + $96 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31658) | 0, 32052) | 0, 34302) | 0, 364) | 0, 34309) | 0, 31693) | 0; + $101 = __ZNKSt3__18ios_base6getlocEv($96 + (HEAP32[(HEAP32[$96 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $101; + $102 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $106 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$102 >> 2] | 0) + 28 >> 2] & 63]($102, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($96, $106) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($96) | 0; + _abort(); + } + if (!($13 <= 3.141592653589793)) { + $113 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31712) | 0, 32052) | 0, 34302) | 0, 365) | 0, 34309) | 0, 31693) | 0; + $118 = __ZNKSt3__18ios_base6getlocEv($113 + (HEAP32[(HEAP32[$113 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $118; + $119 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $123 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$119 >> 2] | 0) + 28 >> 2] & 63]($119, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($113, $123) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($113) | 0; + _abort(); + } + if (!($17 <= $scale)) { + $130 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31747) | 0, 32052) | 0, 34302) | 0, 366) | 0, 34309) | 0, 31789) | 0; + $135 = __ZNKSt3__18ios_base6getlocEv($130 + (HEAP32[(HEAP32[$130 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $135; + $136 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $140 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$136 >> 2] | 0) + 28 >> 2] & 63]($136, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($130, $140) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($130) | 0; + _abort(); + } + if (!($20 > $scale)) { + $147 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31808) | 0, 32052) | 0, 34302) | 0, 367) | 0, 34309) | 0, 31789) | 0; + $152 = __ZNKSt3__18ios_base6getlocEv($147 + (HEAP32[(HEAP32[$147 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $152; + $153 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $157 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$153 >> 2] | 0) + 28 >> 2] & 63]($153, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($147, $157) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($147) | 0; + _abort(); + } + $158 = $this + 68 | 0; + $159 = $this + 72 | 0; + $160 = $this + 76 | 0; + $161 = $this + 80 | 0; + __ZNK6vision21HoughSimilarityVoting12mapVoteToBinERfS1_S1_S1_ffff($this, $158, $159, $160, $161, $x, $y, $angle, $scale); + $165 = ~~+Math_floor(+(+HEAPF32[$158 >> 2] + -.5)); + $169 = ~~+Math_floor(+(+HEAPF32[$159 >> 2] + -.5)); + $173 = ~~+Math_floor(+(+HEAPF32[$160 >> 2] + -.5)); + $177 = ~~+Math_floor(+(+HEAPF32[$161 >> 2] + -.5)); + $179 = HEAP32[$this + 60 >> 2] | 0; + $181 = ($179 + $173 | 0) % ($179 | 0) | 0; + if (($165 | 0) < 0) $$0 = 0; else { + $183 = $165 + 1 | 0; + if (($169 | 0) < 0 ? 1 : ($183 | 0) >= (HEAP32[$this + 52 >> 2] | 0)) $$0 = 0; else { + $188 = $169 + 1 | 0; + if (($177 | 0) < 0 ? 1 : ($188 | 0) >= (HEAP32[$this + 56 >> 2] | 0)) $$0 = 0; else { + $193 = $177 + 1 | 0; + if (($193 | 0) < (HEAP32[$this + 64 >> 2] | 0)) { + $198 = ($181 + 1 | 0) % ($179 | 0) | 0; + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $169, $181, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $169, $181, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $188, $181, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $188, $198, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $188, $198, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $188, $181, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $169, $198, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $169, $198, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $183, $169, $181, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $188, $181, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $188, $198, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $188, $198, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $188, $181, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $169, $198, $177) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $169, $198, $193) | 0, 1); + __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $165, $169, $181, $193) | 0, 1); + $$0 = 1; + } else $$0 = 0; + } + } + } + } else $$0 = 0; + } + } + } else $$0 = 0; } - } + } else $$0 = 0; } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision21OrientationAssignment7computeEPfRiiifff($this, $angles, $num_angles, $octave, $scale, $x, $y, $sigma) { + $this = $this | 0; + $angles = $angles | 0; + $num_angles = $num_angles | 0; + $octave = $octave | 0; + $scale = $scale | 0; + $x = +$x; + $y = +$y; + $sigma = +$sigma; + var $$lcssa35 = 0, $$lcssa37 = 0.0, $$lcssa38 = 0.0, $$lcssa39 = 0, $$lcssa40 = 0, $$lcssa41 = 0.0, $$lcssa42 = 0.0, $$lcssa43 = 0, $$lcssa44 = 0, $$lcssa45 = 0.0, $$lcssa46 = 0.0, $$lcssa47 = 0, $$lcssa48 = 0, $$ph16 = 0, $$pre$pre = 0, $0 = 0, $100 = 0, $102 = 0, $104 = 0, $106 = 0, $109 = 0, $113 = 0.0, $115 = 0.0, $118 = 0.0, $12 = 0, $121 = 0.0, $123 = 0.0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $131 = 0, $132 = 0, $134 = 0, $136 = 0, $137 = 0, $139 = 0, $140 = 0, $141 = 0, $147 = 0, $149 = 0, $150 = 0, $154 = 0.0, $155 = 0.0, $156 = 0, $158 = 0.0, $160 = 0.0, $162 = 0, $166 = 0.0, $167 = 0, $17 = 0, $181 = 0, $183 = 0, $184 = 0, $190 = 0.0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $201 = 0, $203 = 0.0, $209 = 0, $21 = 0, $214 = 0, $215 = 0, $219 = 0, $220 = 0.0, $222 = 0, $223 = 0, $224 = 0.0, $228 = 0, $23 = 0, $230 = 0.0, $234 = 0, $235 = 0.0, $238 = 0.0, $24 = 0, $243 = 0.0, $25 = 0, $250 = 0.0, $252 = 0.0, $258 = 0.0, $259 = 0, $34 = 0, $39 = 0, $40 = 0, $44 = 0, $51 = 0, $56 = 0, $57 = 0, $61 = 0, $62 = 0, $7 = 0, $71 = 0, $76 = 0, $77 = 0, $81 = 0, $90 = 0, $95 = 0, $96 = 0, $A = 0, $B = 0, $C = 0, $i$019 = 0, $i2$0$ph17 = 0, $i2$015 = 0, $iter$021 = 0, $max_height$0$lcssa = 0.0, $max_height$018 = 0.0, $max_height$1 = 0.0, $p0 = 0, $pm1 = 0, $pp1 = 0, $xp$023 = 0, $yp$027 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 40 | 0; + $p0 = sp + 32 | 0; + $pm1 = sp + 24 | 0; + $pp1 = sp + 16 | 0; + $A = sp + 8 | 0; + $B = sp + 4 | 0; + $C = sp; + if (!($x >= 0.0)) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26835) | 0, 26671) | 0, 34302) | 0, 119) | 0, 34309) | 0, 26865) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + $21 = (Math_imul(HEAP32[$this + 4 >> 2] | 0, $octave) | 0) + $scale | 0; + $23 = HEAP32[$this + 40 >> 2] | 0; + $24 = $23 + ($21 << 5) | 0; + $25 = $23 + ($21 << 5) + 4 | 0; + if (!(+((HEAP32[$25 >> 2] | 0) >>> 0) > $x)) { + $34 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26884) | 0, 26671) | 0, 34302) | 0, 120) | 0, 34309) | 0, 26964) | 0; + $39 = __ZNKSt3__18ios_base6getlocEv($34 + (HEAP32[(HEAP32[$34 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $39; + $40 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $44 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$40 >> 2] | 0) + 28 >> 2] & 63]($40, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($34, $44) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($34) | 0; + _abort(); + } + if (!($y >= 0.0)) { + $51 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27e3) | 0, 26671) | 0, 34302) | 0, 121) | 0, 34309) | 0, 27030) | 0; + $56 = __ZNKSt3__18ios_base6getlocEv($51 + (HEAP32[(HEAP32[$51 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $56; + $57 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $61 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$57 >> 2] | 0) + 28 >> 2] & 63]($57, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($51, $61) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($51) | 0; + _abort(); + } + $62 = $23 + ($21 << 5) + 8 | 0; + if (!(+((HEAP32[$62 >> 2] | 0) >>> 0) > $y)) { + $71 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27049) | 0, 26671) | 0, 34302) | 0, 122) | 0, 34309) | 0, 27130) | 0; + $76 = __ZNKSt3__18ios_base6getlocEv($71 + (HEAP32[(HEAP32[$71 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $76; + $77 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $81 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$77 >> 2] | 0) + 28 >> 2] & 63]($77, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($71, $81) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($71) | 0; + _abort(); + } + if ((HEAP32[$23 + ($21 << 5) + 16 >> 2] | 0) != 2) { + $90 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27167) | 0, 26671) | 0, 34302) | 0, 126) | 0, 34309) | 0, 27208) | 0; + $95 = __ZNKSt3__18ios_base6getlocEv($90 + (HEAP32[(HEAP32[$90 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $95; + $96 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $100 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$96 >> 2] | 0) + 28 >> 2] & 63]($96, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($90, $100) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($90) | 0; + _abort(); + } + HEAP32[$num_angles >> 2] = 0; + $102 = ~~($x + .5); + $104 = ~~($y + .5); + L16 : do if (($102 | 0) >= 0) { + $106 = HEAP32[$25 >> 2] | 0; + if (!(($104 | 0) < 0 | $102 >>> 0 >= $106 >>> 0)) { + $109 = HEAP32[$62 >> 2] | 0; + if ($104 >>> 0 < $109 >>> 0) { + $113 = +HEAPF32[$this + 12 >> 2] * $sigma; + $115 = $113 < 1.0 ? 1.0 : $113; + $118 = -1.0 / ($115 * $115 * 2.0); + $121 = +HEAPF32[$this + 16 >> 2] * $115; + $123 = +Math_ceil(+($121 * $121)); + $125 = ~~($121 + .5); + $126 = $102 - $125 | 0; + $127 = $125 + $102 | 0; + $128 = $104 - $125 | 0; + $129 = $125 + $104 | 0; + $131 = ($126 | 0) < 0 ? 0 : $126; + $132 = $106 + -1 | 0; + $134 = ($127 | 0) < ($132 | 0) ? $127 : $132; + $136 = ($128 | 0) < 0 ? 0 : $128; + $137 = $109 + -1 | 0; + $139 = ($129 | 0) < ($137 | 0) ? $129 : $137; + $140 = $this + 28 | 0; + $141 = HEAP32[$140 >> 2] | 0; + _memset($141 | 0, 0, (HEAP32[$this + 32 >> 2] | 0) - $141 | 0) | 0; + $147 = $this + 8 | 0; + if (($136 | 0) <= ($139 | 0)) { + $149 = ($131 | 0) > ($134 | 0); + $yp$027 = $136; + while (1) { + $154 = +($yp$027 | 0) - $y; + $155 = $154 * $154; + $156 = __ZNK6vision5Image3getIfEEPKT_j($24, $yp$027) | 0; + if (!$149) { + $xp$023 = $131; + while (1) { + $158 = +($xp$023 | 0) - $x; + $160 = $155 + $158 * $158; + if (!($160 > $123)) { + $162 = $xp$023 << 1; + $166 = +__ZN6vision8fastexp6IfEET_S1_($118 * $160); + $167 = HEAP32[$147 >> 2] | 0; + __ZN6vision25bilinear_histogram_updateEPfffi(HEAP32[$140 >> 2] | 0, +($167 | 0) * +HEAPF32[$156 + ($162 << 2) >> 2] * .159154943091895, $166 * +HEAPF32[$156 + (($162 | 1) << 2) >> 2], $167); + } + if (($xp$023 | 0) < ($134 | 0)) $xp$023 = $xp$023 + 1 | 0; else break; + } + } + if (($yp$027 | 0) < ($139 | 0)) $yp$027 = $yp$027 + 1 | 0; else break; + } + } + $150 = $this + 20 | 0; + if ((HEAP32[$150 >> 2] | 0) > 0) { + $iter$021 = 0; + do { + $184 = HEAP32[$140 >> 2] | 0; + __ZN6vision26SmoothOrientationHistogramIfEEvPT_PKS1_jS4_($184, $184, HEAP32[$147 >> 2] | 0, 4440); + $iter$021 = $iter$021 + 1 | 0; + } while (($iter$021 | 0) < (HEAP32[$150 >> 2] | 0)); + } + $181 = HEAP32[$147 >> 2] | 0; + if (($181 | 0) > 0) { + $183 = HEAP32[$140 >> 2] | 0; + $i$019 = 0; + $max_height$018 = 0.0; + while (1) { + $190 = +HEAPF32[$183 + ($i$019 << 2) >> 2]; + $max_height$1 = $190 > $max_height$018 ? $190 : $max_height$018; + $i$019 = $i$019 + 1 | 0; + if (($i$019 | 0) >= ($181 | 0)) { + $max_height$0$lcssa = $max_height$1; + break; + } else $max_height$018 = $max_height$1; + } + } else $max_height$0$lcssa = 0.0; + if (!($max_height$0$lcssa == 0.0)) { + if (!($max_height$0$lcssa > 0.0)) { + $209 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27239) | 0, 26671) | 0, 34302) | 0, 218) | 0, 34309) | 0, 27277) | 0; + $214 = __ZNKSt3__18ios_base6getlocEv($209 + (HEAP32[(HEAP32[$209 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $214; + $215 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $219 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$215 >> 2] | 0) + 28 >> 2] & 63]($215, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($209, $219) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($209) | 0; + _abort(); + } + $196 = $p0 + 4 | 0; + $197 = $pm1 + 4 | 0; + $198 = $pp1 + 4 | 0; + $199 = $this + 24 | 0; + if (($181 | 0) > 0) { + $$ph16 = $181; + $i2$0$ph17 = 0; + L45 : while (1) { + $201 = HEAP32[$140 >> 2] | 0; + $203 = $max_height$0$lcssa * +HEAPF32[$199 >> 2]; + $i2$015 = $i2$0$ph17; + while (1) { + $220 = +($i2$015 | 0); + $222 = HEAP32[$201 + ($i2$015 << 2) >> 2] | 0; + $223 = $i2$015 + -1 | 0; + $224 = +($223 | 0); + $228 = HEAP32[$201 + ((($$ph16 + $223 | 0) % ($$ph16 | 0) | 0) << 2) >> 2] | 0; + $i2$015 = $i2$015 + 1 | 0; + $230 = +($i2$015 | 0); + $234 = HEAP32[$201 + ((($$ph16 + $i2$015 | 0) % ($$ph16 | 0) | 0) << 2) >> 2] | 0; + $235 = (HEAP32[tempDoublePtr >> 2] = $222, +HEAPF32[tempDoublePtr >> 2]); + if ($235 > $203) { + $238 = (HEAP32[tempDoublePtr >> 2] = $234, +HEAPF32[tempDoublePtr >> 2]); + if ($235 > (HEAP32[tempDoublePtr >> 2] = $228, +HEAPF32[tempDoublePtr >> 2]) & $235 > $238) { + $$lcssa35 = $i2$015; + $$lcssa37 = $220; + $$lcssa39 = $222; + $$lcssa41 = $224; + $$lcssa43 = $228; + $$lcssa45 = $230; + $$lcssa47 = $234; + break; + } + } + if (($i2$015 | 0) >= ($$ph16 | 0)) { + $$lcssa38 = $220; + $$lcssa40 = $222; + $$lcssa42 = $224; + $$lcssa44 = $228; + $$lcssa46 = $230; + $$lcssa48 = $234; + break L45; + } + } + HEAPF32[$p0 >> 2] = $$lcssa37; + HEAP32[$196 >> 2] = $$lcssa39; + HEAPF32[$pm1 >> 2] = $$lcssa41; + HEAP32[$197 >> 2] = $$lcssa43; + HEAPF32[$pp1 >> 2] = $$lcssa45; + HEAP32[$198 >> 2] = $$lcssa47; + if (__ZN6vision16Quadratic3PointsIfEEbRT_S2_S2_PKS1_S4_S4_($A, $B, $C, $pm1, $p0, $pp1) | 0) { + $243 = +HEAPF32[$A >> 2]; + if ($243 == 0.0) $250 = $$lcssa37; else $250 = -+HEAPF32[$B >> 2] / ($243 * 2.0); + } else $250 = $$lcssa37; + $252 = +(HEAP32[$147 >> 2] | 0); + $258 = +_fmod(($250 + .5 + $252) / $252 * 6.283185307179586, 6.283185307179586); + $259 = HEAP32[$num_angles >> 2] | 0; + HEAPF32[$angles + ($259 << 2) >> 2] = $258; + HEAP32[$num_angles >> 2] = $259 + 1; + $$pre$pre = HEAP32[$147 >> 2] | 0; + if (($$lcssa35 | 0) < ($$pre$pre | 0)) { + $$ph16 = $$pre$pre; + $i2$0$ph17 = $$lcssa35; + } else break L16; + } + HEAPF32[$p0 >> 2] = $$lcssa38; + HEAP32[$196 >> 2] = $$lcssa40; + HEAPF32[$pm1 >> 2] = $$lcssa42; + HEAP32[$197 >> 2] = $$lcssa44; + HEAPF32[$pp1 >> 2] = $$lcssa46; + HEAP32[$198 >> 2] = $$lcssa48; + } + } + } + } + } while (0); + STACKTOP = sp; + return; +} + +function __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i21 = 0, $$0$i$i$i7 = 0, $$1 = 0, $$lcssa = 0, $$lcssa152 = 0, $$pre = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $118 = 0, $12 = 0, $121 = 0, $124 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $154 = 0, $157 = 0, $16 = 0, $164 = 0, $174 = 0, $176 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $193 = 0, $195 = 0, $2 = 0, $209 = 0, $211 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $225 = 0, $227 = 0, $23 = 0, $230 = 0, $231 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $38 = 0, $43 = 0, $44 = 0, $45 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $66 = 0, $76 = 0, $82 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__v$i$i20 = 0, $args = 0, $k$0121 = 0, $k1$0124 = 0, $k2$0123 = 0, $t$0$lcssa = 0, $t$0126 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i20 = sp + 64 | 0; + $args = sp + 52 | 0; + $0 = sp + 40 | 0; + $1 = sp + 16 | 0; + $2 = sp; + L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 73) { + $9 = $db + 61 | 0; + $$pre = $db + 36 | 0; + if (HEAP8[$9 >> 0] | 0) { + $12 = HEAP32[$$pre >> 2] | 0; + $14 = HEAP32[$12 + -16 >> 2] | 0; + $15 = $12 + -12 | 0; + $16 = HEAP32[$15 >> 2] | 0; + if (($16 | 0) != ($14 | 0)) { + $19 = $16; + do { + $18 = $19 + -16 | 0; + HEAP32[$15 >> 2] = $18; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18); + $19 = HEAP32[$15 >> 2] | 0; + } while (($19 | 0) != ($14 | 0)); + } + } + $22 = $first + 1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($args, 47945, 1); + $23 = $db + 4 | 0; + $24 = $db + 12 | 0; + $25 = $__v$i$i20 + 8 | 0; + $26 = $__v$i$i20 + 8 | 0; + $27 = $args + 4 | 0; + $28 = $0 + 8 | 0; + $29 = $0 + 1 | 0; + $30 = $0 + 4 | 0; + $31 = $db + 32 | 0; + $32 = $db + 40 | 0; + $33 = $db + 44 | 0; + $34 = $__v$i$i20 + 8 | 0; + L9 : do if ((HEAP8[$22 >> 0] | 0) == 69) $t$0$lcssa = $22; else { + $t$0126 = $22; + L10 : while (1) { + do if (HEAP8[$9 >> 0] | 0) { + $43 = HEAP32[$24 >> 2] | 0; + $44 = HEAP32[$$pre >> 2] | 0; + $45 = HEAP32[$32 >> 2] | 0; + if ($44 >>> 0 < $45 >>> 0) { + HEAP32[$44 >> 2] = 0; + HEAP32[$44 + 4 >> 2] = 0; + HEAP32[$44 + 8 >> 2] = 0; + HEAP32[$44 + 12 >> 2] = $43; + HEAP32[$$pre >> 2] = (HEAP32[$$pre >> 2] | 0) + 16; + break; + } + $54 = HEAP32[$31 >> 2] | 0; + $55 = $44 - $54 | 0; + $56 = $55 >> 4; + $57 = $56 + 1 | 0; + if (($55 | 0) < -16) { + label = 12; + break L10; + } + $60 = $45 - $54 | 0; + if ($60 >> 4 >>> 0 < 1073741823) { + $63 = $60 >> 3; + $$0$i$i$i = $63 >>> 0 < $57 >>> 0 ? $57 : $63; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i20, $$0$i$i$i, $56, $33); + $66 = HEAP32[$34 >> 2] | 0; + HEAP32[$66 >> 2] = 0; + HEAP32[$66 + 4 >> 2] = 0; + HEAP32[$66 + 8 >> 2] = 0; + HEAP32[$66 + 12 >> 2] = $43; + HEAP32[$34 >> 2] = $66 + 16; + __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($31, $__v$i$i20); + __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i20); + } while (0); + $76 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $38 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0126, $last, $db) | 0; + $82 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (HEAP8[$9 >> 0] | 0) { + $85 = HEAP32[$$pre >> 2] | 0; + $86 = $85 + -16 | 0; + $88 = $85; + do { + $87 = $88 + -16 | 0; + HEAP32[$$pre >> 2] = $87; + __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($87); + $88 = HEAP32[$$pre >> 2] | 0; + } while (($88 | 0) != ($86 | 0)); + } + if (($38 | 0) == ($t$0126 | 0) | ($38 | 0) == ($last | 0)) { + label = 56; + break; + } + if (HEAP8[$9 >> 0] | 0) { + $95 = HEAP32[$$pre >> 2] | 0; + $96 = $95 + -16 | 0; + $98 = HEAP32[$24 >> 2] | 0; + $99 = $95 + -12 | 0; + $100 = HEAP32[$99 >> 2] | 0; + $102 = HEAP32[$95 + -8 >> 2] | 0; + if ($100 >>> 0 < $102 >>> 0) { + HEAP32[$100 >> 2] = 0; + HEAP32[$100 + 4 >> 2] = 0; + HEAP32[$100 + 8 >> 2] = 0; + HEAP32[$100 + 12 >> 2] = $98; + HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 16; + } else { + $112 = HEAP32[$96 >> 2] | 0; + $113 = $100 - $112 | 0; + $114 = $113 >> 4; + $115 = $114 + 1 | 0; + if (($113 | 0) < -16) { + $$lcssa = $96; + label = 25; + break; + } + $118 = $102 - $112 | 0; + if ($118 >> 4 >>> 0 < 1073741823) { + $121 = $118 >> 3; + $$0$i$i$i7 = $121 >>> 0 < $115 >>> 0 ? $115 : $121; + } else $$0$i$i$i7 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i20, $$0$i$i$i7, $114, $95 + -4 | 0); + $124 = HEAP32[$25 >> 2] | 0; + HEAP32[$124 >> 2] = 0; + HEAP32[$124 + 4 >> 2] = 0; + HEAP32[$124 + 8 >> 2] = 0; + HEAP32[$124 + 12 >> 2] = $98; + HEAP32[$25 >> 2] = $124 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($96, $__v$i$i20); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i20); + } + if ($76 >>> 0 < $82 >>> 0) { + $k$0121 = $76; + do { + $132 = HEAP32[(HEAP32[$$pre >> 2] | 0) + -12 >> 2] | 0; + $133 = $132 + -16 | 0; + $134 = HEAP32[$db >> 2] | 0; + $135 = $134 + ($k$0121 * 24 | 0) | 0; + $136 = $132 + -12 | 0; + $137 = HEAP32[$136 >> 2] | 0; + if (($137 | 0) == (HEAP32[$132 + -8 >> 2] | 0)) { + $149 = $137 - (HEAP32[$133 >> 2] | 0) | 0; + $150 = ($149 | 0) / 24 | 0; + $151 = $150 + 1 | 0; + if (($149 | 0) < -24) { + $$lcssa152 = $133; + label = 33; + break L10; + } + if ($150 >>> 0 < 1073741823) { + $154 = $150 << 1; + $$0$i$i$i10 = $154 >>> 0 < $151 >>> 0 ? $151 : $154; + } else $$0$i$i$i10 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i10, $150, $132 + -4 | 0); + $157 = HEAP32[$26 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157, $135); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0); + HEAP32[$26 >> 2] = $157 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($133, $__v$i$i20); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137, $135); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0); + HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 24; + } + $k$0121 = $k$0121 + 1 | 0; + } while ($k$0121 >>> 0 < $82 >>> 0); + } + } + if ($76 >>> 0 < $82 >>> 0) { + $k2$0123 = $76; + do { + $164 = HEAP8[$args >> 0] | 0; + if ((($164 & 1) == 0 ? ($164 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 47885) | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k2$0123 * 24 | 0) | 0); + $174 = HEAP8[$0 >> 0] | 0; + $176 = ($174 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($args, $176 ? $29 : HEAP32[$28 >> 2] | 0, $176 ? ($174 & 255) >>> 1 : HEAP32[$30 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + $k2$0123 = $k2$0123 + 1 | 0; + } while ($k2$0123 >>> 0 < $82 >>> 0); + } + if (($82 | 0) != ($76 | 0)) { + $k1$0124 = $82; + do { + $185 = HEAP32[$23 >> 2] | 0; + $186 = $185 + -24 | 0; + $188 = $185; + do { + $187 = $188 + -24 | 0; + HEAP32[$23 >> 2] = $187; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187); + $188 = HEAP32[$23 >> 2] | 0; + } while (($188 | 0) != ($186 | 0)); + $k1$0124 = $k1$0124 + -1 | 0; + } while (($k1$0124 | 0) != ($76 | 0)); + } + if ((HEAP8[$38 >> 0] | 0) == 69) { + $t$0$lcssa = $38; + break L9; + } else $t$0126 = $38; + } + if ((label | 0) == 12) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($31); else if ((label | 0) == 25) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa); else if ((label | 0) == 33) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa152); else if ((label | 0) == 56) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$1 = $first; + break L1; } + } while (0); + $192 = $t$0$lcssa + 1 | 0; + $193 = HEAP8[$args >> 0] | 0; + $195 = ($193 & 1) == 0; + if ((HEAP8[($195 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0) + (($195 ? ($193 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) + -1) >> 0] | 0) == 62) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 48930) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 47947) | 0; + HEAP32[$2 >> 2] = HEAP32[$args >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$args + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$args + 8 >> 2]; + HEAP32[$args >> 2] = 0; + HEAP32[$args + 4 >> 2] = 0; + HEAP32[$args + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + $209 = HEAP32[$23 >> 2] | 0; + $211 = HEAP32[$db + 8 >> 2] | 0; + if ($209 >>> 0 < $211 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($209, $1); + HEAP32[$23 >> 2] = (HEAP32[$23 >> 2] | 0) + 24; + } else { + $218 = HEAP32[$db >> 2] | 0; + $219 = $209 - $218 | 0; + $220 = ($219 | 0) / 24 | 0; + $221 = $220 + 1 | 0; + if (($219 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $225 = ($211 - $218 | 0) / 24 | 0; + if ($225 >>> 0 < 1073741823) { + $227 = $225 << 1; + $$0$i$i$i21 = $227 >>> 0 < $221 >>> 0 ? $221 : $227; + } else $$0$i$i$i21 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i21, $220, $db + 12 | 0); + $230 = $__v$i$i20 + 8 | 0; + $231 = HEAP32[$230 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($231, $1); + HEAP32[$230 >> 2] = $231 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i20); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20); } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$1 = $192; + } else $$1 = $first; else $$1 = $first; while (0); + STACKTOP = sp; + return $$1 | 0; +} + +function _decode_mcu($cinfo, $MCU_data) { + $cinfo = $cinfo | 0; + $MCU_data = $MCU_data | 0; + var $$0 = 0, $$pn = 0, $1 = 0, $100 = 0, $102 = 0, $110 = 0, $111 = 0, $115 = 0, $117 = 0, $12 = 0, $123 = 0, $127 = 0, $128 = 0, $13 = 0, $130 = 0, $136 = 0, $140 = 0, $148 = 0, $159 = 0, $160 = 0, $164 = 0, $166 = 0, $172 = 0, $176 = 0, $177 = 0, $192 = 0, $195 = 0, $2 = 0, $20 = 0, $36 = 0, $37 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $53 = 0, $55 = 0, $57 = 0, $61 = 0, $62 = 0, $66 = 0, $68 = 0, $74 = 0, $8 = 0, $84 = 0, $88 = 0, $bits_left$0$lcssa = 0, $bits_left$048 = 0, $bits_left$1 = 0, $bits_left$10 = 0, $bits_left$11 = 0, $bits_left$1246 = 0, $bits_left$13 = 0, $bits_left$14 = 0, $bits_left$15 = 0, $bits_left$16 = 0, $bits_left$17 = 0, $bits_left$18 = 0, $bits_left$2 = 0, $bits_left$3 = 0, $bits_left$4 = 0, $bits_left$5 = 0, $bits_left$643 = 0, $bits_left$7 = 0, $bits_left$8 = 0, $bits_left$9 = 0, $blkn$050 = 0, $br_state = 0, $ci$0$i52 = 0, $get_buffer$0$lcssa = 0, $get_buffer$049 = 0, $get_buffer$1 = 0, $get_buffer$10 = 0, $get_buffer$11 = 0, $get_buffer$1247 = 0, $get_buffer$13 = 0, $get_buffer$14 = 0, $get_buffer$15 = 0, $get_buffer$16 = 0, $get_buffer$17 = 0, $get_buffer$18 = 0, $get_buffer$2 = 0, $get_buffer$3 = 0, $get_buffer$4 = 0, $get_buffer$5 = 0, $get_buffer$644 = 0, $get_buffer$7 = 0, $get_buffer$8 = 0, $get_buffer$9 = 0, $k$042 = 0, $k$1 = 0, $k$245 = 0, $nb$0 = 0, $nb1$0 = 0, $nb3$0 = 0, $s$0 = 0, $s$1 = 0, $s$2 = 0, $s$3 = 0, $state = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $br_state = sp + 16 | 0; + $state = sp; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $2 = $cinfo + 276 | 0; + if (!(HEAP32[$2 >> 2] | 0)) label = 8; else { + $5 = $1 + 36 | 0; + if (!(HEAP32[$5 >> 2] | 0)) { + $8 = $1 + 16 | 0; + $12 = HEAP32[$cinfo + 440 >> 2] | 0; + $13 = $12 + 24 | 0; + HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + ((HEAP32[$8 >> 2] | 0) / 8 | 0); + HEAP32[$8 >> 2] = 0; + if (!(FUNCTION_TABLE_ii[HEAP32[$12 + 8 >> 2] & 127]($cinfo) | 0)) $$0 = 0; else { + $20 = $cinfo + 328 | 0; + if ((HEAP32[$20 >> 2] | 0) > 0) { + $ci$0$i52 = 0; + do { + HEAP32[$1 + 20 + ($ci$0$i52 << 2) >> 2] = 0; + $ci$0$i52 = $ci$0$i52 + 1 | 0; + } while (($ci$0$i52 | 0) < (HEAP32[$20 >> 2] | 0)); + } + HEAP32[$5 >> 2] = HEAP32[$2 >> 2]; + if (!(HEAP32[$cinfo + 416 >> 2] | 0)) { + HEAP32[$1 + 8 >> 2] = 0; + label = 8; + } else label = 8; + } + } else label = 8; } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 3) + 8) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + L10 : do if ((label | 0) == 8) { + if (!(HEAP32[$1 + 8 >> 2] | 0)) { + HEAP32[$br_state + 16 >> 2] = $cinfo; + $36 = $cinfo + 24 | 0; + $37 = HEAP32[$36 >> 2] | 0; + HEAP32[$br_state >> 2] = HEAP32[$37 >> 2]; + $41 = $br_state + 4 | 0; + HEAP32[$41 >> 2] = HEAP32[$37 + 4 >> 2]; + $42 = $1 + 12 | 0; + $43 = HEAP32[$42 >> 2] | 0; + $44 = $1 + 16 | 0; + $45 = HEAP32[$44 >> 2] | 0; + $46 = $1 + 20 | 0; + HEAP32[$state >> 2] = HEAP32[$46 >> 2]; + HEAP32[$state + 4 >> 2] = HEAP32[$46 + 4 >> 2]; + HEAP32[$state + 8 >> 2] = HEAP32[$46 + 8 >> 2]; + HEAP32[$state + 12 >> 2] = HEAP32[$46 + 12 >> 2]; + $47 = $cinfo + 356 | 0; + $48 = $br_state + 8 | 0; + $49 = $br_state + 12 | 0; + if ((HEAP32[$47 >> 2] | 0) > 0) { + $bits_left$048 = $45; + $blkn$050 = 0; + $get_buffer$049 = $43; while (1) { - do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; + $53 = HEAP32[$MCU_data + ($blkn$050 << 2) >> 2] | 0; + $55 = HEAP32[$1 + 72 + ($blkn$050 << 2) >> 2] | 0; + $57 = HEAP32[$1 + 112 + ($blkn$050 << 2) >> 2] | 0; + if (($bits_left$048 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$049, $bits_left$048, 0) | 0)) { + $$0 = 0; + break L10; + } + $61 = HEAP32[$48 >> 2] | 0; + $62 = HEAP32[$49 >> 2] | 0; + if (($62 | 0) < 8) { + $bits_left$2 = $62; + $get_buffer$2 = $61; + $nb$0 = 1; + label = 15; + } else { + $bits_left$1 = $62; + $get_buffer$1 = $61; + label = 13; + } } else { - HEAP8[$dpnt$167 >> 0] = -1; - $45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($45 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $45; - $48 = ($45 << 16 >> 16) * 7 | 0; - $50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1; - $54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265; - $58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0; - HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; + $bits_left$1 = $bits_left$048; + $get_buffer$1 = $get_buffer$049; + label = 13; + } + if ((label | 0) == 13) { + label = 0; + $66 = $get_buffer$1 >> $bits_left$1 + -8 & 255; + $68 = HEAP32[$55 + 144 + ($66 << 2) >> 2] | 0; + if (!$68) { + $bits_left$2 = $bits_left$1; + $get_buffer$2 = $get_buffer$1; + $nb$0 = 9; + label = 15; + } else { + $bits_left$3 = $bits_left$1 - $68 | 0; + $get_buffer$3 = $get_buffer$1; + $s$0 = HEAPU8[$55 + 1168 + $66 >> 0] | 0; } - $64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $69 = $68 << 16 >> 16; - $70 = $68 << 16 >> 16 > 0; - if ($64 << 16 >> 16 <= 0) { - if ($70) { - HEAP16[$pnt2$368 >> 1] = $68; - $170 = $69 * 7 | 0; - $172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1; - $176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265; - $180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0; - HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076; - $184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0; - if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; + } + if ((label | 0) == 15) { + label = 0; + $74 = _jpeg_huff_decode($br_state, $get_buffer$2, $bits_left$2, $55, $nb$0) | 0; + if (($74 | 0) < 0) { + $$0 = 0; + break L10; + } + $bits_left$3 = HEAP32[$49 >> 2] | 0; + $get_buffer$3 = HEAP32[$48 >> 2] | 0; + $s$0 = $74; + } + if (!$s$0) { + $bits_left$5 = $bits_left$3; + $get_buffer$5 = $get_buffer$3; + $s$1 = 0; + } else { + if (($bits_left$3 | 0) < ($s$0 | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3, $bits_left$3, $s$0) | 0)) { + $$0 = 0; + break L10; } - $190 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($190 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $190; - $193 = ($190 << 16 >> 16) * 7 | 0; - $195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1; - $199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265; - $203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0; - HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076; - $207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0; - if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; + $bits_left$4 = HEAP32[$49 >> 2] | 0; + $get_buffer$4 = HEAP32[$48 >> 2] | 0; + } else { + $bits_left$4 = $bits_left$3; + $get_buffer$4 = $get_buffer$3; + } + $84 = $bits_left$4 - $s$0 | 0; + $88 = $get_buffer$4 >> $84 & (1 << $s$0) + -1; + if (($88 | 0) < (HEAP32[5692 + ($s$0 << 2) >> 2] | 0)) { + $bits_left$5 = $84; + $get_buffer$5 = $get_buffer$4; + $s$1 = (HEAP32[5756 + ($s$0 << 2) >> 2] | 0) + $88 | 0; + } else { + $bits_left$5 = $84; + $get_buffer$5 = $get_buffer$4; + $s$1 = $88; + } + } + if (HEAP32[$1 + 152 + ($blkn$050 << 2) >> 2] | 0) { + $100 = $state + (HEAP32[$cinfo + 360 + ($blkn$050 << 2) >> 2] << 2) | 0; + $102 = (HEAP32[$100 >> 2] | 0) + $s$1 | 0; + HEAP32[$100 >> 2] = $102; + HEAP16[$53 >> 1] = $102; + } + L38 : do if (!(HEAP32[$1 + 192 + ($blkn$050 << 2) >> 2] | 0)) { + $bits_left$1246 = $bits_left$5; + $get_buffer$1247 = $get_buffer$5; + $k$245 = 1; + while (1) { + if (($bits_left$1246 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$1247, $bits_left$1246, 0) | 0)) { + $$0 = 0; + break L10; + } + $159 = HEAP32[$48 >> 2] | 0; + $160 = HEAP32[$49 >> 2] | 0; + if (($160 | 0) < 8) { + $bits_left$14 = $160; + $get_buffer$14 = $159; + $nb3$0 = 1; + label = 48; + } else { + $bits_left$13 = $160; + $get_buffer$13 = $159; + label = 46; } - HEAP32[$207 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; } else { - $210 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $210; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16; - $215 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $210; - break; + $bits_left$13 = $bits_left$1246; + $get_buffer$13 = $get_buffer$1247; + label = 46; + } + if ((label | 0) == 46) { + label = 0; + $164 = $get_buffer$13 >> $bits_left$13 + -8 & 255; + $166 = HEAP32[$57 + 144 + ($164 << 2) >> 2] | 0; + if (!$166) { + $bits_left$14 = $bits_left$13; + $get_buffer$14 = $get_buffer$13; + $nb3$0 = 9; + label = 48; + } else { + $bits_left$15 = $bits_left$13 - $166 | 0; + $get_buffer$15 = $get_buffer$13; + $s$3 = HEAPU8[$57 + 1168 + $164 >> 0] | 0; + } } - } - if ($70) { - $73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - $76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0; - if (($73 | 0) > ($76 | 0)) { - HEAP16[$pnt2$368 >> 1] = $76; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $93 = $76; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $93 = $76; + if ((label | 0) == 48) { + label = 0; + $172 = _jpeg_huff_decode($br_state, $get_buffer$14, $bits_left$14, $57, $nb3$0) | 0; + if (($172 | 0) < 0) { + $$0 = 0; + break L10; + } + $bits_left$15 = HEAP32[$49 >> 2] | 0; + $get_buffer$15 = HEAP32[$48 >> 2] | 0; + $s$3 = $172; + } + $176 = $s$3 >> 4; + $177 = $s$3 & 15; + if (!$177) if (($176 | 0) == 15) { + $$pn = 15; + $bits_left$17 = $bits_left$15; + $get_buffer$17 = $get_buffer$15; } else { - HEAP16[$pnt2$368 >> 1] = $73; - if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $93 = $73; - break; - } else $wk$154 = $wk$154 + 4 | 0; + $bits_left$18 = $bits_left$15; + $get_buffer$18 = $get_buffer$15; + break L38; + } else { + if (($bits_left$15 | 0) < ($177 | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$15, $bits_left$15, $177) | 0)) { + $$0 = 0; + break L10; } - } else $93 = $73; + $bits_left$16 = HEAP32[$49 >> 2] | 0; + $get_buffer$16 = HEAP32[$48 >> 2] | 0; + } else { + $bits_left$16 = $bits_left$15; + $get_buffer$16 = $get_buffer$15; + } + $$pn = $176; + $bits_left$17 = $bits_left$16 - $177 | 0; + $get_buffer$17 = $get_buffer$16; + } + $k$245 = $k$245 + 1 + $$pn | 0; + if (($k$245 | 0) >= 64) { + $bits_left$18 = $bits_left$17; + $get_buffer$18 = $get_buffer$17; + break; + } else { + $bits_left$1246 = $bits_left$17; + $get_buffer$1247 = $get_buffer$17; } - $95 = ($93 << 16 >> 16) * 7 | 0; - $97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1; - $101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265; - $105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0; - HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $111 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($111 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $64; - $151 = $65 * 7 | 0; - $153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1; - $157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265; - $161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076; - $165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0; - if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; } - $116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - $119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($116 | 0) > ($119 | 0)) { - HEAP16[$pnt2$368 >> 1] = $119; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $136 = $119; - break; - } else $wk$250 = $wk$250 + 4 | 0; + } else { + $bits_left$643 = $bits_left$5; + $get_buffer$644 = $get_buffer$5; + $k$042 = 1; + while (1) { + if (($bits_left$643 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$644, $bits_left$643, 0) | 0)) { + $$0 = 0; + break L10; } - } else $136 = $119; - } else { - HEAP16[$pnt2$368 >> 1] = $116; - if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $136 = $116; - break; - } else $wk$347 = $wk$347 + 4 | 0; + $110 = HEAP32[$48 >> 2] | 0; + $111 = HEAP32[$49 >> 2] | 0; + if (($111 | 0) < 8) { + $bits_left$8 = $111; + $get_buffer$8 = $110; + $nb1$0 = 1; + label = 31; + } else { + $bits_left$7 = $111; + $get_buffer$7 = $110; + label = 29; } - } else $136 = $116; + } else { + $bits_left$7 = $bits_left$643; + $get_buffer$7 = $get_buffer$644; + label = 29; + } + if ((label | 0) == 29) { + label = 0; + $115 = $get_buffer$7 >> $bits_left$7 + -8 & 255; + $117 = HEAP32[$57 + 144 + ($115 << 2) >> 2] | 0; + if (!$117) { + $bits_left$8 = $bits_left$7; + $get_buffer$8 = $get_buffer$7; + $nb1$0 = 9; + label = 31; + } else { + $bits_left$9 = $bits_left$7 - $117 | 0; + $get_buffer$9 = $get_buffer$7; + $s$2 = HEAPU8[$57 + 1168 + $115 >> 0] | 0; + } + } + if ((label | 0) == 31) { + label = 0; + $123 = _jpeg_huff_decode($br_state, $get_buffer$8, $bits_left$8, $57, $nb1$0) | 0; + if (($123 | 0) < 0) { + $$0 = 0; + break L10; + } + $bits_left$9 = HEAP32[$49 >> 2] | 0; + $get_buffer$9 = HEAP32[$48 >> 2] | 0; + $s$2 = $123; + } + $127 = $s$2 >> 4; + $128 = $s$2 & 15; + if (!$128) { + if (($127 | 0) != 15) { + $bits_left$18 = $bits_left$9; + $get_buffer$18 = $get_buffer$9; + break L38; + } + $bits_left$11 = $bits_left$9; + $get_buffer$11 = $get_buffer$9; + $k$1 = $k$042 + 15 | 0; + } else { + $130 = $127 + $k$042 | 0; + if (($bits_left$9 | 0) < ($128 | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$9, $bits_left$9, $128) | 0)) { + $$0 = 0; + break L10; + } + $bits_left$10 = HEAP32[$49 >> 2] | 0; + $get_buffer$10 = HEAP32[$48 >> 2] | 0; + } else { + $bits_left$10 = $bits_left$9; + $get_buffer$10 = $get_buffer$9; + } + $136 = $bits_left$10 - $128 | 0; + $140 = $get_buffer$10 >> $136 & (1 << $128) + -1; + if (($140 | 0) < (HEAP32[5692 + ($128 << 2) >> 2] | 0)) $148 = (HEAP32[5756 + ($128 << 2) >> 2] | 0) + $140 | 0; else $148 = $140; + HEAP16[$53 + (HEAP32[5344 + ($130 << 2) >> 2] << 1) >> 1] = $148; + $bits_left$11 = $136; + $get_buffer$11 = $get_buffer$10; + $k$1 = $130; + } + $k$042 = $k$1 + 1 | 0; + if (($k$042 | 0) >= 64) { + $bits_left$18 = $bits_left$11; + $get_buffer$18 = $get_buffer$11; + break; + } else { + $bits_left$643 = $bits_left$11; + $get_buffer$644 = $get_buffer$11; + } } - $138 = ($136 << 16 >> 16) * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; } while (0); - $i$265 = $i$265 + 1 | 0; - $230 = $pnt$169 + 8 | 0; - $231 = $pnt2$368 + 2 | 0; - $232 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $232; - $pnt$1$lcssa = $230; - $pnt2$3$lcssa = $231; - $wk_max$1$lcssa = $wk_max$2; + $blkn$050 = $blkn$050 + 1 | 0; + if (($blkn$050 | 0) >= (HEAP32[$47 >> 2] | 0)) { + $bits_left$0$lcssa = $bits_left$18; + $get_buffer$0$lcssa = $get_buffer$18; break; } else { - $dpnt$167 = $232; - $pnt$169 = $230; - $pnt2$368 = $231; - $wk_max$160 = $wk_max$2; + $bits_left$048 = $bits_left$18; + $get_buffer$049 = $get_buffer$18; } } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; - } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + $bits_left$0$lcssa = $45; + $get_buffer$0$lcssa = $43; + } + $192 = HEAP32[$36 >> 2] | 0; + HEAP32[$192 >> 2] = HEAP32[$br_state >> 2]; + HEAP32[$192 + 4 >> 2] = HEAP32[$41 >> 2]; + HEAP32[$42 >> 2] = $get_buffer$0$lcssa; + HEAP32[$44 >> 2] = $bits_left$0$lcssa; + HEAP32[$46 >> 2] = HEAP32[$state >> 2]; + HEAP32[$46 + 4 >> 2] = HEAP32[$state + 4 >> 2]; + HEAP32[$46 + 8 >> 2] = HEAP32[$state + 8 >> 2]; + HEAP32[$46 + 12 >> 2] = HEAP32[$state + 12 >> 2]; + } + $195 = $1 + 36 | 0; + HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + -1; + $$0 = 1; } while (0); - if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; - while (1) { - $241 = HEAP32[$wk$444 >> 2] | 0; - if (($241 | 0) == ($i$342 | 0)) { - $247 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; - } - HEAP32[$wk$444 >> 2] = $247; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $259 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$538 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $326 = $labelInfo + 12 + ($i$637 << 2) | 0; - $329 = $i$637 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _decode_mcu_AC_refine($cinfo, $MCU_data) { + $cinfo = $cinfo | 0; + $MCU_data = $MCU_data | 0; + var $$0 = 0, $$lcssa = 0, $1 = 0, $100 = 0, $110 = 0, $114 = 0, $121 = 0, $125 = 0, $130 = 0, $138 = 0, $142 = 0, $143 = 0, $155 = 0, $158 = 0, $20 = 0, $21 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $38 = 0, $39 = 0, $44 = 0, $45 = 0, $49 = 0, $5 = 0, $51 = 0, $57 = 0, $6 = 0, $61 = 0, $63 = 0, $7 = 0, $72 = 0, $77 = 0, $87 = 0, $95 = 0, $99 = 0, $EOBRUN$01$ph = 0, $EOBRUN$1 = 0, $bits_left$093 = 0, $bits_left$1 = 0, $bits_left$11$lcssa = 0, $bits_left$11$ph = 0, $bits_left$1188 = 0, $bits_left$12 = 0, $bits_left$13 = 0, $bits_left$14 = 0, $bits_left$2 = 0, $bits_left$3 = 0, $bits_left$3$lcssa = 0, $bits_left$4 = 0, $bits_left$5 = 0, $bits_left$6 = 0, $bits_left$6$ph = 0, $bits_left$7 = 0, $bits_left$8 = 0, $bits_left$9 = 0, $br_state = 0, $get_buffer$092 = 0, $get_buffer$1 = 0, $get_buffer$11$lcssa = 0, $get_buffer$11$ph = 0, $get_buffer$1187 = 0, $get_buffer$12 = 0, $get_buffer$13 = 0, $get_buffer$14 = 0, $get_buffer$2 = 0, $get_buffer$3 = 0, $get_buffer$3$lcssa = 0, $get_buffer$4 = 0, $get_buffer$5 = 0, $get_buffer$6 = 0, $get_buffer$6$ph = 0, $get_buffer$7 = 0, $get_buffer$8 = 0, $get_buffer$9 = 0, $k$094 = 0, $k$094$lcssa118 = 0, $k$1 = 0, $k$2 = 0, $k$4$ph = 0, $k$489 = 0, $nb$0 = 0, $newnz_pos = 0, $num_newnz$095 = 0, $num_newnz$095$lcssa115 = 0, $num_newnz$1 = 0, $num_newnz$22$ph = 0, $num_newnz$3$ph = 0, $num_newnz$386 = 0, $r$0 = 0, $r$0$ph = 0, $r$1 = 0, $s$0 = 0, $s$1$ph = 0, label = 0, sp = 0, $num_newnz$386$looptemp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 288 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } - } - } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 3) + 8) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; - while (1) { - do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($44 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $44; - $47 = ($44 << 16 >> 16) * 7 | 0; - $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; - $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; - $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; - HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; + $br_state = sp; + $newnz_pos = sp + 24 | 0; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $3 = HEAP32[$cinfo + 404 >> 2] | 0; + $5 = HEAP32[$cinfo + 412 >> 2] | 0; + $6 = 1 << $5; + $7 = -1 << $5; + if (!(HEAP32[$cinfo + 276 >> 2] | 0)) label = 4; else if (!(HEAP32[$1 + 40 >> 2] | 0)) if (!(_process_restart($cinfo) | 0)) $$0 = 0; else label = 4; else label = 4; + L4 : do if ((label | 0) == 4) { + do if (!(HEAP32[$1 + 8 >> 2] | 0)) { + HEAP32[$br_state + 16 >> 2] = $cinfo; + $20 = $cinfo + 24 | 0; + $21 = HEAP32[$20 >> 2] | 0; + HEAP32[$br_state >> 2] = HEAP32[$21 >> 2]; + $25 = $br_state + 4 | 0; + HEAP32[$25 >> 2] = HEAP32[$21 + 4 >> 2]; + $26 = $1 + 12 | 0; + $27 = HEAP32[$26 >> 2] | 0; + $28 = $1 + 16 | 0; + $29 = HEAP32[$28 >> 2] | 0; + $30 = $1 + 20 | 0; + $31 = HEAP32[$30 >> 2] | 0; + $32 = HEAP32[$MCU_data >> 2] | 0; + $34 = HEAP32[$1 + 60 >> 2] | 0; + $36 = HEAP32[$cinfo + 400 >> 2] | 0; + $38 = $br_state + 8 | 0; + $39 = $br_state + 12 | 0; + L8 : do if (!$31) if (($36 | 0) > ($3 | 0)) { + $EOBRUN$1 = 0; + $bits_left$14 = $29; + $get_buffer$14 = $27; + label = 54; + } else { + $bits_left$093 = $29; + $get_buffer$092 = $27; + $k$094 = $36; + $num_newnz$095 = 0; + L10 : while (1) { + if (($bits_left$093 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$092, $bits_left$093, 0) | 0)) { + $num_newnz$3$ph = $num_newnz$095; + break L8; + } + $44 = HEAP32[$38 >> 2] | 0; + $45 = HEAP32[$39 >> 2] | 0; + if (($45 | 0) < 8) { + $bits_left$2 = $45; + $get_buffer$2 = $44; + $nb$0 = 1; + label = 12; + } else { + $bits_left$1 = $45; + $get_buffer$1 = $44; + label = 10; } - $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $68 = $67 << 16 >> 16; - $69 = $67 << 16 >> 16 > 0; - if ($63 << 16 >> 16 <= 0) { - if ($69) { - HEAP16[$pnt2$368 >> 1] = $67; - $169 = $68 * 7 | 0; - $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; - $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; - $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; - $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; - if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($189 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $189; - $192 = ($189 << 16 >> 16) * 7 | 0; - $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; - $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; - $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; - HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; - $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; - if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$206 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; + } else { + $bits_left$1 = $bits_left$093; + $get_buffer$1 = $get_buffer$092; + label = 10; + } + if ((label | 0) == 10) { + label = 0; + $49 = $get_buffer$1 >> $bits_left$1 + -8 & 255; + $51 = HEAP32[$34 + 144 + ($49 << 2) >> 2] | 0; + if (!$51) { + $bits_left$2 = $bits_left$1; + $get_buffer$2 = $get_buffer$1; + $nb$0 = 9; + label = 12; + } else { + $bits_left$3 = $bits_left$1 - $51 | 0; + $get_buffer$3 = $get_buffer$1; + $s$0 = HEAPU8[$34 + 1168 + $49 >> 0] | 0; + } + } + if ((label | 0) == 12) { + label = 0; + $57 = _jpeg_huff_decode($br_state, $get_buffer$2, $bits_left$2, $34, $nb$0) | 0; + if (($57 | 0) < 0) { + $num_newnz$3$ph = $num_newnz$095; + break L8; + } + $bits_left$3 = HEAP32[$39 >> 2] | 0; + $get_buffer$3 = HEAP32[$38 >> 2] | 0; + $s$0 = $57; + } + $61 = $s$0 >> 4; + switch ($s$0 & 15 | 0) { + case 0: + { + if (($61 | 0) == 15) { + $bits_left$6$ph = $bits_left$3; + $get_buffer$6$ph = $get_buffer$3; + $r$0$ph = 15; + $s$1$ph = 0; } else { - $209 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $209; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; - $214 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $209; - break; + $$lcssa = $61; + $bits_left$3$lcssa = $bits_left$3; + $get_buffer$3$lcssa = $get_buffer$3; + $k$094$lcssa118 = $k$094; + $num_newnz$095$lcssa115 = $num_newnz$095; + break L10; } + break; } - if ($69) { - $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; - if (($72 | 0) > ($75 | 0)) { - HEAP16[$pnt2$368 >> 1] = $75; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $92 = $75; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $92 = $75; + case 1: + { + label = 16; + break; + } + default: + { + $63 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$63 + 20 >> 2] = 118; + FUNCTION_TABLE_vii[HEAP32[$63 + 4 >> 2] & 63]($cinfo, -1); + label = 16; + } + } + if ((label | 0) == 16) { + label = 0; + if (($bits_left$3 | 0) < 1) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3, $bits_left$3, 1) | 0)) { + $num_newnz$3$ph = $num_newnz$095; + break L8; + } + $bits_left$4 = HEAP32[$39 >> 2] | 0; + $get_buffer$4 = HEAP32[$38 >> 2] | 0; + } else { + $bits_left$4 = $bits_left$3; + $get_buffer$4 = $get_buffer$3; + } + $72 = $bits_left$4 + -1 | 0; + $bits_left$6$ph = $72; + $get_buffer$6$ph = $get_buffer$4; + $r$0$ph = $61; + $s$1$ph = (1 << $72 & $get_buffer$4 | 0) == 0 ? $7 : $6; + } + $bits_left$6 = $bits_left$6$ph; + $get_buffer$6 = $get_buffer$6$ph; + $k$1 = $k$094; + $r$0 = $r$0$ph; + L32 : while (1) { + $87 = $32 + (HEAP32[5344 + ($k$1 << 2) >> 2] << 1) | 0; + do if (!(HEAP16[$87 >> 1] | 0)) if (($r$0 | 0) < 1) { + $bits_left$9 = $bits_left$6; + $get_buffer$9 = $get_buffer$6; + $k$2 = $k$1; + break L32; + } else { + $bits_left$8 = $bits_left$6; + $get_buffer$8 = $get_buffer$6; + $r$1 = $r$0 + -1 | 0; + } else { + if (($bits_left$6 | 0) < 1) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$6, $bits_left$6, 1) | 0)) { + $num_newnz$3$ph = $num_newnz$095; + break L8; + } + $bits_left$7 = HEAP32[$39 >> 2] | 0; + $get_buffer$7 = HEAP32[$38 >> 2] | 0; } else { - HEAP16[$pnt2$368 >> 1] = $72; - if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $92 = $72; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $92 = $72; + $bits_left$7 = $bits_left$6; + $get_buffer$7 = $get_buffer$6; + } + $95 = $bits_left$7 + -1 | 0; + if (!(1 << $95 & $get_buffer$7)) { + $bits_left$8 = $95; + $get_buffer$8 = $get_buffer$7; + $r$1 = $r$0; + } else { + $99 = HEAP16[$87 >> 1] | 0; + $100 = $99 << 16 >> 16; + if (!($100 & $6)) if ($99 << 16 >> 16 > -1) { + HEAP16[$87 >> 1] = $100 + $6; + $bits_left$8 = $95; + $get_buffer$8 = $get_buffer$7; + $r$1 = $r$0; + break; + } else { + HEAP16[$87 >> 1] = $100 + $7; + $bits_left$8 = $95; + $get_buffer$8 = $get_buffer$7; + $r$1 = $r$0; + break; + } else { + $bits_left$8 = $95; + $get_buffer$8 = $get_buffer$7; + $r$1 = $r$0; + } } - $94 = ($92 << 16 >> 16) * 7 | 0; - $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; - $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; - $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; - HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + } while (0); + $110 = $k$1 + 1 | 0; + if (($k$1 | 0) < ($3 | 0)) { + $bits_left$6 = $bits_left$8; + $get_buffer$6 = $get_buffer$8; + $k$1 = $110; + $r$0 = $r$1; + } else { + $bits_left$9 = $bits_left$8; + $get_buffer$9 = $get_buffer$8; + $k$2 = $110; break; } - $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($110 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $63; - $150 = $64 * 7 | 0; - $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; - $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; - $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; - $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; - if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + } + if (!$s$1$ph) $num_newnz$1 = $num_newnz$095; else { + $114 = HEAP32[5344 + ($k$2 << 2) >> 2] | 0; + HEAP16[$32 + ($114 << 1) >> 1] = $s$1$ph; + HEAP32[$newnz_pos + ($num_newnz$095 << 2) >> 2] = $114; + $num_newnz$1 = $num_newnz$095 + 1 | 0; + } + if (($k$2 | 0) < ($3 | 0)) { + $bits_left$093 = $bits_left$9; + $get_buffer$092 = $get_buffer$9; + $k$094 = $k$2 + 1 | 0; + $num_newnz$095 = $num_newnz$1; + } else { + $EOBRUN$1 = 0; + $bits_left$14 = $bits_left$9; + $get_buffer$14 = $get_buffer$9; + label = 54; + break L8; + } + } + $77 = 1 << $$lcssa; + if (!$$lcssa) { + $EOBRUN$01$ph = $77; + $bits_left$11$ph = $bits_left$3$lcssa; + $get_buffer$11$ph = $get_buffer$3$lcssa; + $k$4$ph = $k$094$lcssa118; + $num_newnz$22$ph = $num_newnz$095$lcssa115; + label = 42; + } else { + if (($bits_left$3$lcssa | 0) < ($$lcssa | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3$lcssa, $bits_left$3$lcssa, $$lcssa) | 0)) { + $num_newnz$3$ph = $num_newnz$095$lcssa115; break; } - $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($115 | 0) > ($118 | 0)) { - HEAP16[$pnt2$368 >> 1] = $118; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $135 = $118; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $135 = $118; + $bits_left$5 = HEAP32[$39 >> 2] | 0; + $get_buffer$5 = HEAP32[$38 >> 2] | 0; + } else { + $bits_left$5 = $bits_left$3$lcssa; + $get_buffer$5 = $get_buffer$3$lcssa; + } + $121 = $bits_left$5 - $$lcssa | 0; + $125 = ($get_buffer$5 >> $121 & $77 + -1) + $77 | 0; + if (!$125) { + $EOBRUN$1 = 0; + $bits_left$14 = $121; + $get_buffer$14 = $get_buffer$5; + label = 54; + } else { + $EOBRUN$01$ph = $125; + $bits_left$11$ph = $121; + $get_buffer$11$ph = $get_buffer$5; + $k$4$ph = $k$094$lcssa118; + $num_newnz$22$ph = $num_newnz$095$lcssa115; + label = 42; + } + } + } else { + $EOBRUN$01$ph = $31; + $bits_left$11$ph = $29; + $get_buffer$11$ph = $27; + $k$4$ph = $36; + $num_newnz$22$ph = 0; + label = 42; + } while (0); + L57 : do if ((label | 0) == 42) { + if (($k$4$ph | 0) > ($3 | 0)) { + $bits_left$11$lcssa = $bits_left$11$ph; + $get_buffer$11$lcssa = $get_buffer$11$ph; + } else { + $bits_left$1188 = $bits_left$11$ph; + $get_buffer$1187 = $get_buffer$11$ph; + $k$489 = $k$4$ph; + while (1) { + $130 = $32 + (HEAP32[5344 + ($k$489 << 2) >> 2] << 1) | 0; + do if (!(HEAP16[$130 >> 1] | 0)) { + $bits_left$13 = $bits_left$1188; + $get_buffer$13 = $get_buffer$1187; } else { - HEAP16[$pnt2$368 >> 1] = $115; - if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $135 = $115; - break; - } else $wk$347 = $wk$347 + 4 | 0; + if (($bits_left$1188 | 0) < 1) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$1187, $bits_left$1188, 1) | 0)) { + $num_newnz$3$ph = $num_newnz$22$ph; + break L57; } - } else $135 = $115; + $bits_left$12 = HEAP32[$39 >> 2] | 0; + $get_buffer$12 = HEAP32[$38 >> 2] | 0; + } else { + $bits_left$12 = $bits_left$1188; + $get_buffer$12 = $get_buffer$1187; + } + $138 = $bits_left$12 + -1 | 0; + if (!(1 << $138 & $get_buffer$12)) { + $bits_left$13 = $138; + $get_buffer$13 = $get_buffer$12; + } else { + $142 = HEAP16[$130 >> 1] | 0; + $143 = $142 << 16 >> 16; + if (!($143 & $6)) if ($142 << 16 >> 16 > -1) { + HEAP16[$130 >> 1] = $143 + $6; + $bits_left$13 = $138; + $get_buffer$13 = $get_buffer$12; + break; + } else { + HEAP16[$130 >> 1] = $143 + $7; + $bits_left$13 = $138; + $get_buffer$13 = $get_buffer$12; + break; + } else { + $bits_left$13 = $138; + $get_buffer$13 = $get_buffer$12; + } + } + } while (0); + if (($k$489 | 0) < ($3 | 0)) { + $bits_left$1188 = $bits_left$13; + $get_buffer$1187 = $get_buffer$13; + $k$489 = $k$489 + 1 | 0; + } else { + $bits_left$11$lcssa = $bits_left$13; + $get_buffer$11$lcssa = $get_buffer$13; + break; } - $137 = ($135 << 16 >> 16) * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; + } + } + $EOBRUN$1 = $EOBRUN$01$ph + -1 | 0; + $bits_left$14 = $bits_left$11$lcssa; + $get_buffer$14 = $get_buffer$11$lcssa; + label = 54; + } while (0); + if ((label | 0) == 54) { + $155 = HEAP32[$20 >> 2] | 0; + HEAP32[$155 >> 2] = HEAP32[$br_state >> 2]; + HEAP32[$155 + 4 >> 2] = HEAP32[$25 >> 2]; + HEAP32[$26 >> 2] = $get_buffer$14; + HEAP32[$28 >> 2] = $bits_left$14; + HEAP32[$30 >> 2] = $EOBRUN$1; + break; + } + if (($num_newnz$3$ph | 0) > 0) $num_newnz$386 = $num_newnz$3$ph; else { + $$0 = 0; + break L4; + } + while (1) { + $num_newnz$386$looptemp = $num_newnz$386; + $num_newnz$386 = $num_newnz$386 + -1 | 0; + HEAP16[$32 + (HEAP32[$newnz_pos + ($num_newnz$386 << 2) >> 2] << 1) >> 1] = 0; + if (($num_newnz$386$looptemp | 0) <= 1) { + $$0 = 0; + break L4; + } + } + } while (0); + $158 = $1 + 40 | 0; + HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + -1; + $$0 = 1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision22bilinear_interpolationIffEET0_PKT_jjjff($im, $width, $height, $step, $x, $y) { + $im = $im | 0; + $width = $width | 0; + $height = $height | 0; + $step = $step | 0; + $x = +$x; + $y = +$y; + var $0 = 0, $10 = 0, $104 = 0, $109 = 0, $110 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $119 = 0.0, $121 = 0.0, $122 = 0.0, $124 = 0.0, $125 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $138 = 0, $143 = 0, $144 = 0, $148 = 0, $15 = 0, $157 = 0, $16 = 0, $162 = 0, $163 = 0, $167 = 0, $176 = 0, $181 = 0, $182 = 0, $186 = 0, $195 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $205 = 0, $216 = 0, $22 = 0, $221 = 0, $222 = 0, $226 = 0, $30 = 0, $35 = 0, $36 = 0, $40 = 0, $41 = 0, $42 = 0, $50 = 0, $55 = 0, $56 = 0, $60 = 0, $68 = 0, $73 = 0, $74 = 0, $78 = 0, $86 = 0, $91 = 0, $92 = 0, $96 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $2 = ~~+Math_floor(+$x); + if (($2 | 0) != (~~$x | 0)) { + $10 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24722) | 0, 24774) | 0, 34302) | 0, 69) | 0, 34309) | 0, 24884) | 0; + $15 = __ZNKSt3__18ios_base6getlocEv($10 + (HEAP32[(HEAP32[$10 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $15; + $16 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $20 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$16 >> 2] | 0) + 28 >> 2] & 63]($16, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($10, $20) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($10) | 0; + _abort(); + } + $22 = ~~+Math_floor(+$y); + if (($22 | 0) != (~~$y | 0)) { + $30 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24914) | 0, 24774) | 0, 34302) | 0, 70) | 0, 34309) | 0, 24884) | 0; + $35 = __ZNKSt3__18ios_base6getlocEv($30 + (HEAP32[(HEAP32[$30 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $35; + $36 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $40 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$36 >> 2] | 0) + 28 >> 2] & 63]($36, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($30, $40) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($30) | 0; + _abort(); + } + $41 = $2 + 1 | 0; + $42 = $22 + 1 | 0; + if (!(($22 | 0) > -1 & $22 >>> 0 < $height >>> 0)) { + $50 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24966) | 0, 24774) | 0, 34302) | 0, 79) | 0, 34309) | 0, 25012) | 0; + $55 = __ZNKSt3__18ios_base6getlocEv($50 + (HEAP32[(HEAP32[$50 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $55; + $56 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $60 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$56 >> 2] | 0) + 28 >> 2] & 63]($56, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($50, $60) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($50) | 0; + _abort(); + } + if (!(($22 | 0) > -2 & $42 >>> 0 < $height >>> 0)) { + $68 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25029) | 0, 24774) | 0, 34302) | 0, 80) | 0, 34309) | 0, 25089) | 0; + $73 = __ZNKSt3__18ios_base6getlocEv($68 + (HEAP32[(HEAP32[$68 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $73; + $74 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $78 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$74 >> 2] | 0) + 28 >> 2] & 63]($74, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($68, $78) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($68) | 0; + _abort(); + } + if (!(($2 | 0) > -1 & $2 >>> 0 < $width >>> 0)) { + $86 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25113) | 0, 24774) | 0, 34302) | 0, 81) | 0, 34309) | 0, 25158) | 0; + $91 = __ZNKSt3__18ios_base6getlocEv($86 + (HEAP32[(HEAP32[$86 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $91; + $92 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $96 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$92 >> 2] | 0) + 28 >> 2] & 63]($92, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($86, $96) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($86) | 0; + _abort(); + } + if (!(($2 | 0) > -2 & $41 >>> 0 < $width >>> 0)) { + $104 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25175) | 0, 24774) | 0, 34302) | 0, 82) | 0, 34309) | 0, 25234) | 0; + $109 = __ZNKSt3__18ios_base6getlocEv($104 + (HEAP32[(HEAP32[$104 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $109; + $110 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $114 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$110 >> 2] | 0) + 28 >> 2] & 63]($110, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($104, $114) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($104) | 0; + _abort(); + } + $115 = Math_imul($22, $step) | 0; + $116 = $im + $115 | 0; + $117 = $im + ($115 + $step) | 0; + $119 = +($41 | 0) - $x; + $121 = +($42 | 0) - $y; + $122 = $119 * $121; + $124 = $x - +($2 | 0); + $125 = $124 * $121; + $127 = $y - +($22 | 0); + $128 = $119 * $127; + $129 = $124 * $127; + if (!($122 >= 0.0) | !($122 <= 1.0001)) { + $138 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25258) | 0, 24774) | 0, 34302) | 0, 94) | 0, 34309) | 0, 25305) | 0; + $143 = __ZNKSt3__18ios_base6getlocEv($138 + (HEAP32[(HEAP32[$138 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $143; + $144 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $148 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$144 >> 2] | 0) + 28 >> 2] & 63]($144, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($138, $148) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($138) | 0; + _abort(); + } + if (!($125 >= 0.0) | !($125 <= 1.0001)) { + $157 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25318) | 0, 24774) | 0, 34302) | 0, 95) | 0, 34309) | 0, 25305) | 0; + $162 = __ZNKSt3__18ios_base6getlocEv($157 + (HEAP32[(HEAP32[$157 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $162; + $163 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $167 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$163 >> 2] | 0) + 28 >> 2] & 63]($163, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($157, $167) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($157) | 0; + _abort(); + } + if (!($128 >= 0.0) | !($128 <= 1.0001)) { + $176 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25365) | 0, 24774) | 0, 34302) | 0, 96) | 0, 34309) | 0, 25305) | 0; + $181 = __ZNKSt3__18ios_base6getlocEv($176 + (HEAP32[(HEAP32[$176 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $181; + $182 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $186 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$182 >> 2] | 0) + 28 >> 2] & 63]($182, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($176, $186) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($176) | 0; + _abort(); + } + if (!($129 >= 0.0) | !($129 <= 1.0001)) { + $195 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25412) | 0, 24774) | 0, 34302) | 0, 97) | 0, 34309) | 0, 25305) | 0; + $200 = __ZNKSt3__18ios_base6getlocEv($195 + (HEAP32[(HEAP32[$195 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $200; + $201 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $205 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$201 >> 2] | 0) + 28 >> 2] & 63]($201, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($195, $205) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($195) | 0; + _abort(); + } + if (!($129 + ($128 + ($122 + $125)) <= 1.0001)) { + $216 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25459) | 0, 24774) | 0, 34302) | 0, 98) | 0, 34309) | 0, 25305) | 0; + $221 = __ZNKSt3__18ios_base6getlocEv($216 + (HEAP32[(HEAP32[$216 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $221; + $222 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $226 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$222 >> 2] | 0) + 28 >> 2] & 63]($222, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($216, $226) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($216) | 0; + _abort(); + } else { + STACKTOP = sp; + return +($122 * +HEAPF32[$116 + ($2 << 2) >> 2] + $125 * +HEAPF32[$116 + ($41 << 2) >> 2] + $128 * +HEAPF32[$117 + ($2 << 2) >> 2] + $129 * +HEAPF32[$117 + ($41 << 2) >> 2]); + } + return +(0.0); +} + +function _free($mem) { + $mem = $mem | 0; + var $$lcssa = 0, $$pre$phi59Z2D = 0, $$pre$phi61Z2D = 0, $$pre$phiZ2D = 0, $$sum2 = 0, $1 = 0, $103 = 0, $104 = 0, $111 = 0, $112 = 0, $12 = 0, $120 = 0, $128 = 0, $133 = 0, $134 = 0, $137 = 0, $139 = 0, $14 = 0, $141 = 0, $15 = 0, $156 = 0, $161 = 0, $163 = 0, $166 = 0, $169 = 0, $172 = 0, $175 = 0, $176 = 0, $178 = 0, $179 = 0, $181 = 0, $182 = 0, $184 = 0, $185 = 0, $19 = 0, $191 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $210 = 0, $216 = 0, $22 = 0, $231 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $24 = 0, $240 = 0, $241 = 0, $247 = 0, $252 = 0, $253 = 0, $256 = 0, $258 = 0, $26 = 0, $261 = 0, $266 = 0, $272 = 0, $276 = 0, $277 = 0, $284 = 0, $296 = 0, $301 = 0, $308 = 0, $309 = 0, $310 = 0, $318 = 0, $39 = 0, $44 = 0, $46 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $63 = 0, $64 = 0, $66 = 0, $67 = 0, $72 = 0, $73 = 0, $8 = 0, $82 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $F16$0 = 0, $I18$0 = 0, $K19$052 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$051 = 0, $T$051$lcssa = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0; + if (!$mem) return; + $1 = $mem + -8 | 0; + $2 = HEAP32[2511] | 0; + if ($1 >>> 0 < $2 >>> 0) _abort(); + $5 = HEAP32[$mem + -4 >> 2] | 0; + $6 = $5 & 3; + if (($6 | 0) == 1) _abort(); + $8 = $5 & -8; + $9 = $mem + ($8 + -8) | 0; + do if (!($5 & 1)) { + $12 = HEAP32[$1 >> 2] | 0; + if (!$6) return; + $$sum2 = -8 - $12 | 0; + $14 = $mem + $$sum2 | 0; + $15 = $12 + $8 | 0; + if ($14 >>> 0 < $2 >>> 0) _abort(); + if (($14 | 0) == (HEAP32[2512] | 0)) { + $103 = $mem + ($8 + -4) | 0; + $104 = HEAP32[$103 >> 2] | 0; + if (($104 & 3 | 0) != 3) { + $p$0 = $14; + $psize$0 = $15; + break; + } + HEAP32[2509] = $15; + HEAP32[$103 >> 2] = $104 & -2; + HEAP32[$mem + ($$sum2 + 4) >> 2] = $15 | 1; + HEAP32[$9 >> 2] = $15; + return; + } + $19 = $12 >>> 3; + if ($12 >>> 0 < 256) { + $22 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; + $24 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; + $26 = 10068 + ($19 << 1 << 2) | 0; + if (($22 | 0) != ($26 | 0)) { + if ($22 >>> 0 < $2 >>> 0) _abort(); + if ((HEAP32[$22 + 12 >> 2] | 0) != ($14 | 0)) _abort(); + } + if (($24 | 0) == ($22 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $19); + $p$0 = $14; + $psize$0 = $15; + break; + } + if (($24 | 0) == ($26 | 0)) $$pre$phi61Z2D = $24 + 8 | 0; else { + if ($24 >>> 0 < $2 >>> 0) _abort(); + $39 = $24 + 8 | 0; + if ((HEAP32[$39 >> 2] | 0) == ($14 | 0)) $$pre$phi61Z2D = $39; else _abort(); + } + HEAP32[$22 + 12 >> 2] = $24; + HEAP32[$$pre$phi61Z2D >> 2] = $22; + $p$0 = $14; + $psize$0 = $15; + break; + } + $44 = HEAP32[$mem + ($$sum2 + 24) >> 2] | 0; + $46 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; + do if (($46 | 0) == ($14 | 0)) { + $57 = $mem + ($$sum2 + 20) | 0; + $58 = HEAP32[$57 >> 2] | 0; + if (!$58) { + $60 = $mem + ($$sum2 + 16) | 0; + $61 = HEAP32[$60 >> 2] | 0; + if (!$61) { + $R$1 = 0; + break; + } else { + $R$0 = $61; + $RP$0 = $60; + } + } else { + $R$0 = $58; + $RP$0 = $57; + } + while (1) { + $63 = $R$0 + 20 | 0; + $64 = HEAP32[$63 >> 2] | 0; + if ($64) { + $R$0 = $64; + $RP$0 = $63; + continue; + } + $66 = $R$0 + 16 | 0; + $67 = HEAP32[$66 >> 2] | 0; + if (!$67) { + $R$0$lcssa = $R$0; + $RP$0$lcssa = $RP$0; + break; + } else { + $R$0 = $67; + $RP$0 = $66; + } + } + if ($RP$0$lcssa >>> 0 < $2 >>> 0) _abort(); else { + HEAP32[$RP$0$lcssa >> 2] = 0; + $R$1 = $R$0$lcssa; + break; + } + } else { + $49 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; + if ($49 >>> 0 < $2 >>> 0) _abort(); + $51 = $49 + 12 | 0; + if ((HEAP32[$51 >> 2] | 0) != ($14 | 0)) _abort(); + $54 = $46 + 8 | 0; + if ((HEAP32[$54 >> 2] | 0) == ($14 | 0)) { + HEAP32[$51 >> 2] = $46; + HEAP32[$54 >> 2] = $49; + $R$1 = $46; + break; + } else _abort(); + } while (0); + if (!$44) { + $p$0 = $14; + $psize$0 = $15; + } else { + $72 = HEAP32[$mem + ($$sum2 + 28) >> 2] | 0; + $73 = 10332 + ($72 << 2) | 0; + if (($14 | 0) == (HEAP32[$73 >> 2] | 0)) { + HEAP32[$73 >> 2] = $R$1; + if (!$R$1) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $72); + $p$0 = $14; + $psize$0 = $15; + break; + } + } else { + if ($44 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $82 = $44 + 16 | 0; + if ((HEAP32[$82 >> 2] | 0) == ($14 | 0)) HEAP32[$82 >> 2] = $R$1; else HEAP32[$44 + 20 >> 2] = $R$1; + if (!$R$1) { + $p$0 = $14; + $psize$0 = $15; + break; + } + } + $87 = HEAP32[2511] | 0; + if ($R$1 >>> 0 < $87 >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $44; + $91 = HEAP32[$mem + ($$sum2 + 16) >> 2] | 0; + do if ($91) if ($91 >>> 0 < $87 >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $91; + HEAP32[$91 + 24 >> 2] = $R$1; + break; + } while (0); + $97 = HEAP32[$mem + ($$sum2 + 20) >> 2] | 0; + if (!$97) { + $p$0 = $14; + $psize$0 = $15; + } else if ($97 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $97; + HEAP32[$97 + 24 >> 2] = $R$1; + $p$0 = $14; + $psize$0 = $15; + break; + } + } + } else { + $p$0 = $1; + $psize$0 = $8; + } while (0); + if ($p$0 >>> 0 >= $9 >>> 0) _abort(); + $111 = $mem + ($8 + -4) | 0; + $112 = HEAP32[$111 >> 2] | 0; + if (!($112 & 1)) _abort(); + if (!($112 & 2)) { + if (($9 | 0) == (HEAP32[2513] | 0)) { + $120 = (HEAP32[2510] | 0) + $psize$0 | 0; + HEAP32[2510] = $120; + HEAP32[2513] = $p$0; + HEAP32[$p$0 + 4 >> 2] = $120 | 1; + if (($p$0 | 0) != (HEAP32[2512] | 0)) return; + HEAP32[2512] = 0; + HEAP32[2509] = 0; + return; + } + if (($9 | 0) == (HEAP32[2512] | 0)) { + $128 = (HEAP32[2509] | 0) + $psize$0 | 0; + HEAP32[2509] = $128; + HEAP32[2512] = $p$0; + HEAP32[$p$0 + 4 >> 2] = $128 | 1; + HEAP32[$p$0 + $128 >> 2] = $128; + return; + } + $133 = ($112 & -8) + $psize$0 | 0; + $134 = $112 >>> 3; + do if ($112 >>> 0 < 256) { + $137 = HEAP32[$mem + $8 >> 2] | 0; + $139 = HEAP32[$mem + ($8 | 4) >> 2] | 0; + $141 = 10068 + ($134 << 1 << 2) | 0; + if (($137 | 0) != ($141 | 0)) { + if ($137 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + if ((HEAP32[$137 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + } + if (($139 | 0) == ($137 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $134); + break; + } + if (($139 | 0) == ($141 | 0)) $$pre$phi59Z2D = $139 + 8 | 0; else { + if ($139 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $156 = $139 + 8 | 0; + if ((HEAP32[$156 >> 2] | 0) == ($9 | 0)) $$pre$phi59Z2D = $156; else _abort(); + } + HEAP32[$137 + 12 >> 2] = $139; + HEAP32[$$pre$phi59Z2D >> 2] = $137; + } else { + $161 = HEAP32[$mem + ($8 + 16) >> 2] | 0; + $163 = HEAP32[$mem + ($8 | 4) >> 2] | 0; + do if (($163 | 0) == ($9 | 0)) { + $175 = $mem + ($8 + 12) | 0; + $176 = HEAP32[$175 >> 2] | 0; + if (!$176) { + $178 = $mem + ($8 + 8) | 0; + $179 = HEAP32[$178 >> 2] | 0; + if (!$179) { + $R7$1 = 0; + break; } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $229 = $pnt$169 + 8 | 0; - $230 = $pnt2$368 + 2 | 0; - $231 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $231; - $pnt$1$lcssa = $229; - $pnt2$3$lcssa = $230; - $wk_max$1$lcssa = $wk_max$2; + $R7$0 = $179; + $RP9$0 = $178; + } + } else { + $R7$0 = $176; + $RP9$0 = $175; + } + while (1) { + $181 = $R7$0 + 20 | 0; + $182 = HEAP32[$181 >> 2] | 0; + if ($182) { + $R7$0 = $182; + $RP9$0 = $181; + continue; + } + $184 = $R7$0 + 16 | 0; + $185 = HEAP32[$184 >> 2] | 0; + if (!$185) { + $R7$0$lcssa = $R7$0; + $RP9$0$lcssa = $RP9$0; break; } else { - $dpnt$167 = $231; - $pnt$169 = $229; - $pnt2$368 = $230; - $wk_max$160 = $wk_max$2; + $R7$0 = $185; + $RP9$0 = $184; } } + if ($RP9$0$lcssa >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$RP9$0$lcssa >> 2] = 0; + $R7$1 = $R7$0$lcssa; + break; + } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $166 = HEAP32[$mem + $8 >> 2] | 0; + if ($166 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $169 = $166 + 12 | 0; + if ((HEAP32[$169 >> 2] | 0) != ($9 | 0)) _abort(); + $172 = $163 + 8 | 0; + if ((HEAP32[$172 >> 2] | 0) == ($9 | 0)) { + HEAP32[$169 >> 2] = $163; + HEAP32[$172 >> 2] = $166; + $R7$1 = $163; + break; + } else _abort(); + } while (0); + if ($161) { + $191 = HEAP32[$mem + ($8 + 20) >> 2] | 0; + $192 = 10332 + ($191 << 2) | 0; + if (($9 | 0) == (HEAP32[$192 >> 2] | 0)) { + HEAP32[$192 >> 2] = $R7$1; + if (!$R7$1) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $191); + break; + } + } else { + if ($161 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $201 = $161 + 16 | 0; + if ((HEAP32[$201 >> 2] | 0) == ($9 | 0)) HEAP32[$201 >> 2] = $R7$1; else HEAP32[$161 + 20 >> 2] = $R7$1; + if (!$R7$1) break; + } + $206 = HEAP32[2511] | 0; + if ($R7$1 >>> 0 < $206 >>> 0) _abort(); + HEAP32[$R7$1 + 24 >> 2] = $161; + $210 = HEAP32[$mem + ($8 + 8) >> 2] | 0; + do if ($210) if ($210 >>> 0 < $206 >>> 0) _abort(); else { + HEAP32[$R7$1 + 16 >> 2] = $210; + HEAP32[$210 + 24 >> 2] = $R7$1; + break; + } while (0); + $216 = HEAP32[$mem + ($8 + 12) >> 2] | 0; + if ($216) if ($216 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 20 >> 2] = $216; + HEAP32[$216 + 24 >> 2] = $R7$1; + break; + } } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + } while (0); + HEAP32[$p$0 + 4 >> 2] = $133 | 1; + HEAP32[$p$0 + $133 >> 2] = $133; + if (($p$0 | 0) == (HEAP32[2512] | 0)) { + HEAP32[2509] = $133; + return; + } else $psize$1 = $133; + } else { + HEAP32[$111 >> 2] = $112 & -2; + HEAP32[$p$0 + 4 >> 2] = $psize$0 | 1; + HEAP32[$p$0 + $psize$0 >> 2] = $psize$0; + $psize$1 = $psize$0; + } + $231 = $psize$1 >>> 3; + if ($psize$1 >>> 0 < 256) { + $233 = $231 << 1; + $234 = 10068 + ($233 << 2) | 0; + $235 = HEAP32[2507] | 0; + $236 = 1 << $231; + if (!($235 & $236)) { + HEAP32[2507] = $235 | $236; + $$pre$phiZ2D = 10068 + ($233 + 2 << 2) | 0; + $F16$0 = $234; + } else { + $240 = 10068 + ($233 + 2 << 2) | 0; + $241 = HEAP32[$240 >> 2] | 0; + if ($241 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $240; + $F16$0 = $241; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + HEAP32[$$pre$phiZ2D >> 2] = $p$0; + HEAP32[$F16$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $F16$0; + HEAP32[$p$0 + 12 >> 2] = $234; + return; + } + $247 = $psize$1 >>> 8; + if (!$247) $I18$0 = 0; else if ($psize$1 >>> 0 > 16777215) $I18$0 = 31; else { + $252 = ($247 + 1048320 | 0) >>> 16 & 8; + $253 = $247 << $252; + $256 = ($253 + 520192 | 0) >>> 16 & 4; + $258 = $253 << $256; + $261 = ($258 + 245760 | 0) >>> 16 & 2; + $266 = 14 - ($256 | $252 | $261) + ($258 << $261 >>> 15) | 0; + $I18$0 = $psize$1 >>> ($266 + 7 | 0) & 1 | $266 << 1; + } + $272 = 10332 + ($I18$0 << 2) | 0; + HEAP32[$p$0 + 28 >> 2] = $I18$0; + HEAP32[$p$0 + 20 >> 2] = 0; + HEAP32[$p$0 + 16 >> 2] = 0; + $276 = HEAP32[2508] | 0; + $277 = 1 << $I18$0; + L199 : do if (!($276 & $277)) { + HEAP32[2508] = $276 | $277; + HEAP32[$272 >> 2] = $p$0; + HEAP32[$p$0 + 24 >> 2] = $272; + HEAP32[$p$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $p$0; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $238 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; + $284 = HEAP32[$272 >> 2] | 0; + L202 : do if ((HEAP32[$284 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) $T$0$lcssa = $284; else { + $K19$052 = $psize$1 << (($I18$0 | 0) == 31 ? 0 : 25 - ($I18$0 >>> 1) | 0); + $T$051 = $284; while (1) { - $240 = HEAP32[$wk$444 >> 2] | 0; - if (($240 | 0) == ($i$342 | 0)) { - $246 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $301 = $T$051 + 16 + ($K19$052 >>> 31 << 2) | 0; + $296 = HEAP32[$301 >> 2] | 0; + if (!$296) { + $$lcssa = $301; + $T$051$lcssa = $T$051; + break; } - HEAP32[$wk$444 >> 2] = $246; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + if ((HEAP32[$296 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) { + $T$0$lcssa = $296; + break L202; } else { - $j$1$lcssa = $j$2; - break; + $K19$052 = $K19$052 << 1; + $T$051 = $296; } } - } - $250 = $labelInfo + 8 | 0; - $251 = $j$1$lcssa + -1 | 0; - HEAP32[$250 >> 2] = $251; - if (!$251) $$0 = 0; else { - _memset($238 | 0, 0, $251 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $258 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $273 = $i$538 * 7 | 0; - $276 = $labelInfo + 12 + ($272 << 2) | 0; - HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); - $283 = $272 << 1; - $284 = $labelInfo + 655376 + ($283 << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); - $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; - HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); - $295 = $272 << 2; - $296 = $labelInfo + 131084 + ($295 << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; - $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; - $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; - if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + if ($$lcssa >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$$lcssa >> 2] = $p$0; + HEAP32[$p$0 + 24 >> 2] = $T$051$lcssa; + HEAP32[$p$0 + 12 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $p$0; + break L199; } - if ((HEAP32[$250 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $325 = $labelInfo + 12 + ($i$637 << 2) | 0; - $328 = $i$637 << 1; - $329 = $labelInfo + 655376 + ($328 << 3) | 0; - HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); - $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + } while (0); + $308 = $T$0$lcssa + 8 | 0; + $309 = HEAP32[$308 >> 2] | 0; + $310 = HEAP32[2511] | 0; + if ($309 >>> 0 >= $310 >>> 0 & $T$0$lcssa >>> 0 >= $310 >>> 0) { + HEAP32[$309 + 12 >> 2] = $p$0; + HEAP32[$308 >> 2] = $p$0; + HEAP32[$p$0 + 8 >> 2] = $309; + HEAP32[$p$0 + 12 >> 2] = $T$0$lcssa; + HEAP32[$p$0 + 24 >> 2] = 0; + break; + } else _abort(); + } while (0); + $318 = (HEAP32[2515] | 0) + -1 | 0; + HEAP32[2515] = $318; + if (!$318) $sp$0$in$i = 10484; else return; + while (1) { + $sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0; + if (!$sp$0$i) break; else $sp$0$in$i = $sp$0$i + 8 | 0; } - STACKTOP = sp; - return $$0 | 0; + HEAP32[2515] = -1; + return; } -function _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; +function ___intscan($f, $base, $pok, $0, $1) { + $f = $f | 0; + $base = $base | 0; + $pok = $pok | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$1 = 0, $$122 = 0, $$123 = 0, $$base21 = 0, $$lcssa = 0, $$lcssa130 = 0, $$lcssa131 = 0, $$lcssa132 = 0, $$lcssa133 = 0, $$lcssa134 = 0, $$lcssa135 = 0, $100 = 0, $101 = 0, $108 = 0, $120 = 0, $121 = 0, $128 = 0, $13 = 0, $130 = 0, $131 = 0, $134 = 0, $135 = 0, $136 = 0, $144 = 0, $149 = 0, $150 = 0, $152 = 0, $155 = 0, $157 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $195 = 0, $201 = 0, $203 = 0, $204 = 0, $206 = 0, $208 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $223 = 0, $224 = 0, $239 = 0, $25 = 0, $250 = 0, $260 = 0, $262 = 0, $271 = 0, $272 = 0, $279 = 0, $281 = 0, $284 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $3 = 0, $37 = 0, $39 = 0, $4 = 0, $46 = 0, $5 = 0, $51 = 0, $6 = 0, $65 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $90 = 0, $91 = 0, $93 = 0, $99 = 0, $c$0 = 0, $c$1 = 0, $c$124 = 0, $c$2$be = 0, $c$2$be$lcssa = 0, $c$2$lcssa = 0, $c$3$be = 0, $c$3$lcssa = 0, $c$371 = 0, $c$4$be = 0, $c$4$be$lcssa = 0, $c$4$lcssa = 0, $c$5$be = 0, $c$6$be = 0, $c$6$be$lcssa = 0, $c$6$lcssa = 0, $c$7$be = 0, $c$753 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $neg$1 = 0, $x$082 = 0, $x$146 = 0, $x$266 = 0, label = 0; + L1 : do if ($base >>> 0 > 36) { + $5 = ___errno_location() | 0; + HEAP32[$5 >> 2] = 22; + $286 = 0; + $287 = 0; + } else { + $3 = $f + 4 | 0; + $4 = $f + 100 | 0; + do { + $6 = HEAP32[$3 >> 2] | 0; + if ($6 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $6 + 1; + $13 = HEAPU8[$6 >> 0] | 0; + } else $13 = ___shgetc($f) | 0; + } while ((_isspace($13) | 0) != 0); + $$lcssa135 = $13; + L11 : do switch ($$lcssa135 | 0) { + case 43: + case 45: + { + $17 = (($$lcssa135 | 0) == 45) << 31 >> 31; + $18 = HEAP32[$3 >> 2] | 0; + if ($18 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $18 + 1; + $c$0 = HEAPU8[$18 >> 0] | 0; + $neg$0 = $17; + break L11; + } else { + $c$0 = ___shgetc($f) | 0; + $neg$0 = $17; + break L11; + } + break; } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + default: + { + $c$0 = $$lcssa135; + $neg$0 = 0; } - } - } - $19 = $labelInfo + 1179664 | 0; - $20 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $31 = ($12 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 3) + 8) | 0; - $pnt2$279 = $2 + ($20 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($31) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + } while (0); + $25 = ($base | 0) == 0; + do if (($base & -17 | 0) == 0 & ($c$0 | 0) == 48) { + $29 = HEAP32[$3 >> 2] | 0; + if ($29 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $29 + 1; + $37 = HEAPU8[$29 >> 0] | 0; + } else $37 = ___shgetc($f) | 0; + if (($37 | 32 | 0) != 120) if ($25) { + $$123 = 8; + $c$124 = $37; + label = 46; + break; + } else { + $$1 = $base; + $c$1 = $37; + label = 32; + break; + } + $39 = HEAP32[$3 >> 2] | 0; + if ($39 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $39 + 1; + $46 = HEAPU8[$39 >> 0] | 0; + } else $46 = ___shgetc($f) | 0; + if ((HEAPU8[51790 + ($46 + 1) >> 0] | 0) > 15) { + $51 = (HEAP32[$4 >> 2] | 0) == 0; + if (!$51) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + if (!$pok) { + ___shlim($f, 0); + $286 = 0; + $287 = 0; + break L1; + } + if ($51) { + $286 = 0; + $287 = 0; + break L1; + } + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + $286 = 0; + $287 = 0; + break L1; + } else { + $$123 = 16; + $c$124 = $46; + label = 46; + } + } else { + $$base21 = $25 ? 10 : $base; + if ((HEAPU8[51790 + ($c$0 + 1) >> 0] | 0) >>> 0 < $$base21 >>> 0) { + $$1 = $$base21; + $c$1 = $c$0; + label = 32; + } else { + if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + ___shlim($f, 0); + $65 = ___errno_location() | 0; + HEAP32[$65 >> 2] = 22; + $286 = 0; + $287 = 0; + break L1; + } + } while (0); + if ((label | 0) == 32) if (($$1 | 0) == 10) { + $67 = $c$1 + -48 | 0; + if ($67 >>> 0 < 10) { + $71 = $67; + $x$082 = 0; while (1) { - do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($44 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $44; - $47 = ($44 << 16 >> 16) * 7 | 0; - $49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; - $53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265; - $57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0; - HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $68 = $67 << 16 >> 16; - $69 = $67 << 16 >> 16 > 0; - if ($63 << 16 >> 16 <= 0) { - if ($69) { - HEAP16[$pnt2$368 >> 1] = $67; - $169 = $68 * 7 | 0; - $171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1; - $175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265; - $179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076; - $183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0; - if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $189 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($189 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $189; - $192 = ($189 << 16 >> 16) * 7 | 0; - $194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1; - $198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265; - $202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0; - HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076; - $206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0; - if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$206 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $209 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $209; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16; - $214 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $209; - break; - } - } - if ($69) { - $72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0; - if (($72 | 0) > ($75 | 0)) { - HEAP16[$pnt2$368 >> 1] = $75; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $19; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $92 = $75; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $92 = $75; - } else { - HEAP16[$pnt2$368 >> 1] = $72; - if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $19; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $92 = $72; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $92 = $72; - } - $94 = ($92 << 16 >> 16) * 7 | 0; - $96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1; - $100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265; - $104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0; - HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $110 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($110 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $63; - $150 = $64 * 7 | 0; - $152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1; - $156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265; - $160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076; - $164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0; - if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - $118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($115 | 0) > ($118 | 0)) { - HEAP16[$pnt2$368 >> 1] = $118; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $19; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $135 = $118; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $135 = $118; - } else { - HEAP16[$pnt2$368 >> 1] = $115; - if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $19; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $135 = $115; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $135 = $115; - } - $137 = ($135 << 16 >> 16) * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $229 = $pnt$169 + 8 | 0; - $230 = $pnt2$368 + 2 | 0; - $231 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($12 | 0)) { - $dpnt$1$lcssa = $231; - $pnt$1$lcssa = $229; - $pnt2$3$lcssa = $230; - $wk_max$1$lcssa = $wk_max$2; + $70 = ($x$082 * 10 | 0) + $71 | 0; + $72 = HEAP32[$3 >> 2] | 0; + if ($72 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $72 + 1; + $c$2$be = HEAPU8[$72 >> 0] | 0; + } else $c$2$be = ___shgetc($f) | 0; + $71 = $c$2$be + -48 | 0; + if (!($71 >>> 0 < 10 & $70 >>> 0 < 429496729)) { + $$lcssa134 = $70; + $c$2$be$lcssa = $c$2$be; + break; + } else $x$082 = $70; + } + $288 = $$lcssa134; + $289 = 0; + $c$2$lcssa = $c$2$be$lcssa; + } else { + $288 = 0; + $289 = 0; + $c$2$lcssa = $c$1; + } + $83 = $c$2$lcssa + -48 | 0; + if ($83 >>> 0 < 10) { + $85 = $288; + $86 = $289; + $90 = $83; + $c$371 = $c$2$lcssa; + while (1) { + $87 = ___muldi3($85 | 0, $86 | 0, 10, 0) | 0; + $88 = tempRet0; + $91 = (($90 | 0) < 0) << 31 >> 31; + $93 = ~$91; + if ($88 >>> 0 > $93 >>> 0 | ($88 | 0) == ($93 | 0) & $87 >>> 0 > ~$90 >>> 0) { + $$lcssa = $90; + $290 = $85; + $291 = $86; + $c$3$lcssa = $c$371; break; + } + $99 = _i64Add($87 | 0, $88 | 0, $90 | 0, $91 | 0) | 0; + $100 = tempRet0; + $101 = HEAP32[$3 >> 2] | 0; + if ($101 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $101 + 1; + $c$3$be = HEAPU8[$101 >> 0] | 0; + } else $c$3$be = ___shgetc($f) | 0; + $108 = $c$3$be + -48 | 0; + if ($108 >>> 0 < 10 & ($100 >>> 0 < 429496729 | ($100 | 0) == 429496729 & $99 >>> 0 < 2576980378)) { + $85 = $99; + $86 = $100; + $90 = $108; + $c$371 = $c$3$be; } else { - $dpnt$167 = $231; - $pnt$169 = $229; - $pnt2$368 = $230; - $wk_max$160 = $wk_max$2; + $$lcssa = $108; + $290 = $99; + $291 = $100; + $c$3$lcssa = $c$3$be; + break; } } + if ($$lcssa >>> 0 > 9) { + $260 = $291; + $262 = $290; + $neg$1 = $neg$0; + } else { + $$122 = 10; + $292 = $290; + $293 = $291; + $c$8 = $c$3$lcssa; + label = 72; + } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; - } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $260 = $289; + $262 = $288; + $neg$1 = $neg$0; } + } else { + $$123 = $$1; + $c$124 = $c$1; + label = 46; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $238 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $19; - while (1) { - $240 = HEAP32[$wk$444 >> 2] | 0; - if (($240 | 0) == ($i$342 | 0)) { - $246 = $j$143; - $j$2 = $j$143 + 1 | 0; + L63 : do if ((label | 0) == 46) { + if (!($$123 + -1 & $$123)) { + $128 = HEAP8[52047 + (($$123 * 23 | 0) >>> 5 & 7) >> 0] | 0; + $130 = HEAP8[51790 + ($c$124 + 1) >> 0] | 0; + $131 = $130 & 255; + if ($131 >>> 0 < $$123 >>> 0) { + $135 = $131; + $x$146 = 0; + while (1) { + $134 = $135 | $x$146 << $128; + $136 = HEAP32[$3 >> 2] | 0; + if ($136 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $136 + 1; + $c$4$be = HEAPU8[$136 >> 0] | 0; + } else $c$4$be = ___shgetc($f) | 0; + $144 = HEAP8[51790 + ($c$4$be + 1) >> 0] | 0; + $135 = $144 & 255; + if (!($134 >>> 0 < 134217728 & $135 >>> 0 < $$123 >>> 0)) { + $$lcssa130 = $134; + $$lcssa131 = $144; + $c$4$be$lcssa = $c$4$be; + break; + } else $x$146 = $134; + } + $152 = $$lcssa131; + $155 = 0; + $157 = $$lcssa130; + $c$4$lcssa = $c$4$be$lcssa; } else { - $246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $152 = $130; + $155 = 0; + $157 = 0; + $c$4$lcssa = $c$124; } - HEAP32[$wk$444 >> 2] = $246; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $149 = _bitshift64Lshr(-1, -1, $128 | 0) | 0; + $150 = tempRet0; + if (($152 & 255) >>> 0 >= $$123 >>> 0 | ($155 >>> 0 > $150 >>> 0 | ($155 | 0) == ($150 | 0) & $157 >>> 0 > $149 >>> 0)) { + $$122 = $$123; + $292 = $157; + $293 = $155; + $c$8 = $c$4$lcssa; + label = 72; break; + } else { + $161 = $157; + $162 = $155; + $166 = $152; } - } - } - $250 = $labelInfo + 8 | 0; - $251 = $j$1$lcssa + -1 | 0; - HEAP32[$250 >> 2] = $251; - if (!$251) $$0 = 0; else { - _memset($238 | 0, 0, $251 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $258 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $273 = $i$538 * 7 | 0; - $276 = $labelInfo + 12 + ($272 << 2) | 0; - HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0); - $283 = $272 << 1; - $284 = $labelInfo + 655376 + ($283 << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0); - $292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0; - HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0); - $295 = $272 << 2; - $296 = $labelInfo + 131084 + ($295 << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314; - $317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0; - $321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0; - if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$250 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $325 = $labelInfo + 12 + ($i$637 << 2) | 0; - $328 = $i$637 << 1; - $329 = $labelInfo + 655376 + ($328 << 3) | 0; - HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0); - $335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0; - HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } - STACKTOP = sp; - return $$0 | 0; -} - -function _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; - } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; - do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$367 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$208 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $211 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $211; - break; - } - } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$367 >> 1] = $77; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $94 = $77; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $94 = $77; - } else { - HEAP16[$pnt2$367 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $94 = $74; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $94 = $74; - } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$367 >> 1] = $120; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $137 = $120; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $137 = $120; - } else { - HEAP16[$pnt2$367 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $137 = $117; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $137 = $117; - } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; + $163 = _bitshift64Shl($161 | 0, $162 | 0, $128 | 0) | 0; + $164 = tempRet0; + $167 = $166 & 255 | $163; + $168 = HEAP32[$3 >> 2] | 0; + if ($168 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $168 + 1; + $c$5$be = HEAPU8[$168 >> 0] | 0; + } else $c$5$be = ___shgetc($f) | 0; + $166 = HEAP8[51790 + ($c$5$be + 1) >> 0] | 0; + if (($166 & 255) >>> 0 >= $$123 >>> 0 | ($164 >>> 0 > $150 >>> 0 | ($164 | 0) == ($150 | 0) & $167 >>> 0 > $149 >>> 0)) { + $$122 = $$123; + $292 = $167; + $293 = $164; + $c$8 = $c$5$be; + label = 72; + break L63; } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $231 = $pnt$168 + 2 | 0; - $232 = $pnt2$367 + 2 | 0; - $233 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; - $wk_max$1$lcssa = $wk_max$2; + $161 = $167; + $162 = $164; + } + } + } + $120 = HEAP8[51790 + ($c$124 + 1) >> 0] | 0; + $121 = $120 & 255; + if ($121 >>> 0 < $$123 >>> 0) { + $186 = $121; + $x$266 = 0; + while (1) { + $185 = $186 + (Math_imul($x$266, $$123) | 0) | 0; + $187 = HEAP32[$3 >> 2] | 0; + if ($187 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $187 + 1; + $c$6$be = HEAPU8[$187 >> 0] | 0; + } else $c$6$be = ___shgetc($f) | 0; + $195 = HEAP8[51790 + ($c$6$be + 1) >> 0] | 0; + $186 = $195 & 255; + if (!($185 >>> 0 < 119304647 & $186 >>> 0 < $$123 >>> 0)) { + $$lcssa132 = $185; + $$lcssa133 = $195; + $c$6$be$lcssa = $c$6$be; + break; + } else $x$266 = $185; + } + $201 = $$lcssa133; + $294 = $$lcssa132; + $295 = 0; + $c$6$lcssa = $c$6$be$lcssa; + } else { + $201 = $120; + $294 = 0; + $295 = 0; + $c$6$lcssa = $c$124; + } + if (($201 & 255) >>> 0 < $$123 >>> 0) { + $203 = ___udivdi3(-1, -1, $$123 | 0, 0) | 0; + $204 = tempRet0; + $206 = $295; + $208 = $294; + $215 = $201; + $c$753 = $c$6$lcssa; + while (1) { + if ($206 >>> 0 > $204 >>> 0 | ($206 | 0) == ($204 | 0) & $208 >>> 0 > $203 >>> 0) { + $$122 = $$123; + $292 = $208; + $293 = $206; + $c$8 = $c$753; + label = 72; + break L63; + } + $212 = ___muldi3($208 | 0, $206 | 0, $$123 | 0, 0) | 0; + $213 = tempRet0; + $214 = $215 & 255; + if ($213 >>> 0 > 4294967295 | ($213 | 0) == -1 & $212 >>> 0 > ~$214 >>> 0) { + $$122 = $$123; + $292 = $208; + $293 = $206; + $c$8 = $c$753; + label = 72; + break L63; + } + $222 = _i64Add($214 | 0, 0, $212 | 0, $213 | 0) | 0; + $223 = tempRet0; + $224 = HEAP32[$3 >> 2] | 0; + if ($224 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $224 + 1; + $c$7$be = HEAPU8[$224 >> 0] | 0; + } else $c$7$be = ___shgetc($f) | 0; + $215 = HEAP8[51790 + ($c$7$be + 1) >> 0] | 0; + if (($215 & 255) >>> 0 >= $$123 >>> 0) { + $$122 = $$123; + $292 = $222; + $293 = $223; + $c$8 = $c$7$be; + label = 72; break; } else { - $dpnt$166 = $233; - $pnt$168 = $231; - $pnt2$367 = $232; - $wk_max$159 = $wk_max$2; + $206 = $223; + $208 = $222; + $c$753 = $c$7$be; } } } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $242 = HEAP32[$wk$443 >> 2] | 0; - if (($242 | 0) == ($i$341 | 0)) { - $248 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $248; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + $$122 = $$123; + $292 = $294; + $293 = $295; + $c$8 = $c$6$lcssa; + label = 72; } + } while (0); + if ((label | 0) == 72) if ((HEAPU8[51790 + ($c$8 + 1) >> 0] | 0) >>> 0 < $$122 >>> 0) { + do { + $239 = HEAP32[$3 >> 2] | 0; + if ($239 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { + HEAP32[$3 >> 2] = $239 + 1; + $c$9$be = HEAPU8[$239 >> 0] | 0; + } else $c$9$be = ___shgetc($f) | 0; + } while ((HEAPU8[51790 + ($c$9$be + 1) >> 0] | 0) >>> 0 < $$122 >>> 0); + $250 = ___errno_location() | 0; + HEAP32[$250 >> 2] = 34; + $260 = $1; + $262 = $0; + $neg$1 = ($0 & 1 | 0) == 0 & 0 == 0 ? $neg$0 : 0; + } else { + $260 = $293; + $262 = $292; + $neg$1 = $neg$0; } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $260 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); + if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; + if (!($260 >>> 0 < $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 < $0 >>> 0)) { + if (!(($0 & 1 | 0) != 0 | 0 != 0 | ($neg$1 | 0) != 0)) { + $271 = ___errno_location() | 0; + HEAP32[$271 >> 2] = 34; + $272 = _i64Add($0 | 0, $1 | 0, -1, -1) | 0; + $286 = tempRet0; + $287 = $272; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$537 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + if ($260 >>> 0 > $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 > $0 >>> 0) { + $279 = ___errno_location() | 0; + HEAP32[$279 >> 2] = 34; + $286 = $1; + $287 = $0; + break; } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $327 = $labelInfo + 12 + ($i$636 << 2) | 0; - $330 = $i$636 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } - STACKTOP = sp; - return $$0 | 0; + $281 = (($neg$1 | 0) < 0) << 31 >> 31; + $284 = _i64Subtract($262 ^ $neg$1 | 0, $260 ^ $281 | 0, $neg$1 | 0, $281 | 0) | 0; + $286 = tempRet0; + $287 = $284; + } while (0); + tempRet0 = $286; + return $287 | 0; } -function _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; +function _dispose_chunk($p, $psize) { + $p = $p | 0; + $psize = $psize | 0; + var $$0 = 0, $$02 = 0, $$1 = 0, $$lcssa = 0, $$pre$phi50Z2D = 0, $$pre$phi52Z2D = 0, $$pre$phiZ2D = 0, $$sum18 = 0, $$sum21 = 0, $0 = 0, $10 = 0, $100 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $115 = 0, $123 = 0, $128 = 0, $129 = 0, $132 = 0, $134 = 0, $136 = 0, $149 = 0, $15 = 0, $154 = 0, $156 = 0, $159 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $2 = 0, $20 = 0, $201 = 0, $207 = 0, $22 = 0, $222 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $231 = 0, $232 = 0, $238 = 0, $243 = 0, $244 = 0, $247 = 0, $249 = 0, $252 = 0, $257 = 0, $263 = 0, $267 = 0, $268 = 0, $275 = 0, $287 = 0, $292 = 0, $299 = 0, $300 = 0, $301 = 0, $35 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $62 = 0, $63 = 0, $68 = 0, $69 = 0, $78 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $99 = 0, $F16$0 = 0, $I19$0 = 0, $K20$043 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$042 = 0, $T$042$lcssa = 0; + $0 = $p + $psize | 0; + $2 = HEAP32[$p + 4 >> 2] | 0; + do if (!($2 & 1)) { + $5 = HEAP32[$p >> 2] | 0; + if (!($2 & 3)) return; + $9 = $p + (0 - $5) | 0; + $10 = $5 + $psize | 0; + $11 = HEAP32[2511] | 0; + if ($9 >>> 0 < $11 >>> 0) _abort(); + if (($9 | 0) == (HEAP32[2512] | 0)) { + $99 = $p + ($psize + 4) | 0; + $100 = HEAP32[$99 >> 2] | 0; + if (($100 & 3 | 0) != 3) { + $$0 = $9; + $$02 = $10; + break; } + HEAP32[2509] = $10; + HEAP32[$99 >> 2] = $100 & -2; + HEAP32[$p + (4 - $5) >> 2] = $10 | 1; + HEAP32[$0 >> 2] = $10; + return; } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $15 = $5 >>> 3; + if ($5 >>> 0 < 256) { + $18 = HEAP32[$p + (8 - $5) >> 2] | 0; + $20 = HEAP32[$p + (12 - $5) >> 2] | 0; + $22 = 10068 + ($15 << 1 << 2) | 0; + if (($18 | 0) != ($22 | 0)) { + if ($18 >>> 0 < $11 >>> 0) _abort(); + if ((HEAP32[$18 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + } + if (($20 | 0) == ($18 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $15); + $$0 = $9; + $$02 = $10; + break; + } + if (($20 | 0) == ($22 | 0)) $$pre$phi52Z2D = $20 + 8 | 0; else { + if ($20 >>> 0 < $11 >>> 0) _abort(); + $35 = $20 + 8 | 0; + if ((HEAP32[$35 >> 2] | 0) == ($9 | 0)) $$pre$phi52Z2D = $35; else _abort(); } + HEAP32[$18 + 12 >> 2] = $20; + HEAP32[$$pre$phi52Z2D >> 2] = $18; + $$0 = $9; + $$02 = $10; + break; } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; - do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$367 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$208 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $211 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $211; - break; - } - } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$367 >> 1] = $77; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $94 = $77; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $94 = $77; - } else { - HEAP16[$pnt2$367 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $94 = $74; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $94 = $74; - } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$367 >> 1] = $120; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $137 = $120; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $137 = $120; - } else { - HEAP16[$pnt2$367 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $137 = $117; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $137 = $117; - } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $231 = $pnt$168 + 2 | 0; - $232 = $pnt2$367 + 2 | 0; - $233 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $233; - $pnt$168 = $231; - $pnt2$367 = $232; - $wk_max$159 = $wk_max$2; - } + $40 = HEAP32[$p + (24 - $5) >> 2] | 0; + $42 = HEAP32[$p + (12 - $5) >> 2] | 0; + do if (($42 | 0) == ($9 | 0)) { + $$sum18 = 16 - $5 | 0; + $53 = $p + ($$sum18 + 4) | 0; + $54 = HEAP32[$53 >> 2] | 0; + if (!$54) { + $56 = $p + $$sum18 | 0; + $57 = HEAP32[$56 >> 2] | 0; + if (!$57) { + $R$1 = 0; + break; + } else { + $R$0 = $57; + $RP$0 = $56; } } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $R$0 = $54; + $RP$0 = $53; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; while (1) { - $242 = HEAP32[$wk$443 >> 2] | 0; - if (($242 | 0) == ($i$341 | 0)) { - $248 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + $59 = $R$0 + 20 | 0; + $60 = HEAP32[$59 >> 2] | 0; + if ($60) { + $R$0 = $60; + $RP$0 = $59; + continue; } - HEAP32[$wk$443 >> 2] = $248; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $62 = $R$0 + 16 | 0; + $63 = HEAP32[$62 >> 2] | 0; + if (!$63) { + $R$0$lcssa = $R$0; + $RP$0$lcssa = $RP$0; break; + } else { + $R$0 = $63; + $RP$0 = $62; } } - } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $260 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); + if ($RP$0$lcssa >>> 0 < $11 >>> 0) _abort(); else { + HEAP32[$RP$0$lcssa >> 2] = 0; + $R$1 = $R$0$lcssa; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$537 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } else { + $45 = HEAP32[$p + (8 - $5) >> 2] | 0; + if ($45 >>> 0 < $11 >>> 0) _abort(); + $47 = $45 + 12 | 0; + if ((HEAP32[$47 >> 2] | 0) != ($9 | 0)) _abort(); + $50 = $42 + 8 | 0; + if ((HEAP32[$50 >> 2] | 0) == ($9 | 0)) { + HEAP32[$47 >> 2] = $42; + HEAP32[$50 >> 2] = $45; + $R$1 = $42; + break; + } else _abort(); + } while (0); + if (!$40) { + $$0 = $9; + $$02 = $10; + } else { + $68 = HEAP32[$p + (28 - $5) >> 2] | 0; + $69 = 10332 + ($68 << 2) | 0; + if (($9 | 0) == (HEAP32[$69 >> 2] | 0)) { + HEAP32[$69 >> 2] = $R$1; + if (!$R$1) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $68); + $$0 = $9; + $$02 = $10; + break; + } + } else { + if ($40 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $78 = $40 + 16 | 0; + if ((HEAP32[$78 >> 2] | 0) == ($9 | 0)) HEAP32[$78 >> 2] = $R$1; else HEAP32[$40 + 20 >> 2] = $R$1; + if (!$R$1) { + $$0 = $9; + $$02 = $10; + break; + } } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $327 = $labelInfo + 12 + ($i$636 << 2) | 0; - $330 = $i$636 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } - STACKTOP = sp; - return $$0 | 0; -} - -function _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $83 = HEAP32[2511] | 0; + if ($R$1 >>> 0 < $83 >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $40; + $$sum21 = 16 - $5 | 0; + $87 = HEAP32[$p + $$sum21 >> 2] | 0; + do if ($87) if ($87 >>> 0 < $83 >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $87; + HEAP32[$87 + 24 >> 2] = $R$1; + break; + } while (0); + $93 = HEAP32[$p + ($$sum21 + 4) >> 2] | 0; + if (!$93) { + $$0 = $9; + $$02 = $10; + } else if ($93 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $93; + HEAP32[$93 + 24 >> 2] = $R$1; + $$0 = $9; + $$02 = $10; + break; } } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; - } + } else { + $$0 = $p; + $$02 = $psize; + } while (0); + $106 = HEAP32[2511] | 0; + if ($0 >>> 0 < $106 >>> 0) _abort(); + $108 = $p + ($psize + 4) | 0; + $109 = HEAP32[$108 >> 2] | 0; + if (!($109 & 2)) { + if (($0 | 0) == (HEAP32[2513] | 0)) { + $115 = (HEAP32[2510] | 0) + $$02 | 0; + HEAP32[2510] = $115; + HEAP32[2513] = $$0; + HEAP32[$$0 + 4 >> 2] = $115 | 1; + if (($$0 | 0) != (HEAP32[2512] | 0)) return; + HEAP32[2512] = 0; + HEAP32[2509] = 0; + return; } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; - do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$367 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$208 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $211 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $211; - break; - } - } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$367 >> 1] = $77; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $94 = $77; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $94 = $77; - } else { - HEAP16[$pnt2$367 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $94 = $74; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $94 = $74; - } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$367 >> 1] = $120; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $137 = $120; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $137 = $120; - } else { - HEAP16[$pnt2$367 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $137 = $117; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $137 = $117; - } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; + if (($0 | 0) == (HEAP32[2512] | 0)) { + $123 = (HEAP32[2509] | 0) + $$02 | 0; + HEAP32[2509] = $123; + HEAP32[2512] = $$0; + HEAP32[$$0 + 4 >> 2] = $123 | 1; + HEAP32[$$0 + $123 >> 2] = $123; + return; + } + $128 = ($109 & -8) + $$02 | 0; + $129 = $109 >>> 3; + do if ($109 >>> 0 < 256) { + $132 = HEAP32[$p + ($psize + 8) >> 2] | 0; + $134 = HEAP32[$p + ($psize + 12) >> 2] | 0; + $136 = 10068 + ($129 << 1 << 2) | 0; + if (($132 | 0) != ($136 | 0)) { + if ($132 >>> 0 < $106 >>> 0) _abort(); + if ((HEAP32[$132 + 12 >> 2] | 0) != ($0 | 0)) _abort(); + } + if (($134 | 0) == ($132 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $129); + break; + } + if (($134 | 0) == ($136 | 0)) $$pre$phi50Z2D = $134 + 8 | 0; else { + if ($134 >>> 0 < $106 >>> 0) _abort(); + $149 = $134 + 8 | 0; + if ((HEAP32[$149 >> 2] | 0) == ($0 | 0)) $$pre$phi50Z2D = $149; else _abort(); + } + HEAP32[$132 + 12 >> 2] = $134; + HEAP32[$$pre$phi50Z2D >> 2] = $132; + } else { + $154 = HEAP32[$p + ($psize + 24) >> 2] | 0; + $156 = HEAP32[$p + ($psize + 12) >> 2] | 0; + do if (($156 | 0) == ($0 | 0)) { + $167 = $p + ($psize + 20) | 0; + $168 = HEAP32[$167 >> 2] | 0; + if (!$168) { + $170 = $p + ($psize + 16) | 0; + $171 = HEAP32[$170 >> 2] | 0; + if (!$171) { + $R7$1 = 0; + break; } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $231 = $pnt$168 + 2 | 0; - $232 = $pnt2$367 + 2 | 0; - $233 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; - $wk_max$1$lcssa = $wk_max$2; + $R7$0 = $171; + $RP9$0 = $170; + } + } else { + $R7$0 = $168; + $RP9$0 = $167; + } + while (1) { + $173 = $R7$0 + 20 | 0; + $174 = HEAP32[$173 >> 2] | 0; + if ($174) { + $R7$0 = $174; + $RP9$0 = $173; + continue; + } + $176 = $R7$0 + 16 | 0; + $177 = HEAP32[$176 >> 2] | 0; + if (!$177) { + $R7$0$lcssa = $R7$0; + $RP9$0$lcssa = $RP9$0; break; } else { - $dpnt$166 = $233; - $pnt$168 = $231; - $pnt2$367 = $232; - $wk_max$159 = $wk_max$2; + $R7$0 = $177; + $RP9$0 = $176; } } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + if ($RP9$0$lcssa >>> 0 < $106 >>> 0) _abort(); else { + HEAP32[$RP9$0$lcssa >> 2] = 0; + $R7$1 = $R7$0$lcssa; + break; + } + } else { + $159 = HEAP32[$p + ($psize + 8) >> 2] | 0; + if ($159 >>> 0 < $106 >>> 0) _abort(); + $161 = $159 + 12 | 0; + if ((HEAP32[$161 >> 2] | 0) != ($0 | 0)) _abort(); + $164 = $156 + 8 | 0; + if ((HEAP32[$164 >> 2] | 0) == ($0 | 0)) { + HEAP32[$161 >> 2] = $156; + HEAP32[$164 >> 2] = $159; + $R7$1 = $156; + break; + } else _abort(); + } while (0); + if ($154) { + $182 = HEAP32[$p + ($psize + 28) >> 2] | 0; + $183 = 10332 + ($182 << 2) | 0; + if (($0 | 0) == (HEAP32[$183 >> 2] | 0)) { + HEAP32[$183 >> 2] = $R7$1; + if (!$R7$1) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $182); + break; + } + } else { + if ($154 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $192 = $154 + 16 | 0; + if ((HEAP32[$192 >> 2] | 0) == ($0 | 0)) HEAP32[$192 >> 2] = $R7$1; else HEAP32[$154 + 20 >> 2] = $R7$1; + if (!$R7$1) break; + } + $197 = HEAP32[2511] | 0; + if ($R7$1 >>> 0 < $197 >>> 0) _abort(); + HEAP32[$R7$1 + 24 >> 2] = $154; + $201 = HEAP32[$p + ($psize + 16) >> 2] | 0; + do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else { + HEAP32[$R7$1 + 16 >> 2] = $201; + HEAP32[$201 + 24 >> 2] = $R7$1; + break; + } while (0); + $207 = HEAP32[$p + ($psize + 20) >> 2] | 0; + if ($207) if ($207 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R7$1 + 20 >> 2] = $207; + HEAP32[$207 + 24 >> 2] = $R7$1; + break; + } } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } while (0); + HEAP32[$$0 + 4 >> 2] = $128 | 1; + HEAP32[$$0 + $128 >> 2] = $128; + if (($$0 | 0) == (HEAP32[2512] | 0)) { + HEAP32[2509] = $128; + return; + } else $$1 = $128; + } else { + HEAP32[$108 >> 2] = $109 & -2; + HEAP32[$$0 + 4 >> 2] = $$02 | 1; + HEAP32[$$0 + $$02 >> 2] = $$02; + $$1 = $$02; + } + $222 = $$1 >>> 3; + if ($$1 >>> 0 < 256) { + $224 = $222 << 1; + $225 = 10068 + ($224 << 2) | 0; + $226 = HEAP32[2507] | 0; + $227 = 1 << $222; + if (!($226 & $227)) { + HEAP32[2507] = $226 | $227; + $$pre$phiZ2D = 10068 + ($224 + 2 << 2) | 0; + $F16$0 = $225; + } else { + $231 = 10068 + ($224 + 2 << 2) | 0; + $232 = HEAP32[$231 >> 2] | 0; + if ($232 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + $$pre$phiZ2D = $231; + $F16$0 = $232; + } + } + HEAP32[$$pre$phiZ2D >> 2] = $$0; + HEAP32[$F16$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $F16$0; + HEAP32[$$0 + 12 >> 2] = $225; + return; + } + $238 = $$1 >>> 8; + if (!$238) $I19$0 = 0; else if ($$1 >>> 0 > 16777215) $I19$0 = 31; else { + $243 = ($238 + 1048320 | 0) >>> 16 & 8; + $244 = $238 << $243; + $247 = ($244 + 520192 | 0) >>> 16 & 4; + $249 = $244 << $247; + $252 = ($249 + 245760 | 0) >>> 16 & 2; + $257 = 14 - ($247 | $243 | $252) + ($249 << $252 >>> 15) | 0; + $I19$0 = $$1 >>> ($257 + 7 | 0) & 1 | $257 << 1; + } + $263 = 10332 + ($I19$0 << 2) | 0; + HEAP32[$$0 + 28 >> 2] = $I19$0; + HEAP32[$$0 + 20 >> 2] = 0; + HEAP32[$$0 + 16 >> 2] = 0; + $267 = HEAP32[2508] | 0; + $268 = 1 << $I19$0; + if (!($267 & $268)) { + HEAP32[2508] = $267 | $268; + HEAP32[$263 >> 2] = $$0; + HEAP32[$$0 + 24 >> 2] = $263; + HEAP32[$$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $$0; + return; + } + $275 = HEAP32[$263 >> 2] | 0; + L191 : do if ((HEAP32[$275 + 4 >> 2] & -8 | 0) == ($$1 | 0)) $T$0$lcssa = $275; else { + $K20$043 = $$1 << (($I19$0 | 0) == 31 ? 0 : 25 - ($I19$0 >>> 1) | 0); + $T$042 = $275; + while (1) { + $292 = $T$042 + 16 + ($K20$043 >>> 31 << 2) | 0; + $287 = HEAP32[$292 >> 2] | 0; + if (!$287) { + $$lcssa = $292; + $T$042$lcssa = $T$042; + break; + } + if ((HEAP32[$287 + 4 >> 2] & -8 | 0) == ($$1 | 0)) { + $T$0$lcssa = $287; + break L191; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $K20$043 = $K20$043 << 1; + $T$042 = $287; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + if ($$lcssa >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + HEAP32[$$lcssa >> 2] = $$0; + HEAP32[$$0 + 24 >> 2] = $T$042$lcssa; + HEAP32[$$0 + 12 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $$0; + return; } while (0); - if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; + $299 = $T$0$lcssa + 8 | 0; + $300 = HEAP32[$299 >> 2] | 0; + $301 = HEAP32[2511] | 0; + if (!($300 >>> 0 >= $301 >>> 0 & $T$0$lcssa >>> 0 >= $301 >>> 0)) _abort(); + HEAP32[$300 + 12 >> 2] = $$0; + HEAP32[$299 >> 2] = $$0; + HEAP32[$$0 + 8 >> 2] = $300; + HEAP32[$$0 + 12 >> 2] = $T$0$lcssa; + HEAP32[$$0 + 24 >> 2] = 0; + return; +} + +function _decompress_smooth_data($cinfo, $output_buf) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + var $$ = 0, $$0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $12 = 0, $122 = 0, $132 = 0, $134 = 0, $136 = 0, $138 = 0, $14 = 0, $149 = 0, $154 = 0, $157 = 0, $159 = 0, $163 = 0, $165 = 0, $170 = 0, $175 = 0, $178 = 0, $180 = 0, $184 = 0, $186 = 0, $191 = 0, $198 = 0, $2 = 0, $201 = 0, $203 = 0, $207 = 0, $209 = 0, $214 = 0, $221 = 0, $224 = 0, $226 = 0, $230 = 0, $232 = 0, $237 = 0, $244 = 0, $247 = 0, $249 = 0, $253 = 0, $255 = 0, $276 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $45 = 0, $47 = 0, $48 = 0, $5 = 0, $52 = 0, $6 = 0, $62 = 0, $63 = 0, $7 = 0, $72 = 0, $73 = 0, $75 = 0, $77 = 0, $8 = 0, $80 = 0, $83 = 0, $86 = 0, $89 = 0, $9 = 0, $92 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $DC1$036 = 0, $DC1$036$phi = 0, $DC2$037 = 0, $DC3$1 = 0, $DC4$038 = 0, $DC4$038$phi = 0, $DC5$039 = 0, $DC6$1 = 0, $DC7$040 = 0, $DC7$040$phi = 0, $DC8$041 = 0, $DC9$1 = 0, $access_rows$0 = 0, $block_num$035 = 0, $block_row$043 = 0, $block_rows$1 = 0, $buffer$0 = 0, $buffer_ptr$034 = 0, $ci$045 = 0, $compptr$044 = 0, $first_row$0 = 0, $last_row$0 = 0, $next_block_row$0 = 0, $next_block_row$132 = 0, $output_col$031 = 0, $output_ptr$042 = 0, $pred$0 = 0, $pred$1 = 0, $pred$2 = 0, $pred$3 = 0, $pred$4 = 0, $pred$5 = 0, $pred$6 = 0, $pred$7 = 0, $pred$8 = 0, $pred$9 = 0, $prev_block_row$0 = 0, $prev_block_row$133 = 0, $workspace = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $workspace = sp; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + $2 = $cinfo + 320 | 0; + $4 = (HEAP32[$2 >> 2] | 0) + -1 | 0; + $5 = $cinfo + 144 | 0; + $6 = $cinfo + 152 | 0; + $7 = $cinfo + 436 | 0; + $8 = $cinfo + 400 | 0; + $9 = $cinfo + 148 | 0; + $10 = $cinfo + 156 | 0; + while (1) { + $11 = HEAP32[$5 >> 2] | 0; + $12 = HEAP32[$6 >> 2] | 0; + if (($11 | 0) > ($12 | 0)) { + label = 7; + break; + } + $14 = HEAP32[$7 >> 2] | 0; + if (HEAP32[$14 + 20 >> 2] | 0) { + label = 7; + break; + } + if (($11 | 0) == ($12 | 0)) if ((HEAP32[$9 >> 2] | 0) >>> 0 > ((HEAP32[$10 >> 2] | 0) + ((HEAP32[$8 >> 2] | 0) == 0 & 1) | 0) >>> 0) { + label = 7; + break; + } + if (!(FUNCTION_TABLE_ii[HEAP32[$14 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + } + if ((label | 0) == 7) { + $29 = $cinfo + 36 | 0; + $30 = $cinfo + 4 | 0; + $31 = $1 + 112 | 0; + $32 = $cinfo + 448 | 0; + $33 = $workspace + 4 | 0; + $34 = $workspace + 18 | 0; + $35 = $workspace + 32 | 0; + $36 = $workspace + 16 | 0; + $37 = $workspace + 2 | 0; + if ((HEAP32[$29 >> 2] | 0) > 0) { + $ci$045 = 0; + $compptr$044 = HEAP32[$cinfo + 216 >> 2] | 0; while (1) { - $242 = HEAP32[$wk$443 >> 2] | 0; - if (($242 | 0) == ($i$341 | 0)) { - $248 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $248; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + if (HEAP32[$compptr$044 + 48 >> 2] | 0) { + $45 = HEAP32[$10 >> 2] | 0; + $47 = $compptr$044 + 12 | 0; + $48 = HEAP32[$47 >> 2] | 0; + if ($45 >>> 0 < $4 >>> 0) { + $access_rows$0 = $48 << 1; + $block_rows$1 = $48; + $last_row$0 = 0; + } else { + $52 = ((HEAP32[$compptr$044 + 32 >> 2] | 0) >>> 0) % ($48 >>> 0) | 0; + $$ = ($52 | 0) == 0 ? $48 : $52; + $access_rows$0 = $$; + $block_rows$1 = $$; + $last_row$0 = 1; + } + if (!$45) { + $buffer$0 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$30 >> 2] | 0) + 32 >> 2] & 31]($cinfo, HEAP32[$1 + 72 + ($ci$045 << 2) >> 2] | 0, 0, $access_rows$0, 0) | 0; + $first_row$0 = 1; + } else { + $62 = Math_imul($48, $45 + -1 | 0) | 0; + $63 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$30 >> 2] | 0) + 32 >> 2] & 31]($cinfo, HEAP32[$1 + 72 + ($ci$045 << 2) >> 2] | 0, $62, $48 + $access_rows$0 | 0, 0) | 0; + $buffer$0 = $63 + (HEAP32[$47 >> 2] << 2) | 0; + $first_row$0 = 0; + } + $72 = HEAP32[$31 >> 2] | 0; + $73 = $ci$045 * 6 | 0; + $75 = HEAP32[$compptr$044 + 76 >> 2] | 0; + $77 = HEAPU16[$75 >> 1] | 0; + $80 = HEAPU16[$75 + 2 >> 1] | 0; + $83 = HEAPU16[$75 + 16 >> 1] | 0; + $86 = HEAPU16[$75 + 32 >> 1] | 0; + $89 = HEAPU16[$75 + 18 >> 1] | 0; + $92 = HEAPU16[$75 + 4 >> 1] | 0; + $95 = HEAP32[(HEAP32[$32 >> 2] | 0) + 4 + ($ci$045 << 2) >> 2] | 0; + $96 = ($last_row$0 | 0) != 0; + $97 = $block_rows$1 + -1 | 0; + $98 = $compptr$044 + 28 | 0; + $99 = $72 + (($73 | 1) << 2) | 0; + $100 = $72 + ($73 + 2 << 2) | 0; + $101 = $72 + ($73 + 3 << 2) | 0; + $102 = $72 + ($73 + 4 << 2) | 0; + $103 = $72 + ($73 + 5 << 2) | 0; + $104 = $compptr$044 + 36 | 0; + $105 = $77 * 9 | 0; + $106 = $92 << 7; + $107 = $92 << 8; + $108 = $77 * 5 | 0; + $109 = $89 << 7; + $110 = $89 << 8; + $111 = $86 << 7; + $112 = $86 << 8; + $113 = $77 * 36 | 0; + $114 = $83 << 7; + $115 = $83 << 8; + $116 = $80 << 7; + $117 = $80 << 8; + if (($block_rows$1 | 0) > 0) { + $block_row$043 = 0; + $output_ptr$042 = HEAP32[$output_buf + ($ci$045 << 2) >> 2] | 0; + while (1) { + $122 = HEAP32[$buffer$0 + ($block_row$043 << 2) >> 2] | 0; + if ($first_row$0 & ($block_row$043 | 0) == 0) $prev_block_row$0 = $122; else $prev_block_row$0 = HEAP32[$buffer$0 + ($block_row$043 + -1 << 2) >> 2] | 0; + if ($96 & ($block_row$043 | 0) == ($97 | 0)) $next_block_row$0 = $122; else $next_block_row$0 = HEAP32[$buffer$0 + ($block_row$043 + 1 << 2) >> 2] | 0; + $132 = HEAP16[$prev_block_row$0 >> 1] | 0; + $134 = HEAP16[$122 >> 1] | 0; + $136 = HEAP16[$next_block_row$0 >> 1] | 0; + $138 = (HEAP32[$98 >> 2] | 0) + -1 | 0; + $DC1$036 = $132; + $DC2$037 = $132; + $DC4$038 = $134; + $DC5$039 = $134; + $DC7$040 = $136; + $DC8$041 = $136; + $block_num$035 = 0; + $buffer_ptr$034 = $122; + $next_block_row$132 = $next_block_row$0; + $output_col$031 = 0; + $prev_block_row$133 = $prev_block_row$0; + while (1) { + _jcopy_block_row($buffer_ptr$034, $workspace, 1); + if ($block_num$035 >>> 0 < $138 >>> 0) { + $DC3$1 = HEAP16[$prev_block_row$133 + 128 >> 1] | 0; + $DC6$1 = HEAP16[$buffer_ptr$034 + 128 >> 1] | 0; + $DC9$1 = HEAP16[$next_block_row$132 + 128 >> 1] | 0; + } else { + $DC3$1 = $DC2$037; + $DC6$1 = $DC5$039; + $DC9$1 = $DC8$041; + } + $149 = HEAP32[$99 >> 2] | 0; + if (($149 | 0) != 0 & (HEAP16[$37 >> 1] | 0) == 0) { + $154 = Math_imul($113, $DC4$038 - $DC6$1 | 0) | 0; + if (($154 | 0) > -1) { + $157 = ($154 + $116 | 0) / ($117 | 0) | 0; + if (($149 | 0) > 0) { + $159 = 1 << $149; + $pred$1 = ($157 | 0) < ($159 | 0) ? $157 : $159 + -1 | 0; + } else $pred$1 = $157; + } else { + $163 = ($116 - $154 | 0) / ($117 | 0) | 0; + if (($149 | 0) > 0) { + $165 = 1 << $149; + $pred$0 = ($163 | 0) < ($165 | 0) ? $163 : $165 + -1 | 0; + } else $pred$0 = $163; + $pred$1 = 0 - $pred$0 | 0; + } + HEAP16[$37 >> 1] = $pred$1; + } + $170 = HEAP32[$100 >> 2] | 0; + if (($170 | 0) != 0 & (HEAP16[$36 >> 1] | 0) == 0) { + $175 = Math_imul($113, $DC2$037 - $DC8$041 | 0) | 0; + if (($175 | 0) > -1) { + $178 = ($175 + $114 | 0) / ($115 | 0) | 0; + if (($170 | 0) > 0) { + $180 = 1 << $170; + $pred$3 = ($178 | 0) < ($180 | 0) ? $178 : $180 + -1 | 0; + } else $pred$3 = $178; + } else { + $184 = ($114 - $175 | 0) / ($115 | 0) | 0; + if (($170 | 0) > 0) { + $186 = 1 << $170; + $pred$2 = ($184 | 0) < ($186 | 0) ? $184 : $186 + -1 | 0; + } else $pred$2 = $184; + $pred$3 = 0 - $pred$2 | 0; + } + HEAP16[$36 >> 1] = $pred$3; + } + $191 = HEAP32[$101 >> 2] | 0; + if (($191 | 0) != 0 & (HEAP16[$35 >> 1] | 0) == 0) { + $198 = Math_imul($105, $DC2$037 - ($DC5$039 << 1) + $DC8$041 | 0) | 0; + do if (($198 | 0) > -1) { + $201 = ($198 + $111 | 0) / ($112 | 0) | 0; + if (($191 | 0) <= 0) { + $pred$5 = $201; + break; + } + $203 = 1 << $191; + $pred$5 = ($201 | 0) < ($203 | 0) ? $201 : $203 + -1 | 0; + } else { + $207 = ($111 - $198 | 0) / ($112 | 0) | 0; + if (($191 | 0) > 0) { + $209 = 1 << $191; + $pred$4 = ($207 | 0) < ($209 | 0) ? $207 : $209 + -1 | 0; + } else $pred$4 = $207; + $pred$5 = 0 - $pred$4 | 0; + } while (0); + HEAP16[$35 >> 1] = $pred$5; + } + $214 = HEAP32[$102 >> 2] | 0; + if (($214 | 0) != 0 & (HEAP16[$34 >> 1] | 0) == 0) { + $221 = Math_imul($108, $DC1$036 - $DC7$040 - $DC3$1 + $DC9$1 | 0) | 0; + do if (($221 | 0) > -1) { + $224 = ($221 + $109 | 0) / ($110 | 0) | 0; + if (($214 | 0) <= 0) { + $pred$7 = $224; + break; + } + $226 = 1 << $214; + $pred$7 = ($224 | 0) < ($226 | 0) ? $224 : $226 + -1 | 0; + } else { + $230 = ($109 - $221 | 0) / ($110 | 0) | 0; + if (($214 | 0) > 0) { + $232 = 1 << $214; + $pred$6 = ($230 | 0) < ($232 | 0) ? $230 : $232 + -1 | 0; + } else $pred$6 = $230; + $pred$7 = 0 - $pred$6 | 0; + } while (0); + HEAP16[$34 >> 1] = $pred$7; + } + $237 = HEAP32[$103 >> 2] | 0; + if (($237 | 0) != 0 & (HEAP16[$33 >> 1] | 0) == 0) { + $244 = Math_imul($105, $DC4$038 - ($DC5$039 << 1) + $DC6$1 | 0) | 0; + do if (($244 | 0) > -1) { + $247 = ($244 + $106 | 0) / ($107 | 0) | 0; + if (($237 | 0) <= 0) { + $pred$9 = $247; + break; + } + $249 = 1 << $237; + $pred$9 = ($247 | 0) < ($249 | 0) ? $247 : $249 + -1 | 0; + } else { + $253 = ($106 - $244 | 0) / ($107 | 0) | 0; + if (($237 | 0) > 0) { + $255 = 1 << $237; + $pred$8 = ($253 | 0) < ($255 | 0) ? $253 : $255 + -1 | 0; + } else $pred$8 = $253; + $pred$9 = 0 - $pred$8 | 0; + } while (0); + HEAP16[$33 >> 1] = $pred$9; + } + FUNCTION_TABLE_viiiii[$95 & 31]($cinfo, $compptr$044, $workspace, $output_ptr$042, $output_col$031); + $block_num$035 = $block_num$035 + 1 | 0; + if ($block_num$035 >>> 0 > $138 >>> 0) break; else { + $DC7$040$phi = $DC8$041; + $DC4$038$phi = $DC5$039; + $DC1$036$phi = $DC2$037; + $DC2$037 = $DC3$1; + $DC5$039 = $DC6$1; + $DC8$041 = $DC9$1; + $buffer_ptr$034 = $buffer_ptr$034 + 128 | 0; + $next_block_row$132 = $next_block_row$132 + 128 | 0; + $output_col$031 = (HEAP32[$104 >> 2] | 0) + $output_col$031 | 0; + $prev_block_row$133 = $prev_block_row$133 + 128 | 0; + $DC7$040 = $DC7$040$phi; + $DC4$038 = $DC4$038$phi; + $DC1$036 = $DC1$036$phi; + } + } + $block_row$043 = $block_row$043 + 1 | 0; + if (($block_row$043 | 0) >= ($block_rows$1 | 0)) break; else $output_ptr$042 = $output_ptr$042 + (HEAP32[$104 >> 2] << 2) | 0; + } + } } + $ci$045 = $ci$045 + 1 | 0; + if (($ci$045 | 0) >= (HEAP32[$29 >> 2] | 0)) break; else $compptr$044 = $compptr$044 + 84 | 0; } } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $260 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$537 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $327 = $labelInfo + 12 + ($i$636 << 2) | 0; - $330 = $i$636 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + $276 = (HEAP32[$10 >> 2] | 0) + 1 | 0; + HEAP32[$10 >> 2] = $276; + $$0 = $276 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0 ? 3 : 4; } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision10DoGPyramid25difference_image_binomialERNS_5ImageERKS1_S4_($this, $d, $im1, $im2) { + $this = $this | 0; + $d = $d | 0; + $im1 = $im1 | 0; + $im2 = $im2 | 0; + var $0 = 0, $101 = 0, $106 = 0, $107 = 0, $111 = 0, $113 = 0, $122 = 0, $127 = 0, $128 = 0, $13 = 0, $132 = 0, $134 = 0, $14 = 0, $143 = 0, $148 = 0, $149 = 0, $153 = 0, $154 = 0, $162 = 0, $167 = 0, $168 = 0, $172 = 0, $173 = 0, $18 = 0, $182 = 0, $187 = 0, $188 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $26 = 0, $31 = 0, $32 = 0, $36 = 0, $44 = 0, $49 = 0, $50 = 0, $54 = 0, $63 = 0, $68 = 0, $69 = 0, $73 = 0, $8 = 0, $82 = 0, $87 = 0, $88 = 0, $92 = 0, $i$012 = 0, $j$011 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $0 = sp; + if ((HEAP32[$d >> 2] | 0) != 2) { + $8 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21854) | 0, 21425) | 0, 34302) | 0, 86) | 0, 34309) | 0, 21899) | 0; + $13 = __ZNKSt3__18ios_base6getlocEv($8 + (HEAP32[(HEAP32[$8 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $13; + $14 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 28 >> 2] & 63]($14, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($8, $18) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + _abort(); + } + if ((HEAP32[$im1 >> 2] | 0) != 2) { + $26 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21925) | 0, 21425) | 0, 34302) | 0, 87) | 0, 34309) | 0, 21899) | 0; + $31 = __ZNKSt3__18ios_base6getlocEv($26 + (HEAP32[(HEAP32[$26 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $31; + $32 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $36 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$32 >> 2] | 0) + 28 >> 2] & 63]($32, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($26, $36) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($26) | 0; + _abort(); + } + if ((HEAP32[$im2 >> 2] | 0) != 2) { + $44 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21972) | 0, 21425) | 0, 34302) | 0, 88) | 0, 34309) | 0, 21899) | 0; + $49 = __ZNKSt3__18ios_base6getlocEv($44 + (HEAP32[(HEAP32[$44 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $49; + $50 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $54 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$50 >> 2] | 0) + 28 >> 2] & 63]($50, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($44, $54) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($44) | 0; + _abort(); + } + if ((HEAP32[$d + 16 >> 2] | 0) != 1) { + $63 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22019) | 0, 21425) | 0, 34302) | 0, 89) | 0, 34309) | 0, 22060) | 0; + $68 = __ZNKSt3__18ios_base6getlocEv($63 + (HEAP32[(HEAP32[$63 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $68; + $69 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $73 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$69 >> 2] | 0) + 28 >> 2] & 63]($69, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($63, $73) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($63) | 0; + _abort(); + } + if ((HEAP32[$im1 + 16 >> 2] | 0) != 1) { + $82 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22097) | 0, 21425) | 0, 34302) | 0, 90) | 0, 34309) | 0, 22060) | 0; + $87 = __ZNKSt3__18ios_base6getlocEv($82 + (HEAP32[(HEAP32[$82 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $87; + $88 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $92 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$88 >> 2] | 0) + 28 >> 2] & 63]($88, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($82, $92) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($82) | 0; + _abort(); + } + if ((HEAP32[$im2 + 16 >> 2] | 0) != 1) { + $101 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22140) | 0, 21425) | 0, 34302) | 0, 91) | 0, 34309) | 0, 22060) | 0; + $106 = __ZNKSt3__18ios_base6getlocEv($101 + (HEAP32[(HEAP32[$101 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $106; + $107 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $111 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$107 >> 2] | 0) + 28 >> 2] & 63]($107, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($101, $111) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($101) | 0; + _abort(); + } + $113 = HEAP32[$d + 4 >> 2] | 0; + if (($113 | 0) != (HEAP32[$im2 + 4 >> 2] | 0)) { + $122 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22183) | 0, 21425) | 0, 34302) | 0, 92) | 0, 34309) | 0, 22231) | 0; + $127 = __ZNKSt3__18ios_base6getlocEv($122 + (HEAP32[(HEAP32[$122 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $127; + $128 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $132 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$128 >> 2] | 0) + 28 >> 2] & 63]($128, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($122, $132) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($122) | 0; + _abort(); + } + $134 = HEAP32[$d + 8 >> 2] | 0; + if (($134 | 0) != (HEAP32[$im2 + 8 >> 2] | 0)) { + $143 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22263) | 0, 21425) | 0, 34302) | 0, 93) | 0, 34309) | 0, 22313) | 0; + $148 = __ZNKSt3__18ios_base6getlocEv($143 + (HEAP32[(HEAP32[$143 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $148; + $149 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $153 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$149 >> 2] | 0) + 28 >> 2] & 63]($149, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($143, $153) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($143) | 0; + _abort(); + } + $154 = $im1 + 4 | 0; + if ((HEAP32[$154 >> 2] | 0) != ($113 | 0)) { + $162 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22346) | 0, 21425) | 0, 34302) | 0, 94) | 0, 34309) | 0, 22231) | 0; + $167 = __ZNKSt3__18ios_base6getlocEv($162 + (HEAP32[(HEAP32[$162 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $167; + $168 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $172 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$168 >> 2] | 0) + 28 >> 2] & 63]($168, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($162, $172) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($162) | 0; + _abort(); + } + $173 = $im1 + 8 | 0; + if ((HEAP32[$173 >> 2] | 0) != ($134 | 0)) { + $182 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22396) | 0, 21425) | 0, 34302) | 0, 95) | 0, 34309) | 0, 22313) | 0; + $187 = __ZNKSt3__18ios_base6getlocEv($182 + (HEAP32[(HEAP32[$182 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $187; + $188 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $192 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$188 >> 2] | 0) + 28 >> 2] & 63]($188, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($182, $192) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($182) | 0; + _abort(); + } + if ($134) { + $i$012 = 0; + do { + $193 = __ZN6vision5Image3getIfEEPT_j($d, $i$012) | 0; + $194 = __ZNK6vision5Image3getIfEEPKT_j($im1, $i$012) | 0; + $195 = __ZNK6vision5Image3getIfEEPKT_j($im2, $i$012) | 0; + $196 = HEAP32[$154 >> 2] | 0; + if ($196) { + $j$011 = 0; + do { + HEAPF32[$193 + ($j$011 << 2) >> 2] = +HEAPF32[$194 + ($j$011 << 2) >> 2] - +HEAPF32[$195 + ($j$011 << 2) >> 2]; + $j$011 = $j$011 + 1 | 0; + } while (($j$011 | 0) != ($196 | 0)); } - } + $i$012 = $i$012 + 1 | 0; + } while ($i$012 >>> 0 < (HEAP32[$173 >> 2] | 0) >>> 0); } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc($this, $__b, $__e, $__iob, $__err, $__tm, $__fmt, $0) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $0 = $0 | 0; + var $$byval_copy26 = 0, $$byval_copy30 = 0, $$sroa$07$0 = 0, $1 = 0, $10 = 0, $103 = 0, $106 = 0, $108 = 0, $11 = 0, $111 = 0, $112 = 0, $117 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $40 = 0, $44 = 0, $47 = 0, $49 = 0, $5 = 0, $52 = 0, $53 = 0, $58 = 0, $59 = 0, $6 = 0, $64 = 0, $67 = 0, $7 = 0, $8 = 0, $83 = 0, $86 = 0, $9 = 0, $90 = 0, $95 = 0, $99 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy30 = sp + 132 | 0; + $$byval_copy26 = sp + 116 | 0; + $1 = sp + 128 | 0; + $2 = sp + 124 | 0; + $3 = sp + 120 | 0; + $4 = sp + 112 | 0; + $5 = sp + 108 | 0; + $6 = sp + 104 | 0; + $7 = sp + 100 | 0; + $8 = sp + 96 | 0; + $9 = sp + 92 | 0; + $10 = sp + 88 | 0; + $11 = sp + 84 | 0; + $12 = sp + 80 | 0; + $13 = sp + 76 | 0; + $14 = sp + 72 | 0; + $15 = sp + 68 | 0; + $16 = sp + 64 | 0; + $17 = sp + 60 | 0; + $18 = sp + 56 | 0; + $19 = sp + 52 | 0; + $20 = sp + 48 | 0; + $21 = sp + 44 | 0; + $22 = sp + 40 | 0; + $23 = sp + 36 | 0; + $24 = sp + 32 | 0; + $25 = sp + 28 | 0; + $26 = sp + 24 | 0; + $27 = sp + 20 | 0; + $28 = sp + 16 | 0; + $29 = sp + 12 | 0; + $30 = sp + 8 | 0; + $31 = sp + 4 | 0; + $32 = sp; + HEAP32[$__err >> 2] = 0; + $33 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$1 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($33) | 0; + do switch ($__fmt << 24 >> 24 | 0) { + case 65: + case 97: + { + HEAP32[$2 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$2 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 24 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 104: + case 66: + case 98: + { + HEAP32[$3 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$3 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 16 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 99: + { + $40 = $this + 8 | 0; + $44 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$40 >> 2] | 0) + 12 >> 2] & 127]($40) | 0; + HEAP32[$4 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$5 >> 2] = HEAP32[$__e >> 2]; + $47 = HEAP8[$44 >> 0] | 0; + $49 = ($47 & 1) == 0; + $52 = $44 + 4 | 0; + $53 = $49 ? $52 : HEAP32[$44 + 8 >> 2] | 0; + $58 = $53 + (($49 ? ($47 & 255) >>> 1 : HEAP32[$52 >> 2] | 0) << 2) | 0; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$5 >> 2]; + $59 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, $53, $58) | 0; + HEAP32[$__b >> 2] = $59; + label = 26; + break; + } + case 101: + case 100: + { + HEAP32[$6 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$6 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE9__get_dayERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 12 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 68: + { + HEAP32[$7 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$8 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$8 >> 2]; + $64 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 14280, 14312) | 0; + HEAP32[$__b >> 2] = $64; + label = 26; + break; + } + case 70: + { + HEAP32[$9 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$10 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$10 >> 2]; + $67 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 14312, 14344) | 0; + HEAP32[$__b >> 2] = $67; + label = 26; + break; + } + case 72: + { + HEAP32[$11 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$11 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_hourERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 73: + { + HEAP32[$12 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$12 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_12_hourERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 106: + { + HEAP32[$13 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$13 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE18__get_day_year_numERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 28 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 109: + { + HEAP32[$14 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$14 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_monthERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 16 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 77: + { + HEAP32[$15 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$15 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE12__get_minuteERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 4 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 116: + case 110: + { + HEAP32[$16 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$16 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIwEE($this, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 112: + { + HEAP32[$17 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$17 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 114: + { + HEAP32[$18 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$19 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$18 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$19 >> 2]; + $83 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 14344, 14388) | 0; + HEAP32[$__b >> 2] = $83; + label = 26; + break; + } + case 82: + { + HEAP32[$20 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$21 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$20 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$21 >> 2]; + $86 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 14388, 14408) | 0; + HEAP32[$__b >> 2] = $86; + label = 26; + break; + } + case 83: + { + HEAP32[$22 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$22 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE12__get_secondERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 84: + { + HEAP32[$23 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$24 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$23 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$24 >> 2]; + $90 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 14408, 14440) | 0; + HEAP32[$__b >> 2] = $90; + label = 26; + break; + } + case 119: + { + HEAP32[$25 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$25 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_weekdayERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 24 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 120: + { + $95 = HEAP32[(HEAP32[$this >> 2] | 0) + 20 >> 2] | 0; + HEAP32[$26 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$27 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$27 >> 2]; + $$sroa$07$0 = FUNCTION_TABLE_iiiiiii[$95 & 63]($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm) | 0; + break; + } + case 88: + { + $99 = $this + 8 | 0; + $103 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$99 >> 2] | 0) + 24 >> 2] & 127]($99) | 0; + HEAP32[$28 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$29 >> 2] = HEAP32[$__e >> 2]; + $106 = HEAP8[$103 >> 0] | 0; + $108 = ($106 & 1) == 0; + $111 = $103 + 4 | 0; + $112 = $108 ? $111 : HEAP32[$103 + 8 >> 2] | 0; + $117 = $112 + (($108 ? ($106 & 255) >>> 1 : HEAP32[$111 >> 2] | 0) << 2) | 0; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$29 >> 2]; + $118 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, $112, $117) | 0; + HEAP32[$__b >> 2] = $118; + label = 26; + break; + } + case 121: + { + HEAP32[$30 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$30 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 20 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 89: + { + HEAP32[$31 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$31 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_year4ERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 20 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 37: + { + HEAP32[$32 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$32 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIwEE($this, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + default: + { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + label = 26; + } + } while (0); + if ((label | 0) == 26) $$sroa$07$0 = HEAP32[$__b >> 2] | 0; + STACKTOP = sp; + return $$sroa$07$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i15 = 0, $$0$i$i$i7 = 0, $$0$i$i$i9 = 0, $$0$i$i58 = 0, $$lcssa81 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $114 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $120 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $135 = 0, $138 = 0, $141 = 0, $148 = 0, $15 = 0, $150 = 0, $157 = 0, $158 = 0, $167 = 0, $168 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $190 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $33 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $46 = 0, $49 = 0, $56 = 0, $58 = 0, $61 = 0, $62 = 0, $64 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $78 = 0, $80 = 0, $83 = 0, $84 = 0, $89 = 0, $91 = 0, $__p$0$i$i57 = 0, $__p$0$ph$i$i = 0, $__v$i$i13 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $sub$061 = 0, $sub$061$lcssa = 0, $t1$060 = 0, $t1$060$lcssa = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i13 = sp + 64 | 0; + $0 = sp + 40 | 0; + $1 = sp + 16 | 0; + $2 = sp; + $4 = $first; + L1 : do if (($last - $4 | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 84) { + $10 = HEAP8[$first + 1 >> 0] | 0; + if ($10 << 24 >> 24 == 95) { + $15 = HEAP32[$db + 36 >> 2] | 0; + if ((HEAP32[$db + 32 >> 2] | 0) == ($15 | 0)) { + $$0 = $first; + break; + } + $18 = HEAP32[$15 + -16 >> 2] | 0; + if (($18 | 0) == (HEAP32[$15 + -12 >> 2] | 0)) { + HEAP8[$0 >> 0] = 4; + $56 = $0 + 1 | 0; + HEAP8[$56 >> 0] = 84; + HEAP8[$56 + 1 >> 0] = 95; + HEAP8[$0 + 3 >> 0] = 0; + $58 = $0 + 12 | 0; + HEAP32[$58 >> 2] = 0; + HEAP32[$58 + 4 >> 2] = 0; + HEAP32[$58 + 8 >> 2] = 0; + $61 = $db + 4 | 0; + $62 = HEAP32[$61 >> 2] | 0; + $64 = HEAP32[$db + 8 >> 2] | 0; + if ($62 >>> 0 < $64 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($62, $0); + HEAP32[$61 >> 2] = (HEAP32[$61 >> 2] | 0) + 24; + } else { + $71 = HEAP32[$db >> 2] | 0; + $72 = $62 - $71 | 0; + $73 = ($72 | 0) / 24 | 0; + $74 = $73 + 1 | 0; + if (($72 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $78 = ($64 - $71 | 0) / 24 | 0; + if ($78 >>> 0 < 1073741823) { + $80 = $78 << 1; + $$0$i$i$i9 = $80 >>> 0 < $74 >>> 0 ? $74 : $80; + } else $$0$i$i$i9 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i9, $73, $db + 12 | 0); + $83 = $__v$i$i13 + 8 | 0; + $84 = HEAP32[$83 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($84, $0); + HEAP32[$83 >> 2] = $84 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + HEAP8[$db + 62 >> 0] = 1; + $$0 = $first + 2 | 0; + break; } + $22 = HEAP32[$18 >> 2] | 0; + $24 = HEAP32[$18 + 4 >> 2] | 0; + $25 = $db + 4 | 0; + $26 = $db + 8 | 0; + $27 = $db + 12 | 0; + $28 = $__v$i$i13 + 8 | 0; + L20 : do if (($22 | 0) != ($24 | 0)) { + $33 = $22; + while (1) { + $30 = HEAP32[$25 >> 2] | 0; + if (($30 | 0) == (HEAP32[$26 >> 2] | 0)) { + $41 = $30 - (HEAP32[$db >> 2] | 0) | 0; + $42 = ($41 | 0) / 24 | 0; + $43 = $42 + 1 | 0; + if (($41 | 0) < -24) break; + if ($42 >>> 0 < 1073741823) { + $46 = $42 << 1; + $$0$i$i$i7 = $46 >>> 0 < $43 >>> 0 ? $43 : $46; + } else $$0$i$i$i7 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i7, $42, $27); + $49 = HEAP32[$28 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49, $33); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49 + 12 | 0, $33 + 12 | 0); + HEAP32[$28 >> 2] = $49 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30, $33); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30 + 12 | 0, $33 + 12 | 0); + HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 24; + } + $33 = $33 + 24 | 0; + if (($33 | 0) == ($24 | 0)) break L20; + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + } while (0); + $$0 = $first + 2 | 0; + break; } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + $isdigittmp = ($10 << 24 >> 24) + -48 | 0; + if ($isdigittmp >>> 0 < 10) { + $89 = $first + 2 | 0; + if (($89 | 0) == ($last | 0)) $$0 = $first; else { + $sub$061 = $isdigittmp; + $t1$060 = $89; while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - $35 = HEAPU8[$pnt$168 + 1 >> 0] | 0; - do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($46 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $46; - $49 = ($46 << 16 >> 16) * 7 | 0; - $51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1; - $55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264; - $59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0; - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $70 = $69 << 16 >> 16; - $71 = $69 << 16 >> 16 > 0; - if ($65 << 16 >> 16 <= 0) { - if ($71) { - HEAP16[$pnt2$367 >> 1] = $69; - $171 = $70 * 7 | 0; - $173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1; - $177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264; - $181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075; - $185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0; - if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $191 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($191 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $191; - $194 = ($191 << 16 >> 16) * 7 | 0; - $196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1; - $200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264; - $204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0; - HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075; - $208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0; - if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$208 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $211 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $211; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16; - $216 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $211; - break; - } - } - if ($71) { - $74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0; - if (($74 | 0) > ($77 | 0)) { - HEAP16[$pnt2$367 >> 1] = $77; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $94 = $77; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $94 = $77; - } else { - HEAP16[$pnt2$367 >> 1] = $74; - if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $94 = $74; - break; - } else $wk$153 = $wk$153 + 4 | 0; + $91 = HEAP8[$t1$060 >> 0] | 0; + $isdigittmp4 = ($91 << 24 >> 24) + -48 | 0; + if ($isdigittmp4 >>> 0 >= 10) { + $$lcssa81 = $91; + $sub$061$lcssa = $sub$061; + $t1$060$lcssa = $t1$060; + break; + } + $t1$060 = $t1$060 + 1 | 0; + if (($t1$060 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } else $sub$061 = $isdigittmp4 + ($sub$061 * 10 | 0) | 0; + } + if ($$lcssa81 << 24 >> 24 == 95) { + $101 = HEAP32[$db + 36 >> 2] | 0; + if ((HEAP32[$db + 32 >> 2] | 0) == ($101 | 0)) $$0 = $first; else { + $103 = $sub$061$lcssa + 1 | 0; + $107 = HEAP32[$101 + -16 >> 2] | 0; + if ($103 >>> 0 < (HEAP32[$101 + -12 >> 2] | 0) - $107 >> 4 >>> 0) { + $114 = HEAP32[$107 + ($103 << 4) >> 2] | 0; + $116 = HEAP32[$107 + ($103 << 4) + 4 >> 2] | 0; + $117 = $db + 4 | 0; + $118 = $db + 8 | 0; + $119 = $db + 12 | 0; + $120 = $__v$i$i13 + 8 | 0; + L43 : do if (($114 | 0) != ($116 | 0)) { + $125 = $114; + while (1) { + $122 = HEAP32[$117 >> 2] | 0; + if (($122 | 0) == (HEAP32[$118 >> 2] | 0)) { + $133 = $122 - (HEAP32[$db >> 2] | 0) | 0; + $134 = ($133 | 0) / 24 | 0; + $135 = $134 + 1 | 0; + if (($133 | 0) < -24) break; + if ($134 >>> 0 < 1073741823) { + $138 = $134 << 1; + $$0$i$i$i15 = $138 >>> 0 < $135 >>> 0 ? $135 : $138; + } else $$0$i$i$i15 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i15, $134, $119); + $141 = HEAP32[$120 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141, $125); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141 + 12 | 0, $125 + 12 | 0); + HEAP32[$120 >> 2] = $141 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); + } else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122, $125); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122 + 12 | 0, $125 + 12 | 0); + HEAP32[$117 >> 2] = (HEAP32[$117 >> 2] | 0) + 24; } - } else $94 = $74; - } - $96 = ($94 << 16 >> 16) * 7 | 0; - $98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1; - $102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264; - $106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0; - HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + $125 = $125 + 24 | 0; + if (($125 | 0) == ($116 | 0)) break L43; + } + __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + } while (0); + $$0 = $t1$060$lcssa + 1 | 0; break; } - $112 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($112 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $65; - $152 = $66 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075; - $166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; + $148 = $t1$060$lcssa + 1 | 0; + $150 = $148 - $4 | 0; + if ($150 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); + if ($150 >>> 0 < 11) { + HEAP8[$2 >> 0] = $150 << 1; + $__p$0$ph$i$i = $2 + 1 | 0; + } else { + $157 = $150 + 16 & -16; + $158 = _malloc($157) | 0; + HEAP32[$2 + 8 >> 2] = $158; + HEAP32[$2 >> 2] = $157 | 1; + HEAP32[$2 + 4 >> 2] = $150; + $__p$0$ph$i$i = $158; } - $117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - $120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($117 | 0) > ($120 | 0)) { - HEAP16[$pnt2$367 >> 1] = $120; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $137 = $120; - break; - } else $wk$249 = $wk$249 + 4 | 0; + if (($148 | 0) != ($first | 0)) { + $$0$i$i58 = $first; + $__p$0$i$i57 = $__p$0$ph$i$i; + while (1) { + HEAP8[$__p$0$i$i57 >> 0] = HEAP8[$$0$i$i58 >> 0] | 0; + if (($$0$i$i58 | 0) == ($t1$060$lcssa | 0)) break; else { + $$0$i$i58 = $$0$i$i58 + 1 | 0; + $__p$0$i$i57 = $__p$0$i$i57 + 1 | 0; } - } else $137 = $120; + } + } + HEAP8[$__p$0$ph$i$i + $150 >> 0] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); + $167 = $db + 4 | 0; + $168 = HEAP32[$167 >> 2] | 0; + $170 = HEAP32[$db + 8 >> 2] | 0; + if ($168 >>> 0 < $170 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $1); + HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24; } else { - HEAP16[$pnt2$367 >> 1] = $117; - if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $137 = $117; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $137 = $117; + $177 = HEAP32[$db >> 2] | 0; + $178 = $168 - $177 | 0; + $179 = ($178 | 0) / 24 | 0; + $180 = $179 + 1 | 0; + if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $184 = ($170 - $177 | 0) / 24 | 0; + if ($184 >>> 0 < 1073741823) { + $186 = $184 << 1; + $$0$i$i$i = $186 >>> 0 < $180 >>> 0 ? $180 : $186; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i, $179, $db + 12 | 0); + $189 = $__v$i$i13 + 8 | 0; + $190 = HEAP32[$189 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $1); + HEAP32[$189 >> 2] = $190 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); } - $139 = ($137 << 16 >> 16) * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $231 = $pnt$168 + 2 | 0; - $232 = $pnt2$367 + 2 | 0; - $233 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $233; - $pnt$1$lcssa = $231; - $pnt2$3$lcssa = $232; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $233; - $pnt$168 = $231; - $pnt2$367 = $232; - $wk_max$159 = $wk_max$2; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + HEAP8[$db + 62 >> 0] = 1; + $$0 = $148; } - } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $240 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $242 = HEAP32[$wk$443 >> 2] | 0; - if (($242 | 0) == ($i$341 | 0)) { - $248 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $248; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $252 = $labelInfo + 8 | 0; - $253 = $j$1$lcssa + -1 | 0; - HEAP32[$252 >> 2] = $253; - if (!$253) $$0 = 0; else { - _memset($240 | 0, 0, $253 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $260 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $275 = $i$537 * 7 | 0; - $278 = $labelInfo + 12 + ($274 << 2) | 0; - HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0); - $285 = $274 << 1; - $286 = $labelInfo + 655376 + ($285 << 3) | 0; - HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0); - $294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0; - HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0); - $297 = $274 << 2; - $298 = $labelInfo + 131084 + ($297 << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316; - $319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0; - $323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0; - if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } else $$0 = $first; } - if ((HEAP32[$252 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $327 = $labelInfo + 12 + ($i$636 << 2) | 0; - $330 = $i$636 << 1; - $331 = $labelInfo + 655376 + ($330 << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0); - $337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0; - HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } + } else $$0 = $first; + } else $$0 = $first; else $$0 = $first; while (0); STACKTOP = sp; return $$0 | 0; } -function _arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $codePatt, $dirPatt, $cfPatt, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected, $codeGlobalID_p) { - $pattHandle = $pattHandle | 0; - $imageProcMode = $imageProcMode | 0; - $pattDetectMode = $pattDetectMode | 0; - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $pixelFormat = $pixelFormat | 0; - $paramLTf = $paramLTf | 0; - $vertex = $vertex | 0; - $pattRatio = +$pattRatio; - $codePatt = $codePatt | 0; - $dirPatt = $dirPatt | 0; - $cfPatt = $cfPatt | 0; - $codeMatrix = $codeMatrix | 0; - $dirMatrix = $dirMatrix | 0; - $cfMatrix = $cfMatrix | 0; +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc($this, $__b, $__e, $__iob, $__err, $__tm, $__fmt, $0) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $0 = $0 | 0; + var $$byval_copy26 = 0, $$byval_copy30 = 0, $$sroa$07$0 = 0, $1 = 0, $10 = 0, $100 = 0, $104 = 0, $107 = 0, $109 = 0, $11 = 0, $113 = 0, $119 = 0, $12 = 0, $120 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $40 = 0, $44 = 0, $47 = 0, $49 = 0, $5 = 0, $53 = 0, $59 = 0, $6 = 0, $60 = 0, $65 = 0, $68 = 0, $7 = 0, $8 = 0, $84 = 0, $87 = 0, $9 = 0, $91 = 0, $96 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy30 = sp + 132 | 0; + $$byval_copy26 = sp + 116 | 0; + $1 = sp + 128 | 0; + $2 = sp + 124 | 0; + $3 = sp + 120 | 0; + $4 = sp + 112 | 0; + $5 = sp + 108 | 0; + $6 = sp + 104 | 0; + $7 = sp + 100 | 0; + $8 = sp + 96 | 0; + $9 = sp + 92 | 0; + $10 = sp + 88 | 0; + $11 = sp + 84 | 0; + $12 = sp + 80 | 0; + $13 = sp + 76 | 0; + $14 = sp + 72 | 0; + $15 = sp + 68 | 0; + $16 = sp + 64 | 0; + $17 = sp + 60 | 0; + $18 = sp + 56 | 0; + $19 = sp + 52 | 0; + $20 = sp + 48 | 0; + $21 = sp + 44 | 0; + $22 = sp + 40 | 0; + $23 = sp + 36 | 0; + $24 = sp + 32 | 0; + $25 = sp + 28 | 0; + $26 = sp + 24 | 0; + $27 = sp + 20 | 0; + $28 = sp + 16 | 0; + $29 = sp + 12 | 0; + $30 = sp + 8 | 0; + $31 = sp + 4 | 0; + $32 = sp; + HEAP32[$__err >> 2] = 0; + $33 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$1 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($33) | 0; + do switch ($__fmt << 24 >> 24 | 0) { + case 65: + case 97: + { + HEAP32[$2 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$2 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 24 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 104: + case 66: + case 98: + { + HEAP32[$3 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$3 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 16 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 99: + { + $40 = $this + 8 | 0; + $44 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$40 >> 2] | 0) + 12 >> 2] & 127]($40) | 0; + HEAP32[$4 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$5 >> 2] = HEAP32[$__e >> 2]; + $47 = HEAP8[$44 >> 0] | 0; + $49 = ($47 & 1) == 0; + $53 = $49 ? $44 + 1 | 0 : HEAP32[$44 + 8 >> 2] | 0; + $59 = $53 + ($49 ? ($47 & 255) >>> 1 : HEAP32[$44 + 4 >> 2] | 0) | 0; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$5 >> 2]; + $60 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, $53, $59) | 0; + HEAP32[$__b >> 2] = $60; + label = 26; + break; + } + case 101: + case 100: + { + HEAP32[$6 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$6 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE9__get_dayERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 12 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 68: + { + HEAP32[$7 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$8 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$8 >> 2]; + $65 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 56709, 56717) | 0; + HEAP32[$__b >> 2] = $65; + label = 26; + break; + } + case 70: + { + HEAP32[$9 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$10 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$10 >> 2]; + $68 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 56717, 56725) | 0; + HEAP32[$__b >> 2] = $68; + label = 26; + break; + } + case 72: + { + HEAP32[$11 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$11 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_hourERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 73: + { + HEAP32[$12 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$12 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_12_hourERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 106: + { + HEAP32[$13 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$13 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE18__get_day_year_numERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 28 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 109: + { + HEAP32[$14 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$14 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_monthERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 16 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 77: + { + HEAP32[$15 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$15 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE12__get_minuteERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 4 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 116: + case 110: + { + HEAP32[$16 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$16 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIcEE($this, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 112: + { + HEAP32[$17 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$17 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 8 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 114: + { + HEAP32[$18 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$19 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$18 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$19 >> 2]; + $84 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 56725, 56736) | 0; + HEAP32[$__b >> 2] = $84; + label = 26; + break; + } + case 82: + { + HEAP32[$20 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$21 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$20 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$21 >> 2]; + $87 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 56736, 56741) | 0; + HEAP32[$__b >> 2] = $87; + label = 26; + break; + } + case 83: + { + HEAP32[$22 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$22 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE12__get_secondERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 84: + { + HEAP32[$23 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$24 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$23 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$24 >> 2]; + $91 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, 56741, 56749) | 0; + HEAP32[$__b >> 2] = $91; + label = 26; + break; + } + case 119: + { + HEAP32[$25 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$25 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_weekdayERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 24 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 120: + { + $96 = HEAP32[(HEAP32[$this >> 2] | 0) + 20 >> 2] | 0; + HEAP32[$26 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$27 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$27 >> 2]; + $$sroa$07$0 = FUNCTION_TABLE_iiiiiii[$96 & 63]($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm) | 0; + break; + } + case 88: + { + $100 = $this + 8 | 0; + $104 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$100 >> 2] | 0) + 24 >> 2] & 127]($100) | 0; + HEAP32[$28 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$29 >> 2] = HEAP32[$__e >> 2]; + $107 = HEAP8[$104 >> 0] | 0; + $109 = ($107 & 1) == 0; + $113 = $109 ? $104 + 1 | 0 : HEAP32[$104 + 8 >> 2] | 0; + $119 = $113 + ($109 ? ($107 & 255) >>> 1 : HEAP32[$104 + 4 >> 2] | 0) | 0; + HEAP32[$$byval_copy26 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$29 >> 2]; + $120 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy26, $$byval_copy30, $__iob, $__err, $__tm, $113, $119) | 0; + HEAP32[$__b >> 2] = $120; + label = 26; + break; + } + case 121: + { + HEAP32[$30 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$30 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 20 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 89: + { + HEAP32[$31 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$31 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_year4ERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 20 | 0, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + case 37: + { + HEAP32[$32 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy30 >> 2] = HEAP32[$32 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIcEE($this, $__b, $$byval_copy30, $__err, $34); + label = 26; + break; + } + default: + { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + label = 26; + } + } while (0); + if ((label | 0) == 26) $$sroa$07$0 = HEAP32[$__b >> 2] | 0; + STACKTOP = sp; + return $$sroa$07$0 | 0; +} + +function _get_matrix_code($data, $size, $code_out_p, $dir, $cf, $matrixCodeType, $errorCorrected) { + $data = $data | 0; + $size = $size | 0; + $code_out_p = $code_out_p | 0; + $dir = $dir | 0; + $cf = $cf | 0; $matrixCodeType = $matrixCodeType | 0; $errorCorrected = $errorCorrected | 0; - $codeGlobalID_p = $codeGlobalID_p | 0; - var $$0 = 0, $$0$i = 0, $$max$0$i = 0, $$max$0$i$1 = 0, $$max$0$i$2 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $107 = 0, $114 = 0, $118 = 0, $122 = 0, $126 = 0, $137 = 0, $14 = 0, $141 = 0, $147 = 0, $148 = 0, $149 = 0, $162 = 0, $166 = 0, $175 = 0, $178 = 0, $186 = 0, $188 = 0, $196 = 0, $20 = 0, $200 = 0, $204 = 0, $206 = 0, $211 = 0, $212 = 0, $213 = 0, $26 = 0, $29 = 0, $30 = 0, $34 = 0, $68 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0, $93 = 0, $97 = 0, $bit$0$i28 = 0, $bit$1$i25 = 0, $bit$10$i43 = 0, $bit$11$i = 0, $bit$11$i$lcssa = 0, $bit$2$i = 0, $bit$2$i$lcssa = 0, $bit$3$i34 = 0, $bit$4$i31 = 0, $bit$5$i = 0, $bit$5$i$lcssa = 0, $bit$6$i40 = 0, $bit$7$i37 = 0, $bit$8$i = 0, $bit$8$i$lcssa = 0, $bit$9$i46 = 0, $code$i = 0, $contrastMin$0$i26 = 0, $contrastMin$1$i23 = 0, $contrastMin$10$i41 = 0, $contrastMin$11$i = 0, $contrastMin$11$i$lcssa = 0, $contrastMin$12$i = 0, $contrastMin$2$i = 0, $contrastMin$2$i$lcssa = 0, $contrastMin$3$i32 = 0, $contrastMin$4$i29 = 0, $contrastMin$5$i = 0, $contrastMin$5$i$lcssa = 0, $contrastMin$6$i38 = 0, $contrastMin$7$i35 = 0, $contrastMin$8$i = 0, $contrastMin$8$i$lcssa = 0, $contrastMin$9$i44 = 0, $corner$i = 0, $dirCode$i = 0, $errorCodeMtx$0 = 0, $errorCodePatt$0 = 0, $ext_patt = 0, $i$2$i$lcssa = 0, $i$2$i47 = 0, $i$3$i24 = 0, $i$4$i33 = 0, $i$4$off$i = 0, $i$5$i36 = 0, $i$6$i45 = 0, $i$6$off$i = 0, $j$0$i27 = 0, $j$0$off$i = 0, $j$1$i30 = 0, $j$2$i39 = 0, $j$2$off$i = 0, $j$3$i42 = 0, $min$1$i = 0, $min$1$i$1 = 0, $min$1$i$2 = 0, $or$cond4454$i = 0, $recd127$i = 0, sp = 0; + var $$ = 0, $$0 = 0, $$lcssa115 = 0, $$max$0 = 0, $$max$0$1 = 0, $$max$0$2 = 0, $1 = 0, $10 = 0, $100 = 0, $102 = 0, $103 = 0, $108 = 0, $109 = 0, $110 = 0, $120 = 0, $121 = 0, $122 = 0, $124 = 0, $125 = 0, $126 = 0, $130 = 0, $140 = 0, $144 = 0, $145 = 0, $146 = 0, $157 = 0, $158 = 0, $16 = 0, $163 = 0, $164 = 0, $165 = 0, $169 = 0, $182 = 0, $183 = 0, $184 = 0, $187 = 0, $193 = 0, $194 = 0, $197 = 0, $2 = 0, $206 = 0, $207 = 0, $211 = 0, $22 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $28 = 0, $31 = 0, $32 = 0, $36 = 0, $4 = 0, $70 = 0, $83 = 0, $85 = 0, $86 = 0, $96 = 0, $98 = 0, $code = 0, $contrastMin$0$lcssa = 0, $contrastMin$098 = 0, $contrastMin$1 = 0, $corner = 0, $dirCode = 0, $exitcond64 = 0, $i$2102 = 0, $i$2102$lcssa = 0, $i$399 = 0, $i$465 = 0, $i$576 = 0, $i$680 = 0, $i$794 = 0, $j$067 = 0, $j$171 = 0, $j$285 = 0, $j$389 = 0, $min$1 = 0, $min$1$1 = 0, $min$1$2 = 0, $or$cond734 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 12448 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $dirCode$i = sp + 12440 | 0; - $corner$i = sp + 8 | 0; - $code$i = sp; - $recd127$i = sp + 12312 | 0; - $ext_patt = sp + 24 | 0; - do if (($pattDetectMode + -2 | 0) >>> 0 < 3) { - if (($matrixCodeType | 0) != 2830) { - $200 = $matrixCodeType & 255; - if ((_arPattGetImage2($imageProcMode, 2, $200, $200 * 3 | 0, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { - HEAP32[$codeMatrix >> 2] = -1; - $errorCodeMtx$0 = -6; + $dirCode = sp + 24 | 0; + $corner = sp + 8 | 0; + $code = sp; + L1 : do if (($size + -3 | 0) >>> 0 > 5) { + HEAP32[$code_out_p >> 2] = -1; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -1; + } else { + HEAP32[$corner >> 2] = 0; + $1 = $size + -1 | 0; + $2 = Math_imul($1, $size) | 0; + HEAP32[$corner + 4 >> 2] = $2; + $4 = Math_imul($size, $size) | 0; + HEAP32[$corner + 8 >> 2] = $4 + -1; + HEAP32[$corner + 12 >> 2] = $1; + $10 = HEAP8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0; + $$max$0 = ($10 & 255) > 0 ? $10 : 0; + $min$1 = ($10 & 255) < 255 ? $10 : -1; + $16 = HEAP8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0; + $$max$0$1 = ($16 & 255) > ($$max$0 & 255) ? $16 : $$max$0; + $min$1$1 = ($16 & 255) < ($min$1 & 255) ? $16 : $min$1; + $22 = HEAP8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0; + $$max$0$2 = ($22 & 255) > ($$max$0$1 & 255) ? $22 : $$max$0$1; + $min$1$2 = ($22 & 255) < ($min$1$1 & 255) ? $22 : $min$1$1; + $28 = HEAP8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0; + $31 = (($28 & 255) > ($$max$0$2 & 255) ? $28 : $$max$0$2) & 255; + $32 = (($28 & 255) < ($min$1$2 & 255) ? $28 : $min$1$2) & 255; + if (($31 - $32 | 0) < 30) { + HEAP32[$code_out_p >> 2] = -1; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -2; + break; + } + $36 = ($31 + $32 | 0) >>> 1; + HEAP8[$dirCode >> 0] = (HEAPU8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; + HEAP8[$dirCode + 1 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; + HEAP8[$dirCode + 2 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; + HEAP8[$dirCode + 3 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; + $i$2102 = 0; + while (1) { + $70 = $i$2102 + 1 | 0; + if ((HEAP8[$dirCode + $i$2102 >> 0] | 0) == 1) if ((HEAP8[$dirCode + (($70 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode + (($i$2102 + 2 | 0) % 4 | 0) >> 0] | 0)) { + $i$2102$lcssa = $i$2102; + label = 10; break; } - $204 = _get_matrix_code($ext_patt, $200, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected) | 0; - if (!$codeGlobalID_p) { - $errorCodeMtx$0 = $204; + if (($70 | 0) < 4) $i$2102 = $70; else { + $$lcssa115 = $70; + label = 12; break; } - $206 = $codeGlobalID_p; - HEAP32[$206 >> 2] = 0; - HEAP32[$206 + 4 >> 2] = 0; - $errorCodeMtx$0 = $204; - break; } - if ((_arPattGetImage2($imageProcMode, 2, 14, 42, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, .875, $ext_patt) | 0) < 0) { - HEAP32[$codeMatrix >> 2] = -1; - $errorCodeMtx$0 = -6; + if ((label | 0) == 10) HEAP32[$dir >> 2] = $i$2102$lcssa; else if ((label | 0) == 12) if (($$lcssa115 | 0) == 4) { + HEAP32[$code_out_p >> 2] = -1; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -3; break; } - HEAP32[$corner$i >> 2] = 0; - HEAP32[$corner$i + 4 >> 2] = 182; - HEAP32[$corner$i + 8 >> 2] = 195; - HEAP32[$corner$i + 12 >> 2] = 13; - $8 = HEAP8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0; - $$max$0$i = ($8 & 255) > 0 ? $8 : 0; - $min$1$i = ($8 & 255) < 255 ? $8 : -1; - $14 = HEAP8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0; - $$max$0$i$1 = ($14 & 255) > ($$max$0$i & 255) ? $14 : $$max$0$i; - $min$1$i$1 = ($14 & 255) < ($min$1$i & 255) ? $14 : $min$1$i; - $20 = HEAP8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0; - $$max$0$i$2 = ($20 & 255) > ($$max$0$i$1 & 255) ? $20 : $$max$0$i$1; - $min$1$i$2 = ($20 & 255) < ($min$1$i$1 & 255) ? $20 : $min$1$i$1; - $26 = HEAP8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0; - $29 = (($26 & 255) > ($$max$0$i$2 & 255) ? $26 : $$max$0$i$2) & 255; - $30 = (($26 & 255) < ($min$1$i$2 & 255) ? $26 : $min$1$i$2) & 255; - L13 : do if (($29 - $30 | 0) < 30) { - HEAP32[$dirMatrix >> 2] = 0; - HEAPF64[$cfMatrix >> 3] = -1.0; - $$0$i = -2; - $186 = 0; - $188 = 0; - } else { - $34 = ($29 + $30 | 0) >>> 1; - HEAP8[$dirCode$i >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; - HEAP8[$dirCode$i + 1 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; - HEAP8[$dirCode$i + 2 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; - HEAP8[$dirCode$i + 3 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1; - $i$2$i47 = 0; + if (!$4) $contrastMin$0$lcssa = 255; else { + $contrastMin$098 = 255; + $i$399 = 0; while (1) { - $68 = $i$2$i47 + 1 | 0; - if ((HEAP8[$dirCode$i + $i$2$i47 >> 0] | 0) == 1) if ((HEAP8[$dirCode$i + (($68 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode$i + (($i$2$i47 + 2 | 0) % 4 | 0) >> 0] | 0)) { - $i$2$i$lcssa = $i$2$i47; - break; - } - if (($68 | 0) < 4) $i$2$i47 = $68; else { - $i$2$i$lcssa = $68; + $83 = $data + $i$399 | 0; + $85 = HEAPU8[$83 >> 0] | 0; + $86 = $85 - $36 | 0; + $$ = ($86 | 0) < 0 ? 0 - $86 | 0 : $86; + $contrastMin$1 = ($$ | 0) < ($contrastMin$098 | 0) ? $$ : $contrastMin$098; + HEAP8[$83 >> 0] = $85 >>> 0 < $36 >>> 0 & 1; + $i$399 = $i$399 + 1 | 0; + if (($i$399 | 0) >= ($4 | 0)) { + $contrastMin$0$lcssa = $contrastMin$1; break; - } + } else $contrastMin$098 = $contrastMin$1; } - switch ($i$2$i$lcssa | 0) { - case 4: - { - HEAP32[$dirMatrix >> 2] = 0; - HEAPF64[$cfMatrix >> 3] = -1.0; - $$0$i = -3; - $186 = 0; - $188 = 0; - break L13; - break; - } - case 0: - { - $bit$0$i28 = 119; - $contrastMin$0$i26 = 255; - $j$0$i27 = 0; + } + switch (HEAP32[$dir >> 2] | 0) { + case 0: + { + if (($size | 0) > 0) { + $exitcond64 = ($size | 0) == 0; + $227 = 0; + $228 = 0; + $j$067 = 0; while (1) { - $j$0$off$i = $j$0$i27 + -3 | 0; - $80 = ($j$0$i27 & -2 | 0) == 12; - $81 = $j$0$i27 * 14 | 0; - $bit$1$i25 = $bit$0$i28; - $contrastMin$1$i23 = $contrastMin$0$i26; - $i$3$i24 = 0; - while (1) { - if (($i$3$i24 + -3 | $j$0$off$i) >>> 0 < 8) { - $bit$2$i = $bit$1$i25; - $contrastMin$2$i = $contrastMin$1$i23; - } else { - $84 = $i$3$i24 & -2; - if (($i$3$i24 | $j$0$i27) >>> 0 < 2) { - $bit$2$i = $bit$1$i25; - $contrastMin$2$i = $contrastMin$1$i23; - } else if ($80 & (($84 | 0) == 0 | ($84 | 0) == 12)) { - $bit$2$i = $bit$1$i25; - $contrastMin$2$i = $contrastMin$1$i23; + $102 = ($j$067 | 0) == ($1 | 0); + $103 = Math_imul($j$067, $size) | 0; + if ($exitcond64) { + $229 = $227; + $230 = $228; + } else { + $108 = $227; + $109 = $228; + $i$465 = 0; + while (1) { + if (!($i$465 | $j$067)) { + $231 = $108; + $232 = $109; + } else if ($102 & (($i$465 | 0) == 0 | ($i$465 | 0) == ($1 | 0))) { + $231 = $108; + $232 = $109; } else { - $93 = (HEAPU8[$ext_patt + ($i$3$i24 + $81) >> 0] | 0) - $34 | 0; - HEAP8[$recd127$i + $bit$1$i25 >> 0] = $93 >>> 31; - $97 = ($93 | 0) > -1 ? $93 : 0 - $93 | 0; - $bit$2$i = $bit$1$i25 + -1 | 0; - $contrastMin$2$i = ($97 | 0) < ($contrastMin$1$i23 | 0) ? $97 : $contrastMin$1$i23; + $110 = _bitshift64Shl($108 | 0, $109 | 0, 1) | 0; + $231 = (HEAP8[$data + ($i$465 + $103) >> 0] | 0) != 0 | $110; + $232 = tempRet0; + } + $i$465 = $i$465 + 1 | 0; + if (($i$465 | 0) == ($size | 0)) { + $229 = $231; + $230 = $232; + break; + } else { + $108 = $231; + $109 = $232; } - } - $i$3$i24 = $i$3$i24 + 1 | 0; - if (($i$3$i24 | 0) == 14) { - $bit$2$i$lcssa = $bit$2$i; - $contrastMin$2$i$lcssa = $contrastMin$2$i; - break; - } else { - $bit$1$i25 = $bit$2$i; - $contrastMin$1$i23 = $contrastMin$2$i; } } - $100 = $j$0$i27 + 1 | 0; - if (($100 | 0) == 14) { - $contrastMin$12$i = $contrastMin$2$i$lcssa; + $j$067 = $j$067 + 1 | 0; + if (($j$067 | 0) >= ($size | 0)) { + $182 = $229; + $206 = $230; break; } else { - $bit$0$i28 = $bit$2$i$lcssa; - $contrastMin$0$i26 = $contrastMin$2$i$lcssa; - $j$0$i27 = $100; + $227 = $229; + $228 = $230; } } - break; + } else { + $182 = 0; + $206 = 0; } - case 1: - { - $bit$3$i34 = 119; - $contrastMin$3$i32 = 255; - $i$4$i33 = 0; + break; + } + case 1: + { + if (($size | 0) > 0) { + $100 = ($size | 0) > 0; + $225 = 0; + $226 = 0; + $i$576 = 0; while (1) { - $i$4$off$i = $i$4$i33 + -3 | 0; - $101 = $i$4$i33 & -2; - $102 = ($101 | 0) == 0; - $103 = ($101 | 0) == 12; - $bit$4$i31 = $bit$3$i34; - $contrastMin$4$i29 = $contrastMin$3$i32; - $j$1$i30 = 13; - while (1) { - if (($j$1$i30 + -3 | $i$4$off$i) >>> 0 < 8) { - $bit$5$i = $bit$4$i31; - $contrastMin$5$i = $contrastMin$4$i29; - } else { - $107 = ($j$1$i30 & -2 | 0) == 12; - if ($102 & $107) { - $bit$5$i = $bit$4$i31; - $contrastMin$5$i = $contrastMin$4$i29; - } else if ($103 & ($j$1$i30 >>> 0 < 2 | $107)) { - $bit$5$i = $bit$4$i31; - $contrastMin$5$i = $contrastMin$4$i29; + $120 = ($i$576 | 0) == 0; + $121 = ($i$576 | 0) == ($1 | 0); + if ($100) { + $124 = $225; + $125 = $226; + $j$171 = $1; + while (1) { + $122 = ($j$171 | 0) == ($1 | 0); + if ($120 & $122) { + $235 = $124; + $236 = $125; + } else if ($121 & ($122 | ($j$171 | 0) == 0)) { + $235 = $124; + $236 = $125; } else { - $114 = (HEAPU8[$ext_patt + (($j$1$i30 * 14 | 0) + $i$4$i33) >> 0] | 0) - $34 | 0; - HEAP8[$recd127$i + $bit$4$i31 >> 0] = $114 >>> 31; - $118 = ($114 | 0) > -1 ? $114 : 0 - $114 | 0; - $bit$5$i = $bit$4$i31 + -1 | 0; - $contrastMin$5$i = ($118 | 0) < ($contrastMin$4$i29 | 0) ? $118 : $contrastMin$4$i29; + $126 = _bitshift64Shl($124 | 0, $125 | 0, 1) | 0; + $130 = $data + ((Math_imul($j$171, $size) | 0) + $i$576) | 0; + $235 = (HEAP8[$130 >> 0] | 0) != 0 | $126; + $236 = tempRet0; + } + if (($j$171 | 0) > 0) { + $124 = $235; + $125 = $236; + $j$171 = $j$171 + -1 | 0; + } else { + $233 = $235; + $234 = $236; + break; } } - if (($j$1$i30 | 0) > 0) { - $bit$4$i31 = $bit$5$i; - $contrastMin$4$i29 = $contrastMin$5$i; - $j$1$i30 = $j$1$i30 + -1 | 0; - } else { - $bit$5$i$lcssa = $bit$5$i; - $contrastMin$5$i$lcssa = $contrastMin$5$i; - break; - } + } else { + $233 = $225; + $234 = $226; } - $122 = $i$4$i33 + 1 | 0; - if (($122 | 0) == 14) { - $contrastMin$12$i = $contrastMin$5$i$lcssa; + $i$576 = $i$576 + 1 | 0; + if (($i$576 | 0) >= ($size | 0)) { + $182 = $233; + $206 = $234; break; } else { - $bit$3$i34 = $bit$5$i$lcssa; - $contrastMin$3$i32 = $contrastMin$5$i$lcssa; - $i$4$i33 = $122; + $225 = $233; + $226 = $234; } } - break; + } else { + $182 = 0; + $206 = 0; } - case 2: - { - $bit$6$i40 = 119; - $contrastMin$6$i38 = 255; - $j$2$i39 = 13; + break; + } + case 2: + { + if (($size | 0) > 0) { + $98 = ($size | 0) > 0; + $223 = 0; + $224 = 0; + $j$285 = $1; while (1) { - $j$2$off$i = $j$2$i39 + -3 | 0; - $or$cond4454$i = $j$2$i39 >>> 0 < 2 | ($j$2$i39 & -2 | 0) == 12; - $126 = $j$2$i39 * 14 | 0; - $bit$7$i37 = $bit$6$i40; - $contrastMin$7$i35 = $contrastMin$6$i38; - $i$5$i36 = 13; - while (1) { - if (($i$5$i36 + -3 | $j$2$off$i) >>> 0 < 8) { - $bit$8$i = $bit$7$i37; - $contrastMin$8$i = $contrastMin$7$i35; - } else if (($i$5$i36 | $j$2$i39) >>> 0 < 2 | $or$cond4454$i & ($i$5$i36 & -2 | 0) == 12) { - $bit$8$i = $bit$7$i37; - $contrastMin$8$i = $contrastMin$7$i35; - } else { - $137 = (HEAPU8[$ext_patt + ($i$5$i36 + $126) >> 0] | 0) - $34 | 0; - HEAP8[$recd127$i + $bit$7$i37 >> 0] = $137 >>> 31; - $141 = ($137 | 0) > -1 ? $137 : 0 - $137 | 0; - $bit$8$i = $bit$7$i37 + -1 | 0; - $contrastMin$8$i = ($141 | 0) < ($contrastMin$7$i35 | 0) ? $141 : $contrastMin$7$i35; - } - if (($i$5$i36 | 0) > 0) { - $bit$7$i37 = $bit$8$i; - $contrastMin$7$i35 = $contrastMin$8$i; - $i$5$i36 = $i$5$i36 + -1 | 0; - } else { - $bit$8$i$lcssa = $bit$8$i; - $contrastMin$8$i$lcssa = $contrastMin$8$i; - break; + $or$cond734 = ($j$285 | 0) == ($1 | 0) | ($j$285 | 0) == 0; + $140 = Math_imul($j$285, $size) | 0; + if ($98) { + $144 = $223; + $145 = $224; + $i$680 = $1; + while (1) { + if ($or$cond734 & ($i$680 | 0) == ($1 | 0) | ($i$680 | $j$285 | 0) == 0) { + $239 = $144; + $240 = $145; + } else { + $146 = _bitshift64Shl($144 | 0, $145 | 0, 1) | 0; + $239 = (HEAP8[$data + ($i$680 + $140) >> 0] | 0) != 0 | $146; + $240 = tempRet0; + } + if (($i$680 | 0) > 0) { + $144 = $239; + $145 = $240; + $i$680 = $i$680 + -1 | 0; + } else { + $237 = $239; + $238 = $240; + break; + } } + } else { + $237 = $223; + $238 = $224; } - if (($j$2$i39 | 0) > 0) { - $bit$6$i40 = $bit$8$i$lcssa; - $contrastMin$6$i38 = $contrastMin$8$i$lcssa; - $j$2$i39 = $j$2$i39 + -1 | 0; + if (($j$285 | 0) > 0) { + $223 = $237; + $224 = $238; + $j$285 = $j$285 + -1 | 0; } else { - $contrastMin$12$i = $contrastMin$8$i$lcssa; + $182 = $237; + $206 = $238; break; } } - break; + } else { + $182 = 0; + $206 = 0; } - case 3: - { - $bit$9$i46 = 119; - $contrastMin$9$i44 = 255; - $i$6$i45 = 13; + break; + } + case 3: + { + if (($size | 0) > 0) { + $96 = ($size | 0) > 0; + $221 = 0; + $222 = 0; + $i$794 = $1; while (1) { - $i$6$off$i = $i$6$i45 + -3 | 0; - $147 = $i$6$i45 & -2; - $148 = ($147 | 0) == 12; - $149 = ($147 | 0) == 0; - $bit$10$i43 = $bit$9$i46; - $contrastMin$10$i41 = $contrastMin$9$i44; - $j$3$i42 = 0; - while (1) { - if (($j$3$i42 + -3 | $i$6$off$i) >>> 0 < 8) { - $bit$11$i = $bit$10$i43; - $contrastMin$11$i = $contrastMin$10$i41; - } else if ($148 & $j$3$i42 >>> 0 < 2 | ($j$3$i42 | $i$6$i45) >>> 0 < 2) { - $bit$11$i = $bit$10$i43; - $contrastMin$11$i = $contrastMin$10$i41; - } else if ($149 & ($j$3$i42 & -2 | 0) == 12) { - $bit$11$i = $bit$10$i43; - $contrastMin$11$i = $contrastMin$10$i41; - } else { - $162 = (HEAPU8[$ext_patt + (($j$3$i42 * 14 | 0) + $i$6$i45) >> 0] | 0) - $34 | 0; - HEAP8[$recd127$i + $bit$10$i43 >> 0] = $162 >>> 31; - $166 = ($162 | 0) > -1 ? $162 : 0 - $162 | 0; - $bit$11$i = $bit$10$i43 + -1 | 0; - $contrastMin$11$i = ($166 | 0) < ($contrastMin$10$i41 | 0) ? $166 : $contrastMin$10$i41; - } - $j$3$i42 = $j$3$i42 + 1 | 0; - if (($j$3$i42 | 0) == 14) { - $bit$11$i$lcssa = $bit$11$i; - $contrastMin$11$i$lcssa = $contrastMin$11$i; - break; - } else { - $bit$10$i43 = $bit$11$i; - $contrastMin$10$i41 = $contrastMin$11$i; + $157 = ($i$794 | 0) == ($1 | 0); + $158 = ($i$794 | 0) == 0; + if ($96) { + $163 = $221; + $164 = $222; + $j$389 = 0; + while (1) { + if ($157 & ($j$389 | 0) == 0 | ($j$389 | $i$794 | 0) == 0 | $158 & ($j$389 | 0) == ($1 | 0)) { + $243 = $163; + $244 = $164; + } else { + $165 = _bitshift64Shl($163 | 0, $164 | 0, 1) | 0; + $169 = $data + ((Math_imul($j$389, $size) | 0) + $i$794) | 0; + $243 = (HEAP8[$169 >> 0] | 0) != 0 | $165; + $244 = tempRet0; + } + $j$389 = $j$389 + 1 | 0; + if (($j$389 | 0) >= ($size | 0)) { + $241 = $243; + $242 = $244; + break; + } else { + $163 = $243; + $164 = $244; + } } + } else { + $241 = $221; + $242 = $222; } - if (($i$6$i45 | 0) > 0) { - $bit$9$i46 = $bit$11$i$lcssa; - $contrastMin$9$i44 = $contrastMin$11$i$lcssa; - $i$6$i45 = $i$6$i45 + -1 | 0; + if (($i$794 | 0) > 0) { + $221 = $241; + $222 = $242; + $i$794 = $i$794 + -1 | 0; } else { - $contrastMin$12$i = $contrastMin$11$i$lcssa; + $182 = $241; + $206 = $242; break; } } - break; + } else { + $182 = 0; + $206 = 0; } - default: - $contrastMin$12$i = 255; + break; } - HEAP32[$dirMatrix >> 2] = $i$2$i$lcssa; - HEAPF64[$cfMatrix >> 3] = ($contrastMin$12$i | 0) > 30 ? 1.0 : +($contrastMin$12$i | 0) / 30.0; - $175 = _decode_bch(2830, 0, 0, $recd127$i, $code$i) | 0; - if (($175 | 0) < 0) { - $$0$i = -4; - $186 = 0; - $188 = 0; - } else { - if ($errorCorrected) HEAP32[$errorCorrected >> 2] = $175; - $178 = $code$i; - $$0$i = 0; - $186 = HEAP32[$178 >> 2] | 0; - $188 = HEAP32[$178 + 4 >> 2] | 0; + default: + { + $182 = 0; + $206 = 0; } - } while (0); - if (($$0$i | 0) < 0) { - HEAP32[$codeMatrix >> 2] = -1; - $errorCodeMtx$0 = $$0$i; - break; - } - if (($186 | 0) == -1 & ($188 | 0) == -1) { - HEAP32[$codeMatrix >> 2] = -1; - $errorCodeMtx$0 = -5; - break; - } - HEAP32[$codeMatrix >> 2] = ($186 & -32768 | 0) == 0 & 0 == 0 ? $186 & 32767 : 0; - if (!$codeGlobalID_p) $errorCodeMtx$0 = 0; else { - $196 = $codeGlobalID_p; - HEAP32[$196 >> 2] = $186; - HEAP32[$196 + 4 >> 2] = $188; - $errorCodeMtx$0 = 0; } - } else $errorCodeMtx$0 = 1; while (0); - L78 : do switch ($pattDetectMode | 0) { - case 0: - case 1: - case 3: - case 4: - { - if (!$pattHandle) { - HEAP32[$codePatt >> 2] = -1; - $errorCodePatt$0 = -1; - break L78; + HEAPF64[$cf >> 3] = ($contrastMin$0$lcssa | 0) > 30 ? 1.0 : +($contrastMin$0$lcssa | 0) / 30.0; + switch ($matrixCodeType | 0) { + case 259: + { + $183 = HEAP8[18739 + $182 >> 0] | 0; + $184 = $183 << 24 >> 24; + $187 = $code; + HEAP32[$187 >> 2] = $184; + HEAP32[$187 + 4 >> 2] = (($184 | 0) < 0) << 31 >> 31; + if ($183 << 24 >> 24 < 0) { + HEAP32[$code_out_p >> 2] = -1; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -4; + break L1; + } + break; } - $211 = $pattHandle + 28 | 0; - $212 = HEAP32[$211 >> 2] | 0; - $213 = $212 << 2; - switch ($pattDetectMode | 0) { - case 0: - case 3: - { - if ((_arPattGetImage2($imageProcMode, 0, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { - HEAP32[$codePatt >> 2] = -1; - $errorCodePatt$0 = -6; - break L78; - } else { - $errorCodePatt$0 = _pattern_match($pattHandle, 0, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0; - break L78; - } - break; + case 515: + { + $193 = HEAP8[18611 + $182 >> 0] | 0; + $194 = $193 << 24 >> 24; + $197 = $code; + HEAP32[$197 >> 2] = $194; + HEAP32[$197 + 4 >> 2] = (($194 | 0) < 0) << 31 >> 31; + if ($errorCorrected) HEAP32[$errorCorrected >> 2] = HEAPU8[18675 + $182 >> 0]; + if ($193 << 24 >> 24 < 0) { + HEAP32[$code_out_p >> 2] = -1; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -4; + break L1; } - default: - if ((_arPattGetImage2($imageProcMode, 1, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) { - HEAP32[$codePatt >> 2] = -1; - $errorCodePatt$0 = -6; - break L78; - } else { - $errorCodePatt$0 = _pattern_match($pattHandle, 1, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0; - break L78; + break; + } + case 772: + case 1028: + { + $207 = _decode_bch($matrixCodeType, $182, $206, 0, $code) | 0; + if (($207 | 0) < 0) { + HEAP32[$code_out_p >> 2] = -1; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -4; + break L1; } + if (($errorCorrected | 0) != 0 & ($207 | 0) > 0) HEAP32[$errorCorrected >> 2] = $207; + break; + } + default: + { + $211 = $code; + HEAP32[$211 >> 2] = $182; + HEAP32[$211 + 4 >> 2] = $206; } - break; } - default: - $errorCodePatt$0 = 1; + HEAP32[$code_out_p >> 2] = HEAP32[$code >> 2]; + $$0 = 0; } while (0); - if (($errorCodeMtx$0 | 0) == 1) $$0 = $errorCodePatt$0; else if (($errorCodePatt$0 | 0) == 1) $$0 = $errorCodeMtx$0; else $$0 = ($errorCodePatt$0 & $errorCodeMtx$0 | 0) < 0 ? $errorCodePatt$0 : 0; STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _kpmSetRefDataSet($kpmHandle, $refDataSet) { + $kpmHandle = $kpmHandle | 0; + $refDataSet = $refDataSet | 0; + var $$05 = 0, $$pre = 0, $$pre31 = 0, $$pre32 = 0, $0 = 0, $1 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $13 = 0, $135 = 0, $137 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $153 = 0, $159 = 0, $160 = 0, $183 = 0, $188 = 0, $197 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $32 = 0, $38 = 0, $39 = 0, $4 = 0, $42 = 0, $44 = 0, $46 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $57 = 0, $66 = 0, $68 = 0, $7 = 0, $70 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0, $88 = 0, $94 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $db_id$053 = 0, $db_id$1$lcssa = 0, $db_id$150 = 0, $descriptors = 0, $i$068 = 0, $i$165 = 0, $i$260 = 0, $i1$056 = 0, $i2$048 = 0, $j$058 = 0, $j3$047 = 0, $k$054 = 0, $m$051 = 0, $points = 0, $points_3d = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 128 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer11 = sp + 48 | 0; + $vararg_buffer9 = sp + 40 | 0; + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $points = sp + 108 | 0; + $points_3d = sp + 96 | 0; + $descriptors = sp + 84 | 0; + $0 = sp + 64 | 0; + $1 = sp + 52 | 0; + do if (($kpmHandle | 0) != 0 & ($refDataSet | 0) != 0) { + $4 = $refDataSet + 4 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if (!$5) { + _arLog(3, 21235, $vararg_buffer1); + $$05 = -1; + break; + } + $7 = $kpmHandle + 32 | 0; + $8 = HEAP32[$7 >> 2] | 0; + if (!$8) { + $12 = $5; + label = 7; + } else { + _free($8); + $$pre = HEAP32[$4 >> 2] | 0; + if (!$$pre) { + HEAP32[$7 >> 2] = 0; + $23 = 0; + } else { + $12 = $$pre; + label = 7; + } + } + if ((label | 0) == 7) { + $13 = _malloc($12 * 132 | 0) | 0; + HEAP32[$7 >> 2] = $13; + if (!$13) { + _arLog(3, 21359, $vararg_buffer3); + _exit(1); + } + if (($12 | 0) > 0) { + $i$068 = 0; + do { + _memcpy((HEAP32[$7 >> 2] | 0) + ($i$068 * 132 | 0) | 0, (HEAP32[$refDataSet >> 2] | 0) + ($i$068 * 132 | 0) | 0, 132) | 0; + $i$068 = $i$068 + 1 | 0; + $$pre31 = HEAP32[$4 >> 2] | 0; + } while (($i$068 | 0) < ($$pre31 | 0)); + $23 = $$pre31; + } else $23 = $12; + } + $22 = $kpmHandle + 36 | 0; + HEAP32[$22 >> 2] = $23; + $24 = $kpmHandle + 40 | 0; + if (HEAP32[$24 >> 2] | 0) { + $27 = $kpmHandle + 44 | 0; + if ((HEAP32[$27 >> 2] | 0) > 0) { + $i$165 = 0; + do { + $32 = HEAP32[(HEAP32[$24 >> 2] | 0) + ($i$165 * 12 | 0) >> 2] | 0; + if ($32) _free($32); + $i$165 = $i$165 + 1 | 0; + } while (($i$165 | 0) < (HEAP32[$27 >> 2] | 0)); + } + _free(HEAP32[$24 >> 2] | 0); + } + $38 = $refDataSet + 12 | 0; + $39 = HEAP32[$38 >> 2] | 0; + L27 : do if (!$39) { + HEAP32[$24 >> 2] = 0; + $79 = 0; + } else { + $42 = _malloc($39 * 12 | 0) | 0; + HEAP32[$24 >> 2] = $42; + if (!$42) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); + } + $44 = $refDataSet + 8 | 0; + if (($39 | 0) > 0) { + $197 = $39; + $i$260 = 0; + while (1) { + $46 = HEAP32[$44 >> 2] | 0; + $49 = HEAP32[$24 >> 2] | 0; + HEAP32[$49 + ($i$260 * 12 | 0) + 8 >> 2] = HEAP32[$46 + ($i$260 * 12 | 0) + 8 >> 2]; + $51 = $46 + ($i$260 * 12 | 0) + 4 | 0; + HEAP32[$49 + ($i$260 * 12 | 0) + 4 >> 2] = HEAP32[$51 >> 2]; + $54 = HEAP32[$51 >> 2] | 0; + if (!$54) { + HEAP32[$46 + ($i$260 * 12 | 0) >> 2] = 0; + $$pre32 = $197; + } else { + $57 = _malloc($54 * 12 | 0) | 0; + HEAP32[$49 + ($i$260 * 12 | 0) >> 2] = $57; + if (!$57) break; + if ((HEAP32[$46 + ($i$260 * 12 | 0) + 4 >> 2] | 0) > 0) { + $68 = $46; + $j$058 = 0; + do { + $66 = (HEAP32[(HEAP32[$24 >> 2] | 0) + ($i$260 * 12 | 0) >> 2] | 0) + ($j$058 * 12 | 0) | 0; + $70 = (HEAP32[$68 + ($i$260 * 12 | 0) >> 2] | 0) + ($j$058 * 12 | 0) | 0; + HEAP32[$66 >> 2] = HEAP32[$70 >> 2]; + HEAP32[$66 + 4 >> 2] = HEAP32[$70 + 4 >> 2]; + HEAP32[$66 + 8 >> 2] = HEAP32[$70 + 8 >> 2]; + $j$058 = $j$058 + 1 | 0; + $68 = HEAP32[$44 >> 2] | 0; + } while (($j$058 | 0) < (HEAP32[$68 + ($i$260 * 12 | 0) + 4 >> 2] | 0)); + } + $$pre32 = HEAP32[$38 >> 2] | 0; + } + $i$260 = $i$260 + 1 | 0; + if (($i$260 | 0) >= ($$pre32 | 0)) { + $79 = $$pre32; + break L27; + } else $197 = $$pre32; + } + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } else $79 = $39; + } while (0); + $78 = $kpmHandle + 44 | 0; + HEAP32[$78 >> 2] = $79; + $80 = $kpmHandle + 56 | 0; + $81 = HEAP32[$80 >> 2] | 0; + if ($81) { + _free($81); + HEAP32[$80 >> 2] = 0; + HEAP32[$kpmHandle + 60 >> 2] = 0; + } + $84 = HEAP32[$38 >> 2] | 0; + if (($84 | 0) > 0) { + HEAP32[$kpmHandle + 60 >> 2] = $84; + $88 = _malloc($84 * 68 | 0) | 0; + HEAP32[$80 >> 2] = $88; + if (!$88) { + _arLog(3, 21359, $vararg_buffer9); + _exit(1); } + if (($84 | 0) > 0) { + $i1$056 = 0; + do { + HEAP32[$88 + ($i1$056 * 68 | 0) + 64 >> 2] = 0; + $i1$056 = $i1$056 + 1 | 0; + } while (($i1$056 | 0) < ($84 | 0)); + } + } + $94 = HEAP32[$22 >> 2] | 0; + if (!$94) $$05 = 0; else { + $96 = $points + 4 | 0; + $97 = $points + 8 | 0; + $98 = $points_3d + 4 | 0; + $99 = $points_3d + 8 | 0; + $100 = $descriptors + 4 | 0; + $101 = $descriptors + 8 | 0; + $102 = $0 + 4 | 0; + $103 = $0 + 8 | 0; + $104 = $0 + 12 | 0; + $105 = $0 + 16 | 0; + $106 = $points + 8 | 0; + $107 = $1 + 4 | 0; + $108 = $1 + 8 | 0; + $109 = $points_3d + 8 | 0; + $110 = $descriptors + 8 | 0; + if ((HEAP32[$78 >> 2] | 0) > 0) { + $113 = ($94 | 0) > 0; + $db_id$053 = 0; + $k$054 = 0; + while (1) { + if ((HEAP32[(HEAP32[$24 >> 2] | 0) + ($k$054 * 12 | 0) + 4 >> 2] | 0) > 0) { + $db_id$150 = $db_id$053; + $m$051 = 0; + while (1) { + HEAP32[$points >> 2] = 0; + HEAP32[$96 >> 2] = 0; + HEAP32[$97 >> 2] = 0; + HEAP32[$points_3d >> 2] = 0; + HEAP32[$98 >> 2] = 0; + HEAP32[$99 >> 2] = 0; + HEAP32[$descriptors >> 2] = 0; + HEAP32[$100 >> 2] = 0; + HEAP32[$101 >> 2] = 0; + if ($113) { + $i2$048 = 0; + do { + $118 = HEAP32[$7 >> 2] | 0; + $121 = HEAP32[$24 >> 2] | 0; + if ((HEAP32[$118 + ($i2$048 * 132 | 0) + 128 >> 2] | 0) == (HEAP32[(HEAP32[$121 + ($k$054 * 12 | 0) >> 2] | 0) + ($m$051 * 12 | 0) + 8 >> 2] | 0)) if ((HEAP32[$118 + ($i2$048 * 132 | 0) + 124 >> 2] | 0) == (HEAP32[$121 + ($k$054 * 12 | 0) + 8 >> 2] | 0)) { + $135 = HEAP32[$118 + ($i2$048 * 132 | 0) + 4 >> 2] | 0; + $137 = HEAP32[$118 + ($i2$048 * 132 | 0) + 112 >> 2] | 0; + $139 = HEAP32[$118 + ($i2$048 * 132 | 0) + 116 >> 2] | 0; + $142 = (HEAP32[$118 + ($i2$048 * 132 | 0) + 120 >> 2] | 0) != 0; + HEAP32[$0 >> 2] = HEAP32[$118 + ($i2$048 * 132 | 0) >> 2]; + HEAP32[$102 >> 2] = $135; + HEAP32[$103 >> 2] = $137; + HEAP32[$104 >> 2] = $139; + HEAP8[$105 >> 0] = $142 & 1; + $144 = HEAP32[$96 >> 2] | 0; + if (($144 | 0) == (HEAP32[$106 >> 2] | 0)) __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($points, $0); else { + HEAP32[$144 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$144 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$144 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$144 + 12 >> 2] = HEAP32[$0 + 12 >> 2]; + HEAP32[$144 + 16 >> 2] = HEAP32[$0 + 16 >> 2]; + HEAP32[$96 >> 2] = $144 + 20; + } + $148 = HEAP32[$7 >> 2] | 0; + $152 = HEAP32[$148 + ($i2$048 * 132 | 0) + 12 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$148 + ($i2$048 * 132 | 0) + 8 >> 2]; + HEAP32[$107 >> 2] = $152; + HEAPF32[$108 >> 2] = 0.0; + $153 = HEAP32[$98 >> 2] | 0; + if (($153 | 0) == (HEAP32[$109 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($points_3d, $1); + $j3$047 = 0; + } else { + HEAP32[$153 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$153 + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$153 + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 12; + $j3$047 = 0; + } + do { + $159 = (HEAP32[$7 >> 2] | 0) + ($i2$048 * 132 | 0) + 16 + $j3$047 | 0; + $160 = HEAP32[$100 >> 2] | 0; + if (($160 | 0) == (HEAP32[$110 >> 2] | 0)) __ZNSt3__16vectorIhNS_9allocatorIhEEE21__push_back_slow_pathIKhEEvRT_($descriptors, $159); else { + HEAP8[$160 >> 0] = HEAP8[$159 >> 0] | 0; + HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + 1; + } + $j3$047 = $j3$047 + 1 | 0; + } while (($j3$047 | 0) < 96); + } + $i2$048 = $i2$048 + 1 | 0; + } while (($i2$048 | 0) < ($94 | 0)); + } + HEAP32[$vararg_buffer11 >> 2] = ((HEAP32[$96 >> 2] | 0) - (HEAP32[$points >> 2] | 0) | 0) / 20 | 0; + _arLog(1, 21268, $vararg_buffer11); + HEAP32[$kpmHandle + 64 + ($db_id$150 << 2) >> 2] = HEAP32[(HEAP32[$24 >> 2] | 0) + ($k$054 * 12 | 0) + 8 >> 2]; + $183 = HEAP32[(HEAP32[$24 >> 2] | 0) + ($k$054 * 12 | 0) >> 2] | 0; + __ZN6vision20VisualDatabaseFacade30addFreakFeaturesAndDescriptorsERKNSt3__16vectorINS_12FeaturePointENS1_9allocatorIS3_EEEERKNS2_IhNS4_IhEEEERKNS2_INS_7Point3dIfEENS4_ISE_EEEEjji(HEAP32[$kpmHandle >> 2] | 0, $points, $descriptors, $points_3d, HEAP32[$183 + ($m$051 * 12 | 0) >> 2] | 0, HEAP32[$183 + ($m$051 * 12 | 0) + 4 >> 2] | 0, $db_id$150); + $188 = $db_id$150 + 1 | 0; + __ZNSt3__113__vector_baseIhNS_9allocatorIhEEED2Ev($descriptors); + __ZNSt3__113__vector_baseIN6vision7Point3dIfEENS_9allocatorIS3_EEED2Ev($points_3d); + __ZNSt3__113__vector_baseIN6vision12FeaturePointENS_9allocatorIS2_EEED2Ev($points); + $m$051 = $m$051 + 1 | 0; + if (($m$051 | 0) >= (HEAP32[(HEAP32[$24 >> 2] | 0) + ($k$054 * 12 | 0) + 4 >> 2] | 0)) { + $db_id$1$lcssa = $188; + break; + } else $db_id$150 = $188; + } + } else $db_id$1$lcssa = $db_id$053; + $k$054 = $k$054 + 1 | 0; + if (($k$054 | 0) >= (HEAP32[$78 >> 2] | 0)) { + $$05 = 0; + break; + } else $db_id$053 = $db_id$1$lcssa; + } + } else $$05 = 0; + } + } else { + _arLog(3, 21187, $vararg_buffer); + $$05 = -1; + } while (0); + STACKTOP = sp; + return $$05 | 0; +} + +function _decode_bch($matrixCodeType, $0, $1, $recd127, $out_p) { + $matrixCodeType = $matrixCodeType | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $recd127 = $recd127 | 0; + $out_p = $out_p | 0; + var $$ = 0, $$0 = 0, $$lcssa24 = 0, $$lcssa76 = 0, $$lcssa77 = 0, $$pre$phi$lcssaZ2D = 0, $$pre$phiZ2D = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $110 = 0, $114 = 0, $118 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $143 = 0, $154 = 0, $155 = 0, $156 = 0, $159 = 0, $17 = 0, $175 = 0, $182 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $20 = 0, $208 = 0, $209 = 0, $28 = 0, $3 = 0, $30 = 0, $41 = 0, $43 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $58 = 0, $6 = 0, $71 = 0, $73 = 0, $74 = 0, $76 = 0, $78 = 0, $79 = 0, $86 = 0, $alpha_to$0 = 0, $count$036 = 0, $count$1 = 0, $count$1$lcssa = 0, $d = 0, $elp = 0, $i$066 = 0, $i$1035 = 0, $i$1130 = 0, $i$1228 = 0, $i$159 = 0, $i$254 = 0, $i$347 = 0, $i$441 = 0, $i$543 = 0, $i$645 = 0, $i$750 = 0, $i$839 = 0, $i$937 = 0, $index_of$0 = 0, $j$058 = 0, $j$1 = 0, $j$232 = 0, $k$0 = 0, $k$1 = 0, $l = 0, $length$0 = 0, $loc = 0, $n$0 = 0, $q$0 = 0, $q$1 = 0, $q$2 = 0, $q$3 = 0, $q$4$lcssa = 0, $q$433 = 0, $q$5 = 0, $recd$0 = 0, $recd15 = 0, $reg = 0, $s = 0, $syn_error$0$ = 0, $syn_error$0$$lcssa = 0, $syn_error$060 = 0, $t$0 = 0, $t$1 = 0, $u$0 = 0, $u$1 = 0, $u_lu = 0, label = 0, sp = 0, $j$1$looptemp = 0, $u$0$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2320 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $recd15 = sp + 2304 | 0; + $elp = sp + 864 | 0; + $d = sp + 784 | 0; + $l = sp + 704 | 0; + $u_lu = sp + 624 | 0; + $s = sp + 548 | 0; + $loc = sp + 40 | 0; + $reg = sp; + switch ($matrixCodeType | 0) { + case 772: + { + $k$0 = 9; + $t$0 = 1; + label = 3; + break; + } + case 1028: + { + $k$0 = 5; + $t$0 = 2; + label = 3; + break; + } + case 2830: + { + $alpha_to$0 = 3244; + $index_of$0 = 3816; + $k$1 = 64; + $length$0 = 120; + $n$0 = 127; + $recd$0 = $recd127; + $t$1 = 9; + label = 6; + break; } + default: + $$0 = -1; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; + if ((label | 0) == 3) { + $3 = $0; + $6 = $1; + $i$066 = 0; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; - } + HEAP8[$recd15 + $i$066 >> 0] = $3 & 1; + $3 = _bitshift64Lshr($3 | 0, $6 | 0, 1) | 0; + $i$066 = $i$066 + 1 | 0; + if (($i$066 | 0) == 13) break; else $6 = tempRet0; } + $alpha_to$0 = 3184; + $index_of$0 = 3752; + $k$1 = $k$0; + $length$0 = 13; + $n$0 = 15; + $recd$0 = $recd15; + $t$1 = $t$0; + label = 6; } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($42 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $42; - $45 = ($42 << 16 >> 16) * 7 | 0; - $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; - $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264; - $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $67 = $65 << 16 >> 16 > 0; - if ($61 << 16 >> 16 <= 0) { - if ($67) { - HEAP16[$pnt2$367 >> 1] = $65; - $167 = $66 * 7 | 0; - $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; - $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264; - $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075; - $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; - if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + do if ((label | 0) == 6) { + $10 = $t$1 << 1; + $i$159 = 1; + $syn_error$060 = 0; + while (1) { + $11 = $s + ($i$159 << 2) | 0; + HEAP32[$11 >> 2] = 0; + $20 = 0; + $j$058 = 0; + while (1) { + if (!(HEAP8[$recd$0 + $j$058 >> 0] | 0)) $208 = $20; else { + $17 = $alpha_to$0 + (((Math_imul($j$058, $i$159) | 0) % ($n$0 | 0) | 0) << 2) | 0; + $19 = $20 ^ HEAP32[$17 >> 2]; + HEAP32[$11 >> 2] = $19; + $208 = $19; + } + $j$058 = $j$058 + 1 | 0; + if (($j$058 | 0) >= ($length$0 | 0)) { + $$lcssa77 = $208; + break; + } else $20 = $208; + } + $syn_error$0$ = ($$lcssa77 | 0) == 0 ? $syn_error$060 : 1; + HEAP32[$11 >> 2] = HEAP32[$index_of$0 + ($$lcssa77 << 2) >> 2]; + if (($i$159 | 0) < ($10 | 0)) { + $i$159 = $i$159 + 1 | 0; + $syn_error$060 = $syn_error$0$; + } else { + $syn_error$0$$lcssa = $syn_error$0$; + break; + } + } + $28 = ($syn_error$0$$lcssa | 0) != 0; + if ($28) { + HEAP32[$d >> 2] = 0; + $30 = HEAP32[$s + 4 >> 2] | 0; + HEAP32[$d + 4 >> 2] = $30; + HEAP32[$elp >> 2] = 0; + HEAP32[$elp + 72 >> 2] = 1; + if (($10 | 0) > 1) { + $i$254 = 1; + do { + HEAP32[$elp + ($i$254 << 2) >> 2] = -1; + HEAP32[$elp + 72 + ($i$254 << 2) >> 2] = 0; + $i$254 = $i$254 + 1 | 0; + } while (($i$254 | 0) < ($10 | 0)); + } + HEAP32[$l >> 2] = 0; + HEAP32[$l + 4 >> 2] = 0; + HEAP32[$u_lu >> 2] = -1; + HEAP32[$u_lu + 4 >> 2] = 0; + $43 = $30; + $46 = 0; + $u$0 = 0; + while (1) { + $u$0$looptemp = $u$0; + $u$0 = $u$0 + 1 | 0; + $41 = $d + ($u$0 << 2) | 0; + if (($43 | 0) == -1) { + $44 = $u$0$looptemp + 2 | 0; + HEAP32[$l + ($44 << 2) >> 2] = $46; + if (($46 | 0) < 0) { + $$pre$phiZ2D = $44; + $110 = $46; + } else { + $i$347 = 0; + while (1) { + $48 = $elp + ($u$0 * 72 | 0) + ($i$347 << 2) | 0; + $49 = HEAP32[$48 >> 2] | 0; + HEAP32[$elp + ($44 * 72 | 0) + ($i$347 << 2) >> 2] = $49; + HEAP32[$48 >> 2] = HEAP32[$index_of$0 + ($49 << 2) >> 2]; + if (($i$347 | 0) < ($46 | 0)) $i$347 = $i$347 + 1 | 0; else { + $$pre$phiZ2D = $44; + $110 = $46; break; } - $187 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($187 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $187; - $190 = ($187 << 16 >> 16) * 7 | 0; - $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; - $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264; - $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075; - $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; - if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$204 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $207 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $207; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16; - $212 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $207; + } + } + } else { + $q$0 = $u$0$looptemp; + while (1) { + $58 = ($q$0 | 0) > 0; + if ($58 & (HEAP32[$d + ($q$0 << 2) >> 2] | 0) == -1) $q$0 = $q$0 + -1 | 0; else break; + } + if ($58) { + $j$1 = $q$0; + $q$1 = $q$0; + while (1) { + $j$1$looptemp = $j$1; + $j$1 = $j$1 + -1 | 0; + if ((HEAP32[$d + ($j$1 << 2) >> 2] | 0) == -1) $q$2 = $q$1; else $q$2 = (HEAP32[$u_lu + ($q$1 << 2) >> 2] | 0) < (HEAP32[$u_lu + ($j$1 << 2) >> 2] | 0) ? $j$1 : $q$1; + if (($j$1$looptemp | 0) <= 1) { + $q$3 = $q$2; break; - } + } else $q$1 = $q$2; } - if ($67) { - $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - if (($70 | 0) > ($73 | 0)) { - HEAP16[$pnt2$367 >> 1] = $73; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $90 = $73; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $90 = $73; - } else { - HEAP16[$pnt2$367 >> 1] = $70; - if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $90 = $70; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $90 = $70; + } else $q$3 = $q$0; + $71 = $l + ($q$3 << 2) | 0; + $73 = $u$0 - $q$3 | 0; + $74 = $73 + (HEAP32[$71 >> 2] | 0) | 0; + $76 = $u$0$looptemp + 2 | 0; + $$ = ($46 | 0) > ($74 | 0) ? $46 : $74; + HEAP32[$l + ($76 << 2) >> 2] = $$; + $i$441 = 0; + do { + HEAP32[$elp + ($76 * 72 | 0) + ($i$441 << 2) >> 2] = 0; + $i$441 = $i$441 + 1 | 0; + } while (($i$441 | 0) < ($10 | 0)); + $78 = HEAP32[$71 >> 2] | 0; + $79 = $d + ($q$3 << 2) | 0; + if (($78 | 0) >= 0) { + $i$543 = 0; + while (1) { + $86 = HEAP32[$elp + ($q$3 * 72 | 0) + ($i$543 << 2) >> 2] | 0; + if (($86 | 0) != -1) HEAP32[$elp + ($76 * 72 | 0) + ($73 + $i$543 << 2) >> 2] = HEAP32[$alpha_to$0 + ((($86 + $n$0 + (HEAP32[$41 >> 2] | 0) - (HEAP32[$79 >> 2] | 0) | 0) % ($n$0 | 0) | 0) << 2) >> 2]; + if (($i$543 | 0) < ($78 | 0)) $i$543 = $i$543 + 1 | 0; else break; + } + } + if (($46 | 0) < 0) { + $$pre$phiZ2D = $76; + $110 = $$; + } else { + $i$645 = 0; + while (1) { + $100 = $elp + ($u$0 * 72 | 0) + ($i$645 << 2) | 0; + $101 = HEAP32[$100 >> 2] | 0; + $102 = $elp + ($76 * 72 | 0) + ($i$645 << 2) | 0; + HEAP32[$102 >> 2] = HEAP32[$102 >> 2] ^ $101; + HEAP32[$100 >> 2] = HEAP32[$index_of$0 + ($101 << 2) >> 2]; + if (($i$645 | 0) < ($46 | 0)) $i$645 = $i$645 + 1 | 0; else { + $$pre$phiZ2D = $76; + $110 = $$; + break; } - $92 = ($90 << 16 >> 16) * 7 | 0; - $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; - $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264; - $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; } - $108 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($108 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $61; - $148 = $62 * 7 | 0; - $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; - $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264; - $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075; - $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; - if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; + } + } + HEAP32[$u_lu + ($$pre$phiZ2D << 2) >> 2] = $u$0 - $110; + if (($u$0 | 0) >= ($10 | 0)) { + $$lcssa76 = $110; + $$pre$phi$lcssaZ2D = $$pre$phiZ2D; + break; + } + $114 = HEAP32[$s + ($$pre$phiZ2D << 2) >> 2] | 0; + if (($114 | 0) == -1) $$sink = 0; else $$sink = HEAP32[$alpha_to$0 + ($114 << 2) >> 2] | 0; + $118 = $d + ($$pre$phiZ2D << 2) | 0; + HEAP32[$118 >> 2] = $$sink; + if (($110 | 0) < 1) $$lcssa24 = $$sink; else { + $134 = $$sink; + $i$750 = 1; + while (1) { + $122 = HEAP32[$s + ($$pre$phiZ2D - $i$750 << 2) >> 2] | 0; + if (($122 | 0) == -1) $209 = $134; else { + $125 = HEAP32[$elp + ($$pre$phiZ2D * 72 | 0) + ($i$750 << 2) >> 2] | 0; + if (!$125) $209 = $134; else { + $133 = $134 ^ HEAP32[$alpha_to$0 + ((((HEAP32[$index_of$0 + ($125 << 2) >> 2] | 0) + $122 | 0) % ($n$0 | 0) | 0) << 2) >> 2]; + HEAP32[$118 >> 2] = $133; + $209 = $133; + } } - $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($113 | 0) > ($116 | 0)) { - HEAP16[$pnt2$367 >> 1] = $116; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $133 = $116; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $133 = $116; + if (($i$750 | 0) < ($110 | 0)) { + $134 = $209; + $i$750 = $i$750 + 1 | 0; } else { - HEAP16[$pnt2$367 >> 1] = $113; - if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $133 = $113; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $133 = $113; + $$lcssa24 = $209; + break; } - $135 = ($133 << 16 >> 16) * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $227 = $pnt$168 + 2 | 0; - $228 = $pnt2$367 + 2 | 0; - $229 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $229; - $pnt$1$lcssa = $227; - $pnt2$3$lcssa = $228; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $229; - $pnt$168 = $227; - $pnt2$367 = $228; - $wk_max$159 = $wk_max$2; } } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $43 = HEAP32[$index_of$0 + ($$lcssa24 << 2) >> 2] | 0; + HEAP32[$118 >> 2] = $43; + if (($110 | 0) > ($t$1 | 0)) { + $$lcssa76 = $110; + $$pre$phi$lcssaZ2D = $$pre$phiZ2D; + break; + } else $46 = $110; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + if (($$lcssa76 | 0) > ($t$1 | 0)) { + $$0 = -1; + break; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $236 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $238 = HEAP32[$wk$443 >> 2] | 0; - if (($238 | 0) == ($i$341 | 0)) { - $244 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + if (($$lcssa76 | 0) >= 0) { + $i$839 = 0; + while (1) { + $143 = $elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$839 << 2) | 0; + HEAP32[$143 >> 2] = HEAP32[$index_of$0 + (HEAP32[$143 >> 2] << 2) >> 2]; + if (($i$839 | 0) < ($$lcssa76 | 0)) $i$839 = $i$839 + 1 | 0; else break; } - HEAP32[$wk$443 >> 2] = $244; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + } + if (($$lcssa76 | 0) >= 1) { + $i$937 = 1; + while (1) { + HEAP32[$reg + ($i$937 << 2) >> 2] = HEAP32[$elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$937 << 2) >> 2]; + if (($i$937 | 0) < ($$lcssa76 | 0)) $i$937 = $i$937 + 1 | 0; else break; } } - } - $248 = $labelInfo + 8 | 0; - $249 = $j$1$lcssa + -1 | 0; - HEAP32[$248 >> 2] = $249; - if (!$249) $$0 = 0; else { - _memset($236 | 0, 0, $249 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $256 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0)); + $154 = ($$lcssa76 | 0) < 1; + $count$036 = 0; + $i$1035 = 1; + while (1) { + if ($154) $q$4$lcssa = 1; else { + $j$232 = 1; + $q$433 = 1; + while (1) { + $155 = $reg + ($j$232 << 2) | 0; + $156 = HEAP32[$155 >> 2] | 0; + if (($156 | 0) == -1) $q$5 = $q$433; else { + $159 = ($156 + $j$232 | 0) % ($n$0 | 0) | 0; + HEAP32[$155 >> 2] = $159; + $q$5 = HEAP32[$alpha_to$0 + ($159 << 2) >> 2] ^ $q$433; + } + if (($j$232 | 0) < ($$lcssa76 | 0)) { + $j$232 = $j$232 + 1 | 0; + $q$433 = $q$5; + } else { + $q$4$lcssa = $q$5; + break; + } + } + } + if (!$q$4$lcssa) { + HEAP32[$loc + ($count$036 << 2) >> 2] = $n$0 - $i$1035; + $count$1 = $count$036 + 1 | 0; + } else $count$1 = $count$036; + $i$1035 = $i$1035 + 1 | 0; + if (($n$0 | 0) < ($i$1035 | 0)) { + $count$1$lcssa = $count$1; + break; + } else $count$036 = $count$1; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $271 = $i$537 * 7 | 0; - $274 = $labelInfo + 12 + ($270 << 2) | 0; - HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0); - $281 = $270 << 1; - $282 = $labelInfo + 655376 + ($281 << 3) | 0; - HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0); - $290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0); - $293 = $270 << 2; - $294 = $labelInfo + 131084 + ($293 << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312; - $315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0; - $319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0; - if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + if (($count$1$lcssa | 0) != ($$lcssa76 | 0)) { + $$0 = -1; + break; } - if ((HEAP32[$248 >> 2] | 0) > 0) { - $i$636 = 0; + if (($$lcssa76 | 0) > 0) { + $i$1130 = 0; do { - $323 = $labelInfo + 12 + ($i$636 << 2) | 0; - $326 = $i$636 << 1; - $327 = $labelInfo + 655376 + ($326 << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0); - $333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0; - HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $175 = $recd$0 + (HEAP32[$loc + ($i$1130 << 2) >> 2] | 0) | 0; + HEAP8[$175 >> 0] = HEAPU8[$175 >> 0] ^ 1; + $i$1130 = $i$1130 + 1 | 0; + } while (($i$1130 | 0) < ($$lcssa76 | 0)); + $u$1 = $$pre$phi$lcssaZ2D; + } else $u$1 = $$pre$phi$lcssaZ2D; + } else $u$1 = 0; + $182 = $out_p; + HEAP32[$182 >> 2] = 0; + HEAP32[$182 + 4 >> 2] = 0; + $190 = 1; + $191 = 0; + $194 = 0; + $195 = 0; + $i$1228 = $length$0 - $k$1 | 0; + while (1) { + $192 = ___muldi3(HEAPU8[$recd$0 + $i$1228 >> 0] | 0, 0, $190 | 0, $191 | 0) | 0; + $194 = _i64Add($192 | 0, tempRet0 | 0, $194 | 0, $195 | 0) | 0; + $195 = tempRet0; + $198 = $out_p; + HEAP32[$198 >> 2] = $194; + HEAP32[$198 + 4 >> 2] = $195; + $190 = _bitshift64Shl($190 | 0, $191 | 0, 1) | 0; + $i$1228 = $i$1228 + 1 | 0; + if (($i$1228 | 0) >= ($length$0 | 0)) break; else $191 = tempRet0; } - } + if ($28) $$0 = HEAP32[$l + ($u$1 << 2) >> 2] | 0; else $$0 = 0; + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _jpgread($fp, $w, $h, $nc, $dpi) { + $fp = $fp | 0; + $w = $w | 0; + $h = $h | 0; + $nc = $nc | 0; + $dpi = $dpi | 0; + var $$0$reg2mem$0 = 0, $$reg2mem115$0 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $108 = 0, $109 = 0, $117 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $33 = 0, $35 = 0, $37 = 0, $39 = 0, $40 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $48 = 0, $49 = 0, $5 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $70 = 0, $73 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $85 = 0, $86 = 0, $88 = 0, $89 = 0, $9 = 0, $99 = 0, $buffer = 0, $cinfo = 0, $jerr = 0, $row$03$reg2mem113$0 = 0, $vararg_buffer = 0, $vararg_buffer117 = 0, $vararg_buffer119 = 0, _setjmpTable = 0, _setjmpTableSize = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 800 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $vararg_buffer119 = sp + 480 | 0; + $vararg_buffer117 = sp + 472 | 0; + $vararg_buffer = sp + 464 | 0; + _setjmpTableSize = 4; + _setjmpTable = _malloc(40) | 0; + HEAP32[_setjmpTable >> 2] = 0; + $cinfo = sp; + $jerr = sp + 504 | 0; + $buffer = sp + 484 | 0; + _memset($cinfo | 0, 0, 464) | 0; + __THREW__ = 0; + $0 = invoke_ii(62, $jerr | 0) | 0; + $1 = __THREW__; + __THREW__ = 0; + if (($1 | 0) != 0 & (threwValue | 0) != 0) { + $2 = _testSetjmp(HEAP32[$1 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$2) _longjmp($1 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $2 = -1; + if (($2 | 0) == 1) $$reg2mem115$0 = tempRet0; else { + HEAP32[$cinfo >> 2] = $0; + HEAP32[$jerr >> 2] = 111; + _setjmpTable = _saveSetjmp($jerr + 132 | 0, 1, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + _setjmpTableSize = tempRet0; + __THREW__ = 0; + $5 = __THREW__; + __THREW__ = 0; + if (($5 | 0) != 0 & (threwValue | 0) != 0) { + $6 = _testSetjmp(HEAP32[$5 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$6) _longjmp($5 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $6 = -1; + if (($6 | 0) == 1) $$reg2mem115$0 = tempRet0; else $$reg2mem115$0 = 0; + } + L4 : while (1) { + if ($$reg2mem115$0) { + __THREW__ = 0; + invoke_vi(112, $cinfo | 0); + $9 = __THREW__; + __THREW__ = 0; + if (($9 | 0) != 0 & (threwValue | 0) != 0) { + $10 = _testSetjmp(HEAP32[$9 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$10) _longjmp($9 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $10 = -1; + if (($10 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + invoke_viii(1, 3, 20421, $vararg_buffer | 0); + $12 = __THREW__; + __THREW__ = 0; + if (($12 | 0) != 0 & (threwValue | 0) != 0) { + $13 = _testSetjmp(HEAP32[$12 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$13) _longjmp($12 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $13 = -1; + if (($13 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } else { + label = 7; + break; } } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + __THREW__ = 0; + invoke_viii(2, $cinfo | 0, 62, 464); + $15 = __THREW__; + __THREW__ = 0; + if (($15 | 0) != 0 & (threwValue | 0) != 0) { + $16 = _testSetjmp(HEAP32[$15 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$16) _longjmp($15 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $16 = -1; + if (($16 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + invoke_vii(39, $cinfo | 0, $fp | 0); + $18 = __THREW__; + __THREW__ = 0; + if (($18 | 0) != 0 & (threwValue | 0) != 0) { + $19 = _testSetjmp(HEAP32[$18 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$19) _longjmp($18 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $19 = -1; + if (($19 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + $21 = invoke_iii(19, $cinfo | 0, 1) | 0; + $22 = __THREW__; + __THREW__ = 0; + if (($22 | 0) != 0 & (threwValue | 0) != 0) { + $23 = _testSetjmp(HEAP32[$22 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$23) _longjmp($22 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $23 = -1; + if (($23 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + if (($21 | 0) != 1) { + __THREW__ = 0; + invoke_viii(1, 3, 20447, $vararg_buffer117 | 0); + $26 = __THREW__; + __THREW__ = 0; + if (($26 | 0) != 0 & (threwValue | 0) != 0) { + $27 = _testSetjmp(HEAP32[$26 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$27) _longjmp($26 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $27 = -1; + if (($27 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + invoke_vi(112, $cinfo | 0); + $29 = __THREW__; + __THREW__ = 0; + if (($29 | 0) != 0 & (threwValue | 0) != 0) { + $30 = _testSetjmp(HEAP32[$29 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$30) _longjmp($29 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $30 = -1; + if (($30 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } else { + label = 14; + break; + } + } + __THREW__ = 0; + invoke_ii(63, $cinfo | 0) | 0; + $32 = __THREW__; + __THREW__ = 0; + if (($32 | 0) != 0 & (threwValue | 0) != 0) { + $33 = _testSetjmp(HEAP32[$32 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$33) _longjmp($32 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $33 = -1; + if (($33 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + $35 = $cinfo + 36 | 0; + $37 = $cinfo + 28 | 0; + $39 = Math_imul(HEAP32[$37 >> 2] | 0, HEAP32[$35 >> 2] | 0) | 0; + $40 = $cinfo + 32 | 0; + $42 = Math_imul($39, HEAP32[$40 >> 2] | 0) | 0; + __THREW__ = 0; + $43 = invoke_ii(64, $42 | 0) | 0; + $44 = __THREW__; + __THREW__ = 0; + if (($44 | 0) != 0 & (threwValue | 0) != 0) { + $45 = _testSetjmp(HEAP32[$44 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$45) _longjmp($44 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $45 = -1; + if (($45 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + if (!$43) { + __THREW__ = 0; + invoke_viii(1, 3, 21359, $vararg_buffer119 | 0); + $57 = __THREW__; + __THREW__ = 0; + if (($57 | 0) != 0 & (threwValue | 0) != 0) { + $58 = _testSetjmp(HEAP32[$57 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$58) _longjmp($57 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $58 = -1; + if (($58 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + invoke_vi(112, $cinfo | 0); + $60 = __THREW__; + __THREW__ = 0; + if (($60 | 0) != 0 & (threwValue | 0) != 0) { + $61 = _testSetjmp(HEAP32[$60 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$61) _longjmp($60 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $61 = -1; + if (($61 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } else { + label = 22; + break; } } + $48 = $cinfo + 140 | 0; + $49 = $cinfo + 116 | 0; + if ((HEAP32[$48 >> 2] | 0) >>> 0 < (HEAP32[$49 >> 2] | 0) >>> 0) { + $53 = $buffer + 4 | 0; + $54 = $buffer + 8 | 0; + $55 = $buffer + 12 | 0; + $56 = $buffer + 16 | 0; + $row$03$reg2mem113$0 = 0; + while (1) { + $64 = $43 + (Math_imul($row$03$reg2mem113$0, $39) | 0) | 0; + HEAP32[$buffer >> 2] = $64; + $67 = $43 + (Math_imul(1 + $row$03$reg2mem113$0 | 0, $39) | 0) | 0; + HEAP32[$53 >> 2] = $67; + $70 = $43 + (Math_imul(2 + $row$03$reg2mem113$0 | 0, $39) | 0) | 0; + HEAP32[$54 >> 2] = $70; + $73 = $43 + (Math_imul(3 + $row$03$reg2mem113$0 | 0, $39) | 0) | 0; + HEAP32[$55 >> 2] = $73; + $76 = $43 + (Math_imul(4 + $row$03$reg2mem113$0 | 0, $39) | 0) | 0; + HEAP32[$56 >> 2] = $76; + __THREW__ = 0; + $77 = invoke_iiii(27, $cinfo | 0, $buffer | 0, 5) | 0; + $78 = __THREW__; + __THREW__ = 0; + if (($78 | 0) != 0 & (threwValue | 0) != 0) { + $79 = _testSetjmp(HEAP32[$78 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$79) _longjmp($78 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $79 = -1; + if (($79 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue L4; + } + if ((HEAP32[$48 >> 2] | 0) >>> 0 < (HEAP32[$49 >> 2] | 0) >>> 0) $row$03$reg2mem113$0 = $77 + $row$03$reg2mem113$0 | 0; else break; + } + } + __THREW__ = 0; + invoke_ii(65, $cinfo | 0) | 0; + $85 = __THREW__; + __THREW__ = 0; + if (($85 | 0) != 0 & (threwValue | 0) != 0) { + $86 = _testSetjmp(HEAP32[$85 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$86) _longjmp($85 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $86 = -1; + if (($86 | 0) == 1) { + $$reg2mem115$0 = tempRet0; + continue; + } + __THREW__ = 0; + invoke_vi(112, $cinfo | 0); + $88 = __THREW__; + __THREW__ = 0; + if (($88 | 0) != 0 & (threwValue | 0) != 0) { + $89 = _testSetjmp(HEAP32[$88 >> 2] | 0, _setjmpTable | 0, _setjmpTableSize | 0) | 0; + if (!$89) _longjmp($88 | 0, threwValue | 0); + tempRet0 = threwValue; + } else $89 = -1; + if (($89 | 0) == 1) $$reg2mem115$0 = tempRet0; else { + label = 27; + break; + } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 1) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - $29 = HEAPU8[$pnt$168 >> 0] | 0; - do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($42 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $42; - $45 = ($42 << 16 >> 16) * 7 | 0; - $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; - $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264; - $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $67 = $65 << 16 >> 16 > 0; - if ($61 << 16 >> 16 <= 0) { - if ($67) { - HEAP16[$pnt2$367 >> 1] = $65; - $167 = $66 * 7 | 0; - $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; - $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264; - $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075; - $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; - if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $187 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($187 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $187; - $190 = ($187 << 16 >> 16) * 7 | 0; - $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; - $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264; - $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075; - $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; - if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$204 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $207 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $207; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16; - $212 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $207; - break; - } - } - if ($67) { - $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - if (($70 | 0) > ($73 | 0)) { - HEAP16[$pnt2$367 >> 1] = $73; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $90 = $73; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $90 = $73; + L30 : do if ((label | 0) == 7) $$0$reg2mem$0 = 0; else if ((label | 0) == 14) $$0$reg2mem$0 = 0; else if ((label | 0) == 22) $$0$reg2mem$0 = 0; else if ((label | 0) == 27) { + if ($w) HEAP32[$w >> 2] = HEAP32[$37 >> 2]; + if ($h) HEAP32[$h >> 2] = HEAP32[$40 >> 2]; + if ($nc) HEAP32[$nc >> 2] = HEAP32[$35 >> 2]; + if (!$dpi) $$0$reg2mem$0 = $43; else { + $99 = HEAP8[$cinfo + 286 >> 0] | 0; + switch ($99 << 24 >> 24) { + case 1: + { + $101 = HEAP32[$cinfo + 288 >> 2] | 0; + $102 = $101 & 65535; + if ($102 << 16 >> 16 == ($101 >>> 16 & 65535) << 16 >> 16) { + HEAPF32[$dpi >> 2] = +($102 & 65535); + $$0$reg2mem$0 = $43; + break L30; + } + break; + } + case 2: + { + $108 = HEAP32[$cinfo + 288 >> 2] | 0; + $109 = $108 & 65535; + if ($109 << 16 >> 16 == ($108 >>> 16 & 65535) << 16 >> 16) { + HEAPF32[$dpi >> 2] = +($109 & 65535) * 2.5399999618530273; + $$0$reg2mem$0 = $43; + break L30; + } + break; + } + default: + if (($99 & 255) > 2) { + $117 = HEAP32[$cinfo + 288 >> 2] | 0; + if (($117 & 65535) << 16 >> 16 == 0 & $117 >>> 0 < 65536) { + HEAPF32[$dpi >> 2] = +($99 & 255); + $$0$reg2mem$0 = $43; + break L30; + } + } + } + HEAPF32[$dpi >> 2] = 0.0; + $$0$reg2mem$0 = $43; + } + } while (0); + _free(_setjmpTable | 0); + STACKTOP = sp; + return $$0$reg2mem$0 | 0; +} + +function _finish_pass1($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $1 = 0, $103 = 0, $104 = 0, $11 = 0, $121 = 0, $145 = 0, $22 = 0, $26 = 0, $30 = 0, $31 = 0, $35 = 0, $36 = 0, $39 = 0, $4 = 0, $42 = 0, $46 = 0, $48 = 0, $49 = 0, $51 = 0, $52 = 0, $53 = 0, $55 = 0, $56 = 0, $57 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $68 = 0, $71 = 0, $74 = 0, $79 = 0, $81 = 0, $83 = 0, $85 = 0, $87 = 0, $89 = 0, $91 = 0, $93 = 0, $94 = 0, $95 = 0, $97 = 0, $99 = 0, $b1$0$i$i = 0, $boxp$0$i$i$i36 = 0, $boxp$0$i2$i$i43 = 0, $boxp$0$which$0$i5$i$i = 0, $c0$0$i$i24 = 0, $c0total$0$i$i$lcssa = 0, $c0total$0$i$i26 = 0, $c0total$1$i$i$lcssa = 0, $c0total$1$i$i15 = 0, $c0total$2$i$i$lcssa = 0, $c0total$2$i$i7 = 0, $c0total$3$i$i = 0, $c1$0$i$i13 = 0, $c1total$0$i$i$lcssa = 0, $c1total$0$i$i27 = 0, $c1total$1$i$i$lcssa = 0, $c1total$1$i$i16 = 0, $c1total$2$i$i$lcssa = 0, $c1total$2$i$i8 = 0, $c1total$3$i$i = 0, $c2$0$i$i4 = 0, $c2total$0$i$i$lcssa = 0, $c2total$0$i$i28 = 0, $c2total$1$i$i$lcssa = 0, $c2total$1$i$i17 = 0, $c2total$2$i$i$lcssa = 0, $c2total$2$i$i9 = 0, $c2total$3$i$i = 0, $exitcond10$i$i42 = 0, $histp$0$i$i5 = 0, $i$0$i$i$i37 = 0, $i$0$i3$i$i44 = 0, $i$0$i33 = 0, $indvars$iv$next9$i$i = 0, $indvars$iv8$i$i$lcssa = 0, $indvars$iv8$i$i49 = 0, $maxc$0$i$i$i38 = 0, $maxc$1$i$i$i = 0, $maxv$0$i$i$i45 = 0, $total$0$i$i$lcssa = 0, $total$0$i$i25 = 0, $total$1$i$i$lcssa = 0, $total$1$i$i14 = 0, $total$2$i$i$lcssa = 0, $total$2$i$i6 = 0, $total$3$i$i = 0, $which$0$i$i$i39 = 0, $which$0$i4$i$i46 = 0, $which$1$i$i$i = 0; + $0 = $cinfo + 460 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $4 = $cinfo + 136 | 0; + HEAP32[$4 >> 2] = HEAP32[$1 + 16 >> 2]; + $6 = HEAP32[$1 + 20 >> 2] | 0; + $11 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, $6 << 5) | 0; + HEAP32[$11 >> 2] = 0; + HEAP32[$11 + 4 >> 2] = 31; + HEAP32[$11 + 8 >> 2] = 0; + HEAP32[$11 + 12 >> 2] = 63; + HEAP32[$11 + 16 >> 2] = 0; + HEAP32[$11 + 20 >> 2] = 31; + _update_box($cinfo, $11); + L1 : do if (($6 | 0) > 1) { + $indvars$iv8$i$i49 = 1; + while (1) { + $exitcond10$i$i42 = ($indvars$iv8$i$i49 | 0) == 0; + if (($indvars$iv8$i$i49 << 1 | 0) > ($6 | 0)) if ($exitcond10$i$i42) $b1$0$i$i = 0; else { + $boxp$0$i2$i$i43 = $11; + $i$0$i3$i$i44 = 0; + $maxv$0$i$i$i45 = 0; + $which$0$i4$i$i46 = 0; + while (1) { + $30 = HEAP32[$boxp$0$i2$i$i43 + 24 >> 2] | 0; + $31 = ($30 | 0) > ($maxv$0$i$i$i45 | 0); + $boxp$0$which$0$i5$i$i = $31 ? $boxp$0$i2$i$i43 : $which$0$i4$i$i46; + $i$0$i3$i$i44 = $i$0$i3$i$i44 + 1 | 0; + if (($i$0$i3$i$i44 | 0) == ($indvars$iv8$i$i49 | 0)) { + $b1$0$i$i = $boxp$0$which$0$i5$i$i; + break; + } else { + $boxp$0$i2$i$i43 = $boxp$0$i2$i$i43 + 32 | 0; + $maxv$0$i$i$i45 = $31 ? $30 : $maxv$0$i$i$i45; + $which$0$i4$i$i46 = $boxp$0$which$0$i5$i$i; + } + } + } else if ($exitcond10$i$i42) $b1$0$i$i = 0; else { + $boxp$0$i$i$i36 = $11; + $i$0$i$i$i37 = 0; + $maxc$0$i$i$i38 = 0; + $which$0$i$i$i39 = 0; + while (1) { + $22 = HEAP32[$boxp$0$i$i$i36 + 28 >> 2] | 0; + if (($22 | 0) > ($maxc$0$i$i$i38 | 0)) { + $26 = (HEAP32[$boxp$0$i$i$i36 + 24 >> 2] | 0) > 0; + $maxc$1$i$i$i = $26 ? $22 : $maxc$0$i$i$i38; + $which$1$i$i$i = $26 ? $boxp$0$i$i$i36 : $which$0$i$i$i39; + } else { + $maxc$1$i$i$i = $maxc$0$i$i$i38; + $which$1$i$i$i = $which$0$i$i$i39; + } + $i$0$i$i$i37 = $i$0$i$i$i37 + 1 | 0; + if (($i$0$i$i$i37 | 0) == ($indvars$iv8$i$i49 | 0)) { + $b1$0$i$i = $which$1$i$i$i; + break; + } else { + $boxp$0$i$i$i36 = $boxp$0$i$i$i36 + 32 | 0; + $maxc$0$i$i$i38 = $maxc$1$i$i$i; + $which$0$i$i$i39 = $which$1$i$i$i; + } + } + } + if (!$b1$0$i$i) { + $indvars$iv8$i$i$lcssa = $indvars$iv8$i$i49; + break L1; + } + $35 = $11 + ($indvars$iv8$i$i49 << 5) | 0; + $36 = $b1$0$i$i + 4 | 0; + HEAP32[$11 + ($indvars$iv8$i$i49 << 5) + 4 >> 2] = HEAP32[$36 >> 2]; + $39 = $b1$0$i$i + 12 | 0; + HEAP32[$11 + ($indvars$iv8$i$i49 << 5) + 12 >> 2] = HEAP32[$39 >> 2]; + $42 = $b1$0$i$i + 20 | 0; + HEAP32[$11 + ($indvars$iv8$i$i49 << 5) + 20 >> 2] = HEAP32[$42 >> 2]; + HEAP32[$35 >> 2] = HEAP32[$b1$0$i$i >> 2]; + $46 = $b1$0$i$i + 8 | 0; + $48 = $11 + ($indvars$iv8$i$i49 << 5) + 8 | 0; + HEAP32[$48 >> 2] = HEAP32[$46 >> 2]; + $49 = $b1$0$i$i + 16 | 0; + $51 = $11 + ($indvars$iv8$i$i49 << 5) + 16 | 0; + HEAP32[$51 >> 2] = HEAP32[$49 >> 2]; + $52 = HEAP32[$36 >> 2] | 0; + $53 = HEAP32[$b1$0$i$i >> 2] | 0; + $55 = $52 - $53 << 4; + $56 = HEAP32[$39 >> 2] | 0; + $57 = HEAP32[$46 >> 2] | 0; + $59 = ($56 - $57 | 0) * 12 | 0; + $60 = HEAP32[$42 >> 2] | 0; + $61 = HEAP32[$49 >> 2] | 0; + $64 = ($55 | 0) > ($59 | 0); + switch ((($60 - $61 << 3 | 0) > (($64 ? $55 : $59) | 0) ? 2 : $64 & 1 ^ 1) | 0) { + case 0: + { + $68 = ($53 + $52 | 0) / 2 | 0; + HEAP32[$36 >> 2] = $68; + HEAP32[$35 >> 2] = $68 + 1; + break; + } + case 1: + { + $71 = ($57 + $56 | 0) / 2 | 0; + HEAP32[$39 >> 2] = $71; + HEAP32[$48 >> 2] = $71 + 1; + break; + } + case 2: + { + $74 = ($61 + $60 | 0) / 2 | 0; + HEAP32[$42 >> 2] = $74; + HEAP32[$51 >> 2] = $74 + 1; + break; + } + default: + {} + } + _update_box($cinfo, $b1$0$i$i); + _update_box($cinfo, $35); + $indvars$iv$next9$i$i = $indvars$iv8$i$i49 + 1 | 0; + if (($indvars$iv$next9$i$i | 0) < ($6 | 0)) $indvars$iv8$i$i49 = $indvars$iv$next9$i$i; else { + $indvars$iv8$i$i$lcssa = $indvars$iv$next9$i$i; + break L1; + } + } + } else $indvars$iv8$i$i$lcssa = 1; while (0); + if (($indvars$iv8$i$i$lcssa | 0) > 0) { + $i$0$i33 = 0; + do { + $79 = HEAP32[(HEAP32[$0 >> 2] | 0) + 24 >> 2] | 0; + $81 = HEAP32[$11 + ($i$0$i33 << 5) >> 2] | 0; + $83 = HEAP32[$11 + ($i$0$i33 << 5) + 4 >> 2] | 0; + $85 = HEAP32[$11 + ($i$0$i33 << 5) + 8 >> 2] | 0; + $87 = HEAP32[$11 + ($i$0$i33 << 5) + 12 >> 2] | 0; + $89 = HEAP32[$11 + ($i$0$i33 << 5) + 16 >> 2] | 0; + $91 = HEAP32[$11 + ($i$0$i33 << 5) + 20 >> 2] | 0; + if (($81 | 0) > ($83 | 0)) { + $c0total$0$i$i$lcssa = 0; + $c1total$0$i$i$lcssa = 0; + $c2total$0$i$i$lcssa = 0; + $total$0$i$i$lcssa = 0; + } else { + $93 = ($85 | 0) > ($87 | 0); + $94 = ($89 | 0) > ($91 | 0); + $c0$0$i$i24 = $81; + $c0total$0$i$i26 = 0; + $c1total$0$i$i27 = 0; + $c2total$0$i$i28 = 0; + $total$0$i$i25 = 0; + while (1) { + $95 = $79 + ($c0$0$i$i24 << 2) | 0; + $97 = $c0$0$i$i24 << 3 | 4; + if ($93) { + $c0total$1$i$i$lcssa = $c0total$0$i$i26; + $c1total$1$i$i$lcssa = $c1total$0$i$i27; + $c2total$1$i$i$lcssa = $c2total$0$i$i28; + $total$1$i$i$lcssa = $total$0$i$i25; + } else { + $c0total$1$i$i15 = $c0total$0$i$i26; + $c1$0$i$i13 = $85; + $c1total$1$i$i16 = $c1total$0$i$i27; + $c2total$1$i$i17 = $c2total$0$i$i28; + $total$1$i$i14 = $total$0$i$i25; + while (1) { + $99 = $c1$0$i$i13 << 2 | 2; + if ($94) { + $c0total$2$i$i$lcssa = $c0total$1$i$i15; + $c1total$2$i$i$lcssa = $c1total$1$i$i16; + $c2total$2$i$i$lcssa = $c2total$1$i$i17; + $total$2$i$i$lcssa = $total$1$i$i14; } else { - HEAP16[$pnt2$367 >> 1] = $70; - if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $90 = $70; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $90 = $70; - } - $92 = ($90 << 16 >> 16) * 7 | 0; - $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; - $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264; - $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $108 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($108 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $61; - $148 = $62 * 7 | 0; - $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; - $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264; - $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075; - $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; - if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($113 | 0) > ($116 | 0)) { - HEAP16[$pnt2$367 >> 1] = $116; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $133 = $116; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $133 = $116; - } else { - HEAP16[$pnt2$367 >> 1] = $113; - if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; + $c0total$2$i$i7 = $c0total$1$i$i15; + $c1total$2$i$i8 = $c1total$1$i$i16; + $c2$0$i$i4 = $89; + $c2total$2$i$i9 = $c2total$1$i$i17; + $histp$0$i$i5 = (HEAP32[$95 >> 2] | 0) + ($c1$0$i$i13 << 6) + ($89 << 1) | 0; + $total$2$i$i6 = $total$1$i$i14; while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $133 = $113; + $103 = HEAP16[$histp$0$i$i5 >> 1] | 0; + $104 = $103 & 65535; + if (!($103 << 16 >> 16)) { + $c0total$3$i$i = $c0total$2$i$i7; + $c1total$3$i$i = $c1total$2$i$i8; + $c2total$3$i$i = $c2total$2$i$i9; + $total$3$i$i = $total$2$i$i6; + } else { + $c0total$3$i$i = (Math_imul($104, $97) | 0) + $c0total$2$i$i7 | 0; + $c1total$3$i$i = (Math_imul($104, $99) | 0) + $c1total$2$i$i8 | 0; + $c2total$3$i$i = (Math_imul($104, $c2$0$i$i4 << 3 | 4) | 0) + $c2total$2$i$i9 | 0; + $total$3$i$i = $104 + $total$2$i$i6 | 0; + } + if (($c2$0$i$i4 | 0) < ($91 | 0)) { + $c0total$2$i$i7 = $c0total$3$i$i; + $c1total$2$i$i8 = $c1total$3$i$i; + $c2$0$i$i4 = $c2$0$i$i4 + 1 | 0; + $c2total$2$i$i9 = $c2total$3$i$i; + $histp$0$i$i5 = $histp$0$i$i5 + 2 | 0; + $total$2$i$i6 = $total$3$i$i; + } else { + $c0total$2$i$i$lcssa = $c0total$3$i$i; + $c1total$2$i$i$lcssa = $c1total$3$i$i; + $c2total$2$i$i$lcssa = $c2total$3$i$i; + $total$2$i$i$lcssa = $total$3$i$i; break; - } else $wk$346 = $wk$346 + 4 | 0; + } } - } else $133 = $113; + } + if (($c1$0$i$i13 | 0) < ($87 | 0)) { + $c0total$1$i$i15 = $c0total$2$i$i$lcssa; + $c1$0$i$i13 = $c1$0$i$i13 + 1 | 0; + $c1total$1$i$i16 = $c1total$2$i$i$lcssa; + $c2total$1$i$i17 = $c2total$2$i$i$lcssa; + $total$1$i$i14 = $total$2$i$i$lcssa; + } else { + $c0total$1$i$i$lcssa = $c0total$2$i$i$lcssa; + $c1total$1$i$i$lcssa = $c1total$2$i$i$lcssa; + $c2total$1$i$i$lcssa = $c2total$2$i$i$lcssa; + $total$1$i$i$lcssa = $total$2$i$i$lcssa; + break; + } } - $135 = ($133 << 16 >> 16) * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $227 = $pnt$168 + 2 | 0; - $228 = $pnt2$367 + 2 | 0; - $229 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $229; - $pnt$1$lcssa = $227; - $pnt2$3$lcssa = $228; - $wk_max$1$lcssa = $wk_max$2; - break; + } + if (($c0$0$i$i24 | 0) < ($83 | 0)) { + $c0$0$i$i24 = $c0$0$i$i24 + 1 | 0; + $c0total$0$i$i26 = $c0total$1$i$i$lcssa; + $c1total$0$i$i27 = $c1total$1$i$i$lcssa; + $c2total$0$i$i28 = $c2total$1$i$i$lcssa; + $total$0$i$i25 = $total$1$i$i$lcssa; } else { - $dpnt$166 = $229; - $pnt$168 = $227; - $pnt2$367 = $228; - $wk_max$159 = $wk_max$2; + $c0total$0$i$i$lcssa = $c0total$1$i$i$lcssa; + $c1total$0$i$i$lcssa = $c1total$1$i$i$lcssa; + $c2total$0$i$i$lcssa = $c2total$1$i$i$lcssa; + $total$0$i$i$lcssa = $total$1$i$i$lcssa; + break; } } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $121 = $total$0$i$i$lcssa >> 1; + HEAP8[(HEAP32[HEAP32[$4 >> 2] >> 2] | 0) + $i$0$i33 >> 0] = ($c0total$0$i$i$lcssa + $121 | 0) / ($total$0$i$i$lcssa | 0) | 0; + HEAP8[(HEAP32[(HEAP32[$4 >> 2] | 0) + 4 >> 2] | 0) + $i$0$i33 >> 0] = ($c1total$0$i$i$lcssa + $121 | 0) / ($total$0$i$i$lcssa | 0) | 0; + HEAP8[(HEAP32[(HEAP32[$4 >> 2] | 0) + 8 >> 2] | 0) + $i$0$i33 >> 0] = ($c2total$0$i$i$lcssa + $121 | 0) / ($total$0$i$i$lcssa | 0) | 0; + $i$0$i33 = $i$0$i33 + 1 | 0; + } while (($i$0$i33 | 0) < ($indvars$iv8$i$i$lcssa | 0)); + } + HEAP32[$cinfo + 132 >> 2] = $indvars$iv8$i$i$lcssa; + $145 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$145 + 20 >> 2] = 96; + HEAP32[$145 + 24 >> 2] = $indvars$iv8$i$i$lcssa; + FUNCTION_TABLE_vii[HEAP32[$145 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$1 + 28 >> 2] = 1; + return; +} + +function __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPNS_4NodeILi96EEEPKhiPKii($this, $node, $features, $num_features, $indices, $num_indices) { + $this = $this | 0; + $node = $node | 0; + $features = $features | 0; + $num_features = $num_features | 0; + $indices = $indices | 0; + $num_indices = $num_indices | 0; + var $0 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $11 = 0, $117 = 0, $120 = 0, $122 = 0, $128 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $136 = 0, $137 = 0, $139 = 0, $147 = 0, $152 = 0, $153 = 0, $157 = 0, $158 = 0, $159 = 0, $164 = 0, $165 = 0, $166 = 0, $168 = 0, $174 = 0, $180 = 0, $181 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $34 = 0, $39 = 0, $4 = 0, $40 = 0, $44 = 0, $46 = 0, $47 = 0, $54 = 0, $59 = 0, $60 = 0, $64 = 0, $71 = 0, $76 = 0, $77 = 0, $81 = 0, $82 = 0, $9 = 0, $90 = 0, $95 = 0, $96 = 0, $cluster_map = 0, $i$074 = 0, $i1$072 = 0, $i2$070 = 0, $new_node = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 24 | 0; + $cluster_map = sp + 4 | 0; + $new_node = sp; + $2 = HEAP32[$this + 16 >> 2] | 0; + $4 = HEAP32[$this + 108 >> 2] | 0; + if (((($2 | 0) > ($4 | 0) ? $2 : $4) | 0) >= ($num_indices | 0)) { + HEAP8[$node + 100 >> 0] = 1; + $9 = $node + 116 | 0; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($9, $num_indices); + if (($num_indices | 0) > 0) { + $11 = HEAP32[$9 >> 2] | 0; + $i$074 = 0; + do { + HEAP32[$11 + ($i$074 << 2) >> 2] = HEAP32[$indices + ($i$074 << 2) >> 2]; + $i$074 = $i$074 + 1 | 0; + } while (($i$074 | 0) < ($num_indices | 0)); + } + STACKTOP = sp; + return; + } + HEAP32[$cluster_map >> 2] = 0; + HEAP32[$cluster_map + 4 >> 2] = 0; + HEAP32[$cluster_map + 8 >> 2] = 0; + HEAP32[$cluster_map + 12 >> 2] = 0; + HEAPF32[$cluster_map + 16 >> 2] = 1.0; + __ZN6vision14BinarykMedoidsILi96EE6assignEPKhiPKii($this + 12 | 0, $features, $num_features, $indices, $num_indices); + $19 = $this + 40 | 0; + $20 = HEAP32[$19 >> 2] | 0; + $21 = $this + 36 | 0; + $22 = HEAP32[$21 >> 2] | 0; + if (($20 - $22 >> 2 | 0) != ($num_indices | 0)) { + $34 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30157) | 0, 29634) | 0, 34302) | 0, 363) | 0, 34309) | 0, 30213) | 0; + $39 = __ZNKSt3__18ios_base6getlocEv($34 + (HEAP32[(HEAP32[$34 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $39; + $40 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $44 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$40 >> 2] | 0) + 28 >> 2] & 63]($40, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($34, $44) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($34) | 0; + _abort(); + } + L12 : do if (($20 | 0) != ($22 | 0)) { + $46 = $22; + $i1$072 = 0; + while (1) { + $47 = HEAP32[$46 + ($i1$072 << 2) >> 2] | 0; + if (($47 | 0) == -1) { + label = 9; + break; } + if (($47 | 0) >= ($num_indices | 0)) { + label = 11; + break; + } + $82 = $indices + ($47 << 2) | 0; + if ((HEAP32[$82 >> 2] | 0) >= ($num_features | 0)) { + label = 13; + break; + } + $101 = __ZNSt3__113unordered_mapIiNS_6vectorIiNS_9allocatorIiEEEENS_4hashIiEENS_8equal_toIiEENS2_INS_4pairIKiS4_EEEEEixERSA_($cluster_map, $82) | 0; + $102 = $indices + ($i1$072 << 2) | 0; + $103 = $101 + 4 | 0; + $104 = HEAP32[$103 >> 2] | 0; + if (($104 | 0) == (HEAP32[$101 + 8 >> 2] | 0)) __ZNSt3__16vectorIiNS_9allocatorIiEEE21__push_back_slow_pathIKiEEvRT_($101, $102); else { + HEAP32[$104 >> 2] = HEAP32[$102 >> 2]; + HEAP32[$103 >> 2] = $104 + 4; + } + $i1$072 = $i1$072 + 1 | 0; + $46 = HEAP32[$21 >> 2] | 0; + if ($i1$072 >>> 0 >= (HEAP32[$19 >> 2] | 0) - $46 >> 2 >>> 0) break L12; + } + if ((label | 0) == 9) { + $54 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30235) | 0, 29634) | 0, 34302) | 0, 365) | 0, 34309) | 0, 30278) | 0; + $59 = __ZNKSt3__18ios_base6getlocEv($54 + (HEAP32[(HEAP32[$54 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $59; + $60 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $64 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$60 >> 2] | 0) + 28 >> 2] & 63]($60, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($54, $64) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($54) | 0; + _abort(); + } else if ((label | 0) == 11) { + $71 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30300) | 0, 29634) | 0, 34302) | 0, 366) | 0, 34309) | 0, 30351) | 0; + $76 = __ZNKSt3__18ios_base6getlocEv($71 + (HEAP32[(HEAP32[$71 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $76; + $77 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $81 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$77 >> 2] | 0) + 28 >> 2] & 63]($77, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($71, $81) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($71) | 0; + _abort(); + } else if ((label | 0) == 13) { + $90 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30375) | 0, 29634) | 0, 34302) | 0, 367) | 0, 34309) | 0, 30351) | 0; + $95 = __ZNKSt3__18ios_base6getlocEv($90 + (HEAP32[(HEAP32[$90 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $95; + $96 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $100 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$96 >> 2] | 0) + 28 >> 2] & 63]($96, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($90, $100) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($90) | 0; + _abort(); + } + } while (0); + $117 = HEAP32[$cluster_map + 12 >> 2] | 0; + L27 : do if (($117 | 0) == 1) { + HEAP8[$node + 100 >> 0] = 1; + $120 = $node + 116 | 0; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($120, $num_indices); + if (($num_indices | 0) > 0) { + $122 = HEAP32[$120 >> 2] | 0; + $i2$070 = 0; + do { + HEAP32[$122 + ($i2$070 << 2) >> 2] = HEAP32[$indices + ($i2$070 << 2) >> 2]; + $i2$070 = $i2$070 + 1 | 0; + } while (($i2$070 | 0) < ($num_indices | 0)); } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; + $128 = $node + 104 | 0; + __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE7reserveEj($128, $117); + $130 = HEAP32[$cluster_map + 8 >> 2] | 0; + $131 = $this + 4 | 0; + $132 = $node + 108 | 0; + $133 = $node + 112 | 0; + if ($130) { + $137 = $130; + $180 = $130; + while (1) { + $136 = $137 + 16 | 0; + $139 = $137 + 12 | 0; + if ((HEAP32[$136 >> 2] | 0) == (HEAP32[$139 >> 2] | 0)) break; + $158 = __Znwj(128) | 0; + $159 = HEAP32[$131 >> 2] | 0; + HEAP32[$131 >> 2] = $159 + 1; + $164 = $features + ((HEAP32[$137 + 8 >> 2] | 0) * 96 | 0) | 0; + HEAP32[$158 >> 2] = $159; + $165 = $158 + 100 | 0; + $166 = $158 + 104 | 0; + HEAP32[$166 >> 2] = 0; + HEAP32[$166 + 4 >> 2] = 0; + HEAP32[$166 + 8 >> 2] = 0; + HEAP32[$166 + 12 >> 2] = 0; + HEAP32[$166 + 16 >> 2] = 0; + HEAP32[$166 + 20 >> 2] = 0; + dest = $158 + 4 | 0; + src = $164; + stop = dest + 96 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$new_node >> 2] = $158; + HEAP8[$165 >> 0] = 0; + $168 = HEAP32[$132 >> 2] | 0; + if (($168 | 0) == (HEAP32[$133 >> 2] | 0)) __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE21__push_back_slow_pathIKS4_EEvRT_($128, $new_node); else { + HEAP32[$168 >> 2] = $158; + HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 4; + } + $174 = HEAP32[$139 >> 2] | 0; + __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPNS_4NodeILi96EEEPKhiPKii($this, $158, $features, $num_features, $174, (HEAP32[$136 >> 2] | 0) - $174 >> 2); + $181 = HEAP32[$180 >> 2] | 0; + if (!$181) break L27; else { + $137 = $181; + $180 = $181; + } + } + $147 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30436) | 0, 29634) | 0, 34302) | 0, 387) | 0, 34309) | 0, 30482) | 0; + $152 = __ZNKSt3__18ios_base6getlocEv($147 + (HEAP32[(HEAP32[$147 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $152; + $153 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $157 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$153 >> 2] | 0) + 28 >> 2] & 63]($153, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($147, $157) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($147) | 0; + _abort(); + } } while (0); - if ((label | 0) == 52) { - $236 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEED2Ev($cluster_map); + STACKTOP = sp; + return; +} + +function __ZN6vision26PreemptiveRobustHomographyIfEEbPT_PKS1_S4_iS4_iRNSt3__16vectorIS1_NS5_9allocatorIS1_EEEERNS6_IiNS7_IiEEEERNS6_INS5_4pairIS1_iEENS7_ISF_EEEES1_iii($H, $p, $q, $num_points, $test_points, $num_test_points, $hyp, $tmp_i, $hyp_costs, $scale, $max_num_hypotheses, $max_trials, $chunk_size) { + $H = $H | 0; + $p = $p | 0; + $q = $q | 0; + $num_points = $num_points | 0; + $test_points = $test_points | 0; + $num_test_points = $num_test_points | 0; + $hyp = $hyp | 0; + $tmp_i = $tmp_i | 0; + $hyp_costs = $hyp_costs | 0; + $scale = +$scale; + $max_num_hypotheses = $max_num_hypotheses | 0; + $max_trials = $max_trials | 0; + $chunk_size = $chunk_size | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa5 = 0, $$pre = 0, $0 = 0, $1 = 0, $101 = 0, $112 = 0.0, $113 = 0, $115 = 0, $124 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $137 = 0, $140 = 0.0, $141 = 0, $142 = 0, $148 = 0, $152 = 0, $154 = 0, $158 = 0.0, $16 = 0, $21 = 0, $22 = 0, $26 = 0, $29 = 0, $40 = 0, $45 = 0, $46 = 0, $50 = 0, $64 = 0, $69 = 0, $70 = 0, $74 = 0, $76 = 0.0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $81 = 0, $85 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i$026 = 0, $i1$023 = 0, $i2$08 = 0, $j$015 = 0, $k$09 = 0, $min_cost$07 = 0.0, $min_cost$1 = 0.0, $min_index$0$lcssa = 0, $min_index$06 = 0, $min_index$1 = 0, $num_hypotheses$0$lcssa = 0, $num_hypotheses$029 = 0, $num_hypotheses$1 = 0, $num_hypotheses_remaining$0$lcssa = 0, $num_hypotheses_remaining$021 = 0, $seed = 0, $trial$030 = 0, dest = 0, sp = 0, src = 0, stop = 0, $i1$023$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 12 | 0; + $seed = sp + 8 | 0; + $1 = sp; + if ((HEAP32[$hyp + 4 >> 2] | 0) - (HEAP32[$hyp >> 2] | 0) >> 2 >>> 0 < ($max_num_hypotheses * 9 | 0) >>> 0) { + $16 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28902) | 0, 28960) | 0, 34302) | 0, 119) | 0, 34309) | 0, 29088) | 0; + $21 = __ZNKSt3__18ios_base6getlocEv($16 + (HEAP32[(HEAP32[$16 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $21; + $22 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $26 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$22 >> 2] | 0) + 28 >> 2] & 63]($22, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($16, $26) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($16) | 0; + _abort(); + } + $29 = HEAP32[$tmp_i >> 2] | 0; + if ((HEAP32[$tmp_i + 4 >> 2] | 0) - $29 >> 2 >>> 0 < $num_points >>> 0) { + $40 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29138) | 0, 28960) | 0, 34302) | 0, 120) | 0, 34309) | 0, 29188) | 0; + $45 = __ZNKSt3__18ios_base6getlocEv($40 + (HEAP32[(HEAP32[$40 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $45; + $46 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $50 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$46 >> 2] | 0) + 28 >> 2] & 63]($46, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($40, $50) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($40) | 0; + _abort(); + } + if ((HEAP32[$hyp_costs + 4 >> 2] | 0) - (HEAP32[$hyp_costs >> 2] | 0) >> 3 >>> 0 < $max_num_hypotheses >>> 0) { + $64 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29230) | 0, 28960) | 0, 34302) | 0, 121) | 0, 34309) | 0, 29292) | 0; + $69 = __ZNKSt3__18ios_base6getlocEv($64 + (HEAP32[(HEAP32[$64 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $69; + $70 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $74 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$70 >> 2] | 0) + 28 >> 2] & 63]($70, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($64, $74) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($64) | 0; + _abort(); + } + if (($num_points | 0) < 4) $$0 = 0; else { + HEAP32[$seed >> 2] = 1234; + $76 = $scale * $scale; + $77 = ($chunk_size | 0) < ($num_points | 0); + __ZN6vision16SequentialVectorIiEEvPT_iS1_($29, $num_points, 0); + __ZN6vision12ArrayShuffleIiEEvPT_iiRi($29, $num_points, $num_points, $seed); + $78 = $29 + 4 | 0; + $79 = $29 + 8 | 0; + $80 = $29 + 12 | 0; + $81 = ($num_test_points | 0) > 0; + if (($max_num_hypotheses | 0) > 0 & ($max_trials | 0) > 0) { + $num_hypotheses$029 = 0; + $trial$030 = 0; while (1) { - $238 = HEAP32[$wk$443 >> 2] | 0; - if (($238 | 0) == ($i$341 | 0)) { - $244 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + __ZN6vision12ArrayShuffleIiEEvPT_iiRi($29, $num_points, 4, $seed); + $85 = HEAP32[$29 >> 2] << 1; + $86 = $p + ($85 << 2) | 0; + $88 = HEAP32[$78 >> 2] << 1; + $89 = $p + ($88 << 2) | 0; + $91 = HEAP32[$79 >> 2] << 1; + $92 = $p + ($91 << 2) | 0; + $94 = HEAP32[$80 >> 2] << 1; + $95 = $p + ($94 << 2) | 0; + $96 = $q + ($85 << 2) | 0; + $97 = $q + ($88 << 2) | 0; + $98 = $q + ($91 << 2) | 0; + $99 = $q + ($94 << 2) | 0; + do if (__ZN6vision40Homography4PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_S3_S3_($86, $89, $92, $95, $96, $97, $98, $99) | 0) { + $101 = $num_hypotheses$029 * 9 | 0; + if (__ZN6vision22SolveHomography4PointsIfEEbPT_PKS1_S4_S4_S4_S4_S4_S4_S4_((HEAP32[$hyp >> 2] | 0) + ($101 << 2) | 0, $86, $89, $92, $95, $96, $97, $98, $99) | 0) { + if ($81) if (!(__ZN6vision39HomographyPointsGeometricallyConsistentIfEEbPKT_S3_i((HEAP32[$hyp >> 2] | 0) + ($101 << 2) | 0, $test_points, $num_test_points) | 0)) { + $num_hypotheses$1 = $num_hypotheses$029; + break; + } + $num_hypotheses$1 = $num_hypotheses$029 + 1 | 0; + } else $num_hypotheses$1 = $num_hypotheses$029; + } else $num_hypotheses$1 = $num_hypotheses$029; while (0); + $trial$030 = $trial$030 + 1 | 0; + if (!(($num_hypotheses$1 | 0) < ($max_num_hypotheses | 0) & ($trial$030 | 0) < ($max_trials | 0))) { + $num_hypotheses$0$lcssa = $num_hypotheses$1; + break; + } else $num_hypotheses$029 = $num_hypotheses$1; + } + } else $num_hypotheses$0$lcssa = 0; + $112 = 1.0 / $76; + $113 = $77 ? $chunk_size : $num_points; + if (!$num_hypotheses$0$lcssa) $$0 = 0; else { + $115 = HEAP32[$hyp_costs >> 2] | 0; + if (($num_hypotheses$0$lcssa | 0) > 0) { + $i$026 = 0; + do { + HEAPF32[$115 + ($i$026 << 3) >> 2] = 0.0; + HEAP32[$115 + ($i$026 << 3) + 4 >> 2] = $i$026; + $i$026 = $i$026 + 1 | 0; + } while (($i$026 | 0) < ($num_hypotheses$0$lcssa | 0)); + } + if (($num_hypotheses$0$lcssa | 0) > 2 & ($num_points | 0) > 0) { + $i1$023 = 0; + $num_hypotheses_remaining$021 = $num_hypotheses$0$lcssa; + while (1) { + $124 = $num_points - $i1$023 | 0; + $126 = ($113 | 0) < ($124 | 0) ? $113 : $124; + $i1$023$looptemp = $i1$023; + $i1$023 = $126 + $i1$023 | 0; + $$pre = HEAP32[$hyp_costs >> 2] | 0; + if (!$num_hypotheses_remaining$021) $$lcssa5 = $$pre; else { + $128 = ($126 | 0) > 0; + $130 = $$pre; + $j$015 = 0; + while (1) { + $134 = (HEAP32[$hyp >> 2] | 0) + ((HEAP32[$130 + ($j$015 << 3) + 4 >> 2] | 0) * 9 << 2) | 0; + if ($128) { + $k$09 = $i1$023$looptemp; + do { + $137 = HEAP32[$29 + ($k$09 << 2) >> 2] << 1; + $140 = +__ZN6vision32CauchyProjectiveReprojectionCostIfEET_PKS1_S3_S3_S1_($134, $p + ($137 << 2) | 0, $q + ($137 << 2) | 0, $112); + $141 = HEAP32[$hyp_costs >> 2] | 0; + $142 = $141 + ($j$015 << 3) | 0; + HEAPF32[$142 >> 2] = $140 + +HEAPF32[$142 >> 2]; + $k$09 = $k$09 + 1 | 0; + } while (($k$09 | 0) < ($i1$023 | 0)); + $$lcssa = $141; + } else $$lcssa = $130; + $j$015 = $j$015 + 1 | 0; + if (($j$015 | 0) == ($num_hypotheses_remaining$021 | 0)) { + $$lcssa5 = $$lcssa; + break; + } else $130 = $$lcssa; + } + } + __ZN6vision10FastMedianIfiEENSt3__14pairIT_T0_EEPS5_i($1, $$lcssa5, $num_hypotheses_remaining$021); + $148 = $num_hypotheses_remaining$021 >> 1; + if (!(($148 | 0) > 2 & ($i1$023 | 0) < ($num_points | 0))) { + $num_hypotheses_remaining$0$lcssa = $148; + break; + } else $num_hypotheses_remaining$021 = $148; + } + } else $num_hypotheses_remaining$0$lcssa = $num_hypotheses$0$lcssa; + $152 = HEAP32[$hyp_costs >> 2] | 0; + $154 = HEAP32[$152 + 4 >> 2] | 0; + if (($num_hypotheses_remaining$0$lcssa | 0) > 1) { + $i2$08 = 1; + $min_cost$07 = +HEAPF32[$152 >> 2]; + $min_index$06 = $154; + while (1) { + $158 = +HEAPF32[$152 + ($i2$08 << 3) >> 2]; + if ($158 < $min_cost$07) { + $min_cost$1 = $158; + $min_index$1 = HEAP32[$152 + ($i2$08 << 3) + 4 >> 2] | 0; + } else { + $min_cost$1 = $min_cost$07; + $min_index$1 = $min_index$06; + } + $i2$08 = $i2$08 + 1 | 0; + if (($i2$08 | 0) >= ($num_hypotheses_remaining$0$lcssa | 0)) { + $min_index$0$lcssa = $min_index$1; + break; + } else { + $min_cost$07 = $min_cost$1; + $min_index$06 = $min_index$1; + } } - HEAP32[$wk$443 >> 2] = $244; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + } else $min_index$0$lcssa = $154; + dest = $H; + src = (HEAP32[$hyp >> 2] | 0) + ($min_index$0$lcssa * 9 << 2) | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + __ZN6vision19NormalizeHomographyIfEEvPT_($H); + $$0 = 1; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNK6vision21HoughSimilarityVoting11getBinIndexEiiii($this, $binX, $binY, $binAngle, $binScale) { + $this = $this | 0; + $binX = $binX | 0; + $binY = $binY | 0; + $binAngle = $binAngle | 0; + $binScale = $binScale | 0; + var $0 = 0, $103 = 0, $104 = 0, $108 = 0, $115 = 0, $12 = 0, $120 = 0, $121 = 0, $125 = 0, $13 = 0, $134 = 0, $139 = 0, $140 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $163 = 0, $168 = 0, $169 = 0, $17 = 0, $173 = 0, $19 = 0, $26 = 0, $31 = 0, $32 = 0, $36 = 0, $43 = 0, $48 = 0, $49 = 0, $53 = 0, $55 = 0, $62 = 0, $67 = 0, $68 = 0, $7 = 0, $72 = 0, $79 = 0, $84 = 0, $85 = 0, $89 = 0, $91 = 0, $98 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if (($binX | 0) <= -1) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32226) | 0, 32052) | 0, 34302) | 0, 165) | 0, 34309) | 0, 32259) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + $19 = HEAP32[$this + 52 >> 2] | 0; + if (($19 | 0) <= ($binX | 0)) { + $26 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32277) | 0, 32052) | 0, 34302) | 0, 166) | 0, 34309) | 0, 32259) | 0; + $31 = __ZNKSt3__18ios_base6getlocEv($26 + (HEAP32[(HEAP32[$26 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $31; + $32 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $36 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$32 >> 2] | 0) + 28 >> 2] & 63]($32, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($26, $36) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($26) | 0; + _abort(); + } + if (($binY | 0) <= -1) { + $43 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32317) | 0, 32052) | 0, 34302) | 0, 167) | 0, 34309) | 0, 32350) | 0; + $48 = __ZNKSt3__18ios_base6getlocEv($43 + (HEAP32[(HEAP32[$43 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $48; + $49 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $53 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$49 >> 2] | 0) + 28 >> 2] & 63]($49, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($43, $53) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($43) | 0; + _abort(); + } + $55 = HEAP32[$this + 56 >> 2] | 0; + if (($55 | 0) <= ($binY | 0)) { + $62 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32368) | 0, 32052) | 0, 34302) | 0, 168) | 0, 34309) | 0, 32350) | 0; + $67 = __ZNKSt3__18ios_base6getlocEv($62 + (HEAP32[(HEAP32[$62 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $67; + $68 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $72 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$68 >> 2] | 0) + 28 >> 2] & 63]($68, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($62, $72) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($62) | 0; + _abort(); + } + if (($binAngle | 0) <= -1) { + $79 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32408) | 0, 32052) | 0, 34302) | 0, 169) | 0, 34309) | 0, 32445) | 0; + $84 = __ZNKSt3__18ios_base6getlocEv($79 + (HEAP32[(HEAP32[$79 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $84; + $85 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $89 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$85 >> 2] | 0) + 28 >> 2] & 63]($85, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($79, $89) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($79) | 0; + _abort(); + } + $91 = HEAP32[$this + 60 >> 2] | 0; + if (($91 | 0) <= ($binAngle | 0)) { + $98 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32467) | 0, 32052) | 0, 34302) | 0, 170) | 0, 34309) | 0, 32445) | 0; + $103 = __ZNKSt3__18ios_base6getlocEv($98 + (HEAP32[(HEAP32[$98 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $103; + $104 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $108 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$104 >> 2] | 0) + 28 >> 2] & 63]($104, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($98, $108) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($98) | 0; + _abort(); + } + if (($binScale | 0) <= -1) { + $115 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32515) | 0, 32052) | 0, 34302) | 0, 171) | 0, 34309) | 0, 32552) | 0; + $120 = __ZNKSt3__18ios_base6getlocEv($115 + (HEAP32[(HEAP32[$115 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $120; + $121 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $125 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$121 >> 2] | 0) + 28 >> 2] & 63]($121, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($115, $125) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($115) | 0; + _abort(); + } + if ((HEAP32[$this + 64 >> 2] | 0) <= ($binScale | 0)) { + $134 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32574) | 0, 32052) | 0, 34302) | 0, 172) | 0, 34309) | 0, 32552) | 0; + $139 = __ZNKSt3__18ios_base6getlocEv($134 + (HEAP32[(HEAP32[$134 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $139; + $140 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $144 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$140 >> 2] | 0) + 28 >> 2] & 63]($140, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($134, $144) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($134) | 0; + _abort(); + } + $146 = (Math_imul($19, $binY) | 0) + $binX | 0; + $150 = (Math_imul(HEAP32[$this + 84 >> 2] | 0, $binAngle) | 0) + $146 | 0; + $154 = $150 + (Math_imul(HEAP32[$this + 88 >> 2] | 0, $binScale) | 0) | 0; + if (($154 | 0) > ((Math_imul(Math_imul($19, (Math_imul($91, $binScale) | 0) + $binAngle | 0) | 0, $55) | 0) + $146 | 0)) { + $163 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32622) | 0, 32052) | 0, 34302) | 0, 176) | 0, 34309) | 0, 32207) | 0; + $168 = __ZNKSt3__18ios_base6getlocEv($163 + (HEAP32[(HEAP32[$163 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $168; + $169 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $173 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$169 >> 2] | 0) + 28 >> 2] & 63]($169, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($163, $173) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($163) | 0; + _abort(); + } else { + STACKTOP = sp; + return $154 | 0; + } + return 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0$i$i$i = 0, $$0$i$i$i11 = 0, $$0$i$i$i6 = 0, $$02 = 0, $0 = 0, $1 = 0, $103 = 0, $105 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $119 = 0, $122 = 0, $125 = 0, $126 = 0, $132 = 0, $134 = 0, $138 = 0, $147 = 0, $148 = 0, $15 = 0, $151 = 0, $152 = 0, $155 = 0, $157 = 0, $16 = 0, $160 = 0, $161 = 0, $163 = 0, $17 = 0, $170 = 0, $172 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $193 = 0, $199 = 0, $2 = 0, $201 = 0, $22 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $34 = 0, $4 = 0, $41 = 0, $43 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $63 = 0, $64 = 0, $70 = 0, $72 = 0, $77 = 0, $78 = 0, $79 = 0, $83 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i10 = 0, $k1$015 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i10 = sp + 72 | 0; + $0 = sp + 56 | 0; + $1 = sp + 48 | 0; + $2 = sp + 32 | 0; + $3 = sp + 24 | 0; + $4 = sp + 8 | 0; + $5 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else switch (HEAP8[$first >> 0] | 0) { + case 84: + { + $9 = $db + 4 | 0; + $15 = ((HEAP32[$9 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + $16 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + $17 = HEAP32[$9 >> 2] | 0; + $22 = ($17 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; + if (!(($16 | 0) != ($first | 0) & ($22 | 0) == ($15 + 1 | 0))) { + if (($22 | 0) == ($15 | 0)) { + $$02 = $first; + break L1; } else { - $j$1$lcssa = $j$2; - break; + $77 = $17; + $k1$015 = $22; + } + while (1) { + $79 = $77; + $77 = $77 + -24 | 0; + do { + $78 = $79 + -24 | 0; + HEAP32[$9 >> 2] = $78; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($78); + $79 = HEAP32[$9 >> 2] | 0; + } while (($79 | 0) != ($77 | 0)); + $k1$015 = $k1$015 + -1 | 0; + if (($k1$015 | 0) == ($15 | 0)) { + $$02 = $first; + break L1; + } } } + $27 = $db + 16 | 0; + HEAP32[$1 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($0, $17 + -24 | 0, $1); + $31 = $db + 20 | 0; + $32 = HEAP32[$31 >> 2] | 0; + $34 = HEAP32[$db + 24 >> 2] | 0; + if ($32 >>> 0 < $34 >>> 0) { + HEAP32[$32 + 12 >> 2] = HEAP32[$0 + 12 >> 2]; + HEAP32[$32 >> 2] = HEAP32[$0 >> 2]; + $41 = $0 + 4 | 0; + HEAP32[$32 + 4 >> 2] = HEAP32[$41 >> 2]; + $43 = $0 + 8 | 0; + HEAP32[$32 + 8 >> 2] = HEAP32[$43 >> 2]; + HEAP32[$43 >> 2] = 0; + HEAP32[$41 >> 2] = 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$31 >> 2] = (HEAP32[$31 >> 2] | 0) + 16; + } else { + $51 = HEAP32[$27 >> 2] | 0; + $52 = $32 - $51 | 0; + $53 = $52 >> 4; + $54 = $53 + 1 | 0; + if (($52 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($27); + $57 = $34 - $51 | 0; + if ($57 >> 4 >>> 0 < 1073741823) { + $60 = $57 >> 3; + $$0$i$i$i = $60 >>> 0 < $54 >>> 0 ? $54 : $60; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i, $53, $db + 28 | 0); + $63 = $__v$i$i10 + 8 | 0; + $64 = HEAP32[$63 >> 2] | 0; + HEAP32[$64 + 12 >> 2] = HEAP32[$0 + 12 >> 2]; + HEAP32[$64 >> 2] = HEAP32[$0 >> 2]; + $70 = $0 + 4 | 0; + HEAP32[$64 + 4 >> 2] = HEAP32[$70 >> 2]; + $72 = $0 + 8 | 0; + HEAP32[$64 + 8 >> 2] = HEAP32[$72 >> 2]; + HEAP32[$72 >> 2] = 0; + HEAP32[$70 >> 2] = 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$63 >> 2] = $64 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($27, $__v$i$i10); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($0); + $$02 = $16; + break L1; + break; } - $248 = $labelInfo + 8 | 0; - $249 = $j$1$lcssa + -1 | 0; - HEAP32[$248 >> 2] = $249; - if (!$249) $$0 = 0; else { - _memset($236 | 0, 0, $249 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $256 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0)); + case 68: + { + $83 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($83 | 0) == ($first | 0)) { + $$02 = $first; + break L1; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $271 = $i$537 * 7 | 0; - $274 = $labelInfo + 12 + ($270 << 2) | 0; - HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0); - $281 = $270 << 1; - $282 = $labelInfo + 655376 + ($281 << 3) | 0; - HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0); - $290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0; - HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0); - $293 = $270 << 2; - $294 = $labelInfo + 131084 + ($293 << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312; - $315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0; - $319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0; - if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + $87 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($87 | 0)) { + $$02 = $first; + break L1; + } + $89 = $db + 16 | 0; + HEAP32[$3 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($2, $87 + -24 | 0, $3); + $93 = $db + 20 | 0; + $94 = HEAP32[$93 >> 2] | 0; + $96 = HEAP32[$db + 24 >> 2] | 0; + if ($94 >>> 0 < $96 >>> 0) { + HEAP32[$94 + 12 >> 2] = HEAP32[$2 + 12 >> 2]; + HEAP32[$94 >> 2] = HEAP32[$2 >> 2]; + $103 = $2 + 4 | 0; + HEAP32[$94 + 4 >> 2] = HEAP32[$103 >> 2]; + $105 = $2 + 8 | 0; + HEAP32[$94 + 8 >> 2] = HEAP32[$105 >> 2]; + HEAP32[$105 >> 2] = 0; + HEAP32[$103 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 16; + } else { + $113 = HEAP32[$89 >> 2] | 0; + $114 = $94 - $113 | 0; + $115 = $114 >> 4; + $116 = $115 + 1 | 0; + if (($114 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($89); + $119 = $96 - $113 | 0; + if ($119 >> 4 >>> 0 < 1073741823) { + $122 = $119 >> 3; + $$0$i$i$i6 = $122 >>> 0 < $116 >>> 0 ? $116 : $122; + } else $$0$i$i$i6 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i6, $115, $db + 28 | 0); + $125 = $__v$i$i10 + 8 | 0; + $126 = HEAP32[$125 >> 2] | 0; + HEAP32[$126 + 12 >> 2] = HEAP32[$2 + 12 >> 2]; + HEAP32[$126 >> 2] = HEAP32[$2 >> 2]; + $132 = $2 + 4 | 0; + HEAP32[$126 + 4 >> 2] = HEAP32[$132 >> 2]; + $134 = $2 + 8 | 0; + HEAP32[$126 + 8 >> 2] = HEAP32[$134 >> 2]; + HEAP32[$134 >> 2] = 0; + HEAP32[$132 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$125 >> 2] = $126 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($89, $__v$i$i10); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); + } + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($2); + $$02 = $83; + break L1; + break; + } + case 83: + { + $138 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($138 | 0) != ($first | 0)) { + $$02 = $138; + break L1; + } + if (($last - $first | 0) <= 2) { + $$02 = $first; + break L1; + } + if ((HEAP8[$first + 1 >> 0] | 0) != 116) { + $$02 = $first; + break L1; + } + $147 = $first + 2 | 0; + $148 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($147, $last, $db) | 0; + if (($148 | 0) == ($147 | 0)) { + $$02 = $first; + break L1; + } + $151 = $db + 4 | 0; + $152 = HEAP32[$151 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($152 | 0)) { + $$02 = $first; + break L1; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($152 + -24 | 0, 0, 48091) | 0; + $155 = $db + 16 | 0; + $157 = (HEAP32[$151 >> 2] | 0) + -24 | 0; + HEAP32[$5 >> 2] = HEAP32[$db + 12 >> 2]; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $157, $5); + $160 = $db + 20 | 0; + $161 = HEAP32[$160 >> 2] | 0; + $163 = HEAP32[$db + 24 >> 2] | 0; + if ($161 >>> 0 < $163 >>> 0) { + HEAP32[$161 + 12 >> 2] = HEAP32[$4 + 12 >> 2]; + HEAP32[$161 >> 2] = HEAP32[$4 >> 2]; + $170 = $4 + 4 | 0; + HEAP32[$161 + 4 >> 2] = HEAP32[$170 >> 2]; + $172 = $4 + 8 | 0; + HEAP32[$161 + 8 >> 2] = HEAP32[$172 >> 2]; + HEAP32[$172 >> 2] = 0; + HEAP32[$170 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 16; + } else { + $180 = HEAP32[$155 >> 2] | 0; + $181 = $161 - $180 | 0; + $182 = $181 >> 4; + $183 = $182 + 1 | 0; + if (($181 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($155); + $186 = $163 - $180 | 0; + if ($186 >> 4 >>> 0 < 1073741823) { + $189 = $186 >> 3; + $$0$i$i$i11 = $189 >>> 0 < $183 >>> 0 ? $183 : $189; + } else $$0$i$i$i11 = 2147483647; + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i11, $182, $db + 28 | 0); + $192 = $__v$i$i10 + 8 | 0; + $193 = HEAP32[$192 >> 2] | 0; + HEAP32[$193 + 12 >> 2] = HEAP32[$4 + 12 >> 2]; + HEAP32[$193 >> 2] = HEAP32[$4 >> 2]; + $199 = $4 + 4 | 0; + HEAP32[$193 + 4 >> 2] = HEAP32[$199 >> 2]; + $201 = $4 + 8 | 0; + HEAP32[$193 + 8 >> 2] = HEAP32[$201 >> 2]; + HEAP32[$201 >> 2] = 0; + HEAP32[$199 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$192 >> 2] = $193 + 16; + __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($155, $__v$i$i10); + __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); } - if ((HEAP32[$248 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $323 = $labelInfo + 12 + ($i$636 << 2) | 0; - $326 = $i$636 << 1; - $327 = $labelInfo + 655376 + ($326 << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0); - $333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0; - HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4); + $$02 = $148; + break L1; + break; } - } + default: + { + $$02 = $first; + break L1; + } + } while (0); STACKTOP = sp; - return $$0 | 0; + return $$02 | 0; } -function _arLabeling($image, $xsize, $ysize, $pixFormat, $debugMode, $labelingMode, $labelingThresh, $imageProcMode, $labelInfo, $image_thresh) { - $image = $image | 0; +function _arDetectMarker2($xsize, $ysize, $labelInfo, $imageProcMode, $areaMax, $areaMin, $squareFitThresh, $markerInfo2, $marker2_num) { $xsize = $xsize | 0; $ysize = $ysize | 0; - $pixFormat = $pixFormat | 0; - $debugMode = $debugMode | 0; - $labelingMode = $labelingMode | 0; - $labelingThresh = $labelingThresh | 0; - $imageProcMode = $imageProcMode | 0; $labelInfo = $labelInfo | 0; - $image_thresh = $image_thresh | 0; - var $$0 = 0; - L1 : do switch ($debugMode | 0) { - case 0: - { - switch ($labelingMode | 0) { - case 1: - { - if ($image_thresh) { - $$0 = _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; - break L1; - } - switch ($imageProcMode | 0) { - case 0: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); + $imageProcMode = $imageProcMode | 0; + $areaMax = $areaMax | 0; + $areaMin = $areaMin | 0; + $squareFitThresh = +$squareFitThresh; + $markerInfo2 = $markerInfo2 | 0; + $marker2_num = $marker2_num | 0; + var $$0 = 0, $$01 = 0, $$02 = 0, $$03 = 0, $$lcssa = 0, $$lcssa15 = 0, $$lcssa16 = 0, $$lcssa17 = 0, $$ph = 0, $$pre10 = 0, $$pre9 = 0, $0 = 0, $115 = 0, $12 = 0, $120 = 0, $129 = 0, $13 = 0, $130 = 0, $132 = 0, $133 = 0.0, $136 = 0.0, $141 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $16 = 0, $160 = 0, $164 = 0, $167 = 0, $171 = 0, $174 = 0, $177 = 0, $180 = 0, $183 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $46 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0.0, $6 = 0, $66 = 0, $68 = 0, $7 = 0, $74 = 0, $8 = 0, $90 = 0, $dmax$0$i38 = 0, $i$0$i39 = 0, $i$0$v1$0$i = 0, $i$044 = 0, $i$134 = 0, $i$227 = 0, $i$321 = 0, $j$030 = 0, $j$1 = 0, $j$1$in24 = 0, $j$1$in24$phi = 0, $j$123 = 0, $j$125 = 0, $j$218 = 0, $pm$019 = 0, $v1$0$i$lcssa = 0, $v1$0$i37 = 0, $vertex$sroa$12$0$i = 0, $vertex$sroa$4$0$i = 0, $vertex$sroa$8$0$i = 0, $wv1$i = 0, $wv2$i = 0, $wvnum1$i = 0, $wvnum2$i = 0, label = 0, sp = 0, $i$134$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $wv1$i = sp + 56 | 0; + $wvnum1$i = sp + 48 | 0; + $wv2$i = sp + 8 | 0; + $wvnum2$i = sp; + $0 = ($imageProcMode | 0) == 1; + if ($0) { + $$0 = ($xsize | 0) / 2 | 0; + $$01 = ($ysize | 0) / 2 | 0; + $$02 = ($areaMax | 0) / 4 | 0; + $$03 = ($areaMin | 0) / 4 | 0; + } else { + $$0 = $xsize; + $$01 = $ysize; + $$02 = $areaMax; + $$03 = $areaMin; + } + HEAP32[$marker2_num >> 2] = 0; + $5 = $labelInfo + 8 | 0; + $6 = $$0 + -2 | 0; + $7 = $$01 + -2 | 0; + $8 = $labelInfo + 1179664 | 0; + L4 : do if ((HEAP32[$5 >> 2] | 0) > 0) { + $i$044 = 0; + while (1) { + $12 = $labelInfo + 12 + ($i$044 << 2) | 0; + $13 = HEAP32[$12 >> 2] | 0; + L7 : do if (!(($13 | 0) < ($$03 | 0) | ($13 | 0) > ($$02 | 0))) { + $16 = $labelInfo + 131084 + ($i$044 << 4) | 0; + if ((HEAP32[$16 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 4 >> 2] | 0) != ($6 | 0)) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 8 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 12 >> 2] | 0) != ($7 | 0)) if ((_arGetContour(HEAP32[$labelInfo >> 2] | 0, $$0, 0, $8, $i$044 + 1 | 0, $16, $markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) | 0) | 0) >= 0) { + $34 = HEAP32[$12 >> 2] | 0; + $35 = HEAP32[$marker2_num >> 2] | 0; + $36 = $markerInfo2 + ($35 * 80048 | 0) + 28 | 0; + $37 = HEAP32[$36 >> 2] | 0; + $38 = $markerInfo2 + ($35 * 80048 | 0) + 40028 | 0; + $39 = HEAP32[$38 >> 2] | 0; + $40 = $markerInfo2 + ($35 * 80048 | 0) + 24 | 0; + $42 = (HEAP32[$40 >> 2] | 0) + -1 | 0; + if (($42 | 0) > 1) { + $dmax$0$i38 = 0; + $i$0$i39 = 1; + $v1$0$i37 = 0; + while (1) { + $46 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 28 + ($i$0$i39 << 2) >> 2] | 0) - $37 | 0; + $47 = Math_imul($46, $46) | 0; + $50 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 40028 + ($i$0$i39 << 2) >> 2] | 0) - $39 | 0; + $52 = (Math_imul($50, $50) | 0) + $47 | 0; + $53 = ($52 | 0) > ($dmax$0$i38 | 0); + $i$0$v1$0$i = $53 ? $i$0$i39 : $v1$0$i37; + $i$0$i39 = $i$0$i39 + 1 | 0; + if (($i$0$i39 | 0) >= ($42 | 0)) { + $v1$0$i$lcssa = $i$0$v1$0$i; + break; + } else { + $dmax$0$i38 = $53 ? $52 : $dmax$0$i38; + $v1$0$i37 = $i$0$v1$0$i; } - break; } - case 1: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); + } else $v1$0$i$lcssa = 0; + $59 = +($34 | 0) / .75 * .01 * $squareFitThresh; + HEAP32[$wvnum1$i >> 2] = 0; + HEAP32[$wvnum2$i >> 2] = 0; + L18 : do if ((_get_vertex($36, $38, 0, $v1$0$i$lcssa, $59, $wv1$i, $wvnum1$i) | 0) >= 0) if ((_get_vertex($36, $38, $v1$0$i$lcssa, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) >= 0) { + $66 = HEAP32[$wvnum1$i >> 2] | 0; + $68 = HEAP32[$wvnum2$i >> 2] | 0; + do if (($66 | 0) == 1 & ($68 | 0) == 1) { + $vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0; + $vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0; + $vertex$sroa$8$0$i = $v1$0$i$lcssa; + } else { + if (($66 | 0) > 1 & ($68 | 0) == 0) { + $74 = ($v1$0$i$lcssa | 0) / 2 | 0; + HEAP32[$wvnum2$i >> 2] = 0; + HEAP32[$wvnum1$i >> 2] = 0; + if ((_get_vertex($36, $38, 0, $74, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18; + if ((_get_vertex($36, $38, $74, $v1$0$i$lcssa, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18; + if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18; + $vertex$sroa$12$0$i = $v1$0$i$lcssa; + $vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0; + $vertex$sroa$8$0$i = HEAP32[$wv2$i >> 2] | 0; + break; } - break; - } - default: - _exit(0); - } - break; + if (!(($66 | 0) == 0 & ($68 | 0) > 1)) break L18; + $90 = ($v1$0$i$lcssa + -1 + (HEAP32[$40 >> 2] | 0) | 0) / 2 | 0; + HEAP32[$wvnum2$i >> 2] = 0; + HEAP32[$wvnum1$i >> 2] = 0; + if ((_get_vertex($36, $38, $v1$0$i$lcssa, $90, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18; + if ((_get_vertex($36, $38, $90, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18; + if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18; + $vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0; + $vertex$sroa$4$0$i = $v1$0$i$lcssa; + $vertex$sroa$8$0$i = HEAP32[$wv1$i >> 2] | 0; + } while (0); + HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80028 >> 2] = 0; + HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80032 >> 2] = $vertex$sroa$4$0$i; + HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80036 >> 2] = $vertex$sroa$8$0$i; + HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80040 >> 2] = $vertex$sroa$12$0$i; + HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80044 >> 2] = (HEAP32[$40 >> 2] | 0) + -1; + HEAP32[$markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) >> 2] = HEAP32[$12 >> 2]; + $115 = HEAP32[$marker2_num >> 2] | 0; + HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 8 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) >> 3]; + HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 16 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) + 8 >> 3]; + $120 = $115 + 1 | 0; + HEAP32[$marker2_num >> 2] = $120; + if (($120 | 0) == 60) { + $$ph = 60; + break L4; + } else break L7; + } while (0); } - case 0: - { - if ($image_thresh) { - $$0 = _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; - break L1; - } - switch ($imageProcMode | 0) { - case 0: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); - } - break; - } - case 1: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); - } + } while (0); + $i$044 = $i$044 + 1 | 0; + if (($i$044 | 0) >= (HEAP32[$5 >> 2] | 0)) { + label = 4; + break; + } + } + } else label = 4; while (0); + if ((label | 0) == 4) $$ph = HEAP32[$marker2_num >> 2] | 0; + if (($$ph | 0) > 0) { + $132 = $$ph; + $i$134 = 0; + while (1) { + $i$134$looptemp = $i$134; + $i$134 = $i$134 + 1 | 0; + $129 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) + 16 | 0; + $130 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) | 0; + if (($i$134 | 0) < ($132 | 0)) { + $133 = +HEAPF64[$markerInfo2 + ($i$134$looptemp * 80048 | 0) + 8 >> 3]; + $j$030 = $i$134; + do { + $136 = $133 - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 8 >> 3]; + $141 = +HEAPF64[$129 >> 3] - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 16 >> 3]; + $143 = $136 * $136 + $141 * $141; + $144 = HEAP32[$130 >> 2] | 0; + $145 = $markerInfo2 + ($j$030 * 80048 | 0) | 0; + $146 = HEAP32[$145 >> 2] | 0; + if (($144 | 0) > ($146 | 0)) { + if ($143 < +(($144 | 0) / 4 | 0 | 0)) HEAP32[$145 >> 2] = 0; + } else if ($143 < +(($146 | 0) / 4 | 0 | 0)) HEAP32[$130 >> 2] = 0; + $j$030 = $j$030 + 1 | 0; + $$pre10 = HEAP32[$marker2_num >> 2] | 0; + } while (($j$030 | 0) < ($$pre10 | 0)); + $$lcssa16 = $$pre10; + } else $$lcssa16 = $132; + if (($i$134 | 0) >= ($$lcssa16 | 0)) { + $$lcssa17 = $$lcssa16; + break; + } else $132 = $$lcssa16; + } + } else $$lcssa17 = $$ph; + if (($$lcssa17 | 0) > 0) { + $160 = $$lcssa17; + $i$227 = 0; + while (1) { + if (!(HEAP32[$markerInfo2 + ($i$227 * 80048 | 0) >> 2] | 0)) { + $j$123 = $i$227 + 1 | 0; + if (($j$123 | 0) < ($160 | 0)) { + $j$1$in24 = $i$227; + $j$125 = $j$123; + while (1) { + _memcpy($markerInfo2 + ($j$1$in24 * 80048 | 0) | 0, $markerInfo2 + ($j$125 * 80048 | 0) | 0, 80048) | 0; + $$pre9 = HEAP32[$marker2_num >> 2] | 0; + $j$1 = $j$125 + 1 | 0; + if (($j$1 | 0) < ($$pre9 | 0)) { + $j$1$in24$phi = $j$125; + $j$125 = $j$1; + $j$1$in24 = $j$1$in24$phi; + } else { + $$lcssa = $$pre9; break; } - default: - _exit(0); } - break; - } - default: - _exit(0); + } else $$lcssa = $160; + $164 = $$lcssa + -1 | 0; + HEAP32[$marker2_num >> 2] = $164; + $167 = $164; + } else $167 = $160; + $i$227 = $i$227 + 1 | 0; + if (($i$227 | 0) >= ($167 | 0)) { + $$lcssa15 = $167; + break; + } else $160 = $167; + } + } else $$lcssa15 = $$lcssa17; + if ($0 & ($$lcssa15 | 0) > 0) { + $i$321 = 0; + $pm$019 = $markerInfo2; + while (1) { + HEAP32[$pm$019 >> 2] = HEAP32[$pm$019 >> 2] << 2; + $171 = $pm$019 + 8 | 0; + HEAPF64[$171 >> 3] = +HEAPF64[$171 >> 3] * 2.0; + $174 = $pm$019 + 16 | 0; + HEAPF64[$174 >> 3] = +HEAPF64[$174 >> 3] * 2.0; + $177 = $pm$019 + 24 | 0; + if ((HEAP32[$177 >> 2] | 0) > 0) { + $j$218 = 0; + do { + $180 = $pm$019 + 28 + ($j$218 << 2) | 0; + HEAP32[$180 >> 2] = HEAP32[$180 >> 2] << 1; + $183 = $pm$019 + 40028 + ($j$218 << 2) | 0; + HEAP32[$183 >> 2] = HEAP32[$183 >> 2] << 1; + $j$218 = $j$218 + 1 | 0; + } while (($j$218 | 0) < (HEAP32[$177 >> 2] | 0)); } - break; + $i$321 = $i$321 + 1 | 0; + if (($i$321 | 0) >= (HEAP32[$marker2_num >> 2] | 0)) break; else $pm$019 = $pm$019 + 80048 | 0; } - case 1: - { - switch ($labelingMode | 0) { - case 1: + } + STACKTOP = sp; + return 0; +} + +function _kpmMatching($kpmHandle, $inImage) { + $kpmHandle = $kpmHandle | 0; + $inImage = $inImage | 0; + var $$0 = 0, $$pre$phi16Z2D = 0, $$pre$phi17Z2D = 0, $10 = 0, $101 = 0.0, $102 = 0, $107 = 0, $11 = 0, $111 = 0, $118 = 0, $120 = 0.0, $122 = 0.0, $123 = 0, $128 = 0, $132 = 0, $139 = 0, $141 = 0.0, $143 = 0.0, $144 = 0, $149 = 0, $15 = 0, $153 = 0, $161 = 0, $162 = 0, $166 = 0, $17 = 0, $173 = 0, $175 = 0, $177 = 0, $179 = 0, $18 = 0, $181 = 0, $182 = 0, $187 = 0, $195 = 0, $202 = 0.0, $204 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $34 = 0, $35 = 0, $38 = 0, $39 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $47 = 0, $49 = 0.0, $5 = 0, $51 = 0.0, $52 = 0, $55 = 0, $58 = 0, $64 = 0, $67 = 0, $7 = 0, $70 = 0, $73 = 0, $76 = 0, $78 = 0.0, $8 = 0, $80 = 0.0, $81 = 0, $86 = 0, $90 = 0, $97 = 0, $99 = 0.0, $i$034 = 0, $i$138 = 0, $i$240 = 0, $i$342 = 0, $i$436 = 0, $i$530 = 0, $i$628 = 0, $inImageBW$0 = 0, $pageLoop$032 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $xsize2 = 0, $ysize2 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $xsize2 = sp + 44 | 0; + $ysize2 = sp + 40 | 0; + do if (($kpmHandle | 0) != 0 & ($inImage | 0) != 0) { + $3 = HEAP32[$kpmHandle + 12 >> 2] | 0; + $5 = HEAP32[$kpmHandle + 16 >> 2] | 0; + $7 = HEAP32[$kpmHandle + 24 >> 2] | 0; + $8 = ($7 | 0) == 1; + $10 = HEAP32[$kpmHandle + 20 >> 2] | 0; + if ($8) switch ($10 | 0) { + case 14: + case 13: + case 12: + case 5: + { + $inImageBW$0 = $inImage; + break; + } + default: + label = 5; + } else label = 5; + if ((label | 0) == 5) { + $11 = _kpmUtilGenBWImage($inImage, $10, $3, $5, $7, $xsize2, $ysize2) | 0; + if (!$11) { + $$0 = -1; + break; + } else $inImageBW$0 = $11; + } + __ZN6vision20VisualDatabaseFacade5queryEPhjj(HEAP32[$kpmHandle >> 2] | 0, $inImageBW$0, $3, $5) | 0; + $15 = __ZNK6vision20VisualDatabaseFacade21getQueryFeaturePointsEv(HEAP32[$kpmHandle >> 2] | 0) | 0; + $17 = HEAP32[$15 + 4 >> 2] | 0; + $18 = HEAP32[$15 >> 2] | 0; + $22 = ($17 - $18 | 0) / 20 | 0; + $23 = $kpmHandle + 52 | 0; + HEAP32[$23 >> 2] = $22; + if (($17 | 0) == ($18 | 0)) { + $26 = HEAP32[$kpmHandle + 60 >> 2] | 0; + $27 = $kpmHandle + 56 | 0; + if (($26 | 0) > 0) { + $29 = HEAP32[$27 >> 2] | 0; + $i$530 = 0; + do { + HEAP32[$29 + ($i$530 * 68 | 0) + 60 >> 2] = -1; + $i$530 = $i$530 + 1 | 0; + } while (($i$530 | 0) < ($26 | 0)); + $$pre$phi16Z2D = $27; + $161 = $26; + } else { + $$pre$phi16Z2D = $27; + $161 = $26; + } + } else { + $30 = $kpmHandle + 48 | 0; + $31 = HEAP32[$30 >> 2] | 0; + if (!$31) $34 = $22; else { + _free($31); + $34 = HEAP32[$23 >> 2] | 0; + } + $35 = _malloc($34 << 3) | 0; + HEAP32[$30 >> 2] = $35; + if (!$35) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + $38 = __ZNK6vision20VisualDatabaseFacade21getQueryFeaturePointsEv(HEAP32[$kpmHandle >> 2] | 0) | 0; + L20 : do if ($8) { + $39 = $kpmHandle + 4 | 0; + if ((HEAP32[$23 >> 2] | 0) > 0) { + $i$034 = 0; + do { + $47 = HEAP32[$38 >> 2] | 0; + $49 = +HEAPF32[$47 + ($i$034 * 20 | 0) >> 2]; + $51 = +HEAPF32[$47 + ($i$034 * 20 | 0) + 4 >> 2]; + $52 = HEAP32[$39 >> 2] | 0; + if (!$52) { + $58 = HEAP32[$30 >> 2] | 0; + HEAPF32[$58 + ($i$034 << 3) >> 2] = $49; + HEAPF32[$58 + ($i$034 << 3) + 4 >> 2] = $51; + } else { + $55 = HEAP32[$30 >> 2] | 0; + _arParamObserv2IdealLTf($52 + 184 | 0, $49, $51, $55 + ($i$034 << 3) | 0, $55 + ($i$034 << 3) + 4 | 0) | 0; + } + $i$034 = $i$034 + 1 | 0; + } while (($i$034 | 0) < (HEAP32[$23 >> 2] | 0)); + $$pre$phi17Z2D = $39; + } else $$pre$phi17Z2D = $39; + } else switch ($7 | 0) { + case 5: { - if ($image_thresh) { - $$0 = _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; - break L1; + $70 = $kpmHandle + 4 | 0; + if ((HEAP32[$23 >> 2] | 0) > 0) $i$138 = 0; else { + $$pre$phi17Z2D = $70; + break L20; } - switch ($imageProcMode | 0) { - case 0: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); - } - break; + do { + $76 = HEAP32[$38 >> 2] | 0; + $78 = +HEAPF32[$76 + ($i$138 * 20 | 0) >> 2]; + $80 = +HEAPF32[$76 + ($i$138 * 20 | 0) + 4 >> 2]; + $81 = HEAP32[$70 >> 2] | 0; + if (!$81) { + $90 = HEAP32[$30 >> 2] | 0; + HEAPF32[$90 + ($i$138 << 3) >> 2] = $78 * 1.5; + HEAPF32[$90 + ($i$138 << 3) + 4 >> 2] = $80 * 1.5; + } else { + $86 = HEAP32[$30 >> 2] | 0; + _arParamObserv2IdealLTf($81 + 184 | 0, $78 * 1.5, $80 * 1.5, $86 + ($i$138 << 3) | 0, $86 + ($i$138 << 3) + 4 | 0) | 0; } - case 1: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - default: - _exit(0); - } - break; + $i$138 = $i$138 + 1 | 0; + } while (($i$138 | 0) < (HEAP32[$23 >> 2] | 0)); + $$pre$phi17Z2D = $70; + break; + } + case 2: + { + $67 = $kpmHandle + 4 | 0; + if ((HEAP32[$23 >> 2] | 0) > 0) $i$240 = 0; else { + $$pre$phi17Z2D = $67; + break L20; + } + do { + $97 = HEAP32[$38 >> 2] | 0; + $99 = +HEAPF32[$97 + ($i$240 * 20 | 0) >> 2]; + $101 = +HEAPF32[$97 + ($i$240 * 20 | 0) + 4 >> 2]; + $102 = HEAP32[$67 >> 2] | 0; + if (!$102) { + $111 = HEAP32[$30 >> 2] | 0; + HEAPF32[$111 + ($i$240 << 3) >> 2] = $99 * 2.0; + HEAPF32[$111 + ($i$240 << 3) + 4 >> 2] = $101 * 2.0; + } else { + $107 = HEAP32[$30 >> 2] | 0; + _arParamObserv2IdealLTf($102 + 184 | 0, $99 * 2.0, $101 * 2.0, $107 + ($i$240 << 3) | 0, $107 + ($i$240 << 3) + 4 | 0) | 0; } - default: - _exit(0); + $i$240 = $i$240 + 1 | 0; + } while (($i$240 | 0) < (HEAP32[$23 >> 2] | 0)); + $$pre$phi17Z2D = $67; + break; + } + case 4: + { + $64 = $kpmHandle + 4 | 0; + if ((HEAP32[$23 >> 2] | 0) > 0) $i$342 = 0; else { + $$pre$phi17Z2D = $64; + break L20; } + do { + $118 = HEAP32[$38 >> 2] | 0; + $120 = +HEAPF32[$118 + ($i$342 * 20 | 0) >> 2]; + $122 = +HEAPF32[$118 + ($i$342 * 20 | 0) + 4 >> 2]; + $123 = HEAP32[$64 >> 2] | 0; + if (!$123) { + $132 = HEAP32[$30 >> 2] | 0; + HEAPF32[$132 + ($i$342 << 3) >> 2] = $120 * 3.0; + HEAPF32[$132 + ($i$342 << 3) + 4 >> 2] = $122 * 3.0; + } else { + $128 = HEAP32[$30 >> 2] | 0; + _arParamObserv2IdealLTf($123 + 184 | 0, $120 * 3.0, $122 * 3.0, $128 + ($i$342 << 3) | 0, $128 + ($i$342 << 3) + 4 | 0) | 0; + } + $i$342 = $i$342 + 1 | 0; + } while (($i$342 | 0) < (HEAP32[$23 >> 2] | 0)); + $$pre$phi17Z2D = $64; break; } - case 0: + default: { - if ($image_thresh) { - $$0 = _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0; - break L1; + $73 = $kpmHandle + 4 | 0; + if ((HEAP32[$23 >> 2] | 0) > 0) $i$436 = 0; else { + $$pre$phi17Z2D = $73; + break L20; } - switch ($imageProcMode | 0) { - case 0: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + do { + $139 = HEAP32[$38 >> 2] | 0; + $141 = +HEAPF32[$139 + ($i$436 * 20 | 0) >> 2]; + $143 = +HEAPF32[$139 + ($i$436 * 20 | 0) + 4 >> 2]; + $144 = HEAP32[$73 >> 2] | 0; + if (!$144) { + $153 = HEAP32[$30 >> 2] | 0; + HEAPF32[$153 + ($i$436 << 3) >> 2] = $141 * 4.0; + HEAPF32[$153 + ($i$436 << 3) + 4 >> 2] = $143 * 4.0; + } else { + $149 = HEAP32[$30 >> 2] | 0; + _arParamObserv2IdealLTf($144 + 184 | 0, $141 * 4.0, $143 * 4.0, $149 + ($i$436 << 3) | 0, $149 + ($i$436 << 3) + 4 | 0) | 0; + } + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$23 >> 2] | 0)); + $$pre$phi17Z2D = $73; + } + } while (0); + $42 = $kpmHandle + 60 | 0; + $43 = $kpmHandle + 40 | 0; + $44 = $kpmHandle + 56 | 0; + $45 = HEAP32[$42 >> 2] | 0; + if (($45 | 0) > 0) { + $pageLoop$032 = 0; + do { + $166 = HEAP32[$44 >> 2] | 0; + HEAP32[$166 + ($pageLoop$032 * 68 | 0) + 48 >> 2] = HEAP32[(HEAP32[$43 >> 2] | 0) + ($pageLoop$032 * 12 | 0) + 8 >> 2]; + HEAP32[$166 + ($pageLoop$032 * 68 | 0) + 60 >> 2] = -1; + if (!(HEAP32[$166 + ($pageLoop$032 * 68 | 0) + 64 >> 2] | 0)) { + $173 = __ZNK6vision20VisualDatabaseFacade7inliersEv(HEAP32[$kpmHandle >> 2] | 0) | 0; + $175 = __ZN6vision20VisualDatabaseFacade9matchedIdEv(HEAP32[$kpmHandle >> 2] | 0) | 0; + if (($175 | 0) >= 0) { + $177 = HEAP32[$$pre$phi17Z2D >> 2] | 0; + $179 = __ZNK6vision20VisualDatabaseFacade18get3DFeaturePointsEi(HEAP32[$kpmHandle >> 2] | 0, $175) | 0; + $181 = __ZNK6vision20VisualDatabaseFacade21getQueryFeaturePointsEv(HEAP32[$kpmHandle >> 2] | 0) | 0; + $182 = HEAP32[$44 >> 2] | 0; + if (!(__Z21kpmUtilGetPose_binaryP9ARParamLTRKNSt3__16vectorIN6vision7match_tENS1_9allocatorIS4_EEEERKNS2_INS3_7Point3dIfEENS5_ISB_EEEERKNS2_INS3_12FeaturePointENS5_ISG_EEEEPA4_fPf($177, $173, $179, $181, $182 + ($pageLoop$032 * 68 | 0) | 0, $182 + ($pageLoop$032 * 68 | 0) + 52 | 0) | 0)) { + $187 = HEAP32[$44 >> 2] | 0; + HEAP32[$187 + ($pageLoop$032 * 68 | 0) + 60 >> 2] = 0; + $195 = (HEAP32[$173 + 4 >> 2] | 0) - (HEAP32[$173 >> 2] | 0) >> 3; + HEAP32[$187 + ($pageLoop$032 * 68 | 0) + 56 >> 2] = $195; + HEAP32[$187 + ($pageLoop$032 * 68 | 0) + 48 >> 2] = HEAP32[$kpmHandle + 64 + ($175 << 2) >> 2]; + $202 = +HEAPF32[$187 + ($pageLoop$032 * 68 | 0) + 52 >> 2]; + HEAP32[$vararg_buffer3 >> 2] = $pageLoop$032; + HEAP32[$vararg_buffer3 + 4 >> 2] = $195; + HEAP32[$vararg_buffer3 + 8 >> 2] = $195; + HEAPF64[$vararg_buffer3 + 16 >> 3] = $202; + _arLog(1, 21319, $vararg_buffer3); + } + } + } + $pageLoop$032 = $pageLoop$032 + 1 | 0; + $204 = HEAP32[$42 >> 2] | 0; + } while (($pageLoop$032 | 0) < ($204 | 0)); + $$pre$phi16Z2D = $44; + $161 = $204; + } else { + $$pre$phi16Z2D = $44; + $161 = $45; + } + } + if (($161 | 0) > 0) { + $162 = HEAP32[$$pre$phi16Z2D >> 2] | 0; + $i$628 = 0; + do { + HEAP32[$162 + ($i$628 * 68 | 0) + 64 >> 2] = 0; + $i$628 = $i$628 + 1 | 0; + } while (($i$628 | 0) < ($161 | 0)); + } + if (($inImageBW$0 | 0) == ($inImage | 0)) $$0 = 0; else { + _free($inImageBW$0); + $$0 = 0; + } + } else { + _arLog(3, 21279, $vararg_buffer); + $$0 = -1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNK6vision21HoughSimilarityVoting16getBinsFromIndexERiS1_S1_S1_i($this, $binX, $binY, $binAngle, $binScale, $index) { + $this = $this | 0; + $binX = $binX | 0; + $binY = $binY | 0; + $binAngle = $binAngle | 0; + $binScale = $binScale | 0; + $index = $index | 0; + var $0 = 0, $1 = 0, $104 = 0, $105 = 0, $109 = 0, $110 = 0, $117 = 0, $122 = 0, $123 = 0, $127 = 0, $136 = 0, $141 = 0, $142 = 0, $146 = 0, $153 = 0, $158 = 0, $159 = 0, $16 = 0, $163 = 0, $172 = 0, $177 = 0, $178 = 0, $182 = 0, $21 = 0, $25 = 0, $31 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $44 = 0, $49 = 0, $50 = 0, $54 = 0, $62 = 0, $67 = 0, $68 = 0, $7 = 0, $72 = 0, $73 = 0, $80 = 0, $85 = 0, $86 = 0, $9 = 0, $90 = 0, $99 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $1 = $this + 88 | 0; + $4 = $this + 84 | 0; + $7 = $this + 52 | 0; + $9 = ((($index | 0) % (HEAP32[$1 >> 2] | 0) | 0 | 0) % (HEAP32[$4 >> 2] | 0) | 0 | 0) % (HEAP32[$7 >> 2] | 0) | 0; + HEAP32[$binX >> 2] = $9; + $16 = ((($index - $9 | 0) % (HEAP32[$1 >> 2] | 0) | 0 | 0) % (HEAP32[$4 >> 2] | 0) | 0 | 0) / (HEAP32[$7 >> 2] | 0) | 0; + HEAP32[$binY >> 2] = $16; + $21 = $index - (HEAP32[$binX >> 2] | 0) - (Math_imul(HEAP32[$7 >> 2] | 0, $16) | 0) | 0; + $25 = (($21 | 0) % (HEAP32[$1 >> 2] | 0) | 0 | 0) / (HEAP32[$4 >> 2] | 0) | 0; + HEAP32[$binAngle >> 2] = $25; + $31 = $index - (HEAP32[$binX >> 2] | 0) - (Math_imul(HEAP32[$7 >> 2] | 0, HEAP32[$binY >> 2] | 0) | 0) | 0; + $34 = $31 - (Math_imul(HEAP32[$4 >> 2] | 0, $25) | 0) | 0; + $36 = ($34 | 0) / (HEAP32[$1 >> 2] | 0) | 0; + HEAP32[$binScale >> 2] = $36; + $37 = HEAP32[$binX >> 2] | 0; + if (($37 | 0) <= -1) { + $44 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32226) | 0, 32052) | 0, 34302) | 0, 190) | 0, 34309) | 0, 32259) | 0; + $49 = __ZNKSt3__18ios_base6getlocEv($44 + (HEAP32[(HEAP32[$44 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $49; + $50 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $54 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$50 >> 2] | 0) + 28 >> 2] & 63]($50, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($44, $54) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($44) | 0; + _abort(); + } + if (($37 | 0) >= (HEAP32[$7 >> 2] | 0)) { + $62 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32277) | 0, 32052) | 0, 34302) | 0, 191) | 0, 34309) | 0, 32259) | 0; + $67 = __ZNKSt3__18ios_base6getlocEv($62 + (HEAP32[(HEAP32[$62 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $67; + $68 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $72 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$68 >> 2] | 0) + 28 >> 2] & 63]($68, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($62, $72) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($62) | 0; + _abort(); + } + $73 = HEAP32[$binY >> 2] | 0; + if (($73 | 0) <= -1) { + $80 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32317) | 0, 32052) | 0, 34302) | 0, 192) | 0, 34309) | 0, 32350) | 0; + $85 = __ZNKSt3__18ios_base6getlocEv($80 + (HEAP32[(HEAP32[$80 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $85; + $86 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $90 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$86 >> 2] | 0) + 28 >> 2] & 63]($86, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($80, $90) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($80) | 0; + _abort(); + } + if (($73 | 0) >= (HEAP32[$this + 56 >> 2] | 0)) { + $99 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32368) | 0, 32052) | 0, 34302) | 0, 193) | 0, 34309) | 0, 32350) | 0; + $104 = __ZNKSt3__18ios_base6getlocEv($99 + (HEAP32[(HEAP32[$99 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $104; + $105 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $109 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$105 >> 2] | 0) + 28 >> 2] & 63]($105, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($99, $109) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($99) | 0; + _abort(); + } + $110 = HEAP32[$binAngle >> 2] | 0; + if (($110 | 0) <= -1) { + $117 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32408) | 0, 32052) | 0, 34302) | 0, 194) | 0, 34309) | 0, 32445) | 0; + $122 = __ZNKSt3__18ios_base6getlocEv($117 + (HEAP32[(HEAP32[$117 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $122; + $123 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $127 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$123 >> 2] | 0) + 28 >> 2] & 63]($123, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($117, $127) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($117) | 0; + _abort(); + } + if (($110 | 0) >= (HEAP32[$this + 60 >> 2] | 0)) { + $136 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32467) | 0, 32052) | 0, 34302) | 0, 195) | 0, 34309) | 0, 32445) | 0; + $141 = __ZNKSt3__18ios_base6getlocEv($136 + (HEAP32[(HEAP32[$136 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $141; + $142 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $146 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$142 >> 2] | 0) + 28 >> 2] & 63]($142, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($136, $146) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($136) | 0; + _abort(); + } + if (($36 | 0) <= -1) { + $153 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32515) | 0, 32052) | 0, 34302) | 0, 196) | 0, 34309) | 0, 32552) | 0; + $158 = __ZNKSt3__18ios_base6getlocEv($153 + (HEAP32[(HEAP32[$153 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $158; + $159 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $163 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$159 >> 2] | 0) + 28 >> 2] & 63]($159, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($153, $163) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($153) | 0; + _abort(); + } + if (($36 | 0) < (HEAP32[$this + 64 >> 2] | 0)) { + STACKTOP = sp; + return; + } else { + $172 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32574) | 0, 32052) | 0, 34302) | 0, 197) | 0, 34309) | 0, 32552) | 0; + $177 = __ZNKSt3__18ios_base6getlocEv($172 + (HEAP32[(HEAP32[$172 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $177; + $178 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $182 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$178 >> 2] | 0) + 28 >> 2] & 63]($178, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($172, $182) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($172) | 0; + _abort(); + } +} + +function _pattern_match($pattHandle, $mode, $data, $size, $code, $dir, $cf) { + $pattHandle = $pattHandle | 0; + $mode = $mode | 0; + $data = $data | 0; + $size = $size | 0; + $code = $code | 0; + $dir = $dir | 0; + $cf = $cf | 0; + var $$0 = 0, $$lcssa103 = 0, $$lcssa108 = 0, $1 = 0, $100 = 0, $101 = 0, $102 = 0, $105 = 0, $11 = 0, $111 = 0, $118 = 0.0, $119 = 0, $14 = 0, $2 = 0, $20 = 0, $23 = 0, $26 = 0.0, $31 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $45 = 0, $51 = 0, $58 = 0.0, $59 = 0, $63 = 0, $65 = 0, $72 = 0, $75 = 0, $81 = 0, $84 = 0, $87 = 0.0, $91 = 0, $93 = 0, $94 = 0, $96 = 0, $97 = 0, $ave$0$lcssa = 0, $ave$055 = 0, $ave$1$lcssa = 0, $ave$183 = 0, $i$056 = 0, $i$150 = 0, $i$235 = 0, $i$384 = 0, $i$478 = 0, $i$560 = 0, $j$038 = 0, $j$166 = 0, $k$042 = 0, $k$1 = 0, $k$1$in = 0, $k$1$lcssa = 0, $k$1102 = 0, $k$270 = 0, $k$3 = 0, $k$3$in = 0, $k$3$lcssa = 0, $k$3106 = 0, $l$043 = 0, $l$171 = 0, $max$0$lcssa = 0.0, $max$044 = 0.0, $max$139 = 0.0, $max$2 = 0.0, $max$3 = 0.0, $max$4$lcssa = 0.0, $max$472 = 0.0, $max$567 = 0.0, $max$6 = 0.0, $max$7 = 0.0, $res1$0$lcssa = 0, $res1$040 = 0, $res1$136 = 0, $res1$2 = 0, $res1$3 = 0, $res1$4$lcssa = 0, $res1$468 = 0, $res1$564 = 0, $res1$6 = 0, $res1$7 = 0, $res2$0$lcssa = 0, $res2$041 = 0, $res2$137 = 0, $res2$2 = 0, $res2$3 = 0, $res2$4$lcssa = 0, $res2$469 = 0, $res2$565 = 0, $res2$6 = 0, $res2$7 = 0, $sum$0$lcssa = 0.0, $sum$049 = 0, $sum$1$lcssa = 0, $sum$134 = 0, $sum$2$lcssa = 0.0, $sum$277 = 0, $sum$3$lcssa = 0, $sum$359 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + L1 : do if (!$pattHandle) { + HEAP32[$code >> 2] = 0; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + $$0 = -1; + } else switch ($mode | 0) { + case 0: + { + $1 = Math_imul($size, $size) | 0; + $2 = $1 * 3 | 0; + $4 = _malloc($1 * 12 | 0) | 0; + if (!$4) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } + if (!$1) $ave$0$lcssa = 0; else { + $ave$055 = 0; + $i$056 = 0; + while (1) { + $11 = ((HEAPU8[$data + $i$056 >> 0] | 0) ^ 255) + $ave$055 | 0; + $i$056 = $i$056 + 1 | 0; + if (($i$056 | 0) >= ($2 | 0)) { + $ave$0$lcssa = $11; + break; + } else $ave$055 = $11; + } + } + $14 = ($ave$0$lcssa | 0) / ($2 | 0) | 0; + if (!$1) $sum$0$lcssa = 0.0; else { + $i$150 = 0; + $sum$049 = 0; + while (1) { + $20 = ((HEAPU8[$data + $i$150 >> 0] | 0) ^ 255) - $14 | 0; + HEAP32[$4 + ($i$150 << 2) >> 2] = $20; + $23 = (Math_imul($20, $20) | 0) + $sum$049 | 0; + $i$150 = $i$150 + 1 | 0; + if (($i$150 | 0) >= ($2 | 0)) { + $$lcssa103 = $23; + break; + } else $sum$049 = $23; + } + $sum$0$lcssa = +($$lcssa103 | 0); + } + $26 = +Math_sqrt(+$sum$0$lcssa); + if ($26 / (+($size | 0) * 1.7320508) < 15.0) { + HEAP32[$code >> 2] = 0; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + _free($4); + $$0 = -2; + break L1; + } + $31 = HEAP32[$pattHandle >> 2] | 0; + $33 = $pattHandle + 12 | 0; + $34 = $pattHandle + 16 | 0; + if (($31 | 0) > 0) { + $36 = HEAP32[$pattHandle + 8 >> 2] | 0; + $37 = ($1 | 0) == 0; + $k$042 = -1; + $l$043 = 0; + $max$044 = 0.0; + $res1$040 = -1; + $res2$041 = -1; + while (1) { + $k$1$in = $k$042; + L25 : while (1) { + $k$1 = $k$1$in + 1 | 0; + switch (HEAP32[$36 + ($k$1 << 2) >> 2] | 0) { + case 0: + { + $k$1$in = $k$1; + break; } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + case 2: + { + $k$1102 = $k$1; + $max$3 = $max$044; + $res1$3 = $res1$040; + $res2$3 = $res2$041; + break L25; + break; } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + default: + { + $k$1$lcssa = $k$1; + label = 17; + break L25; } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; + } + } + if ((label | 0) == 17) { + label = 0; + $40 = $k$1$lcssa << 2; + $41 = HEAP32[$34 >> 2] | 0; + $j$038 = 0; + $max$139 = $max$044; + $res1$136 = $res1$040; + $res2$137 = $res2$041; + while (1) { + $42 = $j$038 + $40 | 0; + if ($37) $sum$1$lcssa = 0; else { + $45 = HEAP32[(HEAP32[$33 >> 2] | 0) + ($42 << 2) >> 2] | 0; + $i$235 = 0; + $sum$134 = 0; + while (1) { + $51 = (Math_imul(HEAP32[$45 + ($i$235 << 2) >> 2] | 0, HEAP32[$4 + ($i$235 << 2) >> 2] | 0) | 0) + $sum$134 | 0; + $i$235 = $i$235 + 1 | 0; + if (($i$235 | 0) >= ($2 | 0)) { + $sum$1$lcssa = $51; + break; + } else $sum$134 = $51; } - default: - _exit(0); } - break; + $58 = +($sum$1$lcssa | 0) / +HEAPF64[$41 + ($42 << 3) >> 3] / $26; + $59 = $58 > $max$139; + $res1$2 = $59 ? $j$038 : $res1$136; + $res2$2 = $59 ? $k$1$lcssa : $res2$137; + $max$2 = $59 ? $58 : $max$139; + $j$038 = $j$038 + 1 | 0; + if (($j$038 | 0) == 4) { + $k$1102 = $k$1$lcssa; + $max$3 = $max$2; + $res1$3 = $res1$2; + $res2$3 = $res2$2; + break; + } else { + $max$139 = $max$2; + $res1$136 = $res1$2; + $res2$137 = $res2$2; + } } - case 1: - { - if ($pixFormat >>> 0 < 2) { - $$0 = _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + } + $l$043 = $l$043 + 1 | 0; + if (($l$043 | 0) >= ($31 | 0)) { + $max$0$lcssa = $max$3; + $res1$0$lcssa = $res1$3; + $res2$0$lcssa = $res2$3; + break; + } else { + $k$042 = $k$1102; + $max$044 = $max$3; + $res1$040 = $res1$3; + $res2$041 = $res2$3; + } + } + } else { + $max$0$lcssa = 0.0; + $res1$0$lcssa = -1; + $res2$0$lcssa = -1; + } + HEAP32[$dir >> 2] = $res1$0$lcssa; + HEAP32[$code >> 2] = $res2$0$lcssa; + HEAPF64[$cf >> 3] = $max$0$lcssa; + _free($4); + $$0 = 0; + break L1; + break; + } + case 1: + { + $63 = Math_imul($size, $size) | 0; + $65 = _malloc($63 << 2) | 0; + if (!$65) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + if (!$63) $ave$1$lcssa = 0; else { + $ave$183 = 0; + $i$384 = 0; + while (1) { + $72 = ((HEAPU8[$data + $i$384 >> 0] | 0) ^ 255) + $ave$183 | 0; + $i$384 = $i$384 + 1 | 0; + if (($i$384 | 0) >= ($63 | 0)) { + $ave$1$lcssa = $72; + break; + } else $ave$183 = $72; + } + } + $75 = ($ave$1$lcssa | 0) / ($63 | 0) | 0; + if (!$63) $sum$2$lcssa = 0.0; else { + $i$478 = 0; + $sum$277 = 0; + while (1) { + $81 = ((HEAPU8[$data + $i$478 >> 0] | 0) ^ 255) - $75 | 0; + HEAP32[$65 + ($i$478 << 2) >> 2] = $81; + $84 = (Math_imul($81, $81) | 0) + $sum$277 | 0; + $i$478 = $i$478 + 1 | 0; + if (($i$478 | 0) >= ($63 | 0)) { + $$lcssa108 = $84; + break; + } else $sum$277 = $84; + } + $sum$2$lcssa = +($$lcssa108 | 0); + } + $87 = +Math_sqrt(+$sum$2$lcssa); + if ($87 / +($size | 0) < 15.0) { + HEAP32[$code >> 2] = 0; + HEAP32[$dir >> 2] = 0; + HEAPF64[$cf >> 3] = -1.0; + _free($65); + $$0 = -2; + break L1; + } + $91 = HEAP32[$pattHandle >> 2] | 0; + $93 = $pattHandle + 20 | 0; + $94 = $pattHandle + 24 | 0; + if (($91 | 0) > 0) { + $96 = HEAP32[$pattHandle + 8 >> 2] | 0; + $97 = ($63 | 0) == 0; + $k$270 = -1; + $l$171 = 0; + $max$472 = 0.0; + $res1$468 = -1; + $res2$469 = -1; + while (1) { + $k$3$in = $k$270; + L58 : while (1) { + $k$3 = $k$3$in + 1 | 0; + switch (HEAP32[$96 + ($k$3 << 2) >> 2] | 0) { + case 0: + { + $k$3$in = $k$3; + break; } - if (($pixFormat & -2 | 0) == 2) { - $$0 = _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + case 2: + { + $k$3106 = $k$3; + $max$7 = $max$472; + $res1$7 = $res1$468; + $res2$7 = $res2$469; + break L58; + break; } - if (($pixFormat & -3 | 0) == 4) { - $$0 = _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; + default: + { + $k$3$lcssa = $k$3; + label = 37; + break L58; } - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - { - $$0 = _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 8: - { - $$0 = _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 7: - { - $$0 = _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 9: - { - $$0 = _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 10: - { - $$0 = _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; - } - case 11: - { - $$0 = _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0; - break L1; - break; + } + } + if ((label | 0) == 37) { + label = 0; + $100 = $k$3$lcssa << 2; + $101 = HEAP32[$94 >> 2] | 0; + $j$166 = 0; + $max$567 = $max$472; + $res1$564 = $res1$468; + $res2$565 = $res2$469; + while (1) { + $102 = $j$166 + $100 | 0; + if ($97) $sum$3$lcssa = 0; else { + $105 = HEAP32[(HEAP32[$93 >> 2] | 0) + ($102 << 2) >> 2] | 0; + $i$560 = 0; + $sum$359 = 0; + while (1) { + $111 = (Math_imul(HEAP32[$105 + ($i$560 << 2) >> 2] | 0, HEAP32[$65 + ($i$560 << 2) >> 2] | 0) | 0) + $sum$359 | 0; + $i$560 = $i$560 + 1 | 0; + if (($i$560 | 0) >= ($63 | 0)) { + $sum$3$lcssa = $111; + break; + } else $sum$359 = $111; } - default: - _exit(0); } - break; + $118 = +($sum$3$lcssa | 0) / +HEAPF64[$101 + ($102 << 3) >> 3] / $87; + $119 = $118 > $max$567; + $res1$6 = $119 ? $j$166 : $res1$564; + $res2$6 = $119 ? $k$3$lcssa : $res2$565; + $max$6 = $119 ? $118 : $max$567; + $j$166 = $j$166 + 1 | 0; + if (($j$166 | 0) == 4) { + $k$3106 = $k$3$lcssa; + $max$7 = $max$6; + $res1$7 = $res1$6; + $res2$7 = $res2$6; + break; + } else { + $max$567 = $max$6; + $res1$564 = $res1$6; + $res2$565 = $res2$6; + } } - default: - _exit(0); } - break; + $l$171 = $l$171 + 1 | 0; + if (($l$171 | 0) >= ($91 | 0)) { + $max$4$lcssa = $max$7; + $res1$4$lcssa = $res1$7; + $res2$4$lcssa = $res2$7; + break; + } else { + $k$270 = $k$3106; + $max$472 = $max$7; + $res1$468 = $res1$7; + $res2$469 = $res2$7; + } } - default: - _exit(0); + } else { + $max$4$lcssa = 0.0; + $res1$4$lcssa = -1; + $res2$4$lcssa = -1; } + HEAP32[$dir >> 2] = $res1$4$lcssa; + HEAP32[$code >> 2] = $res2$4$lcssa; + HEAPF64[$cf >> 3] = $max$4$lcssa; + _free($65); + $$0 = 0; + break L1; break; } default: - _exit(0); + { + $$0 = -1; + break L1; + } } while (0); + STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $__b, $__e, $__iob, $__err, $__tm, $__fmtb, $__fmte) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + $__fmtb = $__fmtb | 0; + $__fmte = $__fmte | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i20 = 0, $$0$i$i$i$i5 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i11 = 0, $$0$i$i1$i$i26 = 0, $$0$i$i17 = 0, $$0$ph$be = 0, $$0$ph89 = 0, $$0$pn = 0, $$2 = 0, $$2$lcssa = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$lcssa = 0, $$lcssa97 = 0, $$lcssa98 = 0, $$ph = 0, $$pre$i$i$i22 = 0, $$pre$i$i$i7 = 0, $$pre$i3$i$i13 = 0, $$pre$i3$i$i1344 = 0, $$pre$i3$i$i1345 = 0, $0 = 0, $1 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $11 = 0, $118 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $139 = 0, $146 = 0, $157 = 0, $167 = 0, $170 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $2 = 0, $21 = 0, $23 = 0, $25 = 0, $3 = 0, $4 = 0, $41 = 0, $47 = 0, $48 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $62 = 0, $65 = 0, $79 = 0, $8 = 0, $9 = 0, $90 = 0, $92 = 0, $__cmd$0 = 0, $__opt$0 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $$byval_copy1 = sp + 16 | 0; + $$byval_copy = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + $2 = sp; + $3 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $3; + $4 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($3) | 0; + HEAP32[$__err >> 2] = 0; + $6 = HEAP32[$__b >> 2] | 0; + L1 : do if (($__fmtb | 0) == ($__fmte | 0)) $$pre$i$i$i22 = $6; else { + $$0$ph89 = $__fmtb; + $8 = $6; + L2 : while (1) { + $9 = $8; + if (!$8) { + $126 = 0; + $183 = 1; + $58 = $9; + } else { + $11 = HEAP32[$8 + 12 >> 2] | 0; + if (($11 | 0) == (HEAP32[$8 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$8 >> 2] | 0) + 36 >> 2] & 127]($8) | 0; else $$0$i$i$i$i = HEAP32[$11 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $126 = 0; + $183 = 1; + $58 = 0; + } else { + $126 = $8; + $183 = 0; + $58 = $9; + } } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $21 = HEAP32[$__e >> 2] | 0; + $23 = $21; + do if (!$21) { + $$ph = $23; + label = 14; + } else { + $25 = HEAP32[$21 + 12 >> 2] | 0; + if (($25 | 0) == (HEAP32[$21 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$21 >> 2] | 0) + 36 >> 2] & 127]($21) | 0; else $$0$i$i1$i$i = HEAP32[$25 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$ph = 0; + label = 14; + break; + } else if ($183) { + $184 = $21; + $59 = $23; + break; + } else { + $$lcssa = $126; + label = 16; + break L2; + } + } while (0); + if ((label | 0) == 14) { + label = 0; + if ($183) { + $$lcssa = $126; + label = 16; + break; + } else { + $184 = 0; + $59 = $$ph; + } } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 2) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + L24 : do if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 52 >> 2] & 63]($4, HEAP32[$$0$ph89 >> 2] | 0, 0) | 0) << 24 >> 24 == 37) { + $41 = $$0$ph89 + 4 | 0; + if (($41 | 0) == ($__fmte | 0)) { + $$lcssa97 = $126; + label = 19; + break L2; + } + $47 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 52 >> 2] & 63]($4, HEAP32[$41 >> 2] | 0, 0) | 0; + switch ($47 << 24 >> 24) { + case 48: + case 69: + { + $48 = $$0$ph89 + 8 | 0; + if (($48 | 0) == ($__fmte | 0)) { + $$lcssa98 = $126; + label = 22; + break L2; + } + $62 = $41; + $__cmd$0 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 52 >> 2] & 63]($4, HEAP32[$48 >> 2] | 0, 0) | 0; + $__opt$0 = $47; + break; + } + default: + { + $62 = $$0$ph89; + $__cmd$0 = $47; + $__opt$0 = 0; + } + } + $57 = HEAP32[(HEAP32[$this >> 2] | 0) + 36 >> 2] | 0; + HEAP32[$1 >> 2] = $58; + HEAP32[$2 >> 2] = $59; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$2 >> 2]; + $60 = FUNCTION_TABLE_iiiiiiiii[$57 & 15]($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, $__cmd$0, $__opt$0) | 0; + HEAP32[$__b >> 2] = $60; + $$0$ph$be = $62 + 8 | 0; + } else { + if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 12 >> 2] & 63]($4, 8192, HEAP32[$$0$ph89 >> 2] | 0) | 0) $$0$pn = $$0$ph89; else { + $125 = $126 + 12 | 0; + $127 = HEAP32[$125 >> 2] | 0; + $128 = $126 + 16 | 0; + if (($127 | 0) == (HEAP32[$128 >> 2] | 0)) $$0$i$i17 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$126 >> 2] | 0) + 36 >> 2] & 127]($126) | 0; else $$0$i$i17 = HEAP32[$127 >> 2] | 0; + $139 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 63]($4, $$0$i$i17) | 0; + if (($139 | 0) != (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 63]($4, HEAP32[$$0$ph89 >> 2] | 0) | 0)) { + label = 59; + break L2; + } + $146 = HEAP32[$125 >> 2] | 0; + if (($146 | 0) == (HEAP32[$128 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$126 >> 2] | 0) + 40 >> 2] & 127]($126) | 0; else HEAP32[$125 >> 2] = $146 + 4; + $$0$ph$be = $$0$ph89 + 4 | 0; + break; + } while (1) { - do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$367 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $186 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$203 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $206 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $206; - break; - } + $$2 = $$0$pn + 4 | 0; + if (($$2 | 0) == ($__fmte | 0)) { + $$2$lcssa = $__fmte; + break; + } + if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 12 >> 2] & 63]($4, 8192, HEAP32[$$2 >> 2] | 0) | 0) $$0$pn = $$2; else { + $$2$lcssa = $$2; + break; + } + } + $$pre$i$i$i7 = $126; + $$pre$i3$i$i13 = $184; + $90 = $184; + while (1) { + if (!$$pre$i$i$i7) { + $102 = 1; + $104 = 0; + } else { + $79 = HEAP32[$$pre$i$i$i7 + 12 >> 2] | 0; + if (($79 | 0) == (HEAP32[$$pre$i$i$i7 + 16 >> 2] | 0)) $$0$i$i$i$i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i7 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i7) | 0; else $$0$i$i$i$i5 = HEAP32[$79 >> 2] | 0; + if (($$0$i$i$i$i5 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $102 = 1; + $104 = 0; + } else { + $102 = 0; + $104 = $$pre$i$i$i7; } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$367 >> 1] = $72; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $89 = $72; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $89 = $72; - } else { - HEAP16[$pnt2$367 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $89 = $69; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $89 = $69; - } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + } + do if (!$90) { + $$pre$i3$i$i1345 = $$pre$i3$i$i13; + label = 42; + } else { + $92 = HEAP32[$90 + 12 >> 2] | 0; + if (($92 | 0) == (HEAP32[$90 + 16 >> 2] | 0)) $$0$i$i1$i$i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$90 >> 2] | 0) + 36 >> 2] & 127]($90) | 0; else $$0$i$i1$i$i11 = HEAP32[$92 >> 2] | 0; + if (($$0$i$i1$i$i11 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i1345 = 0; + label = 42; break; - } - $107 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + } else if ($102 ^ ($$pre$i3$i$i13 | 0) == 0) { + $$pre$i3$i$i1344 = $$pre$i3$i$i13; + $185 = $$pre$i3$i$i13; break; - } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$367 >> 1] = $115; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $132 = $115; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $132 = $115; } else { - HEAP16[$pnt2$367 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $132 = $112; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $132 = $112; + $$0$ph$be = $$2$lcssa; + break L24; } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; } while (0); - $i$264 = $i$264 + 1 | 0; - $226 = $pnt$168 + 4 | 0; - $227 = $pnt2$367 + 2 | 0; - $228 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $228; - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; - break; + if ((label | 0) == 42) { + label = 0; + if ($102) { + $$0$ph$be = $$2$lcssa; + break L24; + } else { + $$pre$i3$i$i1344 = $$pre$i3$i$i1345; + $185 = 0; + } + } + $103 = $104 + 12 | 0; + $105 = HEAP32[$103 >> 2] | 0; + $106 = $104 + 16 | 0; + if (($105 | 0) == (HEAP32[$106 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$104 >> 2] | 0) + 36 >> 2] & 127]($104) | 0; else $$0$i$i = HEAP32[$105 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 12 >> 2] & 63]($4, 8192, $$0$i$i) | 0)) { + $$0$ph$be = $$2$lcssa; + break L24; + } + $118 = HEAP32[$103 >> 2] | 0; + if (($118 | 0) == (HEAP32[$106 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$104 >> 2] | 0) + 40 >> 2] & 127]($104) | 0; + $$pre$i$i$i7 = $104; + $$pre$i3$i$i13 = $$pre$i3$i$i1344; + $90 = $185; + continue; } else { - $dpnt$166 = $228; - $pnt$168 = $226; - $pnt2$367 = $227; - $wk_max$159 = $wk_max$2; + HEAP32[$103 >> 2] = $118 + 4; + $$pre$i$i$i7 = $104; + $$pre$i3$i$i13 = $$pre$i3$i$i1344; + $90 = $185; + continue; } } + } while (0); + $65 = HEAP32[$__b >> 2] | 0; + if (($$0$ph$be | 0) != ($__fmte | 0) & (HEAP32[$__err >> 2] | 0) == 0) { + $$0$ph89 = $$0$ph$be; + $8 = $65; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 8 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $$pre$i$i$i22 = $65; + break L1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + if ((label | 0) == 16) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i22 = $$lcssa; + break; + } else if ((label | 0) == 19) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i22 = $$lcssa97; + break; + } else if ((label | 0) == 22) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i22 = $$lcssa98; + break; + } else if ((label | 0) == 59) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i22 = HEAP32[$__b >> 2] | 0; + break; + } + } while (0); + if (!$$pre$i$i$i22) { + $182 = 0; + $186 = 1; } else { - $wk_max$0$lcssa = 0; - label = 52; + $157 = HEAP32[$$pre$i$i$i22 + 12 >> 2] | 0; + if (($157 | 0) == (HEAP32[$$pre$i$i$i22 + 16 >> 2] | 0)) $$0$i$i$i$i20 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i22 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i22) | 0; else $$0$i$i$i$i20 = HEAP32[$157 >> 2] | 0; + if (($$0$i$i$i$i20 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $182 = 0; + $186 = 1; + } else { + $182 = $$pre$i$i$i22; + $186 = 0; + } + } + $167 = HEAP32[$__e >> 2] | 0; + do if (!$167) label = 72; else { + $170 = HEAP32[$167 + 12 >> 2] | 0; + if (($170 | 0) == (HEAP32[$167 + 16 >> 2] | 0)) $$0$i$i1$i$i26 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$167 >> 2] | 0) + 36 >> 2] & 127]($167) | 0; else $$0$i$i1$i$i26 = HEAP32[$170 >> 2] | 0; + if (($$0$i$i1$i$i26 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 72; + break; + } else if ($186) break; else { + label = 74; + break; + } } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; + if ((label | 0) == 72) if ($186) label = 74; + if ((label | 0) == 74) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + STACKTOP = sp; + return $182 | 0; +} + +function __ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $__e, $__kb, $__ke, $__ct, $__err, $__case_sensitive) { + $__b = $__b | 0; + $__e = $__e | 0; + $__kb = $__kb | 0; + $__ke = $__ke | 0; + $__ct = $__ct | 0; + $__err = $__err | 0; + $__case_sensitive = $__case_sensitive | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i3 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i9 = 0, $$025 = 0, $$033 = 0, $$lcssa = 0, $$pre$i3$i$i = 0, $$pre$i3$i$i$lcssa = 0, $10 = 0, $101 = 0, $102 = 0, $103 = 0, $115 = 0, $123 = 0, $125 = 0, $130 = 0, $142 = 0, $162 = 0, $163 = 0, $18 = 0, $24 = 0, $27 = 0, $3 = 0, $37 = 0, $40 = 0, $5 = 0, $50 = 0, $51 = 0, $54 = 0, $56 = 0, $69 = 0, $79 = 0, $8 = 0, $80 = 0, $86 = 0, $9 = 0, $94 = 0, $__c$0 = 0, $__consume$0$off0$lcssa = 0, $__consume$0$off038 = 0, $__consume$1$off0 = 0, $__indx$0 = 0, $__kc$0 = 0, $__ky$052 = 0, $__ky1$039 = 0, $__ky2$046 = 0, $__n_does_match$0$lcssa = 0, $__n_does_match$050 = 0, $__n_does_match$1 = 0, $__n_does_match$2 = 0, $__n_does_match$3$lcssa = 0, $__n_does_match$335 = 0, $__n_does_match$4 = 0, $__n_does_match$544 = 0, $__n_does_match$6 = 0, $__n_might_match$0$lcssa = 0, $__n_might_match$049 = 0, $__n_might_match$1 = 0, $__n_might_match$2 = 0, $__n_might_match$3$lcssa = 0, $__n_might_match$334 = 0, $__n_might_match$4 = 0, $__st$051 = 0, $__st$136 = 0, $__st$245 = 0, $__st$332 = 0, $__statbuf = 0, $__status$0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__statbuf = sp; + $3 = ($__ke - $__kb | 0) / 12 | 0; + if ($3 >>> 0 > 100) { + $5 = _malloc($3) | 0; + if (!$5) __ZSt17__throw_bad_allocv(); else { + $162 = $5; + $__status$0 = $5; + } + } else { + $162 = 0; + $__status$0 = $__statbuf; + } + if (($__kb | 0) == ($__ke | 0)) { + $__n_does_match$0$lcssa = 0; + $__n_might_match$0$lcssa = $3; + } else { + $__ky$052 = $__kb; + $__n_does_match$050 = 0; + $__n_might_match$049 = $3; + $__st$051 = $__status$0; + while (1) { + $10 = HEAP8[$__ky$052 >> 0] | 0; + if (!($10 & 1)) $18 = ($10 & 255) >>> 1; else $18 = HEAP32[$__ky$052 + 4 >> 2] | 0; + if (!$18) { + HEAP8[$__st$051 >> 0] = 2; + $__n_does_match$1 = $__n_does_match$050 + 1 | 0; + $__n_might_match$1 = $__n_might_match$049 + -1 | 0; + } else { + HEAP8[$__st$051 >> 0] = 1; + $__n_does_match$1 = $__n_does_match$050; + $__n_might_match$1 = $__n_might_match$049; + } + $__ky$052 = $__ky$052 + 12 | 0; + if (($__ky$052 | 0) == ($__ke | 0)) { + $__n_does_match$0$lcssa = $__n_does_match$1; + $__n_might_match$0$lcssa = $__n_might_match$1; + break; + } else { + $__n_does_match$050 = $__n_does_match$1; + $__n_might_match$049 = $__n_might_match$1; + $__st$051 = $__st$051 + 1 | 0; + } + } + } + $8 = ($__kb | 0) == ($__ke | 0); + $9 = ($__kb | 0) == ($__ke | 0); + $__indx$0 = 0; + $__n_does_match$2 = $__n_does_match$0$lcssa; + $__n_might_match$2 = $__n_might_match$0$lcssa; + L17 : while (1) { + $24 = HEAP32[$__b >> 2] | 0; + do if (!$24) $50 = 1; else { + $27 = HEAP32[$24 + 12 >> 2] | 0; + if (($27 | 0) == (HEAP32[$24 + 16 >> 2] | 0)) $$0$i$i$i$i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$24 >> 2] | 0) + 36 >> 2] & 127]($24) | 0; else $$0$i$i$i$i3 = HEAP32[$27 >> 2] | 0; + if (($$0$i$i$i$i3 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $50 = 1; + break; + } else { + $50 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $37 = HEAP32[$__e >> 2] | 0; + if (!$37) { + $$pre$i3$i$i = 0; + $51 = 1; + } else { + $40 = HEAP32[$37 + 12 >> 2] | 0; + if (($40 | 0) == (HEAP32[$37 + 16 >> 2] | 0)) $$0$i$i1$i$i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$37 >> 2] | 0) + 36 >> 2] & 127]($37) | 0; else $$0$i$i1$i$i9 = HEAP32[$40 >> 2] | 0; + if (($$0$i$i1$i$i9 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i = 0; + $51 = 1; + } else { + $$pre$i3$i$i = $37; + $51 = 0; + } + } + $54 = HEAP32[$__b >> 2] | 0; + if (!(($__n_might_match$2 | 0) != 0 & ($50 ^ $51))) { + $$lcssa = $54; + $$pre$i3$i$i$lcssa = $$pre$i3$i$i; + break; + } + $56 = HEAP32[$54 + 12 >> 2] | 0; + if (($56 | 0) == (HEAP32[$54 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$54 >> 2] | 0) + 36 >> 2] & 127]($54) | 0; else $$0$i$i = HEAP32[$56 >> 2] | 0; + if ($__case_sensitive) $__c$0 = $$0$i$i; else $__c$0 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 28 >> 2] & 63]($__ct, $$0$i$i) | 0; + $69 = $__indx$0 + 1 | 0; + if ($8) { + $__consume$0$off0$lcssa = 0; + $__n_does_match$3$lcssa = $__n_does_match$2; + $__n_might_match$3$lcssa = $__n_might_match$2; + } else { + $__consume$0$off038 = 0; + $__ky1$039 = $__kb; + $__n_does_match$335 = $__n_does_match$2; + $__n_might_match$334 = $__n_might_match$2; + $__st$136 = $__status$0; while (1) { - $237 = HEAP32[$wk$443 >> 2] | 0; - if (($237 | 0) == ($i$341 | 0)) { - $243 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $243; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + do if ((HEAP8[$__st$136 >> 0] | 0) == 1) { + if (!(HEAP8[$__ky1$039 >> 0] & 1)) $79 = $__ky1$039 + 4 | 0; else $79 = HEAP32[$__ky1$039 + 8 >> 2] | 0; + $80 = HEAP32[$79 + ($__indx$0 << 2) >> 2] | 0; + if ($__case_sensitive) $__kc$0 = $80; else $__kc$0 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 28 >> 2] & 63]($__ct, $80) | 0; + if (($__c$0 | 0) != ($__kc$0 | 0)) { + HEAP8[$__st$136 >> 0] = 0; + $__consume$1$off0 = $__consume$0$off038; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334 + -1 | 0; + break; + } + $86 = HEAP8[$__ky1$039 >> 0] | 0; + if (!($86 & 1)) $94 = ($86 & 255) >>> 1; else $94 = HEAP32[$__ky1$039 + 4 >> 2] | 0; + if (($94 | 0) == ($69 | 0)) { + HEAP8[$__st$136 >> 0] = 2; + $__consume$1$off0 = 1; + $__n_does_match$4 = $__n_does_match$335 + 1 | 0; + $__n_might_match$4 = $__n_might_match$334 + -1 | 0; + } else { + $__consume$1$off0 = 1; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334; + } } else { - $j$1$lcssa = $j$2; + $__consume$1$off0 = $__consume$0$off038; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334; + } while (0); + $__ky1$039 = $__ky1$039 + 12 | 0; + if (($__ky1$039 | 0) == ($__ke | 0)) { + $__consume$0$off0$lcssa = $__consume$1$off0; + $__n_does_match$3$lcssa = $__n_does_match$4; + $__n_might_match$3$lcssa = $__n_might_match$4; break; + } else { + $__consume$0$off038 = $__consume$1$off0; + $__n_does_match$335 = $__n_does_match$4; + $__n_might_match$334 = $__n_might_match$4; + $__st$136 = $__st$136 + 1 | 0; } } } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $255 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0)); + if (!$__consume$0$off0$lcssa) { + $__indx$0 = $69; + $__n_does_match$2 = $__n_does_match$3$lcssa; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue; + } + $101 = HEAP32[$__b >> 2] | 0; + $102 = $101 + 12 | 0; + $103 = HEAP32[$102 >> 2] | 0; + if (($103 | 0) == (HEAP32[$101 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$101 >> 2] | 0) + 40 >> 2] & 127]($101) | 0; else HEAP32[$102 >> 2] = $103 + 4; + if (($__n_does_match$3$lcssa + $__n_might_match$3$lcssa | 0) >>> 0 < 2 | $9) { + $__indx$0 = $69; + $__n_does_match$2 = $__n_does_match$3$lcssa; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue; + } else { + $__ky2$046 = $__kb; + $__n_does_match$544 = $__n_does_match$3$lcssa; + $__st$245 = $__status$0; + } + while (1) { + if ((HEAP8[$__st$245 >> 0] | 0) == 2) { + $115 = HEAP8[$__ky2$046 >> 0] | 0; + if (!($115 & 1)) $123 = ($115 & 255) >>> 1; else $123 = HEAP32[$__ky2$046 + 4 >> 2] | 0; + if (($123 | 0) == ($69 | 0)) $__n_does_match$6 = $__n_does_match$544; else { + HEAP8[$__st$245 >> 0] = 0; + $__n_does_match$6 = $__n_does_match$544 + -1 | 0; + } + } else $__n_does_match$6 = $__n_does_match$544; + $125 = $__ky2$046 + 12 | 0; + if (($125 | 0) == ($__ke | 0)) { + $__indx$0 = $69; + $__n_does_match$2 = $__n_does_match$6; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue L17; + } else { + $__ky2$046 = $125; + $__n_does_match$544 = $__n_does_match$6; + $__st$245 = $__st$245 + 1 | 0; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$537 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + } + do if (!$$lcssa) $163 = 1; else { + $130 = HEAP32[$$lcssa + 12 >> 2] | 0; + if (($130 | 0) == (HEAP32[$$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$lcssa >> 2] | 0) + 36 >> 2] & 127]($$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$130 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $163 = 1; + break; + } else { + $163 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$$pre$i3$i$i$lcssa) label = 72; else { + $142 = HEAP32[$$pre$i3$i$i$lcssa + 12 >> 2] | 0; + if (($142 | 0) == (HEAP32[$$pre$i3$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i$lcssa) | 0; else $$0$i$i1$i$i = HEAP32[$142 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 72; + break; + } else if ($163) break; else { + label = 74; + break; + } + } while (0); + if ((label | 0) == 72) if ($163) label = 74; + if ((label | 0) == 74) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + L107 : do if (($__kb | 0) == ($__ke | 0)) label = 78; else { + $$033 = $__kb; + $__st$332 = $__status$0; + while (1) { + if ((HEAP8[$__st$332 >> 0] | 0) == 2) { + $$025 = $$033; + break L107; } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $322 = $labelInfo + 12 + ($i$636 << 2) | 0; - $325 = $i$636 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $$033 = $$033 + 12 | 0; + if (($$033 | 0) == ($__ke | 0)) { + label = 78; + break; + } else $__st$332 = $__st$332 + 1 | 0; } + } while (0); + if ((label | 0) == 78) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$025 = $__ke; + } + _free($162); + STACKTOP = sp; + return $$025 | 0; +} + +function _ar2ReadImageSet($filename) { + $filename = $filename | 0; + var $$0 = 0, $11 = 0, $115 = 0, $119 = 0, $120 = 0, $134 = 0, $14 = 0, $142 = 0, $146 = 0, $16 = 0, $18 = 0, $2 = 0, $23 = 0, $25 = 0, $27 = 0, $30 = 0, $33 = 0, $37 = 0, $4 = 0, $41 = 0, $6 = 0, $8 = 0, $81 = 0, $87 = 0, $89 = 0, $96 = 0, $97 = 0, $dpi = 0, $i$0$i = 0, $i$070 = 0, $i$070$lcssa = 0, $i$070$lcssa98 = 0, $i$1$i64 = 0, $i$1$i64$lcssa = 0, $i$1$i64$lcssa93 = 0, $i$1$i64$lcssa94 = 0, $i$1$i64$lcssa96 = 0, $k$0$i62 = 0, $k$1$i60 = 0, $k$2$i57 = 0, $k$3$i55 = 0, $k$4$i52 = 0, $k$5$i50 = 0, $k$6$i47 = 0, $k$7$i46 = 0, $k1$068 = 0, $k1$166 = 0, $vararg_buffer1 = 0, $vararg_buffer10 = 0, $vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer33 = 0, $vararg_buffer4 = 0, $vararg_buffer8 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer33 = sp + 112 | 0; + $vararg_buffer31 = sp + 104 | 0; + $vararg_buffer29 = sp + 96 | 0; + $vararg_buffer27 = sp + 88 | 0; + $vararg_buffer25 = sp + 80 | 0; + $vararg_buffer23 = sp + 72 | 0; + $vararg_buffer19 = sp + 64 | 0; + $vararg_buffer17 = sp + 56 | 0; + $vararg_buffer15 = sp + 48 | 0; + $vararg_buffer12 = sp + 40 | 0; + $vararg_buffer10 = sp + 32 | 0; + $vararg_buffer8 = sp + 24 | 0; + $vararg_buffer4 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $dpi = sp + 120 | 0; + $2 = _malloc((_strlen($filename) | 0) + 6 | 0) | 0; + if (!$2) { + _arLog(3, 21359, sp); + _exit(1); } + HEAP32[$vararg_buffer1 >> 2] = $filename; + HEAP32[$vararg_buffer1 + 4 >> 2] = 20254; + _sprintf($2, 20249, $vararg_buffer1) | 0; + $4 = _fopen($2, 20972) | 0; + _free($2); + L4 : do if (!$4) { + HEAP32[$vararg_buffer4 >> 2] = $filename; + HEAP32[$vararg_buffer4 + 4 >> 2] = 20254; + _arLog(3, 20260, $vararg_buffer4); + $$0 = 0; + } else { + $6 = _malloc(8) | 0; + if (!$6) { + _arLog(3, 21359, $vararg_buffer8); + _exit(1); + } + $8 = $6 + 4 | 0; + L10 : do if ((_fread($8, 4, 1, $4) | 0) == 1) { + $11 = HEAP32[$8 >> 2] | 0; + if (($11 | 0) < 1) label = 9; else { + HEAP32[$vararg_buffer12 >> 2] = $11; + _arLog(1, 20333, $vararg_buffer12); + $14 = _malloc($11 << 2) | 0; + HEAP32[$6 >> 2] = $14; + if (!$14) { + _arLog(3, 21359, $vararg_buffer15); + _exit(1); + } + $16 = _malloc(16) | 0; + HEAP32[$14 >> 2] = $16; + if (!$16) { + _arLog(3, 21359, $vararg_buffer17); + _exit(1); + } + $18 = _ar2ReadJpegImage2($4) | 0; + if ($18) { + if ((HEAP32[$18 + 4 >> 2] | 0) != 1) { + HEAP32[$vararg_buffer33 >> 2] = $filename; + HEAP32[$vararg_buffer33 + 4 >> 2] = 20254; + _arLog(2, 20363, $vararg_buffer33); + $115 = HEAP32[$6 >> 2] | 0; + _free(HEAP32[$115 >> 2] | 0); + _free($115); + _free($6); + _free($18); + _fclose($4) | 0; + $$0 = 0; + break L4; + } + $119 = HEAP32[$6 >> 2] | 0; + $120 = HEAP32[$119 >> 2] | 0; + HEAP32[$120 + 4 >> 2] = HEAP32[$18 + 8 >> 2]; + HEAP32[$120 + 8 >> 2] = HEAP32[$18 + 12 >> 2]; + HEAP32[$120 + 12 >> 2] = HEAP32[$18 + 16 >> 2]; + HEAP32[$120 >> 2] = HEAP32[$18 >> 2]; + _free($18); + _fseek($4, 1 - $11 << 2, 2) | 0; + L24 : do if (($11 | 0) > 1) { + $i$070 = 1; + while (1) { + if ((_fread($dpi, 4, 1, $4) | 0) != 1) { + $i$070$lcssa = $i$070; + label = 56; + break; + } + $142 = _ar2GenImageLayer2(HEAP32[$119 >> 2] | 0, +HEAPF32[$dpi >> 2]) | 0; + HEAP32[$119 + ($i$070 << 2) >> 2] = $142; + if (!$142) { + $i$070$lcssa98 = $i$070; + label = 59; + break; + } + $i$070 = $i$070 + 1 | 0; + if (($i$070 | 0) >= ($11 | 0)) break L24; + } + if ((label | 0) == 56) { + if (($i$070$lcssa | 0) > 0) { + $k1$068 = 0; + do { + $134 = $119 + ($k1$068 << 2) | 0; + _free(HEAP32[HEAP32[$134 >> 2] >> 2] | 0); + _free(HEAP32[$134 >> 2] | 0); + $k1$068 = $k1$068 + 1 | 0; + } while (($k1$068 | 0) < ($i$070$lcssa | 0)); + } + } else if ((label | 0) == 59) if (($i$070$lcssa98 | 0) > 0) { + $k1$166 = 0; + do { + $146 = $119 + ($k1$166 << 2) | 0; + _free(HEAP32[HEAP32[$146 >> 2] >> 2] | 0); + _free(HEAP32[$146 >> 2] | 0); + $k1$166 = $k1$166 + 1 | 0; + } while (($k1$166 | 0) < ($i$070$lcssa98 | 0)); + } + _free($119); + break L10; + } while (0); + _fclose($4) | 0; + $$0 = $6; + break L4; + } + HEAP32[$vararg_buffer19 >> 2] = $filename; + HEAP32[$vararg_buffer19 + 4 >> 2] = 20254; + _arLog(2, 20363, $vararg_buffer19); + $23 = HEAP32[$6 >> 2] | 0; + _free(HEAP32[$23 >> 2] | 0); + _free($23); + _free($6); + _rewind($4); + $25 = _malloc(8) | 0; + if (!$25) { + _arLog(3, 21359, $vararg_buffer23); + _exit(1); + } + $27 = $25 + 4 | 0; + L42 : do if ((_fread($27, 4, 1, $4) | 0) == 1) { + $30 = HEAP32[$27 >> 2] | 0; + if (($30 | 0) < 1) label = 20; else { + $33 = _malloc($30 << 2) | 0; + HEAP32[$25 >> 2] = $33; + if (!$33) { + _arLog(3, 21359, $vararg_buffer27); + _exit(1); + } else $i$0$i = 0; + while (1) { + if (($i$0$i | 0) >= ($30 | 0)) break; + $37 = _malloc(16) | 0; + HEAP32[$33 + ($i$0$i << 2) >> 2] = $37; + if (!$37) { + label = 26; + break; + } else $i$0$i = $i$0$i + 1 | 0; + } + if ((label | 0) == 26) { + _arLog(3, 21359, $vararg_buffer29); + _exit(1); + } + L53 : do if (($30 | 0) > 0) { + $i$1$i64 = 0; + while (1) { + $41 = $33 + ($i$1$i64 << 2) | 0; + if ((_fread((HEAP32[$41 >> 2] | 0) + 4 | 0, 4, 1, $4) | 0) != 1) { + $i$1$i64$lcssa = $i$1$i64; + label = 28; + break; + } + if ((_fread((HEAP32[$41 >> 2] | 0) + 8 | 0, 4, 1, $4) | 0) != 1) { + $i$1$i64$lcssa93 = $i$1$i64; + label = 33; + break; + } + if ((_fread((HEAP32[$41 >> 2] | 0) + 12 | 0, 4, 1, $4) | 0) != 1) { + $i$1$i64$lcssa94 = $i$1$i64; + label = 38; + break; + } + $81 = HEAP32[$41 >> 2] | 0; + $87 = _malloc(Math_imul(HEAP32[$81 + 8 >> 2] | 0, HEAP32[$81 + 4 >> 2] | 0) | 0) | 0; + HEAP32[$81 >> 2] = $87; + if (!$87) { + label = 43; + break; + } + $89 = HEAP32[$41 >> 2] | 0; + $96 = _fread(HEAP32[$89 >> 2] | 0, 1, Math_imul(HEAP32[$89 + 8 >> 2] | 0, HEAP32[$89 + 4 >> 2] | 0) | 0, $4) | 0; + $97 = HEAP32[$41 >> 2] | 0; + if (($96 | 0) != (Math_imul(HEAP32[$97 + 8 >> 2] | 0, HEAP32[$97 + 4 >> 2] | 0) | 0)) { + $i$1$i64$lcssa96 = $i$1$i64; + label = 45; + break; + } + $i$1$i64 = $i$1$i64 + 1 | 0; + if (($i$1$i64 | 0) >= ($30 | 0)) break L53; + } + if ((label | 0) == 28) { + if (($i$1$i64$lcssa | 0) > 0) { + $k$0$i62 = 0; + do { + _free(HEAP32[HEAP32[$33 + ($k$0$i62 << 2) >> 2] >> 2] | 0); + $k$0$i62 = $k$0$i62 + 1 | 0; + } while (($k$0$i62 | 0) < ($i$1$i64$lcssa | 0)); + } + if ($30) { + $k$1$i60 = 0; + do { + _free(HEAP32[$33 + ($k$1$i60 << 2) >> 2] | 0); + $k$1$i60 = $k$1$i60 + 1 | 0; + } while (($k$1$i60 | 0) != ($30 | 0)); + } + } else if ((label | 0) == 33) { + if (($i$1$i64$lcssa93 | 0) > 0) { + $k$2$i57 = 0; + do { + _free(HEAP32[HEAP32[$33 + ($k$2$i57 << 2) >> 2] >> 2] | 0); + $k$2$i57 = $k$2$i57 + 1 | 0; + } while (($k$2$i57 | 0) < ($i$1$i64$lcssa93 | 0)); + } + if ($30) { + $k$3$i55 = 0; + do { + _free(HEAP32[$33 + ($k$3$i55 << 2) >> 2] | 0); + $k$3$i55 = $k$3$i55 + 1 | 0; + } while (($k$3$i55 | 0) != ($30 | 0)); + } + } else if ((label | 0) == 38) { + if (($i$1$i64$lcssa94 | 0) > 0) { + $k$4$i52 = 0; + do { + _free(HEAP32[HEAP32[$33 + ($k$4$i52 << 2) >> 2] >> 2] | 0); + $k$4$i52 = $k$4$i52 + 1 | 0; + } while (($k$4$i52 | 0) < ($i$1$i64$lcssa94 | 0)); + } + if ($30) { + $k$5$i50 = 0; + do { + _free(HEAP32[$33 + ($k$5$i50 << 2) >> 2] | 0); + $k$5$i50 = $k$5$i50 + 1 | 0; + } while (($k$5$i50 | 0) != ($30 | 0)); + } + } else if ((label | 0) == 43) { + _arLog(3, 21359, $vararg_buffer31); + _exit(1); + } else if ((label | 0) == 45) { + if (($i$1$i64$lcssa96 | 0) >= 0) { + $k$6$i47 = 0; + while (1) { + _free(HEAP32[HEAP32[$33 + ($k$6$i47 << 2) >> 2] >> 2] | 0); + if (($k$6$i47 | 0) < ($i$1$i64$lcssa96 | 0)) $k$6$i47 = $k$6$i47 + 1 | 0; else break; + } + } + if ($30) { + $k$7$i46 = 0; + do { + _free(HEAP32[$33 + ($k$7$i46 << 2) >> 2] | 0); + $k$7$i46 = $k$7$i46 + 1 | 0; + } while (($k$7$i46 | 0) != ($30 | 0)); + } + } + _free($33); + break L42; + } while (0); + _fclose($4) | 0; + $$0 = $25; + break L4; + } + } else label = 20; while (0); + if ((label | 0) == 20) _arLog(3, 20308, $vararg_buffer25); + _free($25); + _fclose($4) | 0; + $$0 = 0; + break L4; + } + } else label = 9; while (0); + if ((label | 0) == 9) _arLog(3, 20308, $vararg_buffer10); + _free($6); + _fclose($4) | 0; + $$0 = 0; + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _kpmMergeRefDataSet($refDataSetPtr1, $refDataSetPtr2) { + $refDataSetPtr1 = $refDataSetPtr1 | 0; + $refDataSetPtr2 = $refDataSetPtr2 | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa77 = 0, $$pre20 = 0, $10 = 0, $103 = 0, $105 = 0, $111 = 0, $12 = 0, $122 = 0, $124 = 0, $126 = 0, $138 = 0, $14 = 0, $140 = 0, $151 = 0, $152 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $167 = 0, $17 = 0, $173 = 0, $180 = 0, $182 = 0, $189 = 0, $19 = 0, $192 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $43 = 0, $44 = 0, $45 = 0, $60 = 0, $62 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $75 = 0, $78 = 0, $79 = 0, $88 = 0, $90 = 0, $94 = 0, $98 = 0, $i$063 = 0, $i$161 = 0, $i$258 = 0, $i$352 = 0, $i$435 = 0, $i$532 = 0, $imageNum$0$lcssa = 0, $imageNum$039 = 0, $imageNum$1 = 0, $j$0 = 0, $j$140 = 0, $j$245 = 0, $j$348 = 0, $j$348$lcssa = 0, $j$4 = 0, $j$533 = 0, $k$050 = 0, $k$138 = 0, $k$22 = 0, $num3$0$lcssa = 0, $num3$057 = 0, $num3$1 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 48 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer9 = sp + 40 | 0; + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + if (($refDataSetPtr1 | 0) != 0 & ($refDataSetPtr2 | 0) != 0) { + do if (!(HEAP32[$refDataSetPtr1 >> 2] | 0)) { + $4 = _malloc(16) | 0; + HEAP32[$refDataSetPtr1 >> 2] = $4; + if (!$4) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } else { + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 >> 2] = 0; + $7 = HEAP32[$refDataSetPtr1 >> 2] | 0; + HEAP32[$7 + 12 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + break; + } + } while (0); + $10 = HEAP32[$refDataSetPtr2 >> 2] | 0; + if (!$10) $$0 = 0; else { + $12 = HEAP32[$refDataSetPtr1 >> 2] | 0; + $14 = HEAP32[$12 + 4 >> 2] | 0; + $16 = HEAP32[$10 + 4 >> 2] | 0; + $17 = $16 + $14 | 0; + $19 = _malloc($17 * 132 | 0) | 0; + if (!$19) { + _arLog(3, 21359, $vararg_buffer3); + _exit(1); + } + if (($14 | 0) > 0) { + $i$063 = 0; + do { + _memcpy($19 + ($i$063 * 132 | 0) | 0, (HEAP32[$12 >> 2] | 0) + ($i$063 * 132 | 0) | 0, 132) | 0; + $i$063 = $i$063 + 1 | 0; + } while (($i$063 | 0) < ($14 | 0)); + } + if (($16 | 0) > 0) { + $i$161 = 0; + do { + _memcpy($19 + (($i$161 + $14 | 0) * 132 | 0) | 0, (HEAP32[$10 >> 2] | 0) + ($i$161 * 132 | 0) | 0, 132) | 0; + $i$161 = $i$161 + 1 | 0; + } while (($i$161 | 0) < ($16 | 0)); + } + $34 = HEAP32[$12 >> 2] | 0; + if (!$34) $36 = $12; else { + _free($34); + $36 = HEAP32[$refDataSetPtr1 >> 2] | 0; + } + HEAP32[$36 >> 2] = $19; + $37 = HEAP32[$refDataSetPtr1 >> 2] | 0; + HEAP32[$37 + 4 >> 2] = $17; + $40 = HEAP32[$37 + 12 >> 2] | 0; + $41 = HEAP32[$refDataSetPtr2 >> 2] | 0; + $43 = HEAP32[$41 + 12 >> 2] | 0; + $44 = $41 + 8 | 0; + $45 = $37 + 8 | 0; + if (($43 | 0) > 0) { + $i$258 = 0; + $num3$057 = 0; + while (1) { + $j$0 = 0; + while (1) { + if (($j$0 | 0) >= ($40 | 0)) { + $num3$1 = $num3$057; + break; + } + if ((HEAP32[(HEAP32[$44 >> 2] | 0) + ($i$258 * 12 | 0) + 8 >> 2] | 0) == (HEAP32[(HEAP32[$45 >> 2] | 0) + ($j$0 * 12 | 0) + 8 >> 2] | 0)) { + label = 20; + break; + } else $j$0 = $j$0 + 1 | 0; + } + if ((label | 0) == 20) { + label = 0; + $num3$1 = $num3$057 + 1 | 0; + } + $i$258 = $i$258 + 1 | 0; + if (($i$258 | 0) >= ($43 | 0)) { + $num3$0$lcssa = $num3$1; + break; + } else $num3$057 = $num3$1; + } + } else $num3$0$lcssa = 0; + $60 = $43 + $40 - $num3$0$lcssa | 0; + $62 = _malloc($60 * 12 | 0) | 0; + if (!$62) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); + } + L37 : do if (($40 | 0) > 0) { + $65 = ($43 | 0) > 0; + $66 = ($43 | 0) > 0; + $i$352 = 0; + while (1) { + $69 = (HEAP32[$refDataSetPtr1 >> 2] | 0) + 8 | 0; + $70 = HEAP32[$69 >> 2] | 0; + $71 = $70 + ($i$352 * 12 | 0) + 8 | 0; + HEAP32[$62 + ($i$352 * 12 | 0) + 8 >> 2] = HEAP32[$71 >> 2]; + $75 = HEAP32[$70 + ($i$352 * 12 | 0) + 4 >> 2] | 0; + if ($65) { + $78 = HEAP32[(HEAP32[$refDataSetPtr2 >> 2] | 0) + 8 >> 2] | 0; + $79 = HEAP32[$71 >> 2] | 0; + $imageNum$039 = $75; + $j$140 = 0; + while (1) { + if ((HEAP32[$78 + ($j$140 * 12 | 0) + 8 >> 2] | 0) == ($79 | 0)) $imageNum$1 = (HEAP32[$78 + ($j$140 * 12 | 0) + 4 >> 2] | 0) + $imageNum$039 | 0; else $imageNum$1 = $imageNum$039; + $j$140 = $j$140 + 1 | 0; + if (($j$140 | 0) >= ($43 | 0)) { + $imageNum$0$lcssa = $imageNum$1; + break; + } else $imageNum$039 = $imageNum$1; + } + } else $imageNum$0$lcssa = $75; + $88 = $62 + ($i$352 * 12 | 0) | 0; + $90 = _malloc($imageNum$0$lcssa * 12 | 0) | 0; + HEAP32[$88 >> 2] = $90; + if (!$90) break; + $94 = HEAP32[(HEAP32[$69 >> 2] | 0) + ($i$352 * 12 | 0) + 4 >> 2] | 0; + if (($94 | 0) > 0) { + $j$245 = 0; + do { + $105 = (HEAP32[$88 >> 2] | 0) + ($j$245 * 12 | 0) | 0; + $111 = (HEAP32[(HEAP32[(HEAP32[$refDataSetPtr1 >> 2] | 0) + 8 >> 2] | 0) + ($i$352 * 12 | 0) >> 2] | 0) + ($j$245 * 12 | 0) | 0; + HEAP32[$105 >> 2] = HEAP32[$111 >> 2]; + HEAP32[$105 + 4 >> 2] = HEAP32[$111 + 4 >> 2]; + HEAP32[$105 + 8 >> 2] = HEAP32[$111 + 8 >> 2]; + $j$245 = $j$245 + 1 | 0; + } while (($j$245 | 0) < ($94 | 0)); + } + L54 : do if ($66) { + $98 = HEAP32[(HEAP32[$refDataSetPtr2 >> 2] | 0) + 8 >> 2] | 0; + $103 = HEAP32[(HEAP32[(HEAP32[$refDataSetPtr1 >> 2] | 0) + 8 >> 2] | 0) + ($i$352 * 12 | 0) + 8 >> 2] | 0; + $j$348 = 0; + while (1) { + if ((HEAP32[$98 + ($j$348 * 12 | 0) + 8 >> 2] | 0) == ($103 | 0)) { + $$lcssa77 = $98; + $j$348$lcssa = $j$348; + break; + } + $j$348 = $j$348 + 1 | 0; + if (($j$348 | 0) >= ($43 | 0)) break L54; + } + if ((HEAP32[$$lcssa77 + ($j$348$lcssa * 12 | 0) + 4 >> 2] | 0) > 0) { + $124 = $$lcssa77; + $k$050 = 0; + do { + $122 = (HEAP32[$88 >> 2] | 0) + (($k$050 + $94 | 0) * 12 | 0) | 0; + $126 = (HEAP32[$124 + ($j$348$lcssa * 12 | 0) >> 2] | 0) + ($k$050 * 12 | 0) | 0; + HEAP32[$122 >> 2] = HEAP32[$126 >> 2]; + HEAP32[$122 + 4 >> 2] = HEAP32[$126 + 4 >> 2]; + HEAP32[$122 + 8 >> 2] = HEAP32[$126 + 8 >> 2]; + $k$050 = $k$050 + 1 | 0; + $124 = HEAP32[(HEAP32[$refDataSetPtr2 >> 2] | 0) + 8 >> 2] | 0; + } while (($k$050 | 0) < (HEAP32[$124 + ($j$348$lcssa * 12 | 0) + 4 >> 2] | 0)); + } + } while (0); + HEAP32[$62 + ($i$352 * 12 | 0) + 4 >> 2] = $imageNum$0$lcssa; + $i$352 = $i$352 + 1 | 0; + if (($i$352 | 0) >= ($40 | 0)) break L37; + } + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } while (0); + L65 : do if (($43 | 0) > 0) { + $i$435 = 0; + $k$138 = 0; + while (1) { + $138 = HEAP32[(HEAP32[$refDataSetPtr2 >> 2] | 0) + 8 >> 2] | 0; + $140 = HEAP32[$138 + ($i$435 * 12 | 0) + 8 >> 2] | 0; + $j$4 = 0; + while (1) { + if (($j$4 | 0) >= ($40 | 0)) { + label = 47; + break; + } + if (($140 | 0) == (HEAP32[(HEAP32[(HEAP32[$refDataSetPtr1 >> 2] | 0) + 8 >> 2] | 0) + ($j$4 * 12 | 0) + 8 >> 2] | 0)) { + label = 46; + break; + } else $j$4 = $j$4 + 1 | 0; + } + if ((label | 0) == 46) { + label = 0; + $k$22 = $k$138 + 1 | 0; + } else if ((label | 0) == 47) { + label = 0; + $151 = $i$435 + $40 - $k$138 | 0; + $152 = $62 + ($151 * 12 | 0) | 0; + HEAP32[$62 + ($151 * 12 | 0) + 8 >> 2] = $140; + $155 = HEAP32[$138 + ($i$435 * 12 | 0) + 4 >> 2] | 0; + $157 = _malloc($155 * 12 | 0) | 0; + HEAP32[$152 >> 2] = $157; + if (!$157) break; + if (($155 | 0) > 0) { + $j$533 = 0; + do { + $161 = (HEAP32[$152 >> 2] | 0) + ($j$533 * 12 | 0) | 0; + $167 = (HEAP32[(HEAP32[(HEAP32[$refDataSetPtr2 >> 2] | 0) + 8 >> 2] | 0) + ($i$435 * 12 | 0) >> 2] | 0) + ($j$533 * 12 | 0) | 0; + HEAP32[$161 >> 2] = HEAP32[$167 >> 2]; + HEAP32[$161 + 4 >> 2] = HEAP32[$167 + 4 >> 2]; + HEAP32[$161 + 8 >> 2] = HEAP32[$167 + 8 >> 2]; + $j$533 = $j$533 + 1 | 0; + } while (($j$533 | 0) < ($155 | 0)); + } + HEAP32[$62 + ($151 * 12 | 0) + 4 >> 2] = $155; + $k$22 = $k$138; + } + $i$435 = $i$435 + 1 | 0; + if (($i$435 | 0) >= ($43 | 0)) break L65; else $k$138 = $k$22; + } + _arLog(3, 21359, $vararg_buffer9); + _exit(1); + } while (0); + $173 = HEAP32[$refDataSetPtr1 >> 2] | 0; + if (!(HEAP32[$173 + 8 >> 2] | 0)) $192 = $173; else { + $180 = $173 + 8 | 0; + if ((HEAP32[$173 + 12 >> 2] | 0) > 0) { + $182 = $180; + $i$532 = 0; + while (1) { + _free(HEAP32[(HEAP32[$182 >> 2] | 0) + ($i$532 * 12 | 0) >> 2] | 0); + $i$532 = $i$532 + 1 | 0; + $$pre20 = HEAP32[$refDataSetPtr1 >> 2] | 0; + $189 = $$pre20 + 8 | 0; + if (($i$532 | 0) >= (HEAP32[$$pre20 + 12 >> 2] | 0)) { + $$lcssa = $189; + break; + } else $182 = $189; + } + } else $$lcssa = $180; + _free(HEAP32[$$lcssa >> 2] | 0); + $192 = HEAP32[$refDataSetPtr1 >> 2] | 0; } + HEAP32[$192 + 8 >> 2] = $62; + HEAP32[(HEAP32[$refDataSetPtr1 >> 2] | 0) + 12 >> 2] = $60; + _kpmDeleteRefDataSet($refDataSetPtr2) | 0; + $$0 = 0; } + } else { + _arLog(3, 20868, $vararg_buffer); + $$0 = -1; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_PKff($this, $features1, $features2, $H, $tr) { + $this = $this | 0; + $features1 = $features1 | 0; + $features2 = $features2 | 0; + $H = $H | 0; + $tr = +$tr; + var $$0 = 0, $$lcssa = 0, $$lcssa25 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $104 = 0, $109 = 0, $11 = 0, $110 = 0, $114 = 0, $116 = 0, $119 = 0, $124 = 0, $125 = 0, $136 = 0, $139 = 0, $14 = 0, $144 = 0, $145 = 0, $157 = 0, $16 = 0, $164 = 0, $171 = 0, $176 = 0, $177 = 0, $181 = 0, $19 = 0.0, $2 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $36 = 0, $4 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $57 = 0, $59 = 0, $6 = 0, $61 = 0, $65 = 0, $66 = 0, $7 = 0, $70 = 0, $72 = 0.0, $73 = 0.0, $75 = 0, $81 = 0.0, $85 = 0.0, $9 = 0, $90 = 0, $93 = 0, $Hinv = 0, $best_index$0$lcssa = 0, $best_index$010 = 0, $best_index$1 = 0, $first_best$0$lcssa = 0, $first_best$013 = 0, $first_best$1 = 0, $i$016 = 0, $j$012 = 0, $second_best$0$lcssa = 0, $second_best$011 = 0, $second_best$1 = 0, $xp1 = 0, $yp1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 60 | 0; + $Hinv = sp + 16 | 0; + $xp1 = sp + 56 | 0; + $yp1 = sp + 52 | 0; + $1 = sp + 8 | 0; + $2 = sp; + $3 = HEAP32[$this >> 2] | 0; + $4 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$4 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($3 | 0)) { + $7 = $$pre$i$i$i; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; - } + $6 = $7 + -8 | 0; + if (($6 | 0) == ($3 | 0)) { + $$lcssa25 = $6; + break; + } else $7 = $6; } + HEAP32[$4 >> 2] = $$lcssa25; } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 2) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; + $9 = $features1 + 20 | 0; + $11 = $features1 + 16 | 0; + do if ((HEAP32[$9 >> 2] | 0) == (HEAP32[$11 >> 2] | 0)) $$0 = 0; else { + $14 = $features2 + 20 | 0; + $16 = $features2 + 16 | 0; + if ((HEAP32[$14 >> 2] | 0) == (HEAP32[$16 >> 2] | 0)) $$0 = 0; else { + $19 = $tr * $tr; + if (!(__ZN6vision16MatrixInverse3x3IfEEbPT_PKS1_S1_($Hinv, $H, 0.0) | 0)) { + $26 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28540) | 0, 28565) | 0, 34302) | 0, 196) | 0, 34309) | 0, 28685) | 0; + $31 = __ZNKSt3__18ios_base6getlocEv($26 + (HEAP32[(HEAP32[$26 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $31; + $32 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $36 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$32 >> 2] | 0) + 28 >> 2] & 63]($32, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($26, $36) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($26) | 0; + _abort(); + } + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE7reserveEj($this, ((HEAP32[$9 >> 2] | 0) - (HEAP32[$11 >> 2] | 0) | 0) / 20 | 0); + $43 = $features1 + 4 | 0; + $44 = $features2 + 4 | 0; + $45 = $1 + 4 | 0; + $46 = $this + 8 | 0; + $47 = $this + 12 | 0; + $48 = $2 + 4 | 0; + $49 = HEAP32[$9 >> 2] | 0; + $50 = HEAP32[$11 >> 2] | 0; + L12 : do if (($49 | 0) == ($50 | 0)) $$lcssa = ($49 - $50 | 0) / 20 | 0; else { + $61 = $50; + $i$016 = 0; + L13 : while (1) { + $57 = Math_imul(HEAP32[$features1 >> 2] | 0, $i$016) | 0; + $59 = (HEAP32[$43 >> 2] | 0) + $57 | 0; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvRT_S2_PKS1_S1_S1_($xp1, $yp1, $Hinv, +HEAPF32[$61 + ($i$016 * 20 | 0) >> 2], +HEAPF32[$61 + ($i$016 * 20 | 0) + 4 >> 2]); + $65 = HEAP32[$14 >> 2] | 0; + $66 = HEAP32[$16 >> 2] | 0; + $70 = ($65 - $66 | 0) / 20 | 0; + $72 = +HEAPF32[$xp1 >> 2]; + $73 = +HEAPF32[$yp1 >> 2]; + if (($65 | 0) == ($66 | 0)) { + $best_index$0$lcssa = 2147483647; + $first_best$0$lcssa = -1; + $second_best$0$lcssa = -1; } else { - HEAP8[$dpnt$166 >> 0] = -1; - $41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$367 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + $75 = HEAP8[$61 + ($i$016 * 20 | 0) + 16 >> 0] | 0; + $best_index$010 = 2147483647; + $first_best$013 = -1; + $j$012 = 0; + $second_best$011 = -1; + while (1) { + if ($75 << 24 >> 24 == (HEAP8[$66 + ($j$012 * 20 | 0) + 16 >> 0] | 0)) { + $81 = $72 - +HEAPF32[$66 + ($j$012 * 20 | 0) >> 2]; + $85 = $73 - +HEAPF32[$66 + ($j$012 * 20 | 0) + 4 >> 2]; + if ($81 * $81 + $85 * $85 > $19) { + $best_index$1 = $best_index$010; + $first_best$1 = $first_best$013; + $second_best$1 = $second_best$011; + } else { + $90 = Math_imul(HEAP32[$features2 >> 2] | 0, $j$012) | 0; + $93 = __ZN6vision18HammingDistance768EPKjS1_($59, (HEAP32[$44 >> 2] | 0) + $90 | 0) | 0; + if ($93 >>> 0 < $first_best$013 >>> 0) { + $best_index$1 = $j$012; + $first_best$1 = $93; + $second_best$1 = $first_best$013; + } else { + $best_index$1 = $best_index$010; + $first_best$1 = $first_best$013; + $second_best$1 = $93 >>> 0 < $second_best$011 >>> 0 ? $93 : $second_best$011; + } + } + } else { + $best_index$1 = $best_index$010; + $first_best$1 = $first_best$013; + $second_best$1 = $second_best$011; + } + $j$012 = $j$012 + 1 | 0; + if (($j$012 | 0) == ($70 | 0)) { + $best_index$0$lcssa = $best_index$1; + $first_best$0$lcssa = $first_best$1; + $second_best$0$lcssa = $second_best$1; break; + } else { + $best_index$010 = $best_index$1; + $first_best$013 = $first_best$1; + $second_best$011 = $second_best$1; } - $186 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$203 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; + } + } + do if (($first_best$0$lcssa | 0) != -1) { + if (($best_index$0$lcssa | 0) == -1) break L13; + if (($second_best$0$lcssa | 0) == -1) { + HEAP32[$1 >> 2] = $i$016; + HEAP32[$45 >> 2] = $best_index$0$lcssa; + $116 = HEAP32[$4 >> 2] | 0; + if (($116 | 0) == (HEAP32[$46 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $1); break; } else { - $206 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $206; + $119 = $1; + $124 = HEAP32[$119 + 4 >> 2] | 0; + $125 = $116; + HEAP32[$125 >> 2] = HEAP32[$119 >> 2]; + HEAP32[$125 + 4 >> 2] = $124; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; break; } } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$367 >> 1] = $72; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $89 = $72; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $89 = $72; + if (+($first_best$0$lcssa >>> 0) / +($second_best$0$lcssa >>> 0) < +HEAPF32[$47 >> 2]) { + HEAP32[$2 >> 2] = $i$016; + HEAP32[$48 >> 2] = $best_index$0$lcssa; + $136 = HEAP32[$4 >> 2] | 0; + if (($136 | 0) == (HEAP32[$46 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $2); + break; } else { - HEAP16[$pnt2$367 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $89 = $69; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $89 = $69; + $139 = $2; + $144 = HEAP32[$139 + 4 >> 2] | 0; + $145 = $136; + HEAP32[$145 >> 2] = HEAP32[$139 >> 2]; + HEAP32[$145 + 4 >> 2] = $144; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; + break; } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $107 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$367 >> 1] = $115; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $132 = $115; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $132 = $115; - } else { - HEAP16[$pnt2$367 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $132 = $112; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $132 = $112; } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; } while (0); - $i$264 = $i$264 + 1 | 0; - $226 = $pnt$168 + 4 | 0; - $227 = $pnt2$367 + 2 | 0; - $228 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $228; - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $228; - $pnt$168 = $226; - $pnt2$367 = $227; - $wk_max$159 = $wk_max$2; + $i$016 = $i$016 + 1 | 0; + $61 = HEAP32[$11 >> 2] | 0; + $157 = ((HEAP32[$9 >> 2] | 0) - $61 | 0) / 20 | 0; + if ($i$016 >>> 0 >= $157 >>> 0) { + $$lcssa = $157; + break L12; + } + } + $104 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28718) | 0, 28565) | 0, 34302) | 0, 241) | 0, 34309) | 0, 28790) | 0; + $109 = __ZNKSt3__18ios_base6getlocEv($104 + (HEAP32[(HEAP32[$104 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $109; + $110 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $114 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$110 >> 2] | 0) + 28 >> 2] & 63]($110, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($104, $114) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($104) | 0; + _abort(); + } while (0); + $164 = (HEAP32[$4 >> 2] | 0) - (HEAP32[$this >> 2] | 0) >> 3; + if ($164 >>> 0 > $$lcssa >>> 0) { + $171 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28808) | 0, 28565) | 0, 34302) | 0, 256) | 0, 34309) | 0, 28868) | 0; + $176 = __ZNKSt3__18ios_base6getlocEv($171 + (HEAP32[(HEAP32[$171 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $176; + $177 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $181 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$177 >> 2] | 0) + 28 >> 2] & 63]($177, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($171, $181) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($171) | 0; + _abort(); + } else { + $$0 = $164; + break; + } + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} +function __ZN6vision18binomial_4th_orderEPfPtPKhjj($dst, $tmp, $src, $width, $height) { + $dst = $dst | 0; + $tmp = $tmp | 0; + $src = $src | 0; + $width = $width | 0; + $height = $height | 0; + var $$sum12 = 0, $$sum2 = 0, $$sum3 = 0, $$sum5 = 0, $$sum7 = 0, $$sum8 = 0, $$sum9 = 0, $0 = 0, $103 = 0, $106 = 0, $108 = 0, $12 = 0, $120 = 0, $13 = 0, $133 = 0, $134 = 0, $135 = 0, $137 = 0, $160 = 0, $17 = 0, $179 = 0, $214 = 0, $227 = 0, $24 = 0, $244 = 0, $252 = 0, $29 = 0, $30 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $43 = 0, $48 = 0, $60 = 0, $7 = 0, $72 = 0, $73 = 0, $99 = 0, $col$085 = 0, $col1$079 = 0, $col2$071 = 0, $col4$058 = 0, $col5$047 = 0, $col6$040 = 0, $dst_ptr$075 = 0, $dst_ptr$166 = 0, $dst_ptr$252 = 0, $dst_ptr$342 = 0, $dst_ptr$436 = 0, $exitcond2851 = 0, $exitcond3283 = 0, $p$168 = 0, $p$255 = 0, $p$345 = 0, $p$439 = 0, $pm1$254 = 0, $pm1$344 = 0, $pm1$438 = 0, $pm2$076 = 0, $pm2$167 = 0, $pm2$253 = 0, $pm2$343 = 0, $pm2$437 = 0, $pp1$077 = 0, $pp1$169 = 0, $pp1$256 = 0, $pp1$346 = 0, $pp2$078 = 0, $pp2$170 = 0, $pp2$257 = 0, $row$090 = 0, $row3$063 = 0, $scevgep$sum = 0, $tmp_ptr$091 = 0, $tmp_ptr$184 = 0, sp = 0, $col$085$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ($width >>> 0 <= 4) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25839) | 0, 25873) | 0, 34302) | 0, 55) | 0, 34309) | 0, 26002) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + if ($height >>> 0 <= 4) { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26021) | 0, 25873) | 0, 34302) | 0, 56) | 0, 34309) | 0, 26002) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); + } + $35 = $width + -1 | 0; + $36 = $width + -2 | 0; + $37 = $width + -3 | 0; + $38 = $width + -4 | 0; + $scevgep$sum = $width + -1 | 0; + if ($height) { + $exitcond3283 = ($36 | 0) == 2; + $row$090 = 0; + $tmp_ptr$091 = $tmp; + while (1) { + $39 = Math_imul($row$090, $width) | 0; + $40 = $src + $39 | 0; + $42 = HEAPU8[$40 >> 0] | 0; + $43 = $src + ($39 + 1) | 0; + $$sum12 = $39 + 2 | 0; + $48 = $src + $$sum12 | 0; + HEAP16[$tmp_ptr$091 >> 1] = ($42 * 7 | 0) + (HEAPU8[$48 >> 0] | 0) + ((HEAPU8[$43 >> 0] | 0) + $42 << 2); + $60 = HEAPU8[$40 >> 0] | 0; + HEAP16[$tmp_ptr$091 + 2 >> 1] = ((HEAPU8[$43 >> 0] | 0) * 6 | 0) + $60 + (HEAPU8[$src + ($39 + 3) >> 0] | 0) + ((HEAPU8[$48 >> 0] | 0) + $60 << 2); + $72 = $39 + -1 | 0; + $73 = $39 + -2 | 0; + if (!$exitcond3283) { + $col$085 = 2; + $tmp_ptr$184 = $tmp_ptr$091 + 4 | 0; + while (1) { + $col$085$looptemp = $col$085; + $col$085 = $col$085 + 1 | 0; + HEAP16[$tmp_ptr$184 >> 1] = (HEAPU8[$src + ($73 + $col$085$looptemp) >> 0] | 0) + ((HEAPU8[$src + ($col$085$looptemp + $39) >> 0] | 0) * 6 | 0) + ((HEAPU8[$src + ($col$085 + $39) >> 0] | 0) + (HEAPU8[$src + ($72 + $col$085$looptemp) >> 0] | 0) << 2) + (HEAPU8[$src + ($$sum12 + $col$085$looptemp) >> 0] | 0); + if (($col$085 | 0) == ($36 | 0)) break; else $tmp_ptr$184 = $tmp_ptr$184 + 2 | 0; + } + } + $99 = $src + ($39 + $36) | 0; + $103 = $src + ($37 + $39) | 0; + $106 = $src + ($35 + $39) | 0; + $108 = HEAPU8[$106 >> 0] | 0; + HEAP16[$tmp_ptr$091 + ($36 << 1) >> 1] = $108 + ((HEAPU8[$99 >> 0] | 0) * 6 | 0) + (HEAPU8[$src + ($38 + $39) >> 0] | 0) + ($108 + (HEAPU8[$103 >> 0] | 0) << 2); + $120 = HEAPU8[$106 >> 0] | 0; + HEAP16[$tmp_ptr$091 + ($scevgep$sum << 1) >> 1] = ($120 * 7 | 0) + (HEAPU8[$103 >> 0] | 0) + ((HEAPU8[$99 >> 0] | 0) + $120 << 2); + $row$090 = $row$090 + 1 | 0; + if (($row$090 | 0) == ($height | 0)) break; else $tmp_ptr$091 = $tmp_ptr$091 + ($width << 1) | 0; + } + } + $133 = $height + -2 | 0; + $134 = $tmp + ($width << 1) | 0; + $135 = $tmp + ($width << 1 << 1) | 0; + if ($width) { + $col1$079 = 0; + $dst_ptr$075 = $dst; + $pm2$076 = $tmp; + $pp1$077 = $134; + $pp2$078 = $135; + while (1) { + $137 = HEAPU16[$pm2$076 >> 1] | 0; + HEAPF32[$dst_ptr$075 >> 2] = +(($137 * 7 | 0) + ((HEAPU16[$pp1$077 >> 1] | 0) + $137 << 2) + (HEAPU16[$pp2$078 >> 1] | 0) | 0) * .00390625; + $col1$079 = $col1$079 + 1 | 0; + if (($col1$079 | 0) == ($width | 0)) break; else { + $dst_ptr$075 = $dst_ptr$075 + 4 | 0; + $pm2$076 = $pm2$076 + 2 | 0; + $pp1$077 = $pp1$077 + 2 | 0; + $pp2$078 = $pp2$078 + 2 | 0; + } + } + if ($width) { + $col2$071 = 0; + $dst_ptr$166 = $dst + ($width << 2) | 0; + $p$168 = $134; + $pm2$167 = $tmp; + $pp1$169 = $135; + $pp2$170 = $tmp + ($width * 3 << 1) | 0; + while (1) { + $160 = HEAPU16[$pm2$167 >> 1] | 0; + HEAPF32[$dst_ptr$166 >> 2] = +($160 + ((HEAPU16[$p$168 >> 1] | 0) * 6 | 0) + ((HEAPU16[$pp1$169 >> 1] | 0) + $160 << 2) + (HEAPU16[$pp2$170 >> 1] | 0) | 0) * .00390625; + $col2$071 = $col2$071 + 1 | 0; + if (($col2$071 | 0) == ($width | 0)) break; else { + $dst_ptr$166 = $dst_ptr$166 + 4 | 0; + $p$168 = $p$168 + 2 | 0; + $pm2$167 = $pm2$167 + 2 | 0; + $pp1$169 = $pp1$169 + 2 | 0; + $pp2$170 = $pp2$170 + 2 | 0; + } + } + } + } + if (($133 | 0) != 2) { + $exitcond2851 = ($width | 0) == 0; + $row3$063 = 2; + do { + $179 = Math_imul($row3$063 + -2 | 0, $width) | 0; + $$sum7 = $179 + $width | 0; + $$sum8 = $$sum7 + $width | 0; + $$sum9 = $$sum8 + $width | 0; + if (!$exitcond2851) { + $col4$058 = 0; + $dst_ptr$252 = $dst + ((Math_imul($row3$063, $width) | 0) << 2) | 0; + $p$255 = $tmp + ($$sum8 << 1) | 0; + $pm1$254 = $tmp + ($$sum7 << 1) | 0; + $pm2$253 = $tmp + ($179 << 1) | 0; + $pp1$256 = $tmp + ($$sum9 << 1) | 0; + $pp2$257 = $tmp + ($$sum9 + $width << 1) | 0; + while (1) { + HEAPF32[$dst_ptr$252 >> 2] = +((HEAPU16[$pm2$253 >> 1] | 0) + ((HEAPU16[$p$255 >> 1] | 0) * 6 | 0) + ((HEAPU16[$pp1$256 >> 1] | 0) + (HEAPU16[$pm1$254 >> 1] | 0) << 2) + (HEAPU16[$pp2$257 >> 1] | 0) | 0) * .00390625; + $col4$058 = $col4$058 + 1 | 0; + if (($col4$058 | 0) == ($width | 0)) break; else { + $dst_ptr$252 = $dst_ptr$252 + 4 | 0; + $p$255 = $p$255 + 2 | 0; + $pm1$254 = $pm1$254 + 2 | 0; + $pm2$253 = $pm2$253 + 2 | 0; + $pp1$256 = $pp1$256 + 2 | 0; + $pp2$257 = $pp2$257 + 2 | 0; } } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 8 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $row3$063 = $row3$063 + 1 | 0; + } while (($row3$063 | 0) != ($133 | 0)); + } + $214 = Math_imul($height + -4 | 0, $width) | 0; + $$sum2 = $214 + $width | 0; + $$sum3 = $$sum2 + $width | 0; + if ($width) { + $col5$047 = 0; + $dst_ptr$342 = $dst + ((Math_imul($133, $width) | 0) << 2) | 0; + $p$345 = $tmp + ($$sum3 << 1) | 0; + $pm1$344 = $tmp + ($$sum2 << 1) | 0; + $pm2$343 = $tmp + ($214 << 1) | 0; + $pp1$346 = $tmp + ($$sum3 + $width << 1) | 0; + while (1) { + $227 = HEAPU16[$pp1$346 >> 1] | 0; + HEAPF32[$dst_ptr$342 >> 2] = +((HEAPU16[$pm2$343 >> 1] | 0) + ((HEAPU16[$p$345 >> 1] | 0) * 6 | 0) + ($227 + (HEAPU16[$pm1$344 >> 1] | 0) << 2) + $227 | 0) * .00390625; + $col5$047 = $col5$047 + 1 | 0; + if (($col5$047 | 0) == ($width | 0)) break; else { + $dst_ptr$342 = $dst_ptr$342 + 4 | 0; + $p$345 = $p$345 + 2 | 0; + $pm1$344 = $pm1$344 + 2 | 0; + $pm2$343 = $pm2$343 + 2 | 0; + $pp1$346 = $pp1$346 + 2 | 0; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + } + $244 = Math_imul($height + -3 | 0, $width) | 0; + $$sum5 = $244 + $width | 0; + if ($width) { + $col6$040 = 0; + $dst_ptr$436 = $dst + ((Math_imul($height + -1 | 0, $width) | 0) << 2) | 0; + $p$439 = $tmp + ($$sum5 + $width << 1) | 0; + $pm1$438 = $tmp + ($$sum5 << 1) | 0; + $pm2$437 = $tmp + ($244 << 1) | 0; + while (1) { + $252 = HEAPU16[$p$439 >> 1] | 0; + HEAPF32[$dst_ptr$436 >> 2] = +((HEAPU16[$pm2$437 >> 1] | 0) + ($252 * 6 | 0) + ($252 + (HEAPU16[$pm1$438 >> 1] | 0) << 2) + $252 | 0) * .00390625; + $col6$040 = $col6$040 + 1 | 0; + if (($col6$040 | 0) == ($width | 0)) break; else { + $dst_ptr$436 = $dst_ptr$436 + 4 | 0; + $p$439 = $p$439 + 2 | 0; + $pm1$438 = $pm1$438 + 2 | 0; + $pm2$437 = $pm2$437 + 2 | 0; + } + } + } + STACKTOP = sp; + return; +} + +function __ZN6vision38ComputeSubpixelHessianCoarseOctavePairEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y) { + $H = $H | 0; + $b = $b | 0; + $lap0 = $lap0 | 0; + $lap1 = $lap1 | 0; + $lap2 = $lap2 | 0; + $x = $x | 0; + $y = $y | 0; + var $0 = 0, $102 = 0, $11 = 0, $111 = 0, $116 = 0, $117 = 0, $121 = 0, $123 = 0, $125 = 0, $126 = 0, $129 = 0, $132 = 0.0, $133 = 0.0, $134 = 0.0, $135 = 0.0, $141 = 0.0, $143 = 0.0, $146 = 0.0, $148 = 0.0, $153 = 0.0, $155 = 0.0, $157 = 0.0, $159 = 0.0, $16 = 0, $163 = 0.0, $165 = 0, $17 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $26 = 0, $33 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $53 = 0, $58 = 0, $59 = 0, $63 = 0, $72 = 0, $77 = 0, $78 = 0, $82 = 0, $92 = 0, $97 = 0, $98 = 0, $Dx = 0, $Dxx = 0, $Dxy = 0, $Dy = 0, $Dyy = 0, $x_mul_2 = 0, $y_mul_2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 28 | 0; + $x_mul_2 = sp + 24 | 0; + $y_mul_2 = sp + 20 | 0; + $Dx = sp + 16 | 0; + $Dy = sp + 12 | 0; + $Dxx = sp + 8 | 0; + $Dyy = sp + 4 | 0; + $Dxy = sp; + if (($x | 0) > 0) { + $2 = $x + 1 | 0; + $4 = HEAP32[$lap1 + 4 >> 2] | 0; + if ($2 >>> 0 < $4 >>> 0) { + $22 = $y + -1 | 0; + if (($y | 0) > 0) { + $24 = $y + 1 | 0; + $26 = HEAP32[$lap1 + 8 >> 2] | 0; + if ($24 >>> 0 < $26 >>> 0) { + if (((HEAP32[$lap0 + 4 >> 2] | 0) >>> 1 | 0) != ($4 | 0)) { + $53 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23842) | 0, 23408) | 0, 34302) | 0, 361) | 0, 34309) | 0, 23899) | 0; + $58 = __ZNKSt3__18ios_base6getlocEv($53 + (HEAP32[(HEAP32[$53 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $58; + $59 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $63 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$59 >> 2] | 0) + 28 >> 2] & 63]($59, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($53, $63) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($53) | 0; + _abort(); + } + if (($4 | 0) != (HEAP32[$lap2 + 4 >> 2] | 0)) { + $72 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23929) | 0, 23408) | 0, 34302) | 0, 362) | 0, 34309) | 0, 23899) | 0; + $77 = __ZNKSt3__18ios_base6getlocEv($72 + (HEAP32[(HEAP32[$72 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $77; + $78 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $82 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$78 >> 2] | 0) + 28 >> 2] & 63]($78, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($72, $82) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($72) | 0; + _abort(); + } + if (((HEAP32[$lap0 + 8 >> 2] | 0) >>> 1 | 0) != ($26 | 0)) { + $92 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23986) | 0, 23408) | 0, 34302) | 0, 363) | 0, 34309) | 0, 23899) | 0; + $97 = __ZNKSt3__18ios_base6getlocEv($92 + (HEAP32[(HEAP32[$92 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $97; + $98 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $102 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$98 >> 2] | 0) + 28 >> 2] & 63]($98, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($92, $102) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($92) | 0; + _abort(); + } + if (($26 | 0) == (HEAP32[$lap2 + 8 >> 2] | 0)) { + $123 = (__ZNK6vision5Image3getIfEEPKT_j($lap1, $y) | 0) + ($x << 2) | 0; + $125 = (__ZNK6vision5Image3getIfEEPKT_j($lap2, $22) | 0) + ($x << 2) | 0; + $126 = __ZNK6vision5Image3getIfEEPKT_j($lap2, $y) | 0; + $129 = (__ZNK6vision5Image3getIfEEPKT_j($lap2, $24) | 0) + ($x << 2) | 0; + __ZN6vision23bilinear_upsample_pointERfS0_ffi($x_mul_2, $y_mul_2, +($x | 0), +($y | 0), 1); + __ZN6vision26ComputeSubpixelDerivativesERfS0_S0_S0_S0_RKNS_5ImageEii($Dx, $Dy, $Dxx, $Dyy, $Dxy, $lap1, $x, $y); + $132 = +HEAPF32[$x_mul_2 >> 2]; + $133 = +HEAPF32[$y_mul_2 >> 2]; + $134 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap0, $132, $133); + $135 = +HEAPF32[$126 + ($x << 2) >> 2]; + $141 = $135 + ($134 - +HEAPF32[$123 >> 2] * 2.0); + $143 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap0, $132 + -2.0, $133); + $146 = $143 + +HEAPF32[$126 + ($2 << 2) >> 2]; + $148 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap0, $132 + 2.0, $133); + $153 = ($146 - ($148 + +HEAPF32[$126 + ($x + -1 << 2) >> 2])) * .25; + $155 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap0, $132, $133 + -2.0); + $157 = $155 + +HEAPF32[$129 >> 2]; + $159 = +__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($lap0, $132, $133 + 2.0); + $163 = ($157 - ($159 + +HEAPF32[$125 >> 2])) * .25; + HEAP32[$H >> 2] = HEAP32[$Dxx >> 2]; + $165 = HEAP32[$Dxy >> 2] | 0; + HEAP32[$H + 4 >> 2] = $165; + HEAPF32[$H + 8 >> 2] = $153; + HEAP32[$H + 12 >> 2] = $165; + HEAP32[$H + 16 >> 2] = HEAP32[$Dyy >> 2]; + HEAPF32[$H + 20 >> 2] = $163; + HEAPF32[$H + 24 >> 2] = $153; + HEAPF32[$H + 28 >> 2] = $163; + HEAPF32[$H + 32 >> 2] = $141; + HEAPF32[$b >> 2] = -+HEAPF32[$Dx >> 2]; + HEAPF32[$b + 4 >> 2] = -+HEAPF32[$Dy >> 2]; + HEAPF32[$b + 8 >> 2] = -(($135 - $134) * .5); + STACKTOP = sp; + return; + } else { + $111 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24045) | 0, 23408) | 0, 34302) | 0, 364) | 0, 34309) | 0, 23899) | 0; + $116 = __ZNKSt3__18ios_base6getlocEv($111 + (HEAP32[(HEAP32[$111 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $116; + $117 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $121 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$117 >> 2] | 0) + 28 >> 2] & 63]($117, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($111, $121) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($111) | 0; + _abort(); + } + } + } + $33 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23767) | 0, 23408) | 0, 34302) | 0, 360) | 0, 34309) | 0, 23826) | 0; + $38 = __ZNKSt3__18ios_base6getlocEv($33 + (HEAP32[(HEAP32[$33 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $38; + $39 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $43 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$39 >> 2] | 0) + 28 >> 2] & 63]($39, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($33, $43) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($33) | 0; + _abort(); + } + } + $11 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23693) | 0, 23408) | 0, 34302) | 0, 359) | 0, 34309) | 0, 23751) | 0; + $16 = __ZNKSt3__18ios_base6getlocEv($11 + (HEAP32[(HEAP32[$11 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $21 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$17 >> 2] | 0) + 28 >> 2] & 63]($17, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($11, $21) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($11) | 0; + _abort(); +} + +function _get_sof($cinfo, $is_prog, $is_arith) { + $cinfo = $cinfo | 0; + $is_prog = $is_prog | 0; + $is_arith = $is_arith | 0; + var $$0 = 0, $1 = 0, $104 = 0, $105 = 0, $106 = 0, $119 = 0, $124 = 0, $131 = 0, $133 = 0, $137 = 0, $139 = 0, $14 = 0, $142 = 0, $143 = 0, $15 = 0, $150 = 0, $151 = 0, $161 = 0, $162 = 0, $171 = 0, $172 = 0, $174 = 0, $176 = 0, $178 = 0, $18 = 0, $187 = 0, $188 = 0, $2 = 0, $206 = 0, $26 = 0, $27 = 0, $3 = 0, $30 = 0, $38 = 0, $39 = 0, $4 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $63 = 0, $64 = 0, $68 = 0, $76 = 0, $77 = 0, $80 = 0, $81 = 0, $89 = 0, $90 = 0, $94 = 0, $bytes_in_buffer$0 = 0, $bytes_in_buffer$1 = 0, $bytes_in_buffer$10 = 0, $bytes_in_buffer$11 = 0, $bytes_in_buffer$2 = 0, $bytes_in_buffer$3 = 0, $bytes_in_buffer$4 = 0, $bytes_in_buffer$5 = 0, $bytes_in_buffer$6 = 0, $bytes_in_buffer$7 = 0, $bytes_in_buffer$8 = 0, $bytes_in_buffer$8$lcssa = 0, $bytes_in_buffer$811 = 0, $bytes_in_buffer$815 = 0, $bytes_in_buffer$9 = 0, $ci$014 = 0, $compptr$013 = 0, $next_input_byte$0 = 0, $next_input_byte$1 = 0, $next_input_byte$10 = 0, $next_input_byte$11 = 0, $next_input_byte$2 = 0, $next_input_byte$3 = 0, $next_input_byte$4 = 0, $next_input_byte$5 = 0, $next_input_byte$6 = 0, $next_input_byte$7 = 0, $next_input_byte$8 = 0, $next_input_byte$8$lcssa = 0, $next_input_byte$812 = 0, $next_input_byte$816 = 0, $next_input_byte$9 = 0, label = 0; + $1 = HEAP32[$cinfo + 24 >> 2] | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $1 + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$cinfo + 220 >> 2] = $is_prog; + HEAP32[$cinfo + 224 >> 2] = $is_arith; + if (!$4) if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) $$0 = 0; else { + $bytes_in_buffer$0 = HEAP32[$3 >> 2] | 0; + $next_input_byte$0 = HEAP32[$1 >> 2] | 0; + label = 4; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; + $bytes_in_buffer$0 = $4; + $next_input_byte$0 = $2; + label = 4; + } + L4 : do if ((label | 0) == 4) { + $14 = $bytes_in_buffer$0 + -1 | 0; + $15 = $next_input_byte$0 + 1 | 0; + $18 = (HEAPU8[$next_input_byte$0 >> 0] | 0) << 8; + if (!$14) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$1 = HEAP32[$3 >> 2] | 0; + $next_input_byte$1 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$1 = $14; + $next_input_byte$1 = $15; + } + $26 = $bytes_in_buffer$1 + -1 | 0; + $27 = $next_input_byte$1 + 1 | 0; + $30 = HEAPU8[$next_input_byte$1 >> 0] | 0 | $18; + if (!$26) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$2 = HEAP32[$3 >> 2] | 0; + $next_input_byte$2 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$2 = $26; + $next_input_byte$2 = $27; + } + $38 = $bytes_in_buffer$2 + -1 | 0; + $39 = $next_input_byte$2 + 1 | 0; + HEAP32[$cinfo + 212 >> 2] = HEAPU8[$next_input_byte$2 >> 0]; + if (!$38) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$3 = HEAP32[$3 >> 2] | 0; + $next_input_byte$3 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$3 = $38; + $next_input_byte$3 = $39; + } + $50 = $bytes_in_buffer$3 + -1 | 0; + $51 = $next_input_byte$3 + 1 | 0; + $54 = (HEAPU8[$next_input_byte$3 >> 0] | 0) << 8; + $55 = $cinfo + 32 | 0; + HEAP32[$55 >> 2] = $54; + if (!$50) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $68 = HEAP32[$55 >> 2] | 0; + $bytes_in_buffer$4 = HEAP32[$3 >> 2] | 0; + $next_input_byte$4 = HEAP32[$1 >> 2] | 0; + } else { + $68 = $54; + $bytes_in_buffer$4 = $50; + $next_input_byte$4 = $51; + } + $63 = $bytes_in_buffer$4 + -1 | 0; + $64 = $next_input_byte$4 + 1 | 0; + HEAP32[$55 >> 2] = $68 + (HEAPU8[$next_input_byte$4 >> 0] | 0); + if (!$63) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$5 = HEAP32[$3 >> 2] | 0; + $next_input_byte$5 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$5 = $63; + $next_input_byte$5 = $64; + } + $76 = $bytes_in_buffer$5 + -1 | 0; + $77 = $next_input_byte$5 + 1 | 0; + $80 = (HEAPU8[$next_input_byte$5 >> 0] | 0) << 8; + $81 = $cinfo + 28 | 0; + HEAP32[$81 >> 2] = $80; + if (!$76) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $94 = HEAP32[$81 >> 2] | 0; + $bytes_in_buffer$6 = HEAP32[$3 >> 2] | 0; + $next_input_byte$6 = HEAP32[$1 >> 2] | 0; + } else { + $94 = $80; + $bytes_in_buffer$6 = $76; + $next_input_byte$6 = $77; + } + $89 = $bytes_in_buffer$6 + -1 | 0; + $90 = $next_input_byte$6 + 1 | 0; + HEAP32[$81 >> 2] = $94 + (HEAPU8[$next_input_byte$6 >> 0] | 0); + if (!$89) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $bytes_in_buffer$7 = HEAP32[$3 >> 2] | 0; + $next_input_byte$7 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$7 = $89; + $next_input_byte$7 = $90; + } + $104 = $cinfo + 36 | 0; + HEAP32[$104 >> 2] = HEAPU8[$next_input_byte$7 >> 0]; + $105 = $30 + -8 | 0; + $106 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$106 + 24 >> 2] = HEAP32[$cinfo + 416 >> 2]; + HEAP32[$106 + 28 >> 2] = HEAP32[$81 >> 2]; + HEAP32[$106 + 32 >> 2] = HEAP32[$55 >> 2]; + HEAP32[$106 + 36 >> 2] = HEAP32[$104 >> 2]; + HEAP32[$106 + 20 >> 2] = 100; + FUNCTION_TABLE_vii[HEAP32[$106 + 4 >> 2] & 63]($cinfo, 1); + $119 = $cinfo + 440 | 0; + if (HEAP32[(HEAP32[$119 >> 2] | 0) + 16 >> 2] | 0) { + $124 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$124 + 20 >> 2] = 58; + FUNCTION_TABLE_vi[HEAP32[$124 >> 2] & 255]($cinfo); + } + if (!(HEAP32[$55 >> 2] | 0)) label = 30; else if (!(HEAP32[$81 >> 2] | 0)) label = 30; else { + $131 = HEAP32[$104 >> 2] | 0; + if (($131 | 0) < 1) label = 30; else $137 = $131; + } + if ((label | 0) == 30) { + $133 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$133 + 20 >> 2] = 32; + FUNCTION_TABLE_vi[HEAP32[$133 >> 2] & 255]($cinfo); + $137 = HEAP32[$104 >> 2] | 0; + } + if (($105 | 0) != ($137 * 3 | 0)) { + $139 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$139 + 20 >> 2] = 11; + FUNCTION_TABLE_vi[HEAP32[$139 >> 2] & 255]($cinfo); + } + $142 = $cinfo + 216 | 0; + $143 = HEAP32[$142 >> 2] | 0; + if (!$143) { + $150 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, (HEAP32[$104 >> 2] | 0) * 84 | 0) | 0; + HEAP32[$142 >> 2] = $150; + $206 = $150; + } else $206 = $143; + $151 = $1 + 12 | 0; + $bytes_in_buffer$811 = $bytes_in_buffer$7 + -1 | 0; + $next_input_byte$812 = $next_input_byte$7 + 1 | 0; + if ((HEAP32[$104 >> 2] | 0) > 0) { + $bytes_in_buffer$815 = $bytes_in_buffer$811; + $ci$014 = 0; + $compptr$013 = $206; + $next_input_byte$816 = $next_input_byte$812; while (1) { - $237 = HEAP32[$wk$443 >> 2] | 0; - if (($237 | 0) == ($i$341 | 0)) { - $243 = $j$142; - $j$2 = $j$142 + 1 | 0; + HEAP32[$compptr$013 + 4 >> 2] = $ci$014; + if (!$bytes_in_buffer$815) { + if (!(FUNCTION_TABLE_ii[HEAP32[$151 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L4; + } + $bytes_in_buffer$9 = HEAP32[$3 >> 2] | 0; + $next_input_byte$9 = HEAP32[$1 >> 2] | 0; } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $243; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + $bytes_in_buffer$9 = $bytes_in_buffer$815; + $next_input_byte$9 = $next_input_byte$816; + } + $161 = $bytes_in_buffer$9 + -1 | 0; + $162 = $next_input_byte$9 + 1 | 0; + HEAP32[$compptr$013 >> 2] = HEAPU8[$next_input_byte$9 >> 0]; + if (!$161) { + if (!(FUNCTION_TABLE_ii[HEAP32[$151 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L4; + } + $bytes_in_buffer$10 = HEAP32[$3 >> 2] | 0; + $next_input_byte$10 = HEAP32[$1 >> 2] | 0; } else { - $j$1$lcssa = $j$2; + $bytes_in_buffer$10 = $161; + $next_input_byte$10 = $162; + } + $171 = $bytes_in_buffer$10 + -1 | 0; + $172 = $next_input_byte$10 + 1 | 0; + $174 = HEAPU8[$next_input_byte$10 >> 0] | 0; + $176 = $compptr$013 + 8 | 0; + HEAP32[$176 >> 2] = $174 >>> 4; + $178 = $compptr$013 + 12 | 0; + HEAP32[$178 >> 2] = $174 & 15; + if (!$171) { + if (!(FUNCTION_TABLE_ii[HEAP32[$151 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L4; + } + $bytes_in_buffer$11 = HEAP32[$3 >> 2] | 0; + $next_input_byte$11 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$11 = $171; + $next_input_byte$11 = $172; + } + $187 = $compptr$013 + 16 | 0; + HEAP32[$187 >> 2] = HEAPU8[$next_input_byte$11 >> 0]; + $188 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$188 + 24 >> 2] = HEAP32[$compptr$013 >> 2]; + HEAP32[$188 + 28 >> 2] = HEAP32[$176 >> 2]; + HEAP32[$188 + 32 >> 2] = HEAP32[$178 >> 2]; + HEAP32[$188 + 36 >> 2] = HEAP32[$187 >> 2]; + HEAP32[$188 + 20 >> 2] = 101; + FUNCTION_TABLE_vii[HEAP32[$188 + 4 >> 2] & 63]($cinfo, 1); + $ci$014 = $ci$014 + 1 | 0; + $bytes_in_buffer$8 = $bytes_in_buffer$11 + -1 | 0; + $next_input_byte$8 = $next_input_byte$11 + 1 | 0; + if (($ci$014 | 0) >= (HEAP32[$104 >> 2] | 0)) { + $bytes_in_buffer$8$lcssa = $bytes_in_buffer$8; + $next_input_byte$8$lcssa = $next_input_byte$8; break; + } else { + $bytes_in_buffer$815 = $bytes_in_buffer$8; + $compptr$013 = $compptr$013 + 84 | 0; + $next_input_byte$816 = $next_input_byte$8; } } + } else { + $bytes_in_buffer$8$lcssa = $bytes_in_buffer$811; + $next_input_byte$8$lcssa = $next_input_byte$812; } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $255 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$537 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $322 = $labelInfo + 12 + ($i$636 << 2) | 0; - $325 = $i$636 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } - STACKTOP = sp; + HEAP32[(HEAP32[$119 >> 2] | 0) + 16 >> 2] = 1; + HEAP32[$1 >> 2] = $next_input_byte$8$lcssa; + HEAP32[$3 >> 2] = $bytes_in_buffer$8$lcssa; + $$0 = 1; + } while (0); return $$0 | 0; } -function _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision18binomial_4th_orderEPfS0_PKfjj($dst, $tmp, $src, $width, $height) { + $dst = $dst | 0; + $tmp = $tmp | 0; + $src = $src | 0; + $width = $width | 0; + $height = $height | 0; + var $$sum12 = 0, $$sum2 = 0, $$sum3 = 0, $$sum5 = 0, $$sum7 = 0, $$sum8 = 0, $$sum9 = 0, $0 = 0, $100 = 0.0, $111 = 0, $112 = 0, $113 = 0, $114 = 0.0, $12 = 0, $13 = 0, $133 = 0.0, $149 = 0, $17 = 0, $178 = 0, $188 = 0.0, $203 = 0, $210 = 0.0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0.0, $43 = 0, $49 = 0, $55 = 0.0, $64 = 0, $65 = 0, $7 = 0, $85 = 0, $88 = 0, $90 = 0, $91 = 0.0, $col$085 = 0, $col1$079 = 0, $col2$071 = 0, $col4$058 = 0, $col5$047 = 0, $col6$040 = 0, $dst_ptr$075 = 0, $dst_ptr$166 = 0, $dst_ptr$252 = 0, $dst_ptr$342 = 0, $dst_ptr$436 = 0, $exitcond2851 = 0, $exitcond3283 = 0, $p$168 = 0, $p$255 = 0, $p$345 = 0, $p$439 = 0, $pm1$254 = 0, $pm1$344 = 0, $pm1$438 = 0, $pm2$076 = 0, $pm2$167 = 0, $pm2$253 = 0, $pm2$343 = 0, $pm2$437 = 0, $pp1$077 = 0, $pp1$169 = 0, $pp1$256 = 0, $pp1$346 = 0, $pp2$078 = 0, $pp2$170 = 0, $pp2$257 = 0, $row$090 = 0, $row3$063 = 0, $scevgep$sum = 0, $tmp_ptr$091 = 0, $tmp_ptr$184 = 0, sp = 0, $col$085$looptemp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $0 = sp; + if ($width >>> 0 <= 4) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25839) | 0, 25873) | 0, 34302) | 0, 168) | 0, 34309) | 0, 26002) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + if ($height >>> 0 <= 4) { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26021) | 0, 25873) | 0, 34302) | 0, 169) | 0, 34309) | 0, 26002) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); + } + $35 = $width + -1 | 0; + $36 = $width + -2 | 0; + $37 = $width + -3 | 0; + $38 = $width + -4 | 0; + $scevgep$sum = $width + -1 | 0; + if ($height) { + $exitcond3283 = ($36 | 0) == 2; + $row$090 = 0; + $tmp_ptr$091 = $tmp; while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } + $39 = Math_imul($row$090, $width) | 0; + $40 = $src + ($39 << 2) | 0; + $41 = +HEAPF32[$40 >> 2]; + $43 = $src + ($39 + 1 << 2) | 0; + $$sum12 = $39 + 2 | 0; + $49 = $src + ($$sum12 << 2) | 0; + HEAPF32[$tmp_ptr$091 >> 2] = +HEAPF32[$49 >> 2] + ($41 + ($41 * 6.0 + ($41 + +HEAPF32[$43 >> 2]) * 4.0)); + $55 = +HEAPF32[$40 >> 2]; + HEAPF32[$tmp_ptr$091 + 4 >> 2] = +HEAPF32[$src + ($39 + 3 << 2) >> 2] + ($55 + (+HEAPF32[$43 >> 2] * 6.0 + ($55 + +HEAPF32[$49 >> 2]) * 4.0)); + $64 = $39 + -1 | 0; + $65 = $39 + -2 | 0; + if (!$exitcond3283) { + $col$085 = 2; + $tmp_ptr$184 = $tmp_ptr$091 + 8 | 0; + while (1) { + $col$085$looptemp = $col$085; + $col$085 = $col$085 + 1 | 0; + HEAPF32[$tmp_ptr$184 >> 2] = +HEAPF32[$src + ($$sum12 + $col$085$looptemp << 2) >> 2] + (+HEAPF32[$src + ($65 + $col$085$looptemp << 2) >> 2] + (+HEAPF32[$src + ($col$085$looptemp + $39 << 2) >> 2] * 6.0 + (+HEAPF32[$src + ($64 + $col$085$looptemp << 2) >> 2] + +HEAPF32[$src + ($col$085 + $39 << 2) >> 2]) * 4.0)); + if (($col$085 | 0) == ($36 | 0)) break; else $tmp_ptr$184 = $tmp_ptr$184 + 4 | 0; + } + } + $85 = $src + ($39 + $36 << 2) | 0; + $88 = $src + ($37 + $39 << 2) | 0; + $90 = $src + ($35 + $39 << 2) | 0; + $91 = +HEAPF32[$90 >> 2]; + HEAPF32[$tmp_ptr$091 + ($36 << 2) >> 2] = $91 + (+HEAPF32[$src + ($38 + $39 << 2) >> 2] + (+HEAPF32[$85 >> 2] * 6.0 + (+HEAPF32[$88 >> 2] + $91) * 4.0)); + $100 = +HEAPF32[$90 >> 2]; + HEAPF32[$tmp_ptr$091 + ($scevgep$sum << 2) >> 2] = $100 + (+HEAPF32[$88 >> 2] + ($100 * 6.0 + ($100 + +HEAPF32[$85 >> 2]) * 4.0)); + $row$090 = $row$090 + 1 | 0; + if (($row$090 | 0) == ($height | 0)) break; else $tmp_ptr$091 = $tmp_ptr$091 + ($width << 2) | 0; } } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; + $111 = $height + -2 | 0; + $112 = $tmp + ($width << 2) | 0; + $113 = $tmp + ($width << 1 << 2) | 0; + if ($width) { + $col1$079 = 0; + $dst_ptr$075 = $dst; + $pm2$076 = $tmp; + $pp1$077 = $112; + $pp2$078 = $113; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $114 = +HEAPF32[$pm2$076 >> 2]; + HEAPF32[$dst_ptr$075 >> 2] = (+HEAPF32[$pp2$078 >> 2] + ($114 + ($114 * 6.0 + ($114 + +HEAPF32[$pp1$077 >> 2]) * 4.0))) * .00390625; + $col1$079 = $col1$079 + 1 | 0; + if (($col1$079 | 0) == ($width | 0)) break; else { + $dst_ptr$075 = $dst_ptr$075 + 4 | 0; + $pm2$076 = $pm2$076 + 4 | 0; + $pp1$077 = $pp1$077 + 4 | 0; + $pp2$078 = $pp2$078 + 4 | 0; + } + } + if ($width) { + $col2$071 = 0; + $dst_ptr$166 = $dst + ($width << 2) | 0; + $p$168 = $112; + $pm2$167 = $tmp; + $pp1$169 = $113; + $pp2$170 = $tmp + ($width * 3 << 2) | 0; + while (1) { + $133 = +HEAPF32[$pm2$167 >> 2]; + HEAPF32[$dst_ptr$166 >> 2] = (+HEAPF32[$pp2$170 >> 2] + ($133 + (+HEAPF32[$p$168 >> 2] * 6.0 + ($133 + +HEAPF32[$pp1$169 >> 2]) * 4.0))) * .00390625; + $col2$071 = $col2$071 + 1 | 0; + if (($col2$071 | 0) == ($width | 0)) break; else { + $dst_ptr$166 = $dst_ptr$166 + 4 | 0; + $p$168 = $p$168 + 4 | 0; + $pm2$167 = $pm2$167 + 4 | 0; + $pp1$169 = $pp1$169 + 4 | 0; + $pp2$170 = $pp2$170 + 4 | 0; + } } } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 * 3 | 0) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + if (($111 | 0) != 2) { + $exitcond2851 = ($width | 0) == 0; + $row3$063 = 2; + do { + $149 = Math_imul($row3$063 + -2 | 0, $width) | 0; + $$sum7 = $149 + $width | 0; + $$sum8 = $$sum7 + $width | 0; + $$sum9 = $$sum8 + $width | 0; + if (!$exitcond2851) { + $col4$058 = 0; + $dst_ptr$252 = $dst + ((Math_imul($row3$063, $width) | 0) << 2) | 0; + $p$255 = $tmp + ($$sum8 << 2) | 0; + $pm1$254 = $tmp + ($$sum7 << 2) | 0; + $pm2$253 = $tmp + ($149 << 2) | 0; + $pp1$256 = $tmp + ($$sum9 << 2) | 0; + $pp2$257 = $tmp + ($$sum9 + $width << 2) | 0; while (1) { - do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($40 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $40; - $43 = ($40 << 16 >> 16) * 7 | 0; - $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; - $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; - $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $65 = $63 << 16 >> 16 > 0; - if ($59 << 16 >> 16 <= 0) { - if ($65) { - HEAP16[$pnt2$367 >> 1] = $63; - $165 = $64 * 7 | 0; - $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; - $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; - $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; - $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; - if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + HEAPF32[$dst_ptr$252 >> 2] = (+HEAPF32[$pp2$257 >> 2] + (+HEAPF32[$pm2$253 >> 2] + (+HEAPF32[$p$255 >> 2] * 6.0 + (+HEAPF32[$pm1$254 >> 2] + +HEAPF32[$pp1$256 >> 2]) * 4.0))) * .00390625; + $col4$058 = $col4$058 + 1 | 0; + if (($col4$058 | 0) == ($width | 0)) break; else { + $dst_ptr$252 = $dst_ptr$252 + 4 | 0; + $p$255 = $p$255 + 4 | 0; + $pm1$254 = $pm1$254 + 4 | 0; + $pm2$253 = $pm2$253 + 4 | 0; + $pp1$256 = $pp1$256 + 4 | 0; + $pp2$257 = $pp2$257 + 4 | 0; + } + } + } + $row3$063 = $row3$063 + 1 | 0; + } while (($row3$063 | 0) != ($111 | 0)); + } + $178 = Math_imul($height + -4 | 0, $width) | 0; + $$sum2 = $178 + $width | 0; + $$sum3 = $$sum2 + $width | 0; + if ($width) { + $col5$047 = 0; + $dst_ptr$342 = $dst + ((Math_imul($111, $width) | 0) << 2) | 0; + $p$345 = $tmp + ($$sum3 << 2) | 0; + $pm1$344 = $tmp + ($$sum2 << 2) | 0; + $pm2$343 = $tmp + ($178 << 2) | 0; + $pp1$346 = $tmp + ($$sum3 + $width << 2) | 0; + while (1) { + $188 = +HEAPF32[$pp1$346 >> 2]; + HEAPF32[$dst_ptr$342 >> 2] = ($188 + (+HEAPF32[$pm2$343 >> 2] + (+HEAPF32[$p$345 >> 2] * 6.0 + (+HEAPF32[$pm1$344 >> 2] + $188) * 4.0))) * .00390625; + $col5$047 = $col5$047 + 1 | 0; + if (($col5$047 | 0) == ($width | 0)) break; else { + $dst_ptr$342 = $dst_ptr$342 + 4 | 0; + $p$345 = $p$345 + 4 | 0; + $pm1$344 = $pm1$344 + 4 | 0; + $pm2$343 = $pm2$343 + 4 | 0; + $pp1$346 = $pp1$346 + 4 | 0; + } + } + } + $203 = Math_imul($height + -3 | 0, $width) | 0; + $$sum5 = $203 + $width | 0; + if ($width) { + $col6$040 = 0; + $dst_ptr$436 = $dst + ((Math_imul($height + -1 | 0, $width) | 0) << 2) | 0; + $p$439 = $tmp + ($$sum5 + $width << 2) | 0; + $pm1$438 = $tmp + ($$sum5 << 2) | 0; + $pm2$437 = $tmp + ($203 << 2) | 0; + while (1) { + $210 = +HEAPF32[$p$439 >> 2]; + HEAPF32[$dst_ptr$436 >> 2] = ($210 + (+HEAPF32[$pm2$437 >> 2] + ($210 * 6.0 + (+HEAPF32[$pm1$438 >> 2] + $210) * 4.0))) * .00390625; + $col6$040 = $col6$040 + 1 | 0; + if (($col6$040 | 0) == ($width | 0)) break; else { + $dst_ptr$436 = $dst_ptr$436 + 4 | 0; + $p$439 = $p$439 + 4 | 0; + $pm1$438 = $pm1$438 + 4 | 0; + $pm2$437 = $pm2$437 + 4 | 0; + } + } + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $__b, $__e, $__iob, $__err, $__tm, $__fmtb, $__fmte) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + $__fmtb = $__fmtb | 0; + $__fmte = $__fmte | 0; + var $$0$i$i = 0, $$0$i$i26 = 0, $$0$ph$be = 0, $$0$ph86 = 0, $$0$pn = 0, $$2 = 0, $$2$lcssa = 0, $$byval_copy = 0, $$byval_copy1 = 0, $$lcssa = 0, $$lcssa94 = 0, $$lcssa95 = 0, $$pre$i$i$i17 = 0, $$pre$i$i$i8 = 0, $$pre$i2$i$i21 = 0, $$pre$i2$i$i2139 = 0, $$pre$i2$i$i2140 = 0, $0 = 0, $1 = 0, $10 = 0, $107 = 0, $108 = 0, $109 = 0, $125 = 0, $132 = 0, $133 = 0, $134 = 0, $147 = 0, $154 = 0, $174 = 0, $175 = 0, $176 = 0, $190 = 0, $191 = 0, $192 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $25 = 0, $3 = 0, $4 = 0, $42 = 0, $48 = 0, $49 = 0, $5 = 0, $58 = 0, $59 = 0, $60 = 0, $61 = 0, $63 = 0, $66 = 0, $67 = 0, $69 = 0, $7 = 0, $75 = 0, $9 = 0, $92 = 0, $93 = 0, $95 = 0, $__cmd$0 = 0, $__opt$0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 16 | 0; + $$byval_copy = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + $2 = sp; + $3 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $3; + $4 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($3) | 0; + HEAP32[$__err >> 2] = 0; + $5 = $4 + 8 | 0; + $7 = HEAP32[$__b >> 2] | 0; + L1 : do if (($__fmtb | 0) == ($__fmte | 0)) $$pre$i$i$i8 = $7; else { + $$0$ph86 = $__fmtb; + $9 = $7; + L2 : while (1) { + $10 = $9; + if (!$9) { + $22 = 0; + $59 = $10; + } else if ((HEAP32[$9 + 12 >> 2] | 0) == (HEAP32[$9 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$9 >> 2] | 0) + 36 >> 2] & 127]($9) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $22 = 0; + $59 = 0; + } else { + $22 = $9; + $59 = $10; + } else { + $22 = $9; + $59 = $10; + } + $21 = ($22 | 0) == 0; + $23 = HEAP32[$__e >> 2] | 0; + $25 = $23; + do if (!$23) { + $190 = $25; + label = 11; + } else { + if ((HEAP32[$23 + 12 >> 2] | 0) == (HEAP32[$23 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$23 >> 2] | 0) + 36 >> 2] & 127]($23) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $190 = 0; + label = 11; + break; + } + if ($21) { + $191 = $23; + $60 = $25; + } else { + $$lcssa = $22; + label = 12; + break L2; + } + } while (0); + if ((label | 0) == 11) { + label = 0; + if ($21) { + $$lcssa = $22; + label = 12; + break; + } else { + $191 = 0; + $60 = $190; + } + } + L18 : do if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 36 >> 2] & 63]($4, HEAP8[$$0$ph86 >> 0] | 0, 0) | 0) << 24 >> 24 == 37) { + $42 = $$0$ph86 + 1 | 0; + if (($42 | 0) == ($__fmte | 0)) { + $$lcssa94 = $22; + label = 15; + break L2; + } + $48 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 36 >> 2] & 63]($4, HEAP8[$42 >> 0] | 0, 0) | 0; + switch ($48 << 24 >> 24) { + case 48: + case 69: + { + $49 = $$0$ph86 + 2 | 0; + if (($49 | 0) == ($__fmte | 0)) { + $$lcssa95 = $22; + label = 18; + break L2; + } + $63 = $42; + $__cmd$0 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 36 >> 2] & 63]($4, HEAP8[$49 >> 0] | 0, 0) | 0; + $__opt$0 = $48; + break; + } + default: + { + $63 = $$0$ph86; + $__cmd$0 = $48; + $__opt$0 = 0; + } + } + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + 36 >> 2] | 0; + HEAP32[$1 >> 2] = $59; + HEAP32[$2 >> 2] = $60; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$2 >> 2]; + $61 = FUNCTION_TABLE_iiiiiiiii[$58 & 15]($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, $__cmd$0, $__opt$0) | 0; + HEAP32[$__b >> 2] = $61; + $$0$ph$be = $63 + 2 | 0; + } else { + $67 = HEAP8[$$0$ph86 >> 0] | 0; + if ($67 << 24 >> 24 > -1) { + $69 = HEAP32[$5 >> 2] | 0; + if (HEAP16[$69 + ($67 << 24 >> 24 << 1) >> 1] & 8192) { + $$0$pn = $$0$ph86; + while (1) { + $$2 = $$0$pn + 1 | 0; + if (($$2 | 0) == ($__fmte | 0)) { + $$2$lcssa = $__fmte; break; } - $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($185 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $185; - $188 = ($185 << 16 >> 16) * 7 | 0; - $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; - $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; - $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; - $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; - if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$202 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $205 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $205; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; - $210 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $205; + $75 = HEAP8[$$2 >> 0] | 0; + if ($75 << 24 >> 24 <= -1) { + $$2$lcssa = $$2; break; } + if (!(HEAP16[$69 + ($75 << 24 >> 24 << 1) >> 1] & 8192)) { + $$2$lcssa = $$2; + break; + } else $$0$pn = $$2; } - if ($65) { - $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - if (($68 | 0) > ($71 | 0)) { - HEAP16[$pnt2$367 >> 1] = $71; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $88 = $71; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $88 = $71; + $$pre$i$i$i17 = $22; + $$pre$i2$i$i21 = $191; + $95 = $191; + while (1) { + if (!$$pre$i$i$i17) $93 = 0; else if ((HEAP32[$$pre$i$i$i17 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i17 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i17 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i17) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $93 = 0; + } else $93 = $$pre$i$i$i17; else $93 = $$pre$i$i$i17; + $92 = ($93 | 0) == 0; + do if (!$95) { + $$pre$i2$i$i2140 = $$pre$i2$i$i21; + label = 37; } else { - HEAP16[$pnt2$367 >> 1] = $68; - if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $88 = $68; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $88 = $68; - } - $90 = ($88 << 16 >> 16) * 7 | 0; - $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; - $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; - $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($106 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $59; - $146 = $60 * 7 | 0; - $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; - $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; - $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; - $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; - if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($111 | 0) > ($114 | 0)) { - HEAP16[$pnt2$367 >> 1] = $114; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $131 = $114; - break; - } else $wk$249 = $wk$249 + 4 | 0; + if ((HEAP32[$95 + 12 >> 2] | 0) != (HEAP32[$95 + 16 >> 2] | 0)) if ($92) { + $$pre$i2$i$i2139 = $$pre$i2$i$i21; + $192 = $95; + break; + } else { + $$0$ph$be = $$2$lcssa; + break L18; } - } else $131 = $114; - } else { - HEAP16[$pnt2$367 >> 1] = $111; - if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $131 = $111; - break; - } else $wk$346 = $wk$346 + 4 | 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$95 >> 2] | 0) + 36 >> 2] & 127]($95) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i2140 = 0; + label = 37; + break; + } else if ($92 ^ ($$pre$i2$i$i21 | 0) == 0) { + $$pre$i2$i$i2139 = $$pre$i2$i$i21; + $192 = $$pre$i2$i$i21; + break; + } else { + $$0$ph$be = $$2$lcssa; + break L18; } - } else $131 = $111; + } while (0); + if ((label | 0) == 37) { + label = 0; + if ($92) { + $$0$ph$be = $$2$lcssa; + break L18; + } else { + $$pre$i2$i$i2139 = $$pre$i2$i$i2140; + $192 = 0; + } + } + $107 = $93 + 12 | 0; + $108 = HEAP32[$107 >> 2] | 0; + $109 = $93 + 16 | 0; + if (($108 | 0) == (HEAP32[$109 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$93 >> 2] | 0) + 36 >> 2] & 127]($93) | 0; else $$0$i$i = HEAPU8[$108 >> 0] | 0; + if (($$0$i$i & 255) << 24 >> 24 <= -1) { + $$0$ph$be = $$2$lcssa; + break L18; + } + if (!(HEAP16[(HEAP32[$5 >> 2] | 0) + ($$0$i$i << 24 >> 24 << 1) >> 1] & 8192)) { + $$0$ph$be = $$2$lcssa; + break L18; + } + $125 = HEAP32[$107 >> 2] | 0; + if (($125 | 0) == (HEAP32[$109 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$93 >> 2] | 0) + 40 >> 2] & 127]($93) | 0; + $$pre$i$i$i17 = $93; + $$pre$i2$i$i21 = $$pre$i2$i$i2139; + $95 = $192; + continue; + } else { + HEAP32[$107 >> 2] = $125 + 1; + $$pre$i$i$i17 = $93; + $$pre$i2$i$i21 = $$pre$i2$i$i2139; + $95 = $192; + continue; + } } - $133 = ($131 << 16 >> 16) * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $225 = $pnt$168 + 3 | 0; - $226 = $pnt2$367 + 2 | 0; - $227 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $227; - $pnt$1$lcssa = $225; - $pnt2$3$lcssa = $226; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $227; - $pnt$168 = $225; - $pnt2$367 = $226; - $wk_max$159 = $wk_max$2; } } + $132 = $22 + 12 | 0; + $133 = HEAP32[$132 >> 2] | 0; + $134 = $22 + 16 | 0; + if (($133 | 0) == (HEAP32[$134 >> 2] | 0)) $$0$i$i26 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$22 >> 2] | 0) + 36 >> 2] & 127]($22) | 0; else $$0$i$i26 = HEAPU8[$133 >> 0] | 0; + $147 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$4 >> 2] | 0) + 12 >> 2] & 63]($4, $$0$i$i26 & 255) | 0; + if ($147 << 24 >> 24 != (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$4 >> 2] | 0) + 12 >> 2] & 63]($4, HEAP8[$$0$ph86 >> 0] | 0) | 0) << 24 >> 24) { + label = 55; + break L2; + } + $154 = HEAP32[$132 >> 2] | 0; + if (($154 | 0) == (HEAP32[$134 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$22 >> 2] | 0) + 40 >> 2] & 127]($22) | 0; else HEAP32[$132 >> 2] = $154 + 1; + $$0$ph$be = $$0$ph86 + 1 | 0; + } while (0); + $66 = HEAP32[$__b >> 2] | 0; + if (($$0$ph$be | 0) != ($__fmte | 0) & (HEAP32[$__err >> 2] | 0) == 0) { + $$0$ph86 = $$0$ph$be; + $9 = $66; + } else { + $$pre$i$i$i8 = $66; + break L1; + } + } + if ((label | 0) == 12) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i8 = $$lcssa; + break; + } else if ((label | 0) == 15) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i8 = $$lcssa94; + break; + } else if ((label | 0) == 18) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i8 = $$lcssa95; + break; + } else if ((label | 0) == 55) { + HEAP32[$__err >> 2] = 4; + $$pre$i$i$i8 = HEAP32[$__b >> 2] | 0; + break; + } + } while (0); + if (!$$pre$i$i$i8) $175 = 0; else if ((HEAP32[$$pre$i$i$i8 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i8 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i8 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i8) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $175 = 0; + } else $175 = $$pre$i$i$i8; else $175 = $$pre$i$i$i8; + $174 = ($175 | 0) == 0; + $176 = HEAP32[$__e >> 2] | 0; + do if (!$176) label = 65; else { + if ((HEAP32[$176 + 12 >> 2] | 0) == (HEAP32[$176 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$176 >> 2] | 0) + 36 >> 2] & 127]($176) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 65; + break; + } + if (!$174) label = 66; + } while (0); + if ((label | 0) == 65) if ($174) label = 66; + if ((label | 0) == 66) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + STACKTOP = sp; + return $175 | 0; +} + +function __ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $__e, $__kb, $__ke, $__ct, $__err, $__case_sensitive) { + $__b = $__b | 0; + $__e = $__e | 0; + $__kb = $__kb | 0; + $__ke = $__ke | 0; + $__ct = $__ct | 0; + $__err = $__err | 0; + $__case_sensitive = $__case_sensitive | 0; + var $$0$i$i = 0, $$021 = 0, $$033 = 0, $$lcssa = 0, $$lcssa59 = 0, $$pre$i2$i$i = 0, $$pre$i2$i$i$lcssa = 0, $10 = 0, $102 = 0, $103 = 0, $104 = 0, $116 = 0, $124 = 0, $126 = 0, $140 = 0, $141 = 0, $162 = 0, $18 = 0, $24 = 0, $3 = 0, $36 = 0, $37 = 0, $38 = 0, $5 = 0, $50 = 0, $53 = 0, $55 = 0, $65 = 0, $70 = 0, $8 = 0, $80 = 0, $81 = 0, $87 = 0, $9 = 0, $95 = 0, $__c$0 = 0, $__consume$0$off0$lcssa = 0, $__consume$0$off038 = 0, $__consume$1$off0 = 0, $__indx$0 = 0, $__kc$0 = 0, $__ky$052 = 0, $__ky1$039 = 0, $__ky2$046 = 0, $__n_does_match$0$lcssa = 0, $__n_does_match$050 = 0, $__n_does_match$1 = 0, $__n_does_match$2 = 0, $__n_does_match$3$lcssa = 0, $__n_does_match$335 = 0, $__n_does_match$4 = 0, $__n_does_match$544 = 0, $__n_does_match$6 = 0, $__n_might_match$0$lcssa = 0, $__n_might_match$049 = 0, $__n_might_match$1 = 0, $__n_might_match$2 = 0, $__n_might_match$3$lcssa = 0, $__n_might_match$334 = 0, $__n_might_match$4 = 0, $__st$051 = 0, $__st$136 = 0, $__st$245 = 0, $__st$332 = 0, $__statbuf = 0, $__status$0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__statbuf = sp; + $3 = ($__ke - $__kb | 0) / 12 | 0; + if ($3 >>> 0 > 100) { + $5 = _malloc($3) | 0; + if (!$5) __ZSt17__throw_bad_allocv(); else { + $162 = $5; + $__status$0 = $5; + } + } else { + $162 = 0; + $__status$0 = $__statbuf; + } + if (($__kb | 0) == ($__ke | 0)) { + $__n_does_match$0$lcssa = 0; + $__n_might_match$0$lcssa = $3; + } else { + $__ky$052 = $__kb; + $__n_does_match$050 = 0; + $__n_might_match$049 = $3; + $__st$051 = $__status$0; + while (1) { + $10 = HEAP8[$__ky$052 >> 0] | 0; + if (!($10 & 1)) $18 = ($10 & 255) >>> 1; else $18 = HEAP32[$__ky$052 + 4 >> 2] | 0; + if (!$18) { + HEAP8[$__st$051 >> 0] = 2; + $__n_does_match$1 = $__n_does_match$050 + 1 | 0; + $__n_might_match$1 = $__n_might_match$049 + -1 | 0; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + HEAP8[$__st$051 >> 0] = 1; + $__n_does_match$1 = $__n_does_match$050; + $__n_might_match$1 = $__n_might_match$049; + } + $__ky$052 = $__ky$052 + 12 | 0; + if (($__ky$052 | 0) == ($__ke | 0)) { + $__n_does_match$0$lcssa = $__n_does_match$1; + $__n_might_match$0$lcssa = $__n_might_match$1; + break; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 6 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $__n_does_match$050 = $__n_does_match$1; + $__n_might_match$049 = $__n_might_match$1; + $__st$051 = $__st$051 + 1 | 0; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; + } + $8 = ($__kb | 0) == ($__ke | 0); + $9 = ($__kb | 0) == ($__ke | 0); + $__indx$0 = 0; + $__n_does_match$2 = $__n_does_match$0$lcssa; + $__n_might_match$2 = $__n_might_match$0$lcssa; + L17 : while (1) { + $24 = HEAP32[$__b >> 2] | 0; + do if (!$24) $37 = 0; else if ((HEAP32[$24 + 12 >> 2] | 0) == (HEAP32[$24 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$24 >> 2] | 0) + 36 >> 2] & 127]($24) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $37 = 0; + break; + } else { + $37 = HEAP32[$__b >> 2] | 0; + break; + } else $37 = $24; while (0); + $36 = ($37 | 0) == 0; + $38 = HEAP32[$__e >> 2] | 0; + if (!$38) $$pre$i2$i$i = 0; else if ((HEAP32[$38 + 12 >> 2] | 0) == (HEAP32[$38 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$38 >> 2] | 0) + 36 >> 2] & 127]($38) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i = 0; + } else $$pre$i2$i$i = $38; else $$pre$i2$i$i = $38; + $50 = ($$pre$i2$i$i | 0) == 0; + $53 = HEAP32[$__b >> 2] | 0; + if (!(($__n_might_match$2 | 0) != 0 & ($36 ^ $50))) { + $$lcssa = $50; + $$lcssa59 = $53; + $$pre$i2$i$i$lcssa = $$pre$i2$i$i; + break; + } + $55 = HEAP32[$53 + 12 >> 2] | 0; + if (($55 | 0) == (HEAP32[$53 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$53 >> 2] | 0) + 36 >> 2] & 127]($53) | 0; else $$0$i$i = HEAPU8[$55 >> 0] | 0; + $65 = $$0$i$i & 255; + if ($__case_sensitive) $__c$0 = $65; else $__c$0 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, $65) | 0; + $70 = $__indx$0 + 1 | 0; + if ($8) { + $__consume$0$off0$lcssa = 0; + $__n_does_match$3$lcssa = $__n_does_match$2; + $__n_might_match$3$lcssa = $__n_might_match$2; + } else { + $__consume$0$off038 = 0; + $__ky1$039 = $__kb; + $__n_does_match$335 = $__n_does_match$2; + $__n_might_match$334 = $__n_might_match$2; + $__st$136 = $__status$0; while (1) { - $236 = HEAP32[$wk$443 >> 2] | 0; - if (($236 | 0) == ($i$341 | 0)) { - $242 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $242; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + do if ((HEAP8[$__st$136 >> 0] | 0) == 1) { + if (!(HEAP8[$__ky1$039 >> 0] & 1)) $80 = $__ky1$039 + 1 | 0; else $80 = HEAP32[$__ky1$039 + 8 >> 2] | 0; + $81 = HEAP8[$80 + $__indx$0 >> 0] | 0; + if ($__case_sensitive) $__kc$0 = $81; else $__kc$0 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, $81) | 0; + if ($__c$0 << 24 >> 24 != $__kc$0 << 24 >> 24) { + HEAP8[$__st$136 >> 0] = 0; + $__consume$1$off0 = $__consume$0$off038; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334 + -1 | 0; + break; + } + $87 = HEAP8[$__ky1$039 >> 0] | 0; + if (!($87 & 1)) $95 = ($87 & 255) >>> 1; else $95 = HEAP32[$__ky1$039 + 4 >> 2] | 0; + if (($95 | 0) == ($70 | 0)) { + HEAP8[$__st$136 >> 0] = 2; + $__consume$1$off0 = 1; + $__n_does_match$4 = $__n_does_match$335 + 1 | 0; + $__n_might_match$4 = $__n_might_match$334 + -1 | 0; + } else { + $__consume$1$off0 = 1; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334; + } } else { - $j$1$lcssa = $j$2; + $__consume$1$off0 = $__consume$0$off038; + $__n_does_match$4 = $__n_does_match$335; + $__n_might_match$4 = $__n_might_match$334; + } while (0); + $__ky1$039 = $__ky1$039 + 12 | 0; + if (($__ky1$039 | 0) == ($__ke | 0)) { + $__consume$0$off0$lcssa = $__consume$1$off0; + $__n_does_match$3$lcssa = $__n_does_match$4; + $__n_might_match$3$lcssa = $__n_might_match$4; break; + } else { + $__consume$0$off038 = $__consume$1$off0; + $__n_does_match$335 = $__n_does_match$4; + $__n_might_match$334 = $__n_might_match$4; + $__st$136 = $__st$136 + 1 | 0; } } } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $254 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + if (!$__consume$0$off0$lcssa) { + $__indx$0 = $70; + $__n_does_match$2 = $__n_does_match$3$lcssa; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue; + } + $102 = HEAP32[$__b >> 2] | 0; + $103 = $102 + 12 | 0; + $104 = HEAP32[$103 >> 2] | 0; + if (($104 | 0) == (HEAP32[$102 + 16 >> 2] | 0)) FUNCTION_TABLE_ii[HEAP32[(HEAP32[$102 >> 2] | 0) + 40 >> 2] & 127]($102) | 0; else HEAP32[$103 >> 2] = $104 + 1; + if (($__n_does_match$3$lcssa + $__n_might_match$3$lcssa | 0) >>> 0 < 2 | $9) { + $__indx$0 = $70; + $__n_does_match$2 = $__n_does_match$3$lcssa; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue; + } else { + $__ky2$046 = $__kb; + $__n_does_match$544 = $__n_does_match$3$lcssa; + $__st$245 = $__status$0; + } + while (1) { + if ((HEAP8[$__st$245 >> 0] | 0) == 2) { + $116 = HEAP8[$__ky2$046 >> 0] | 0; + if (!($116 & 1)) $124 = ($116 & 255) >>> 1; else $124 = HEAP32[$__ky2$046 + 4 >> 2] | 0; + if (($124 | 0) == ($70 | 0)) $__n_does_match$6 = $__n_does_match$544; else { + HEAP8[$__st$245 >> 0] = 0; + $__n_does_match$6 = $__n_does_match$544 + -1 | 0; + } + } else $__n_does_match$6 = $__n_does_match$544; + $126 = $__ky2$046 + 12 | 0; + if (($126 | 0) == ($__ke | 0)) { + $__indx$0 = $70; + $__n_does_match$2 = $__n_does_match$6; + $__n_might_match$2 = $__n_might_match$3$lcssa; + continue L17; + } else { + $__ky2$046 = $126; + $__n_does_match$544 = $__n_does_match$6; + $__st$245 = $__st$245 + 1 | 0; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$537 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + } + do if (!$$lcssa59) $141 = 0; else if ((HEAP32[$$lcssa59 + 12 >> 2] | 0) == (HEAP32[$$lcssa59 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$lcssa59 >> 2] | 0) + 36 >> 2] & 127]($$lcssa59) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $141 = 0; + break; + } else { + $141 = HEAP32[$__b >> 2] | 0; + break; + } else $141 = $$lcssa59; while (0); + $140 = ($141 | 0) == 0; + do if ($$lcssa) label = 65; else { + if ((HEAP32[$$pre$i2$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i$lcssa) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 65; + break; + } + if (!$140) label = 66; + } while (0); + if ((label | 0) == 65) if ($140) label = 66; + if ((label | 0) == 66) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + L95 : do if (($__kb | 0) == ($__ke | 0)) label = 70; else { + $$033 = $__kb; + $__st$332 = $__status$0; + while (1) { + if ((HEAP8[$__st$332 >> 0] | 0) == 2) { + $$021 = $$033; + break L95; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $321 = $labelInfo + 12 + ($i$636 << 2) | 0; - $324 = $i$636 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $$033 = $$033 + 12 | 0; + if (($$033 | 0) == ($__ke | 0)) { + label = 70; + break; + } else $__st$332 = $__st$332 + 1 | 0; } + } while (0); + if ((label | 0) == 70) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$021 = $__ke; } + _free($162); STACKTOP = sp; - return $$0 | 0; + return $$021 | 0; } -function _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision25bilinear_histogram_updateEPfffi($hist, $fbin, $magnitude, $num_bins) { + $hist = $hist | 0; + $fbin = +$fbin; + $magnitude = +$magnitude; + $num_bins = $num_bins | 0; + var $0 = 0, $106 = 0, $111 = 0, $112 = 0, $116 = 0, $12 = 0, $124 = 0, $129 = 0, $13 = 0, $130 = 0, $134 = 0, $142 = 0, $147 = 0, $148 = 0, $152 = 0, $154 = 0, $158 = 0, $17 = 0, $20 = 0.0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $45 = 0, $50 = 0, $51 = 0, $55 = 0, $62 = 0, $67 = 0, $68 = 0, $7 = 0, $72 = 0, $74 = 0, $77 = 0.0, $78 = 0.0, $80 = 0, $82 = 0, $89 = 0, $94 = 0, $95 = 0, $99 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if (!$hist) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27308) | 0, 27344) | 0, 34302) | 0, 139) | 0, 34309) | 0, 27465) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + if ($fbin + .5 > 0.0) { + $20 = $fbin + -.5; + if ($20 < +($num_bins | 0)) { + if (!($magnitude >= 0.0)) { + $45 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27596) | 0, 27344) | 0, 34302) | 0, 141) | 0, 34309) | 0, 27634) | 0; + $50 = __ZNKSt3__18ios_base6getlocEv($45 + (HEAP32[(HEAP32[$45 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $50; + $51 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $55 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$51 >> 2] | 0) + 28 >> 2] & 63]($51, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($45, $55) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($45) | 0; + _abort(); + } + if (($num_bins | 0) <= -1) { + $62 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27663) | 0, 27344) | 0, 34302) | 0, 142) | 0, 34309) | 0, 27700) | 0; + $67 = __ZNKSt3__18ios_base6getlocEv($62 + (HEAP32[(HEAP32[$62 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $67; + $68 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $72 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$68 >> 2] | 0) + 28 >> 2] & 63]($68, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($62, $72) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($62) | 0; + _abort(); + } + $74 = ~~+Math_floor(+$20); + $77 = $fbin - +($74 | 0) + -.5; + $78 = 1.0 - $77; + $80 = ($74 + $num_bins | 0) % ($num_bins | 0) | 0; + $82 = ($74 + 1 | 0) % ($num_bins | 0) | 0; + if (!($78 >= 0.0)) { + $89 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27729) | 0, 27344) | 0, 34302) | 0, 150) | 0, 34309) | 0, 27760) | 0; + $94 = __ZNKSt3__18ios_base6getlocEv($89 + (HEAP32[(HEAP32[$89 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $94; + $95 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $99 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$95 >> 2] | 0) + 28 >> 2] & 63]($95, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($89, $99) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($89) | 0; + _abort(); + } + if (!($77 >= 0.0)) { + $106 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27780) | 0, 27344) | 0, 34302) | 0, 151) | 0, 34309) | 0, 27811) | 0; + $111 = __ZNKSt3__18ios_base6getlocEv($106 + (HEAP32[(HEAP32[$106 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $111; + $112 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $116 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$112 >> 2] | 0) + 28 >> 2] & 63]($112, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($106, $116) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($106) | 0; + _abort(); + } + if (($80 | $num_bins | 0) <= -1) { + $124 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27831) | 0, 27344) | 0, 34302) | 0, 152) | 0, 34309) | 0, 27879) | 0; + $129 = __ZNKSt3__18ios_base6getlocEv($124 + (HEAP32[(HEAP32[$124 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $129; + $130 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $134 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$130 >> 2] | 0) + 28 >> 2] & 63]($130, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($124, $134) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($124) | 0; + _abort(); + } + if (($82 | $num_bins | 0) > -1) { + $154 = $hist + ($80 << 2) | 0; + HEAPF32[$154 >> 2] = $78 * $magnitude + +HEAPF32[$154 >> 2]; + $158 = $hist + ($82 << 2) | 0; + HEAPF32[$158 >> 2] = $77 * $magnitude + +HEAPF32[$158 >> 2]; + STACKTOP = sp; + return; + } else { + $142 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27905) | 0, 27344) | 0, 34302) | 0, 153) | 0, 34309) | 0, 27953) | 0; + $147 = __ZNKSt3__18ios_base6getlocEv($142 + (HEAP32[(HEAP32[$142 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $147; + $148 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $152 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$148 >> 2] | 0) + 28 >> 2] & 63]($148, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($142, $152) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($142) | 0; + _abort(); + } + } + } + $28 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 27491) | 0, 27344) | 0, 34302) | 0, 140) | 0, 34309) | 0, 27556) | 0; + $33 = __ZNKSt3__18ios_base6getlocEv($28 + (HEAP32[(HEAP32[$28 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $38 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$34 >> 2] | 0) + 28 >> 2] & 63]($34, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($28, $38) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($28) | 0; + _abort(); +} + +function _ar2ReadSurfaceSet($filename, $ext, $pattHandle) { + $filename = $filename | 0; + $ext = $ext | 0; + $pattHandle = $pattHandle | 0; + var $$1 = 0, $10 = 0, $100 = 0, $102 = 0, $11 = 0, $13 = 0, $18 = 0, $25 = 0, $26 = 0, $28 = 0, $35 = 0, $40 = 0, $47 = 0, $58 = 0, $6 = 0, $61 = 0, $70 = 0, $79 = 0, $8 = 0, $buf = 0, $fp$0 = 0, $i = 0, $j$07 = 0, $name = 0, $namebuf = 0, $readMode$1 = 0, $storemerge8 = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer14 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer22 = 0, $vararg_buffer24 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer31 = 0, $vararg_buffer34 = 0, $vararg_buffer36 = 0, $vararg_buffer38 = 0, $vararg_buffer41 = 0, $vararg_buffer43 = 0, $vararg_buffer49 = 0, $vararg_buffer5 = 0, $vararg_buffer51 = 0, $vararg_buffer57 = 0, $vararg_buffer59 = 0, $vararg_buffer65 = 0, $vararg_buffer67 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1248 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer67 = sp + 208 | 0; + $vararg_buffer65 = sp + 200 | 0; + $vararg_buffer59 = sp + 184 | 0; + $vararg_buffer57 = sp + 176 | 0; + $vararg_buffer51 = sp + 160 | 0; + $vararg_buffer49 = sp + 152 | 0; + $vararg_buffer43 = sp + 136 | 0; + $vararg_buffer41 = sp + 128 | 0; + $vararg_buffer38 = sp + 120 | 0; + $vararg_buffer36 = sp + 112 | 0; + $vararg_buffer34 = sp + 104 | 0; + $vararg_buffer31 = sp + 96 | 0; + $vararg_buffer29 = sp + 88 | 0; + $vararg_buffer27 = sp + 80 | 0; + $vararg_buffer24 = sp + 72 | 0; + $vararg_buffer22 = sp + 64 | 0; + $vararg_buffer19 = sp + 56 | 0; + $vararg_buffer16 = sp + 48 | 0; + $vararg_buffer14 = sp + 40 | 0; + $vararg_buffer11 = sp + 32 | 0; + $vararg_buffer9 = sp + 24 | 0; + $vararg_buffer5 = sp + 16 | 0; + $vararg_buffer2 = sp + 8 | 0; $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $buf = sp + 984 | 0; + $name = sp + 728 | 0; + $i = sp + 212 | 0; + $namebuf = sp + 216 | 0; + do if (!$ext) label = 4; else if (!(HEAP8[$ext >> 0] | 0)) label = 4; else if (!(_strcmp($ext, 40808) | 0)) label = 4; else { + HEAP32[$vararg_buffer >> 2] = $filename; + HEAP32[$vararg_buffer + 4 >> 2] = $ext; + _sprintf($namebuf, 21376, $vararg_buffer) | 0; + $6 = _fopen($namebuf, 20518) | 0; + if (!$6) { + HEAP32[$vararg_buffer2 >> 2] = $filename; + _arLog(3, 20520, $vararg_buffer2); + $8 = ___errno_location() | 0; + $10 = _strerror(HEAP32[$8 >> 2] | 0) | 0; + HEAP32[$vararg_buffer5 >> 2] = 56692; + HEAP32[$vararg_buffer5 + 4 >> 2] = $10; + _arLog(3, 20546, $vararg_buffer5); + $$1 = 0; + break; + } else { + $fp$0 = $6; + $readMode$1 = 1; + label = 8; + break; + } + } while (0); + if ((label | 0) == 4) { + _strncpy($name, $filename, 255) | 0; + HEAP8[$name + 255 >> 0] = 0; + $fp$0 = 0; + $readMode$1 = 0; + label = 8; + } + L10 : do if ((label | 0) == 8) { + $11 = _malloc(1140) | 0; + if (!$11) { + _arLog(3, 21359, $vararg_buffer9); + _exit(1); + } + $13 = ($readMode$1 | 0) != 0; + do if ($13) { + if (!(_get_buff413($buf, $fp$0) | 0)) { + _fclose($fp$0) | 0; + _free($11); + $$1 = 0; + break L10; + } + HEAP32[$vararg_buffer11 >> 2] = $i; + if ((_sscanf($buf, 20552, $vararg_buffer11) | 0) != 1) { + _fclose($fp$0) | 0; + _free($11); + $$1 = 0; + break L10; + } + $18 = HEAP32[$i >> 2] | 0; + if (($18 | 0) < 1) { + _fclose($fp$0) | 0; + _free($11); + $$1 = 0; + break L10; + } else { + HEAP32[$11 + 4 >> 2] = $18; + HEAP32[$11 + 152 >> 2] = 0; + $25 = $18; + break; + } + } else { + HEAP32[$11 + 4 >> 2] = 1; + HEAP32[$11 + 152 >> 2] = 0; + $25 = 1; + } while (0); + $26 = _malloc($25 * 112 | 0) | 0; + HEAP32[$11 >> 2] = $26; + if (!$26) { + _arLog(3, 21359, $vararg_buffer14); + _exit(1); + } + $28 = ($pattHandle | 0) == 0; + HEAP32[$i >> 2] = 0; + L31 : do if (($25 | 0) > 0) { + $storemerge8 = 0; + while (1) { + HEAP32[$vararg_buffer16 >> 2] = $storemerge8 + 1; + _arLog(1, 20555, $vararg_buffer16); + if ($13) { + if (!(_get_buff413($buf, $fp$0) | 0)) break L31; + HEAP32[$vararg_buffer19 >> 2] = $name; + if ((_sscanf($buf, 20579, $vararg_buffer19) | 0) != 1) break L31; + _ar2UtilRemoveExt($name) | 0; + } + _arLog(1, 20582, $vararg_buffer22); + $35 = _ar2ReadImageSet($name) | 0; + HEAP32[$26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) >> 2] = $35; + if (!$35) { + label = 27; + break; + } + _arLog(1, 20631, $vararg_buffer27); + _arLog(1, 20641, $vararg_buffer29); + $40 = _ar2ReadFeatureSet($name, 40808) | 0; + HEAP32[$26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) + 4 >> 2] = $40; + if (!$40) { + label = 30; + break; + } + _arLog(1, 20631, $vararg_buffer34); + if ($28) HEAP32[$26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) + 8 >> 2] = 0; else { + _arLog(1, 20692, $vararg_buffer36); + _ar2UtilRemoveExt($name) | 0; + $47 = _ar2ReadMarkerSet($name, 20711, $pattHandle) | 0; + HEAP32[$26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) + 8 >> 2] = $47; + if (!$47) { + label = 34; + break; + } + _arLog(1, 20631, $vararg_buffer41); + } + if ($13) { + if (!(_get_buff413($buf, $fp$0) | 0)) break L31; + $61 = HEAP32[$i >> 2] | 0; + HEAP32[$vararg_buffer43 >> 2] = $26 + ($61 * 112 | 0) + 12; + HEAP32[$vararg_buffer43 + 4 >> 2] = $26 + ($61 * 112 | 0) + 16; + HEAP32[$vararg_buffer43 + 8 >> 2] = $26 + ($61 * 112 | 0) + 20; + HEAP32[$vararg_buffer43 + 12 >> 2] = $26 + ($61 * 112 | 0) + 24; + if ((_sscanf($buf, 20745, $vararg_buffer43) | 0) != 4) { + label = 42; + break; + } + if (!(_get_buff413($buf, $fp$0) | 0)) break L31; + $70 = HEAP32[$i >> 2] | 0; + HEAP32[$vararg_buffer51 >> 2] = $26 + ($70 * 112 | 0) + 28; + HEAP32[$vararg_buffer51 + 4 >> 2] = $26 + ($70 * 112 | 0) + 32; + HEAP32[$vararg_buffer51 + 8 >> 2] = $26 + ($70 * 112 | 0) + 36; + HEAP32[$vararg_buffer51 + 12 >> 2] = $26 + ($70 * 112 | 0) + 40; + if ((_sscanf($buf, 20745, $vararg_buffer51) | 0) != 4) { + label = 45; + break; + } + if (!(_get_buff413($buf, $fp$0) | 0)) break L31; + $79 = HEAP32[$i >> 2] | 0; + HEAP32[$vararg_buffer59 >> 2] = $26 + ($79 * 112 | 0) + 44; + HEAP32[$vararg_buffer59 + 4 >> 2] = $26 + ($79 * 112 | 0) + 48; + HEAP32[$vararg_buffer59 + 8 >> 2] = $26 + ($79 * 112 | 0) + 52; + HEAP32[$vararg_buffer59 + 12 >> 2] = $26 + ($79 * 112 | 0) + 56; + if ((_sscanf($buf, 20745, $vararg_buffer59) | 0) != 4) { + label = 49; + break; + } + $100 = HEAP32[$i >> 2] | 0; + } else { + $58 = HEAP32[$i >> 2] | 0; + $j$07 = 0; + do { + HEAPF32[$26 + ($58 * 112 | 0) + 12 + ($j$07 << 4) >> 2] = ($j$07 | 0) == 0 ? 1.0 : 0.0; + HEAPF32[$26 + ($58 * 112 | 0) + 12 + ($j$07 << 4) + 4 >> 2] = ($j$07 | 0) == 1 ? 1.0 : 0.0; + HEAPF32[$26 + ($58 * 112 | 0) + 12 + ($j$07 << 4) + 8 >> 2] = ($j$07 | 0) == 2 ? 1.0 : 0.0; + HEAPF32[$26 + ($58 * 112 | 0) + 12 + ($j$07 << 4) + 12 >> 2] = ($j$07 | 0) == 3 ? 1.0 : 0.0; + $j$07 = $j$07 + 1 | 0; + } while (($j$07 | 0) != 3); + $100 = $58; + } + _arUtilMatInvf($26 + ($100 * 112 | 0) + 12 | 0, $26 + ($100 * 112 | 0) + 60 | 0) | 0; + _ar2UtilReplaceExt($name, 256, 20793) | 0; + $102 = _malloc(256) | 0; + HEAP32[$26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) + 108 >> 2] = $102; + if (!$102) { + label = 52; + break; + } + _strncpy($102, $name, 256) | 0; + $storemerge8 = (HEAP32[$i >> 2] | 0) + 1 | 0; + HEAP32[$i >> 2] = $storemerge8; + if (($storemerge8 | 0) >= ($25 | 0)) break L31; + } + if ((label | 0) == 27) { + HEAP32[$vararg_buffer24 >> 2] = $name; + _arLog(3, 20600, $vararg_buffer24); + _free($26); + _free($11); + if (!$fp$0) { + $$1 = 0; + break L10; + } + _fclose($fp$0) | 0; + $$1 = 0; + break L10; + } else if ((label | 0) == 30) { + HEAP32[$vararg_buffer31 >> 2] = $name; + _arLog(3, 20661, $vararg_buffer31); + _ar2FreeImageSet($26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) | 0) | 0; + _free($26); + _free($11); + if (!$fp$0) { + $$1 = 0; + break L10; + } + _fclose($fp$0) | 0; + $$1 = 0; + break L10; + } else if ((label | 0) == 34) { + HEAP32[$vararg_buffer38 >> 2] = $name; + _arLog(3, 20715, $vararg_buffer38); + _ar2FreeFeatureSet($26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) + 4 | 0) | 0; + _ar2FreeImageSet($26 + ((HEAP32[$i >> 2] | 0) * 112 | 0) | 0) | 0; + _free($26); + _free($11); + if (!$fp$0) { + $$1 = 0; + break L10; + } + _fclose($fp$0) | 0; + $$1 = 0; + break L10; + } else if ((label | 0) == 42) { + _arLog(3, 20757, $vararg_buffer49); + _fclose($fp$0) | 0; + _exit(0); + } else if ((label | 0) == 45) { + _arLog(3, 20757, $vararg_buffer57); + _fclose($fp$0) | 0; + _exit(0); + } else if ((label | 0) == 49) { + _arLog(3, 20757, $vararg_buffer65); + _fclose($fp$0) | 0; + _exit(0); + } else if ((label | 0) == 52) { + _arLog(3, 21359, $vararg_buffer67); + _exit(1); + } + } while (0); + if ($fp$0) _fclose($fp$0) | 0; + if ((HEAP32[$i >> 2] | 0) < ($25 | 0)) _exit(0); else $$1 = $11; + } while (0); + STACKTOP = sp; + return $$1 | 0; +} + +function _fill_inverse_cmap($cinfo, $c0, $c1, $c2) { + $cinfo = $cinfo | 0; + $c0 = $c0 | 0; + $c1 = $c1 | 0; + $c2 = $c2 | 0; + var $$pn$i = 0, $$pn1$i = 0, $10 = 0, $101 = 0, $11 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $127 = 0, $128 = 0, $129 = 0, $135 = 0, $136 = 0, $138 = 0, $14 = 0, $144 = 0, $15 = 0, $150 = 0, $152 = 0, $153 = 0, $154 = 0, $157 = 0, $158 = 0, $159 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $172 = 0, $175 = 0, $176 = 0, $18 = 0, $181 = 0, $182 = 0, $187 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $205 = 0, $206 = 0, $21 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $31 = 0, $35 = 0, $38 = 0, $4 = 0, $41 = 0, $45 = 0, $48 = 0, $5 = 0, $52 = 0, $55 = 0, $59 = 0, $6 = 0, $62 = 0, $66 = 0, $7 = 0, $70 = 0, $74 = 0, $78 = 0, $8 = 0, $81 = 0, $85 = 0, $87 = 0, $9 = 0, $90 = 0, $93 = 0, $96 = 0, $99 = 0, $bestcolor = 0, $bestdist$i = 0, $bptr$0$i31 = 0, $bptr$1$i24 = 0, $bptr$2$i20 = 0, $colorlist = 0, $cptr$0$i25 = 0, $cptr$014 = 0, $cptr$1$i21 = 0, $cptr$112 = 0, $dist0$0$i26 = 0, $dist1$0$i22 = 0, $i$0$i130 = 0, $i$0$i36 = 0, $i$1$i229 = 0, $i$1$i33 = 0, $ic0$0$i28 = 0, $ic0$013 = 0, $ic1$0$i19 = 0, $ic1$011 = 0, $max_dist$0$i = 0, $max_dist$1$i = 0, $max_dist$2$i = 0, $max_dist$2$minmaxdist$0$i = 0, $min_dist$0$i = 0, $min_dist$1$i = 0, $min_dist$2$i = 0, $minmaxdist$0$i$lcssa = 0, $minmaxdist$0$i35 = 0, $ncolors$0$i$lcssa = 0, $ncolors$0$i32 = 0, $ncolors$1$i = 0, $xx0$0$i27 = 0, $xx1$0$i23 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1408 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $bestdist$i = sp; + $colorlist = sp + 1152 | 0; + $bestcolor = sp + 1024 | 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $4 = $c0 >> 2; + $5 = $c1 >> 3; + $6 = $c2 >> 2; + $7 = $4 << 5; + $8 = $7 | 4; + $9 = $5 << 5; + $10 = $9 | 2; + $11 = $6 << 5; + $12 = $11 | 4; + $14 = HEAP32[$cinfo + 132 >> 2] | 0; + $15 = $7 | 28; + $17 = $15 + $8 >> 1; + $18 = $9 | 30; + $20 = $18 + $10 >> 1; + $21 = $11 | 28; + $23 = $21 + $12 >> 1; + $24 = $cinfo + 136 | 0; + if (($14 | 0) > 0) { + $26 = HEAP32[$24 >> 2] | 0; + $27 = HEAP32[$26 >> 2] | 0; + $29 = HEAP32[$26 + 4 >> 2] | 0; + $31 = HEAP32[$26 + 8 >> 2] | 0; + $i$0$i36 = 0; + $minmaxdist$0$i35 = 2147483647; while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $35 = HEAPU8[$27 + $i$0$i36 >> 0] | 0; + do if (($35 | 0) < ($8 | 0)) { + $38 = $35 - $8 << 1; + $41 = $35 - $15 << 1; + $max_dist$0$i = Math_imul($41, $41) | 0; + $min_dist$0$i = Math_imul($38, $38) | 0; + } else { + if (($35 | 0) > ($15 | 0)) { + $45 = $35 - $15 << 1; + $48 = $35 - $8 << 1; + $max_dist$0$i = Math_imul($48, $48) | 0; + $min_dist$0$i = Math_imul($45, $45) | 0; + break; + } + if (($35 | 0) > ($17 | 0)) { + $55 = $35 - $8 << 1; + $max_dist$0$i = Math_imul($55, $55) | 0; + $min_dist$0$i = 0; + break; + } else { + $52 = $35 - $15 << 1; + $max_dist$0$i = Math_imul($52, $52) | 0; + $min_dist$0$i = 0; + break; + } + } while (0); + $59 = HEAPU8[$29 + $i$0$i36 >> 0] | 0; + do if (($59 | 0) < ($10 | 0)) { + $62 = ($59 - $10 | 0) * 3 | 0; + $66 = ($59 - $18 | 0) * 3 | 0; + $$pn$i = Math_imul($66, $66) | 0; + $min_dist$1$i = (Math_imul($62, $62) | 0) + $min_dist$0$i | 0; + } else { + if (($59 | 0) > ($18 | 0)) { + $70 = ($59 - $18 | 0) * 3 | 0; + $74 = ($59 - $10 | 0) * 3 | 0; + $$pn$i = Math_imul($74, $74) | 0; + $min_dist$1$i = (Math_imul($70, $70) | 0) + $min_dist$0$i | 0; + break; + } + if (($59 | 0) > ($20 | 0)) { + $81 = ($59 - $10 | 0) * 3 | 0; + $$pn$i = Math_imul($81, $81) | 0; + $min_dist$1$i = $min_dist$0$i; + break; + } else { + $78 = ($59 - $18 | 0) * 3 | 0; + $$pn$i = Math_imul($78, $78) | 0; + $min_dist$1$i = $min_dist$0$i; + break; + } + } while (0); + $max_dist$1$i = $$pn$i + $max_dist$0$i | 0; + $85 = HEAPU8[$31 + $i$0$i36 >> 0] | 0; + do if (($85 | 0) < ($12 | 0)) { + $87 = $85 - $12 | 0; + $90 = $85 - $21 | 0; + $$pn1$i = Math_imul($90, $90) | 0; + $min_dist$2$i = (Math_imul($87, $87) | 0) + $min_dist$1$i | 0; + } else { + if (($85 | 0) > ($21 | 0)) { + $93 = $85 - $21 | 0; + $96 = $85 - $12 | 0; + $$pn1$i = Math_imul($96, $96) | 0; + $min_dist$2$i = (Math_imul($93, $93) | 0) + $min_dist$1$i | 0; + break; + } + if (($85 | 0) > ($23 | 0)) { + $101 = $85 - $12 | 0; + $$pn1$i = Math_imul($101, $101) | 0; + $min_dist$2$i = $min_dist$1$i; + break; + } else { + $99 = $85 - $21 | 0; + $$pn1$i = Math_imul($99, $99) | 0; + $min_dist$2$i = $min_dist$1$i; + break; + } + } while (0); + $max_dist$2$i = $max_dist$1$i + $$pn1$i | 0; + HEAP32[$bestdist$i + ($i$0$i36 << 2) >> 2] = $min_dist$2$i; + $max_dist$2$minmaxdist$0$i = ($max_dist$2$i | 0) < ($minmaxdist$0$i35 | 0) ? $max_dist$2$i : $minmaxdist$0$i35; + $i$0$i36 = $i$0$i36 + 1 | 0; + if (($i$0$i36 | 0) >= ($14 | 0)) { + $minmaxdist$0$i$lcssa = $max_dist$2$minmaxdist$0$i; + break; + } else $minmaxdist$0$i35 = $max_dist$2$minmaxdist$0$i; + } + } else $minmaxdist$0$i$lcssa = 2147483647; + if (($14 | 0) > 0) { + $i$1$i33 = 0; + $ncolors$0$i32 = 0; + while (1) { + if ((HEAP32[$bestdist$i + ($i$1$i33 << 2) >> 2] | 0) > ($minmaxdist$0$i$lcssa | 0)) $ncolors$1$i = $ncolors$0$i32; else { + HEAP8[$colorlist + $ncolors$0$i32 >> 0] = $i$1$i33; + $ncolors$1$i = $ncolors$0$i32 + 1 | 0; } + $i$1$i33 = $i$1$i33 + 1 | 0; + if (($i$1$i33 | 0) >= ($14 | 0)) { + $ncolors$0$i$lcssa = $ncolors$1$i; + break; + } else $ncolors$0$i32 = $ncolors$1$i; } + } else $ncolors$0$i$lcssa = 0; + $bptr$0$i31 = $bestdist$i; + $i$0$i130 = 127; + while (1) { + HEAP32[$bptr$0$i31 >> 2] = 2147483647; + if (($i$0$i130 | 0) > 0) { + $bptr$0$i31 = $bptr$0$i31 + 4 | 0; + $i$0$i130 = $i$0$i130 + -1 | 0; + } else break; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; + if (($ncolors$0$i$lcssa | 0) > 0) { + $i$1$i229 = 0; + do { + $120 = HEAP8[$colorlist + $i$1$i229 >> 0] | 0; + $121 = $120 & 255; + $122 = HEAP32[$24 >> 2] | 0; + $127 = $8 - (HEAPU8[(HEAP32[$122 >> 2] | 0) + $121 >> 0] | 0) | 0; + $128 = $127 << 1; + $129 = Math_imul($128, $128) | 0; + $135 = $10 - (HEAPU8[(HEAP32[$122 + 4 >> 2] | 0) + $121 >> 0] | 0) | 0; + $136 = $135 * 3 | 0; + $138 = (Math_imul($136, $136) | 0) + $129 | 0; + $144 = $12 - (HEAPU8[(HEAP32[$122 + 8 >> 2] | 0) + $121 >> 0] | 0) | 0; + $150 = ($135 * 72 | 0) + 144 | 0; + $152 = ($144 << 4) + 64 | 0; + $153 = $152 + 128 | 0; + $154 = $153 + 128 | 0; + $bptr$1$i24 = $bestdist$i; + $cptr$0$i25 = $bestcolor; + $dist0$0$i26 = $138 + (Math_imul($144, $144) | 0) | 0; + $ic0$0$i28 = 3; + $xx0$0$i27 = ($127 << 6) + 256 | 0; + while (1) { + $bptr$2$i20 = $bptr$1$i24; + $cptr$1$i21 = $cptr$0$i25; + $dist1$0$i22 = $dist0$0$i26; + $ic1$0$i19 = 7; + $xx1$0$i23 = $150; + while (1) { + if (($dist1$0$i22 | 0) < (HEAP32[$bptr$2$i20 >> 2] | 0)) { + HEAP32[$bptr$2$i20 >> 2] = $dist1$0$i22; + HEAP8[$cptr$1$i21 >> 0] = $120; + } + $157 = $152 + $dist1$0$i22 | 0; + $158 = $bptr$2$i20 + 4 | 0; + $159 = $cptr$1$i21 + 1 | 0; + if (($157 | 0) < (HEAP32[$158 >> 2] | 0)) { + HEAP32[$158 >> 2] = $157; + HEAP8[$159 >> 0] = $120; + } + $200 = $153 + $157 | 0; + $201 = $158 + 4 | 0; + $202 = $159 + 1 | 0; + if (($200 | 0) < (HEAP32[$201 >> 2] | 0)) { + HEAP32[$201 >> 2] = $200; + HEAP8[$202 >> 0] = $120; + } + $205 = $154 + $200 | 0; + $206 = $201 + 4 | 0; + if (($205 | 0) < (HEAP32[$206 >> 2] | 0)) { + HEAP32[$206 >> 2] = $205; + HEAP8[$202 + 1 >> 0] = $120; + } + if (($ic1$0$i19 | 0) > 0) { + $bptr$2$i20 = $bptr$2$i20 + 16 | 0; + $cptr$1$i21 = $cptr$1$i21 + 4 | 0; + $dist1$0$i22 = $xx1$0$i23 + $dist1$0$i22 | 0; + $ic1$0$i19 = $ic1$0$i19 + -1 | 0; + $xx1$0$i23 = $xx1$0$i23 + 288 | 0; + } else break; + } + if (($ic0$0$i28 | 0) > 0) { + $bptr$1$i24 = $bptr$1$i24 + 128 | 0; + $cptr$0$i25 = $cptr$0$i25 + 32 | 0; + $dist0$0$i26 = $xx0$0$i27 + $dist0$0$i26 | 0; + $ic0$0$i28 = $ic0$0$i28 + -1 | 0; + $xx0$0$i27 = $xx0$0$i27 + 512 | 0; + } else break; + } + $i$1$i229 = $i$1$i229 + 1 | 0; + } while (($i$1$i229 | 0) < ($ncolors$0$i$lcssa | 0)); + } + $168 = $4 << 2; + $169 = $5 << 3; + $170 = $6 << 2; + $cptr$014 = $bestcolor; + $ic0$013 = 0; + while (1) { + $172 = $3 + ($ic0$013 + $168 << 2) | 0; + $cptr$112 = $cptr$014; + $ic1$011 = 0; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $175 = (HEAP32[$172 >> 2] | 0) + ($ic1$011 + $169 << 6) + ($170 << 1) | 0; + $176 = $cptr$112 + 1 | 0; + $181 = $175 + 2 | 0; + HEAP16[$175 >> 1] = (HEAPU8[$cptr$112 >> 0] | 0) + 1; + $182 = $176 + 1 | 0; + $187 = $181 + 2 | 0; + HEAP16[$181 >> 1] = (HEAPU8[$176 >> 0] | 0) + 1; + HEAP16[$187 >> 1] = (HEAPU8[$182 >> 0] | 0) + 1; + HEAP16[$187 + 2 >> 1] = (HEAPU8[$182 + 1 >> 0] | 0) + 1; + $ic1$011 = $ic1$011 + 1 | 0; + if (($ic1$011 | 0) == 8) break; else $cptr$112 = $cptr$112 + 4 | 0; + } + $ic0$013 = $ic0$013 + 1 | 0; + if (($ic0$013 | 0) == 4) break; else $cptr$014 = $cptr$014 + 32 | 0; + } + STACKTOP = sp; + return; +} + +function __ZNSt3__111__money_putIcE8__formatEPcRS2_S3_jPKcS5_RKNS_5ctypeIcEEbRKNS_10money_base7patternEccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESL_SL_i($__mb, $__mi, $__me, $__flags, $__db, $__de, $__ct, $__neg, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd) { + $__mb = $__mb | 0; + $__mi = $__mi | 0; + $__me = $__me | 0; + $__flags = $__flags | 0; + $__db = $__db | 0; + $__de = $__de | 0; + $__ct = $__ct | 0; + $__neg = $__neg | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__sn = $__sn | 0; + $__fd = $__fd | 0; + var $$$0 = 0, $$$027 = 0, $$0$i$i$lcssa = 0, $$0$i$i35 = 0, $$0$i$i9$lcssa = 0, $$0$i$i958 = 0, $$01$i$i56 = 0, $$062 = 0, $$2 = 0, $$lcssa = 0, $$lcssa34 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $108 = 0, $11 = 0, $110 = 0, $112 = 0, $12 = 0, $124 = 0, $126 = 0, $127 = 0, $129 = 0, $13 = 0, $138 = 0, $142 = 0, $143 = 0, $147 = 0, $149 = 0, $151 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $173 = 0, $174 = 0, $18 = 0, $2 = 0, $27 = 0, $28 = 0, $3 = 0, $30 = 0, $32 = 0, $40 = 0, $41 = 0, $43 = 0, $45 = 0, $49 = 0, $5 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $59 = 0, $6 = 0, $61 = 0, $63 = 0, $65 = 0, $7 = 0, $71 = 0, $77 = 0, $8 = 0, $82 = 0, $83 = 0, $87 = 0, $89 = 0, $9 = 0, $95 = 0, $97 = 0, $98 = 0, $__d$0$lcssa = 0, $__d$0$lcssa26 = 0, $__d$036 = 0, $__d$142 = 0, $__d$2 = 0, $__d$351 = 0, $__f$043 = 0, $__f$146 = 0, $__gl$0$ph = 0, $__gl$054 = 0, $__gl$1 = 0, $__ig$053 = 0, $__ig$1 = 0, $__ng$052 = 0, $__ng$1 = 0, $__p$061 = 0, $scevgep29 = 0, $umax28 = 0; + HEAP32[$__me >> 2] = $__mb; + $0 = $__sn + 4 | 0; + $1 = $__sn + 8 | 0; + $2 = $__sn + 1 | 0; + $3 = $__sym + 4 | 0; + $5 = ($__flags & 512 | 0) == 0; + $6 = $__sym + 8 | 0; + $7 = $__sym + 1 | 0; + $8 = $__ct + 8 | 0; + $9 = ($__fd | 0) > 0; + $10 = $__grp + 4 | 0; + $11 = $__grp + 8 | 0; + $12 = $__grp + 1 | 0; + $13 = $__fd + 1 | 0; + $17 = -2 - $__fd - (($__fd | 0) < 0 ? ~$__fd : -1) | 0; + $18 = ($__fd | 0) > 0; + $$062 = $__db; + $__p$061 = 0; + while (1) { + switch (HEAP8[$__pat + $__p$061 >> 0] | 0) { + case 0: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + $$2 = $$062; + break; + } + case 1: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + $27 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 28 >> 2] & 63]($__ct, 32) | 0; + $28 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $28 + 1; + HEAP8[$28 >> 0] = $27; + $$2 = $$062; + break; + } + case 3: + { + $30 = HEAP8[$__sn >> 0] | 0; + $32 = ($30 & 1) == 0; + if (!(($32 ? ($30 & 255) >>> 1 : HEAP32[$0 >> 2] | 0) | 0)) $$2 = $$062; else { + $40 = HEAP8[($32 ? $2 : HEAP32[$1 >> 2] | 0) >> 0] | 0; + $41 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $41 + 1; + HEAP8[$41 >> 0] = $40; + $$2 = $$062; + } + break; + } + case 2: + { + $43 = HEAP8[$__sym >> 0] | 0; + $45 = ($43 & 1) == 0; + $49 = $45 ? ($43 & 255) >>> 1 : HEAP32[$3 >> 2] | 0; + if ($5 | ($49 | 0) == 0) $$2 = $$062; else { + $52 = $45 ? $7 : HEAP32[$6 >> 2] | 0; + $53 = $52 + $49 | 0; + $54 = HEAP32[$__me >> 2] | 0; + if (!$49) $$0$i$i9$lcssa = $54; else { + $$0$i$i958 = $54; + $57 = $52; + while (1) { + HEAP8[$$0$i$i958 >> 0] = HEAP8[$57 >> 0] | 0; + $57 = $57 + 1 | 0; + $59 = $$0$i$i958 + 1 | 0; + if (($57 | 0) == ($53 | 0)) { + $$0$i$i9$lcssa = $59; + break; + } else $$0$i$i958 = $59; + } + } + HEAP32[$__me >> 2] = $$0$i$i9$lcssa; + $$2 = $$062; + } + break; + } + case 4: + { + $61 = HEAP32[$__me >> 2] | 0; + $$$0 = $__neg ? $$062 + 1 | 0 : $$062; + $$$027 = $$$0; + $63 = HEAP32[$8 >> 2] | 0; + L15 : do if ($$$0 >>> 0 < $__de >>> 0) { + $__d$036 = $$$0; + while (1) { + $65 = HEAP8[$__d$036 >> 0] | 0; + if ($65 << 24 >> 24 <= -1) { + $__d$0$lcssa = $__d$036; + break L15; + } + if (!(HEAP16[$63 + ($65 << 24 >> 24 << 1) >> 1] & 2048)) { + $__d$0$lcssa = $__d$036; + break L15; + } + $71 = $__d$036 + 1 | 0; + if ($71 >>> 0 < $__de >>> 0) $__d$036 = $71; else { + $__d$0$lcssa = $71; + break; + } + } + } else $__d$0$lcssa = $$$0; while (0); + $__d$0$lcssa26 = $__d$0$lcssa; + if ($9) { + $77 = -2 - $__d$0$lcssa26 - ~($__d$0$lcssa26 >>> 0 > $$$027 >>> 0 ? $$$027 : $__d$0$lcssa26) | 0; + $umax28 = $17 >>> 0 > $77 >>> 0 ? $17 : $77; + if ($__d$0$lcssa >>> 0 > $$$0 >>> 0 & $18) { + $__d$142 = $__d$0$lcssa; + $__f$043 = $__fd; + while (1) { + $__d$142 = $__d$142 + -1 | 0; + $82 = HEAP8[$__d$142 >> 0] | 0; + $83 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $83 + 1; + HEAP8[$83 >> 0] = $82; + $87 = ($__f$043 | 0) > 1; + if (!($__d$142 >>> 0 > $$$0 >>> 0 & $87)) { + $$lcssa = $87; + break; + } else $__f$043 = $__f$043 + -1 | 0; + } + } else $$lcssa = $18; + $89 = $13 + $umax28 | 0; + $scevgep29 = $__d$0$lcssa + ($umax28 + 1) | 0; + if ($$lcssa) $97 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 28 >> 2] & 63]($__ct, 48) | 0; else $97 = 0; + $95 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $95 + 1; + if (($89 | 0) > 0) { + $98 = $95; + $__f$146 = $89; + while (1) { + HEAP8[$98 >> 0] = $97; + $101 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $101 + 1; + if (($__f$146 | 0) > 1) { + $98 = $101; + $__f$146 = $__f$146 + -1 | 0; + } else { + $$lcssa34 = $101; + break; + } + } + } else $$lcssa34 = $95; + HEAP8[$$lcssa34 >> 0] = $__dp; + $__d$2 = $scevgep29; + } else $__d$2 = $__d$0$lcssa; + if (($__d$2 | 0) == ($$$0 | 0)) { + $107 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 28 >> 2] & 63]($__ct, 48) | 0; + $108 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $108 + 1; + HEAP8[$108 >> 0] = $107; + } else { + $110 = HEAP8[$__grp >> 0] | 0; + $112 = ($110 & 1) == 0; + if (!(($112 ? ($110 & 255) >>> 1 : HEAP32[$10 >> 2] | 0) | 0)) $__gl$0$ph = -1; else $__gl$0$ph = HEAP8[($112 ? $12 : HEAP32[$11 >> 2] | 0) >> 0] | 0; + if (($__d$2 | 0) != ($$$0 | 0)) { + $__d$351 = $__d$2; + $__gl$054 = $__gl$0$ph; + $__ig$053 = 0; + $__ng$052 = 0; + while (1) { + if (($__ng$052 | 0) == ($__gl$054 | 0)) { + $124 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $124 + 1; + HEAP8[$124 >> 0] = $__ts; + $126 = $__ig$053 + 1 | 0; + $127 = HEAP8[$__grp >> 0] | 0; + $129 = ($127 & 1) == 0; + if ($126 >>> 0 < ($129 ? ($127 & 255) >>> 1 : HEAP32[$10 >> 2] | 0) >>> 0) { + $138 = HEAP8[($129 ? $12 : HEAP32[$11 >> 2] | 0) + $126 >> 0] | 0; + $__gl$1 = $138 << 24 >> 24 == 127 ? -1 : $138 << 24 >> 24; + $__ig$1 = $126; + $__ng$1 = 0; + } else { + $__gl$1 = $__ng$052; + $__ig$1 = $126; + $__ng$1 = 0; + } + } else { + $__gl$1 = $__gl$054; + $__ig$1 = $__ig$053; + $__ng$1 = $__ng$052; + } + $__d$351 = $__d$351 + -1 | 0; + $142 = HEAP8[$__d$351 >> 0] | 0; + $143 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $143 + 1; + HEAP8[$143 >> 0] = $142; + if (($__d$351 | 0) == ($$$0 | 0)) break; else { + $__gl$054 = $__gl$1; + $__ig$053 = $__ig$1; + $__ng$052 = $__ng$1 + 1 | 0; + } + } + } + } + $147 = HEAP32[$__me >> 2] | 0; + if (($61 | 0) == ($147 | 0)) $$2 = $$$0; else { + $149 = $147 + -1 | 0; + if ($61 >>> 0 < $149 >>> 0) { + $$01$i$i56 = $61; + $153 = $149; + do { + $151 = HEAP8[$$01$i$i56 >> 0] | 0; + HEAP8[$$01$i$i56 >> 0] = HEAP8[$153 >> 0] | 0; + HEAP8[$153 >> 0] = $151; + $$01$i$i56 = $$01$i$i56 + 1 | 0; + $153 = $153 + -1 | 0; + } while ($$01$i$i56 >>> 0 < $153 >>> 0); + $$2 = $$$0; + } else $$2 = $$$0; + } + break; } + default: + $$2 = $$062; } + $__p$061 = $__p$061 + 1 | 0; + if (($__p$061 | 0) == 4) break; else $$062 = $$2; } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 * 3 | 0) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; + $158 = HEAP8[$__sn >> 0] | 0; + $160 = ($158 & 1) == 0; + $164 = $160 ? ($158 & 255) >>> 1 : HEAP32[$0 >> 2] | 0; + if ($164 >>> 0 > 1) { + $167 = $160 ? $2 : HEAP32[$1 >> 2] | 0; + $168 = $167 + $164 | 0; + $169 = HEAP32[$__me >> 2] | 0; + if (($164 | 0) == 1) $$0$i$i$lcssa = $169; else { + $$0$i$i35 = $169; + $173 = $167 + 1 | 0; + while (1) { + HEAP8[$$0$i$i35 >> 0] = HEAP8[$173 >> 0] | 0; + $174 = $$0$i$i35 + 1 | 0; + $173 = $173 + 1 | 0; + if (($173 | 0) == ($168 | 0)) { + $$0$i$i$lcssa = $174; + break; + } else $$0$i$i35 = $174; + } + } + HEAP32[$__me >> 2] = $$0$i$i$lcssa; + } + switch ($__flags & 176 | 0) { + case 32: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + break; + } + case 16: + break; + default: + HEAP32[$__mi >> 2] = $__mb; + } + return; +} + +function __ZN6vision32ComputeSubpixelHessianSameOctaveEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y) { + $H = $H | 0; + $b = $b | 0; + $lap0 = $lap0 | 0; + $lap1 = $lap1 | 0; + $lap2 = $lap2 | 0; + $x = $x | 0; + $y = $y | 0; + var $$sum = 0, $0 = 0, $100 = 0, $109 = 0, $11 = 0, $114 = 0, $115 = 0, $119 = 0, $121 = 0, $122 = 0, $125 = 0, $127 = 0, $129 = 0, $130 = 0, $133 = 0, $134 = 0.0, $135 = 0.0, $141 = 0.0, $153 = 0.0, $16 = 0, $161 = 0.0, $163 = 0, $17 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $26 = 0, $33 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $52 = 0, $57 = 0, $58 = 0, $62 = 0, $71 = 0, $76 = 0, $77 = 0, $81 = 0, $90 = 0, $95 = 0, $96 = 0, $Dx = 0, $Dxx = 0, $Dxy = 0, $Dy = 0, $Dyy = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 20 | 0; + $Dx = sp + 16 | 0; + $Dy = sp + 12 | 0; + $Dxx = sp + 8 | 0; + $Dyy = sp + 4 | 0; + $Dxy = sp; + if (($x | 0) > 0) { + $2 = $x + 1 | 0; + $4 = HEAP32[$lap1 + 4 >> 2] | 0; + if ($2 >>> 0 < $4 >>> 0) { + $22 = $y + -1 | 0; + if (($y | 0) > 0) { + $24 = $y + 1 | 0; + $26 = HEAP32[$lap1 + 8 >> 2] | 0; + if ($24 >>> 0 < $26 >>> 0) { + if ((HEAP32[$lap0 + 4 >> 2] | 0) != ($4 | 0)) { + $52 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24217) | 0, 23408) | 0, 34302) | 0, 311) | 0, 34309) | 0, 23899) | 0; + $57 = __ZNKSt3__18ios_base6getlocEv($52 + (HEAP32[(HEAP32[$52 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $57; + $58 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $62 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$58 >> 2] | 0) + 28 >> 2] & 63]($58, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($52, $62) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($52) | 0; + _abort(); + } + if (($4 | 0) != (HEAP32[$lap2 + 4 >> 2] | 0)) { + $71 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24616) | 0, 23408) | 0, 34302) | 0, 312) | 0, 34309) | 0, 23899) | 0; + $76 = __ZNKSt3__18ios_base6getlocEv($71 + (HEAP32[(HEAP32[$71 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $76; + $77 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $81 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$77 >> 2] | 0) + 28 >> 2] & 63]($77, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($71, $81) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($71) | 0; + _abort(); + } + if ((HEAP32[$lap0 + 8 >> 2] | 0) != ($26 | 0)) { + $90 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24269) | 0, 23408) | 0, 34302) | 0, 313) | 0, 34309) | 0, 23899) | 0; + $95 = __ZNKSt3__18ios_base6getlocEv($90 + (HEAP32[(HEAP32[$90 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $95; + $96 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $100 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$96 >> 2] | 0) + 28 >> 2] & 63]($96, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($90, $100) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($90) | 0; + _abort(); + } + if (($26 | 0) == (HEAP32[$lap2 + 8 >> 2] | 0)) { + $121 = (__ZNK6vision5Image3getIfEEPKT_j($lap0, $22) | 0) + ($x << 2) | 0; + $122 = __ZNK6vision5Image3getIfEEPKT_j($lap0, $y) | 0; + $125 = (__ZNK6vision5Image3getIfEEPKT_j($lap0, $24) | 0) + ($x << 2) | 0; + $127 = (__ZNK6vision5Image3getIfEEPKT_j($lap1, $y) | 0) + ($x << 2) | 0; + $129 = (__ZNK6vision5Image3getIfEEPKT_j($lap2, $22) | 0) + ($x << 2) | 0; + $130 = __ZNK6vision5Image3getIfEEPKT_j($lap2, $y) | 0; + $133 = (__ZNK6vision5Image3getIfEEPKT_j($lap2, $24) | 0) + ($x << 2) | 0; + __ZN6vision26ComputeSubpixelDerivativesERfS0_S0_S0_S0_RKNS_5ImageEii($Dx, $Dy, $Dxx, $Dyy, $Dxy, $lap1, $x, $y); + $134 = +HEAPF32[$130 + ($x << 2) >> 2]; + $135 = +HEAPF32[$122 + ($x << 2) >> 2]; + $141 = $134 + ($135 - +HEAPF32[$127 >> 2] * 2.0); + $$sum = $x + -1 | 0; + $153 = (+HEAPF32[$122 + ($$sum << 2) >> 2] - +HEAPF32[$122 + ($2 << 2) >> 2] + (+HEAPF32[$130 + ($2 << 2) >> 2] - +HEAPF32[$130 + ($$sum << 2) >> 2])) * .25; + $161 = (+HEAPF32[$121 >> 2] - +HEAPF32[$125 >> 2] + (+HEAPF32[$133 >> 2] - +HEAPF32[$129 >> 2])) * .25; + HEAP32[$H >> 2] = HEAP32[$Dxx >> 2]; + $163 = HEAP32[$Dxy >> 2] | 0; + HEAP32[$H + 4 >> 2] = $163; + HEAPF32[$H + 8 >> 2] = $153; + HEAP32[$H + 12 >> 2] = $163; + HEAP32[$H + 16 >> 2] = HEAP32[$Dyy >> 2]; + HEAPF32[$H + 20 >> 2] = $161; + HEAPF32[$H + 24 >> 2] = $153; + HEAPF32[$H + 28 >> 2] = $161; + HEAPF32[$H + 32 >> 2] = $141; + HEAPF32[$b >> 2] = -+HEAPF32[$Dx >> 2]; + HEAPF32[$b + 4 >> 2] = -+HEAPF32[$Dy >> 2]; + HEAPF32[$b + 8 >> 2] = -(($134 - $135) * .5); + STACKTOP = sp; + return; } else { - HEAP8[$dpnt$166 >> 0] = -1; - $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($40 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $40; - $43 = ($40 << 16 >> 16) * 7 | 0; - $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; - $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; - $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + $109 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24668) | 0, 23408) | 0, 34302) | 0, 314) | 0, 34309) | 0, 23899) | 0; + $114 = __ZNKSt3__18ios_base6getlocEv($109 + (HEAP32[(HEAP32[$109 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $114; + $115 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $119 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$115 >> 2] | 0) + 28 >> 2] & 63]($115, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($109, $119) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($109) | 0; + _abort(); + } + } + } + $33 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23767) | 0, 23408) | 0, 34302) | 0, 310) | 0, 34309) | 0, 23826) | 0; + $38 = __ZNKSt3__18ios_base6getlocEv($33 + (HEAP32[(HEAP32[$33 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $38; + $39 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $43 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$39 >> 2] | 0) + 28 >> 2] & 63]($39, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($33, $43) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($33) | 0; + _abort(); + } + } + $11 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23693) | 0, 23408) | 0, 34302) | 0, 309) | 0, 34309) | 0, 23751) | 0; + $16 = __ZNKSt3__18ios_base6getlocEv($11 + (HEAP32[(HEAP32[$11 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $21 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$17 >> 2] | 0) + 28 >> 2] & 63]($17, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($11, $21) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($11) | 0; + _abort(); +} + +function __ZNSt3__111__money_putIwE8__formatEPwRS2_S3_jPKwS5_RKNS_5ctypeIwEEbRKNS_10money_base7patternEwwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNSE_IwNSF_IwEENSH_IwEEEESQ_i($__mb, $__mi, $__me, $__flags, $__db, $__de, $__ct, $__neg, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd) { + $__mb = $__mb | 0; + $__mi = $__mi | 0; + $__me = $__me | 0; + $__flags = $__flags | 0; + $__db = $__db | 0; + $__de = $__de | 0; + $__ct = $__ct | 0; + $__neg = $__neg | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__sn = $__sn | 0; + $__fd = $__fd | 0; + var $$$0 = 0, $$0$i$i30 = 0, $$0$i$i954 = 0, $$01$i$i52 = 0, $$057 = 0, $$2 = 0, $$lcssa = 0, $$lcssa63 = 0, $$lcssa64 = 0, $$lcssa65 = 0, $$lcssa67 = 0, $0 = 0, $1 = 0, $10 = 0, $107 = 0, $108 = 0, $109 = 0, $110 = 0, $112 = 0, $120 = 0, $124 = 0, $126 = 0, $130 = 0, $131 = 0, $133 = 0, $135 = 0, $140 = 0, $142 = 0, $146 = 0, $149 = 0, $150 = 0, $151 = 0, $152 = 0, $155 = 0, $158 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $32 = 0, $33 = 0, $35 = 0, $37 = 0, $4 = 0, $41 = 0, $44 = 0, $45 = 0, $46 = 0, $49 = 0, $5 = 0, $53 = 0, $6 = 0, $61 = 0, $65 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $71 = 0, $79 = 0, $8 = 0, $82 = 0, $83 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $95 = 0, $96 = 0, $__d$0$lcssa = 0, $__d$031 = 0, $__d$1$lcssa = 0, $__d$137 = 0, $__d$2 = 0, $__d$347 = 0, $__f$0$lcssa = 0, $__f$038 = 0, $__f$143 = 0, $__gl$0$ph = 0, $__gl$050 = 0, $__gl$1 = 0, $__ig$049 = 0, $__ig$1 = 0, $__me$promoted = 0, $__ng$048 = 0, $__ng$1 = 0, $__p$056 = 0; + HEAP32[$__me >> 2] = $__mb; + $0 = $__sn + 4 | 0; + $1 = $__sn + 8 | 0; + $2 = $__sym + 4 | 0; + $4 = ($__flags & 512 | 0) == 0; + $5 = $__sym + 8 | 0; + $6 = ($__fd | 0) > 0; + $7 = $__grp + 4 | 0; + $8 = $__grp + 8 | 0; + $9 = $__grp + 1 | 0; + $10 = ($__fd | 0) > 0; + $$057 = $__db; + $__p$056 = 0; + while (1) { + switch (HEAP8[$__pat + $__p$056 >> 0] | 0) { + case 0: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + $$2 = $$057; + break; + } + case 1: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 44 >> 2] & 63]($__ct, 32) | 0; + $20 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $20 + 4; + HEAP32[$20 >> 2] = $19; + $$2 = $$057; + break; + } + case 3: + { + $22 = HEAP8[$__sn >> 0] | 0; + $24 = ($22 & 1) == 0; + if (!(($24 ? ($22 & 255) >>> 1 : HEAP32[$0 >> 2] | 0) | 0)) $$2 = $$057; else { + $32 = HEAP32[($24 ? $0 : HEAP32[$1 >> 2] | 0) >> 2] | 0; + $33 = HEAP32[$__me >> 2] | 0; + HEAP32[$__me >> 2] = $33 + 4; + HEAP32[$33 >> 2] = $32; + $$2 = $$057; + } + break; + } + case 2: + { + $35 = HEAP8[$__sym >> 0] | 0; + $37 = ($35 & 1) == 0; + $41 = $37 ? ($35 & 255) >>> 1 : HEAP32[$2 >> 2] | 0; + if ($4 | ($41 | 0) == 0) $$2 = $$057; else { + $44 = $37 ? $2 : HEAP32[$5 >> 2] | 0; + $45 = $44 + ($41 << 2) | 0; + $46 = HEAP32[$__me >> 2] | 0; + if ($41) { + $$0$i$i954 = $46; + $49 = $44; + while (1) { + HEAP32[$$0$i$i954 >> 2] = HEAP32[$49 >> 2]; + $49 = $49 + 4 | 0; + if (($49 | 0) == ($45 | 0)) break; else $$0$i$i954 = $$0$i$i954 + 4 | 0; + } + } + HEAP32[$__me >> 2] = $46 + ($41 << 2); + $$2 = $$057; + } + break; + } + case 4: + { + $53 = HEAP32[$__me >> 2] | 0; + $$$0 = $__neg ? $$057 + 4 | 0 : $$057; + L15 : do if ($$$0 >>> 0 < $__de >>> 0) { + $__d$031 = $$$0; + while (1) { + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 2048, HEAP32[$__d$031 >> 2] | 0) | 0)) { + $__d$0$lcssa = $__d$031; + break L15; + } + $61 = $__d$031 + 4 | 0; + if ($61 >>> 0 < $__de >>> 0) $__d$031 = $61; else { + $__d$0$lcssa = $61; break; } - $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $65 = $63 << 16 >> 16 > 0; - if ($59 << 16 >> 16 <= 0) { - if ($65) { - HEAP16[$pnt2$367 >> 1] = $63; - $165 = $64 * 7 | 0; - $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; - $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; - $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; - $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; - if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + } + } else $__d$0$lcssa = $$$0; while (0); + if ($6) { + if ($__d$0$lcssa >>> 0 > $$$0 >>> 0 & $10) { + $68 = HEAP32[$__me >> 2] | 0; + $__d$137 = $__d$0$lcssa; + $__f$038 = $__fd; + while (1) { + $65 = $__d$137 + -4 | 0; + $67 = $68 + 4 | 0; + HEAP32[$68 >> 2] = HEAP32[$65 >> 2]; + $69 = $__f$038 + -1 | 0; + $71 = ($__f$038 | 0) > 1; + if ($65 >>> 0 > $$$0 >>> 0 & $71) { + $68 = $67; + $__d$137 = $65; + $__f$038 = $69; + } else { + $$lcssa63 = $65; + $$lcssa64 = $69; + $$lcssa65 = $71; + $$lcssa67 = $67; break; } - $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($185 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $185; - $188 = ($185 << 16 >> 16) * 7 | 0; - $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; - $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; - $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; - $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; - if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; + } + HEAP32[$__me >> 2] = $$lcssa67; + $$lcssa = $$lcssa65; + $__d$1$lcssa = $$lcssa63; + $__f$0$lcssa = $$lcssa64; + } else { + $$lcssa = $10; + $__d$1$lcssa = $__d$0$lcssa; + $__f$0$lcssa = $__fd; + } + if ($$lcssa) $83 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 44 >> 2] & 63]($__ct, 48) | 0; else $83 = 0; + $__me$promoted = HEAP32[$__me >> 2] | 0; + $79 = $__f$0$lcssa + (($__f$0$lcssa | 0) < 0 ? ~$__f$0$lcssa : -1) | 0; + if (($__f$0$lcssa | 0) > 0) { + $82 = $__me$promoted; + $__f$143 = $__f$0$lcssa; + while (1) { + HEAP32[$82 >> 2] = $83; + if (($__f$143 | 0) > 1) { + $82 = $82 + 4 | 0; + $__f$143 = $__f$143 + -1 | 0; + } else break; + } + } + HEAP32[$__me >> 2] = $__me$promoted + ($79 + 2 << 2); + HEAP32[$__me$promoted + ($79 + 1 << 2) >> 2] = $__dp; + $__d$2 = $__d$1$lcssa; + } else $__d$2 = $__d$0$lcssa; + if (($__d$2 | 0) == ($$$0 | 0)) { + $90 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 44 >> 2] & 63]($__ct, 48) | 0; + $91 = HEAP32[$__me >> 2] | 0; + $92 = $91 + 4 | 0; + HEAP32[$__me >> 2] = $92; + HEAP32[$91 >> 2] = $90; + $130 = $92; + } else { + $93 = HEAP8[$__grp >> 0] | 0; + $95 = ($93 & 1) == 0; + $96 = HEAP32[$7 >> 2] | 0; + if (!(($95 ? ($93 & 255) >>> 1 : $96) | 0)) $__gl$0$ph = -1; else $__gl$0$ph = HEAP8[($95 ? $9 : HEAP32[$8 >> 2] | 0) >> 0] | 0; + if (($__d$2 | 0) != ($$$0 | 0)) { + $__d$347 = $__d$2; + $__gl$050 = $__gl$0$ph; + $__ig$049 = 0; + $__ng$048 = 0; + while (1) { + $107 = HEAP32[$__me >> 2] | 0; + if (($__ng$048 | 0) == ($__gl$050 | 0)) { + $108 = $107 + 4 | 0; + HEAP32[$__me >> 2] = $108; + HEAP32[$107 >> 2] = $__ts; + $109 = $__ig$049 + 1 | 0; + $110 = HEAP8[$__grp >> 0] | 0; + $112 = ($110 & 1) == 0; + if ($109 >>> 0 < ($112 ? ($110 & 255) >>> 1 : $96) >>> 0) { + $120 = HEAP8[($112 ? $9 : HEAP32[$8 >> 2] | 0) + $109 >> 0] | 0; + $126 = $108; + $__gl$1 = $120 << 24 >> 24 == 127 ? -1 : $120 << 24 >> 24; + $__ig$1 = $109; + $__ng$1 = 0; + } else { + $126 = $108; + $__gl$1 = $__ng$048; + $__ig$1 = $109; + $__ng$1 = 0; } - HEAP32[$202 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; } else { - $205 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $205; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; - $210 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $205; - break; + $126 = $107; + $__gl$1 = $__gl$050; + $__ig$1 = $__ig$049; + $__ng$1 = $__ng$048; + } + $__d$347 = $__d$347 + -4 | 0; + $124 = HEAP32[$__d$347 >> 2] | 0; + HEAP32[$__me >> 2] = $126 + 4; + HEAP32[$126 >> 2] = $124; + if (($__d$347 | 0) == ($$$0 | 0)) break; else { + $__gl$050 = $__gl$1; + $__ig$049 = $__ig$1; + $__ng$048 = $__ng$1 + 1 | 0; + } + } + } + $130 = HEAP32[$__me >> 2] | 0; + } + if (($53 | 0) == ($130 | 0)) $$2 = $$$0; else { + $131 = $130 + -4 | 0; + if ($53 >>> 0 < $131 >>> 0) { + $$01$i$i52 = $53; + $135 = $131; + do { + $133 = HEAP32[$$01$i$i52 >> 2] | 0; + HEAP32[$$01$i$i52 >> 2] = HEAP32[$135 >> 2]; + HEAP32[$135 >> 2] = $133; + $$01$i$i52 = $$01$i$i52 + 4 | 0; + $135 = $135 + -4 | 0; + } while ($$01$i$i52 >>> 0 < $135 >>> 0); + $$2 = $$$0; + } else $$2 = $$$0; + } + break; + } + default: + $$2 = $$057; + } + $__p$056 = $__p$056 + 1 | 0; + if (($__p$056 | 0) == 4) break; else $$057 = $$2; + } + $140 = HEAP8[$__sn >> 0] | 0; + $142 = ($140 & 1) == 0; + $146 = $142 ? ($140 & 255) >>> 1 : HEAP32[$0 >> 2] | 0; + if ($146 >>> 0 > 1) { + $149 = $142 ? $0 : HEAP32[$1 >> 2] | 0; + $150 = $149 + 4 | 0; + $151 = $149 + ($146 << 2) | 0; + $152 = HEAP32[$__me >> 2] | 0; + $155 = $151 - $150 | 0; + if (($146 | 0) != 1) { + $$0$i$i30 = $152; + $158 = $150; + while (1) { + HEAP32[$$0$i$i30 >> 2] = HEAP32[$158 >> 2]; + $158 = $158 + 4 | 0; + if (($158 | 0) == ($151 | 0)) break; else $$0$i$i30 = $$0$i$i30 + 4 | 0; + } + } + HEAP32[$__me >> 2] = $152 + ($155 >>> 2 << 2); + } + switch ($__flags & 176 | 0) { + case 32: + { + HEAP32[$__mi >> 2] = HEAP32[$__me >> 2]; + break; + } + case 16: + break; + default: + HEAP32[$__mi >> 2] = $__mb; + } + return; +} + +function _update_box($cinfo, $boxp) { + $cinfo = $cinfo | 0; + $boxp = $boxp | 0; + var $10 = 0, $106 = 0, $108 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $46 = 0, $47 = 0, $5 = 0, $6 = 0, $61 = 0, $62 = 0, $7 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, $91 = 0, $92 = 0, $c0$0108 = 0, $c0$0108$lcssa = 0, $c0$198 = 0, $c0$198$lcssa = 0, $c0$286 = 0, $c0$377 = 0, $c0$468 = 0, $c0$559 = 0, $c0$650 = 0, $c0max$0 = 0, $c0min$0 = 0, $c1$0105 = 0, $c1$195 = 0, $c1$288 = 0, $c1$288$lcssa = 0, $c1$379 = 0, $c1$379$lcssa = 0, $c1$463 = 0, $c1$554 = 0, $c1$645 = 0, $c1max$0 = 0, $c1min$0 = 0, $c2$0100 = 0, $c2$190 = 0, $c2$281 = 0, $c2$372 = 0, $c2$470 = 0, $c2$470$lcssa = 0, $c2$561 = 0, $c2$561$lcssa = 0, $c2$642 = 0, $c2max$0 = 0, $c2min$0 = 0, $ccount$0$lcssa = 0, $ccount$051 = 0, $ccount$1$lcssa = 0, $ccount$146 = 0, $ccount$2$ = 0, $ccount$2$lcssa = 0, $ccount$244 = 0, $histp$0101 = 0, $histp$191 = 0, $histp$282 = 0, $histp$373 = 0, $histp$464 = 0, $histp$555 = 0, $histp$643 = 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $4 = HEAP32[$boxp >> 2] | 0; + $5 = $boxp + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + $7 = $boxp + 8 | 0; + $8 = HEAP32[$7 >> 2] | 0; + $9 = $boxp + 12 | 0; + $10 = HEAP32[$9 >> 2] | 0; + $11 = $boxp + 16 | 0; + $12 = HEAP32[$11 >> 2] | 0; + $13 = $boxp + 20 | 0; + $14 = HEAP32[$13 >> 2] | 0; + L1 : do if (($4 | 0) < ($6 | 0)) { + $16 = ($8 | 0) > ($10 | 0); + $17 = ($12 | 0) > ($14 | 0); + $c0$0108 = $4; + L3 : while (1) { + $18 = $3 + ($c0$0108 << 2) | 0; + if (!$16) { + $c1$0105 = $8; + while (1) { + if (!$17) { + $c2$0100 = $12; + $histp$0101 = (HEAP32[$18 >> 2] | 0) + ($c1$0105 << 6) + ($12 << 1) | 0; + while (1) { + if (HEAP16[$histp$0101 >> 1] | 0) { + $c0$0108$lcssa = $c0$0108; + break L3; } + if (($c2$0100 | 0) < ($14 | 0)) { + $c2$0100 = $c2$0100 + 1 | 0; + $histp$0101 = $histp$0101 + 2 | 0; + } else break; } - if ($65) { - $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - if (($68 | 0) > ($71 | 0)) { - HEAP16[$pnt2$367 >> 1] = $71; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $88 = $71; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $88 = $71; - } else { - HEAP16[$pnt2$367 >> 1] = $68; - if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $88 = $68; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $88 = $68; + } + if (($c1$0105 | 0) < ($10 | 0)) $c1$0105 = $c1$0105 + 1 | 0; else break; + } + } + if (($c0$0108 | 0) < ($6 | 0)) $c0$0108 = $c0$0108 + 1 | 0; else { + $c0min$0 = $4; + break L1; + } + } + HEAP32[$boxp >> 2] = $c0$0108$lcssa; + $c0min$0 = $c0$0108$lcssa; + } else $c0min$0 = $4; while (0); + L17 : do if (($6 | 0) > ($c0min$0 | 0)) { + $31 = ($8 | 0) > ($10 | 0); + $32 = ($12 | 0) > ($14 | 0); + $c0$198 = $6; + L19 : while (1) { + $33 = $3 + ($c0$198 << 2) | 0; + if (!$31) { + $c1$195 = $8; + while (1) { + if (!$32) { + $c2$190 = $12; + $histp$191 = (HEAP32[$33 >> 2] | 0) + ($c1$195 << 6) + ($12 << 1) | 0; + while (1) { + if (HEAP16[$histp$191 >> 1] | 0) { + $c0$198$lcssa = $c0$198; + break L19; } - $90 = ($88 << 16 >> 16) * 7 | 0; - $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; - $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; - $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; + if (($c2$190 | 0) < ($14 | 0)) { + $c2$190 = $c2$190 + 1 | 0; + $histp$191 = $histp$191 + 2 | 0; + } else break; } - $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($106 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $59; - $146 = $60 * 7 | 0; - $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; - $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; - $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; - $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; - if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; + } + if (($c1$195 | 0) < ($10 | 0)) $c1$195 = $c1$195 + 1 | 0; else break; + } + } + if (($c0$198 | 0) > ($c0min$0 | 0)) $c0$198 = $c0$198 + -1 | 0; else { + $c0max$0 = $6; + break L17; + } + } + HEAP32[$5 >> 2] = $c0$198$lcssa; + $c0max$0 = $c0$198$lcssa; + } else $c0max$0 = $6; while (0); + L33 : do if (($8 | 0) < ($10 | 0)) { + $46 = ($c0max$0 | 0) < ($c0min$0 | 0); + $47 = ($12 | 0) > ($14 | 0); + $c1$288 = $8; + L35 : while (1) { + if (!$46) { + $c0$286 = $c0min$0; + while (1) { + if (!$47) { + $c2$281 = $12; + $histp$282 = (HEAP32[$3 + ($c0$286 << 2) >> 2] | 0) + ($c1$288 << 6) + ($12 << 1) | 0; + while (1) { + if (HEAP16[$histp$282 >> 1] | 0) { + $c1$288$lcssa = $c1$288; + break L35; + } + if (($c2$281 | 0) < ($14 | 0)) { + $c2$281 = $c2$281 + 1 | 0; + $histp$282 = $histp$282 + 2 | 0; + } else break; } - $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($111 | 0) > ($114 | 0)) { - HEAP16[$pnt2$367 >> 1] = $114; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $131 = $114; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $131 = $114; - } else { - HEAP16[$pnt2$367 >> 1] = $111; - if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $131 = $111; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $131 = $111; + } + if (($c0$286 | 0) < ($c0max$0 | 0)) $c0$286 = $c0$286 + 1 | 0; else break; + } + } + if (($c1$288 | 0) < ($10 | 0)) $c1$288 = $c1$288 + 1 | 0; else { + $c1min$0 = $8; + break L33; + } + } + HEAP32[$7 >> 2] = $c1$288$lcssa; + $c1min$0 = $c1$288$lcssa; + } else $c1min$0 = $8; while (0); + L49 : do if (($10 | 0) > ($c1min$0 | 0)) { + $61 = ($c0max$0 | 0) < ($c0min$0 | 0); + $62 = ($12 | 0) > ($14 | 0); + $c1$379 = $10; + L51 : while (1) { + if (!$61) { + $c0$377 = $c0min$0; + while (1) { + if (!$62) { + $c2$372 = $12; + $histp$373 = (HEAP32[$3 + ($c0$377 << 2) >> 2] | 0) + ($c1$379 << 6) + ($12 << 1) | 0; + while (1) { + if (HEAP16[$histp$373 >> 1] | 0) { + $c1$379$lcssa = $c1$379; + break L51; + } + if (($c2$372 | 0) < ($14 | 0)) { + $c2$372 = $c2$372 + 1 | 0; + $histp$373 = $histp$373 + 2 | 0; + } else break; } - $133 = ($131 << 16 >> 16) * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $225 = $pnt$168 + 3 | 0; - $226 = $pnt2$367 + 2 | 0; - $227 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $227; - $pnt$1$lcssa = $225; - $pnt2$3$lcssa = $226; - $wk_max$1$lcssa = $wk_max$2; - break; + } + if (($c0$377 | 0) < ($c0max$0 | 0)) $c0$377 = $c0$377 + 1 | 0; else break; + } + } + if (($c1$379 | 0) > ($c1min$0 | 0)) $c1$379 = $c1$379 + -1 | 0; else { + $c1max$0 = $10; + break L49; + } + } + HEAP32[$9 >> 2] = $c1$379$lcssa; + $c1max$0 = $c1$379$lcssa; + } else $c1max$0 = $10; while (0); + L65 : do if (($12 | 0) < ($14 | 0)) { + $76 = ($c0max$0 | 0) < ($c0min$0 | 0); + $77 = ($c1max$0 | 0) < ($c1min$0 | 0); + $c2$470 = $12; + L67 : while (1) { + if (!$76) { + $c0$468 = $c0min$0; + while (1) { + if (!$77) { + $c1$463 = $c1min$0; + $histp$464 = (HEAP32[$3 + ($c0$468 << 2) >> 2] | 0) + ($c1min$0 << 6) + ($c2$470 << 1) | 0; + while (1) { + if (HEAP16[$histp$464 >> 1] | 0) { + $c2$470$lcssa = $c2$470; + break L67; + } + if (($c1$463 | 0) < ($c1max$0 | 0)) { + $c1$463 = $c1$463 + 1 | 0; + $histp$464 = $histp$464 + 64 | 0; + } else break; + } + } + if (($c0$468 | 0) < ($c0max$0 | 0)) $c0$468 = $c0$468 + 1 | 0; else break; + } + } + if (($c2$470 | 0) < ($14 | 0)) $c2$470 = $c2$470 + 1 | 0; else { + $c2min$0 = $12; + break L65; + } + } + HEAP32[$11 >> 2] = $c2$470$lcssa; + $c2min$0 = $c2$470$lcssa; + } else $c2min$0 = $12; while (0); + L81 : do if (($14 | 0) > ($c2min$0 | 0)) { + $91 = ($c0max$0 | 0) < ($c0min$0 | 0); + $92 = ($c1max$0 | 0) < ($c1min$0 | 0); + $c2$561 = $14; + L83 : while (1) { + if (!$91) { + $c0$559 = $c0min$0; + while (1) { + if (!$92) { + $c1$554 = $c1min$0; + $histp$555 = (HEAP32[$3 + ($c0$559 << 2) >> 2] | 0) + ($c1min$0 << 6) + ($c2$561 << 1) | 0; + while (1) { + if (HEAP16[$histp$555 >> 1] | 0) { + $c2$561$lcssa = $c2$561; + break L83; + } + if (($c1$554 | 0) < ($c1max$0 | 0)) { + $c1$554 = $c1$554 + 1 | 0; + $histp$555 = $histp$555 + 64 | 0; + } else break; + } + } + if (($c0$559 | 0) < ($c0max$0 | 0)) $c0$559 = $c0$559 + 1 | 0; else break; + } + } + if (($c2$561 | 0) > ($c2min$0 | 0)) $c2$561 = $c2$561 + -1 | 0; else { + $c2max$0 = $14; + break L81; + } + } + HEAP32[$13 >> 2] = $c2$561$lcssa; + $c2max$0 = $c2$561$lcssa; + } else $c2max$0 = $14; while (0); + $106 = $c0max$0 - $c0min$0 << 4; + $108 = ($c1max$0 - $c1min$0 | 0) * 12 | 0; + $110 = $c2max$0 - $c2min$0 << 3; + $115 = (Math_imul($108, $108) | 0) + (Math_imul($106, $106) | 0) + (Math_imul($110, $110) | 0) | 0; + HEAP32[$boxp + 24 >> 2] = $115; + if (($c0max$0 | 0) < ($c0min$0 | 0)) $ccount$0$lcssa = 0; else { + $118 = ($c1max$0 | 0) < ($c1min$0 | 0); + $119 = ($c2max$0 | 0) < ($c2min$0 | 0); + $c0$650 = $c0min$0; + $ccount$051 = 0; + while (1) { + $120 = $3 + ($c0$650 << 2) | 0; + if ($118) $ccount$1$lcssa = $ccount$051; else { + $c1$645 = $c1min$0; + $ccount$146 = $ccount$051; + while (1) { + if ($119) $ccount$2$lcssa = $ccount$146; else { + $c2$642 = $c2min$0; + $ccount$244 = $ccount$146; + $histp$643 = (HEAP32[$120 >> 2] | 0) + ($c1$645 << 6) + ($c2min$0 << 1) | 0; + while (1) { + $ccount$2$ = ((HEAP16[$histp$643 >> 1] | 0) != 0 & 1) + $ccount$244 | 0; + if (($c2$642 | 0) < ($c2max$0 | 0)) { + $c2$642 = $c2$642 + 1 | 0; + $ccount$244 = $ccount$2$; + $histp$643 = $histp$643 + 2 | 0; + } else { + $ccount$2$lcssa = $ccount$2$; + break; + } + } + } + if (($c1$645 | 0) < ($c1max$0 | 0)) { + $c1$645 = $c1$645 + 1 | 0; + $ccount$146 = $ccount$2$lcssa; } else { - $dpnt$166 = $227; - $pnt$168 = $225; - $pnt2$367 = $226; - $wk_max$159 = $wk_max$2; + $ccount$1$lcssa = $ccount$2$lcssa; + break; } } + } + if (($c0$650 | 0) < ($c0max$0 | 0)) { + $c0$650 = $c0$650 + 1 | 0; + $ccount$051 = $ccount$1$lcssa; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $ccount$0$lcssa = $ccount$1$lcssa; + break; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + } + HEAP32[$boxp + 28 >> 2] = $ccount$0$lcssa; + return; +} + +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryEPKNS_8KeyframeILi96EEE($this, $query_keyframe) { + $this = $this | 0; + $query_keyframe = $query_keyframe | 0; + var $$010 = 0, $$lcssa = 0, $$lcssa28 = 0, $$pre$i$i$i = 0, $$pre$i$i$i18 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $108 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $34 = 0, $37 = 0, $4 = 0, $41 = 0, $44 = 0, $48 = 0, $5 = 0, $51 = 0, $55 = 0, $57 = 0, $58 = 0, $59 = 0, $66 = 0, $67 = 0, $7 = 0, $70 = 0, $74 = 0, $77 = 0, $8 = 0, $81 = 0, $82 = 0, $84 = 0, $85 = 0, $9 = 0, $90 = 0, $91 = 0, $93 = 0, $98 = 0, $99 = 0, $H = 0, $_ScopedTimer = 0, $_ScopedTimer1 = 0, $_ScopedTimer10 = 0, $_ScopedTimer12 = 0, $_ScopedTimer13 = 0, $_ScopedTimer15 = 0, $_ScopedTimer3 = 0, $_ScopedTimer4 = 0, $_ScopedTimer6 = 0, $_ScopedTimer8 = 0, $hough_matches = 0, $inliers = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 384 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $_ScopedTimer = sp + 288 | 0; + $_ScopedTimer1 = sp + 256 | 0; + $hough_matches = sp + 332 | 0; + $_ScopedTimer3 = sp + 224 | 0; + $H = sp + 344 | 0; + $_ScopedTimer4 = sp + 192 | 0; + $inliers = sp + 320 | 0; + $_ScopedTimer6 = sp + 160 | 0; + $_ScopedTimer8 = sp + 128 | 0; + $_ScopedTimer10 = sp + 96 | 0; + $_ScopedTimer12 = sp + 64 | 0; + $_ScopedTimer13 = sp + 32 | 0; + $_ScopedTimer15 = sp; + $0 = $this + 12 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $this + 16 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa28 = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa28; + } + $7 = $this + 24 | 0; + HEAP32[$7 >> 2] = -1; + $8 = $query_keyframe + 8 | 0; + $9 = $query_keyframe + 24 | 0; + $11 = HEAP32[$this + 80 >> 2] | 0; + $12 = $this + 8 | 0; + $13 = $this + 636 | 0; + $14 = $this + 652 | 0; + $15 = $query_keyframe + 4 | 0; + $16 = $hough_matches + 4 | 0; + $17 = $hough_matches + 8 | 0; + $18 = $this + 788 | 0; + $19 = $inliers + 4 | 0; + $20 = $inliers + 8 | 0; + $21 = $this + 4 | 0; + $22 = $this + 28 | 0; + $23 = $this + 20 | 0; + $24 = $inliers + 8 | 0; + if ($11) { + $107 = $11; + $30 = $11; + while (1) { + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer, 28344); + $29 = $30 + 12 | 0; + $31 = HEAP32[$29 >> 2] | 0; + $32 = $31 + 8 | 0; + if (!(HEAP8[$12 >> 0] | 0)) { + $37 = __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_($13, $8, $32) | 0; + if ($37 >>> 0 < (HEAP32[$this >> 2] | 0) >>> 0) $$010 = 4; else label = 9; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 6 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $34 = __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_RKNS_28BinaryHierarchicalClusteringILi96EEE($13, $8, $32, $31 + 36 | 0) | 0; + if ($34 >>> 0 < (HEAP32[$this >> 2] | 0) >>> 0) $$010 = 4; else label = 9; + } + if ((label | 0) == 9) { + label = 0; + $$010 = 0; + } + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer); + if (!$$010) { + $41 = (HEAP32[$29 >> 2] | 0) + 24 | 0; + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer1, 28361); + $44 = HEAP32[$29 >> 2] | 0; + $48 = __ZN6vision19FindHoughSimilarityERNS_21HoughSimilarityVotingERKNSt3__16vectorINS_12FeaturePointENS2_9allocatorIS4_EEEES9_RKNS3_INS_7match_tENS5_ISA_EEEEiiii($14, $9, $41, $13, HEAP32[$query_keyframe >> 2] | 0, HEAP32[$15 >> 2] | 0, HEAP32[$44 >> 2] | 0, HEAP32[$44 + 4 >> 2] | 0) | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer1); + if (!($48 >> 31 & 4)) { + HEAP32[$hough_matches >> 2] = 0; + HEAP32[$16 >> 2] = 0; + HEAP32[$17 >> 2] = 0; + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer3, 28378); + __ZN6vision16FindHoughMatchesERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEERKNS_21HoughSimilarityVotingERKS5_if($hough_matches, $14, $13, $48, 1.0); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer3); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer4, 28401); + $51 = HEAP32[$29 >> 2] | 0; + $55 = __ZN6vision18EstimateHomographyEPfRKNSt3__16vectorINS_12FeaturePointENS1_9allocatorIS3_EEEES8_RKNS2_INS_7match_tENS4_IS9_EEEERNS_16RobustHomographyIfEEii($H, $9, $41, $hough_matches, $18, HEAP32[$51 >> 2] | 0, HEAP32[$51 + 4 >> 2] | 0) | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer4); + if ($55) { + HEAP32[$inliers >> 2] = 0; + HEAP32[$19 >> 2] = 0; + HEAP32[$20 >> 2] = 0; + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer6, 28425); + __ZN6vision11FindInliersERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEEPKfRKNS1_INS_12FeaturePointENS3_IS9_EEEESD_RKS5_f($inliers, $H, $9, $41, $hough_matches, +HEAPF32[$21 >> 2]); + $57 = HEAP32[$19 >> 2] | 0; + $58 = HEAP32[$inliers >> 2] | 0; + $59 = HEAP32[$this >> 2] | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer6); + if ($57 - $58 >> 3 >>> 0 >= $59 >>> 0) { + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer8, 28442); + $66 = __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_PKff($13, $8, (HEAP32[$29 >> 2] | 0) + 8 | 0, $H, 10.0) | 0; + $67 = HEAP32[$this >> 2] | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer8); + if ($66 >>> 0 >= $67 >>> 0) { + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer10, 28459); + $70 = HEAP32[$29 >> 2] | 0; + $74 = __ZN6vision19FindHoughSimilarityERNS_21HoughSimilarityVotingERKNSt3__16vectorINS_12FeaturePointENS2_9allocatorIS4_EEEES9_RKNS3_INS_7match_tENS5_ISA_EEEEiiii($14, $9, $41, $13, HEAP32[$query_keyframe >> 2] | 0, HEAP32[$15 >> 2] | 0, HEAP32[$70 >> 2] | 0, HEAP32[$70 + 4 >> 2] | 0) | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer10); + if (!($74 >> 31 & 4)) { + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer12, 28476); + __ZN6vision16FindHoughMatchesERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEERKNS_21HoughSimilarityVotingERKS5_if($hough_matches, $14, $13, $74, 1.0); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer12); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer13, 28499); + $77 = HEAP32[$29 >> 2] | 0; + $81 = __ZN6vision18EstimateHomographyEPfRKNSt3__16vectorINS_12FeaturePointENS1_9allocatorIS3_EEEES8_RKNS2_INS_7match_tENS4_IS9_EEEERNS_16RobustHomographyIfEEii($H, $9, $41, $hough_matches, $18, HEAP32[$77 >> 2] | 0, HEAP32[$77 + 4 >> 2] | 0) | 0; + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer13); + if ($81) { + $82 = HEAP32[$inliers >> 2] | 0; + $$pre$i$i$i18 = HEAP32[$19 >> 2] | 0; + if (($$pre$i$i$i18 | 0) != ($82 | 0)) { + $85 = $$pre$i$i$i18; + while (1) { + $84 = $85 + -8 | 0; + if (($84 | 0) == ($82 | 0)) { + $$lcssa = $84; + break; + } else $85 = $84; + } + HEAP32[$19 >> 2] = $$lcssa; + } + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer15, 28523); + __ZN6vision11FindInliersERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEEPKfRKNS1_INS_12FeaturePointENS3_IS9_EEEESD_RKS5_f($inliers, $H, $9, $41, $hough_matches, +HEAPF32[$21 >> 2]); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer15); + $90 = HEAP32[$19 >> 2] | 0; + $91 = HEAP32[$inliers >> 2] | 0; + $93 = $90 - $91 >> 3; + if ($93 >>> 0 >= (HEAP32[$this >> 2] | 0) >>> 0) { + $98 = HEAP32[$2 >> 2] | 0; + $99 = HEAP32[$0 >> 2] | 0; + if ($93 >>> 0 > $98 - $99 >> 3 >>> 0) { + dest = $22; + src = $H; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$0 >> 2] = $91; + HEAP32[$inliers >> 2] = $99; + HEAP32[$2 >> 2] = $90; + HEAP32[$19 >> 2] = $98; + $103 = HEAP32[$23 >> 2] | 0; + HEAP32[$23 >> 2] = HEAP32[$24 >> 2]; + HEAP32[$24 >> 2] = $103; + HEAP32[$7 >> 2] = HEAP32[$30 + 8 >> 2]; + } + } + } + } + } + } + __ZNSt3__113__vector_baseIN6vision7match_tENS_9allocatorIS2_EEED2Ev($inliers); + } + __ZNSt3__113__vector_baseIN6vision7match_tENS_9allocatorIS2_EEED2Ev($hough_matches); + } + } + $108 = HEAP32[$107 >> 2] | 0; + if (!$108) break; else { + $107 = $108; + $30 = $108; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + } + STACKTOP = sp; + return (HEAP32[$7 >> 2] | 0) > -1 | 0; +} + +function _arMultiReadConfigFile($filename, $pattHandle) { + $filename = $filename | 0; + $pattHandle = $pattHandle | 0; + var $$0 = 0, $0 = 0, $108 = 0, $11 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $21 = 0, $28 = 0, $34 = 0, $4 = 0, $45 = 0, $49 = 0, $50 = 0, $52 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $79 = 0.0, $83 = 0.0, $9 = 0, $buf = 0, $dummy = 0, $i$052 = 0, $i$052$lcssa64 = 0, $i$052$lcssa65 = 0, $i$052$lcssa66 = 0, $j$0 = 0, $j$150 = 0, $num = 0, $pattPath = 0, $patt_type$0$lcssa = 0, $patt_type$051 = 0, $patt_type$1 = 0, $t1 = 0, $t2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer17 = 0, $vararg_buffer21 = 0, $vararg_buffer24 = 0, $vararg_buffer28 = 0, $vararg_buffer31 = 0, $vararg_buffer35 = 0, $vararg_buffer41 = 0, $vararg_buffer45 = 0, $vararg_buffer49 = 0, $vararg_buffer5 = 0, $vararg_buffer55 = 0, $vararg_buffer59 = 0, $vararg_buffer8 = 0, $wpos3d = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 2544 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer59 = sp + 208 | 0; + $vararg_buffer55 = sp + 200 | 0; + $vararg_buffer49 = sp + 184 | 0; + $vararg_buffer45 = sp + 176 | 0; + $vararg_buffer41 = sp + 168 | 0; + $vararg_buffer35 = sp + 152 | 0; + $vararg_buffer31 = sp + 144 | 0; + $vararg_buffer28 = sp + 136 | 0; + $vararg_buffer24 = sp + 128 | 0; + $vararg_buffer21 = sp + 120 | 0; + $vararg_buffer17 = sp + 112 | 0; + $vararg_buffer13 = sp + 104 | 0; + $vararg_buffer11 = sp + 96 | 0; + $vararg_buffer8 = sp + 88 | 0; + $vararg_buffer5 = sp + 80 | 0; + $vararg_buffer1 = sp + 72 | 0; + $vararg_buffer = sp + 64 | 0; + $wpos3d = sp; + $buf = sp + 2280 | 0; + $pattPath = sp + 232 | 0; + $dummy = sp + 224 | 0; + $num = sp + 220 | 0; + $t1 = sp + 216 | 0; + $t2 = sp + 212 | 0; + $0 = _fopen($filename, 20518) | 0; + L1 : do if (!$0) { + HEAP32[$vararg_buffer >> 2] = $filename; + _arLog(3, 19491, $vararg_buffer); + $2 = ___errno_location() | 0; + $4 = _strerror(HEAP32[$2 >> 2] | 0) | 0; + HEAP32[$vararg_buffer1 >> 2] = 56692; + HEAP32[$vararg_buffer1 + 4 >> 2] = $4; + _arLog(3, 20546, $vararg_buffer1); + $$0 = 0; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $236 = HEAP32[$wk$443 >> 2] | 0; - if (($236 | 0) == ($i$341 | 0)) { - $242 = $j$142; - $j$2 = $j$142 + 1 | 0; + _get_buff($buf, $0); + HEAP32[$vararg_buffer5 >> 2] = $num; + if ((_sscanf($buf, 20552, $vararg_buffer5) | 0) != 1) { + HEAP32[$vararg_buffer8 >> 2] = $filename; + _arLog(3, 19544, $vararg_buffer8); + _fclose($0) | 0; + $$0 = 0; + break; + } + $7 = HEAP32[$num >> 2] | 0; + $9 = _malloc($7 * 320 | 0) | 0; + if (!$9) { + _arLog(3, 21359, $vararg_buffer11); + _exit(1); + } + $11 = $wpos3d + 8 | 0; + $12 = $wpos3d + 16 | 0; + $13 = $wpos3d + 24 | 0; + $14 = $wpos3d + 32 | 0; + $15 = $wpos3d + 40 | 0; + $16 = $wpos3d + 48 | 0; + $17 = $wpos3d + 56 | 0; + $18 = ($pattHandle | 0) == 0; + L10 : do if (($7 | 0) > 0) { + $i$052 = 0; + $patt_type$051 = 0; + L11 : while (1) { + _get_buff($buf, $0); + $20 = $9 + ($i$052 * 320 | 0) | 0; + $21 = $9 + ($i$052 * 320 | 0) + 312 | 0; + HEAP32[$vararg_buffer13 >> 2] = $21; + HEAP32[$vararg_buffer13 + 4 >> 2] = $dummy; + if ((_sscanf($buf, 19645, $vararg_buffer13) | 0) == 1) { + $34 = HEAP32[$21 >> 2] | 0; + HEAP32[$20 >> 2] = ($34 & -32768 | 0) == 0 & 0 == 0 ? $34 & 32767 : 0; + HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 1; + $patt_type$1 = $patt_type$051 | 2; } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + if ($18) { + label = 10; + break; + } + if (!(_arUtilGetDirectoryNameFromPath($pattPath, $filename, 2048, 1) | 0)) { + label = 12; + break; + } + _strncat($pattPath, $buf, 2047 - (_strlen($pattPath) | 0) | 0) | 0; + $28 = _arPattLoad($pattHandle, $pattPath) | 0; + HEAP32[$20 >> 2] = $28; + if (($28 | 0) < 0) { + label = 14; + break; + } + HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 0; + $patt_type$1 = $patt_type$051 | 1; } - HEAP32[$wk$443 >> 2] = $242; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + _get_buff($buf, $0); + $45 = $9 + ($i$052 * 320 | 0) + 8 | 0; + HEAP32[$vararg_buffer28 >> 2] = $45; + if ((_sscanf($buf, 19941, $vararg_buffer28) | 0) != 1) { + $i$052$lcssa64 = $i$052; + label = 18; break; } + _get_buff($buf, $0); + $49 = $9 + ($i$052 * 320 | 0) + 16 | 0; + $50 = $9 + ($i$052 * 320 | 0) + 24 | 0; + $52 = $9 + ($i$052 * 320 | 0) + 40 | 0; + HEAP32[$vararg_buffer35 >> 2] = $49; + HEAP32[$vararg_buffer35 + 4 >> 2] = $50; + HEAP32[$vararg_buffer35 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 32; + HEAP32[$vararg_buffer35 + 12 >> 2] = $52; + if ((_sscanf($buf, 20050, $vararg_buffer35) | 0) == 4) $j$0 = 1; else { + HEAP32[$vararg_buffer41 >> 2] = $t1; + HEAP32[$vararg_buffer41 + 4 >> 2] = $t2; + if ((_sscanf($buf, 20066, $vararg_buffer41) | 0) == 2) $j$0 = 0; else { + $i$052$lcssa65 = $i$052; + label = 21; + break; + } + } + do { + _get_buff($buf, $0); + HEAP32[$vararg_buffer49 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5); + HEAP32[$vararg_buffer49 + 4 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 8; + HEAP32[$vararg_buffer49 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 16; + HEAP32[$vararg_buffer49 + 12 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 24; + if ((_sscanf($buf, 20050, $vararg_buffer49) | 0) != 4) { + $i$052$lcssa66 = $i$052; + label = 23; + break L11; + } + $j$0 = $j$0 + 1 | 0; + } while (($j$0 | 0) < 3); + _arUtilMatInv($49, $9 + ($i$052 * 320 | 0) + 112 | 0) | 0; + $68 = +HEAPF64[$45 >> 3]; + $69 = $68 * -.5; + HEAPF64[$wpos3d >> 3] = $69; + $70 = $68 * .5; + HEAPF64[$11 >> 3] = $70; + HEAPF64[$12 >> 3] = $70; + HEAPF64[$13 >> 3] = $70; + HEAPF64[$14 >> 3] = $70; + HEAPF64[$15 >> 3] = $69; + HEAPF64[$16 >> 3] = $69; + HEAPF64[$17 >> 3] = $69; + $71 = $9 + ($i$052 * 320 | 0) + 48 | 0; + $72 = $9 + ($i$052 * 320 | 0) + 56 | 0; + $73 = $9 + ($i$052 * 320 | 0) + 72 | 0; + $74 = $9 + ($i$052 * 320 | 0) + 80 | 0; + $75 = $9 + ($i$052 * 320 | 0) + 88 | 0; + $76 = $9 + ($i$052 * 320 | 0) + 104 | 0; + $j$150 = 0; + do { + $79 = +HEAPF64[$wpos3d + ($j$150 << 4) >> 3]; + $83 = +HEAPF64[$wpos3d + ($j$150 << 4) + 8 >> 3]; + HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) >> 3] = +HEAPF64[$52 >> 3] + (+HEAPF64[$49 >> 3] * $79 + +HEAPF64[$50 >> 3] * $83); + HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 8 >> 3] = +HEAPF64[$73 >> 3] + (+HEAPF64[$71 >> 3] * $79 + +HEAPF64[$72 >> 3] * $83); + HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 16 >> 3] = +HEAPF64[$76 >> 3] + (+HEAPF64[$74 >> 3] * $79 + +HEAPF64[$75 >> 3] * $83); + $j$150 = $j$150 + 1 | 0; + } while (($j$150 | 0) != 4); + $i$052 = $i$052 + 1 | 0; + if (($i$052 | 0) >= (HEAP32[$num >> 2] | 0)) { + $patt_type$0$lcssa = $patt_type$1; + break L10; + } else $patt_type$051 = $patt_type$1; + } + if ((label | 0) == 10) { + HEAP32[$vararg_buffer17 >> 2] = $filename; + HEAP32[$vararg_buffer17 + 4 >> 2] = $buf; + _arLog(3, 19652, $vararg_buffer17); + } else if ((label | 0) == 12) { + HEAP32[$vararg_buffer21 >> 2] = $filename; + _arLog(3, 19780, $vararg_buffer21); + } else if ((label | 0) == 14) { + HEAP32[$vararg_buffer24 >> 2] = $filename; + HEAP32[$vararg_buffer24 + 4 >> 2] = $pattPath; + _arLog(3, 19864, $vararg_buffer24); + } else if ((label | 0) == 18) { + HEAP32[$vararg_buffer31 >> 2] = $filename; + HEAP32[$vararg_buffer31 + 4 >> 2] = $i$052$lcssa64 + 1; + _arLog(3, 19945, $vararg_buffer31); + } else if ((label | 0) == 21) { + HEAP32[$vararg_buffer45 >> 2] = $filename; + HEAP32[$vararg_buffer45 + 4 >> 2] = $i$052$lcssa65 + 1; + _arLog(3, 20072, $vararg_buffer45); + } else if ((label | 0) == 23) { + HEAP32[$vararg_buffer55 >> 2] = $filename; + HEAP32[$vararg_buffer55 + 4 >> 2] = $i$052$lcssa66 + 1; + _arLog(3, 20072, $vararg_buffer55); } + _fclose($0) | 0; + _free($9); + $$0 = 0; + break L1; + } else $patt_type$0$lcssa = 0; while (0); + _fclose($0) | 0; + $108 = _malloc(136) | 0; + if (!$108) { + _arLog(3, 21359, $vararg_buffer59); + _exit(1); } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $254 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + HEAP32[$108 >> 2] = $9; + HEAP32[$108 + 4 >> 2] = HEAP32[$num >> 2]; + HEAP32[$108 + 104 >> 2] = 0; + do if (($patt_type$0$lcssa & 3 | 0) == 3) HEAP32[$108 + 108 >> 2] = 2; else { + $118 = $108 + 108 | 0; + if (!($patt_type$0$lcssa & 1)) { + HEAP32[$118 >> 2] = 1; + break; + } else { + HEAP32[$118 >> 2] = 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$537 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } while (0); + HEAPF64[$108 + 112 >> 3] = .5; + HEAPF64[$108 + 120 >> 3] = .5; + $$0 = $108; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__111__money_putIcE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_Ri($__intl, $__neg, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd) { + $__intl = $__intl | 0; + $__neg = $__neg | 0; + $__loc = $__loc | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__sn = $__sn | 0; + $__fd = $__fd | 0; + var $$pre$phi32Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $115 = 0, $119 = 0, $12 = 0, $13 = 0, $16 = 0, $2 = 0, $3 = 0, $31 = 0, $4 = 0, $47 = 0, $5 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0, $9 = 0, $99 = 0, $storemerge = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 108 | 0; + $1 = sp + 96 | 0; + $2 = sp + 92 | 0; + $3 = sp + 80 | 0; + $4 = sp + 68 | 0; + $5 = sp + 56 | 0; + $6 = sp + 52 | 0; + $7 = sp + 40 | 0; + $8 = sp + 36 | 0; + $9 = sp + 24 | 0; + $10 = sp + 12 | 0; + $11 = sp; + if ($__intl) { + $12 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13288) | 0; + $13 = HEAP32[$12 >> 2] | 0; + if ($__neg) { + FUNCTION_TABLE_vii[HEAP32[$13 + 44 >> 2] & 63]($0, $12); + $16 = HEAP32[$0 >> 2] | 0; + HEAP8[$__pat >> 0] = $16; + HEAP8[$__pat + 1 >> 0] = $16 >> 8; + HEAP8[$__pat + 2 >> 0] = $16 >> 16; + HEAP8[$__pat + 3 >> 0] = $16 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 32 >> 2] & 63]($1, $12); + if (!(HEAP8[$__sn >> 0] & 1)) { + HEAP8[$__sn + 1 >> 0] = 0; + HEAP8[$__sn >> 0] = 0; + } else { + HEAP8[HEAP32[$__sn + 8 >> 2] >> 0] = 0; + HEAP32[$__sn + 4 >> 2] = 0; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $321 = $labelInfo + 12 + ($i$636 << 2) | 0; - $324 = $i$636 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$1 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($1); + $$pre$phiZ2D = $12; + } else { + FUNCTION_TABLE_vii[HEAP32[$13 + 40 >> 2] & 63]($2, $12); + $31 = HEAP32[$2 >> 2] | 0; + HEAP8[$__pat >> 0] = $31; + HEAP8[$__pat + 1 >> 0] = $31 >> 8; + HEAP8[$__pat + 2 >> 0] = $31 >> 16; + HEAP8[$__pat + 3 >> 0] = $31 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 28 >> 2] & 63]($3, $12); + if (!(HEAP8[$__sn >> 0] & 1)) { + HEAP8[$__sn + 1 >> 0] = 0; + HEAP8[$__sn >> 0] = 0; + } else { + HEAP8[HEAP32[$__sn + 8 >> 2] >> 0] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$3 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$3 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$3 + 8 >> 2]; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($3); + $$pre$phiZ2D = $12; + } + $47 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 12 >> 2] & 127]($12) | 0; + HEAP8[$__dp >> 0] = $47; + $51 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 16 >> 2] & 127]($12) | 0; + HEAP8[$__ts >> 0] = $51; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$$pre$phiZ2D >> 2] | 0) + 20 >> 2] & 63]($4, $12); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$4 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($4); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$$pre$phiZ2D >> 2] | 0) + 24 >> 2] & 63]($5, $12); + if (!(HEAP8[$__sym >> 0] & 1)) { + HEAP8[$__sym + 1 >> 0] = 0; + HEAP8[$__sym >> 0] = 0; + } else { + HEAP8[HEAP32[$__sym + 8 >> 2] >> 0] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$5 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$5 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$5 + 8 >> 2]; + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($5); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 36 >> 2] & 127]($12) | 0; + } else { + $80 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13224) | 0; + $81 = HEAP32[$80 >> 2] | 0; + if ($__neg) { + FUNCTION_TABLE_vii[HEAP32[$81 + 44 >> 2] & 63]($6, $80); + $84 = HEAP32[$6 >> 2] | 0; + HEAP8[$__pat >> 0] = $84; + HEAP8[$__pat + 1 >> 0] = $84 >> 8; + HEAP8[$__pat + 2 >> 0] = $84 >> 16; + HEAP8[$__pat + 3 >> 0] = $84 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$80 >> 2] | 0) + 32 >> 2] & 63]($7, $80); + if (!(HEAP8[$__sn >> 0] & 1)) { + HEAP8[$__sn + 1 >> 0] = 0; + HEAP8[$__sn >> 0] = 0; + } else { + HEAP8[HEAP32[$__sn + 8 >> 2] >> 0] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$7 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$7 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$7 + 8 >> 2]; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($7); + $$pre$phi32Z2D = $80; + } else { + FUNCTION_TABLE_vii[HEAP32[$81 + 40 >> 2] & 63]($8, $80); + $99 = HEAP32[$8 >> 2] | 0; + HEAP8[$__pat >> 0] = $99; + HEAP8[$__pat + 1 >> 0] = $99 >> 8; + HEAP8[$__pat + 2 >> 0] = $99 >> 16; + HEAP8[$__pat + 3 >> 0] = $99 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$80 >> 2] | 0) + 28 >> 2] & 63]($9, $80); + if (!(HEAP8[$__sn >> 0] & 1)) { + HEAP8[$__sn + 1 >> 0] = 0; + HEAP8[$__sn >> 0] = 0; + } else { + HEAP8[HEAP32[$__sn + 8 >> 2] >> 0] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$9 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$9 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$9 + 8 >> 2]; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($9); + $$pre$phi32Z2D = $80; + } + $115 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$80 >> 2] | 0) + 12 >> 2] & 127]($80) | 0; + HEAP8[$__dp >> 0] = $115; + $119 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$80 >> 2] | 0) + 16 >> 2] & 127]($80) | 0; + HEAP8[$__ts >> 0] = $119; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$$pre$phi32Z2D >> 2] | 0) + 20 >> 2] & 63]($10, $80); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$10 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$10 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$10 + 8 >> 2]; + HEAP32[$10 >> 2] = 0; + HEAP32[$10 + 4 >> 2] = 0; + HEAP32[$10 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($10); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$$pre$phi32Z2D >> 2] | 0) + 24 >> 2] & 63]($11, $80); + if (!(HEAP8[$__sym >> 0] & 1)) { + HEAP8[$__sym + 1 >> 0] = 0; + HEAP8[$__sym >> 0] = 0; + } else { + HEAP8[HEAP32[$__sym + 8 >> 2] >> 0] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$11 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$11 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$11 + 8 >> 2]; + HEAP32[$11 >> 2] = 0; + HEAP32[$11 + 4 >> 2] = 0; + HEAP32[$11 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($11); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$80 >> 2] | 0) + 36 >> 2] & 127]($80) | 0; } + HEAP32[$__fd >> 2] = $storemerge; STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; +function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + $rem = $rem | 0; + var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $_0$0 = 0, $_0$1 = 0, $q_sroa_1_1198$looptemp = 0; + $n_sroa_0_0_extract_trunc = $a$0; + $n_sroa_1_4_extract_shift$0 = $a$1; + $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; + $d_sroa_0_0_extract_trunc = $b$0; + $d_sroa_1_4_extract_shift$0 = $b$1; + $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; + if (!$n_sroa_1_4_extract_trunc) { + $4 = ($rem | 0) != 0; + if (!$d_sroa_1_4_extract_trunc) { + if ($4) { + HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $_0$1 = 0; + $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$4) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; } + HEAP32[$rem >> 2] = $a$0 | 0; + HEAP32[$rem + 4 >> 2] = $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 2) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($40 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $40; - $43 = ($40 << 16 >> 16) * 7 | 0; - $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; - $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; - $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $65 = $63 << 16 >> 16 > 0; - if ($59 << 16 >> 16 <= 0) { - if ($65) { - HEAP16[$pnt2$367 >> 1] = $63; - $165 = $64 * 7 | 0; - $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; - $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; - $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; - $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; - if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($185 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $185; - $188 = ($185 << 16 >> 16) * 7 | 0; - $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; - $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; - $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; - $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; - if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$202 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $205 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $205; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; - $210 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $205; - break; - } - } - if ($65) { - $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - if (($68 | 0) > ($71 | 0)) { - HEAP16[$pnt2$367 >> 1] = $71; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $88 = $71; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $88 = $71; - } else { - HEAP16[$pnt2$367 >> 1] = $68; - if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $88 = $68; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $88 = $68; - } - $90 = ($88 << 16 >> 16) * 7 | 0; - $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; - $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; - $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($106 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $59; - $146 = $60 * 7 | 0; - $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; - $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; - $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; - $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; - if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($111 | 0) > ($114 | 0)) { - HEAP16[$pnt2$367 >> 1] = $114; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $131 = $114; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $131 = $114; - } else { - HEAP16[$pnt2$367 >> 1] = $111; - if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $131 = $111; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $131 = $111; - } - $133 = ($131 << 16 >> 16) * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $225 = $pnt$168 + 4 | 0; - $226 = $pnt2$367 + 2 | 0; - $227 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $227; - $pnt$1$lcssa = $225; - $pnt2$3$lcssa = $226; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $227; - $pnt$168 = $225; - $pnt2$367 = $226; - $wk_max$159 = $wk_max$2; - } - } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; + do if (!$d_sroa_0_0_extract_trunc) { + if ($17) { + if ($rem) { + HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); + HEAP32[$rem + 4 >> 2] = 0; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 8 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + if (!$n_sroa_0_0_extract_trunc) { + if ($rem) { + HEAP32[$rem >> 2] = 0; + HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); } + $_0$1 = 0; + $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; + return (tempRet0 = $_0$1, $_0$0) | 0; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $236 = HEAP32[$wk$443 >> 2] | 0; - if (($236 | 0) == ($i$341 | 0)) { - $242 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $242; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + $37 = $d_sroa_1_4_extract_trunc - 1 | 0; + if (!($37 & $d_sroa_1_4_extract_trunc)) { + if ($rem) { + HEAP32[$rem >> 2] = $a$0 | 0; + HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; } + $_0$1 = 0; + $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); + return (tempRet0 = $_0$1, $_0$0) | 0; } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $254 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); + $51 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($51 >>> 0 <= 30) { + $57 = $51 + 1 | 0; + $58 = 31 - $51 | 0; + $sr_1_ph = $57; + $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + break; + } + if (!$rem) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + HEAP32[$rem >> 2] = $a$0 | 0; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + if (!$17) { + $119 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + if ($119 >>> 0 <= 31) { + $125 = $119 + 1 | 0; + $126 = 31 - $119 | 0; + $130 = $119 - 31 >> 31; + $sr_1_ph = $125; + $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; + $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; + $q_sroa_0_1_ph = 0; + $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$537 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + if (!$rem) { + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $321 = $labelInfo + 12 + ($i$636 << 2) | 0; - $324 = $i$636 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + HEAP32[$rem >> 2] = $a$0 | 0; + HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$1 = 0; + $_0$0 = 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } + $66 = $d_sroa_0_0_extract_trunc - 1 | 0; + if ($66 & $d_sroa_0_0_extract_trunc) { + $88 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; + $89 = 64 - $88 | 0; + $91 = 32 - $88 | 0; + $92 = $91 >> 31; + $95 = $88 - 32 | 0; + $105 = $95 >> 31; + $sr_1_ph = $88; + $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; + $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); + $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; + $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; + break; + } + if ($rem) { + HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; + HEAP32[$rem + 4 >> 2] = 0; + } + if (($d_sroa_0_0_extract_trunc | 0) == 1) { + $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; + $_0$0 = $a$0 | 0 | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; + } else { + $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; + $_0$1 = $n_sroa_1_4_extract_trunc >>> ($78 >>> 0) | 0; + $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; + return (tempRet0 = $_0$1, $_0$0) | 0; } + } while (0); + if (!$sr_1_ph) { + $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; + $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; + $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; + $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = 0; + } else { + $d_sroa_0_0_insert_insert99$0 = $b$0 | 0 | 0; + $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; + $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; + $137$1 = tempRet0; + $q_sroa_1_1198 = $q_sroa_1_1_ph; + $q_sroa_0_1199 = $q_sroa_0_1_ph; + $r_sroa_1_1200 = $r_sroa_1_1_ph; + $r_sroa_0_1201 = $r_sroa_0_1_ph; + $sr_1202 = $sr_1_ph; + $carry_0203 = 0; + do { + $q_sroa_1_1198$looptemp = $q_sroa_1_1198; + $q_sroa_1_1198 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; + $q_sroa_0_1199 = $carry_0203 | $q_sroa_0_1199 << 1; + $r_sroa_0_0_insert_insert42$0 = $r_sroa_0_1201 << 1 | $q_sroa_1_1198$looptemp >>> 31 | 0; + $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; + _i64Subtract($137$0, $137$1, $r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1) | 0; + $150$1 = tempRet0; + $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; + $carry_0203 = $151$0 & 1; + $r_sroa_0_1201 = _i64Subtract($r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1, $151$0 & $d_sroa_0_0_insert_insert99$0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1) | 0; + $r_sroa_1_1200 = tempRet0; + $sr_1202 = $sr_1202 - 1 | 0; + } while (($sr_1202 | 0) != 0); + $q_sroa_1_1_lcssa = $q_sroa_1_1198; + $q_sroa_0_1_lcssa = $q_sroa_0_1199; + $r_sroa_1_1_lcssa = $r_sroa_1_1200; + $r_sroa_0_1_lcssa = $r_sroa_0_1201; + $carry_0_lcssa$1 = 0; + $carry_0_lcssa$0 = $carry_0203; } - STACKTOP = sp; - return $$0 | 0; + $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; + $q_sroa_0_0_insert_ext75$1 = 0; + if ($rem) { + HEAP32[$rem >> 2] = $r_sroa_0_1_lcssa; + HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa; + } + $_0$1 = ($q_sroa_0_0_insert_ext75$0 | 0) >>> 31 | ($q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1) << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; + $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; + return (tempRet0 = $_0$1, $_0$0) | 0; } -function _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision16PruneDoGFeaturesERNSt3__16vectorINS1_INS1_INS0_4pairIfjEENS0_9allocatorIS3_EEEENS4_IS6_EEEENS4_IS8_EEEERNS1_INS_25DoGScaleInvariantDetector12FeaturePointENS4_ISD_EEEERKSF_iiiii($buckets, $outPoints, $inPoints, $num_buckets_X, $num_buckets_Y, $width, $height, $max_points) { + $buckets = $buckets | 0; + $outPoints = $outPoints | 0; + $inPoints = $inPoints | 0; + $num_buckets_X = $num_buckets_X | 0; + $num_buckets_Y = $num_buckets_Y | 0; + $width = $width | 0; + $height = $height | 0; + $max_points = $max_points | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$lcssa = 0, $$lcssa39 = 0, $$lcssa40 = 0, $$pre = 0, $$pre$i$i$i = 0, $$pre$i$i$i1 = 0, $$pre17 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $106 = 0, $107 = 0, $109 = 0, $110 = 0, $111 = 0, $112 = 0, $114 = 0, $116 = 0, $121 = 0, $128 = 0, $13 = 0.0, $138 = 0, $14 = 0, $143 = 0, $144 = 0, $148 = 0, $15 = 0, $153 = 0, $154 = 0, $17 = 0, $177 = 0, $18 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $29 = 0, $3 = 0, $32 = 0, $34 = 0, $38 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $45 = 0, $48 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $56 = 0, $60 = 0, $67 = 0, $70 = 0, $73 = 0.0, $74 = 0, $75 = 0, $79 = 0, $84 = 0, $85 = 0, $9 = 0.0, $i$036 = 0, $i1$027 = 0, $i2$025 = 0, $j$032 = 0, $j3$023 = 0, $k$022 = 0, dest = 0, sp = 0, src = 0, stop = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 48 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $$byval_copy2 = sp + 32 | 0; + $$byval_copy1 = sp + 28 | 0; + $$byval_copy = sp + 24 | 0; + $0 = sp + 20 | 0; + $1 = sp + 16 | 0; + $2 = sp + 12 | 0; + $3 = sp + 8 | 0; + $4 = sp; + $5 = Math_imul($num_buckets_Y, $num_buckets_X) | 0; + $9 = +Math_ceil(+(+($width | 0) / +($num_buckets_X | 0))); + $13 = +Math_ceil(+(+($height | 0) / +($num_buckets_Y | 0))); + $14 = HEAP32[$outPoints >> 2] | 0; + $15 = $outPoints + 4 | 0; + $$pre$i$i$i = HEAP32[$15 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($14 | 0)) { + $18 = $$pre$i$i$i; while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } + $17 = $18 + -36 | 0; + if (($17 | 0) == ($14 | 0)) { + $$lcssa40 = $17; + break; + } else $18 = $17; } + HEAP32[$15 >> 2] = $$lcssa40; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $20 = ($max_points | 0) / ($5 | 0) | 0; + $21 = ~~$9; + $22 = ~~$13; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE7reserveEj($outPoints, $max_points); + $23 = $buckets + 4 | 0; + $24 = HEAP32[$23 >> 2] | 0; + $25 = HEAP32[$buckets >> 2] | 0; + $29 = ($24 - $25 | 0) / 12 | 0; + if (($24 | 0) != ($25 | 0)) { + $i$036 = 0; + do { + $32 = HEAP32[$25 + ($i$036 * 12 | 0) + 4 >> 2] | 0; + $34 = HEAP32[$25 + ($i$036 * 12 | 0) >> 2] | 0; + $38 = ($32 - $34 | 0) / 12 | 0; + if (($32 | 0) != ($34 | 0)) { + $j$032 = 0; + do { + $48 = HEAP32[$34 + ($j$032 * 12 | 0) >> 2] | 0; + $49 = $34 + ($j$032 * 12 | 0) + 4 | 0; + $$pre$i$i$i1 = HEAP32[$49 >> 2] | 0; + if (($$pre$i$i$i1 | 0) != ($48 | 0)) { + $52 = $$pre$i$i$i1; + while (1) { + $51 = $52 + -8 | 0; + if (($51 | 0) == ($48 | 0)) { + $$lcssa39 = $51; + break; + } else $52 = $51; + } + HEAP32[$49 >> 2] = $$lcssa39; + } + $j$032 = $j$032 + 1 | 0; + } while (($j$032 | 0) != ($38 | 0)); } - } + $i$036 = $i$036 + 1 | 0; + } while (($i$036 | 0) != ($29 | 0)); } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $27 = ($10 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0; - $j$075 = 1; - $pnt$079 = $image + ($18 << 2) | 0; - $pnt2$278 = $0 + ($18 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($27) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + $40 = $inPoints + 4 | 0; + $41 = +($21 | 0); + $42 = +($22 | 0); + $43 = $4 + 4 | 0; + $45 = HEAP32[$inPoints >> 2] | 0; + if ((HEAP32[$40 >> 2] | 0) != ($45 | 0)) { + $60 = $45; + $i1$027 = 0; + do { + $67 = ~~(+HEAPF32[$60 + ($i1$027 * 36 | 0) + 4 >> 2] / $42); + $70 = HEAP32[(HEAP32[$buckets >> 2] | 0) + (~~(+HEAPF32[$60 + ($i1$027 * 36 | 0) >> 2] / $41) * 12 | 0) >> 2] | 0; + $73 = +Math_abs(+(+HEAPF32[$60 + ($i1$027 * 36 | 0) + 24 >> 2])); + HEAPF32[$4 >> 2] = $73; + HEAP32[$43 >> 2] = $i1$027; + $74 = $70 + ($67 * 12 | 0) + 4 | 0; + $75 = HEAP32[$74 >> 2] | 0; + if (($75 | 0) == (HEAP32[$70 + ($67 * 12 | 0) + 8 >> 2] | 0)) __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($70 + ($67 * 12 | 0) | 0, $4); else { + $79 = $4; + $84 = HEAP32[$79 + 4 >> 2] | 0; + $85 = $75; + HEAP32[$85 >> 2] = HEAP32[$79 >> 2]; + HEAP32[$85 + 4 >> 2] = $84; + HEAP32[$74 >> 2] = (HEAP32[$74 >> 2] | 0) + 8; + } + $i1$027 = $i1$027 + 1 | 0; + $60 = HEAP32[$inPoints >> 2] | 0; + } while ($i1$027 >>> 0 < (((HEAP32[$40 >> 2] | 0) - $60 | 0) / 36 | 0) >>> 0); + } + $56 = $outPoints + 8 | 0; + $$pre = HEAP32[$buckets >> 2] | 0; + L27 : do if ((HEAP32[$23 >> 2] | 0) != ($$pre | 0)) { + $101 = $$pre; + $i2$025 = 0; + L28 : while (1) { + $104 = HEAP32[$101 + ($i2$025 * 12 | 0) >> 2] | 0; + if ((HEAP32[$101 + ($i2$025 * 12 | 0) + 4 >> 2] | 0) == ($104 | 0)) $$lcssa = $101; else { + $107 = $104; + $177 = $101; + $j3$023 = 0; while (1) { - do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0; - if ($40 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $40; - $43 = ($40 << 16 >> 16) * 7 | 0; - $45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1; - $49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264; - $53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $64 = $63 << 16 >> 16; - $65 = $63 << 16 >> 16 > 0; - if ($59 << 16 >> 16 <= 0) { - if ($65) { - HEAP16[$pnt2$367 >> 1] = $63; - $165 = $64 * 7 | 0; - $167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1; - $171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264; - $175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0; - HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075; - $179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0; - if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $185 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($185 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $185; - $188 = ($185 << 16 >> 16) * 7 | 0; - $190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1; - $194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264; - $198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0; - HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075; - $202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0; - if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$202 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $205 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $205; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16; - $210 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $205; - break; - } - } - if ($65) { - $68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0; - if (($68 | 0) > ($71 | 0)) { - HEAP16[$pnt2$367 >> 1] = $71; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $17; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $88 = $71; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $88 = $71; - } else { - HEAP16[$pnt2$367 >> 1] = $68; - if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $17; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $88 = $68; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $88 = $68; - } - $90 = ($88 << 16 >> 16) * 7 | 0; - $92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1; - $96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264; - $100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0; - HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $106 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($106 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $59; - $146 = $60 * 7 | 0; - $148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1; - $152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264; - $156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075; - $160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0; - if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - $114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($111 | 0) > ($114 | 0)) { - HEAP16[$pnt2$367 >> 1] = $114; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $17; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $131 = $114; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $131 = $114; - } else { - HEAP16[$pnt2$367 >> 1] = $111; - if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $17; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $131 = $111; - break; - } else $wk$346 = $wk$346 + 4 | 0; + $106 = $107 + ($j3$023 * 12 | 0) + 4 | 0; + $109 = $107 + ($j3$023 * 12 | 0) | 0; + $110 = HEAP32[$109 >> 2] | 0; + $111 = HEAP32[$106 >> 2] | 0; + $112 = $110; + $114 = $111 - $112 >> 3; + $116 = $20 >>> 0 < $114 >>> 0 ? $20 : $114; + if (!$116) $$pre17 = $177; else { + HEAP32[$0 >> 2] = $112; + HEAP32[$1 >> 2] = $110 + ($116 << 3); + HEAP32[$2 >> 2] = $111; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$2 >> 2]; + __ZNSt3__113__nth_elementIRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEvT0_S9_S9_T_($$byval_copy, $$byval_copy1, $$byval_copy2, $3); + $121 = HEAP32[$109 >> 2] | 0; + if ($116 >>> 0 > (HEAP32[$106 >> 2] | 0) - $121 >> 3 >>> 0) if (!(+HEAPF32[$121 >> 2] >= +HEAPF32[$121 + ($116 << 3) >> 2])) break L28; + $128 = $20 >>> 0 > $114 >>> 0 ? $114 : $20; + if ($128) { + $k$022 = 0; + do { + $153 = (HEAP32[$inPoints >> 2] | 0) + ((HEAP32[(HEAP32[$109 >> 2] | 0) + ($k$022 << 3) + 4 >> 2] | 0) * 36 | 0) | 0; + $154 = HEAP32[$15 >> 2] | 0; + if (($154 | 0) == (HEAP32[$56 >> 2] | 0)) __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($outPoints, $153); else { + dest = $154; + src = $153; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 36; } - } else $131 = $111; + $k$022 = $k$022 + 1 | 0; + } while (($k$022 | 0) != ($128 | 0)); } - $133 = ($131 << 16 >> 16) * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $225 = $pnt$168 + 4 | 0; - $226 = $pnt2$367 + 2 | 0; - $227 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($10 | 0)) { - $dpnt$1$lcssa = $227; - $pnt$1$lcssa = $225; - $pnt2$3$lcssa = $226; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $227; - $pnt$168 = $225; - $pnt2$367 = $226; - $wk_max$159 = $wk_max$2; + $$pre17 = HEAP32[$buckets >> 2] | 0; } + $j3$023 = $j3$023 + 1 | 0; + $107 = HEAP32[$$pre17 + ($i2$025 * 12 | 0) >> 2] | 0; + if ($j3$023 >>> 0 >= (((HEAP32[$$pre17 + ($i2$025 * 12 | 0) + 4 >> 2] | 0) - $107 | 0) / 12 | 0) >>> 0) { + $$lcssa = $$pre17; + break; + } else $177 = $$pre17; } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 8 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; } + $i2$025 = $i2$025 + 1 | 0; + if ($i2$025 >>> 0 >= (((HEAP32[$23 >> 2] | 0) - $$lcssa | 0) / 12 | 0) >>> 0) break L27; else $101 = $$lcssa; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + $138 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23260) | 0, 21425) | 0, 34302) | 0, 661) | 0, 34309) | 0, 23318) | 0; + $143 = __ZNKSt3__18ios_base6getlocEv($138 + (HEAP32[(HEAP32[$138 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy2 >> 2] = $143; + $144 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy2, 13680) | 0; + $148 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$144 >> 2] | 0) + 28 >> 2] & 63]($144, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy2); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($138, $148) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($138) | 0; + _abort(); } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $17; - while (1) { - $236 = HEAP32[$wk$443 >> 2] | 0; - if (($236 | 0) == ($i$341 | 0)) { - $242 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $242; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $254 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$537 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + STACKTOP = sp; + return; +} + +function _icpGetJ_U_S($J_U_S, $matXc2U, $matXw2Xc, $worldCoord) { + $J_U_S = $J_U_S | 0; + $matXc2U = $matXc2U | 0; + $matXw2Xc = $matXw2Xc | 0; + $worldCoord = $worldCoord | 0; + var $$0 = 0, $$lcssa = 0.0, $0 = 0.0, $1 = 0.0, $100 = 0, $101 = 0, $104 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0.0, $115 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $128 = 0.0, $129 = 0.0, $132 = 0.0, $136 = 0.0, $14 = 0.0, $141 = 0.0, $143 = 0.0, $146 = 0.0, $150 = 0.0, $155 = 0.0, $157 = 0.0, $16 = 0.0, $160 = 0.0, $164 = 0.0, $169 = 0.0, $171 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $202 = 0.0, $204 = 0.0, $206 = 0.0, $207 = 0, $21 = 0.0, $211 = 0.0, $215 = 0.0, $22 = 0.0, $24 = 0.0, $26 = 0.0, $28 = 0.0, $29 = 0.0, $31 = 0.0, $32 = 0.0, $34 = 0.0, $4 = 0.0, $5 = 0, $52 = 0.0, $6 = 0.0, $7 = 0.0, $71 = 0.0, $79 = 0.0, $9 = 0.0, $92 = 0, $93 = 0, $96 = 0, $98 = 0, $J_T_S$i = 0, $J_U_Xc = 0, $J_Xc_S = 0, $J_Xc_T$i = 0, $i$0$i7 = 0, $i$04 = 0, $j$0$i8 = 0, $j$05 = 0, $k$0$i6 = 0, $vararg_buffer = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1072 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp + 1056 | 0; + $J_Xc_T$i = sp + 768 | 0; + $J_T_S$i = sp + 192 | 0; + $J_Xc_S = sp + 48 | 0; + $J_U_Xc = sp; + $0 = +HEAPF64[$matXw2Xc >> 3]; + $1 = +HEAPF64[$worldCoord >> 3]; + $2 = $0 * $1; + $4 = +HEAPF64[$matXw2Xc + 8 >> 3]; + $5 = $worldCoord + 8 | 0; + $6 = +HEAPF64[$5 >> 3]; + $7 = $4 * $6; + $9 = +HEAPF64[$matXw2Xc + 16 >> 3]; + $11 = +HEAPF64[$worldCoord + 16 >> 3]; + $12 = $9 * $11; + $14 = +HEAPF64[$matXw2Xc + 24 >> 3]; + $16 = +HEAPF64[$matXw2Xc + 32 >> 3]; + $18 = +HEAPF64[$matXw2Xc + 40 >> 3]; + $19 = $6 * $18; + $21 = +HEAPF64[$matXw2Xc + 48 >> 3]; + $22 = $11 * $21; + $24 = +HEAPF64[$matXw2Xc + 56 >> 3]; + $26 = +HEAPF64[$matXw2Xc + 64 >> 3]; + $28 = +HEAPF64[$matXw2Xc + 72 >> 3]; + $29 = $6 * $28; + $31 = +HEAPF64[$matXw2Xc + 80 >> 3]; + $32 = $11 * $31; + $34 = +HEAPF64[$matXw2Xc + 88 >> 3]; + HEAPF64[$J_Xc_T$i >> 3] = $2; + HEAPF64[$J_Xc_T$i + 8 >> 3] = $0 * $6; + HEAPF64[$J_Xc_T$i + 16 >> 3] = $0 * $11; + HEAPF64[$J_Xc_T$i + 24 >> 3] = $1 * $4; + HEAPF64[$J_Xc_T$i + 32 >> 3] = $7; + HEAPF64[$J_Xc_T$i + 40 >> 3] = $11 * $4; + HEAPF64[$J_Xc_T$i + 48 >> 3] = $1 * $9; + HEAPF64[$J_Xc_T$i + 56 >> 3] = $6 * $9; + HEAPF64[$J_Xc_T$i + 64 >> 3] = $12; + HEAPF64[$J_Xc_T$i + 72 >> 3] = $0; + HEAPF64[$J_Xc_T$i + 80 >> 3] = $4; + HEAPF64[$J_Xc_T$i + 88 >> 3] = $9; + $52 = $1 * $16; + HEAPF64[$J_Xc_T$i + 96 >> 3] = $52; + HEAPF64[$J_Xc_T$i + 104 >> 3] = $6 * $16; + HEAPF64[$J_Xc_T$i + 112 >> 3] = $11 * $16; + HEAPF64[$J_Xc_T$i + 120 >> 3] = $1 * $18; + HEAPF64[$J_Xc_T$i + 128 >> 3] = $19; + HEAPF64[$J_Xc_T$i + 136 >> 3] = $11 * $18; + HEAPF64[$J_Xc_T$i + 144 >> 3] = $1 * $21; + HEAPF64[$J_Xc_T$i + 152 >> 3] = $6 * $21; + HEAPF64[$J_Xc_T$i + 160 >> 3] = $22; + HEAPF64[$J_Xc_T$i + 168 >> 3] = $16; + HEAPF64[$J_Xc_T$i + 176 >> 3] = $18; + HEAPF64[$J_Xc_T$i + 184 >> 3] = $21; + $71 = $26 * $1; + HEAPF64[$J_Xc_T$i + 192 >> 3] = $71; + HEAPF64[$J_Xc_T$i + 200 >> 3] = $6 * $26; + HEAPF64[$J_Xc_T$i + 208 >> 3] = $11 * $26; + HEAPF64[$J_Xc_T$i + 216 >> 3] = $1 * $28; + $79 = +HEAPF64[$5 >> 3]; + HEAPF64[$J_Xc_T$i + 224 >> 3] = $28 * $79; + HEAPF64[$J_Xc_T$i + 232 >> 3] = $11 * $28; + HEAPF64[$J_Xc_T$i + 240 >> 3] = $1 * $31; + HEAPF64[$J_Xc_T$i + 248 >> 3] = $79 * $31; + HEAPF64[$J_Xc_T$i + 256 >> 3] = $32; + HEAPF64[$J_Xc_T$i + 264 >> 3] = $26; + HEAPF64[$J_Xc_T$i + 272 >> 3] = $28; + HEAPF64[$J_Xc_T$i + 280 >> 3] = $31; + $92 = $J_T_S$i + 64 | 0; + dest = $J_T_S$i; + stop = dest + 64 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$92 >> 3] = -1.0; + $93 = $J_T_S$i + 72 | 0; + HEAP32[$93 >> 2] = 0; + HEAP32[$93 + 4 >> 2] = 0; + HEAP32[$93 + 8 >> 2] = 0; + HEAP32[$93 + 12 >> 2] = 0; + HEAP32[$93 + 16 >> 2] = 0; + HEAP32[$93 + 20 >> 2] = 0; + HEAP32[$93 + 24 >> 2] = 0; + HEAP32[$93 + 28 >> 2] = 0; + HEAPF64[$J_T_S$i + 104 >> 3] = 1.0; + $96 = $J_T_S$i + 160 | 0; + dest = $J_T_S$i + 112 | 0; + stop = dest + 48 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$96 >> 3] = 1.0; + $98 = $J_T_S$i + 240 | 0; + dest = $J_T_S$i + 168 | 0; + stop = dest + 72 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$98 >> 3] = -1.0; + $100 = $J_T_S$i + 296 | 0; + dest = $J_T_S$i + 248 | 0; + stop = dest + 48 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$100 >> 3] = -1.0; + $101 = $J_T_S$i + 304 | 0; + HEAP32[$101 >> 2] = 0; + HEAP32[$101 + 4 >> 2] = 0; + HEAP32[$101 + 8 >> 2] = 0; + HEAP32[$101 + 12 >> 2] = 0; + HEAP32[$101 + 16 >> 2] = 0; + HEAP32[$101 + 20 >> 2] = 0; + HEAP32[$101 + 24 >> 2] = 0; + HEAP32[$101 + 28 >> 2] = 0; + HEAPF64[$J_T_S$i + 336 >> 3] = 1.0; + $104 = $J_T_S$i + 456 | 0; + dest = $J_T_S$i + 344 | 0; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$104 >> 3] = 1.0; + $106 = $J_T_S$i + 512 | 0; + dest = $J_T_S$i + 464 | 0; + stop = dest + 48 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$106 >> 3] = 1.0; + $108 = $J_T_S$i + 568 | 0; + dest = $J_T_S$i + 520 | 0; + stop = dest + 48 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF64[$108 >> 3] = 1.0; + $j$0$i8 = 0; + do { + $i$0$i7 = 0; + do { + $109 = $J_Xc_S + ($j$0$i8 * 48 | 0) + ($i$0$i7 << 3) | 0; + HEAPF64[$109 >> 3] = 0.0; + $116 = 0.0; + $k$0$i6 = 0; + while (1) { + $115 = $116 + +HEAPF64[$J_Xc_T$i + ($j$0$i8 * 96 | 0) + ($k$0$i6 << 3) >> 3] * +HEAPF64[$J_T_S$i + ($k$0$i6 * 48 | 0) + ($i$0$i7 << 3) >> 3]; + $k$0$i6 = $k$0$i6 + 1 | 0; + if (($k$0$i6 | 0) == 12) { + $$lcssa = $115; + break; + } else $116 = $115; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $321 = $labelInfo + 12 + ($i$636 << 2) | 0; - $324 = $i$636 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + HEAPF64[$109 >> 3] = $$lcssa; + $i$0$i7 = $i$0$i7 + 1 | 0; + } while (($i$0$i7 | 0) != 6); + $j$0$i8 = $j$0$i8 + 1 | 0; + } while (($j$0$i8 | 0) != 3); + $122 = $14 + ($2 + $7 + $12); + $125 = $24 + ($52 + $19 + $22); + $128 = $34 + ($71 + $29 + $32); + $129 = +HEAPF64[$matXc2U >> 3]; + $132 = +HEAPF64[$matXc2U + 8 >> 3]; + $136 = +HEAPF64[$matXc2U + 16 >> 3]; + $141 = +HEAPF64[$matXc2U + 24 >> 3] + ($122 * $129 + $125 * $132 + $128 * $136); + $143 = +HEAPF64[$matXc2U + 32 >> 3]; + $146 = +HEAPF64[$matXc2U + 40 >> 3]; + $150 = +HEAPF64[$matXc2U + 48 >> 3]; + $155 = +HEAPF64[$matXc2U + 56 >> 3] + ($122 * $143 + $125 * $146 + $128 * $150); + $157 = +HEAPF64[$matXc2U + 64 >> 3]; + $160 = +HEAPF64[$matXc2U + 72 >> 3]; + $164 = +HEAPF64[$matXc2U + 80 >> 3]; + $169 = +HEAPF64[$matXc2U + 88 >> 3] + ($122 * $157 + $125 * $160 + $128 * $164); + if ($169 == 0.0) { + _arLog(3, 19274, $vararg_buffer); + $$0 = -1; + } else { + $171 = $169 * $169; + HEAPF64[$J_U_Xc >> 3] = ($129 * $169 - $141 * $157) / $171; + HEAPF64[$J_U_Xc + 8 >> 3] = ($169 * $132 - $141 * $160) / $171; + HEAPF64[$J_U_Xc + 16 >> 3] = ($169 * $136 - $141 * $164) / $171; + HEAPF64[$J_U_Xc + 24 >> 3] = ($169 * $143 - $155 * $157) / $171; + HEAPF64[$J_U_Xc + 32 >> 3] = ($169 * $146 - $155 * $160) / $171; + HEAPF64[$J_U_Xc + 40 >> 3] = ($169 * $150 - $155 * $164) / $171; + $j$05 = 0; + do { + $202 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) >> 3]; + $204 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 8 >> 3]; + $206 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 16 >> 3]; + $i$04 = 0; + do { + $207 = $J_U_S + ($j$05 * 48 | 0) + ($i$04 << 3) | 0; + HEAPF64[$207 >> 3] = 0.0; + $211 = $202 * +HEAPF64[$J_Xc_S + ($i$04 << 3) >> 3] + 0.0; + HEAPF64[$207 >> 3] = $211; + $215 = $211 + $204 * +HEAPF64[$J_Xc_S + 48 + ($i$04 << 3) >> 3]; + HEAPF64[$207 >> 3] = $215; + HEAPF64[$207 >> 3] = $215 + $206 * +HEAPF64[$J_Xc_S + 96 + ($i$04 << 3) >> 3]; + $i$04 = $i$04 + 1 | 0; + } while (($i$04 | 0) != 6); + $j$05 = $j$05 + 1 | 0; + } while (($j$05 | 0) != 2); + $$0 = 0; } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i18 = 0, $$0$i$i1027 = 0, $$0$i$i24 = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $104 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $118 = 0, $120 = 0, $123 = 0, $124 = 0, $15 = 0, $16 = 0, $2 = 0, $22 = 0, $29 = 0, $3 = 0, $30 = 0, $39 = 0, $4 = 0, $42 = 0, $43 = 0, $45 = 0, $5 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $59 = 0, $61 = 0, $64 = 0, $65 = 0, $69 = 0, $74 = 0, $75 = 0, $81 = 0, $88 = 0, $89 = 0, $98 = 0, $__p$0$i$i23 = 0, $__p$0$i$i926 = 0, $__p$0$ph$i$i = 0, $__p$0$ph$i$i7 = 0, $__v$i$i17 = 0, $cv = 0, $cv1 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 128 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } - } - } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } - } - } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $30 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($30) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($36 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $36; - $39 = ($36 << 16 >> 16) * 7 | 0; - $41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1; - $45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265; - $49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $61 = $59 << 16 >> 16 > 0; - if ($55 << 16 >> 16 <= 0) { - if ($61) { - HEAP16[$pnt2$368 >> 1] = $59; - $161 = $60 * 7 | 0; - $163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1; - $167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265; - $171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076; - $175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0; - if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $181 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($181 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $181; - $184 = ($181 << 16 >> 16) * 7 | 0; - $186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1; - $190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265; - $194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076; - $198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0; - if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$198 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $201 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $201; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16; - $206 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $201; - break; - } - } - if ($61) { - $64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - $67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - if (($64 | 0) > ($67 | 0)) { - HEAP16[$pnt2$368 >> 1] = $67; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $84 = $67; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $84 = $67; - } else { - HEAP16[$pnt2$368 >> 1] = $64; - if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $84 = $64; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $84 = $64; - } - $86 = ($84 << 16 >> 16) * 7 | 0; - $88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1; - $92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265; - $96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $102 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($102 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $55; - $142 = $56 * 7 | 0; - $144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1; - $148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265; - $152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076; - $156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0; - if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - $110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($107 | 0) > ($110 | 0)) { - HEAP16[$pnt2$368 >> 1] = $110; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $127 = $110; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $127 = $110; - } else { - HEAP16[$pnt2$368 >> 1] = $107; - if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $127 = $107; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $127 = $107; - } - $129 = ($127 << 16 >> 16) * 7 | 0; - $131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1; - $135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265; - $139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $221 = $pnt$169 + 4 | 0; - $222 = $pnt2$368 + 2 | 0; - $223 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $223; - $pnt$1$lcssa = $221; - $pnt2$3$lcssa = $222; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$167 = $223; - $pnt$169 = $221; - $pnt2$368 = $222; - $wk_max$160 = $wk_max$2; + $__v$i$i17 = sp + 108 | 0; + $cv = sp + 104 | 0; + $0 = sp + 80 | 0; + $1 = sp + 64 | 0; + $2 = sp + 52 | 0; + $cv1 = sp + 48 | 0; + $3 = sp + 24 | 0; + $4 = sp + 12 | 0; + $5 = sp; + L1 : do if (($last - $first | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 102) { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 112: + { + $15 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first + 2 | 0, $last, $cv) | 0; + $16 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($15, $last) | 0; + if (($16 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + if ((HEAP8[$16 >> 0] | 0) != 95) { + $$0 = $first; + break L1; + } + $22 = $16 - $15 | 0; + if ($22 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); + if ($22 >>> 0 < 11) { + HEAP8[$2 >> 0] = $22 << 1; + $__p$0$ph$i$i = $2 + 1 | 0; + } else { + $29 = $22 + 16 & -16; + $30 = _malloc($29) | 0; + HEAP32[$2 + 8 >> 2] = $30; + HEAP32[$2 >> 2] = $29 | 1; + HEAP32[$2 + 4 >> 2] = $22; + $__p$0$ph$i$i = $30; + } + if (($15 | 0) != ($16 | 0)) { + $$0$i$i24 = $15; + $__p$0$i$i23 = $__p$0$ph$i$i; + while (1) { + HEAP8[$__p$0$i$i23 >> 0] = HEAP8[$$0$i$i24 >> 0] | 0; + $$0$i$i24 = $$0$i$i24 + 1 | 0; + if (($$0$i$i24 | 0) == ($16 | 0)) break; else $__p$0$i$i23 = $__p$0$i$i23 + 1 | 0; } } - } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + HEAP8[$__p$0$ph$i$i + $22 >> 0] = 0; + $39 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 49301) | 0; + HEAP32[$1 >> 2] = HEAP32[$39 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$39 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$39 + 8 >> 2]; + HEAP32[$39 >> 2] = 0; + HEAP32[$39 + 4 >> 2] = 0; + HEAP32[$39 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + $42 = $db + 4 | 0; + $43 = HEAP32[$42 >> 2] | 0; + $45 = HEAP32[$db + 8 >> 2] | 0; + if ($43 >>> 0 < $45 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0); + HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 24; + } else { + $52 = HEAP32[$db >> 2] | 0; + $53 = $43 - $52 | 0; + $54 = ($53 | 0) / 24 | 0; + $55 = $54 + 1 | 0; + if (($53 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $59 = ($45 - $52 | 0) / 24 | 0; + if ($59 >>> 0 < 1073741823) { + $61 = $59 << 1; + $$0$i$i$i = $61 >>> 0 < $55 >>> 0 ? $55 : $61; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i, $54, $db + 12 | 0); + $64 = $__v$i$i17 + 8 | 0; + $65 = HEAP32[$64 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($65, $0); + HEAP32[$64 >> 2] = $65 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$0 = $16 + 1 | 0; + break L1; + break; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + case 76: + break; + default: + { + $$0 = $first; + break L1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $230 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $232 = HEAP32[$wk$444 >> 2] | 0; - if (($232 | 0) == ($i$342 | 0)) { - $238 = $j$143; - $j$2 = $j$143 + 1 | 0; + $69 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first + 2 | 0, $last) | 0; + if (($69 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$69 >> 0] | 0) == 112) { + $74 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($69 + 1 | 0, $last, $cv1) | 0; + $75 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($74, $last) | 0; + if (($75 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$75 >> 0] | 0) == 95) { + $81 = $75 - $74 | 0; + if ($81 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($5); + if ($81 >>> 0 < 11) { + HEAP8[$5 >> 0] = $81 << 1; + $__p$0$ph$i$i7 = $5 + 1 | 0; } else { - $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $88 = $81 + 16 & -16; + $89 = _malloc($88) | 0; + HEAP32[$5 + 8 >> 2] = $89; + HEAP32[$5 >> 2] = $88 | 1; + HEAP32[$5 + 4 >> 2] = $81; + $__p$0$ph$i$i7 = $89; + } + if (($74 | 0) != ($75 | 0)) { + $$0$i$i1027 = $74; + $__p$0$i$i926 = $__p$0$ph$i$i7; + while (1) { + HEAP8[$__p$0$i$i926 >> 0] = HEAP8[$$0$i$i1027 >> 0] | 0; + $$0$i$i1027 = $$0$i$i1027 + 1 | 0; + if (($$0$i$i1027 | 0) == ($75 | 0)) break; else $__p$0$i$i926 = $__p$0$i$i926 + 1 | 0; + } } - HEAP32[$wk$444 >> 2] = $238; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; + HEAP8[$__p$0$ph$i$i7 + $81 >> 0] = 0; + $98 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($5, 0, 49301) | 0; + HEAP32[$4 >> 2] = HEAP32[$98 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$98 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$98 + 8 >> 2]; + HEAP32[$98 >> 2] = 0; + HEAP32[$98 + 4 >> 2] = 0; + HEAP32[$98 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4); + $101 = $db + 4 | 0; + $102 = HEAP32[$101 >> 2] | 0; + $104 = HEAP32[$db + 8 >> 2] | 0; + if ($102 >>> 0 < $104 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($102, $3); + HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + 24; } else { - $j$1$lcssa = $j$2; - break; + $111 = HEAP32[$db >> 2] | 0; + $112 = $102 - $111 | 0; + $113 = ($112 | 0) / 24 | 0; + $114 = $113 + 1 | 0; + if (($112 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $118 = ($104 - $111 | 0) / 24 | 0; + if ($118 >>> 0 < 1073741823) { + $120 = $118 << 1; + $$0$i$i$i18 = $120 >>> 0 < $114 >>> 0 ? $114 : $120; + } else $$0$i$i$i18 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i18, $113, $db + 12 | 0); + $123 = $__v$i$i17 + 8 | 0; + $124 = HEAP32[$123 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($124, $3); + HEAP32[$123 >> 2] = $124 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17); } - } - } - $242 = $labelInfo + 8 | 0; - $243 = $j$1$lcssa + -1 | 0; - HEAP32[$242 >> 2] = $243; - if (!$243) $$0 = 0; else { - _memset($230 | 0, 0, $243 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $250 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $265 = $i$538 * 7 | 0; - $268 = $labelInfo + 12 + ($264 << 2) | 0; - HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); - $275 = $264 << 1; - $276 = $labelInfo + 655376 + ($275 << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); - $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); - $287 = $264 << 2; - $288 = $labelInfo + 131084 + ($287 << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$242 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $317 = $labelInfo + 12 + ($i$637 << 2) | 0; - $320 = $i$637 << 1; - $321 = $labelInfo + 655376 + ($320 << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); - $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + $$0 = $75 + 1 | 0; + } else $$0 = $first; + } else $$0 = $first; + } else $$0 = $first; else $$0 = $first; while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNSt3__111__money_putIwE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_Ri($__intl, $__neg, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd) { + $__intl = $__intl | 0; + $__neg = $__neg | 0; + $__loc = $__loc | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__sn = $__sn | 0; + $__fd = $__fd | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $110 = 0, $114 = 0, $12 = 0, $13 = 0, $16 = 0, $2 = 0, $3 = 0, $30 = 0, $4 = 0, $45 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $77 = 0, $78 = 0, $8 = 0, $81 = 0, $9 = 0, $95 = 0, $storemerge = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 112 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } + $0 = sp + 108 | 0; + $1 = sp + 96 | 0; + $2 = sp + 92 | 0; + $3 = sp + 80 | 0; + $4 = sp + 68 | 0; + $5 = sp + 56 | 0; + $6 = sp + 52 | 0; + $7 = sp + 40 | 0; + $8 = sp + 36 | 0; + $9 = sp + 24 | 0; + $10 = sp + 12 | 0; + $11 = sp; + if ($__intl) { + $12 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13416) | 0; + $13 = HEAP32[$12 >> 2] | 0; + if ($__neg) { + FUNCTION_TABLE_vii[HEAP32[$13 + 44 >> 2] & 63]($0, $12); + $16 = HEAP32[$0 >> 2] | 0; + HEAP8[$__pat >> 0] = $16; + HEAP8[$__pat + 1 >> 0] = $16 >> 8; + HEAP8[$__pat + 2 >> 0] = $16 >> 16; + HEAP8[$__pat + 3 >> 0] = $16 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 32 >> 2] & 63]($1, $12); + if (!(HEAP8[$__sn >> 0] & 1)) HEAP8[$__sn >> 0] = 0; else HEAP32[HEAP32[$__sn + 8 >> 2] >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$1 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($1); + } else { + FUNCTION_TABLE_vii[HEAP32[$13 + 40 >> 2] & 63]($2, $12); + $30 = HEAP32[$2 >> 2] | 0; + HEAP8[$__pat >> 0] = $30; + HEAP8[$__pat + 1 >> 0] = $30 >> 8; + HEAP8[$__pat + 2 >> 0] = $30 >> 16; + HEAP8[$__pat + 3 >> 0] = $30 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 28 >> 2] & 63]($3, $12); + if (!(HEAP8[$__sn >> 0] & 1)) HEAP8[$__sn >> 0] = 0; else HEAP32[HEAP32[$__sn + 8 >> 2] >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$3 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$3 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$3 + 8 >> 2]; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($3); + } + $45 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 12 >> 2] & 127]($12) | 0; + HEAP32[$__dp >> 2] = $45; + $49 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 16 >> 2] & 127]($12) | 0; + HEAP32[$__ts >> 2] = $49; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 20 >> 2] & 63]($4, $12); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$4 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($4); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$12 >> 2] | 0) + 24 >> 2] & 63]($5, $12); + if (!(HEAP8[$__sym >> 0] & 1)) HEAP8[$__sym >> 0] = 0; else HEAP32[HEAP32[$__sym + 8 >> 2] >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$5 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$5 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$5 + 8 >> 2]; + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($5); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 36 >> 2] & 127]($12) | 0; + } else { + $77 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13352) | 0; + $78 = HEAP32[$77 >> 2] | 0; + if ($__neg) { + FUNCTION_TABLE_vii[HEAP32[$78 + 44 >> 2] & 63]($6, $77); + $81 = HEAP32[$6 >> 2] | 0; + HEAP8[$__pat >> 0] = $81; + HEAP8[$__pat + 1 >> 0] = $81 >> 8; + HEAP8[$__pat + 2 >> 0] = $81 >> 16; + HEAP8[$__pat + 3 >> 0] = $81 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$77 >> 2] | 0) + 32 >> 2] & 63]($7, $77); + if (!(HEAP8[$__sn >> 0] & 1)) HEAP8[$__sn >> 0] = 0; else HEAP32[HEAP32[$__sn + 8 >> 2] >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$7 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$7 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$7 + 8 >> 2]; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($7); + } else { + FUNCTION_TABLE_vii[HEAP32[$78 + 40 >> 2] & 63]($8, $77); + $95 = HEAP32[$8 >> 2] | 0; + HEAP8[$__pat >> 0] = $95; + HEAP8[$__pat + 1 >> 0] = $95 >> 8; + HEAP8[$__pat + 2 >> 0] = $95 >> 16; + HEAP8[$__pat + 3 >> 0] = $95 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$77 >> 2] | 0) + 28 >> 2] & 63]($9, $77); + if (!(HEAP8[$__sn >> 0] & 1)) HEAP8[$__sn >> 0] = 0; else HEAP32[HEAP32[$__sn + 8 >> 2] >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sn, 0); + HEAP32[$__sn >> 2] = HEAP32[$9 >> 2]; + HEAP32[$__sn + 4 >> 2] = HEAP32[$9 + 4 >> 2]; + HEAP32[$__sn + 8 >> 2] = HEAP32[$9 + 8 >> 2]; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($9); + } + $110 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$77 >> 2] | 0) + 12 >> 2] & 127]($77) | 0; + HEAP32[$__dp >> 2] = $110; + $114 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$77 >> 2] | 0) + 16 >> 2] & 127]($77) | 0; + HEAP32[$__ts >> 2] = $114; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$77 >> 2] | 0) + 20 >> 2] & 63]($10, $77); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$10 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$10 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$10 + 8 >> 2]; + HEAP32[$10 >> 2] = 0; + HEAP32[$10 + 4 >> 2] = 0; + HEAP32[$10 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($10); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$77 >> 2] | 0) + 24 >> 2] & 63]($11, $77); + if (!(HEAP8[$__sym >> 0] & 1)) HEAP8[$__sym >> 0] = 0; else HEAP32[HEAP32[$__sym + 8 >> 2] >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$11 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$11 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$11 + 8 >> 2]; + HEAP32[$11 >> 2] = 0; + HEAP32[$11 + 4 >> 2] = 0; + HEAP32[$11 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($11); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$77 >> 2] | 0) + 36 >> 2] & 127]($77) | 0; } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } + HEAP32[$__fd >> 2] = $storemerge; + STACKTOP = sp; + return; +} + +function _jpeg_idct_islow($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $$sum16 = 0, $$sum17 = 0, $$sum18 = 0, $$sum19 = 0, $$sum20 = 0, $$sum21 = 0, $$sum22 = 0, $1 = 0, $104 = 0, $105 = 0, $107 = 0, $109 = 0, $111 = 0, $113 = 0, $115 = 0, $117 = 0, $118 = 0, $124 = 0, $131 = 0, $138 = 0, $148 = 0, $149 = 0, $151 = 0, $153 = 0, $176 = 0, $185 = 0, $187 = 0, $188 = 0, $190 = 0, $192 = 0, $193 = 0, $195 = 0, $197 = 0, $199 = 0, $205 = 0, $207 = 0, $209 = 0, $212 = 0, $213 = 0, $215 = 0, $220 = 0, $221 = 0, $223 = 0, $225 = 0, $227 = 0, $229 = 0, $231 = 0, $233 = 0, $234 = 0, $246 = 0, $259 = 0, $272 = 0, $29 = 0, $38 = 0, $41 = 0, $47 = 0, $49 = 0, $5 = 0, $51 = 0, $53 = 0, $57 = 0, $63 = 0, $65 = 0, $67 = 0, $7 = 0, $77 = 0, $83 = 0, $89 = 0, $93 = 0, $96 = 0, $97 = 0, $99 = 0, $ctr$040 = 0, $ctr$136 = 0, $inptr$037 = 0, $quantptr$038 = 0, $workspace = 0, $wsptr$039 = 0, $wsptr$235 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $workspace = sp; + $1 = HEAP32[$cinfo + 324 >> 2] | 0; + $ctr$040 = 8; + $inptr$037 = $coef_block; + $quantptr$038 = HEAP32[$compptr + 80 >> 2] | 0; + $wsptr$039 = $workspace; + while (1) { + $5 = HEAP16[$inptr$037 + 16 >> 1] | 0; + $7 = HEAP16[$inptr$037 + 32 >> 1] | 0; + if (!(($5 | $7) << 16 >> 16)) if (!(HEAP16[$inptr$037 + 48 >> 1] | 0)) if (!(HEAP16[$inptr$037 + 64 >> 1] | 0)) if (!(HEAP16[$inptr$037 + 80 >> 1] | 0)) if (!(HEAP16[$inptr$037 + 96 >> 1] | 0)) if (!(HEAP16[$inptr$037 + 112 >> 1] | 0)) { + $29 = Math_imul(HEAP32[$quantptr$038 >> 2] << 2, HEAP16[$inptr$037 >> 1] | 0) | 0; + HEAP32[$wsptr$039 >> 2] = $29; + HEAP32[$wsptr$039 + 32 >> 2] = $29; + HEAP32[$wsptr$039 + 64 >> 2] = $29; + HEAP32[$wsptr$039 + 96 >> 2] = $29; + HEAP32[$wsptr$039 + 128 >> 2] = $29; + HEAP32[$wsptr$039 + 160 >> 2] = $29; + HEAP32[$wsptr$039 + 192 >> 2] = $29; + HEAP32[$wsptr$039 + 224 >> 2] = $29; + } else { + $38 = 0; + label = 10; + } else { + $38 = 0; + label = 10; + } else { + $38 = 0; + label = 10; + } else { + $38 = 0; + label = 10; + } else { + $38 = 0; + label = 10; + } else { + $38 = $7; + label = 10; } + if ((label | 0) == 10) { + label = 0; + $41 = Math_imul($38 << 16 >> 16, HEAP32[$quantptr$038 + 64 >> 2] | 0) | 0; + $47 = Math_imul(HEAP16[$inptr$037 + 96 >> 1] | 0, HEAP32[$quantptr$038 + 192 >> 2] | 0) | 0; + $49 = ($47 + $41 | 0) * 4433 | 0; + $51 = $49 + (Math_imul($47, -15137) | 0) | 0; + $53 = $49 + ($41 * 6270 | 0) | 0; + $57 = Math_imul(HEAP16[$inptr$037 >> 1] | 0, HEAP32[$quantptr$038 >> 2] | 0) | 0; + $63 = Math_imul(HEAP16[$inptr$037 + 64 >> 1] | 0, HEAP32[$quantptr$038 + 128 >> 2] | 0) | 0; + $65 = $63 + $57 << 13; + $67 = $57 - $63 << 13; + $77 = Math_imul(HEAP16[$inptr$037 + 112 >> 1] | 0, HEAP32[$quantptr$038 + 224 >> 2] | 0) | 0; + $83 = Math_imul(HEAP16[$inptr$037 + 80 >> 1] | 0, HEAP32[$quantptr$038 + 160 >> 2] | 0) | 0; + $89 = Math_imul(HEAP16[$inptr$037 + 48 >> 1] | 0, HEAP32[$quantptr$038 + 96 >> 2] | 0) | 0; + $93 = Math_imul($5 << 16 >> 16, HEAP32[$quantptr$038 + 32 >> 2] | 0) | 0; + $96 = $89 + $77 | 0; + $97 = $93 + $83 | 0; + $99 = ($97 + $96 | 0) * 9633 | 0; + $104 = Math_imul($93 + $77 | 0, -7373) | 0; + $105 = Math_imul($89 + $83 | 0, -20995) | 0; + $107 = $99 + (Math_imul($96, -16069) | 0) | 0; + $109 = $99 + (Math_imul($97, -3196) | 0) | 0; + $111 = $104 + ($77 * 2446 | 0) + $107 | 0; + $113 = $105 + ($83 * 16819 | 0) + $109 | 0; + $115 = $105 + ($89 * 25172 | 0) + $107 | 0; + $117 = $104 + ($93 * 12299 | 0) + $109 | 0; + $118 = $65 + $53 + 1024 | 0; + HEAP32[$wsptr$039 >> 2] = $118 + $117 >> 11; + HEAP32[$wsptr$039 + 224 >> 2] = $118 - $117 >> 11; + $124 = $67 + $51 + 1024 | 0; + HEAP32[$wsptr$039 + 32 >> 2] = $124 + $115 >> 11; + HEAP32[$wsptr$039 + 192 >> 2] = $124 - $115 >> 11; + $131 = $67 - $51 + 1024 | 0; + HEAP32[$wsptr$039 + 64 >> 2] = $131 + $113 >> 11; + HEAP32[$wsptr$039 + 160 >> 2] = $131 - $113 >> 11; + $138 = $65 - $53 + 1024 | 0; + HEAP32[$wsptr$039 + 96 >> 2] = $138 + $111 >> 11; + HEAP32[$wsptr$039 + 128 >> 2] = $138 - $111 >> 11; + } + if (($ctr$040 | 0) > 1) { + $ctr$040 = $ctr$040 + -1 | 0; + $inptr$037 = $inptr$037 + 2 | 0; + $quantptr$038 = $quantptr$038 + 4 | 0; + $wsptr$039 = $wsptr$039 + 4 | 0; + } else break; } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $30 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($30) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($36 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $36; - $39 = ($36 << 16 >> 16) * 7 | 0; - $41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1; - $45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265; - $49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $60 = $59 << 16 >> 16; - $61 = $59 << 16 >> 16 > 0; - if ($55 << 16 >> 16 <= 0) { - if ($61) { - HEAP16[$pnt2$368 >> 1] = $59; - $161 = $60 * 7 | 0; - $163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1; - $167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265; - $171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0; - HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076; - $175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0; - if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $181 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($181 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $181; - $184 = ($181 << 16 >> 16) * 7 | 0; - $186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1; - $190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265; - $194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0; - HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076; - $198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0; - if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$198 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $201 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $201; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16; - $206 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $201; - break; - } - } - if ($61) { - $64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - $67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0; - if (($64 | 0) > ($67 | 0)) { - HEAP16[$pnt2$368 >> 1] = $67; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $84 = $67; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $84 = $67; - } else { - HEAP16[$pnt2$368 >> 1] = $64; - if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $84 = $64; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $84 = $64; - } - $86 = ($84 << 16 >> 16) * 7 | 0; - $88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1; - $92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265; - $96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0; - HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $102 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($102 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $55; - $142 = $56 * 7 | 0; - $144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1; - $148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265; - $152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0; - HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076; - $156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0; - if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - $110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($107 | 0) > ($110 | 0)) { - HEAP16[$pnt2$368 >> 1] = $110; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $127 = $110; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $127 = $110; - } else { - HEAP16[$pnt2$368 >> 1] = $107; - if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $127 = $107; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $127 = $107; - } - $129 = ($127 << 16 >> 16) * 7 | 0; - $131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1; - $135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265; - $139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $221 = $pnt$169 + 4 | 0; - $222 = $pnt2$368 + 2 | 0; - $223 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $223; - $pnt$1$lcssa = $221; - $pnt2$3$lcssa = $222; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$167 = $223; - $pnt$169 = $221; - $pnt2$368 = $222; - $wk_max$160 = $wk_max$2; - } - } - } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; - } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $230 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $232 = HEAP32[$wk$444 >> 2] | 0; - if (($232 | 0) == ($i$342 | 0)) { - $238 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; - } - HEAP32[$wk$444 >> 2] = $238; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $242 = $labelInfo + 8 | 0; - $243 = $j$1$lcssa + -1 | 0; - HEAP32[$242 >> 2] = $243; - if (!$243) $$0 = 0; else { - _memset($230 | 0, 0, $243 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $250 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $265 = $i$538 * 7 | 0; - $268 = $labelInfo + 12 + ($264 << 2) | 0; - HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); - $275 = $264 << 1; - $276 = $labelInfo + 655376 + ($275 << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); - $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); - $287 = $264 << 2; - $288 = $labelInfo + 131084 + ($287 << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$242 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $317 = $labelInfo + 12 + ($i$637 << 2) | 0; - $320 = $i$637 << 1; - $321 = $labelInfo + 655376 + ($320 << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); - $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $$sum16 = $output_col + 1 | 0; + $$sum17 = $output_col + 2 | 0; + $$sum18 = $output_col + 3 | 0; + $$sum19 = $output_col + 4 | 0; + $$sum20 = $output_col + 5 | 0; + $$sum21 = $output_col + 6 | 0; + $$sum22 = $output_col + 7 | 0; + $ctr$136 = 0; + $wsptr$235 = $workspace; + while (1) { + $148 = HEAP32[$output_buf + ($ctr$136 << 2) >> 2] | 0; + $149 = $148 + $output_col | 0; + $151 = HEAP32[$wsptr$235 + 4 >> 2] | 0; + $153 = HEAP32[$wsptr$235 + 8 >> 2] | 0; + if (!($151 | $153)) if (!(HEAP32[$wsptr$235 + 12 >> 2] | 0)) if (!(HEAP32[$wsptr$235 + 16 >> 2] | 0)) if (!(HEAP32[$wsptr$235 + 20 >> 2] | 0)) if (!(HEAP32[$wsptr$235 + 24 >> 2] | 0)) if (!(HEAP32[$wsptr$235 + 28 >> 2] | 0)) { + $176 = HEAP8[$1 + ((((HEAP32[$wsptr$235 >> 2] | 0) + 16 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$149 >> 0] = $176; + HEAP8[$148 + $$sum16 >> 0] = $176; + HEAP8[$148 + $$sum17 >> 0] = $176; + HEAP8[$148 + $$sum18 >> 0] = $176; + HEAP8[$148 + $$sum19 >> 0] = $176; + HEAP8[$148 + $$sum20 >> 0] = $176; + HEAP8[$148 + $$sum21 >> 0] = $176; + HEAP8[$148 + $$sum22 >> 0] = $176; + } else { + $187 = 0; + label = 19; + } else { + $187 = 0; + label = 19; + } else { + $187 = 0; + label = 19; + } else { + $187 = 0; + label = 19; + } else { + $187 = 0; + label = 19; + } else { + $187 = $153; + label = 19; } + if ((label | 0) == 19) { + label = 0; + $185 = HEAP32[$wsptr$235 + 24 >> 2] | 0; + $188 = ($185 + $187 | 0) * 4433 | 0; + $190 = $188 + (Math_imul($185, -15137) | 0) | 0; + $192 = $188 + ($187 * 6270 | 0) | 0; + $193 = HEAP32[$wsptr$235 >> 2] | 0; + $195 = HEAP32[$wsptr$235 + 16 >> 2] | 0; + $197 = $195 + $193 << 13; + $199 = $193 - $195 << 13; + $205 = HEAP32[$wsptr$235 + 28 >> 2] | 0; + $207 = HEAP32[$wsptr$235 + 20 >> 2] | 0; + $209 = HEAP32[$wsptr$235 + 12 >> 2] | 0; + $212 = $209 + $205 | 0; + $213 = $151 + $207 | 0; + $215 = ($213 + $212 | 0) * 9633 | 0; + $220 = Math_imul($151 + $205 | 0, -7373) | 0; + $221 = Math_imul($209 + $207 | 0, -20995) | 0; + $223 = $215 + (Math_imul($212, -16069) | 0) | 0; + $225 = $215 + (Math_imul($213, -3196) | 0) | 0; + $227 = $220 + ($205 * 2446 | 0) + $223 | 0; + $229 = $221 + ($207 * 16819 | 0) + $225 | 0; + $231 = $221 + ($209 * 25172 | 0) + $223 | 0; + $233 = $220 + ($151 * 12299 | 0) + $225 | 0; + $234 = $197 + $192 + 131072 | 0; + HEAP8[$149 >> 0] = HEAP8[$1 + ((($234 + $233 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + HEAP8[$148 + $$sum22 >> 0] = HEAP8[$1 + ((($234 - $233 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + $246 = $199 + $190 + 131072 | 0; + HEAP8[$148 + $$sum16 >> 0] = HEAP8[$1 + ((($246 + $231 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + HEAP8[$148 + $$sum21 >> 0] = HEAP8[$1 + ((($246 - $231 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + $259 = $199 - $190 + 131072 | 0; + HEAP8[$148 + $$sum17 >> 0] = HEAP8[$1 + ((($259 + $229 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + HEAP8[$148 + $$sum20 >> 0] = HEAP8[$1 + ((($259 - $229 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + $272 = $197 - $192 + 131072 | 0; + HEAP8[$148 + $$sum18 >> 0] = HEAP8[$1 + ((($272 + $227 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + HEAP8[$148 + $$sum19 >> 0] = HEAP8[$1 + ((($272 - $227 | 0) >>> 18 & 1023) + 128) >> 0] | 0; + } + $ctr$136 = $ctr$136 + 1 | 0; + if (($ctr$136 | 0) == 8) break; else $wsptr$235 = $wsptr$235 + 32 | 0; } STACKTOP = sp; - return $$0 | 0; + return; } - -function _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } +function _mbsrtowcs($ws, $src, $wn, $st) { + $ws = $ws | 0; + $src = $src | 0; + $wn = $wn | 0; + $st = $st | 0; + var $$0 = 0, $$02$ph = 0, $$0219 = 0, $$03 = 0, $$1 = 0, $$1$lcssa = 0, $$14$lcssa = 0, $$1415 = 0, $$2 = 0, $$2$lcssa = 0, $$25 = 0, $$25$lcssa = 0, $$3 = 0, $$36 = 0, $$4 = 0, $$434 = 0, $$47$ph = 0, $$4718 = 0, $$48 = 0, $$5 = 0, $$5$lcssa = 0, $$6 = 0, $$6$lcssa = 0, $$7 = 0, $$8 = 0, $$833 = 0, $$in = 0, $$lcssa102 = 0, $$lcssa90 = 0, $$lcssa94 = 0, $$lcssa96 = 0, $$lcssa97 = 0, $$lcssa98 = 0, $0 = 0, $101 = 0, $107 = 0, $108 = 0, $116 = 0, $118 = 0, $121 = 0, $126 = 0, $128 = 0, $131 = 0, $14 = 0, $146 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $27 = 0, $28 = 0, $33 = 0, $40 = 0, $47 = 0, $54 = 0, $63 = 0, $7 = 0, $71 = 0, $87 = 0, $90 = 0, $91 = 0, $93 = 0, $94 = 0, $97 = 0, $c$2 = 0, $c$4 = 0, $c$5 = 0, $c$6 = 0, $s$0 = 0, $s$1$lcssa = 0, $s$10 = 0, $s$1035 = 0, $s$109 = 0, $s$116 = 0, $s$2 = 0, $s$2$lcssa = 0, $s$3 = 0, $s$4 = 0, $s$5$lcssa = 0, $s$5$ph = 0, $s$520 = 0, $s$6 = 0, $s$6$lcssa = 0, $s$7 = 0, $s$7$lcssa = 0, $s$8 = 0, $s$9 = 0, label = 0; + $0 = HEAP32[$src >> 2] | 0; + if (!$st) label = 5; else { + $2 = HEAP32[$st >> 2] | 0; + if (!$2) label = 5; else if (!$ws) { + $$36 = $wn; + $c$2 = $2; + $s$3 = $0; + label = 16; + } else { + HEAP32[$st >> 2] = 0; + $$3 = $ws; + $$7 = $wn; + $c$4 = $2; + $s$8 = $0; + label = 37; } } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } - } + if ((label | 0) == 5) if (!$ws) { + $$03 = $wn; + $s$0 = $0; + label = 7; + } else { + $$02$ph = $ws; + $$47$ph = $wn; + $s$5$ph = $0; + label = 6; } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $30 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($30) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + L7 : while (1) if ((label | 0) == 6) { + label = 0; + if (!$$47$ph) { + $s$5$lcssa = $s$5$ph; + label = 26; + break; + } else { + $$0219 = $$02$ph; + $$4718 = $$47$ph; + $s$520 = $s$5$ph; + } + while (1) { + $63 = HEAP8[$s$520 >> 0] | 0; + do if ((($63 & 255) + -1 | 0) >>> 0 < 127) if ($$4718 >>> 0 > 4 & ($s$520 & 3 | 0) == 0) { + $$1 = $$0219; + $$5 = $$4718; + $s$6 = $s$520; while (1) { - do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($35 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $35; - $38 = ($35 << 16 >> 16) * 7 | 0; - $40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1; - $44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265; - $48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $59 = $58 << 16 >> 16; - $60 = $58 << 16 >> 16 > 0; - if ($54 << 16 >> 16 <= 0) { - if ($60) { - HEAP16[$pnt2$368 >> 1] = $58; - $160 = $59 * 7 | 0; - $162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1; - $166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265; - $170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076; - $174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0; - if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $180 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($180 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $180; - $183 = ($180 << 16 >> 16) * 7 | 0; - $185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1; - $189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265; - $193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076; - $197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0; - if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$197 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $200 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $200; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16; - $205 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $200; - break; - } - } - if ($60) { - $63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - $66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - if (($63 | 0) > ($66 | 0)) { - HEAP16[$pnt2$368 >> 1] = $66; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $83 = $66; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $83 = $66; - } else { - HEAP16[$pnt2$368 >> 1] = $63; - if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $83 = $63; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $83 = $63; - } - $85 = ($83 << 16 >> 16) * 7 | 0; - $87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1; - $91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265; - $95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $101 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($101 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $54; - $141 = $55 * 7 | 0; - $143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1; - $147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265; - $151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076; - $155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0; - if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - $109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($106 | 0) > ($109 | 0)) { - HEAP16[$pnt2$368 >> 1] = $109; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $126 = $109; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $126 = $109; - } else { - HEAP16[$pnt2$368 >> 1] = $106; - if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $126 = $106; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $126 = $106; - } - $128 = ($126 << 16 >> 16) * 7 | 0; - $130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1; - $134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265; - $138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $220 = $pnt$169 + 4 | 0; - $221 = $pnt2$368 + 2 | 0; - $222 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $222; - $pnt$1$lcssa = $220; - $pnt2$3$lcssa = $221; - $wk_max$1$lcssa = $wk_max$2; + $71 = HEAP32[$s$6 >> 2] | 0; + if (($71 + -16843009 | $71) & -2139062144) { + $$1$lcssa = $$1; + $$5$lcssa = $$5; + $$lcssa94 = $71; + $s$6$lcssa = $s$6; + label = 32; break; + } + HEAP32[$$1 >> 2] = $71 & 255; + HEAP32[$$1 + 4 >> 2] = HEAPU8[$s$6 + 1 >> 0]; + HEAP32[$$1 + 8 >> 2] = HEAPU8[$s$6 + 2 >> 0]; + $87 = $s$6 + 4 | 0; + $90 = $$1 + 16 | 0; + HEAP32[$$1 + 12 >> 2] = HEAPU8[$s$6 + 3 >> 0]; + $91 = $$5 + -4 | 0; + if ($91 >>> 0 > 4) { + $$1 = $90; + $$5 = $91; + $s$6 = $87; } else { - $dpnt$167 = $222; - $pnt$169 = $220; - $pnt2$368 = $221; - $wk_max$160 = $wk_max$2; + $$lcssa96 = $87; + $$lcssa97 = $90; + $$lcssa98 = $91; + label = 31; + break; } } + if ((label | 0) == 31) { + label = 0; + $$2 = $$lcssa97; + $$6 = $$lcssa98; + $94 = HEAP8[$$lcssa96 >> 0] | 0; + $s$7 = $$lcssa96; + break; + } else if ((label | 0) == 32) { + label = 0; + $$2 = $$1$lcssa; + $$6 = $$5$lcssa; + $94 = $$lcssa94 & 255; + $s$7 = $s$6$lcssa; + break; + } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + $$2 = $$0219; + $$6 = $$4718; + $94 = $63; + $s$7 = $s$520; + } else { + $$2 = $$0219; + $$6 = $$4718; + $94 = $63; + $s$7 = $s$520; + } while (0); + $93 = $94 & 255; + if (($93 + -1 | 0) >>> 0 >= 127) { + $$2$lcssa = $$2; + $$6$lcssa = $$6; + $$lcssa102 = $93; + $s$7$lcssa = $s$7; + break; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + $97 = $s$7 + 1 | 0; + HEAP32[$$2 >> 2] = $93; + $$4718 = $$6 + -1 | 0; + if (!$$4718) { + $s$5$lcssa = $97; + label = 26; + break L7; } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $$0219 = $$2 + 4 | 0; + $s$520 = $97; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $231 = HEAP32[$wk$444 >> 2] | 0; - if (($231 | 0) == ($i$342 | 0)) { - $237 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; + $101 = $$lcssa102 + -194 | 0; + if ($101 >>> 0 > 50) { + $$434 = $$2$lcssa; + $$833 = $$6$lcssa; + $s$1035 = $s$7$lcssa; + label = 48; + break; + } + $$3 = $$2$lcssa; + $$7 = $$6$lcssa; + $c$4 = HEAP32[6224 + ($101 << 2) >> 2] | 0; + $s$8 = $s$7$lcssa + 1 | 0; + label = 37; + continue; + } else if ((label | 0) == 7) { + label = 0; + $7 = HEAP8[$s$0 >> 0] | 0; + if ((($7 & 255) + -1 | 0) >>> 0 < 127) if (!($s$0 & 3)) { + $14 = HEAP32[$s$0 >> 2] | 0; + if (!(($14 + -16843009 | $14) & -2139062144)) { + $$1415 = $$03; + $s$116 = $s$0; + while (1) { + $19 = $s$116 + 4 | 0; + $20 = $$1415 + -4 | 0; + $21 = HEAP32[$19 >> 2] | 0; + if (!(($21 + -16843009 | $21) & -2139062144)) { + $$1415 = $20; + $s$116 = $19; + } else { + $$14$lcssa = $20; + $$in = $21; + $s$1$lcssa = $19; + break; + } } - HEAP32[$wk$444 >> 2] = $237; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + } else { + $$14$lcssa = $$03; + $$in = $14; + $s$1$lcssa = $s$0; + } + $$25 = $$14$lcssa; + $28 = $$in & 255; + $s$2 = $s$1$lcssa; + } else { + $$25 = $$03; + $28 = $7; + $s$2 = $s$0; + } else { + $$25 = $$03; + $28 = $7; + $s$2 = $s$0; + } + $27 = $28 & 255; + if (($27 + -1 | 0) >>> 0 < 127) { + $$03 = $$25 + -1 | 0; + $s$0 = $s$2 + 1 | 0; + label = 7; + continue; + } else { + $$25$lcssa = $$25; + $$lcssa90 = $27; + $s$2$lcssa = $s$2; + } + $33 = $$lcssa90 + -194 | 0; + if ($33 >>> 0 > 50) { + $$434 = $ws; + $$833 = $$25$lcssa; + $s$1035 = $s$2$lcssa; + label = 48; + break; + } + $$36 = $$25$lcssa; + $c$2 = HEAP32[6224 + ($33 << 2) >> 2] | 0; + $s$3 = $s$2$lcssa + 1 | 0; + label = 16; + continue; + } else if ((label | 0) == 16) { + label = 0; + $40 = (HEAPU8[$s$3 >> 0] | 0) >>> 3; + if (($40 + -16 | $40 + ($c$2 >> 26)) >>> 0 > 7) { + label = 17; + break; + } + $47 = $s$3 + 1 | 0; + if (!($c$2 & 33554432)) $s$4 = $47; else { + if ((HEAP8[$47 >> 0] & -64) << 24 >> 24 != -128) { + label = 20; + break; + } + $54 = $s$3 + 2 | 0; + if (!($c$2 & 524288)) $s$4 = $54; else { + if ((HEAP8[$54 >> 0] & -64) << 24 >> 24 != -128) { + label = 23; break; } + $s$4 = $s$3 + 3 | 0; } } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $249 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0)); + $$03 = $$36 + -1 | 0; + $s$0 = $s$4; + label = 7; + continue; + } else if ((label | 0) == 37) { + label = 0; + $107 = HEAPU8[$s$8 >> 0] | 0; + $108 = $107 >>> 3; + if (($108 + -16 | $108 + ($c$4 >> 26)) >>> 0 > 7) { + label = 38; + break; + } + $116 = $s$8 + 1 | 0; + $118 = $107 + -128 | $c$4 << 6; + if (($118 | 0) < 0) { + $121 = HEAPU8[$116 >> 0] | 0; + if (($121 & 192 | 0) != 128) { + label = 41; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$538 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $126 = $s$8 + 2 | 0; + $128 = $121 + -128 | $118 << 6; + if (($128 | 0) < 0) { + $131 = HEAPU8[$126 >> 0] | 0; + if (($131 & 192 | 0) != 128) { + label = 44; + break; + } + $c$5 = $131 + -128 | $128 << 6; + $s$9 = $s$8 + 3 | 0; + } else { + $c$5 = $128; + $s$9 = $126; } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $316 = $labelInfo + 12 + ($i$637 << 2) | 0; - $319 = $i$637 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } else { + $c$5 = $118; + $s$9 = $116; } + HEAP32[$$3 >> 2] = $c$5; + $$02$ph = $$3 + 4 | 0; + $$47$ph = $$7 + -1 | 0; + $s$5$ph = $s$9; + label = 6; + continue; } - STACKTOP = sp; - return $$0 | 0; -} -function _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } - } + if ((label | 0) == 17) { + $$4 = $ws; + $$8 = $$36; + $c$6 = $c$2; + $s$10 = $s$3 + -1 | 0; + label = 47; + } else if ((label | 0) == 20) { + $$4 = $ws; + $$8 = $$36; + $c$6 = $c$2; + $s$10 = $s$3 + -1 | 0; + label = 47; + } else if ((label | 0) == 23) { + $$4 = $ws; + $$8 = $$36; + $c$6 = $c$2; + $s$10 = $s$3 + -1 | 0; + label = 47; + } else if ((label | 0) == 26) { + HEAP32[$src >> 2] = $s$5$lcssa; + $$0 = $wn; + } else if ((label | 0) == 38) { + $$4 = $$3; + $$8 = $$7; + $c$6 = $c$4; + $s$10 = $s$8 + -1 | 0; + label = 47; + } else if ((label | 0) == 41) { + $$48 = $$3; + $s$109 = $s$8 + -1 | 0; + label = 52; + } else if ((label | 0) == 44) { + $$48 = $$3; + $s$109 = $s$8 + -1 | 0; + label = 52; } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } + if ((label | 0) == 47) if (!$c$6) { + $$434 = $$4; + $$833 = $$8; + $s$1035 = $s$10; + label = 48; + } else { + $$48 = $$4; + $s$109 = $s$10; + label = 52; + } + if ((label | 0) == 48) if (!(HEAP8[$s$1035 >> 0] | 0)) { + if ($$434) { + HEAP32[$$434 >> 2] = 0; + HEAP32[$src >> 2] = 0; } + $$0 = $wn - $$833 | 0; + } else { + $$48 = $$434; + $s$109 = $s$1035; + label = 52; } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $30 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 2) + 4) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($30) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0; - if ($35 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $35; - $38 = ($35 << 16 >> 16) * 7 | 0; - $40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1; - $44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265; - $48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $59 = $58 << 16 >> 16; - $60 = $58 << 16 >> 16 > 0; - if ($54 << 16 >> 16 <= 0) { - if ($60) { - HEAP16[$pnt2$368 >> 1] = $58; - $160 = $59 * 7 | 0; - $162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1; - $166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265; - $170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076; - $174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0; - if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; + if ((label | 0) == 52) { + $146 = ___errno_location() | 0; + HEAP32[$146 >> 2] = 84; + if (!$$48) $$0 = -1; else { + HEAP32[$src >> 2] = $s$109; + $$0 = -1; + } + } + return $$0 | 0; +} + +function __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_RKNS_28BinaryHierarchicalClusteringILi96EEE($this, $features1, $features2, $index2) { + $this = $this | 0; + $features1 = $features1 | 0; + $features2 = $features2 | 0; + $index2 = $index2 | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa24 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $107 = 0, $11 = 0, $112 = 0, $113 = 0, $12 = 0, $125 = 0, $132 = 0, $139 = 0, $144 = 0, $145 = 0, $149 = 0, $16 = 0, $2 = 0, $20 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $39 = 0, $4 = 0, $41 = 0, $44 = 0, $48 = 0, $50 = 0, $51 = 0, $53 = 0, $58 = 0, $6 = 0, $61 = 0, $7 = 0, $72 = 0, $77 = 0, $78 = 0, $82 = 0, $84 = 0, $87 = 0, $9 = 0, $92 = 0, $93 = 0, $best_index$0$lcssa = 0, $best_index$09 = 0, $best_index$1 = 0, $first_best$0$lcssa = 0, $first_best$011 = 0, $first_best$1 = 0, $i$015 = 0, $j$012 = 0, $second_best$0$lcssa = 0, $second_best$010 = 0, $second_best$1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 16 | 0; + $1 = sp + 8 | 0; + $2 = sp; + $3 = HEAP32[$this >> 2] | 0; + $4 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$4 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($3 | 0)) { + $7 = $$pre$i$i$i; + while (1) { + $6 = $7 + -8 | 0; + if (($6 | 0) == ($3 | 0)) { + $$lcssa24 = $6; + break; + } else $7 = $6; + } + HEAP32[$4 >> 2] = $$lcssa24; + } + $9 = $features1 + 20 | 0; + $10 = HEAP32[$9 >> 2] | 0; + $11 = $features1 + 16 | 0; + $12 = HEAP32[$11 >> 2] | 0; + $16 = ($10 - $12 | 0) / 20 | 0; + if (($10 | 0) == ($12 | 0)) $$0 = 0; else { + $20 = $features2 + 16 | 0; + if ((HEAP32[$features2 + 20 >> 2] | 0) == (HEAP32[$20 >> 2] | 0)) $$0 = 0; else { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE7reserveEj($this, $16); + $23 = $features1 + 4 | 0; + $24 = $index2 + 76 | 0; + $25 = $index2 + 72 | 0; + $26 = $features2 + 4 | 0; + $27 = $1 + 4 | 0; + $28 = $this + 8 | 0; + $29 = $this + 12 | 0; + $30 = $2 + 4 | 0; + $31 = HEAP32[$9 >> 2] | 0; + $32 = HEAP32[$11 >> 2] | 0; + L9 : do if (($31 | 0) == ($32 | 0)) $$lcssa = ($31 - $32 | 0) / 20 | 0; else { + $i$015 = 0; + L10 : while (1) { + $39 = Math_imul(HEAP32[$features1 >> 2] | 0, $i$015) | 0; + $41 = (HEAP32[$23 >> 2] | 0) + $39 | 0; + __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryEPKh($index2, $41) | 0; + $44 = HEAP32[$25 >> 2] | 0; + $48 = (HEAP32[$24 >> 2] | 0) - $44 >> 2; + if (!$48) { + $best_index$0$lcssa = 2147483647; + $first_best$0$lcssa = -1; + $second_best$0$lcssa = -1; + } else { + $50 = HEAP8[(HEAP32[$11 >> 2] | 0) + ($i$015 * 20 | 0) + 16 >> 0] | 0; + $51 = HEAP32[$20 >> 2] | 0; + $best_index$09 = 2147483647; + $first_best$011 = -1; + $j$012 = 0; + $second_best$010 = -1; + while (1) { + $53 = HEAP32[$44 + ($j$012 << 2) >> 2] | 0; + if ($50 << 24 >> 24 == (HEAP8[$51 + ($53 * 20 | 0) + 16 >> 0] | 0)) { + $58 = Math_imul(HEAP32[$features2 >> 2] | 0, $53) | 0; + $61 = __ZN6vision18HammingDistance768EPKjS1_($41, (HEAP32[$26 >> 2] | 0) + $58 | 0) | 0; + if ($61 >>> 0 < $first_best$011 >>> 0) { + $best_index$1 = $53; + $first_best$1 = $61; + $second_best$1 = $first_best$011; + } else { + $best_index$1 = $best_index$09; + $first_best$1 = $first_best$011; + $second_best$1 = $61 >>> 0 < $second_best$010 >>> 0 ? $61 : $second_best$010; + } + } else { + $best_index$1 = $best_index$09; + $first_best$1 = $first_best$011; + $second_best$1 = $second_best$010; + } + $j$012 = $j$012 + 1 | 0; + if (($j$012 | 0) == ($48 | 0)) { + $best_index$0$lcssa = $best_index$1; + $first_best$0$lcssa = $first_best$1; + $second_best$0$lcssa = $second_best$1; break; + } else { + $best_index$09 = $best_index$1; + $first_best$011 = $first_best$1; + $second_best$010 = $second_best$1; } - $180 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($180 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $180; - $183 = ($180 << 16 >> 16) * 7 | 0; - $185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1; - $189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265; - $193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076; - $197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0; - if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$197 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; + } + } + do if (($first_best$0$lcssa | 0) != -1) { + if (($best_index$0$lcssa | 0) == -1) break L10; + if (($second_best$0$lcssa | 0) == -1) { + HEAP32[$1 >> 2] = $i$015; + HEAP32[$27 >> 2] = $best_index$0$lcssa; + $84 = HEAP32[$4 >> 2] | 0; + if (($84 | 0) == (HEAP32[$28 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $1); break; } else { - $200 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $200; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16; - $205 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $200; + $87 = $1; + $92 = HEAP32[$87 + 4 >> 2] | 0; + $93 = $84; + HEAP32[$93 >> 2] = HEAP32[$87 >> 2]; + HEAP32[$93 + 4 >> 2] = $92; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; break; } } - if ($60) { - $63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - $66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - if (($63 | 0) > ($66 | 0)) { - HEAP16[$pnt2$368 >> 1] = $66; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $83 = $66; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $83 = $66; + if (+($first_best$0$lcssa >>> 0) / +($second_best$0$lcssa >>> 0) < +HEAPF32[$29 >> 2]) { + HEAP32[$2 >> 2] = $i$015; + HEAP32[$30 >> 2] = $best_index$0$lcssa; + $104 = HEAP32[$4 >> 2] | 0; + if (($104 | 0) == (HEAP32[$28 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $2); + break; } else { - HEAP16[$pnt2$368 >> 1] = $63; - if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $83 = $63; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $83 = $63; + $107 = $2; + $112 = HEAP32[$107 + 4 >> 2] | 0; + $113 = $104; + HEAP32[$113 >> 2] = HEAP32[$107 >> 2]; + HEAP32[$113 + 4 >> 2] = $112; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; + break; } - $85 = ($83 << 16 >> 16) * 7 | 0; - $87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1; - $91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265; - $95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $101 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($101 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $54; - $141 = $55 * 7 | 0; - $143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1; - $147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265; - $151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076; - $155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0; - if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - $109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($106 | 0) > ($109 | 0)) { - HEAP16[$pnt2$368 >> 1] = $109; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $126 = $109; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $126 = $109; - } else { - HEAP16[$pnt2$368 >> 1] = $106; - if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $126 = $106; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $126 = $106; } - $128 = ($126 << 16 >> 16) * 7 | 0; - $130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1; - $134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265; - $138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; } while (0); - $i$265 = $i$265 + 1 | 0; - $220 = $pnt$169 + 4 | 0; - $221 = $pnt2$368 + 2 | 0; - $222 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $222; - $pnt$1$lcssa = $220; - $pnt2$3$lcssa = $221; - $wk_max$1$lcssa = $wk_max$2; + $i$015 = $i$015 + 1 | 0; + $125 = ((HEAP32[$9 >> 2] | 0) - (HEAP32[$11 >> 2] | 0) | 0) / 20 | 0; + if ($i$015 >>> 0 >= $125 >>> 0) { + $$lcssa = $125; + break L9; + } + } + $72 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28718) | 0, 28565) | 0, 34302) | 0, 160) | 0, 34309) | 0, 28790) | 0; + $77 = __ZNKSt3__18ios_base6getlocEv($72 + (HEAP32[(HEAP32[$72 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $77; + $78 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $82 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$78 >> 2] | 0) + 28 >> 2] & 63]($78, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($72, $82) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($72) | 0; + _abort(); + } while (0); + $132 = (HEAP32[$4 >> 2] | 0) - (HEAP32[$this >> 2] | 0) >> 3; + if ($132 >>> 0 > $$lcssa >>> 0) { + $139 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28808) | 0, 28565) | 0, 34302) | 0, 175) | 0, 34309) | 0, 28868) | 0; + $144 = __ZNKSt3__18ios_base6getlocEv($139 + (HEAP32[(HEAP32[$139 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $144; + $145 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $149 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$145 >> 2] | 0) + 28 >> 2] & 63]($145, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($139, $149) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($139) | 0; + _abort(); + } else $$0 = $132; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _icpPointRobust($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) { + $handle = $handle | 0; + $data = $data | 0; + $initMatXw2Xc = $initMatXw2Xc | 0; + $matXw2Xc = $matXw2Xc | 0; + $err = $err | 0; + var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa50 = 0.0, $$pn = 0.0, $$pre = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $108 = 0.0, $109 = 0.0, $11 = 0, $113 = 0, $117 = 0, $121 = 0, $125 = 0, $129 = 0, $133 = 0, $137 = 0, $14 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $16 = 0, $17 = 0, $174 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $41 = 0, $47 = 0, $51 = 0.0, $55 = 0.0, $56 = 0, $62 = 0.0, $66 = 0, $69 = 0.0, $71 = 0, $72 = 0.0, $75 = 0.0, $78 = 0.0, $8 = 0, $86 = 0.0, $99 = 0.0, $K2$0 = 0.0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$032 = 0.0, $err1$1 = 0.0, $i$1 = 0, $j$043 = 0, $j$131 = 0, $j$233 = 0, $j$338 = 0, $k$0$lcssa = 0, $k$039 = 0, $k$1 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer5 = sp + 184 | 0; + $vararg_buffer3 = sp + 176 | 0; + $vararg_buffer1 = sp + 168 | 0; + $vararg_buffer = sp + 160 | 0; + $U = sp + 48 | 0; + $matXw2U = sp + 64 | 0; + $dS = sp; + $0 = $data + 8 | 0; + $1 = HEAP32[$0 >> 2] | 0; + do if (($1 | 0) < 4) $$0 = -1; else { + $8 = ~~(+($1 | 0) * +HEAPF64[$handle + 128 >> 3]) + -1 | 0; + $$ = ($8 | 0) < 3 ? 3 : $8; + $11 = _malloc($1 * 96 | 0) | 0; + if (!$11) { + _arLog(3, 19294, $vararg_buffer); + $$0 = -1; + break; + } + $14 = _malloc($1 << 4) | 0; + if (!$14) { + _arLog(3, 19294, $vararg_buffer1); + _free($11); + $$0 = -1; + break; + } + $16 = $1 << 3; + $17 = _malloc($16) | 0; + if (!$17) { + _arLog(3, 19294, $vararg_buffer3); + _free($11); + _free($14); + $$0 = -1; + break; + } + $19 = _malloc($16) | 0; + if (!$19) { + _arLog(3, 19294, $vararg_buffer5); + _free($11); + _free($14); + _free($17); + $$0 = -1; + break; + } else $j$043 = 0; + do { + HEAPF64[$matXw2Xc + ($j$043 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) >> 3]; + HEAPF64[$matXw2Xc + ($j$043 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 8 >> 3]; + HEAPF64[$matXw2Xc + ($j$043 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 16 >> 3]; + HEAPF64[$matXw2Xc + ($j$043 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 24 >> 3]; + $j$043 = $j$043 + 1 | 0; + } while (($j$043 | 0) != 3); + $21 = $data + 4 | 0; + $22 = $U + 8 | 0; + $23 = $19 + ($$ << 3) | 0; + $24 = $handle + 104 | 0; + $25 = $handle + 120 | 0; + $26 = $handle + 112 | 0; + $27 = $handle + 96 | 0; + $err0$0 = 0.0; + $i$1 = 0; + L17 : while (1) { + _arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0; + $41 = HEAP32[$0 >> 2] | 0; + if (($41 | 0) > 0) { + $j$131 = 0; + while (1) { + if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$21 >> 2] | 0) + ($j$131 * 24 | 0) | 0) | 0) < 0) { + label = 14; + break L17; + } + $47 = HEAP32[$data >> 2] | 0; + $51 = +HEAPF64[$47 + ($j$131 << 4) >> 3] - +HEAPF64[$U >> 3]; + $55 = +HEAPF64[$47 + ($j$131 << 4) + 8 >> 3] - +HEAPF64[$22 >> 3]; + $56 = $j$131 << 1; + HEAPF64[$14 + ($56 << 3) >> 3] = $51; + HEAPF64[$14 + (($56 | 1) << 3) >> 3] = $55; + $62 = $51 * $51 + $55 * $55; + HEAPF64[$19 + ($j$131 << 3) >> 3] = $62; + HEAPF64[$17 + ($j$131 << 3) >> 3] = $62; + $j$131 = $j$131 + 1 | 0; + $66 = HEAP32[$0 >> 2] | 0; + if (($j$131 | 0) >= ($66 | 0)) { + $$lcssa = $66; + break; + } + } + } else $$lcssa = $41; + _qsort($19, $$lcssa, 8, 18); + $69 = +HEAPF64[$23 >> 3] * 4.0; + $K2$0 = $69 < 16.0 ? 16.0 : $69; + $71 = HEAP32[$0 >> 2] | 0; + $72 = $K2$0 / 6.0; + if (($71 | 0) > 0) { + $err1$032 = 0.0; + $j$233 = 0; + while (1) { + $75 = +HEAPF64[$19 + ($j$233 << 3) >> 3]; + if ($75 > $K2$0) $$pn = $72; else { + $78 = 1.0 - $75 / $K2$0; + $$pn = $72 * (1.0 - $78 * ($78 * $78)); + } + $err1$1 = $err1$032 + $$pn; + $j$233 = $j$233 + 1 | 0; + if (($j$233 | 0) >= ($71 | 0)) { + $err1$0$lcssa = $err1$1; break; + } else $err1$032 = $err1$1; + } + } else $err1$0$lcssa = 0.0; + $86 = $err1$0$lcssa / +($71 | 0); + if ($86 < +HEAPF64[$24 >> 3]) { + $$lcssa50 = $86; + label = 36; + break; + } + if (($i$1 | 0) > 0) if ($86 < +HEAPF64[$25 >> 3]) if ($86 / $err0$0 > +HEAPF64[$26 >> 3]) { + $$lcssa50 = $86; + label = 36; + break; + } + if (($i$1 | 0) == (HEAP32[$27 >> 2] | 0)) { + $$lcssa50 = $86; + label = 36; + break; + } + if (($71 | 0) > 0) { + $174 = $71; + $j$338 = 0; + $k$039 = 0; + while (1) { + $99 = +HEAPF64[$17 + ($j$338 << 3) >> 3]; + if (!($99 <= $K2$0)) { + $$pre = $174; + $k$1 = $k$039; } else { - $dpnt$167 = $222; - $pnt$169 = $220; - $pnt2$368 = $221; - $wk_max$160 = $wk_max$2; + $101 = $k$039 * 6 | 0; + $102 = $11 + ($101 << 3) | 0; + if ((_icpGetJ_U_S($102, $handle, $matXw2Xc, (HEAP32[$21 >> 2] | 0) + ($j$338 * 24 | 0) | 0) | 0) < 0) { + label = 28; + break L17; + } + $108 = 1.0 - $99 / $K2$0; + $109 = $108 * $108; + HEAPF64[$102 >> 3] = +HEAPF64[$102 >> 3] * $109; + $113 = $11 + (($101 | 1) << 3) | 0; + HEAPF64[$113 >> 3] = +HEAPF64[$113 >> 3] * $109; + $117 = $11 + ($101 + 2 << 3) | 0; + HEAPF64[$117 >> 3] = $109 * +HEAPF64[$117 >> 3]; + $121 = $11 + ($101 + 3 << 3) | 0; + HEAPF64[$121 >> 3] = $109 * +HEAPF64[$121 >> 3]; + $125 = $11 + ($101 + 4 << 3) | 0; + HEAPF64[$125 >> 3] = $109 * +HEAPF64[$125 >> 3]; + $129 = $11 + ($101 + 5 << 3) | 0; + HEAPF64[$129 >> 3] = $109 * +HEAPF64[$129 >> 3]; + $133 = $11 + ($101 + 6 << 3) | 0; + HEAPF64[$133 >> 3] = $109 * +HEAPF64[$133 >> 3]; + $137 = $11 + ($101 + 7 << 3) | 0; + HEAPF64[$137 >> 3] = $109 * +HEAPF64[$137 >> 3]; + $141 = $11 + ($101 + 8 << 3) | 0; + HEAPF64[$141 >> 3] = $109 * +HEAPF64[$141 >> 3]; + $145 = $11 + ($101 + 9 << 3) | 0; + HEAPF64[$145 >> 3] = $109 * +HEAPF64[$145 >> 3]; + $149 = $11 + ($101 + 10 << 3) | 0; + HEAPF64[$149 >> 3] = $109 * +HEAPF64[$149 >> 3]; + $153 = $11 + ($101 + 11 << 3) | 0; + HEAPF64[$153 >> 3] = $109 * +HEAPF64[$153 >> 3]; + $156 = $j$338 << 1; + HEAPF64[$14 + ($k$039 << 3) >> 3] = $109 * +HEAPF64[$14 + ($156 << 3) >> 3]; + HEAPF64[$14 + ($k$039 + 1 << 3) >> 3] = $109 * +HEAPF64[$14 + (($156 | 1) << 3) >> 3]; + $$pre = HEAP32[$0 >> 2] | 0; + $k$1 = $k$039 + 2 | 0; + } + $j$338 = $j$338 + 1 | 0; + if (($j$338 | 0) >= ($$pre | 0)) { + $k$0$lcssa = $k$1; + break; + } else { + $174 = $$pre; + $k$039 = $k$1; } } - } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; + } else $k$0$lcssa = 0; + if (($k$0$lcssa | 0) < 6) { + label = 32; + break; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; + if ((_icpGetDeltaS($dS, $14, $11, $k$0$lcssa) | 0) < 0) { + label = 34; + break; } + _icpUpdateMat($matXw2Xc, $dS) | 0; + $err0$0 = $86; + $i$1 = $i$1 + 1 | 0; + } + if ((label | 0) == 14) { + _icpGetXw2XcCleanup295($11, $14, $17, $19); + $$0 = -1; + break; + } else if ((label | 0) == 28) { + _icpGetXw2XcCleanup295($11, $14, $17, $19); + $$0 = -1; + break; + } else if ((label | 0) == 32) { + _icpGetXw2XcCleanup295($11, $14, $17, $19); + $$0 = -1; + break; + } else if ((label | 0) == 34) { + _icpGetXw2XcCleanup295($11, $14, $17, $19); + $$0 = -1; + break; + } else if ((label | 0) == 36) { + HEAPF64[$err >> 3] = $$lcssa50; + _free($11); + _free($14); + _free($17); + _free($19); + $$0 = 0; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $231 = HEAP32[$wk$444 >> 2] | 0; - if (($231 | 0) == ($i$342 | 0)) { - $237 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; - } - HEAP32[$wk$444 >> 2] = $237; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__111__money_getIcE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_SF_Ri($__intl, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__psn, $__nsn, $__fd) { + $__intl = $__intl | 0; + $__loc = $__loc | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__psn = $__psn | 0; + $__nsn = $__nsn | 0; + $__fd = $__fd | 0; + var $0 = 0, $1 = 0, $10 = 0, $107 = 0, $111 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $42 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $75 = 0, $79 = 0, $8 = 0, $9 = 0, $storemerge = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 100 | 0; + $1 = sp + 88 | 0; + $2 = sp + 76 | 0; + $3 = sp + 64 | 0; + $4 = sp + 52 | 0; + $5 = sp + 48 | 0; + $6 = sp + 36 | 0; + $7 = sp + 24 | 0; + $8 = sp + 12 | 0; + $9 = sp; + if ($__intl) { + $10 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13288) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 44 >> 2] & 63]($0, $10); + $14 = HEAP32[$0 >> 2] | 0; + HEAP8[$__pat >> 0] = $14; + HEAP8[$__pat + 1 >> 0] = $14 >> 8; + HEAP8[$__pat + 2 >> 0] = $14 >> 16; + HEAP8[$__pat + 3 >> 0] = $14 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 32 >> 2] & 63]($1, $10); + if (!(HEAP8[$__nsn >> 0] & 1)) { + HEAP8[$__nsn + 1 >> 0] = 0; + HEAP8[$__nsn >> 0] = 0; + } else { + HEAP8[HEAP32[$__nsn + 8 >> 2] >> 0] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__nsn, 0); + HEAP32[$__nsn >> 2] = HEAP32[$1 >> 2]; + HEAP32[$__nsn + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$__nsn + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($1); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 28 >> 2] & 63]($2, $10); + if (!(HEAP8[$__psn >> 0] & 1)) { + HEAP8[$__psn + 1 >> 0] = 0; + HEAP8[$__psn >> 0] = 0; + } else { + HEAP8[HEAP32[$__psn + 8 >> 2] >> 0] = 0; + HEAP32[$__psn + 4 >> 2] = 0; } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $249 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$538 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $316 = $labelInfo + 12 + ($i$637 << 2) | 0; - $319 = $i$637 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__psn, 0); + HEAP32[$__psn >> 2] = HEAP32[$2 >> 2]; + HEAP32[$__psn + 4 >> 2] = HEAP32[$2 + 4 >> 2]; + HEAP32[$__psn + 8 >> 2] = HEAP32[$2 + 8 >> 2]; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($2); + $42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 12 >> 2] & 127]($10) | 0; + HEAP8[$__dp >> 0] = $42; + $46 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 16 >> 2] & 127]($10) | 0; + HEAP8[$__ts >> 0] = $46; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 20 >> 2] & 63]($3, $10); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$3 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$3 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$3 + 8 >> 2]; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($3); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 24 >> 2] & 63]($4, $10); + if (!(HEAP8[$__sym >> 0] & 1)) { + HEAP8[$__sym + 1 >> 0] = 0; + HEAP8[$__sym >> 0] = 0; + } else { + HEAP8[HEAP32[$__sym + 8 >> 2] >> 0] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$4 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($4); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 36 >> 2] & 127]($10) | 0; + } else { + $75 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13224) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$75 >> 2] | 0) + 44 >> 2] & 63]($5, $75); + $79 = HEAP32[$5 >> 2] | 0; + HEAP8[$__pat >> 0] = $79; + HEAP8[$__pat + 1 >> 0] = $79 >> 8; + HEAP8[$__pat + 2 >> 0] = $79 >> 16; + HEAP8[$__pat + 3 >> 0] = $79 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$75 >> 2] | 0) + 32 >> 2] & 63]($6, $75); + if (!(HEAP8[$__nsn >> 0] & 1)) { + HEAP8[$__nsn + 1 >> 0] = 0; + HEAP8[$__nsn >> 0] = 0; + } else { + HEAP8[HEAP32[$__nsn + 8 >> 2] >> 0] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__nsn, 0); + HEAP32[$__nsn >> 2] = HEAP32[$6 >> 2]; + HEAP32[$__nsn + 4 >> 2] = HEAP32[$6 + 4 >> 2]; + HEAP32[$__nsn + 8 >> 2] = HEAP32[$6 + 8 >> 2]; + HEAP32[$6 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($6); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$75 >> 2] | 0) + 28 >> 2] & 63]($7, $75); + if (!(HEAP8[$__psn >> 0] & 1)) { + HEAP8[$__psn + 1 >> 0] = 0; + HEAP8[$__psn >> 0] = 0; + } else { + HEAP8[HEAP32[$__psn + 8 >> 2] >> 0] = 0; + HEAP32[$__psn + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__psn, 0); + HEAP32[$__psn >> 2] = HEAP32[$7 >> 2]; + HEAP32[$__psn + 4 >> 2] = HEAP32[$7 + 4 >> 2]; + HEAP32[$__psn + 8 >> 2] = HEAP32[$7 + 8 >> 2]; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($7); + $107 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$75 >> 2] | 0) + 12 >> 2] & 127]($75) | 0; + HEAP8[$__dp >> 0] = $107; + $111 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$75 >> 2] | 0) + 16 >> 2] & 127]($75) | 0; + HEAP8[$__ts >> 0] = $111; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$75 >> 2] | 0) + 20 >> 2] & 63]($8, $75); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$8 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$8 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$8 + 8 >> 2]; + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($8); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$75 >> 2] | 0) + 24 >> 2] & 63]($9, $75); + if (!(HEAP8[$__sym >> 0] & 1)) { + HEAP8[$__sym + 1 >> 0] = 0; + HEAP8[$__sym >> 0] = 0; + } else { + HEAP8[HEAP32[$__sym + 8 >> 2] >> 0] = 0; + HEAP32[$__sym + 4 >> 2] = 0; } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$9 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$9 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$9 + 8 >> 2]; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($9); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$75 >> 2] | 0) + 36 >> 2] & 127]($75) | 0; } + HEAP32[$__fd >> 2] = $storemerge; STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision21ComputePolarGradientsEPfPKfjj($gradient, $im, $width, $height) { + $gradient = $gradient | 0; + $im = $im | 0; + $width = $width | 0; + $height = $height | 0; + var $$0$pn50 = 0, $$1$pn35 = 0, $$1$pn35$phi = 0, $$242 = 0, $$339 = 0, $$lcssa = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0.0, $106 = 0.0, $109 = 0.0, $11 = 0.0, $113 = 0.0, $118 = 0.0, $124 = 0, $127 = 0, $129 = 0.0, $130 = 0.0, $132 = 0.0, $136 = 0.0, $141 = 0.0, $142 = 0, $145 = 0, $152 = 0.0, $155 = 0.0, $159 = 0.0, $16 = 0.0, $161 = 0, $165 = 0.0, $169 = 0.0, $172 = 0.0, $174 = 0.0, $178 = 0.0, $18 = 0, $183 = 0.0, $2 = 0, $20 = 0, $23 = 0, $26 = 0, $26$phi = 0, $27 = 0.0, $30 = 0.0, $34 = 0.0, $39 = 0.0, $4 = 0.0, $43 = 0, $44 = 0.0, $46 = 0.0, $48 = 0.0, $5 = 0.0, $52 = 0.0, $57 = 0.0, $58 = 0, $63 = 0, $66 = 0, $67 = 0, $7 = 0.0, $70 = 0.0, $73 = 0.0, $77 = 0.0, $82 = 0.0, $84 = 0, $87 = 0, $87$phi = 0, $88 = 0.0, $91 = 0.0, $95 = 0.0, $col$062 = 0, $col1$044 = 0, $col2$038 = 0, $gradient$pn = 0, $p_ptr$060 = 0, $p_ptr$151 = 0, $p_ptr$243 = 0, $p_ptr$336 = 0, $pm1_ptr$152 = 0, $pm1_ptr$152$pn = 0, $pm1_ptr$337 = 0, $pp1_ptr$061 = 0, $pp1_ptr$153 = 0, $pp1_ptr$153$pn = 0, $row$054 = 0, $scevgep13 = 0, $scevgep14$sum = 0, $scevgep15$sum = 0, $scevgep17 = 0, $scevgep17$sum = 0, $scevgep18$sum = 0, $scevgep19 = 0, $scevgep28 = 0, $scevgep29 = 0, $uglygep = 0, $uglygep25 = 0, $umax27 = 0, $gradient$pn$looptemp = 0, $$0$pn50$looptemp = 0, $p_ptr$336$looptemp = 0; + $0 = $width + -1 | 0; + $1 = $im + ($width << 2) | 0; + $2 = $im + 4 | 0; + $4 = +HEAPF32[$im >> 2]; + $5 = +HEAPF32[$2 >> 2] - $4; + $7 = +HEAPF32[$1 >> 2] - $4; + $11 = +Math_atan2(+$7, +$5) + 3.141592653589793; + HEAPF32[$gradient >> 2] = $11; + $16 = +Math_sqrt(+($5 * $5 + $7 * $7)); + HEAPF32[$gradient + 4 >> 2] = $16; + $umax27 = $0 >>> 0 > 1 ? $0 : 1; + $18 = $umax27 << 1; + $scevgep29 = $im + ($umax27 + $width << 2) | 0; + $20 = $umax27 + -1 | 0; + if ($0 >>> 0 > 1) { + $26 = $im; + $col$062 = 1; + $gradient$pn = $gradient; + $p_ptr$060 = $2; + $pp1_ptr$061 = $im + ($width + 1 << 2) | 0; + while (1) { + $gradient$pn$looptemp = $gradient$pn; + $gradient$pn = $gradient$pn + 8 | 0; + $23 = $p_ptr$060 + 4 | 0; + $27 = +HEAPF32[$23 >> 2] - +HEAPF32[$26 >> 2]; + $30 = +HEAPF32[$pp1_ptr$061 >> 2] - +HEAPF32[$p_ptr$060 >> 2]; + $34 = +Math_atan2(+$30, +$27) + 3.141592653589793; + HEAPF32[$gradient$pn >> 2] = $34; + $39 = +Math_sqrt(+($27 * $27 + $30 * $30)); + HEAPF32[$gradient$pn$looptemp + 12 >> 2] = $39; + $col$062 = $col$062 + 1 | 0; + if ($col$062 >>> 0 >= $0 >>> 0) break; else { + $26$phi = $p_ptr$060; + $p_ptr$060 = $23; + $pp1_ptr$061 = $pp1_ptr$061 + 4 | 0; + $26 = $26$phi; + } + } + } + $43 = $height + -1 | 0; + $scevgep28 = $gradient + ($18 << 2) | 0; + $44 = +HEAPF32[$im + ($umax27 << 2) >> 2]; + $46 = $44 - +HEAPF32[$im + ($20 << 2) >> 2]; + $48 = +HEAPF32[$scevgep29 >> 2] - $44; + $52 = +Math_atan2(+$48, +$46) + 3.141592653589793; + HEAPF32[$scevgep28 >> 2] = $52; + $57 = +Math_sqrt(+($46 * $46 + $48 * $48)); + HEAPF32[$gradient + (($18 | 1) << 2) >> 2] = $57; + $58 = $18 + 2 | 0; + $scevgep19 = $gradient + ($18 + 2 << 2) | 0; + $63 = Math_imul($43 >>> 0 > 1 ? $height + -2 | 0 : 0, ($umax27 << 3) + 8 | 0) | 0; + $uglygep = $scevgep19 + $63 | 0; + $uglygep25 = $scevgep28 + $63 | 0; + $scevgep18$sum = $18 + 3 | 0; + $scevgep17$sum = $umax27 + 1 | 0; + $scevgep15$sum = $umax27 + 1 | 0; + $scevgep14$sum = $umax27 + 1 | 0; + if ($43 >>> 0 > 1) { + $66 = $0 >>> 0 > 1; + $$0$pn50 = $scevgep28; + $p_ptr$151 = $1; + $pm1_ptr$152 = $im; + $pp1_ptr$153 = $im + ($width << 1 << 2) | 0; + $row$054 = 1; + while (1) { + $67 = $p_ptr$151 + 4 | 0; + $70 = +HEAPF32[$67 >> 2] - +HEAPF32[$p_ptr$151 >> 2]; + $73 = +HEAPF32[$pp1_ptr$153 >> 2] - +HEAPF32[$pm1_ptr$152 >> 2]; + $77 = +Math_atan2(+$73, +$70) + 3.141592653589793; + HEAPF32[$$0$pn50 + 8 >> 2] = $77; + $82 = +Math_sqrt(+($70 * $70 + $73 * $73)); + HEAPF32[$$0$pn50 + 12 >> 2] = $82; + $scevgep13 = $pp1_ptr$153 + ($umax27 << 2) | 0; + $scevgep17 = $p_ptr$151 + ($20 << 2) | 0; + if ($66) { + $$242 = $$0$pn50 + 16 | 0; + $87 = $p_ptr$151; + $col1$044 = 1; + $p_ptr$243 = $67; + $pm1_ptr$152$pn = $pm1_ptr$152; + $pp1_ptr$153$pn = $pp1_ptr$153; + while (1) { + $pp1_ptr$153$pn = $pp1_ptr$153$pn + 4 | 0; + $pm1_ptr$152$pn = $pm1_ptr$152$pn + 4 | 0; + $84 = $p_ptr$243 + 4 | 0; + $88 = +HEAPF32[$84 >> 2] - +HEAPF32[$87 >> 2]; + $91 = +HEAPF32[$pp1_ptr$153$pn >> 2] - +HEAPF32[$pm1_ptr$152$pn >> 2]; + $95 = +Math_atan2(+$91, +$88) + 3.141592653589793; + HEAPF32[$$242 >> 2] = $95; + $100 = +Math_sqrt(+($88 * $88 + $91 * $91)); + HEAPF32[$$242 + 4 >> 2] = $100; + $col1$044 = $col1$044 + 1 | 0; + if ($col1$044 >>> 0 >= $0 >>> 0) break; else { + $87$phi = $p_ptr$243; + $$242 = $$242 + 8 | 0; + $p_ptr$243 = $84; + $87 = $87$phi; + } + } + } + $$0$pn50$looptemp = $$0$pn50; + $$0$pn50 = $$0$pn50 + ($58 << 2) | 0; + $106 = +HEAPF32[$p_ptr$151 + ($umax27 << 2) >> 2] - +HEAPF32[$scevgep17 >> 2]; + $109 = +HEAPF32[$scevgep13 >> 2] - +HEAPF32[$pm1_ptr$152 + ($umax27 << 2) >> 2]; + $113 = +Math_atan2(+$109, +$106) + 3.141592653589793; + HEAPF32[$$0$pn50 >> 2] = $113; + $118 = +Math_sqrt(+($106 * $106 + $109 * $109)); + HEAPF32[$$0$pn50$looptemp + ($scevgep18$sum << 2) >> 2] = $118; + $row$054 = $row$054 + 1 | 0; + if ($row$054 >>> 0 >= $43 >>> 0) break; else { + $p_ptr$151 = $p_ptr$151 + ($scevgep17$sum << 2) | 0; + $pm1_ptr$152 = $pm1_ptr$152 + ($scevgep15$sum << 2) | 0; + $pp1_ptr$153 = $pp1_ptr$153 + ($scevgep14$sum << 2) | 0; + } + } + } + $124 = Math_imul($43, $width) | 0; + $$sum2 = $124 - $width | 0; + $127 = $im + ($124 + 1 << 2) | 0; + $129 = +HEAPF32[$im + ($124 << 2) >> 2]; + $130 = +HEAPF32[$127 >> 2] - $129; + $132 = $129 - +HEAPF32[$im + ($$sum2 << 2) >> 2]; + $136 = +Math_atan2(+$132, +$130) + 3.141592653589793; + HEAPF32[$uglygep >> 2] = $136; + $141 = +Math_sqrt(+($130 * $130 + $132 * $132)); + HEAPF32[$scevgep28 + ($63 + 12) >> 2] = $141; + $142 = $umax27 + $124 | 0; + $145 = $umax27 + (Math_imul($height + -2 | 0, $width) | 0) | 0; + if ($0 >>> 0 > 1) { + $$1$pn35 = $uglygep; + $$339 = $scevgep19 + ($63 + 8) | 0; + $161 = $uglygep25; + $col2$038 = 1; + $p_ptr$336 = $127; + $pm1_ptr$337 = $im + ($$sum2 + 1 << 2) | 0; + while (1) { + $p_ptr$336$looptemp = $p_ptr$336; + $p_ptr$336 = $p_ptr$336 + 4 | 0; + $152 = +HEAPF32[$p_ptr$336 >> 2] - +HEAPF32[$p_ptr$336$looptemp + -4 >> 2]; + $155 = +HEAPF32[$p_ptr$336$looptemp >> 2] - +HEAPF32[$pm1_ptr$337 >> 2]; + $159 = +Math_atan2(+$155, +$152) + 3.141592653589793; + HEAPF32[$$339 >> 2] = $159; + $165 = +Math_sqrt(+($152 * $152 + $155 * $155)); + HEAPF32[$161 + 20 >> 2] = $165; + $col2$038 = $col2$038 + 1 | 0; + if ($col2$038 >>> 0 >= $0 >>> 0) { + $$lcssa = $$1$pn35; + break; + } else { + $$1$pn35$phi = $$339; + $$339 = $$339 + 8 | 0; + $pm1_ptr$337 = $pm1_ptr$337 + 4 | 0; + $161 = $$1$pn35; + $$1$pn35 = $$1$pn35$phi; + } + } + } else $$lcssa = $uglygep25; + $169 = +HEAPF32[$im + ($142 << 2) >> 2]; + $172 = $169 - +HEAPF32[$im + ($142 + -1 << 2) >> 2]; + $174 = $169 - +HEAPF32[$im + ($145 << 2) >> 2]; + $178 = +Math_atan2(+$174, +$172) + 3.141592653589793; + HEAPF32[$uglygep + ($18 << 2) >> 2] = $178; + $183 = +Math_sqrt(+($172 * $172 + $174 * $174)); + HEAPF32[$$lcssa + 20 >> 2] = $183; + return; +} + +function __ZN6vision14BinarykMedoidsILi96EE6assignEPKhiPKii($this, $features, $num_features, $indices, $num_indices) { + $this = $this | 0; + $features = $features | 0; + $num_features = $num_features | 0; + $indices = $indices | 0; + $num_indices = $num_indices | 0; + var $0 = 0, $1 = 0, $104 = 0, $126 = 0, $131 = 0, $132 = 0, $136 = 0, $19 = 0, $2 = 0, $24 = 0, $25 = 0, $29 = 0, $3 = 0, $36 = 0, $4 = 0, $41 = 0, $42 = 0, $46 = 0, $5 = 0, $53 = 0, $58 = 0, $59 = 0, $63 = 0, $7 = 0, $70 = 0, $75 = 0, $76 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $91 = 0, $94 = 0, $best_dist$06 = 0, $best_dist$1 = 0, $i$05 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + $2 = sp; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = $this + 16 | 0; + $7 = $this + 12 | 0; + if (($4 | 0) != ((HEAP32[$5 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) >> 2 | 0)) { + $19 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30519) | 0, 30564) | 0, 34302) | 0, 154) | 0, 34309) | 0, 30670) | 0; + $24 = __ZNKSt3__18ios_base6getlocEv($19 + (HEAP32[(HEAP32[$19 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $24; + $25 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $29 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$25 >> 2] | 0) + 28 >> 2] & 63]($25, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($19, $29) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($19) | 0; + _abort(); + } + if (($num_features | 0) <= 0) { + $36 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30715) | 0, 30564) | 0, 34302) | 0, 155) | 0, 34309) | 0, 30755) | 0; + $41 = __ZNKSt3__18ios_base6getlocEv($36 + (HEAP32[(HEAP32[$36 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $41; + $42 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $46 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$42 >> 2] | 0) + 28 >> 2] & 63]($42, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($36, $46) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($36) | 0; + _abort(); + } + if (($num_indices | 0) > ($num_features | 0)) { + $53 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30791) | 0, 30564) | 0, 34302) | 0, 156) | 0, 34309) | 0, 30842) | 0; + $58 = __ZNKSt3__18ios_base6getlocEv($53 + (HEAP32[(HEAP32[$53 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $58; + $59 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $63 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$59 >> 2] | 0) + 28 >> 2] & 63]($59, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($53, $63) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($53) | 0; + _abort(); + } + if (($4 | 0) > ($num_indices | 0)) { + $70 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30869) | 0, 30564) | 0, 34302) | 0, 157) | 0, 34309) | 0, 30910) | 0; + $75 = __ZNKSt3__18ios_base6getlocEv($70 + (HEAP32[(HEAP32[$70 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $75; + $76 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $80 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$76 >> 2] | 0) + 28 >> 2] & 63]($76, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($70, $80) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($70) | 0; + _abort(); + } + $81 = $this + 24 | 0; + HEAP32[$1 >> 2] = -1; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEjRKi($81, $num_indices, $1); + $82 = $this + 36 | 0; + HEAP32[$2 >> 2] = -1; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEjRKi($82, $num_indices, $2); + $83 = $this + 48 | 0; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($83, $num_indices); + $84 = HEAP32[$83 >> 2] | 0; + $85 = $this + 52 | 0; + __ZN6vision16SequentialVectorIiEEvPT_iS1_($84, (HEAP32[$85 >> 2] | 0) - $84 >> 2, 0); + $91 = $this + 8 | 0; + if ((HEAP32[$91 >> 2] | 0) > 0) { + $best_dist$06 = -1; + $i$05 = 0; while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } + $94 = HEAP32[$83 >> 2] | 0; + __ZN6vision12ArrayShuffleIiEEvPT_iiRi($94, (HEAP32[$85 >> 2] | 0) - $94 >> 2, HEAP32[$3 >> 2] | 0, HEAP32[$this >> 2] | 0); + $104 = __ZN6vision14BinarykMedoidsILi96EE6assignERNSt3__16vectorIiNS2_9allocatorIiEEEEPKhiPKiiSB_i($this, $82, $features, $num_features, $indices, $num_indices, HEAP32[$83 >> 2] | 0, HEAP32[$3 >> 2] | 0) | 0; + if ($104 >>> 0 < $best_dist$06 >>> 0) { + __ZNSt3__16vectorIiNS_9allocatorIiEEE4swapERS3_($81, $82); + _memcpy(HEAP32[$7 >> 2] | 0, HEAP32[$83 >> 2] | 0, HEAP32[$3 >> 2] << 2 | 0) | 0; + $best_dist$1 = $104; + } else $best_dist$1 = $best_dist$06; + $i$05 = $i$05 + 1 | 0; + if (($i$05 | 0) >= (HEAP32[$91 >> 2] | 0)) break; else $best_dist$06 = $best_dist$1; } } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; + if ((HEAP32[$3 >> 2] | 0) == ((HEAP32[$5 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) >> 2 | 0)) { + STACKTOP = sp; + return; + } else { + $126 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30519) | 0, 30564) | 0, 34302) | 0, 187) | 0, 34309) | 0, 30670) | 0; + $131 = __ZNKSt3__18ios_base6getlocEv($126 + (HEAP32[(HEAP32[$126 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $131; + $132 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $136 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$132 >> 2] | 0) + 28 >> 2] & 63]($132, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($126, $136) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($126) | 0; + _abort(); + } +} + +function __ZN6vision25DoGScaleInvariantDetector21findSubpixelLocationsEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $$0$i = 0.0, $0 = 0, $10 = 0, $100 = 0, $102 = 0, $11 = 0, $110 = 0.0, $119 = 0.0, $12 = 0, $120 = 0, $122 = 0.0, $128 = 0.0, $13 = 0, $131 = 0.0, $133 = 0, $138 = 0.0, $14 = 0, $145 = 0.0, $147 = 0, $15 = 0, $16 = 0, $17 = 0, $19 = 0, $2 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0.0, $32 = 0, $37 = 0, $38 = 0, $42 = 0, $43 = 0, $44 = 0, $46 = 0, $48 = 0, $5 = 0.0, $52 = 0.0, $54 = 0.0, $56 = 0.0, $58 = 0.0, $6 = 0.0, $60 = 0, $62 = 0, $64 = 0, $66 = 0, $70 = 0.0, $72 = 0.0, $77 = 0, $79 = 0, $8 = 0.0, $80 = 0.0, $82 = 0, $9 = 0, $90 = 0, $95 = 0, $96 = 0, $A = 0, $b = 0, $i$012 = 0, $num_points$0$lcssa = 0, $num_points$014 = 0, $num_points$1 = 0, $u = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 60 | 0; + $A = sp + 12 | 0; + $b = sp + 48 | 0; + $u = sp; + $2 = +HEAPF32[$this + 52 >> 2]; + $3 = $2 * $2; + $5 = +HEAPF32[$this + 56 >> 2]; + $6 = $5 + 1.0; + $8 = $6 * $6 / $5; + $9 = $this + 60 | 0; + $10 = $this + 64 | 0; + $11 = $this + 48 | 0; + $12 = $this + 32 | 0; + $13 = $u + 4 | 0; + $14 = $this + 88 | 0; + $15 = $b + 4 | 0; + $16 = $b + 8 | 0; + $17 = $u + 8 | 0; + $19 = HEAP32[$9 >> 2] | 0; + L1 : do if ((HEAP32[$10 >> 2] | 0) == ($19 | 0)) $num_points$0$lcssa = 0; else { + $22 = $19; + $i$012 = 0; + $num_points$014 = 0; while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; + $21 = $22 + ($i$012 * 36 | 0) | 0; + $23 = $22 + ($i$012 * 36 | 0) + 16 | 0; + $24 = HEAP32[$23 >> 2] | 0; + $25 = HEAP32[$11 >> 2] | 0; + if (($24 | 0) >= ($25 | 0)) { + label = 3; + break; } + $43 = $22 + ($i$012 * 36 | 0) + 12 | 0; + $44 = HEAP32[$43 >> 2] | 0; + $46 = (Math_imul($44, $25) | 0) + $24 | 0; + $48 = $22 + ($i$012 * 36 | 0) + 4 | 0; + $52 = 1.0 / +(1 << $44 | 0); + $54 = $52 * .5 + -.5; + $56 = +HEAPF32[$21 >> 2] * $52 + $54; + $58 = +HEAPF32[$48 >> 2] * $52 + $54; + $60 = ~~($56 + .5); + $62 = ~~($58 + .5); + $64 = HEAP32[$12 >> 2] | 0; + $66 = $64 + ($46 << 5) | 0; + __ZN6vision22ComputeSubpixelHessianEPfS0_RKNS_5ImageES3_S3_ii($A, $b, $64 + ($46 + -1 << 5) | 0, $66, $64 + ($46 + 1 << 5) | 0, $60, $62) | 0; + if (__ZN6vision29SolveSymmetricLinearSystem3x3IfEEbPT_PKS1_S4_($u, $A, $b) | 0) { + $70 = +HEAPF32[$u >> 2]; + $72 = +HEAPF32[$13 >> 2]; + if ($70 * $70 + $72 * $72 > +HEAPF32[$14 >> 2]) $num_points$1 = $num_points$014; else { + $77 = $22 + ($i$012 * 36 | 0) + 32 | 0; + if (__ZN6vision16ComputeEdgeScoreERfPKf($77, $A) | 0) { + $79 = $22 + ($i$012 * 36 | 0) + 24 | 0; + $80 = +HEAPF32[$79 >> 2]; + $82 = (__ZNK6vision5Image3getIfEEPKT_j($66, $62) | 0) + ($60 << 2) | 0; + if (!($80 == +HEAPF32[$82 >> 2])) { + label = 8; + break; + } + $102 = (__ZNK6vision5Image3getIfEEPKT_j($66, $62) | 0) + ($60 << 2) | 0; + $110 = +HEAPF32[$17 >> 2]; + HEAPF32[$79 >> 2] = +HEAPF32[$102 >> 2] - (+HEAPF32[$b >> 2] * $70 + +HEAPF32[$15 >> 2] * $72 + +HEAPF32[$16 >> 2] * $110); + __ZN6vision23bilinear_upsample_pointERfS0_ffi($21, $48, $56 + $70, $58 + $72, HEAP32[$43 >> 2] | 0); + $119 = +(HEAP32[$23 >> 2] | 0) + $110; + $120 = $22 + ($i$012 * 36 | 0) + 20 | 0; + HEAPF32[$120 >> 2] = $119; + $122 = +(HEAP32[$11 >> 2] | 0); + if ($119 < 0.0) $$0$i = 0.0; else if ($119 > $122) $$0$i = $122; else $$0$i = $119; + HEAPF32[$120 >> 2] = $$0$i; + if (+Math_abs(+(+HEAPF32[$77 >> 2])) < $8) { + $128 = +HEAPF32[$79 >> 2]; + if (!($128 * $128 >= $3)) $num_points$1 = $num_points$014; else { + $131 = +HEAPF32[$21 >> 2]; + if (!($131 >= 0.0)) $num_points$1 = $num_points$014; else { + $133 = HEAP32[$12 >> 2] | 0; + if ($131 < +((HEAP32[$133 + 4 >> 2] | 0) >>> 0)) { + $138 = +HEAPF32[$48 >> 2]; + if (!($138 >= 0.0)) $num_points$1 = $num_points$014; else if ($138 < +((HEAP32[$133 + 8 >> 2] | 0) >>> 0)) { + $145 = +__ZNK6vision25GaussianScaleSpacePyramid14effectiveSigmaEjf($pyramid, HEAP32[$43 >> 2] | 0, $$0$i); + HEAPF32[$22 + ($i$012 * 36 | 0) + 28 >> 2] = $145; + $147 = $num_points$014 + 1 | 0; + dest = (HEAP32[$9 >> 2] | 0) + ($num_points$014 * 36 | 0) | 0; + src = $21; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $num_points$1 = $147; + } else $num_points$1 = $num_points$014; + } else $num_points$1 = $num_points$014; + } + } + } else $num_points$1 = $num_points$014; + } else $num_points$1 = $num_points$014; + } + } else $num_points$1 = $num_points$014; + $i$012 = $i$012 + 1 | 0; + $22 = HEAP32[$9 >> 2] | 0; + if ($i$012 >>> 0 >= (((HEAP32[$10 >> 2] | 0) - $22 | 0) / 36 | 0) >>> 0) { + $num_points$0$lcssa = $num_points$1; + break L1; + } else $num_points$014 = $num_points$1; + } + if ((label | 0) == 3) { + $32 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22819) | 0, 21425) | 0, 34302) | 0, 489) | 0, 34309) | 0, 22891) | 0; + $37 = __ZNKSt3__18ios_base6getlocEv($32 + (HEAP32[(HEAP32[$32 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $37; + $38 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $42 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$38 >> 2] | 0) + 28 >> 2] & 63]($38, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($32, $42) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($32) | 0; + _abort(); + } else if ((label | 0) == 8) { + $90 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 22928) | 0, 21425) | 0, 34302) | 0, 526) | 0, 34309) | 0, 22985) | 0; + $95 = __ZNKSt3__18ios_base6getlocEv($90 + (HEAP32[(HEAP32[$90 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $95; + $96 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $100 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$96 >> 2] | 0) + 28 >> 2] & 63]($96, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($90, $100) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($90) | 0; + _abort(); + } + } while (0); + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE6resizeEj($9, $num_points$0$lcssa); + STACKTOP = sp; + return; +} + +function _jpeg_idct_ifast($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $$sum16 = 0, $$sum17 = 0, $$sum18 = 0, $$sum19 = 0, $$sum20 = 0, $$sum21 = 0, $$sum22 = 0, $1 = 0, $100 = 0, $107 = 0, $108 = 0, $109 = 0, $128 = 0, $129 = 0, $131 = 0, $133 = 0, $155 = 0, $163 = 0, $165 = 0, $166 = 0, $167 = 0, $169 = 0, $170 = 0, $171 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $181 = 0, $183 = 0, $184 = 0, $185 = 0, $187 = 0, $188 = 0, $189 = 0, $190 = 0, $196 = 0, $203 = 0, $204 = 0, $205 = 0, $28 = 0, $39 = 0, $41 = 0, $44 = 0, $5 = 0, $50 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $71 = 0, $77 = 0, $83 = 0, $89 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $ctr$034 = 0, $ctr$130 = 0, $inptr$031 = 0, $quantptr$032 = 0, $workspace = 0, $wsptr$033 = 0, $wsptr$229 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $workspace = sp; + $1 = HEAP32[$cinfo + 324 >> 2] | 0; + $ctr$034 = 8; + $inptr$031 = $coef_block; + $quantptr$032 = HEAP32[$compptr + 80 >> 2] | 0; + $wsptr$033 = $workspace; + while (1) { + $5 = HEAP16[$inptr$031 + 16 >> 1] | 0; + $7 = HEAP16[$inptr$031 + 32 >> 1] | 0; + if (!(($5 | $7) << 16 >> 16)) if (!(HEAP16[$inptr$031 + 48 >> 1] | 0)) if (!(HEAP16[$inptr$031 + 64 >> 1] | 0)) if (!(HEAP16[$inptr$031 + 80 >> 1] | 0)) if (!(HEAP16[$inptr$031 + 96 >> 1] | 0)) if (!(HEAP16[$inptr$031 + 112 >> 1] | 0)) { + $28 = Math_imul(HEAP16[$inptr$031 >> 1] | 0, HEAP32[$quantptr$032 >> 2] | 0) | 0; + HEAP32[$wsptr$033 >> 2] = $28; + HEAP32[$wsptr$033 + 32 >> 2] = $28; + HEAP32[$wsptr$033 + 64 >> 2] = $28; + HEAP32[$wsptr$033 + 96 >> 2] = $28; + HEAP32[$wsptr$033 + 128 >> 2] = $28; + HEAP32[$wsptr$033 + 160 >> 2] = $28; + HEAP32[$wsptr$033 + 192 >> 2] = $28; + HEAP32[$wsptr$033 + 224 >> 2] = $28; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = $7; + label = 10; } + if ((label | 0) == 10) { + label = 0; + $39 = Math_imul(HEAP16[$inptr$031 >> 1] | 0, HEAP32[$quantptr$032 >> 2] | 0) | 0; + $44 = Math_imul($41 << 16 >> 16, HEAP32[$quantptr$032 + 64 >> 2] | 0) | 0; + $50 = Math_imul(HEAP16[$inptr$031 + 64 >> 1] | 0, HEAP32[$quantptr$032 + 128 >> 2] | 0) | 0; + $56 = Math_imul(HEAP16[$inptr$031 + 96 >> 1] | 0, HEAP32[$quantptr$032 + 192 >> 2] | 0) | 0; + $57 = $50 + $39 | 0; + $58 = $39 - $50 | 0; + $59 = $56 + $44 | 0; + $63 = (($44 - $56 | 0) * 362 >> 8) - $59 | 0; + $64 = $59 + $57 | 0; + $65 = $57 - $59 | 0; + $66 = $63 + $58 | 0; + $67 = $58 - $63 | 0; + $71 = Math_imul($5 << 16 >> 16, HEAP32[$quantptr$032 + 32 >> 2] | 0) | 0; + $77 = Math_imul(HEAP16[$inptr$031 + 48 >> 1] | 0, HEAP32[$quantptr$032 + 96 >> 2] | 0) | 0; + $83 = Math_imul(HEAP16[$inptr$031 + 80 >> 1] | 0, HEAP32[$quantptr$032 + 160 >> 2] | 0) | 0; + $89 = Math_imul(HEAP16[$inptr$031 + 112 >> 1] | 0, HEAP32[$quantptr$032 + 224 >> 2] | 0) | 0; + $90 = $83 + $77 | 0; + $91 = $83 - $77 | 0; + $92 = $89 + $71 | 0; + $93 = $71 - $89 | 0; + $94 = $92 + $90 | 0; + $100 = ($93 + $91 | 0) * 473 >> 8; + $107 = ((Math_imul($91, -669) | 0) >> 8) - $94 + $100 | 0; + $108 = (($92 - $90 | 0) * 362 >> 8) - $107 | 0; + $109 = $108 + (($93 * 277 >> 8) - $100) | 0; + HEAP32[$wsptr$033 >> 2] = $94 + $64; + HEAP32[$wsptr$033 + 224 >> 2] = $64 - $94; + HEAP32[$wsptr$033 + 32 >> 2] = $107 + $66; + HEAP32[$wsptr$033 + 192 >> 2] = $66 - $107; + HEAP32[$wsptr$033 + 64 >> 2] = $108 + $67; + HEAP32[$wsptr$033 + 160 >> 2] = $67 - $108; + HEAP32[$wsptr$033 + 128 >> 2] = $109 + $65; + HEAP32[$wsptr$033 + 96 >> 2] = $65 - $109; + } + if (($ctr$034 | 0) > 1) { + $ctr$034 = $ctr$034 + -1 | 0; + $inptr$031 = $inptr$031 + 2 | 0; + $quantptr$032 = $quantptr$032 + 4 | 0; + $wsptr$033 = $wsptr$033 + 4 | 0; + } else break; } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = $xsize + 4 | 0; - L11 : do if (($3 | 0) > 1) { - $29 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 1) + 2) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($29) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; + $$sum16 = $output_col + 1 | 0; + $$sum17 = $output_col + 2 | 0; + $$sum18 = $output_col + 3 | 0; + $$sum19 = $output_col + 4 | 0; + $$sum20 = $output_col + 5 | 0; + $$sum21 = $output_col + 6 | 0; + $$sum22 = $output_col + 7 | 0; + $ctr$130 = 0; + $wsptr$229 = $workspace; + while (1) { + $128 = HEAP32[$output_buf + ($ctr$130 << 2) >> 2] | 0; + $129 = $128 + $output_col | 0; + $131 = HEAP32[$wsptr$229 + 4 >> 2] | 0; + $133 = HEAP32[$wsptr$229 + 8 >> 2] | 0; + if (!($131 | $133)) if (!(HEAP32[$wsptr$229 + 12 >> 2] | 0)) if (!(HEAP32[$wsptr$229 + 16 >> 2] | 0)) if (!(HEAP32[$wsptr$229 + 20 >> 2] | 0)) if (!(HEAP32[$wsptr$229 + 24 >> 2] | 0)) if (!(HEAP32[$wsptr$229 + 28 >> 2] | 0)) { + $155 = HEAP8[$1 + (((HEAP32[$wsptr$229 >> 2] | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$129 >> 0] = $155; + HEAP8[$128 + $$sum16 >> 0] = $155; + HEAP8[$128 + $$sum17 >> 0] = $155; + HEAP8[$128 + $$sum18 >> 0] = $155; + HEAP8[$128 + $$sum19 >> 0] = $155; + HEAP8[$128 + $$sum20 >> 0] = $155; + HEAP8[$128 + $$sum21 >> 0] = $155; + HEAP8[$128 + $$sum22 >> 0] = $155; + } else { + $171 = 0; + label = 19; + } else { + $171 = 0; + label = 19; + } else { + $171 = 0; + label = 19; + } else { + $171 = 0; + label = 19; + } else { + $171 = 0; + label = 19; + } else { + $171 = $133; + label = 19; + } + if ((label | 0) == 19) { + label = 0; + $163 = HEAP32[$wsptr$229 >> 2] | 0; + $165 = HEAP32[$wsptr$229 + 16 >> 2] | 0; + $166 = $165 + $163 | 0; + $167 = $163 - $165 | 0; + $169 = HEAP32[$wsptr$229 + 24 >> 2] | 0; + $170 = $169 + $171 | 0; + $175 = (($171 - $169 | 0) * 362 >> 8) - $170 | 0; + $176 = $170 + $166 | 0; + $177 = $166 - $170 | 0; + $178 = $175 + $167 | 0; + $179 = $167 - $175 | 0; + $181 = HEAP32[$wsptr$229 + 20 >> 2] | 0; + $183 = HEAP32[$wsptr$229 + 12 >> 2] | 0; + $184 = $183 + $181 | 0; + $185 = $181 - $183 | 0; + $187 = HEAP32[$wsptr$229 + 28 >> 2] | 0; + $188 = $187 + $131 | 0; + $189 = $131 - $187 | 0; + $190 = $188 + $184 | 0; + $196 = ($189 + $185 | 0) * 473 >> 8; + $203 = ((Math_imul($185, -669) | 0) >> 8) - $190 + $196 | 0; + $204 = (($188 - $184 | 0) * 362 >> 8) - $203 | 0; + $205 = $204 + (($189 * 277 >> 8) - $196) | 0; + HEAP8[$129 >> 0] = HEAP8[$1 + ((($190 + $176 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum22 >> 0] = HEAP8[$1 + ((($176 - $190 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum16 >> 0] = HEAP8[$1 + ((($203 + $178 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum21 >> 0] = HEAP8[$1 + ((($178 - $203 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum17 >> 0] = HEAP8[$1 + ((($204 + $179 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum20 >> 0] = HEAP8[$1 + ((($179 - $204 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum19 >> 0] = HEAP8[$1 + ((($205 + $177 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$128 + $$sum18 >> 0] = HEAP8[$1 + ((($177 - $205 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + } + $ctr$130 = $ctr$130 + 1 | 0; + if (($ctr$130 | 0) == 8) break; else $wsptr$229 = $wsptr$229 + 32 | 0; + } + STACKTOP = sp; + return; +} + +function _arParamObserv2Ideal($dist_factor, $ox, $oy, $ix, $iy, $dist_function_version) { + $dist_factor = $dist_factor | 0; + $ox = +$ox; + $oy = +$oy; + $ix = $ix | 0; + $iy = $iy | 0; + $dist_function_version = $dist_function_version | 0; + var $$0 = 0, $0 = 0.0, $10 = 0.0, $101 = 0.0, $103 = 0.0, $104 = 0, $106 = 0.0, $109 = 0.0, $113 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0.0, $134 = 0.0, $14 = 0.0, $146 = 0, $154 = 0.0, $155 = 0.0, $156 = 0, $158 = 0.0, $16 = 0.0, $161 = 0.0, $165 = 0.0, $168 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $18 = 0.0, $186 = 0.0, $198 = 0, $2 = 0.0, $20 = 0.0, $206 = 0.0, $207 = 0.0, $208 = 0, $21 = 0.0, $210 = 0.0, $213 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $22 = 0.0, $227 = 0.0, $23 = 0.0, $239 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $29 = 0.0, $34 = 0.0, $4 = 0.0, $44 = 0.0, $50 = 0.0, $6 = 0.0, $67 = 0.0, $8 = 0.0, $i$03 = 0, $i14$029 = 0, $i21$042 = 0, $i5$015 = 0, $px$07 = 0.0, $px$1 = 0.0, $px12$027 = 0.0, $px12$1 = 0.0, $px19$040 = 0.0, $px19$1 = 0.0, $px3$012 = 0.0, $px3$1 = 0.0, $py$06 = 0.0, $py$1 = 0.0, $py13$028 = 0.0, $py13$1 = 0.0, $py20$041 = 0.0, $py20$1 = 0.0, $py4$013 = 0.0, $py4$1 = 0.0, $x02$05 = 0.0, $y02$04 = 0.0, $z0$014 = 0.0, $z016$039 = 0.0, $z02$016 = 0.0, $z0215$038 = 0.0, $z026$025 = 0.0, $z07$026 = 0.0; + switch ($dist_function_version | 0) { + case 4: + { + $0 = +HEAPF64[$dist_factor >> 3]; + $2 = +HEAPF64[$dist_factor + 8 >> 3]; + $4 = +HEAPF64[$dist_factor + 16 >> 3]; + $6 = +HEAPF64[$dist_factor + 24 >> 3]; + $8 = +HEAPF64[$dist_factor + 32 >> 3]; + $10 = +HEAPF64[$dist_factor + 40 >> 3]; + $12 = +HEAPF64[$dist_factor + 48 >> 3]; + $14 = +HEAPF64[$dist_factor + 56 >> 3]; + $16 = +HEAPF64[$dist_factor + 64 >> 3]; + $18 = ($ox - $12) / $8; + $20 = ($oy - $14) / $10; + $21 = $18 * $18; + $22 = $20 * $20; + $23 = $4 * 2.0; + $24 = $6 * 6.0; + $25 = $6 * 2.0; + $26 = $4 * 6.0; + L3 : do if ($22 != 0.0 | $21 != 0.0) { + $i$03 = 1; + $px$07 = $18; + $py$06 = $20; + $x02$05 = $21; + $y02$04 = $22; while (1) { - do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$167 >> 0] = -1; - $34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0; - if ($34 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $34; - $37 = ($34 << 16 >> 16) * 7 | 0; - $39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0; - HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1; - $43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265; - $47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $54 = $53 << 16 >> 16; - $57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $58 = $57 << 16 >> 16; - $59 = $57 << 16 >> 16 > 0; - if ($53 << 16 >> 16 <= 0) { - if ($59) { - HEAP16[$pnt2$368 >> 1] = $57; - $159 = $58 * 7 | 0; - $161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1; - $165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265; - $169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076; - $173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0; - if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $179 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($179 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $179; - $182 = ($179 << 16 >> 16) * 7 | 0; - $184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0; - HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1; - $188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265; - $192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076; - $196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0; - if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$196 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $199 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $199; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16; - $204 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $199; - break; - } - } - if ($59) { - $62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - $65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - if (($62 | 0) > ($65 | 0)) { - HEAP16[$pnt2$368 >> 1] = $65; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $82 = $65; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $82 = $65; - } else { - HEAP16[$pnt2$368 >> 1] = $62; - if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $82 = $62; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $82 = $62; - } - $84 = ($82 << 16 >> 16) * 7 | 0; - $86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1; - $90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265; - $94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $100 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($100 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $53; - $140 = $54 * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076; - $154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0; - if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - $108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($105 | 0) > ($108 | 0)) { - HEAP16[$pnt2$368 >> 1] = $108; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $125 = $108; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $125 = $108; - } else { - HEAP16[$pnt2$368 >> 1] = $105; - if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $125 = $105; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $125 = $105; - } - $127 = ($125 << 16 >> 16) * 7 | 0; - $129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0; - HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1; - $133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265; - $137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $219 = $pnt$169 + 2 | 0; - $220 = $pnt2$368 + 2 | 0; - $221 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $221; - $pnt$1$lcssa = $219; - $pnt2$3$lcssa = $220; - $wk_max$1$lcssa = $wk_max$2; + $29 = $y02$04 + $x02$05; + $34 = $0 * $29 + 1.0 + $29 * ($2 * $29); + $44 = $x02$05 * 3.0; + $50 = $y02$04 * $44; + $px$07 = $px$07 - ($6 * ($29 + $x02$05 * 2.0) + ($py$06 * ($23 * $px$07) + $px$07 * $34) - $18) / ($24 * $px$07 + ($23 * $py$06 + ($0 * ($y02$04 + $44) + 1.0 + $2 * ($y02$04 * $y02$04 + ($x02$05 * ($x02$05 * 5.0) + $50))))); + $67 = $25 * $px$07; + $py$06 = $py$06 - ($4 * ($y02$04 * 2.0 + $29) + $py$06 * $34 + $py$06 * $67 - $20) / ($26 * $py$06 + ($0 * ($x02$05 + $y02$04 * 3.0) + 1.0 + $2 * ($y02$04 * ($y02$04 * 5.0) + ($x02$05 * $x02$05 + $50))) + $67); + if (($i$03 | 0) == 4) { + $px$1 = $px$07; + $py$1 = $py$06; + break L3; + } + $x02$05 = $px$07 * $px$07; + $y02$04 = $py$06 * $py$06; + if (!($y02$04 != 0.0 | $x02$05 != 0.0)) { + $px$1 = 0.0; + $py$1 = 0.0; break; - } else { - $dpnt$167 = $221; - $pnt$169 = $219; - $pnt2$368 = $220; - $wk_max$160 = $wk_max$2; + } else $i$03 = $i$03 + 1 | 0; + } + } else { + $px$1 = 0.0; + $py$1 = 0.0; + } while (0); + HEAPF64[$ix >> 3] = $12 + $8 * $px$1 / $16; + HEAPF64[$iy >> 3] = $14 + $10 * $py$1 / $16; + $$0 = 0; + break; + } + case 3: + { + $101 = +HEAPF64[$dist_factor >> 3]; + $103 = ($ox - $101) / +HEAPF64[$dist_factor + 24 >> 3]; + $104 = $dist_factor + 8 | 0; + $106 = $oy - +HEAPF64[$104 >> 3]; + $109 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8; + $113 = +HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5; + $116 = $103 * $103 + $106 * $106; + $117 = +Math_sqrt(+$116); + $118 = $109 * 3.0; + $119 = $113 * 5.0; + L9 : do if ($117 != 0.0) { + $i5$015 = 1; + $px3$012 = $103; + $py4$013 = $106; + $z0$014 = $117; + $z02$016 = $116; + while (1) { + $134 = $z0$014 - ($z0$014 * (1.0 - $109 * $z02$016 - $z02$016 * ($113 * $z02$016)) - $117) / (1.0 - $118 * $z02$016 - $z02$016 * ($119 * $z02$016)); + $px3$012 = $px3$012 * $134 / $z0$014; + $py4$013 = $py4$013 * $134 / $z0$014; + if (($i5$015 | 0) == 3) { + $px3$1 = $px3$012; + $py4$1 = $py4$013; + break L9; + } + $z02$016 = $px3$012 * $px3$012 + $py4$013 * $py4$013; + $z0$014 = +Math_sqrt(+$z02$016); + if (!($z0$014 != 0.0)) { + $px3$1 = 0.0; + $py4$1 = 0.0; + break; + } else $i5$015 = $i5$015 + 1 | 0; + } + } else { + $px3$1 = 0.0; + $py4$1 = 0.0; + } while (0); + $146 = $dist_factor + 16 | 0; + HEAPF64[$ix >> 3] = $px3$1 / +HEAPF64[$146 >> 3] + $101; + HEAPF64[$iy >> 3] = $py4$1 / +HEAPF64[$146 >> 3] + +HEAPF64[$104 >> 3]; + $$0 = 0; + break; + } + case 2: + { + $154 = +HEAPF64[$dist_factor >> 3]; + $155 = $ox - $154; + $156 = $dist_factor + 8 | 0; + $158 = $oy - +HEAPF64[$156 >> 3]; + $161 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8; + $165 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5; + $168 = $155 * $155 + $158 * $158; + $169 = +Math_sqrt(+$168); + $170 = $161 * 3.0; + $171 = $165 * 5.0; + L15 : do if ($169 != 0.0) { + $i14$029 = 1; + $px12$027 = $155; + $py13$028 = $158; + $z026$025 = $168; + $z07$026 = $169; + while (1) { + $186 = $z07$026 - ($z07$026 * (1.0 - $161 * $z026$025 - $z026$025 * ($165 * $z026$025)) - $169) / (1.0 - $170 * $z026$025 - $z026$025 * ($171 * $z026$025)); + $px12$027 = $px12$027 * $186 / $z07$026; + $py13$028 = $py13$028 * $186 / $z07$026; + if (($i14$029 | 0) == 3) { + $px12$1 = $px12$027; + $py13$1 = $py13$028; + break L15; + } + $z026$025 = $px12$027 * $px12$027 + $py13$028 * $py13$028; + $z07$026 = +Math_sqrt(+$z026$025); + if (!($z07$026 != 0.0)) { + $px12$1 = 0.0; + $py13$1 = 0.0; + break; + } else $i14$029 = $i14$029 + 1 | 0; + } + } else { + $px12$1 = 0.0; + $py13$1 = 0.0; + } while (0); + $198 = $dist_factor + 16 | 0; + HEAPF64[$ix >> 3] = $px12$1 / +HEAPF64[$198 >> 3] + $154; + HEAPF64[$iy >> 3] = $py13$1 / +HEAPF64[$198 >> 3] + +HEAPF64[$156 >> 3]; + $$0 = 0; + break; + } + case 1: + { + $206 = +HEAPF64[$dist_factor >> 3]; + $207 = $ox - $206; + $208 = $dist_factor + 8 | 0; + $210 = $oy - +HEAPF64[$208 >> 3]; + $213 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8; + $216 = $207 * $207 + $210 * $210; + $217 = +Math_sqrt(+$216); + $218 = $213 * 3.0; + L21 : do if ($217 != 0.0) { + $i21$042 = 1; + $px19$040 = $207; + $py20$041 = $210; + $z016$039 = $217; + $z0215$038 = $216; + while (1) { + $227 = $z016$039 - ($z016$039 * (1.0 - $213 * $z0215$038) - $217) / (1.0 - $218 * $z0215$038); + $px19$040 = $px19$040 * $227 / $z016$039; + $py20$041 = $py20$041 * $227 / $z016$039; + if (($i21$042 | 0) == 3) { + $px19$1 = $px19$040; + $py20$1 = $py20$041; + break L21; } + $z0215$038 = $px19$040 * $px19$040 + $py20$041 * $py20$041; + $z016$039 = +Math_sqrt(+$z0215$038); + if (!($z016$039 != 0.0)) { + $px19$1 = 0.0; + $py20$1 = 0.0; + break; + } else $i21$042 = $i21$042 + 1 | 0; } } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; - } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; - } + $px19$1 = 0.0; + $py20$1 = 0.0; + } while (0); + $239 = $dist_factor + 16 | 0; + HEAPF64[$ix >> 3] = $px19$1 / +HEAPF64[$239 >> 3] + $206; + HEAPF64[$iy >> 3] = $py20$1 / +HEAPF64[$239 >> 3] + +HEAPF64[$208 >> 3]; + $$0 = 0; + break; } - _arLog(3, 3904, $vararg_buffer); + default: $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $228 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $230 = HEAP32[$wk$444 >> 2] | 0; - if (($230 | 0) == ($i$342 | 0)) { - $236 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; - } - HEAP32[$wk$444 >> 2] = $236; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $240 = $labelInfo + 8 | 0; - $241 = $j$1$lcssa + -1 | 0; - HEAP32[$240 >> 2] = $241; - if (!$241) $$0 = 0; else { - _memset($228 | 0, 0, $241 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $248 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $263 = $i$538 * 7 | 0; - $266 = $labelInfo + 12 + ($262 << 2) | 0; - HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0); - $273 = $262 << 1; - $274 = $labelInfo + 655376 + ($273 << 3) | 0; - HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0); - $282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0; - HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0); - $285 = $262 << 2; - $286 = $labelInfo + 131084 + ($285 << 2) | 0; - $290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0; - if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290; - $293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$240 >> 2] | 0) > 0) { - $i$637 = 0; - do { - $315 = $labelInfo + 12 + ($i$637 << 2) | 0; - $318 = $i$637 << 1; - $319 = $labelInfo + 655376 + ($318 << 3) | 0; - HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0); - $325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } + return $$0 | 0; +} + +function __ZNSt3__111__money_getIwE13__gather_infoEbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_SJ_Ri($__intl, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__psn, $__nsn, $__fd) { + $__intl = $__intl | 0; + $__loc = $__loc | 0; + $__pat = $__pat | 0; + $__dp = $__dp | 0; + $__ts = $__ts | 0; + $__grp = $__grp | 0; + $__sym = $__sym | 0; + $__psn = $__psn | 0; + $__nsn = $__nsn | 0; + $__fd = $__fd | 0; + var $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $40 = 0, $44 = 0, $5 = 0, $6 = 0, $7 = 0, $72 = 0, $76 = 0, $8 = 0, $9 = 0, $storemerge = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 100 | 0; + $1 = sp + 88 | 0; + $2 = sp + 76 | 0; + $3 = sp + 64 | 0; + $4 = sp + 52 | 0; + $5 = sp + 48 | 0; + $6 = sp + 36 | 0; + $7 = sp + 24 | 0; + $8 = sp + 12 | 0; + $9 = sp; + if ($__intl) { + $10 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13416) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 44 >> 2] & 63]($0, $10); + $14 = HEAP32[$0 >> 2] | 0; + HEAP8[$__pat >> 0] = $14; + HEAP8[$__pat + 1 >> 0] = $14 >> 8; + HEAP8[$__pat + 2 >> 0] = $14 >> 16; + HEAP8[$__pat + 3 >> 0] = $14 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 32 >> 2] & 63]($1, $10); + if (!(HEAP8[$__nsn >> 0] & 1)) HEAP8[$__nsn >> 0] = 0; else HEAP32[HEAP32[$__nsn + 8 >> 2] >> 2] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__nsn, 0); + HEAP32[$__nsn >> 2] = HEAP32[$1 >> 2]; + HEAP32[$__nsn + 4 >> 2] = HEAP32[$1 + 4 >> 2]; + HEAP32[$__nsn + 8 >> 2] = HEAP32[$1 + 8 >> 2]; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($1); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 28 >> 2] & 63]($2, $10); + if (!(HEAP8[$__psn >> 0] & 1)) HEAP8[$__psn >> 0] = 0; else HEAP32[HEAP32[$__psn + 8 >> 2] >> 2] = 0; + HEAP32[$__psn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__psn, 0); + HEAP32[$__psn >> 2] = HEAP32[$2 >> 2]; + HEAP32[$__psn + 4 >> 2] = HEAP32[$2 + 4 >> 2]; + HEAP32[$__psn + 8 >> 2] = HEAP32[$2 + 8 >> 2]; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($2); + $40 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 12 >> 2] & 127]($10) | 0; + HEAP32[$__dp >> 2] = $40; + $44 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 16 >> 2] & 127]($10) | 0; + HEAP32[$__ts >> 2] = $44; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 20 >> 2] & 63]($3, $10); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$3 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$3 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$3 + 8 >> 2]; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($3); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$10 >> 2] | 0) + 24 >> 2] & 63]($4, $10); + if (!(HEAP8[$__sym >> 0] & 1)) HEAP8[$__sym >> 0] = 0; else HEAP32[HEAP32[$__sym + 8 >> 2] >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$4 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($4); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$10 >> 2] | 0) + 36 >> 2] & 127]($10) | 0; + } else { + $72 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13352) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$72 >> 2] | 0) + 44 >> 2] & 63]($5, $72); + $76 = HEAP32[$5 >> 2] | 0; + HEAP8[$__pat >> 0] = $76; + HEAP8[$__pat + 1 >> 0] = $76 >> 8; + HEAP8[$__pat + 2 >> 0] = $76 >> 16; + HEAP8[$__pat + 3 >> 0] = $76 >> 24; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$72 >> 2] | 0) + 32 >> 2] & 63]($6, $72); + if (!(HEAP8[$__nsn >> 0] & 1)) HEAP8[$__nsn >> 0] = 0; else HEAP32[HEAP32[$__nsn + 8 >> 2] >> 2] = 0; + HEAP32[$__nsn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__nsn, 0); + HEAP32[$__nsn >> 2] = HEAP32[$6 >> 2]; + HEAP32[$__nsn + 4 >> 2] = HEAP32[$6 + 4 >> 2]; + HEAP32[$__nsn + 8 >> 2] = HEAP32[$6 + 8 >> 2]; + HEAP32[$6 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($6); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$72 >> 2] | 0) + 28 >> 2] & 63]($7, $72); + if (!(HEAP8[$__psn >> 0] & 1)) HEAP8[$__psn >> 0] = 0; else HEAP32[HEAP32[$__psn + 8 >> 2] >> 2] = 0; + HEAP32[$__psn + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__psn, 0); + HEAP32[$__psn >> 2] = HEAP32[$7 >> 2]; + HEAP32[$__psn + 4 >> 2] = HEAP32[$7 + 4 >> 2]; + HEAP32[$__psn + 8 >> 2] = HEAP32[$7 + 8 >> 2]; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($7); + $102 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$72 >> 2] | 0) + 12 >> 2] & 127]($72) | 0; + HEAP32[$__dp >> 2] = $102; + $106 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$72 >> 2] | 0) + 16 >> 2] & 127]($72) | 0; + HEAP32[$__ts >> 2] = $106; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$72 >> 2] | 0) + 20 >> 2] & 63]($8, $72); + if (!(HEAP8[$__grp >> 0] & 1)) { + HEAP8[$__grp + 1 >> 0] = 0; + HEAP8[$__grp >> 0] = 0; + } else { + HEAP8[HEAP32[$__grp + 8 >> 2] >> 0] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($__grp, 0); + HEAP32[$__grp >> 2] = HEAP32[$8 >> 2]; + HEAP32[$__grp + 4 >> 2] = HEAP32[$8 + 4 >> 2]; + HEAP32[$__grp + 8 >> 2] = HEAP32[$8 + 8 >> 2]; + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($8); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$72 >> 2] | 0) + 24 >> 2] & 63]($9, $72); + if (!(HEAP8[$__sym >> 0] & 1)) HEAP8[$__sym >> 0] = 0; else HEAP32[HEAP32[$__sym + 8 >> 2] >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($__sym, 0); + HEAP32[$__sym >> 2] = HEAP32[$9 >> 2]; + HEAP32[$__sym + 4 >> 2] = HEAP32[$9 + 4 >> 2]; + HEAP32[$__sym + 8 >> 2] = HEAP32[$9 + 8 >> 2]; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($9); + $storemerge = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$72 >> 2] | 0) + 36 >> 2] & 127]($72) | 0; } + HEAP32[$__fd >> 2] = $storemerge; STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; + +function __ZN6vision12FindFeaturesINS_14FREAKExtractorELi96EEEvPNS_8KeyframeIXT0_EEEPKNS_25GaussianScaleSpacePyramidEPNS_25DoGScaleInvariantDetectorEPT_($keyframe, $pyramid, $detector, $extractor) { + $keyframe = $keyframe | 0; + $pyramid = $pyramid | 0; + $detector = $detector | 0; + $extractor = $extractor | 0; + var $0 = 0, $106 = 0, $109 = 0, $110 = 0, $114 = 0, $116 = 0, $118 = 0, $12 = 0, $122 = 0, $13 = 0, $17 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $38 = 0, $45 = 0, $50 = 0, $51 = 0, $55 = 0, $65 = 0, $7 = 0, $70 = 0, $71 = 0, $75 = 0, $86 = 0, $91 = 0, $92 = 0, $96 = 0, $97 = 0, $99 = 0, $i$05 = 0, $points = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$089 = 0; - $pnt1$091 = $2; - $pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$090 >> 1] = 0; - HEAP16[$pnt1$091 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($0 | 0)) break; else { - $pnt1$091 = $pnt1$091 + 2 | 0; - $pnt2$090 = $pnt2$090 + 2 | 0; - } - } + $0 = sp + 12 | 0; + $points = sp; + if (!$pyramid) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32754) | 0, 29392) | 0, 34302) | 0, 212) | 0, 34309) | 0, 32888) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$183 = 0; - $pnt1$185 = $2; - $pnt2$184 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$184 >> 1] = 0; - HEAP16[$pnt1$185 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($1 | 0)) break; else { - $pnt1$185 = $pnt1$185 + ($0 << 1) | 0; - $pnt2$184 = $pnt2$184 + ($0 << 1) | 0; - } - } + if (!$detector) { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29838) | 0, 29392) | 0, 34302) | 0, 213) | 0, 34309) | 0, 29870) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); } - $18 = $labelInfo + 1179664 | 0; - $19 = $0 + 1 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = $xsize + 4 | 0; - L11 : do if (($3 | 0) > 1) { - $29 = ($11 | 0) > 1; - $dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0; - $j$076 = 1; - $pnt$080 = $image + (($xsize << 1) + 2) | 0; - $pnt2$279 = $2 + ($19 << 1) | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($29) { - $dpnt$167 = $dpnt$078; - $i$265 = 1; - $pnt$169 = $pnt$080; - $pnt2$368 = $pnt2$279; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$368 >> 1] = 0; - HEAP8[$dpnt$167 >> 0] = 0; - $wk_max$2 = $wk_max$160; - } else { - HEAP8[$dpnt$167 >> 0] = -1; - $34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0; - if ($34 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $34; - $37 = ($34 << 16 >> 16) * 7 | 0; - $39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0; - HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1; - $43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265; - $47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0; - $54 = $53 << 16 >> 16; - $57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0; - $58 = $57 << 16 >> 16; - $59 = $57 << 16 >> 16 > 0; - if ($53 << 16 >> 16 <= 0) { - if ($59) { - HEAP16[$pnt2$368 >> 1] = $57; - $159 = $58 * 7 | 0; - $161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1; - $165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265; - $169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076; - $173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0; - if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $179 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($179 << 16 >> 16 > 0) { - HEAP16[$pnt2$368 >> 1] = $179; - $182 = ($179 << 16 >> 16) * 7 | 0; - $184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0; - HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1; - $188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265; - $192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076; - $196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0; - if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$196 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $199 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$368 >> 1] = $199; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16; - $204 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $199; - break; - } - } - if ($59) { - $62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - $65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - if (($62 | 0) > ($65 | 0)) { - HEAP16[$pnt2$368 >> 1] = $65; - if (($wk_max$160 | 0) > 0) { - $k$056 = 0; - $wk$057 = $18; - while (1) { - if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65; - $k$056 = $k$056 + 1 | 0; - if (($k$056 | 0) >= ($wk_max$160 | 0)) { - $82 = $65; - break; - } else $wk$057 = $wk$057 + 4 | 0; - } - } else $82 = $65; - } else { - HEAP16[$pnt2$368 >> 1] = $62; - if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) { - $k$153 = 0; - $wk$154 = $18; - while (1) { - if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62; - $k$153 = $k$153 + 1 | 0; - if (($k$153 | 0) >= ($wk_max$160 | 0)) { - $82 = $62; - break; - } else $wk$154 = $wk$154 + 4 | 0; - } - } else $82 = $62; - } - $84 = ($82 << 16 >> 16) * 7 | 0; - $86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1; - $90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265; - $94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $100 = HEAP16[$pnt2$368 + -2 >> 1] | 0; - if ($100 << 16 >> 16 <= 0) { - HEAP16[$pnt2$368 >> 1] = $53; - $140 = $54 * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076; - $154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0; - if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - $108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($105 | 0) > ($108 | 0)) { - HEAP16[$pnt2$368 >> 1] = $108; - if (($wk_max$160 | 0) > 0) { - $k$249 = 0; - $wk$250 = $18; - while (1) { - if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108; - $k$249 = $k$249 + 1 | 0; - if (($k$249 | 0) >= ($wk_max$160 | 0)) { - $125 = $108; - break; - } else $wk$250 = $wk$250 + 4 | 0; - } - } else $125 = $108; - } else { - HEAP16[$pnt2$368 >> 1] = $105; - if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) { - $k$346 = 0; - $wk$347 = $18; - while (1) { - if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105; - $k$346 = $k$346 + 1 | 0; - if (($k$346 | 0) >= ($wk_max$160 | 0)) { - $125 = $105; - break; - } else $wk$347 = $wk$347 + 4 | 0; - } - } else $125 = $105; - } - $127 = ($125 << 16 >> 16) * 7 | 0; - $129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0; - HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1; - $133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265; - $137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $219 = $pnt$169 + 2 | 0; - $220 = $pnt2$368 + 2 | 0; - $221 = $dpnt$167 + 1 | 0; - if (($i$265 | 0) >= ($11 | 0)) { - $dpnt$1$lcssa = $221; - $pnt$1$lcssa = $219; - $pnt2$3$lcssa = $220; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$167 = $221; - $pnt$169 = $219; - $pnt2$368 = $220; - $wk_max$160 = $wk_max$2; - } - } - } else { - $dpnt$1$lcssa = $dpnt$078; - $pnt$1$lcssa = $pnt$080; - $pnt2$3$lcssa = $pnt2$279; - $wk_max$1$lcssa = $wk_max$075; - } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$078 = $dpnt$1$lcssa + 2 | 0; - $pnt$080 = $pnt$1$lcssa + $$sum | 0; - $pnt2$279 = $pnt2$3$lcssa + 4 | 0; - $wk_max$075 = $wk_max$1$lcssa; - } + $38 = HEAP32[$pyramid + 4 >> 2] | 0; + if ((HEAP32[$pyramid + 8 >> 2] | 0) == ($38 | 0)) { + $45 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29887) | 0, 29392) | 0, 34302) | 0, 214) | 0, 34309) | 0, 29939) | 0; + $50 = __ZNKSt3__18ios_base6getlocEv($45 + (HEAP32[(HEAP32[$45 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $50; + $51 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $55 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$51 >> 2] | 0) + 28 >> 2] & 63]($51, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($45, $55) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($45) | 0; + _abort(); + } + if ((HEAP32[$38 + 4 >> 2] | 0) != (HEAP32[$detector >> 2] | 0)) { + $65 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29956) | 0, 29392) | 0, 34302) | 0, 215) | 0, 34309) | 0, 30029) | 0; + $70 = __ZNKSt3__18ios_base6getlocEv($65 + (HEAP32[(HEAP32[$65 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $70; + $71 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $75 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$71 >> 2] | 0) + 28 >> 2] & 63]($71, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($65, $75) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($65) | 0; + _abort(); + } + if ((HEAP32[$38 + 8 >> 2] | 0) != (HEAP32[$detector + 4 >> 2] | 0)) { + $86 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30064) | 0, 29392) | 0, 34302) | 0, 216) | 0, 34309) | 0, 30029) | 0; + $91 = __ZNKSt3__18ios_base6getlocEv($86 + (HEAP32[(HEAP32[$86 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $91; + $92 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $96 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$92 >> 2] | 0) + 28 >> 2] & 63]($92, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($86, $96) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($86) | 0; + _abort(); + } + __ZN6vision25DoGScaleInvariantDetector6detectEPKNS_25GaussianScaleSpacePyramidE($detector, $pyramid); + $97 = $detector + 64 | 0; + $99 = $detector + 60 | 0; + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEEC2Ej($points, ((HEAP32[$97 >> 2] | 0) - (HEAP32[$99 >> 2] | 0) | 0) / 36 | 0); + $106 = HEAP32[$99 >> 2] | 0; + if ((HEAP32[$97 >> 2] | 0) != ($106 | 0)) { + $109 = $106; + $i$05 = 0; + do { + $110 = HEAP32[$points >> 2] | 0; + $114 = HEAP32[$109 + ($i$05 * 36 | 0) + 4 >> 2] | 0; + $116 = HEAP32[$109 + ($i$05 * 36 | 0) + 8 >> 2] | 0; + $118 = HEAP32[$109 + ($i$05 * 36 | 0) + 28 >> 2] | 0; + $122 = +HEAPF32[$109 + ($i$05 * 36 | 0) + 24 >> 2] > 0.0 & 1; + HEAP32[$110 + ($i$05 * 20 | 0) >> 2] = HEAP32[$109 + ($i$05 * 36 | 0) >> 2]; + HEAP32[$110 + ($i$05 * 20 | 0) + 4 >> 2] = $114; + HEAP32[$110 + ($i$05 * 20 | 0) + 8 >> 2] = $116; + HEAP32[$110 + ($i$05 * 20 | 0) + 12 >> 2] = $118; + HEAP8[$110 + ($i$05 * 20 | 0) + 16 >> 0] = $122; + $i$05 = $i$05 + 1 | 0; + $109 = HEAP32[$99 >> 2] | 0; + } while ($i$05 >>> 0 < (((HEAP32[$97 >> 2] | 0) - $109 | 0) / 36 | 0) >>> 0); + } + __ZN6vision14FREAKExtractor7extractERNS_18BinaryFeatureStoreEPKNS_25GaussianScaleSpacePyramidERKNSt3__16vectorINS_12FeaturePointENS6_9allocatorIS8_EEEE($extractor, $keyframe + 8 | 0, $pyramid, $points); + __ZNSt3__113__vector_baseIN6vision12FeaturePointENS_9allocatorIS2_EEED2Ev($points); + STACKTOP = sp; + return; +} + +function __ZNSt3__19__num_putIwE23__widen_and_group_floatEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nb, $__np, $__ne, $__ob, $__op, $__oe, $__loc) { + $__nb = $__nb | 0; + $__np = $__np | 0; + $__ne = $__ne | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__loc = $__loc | 0; + var $$01$i$i217 = 0, $$01$i$i22 = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $111 = 0, $112 = 0, $120 = 0, $121 = 0, $123 = 0, $126 = 0, $128 = 0, $13 = 0, $132 = 0, $137 = 0, $138 = 0, $139 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $152 = 0, $156 = 0, $162 = 0, $20 = 0, $25 = 0, $26 = 0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $42 = 0, $45 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $68 = 0, $70 = 0, $72 = 0, $74 = 0, $81 = 0, $82 = 0, $83 = 0, $91 = 0, $95 = 0, $97 = 0, $__dc$019 = 0, $__dc$1 = 0, $__dg$020 = 0, $__dg$1 = 0, $__grouping = 0, $__nf$0 = 0, $__nf$1 = 0, $__nf$215 = 0, $__nf$215$lcssa = 0, $__nf$3 = 0, $__ns$028 = 0, $__ns$124 = 0, $__ns$2 = 0, $__p$021 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__grouping = sp; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13828) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$1 >> 2] | 0) + 20 >> 2] & 63]($__grouping, $1); + HEAP32[$__oe >> 2] = $__ob; + $5 = HEAP8[$__nb >> 0] | 0; + switch ($5 << 24 >> 24) { + case 43: + case 45: + { + $10 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, $5) | 0; + $11 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $11 + 4; + HEAP32[$11 >> 2] = $10; + $__nf$0 = $__nb + 1 | 0; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $228 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$342 = 1; - $j$143 = 1; - $wk$444 = $18; - while (1) { - $230 = HEAP32[$wk$444 >> 2] | 0; - if (($230 | 0) == ($i$342 | 0)) { - $236 = $j$143; - $j$2 = $j$143 + 1 | 0; - } else { - $236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0; - $j$2 = $j$143; - } - HEAP32[$wk$444 >> 2] = $236; - if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) { - $i$342 = $i$342 + 1 | 0; - $j$143 = $j$2; - $wk$444 = $wk$444 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + default: + $__nf$0 = $__nb; + } + $13 = $__ne; + L4 : do if (($13 - $__nf$0 | 0) > 1) if ((HEAP8[$__nf$0 >> 0] | 0) == 48) { + $20 = $__nf$0 + 1 | 0; + switch (HEAP8[$20 >> 0] | 0) { + case 88: + case 120: + break; + default: + { + label = 4; + break L4; } } - $240 = $labelInfo + 8 | 0; - $241 = $j$1$lcssa + -1 | 0; - HEAP32[$240 >> 2] = $241; - if (!$241) $$0 = 0; else { - _memset($228 | 0, 0, $241 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$440 = 0; - do { - $248 = $i$440 << 2; - HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0; - $i$440 = $i$440 + 1 | 0; - } while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$538 = 0; - do { - $262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0; - $263 = $i$538 * 7 | 0; - $266 = $labelInfo + 12 + ($262 << 2) | 0; - HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0); - $273 = $262 << 1; - $274 = $labelInfo + 655376 + ($273 << 3) | 0; - HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0); - $282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0; - HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0); - $285 = $262 << 2; - $286 = $labelInfo + 131084 + ($285 << 2) | 0; - $290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0; - if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290; - $293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311; - $i$538 = $i$538 + 1 | 0; - } while (($i$538 | 0) < ($wk_max$0$lcssa | 0)); + $25 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, 48) | 0; + $26 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $26 + 4; + HEAP32[$26 >> 2] = $25; + $28 = $__nf$0 + 2 | 0; + $33 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, HEAP8[$20 >> 0] | 0) | 0; + $34 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $34 + 4; + HEAP32[$34 >> 2] = $33; + if ($28 >>> 0 < $__ne >>> 0) { + $__ns$028 = $28; + while (1) { + $38 = HEAP8[$__ns$028 >> 0] | 0; + if (!(_isxdigit_l($38, __ZNSt3__16__clocEv() | 0) | 0)) { + $__nf$1 = $28; + $__ns$2 = $__ns$028; + break L4; + } + $42 = $__ns$028 + 1 | 0; + if ($42 >>> 0 < $__ne >>> 0) $__ns$028 = $42; else { + $__nf$1 = $28; + $__ns$2 = $42; + break; + } } - if ((HEAP32[$240 >> 2] | 0) > 0) { - $i$637 = 0; + } else { + $__nf$1 = $28; + $__ns$2 = $28; + } + } else label = 4; else label = 4; while (0); + L11 : do if ((label | 0) == 4) if ($__nf$0 >>> 0 < $__ne >>> 0) { + $__ns$124 = $__nf$0; + while (1) { + $45 = HEAP8[$__ns$124 >> 0] | 0; + if (!(_isdigit_l($45, __ZNSt3__16__clocEv() | 0) | 0)) { + $__nf$1 = $__nf$0; + $__ns$2 = $__ns$124; + break L11; + } + $49 = $__ns$124 + 1 | 0; + if ($49 >>> 0 < $__ne >>> 0) $__ns$124 = $49; else { + $__nf$1 = $__nf$0; + $__ns$2 = $49; + break; + } + } + } else { + $__nf$1 = $__nf$0; + $__ns$2 = $__nf$0; + } while (0); + $51 = HEAP8[$__grouping >> 0] | 0; + $54 = $__grouping + 4 | 0; + if (!((($51 & 1) == 0 ? ($51 & 255) >>> 1 : HEAP32[$54 >> 2] | 0) | 0)) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 15]($0, $__nf$1, $__ns$2, HEAP32[$__oe >> 2] | 0) | 0; + $68 = (HEAP32[$__oe >> 2] | 0) + ($__ns$2 - $__nf$1 << 2) | 0; + HEAP32[$__oe >> 2] = $68; + $$pre$phiZ2D = $0; + $162 = $68; + } else { + if (($__nf$1 | 0) != ($__ns$2 | 0)) { + $70 = $__ns$2 + -1 | 0; + if ($__nf$1 >>> 0 < $70 >>> 0) { + $$01$i$i22 = $__nf$1; + $74 = $70; do { - $315 = $labelInfo + 12 + ($i$637 << 2) | 0; - $318 = $i$637 << 1; - $319 = $labelInfo + 655376 + ($318 << 3) | 0; - HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0); - $325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0); - $i$637 = $i$637 + 1 | 0; - } while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $72 = HEAP8[$$01$i$i22 >> 0] | 0; + HEAP8[$$01$i$i22 >> 0] = HEAP8[$74 >> 0] | 0; + HEAP8[$74 >> 0] = $72; + $$01$i$i22 = $$01$i$i22 + 1 | 0; + $74 = $74 + -1 | 0; + } while ($$01$i$i22 >>> 0 < $74 >>> 0); + } + } + $81 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] & 127]($1) | 0; + $82 = $__grouping + 8 | 0; + $83 = $__grouping + 1 | 0; + if ($__nf$1 >>> 0 < $__ns$2 >>> 0) { + $__dc$019 = 0; + $__dg$020 = 0; + $__p$021 = $__nf$1; + while (1) { + $91 = HEAP8[((HEAP8[$__grouping >> 0] & 1) == 0 ? $83 : HEAP32[$82 >> 2] | 0) + $__dg$020 >> 0] | 0; + if ($91 << 24 >> 24 > 0 & ($__dc$019 | 0) == ($91 << 24 >> 24 | 0)) { + $95 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $95 + 4; + HEAP32[$95 >> 2] = $81; + $97 = HEAP8[$__grouping >> 0] | 0; + $__dc$1 = 0; + $__dg$1 = ($__dg$020 >>> 0 < ((($97 & 1) == 0 ? ($97 & 255) >>> 1 : HEAP32[$54 >> 2] | 0) + -1 | 0) >>> 0 & 1) + $__dg$020 | 0; + } else { + $__dc$1 = $__dc$019; + $__dg$1 = $__dg$020; + } + $111 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, HEAP8[$__p$021 >> 0] | 0) | 0; + $112 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $112 + 4; + HEAP32[$112 >> 2] = $111; + $__p$021 = $__p$021 + 1 | 0; + if ($__p$021 >>> 0 >= $__ns$2 >>> 0) break; else { + $__dc$019 = $__dc$1 + 1 | 0; + $__dg$020 = $__dg$1; + } + } + } + $120 = $__ob + ($__nf$1 - $__nb << 2) | 0; + $121 = HEAP32[$__oe >> 2] | 0; + if (($120 | 0) == ($121 | 0)) { + $$pre$phiZ2D = $0; + $162 = $120; + } else { + $123 = $121 + -4 | 0; + if ($120 >>> 0 < $123 >>> 0) { + $$01$i$i217 = $120; + $128 = $123; + do { + $126 = HEAP32[$$01$i$i217 >> 2] | 0; + HEAP32[$$01$i$i217 >> 2] = HEAP32[$128 >> 2]; + HEAP32[$128 >> 2] = $126; + $$01$i$i217 = $$01$i$i217 + 4 | 0; + $128 = $128 + -4 | 0; + } while ($$01$i$i217 >>> 0 < $128 >>> 0); + $$pre$phiZ2D = $0; + $162 = $121; + } else { + $$pre$phiZ2D = $0; + $162 = $121; + } } } + L36 : do if ($__ns$2 >>> 0 < $__ne >>> 0) { + $__nf$215 = $__ns$2; + while (1) { + $132 = HEAP8[$__nf$215 >> 0] | 0; + if ($132 << 24 >> 24 == 46) { + $__nf$215$lcssa = $__nf$215; + break; + } + $144 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$$pre$phiZ2D >> 2] | 0) + 44 >> 2] & 63]($0, $132) | 0; + $145 = HEAP32[$__oe >> 2] | 0; + $146 = $145 + 4 | 0; + HEAP32[$__oe >> 2] = $146; + HEAP32[$145 >> 2] = $144; + $147 = $__nf$215 + 1 | 0; + if ($147 >>> 0 < $__ne >>> 0) $__nf$215 = $147; else { + $152 = $146; + $__nf$3 = $147; + break L36; + } + } + $137 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 12 >> 2] & 127]($1) | 0; + $138 = HEAP32[$__oe >> 2] | 0; + $139 = $138 + 4 | 0; + HEAP32[$__oe >> 2] = $139; + HEAP32[$138 >> 2] = $137; + $152 = $139; + $__nf$3 = $__nf$215$lcssa + 1 | 0; + } else { + $152 = $162; + $__nf$3 = $__ns$2; + } while (0); + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 15]($0, $__nf$3, $__ne, $152) | 0; + $156 = (HEAP32[$__oe >> 2] | 0) + ($13 - $__nf$3 << 2) | 0; + HEAP32[$__oe >> 2] = $156; + HEAP32[$__op >> 2] = ($__np | 0) == ($__ne | 0) ? $156 : $__ob + ($__np - $__nb << 2) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function __ZN6vision18BinomialPyramid32f5buildERKNS_5ImageE($this, $image) { + $this = $this | 0; $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; + var $0 = 0, $104 = 0, $105 = 0, $109 = 0, $110 = 0, $112 = 0, $118 = 0, $119 = 0, $122 = 0, $13 = 0, $130 = 0, $132 = 0, $136 = 0, $138 = 0, $14 = 0, $18 = 0, $27 = 0, $32 = 0, $33 = 0, $37 = 0, $40 = 0, $41 = 0, $46 = 0, $48 = 0, $57 = 0, $62 = 0, $63 = 0, $67 = 0, $78 = 0, $8 = 0, $83 = 0, $84 = 0, $88 = 0, $99 = 0, $i$05 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } + $0 = sp; + if ((HEAP32[$image >> 2] | 0) != 1) { + $8 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26056) | 0, 25873) | 0, 34302) | 0, 330) | 0, 34309) | 0, 26107) | 0; + $13 = __ZNKSt3__18ios_base6getlocEv($8 + (HEAP32[(HEAP32[$8 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $13; + $14 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 28 >> 2] & 63]($14, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($8, $18) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + _abort(); + } + if ((HEAP32[$image + 16 >> 2] | 0) != 1) { + $27 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26131) | 0, 25873) | 0, 34302) | 0, 331) | 0, 34309) | 0, 26176) | 0; + $32 = __ZNKSt3__18ios_base6getlocEv($27 + (HEAP32[(HEAP32[$27 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $32; + $33 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $37 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$33 >> 2] | 0) + 28 >> 2] & 63]($33, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($27, $37) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($27) | 0; + _abort(); + } + $40 = $this + 4 | 0; + $41 = HEAP32[$40 >> 2] | 0; + $46 = $this + 16 | 0; + $48 = $this + 20 | 0; + if (((HEAP32[$this + 8 >> 2] | 0) - $41 >> 5 | 0) != (Math_imul(HEAP32[$48 >> 2] | 0, HEAP32[$46 >> 2] | 0) | 0)) { + $57 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26202) | 0, 25873) | 0, 34302) | 0, 333) | 0, 34309) | 0, 26276) | 0; + $62 = __ZNKSt3__18ios_base6getlocEv($57 + (HEAP32[(HEAP32[$57 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $62; + $63 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $67 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$63 >> 2] | 0) + 28 >> 2] & 63]($63, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($57, $67) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($57) | 0; + _abort(); + } + if ((HEAP32[$image + 4 >> 2] | 0) != (HEAP32[$41 + 4 >> 2] | 0)) { + $78 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26311) | 0, 25873) | 0, 34302) | 0, 334) | 0, 34309) | 0, 26371) | 0; + $83 = __ZNKSt3__18ios_base6getlocEv($78 + (HEAP32[(HEAP32[$78 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $83; + $84 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $88 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$84 >> 2] | 0) + 28 >> 2] & 63]($84, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($78, $88) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($78) | 0; + _abort(); + } + if ((HEAP32[$image + 8 >> 2] | 0) != (HEAP32[$41 + 8 >> 2] | 0)) { + $99 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26403) | 0, 25873) | 0, 34302) | 0, 335) | 0, 34309) | 0, 26371) | 0; + $104 = __ZNKSt3__18ios_base6getlocEv($99 + (HEAP32[(HEAP32[$99 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $104; + $105 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $109 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$105 >> 2] | 0) + 28 >> 2] & 63]($105, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($99, $109) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($99) | 0; + _abort(); + } + __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $41, $image); + $110 = HEAP32[$40 >> 2] | 0; + __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $110 + 32 | 0, $110); + $112 = HEAP32[$40 >> 2] | 0; + __ZN6vision18BinomialPyramid32f18apply_filter_twiceERNS_5ImageERKS1_($this, $112 + 64 | 0, $112 + 32 | 0); + if ((HEAP32[$46 >> 2] | 0) >>> 0 > 1) { + $i$05 = 1; + do { + $118 = Math_imul(HEAP32[$48 >> 2] | 0, $i$05) | 0; + $119 = HEAP32[$40 >> 2] | 0; + $122 = $118 + -1 | 0; + __ZN6vision19downsample_bilinearEPfPKfjj(HEAP32[$119 + ($118 << 5) + 24 >> 2] | 0, HEAP32[$119 + ($122 << 5) + 24 >> 2] | 0, HEAP32[$119 + ($122 << 5) + 4 >> 2] | 0, HEAP32[$119 + ($122 << 5) + 8 >> 2] | 0); + $130 = Math_imul(HEAP32[$48 >> 2] | 0, $i$05) | 0; + $132 = HEAP32[$40 >> 2] | 0; + __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $132 + ($130 + 1 << 5) | 0, $132 + ($130 << 5) | 0); + $136 = Math_imul(HEAP32[$48 >> 2] | 0, $i$05) | 0; + $138 = HEAP32[$40 >> 2] | 0; + __ZN6vision18BinomialPyramid32f18apply_filter_twiceERNS_5ImageERKS1_($this, $138 + ($136 + 2 << 5) | 0, $138 + ($136 + 1 << 5) | 0); + $i$05 = $i$05 + 1 | 0; + } while ($i$05 >>> 0 < (HEAP32[$46 >> 2] | 0) >>> 0); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__19__num_putIcE23__widen_and_group_floatEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nb, $__np, $__ne, $__ob, $__op, $__oe, $__loc) { + $__nb = $__nb | 0; + $__np = $__np | 0; + $__ne = $__ne | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__loc = $__loc | 0; + var $$01$i$i20 = 0, $$01$i$i215 = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $111 = 0, $112 = 0, $120 = 0, $121 = 0, $123 = 0, $126 = 0, $128 = 0, $13 = 0, $132 = 0, $137 = 0, $138 = 0, $144 = 0, $145 = 0, $147 = 0, $156 = 0, $20 = 0, $25 = 0, $26 = 0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $42 = 0, $45 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $70 = 0, $72 = 0, $74 = 0, $81 = 0, $82 = 0, $83 = 0, $91 = 0, $95 = 0, $97 = 0, $__dc$017 = 0, $__dc$1 = 0, $__dg$018 = 0, $__dg$1 = 0, $__grouping = 0, $__nf$0 = 0, $__nf$1 = 0, $__nf$214 = 0, $__nf$214$lcssa = 0, $__nf$3 = 0, $__ns$026 = 0, $__ns$122 = 0, $__ns$2 = 0, $__p$019 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__grouping = sp; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13820) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$1 >> 2] | 0) + 20 >> 2] & 63]($__grouping, $1); + HEAP32[$__oe >> 2] = $__ob; + $5 = HEAP8[$__nb >> 0] | 0; + switch ($5 << 24 >> 24) { + case 43: + case 45: + { + $10 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, $5) | 0; + $11 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $11 + 1; + HEAP8[$11 >> 0] = $10; + $__nf$0 = $__nb + 1 | 0; + break; } + default: + $__nf$0 = $__nb; } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; + $13 = $__ne; + L4 : do if (($13 - $__nf$0 | 0) > 1) if ((HEAP8[$__nf$0 >> 0] | 0) == 48) { + $20 = $__nf$0 + 1 | 0; + switch (HEAP8[$20 >> 0] | 0) { + case 88: + case 120: + break; + default: + { + label = 4; + break L4; + } + } + $25 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, 48) | 0; + $26 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $26 + 1; + HEAP8[$26 >> 0] = $25; + $28 = $__nf$0 + 2 | 0; + $33 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, HEAP8[$20 >> 0] | 0) | 0; + $34 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $34 + 1; + HEAP8[$34 >> 0] = $33; + if ($28 >>> 0 < $__ne >>> 0) { + $__ns$026 = $28; + while (1) { + $38 = HEAP8[$__ns$026 >> 0] | 0; + if (!(_isxdigit_l($38, __ZNSt3__16__clocEv() | 0) | 0)) { + $__nf$1 = $28; + $__ns$2 = $__ns$026; + break L4; + } + $42 = $__ns$026 + 1 | 0; + if ($42 >>> 0 < $__ne >>> 0) $__ns$026 = $42; else { + $__nf$1 = $28; + $__ns$2 = $42; + break; + } + } + } else { + $__nf$1 = $28; + $__ns$2 = $28; + } + } else label = 4; else label = 4; while (0); + L11 : do if ((label | 0) == 4) if ($__nf$0 >>> 0 < $__ne >>> 0) { + $__ns$122 = $__nf$0; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $45 = HEAP8[$__ns$122 >> 0] | 0; + if (!(_isdigit_l($45, __ZNSt3__16__clocEv() | 0) | 0)) { + $__nf$1 = $__nf$0; + $__ns$2 = $__ns$122; + break L11; } + $49 = $__ns$122 + 1 | 0; + if ($49 >>> 0 < $__ne >>> 0) $__ns$122 = $49; else { + $__nf$1 = $__nf$0; + $__ns$2 = $49; + break; + } + } + } else { + $__nf$1 = $__nf$0; + $__ns$2 = $__nf$0; + } while (0); + $51 = HEAP8[$__grouping >> 0] | 0; + $54 = $__grouping + 4 | 0; + if (!((($51 & 1) == 0 ? ($51 & 255) >>> 1 : HEAP32[$54 >> 2] | 0) | 0)) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 32 >> 2] & 15]($0, $__nf$1, $__ns$2, HEAP32[$__oe >> 2] | 0) | 0; + HEAP32[$__oe >> 2] = (HEAP32[$__oe >> 2] | 0) + ($__ns$2 - $__nf$1); + $$pre$phiZ2D = $0; + } else { + if (($__nf$1 | 0) != ($__ns$2 | 0)) { + $70 = $__ns$2 + -1 | 0; + if ($__nf$1 >>> 0 < $70 >>> 0) { + $$01$i$i20 = $__nf$1; + $74 = $70; + do { + $72 = HEAP8[$$01$i$i20 >> 0] | 0; + HEAP8[$$01$i$i20 >> 0] = HEAP8[$74 >> 0] | 0; + HEAP8[$74 >> 0] = $72; + $$01$i$i20 = $$01$i$i20 + 1 | 0; + $74 = $74 + -1 | 0; + } while ($$01$i$i20 >>> 0 < $74 >>> 0); + } + } + $81 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] & 127]($1) | 0; + $82 = $__grouping + 8 | 0; + $83 = $__grouping + 1 | 0; + if ($__nf$1 >>> 0 < $__ns$2 >>> 0) { + $__dc$017 = 0; + $__dg$018 = 0; + $__p$019 = $__nf$1; + while (1) { + $91 = HEAP8[((HEAP8[$__grouping >> 0] & 1) == 0 ? $83 : HEAP32[$82 >> 2] | 0) + $__dg$018 >> 0] | 0; + if ($91 << 24 >> 24 > 0 & ($__dc$017 | 0) == ($91 << 24 >> 24 | 0)) { + $95 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $95 + 1; + HEAP8[$95 >> 0] = $81; + $97 = HEAP8[$__grouping >> 0] | 0; + $__dc$1 = 0; + $__dg$1 = ($__dg$018 >>> 0 < ((($97 & 1) == 0 ? ($97 & 255) >>> 1 : HEAP32[$54 >> 2] | 0) + -1 | 0) >>> 0 & 1) + $__dg$018 | 0; + } else { + $__dc$1 = $__dc$017; + $__dg$1 = $__dg$018; + } + $111 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, HEAP8[$__p$019 >> 0] | 0) | 0; + $112 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $112 + 1; + HEAP8[$112 >> 0] = $111; + $__p$019 = $__p$019 + 1 | 0; + if ($__p$019 >>> 0 >= $__ns$2 >>> 0) break; else { + $__dc$017 = $__dc$1 + 1 | 0; + $__dg$018 = $__dg$1; + } + } + } + $120 = $__ob + ($__nf$1 - $__nb) | 0; + $121 = HEAP32[$__oe >> 2] | 0; + if (($120 | 0) == ($121 | 0)) $$pre$phiZ2D = $0; else { + $123 = $121 + -1 | 0; + if ($120 >>> 0 < $123 >>> 0) { + $$01$i$i215 = $120; + $128 = $123; + do { + $126 = HEAP8[$$01$i$i215 >> 0] | 0; + HEAP8[$$01$i$i215 >> 0] = HEAP8[$128 >> 0] | 0; + HEAP8[$128 >> 0] = $126; + $$01$i$i215 = $$01$i$i215 + 1 | 0; + $128 = $128 + -1 | 0; + } while ($$01$i$i215 >>> 0 < $128 >>> 0); + $$pre$phiZ2D = $0; + } else $$pre$phiZ2D = $0; } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + ($17 << 1) | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($26) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($32 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $32; - $35 = ($32 << 16 >> 16) * 7 | 0; - $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; - $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264; - $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $57 = $55 << 16 >> 16 > 0; - if ($51 << 16 >> 16 <= 0) { - if ($57) { - HEAP16[$pnt2$367 >> 1] = $55; - $157 = $56 * 7 | 0; - $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; - $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264; - $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075; - $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; - if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $177 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($177 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $177; - $180 = ($177 << 16 >> 16) * 7 | 0; - $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; - $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264; - $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075; - $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; - if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$194 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $197 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $197; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16; - $202 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $197; - break; - } - } - if ($57) { - $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - if (($60 | 0) > ($63 | 0)) { - HEAP16[$pnt2$367 >> 1] = $63; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $80 = $63; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $80 = $63; - } else { - HEAP16[$pnt2$367 >> 1] = $60; - if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $80 = $60; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $80 = $60; - } - $82 = ($80 << 16 >> 16) * 7 | 0; - $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; - $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264; - $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; + L36 : do if ($__ns$2 >>> 0 < $__ne >>> 0) { + $__nf$214 = $__ns$2; + while (1) { + $132 = HEAP8[$__nf$214 >> 0] | 0; + if ($132 << 24 >> 24 == 46) { + $__nf$214$lcssa = $__nf$214; + break; + } + $144 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$$pre$phiZ2D >> 2] | 0) + 28 >> 2] & 63]($0, $132) | 0; + $145 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $145 + 1; + HEAP8[$145 >> 0] = $144; + $147 = $__nf$214 + 1 | 0; + if ($147 >>> 0 < $__ne >>> 0) $__nf$214 = $147; else { + $__nf$3 = $147; + break L36; + } + } + $137 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 12 >> 2] & 127]($1) | 0; + $138 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $138 + 1; + HEAP8[$138 >> 0] = $137; + $__nf$3 = $__nf$214$lcssa + 1 | 0; + } else $__nf$3 = $__ns$2; while (0); + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 32 >> 2] & 15]($0, $__nf$3, $__ne, HEAP32[$__oe >> 2] | 0) | 0; + $156 = (HEAP32[$__oe >> 2] | 0) + ($13 - $__nf$3) | 0; + HEAP32[$__oe >> 2] = $156; + HEAP32[$__op >> 2] = ($__np | 0) == ($__ne | 0) ? $156 : $__ob + ($__np - $__nb) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return; +} +function __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0$i$i$i = 0, $$0$i$i$i8 = 0, $$02 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $105 = 0, $108 = 0, $109 = 0, $13 = 0, $19 = 0, $2 = 0, $21 = 0, $26 = 0, $3 = 0, $33 = 0, $35 = 0, $40 = 0, $45 = 0, $47 = 0, $52 = 0, $56 = 0, $59 = 0, $60 = 0, $62 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $76 = 0, $78 = 0, $81 = 0, $82 = 0, $86 = 0, $87 = 0, $89 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__v$i$i7 = 0, $c$0$in$lcssa = 0, $c$0$in29 = 0, $isdigittmp = 0, $isdigittmp427 = 0, $isdigittmp431 = 0, $n$0$lcssa = 0, $n$030 = 0, $r = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i7 = sp + 88 | 0; + $r = sp + 76 | 0; + $0 = sp + 64 | 0; + $1 = sp + 40 | 0; + $2 = sp + 16 | 0; + $3 = sp; + L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else { + $isdigittmp = (HEAP8[$first >> 0] | 0) + -48 | 0; + if ($isdigittmp >>> 0 < 10) { + $7 = $first + 1 | 0; + if (($7 | 0) == ($last | 0)) $$02 = $first; else { + $isdigittmp427 = (HEAP8[$7 >> 0] | 0) + -48 | 0; + if ($isdigittmp427 >>> 0 < 10) { + $c$0$in29 = $7; + $isdigittmp431 = $isdigittmp427; + $n$030 = $isdigittmp; + while (1) { + $10 = $c$0$in29 + 1 | 0; + if (($10 | 0) == ($last | 0)) { + $$02 = $first; + break L1; } - $98 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($98 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $51; - $138 = $52 * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075; - $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; - if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + $13 = $isdigittmp431 + ($n$030 * 10 | 0) | 0; + $isdigittmp431 = (HEAP8[$10 >> 0] | 0) + -48 | 0; + if ($isdigittmp431 >>> 0 >= 10) { + $$lcssa = $c$0$in29; + $c$0$in$lcssa = $10; + $n$0$lcssa = $13; break; + } else { + $c$0$in29 = $10; + $n$030 = $13; } - $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($103 | 0) > ($106 | 0)) { - HEAP16[$pnt2$367 >> 1] = $106; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $123 = $106; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $123 = $106; + } + } else { + $$lcssa = $first; + $c$0$in$lcssa = $7; + $n$0$lcssa = $isdigittmp; + } + if (($last - $c$0$in$lcssa | 0) >>> 0 < $n$0$lcssa >>> 0) $$02 = $first; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($r, $c$0$in$lcssa, $n$0$lcssa); + $19 = HEAP8[$r >> 0] | 0; + $21 = ($19 & 1) == 0; + $26 = $21 ? ($19 & 255) >>> 1 : HEAP32[$r + 4 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $21 ? $r + 1 | 0 : HEAP32[$r + 8 >> 2] | 0, $26 >>> 0 < 10 ? $26 : 10); + $33 = HEAP8[$0 >> 0] | 0; + $35 = ($33 & 1) == 0; + $40 = $35 ? ($33 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0; + $45 = $40 >>> 0 > 10; + $47 = _memcmp($35 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 48897, $45 ? 10 : $40) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + if (!((($47 | 0) == 0 ? ($40 >>> 0 < 10 ? -1 : $45 & 1) : $47) | 0)) { + $52 = _malloc(32) | 0; + HEAP32[$1 + 8 >> 2] = $52; + HEAP32[$1 >> 2] = 33; + HEAP32[$1 + 4 >> 2] = 21; + dest = $52; + src = 48908; + stop = dest + 21 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$52 + 21 >> 0] = 0; + $56 = $1 + 12 | 0; + HEAP32[$56 >> 2] = 0; + HEAP32[$56 + 4 >> 2] = 0; + HEAP32[$56 + 8 >> 2] = 0; + $59 = $db + 4 | 0; + $60 = HEAP32[$59 >> 2] | 0; + $62 = HEAP32[$db + 8 >> 2] | 0; + if ($60 >>> 0 < $62 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($60, $1); + HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + 24; } else { - HEAP16[$pnt2$367 >> 1] = $103; - if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $123 = $103; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $123 = $103; + $69 = HEAP32[$db >> 2] | 0; + $70 = $60 - $69 | 0; + $71 = ($70 | 0) / 24 | 0; + $72 = $71 + 1 | 0; + if (($70 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $76 = ($62 - $69 | 0) / 24 | 0; + if ($76 >>> 0 < 1073741823) { + $78 = $76 << 1; + $$0$i$i$i = $78 >>> 0 < $72 >>> 0 ? $72 : $78; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i, $71, $db + 12 | 0); + $81 = $__v$i$i7 + 8 | 0; + $82 = HEAP32[$81 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1); + HEAP32[$81 >> 2] = $82 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7); } - $125 = ($123 << 16 >> 16) * 7 | 0; - $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; - $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264; - $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $217 = $pnt$168 + 2 | 0; - $218 = $pnt2$367 + 2 | 0; - $219 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $219; - $pnt$1$lcssa = $217; - $pnt2$3$lcssa = $218; - $wk_max$1$lcssa = $wk_max$2; - break; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); } else { - $dpnt$166 = $219; - $pnt$168 = $217; - $pnt2$367 = $218; - $wk_max$159 = $wk_max$2; + HEAP32[$3 >> 2] = HEAP32[$r >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$r + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$r + 8 >> 2]; + HEAP32[$r >> 2] = 0; + HEAP32[$r + 4 >> 2] = 0; + HEAP32[$r + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); + $86 = $db + 4 | 0; + $87 = HEAP32[$86 >> 2] | 0; + $89 = HEAP32[$db + 8 >> 2] | 0; + if ($87 >>> 0 < $89 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($87, $2); + HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 24; + } else { + $96 = HEAP32[$db >> 2] | 0; + $97 = $87 - $96 | 0; + $98 = ($97 | 0) / 24 | 0; + $99 = $98 + 1 | 0; + if (($97 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $103 = ($89 - $96 | 0) / 24 | 0; + if ($103 >>> 0 < 1073741823) { + $105 = $103 << 1; + $$0$i$i$i8 = $105 >>> 0 < $99 >>> 0 ? $99 : $105; + } else $$0$i$i$i8 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i8, $98, $db + 12 | 0); + $108 = $__v$i$i7 + 8 | 0; + $109 = HEAP32[$108 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($109, $2); + HEAP32[$108 >> 2] = $109 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($r); + $$02 = $$lcssa + ($n$0$lcssa + 1) | 0; } + } + } else $$02 = $first; + } while (0); + STACKTOP = sp; + return $$02 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i2 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i8 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i4 = 0, $$pre$i3$i$i = 0, $$pre22 = 0, $100 = 0, $101 = 0, $103 = 0.0, $104 = 0, $107 = 0, $11 = 0, $119 = 0, $13 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $78 = 0, $85 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 352 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 40 | 0; + $__thousands_sep = sp + 36 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 48 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 337 | 0; + $__exp = sp + 336 | 0; + __ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP32[$__decimal_point >> 2] | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i4 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i4) { + $$pre$i$i$i = 0; + $132 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i4 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i4 + 16 >> 2] | 0)) $$0$i$i$i$i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i4 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i4) | 0; else $$0$i$i$i$i2 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i2 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $132 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i4; + $132 = 0; + } + } + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i8 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i8 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($132) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; + } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($132) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw($$0$i$i, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $133; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre22 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $104 = $$pre22; else if (($$pre22 - $__g | 0) < 160) { + $100 = HEAP32[$__dc >> 2] | 0; + $101 = $$pre22 + 4 | 0; + HEAP32[$__g_end >> 2] = $101; + HEAP32[$$pre22 >> 2] = $100; + $104 = $101; + } else $104 = $$pre22; + $103 = +__ZNSt3__115__num_get_floatIfEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF32[$__v >> 2] = $103; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $104, $__err); + if (!$$pre$i$i$i$lcssa) $134 = 1; else { + $107 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($107 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$107 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $134 = 1; + } else $134 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $119 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($119 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$119 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($134) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($134) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $131 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $131 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i2 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i8 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i4 = 0, $$pre$i3$i$i = 0, $$pre22 = 0, $100 = 0, $101 = 0, $103 = 0.0, $104 = 0, $107 = 0, $11 = 0, $119 = 0, $13 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $78 = 0, $85 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 352 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 40 | 0; + $__thousands_sep = sp + 36 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 48 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 337 | 0; + $__exp = sp + 336 | 0; + __ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP32[$__decimal_point >> 2] | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i4 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i4) { + $$pre$i$i$i = 0; + $132 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i4 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i4 + 16 >> 2] | 0)) $$0$i$i$i$i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i4 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i4) | 0; else $$0$i$i$i$i2 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i2 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $132 = 1; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $$pre$i$i$i = $$pre$i$i$i4; + $132 = 0; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i8 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i8 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($132) { + $133 = $30; + break; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($132) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw($$0$i$i, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $133; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre22 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $104 = $$pre22; else if (($$pre22 - $__g | 0) < 160) { + $100 = HEAP32[$__dc >> 2] | 0; + $101 = $$pre22 + 4 | 0; + HEAP32[$__g_end >> 2] = $101; + HEAP32[$$pre22 >> 2] = $100; + $104 = $101; + } else $104 = $$pre22; + $103 = +__ZNSt3__115__num_get_floatIeEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF64[$__v >> 3] = $103; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $104, $__err); + if (!$$pre$i$i$i$lcssa) $134 = 1; else { + $107 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($107 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$107 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $134 = 1; + } else $134 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $119 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($119 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$119 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($134) break; else { + label = 46; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $226 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $228 = HEAP32[$wk$443 >> 2] | 0; - if (($228 | 0) == ($i$341 | 0)) { - $234 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $234; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + if ((label | 0) == 44) if ($134) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $131 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $131 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i2 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i8 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i4 = 0, $$pre$i3$i$i = 0, $$pre22 = 0, $100 = 0, $101 = 0, $103 = 0.0, $104 = 0, $107 = 0, $11 = 0, $119 = 0, $13 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $78 = 0, $85 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 352 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 40 | 0; + $__thousands_sep = sp + 36 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 48 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 337 | 0; + $__exp = sp + 336 | 0; + __ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP32[$__decimal_point >> 2] | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i4 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i4) { + $$pre$i$i$i = 0; + $132 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i4 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i4 + 16 >> 2] | 0)) $$0$i$i$i$i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i4 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i4) | 0; else $$0$i$i$i$i2 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i2 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $132 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i4; + $132 = 0; } } - $238 = $labelInfo + 8 | 0; - $239 = $j$1$lcssa + -1 | 0; - HEAP32[$238 >> 2] = $239; - if (!$239) $$0 = 0; else { - _memset($226 | 0, 0, $239 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $246 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $261 = $i$537 * 7 | 0; - $264 = $labelInfo + 12 + ($260 << 2) | 0; - HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0); - $271 = $260 << 1; - $272 = $labelInfo + 655376 + ($271 << 3) | 0; - HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0); - $280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0); - $283 = $260 << 2; - $284 = $labelInfo + 131084 + ($283 << 2) | 0; - $288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0; - if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288; - $291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i8 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i8 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($132) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$238 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $313 = $labelInfo + 12 + ($i$636 << 2) | 0; - $316 = $i$636 << 1; - $317 = $labelInfo + 655376 + ($316 << 3) | 0; - HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0); - $323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0; - HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($132) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw($$0$i$i, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $133; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i4 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre22 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $104 = $$pre22; else if (($$pre22 - $__g | 0) < 160) { + $100 = HEAP32[$__dc >> 2] | 0; + $101 = $$pre22 + 4 | 0; + HEAP32[$__g_end >> 2] = $101; + HEAP32[$$pre22 >> 2] = $100; + $104 = $101; + } else $104 = $$pre22; + $103 = +__ZNSt3__115__num_get_floatIdEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF64[$__v >> 3] = $103; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $104, $__err); + if (!$$pre$i$i$i$lcssa) $134 = 1; else { + $107 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($107 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$107 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $134 = 1; + } else $134 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $119 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($119 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$119 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($134) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($134) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $131 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $131 | 0; } -function _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _arPattLoadFromBuffer($pattHandle, $buffer) { + $pattHandle = $pattHandle | 0; + $buffer = $buffer | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa36 = 0, $$pre = 0, $$pre17 = 0, $$pre18 = 0, $$pre19 = 0, $10 = 0, $101 = 0.0, $105 = 0, $13 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $29 = 0, $30 = 0, $31 = 0, $36 = 0, $4 = 0, $43 = 0, $46 = 0, $47 = 0, $53 = 0, $56 = 0, $6 = 0, $63 = 0, $66 = 0, $72 = 0, $73 = 0, $75 = 0, $77 = 0, $83 = 0.0, $91 = 0, $92 = 0, $94 = 0, $96 = 0, $buffPtr$064 = 0, $buffPtr$151 = 0, $buffPtr$2$lcssa = 0, $buffPtr$2$lcssa$lcssa = 0, $buffPtr$245 = 0, $buffPtr$3$lcssa = 0, $buffPtr$339 = 0, $h$063 = 0, $i$0$lcssa = 0, $i$065 = 0, $i$152 = 0, $i$258 = 0, $i1$037 = 0, $i2$042 = 0, $i3$048 = 0, $l$050 = 0, $l$1$lcssa = 0, $l$1$lcssa$lcssa = 0, $l$144 = 0, $l$2$lcssa = 0, $l$238 = 0, $m$0$lcssa = 0, $m$053 = 0, $m$1$lcssa = 0, $m$159 = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + do if (!$pattHandle) { + _arLog(3, 18837, sp); + $$0 = -1; + } else { + if (!$buffer) { + _arLog(3, 18862, $vararg_buffer1); + $$0 = -1; + break; } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $2 = $pattHandle + 8 | 0; + $4 = HEAP32[$pattHandle + 4 >> 2] | 0; + L7 : do if (($4 | 0) > 0) { + $6 = HEAP32[$2 >> 2] | 0; + $i$065 = 0; + while (1) { + if (!(HEAP32[$6 + ($i$065 << 2) >> 2] | 0)) { + $i$0$lcssa = $i$065; + break L7; + } + $10 = $i$065 + 1 | 0; + if (($10 | 0) < ($4 | 0)) $i$065 = $10; else { + $i$0$lcssa = $10; + break; + } } - } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + ($17 << 1) | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($26) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + } else $i$0$lcssa = 0; while (0); + if (($i$0$lcssa | 0) == ($4 | 0)) $$0 = -1; else { + $13 = ___strdup($buffer) | 0; + if (!$13) { + _arLog(3, 18907, $vararg_buffer3); + $$0 = -1; + break; + } + $16 = $pattHandle + 28 | 0; + $17 = $i$0$lcssa << 2; + $18 = $pattHandle + 12 | 0; + $19 = $pattHandle + 20 | 0; + $20 = $pattHandle + 16 | 0; + $21 = $pattHandle + 24 | 0; + $buffPtr$064 = _strtok($13, 18930) | 0; + $h$063 = 0; + L17 : while (1) { + $22 = $h$063 + $17 | 0; + $buffPtr$151 = $buffPtr$064; + $i3$048 = 0; + $l$050 = 0; while (1) { - do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($32 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $32; - $35 = ($32 << 16 >> 16) * 7 | 0; - $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; - $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264; - $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $57 = $55 << 16 >> 16 > 0; - if ($51 << 16 >> 16 <= 0) { - if ($57) { - HEAP16[$pnt2$367 >> 1] = $55; - $157 = $56 * 7 | 0; - $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; - $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264; - $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075; - $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; - if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $177 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($177 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $177; - $180 = ($177 << 16 >> 16) * 7 | 0; - $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; - $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264; - $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075; - $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; - if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; + $23 = ($i3$048 | 0) == 0; + $24 = ($i3$048 | 0) == 2; + $$pre18 = HEAP32[$16 >> 2] | 0; + if (($$pre18 | 0) > 0) { + $27 = $$pre18; + $buffPtr$245 = $buffPtr$151; + $i2$042 = 0; + $l$144 = $l$050; + while (1) { + if (($27 | 0) > 0) { + $buffPtr$339 = $buffPtr$245; + $i1$037 = 0; + $l$238 = $l$144; + while (1) { + if (!$buffPtr$339) { + label = 17; + break L17; + } + $29 = _atoi($buffPtr$339) | 0; + $30 = _strtok(0, 18930) | 0; + $31 = 255 - $29 | 0; + $36 = (((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0) * 3 | 0) + $i3$048 | 0; + HEAP32[(HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0) + ($36 << 2) >> 2] = $31; + $43 = (Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0; + $46 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0; + $47 = $46 + ($43 << 2) | 0; + if ($23) HEAP32[$47 >> 2] = $31; else { + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $31; + if ($24) { + $53 = $46 + ((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 << 2) | 0; + HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) / 3 | 0; + } + } + $56 = $31 + $l$238 | 0; + $i1$037 = $i1$037 + 1 | 0; + $$pre19 = HEAP32[$16 >> 2] | 0; + if (($i1$037 | 0) >= ($$pre19 | 0)) { + $$lcssa = $$pre19; + $buffPtr$3$lcssa = $30; + $l$2$lcssa = $56; + break; + } else { + $buffPtr$339 = $30; + $l$238 = $56; + } } - HEAP32[$194 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; } else { - $197 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $197; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16; - $202 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $197; - break; + $$lcssa = $27; + $buffPtr$3$lcssa = $buffPtr$245; + $l$2$lcssa = $l$144; } - } - if ($57) { - $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - if (($60 | 0) > ($63 | 0)) { - HEAP16[$pnt2$367 >> 1] = $63; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $80 = $63; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $80 = $63; + $i2$042 = $i2$042 + 1 | 0; + if (($i2$042 | 0) >= ($$lcssa | 0)) { + $buffPtr$2$lcssa = $buffPtr$3$lcssa; + $l$1$lcssa = $l$2$lcssa; + break; } else { - HEAP16[$pnt2$367 >> 1] = $60; - if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $80 = $60; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $80 = $60; + $27 = $$lcssa; + $buffPtr$245 = $buffPtr$3$lcssa; + $l$144 = $l$2$lcssa; } - $82 = ($80 << 16 >> 16) * 7 | 0; - $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; - $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264; - $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $98 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($98 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $51; - $138 = $52 * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075; - $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; - if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($103 | 0) > ($106 | 0)) { - HEAP16[$pnt2$367 >> 1] = $106; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $123 = $106; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $123 = $106; - } else { - HEAP16[$pnt2$367 >> 1] = $103; - if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $123 = $103; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $123 = $103; } - $125 = ($123 << 16 >> 16) * 7 | 0; - $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; - $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264; - $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $217 = $pnt$168 + 2 | 0; - $218 = $pnt2$367 + 2 | 0; - $219 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $219; - $pnt$1$lcssa = $217; - $pnt2$3$lcssa = $218; - $wk_max$1$lcssa = $wk_max$2; + } else { + $buffPtr$2$lcssa = $buffPtr$151; + $l$1$lcssa = $l$050; + } + $i3$048 = $i3$048 + 1 | 0; + if (($i3$048 | 0) >= 3) { + $buffPtr$2$lcssa$lcssa = $buffPtr$2$lcssa; + $l$1$lcssa$lcssa = $l$1$lcssa; break; } else { - $dpnt$166 = $219; - $pnt$168 = $217; - $pnt2$367 = $218; - $wk_max$159 = $wk_max$2; + $buffPtr$151 = $buffPtr$2$lcssa; + $l$050 = $l$1$lcssa; + } + } + $63 = HEAP32[$16 >> 2] | 0; + $66 = ($l$1$lcssa$lcssa | 0) / (Math_imul($63 * 3 | 0, $63) | 0) | 0; + if ((Math_imul($63 * 3 | 0, $63) | 0) > 0) { + $72 = HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0; + $i$152 = 0; + $m$053 = 0; + while (1) { + $73 = $72 + ($i$152 << 2) | 0; + $75 = (HEAP32[$73 >> 2] | 0) - $66 | 0; + HEAP32[$73 >> 2] = $75; + $77 = (Math_imul($75, $75) | 0) + $m$053 | 0; + $i$152 = $i$152 + 1 | 0; + $$pre = HEAP32[$16 >> 2] | 0; + if (($i$152 | 0) >= (Math_imul($$pre * 3 | 0, $$pre) | 0)) { + $$lcssa36 = $$pre; + $m$0$lcssa = $77; + break; + } else $m$053 = $77; } - } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $226 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $228 = HEAP32[$wk$443 >> 2] | 0; - if (($228 | 0) == ($i$341 | 0)) { - $234 = $j$142; - $j$2 = $j$142 + 1 | 0; } else { - $234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + $$lcssa36 = $63; + $m$0$lcssa = 0; } - HEAP32[$wk$443 >> 2] = $234; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + $83 = +Math_sqrt(+(+($m$0$lcssa | 0))); + HEAPF64[(HEAP32[$20 >> 2] | 0) + ($22 << 3) >> 3] = $83 == 0.0 ? 1.0e-07 : $83; + if (!(Math_imul($$lcssa36, $$lcssa36) | 0)) $m$1$lcssa = 0; else { + $91 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0; + $i$258 = 0; + $m$159 = 0; + while (1) { + $92 = $91 + ($i$258 << 2) | 0; + $94 = (HEAP32[$92 >> 2] | 0) - $66 | 0; + HEAP32[$92 >> 2] = $94; + $96 = (Math_imul($94, $94) | 0) + $m$159 | 0; + $i$258 = $i$258 + 1 | 0; + $$pre17 = HEAP32[$16 >> 2] | 0; + if (($i$258 | 0) >= (Math_imul($$pre17, $$pre17) | 0)) { + $m$1$lcssa = $96; + break; + } else $m$159 = $96; + } + } + $101 = +Math_sqrt(+(+($m$1$lcssa | 0))); + HEAPF64[(HEAP32[$21 >> 2] | 0) + ($22 << 3) >> 3] = $101 == 0.0 ? 1.0e-07 : $101; + $105 = $h$063 + 1 | 0; + if (($105 | 0) < 4) { + $buffPtr$064 = $buffPtr$2$lcssa$lcssa; + $h$063 = $105; } else { - $j$1$lcssa = $j$2; + label = 32; break; } } - } - $238 = $labelInfo + 8 | 0; - $239 = $j$1$lcssa + -1 | 0; - HEAP32[$238 >> 2] = $239; - if (!$239) $$0 = 0; else { - _memset($226 | 0, 0, $239 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $246 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $261 = $i$537 * 7 | 0; - $264 = $labelInfo + 12 + ($260 << 2) | 0; - HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0); - $271 = $260 << 1; - $272 = $labelInfo + 655376 + ($271 << 3) | 0; - HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0); - $280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0); - $283 = $260 << 2; - $284 = $labelInfo + 131084 + ($283 << 2) | 0; - $288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0; - if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288; - $291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + if ((label | 0) == 17) { + _arLog(3, 18935, $vararg_buffer5); + _free($13); + $$0 = -1; + break; + } else if ((label | 0) == 32) { + _free($13); + HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$0$lcssa << 2) >> 2] = 1; + HEAP32[$pattHandle >> 2] = (HEAP32[$pattHandle >> 2] | 0) + 1; + $$0 = $i$0$lcssa; + break; } - if ((HEAP32[$238 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $313 = $labelInfo + 12 + ($i$636 << 2) | 0; - $316 = $i$636 << 1; - $317 = $labelInfo + 655376 + ($316 << 3) | 0; - HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0); - $323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0; - HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision5Image5allocENS_9ImageTypeEjjij($this, $type, $width, $height, $step, $channels) { + $this = $this | 0; + $type = $type | 0; + $width = $width | 0; + $height = $height | 0; + $step = $step | 0; + $channels = $channels | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $106 = 0, $13 = 0, $14 = 0, $18 = 0, $25 = 0, $30 = 0, $31 = 0, $35 = 0, $42 = 0, $47 = 0, $48 = 0, $52 = 0, $59 = 0, $64 = 0, $65 = 0, $69 = 0, $73 = 0, $76 = 0, $77 = 0, $78 = 0, $8 = 0, $81 = 0, $82 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $96 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; - } + $$byval_copy = sp + 16 | 0; + $0 = sp + 8 | 0; + $1 = sp; + if (!$width) { + $8 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33515) | 0, 33548) | 0, 34302) | 0, 127) | 0, 34309) | 0, 33654) | 0; + $13 = __ZNKSt3__18ios_base6getlocEv($8 + (HEAP32[(HEAP32[$8 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy >> 2] = $13; + $14 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 28 >> 2] & 63]($14, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($8, $18) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + _abort(); + } + if (!$height) { + $25 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33675) | 0, 33548) | 0, 34302) | 0, 128) | 0, 34309) | 0, 33709) | 0; + $30 = __ZNKSt3__18ios_base6getlocEv($25 + (HEAP32[(HEAP32[$25 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy >> 2] = $30; + $31 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $35 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$31 >> 2] | 0) + 28 >> 2] & 63]($31, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($25, $35) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($25) | 0; + _abort(); + } + if ($step >>> 0 < $width >>> 0) { + $42 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33731) | 0, 33548) | 0, 34302) | 0, 129) | 0, 34309) | 0, 33768) | 0; + $47 = __ZNKSt3__18ios_base6getlocEv($42 + (HEAP32[(HEAP32[$42 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy >> 2] = $47; + $48 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $52 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$48 >> 2] | 0) + 28 >> 2] & 63]($48, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($42, $52) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($42) | 0; + _abort(); + } + if (!$channels) { + $59 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33813) | 0, 33548) | 0, 34302) | 0, 130) | 0, 34309) | 0, 33849) | 0; + $64 = __ZNKSt3__18ios_base6getlocEv($59 + (HEAP32[(HEAP32[$59 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy >> 2] = $64; + $65 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $69 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$65 >> 2] | 0) + 28 >> 2] & 63]($65, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($59, $69) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($59) | 0; + _abort(); + } + if (($step | 0) < 0) { + $73 = Math_imul(Math_imul($channels, $width) | 0, __ZN6vision5Image19calculate_unit_sizeENS_9ImageTypeE($type) | 0) | 0; + HEAP32[$this + 12 >> 2] = $73; + $77 = $73; + } else { + HEAP32[$this + 12 >> 2] = $step; + $77 = $step; + } + $76 = Math_imul($77, $height) | 0; + $78 = $this + 20 | 0; + if ((HEAP32[$78 >> 2] | 0) != ($76 | 0)) { + $81 = $this + 24 | 0; + $82 = __Znaj($76) | 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__110shared_ptrIhEC2IhEEPT_NS_9enable_ifIXsr14is_convertibleIS4_PhEE5valueENS1_5__natEE4typeE($0, $82, $$byval_copy); + $83 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$81 >> 2]; + HEAP32[$81 >> 2] = $83; + $85 = $0 + 4 | 0; + $86 = $this + 28 | 0; + $87 = HEAP32[$85 >> 2] | 0; + HEAP32[$85 >> 2] = HEAP32[$86 >> 2]; + HEAP32[$86 >> 2] = $87; + __ZNSt3__110shared_ptrIhED2Ev($0); + if (!(HEAP32[$81 >> 2] | 0)) { + $96 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33883) | 0, 33548) | 0, 34302) | 0, 149) | 0, 34309) | 0, 33918) | 0; + $101 = __ZNKSt3__18ios_base6getlocEv($96 + (HEAP32[(HEAP32[$96 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy >> 2] = $101; + $102 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $106 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$102 >> 2] | 0) + 28 >> 2] & 63]($102, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($96, $106) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($96) | 0; + _abort(); } } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; + HEAP32[$this >> 2] = $type; + HEAP32[$this + 4 >> 2] = $width; + HEAP32[$this + 8 >> 2] = $height; + HEAP32[$this + 16 >> 2] = $channels; + HEAP32[$78 >> 2] = $76; + STACKTOP = sp; + return; +} + +function _qsort($base, $nel, $width, $cmp) { + $base = $base | 0; + $nel = $nel | 0; + $width = $width | 0; + $cmp = $cmp | 0; + var $$0$i = 0, $$0$i30 = 0, $$02$i$i = 0, $$02$i3$i = 0, $$lcssa = 0, $$lcssa57 = 0, $$phi$trans$insert$i = 0, $$pre1$i = 0, $$pre1$i6 = 0, $$pre1$i9 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0, $111 = 0, $14 = 0, $15 = 0, $17 = 0, $19 = 0, $23 = 0, $26 = 0, $36 = 0, $39 = 0, $41 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $51 = 0, $53 = 0, $58 = 0, $59 = 0, $63 = 0, $68 = 0, $72 = 0, $79 = 0, $8 = 0, $8$phi = 0, $81 = 0, $82 = 0, $84 = 0, $87 = 0, $9 = 0, $91 = 0, $93 = 0, $94 = 0, $95 = 0, $head$0$lcssa = 0, $head$036 = 0, $head$1$be = 0, $head$153 = 0, $i$0 = 0, $lp = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, $p = 0, $pshift$0$lcssa = 0, $pshift$037 = 0, $pshift$1 = 0, $pshift$2$be = 0, $pshift$254 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 208 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $lp = sp + 8 | 0; + $p = sp; + $0 = Math_imul($width, $nel) | 0; + $1 = $p; + HEAP32[$1 >> 2] = 1; + HEAP32[$1 + 4 >> 2] = 0; + if ($0) { + $$sum = $0 - $width | 0; + HEAP32[$lp + 4 >> 2] = $width; + HEAP32[$lp >> 2] = $width; + $10 = $width; + $8 = $width; + $i$0 = 2; while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $9 = $8 + $width + $10 | 0; + HEAP32[$lp + ($i$0 << 2) >> 2] = $9; + if ($9 >>> 0 < $0 >>> 0) { + $8$phi = $10; + $10 = $9; + $i$0 = $i$0 + 1 | 0; + $8 = $8$phi; + } else break; + } + $14 = 0 - $width | 0; + $15 = $base + $$sum | 0; + $$phi$trans$insert$i = $p + 4 | 0; + if (($$sum | 0) > 0) { + $17 = $15; + $19 = 1; + $head$036 = $base; + $pshift$037 = 1; + while (1) { + do if (($19 & 3 | 0) == 3) { + _sift($head$036, $width, $cmp, $pshift$037, $lp); + $$pre1$i = HEAP32[$$phi$trans$insert$i >> 2] | 0; + $23 = $$pre1$i << 30 | (HEAP32[$p >> 2] | 0) >>> 2; + HEAP32[$p >> 2] = $23; + HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i >>> 2; + $48 = $23; + $pshift$1 = $pshift$037 + 2 | 0; + } else { + $26 = $pshift$037 + -1 | 0; + if ((HEAP32[$lp + ($26 << 2) >> 2] | 0) >>> 0 < ($17 - $head$036 | 0) >>> 0) _sift($head$036, $width, $cmp, $pshift$037, $lp); else _trinkle($head$036, $width, $cmp, $p, $pshift$037, 0, $lp); + if (($pshift$037 | 0) == 1) { + $$pre1$i6 = HEAP32[$p >> 2] | 0; + HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i6 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1; + $36 = $$pre1$i6 << 1; + HEAP32[$p >> 2] = $36; + $48 = $36; + $pshift$1 = 0; + break; + } + if ($26 >>> 0 > 31) { + $39 = HEAP32[$p >> 2] | 0; + HEAP32[$$phi$trans$insert$i >> 2] = $39; + HEAP32[$p >> 2] = 0; + $$0$i = $pshift$037 + -33 | 0; + $41 = $39; + $44 = 0; + } else { + $$0$i = $26; + $41 = HEAP32[$$phi$trans$insert$i >> 2] | 0; + $44 = HEAP32[$p >> 2] | 0; + } + HEAP32[$$phi$trans$insert$i >> 2] = $44 >>> (32 - $$0$i | 0) | $41 << $$0$i; + $46 = $44 << $$0$i; + HEAP32[$p >> 2] = $46; + $48 = $46; + $pshift$1 = 1; + } while (0); + $19 = $48 | 1; + HEAP32[$p >> 2] = $19; + $49 = $head$036 + $width | 0; + if ($49 >>> 0 >= $15 >>> 0) { + $head$0$lcssa = $49; + $pshift$0$lcssa = $pshift$1; + break; + } else { + $head$036 = $49; + $pshift$037 = $pshift$1; + } } + } else { + $head$0$lcssa = $base; + $pshift$0$lcssa = 1; } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + ($17 << 1) | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($26) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$367 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $176 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; + _trinkle($head$0$lcssa, $width, $cmp, $p, $pshift$0$lcssa, 0, $lp); + $51 = $p + 4 | 0; + $53 = HEAP32[$p >> 2] | 0; + if (!(($pshift$0$lcssa | 0) == 1 & ($53 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0)) { + $59 = $53; + $head$153 = $head$0$lcssa; + $pshift$254 = $pshift$0$lcssa; + while (1) { + if (($pshift$254 | 0) < 2) { + $58 = $59 + -1 | 0; + do if (!$58) { + $81 = 32; + label = 30; + } else { + if (!($58 & 1)) { + $$02$i$i = $58; + $nTrailingZeros$03$i$i = 0; + while (1) { + $63 = $nTrailingZeros$03$i$i + 1 | 0; + $$02$i$i = $$02$i$i >>> 1; + if ($$02$i$i & 1) { + $$lcssa = $63; break; - } - HEAP32[$193 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $196 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $196; + } else $nTrailingZeros$03$i$i = $63; + } + if (!$$lcssa) label = 24; else $79 = $$lcssa; + } else label = 24; + if ((label | 0) == 24) { + label = 0; + $68 = HEAP32[$$phi$trans$insert$i >> 2] | 0; + if (!$68) { + $81 = 64; + label = 30; break; } - } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$367 >> 1] = $62; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $79 = $62; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $79 = $62; + if (!($68 & 1)) { + $$02$i3$i = $68; + $nTrailingZeros$03$i2$i = 0; } else { - HEAP16[$pnt2$367 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $79 = $59; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $79 = $59; + $$0$i30 = 0; + $84 = $59; + $87 = $68; + $91 = 0; + break; } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $97 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$367 >> 1] = $105; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $122 = $105; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $122 = $105; + while (1) { + $72 = $nTrailingZeros$03$i2$i + 1 | 0; + $$02$i3$i = $$02$i3$i >>> 1; + if ($$02$i3$i & 1) { + $$lcssa57 = $72; + $nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i; + break; + } else $nTrailingZeros$03$i2$i = $72; + } + if (!$$lcssa57) { + $$0$i30 = 0; + $84 = $59; + $87 = $68; + $91 = 0; + break; + } else $79 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0; + } + if ($79 >>> 0 > 31) { + $81 = $79; + label = 30; } else { - HEAP16[$pnt2$367 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $122 = $102; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $122 = $102; + $$0$i30 = $79; + $84 = $59; + $87 = HEAP32[$$phi$trans$insert$i >> 2] | 0; + $91 = $79; } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; } while (0); - $i$264 = $i$264 + 1 | 0; - $216 = $pnt$168 + 2 | 0; - $217 = $pnt2$367 + 2 | 0; - $218 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $218; - $pnt$1$lcssa = $216; - $pnt2$3$lcssa = $217; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $218; - $pnt$168 = $216; - $pnt2$367 = $217; - $wk_max$159 = $wk_max$2; + if ((label | 0) == 30) { + label = 0; + $82 = HEAP32[$$phi$trans$insert$i >> 2] | 0; + HEAP32[$p >> 2] = $82; + HEAP32[$$phi$trans$insert$i >> 2] = 0; + $$0$i30 = $81 + -32 | 0; + $84 = $82; + $87 = 0; + $91 = $81; } + HEAP32[$p >> 2] = $87 << 32 - $$0$i30 | $84 >>> $$0$i30; + HEAP32[$$phi$trans$insert$i >> 2] = $87 >>> $$0$i30; + $head$1$be = $head$153 + $14 | 0; + $pshift$2$be = $91 + $pshift$254 | 0; + } else { + $93 = $59 >>> 30; + $94 = $93 | HEAP32[$$phi$trans$insert$i >> 2] << 2; + $95 = $pshift$254 + -2 | 0; + HEAP32[$p >> 2] = ($59 << 1 & 2147483646 | $93 << 31) ^ 3; + HEAP32[$$phi$trans$insert$i >> 2] = $94 >>> 1; + _trinkle($head$153 + (0 - ((HEAP32[$lp + ($95 << 2) >> 2] | 0) + $width)) | 0, $width, $cmp, $p, $pshift$254 + -1 | 0, 1, $lp); + $$pre1$i9 = HEAP32[$p >> 2] | 0; + HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i9 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1; + HEAP32[$p >> 2] = $$pre1$i9 << 1 | 1; + $111 = $head$153 + $14 | 0; + _trinkle($111, $width, $cmp, $p, $95, 1, $lp); + $head$1$be = $111; + $pshift$2$be = $95; + } + $59 = HEAP32[$p >> 2] | 0; + if (($pshift$2$be | 0) == 1 & ($59 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0) break; else { + $head$153 = $head$1$be; + $pshift$254 = $pshift$2$be; } + } + } + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $103 = 0, $107 = 0, $110 = 0, $12 = 0, $122 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $135 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $135 = 1; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $$pre$i$i$i = $$pre$i$i$i3; + $135 = 0; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($135) { + $136 = $30; + break; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($135) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $136 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $136; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $107 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $107 = $99; + } else $107 = $$pre21; + $101 = __ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + $103 = $__v; + HEAP32[$103 >> 2] = $101; + HEAP32[$103 + 4 >> 2] = tempRet0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $107, $__err); + if (!$$pre$i$i$i$lcssa) $137 = 1; else { + $110 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($110 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$110 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $137 = 1; + } else $137 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $122 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($122 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$122 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($137) break; else { + label = 46; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $225 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $227 = HEAP32[$wk$443 >> 2] | 0; - if (($227 | 0) == ($i$341 | 0)) { - $233 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $233; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + if ((label | 0) == 44) if ($137) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $134 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $134 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $103 = 0, $107 = 0, $110 = 0, $12 = 0, $122 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $135 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $135 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i3; + $135 = 0; } } - $237 = $labelInfo + 8 | 0; - $238 = $j$1$lcssa + -1 | 0; - HEAP32[$237 >> 2] = $238; - if (!$238) $$0 = 0; else { - _memset($225 | 0, 0, $238 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $245 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $260 = $i$537 * 7 | 0; - $263 = $labelInfo + 12 + ($259 << 2) | 0; - HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); - $270 = $259 << 1; - $271 = $labelInfo + 655376 + ($270 << 3) | 0; - HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); - $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); - $282 = $259 << 2; - $283 = $labelInfo + 131084 + ($282 << 2) | 0; - $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; - if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; - $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; - $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; - if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; - $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($135) { + $136 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$237 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $312 = $labelInfo + 12 + ($i$636 << 2) | 0; - $315 = $i$636 << 1; - $316 = $labelInfo + 655376 + ($315 << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); - $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($135) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $136 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $136; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $107 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $107 = $99; + } else $107 = $$pre21; + $101 = __ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + $103 = $__v; + HEAP32[$103 >> 2] = $101; + HEAP32[$103 + 4 >> 2] = tempRet0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $107, $__err); + if (!$$pre$i$i$i$lcssa) $137 = 1; else { + $110 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($110 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$110 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $137 = 1; + } else $137 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $122 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($122 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$122 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($137) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($137) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $134 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $134 | 0; } -function _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $102 = 0, $105 = 0, $117 = 0, $12 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 320 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $130 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $130 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i3; + $130 = 0; } } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($130) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($130) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $131; + $__a$2 = $__a$1; + break; } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $26 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + ($17 << 1) | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($26) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } else { - HEAP8[$dpnt$166 >> 0] = -1; - $31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$367 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $176 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$193 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $196 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $196; - break; - } - } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$367 >> 1] = $62; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $79 = $62; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $79 = $62; - } else { - HEAP16[$pnt2$367 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $79 = $59; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $79 = $59; - } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $97 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$367 >> 1] = $105; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $122 = $105; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $122 = $105; - } else { - HEAP16[$pnt2$367 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $122 = $102; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $122 = $102; - } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $216 = $pnt$168 + 2 | 0; - $217 = $pnt2$367 + 2 | 0; - $218 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $218; - $pnt$1$lcssa = $216; - $pnt2$3$lcssa = $217; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $218; - $pnt$168 = $216; - $pnt2$367 = $217; - $wk_max$159 = $wk_max$2; - } - } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $102 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $102 = $99; + } else $102 = $$pre21; + $101 = __ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP16[$__v >> 1] = $101; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $102, $__err); + if (!$$pre$i$i$i$lcssa) $132 = 1; else { + $105 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($105 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$105 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $132 = 1; + } else $132 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $117 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($117 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$117 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($132) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($132) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $129 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $129 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $102 = 0, $105 = 0, $117 = 0, $12 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $130 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $130 = 1; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $$pre$i$i$i = $$pre$i$i$i3; + $130 = 0; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($130) { + $131 = $30; + break; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 4 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($130) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $131; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $102 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $102 = $99; + } else $102 = $$pre21; + $101 = __ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $101; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $102, $__err); + if (!$$pre$i$i$i$lcssa) $132 = 1; else { + $105 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($105 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$105 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $132 = 1; + } else $132 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $117 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($117 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$117 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($132) break; else { + label = 46; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $225 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $227 = HEAP32[$wk$443 >> 2] | 0; - if (($227 | 0) == ($i$341 | 0)) { - $233 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $233; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + if ((label | 0) == 44) if ($132) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $129 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $129 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $102 = 0, $105 = 0, $117 = 0, $12 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 320 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $130 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $130 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i3; + $130 = 0; } } - $237 = $labelInfo + 8 | 0; - $238 = $j$1$lcssa + -1 | 0; - HEAP32[$237 >> 2] = $238; - if (!$238) $$0 = 0; else { - _memset($225 | 0, 0, $238 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $245 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $260 = $i$537 * 7 | 0; - $263 = $labelInfo + 12 + ($259 << 2) | 0; - HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); - $270 = $259 << 1; - $271 = $labelInfo + 655376 + ($270 << 3) | 0; - HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); - $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); - $282 = $259 << 2; - $283 = $labelInfo + 131084 + ($282 << 2) | 0; - $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; - if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; - $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; - $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; - if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; - $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($130) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$237 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $312 = $labelInfo + 12 + ($i$636 << 2) | 0; - $315 = $i$636 << 1; - $316 = $labelInfo + 655376 + ($315 << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); - $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($130) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $131; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $102 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $102 = $99; + } else $102 = $$pre21; + $101 = __ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $101; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $102, $__err); + if (!$$pre$i$i$i$lcssa) $132 = 1; else { + $105 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($105 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$105 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $132 = 1; + } else $132 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $117 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($117 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$117 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($132) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($132) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $129 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $129 | 0; } -function _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i3$i$i = 0, $$pre21 = 0, $0 = 0, $101 = 0, $102 = 0, $105 = 0, $117 = 0, $12 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $33 = 0, $44 = 0, $50 = 0, $59 = 0, $64 = 0, $66 = 0, $67 = 0, $68 = 0, $78 = 0, $8 = 0, $85 = 0, $98 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 320 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $__atoms = sp + 208 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP32[$__thousands_sep >> 2] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i3) { + $$pre$i$i$i = 0; + $130 = 1; + } else { + $20 = HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0; + if (($20 | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0; else $$0$i$i$i$i1 = HEAP32[$20 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $130 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i3; + $130 = 0; } } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 16; else { + $33 = HEAP32[$30 + 12 >> 2] | 0; + if (($33 | 0) == (HEAP32[$30 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0; else $$0$i$i1$i$i7 = HEAP32[$33 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($130) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($130) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $44 = HEAP8[$__buf >> 0] | 0; + $50 = ($44 & 1) == 0 ? ($44 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $50 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $50 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $59 = 10; else $59 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $59, 0); + $64 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $64 + $50; + $__a$1 = $64; + } else $__a$1 = $__a$0; + $66 = $$pre$i$i$i + 12 | 0; + $67 = HEAP32[$66 >> 2] | 0; + $68 = $$pre$i$i$i + 16 | 0; + if (($67 | 0) == (HEAP32[$68 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$67 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $131; + $__a$2 = $__a$1; + break; + } + $78 = HEAP32[$66 >> 2] | 0; + if (($78 | 0) == (HEAP32[$68 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$66 >> 2] = $78 + 4; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $25 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + $17 | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($25) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; - while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP8[$dpnt$166 >> 0] = -1; - $30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($30 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $30; - $33 = ($30 << 16 >> 16) * 7 | 0; - $35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0; - HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1; - $39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0; - HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264; - $43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $50 = $49 << 16 >> 16; - $53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $54 = $53 << 16 >> 16; - $55 = $53 << 16 >> 16 > 0; - if ($49 << 16 >> 16 <= 0) { - if ($55) { - HEAP16[$pnt2$367 >> 1] = $53; - $155 = $54 * 7 | 0; - $157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1; - $161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264; - $165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075; - $169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0; - if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $175 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($175 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $175; - $178 = ($175 << 16 >> 16) * 7 | 0; - $180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0; - HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1; - $184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0; - HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264; - $188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075; - $192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0; - if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$192 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $195 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $195; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16; - $200 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $195; - break; - } - } - if ($55) { - $58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; - $61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - if (($58 | 0) > ($61 | 0)) { - HEAP16[$pnt2$367 >> 1] = $61; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $78 = $61; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $78 = $61; - } else { - HEAP16[$pnt2$367 >> 1] = $58; - if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $78 = $58; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $78 = $58; - } - $80 = ($78 << 16 >> 16) * 7 | 0; - $82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0; - HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1; - $86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264; - $90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $96 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($96 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $49; - $136 = $50 * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075; - $150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0; - if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; - $104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($101 | 0) > ($104 | 0)) { - HEAP16[$pnt2$367 >> 1] = $104; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $121 = $104; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $121 = $104; - } else { - HEAP16[$pnt2$367 >> 1] = $101; - if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $121 = $101; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $121 = $101; - } - $123 = ($121 << 16 >> 16) * 7 | 0; - $125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0; - HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1; - $129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0; - HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264; - $133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } else { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $215 = $pnt$168 + 1 | 0; - $216 = $pnt2$367 + 2 | 0; - $217 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $217; - $pnt$1$lcssa = $215; - $pnt2$3$lcssa = $216; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $dpnt$166 = $217; - $pnt$168 = $215; - $pnt2$367 = $216; - $wk_max$159 = $wk_max$2; - } - } + $85 = HEAP8[$__grouping >> 0] | 0; + $$pre21 = HEAP32[$__g_end >> 2] | 0; + if (!((($85 & 1) == 0 ? ($85 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $102 = $$pre21; else if (($$pre21 - $__g | 0) < 160) { + $98 = HEAP32[$__dc >> 2] | 0; + $99 = $$pre21 + 4 | 0; + HEAP32[$__g_end >> 2] = $99; + HEAP32[$$pre21 >> 2] = $98; + $102 = $99; + } else $102 = $$pre21; + $101 = __ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $101; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $102, $__err); + if (!$$pre$i$i$i$lcssa) $132 = 1; else { + $105 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($105 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$105 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $132 = 1; + } else $132 = 0; + } + do if (!$$pre$i3$i$i) label = 44; else { + $117 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($117 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$117 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 44; + break; + } else if ($132) break; else { + label = 46; + break; + } + } while (0); + if ((label | 0) == 44) if ($132) label = 46; + if ((label | 0) == 46) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $129 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $129 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i2$i$i = 0, $$pre19 = 0, $101 = 0, $102 = 0, $104 = 0.0, $105 = 0, $11 = 0, $117 = 0, $118 = 0, $13 = 0, $132 = 0, $133 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $79 = 0, $86 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 203 | 0; + $__thousands_sep = sp + 202 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 201 | 0; + $__exp = sp + 200 | 0; + __ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP8[$__decimal_point >> 0] | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i3) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i3; else $$pre$i$i$i = $$pre$i$i$i3; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $133 = $30; + break; } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $133 = $30; + break; } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 2 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_($$0$i$i & 255, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $133; + $__a$2 = $__a$1; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre19 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $105 = $$pre19; else if (($$pre19 - $__g | 0) < 160) { + $101 = HEAP32[$__dc >> 2] | 0; + $102 = $$pre19 + 4 | 0; + HEAP32[$__g_end >> 2] = $102; + HEAP32[$$pre19 >> 2] = $101; + $105 = $102; + } else $105 = $$pre19; + $104 = +__ZNSt3__115__num_get_floatIfEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF32[$__v >> 2] = $104; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $105, $__err); + if (!$$pre$i$i$i$lcssa) $118 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $118 = 0; + } else $118 = $$pre$i$i$i$lcssa; else $118 = $$pre$i$i$i$lcssa; + $117 = ($118 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$117) label = 39; } while (0); - if ((label | 0) == 52) { - $224 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $226 = HEAP32[$wk$443 >> 2] | 0; - if (($226 | 0) == ($i$341 | 0)) { - $232 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $232; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + if ((label | 0) == 38) if ($117) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $132 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $132 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i2$i$i = 0, $$pre19 = 0, $101 = 0, $102 = 0, $104 = 0.0, $105 = 0, $11 = 0, $117 = 0, $118 = 0, $13 = 0, $132 = 0, $133 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $79 = 0, $86 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 203 | 0; + $__thousands_sep = sp + 202 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 201 | 0; + $__exp = sp + 200 | 0; + __ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP8[$__decimal_point >> 0] | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i3) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i3; else $$pre$i$i$i = $$pre$i$i$i3; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_($$0$i$i & 255, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $133; + $__a$2 = $__a$1; + break; } - $236 = $labelInfo + 8 | 0; - $237 = $j$1$lcssa + -1 | 0; - HEAP32[$236 >> 2] = $237; - if (!$237) $$0 = 0; else { - _memset($224 | 0, 0, $237 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $244 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0)); + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre19 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $105 = $$pre19; else if (($$pre19 - $__g | 0) < 160) { + $101 = HEAP32[$__dc >> 2] | 0; + $102 = $$pre19 + 4 | 0; + HEAP32[$__g_end >> 2] = $102; + HEAP32[$$pre19 >> 2] = $101; + $105 = $102; + } else $105 = $$pre19; + $104 = +__ZNSt3__115__num_get_floatIeEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF64[$__v >> 3] = $104; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $105, $__err); + if (!$$pre$i$i$i$lcssa) $118 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $118 = 0; + } else $118 = $$pre$i$i$i$lcssa; else $118 = $$pre$i$i$i$lcssa; + $117 = ($118 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$117) label = 39; + } while (0); + if ((label | 0) == 38) if ($117) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $132 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $132 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i3 = 0, $$pre$i2$i$i = 0, $$pre19 = 0, $101 = 0, $102 = 0, $104 = 0.0, $105 = 0, $11 = 0, $117 = 0, $118 = 0, $13 = 0, $132 = 0, $133 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $7 = 0, $79 = 0, $86 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__decimal_point = 0, $__exp = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__in_units = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 208 | 0; + $__decimal_point = sp + 203 | 0; + $__thousands_sep = sp + 202 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $__in_units = sp + 201 | 0; + $__exp = sp + 200 | 0; + __ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_($__grouping, $__iob, $__atoms, $__decimal_point, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $7 = 10; else $7 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $7, 0); + $11 = $__buf + 8 | 0; + $13 = $__buf + 1 | 0; + $14 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $14; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + HEAP8[$__in_units >> 0] = 1; + HEAP8[$__exp >> 0] = 69; + $15 = $__buf + 4 | 0; + $16 = HEAP8[$__decimal_point >> 0] | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i3 = HEAP32[$__b >> 2] | 0; + $__a$0 = $14; + L4 : while (1) { + if (!$$pre$i$i$i3) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i3 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i3 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i3 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i3) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i3; else $$pre$i$i$i = $$pre$i$i$i3; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $259 = $i$537 * 7 | 0; - $262 = $labelInfo + 12 + ($258 << 2) | 0; - HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); - $269 = $258 << 1; - $270 = $labelInfo + 655376 + ($269 << 3) | 0; - HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); - $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; - HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); - $281 = $258 << 2; - $282 = $labelInfo + 131084 + ($281 << 2) | 0; - $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; - if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; - $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $133 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$236 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $311 = $labelInfo + 12 + ($i$636 << 2) | 0; - $314 = $i$636 << 1; - $315 = $labelInfo + 655376 + ($314 << 3) | 0; - HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); - $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $133 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$15 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $13 : HEAP32[$11 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_($$0$i$i & 255, $__in_units, $__exp, $__a$1, $__a_end, $16, $17, $__grouping, $__g, $__g_end, $__dc, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $133; + $__a$2 = $__a$1; + break; + } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i3 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre19 = HEAP32[$__g_end >> 2] | 0; + if ((HEAP8[$__in_units >> 0] | 0) == 0 ? 1 : ((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) == 0) $105 = $$pre19; else if (($$pre19 - $__g | 0) < 160) { + $101 = HEAP32[$__dc >> 2] | 0; + $102 = $$pre19 + 4 | 0; + HEAP32[$__g_end >> 2] = $102; + HEAP32[$$pre19 >> 2] = $101; + $105 = $102; + } else $105 = $$pre19; + $104 = +__ZNSt3__115__num_get_floatIdEET_PKcS3_Rj($__a$2, HEAP32[$__a_end >> 2] | 0, $__err); + HEAPF64[$__v >> 3] = $104; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $105, $__err); + if (!$$pre$i$i$i$lcssa) $118 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $118 = 0; + } else $118 = $$pre$i$i$i$lcssa; else $118 = $$pre$i$i$i$lcssa; + $117 = ($118 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$117) label = 39; + } while (0); + if ((label | 0) == 38) if ($117) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $132 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $132 | 0; } -function _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _arImageProcLuma($ipi, $dataPtr) { + $ipi = $ipi | 0; + $dataPtr = $dataPtr | 0; + var $$0 = 0, $1 = 0, $104 = 0, $105 = 0, $110 = 0, $111 = 0, $116 = 0, $117 = 0, $122 = 0, $123 = 0, $128 = 0, $129 = 0, $13 = 0, $14 = 0, $157 = 0, $164 = 0, $185 = 0, $192 = 0, $213 = 0, $44 = 0, $45 = 0, $75 = 0, $76 = 0, $p$040 = 0, $p$142 = 0, $p$245 = 0, $p$348 = 0, $p$451 = 0, $p$554 = 0, $p$657 = 0, $p$760 = 0, $q$041 = 0, $q$143 = 0, $q$246 = 0, $q$349 = 0, $q$452 = 0, $q$555 = 0, $q$658 = 0, $q$761 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$088 = 0; - $pnt1$090 = $0; - $pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$089 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$088 = $i$088 + 1 | 0; - if (($i$088 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$089 = $pnt2$089 + 2 | 0; + $1 = HEAP32[$ipi + 2068 >> 2] | 0; + L1 : do switch ($1 | 0) { + case 5: + case 12: + case 13: + case 14: + { + if (!(HEAP32[$ipi + 2072 >> 2] | 0)) { + HEAP32[$ipi >> 2] = $dataPtr; + $$0 = 0; + break L1; + } else { + _memcpy(HEAP32[$ipi >> 2] | 0, $dataPtr | 0, Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) | 0; + $$0 = 0; + break L1; } + break; } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$182 = 0; - $pnt1$184 = $0; - $pnt2$183 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$183 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$182 = $i$182 + 1 | 0; - if (($i$182 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$183 = $pnt2$183 + ($xsize << 1) | 0; + default: + { + if (($1 & -2 | 0) == 2) { + $13 = $ipi + 8 | 0; + $14 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$040 = 0; + $q$041 = 0; + } + while (1) { + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$040 >> 0] = (((HEAPU8[$dataPtr + ($q$041 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$041 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$041 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0; + $p$040 = $p$040 + 1 | 0; + if ($p$040 >>> 0 >= (Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; + break L1; + } else $q$041 = $q$041 + 4 | 0; + } } - } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $25 = ($9 | 0) > 1; - $dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0; - $j$075 = 1; - $pnt$079 = $image + $17 | 0; - $pnt2$278 = $0 + ($17 << 1) | 0; - $wk_max$074 = 0; - L13 : while (1) { - if ($25) { - $dpnt$166 = $dpnt$077; - $i$264 = 1; - $pnt$168 = $pnt$079; - $pnt2$367 = $pnt2$278; - $wk_max$159 = $wk_max$074; + if (($1 & -3 | 0) == 4) { + $44 = $ipi + 8 | 0; + $45 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$142 = 0; + $q$143 = 0; + } while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$367 >> 1] = 0; - HEAP8[$dpnt$166 >> 0] = 0; - $wk_max$2 = $wk_max$159; + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$142 >> 0] = (((HEAPU8[$dataPtr + ($q$143 | 2) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0; + $p$142 = $p$142 + 1 | 0; + if ($p$142 >>> 0 >= (Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; + break L1; + } else $q$143 = $q$143 + 4 | 0; + } + } + if ($1 >>> 0 < 2) { + $75 = $ipi + 8 | 0; + $76 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$245 = 0; + $q$246 = 0; + } + while (1) { + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$245 >> 0] = (((HEAPU8[$dataPtr + ($q$246 + 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$246 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$246 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0; + $p$245 = $p$245 + 1 | 0; + if ($p$245 >>> 0 >= (Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; + break L1; + } else $q$246 = $q$246 + 3 | 0; + } + } + switch ($1 | 0) { + case 8: + { + $128 = $ipi + 8 | 0; + $129 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; } else { - HEAP8[$dpnt$166 >> 0] = -1; - $30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0; - if ($30 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $30; - $33 = ($30 << 16 >> 16) * 7 | 0; - $35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0; - HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1; - $39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0; - HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264; - $43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + $p$348 = 0; + $q$349 = 0; + } + while (1) { + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$348 >> 0] = HEAP8[$dataPtr + $q$349 >> 0] | 0; + $p$348 = $p$348 + 1 | 0; + if ($p$348 >>> 0 >= (Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; break; - } - $49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0; - $50 = $49 << 16 >> 16; - $53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0; - $54 = $53 << 16 >> 16; - $55 = $53 << 16 >> 16 > 0; - if ($49 << 16 >> 16 <= 0) { - if ($55) { - HEAP16[$pnt2$367 >> 1] = $53; - $155 = $54 * 7 | 0; - $157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1; - $161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0; - HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264; - $165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075; - $169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0; - if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; - break; - } - $175 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($175 << 16 >> 16 > 0) { - HEAP16[$pnt2$367 >> 1] = $175; - $178 = ($175 << 16 >> 16) * 7 | 0; - $180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0; - HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1; - $184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0; - HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264; - $188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075; - $192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0; - if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) { - $wk_max$2 = $wk_max$159; - break; - } - HEAP32[$192 >> 2] = $i$264; - $wk_max$2 = $wk_max$159; - break; - } else { - $195 = $wk_max$159 + 1 | 0; - if (($wk_max$159 | 0) > 32767) break L13; - HEAP16[$pnt2$367 >> 1] = $195; - HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16; - $200 = $wk_max$159 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075; - HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075; - $wk_max$2 = $195; - break; - } - } - if ($55) { - $58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; - $61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0; - if (($58 | 0) > ($61 | 0)) { - HEAP16[$pnt2$367 >> 1] = $61; - if (($wk_max$159 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$159 | 0)) { - $78 = $61; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $78 = $61; - } else { - HEAP16[$pnt2$367 >> 1] = $58; - if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$159 | 0)) { - $78 = $58; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $78 = $58; - } - $80 = ($78 << 16 >> 16) * 7 | 0; - $82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0; - HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1; - $86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0; - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264; - $90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075; - HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + } else $q$349 = $q$349 + 2 | 0; + } + break; + } + case 7: + { + $122 = $ipi + 8 | 0; + $123 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$451 = 0; + $q$452 = 0; + } + while (1) { + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$451 >> 0] = HEAP8[$dataPtr + ($q$452 | 1) >> 0] | 0; + $p$451 = $p$451 + 1 | 0; + if ($p$451 >>> 0 >= (Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; break; - } - $96 = HEAP16[$pnt2$367 + -2 >> 1] | 0; - if ($96 << 16 >> 16 <= 0) { - HEAP16[$pnt2$367 >> 1] = $49; - $136 = $50 * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075; - $150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0; - if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264; - HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075; - $wk_max$2 = $wk_max$159; + } else $q$452 = $q$452 + 2 | 0; + } + break; + } + case 9: + { + $116 = $ipi + 8 | 0; + $117 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$554 = 0; + $q$555 = 0; + } + while (1) { + $157 = HEAPU8[$dataPtr + $q$555 >> 0] | 0; + $164 = HEAPU8[$dataPtr + ($q$555 | 1) >> 0] | 0; + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$554 >> 0] = ((($157 & 248) + 10 + ($157 << 5 & 224) + ($164 >>> 3 & 28) + ($164 << 3 & 248) | 0) >>> 0) / 3 | 0; + $p$554 = $p$554 + 1 | 0; + if ($p$554 >>> 0 >= (Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; break; - } - $101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0; - $104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($101 | 0) > ($104 | 0)) { - HEAP16[$pnt2$367 >> 1] = $104; - if (($wk_max$159 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$159 | 0)) { - $121 = $104; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $121 = $104; - } else { - HEAP16[$pnt2$367 >> 1] = $101; - if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$159 | 0)) { - $121 = $101; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $121 = $101; - } - $123 = ($121 << 16 >> 16) * 7 | 0; - $125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0; - HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1; - $129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0; - HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264; - $133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075; - $wk_max$2 = $wk_max$159; - } while (0); - $i$264 = $i$264 + 1 | 0; - $215 = $pnt$168 + 1 | 0; - $216 = $pnt2$367 + 2 | 0; - $217 = $dpnt$166 + 1 | 0; - if (($i$264 | 0) >= ($9 | 0)) { - $dpnt$1$lcssa = $217; - $pnt$1$lcssa = $215; - $pnt2$3$lcssa = $216; - $wk_max$1$lcssa = $wk_max$2; - break; + } else $q$555 = $q$555 + 2 | 0; + } + break; + } + case 10: + { + $110 = $ipi + 8 | 0; + $111 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; + } else { + $p$657 = 0; + $q$658 = 0; + } + while (1) { + $185 = HEAPU8[$dataPtr + $q$658 >> 0] | 0; + $192 = HEAPU8[$dataPtr + ($q$658 | 1) >> 0] | 0; + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$657 >> 0] = ((($185 & 248) + 12 + ($185 << 5 & 224) + ($192 >>> 3 & 24) + ($192 << 2 & 248) | 0) >>> 0) / 3 | 0; + $p$657 = $p$657 + 1 | 0; + if ($p$657 >>> 0 >= (Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; + break; + } else $q$658 = $q$658 + 2 | 0; + } + break; + } + case 11: + { + $104 = $ipi + 8 | 0; + $105 = $ipi + 12 | 0; + if (!(Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0)) { + $$0 = 0; + break L1; } else { - $dpnt$166 = $217; - $pnt$168 = $215; - $pnt2$367 = $216; - $wk_max$159 = $wk_max$2; + $p$760 = 0; + $q$761 = 0; + } + while (1) { + $213 = HEAPU8[$dataPtr + $q$761 >> 0] | 0; + HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$760 >> 0] = ((($213 & 240) + 24 + ($213 << 4 & 240) + ((HEAPU8[$dataPtr + ($q$761 | 1) >> 0] | 0) & 240) | 0) >>> 0) / 3 | 0; + $p$760 = $p$760 + 1 | 0; + if ($p$760 >>> 0 >= (Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0) >>> 0) { + $$0 = 0; + break; + } else $q$761 = $q$761 + 2 | 0; } - } - } else { - $dpnt$1$lcssa = $dpnt$077; - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$278; - $wk_max$1$lcssa = $wk_max$074; - } - $j$075 = $j$075 + 1 | 0; - if (($j$075 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $dpnt$077 = $dpnt$1$lcssa + 2 | 0; - $pnt$079 = $pnt$1$lcssa + 2 | 0; - $pnt2$278 = $pnt2$3$lcssa + 4 | 0; - $wk_max$074 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $224 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $226 = HEAP32[$wk$443 >> 2] | 0; - if (($226 | 0) == ($i$341 | 0)) { - $232 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $232; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; - } else { - $j$1$lcssa = $j$2; break; } + default: + { + _arLog(3, 18549, $vararg_buffer); + $$0 = -1; + break L1; + } } } - $236 = $labelInfo + 8 | 0; - $237 = $j$1$lcssa + -1 | 0; - HEAP32[$236 >> 2] = $237; - if (!$237) $$0 = 0; else { - _memset($224 | 0, 0, $237 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $244 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $259 = $i$537 * 7 | 0; - $262 = $labelInfo + 12 + ($258 << 2) | 0; - HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); - $269 = $258 << 1; - $270 = $labelInfo + 655376 + ($269 << 3) | 0; - HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); - $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; - HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); - $281 = $258 << 2; - $282 = $labelInfo + 131084 + ($281 << 2) | 0; - $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; - if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; - $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$236 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $311 = $labelInfo + 12 + ($i$636 << 2) | 0; - $314 = $i$636 << 1; - $315 = $labelInfo + 655376 + ($314 << 3) | 0; - HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); - $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $image_thresh = $image_thresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i4 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i10 = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i6 = 0, $$pre$i3$i$i = 0, $0 = 0, $100 = 0, $105 = 0, $117 = 0, $129 = 0, $130 = 0, $131 = 0, $132 = 0, $15 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $26 = 0, $3 = 0, $36 = 0, $39 = 0, $4 = 0, $50 = 0, $56 = 0, $65 = 0, $70 = 0, $72 = 0, $73 = 0, $74 = 0, $84 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 320 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$089 = 0; - $pnt1$090 = $0; - $pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$088 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$088 = $pnt2$088 + 2 | 0; + $__atoms = sp + 208 | 0; + $__grouping = sp + 32 | 0; + $0 = sp + 28 | 0; + $__buf = sp + 16 | 0; + $__a_end = sp + 12 | 0; + $__g = sp + 48 | 0; + $__g_end = sp + 8 | 0; + $__dc = sp + 4 | 0; + HEAP32[$__grouping >> 2] = 0; + HEAP32[$__grouping + 4 >> 2] = 0; + HEAP32[$__grouping + 8 >> 2] = 0; + $3 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $3; + $4 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 48 >> 2] & 15]($4, 55292, 55318, $__atoms) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($3) | 0; + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $15 = 10; else $15 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $15, 0); + $19 = $__buf + 8 | 0; + $21 = $__buf + 1 | 0; + $22 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + HEAP32[$__a_end >> 2] = $22; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $23 = $__buf + 4 | 0; + $$pre$i$i$i6 = HEAP32[$__b >> 2] | 0; + $__a$0 = $22; + L4 : while (1) { + if (!$$pre$i$i$i6) { + $$pre$i$i$i = 0; + $130 = 1; + } else { + $26 = HEAP32[$$pre$i$i$i6 + 12 >> 2] | 0; + if (($26 | 0) == (HEAP32[$$pre$i$i$i6 + 16 >> 2] | 0)) $$0$i$i$i$i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i6 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i6) | 0; else $$0$i$i$i$i4 = HEAP32[$26 >> 2] | 0; + if (($$0$i$i$i$i4 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + $130 = 1; + } else { + $$pre$i$i$i = $$pre$i$i$i6; + $130 = 0; } } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$183 = 0; - $pnt1$184 = $0; - $pnt2$182 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$182 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$182 = $pnt2$182 + ($xsize << 1) | 0; + $36 = HEAP32[$__e >> 2] | 0; + do if (!$36) label = 16; else { + $39 = HEAP32[$36 + 12 >> 2] | 0; + if (($39 | 0) == (HEAP32[$36 + 16 >> 2] | 0)) $$0$i$i1$i$i10 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$36 >> 2] | 0) + 36 >> 2] & 127]($36) | 0; else $$0$i$i1$i$i10 = HEAP32[$39 >> 2] | 0; + if (($$0$i$i1$i$i10 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 16; + break; + } else if ($130) { + $131 = $36; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $36; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 16) { + label = 0; + if ($130) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $50 = HEAP8[$__buf >> 0] | 0; + $56 = ($50 & 1) == 0 ? ($50 & 255) >>> 1 : HEAP32[$23 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $56 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $56 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $65 = 10; else $65 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $65, 0); + $70 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + HEAP32[$__a_end >> 2] = $70 + $56; + $__a$1 = $70; + } else $__a$1 = $__a$0; + $72 = $$pre$i$i$i + 12 | 0; + $73 = HEAP32[$72 >> 2] | 0; + $74 = $$pre$i$i$i + 16 | 0; + if (($73 | 0) == (HEAP32[$74 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAP32[$73 >> 2] | 0; + if (__ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($$0$i$i, 16, $__a$1, $__a_end, $__dc, 0, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i3$i$i = $131; + $__a$2 = $__a$1; + break; + } + $84 = HEAP32[$72 >> 2] | 0; + if (($84 | 0) == (HEAP32[$74 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i6 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$72 >> 2] = $84 + 4; + $$pre$i$i$i6 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$076 = 1; - $pnt$079 = $image + $17 | 0; - $pnt2$274 = $0 + ($17 << 1) | 0; - $pnt_thresh$078 = $image_thresh + $17 | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($23) { - $i$265 = 1; - $pnt$168 = $pnt$079; - $pnt2$359 = $pnt2$274; - $pnt_thresh$167 = $pnt_thresh$078; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) { - $28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0; - if ($28 << 16 >> 16 > 0) { - HEAP16[$pnt2$359 >> 1] = $28; - $31 = ($28 << 16 >> 16) * 7 | 0; - $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; - HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; - $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265; - $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0; - $48 = $47 << 16 >> 16; - $51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $53 = $51 << 16 >> 16 > 0; - if ($47 << 16 >> 16 <= 0) { - if ($53) { - HEAP16[$pnt2$359 >> 1] = $51; - $153 = $52 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076; - $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $173 = HEAP16[$pnt2$359 + -2 >> 1] | 0; - if ($173 << 16 >> 16 > 0) { - HEAP16[$pnt2$359 >> 1] = $173; - $176 = ($173 << 16 >> 16) * 7 | 0; - $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; - $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265; - $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076; - $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; - if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$190 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $193 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$359 >> 1] = $193; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16; - $198 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $193; - break; - } - } - if ($53) { - $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - if (($56 | 0) > ($59 | 0)) { - HEAP16[$pnt2$359 >> 1] = $59; - if (($wk_max$160 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$160 | 0)) { - $76 = $59; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $76 = $59; - } else { - HEAP16[$pnt2$359 >> 1] = $56; - if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$160 | 0)) { - $76 = $56; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $76 = $56; - } - $78 = ($76 << 16 >> 16) * 7 | 0; - $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; - HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; - $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265; - $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $94 = HEAP16[$pnt2$359 + -2 >> 1] | 0; - if ($94 << 16 >> 16 <= 0) { - HEAP16[$pnt2$359 >> 1] = $47; - $134 = $48 * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076; - $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; - if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($99 | 0) > ($102 | 0)) { - HEAP16[$pnt2$359 >> 1] = $102; - if (($wk_max$160 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$160 | 0)) { - $119 = $102; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $119 = $102; - } else { - HEAP16[$pnt2$359 >> 1] = $99; - if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$160 | 0)) { - $119 = $99; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $119 = $99; - } - $121 = ($119 << 16 >> 16) * 7 | 0; - $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; - HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; - $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265; - $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } else { - HEAP16[$pnt2$359 >> 1] = 0; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $213 = $pnt$168 + 1 | 0; - $214 = $pnt_thresh$167 + 1 | 0; - $215 = $pnt2$359 + 2 | 0; - if (($i$265 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $213; - $pnt2$3$lcssa = $215; - $pnt_thresh$1$lcssa = $214; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$168 = $213; - $pnt2$359 = $215; - $pnt_thresh$167 = $214; - $wk_max$160 = $wk_max$2; - } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, (HEAP32[$__a_end >> 2] | 0) - $__a$2 | 0, 0); + $99 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + $100 = __ZNSt3__16__clocEv() | 0; + HEAP32[$vararg_buffer >> 2] = $__v; + if ((__ZNSt3__110__sscanf_lEPKcP15__locale_structS1_z($99, $100, 56676, $vararg_buffer) | 0) != 1) HEAP32[$__err >> 2] = 4; + if (!$$pre$i$i$i$lcssa) $132 = 1; else { + $105 = HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0; + if (($105 | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0; else $$0$i$i$i$i = HEAP32[$105 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $132 = 1; + } else $132 = 0; + } + do if (!$$pre$i3$i$i) label = 43; else { + $117 = HEAP32[$$pre$i3$i$i + 12 >> 2] | 0; + if (($117 | 0) == (HEAP32[$$pre$i3$i$i + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i) | 0; else $$0$i$i1$i$i = HEAP32[$117 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 43; + break; + } else if ($132) break; else { + label = 45; + break; + } + } while (0); + if ((label | 0) == 43) if ($132) label = 45; + if ((label | 0) == 45) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $129 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $129 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) { + $first = $first | 0; + $last = $last | 0; + $op = $op | 0; + $db = $db | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $11 = 0, $110 = 0, $112 = 0, $117 = 0, $118 = 0, $119 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $25 = 0, $26 = 0, $3 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $46 = 0, $48 = 0, $5 = 0, $53 = 0, $56 = 0, $58 = 0, $6 = 0, $65 = 0, $68 = 0, $71 = 0, $73 = 0, $8 = 0, $83 = 0, $86 = 0, $89 = 0, $91 = 0, $op1 = 0, $op2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $op2 = sp + 84 | 0; + $op1 = sp + 72 | 0; + $0 = sp + 60 | 0; + $1 = sp + 48 | 0; + $2 = sp + 36 | 0; + $3 = sp + 24 | 0; + $4 = sp + 12 | 0; + $5 = sp; + $6 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + L1 : do if (($6 | 0) == ($first | 0)) $$0 = $first; else { + $8 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($6, $last, $db) | 0; + $10 = $db + 4 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if (($8 | 0) == ($6 | 0)) { + $117 = $11 + -24 | 0; + $119 = $11; + while (1) { + $118 = $119 + -24 | 0; + HEAP32[$10 >> 2] = $118; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($118); + $119 = HEAP32[$10 >> 2] | 0; + if (($119 | 0) == ($117 | 0)) { + $$0 = $first; + break L1; } - } else { - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$274; - $pnt_thresh$1$lcssa = $pnt_thresh$078; - $wk_max$1$lcssa = $wk_max$075; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + if ((($11 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $11 + -24 | 0); + $19 = HEAP32[$10 >> 2] | 0; + $20 = $19 + -24 | 0; + $22 = $19; + do { + $21 = $22 + -24 | 0; + HEAP32[$10 >> 2] = $21; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); + $22 = HEAP32[$10 >> 2] | 0; + } while (($22 | 0) != ($20 | 0)); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $19 + -48 | 0); + $25 = HEAP32[$10 >> 2] | 0; + $26 = $25 + -24 | 0; + if (!(HEAP8[$26 >> 0] & 1)) { + HEAP8[$26 + 1 >> 0] = 0; + HEAP8[$26 >> 0] = 0; } else { - $pnt$079 = $pnt$1$lcssa + 2 | 0; - $pnt2$274 = $pnt2$3$lcssa + 4 | 0; - $pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0; - $wk_max$075 = $wk_max$1$lcssa; + HEAP8[HEAP32[$25 + -16 >> 2] >> 0] = 0; + HEAP32[$25 + -20 >> 2] = 0; } + $34 = HEAP8[$op >> 0] | 0; + $36 = ($34 & 1) == 0; + $37 = $op + 4 | 0; + $41 = $36 ? ($34 & 255) >>> 1 : HEAP32[$37 >> 2] | 0; + $42 = $op + 8 | 0; + $44 = $op + 1 | 0; + $46 = $41 >>> 0 > 1; + $48 = _memcmp($36 ? $44 : HEAP32[$42 >> 2] | 0, 47947, $46 ? 1 : $41) | 0; + if (!((($48 | 0) == 0 ? (($41 | 0) == 0 ? -1 : $46 & 1) : $48) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 40); + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($5, 47883, $op1); + $53 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 49159) | 0; + HEAP32[$4 >> 2] = HEAP32[$53 >> 2]; + HEAP32[$4 + 4 >> 2] = HEAP32[$53 + 4 >> 2]; + HEAP32[$4 + 8 >> 2] = HEAP32[$53 + 8 >> 2]; + HEAP32[$53 >> 2] = 0; + HEAP32[$53 + 4 >> 2] = 0; + HEAP32[$53 + 8 >> 2] = 0; + $56 = HEAP8[$op >> 0] | 0; + $58 = ($56 & 1) == 0; + $65 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $58 ? $44 : HEAP32[$42 >> 2] | 0, $58 ? ($56 & 255) >>> 1 : HEAP32[$37 >> 2] | 0) | 0; + HEAP32[$3 >> 2] = HEAP32[$65 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$65 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$65 + 8 >> 2]; + HEAP32[$65 >> 2] = 0; + HEAP32[$65 + 4 >> 2] = 0; + HEAP32[$65 + 8 >> 2] = 0; + $68 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 47785) | 0; + HEAP32[$2 >> 2] = HEAP32[$68 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$68 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$68 + 8 >> 2]; + HEAP32[$68 >> 2] = 0; + HEAP32[$68 + 4 >> 2] = 0; + HEAP32[$68 + 8 >> 2] = 0; + $71 = HEAP8[$op2 >> 0] | 0; + $73 = ($71 & 1) == 0; + $83 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $73 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $73 ? ($71 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0; + HEAP32[$1 >> 2] = HEAP32[$83 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$83 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$83 + 8 >> 2]; + HEAP32[$83 >> 2] = 0; + HEAP32[$83 + 4 >> 2] = 0; + HEAP32[$83 + 8 >> 2] = 0; + $86 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$86 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$86 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$86 + 8 >> 2]; + HEAP32[$86 >> 2] = 0; + HEAP32[$86 + 4 >> 2] = 0; + HEAP32[$86 + 8 >> 2] = 0; + $89 = HEAP8[$0 >> 0] | 0; + $91 = ($89 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $91 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); + $101 = HEAP8[$op >> 0] | 0; + $103 = ($101 & 1) == 0; + $107 = $103 ? ($101 & 255) >>> 1 : HEAP32[$37 >> 2] | 0; + $110 = $107 >>> 0 > 1; + $112 = _memcmp($103 ? $44 : HEAP32[$42 >> 2] | 0, 47947, $110 ? 1 : $107) | 0; + if (!((($112 | 0) == 0 ? (($107 | 0) == 0 ? -1 : $110 & 1) : $112) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 41); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2); + $$0 = $8; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $222 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $224 = HEAP32[$wk$443 >> 2] | 0; - if (($224 | 0) == ($i$341 | 0)) { - $230 = $j$142; - $j$2 = $j$142 + 1 | 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $__e, $__err, $__ct, $__n) { + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + $__n = $__n | 0; + var $$0 = 0, $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i17 = 0, $$0$i$i$i$i2 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i23 = 0, $$0$i$i1$i$i8 = 0, $$0$i$i14 = 0, $$0$in = 0, $$01 = 0, $$lcssa = 0, $$pre$i3$i$i10 = 0, $$pre$i3$i$i25 = 0, $$pre$i3$i$i25$lcssa = 0, $0 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $124 = 0, $13 = 0, $136 = 0, $148 = 0, $149 = 0, $150 = 0, $151 = 0, $16 = 0, $28 = 0, $3 = 0, $30 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $60 = 0, $63 = 0, $74 = 0, $76 = 0, $86 = 0, $87 = 0, $90 = 0, $92 = 0, $__r$0 = 0, $__r$0$in = 0, $__r$0$lcssa = 0, label = 0; + $0 = HEAP32[$__b >> 2] | 0; + do if (!$0) $148 = 1; else { + $3 = HEAP32[$0 + 12 >> 2] | 0; + if (($3 | 0) == (HEAP32[$0 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 127]($0) | 0; else $$0$i$i$i$i = HEAP32[$3 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $148 = 1; + break; + } else { + $148 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $13 = HEAP32[$__e >> 2] | 0; + do if (!$13) label = 14; else { + $16 = HEAP32[$13 + 12 >> 2] | 0; + if (($16 | 0) == (HEAP32[$13 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$13 >> 2] | 0) + 36 >> 2] & 127]($13) | 0; else $$0$i$i1$i$i = HEAP32[$16 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 14; + break; + } else if ($148) { + $149 = $13; + label = 17; + break; + } else { + label = 16; + break; + } + } while (0); + if ((label | 0) == 14) if ($148) label = 16; else { + $149 = 0; + label = 17; + } + L22 : do if ((label | 0) == 16) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 6; + $$01 = 0; + } else if ((label | 0) == 17) { + $28 = HEAP32[$__b >> 2] | 0; + $30 = HEAP32[$28 + 12 >> 2] | 0; + if (($30 | 0) == (HEAP32[$28 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$28 >> 2] | 0) + 36 >> 2] & 127]($28) | 0; else $$0$i$i = HEAP32[$30 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 2048, $$0$i$i) | 0)) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$01 = 0; + break; + } + $49 = (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 52 >> 2] & 63]($__ct, $$0$i$i, 0) | 0) << 24 >> 24; + $50 = HEAP32[$__b >> 2] | 0; + $51 = $50 + 12 | 0; + $52 = HEAP32[$51 >> 2] | 0; + if (($52 | 0) == (HEAP32[$50 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$50 >> 2] | 0) + 40 >> 2] & 127]($50) | 0; + $$0$in = $__n; + $$pre$i3$i$i10 = $149; + $74 = $149; + $__r$0$in = $49; + } else { + HEAP32[$51 >> 2] = $52 + 4; + $$0$in = $__n; + $$pre$i3$i$i10 = $149; + $74 = $149; + $__r$0$in = $49; + } + while (1) { + $__r$0 = $__r$0$in + -48 | 0; + $$0 = $$0$in + -1 | 0; + $60 = HEAP32[$__b >> 2] | 0; + do if (!$60) $86 = 1; else { + $63 = HEAP32[$60 + 12 >> 2] | 0; + if (($63 | 0) == (HEAP32[$60 + 16 >> 2] | 0)) $$0$i$i$i$i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$60 >> 2] | 0) + 36 >> 2] & 127]($60) | 0; else $$0$i$i$i$i2 = HEAP32[$63 >> 2] | 0; + if (($$0$i$i$i$i2 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $86 = 1; + break; } else { - $230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; + $86 = (HEAP32[$__b >> 2] | 0) == 0; + break; } - HEAP32[$wk$443 >> 2] = $230; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + } while (0); + do if (!$74) { + $$pre$i3$i$i25 = $$pre$i3$i$i10; + $150 = 0; + $87 = 1; + } else { + $76 = HEAP32[$74 + 12 >> 2] | 0; + if (($76 | 0) == (HEAP32[$74 + 16 >> 2] | 0)) $$0$i$i1$i$i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$74 >> 2] | 0) + 36 >> 2] & 127]($74) | 0; else $$0$i$i1$i$i8 = HEAP32[$76 >> 2] | 0; + if (($$0$i$i1$i$i8 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i3$i$i25 = 0; + $150 = 0; + $87 = 1; + break; } else { - $j$1$lcssa = $j$2; + $$pre$i3$i$i25 = $$pre$i3$i$i10; + $150 = $$pre$i3$i$i10; + $87 = ($$pre$i3$i$i10 | 0) == 0; break; } + } while (0); + $90 = HEAP32[$__b >> 2] | 0; + if (!(($$0$in | 0) > 1 & ($86 ^ $87))) { + $$lcssa = $90; + $$pre$i3$i$i25$lcssa = $$pre$i3$i$i25; + $__r$0$lcssa = $__r$0; + break; } - } - $234 = $labelInfo + 8 | 0; - $235 = $j$1$lcssa + -1 | 0; - HEAP32[$234 >> 2] = $235; - if (!$235) $$0 = 0; else { - _memset($222 | 0, 0, $235 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $242 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0)); + $92 = HEAP32[$90 + 12 >> 2] | 0; + if (($92 | 0) == (HEAP32[$90 + 16 >> 2] | 0)) $$0$i$i14 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$90 >> 2] | 0) + 36 >> 2] & 127]($90) | 0; else $$0$i$i14 = HEAP32[$92 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 2048, $$0$i$i14) | 0)) { + $$01 = $__r$0; + break L22; + } + $111 = ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 52 >> 2] & 63]($__ct, $$0$i$i14, 0) | 0) << 24 >> 24) + ($__r$0 * 10 | 0) | 0; + $112 = HEAP32[$__b >> 2] | 0; + $113 = $112 + 12 | 0; + $114 = HEAP32[$113 >> 2] | 0; + if (($114 | 0) == (HEAP32[$112 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$112 >> 2] | 0) + 40 >> 2] & 127]($112) | 0; + $$0$in = $$0; + $$pre$i3$i$i10 = $$pre$i3$i$i25; + $74 = $150; + $__r$0$in = $111; + continue; + } else { + HEAP32[$113 >> 2] = $114 + 4; + $$0$in = $$0; + $$pre$i3$i$i10 = $$pre$i3$i$i25; + $74 = $150; + $__r$0$in = $111; + continue; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $257 = $i$537 * 7 | 0; - $260 = $labelInfo + 12 + ($256 << 2) | 0; - HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0); - $267 = $256 << 1; - $268 = $labelInfo + 655376 + ($267 << 3) | 0; - HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0); - $276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0); - $279 = $256 << 2; - $280 = $labelInfo + 131084 + ($279 << 2) | 0; - $284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0; - if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284; - $287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + } + do if (!$$lcssa) $151 = 1; else { + $124 = HEAP32[$$lcssa + 12 >> 2] | 0; + if (($124 | 0) == (HEAP32[$$lcssa + 16 >> 2] | 0)) $$0$i$i$i$i17 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$lcssa >> 2] | 0) + 36 >> 2] & 127]($$lcssa) | 0; else $$0$i$i$i$i17 = HEAP32[$124 >> 2] | 0; + if (($$0$i$i$i$i17 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $151 = 1; + break; + } else { + $151 = (HEAP32[$__b >> 2] | 0) == 0; + break; } - if ((HEAP32[$234 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $309 = $labelInfo + 12 + ($i$636 << 2) | 0; - $312 = $i$636 << 1; - $313 = $labelInfo + 655376 + ($312 << 3) | 0; - HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0); - $319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0; - HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + do if (!$$pre$i3$i$i25$lcssa) label = 60; else { + $136 = HEAP32[$$pre$i3$i$i25$lcssa + 12 >> 2] | 0; + if (($136 | 0) == (HEAP32[$$pre$i3$i$i25$lcssa + 16 >> 2] | 0)) $$0$i$i1$i$i23 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i25$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i25$lcssa) | 0; else $$0$i$i1$i$i23 = HEAP32[$136 >> 2] | 0; + if (($$0$i$i1$i$i23 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 60; + break; + } else if ($151) { + $$01 = $__r$0$lcssa; + break L22; + } else break; + } while (0); + if ((label | 0) == 60) if (!$151) { + $$01 = $__r$0$lcssa; + break; } - } - STACKTOP = sp; - return $$0 | 0; + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $$01 = $__r$0$lcssa; + } while (0); + return $$01 | 0; } -function _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $image_thresh = $image_thresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$089 = 0; - $pnt1$090 = $0; - $pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$088 >> 1] = 0; - HEAP16[$pnt1$090 >> 1] = 0; - $i$089 = $i$089 + 1 | 0; - if (($i$089 | 0) >= ($xsize | 0)) break; else { - $pnt1$090 = $pnt1$090 + 2 | 0; - $pnt2$088 = $pnt2$088 + 2 | 0; - } - } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$183 = 0; - $pnt1$184 = $0; - $pnt2$182 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$182 >> 1] = 0; - HEAP16[$pnt1$184 >> 1] = 0; - $i$183 = $i$183 + 1 | 0; - if (($i$183 | 0) >= ($ysize | 0)) break; else { - $pnt1$184 = $pnt1$184 + ($xsize << 1) | 0; - $pnt2$182 = $pnt2$182 + ($xsize << 1) | 0; - } +function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { + $this = $this | 0; + $info = $info | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $14 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $49 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0, $does_dst_type_point_to_our_static_type$0$off023 = 0, $does_dst_type_point_to_our_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$0$off025 = 0, $is_dst_type_derived_from_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$2$off0 = 0, $p$024 = 0, $p2$0 = 0, $p2$1 = 0, $p2$2 = 0, label = 0; + L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { + $6 = $info + 28 | 0; + if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$076 = 1; - $pnt$079 = $image + $17 | 0; - $pnt2$274 = $0 + ($17 << 1) | 0; - $pnt_thresh$078 = $image_thresh + $17 | 0; - $wk_max$075 = 0; - L13 : while (1) { - if ($23) { - $i$265 = 1; - $pnt$168 = $pnt$079; - $pnt2$359 = $pnt2$274; - $pnt_thresh$167 = $pnt_thresh$078; - $wk_max$160 = $wk_max$075; - while (1) { - do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) { - HEAP16[$pnt2$359 >> 1] = 0; - $wk_max$2 = $wk_max$160; - } else { - $28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0; - if ($28 << 16 >> 16 > 0) { - HEAP16[$pnt2$359 >> 1] = $28; - $31 = ($28 << 16 >> 16) * 7 | 0; - $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; - HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; - $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265; - $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0; - $48 = $47 << 16 >> 16; - $51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $53 = $51 << 16 >> 16 > 0; - if ($47 << 16 >> 16 <= 0) { - if ($53) { - HEAP16[$pnt2$359 >> 1] = $51; - $153 = $52 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076; - $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $173 = HEAP16[$pnt2$359 + -2 >> 1] | 0; - if ($173 << 16 >> 16 > 0) { - HEAP16[$pnt2$359 >> 1] = $173; - $176 = ($173 << 16 >> 16) * 7 | 0; - $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; - $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265; - $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076; - $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; - if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) { - $wk_max$2 = $wk_max$160; - break; - } - HEAP32[$190 >> 2] = $i$265; - $wk_max$2 = $wk_max$160; - break; - } else { - $193 = $wk_max$160 + 1 | 0; - if (($wk_max$160 | 0) > 32767) break L13; - HEAP16[$pnt2$359 >> 1] = $193; - HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16; - $198 = $wk_max$160 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076; - HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076; - $wk_max$2 = $193; - break; - } - } - if ($53) { - $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - if (($56 | 0) > ($59 | 0)) { - HEAP16[$pnt2$359 >> 1] = $59; - if (($wk_max$160 | 0) > 0) { - $k$055 = 0; - $wk$056 = $16; - while (1) { - if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59; - $k$055 = $k$055 + 1 | 0; - if (($k$055 | 0) >= ($wk_max$160 | 0)) { - $76 = $59; - break; - } else $wk$056 = $wk$056 + 4 | 0; - } - } else $76 = $59; - } else { - HEAP16[$pnt2$359 >> 1] = $56; - if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) { - $k$152 = 0; - $wk$153 = $16; - while (1) { - if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56; - $k$152 = $k$152 + 1 | 0; - if (($k$152 | 0) >= ($wk_max$160 | 0)) { - $76 = $56; - break; - } else $wk$153 = $wk$153 + 4 | 0; - } - } else $76 = $56; - } - $78 = ($76 << 16 >> 16) * 7 | 0; - $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; - HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; - $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265; - $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076; - HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $94 = HEAP16[$pnt2$359 + -2 >> 1] | 0; - if ($94 << 16 >> 16 <= 0) { - HEAP16[$pnt2$359 >> 1] = $47; - $134 = $48 * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076; - $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; - if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265; - HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076; - $wk_max$2 = $wk_max$160; - break; - } - $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($99 | 0) > ($102 | 0)) { - HEAP16[$pnt2$359 >> 1] = $102; - if (($wk_max$160 | 0) > 0) { - $k$248 = 0; - $wk$249 = $16; - while (1) { - if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102; - $k$248 = $k$248 + 1 | 0; - if (($k$248 | 0) >= ($wk_max$160 | 0)) { - $119 = $102; - break; - } else $wk$249 = $wk$249 + 4 | 0; - } - } else $119 = $102; - } else { - HEAP16[$pnt2$359 >> 1] = $99; - if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) { - $k$345 = 0; - $wk$346 = $16; - while (1) { - if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99; - $k$345 = $k$345 + 1 | 0; - if (($k$345 | 0) >= ($wk_max$160 | 0)) { - $119 = $99; - break; - } else $wk$346 = $wk$346 + 4 | 0; - } - } else $119 = $99; + } else { + if (($this | 0) != (HEAP32[$info >> 2] | 0)) { + $59 = HEAP32[$this + 12 >> 2] | 0; + $60 = $this + 16 + ($59 << 3) | 0; + __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this + 16 | 0, $info, $current_ptr, $path_below, $use_strcmp); + $61 = $this + 24 | 0; + if (($59 | 0) <= 1) break; + $64 = HEAP32[$this + 8 >> 2] | 0; + if (!($64 & 2)) { + $67 = $info + 36 | 0; + if ((HEAP32[$67 >> 2] | 0) != 1) { + if (!($64 & 1)) { + $79 = $info + 54 | 0; + $p2$2 = $61; + while (1) { + if (HEAP8[$79 >> 0] | 0) break L1; + if ((HEAP32[$67 >> 2] | 0) == 1) break L1; + __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$2, $info, $current_ptr, $path_below, $use_strcmp); + $p2$2 = $p2$2 + 8 | 0; + if ($p2$2 >>> 0 >= $60 >>> 0) break L1; } - $121 = ($119 << 16 >> 16) * 7 | 0; - $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; - HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; - $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265; - $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076; - $wk_max$2 = $wk_max$160; - } while (0); - $i$265 = $i$265 + 1 | 0; - $213 = $pnt$168 + 1 | 0; - $214 = $pnt_thresh$167 + 1 | 0; - $215 = $pnt2$359 + 2 | 0; - if (($i$265 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $213; - $pnt2$3$lcssa = $215; - $pnt_thresh$1$lcssa = $214; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$168 = $213; - $pnt2$359 = $215; - $pnt_thresh$167 = $214; - $wk_max$160 = $wk_max$2; + } + $77 = $info + 24 | 0; + $78 = $info + 54 | 0; + $p2$1 = $61; + while (1) { + if (HEAP8[$78 >> 0] | 0) break L1; + if ((HEAP32[$67 >> 2] | 0) == 1) if ((HEAP32[$77 >> 2] | 0) == 1) break L1; + __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$1, $info, $current_ptr, $path_below, $use_strcmp); + $p2$1 = $p2$1 + 8 | 0; + if ($p2$1 >>> 0 >= $60 >>> 0) break L1; } } - } else { - $pnt$1$lcssa = $pnt$079; - $pnt2$3$lcssa = $pnt2$274; - $pnt_thresh$1$lcssa = $pnt_thresh$078; - $wk_max$1$lcssa = $wk_max$075; } - $j$076 = $j$076 + 1 | 0; - if (($j$076 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$079 = $pnt$1$lcssa + 2 | 0; - $pnt2$274 = $pnt2$3$lcssa + 4 | 0; - $pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0; - $wk_max$075 = $wk_max$1$lcssa; + $70 = $info + 54 | 0; + $p2$0 = $61; + while (1) { + if (HEAP8[$70 >> 0] | 0) break L1; + __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$0, $info, $current_ptr, $path_below, $use_strcmp); + $p2$0 = $p2$0 + 8 | 0; + if ($p2$0 >>> 0 >= $60 >>> 0) break L1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $222 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$341 = 1; - $j$142 = 1; - $wk$443 = $16; - while (1) { - $224 = HEAP32[$wk$443 >> 2] | 0; - if (($224 | 0) == ($i$341 | 0)) { - $230 = $j$142; - $j$2 = $j$142 + 1 | 0; - } else { - $230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0; - $j$2 = $j$142; - } - HEAP32[$wk$443 >> 2] = $230; - if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) { - $i$341 = $i$341 + 1 | 0; - $j$142 = $j$2; - $wk$443 = $wk$443 + 4 | 0; + if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { + $14 = $info + 20 | 0; + if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { + HEAP32[$info + 32 >> 2] = $path_below; + $20 = $info + 44 | 0; + if ((HEAP32[$20 >> 2] | 0) == 4) break; + $24 = HEAP32[$this + 12 >> 2] | 0; + $25 = $this + 16 + ($24 << 3) | 0; + $26 = $info + 52 | 0; + $27 = $info + 53 | 0; + $28 = $info + 54 | 0; + $29 = $this + 8 | 0; + $30 = $info + 24 | 0; + L34 : do if (($24 | 0) > 0) { + $does_dst_type_point_to_our_static_type$0$off023 = 0; + $is_dst_type_derived_from_static_type$0$off025 = 0; + $p$024 = $this + 16 | 0; + while (1) { + HEAP8[$26 >> 0] = 0; + HEAP8[$27 >> 0] = 0; + __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$024, $info, $current_ptr, $current_ptr, 1, $use_strcmp); + if (HEAP8[$28 >> 0] | 0) { + $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023; + $is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$0$off025; + label = 20; + break L34; + } + do if (!(HEAP8[$27 >> 0] | 0)) { + $does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023; + $is_dst_type_derived_from_static_type$1$off0 = $is_dst_type_derived_from_static_type$0$off025; + } else { + if (!(HEAP8[$26 >> 0] | 0)) if (!(HEAP32[$29 >> 2] & 1)) { + $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023; + $is_dst_type_derived_from_static_type$2$off0 = 1; + label = 20; + break L34; + } else { + $does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023; + $is_dst_type_derived_from_static_type$1$off0 = 1; + break; + } + if ((HEAP32[$30 >> 2] | 0) == 1) break L34; + if (!(HEAP32[$29 >> 2] & 2)) break L34; else { + $does_dst_type_point_to_our_static_type$1$off0 = 1; + $is_dst_type_derived_from_static_type$1$off0 = 1; + } + } while (0); + $p$024 = $p$024 + 8 | 0; + if ($p$024 >>> 0 >= $25 >>> 0) { + $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$1$off0; + $is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$1$off0; + label = 20; + break; + } else { + $does_dst_type_point_to_our_static_type$0$off023 = $does_dst_type_point_to_our_static_type$1$off0; + $is_dst_type_derived_from_static_type$0$off025 = $is_dst_type_derived_from_static_type$1$off0; + } + } } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $234 = $labelInfo + 8 | 0; - $235 = $j$1$lcssa + -1 | 0; - HEAP32[$234 >> 2] = $235; - if (!$235) $$0 = 0; else { - _memset($222 | 0, 0, $235 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$439 = 0; - do { - $242 = $i$439 << 2; - HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0; - $i$439 = $i$439 + 1 | 0; - } while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$537 = 0; - do { - $256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0; - $257 = $i$537 * 7 | 0; - $260 = $labelInfo + 12 + ($256 << 2) | 0; - HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0); - $267 = $256 << 1; - $268 = $labelInfo + 655376 + ($267 << 3) | 0; - HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0); - $276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0); - $279 = $256 << 2; - $280 = $labelInfo + 131084 + ($279 << 2) | 0; - $284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0; - if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284; - $287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305; - $i$537 = $i$537 + 1 | 0; - } while (($i$537 | 0) < ($wk_max$0$lcssa | 0)); + $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0; + $is_dst_type_derived_from_static_type$2$off0 = 0; + label = 20; + } while (0); + do if ((label | 0) == 20) { + if ($does_dst_type_point_to_our_static_type$0$off0$lcssa) label = 24; else { + HEAP32[$14 >> 2] = $current_ptr; + $49 = $info + 40 | 0; + HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; + if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$30 >> 2] | 0) == 2) { + HEAP8[$28 >> 0] = 1; + if ($is_dst_type_derived_from_static_type$2$off0) break; + } else label = 24; else label = 24; + } + if ((label | 0) == 24) if ($is_dst_type_derived_from_static_type$2$off0) break; + HEAP32[$20 >> 2] = 4; + break L1; + } while (0); + HEAP32[$20 >> 2] = 3; + break; } - if ((HEAP32[$234 >> 2] | 0) > 0) { - $i$636 = 0; - do { - $309 = $labelInfo + 12 + ($i$636 << 2) | 0; - $312 = $i$636 << 1; - $313 = $labelInfo + 655376 + ($312 << 3) | 0; - HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0); - $319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0; - HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0); - $i$636 = $i$636 + 1 | 0; - } while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } - STACKTOP = sp; - return $$0 | 0; + if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; + } while (0); + return; } -function _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision20BinaryFeatureMatcherILi96EE5matchEPKNS_18BinaryFeatureStoreES4_($this, $features1, $features2) { + $this = $this | 0; + $features1 = $features1 | 0; + $features2 = $features2 | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa19 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $11 = 0, $111 = 0, $118 = 0, $12 = 0, $123 = 0, $124 = 0, $128 = 0, $16 = 0, $18 = 0, $2 = 0, $20 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $37 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $45 = 0, $47 = 0, $49 = 0, $54 = 0, $57 = 0, $6 = 0, $63 = 0, $66 = 0, $7 = 0, $71 = 0, $72 = 0, $83 = 0, $86 = 0, $9 = 0, $91 = 0, $92 = 0, $best_index$0$lcssa = 0, $best_index$04 = 0, $best_index$1 = 0, $first_best$0$lcssa = 0, $first_best$06 = 0, $first_best$1 = 0, $i$010 = 0, $j$07 = 0, $second_best$0$lcssa = 0, $second_best$05 = 0, $second_best$1 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; + $0 = sp + 16 | 0; + $1 = sp + 8 | 0; + $2 = sp; + $3 = HEAP32[$this >> 2] | 0; + $4 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$4 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($3 | 0)) { + $7 = $$pre$i$i$i; while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + $6 = $7 + -8 | 0; + if (($6 | 0) == ($3 | 0)) { + $$lcssa19 = $6; + break; + } else $7 = $6; } + HEAP32[$4 >> 2] = $$lcssa19; } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; - do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) { - $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($47 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $47; - $50 = ($47 << 16 >> 16) * 7 | 0; - $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; - $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; - $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; - HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $71 = $70 << 16 >> 16; - $72 = $70 << 16 >> 16 > 0; - if ($66 << 16 >> 16 <= 0) { - if ($72) { - HEAP16[$pnt2$363 >> 1] = $70; - $172 = $71 * 7 | 0; - $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; - $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; - $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; - $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; - if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $9 = $features1 + 20 | 0; + $10 = HEAP32[$9 >> 2] | 0; + $11 = $features1 + 16 | 0; + $12 = HEAP32[$11 >> 2] | 0; + $16 = ($10 - $12 | 0) / 20 | 0; + if (($10 | 0) == ($12 | 0)) $$0 = 0; else { + $18 = $features2 + 20 | 0; + $20 = $features2 + 16 | 0; + if ((HEAP32[$18 >> 2] | 0) == (HEAP32[$20 >> 2] | 0)) $$0 = 0; else { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE7reserveEj($this, $16); + $23 = $features1 + 4 | 0; + $24 = $features2 + 4 | 0; + $25 = $1 + 4 | 0; + $26 = $this + 8 | 0; + $27 = $this + 12 | 0; + $28 = $2 + 4 | 0; + $29 = HEAP32[$9 >> 2] | 0; + $30 = HEAP32[$11 >> 2] | 0; + if (($29 | 0) == ($30 | 0)) $$lcssa = ($29 - $30 | 0) / 20 | 0; else { + $47 = $30; + $i$010 = 0; + do { + $37 = Math_imul(HEAP32[$features1 >> 2] | 0, $i$010) | 0; + $39 = (HEAP32[$23 >> 2] | 0) + $37 | 0; + $40 = HEAP32[$18 >> 2] | 0; + $41 = HEAP32[$20 >> 2] | 0; + $45 = ($40 - $41 | 0) / 20 | 0; + if (($40 | 0) == ($41 | 0)) { + $best_index$0$lcssa = 2147483647; + $first_best$0$lcssa = -1; + $second_best$0$lcssa = -1; + } else { + $49 = HEAP8[$47 + ($i$010 * 20 | 0) + 16 >> 0] | 0; + $best_index$04 = 2147483647; + $first_best$06 = -1; + $j$07 = 0; + $second_best$05 = -1; + while (1) { + if ($49 << 24 >> 24 == (HEAP8[$41 + ($j$07 * 20 | 0) + 16 >> 0] | 0)) { + $54 = Math_imul(HEAP32[$features2 >> 2] | 0, $j$07) | 0; + $57 = __ZN6vision18HammingDistance768EPKjS1_($39, (HEAP32[$24 >> 2] | 0) + $54 | 0) | 0; + if ($57 >>> 0 < $first_best$06 >>> 0) { + $best_index$1 = $j$07; + $first_best$1 = $57; + $second_best$1 = $first_best$06; + } else { + $best_index$1 = $best_index$04; + $first_best$1 = $first_best$06; + $second_best$1 = $57 >>> 0 < $second_best$05 >>> 0 ? $57 : $second_best$05; + } + } else { + $best_index$1 = $best_index$04; + $first_best$1 = $first_best$06; + $second_best$1 = $second_best$05; + } + $j$07 = $j$07 + 1 | 0; + if (($j$07 | 0) == ($45 | 0)) { + $best_index$0$lcssa = $best_index$1; + $first_best$0$lcssa = $first_best$1; + $second_best$0$lcssa = $second_best$1; break; + } else { + $best_index$04 = $best_index$1; + $first_best$06 = $first_best$1; + $second_best$05 = $second_best$1; } - $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($192 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $192; - $195 = ($192 << 16 >> 16) * 7 | 0; - $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; - $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; - $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; - HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; - $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; - if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$209 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; + } + } + do if (($first_best$0$lcssa | 0) != -1) { + if (($second_best$0$lcssa | 0) == -1) { + HEAP32[$1 >> 2] = $i$010; + HEAP32[$25 >> 2] = $best_index$0$lcssa; + $63 = HEAP32[$4 >> 2] | 0; + if (($63 | 0) == (HEAP32[$26 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $1); break; } else { - $212 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $212; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; - $217 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $212; + $66 = $1; + $71 = HEAP32[$66 + 4 >> 2] | 0; + $72 = $63; + HEAP32[$72 >> 2] = HEAP32[$66 >> 2]; + HEAP32[$72 + 4 >> 2] = $71; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; break; } } - if ($72) { - $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; - if (($75 | 0) > ($78 | 0)) { - HEAP16[$pnt2$363 >> 1] = $78; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $95 = $78; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $95 = $78; + if (+($first_best$0$lcssa >>> 0) / +($second_best$0$lcssa >>> 0) < +HEAPF32[$27 >> 2]) { + HEAP32[$2 >> 2] = $i$010; + HEAP32[$28 >> 2] = $best_index$0$lcssa; + $83 = HEAP32[$4 >> 2] | 0; + if (($83 | 0) == (HEAP32[$26 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $2); + break; } else { - HEAP16[$pnt2$363 >> 1] = $75; - if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $95 = $75; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $95 = $75; + $86 = $2; + $91 = HEAP32[$86 + 4 >> 2] | 0; + $92 = $83; + HEAP32[$92 >> 2] = HEAP32[$86 >> 2]; + HEAP32[$92 + 4 >> 2] = $91; + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 8; + break; } - $97 = ($95 << 16 >> 16) * 7 | 0; - $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; - $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; - $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; - HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($113 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $66; - $153 = $67 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; - $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($118 | 0) > ($121 | 0)) { - HEAP16[$pnt2$363 >> 1] = $121; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $138 = $121; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $138 = $121; - } else { - HEAP16[$pnt2$363 >> 1] = $118; - if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $138 = $118; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $138 = $118; } - $140 = ($138 << 16 >> 16) * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; } while (0); - $i$256 = $i$256 + 1 | 0; - $232 = $pnt$164 + 4 | 0; - $233 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $232; - $pnt2$3$lcssa = $233; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $232; - $pnt2$363 = $233; - $wk_max$158 = $wk_max$2; - } - } + $i$010 = $i$010 + 1 | 0; + $47 = HEAP32[$11 >> 2] | 0; + $104 = ((HEAP32[$9 >> 2] | 0) - $47 | 0) / 20 | 0; + } while ($i$010 >>> 0 < $104 >>> 0); + $$lcssa = $104; + } + $111 = (HEAP32[$4 >> 2] | 0) - (HEAP32[$this >> 2] | 0) >> 3; + if ($111 >>> 0 > $$lcssa >>> 0) { + $118 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28808) | 0, 28565) | 0, 34302) | 0, 112) | 0, 34309) | 0, 28868) | 0; + $123 = __ZNKSt3__18ios_base6getlocEv($118 + (HEAP32[(HEAP32[$118 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $123; + $124 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $128 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$124 >> 2] | 0) + 28 >> 2] & 63]($124, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($118, $128) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($118) | 0; + _abort(); + } else $$0 = $111; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $104 = 0, $108 = 0, $12 = 0, $120 = 0, $121 = 0, $135 = 0, $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $136 = $30; + break; } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $136 = $30; + break; } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $136 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $136; + $__a$2 = $__a$1; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $241 = HEAP32[$wk$440 >> 2] | 0; - if (($241 | 0) == ($i$338 | 0)) { - $247 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $247; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $259 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); + } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $108 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $108 = $100; + } else $108 = $$pre18; + $102 = __ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + $104 = $__v; + HEAP32[$104 >> 2] = $102; + HEAP32[$104 + 4 >> 2] = tempRet0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $108, $__err); + if (!$$pre$i$i$i$lcssa) $121 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $121 = 0; + } else $121 = $$pre$i$i$i$lcssa; else $121 = $$pre$i$i$i$lcssa; + $120 = ($121 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$120) label = 39; + } while (0); + if ((label | 0) == 38) if ($120) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $135 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $135 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $104 = 0, $108 = 0, $12 = 0, $120 = 0, $121 = 0, $135 = 0, $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $136 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$534 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $136 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $326 = $labelInfo + 12 + ($i$633 << 2) | 0; - $329 = $i$633 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $136 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $136; + $__a$2 = $__a$1; + break; + } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $108 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $108 = $100; + } else $108 = $$pre18; + $102 = __ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + $104 = $__v; + HEAP32[$104 >> 2] = $102; + HEAP32[$104 + 4 >> 2] = tempRet0; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $108, $__err); + if (!$$pre$i$i$i$lcssa) $121 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $121 = 0; + } else $121 = $$pre$i$i$i$lcssa; else $121 = $$pre$i$i$i$lcssa; + $120 = ($121 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$120) label = 39; + } while (0); + if ((label | 0) == 38) if ($120) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $135 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $135 | 0; } -function _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _arVecTridiagonalize($a, $d, $e) { + $a = $a | 0; + $d = $d | 0; + $e = $e | 0; + var $$0 = 0, $$pre$phiZ2D = 0, $1 = 0, $106 = 0, $107 = 0, $110 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $125 = 0.0, $126 = 0, $13 = 0, $131 = 0, $14 = 0, $16 = 0, $17 = 0, $23 = 0, $25 = 0, $26 = 0.0, $32 = 0, $34 = 0, $35 = 0, $37 = 0, $40 = 0, $45 = 0.0, $54 = 0.0, $63 = 0.0, $65 = 0, $68 = 0.0, $70 = 0, $72 = 0.0, $73 = 0, $75 = 0, $84 = 0, $90 = 0, $92 = 0, $95 = 0, $97 = 0, $i$039 = 0, $i$143 = 0, $i$144 = 0, $i$223 = 0, $i$325 = 0, $j$032 = 0, $j$135 = 0, $j$240 = 0, $j$320 = 0, $k$047 = 0, $k$129$in = 0, $s$0$lcssa = 0.0, $s$031 = 0.0, $s$1$lcssa = 0.0, $s$134 = 0.0, $wv1 = 0, $wv2 = 0, label = 0, sp = 0, $k$047$looptemp = 0, $k$129$in$looptemp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } + $wv1 = sp + 8 | 0; + $wv2 = sp; + $1 = HEAP32[$a + 8 >> 2] | 0; + if (($1 | 0) == (HEAP32[$a + 4 >> 2] | 0)) if (($1 | 0) == (HEAP32[$d + 4 >> 2] | 0)) if (($1 | 0) == ((HEAP32[$e + 4 >> 2] | 0) + 1 | 0)) { + $12 = $1 + -2 | 0; + $13 = $wv1 + 4 | 0; + $14 = $wv2 + 4 | 0; + if (($1 | 0) > 2) { + $i$143 = $1 + -1 | 0; + $k$047 = 0; + do { + $16 = Math_imul($k$047, $1) | 0; + $17 = HEAP32[$a >> 2] | 0; + HEAPF64[(HEAP32[$d >> 2] | 0) + ($k$047 << 3) >> 3] = +HEAPF64[$17 + ($16 + $k$047 << 3) >> 3]; + $23 = $1 - $k$047 + -1 | 0; + HEAP32[$13 >> 2] = $23; + $k$047$looptemp = $k$047; + $k$047 = $k$047 + 1 | 0; + $25 = $17 + ($16 + $k$047 << 3) | 0; + HEAP32[$wv1 >> 2] = $25; + $26 = +_arVecHousehold($wv1); + HEAPF64[(HEAP32[$e >> 2] | 0) + ($k$047$looptemp << 3) >> 3] = $26; + if (!($26 == 0.0)) { + if (($k$047 | 0) < ($1 | 0)) { + $32 = HEAP32[$d >> 2] | 0; + $i$039 = $k$047; + do { + if (($k$047 | 0) < ($i$039 | 0)) { + $34 = HEAP32[$a >> 2] | 0; + $j$032 = $k$047; + $s$031 = 0.0; + while (1) { + $40 = $34 + ((Math_imul($j$032, $1) | 0) + $i$039 << 3) | 0; + $45 = $s$031 + +HEAPF64[$40 >> 3] * +HEAPF64[$17 + ($j$032 + $16 << 3) >> 3]; + $j$032 = $j$032 + 1 | 0; + if (($j$032 | 0) >= ($i$039 | 0)) { + $s$0$lcssa = $45; + break; + } else $s$031 = $45; + } + } else $s$0$lcssa = 0.0; + $35 = Math_imul($i$039, $1) | 0; + if (($i$039 | 0) < ($1 | 0)) { + $37 = HEAP32[$a >> 2] | 0; + $j$135 = $i$039; + $s$134 = $s$0$lcssa; + while (1) { + $54 = $s$134 + +HEAPF64[$37 + ($j$135 + $35 << 3) >> 3] * +HEAPF64[$17 + ($j$135 + $16 << 3) >> 3]; + $j$135 = $j$135 + 1 | 0; + if (($j$135 | 0) >= ($1 | 0)) { + $s$1$lcssa = $54; + break; + } else $s$134 = $54; + } + } else $s$1$lcssa = $s$0$lcssa; + HEAPF64[$32 + ($i$039 << 3) >> 3] = $s$1$lcssa; + $i$039 = $i$039 + 1 | 0; + } while (($i$039 | 0) < ($1 | 0)); + } + HEAP32[$14 >> 2] = $23; + HEAP32[$13 >> 2] = $23; + HEAP32[$wv1 >> 2] = $25; + HEAP32[$wv2 >> 2] = (HEAP32[$d >> 2] | 0) + ($k$047 << 3); + $63 = +_arVecInnerproduct($wv1, $wv2) * .5; + if (($i$143 | 0) > ($k$047$looptemp | 0)) { + $65 = HEAP32[$d >> 2] | 0; + $i$144 = $i$143; + do { + $68 = +HEAPF64[$17 + ($i$144 + $16 << 3) >> 3]; + $70 = $65 + ($i$144 << 3) | 0; + $72 = +HEAPF64[$70 >> 3] - $63 * $68; + HEAPF64[$70 >> 3] = $72; + $73 = Math_imul($i$144, $1) | 0; + if (($i$144 | 0) < ($1 | 0)) { + $75 = HEAP32[$a >> 2] | 0; + $j$240 = $i$144; + do { + $84 = $75 + ($j$240 + $73 << 3) | 0; + HEAPF64[$84 >> 3] = +HEAPF64[$84 >> 3] - ($68 * +HEAPF64[$65 + ($j$240 << 3) >> 3] + $72 * +HEAPF64[$17 + ($j$240 + $16 << 3) >> 3]); + $j$240 = $j$240 + 1 | 0; + } while (($j$240 | 0) < ($1 | 0)); + } + $i$144 = $i$144 + -1 | 0; + } while (($i$144 | 0) > ($k$047$looptemp | 0)); + } + } + } while (($k$047 | 0) < ($12 | 0)); } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + if (($1 | 0) > 1) { + $90 = Math_imul($12, $1) | 0; + $92 = HEAP32[$a >> 2] | 0; + $95 = HEAP32[$d >> 2] | 0; + HEAPF64[$95 + ($12 << 3) >> 3] = +HEAPF64[$92 + ($90 + $12 << 3) >> 3]; + $97 = $1 + -1 | 0; + HEAPF64[(HEAP32[$e >> 2] | 0) + ($12 << 3) >> 3] = +HEAPF64[$92 + ($97 + $90 << 3) >> 3]; + $$pre$phiZ2D = $97; + $107 = $92; + $110 = $95; + label = 27; + } else if (($1 | 0) > 0) { + $$pre$phiZ2D = 0; + $107 = HEAP32[$a >> 2] | 0; + $110 = HEAP32[$d >> 2] | 0; + label = 27; } - } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; - do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($47 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $47; - $50 = ($47 << 16 >> 16) * 7 | 0; - $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; - $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; - $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; - HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $71 = $70 << 16 >> 16; - $72 = $70 << 16 >> 16 > 0; - if ($66 << 16 >> 16 <= 0) { - if ($72) { - HEAP16[$pnt2$363 >> 1] = $70; - $172 = $71 * 7 | 0; - $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; - $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; - $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; - $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; - if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + if ((label | 0) == 27) { + $106 = $107 + ((Math_imul($$pre$phiZ2D, $1) | 0) + $$pre$phiZ2D << 3) | 0; + HEAPF64[$110 + ($$pre$phiZ2D << 3) >> 3] = +HEAPF64[$106 >> 3]; + } + if (($1 | 0) > 0) { + $112 = ($1 | 0) > 0; + $k$129$in = $1; + do { + $k$129$in$looptemp = $k$129$in; + $k$129$in = $k$129$in + -1 | 0; + $113 = Math_imul($k$129$in, $1) | 0; + $114 = HEAP32[$a >> 2] | 0; + if (($k$129$in$looptemp | 0) <= ($12 | 0)) { + $117 = $1 - $k$129$in + -1 | 0; + $118 = $114 + ($113 + $k$129$in$looptemp << 3) | 0; + if (($k$129$in$looptemp | 0) < ($1 | 0)) { + $120 = ($k$129$in$looptemp | 0) < ($1 | 0); + $i$223 = $k$129$in$looptemp; + do { + HEAP32[$14 >> 2] = $117; + HEAP32[$13 >> 2] = $117; + HEAP32[$wv1 >> 2] = $118; + $121 = Math_imul($i$223, $1) | 0; + HEAP32[$wv2 >> 2] = (HEAP32[$a >> 2] | 0) + ($121 + $k$129$in$looptemp << 3); + $125 = +_arVecInnerproduct($wv1, $wv2); + if ($120) { + $126 = HEAP32[$a >> 2] | 0; + $j$320 = $k$129$in$looptemp; + do { + $131 = $126 + ($j$320 + $121 << 3) | 0; + HEAPF64[$131 >> 3] = +HEAPF64[$131 >> 3] - $125 * +HEAPF64[$114 + ($j$320 + $113 << 3) >> 3]; + $j$320 = $j$320 + 1 | 0; + } while (($j$320 | 0) < ($1 | 0)); } - $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($192 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $192; - $195 = ($192 << 16 >> 16) * 7 | 0; - $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; - $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; - $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; - HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; - $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; - if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$209 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; + $i$223 = $i$223 + 1 | 0; + } while (($i$223 | 0) < ($1 | 0)); + } + } + if ($112) { + $i$325 = 0; + do { + HEAPF64[$114 + ($i$325 + $113 << 3) >> 3] = 0.0; + $i$325 = $i$325 + 1 | 0; + } while (($i$325 | 0) < ($1 | 0)); + } + HEAPF64[$114 + ($113 + $k$129$in << 3) >> 3] = 1.0; + } while (($k$129$in$looptemp | 0) > 1); + $$0 = 0; + } else $$0 = 0; + } else $$0 = -1; else $$0 = -1; else $$0 = -1; + STACKTOP = sp; + return $$0 | 0; +} + +function _decode_mcu_AC_first($cinfo, $MCU_data) { + $cinfo = $cinfo | 0; + $MCU_data = $MCU_data | 0; + var $$0 = 0, $$lcssa = 0, $1 = 0, $104 = 0, $107 = 0, $17 = 0, $18 = 0, $22 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $37 = 0, $38 = 0, $43 = 0, $44 = 0, $48 = 0, $5 = 0, $50 = 0, $56 = 0, $60 = 0, $61 = 0, $63 = 0, $69 = 0, $73 = 0, $81 = 0, $88 = 0, $95 = 0, $EOBRUN$0 = 0, $EOBRUN$1 = 0, $EOBRUN$2 = 0, $bits_left$020 = 0, $bits_left$1 = 0, $bits_left$2 = 0, $bits_left$3 = 0, $bits_left$3$lcssa = 0, $bits_left$4 = 0, $bits_left$5 = 0, $bits_left$6 = 0, $bits_left$7 = 0, $bits_left$8 = 0, $br_state = 0, $get_buffer$019 = 0, $get_buffer$1 = 0, $get_buffer$2 = 0, $get_buffer$3 = 0, $get_buffer$3$lcssa = 0, $get_buffer$4 = 0, $get_buffer$5 = 0, $get_buffer$6 = 0, $get_buffer$7 = 0, $get_buffer$8 = 0, $k$018 = 0, $k$1 = 0, $nb$0 = 0, $s$0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $br_state = sp; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $3 = HEAP32[$cinfo + 404 >> 2] | 0; + $5 = HEAP32[$cinfo + 412 >> 2] | 0; + if (!(HEAP32[$cinfo + 276 >> 2] | 0)) label = 4; else if (!(HEAP32[$1 + 40 >> 2] | 0)) if (!(_process_restart($cinfo) | 0)) $$0 = 0; else label = 4; else label = 4; + L4 : do if ((label | 0) == 4) { + if (!(HEAP32[$1 + 8 >> 2] | 0)) { + $17 = $1 + 20 | 0; + $18 = HEAP32[$17 >> 2] | 0; + if (!$18) { + HEAP32[$br_state + 16 >> 2] = $cinfo; + $22 = $cinfo + 24 | 0; + $23 = HEAP32[$22 >> 2] | 0; + HEAP32[$br_state >> 2] = HEAP32[$23 >> 2]; + $27 = $br_state + 4 | 0; + HEAP32[$27 >> 2] = HEAP32[$23 + 4 >> 2]; + $28 = $1 + 12 | 0; + $29 = HEAP32[$28 >> 2] | 0; + $30 = $1 + 16 | 0; + $31 = HEAP32[$30 >> 2] | 0; + $32 = HEAP32[$MCU_data >> 2] | 0; + $34 = HEAP32[$1 + 60 >> 2] | 0; + $36 = HEAP32[$cinfo + 400 >> 2] | 0; + $37 = $br_state + 8 | 0; + $38 = $br_state + 12 | 0; + L10 : do if (($36 | 0) > ($3 | 0)) { + $EOBRUN$1 = 0; + $bits_left$8 = $31; + $get_buffer$8 = $29; + } else { + $bits_left$020 = $31; + $get_buffer$019 = $29; + $k$018 = $36; + while (1) { + if (($bits_left$020 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$019, $bits_left$020, 0) | 0)) { + $$0 = 0; + break L4; + } + $43 = HEAP32[$37 >> 2] | 0; + $44 = HEAP32[$38 >> 2] | 0; + if (($44 | 0) < 8) { + $bits_left$2 = $44; + $get_buffer$2 = $43; + $nb$0 = 1; + label = 13; } else { - $212 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $212; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; - $217 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $212; - break; + $bits_left$1 = $44; + $get_buffer$1 = $43; + label = 11; } + } else { + $bits_left$1 = $bits_left$020; + $get_buffer$1 = $get_buffer$019; + label = 11; } - if ($72) { - $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; - if (($75 | 0) > ($78 | 0)) { - HEAP16[$pnt2$363 >> 1] = $78; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $95 = $78; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $95 = $78; + if ((label | 0) == 11) { + label = 0; + $48 = $get_buffer$1 >> $bits_left$1 + -8 & 255; + $50 = HEAP32[$34 + 144 + ($48 << 2) >> 2] | 0; + if (!$50) { + $bits_left$2 = $bits_left$1; + $get_buffer$2 = $get_buffer$1; + $nb$0 = 9; + label = 13; } else { - HEAP16[$pnt2$363 >> 1] = $75; - if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $95 = $75; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $95 = $75; + $bits_left$3 = $bits_left$1 - $50 | 0; + $get_buffer$3 = $get_buffer$1; + $s$0 = HEAPU8[$34 + 1168 + $48 >> 0] | 0; } - $97 = ($95 << 16 >> 16) * 7 | 0; - $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; - $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; - $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; - HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($113 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $66; - $153 = $67 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; - $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; } - $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($118 | 0) > ($121 | 0)) { - HEAP16[$pnt2$363 >> 1] = $121; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $138 = $121; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $138 = $121; + if ((label | 0) == 13) { + label = 0; + $56 = _jpeg_huff_decode($br_state, $get_buffer$2, $bits_left$2, $34, $nb$0) | 0; + if (($56 | 0) < 0) { + $$0 = 0; + break L4; + } + $bits_left$3 = HEAP32[$38 >> 2] | 0; + $get_buffer$3 = HEAP32[$37 >> 2] | 0; + $s$0 = $56; + } + $60 = $s$0 >> 4; + $61 = $s$0 & 15; + if (!$61) { + if (($60 | 0) != 15) { + $$lcssa = $60; + $bits_left$3$lcssa = $bits_left$3; + $get_buffer$3$lcssa = $get_buffer$3; + break; + } + $bits_left$7 = $bits_left$3; + $get_buffer$7 = $get_buffer$3; + $k$1 = $k$018 + 15 | 0; } else { - HEAP16[$pnt2$363 >> 1] = $118; - if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $138 = $118; - break; - } else $wk$343 = $wk$343 + 4 | 0; + $63 = $60 + $k$018 | 0; + if (($bits_left$3 | 0) < ($61 | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3, $bits_left$3, $61) | 0)) { + $$0 = 0; + break L4; } - } else $138 = $118; + $bits_left$4 = HEAP32[$38 >> 2] | 0; + $get_buffer$4 = HEAP32[$37 >> 2] | 0; + } else { + $bits_left$4 = $bits_left$3; + $get_buffer$4 = $get_buffer$3; + } + $69 = $bits_left$4 - $61 | 0; + $73 = $get_buffer$4 >> $69 & (1 << $61) + -1; + if (($73 | 0) < (HEAP32[5692 + ($61 << 2) >> 2] | 0)) $81 = (HEAP32[5756 + ($61 << 2) >> 2] | 0) + $73 | 0; else $81 = $73; + HEAP16[$32 + (HEAP32[5344 + ($63 << 2) >> 2] << 1) >> 1] = $81 << $5; + $bits_left$7 = $69; + $get_buffer$7 = $get_buffer$4; + $k$1 = $63; + } + if (($k$1 | 0) < ($3 | 0)) { + $bits_left$020 = $bits_left$7; + $get_buffer$019 = $get_buffer$7; + $k$018 = $k$1 + 1 | 0; + } else { + $EOBRUN$1 = 0; + $bits_left$8 = $bits_left$7; + $get_buffer$8 = $get_buffer$7; + break L10; } - $140 = ($138 << 16 >> 16) * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $232 = $pnt$164 + 4 | 0; - $233 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $232; - $pnt2$3$lcssa = $233; - $wk_max$1$lcssa = $wk_max$2; - break; + } + $88 = 1 << $$lcssa; + if (!$$lcssa) { + $EOBRUN$0 = $88; + $bits_left$6 = $bits_left$3$lcssa; + $get_buffer$6 = $get_buffer$3$lcssa; } else { - $pnt$164 = $232; - $pnt2$363 = $233; - $wk_max$158 = $wk_max$2; + if (($bits_left$3$lcssa | 0) < ($$lcssa | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3$lcssa, $bits_left$3$lcssa, $$lcssa) | 0)) { + $$0 = 0; + break L4; + } + $bits_left$5 = HEAP32[$38 >> 2] | 0; + $get_buffer$5 = HEAP32[$37 >> 2] | 0; + } else { + $bits_left$5 = $bits_left$3$lcssa; + $get_buffer$5 = $get_buffer$3$lcssa; + } + $95 = $bits_left$5 - $$lcssa | 0; + $EOBRUN$0 = ($get_buffer$5 >> $95 & $88 + -1) + $88 | 0; + $bits_left$6 = $95; + $get_buffer$6 = $get_buffer$5; } - } + $EOBRUN$1 = $EOBRUN$0 + -1 | 0; + $bits_left$8 = $bits_left$6; + $get_buffer$8 = $get_buffer$6; + } while (0); + $104 = HEAP32[$22 >> 2] | 0; + HEAP32[$104 >> 2] = HEAP32[$br_state >> 2]; + HEAP32[$104 + 4 >> 2] = HEAP32[$27 >> 2]; + HEAP32[$28 >> 2] = $get_buffer$8; + HEAP32[$30 >> 2] = $bits_left$8; + $EOBRUN$2 = $EOBRUN$1; + } else $EOBRUN$2 = $18 + -1 | 0; + HEAP32[$17 >> 2] = $EOBRUN$2; + } + $107 = $1 + 40 | 0; + HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + -1; + $$0 = 1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $103 = 0, $115 = 0, $116 = 0, $12 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $131 = $30; + break; } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $131 = $30; + break; } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $241 = HEAP32[$wk$440 >> 2] | 0; - if (($241 | 0) == ($i$338 | 0)) { - $247 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $247; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $131; + $__a$2 = $__a$1; + break; } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $259 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } + } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $103 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $103 = $100; + } else $103 = $$pre18; + $102 = __ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP16[$__v >> 1] = $102; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $103, $__err); + if (!$$pre$i$i$i$lcssa) $116 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $116 = 0; + } else $116 = $$pre$i$i$i$lcssa; else $116 = $$pre$i$i$i$lcssa; + $115 = ($116 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$115) label = 39; + } while (0); + if ((label | 0) == 38) if ($115) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $130 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $130 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $103 = 0, $115 = 0, $116 = 0, $12 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$534 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $326 = $labelInfo + 12 + ($i$633 << 2) | 0; - $329 = $i$633 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $131; + $__a$2 = $__a$1; + break; + } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $103 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $103 = $100; + } else $103 = $$pre18; + $102 = __ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $102; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $103, $__err); + if (!$$pre$i$i$i$lcssa) $116 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $116 = 0; + } else $116 = $$pre$i$i$i$lcssa; else $116 = $$pre$i$i$i$lcssa; + $115 = ($116 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$115) label = 39; + } while (0); + if ((label | 0) == 38) if ($115) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $130 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $130 | 0; } -function _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $103 = 0, $115 = 0, $116 = 0, $12 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 240 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $131; + $__a$2 = $__a$1; + break; + } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $103 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $103 = $100; + } else $103 = $$pre18; + $102 = __ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $102; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $103, $__err); + if (!$$pre$i$i$i$lcssa) $116 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $116 = 0; + } else $116 = $$pre$i$i$i$lcssa; else $116 = $$pre$i$i$i$lcssa; + $115 = ($116 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$115) label = 39; + } while (0); + if ((label | 0) == 38) if ($115) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $130 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $130 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i2 = 0, $$pre$i2$i$i = 0, $$pre18 = 0, $0 = 0, $100 = 0, $102 = 0, $103 = 0, $115 = 0, $116 = 0, $12 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $29 = 0, $30 = 0, $43 = 0, $49 = 0, $58 = 0, $63 = 0, $65 = 0, $66 = 0, $67 = 0, $79 = 0, $8 = 0, $86 = 0, $99 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $__thousands_sep = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__atoms = sp + 202 | 0; + $__thousands_sep = sp + 200 | 0; + $__grouping = sp + 24 | 0; + $__buf = sp + 12 | 0; + $__a_end = sp + 8 | 0; + $__g = sp + 40 | 0; + $__g_end = sp + 4 | 0; + $__dc = sp; + $0 = __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($__iob) | 0; + __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($__grouping, $__iob, $__atoms, $__thousands_sep); + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $8 = 10; else $8 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $8, 0); + $12 = $__buf + 8 | 0; + $14 = $__buf + 1 | 0; + $15 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $15; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $16 = $__buf + 4 | 0; + $17 = HEAP8[$__thousands_sep >> 0] | 0; + $$pre$i$i$i2 = HEAP32[$__b >> 2] | 0; + $__a$0 = $15; + L4 : while (1) { + if (!$$pre$i$i$i2) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i2 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i2 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i2 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i2) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i2; else $$pre$i$i$i = $$pre$i$i$i2; + $29 = ($$pre$i$i$i | 0) == 0; + $30 = HEAP32[$__e >> 2] | 0; + do if (!$30) label = 13; else { + if ((HEAP32[$30 + 12 >> 2] | 0) != (HEAP32[$30 + 16 >> 2] | 0)) if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; + } + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$30 >> 2] | 0) + 36 >> 2] & 127]($30) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($29) { + $131 = $30; + break; + } else { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $30; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($29) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $43 = HEAP8[$__buf >> 0] | 0; + $49 = ($43 & 1) == 0 ? ($43 & 255) >>> 1 : HEAP32[$16 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $49 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $49 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $58 = 10; else $58 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $58, 0); + $63 = (HEAP8[$__buf >> 0] & 1) == 0 ? $14 : HEAP32[$12 >> 2] | 0; + HEAP32[$__a_end >> 2] = $63 + $49; + $__a$1 = $63; + } else $__a$1 = $__a$0; + $65 = $$pre$i$i$i + 12 | 0; + $66 = HEAP32[$65 >> 2] | 0; + $67 = $$pre$i$i$i + 16 | 0; + if (($66 | 0) == (HEAP32[$67 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$66 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, $0, $__a$1, $__a_end, $__dc, $17, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $131; + $__a$2 = $__a$1; + break; + } + $79 = HEAP32[$65 >> 2] | 0; + if (($79 | 0) == (HEAP32[$67 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$65 >> 2] = $79 + 1; + $$pre$i$i$i2 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; - do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) { - $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($47 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $47; - $50 = ($47 << 16 >> 16) * 7 | 0; - $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; - $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; - $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; - HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $71 = $70 << 16 >> 16; - $72 = $70 << 16 >> 16 > 0; - if ($66 << 16 >> 16 <= 0) { - if ($72) { - HEAP16[$pnt2$363 >> 1] = $70; - $172 = $71 * 7 | 0; - $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; - $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; - $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; - $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; - if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + $86 = HEAP8[$__grouping >> 0] | 0; + $$pre18 = HEAP32[$__g_end >> 2] | 0; + if (!((($86 & 1) == 0 ? ($86 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $103 = $$pre18; else if (($$pre18 - $__g | 0) < 160) { + $99 = HEAP32[$__dc >> 2] | 0; + $100 = $$pre18 + 4 | 0; + HEAP32[$__g_end >> 2] = $100; + HEAP32[$$pre18 >> 2] = $99; + $103 = $100; + } else $103 = $$pre18; + $102 = __ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji($__a$2, HEAP32[$__a_end >> 2] | 0, $__err, $0) | 0; + HEAP32[$__v >> 2] = $102; + __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $103, $__err); + if (!$$pre$i$i$i$lcssa) $116 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $116 = 0; + } else $116 = $$pre$i$i$i$lcssa; else $116 = $$pre$i$i$i$lcssa; + $115 = ($116 | 0) == 0; + do if (!$$pre$i2$i$i) label = 38; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 38; + break; + } + if (!$115) label = 39; + } while (0); + if ((label | 0) == 38) if ($115) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $130 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); + STACKTOP = sp; + return $130 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($first, $last, $db, $status) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + $status = $status | 0; + var $$0$i$i$i11 = 0, $$0$i2 = 0, $$03$i = 0, $$lcssa = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $31 = 0, $32 = 0, $41 = 0, $44 = 0, $47 = 0, $49 = 0, $6 = 0, $66 = 0, $67 = 0, $78 = 0, $83 = 0, $95 = 0, $__p$0$i$i$i10 = 0, $__p$0$ph$i$i$i = 0, $i$0$i16 = 0, $t$0 = 0, $t$0$i15 = 0, $t$0$i15$lcssa20 = 0, $t$1$i$ph = 0, $t$1$i12 = 0, $t$2$i = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 24 | 0; + $1 = sp + 12 | 0; + $2 = sp; + L1 : do if ($first >>> 0 < $last >>> 0) { + L3 : do if ((HEAP8[$first >> 0] | 0) == 95) { + $6 = $last; + if (($6 - $first | 0) <= 3) { + HEAP32[$status >> 2] = -2; + break L1; + } + switch (HEAP8[$first + 1 >> 0] | 0) { + case 90: + { + $12 = $first + 2 | 0; + $13 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($12, $last, $db) | 0; + if (($13 | 0) == ($12 | 0) | ($13 | 0) == ($last | 0)) $t$0 = $13; else if ((HEAP8[$13 >> 0] | 0) == 46) { + $20 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($20 | 0)) $$03$i = $13; else { + $22 = $20 + -24 | 0; + $24 = $6 - $13 | 0; + if ($24 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); + if ($24 >>> 0 < 11) { + HEAP8[$2 >> 0] = $24 << 1; + $__p$0$ph$i$i$i = $2 + 1 | 0; + } else { + $31 = $24 + 16 & -16; + $32 = _malloc($31) | 0; + HEAP32[$2 + 8 >> 2] = $32; + HEAP32[$2 >> 2] = $31 | 1; + HEAP32[$2 + 4 >> 2] = $24; + $__p$0$ph$i$i$i = $32; } - $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($192 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $192; - $195 = ($192 << 16 >> 16) * 7 | 0; - $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; - $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; - $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; - HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; - $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; - if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; + if (($13 | 0) != ($last | 0)) { + $$0$i$i$i11 = $13; + $__p$0$i$i$i10 = $__p$0$ph$i$i$i; + while (1) { + HEAP8[$__p$0$i$i$i10 >> 0] = HEAP8[$$0$i$i$i11 >> 0] | 0; + $$0$i$i$i11 = $$0$i$i$i11 + 1 | 0; + if (($$0$i$i$i11 | 0) == ($last | 0)) break; else $__p$0$i$i$i10 = $__p$0$i$i$i10 + 1 | 0; } - HEAP32[$209 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $212 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $212; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; - $217 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $212; - break; } + HEAP8[$__p$0$ph$i$i$i + $24 >> 0] = 0; + $41 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 47785) | 0; + HEAP32[$1 >> 2] = HEAP32[$41 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$41 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$41 + 8 >> 2]; + HEAP32[$41 >> 2] = 0; + HEAP32[$41 + 4 >> 2] = 0; + HEAP32[$41 + 8 >> 2] = 0; + $44 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$44 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$44 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$44 + 8 >> 2]; + HEAP32[$44 >> 2] = 0; + HEAP32[$44 + 4 >> 2] = 0; + HEAP32[$44 + 8 >> 2] = 0; + $47 = HEAP8[$0 >> 0] | 0; + $49 = ($47 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($22, $49 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $49 ? ($47 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$03$i = $last; } - if ($72) { - $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; - if (($75 | 0) > ($78 | 0)) { - HEAP16[$pnt2$363 >> 1] = $78; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $95 = $78; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $95 = $78; - } else { - HEAP16[$pnt2$363 >> 1] = $75; - if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $95 = $75; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $95 = $75; - } - $97 = ($95 << 16 >> 16) * 7 | 0; - $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; - $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; - $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; - HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + $t$0 = $$03$i; + } else $t$0 = $13; + if (($t$0 | 0) == ($last | 0)) break L3; + HEAP32[$status >> 2] = -2; + break L1; + break; + } + case 95: + { + label = 20; + break; + } + default: + {} + } + if ((label | 0) == 20) if ((HEAP8[$first + 2 >> 0] | 0) == 95) if ((HEAP8[$first + 3 >> 0] | 0) == 90) { + $66 = $first + 4 | 0; + $67 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($66, $last, $db) | 0; + if (($67 | 0) == ($66 | 0) | ($67 | 0) == ($last | 0)) { + HEAP32[$status >> 2] = -2; + break L1; + } + L36 : do if (($6 - $67 | 0) > 12) { + $i$0$i16 = 0; + $t$0$i15 = $67; + while (1) { + if ((HEAP8[$t$0$i15 >> 0] | 0) != (HEAP8[47790 + $i$0$i16 >> 0] | 0)) { + $$0$i2 = $67; + break L36; } - $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($113 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $66; - $153 = $67 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; - $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $i$0$i16 = $i$0$i16 + 1 | 0; + $78 = $t$0$i15 + 1 | 0; + if (($i$0$i16 | 0) >= 13) { + $$lcssa = $78; + $t$0$i15$lcssa20 = $t$0$i15; break; - } - $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($118 | 0) > ($121 | 0)) { - HEAP16[$pnt2$363 >> 1] = $121; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $138 = $121; - break; - } else $wk$246 = $wk$246 + 4 | 0; + } else $t$0$i15 = $78; + } + L41 : do if (($$lcssa | 0) == ($last | 0)) $t$2$i = $last; else { + if ((HEAP8[$$lcssa >> 0] | 0) == 95) { + $83 = $t$0$i15$lcssa20 + 2 | 0; + if (($83 | 0) == ($last | 0)) { + $$0$i2 = $67; + break L36; + } + if (((HEAP8[$83 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { + $$0$i2 = $67; + break L36; + } + $t$1$i$ph = $t$0$i15$lcssa20 + 3 | 0; + } else $t$1$i$ph = $$lcssa; + if (($t$1$i$ph | 0) == ($last | 0)) $t$2$i = $last; else { + $t$1$i12 = $t$1$i$ph; + while (1) { + if (((HEAP8[$t$1$i12 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { + $t$2$i = $t$1$i12; + break L41; } - } else $138 = $121; - } else { - HEAP16[$pnt2$363 >> 1] = $118; - if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $138 = $118; - break; - } else $wk$343 = $wk$343 + 4 | 0; + $t$1$i12 = $t$1$i12 + 1 | 0; + if (($t$1$i12 | 0) == ($last | 0)) { + $t$2$i = $last; + break; } - } else $138 = $118; + } } - $140 = ($138 << 16 >> 16) * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; } while (0); - $i$256 = $i$256 + 1 | 0; - $232 = $pnt$164 + 4 | 0; - $233 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $232; - $pnt2$3$lcssa = $233; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $232; - $pnt2$363 = $233; - $wk_max$158 = $wk_max$2; + $95 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($95 | 0)) $$0$i2 = $67; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($95 + -24 | 0, 0, 47804) | 0; + $$0$i2 = $t$2$i; } - } + } else $$0$i2 = $67; while (0); + if (($$0$i2 | 0) == ($last | 0)) break; + HEAP32[$status >> 2] = -2; + break L1; + } + HEAP32[$status >> 2] = -2; + break L1; + } else if ((__ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0) != ($last | 0)) { + HEAP32[$status >> 2] = -2; + break L1; + } while (0); + if (!(HEAP32[$status >> 2] | 0)) if ((HEAP32[$db >> 2] | 0) == (HEAP32[$db + 4 >> 2] | 0)) HEAP32[$status >> 2] = -2; + } else HEAP32[$status >> 2] = -2; while (0); + STACKTOP = sp; + return; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$pre$i$i$i = 0, $$pre$i$i$i$lcssa = 0, $$pre$i$i$i5 = 0, $$pre$i2$i$i = 0, $0 = 0, $100 = 0, $101 = 0, $115 = 0, $116 = 0, $130 = 0, $131 = 0, $15 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $35 = 0, $36 = 0, $4 = 0, $49 = 0, $55 = 0, $64 = 0, $69 = 0, $71 = 0, $72 = 0, $73 = 0, $85 = 0, $__a$0 = 0, $__a$1 = 0, $__a$2 = 0, $__a_end = 0, $__atoms = 0, $__buf = 0, $__dc = 0, $__g = 0, $__g_end = 0, $__grouping = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $__atoms = sp + 208 | 0; + $__grouping = sp + 32 | 0; + $0 = sp + 28 | 0; + $__buf = sp + 16 | 0; + $__a_end = sp + 12 | 0; + $__g = sp + 48 | 0; + $__g_end = sp + 8 | 0; + $__dc = sp + 4 | 0; + HEAP32[$__grouping >> 2] = 0; + HEAP32[$__grouping + 4 >> 2] = 0; + HEAP32[$__grouping + 8 >> 2] = 0; + $3 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $3; + $4 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 32 >> 2] & 15]($4, 55292, 55318, $__atoms) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($3) | 0; + HEAP32[$__buf >> 2] = 0; + HEAP32[$__buf + 4 >> 2] = 0; + HEAP32[$__buf + 8 >> 2] = 0; + if (!(HEAP8[$__buf >> 0] & 1)) $15 = 10; else $15 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $15, 0); + $19 = $__buf + 8 | 0; + $21 = $__buf + 1 | 0; + $22 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + HEAP32[$__a_end >> 2] = $22; + HEAP32[$__g_end >> 2] = $__g; + HEAP32[$__dc >> 2] = 0; + $23 = $__buf + 4 | 0; + $$pre$i$i$i5 = HEAP32[$__b >> 2] | 0; + $__a$0 = $22; + L4 : while (1) { + if (!$$pre$i$i$i5) $$pre$i$i$i = 0; else if ((HEAP32[$$pre$i$i$i5 + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i5 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i5 >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i5) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $$pre$i$i$i = 0; + } else $$pre$i$i$i = $$pre$i$i$i5; else $$pre$i$i$i = $$pre$i$i$i5; + $35 = ($$pre$i$i$i | 0) == 0; + $36 = HEAP32[$__e >> 2] | 0; + do if (!$36) label = 13; else { + if ((HEAP32[$36 + 12 >> 2] | 0) != (HEAP32[$36 + 16 >> 2] | 0)) if ($35) { + $131 = $36; + break; } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $36; + $__a$2 = $__a$0; + break L4; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$36 >> 2] | 0) + 36 >> 2] & 127]($36) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 13; + break; + } else if ($35) { + $131 = $36; + break; } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $241 = HEAP32[$wk$440 >> 2] | 0; - if (($241 | 0) == ($i$338 | 0)) { - $247 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $247; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $36; + $__a$2 = $__a$0; + break L4; } + } while (0); + if ((label | 0) == 13) { + label = 0; + if ($35) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = 0; + $__a$2 = $__a$0; + break; + } else $131 = 0; + } + $49 = HEAP8[$__buf >> 0] | 0; + $55 = ($49 & 1) == 0 ? ($49 & 255) >>> 1 : HEAP32[$23 >> 2] | 0; + if ((HEAP32[$__a_end >> 2] | 0) == ($__a$0 + $55 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $55 << 1, 0); + if (!(HEAP8[$__buf >> 0] & 1)) $64 = 10; else $64 = (HEAP32[$__buf >> 2] & -2) + -1 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, $64, 0); + $69 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + HEAP32[$__a_end >> 2] = $69 + $55; + $__a$1 = $69; + } else $__a$1 = $__a$0; + $71 = $$pre$i$i$i + 12 | 0; + $72 = HEAP32[$71 >> 2] | 0; + $73 = $$pre$i$i$i + 16 | 0; + if (($72 | 0) == (HEAP32[$73 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i) | 0; else $$0$i$i = HEAPU8[$72 >> 0] | 0; + if (__ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($$0$i$i & 255, 16, $__a$1, $__a_end, $__dc, 0, $__grouping, $__g, $__g_end, $__atoms) | 0) { + $$pre$i$i$i$lcssa = $$pre$i$i$i; + $$pre$i2$i$i = $131; + $__a$2 = $__a$1; + break; } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $259 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$534 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $326 = $labelInfo + 12 + ($i$633 << 2) | 0; - $329 = $i$633 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $85 = HEAP32[$71 >> 2] | 0; + if (($85 | 0) == (HEAP32[$73 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i >> 2] | 0) + 40 >> 2] & 127]($$pre$i$i$i) | 0; + $$pre$i$i$i5 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; + } else { + HEAP32[$71 >> 2] = $85 + 1; + $$pre$i$i$i5 = $$pre$i$i$i; + $__a$0 = $__a$1; + continue; } } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($__buf, (HEAP32[$__a_end >> 2] | 0) - $__a$2 | 0, 0); + $100 = (HEAP8[$__buf >> 0] & 1) == 0 ? $21 : HEAP32[$19 >> 2] | 0; + $101 = __ZNSt3__16__clocEv() | 0; + HEAP32[$vararg_buffer >> 2] = $__v; + if ((__ZNSt3__110__sscanf_lEPKcP15__locale_structS1_z($100, $101, 56676, $vararg_buffer) | 0) != 1) HEAP32[$__err >> 2] = 4; + if (!$$pre$i$i$i$lcssa) $116 = 0; else if ((HEAP32[$$pre$i$i$i$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i$i$i$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i$i$i$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i$i$i$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $116 = 0; + } else $116 = $$pre$i$i$i$lcssa; else $116 = $$pre$i$i$i$lcssa; + $115 = ($116 | 0) == 0; + do if (!$$pre$i2$i$i) label = 37; else { + if ((HEAP32[$$pre$i2$i$i + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 37; + break; + } + if (!$115) label = 38; + } while (0); + if ((label | 0) == 37) if ($115) label = 38; + if ((label | 0) == 38) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $130 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__buf); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return $130 | 0; } -function _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _arMatrixSelfInv($m) { + $m = $m | 0; + var $$0$i = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $18 = 0.0, $19 = 0, $2 = 0, $24 = 0, $25 = 0, $26 = 0, $30 = 0.0, $35 = 0.0, $43 = 0, $44 = 0.0, $59 = 0, $61 = 0, $63 = 0, $65 = 0, $70 = 0.0, $exitcond$i23 = 0, $exitcond12$i36 = 0, $exitcond13$i43 = 0, $exitcond7$i30 = 0, $i$0$i14 = 0, $i$1$i45 = 0, $i$2$i8 = 0, $indvars$iv$i49 = 0, $indvars$iv9$i44 = 0, $ip$0$i51 = 0, $ip$1$i$lcssa = 0, $ip$1$i15 = 0, $ip$2$i = 0, $j$0$i24 = 0, $j$1$i31 = 0, $j$2$i37 = 0, $j$3$i$lcssa = 0, $j$3$i4 = 0, $n$0$i53 = 0, $n$1$i50 = 0, $n$2$i12 = 0, $nos$i = 0, $p$0$i$lcssa = 0.0, $p$0$i17 = 0.0, $p$1$i = 0.0, $scevgep$i = 0, $wap$0$i16 = 0, $wap$1$i26 = 0, $wap$2$i32 = 0, $wap$3$i39 = 0, $wap$4$i10 = 0, $wbp$0$i25 = 0, $wbp$1$i38 = 0, $wbp$2$i9 = 0, sp = 0, $wap$2$i32$looptemp = 0, $wap$3$i39$looptemp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 2e3 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $nos$i = sp; + $0 = HEAP32[$m >> 2] | 0; + $2 = HEAP32[$m + 4 >> 2] | 0; + L1 : do if (($2 | 0) > 500) $$0$i = 0; else { + switch ($2 | 0) { + case 0: + { + $$0$i = 0; + break L1; + break; } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + case 1: + { + HEAPF64[$0 >> 3] = 1.0 / +HEAPF64[$0 >> 3]; + $$0$i = $0; + break L1; + break; } + default: + {} } - } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - $36 = HEAPU8[$pnt$164 + 1 >> 0] | 0; - do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($47 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $47; - $50 = ($47 << 16 >> 16) * 7 | 0; - $52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1; - $56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256; - $60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0; - HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $71 = $70 << 16 >> 16; - $72 = $70 << 16 >> 16 > 0; - if ($66 << 16 >> 16 <= 0) { - if ($72) { - HEAP16[$pnt2$363 >> 1] = $70; - $172 = $71 * 7 | 0; - $174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1; - $178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256; - $182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069; - $186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0; - if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $192 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($192 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $192; - $195 = ($192 << 16 >> 16) * 7 | 0; - $197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1; - $201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256; - $205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0; - HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069; - $209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0; - if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$209 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $212 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $212; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16; - $217 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $212; - break; - } - } - if ($72) { - $75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0; - if (($75 | 0) > ($78 | 0)) { - HEAP16[$pnt2$363 >> 1] = $78; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $95 = $78; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $95 = $78; - } else { - HEAP16[$pnt2$363 >> 1] = $75; - if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $95 = $75; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $95 = $75; - } - $97 = ($95 << 16 >> 16) * 7 | 0; - $99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1; - $103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256; - $107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0; - HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + if (($2 | 0) > 0) { + $n$0$i53 = 0; + do { + HEAP32[$nos$i + ($n$0$i53 << 2) >> 2] = $n$0$i53; + $n$0$i53 = $n$0$i53 + 1 | 0; + } while (($n$0$i53 | 0) < ($2 | 0)); + } + $scevgep$i = $0 + ($2 + -1 << 3) | 0; + if (($2 | 0) > 0) { + $exitcond$i23 = ($2 | 0) == 0; + $exitcond7$i30 = ($2 | 0) == 1; + $exitcond13$i43 = ($2 | 0) == 0; + $exitcond12$i36 = ($2 | 0) == 1; + $indvars$iv$i49 = $scevgep$i; + $ip$0$i51 = 0; + $n$1$i50 = 0; + while (1) { + $15 = $0 + ((Math_imul($n$1$i50, $2) | 0) << 3) | 0; + if (($n$1$i50 | 0) < ($2 | 0)) { + $i$0$i14 = $n$1$i50; + $ip$1$i15 = $ip$0$i51; + $p$0$i17 = 0.0; + $wap$0$i16 = $15; + while (1) { + $18 = +Math_abs(+(+HEAPF64[$wap$0$i16 >> 3])); + $19 = $p$0$i17 < $18; + $ip$2$i = $19 ? $i$0$i14 : $ip$1$i15; + $p$1$i = $19 ? $18 : $p$0$i17; + $i$0$i14 = $i$0$i14 + 1 | 0; + if (($i$0$i14 | 0) >= ($2 | 0)) { + $ip$1$i$lcssa = $ip$2$i; + $p$0$i$lcssa = $p$1$i; break; + } else { + $ip$1$i15 = $ip$2$i; + $p$0$i17 = $p$1$i; + $wap$0$i16 = $wap$0$i16 + ($2 << 3) | 0; } - $113 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($113 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $66; - $153 = $67 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069; - $167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + } + } else { + $ip$1$i$lcssa = $ip$0$i51; + $p$0$i$lcssa = 0.0; + } + if ($p$0$i$lcssa <= 1.0e-10) { + $$0$i = 0; + break L1; + } + $24 = $nos$i + ($ip$1$i$lcssa << 2) | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $nos$i + ($n$1$i50 << 2) | 0; + HEAP32[$24 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$26 >> 2] = $25; + if (!$exitcond$i23) { + $j$0$i24 = 0; + $wap$1$i26 = $0 + ((Math_imul($ip$1$i$lcssa, $2) | 0) << 3) | 0; + $wbp$0$i25 = $15; + while (1) { + $30 = +HEAPF64[$wap$1$i26 >> 3]; + HEAPF64[$wap$1$i26 >> 3] = +HEAPF64[$wbp$0$i25 >> 3]; + HEAPF64[$wbp$0$i25 >> 3] = $30; + $j$0$i24 = $j$0$i24 + 1 | 0; + if (($j$0$i24 | 0) == ($2 | 0)) break; else { + $wap$1$i26 = $wap$1$i26 + 8 | 0; + $wbp$0$i25 = $wbp$0$i25 + 8 | 0; } - $118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - $121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($118 | 0) > ($121 | 0)) { - HEAP16[$pnt2$363 >> 1] = $121; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $138 = $121; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $138 = $121; - } else { - HEAP16[$pnt2$363 >> 1] = $118; - if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; + } + } + $35 = +HEAPF64[$15 >> 3]; + if (!$exitcond7$i30) { + $j$1$i31 = 1; + $wap$2$i32 = $15; + do { + $wap$2$i32$looptemp = $wap$2$i32; + $wap$2$i32 = $wap$2$i32 + 8 | 0; + HEAPF64[$wap$2$i32$looptemp >> 3] = +HEAPF64[$wap$2$i32 >> 3] / $35; + $j$1$i31 = $j$1$i31 + 1 | 0; + } while (($j$1$i31 | 0) != ($2 | 0)); + } + HEAPF64[$indvars$iv$i49 >> 3] = 1.0 / $35; + if (!$exitcond13$i43) { + $i$1$i45 = 0; + $indvars$iv9$i44 = $scevgep$i; + while (1) { + if (($i$1$i45 | 0) != ($n$1$i50 | 0)) { + $43 = $0 + ((Math_imul($i$1$i45, $2) | 0) << 3) | 0; + $44 = +HEAPF64[$43 >> 3]; + if (!$exitcond12$i36) { + $j$2$i37 = 1; + $wap$3$i39 = $43; + $wbp$1$i38 = $15; while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $138 = $118; - break; - } else $wk$343 = $wk$343 + 4 | 0; + $wap$3$i39$looptemp = $wap$3$i39; + $wap$3$i39 = $wap$3$i39 + 8 | 0; + HEAPF64[$wap$3$i39$looptemp >> 3] = +HEAPF64[$wap$3$i39 >> 3] - $44 * +HEAPF64[$wbp$1$i38 >> 3]; + $j$2$i37 = $j$2$i37 + 1 | 0; + if (($j$2$i37 | 0) == ($2 | 0)) break; else $wbp$1$i38 = $wbp$1$i38 + 8 | 0; } - } else $138 = $118; + } + HEAPF64[$indvars$iv9$i44 >> 3] = -($44 * +HEAPF64[$indvars$iv$i49 >> 3]); } - $140 = ($138 << 16 >> 16) * 7 | 0; - $142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1; - $146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256; - $150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $232 = $pnt$164 + 4 | 0; - $233 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $232; - $pnt2$3$lcssa = $233; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $232; - $pnt2$363 = $233; - $wk_max$158 = $wk_max$2; + $i$1$i45 = $i$1$i45 + 1 | 0; + if (($i$1$i45 | 0) == ($2 | 0)) break; else $indvars$iv9$i44 = $indvars$iv9$i44 + ($2 << 3) | 0; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $n$1$i50 = $n$1$i50 + 1 | 0; + if (($n$1$i50 | 0) >= ($2 | 0)) break; else { + $indvars$iv$i49 = $indvars$iv$i49 + ($2 << 3) | 0; + $ip$0$i51 = $ip$1$i$lcssa; + } } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $239 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; + if (($2 | 0) > 0) { + $13 = ($2 | 0) > 0; + $n$2$i12 = 0; while (1) { - $241 = HEAP32[$wk$440 >> 2] | 0; - if (($241 | 0) == ($i$338 | 0)) { - $247 = $j$139; - $j$2 = $j$139 + 1 | 0; + $59 = $nos$i + ($n$2$i12 << 2) | 0; + L43 : do if (($n$2$i12 | 0) < ($2 | 0)) { + $61 = $59; + $j$3$i4 = $n$2$i12; + while (1) { + if ((HEAP32[$61 >> 2] | 0) == ($n$2$i12 | 0)) { + $$lcssa = $61; + $j$3$i$lcssa = $j$3$i4; + break L43; + } + $63 = $j$3$i4 + 1 | 0; + $65 = $nos$i + ($63 << 2) | 0; + if (($63 | 0) < ($2 | 0)) { + $61 = $65; + $j$3$i4 = $63; + } else { + $$lcssa = $65; + $j$3$i$lcssa = $63; + break; + } + } } else { - $247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $$lcssa = $59; + $j$3$i$lcssa = $n$2$i12; + } while (0); + HEAP32[$$lcssa >> 2] = HEAP32[$nos$i + ($n$2$i12 << 2) >> 2]; + if ($13) { + $i$2$i8 = 0; + $wap$4$i10 = $0 + ($j$3$i$lcssa << 3) | 0; + $wbp$2$i9 = $0 + ($n$2$i12 << 3) | 0; + while (1) { + $70 = +HEAPF64[$wap$4$i10 >> 3]; + HEAPF64[$wap$4$i10 >> 3] = +HEAPF64[$wbp$2$i9 >> 3]; + HEAPF64[$wbp$2$i9 >> 3] = $70; + $i$2$i8 = $i$2$i8 + 1 | 0; + if (($i$2$i8 | 0) >= ($2 | 0)) break; else { + $wap$4$i10 = $wap$4$i10 + ($2 << 3) | 0; + $wbp$2$i9 = $wbp$2$i9 + ($2 << 3) | 0; + } + } } - HEAP32[$wk$440 >> 2] = $247; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $n$2$i12 = $n$2$i12 + 1 | 0; + if (($n$2$i12 | 0) >= ($2 | 0)) { + $$0$i = $0; break; } } - } - $251 = $labelInfo + 8 | 0; - $252 = $j$1$lcssa + -1 | 0; - HEAP32[$251 >> 2] = $252; - if (!$252) $$0 = 0; else { - _memset($239 | 0, 0, $252 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $259 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $274 = $i$534 * 7 | 0; - $277 = $labelInfo + 12 + ($273 << 2) | 0; - HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0); - $284 = $273 << 1; - $285 = $labelInfo + 655376 + ($284 << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0); - $293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0; - HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0); - $296 = $273 << 2; - $297 = $labelInfo + 131084 + ($296 << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0; - $315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0; - if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315; - $318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0; - $322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0; - if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$251 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $326 = $labelInfo + 12 + ($i$633 << 2) | 0; - $329 = $i$633 << 1; - $330 = $labelInfo + 655376 + ($329 << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0); - $336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0; - HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } + } else $$0$i = $0; + } while (0); STACKTOP = sp; - return $$0 | 0; + return (($$0$i | 0) == 0) << 31 >> 31 | 0; } -function _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _jpeg_idct_float($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $$sum10 = 0, $$sum12 = 0, $$sum14 = 0, $$sum2 = 0, $$sum4 = 0, $$sum6 = 0, $$sum8 = 0, $1 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $123 = 0, $125 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $131 = 0.0, $133 = 0.0, $134 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $140 = 0.0, $141 = 0.0, $143 = 0.0, $145 = 0.0, $146 = 0.0, $147 = 0.0, $149 = 0.0, $151 = 0.0, $152 = 0.0, $153 = 0.0, $154 = 0.0, $158 = 0.0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $28 = 0.0, $39 = 0.0, $41 = 0, $44 = 0.0, $5 = 0, $50 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $7 = 0, $70 = 0.0, $76 = 0.0, $82 = 0.0, $88 = 0.0, $89 = 0.0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $97 = 0.0, $ctr$020 = 0, $ctr$116 = 0, $inptr$017 = 0, $quantptr$018 = 0, $workspace = 0, $wsptr$019 = 0, $wsptr$215 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 256 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } + $workspace = sp; + $1 = HEAP32[$cinfo + 324 >> 2] | 0; + $ctr$020 = 8; + $inptr$017 = $coef_block; + $quantptr$018 = HEAP32[$compptr + 80 >> 2] | 0; + $wsptr$019 = $workspace; + while (1) { + $5 = HEAP16[$inptr$017 + 16 >> 1] | 0; + $7 = HEAP16[$inptr$017 + 32 >> 1] | 0; + if (!(($5 | $7) << 16 >> 16)) if (!(HEAP16[$inptr$017 + 48 >> 1] | 0)) if (!(HEAP16[$inptr$017 + 64 >> 1] | 0)) if (!(HEAP16[$inptr$017 + 80 >> 1] | 0)) if (!(HEAP16[$inptr$017 + 96 >> 1] | 0)) if (!(HEAP16[$inptr$017 + 112 >> 1] | 0)) { + $28 = +(HEAP16[$inptr$017 >> 1] | 0) * +HEAPF32[$quantptr$018 >> 2]; + HEAPF32[$wsptr$019 >> 2] = $28; + HEAPF32[$wsptr$019 + 32 >> 2] = $28; + HEAPF32[$wsptr$019 + 64 >> 2] = $28; + HEAPF32[$wsptr$019 + 96 >> 2] = $28; + HEAPF32[$wsptr$019 + 128 >> 2] = $28; + HEAPF32[$wsptr$019 + 160 >> 2] = $28; + HEAPF32[$wsptr$019 + 192 >> 2] = $28; + HEAPF32[$wsptr$019 + 224 >> 2] = $28; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = 0; + label = 10; + } else { + $41 = $7; + label = 10; } + if ((label | 0) == 10) { + label = 0; + $39 = +(HEAP16[$inptr$017 >> 1] | 0) * +HEAPF32[$quantptr$018 >> 2]; + $44 = +($41 << 16 >> 16) * +HEAPF32[$quantptr$018 + 64 >> 2]; + $50 = +(HEAP16[$inptr$017 + 64 >> 1] | 0) * +HEAPF32[$quantptr$018 + 128 >> 2]; + $56 = +(HEAP16[$inptr$017 + 96 >> 1] | 0) * +HEAPF32[$quantptr$018 + 192 >> 2]; + $57 = $39 + $50; + $58 = $39 - $50; + $59 = $44 + $56; + $62 = ($44 - $56) * 1.4142135381698608 - $59; + $63 = $57 + $59; + $64 = $57 - $59; + $65 = $58 + $62; + $66 = $58 - $62; + $70 = +($5 << 16 >> 16) * +HEAPF32[$quantptr$018 + 32 >> 2]; + $76 = +(HEAP16[$inptr$017 + 48 >> 1] | 0) * +HEAPF32[$quantptr$018 + 96 >> 2]; + $82 = +(HEAP16[$inptr$017 + 80 >> 1] | 0) * +HEAPF32[$quantptr$018 + 160 >> 2]; + $88 = +(HEAP16[$inptr$017 + 112 >> 1] | 0) * +HEAPF32[$quantptr$018 + 224 >> 2]; + $89 = $76 + $82; + $90 = $82 - $76; + $91 = $70 + $88; + $92 = $70 - $88; + $93 = $89 + $91; + $97 = ($90 + $92) * 1.8477590084075928; + $102 = $97 - $90 * 2.613126039505005 - $93; + $103 = ($91 - $89) * 1.4142135381698608 - $102; + $104 = $92 * 1.0823922157287598 - $97 + $103; + HEAPF32[$wsptr$019 >> 2] = $63 + $93; + HEAPF32[$wsptr$019 + 224 >> 2] = $63 - $93; + HEAPF32[$wsptr$019 + 32 >> 2] = $65 + $102; + HEAPF32[$wsptr$019 + 192 >> 2] = $65 - $102; + HEAPF32[$wsptr$019 + 64 >> 2] = $66 + $103; + HEAPF32[$wsptr$019 + 160 >> 2] = $66 - $103; + HEAPF32[$wsptr$019 + 128 >> 2] = $64 + $104; + HEAPF32[$wsptr$019 + 96 >> 2] = $64 - $104; + } + if (($ctr$020 | 0) > 1) { + $ctr$020 = $ctr$020 + -1 | 0; + $inptr$017 = $inptr$017 + 2 | 0; + $quantptr$018 = $quantptr$018 + 4 | 0; + $wsptr$019 = $wsptr$019 + 4 | 0; + } else break; } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + $$sum2 = $output_col + 7 | 0; + $$sum4 = $output_col + 1 | 0; + $$sum6 = $output_col + 6 | 0; + $$sum8 = $output_col + 2 | 0; + $$sum10 = $output_col + 5 | 0; + $$sum12 = $output_col + 4 | 0; + $$sum14 = $output_col + 3 | 0; + $ctr$116 = 0; + $wsptr$215 = $workspace; + while (1) { + $123 = HEAP32[$output_buf + ($ctr$116 << 2) >> 2] | 0; + $125 = +HEAPF32[$wsptr$215 >> 2]; + $127 = +HEAPF32[$wsptr$215 + 16 >> 2]; + $128 = $125 + $127; + $129 = $125 - $127; + $131 = +HEAPF32[$wsptr$215 + 8 >> 2]; + $133 = +HEAPF32[$wsptr$215 + 24 >> 2]; + $134 = $131 + $133; + $137 = ($131 - $133) * 1.4142135381698608 - $134; + $138 = $128 + $134; + $139 = $128 - $134; + $140 = $129 + $137; + $141 = $129 - $137; + $143 = +HEAPF32[$wsptr$215 + 20 >> 2]; + $145 = +HEAPF32[$wsptr$215 + 12 >> 2]; + $146 = $143 + $145; + $147 = $143 - $145; + $149 = +HEAPF32[$wsptr$215 + 4 >> 2]; + $151 = +HEAPF32[$wsptr$215 + 28 >> 2]; + $152 = $149 + $151; + $153 = $149 - $151; + $154 = $146 + $152; + $158 = ($147 + $153) * 1.8477590084075928; + $163 = $158 - $147 * 2.613126039505005 - $154; + $164 = ($152 - $146) * 1.4142135381698608 - $163; + $165 = $153 * 1.0823922157287598 - $158 + $164; + HEAP8[$123 + $output_col >> 0] = HEAP8[$1 + (((~~($138 + $154) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum2 >> 0] = HEAP8[$1 + (((~~($138 - $154) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum4 >> 0] = HEAP8[$1 + (((~~($140 + $163) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum6 >> 0] = HEAP8[$1 + (((~~($140 - $163) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum8 >> 0] = HEAP8[$1 + (((~~($141 + $164) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum10 >> 0] = HEAP8[$1 + (((~~($141 - $164) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum12 >> 0] = HEAP8[$1 + (((~~($139 + $165) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + HEAP8[$123 + $$sum14 >> 0] = HEAP8[$1 + (((~~($139 - $165) + 4 | 0) >>> 3 & 1023) + 128) >> 0] | 0; + $ctr$116 = $ctr$116 + 1 | 0; + if (($ctr$116 | 0) == 8) break; else $wsptr$215 = $wsptr$215 + 32 | 0; + } + STACKTOP = sp; + return; +} + +function _try_realloc_chunk($p, $nb) { + $p = $p | 0; + $nb = $nb | 0; + var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $101 = 0, $103 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $116 = 0, $118 = 0, $119 = 0, $124 = 0, $125 = 0, $134 = 0, $139 = 0, $143 = 0, $149 = 0, $159 = 0, $168 = 0, $2 = 0, $20 = 0, $3 = 0, $33 = 0, $35 = 0, $4 = 0, $45 = 0, $47 = 0, $5 = 0, $56 = 0, $62 = 0, $68 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $76 = 0, $78 = 0, $8 = 0, $91 = 0, $96 = 0, $98 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $newp$0 = 0, $storemerge = 0, $storemerge21 = 0; + $0 = $p + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 & -8; + $3 = $p + $2 | 0; + $4 = HEAP32[2511] | 0; + $5 = $1 & 3; + if (!(($5 | 0) != 1 & $p >>> 0 >= $4 >>> 0 & $p >>> 0 < $3 >>> 0)) _abort(); + $7 = $p + ($2 | 4) | 0; + $8 = HEAP32[$7 >> 2] | 0; + if (!($8 & 1)) _abort(); + if (!$5) { + if ($nb >>> 0 < 256) { + $newp$0 = 0; + return $newp$0 | 0; } + if ($2 >>> 0 >= ($nb + 4 | 0) >>> 0) if (($2 - $nb | 0) >>> 0 <= HEAP32[2627] << 1 >>> 0) { + $newp$0 = $p; + return $newp$0 | 0; + } + $newp$0 = 0; + return $newp$0 | 0; } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$363 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $188 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$205 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $208 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$363 >> 1] = $74; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $91 = $74; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$363 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $91 = $71; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $109 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$363 >> 1] = $117; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $134 = $117; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $134 = $117; - } else { - HEAP16[$pnt2$363 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $134 = $114; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $134 = $114; - } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $228 = $pnt$164 + 4 | 0; - $229 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $228; - $pnt2$363 = $229; - $wk_max$158 = $wk_max$2; - } + if ($2 >>> 0 >= $nb >>> 0) { + $20 = $2 - $nb | 0; + if ($20 >>> 0 <= 15) { + $newp$0 = $p; + return $newp$0 | 0; + } + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $20 | 3; + HEAP32[$7 >> 2] = HEAP32[$7 >> 2] | 1; + _dispose_chunk($p + $nb | 0, $20); + $newp$0 = $p; + return $newp$0 | 0; + } + if (($3 | 0) == (HEAP32[2513] | 0)) { + $33 = (HEAP32[2510] | 0) + $2 | 0; + if ($33 >>> 0 <= $nb >>> 0) { + $newp$0 = 0; + return $newp$0 | 0; + } + $35 = $33 - $nb | 0; + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $35 | 1; + HEAP32[2513] = $p + $nb; + HEAP32[2510] = $35; + $newp$0 = $p; + return $newp$0 | 0; + } + if (($3 | 0) == (HEAP32[2512] | 0)) { + $45 = (HEAP32[2509] | 0) + $2 | 0; + if ($45 >>> 0 < $nb >>> 0) { + $newp$0 = 0; + return $newp$0 | 0; + } + $47 = $45 - $nb | 0; + if ($47 >>> 0 > 15) { + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $47 | 1; + HEAP32[$p + $45 >> 2] = $47; + $56 = $p + ($45 + 4) | 0; + HEAP32[$56 >> 2] = HEAP32[$56 >> 2] & -2; + $storemerge = $p + $nb | 0; + $storemerge21 = $47; + } else { + HEAP32[$0 >> 2] = $1 & 1 | $45 | 2; + $62 = $p + ($45 + 4) | 0; + HEAP32[$62 >> 2] = HEAP32[$62 >> 2] | 1; + $storemerge = 0; + $storemerge21 = 0; + } + HEAP32[2509] = $storemerge21; + HEAP32[2512] = $storemerge; + $newp$0 = $p; + return $newp$0 | 0; + } + if ($8 & 2) { + $newp$0 = 0; + return $newp$0 | 0; + } + $68 = ($8 & -8) + $2 | 0; + if ($68 >>> 0 < $nb >>> 0) { + $newp$0 = 0; + return $newp$0 | 0; + } + $70 = $68 - $nb | 0; + $71 = $8 >>> 3; + do if ($8 >>> 0 < 256) { + $74 = HEAP32[$p + ($2 + 8) >> 2] | 0; + $76 = HEAP32[$p + ($2 + 12) >> 2] | 0; + $78 = 10068 + ($71 << 1 << 2) | 0; + if (($74 | 0) != ($78 | 0)) { + if ($74 >>> 0 < $4 >>> 0) _abort(); + if ((HEAP32[$74 + 12 >> 2] | 0) != ($3 | 0)) _abort(); + } + if (($76 | 0) == ($74 | 0)) { + HEAP32[2507] = HEAP32[2507] & ~(1 << $71); + break; + } + if (($76 | 0) == ($78 | 0)) $$pre$phiZ2D = $76 + 8 | 0; else { + if ($76 >>> 0 < $4 >>> 0) _abort(); + $91 = $76 + 8 | 0; + if ((HEAP32[$91 >> 2] | 0) == ($3 | 0)) $$pre$phiZ2D = $91; else _abort(); + } + HEAP32[$74 + 12 >> 2] = $76; + HEAP32[$$pre$phiZ2D >> 2] = $74; + } else { + $96 = HEAP32[$p + ($2 + 24) >> 2] | 0; + $98 = HEAP32[$p + ($2 + 12) >> 2] | 0; + do if (($98 | 0) == ($3 | 0)) { + $109 = $p + ($2 + 20) | 0; + $110 = HEAP32[$109 >> 2] | 0; + if (!$110) { + $112 = $p + ($2 + 16) | 0; + $113 = HEAP32[$112 >> 2] | 0; + if (!$113) { + $R$1 = 0; + break; + } else { + $R$0 = $113; + $RP$0 = $112; } } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $R$0 = $110; + $RP$0 = $109; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; while (1) { - $237 = HEAP32[$wk$440 >> 2] | 0; - if (($237 | 0) == ($i$338 | 0)) { - $243 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $115 = $R$0 + 20 | 0; + $116 = HEAP32[$115 >> 2] | 0; + if ($116) { + $R$0 = $116; + $RP$0 = $115; + continue; } - HEAP32[$wk$440 >> 2] = $243; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $118 = $R$0 + 16 | 0; + $119 = HEAP32[$118 >> 2] | 0; + if (!$119) { + $R$0$lcssa = $R$0; + $RP$0$lcssa = $RP$0; break; + } else { + $R$0 = $119; + $RP$0 = $118; } } - } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $255 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0)); + if ($RP$0$lcssa >>> 0 < $4 >>> 0) _abort(); else { + HEAP32[$RP$0$lcssa >> 2] = 0; + $R$1 = $R$0$lcssa; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$534 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } else { + $101 = HEAP32[$p + ($2 + 8) >> 2] | 0; + if ($101 >>> 0 < $4 >>> 0) _abort(); + $103 = $101 + 12 | 0; + if ((HEAP32[$103 >> 2] | 0) != ($3 | 0)) _abort(); + $106 = $98 + 8 | 0; + if ((HEAP32[$106 >> 2] | 0) == ($3 | 0)) { + HEAP32[$103 >> 2] = $98; + HEAP32[$106 >> 2] = $101; + $R$1 = $98; + break; + } else _abort(); + } while (0); + if ($96) { + $124 = HEAP32[$p + ($2 + 28) >> 2] | 0; + $125 = 10332 + ($124 << 2) | 0; + if (($3 | 0) == (HEAP32[$125 >> 2] | 0)) { + HEAP32[$125 >> 2] = $R$1; + if (!$R$1) { + HEAP32[2508] = HEAP32[2508] & ~(1 << $124); + break; + } + } else { + if ($96 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); + $134 = $96 + 16 | 0; + if ((HEAP32[$134 >> 2] | 0) == ($3 | 0)) HEAP32[$134 >> 2] = $R$1; else HEAP32[$96 + 20 >> 2] = $R$1; + if (!$R$1) break; + } + $139 = HEAP32[2511] | 0; + if ($R$1 >>> 0 < $139 >>> 0) _abort(); + HEAP32[$R$1 + 24 >> 2] = $96; + $143 = HEAP32[$p + ($2 + 16) >> 2] | 0; + do if ($143) if ($143 >>> 0 < $139 >>> 0) _abort(); else { + HEAP32[$R$1 + 16 >> 2] = $143; + HEAP32[$143 + 24 >> 2] = $R$1; + break; + } while (0); + $149 = HEAP32[$p + ($2 + 20) >> 2] | 0; + if ($149) if ($149 >>> 0 < (HEAP32[2511] | 0) >>> 0) _abort(); else { + HEAP32[$R$1 + 20 >> 2] = $149; + HEAP32[$149 + 24 >> 2] = $R$1; + break; } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $322 = $labelInfo + 12 + ($i$633 << 2) | 0; - $325 = $i$633 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } + } while (0); + if ($70 >>> 0 < 16) { + HEAP32[$0 >> 2] = $68 | $1 & 1 | 2; + $159 = $p + ($68 | 4) | 0; + HEAP32[$159 >> 2] = HEAP32[$159 >> 2] | 1; + $newp$0 = $p; + return $newp$0 | 0; + } else { + HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; + HEAP32[$p + ($nb + 4) >> 2] = $70 | 3; + $168 = $p + ($68 | 4) | 0; + HEAP32[$168 >> 2] = HEAP32[$168 >> 2] | 1; + _dispose_chunk($p + $nb | 0, $70); + $newp$0 = $p; + return $newp$0 | 0; } - STACKTOP = sp; - return $$0 | 0; + return 0; } -function _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; + +function __ZN6vision14BinarykMedoidsILi96EE6assignERNSt3__16vectorIiNS2_9allocatorIiEEEEPKhiPKiiSB_i($this, $assignment, $features, $num_features, $indices, $num_indices, $centers, $num_centers) { + $this = $this | 0; + $assignment = $assignment | 0; + $features = $features | 0; + $num_features = $num_features | 0; + $indices = $indices | 0; + $num_indices = $num_indices | 0; + $centers = $centers | 0; + $num_centers = $num_centers | 0; + var $0 = 0, $14 = 0, $19 = 0, $20 = 0, $24 = 0, $3 = 0, $31 = 0, $36 = 0, $37 = 0, $41 = 0, $48 = 0, $53 = 0, $54 = 0, $58 = 0, $66 = 0, $71 = 0, $72 = 0, $76 = 0, $77 = 0, $78 = 0, $83 = 0, $88 = 0, $91 = 0, $best_dist$0$lcssa = 0, $best_dist$06 = 0, $best_dist$1 = 0, $exitcond5 = 0, $i$08 = 0, $j$07 = 0, $sum_dist$0$lcssa = 0, $sum_dist$09 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } - } + $0 = sp; + $3 = HEAP32[$assignment >> 2] | 0; + if (((HEAP32[$assignment + 4 >> 2] | 0) - $3 >> 2 | 0) != ($num_indices | 0)) { + $14 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30157) | 0, 30564) | 0, 34302) | 0, 198) | 0, 34309) | 0, 30930) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($14 + (HEAP32[(HEAP32[$14 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $19; + $20 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $24 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$20 >> 2] | 0) + 28 >> 2] & 63]($20, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($14, $24) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($14) | 0; + _abort(); } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; + if (($num_features | 0) <= 0) { + $31 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30715) | 0, 30564) | 0, 34302) | 0, 199) | 0, 34309) | 0, 30755) | 0; + $36 = __ZNKSt3__18ios_base6getlocEv($31 + (HEAP32[(HEAP32[$31 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $36; + $37 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $41 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$37 >> 2] | 0) + 28 >> 2] & 63]($37, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($31, $41) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($31) | 0; + _abort(); + } + if (($num_indices | 0) > ($num_features | 0)) { + $48 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30791) | 0, 30564) | 0, 34302) | 0, 200) | 0, 34309) | 0, 30842) | 0; + $53 = __ZNKSt3__18ios_base6getlocEv($48 + (HEAP32[(HEAP32[$48 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $53; + $54 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $58 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$54 >> 2] | 0) + 28 >> 2] & 63]($54, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($48, $58) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($48) | 0; + _abort(); + } + if (($num_centers | 0) <= 0) { + $66 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 30959) | 0, 30564) | 0, 34302) | 0, 201) | 0, 34309) | 0, 30998) | 0; + $71 = __ZNKSt3__18ios_base6getlocEv($66 + (HEAP32[(HEAP32[$66 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $71; + $72 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $76 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$72 >> 2] | 0) + 28 >> 2] & 63]($72, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($66, $76) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($66) | 0; + _abort(); + } + if (($num_indices | 0) > 0) { + $exitcond5 = ($num_centers | 0) == 0; + $i$08 = 0; + $sum_dist$09 = 0; while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $77 = $indices + ($i$08 << 2) | 0; + $78 = $3 + ($i$08 << 2) | 0; + if ($exitcond5) $best_dist$0$lcssa = -1; else { + $best_dist$06 = -1; + $j$07 = 0; + while (1) { + $83 = HEAP32[$centers + ($j$07 << 2) >> 2] | 0; + $88 = __ZN6vision18HammingDistance768EPKjS1_($features + ((HEAP32[$77 >> 2] | 0) * 96 | 0) | 0, $features + ((HEAP32[$indices + ($83 << 2) >> 2] | 0) * 96 | 0) | 0) | 0; + if ($88 >>> 0 < $best_dist$06 >>> 0) { + HEAP32[$78 >> 2] = $83; + $best_dist$1 = $88; + } else $best_dist$1 = $best_dist$06; + $j$07 = $j$07 + 1 | 0; + if (($j$07 | 0) == ($num_centers | 0)) { + $best_dist$0$lcssa = $best_dist$1; + break; + } else $best_dist$06 = $best_dist$1; + } } + $91 = $best_dist$0$lcssa + $sum_dist$09 | 0; + $i$08 = $i$08 + 1 | 0; + if (($i$08 | 0) >= ($num_indices | 0)) { + $sum_dist$0$lcssa = $91; + break; + } else $sum_dist$09 = $91; } - } - $19 = $labelInfo + 1179664 | 0; - $21 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - $30 = HEAPU8[$pnt$164 >> 0] | 0; - do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) { - $43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$363 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $188 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$205 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $208 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$363 >> 1] = $74; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $91 = $74; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$363 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $91 = $71; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $109 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$363 >> 1] = $117; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $134 = $117; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $134 = $117; - } else { - HEAP16[$pnt2$363 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $134 = $114; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $134 = $114; - } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; + } else $sum_dist$0$lcssa = 0; + STACKTOP = sp; + return $sum_dist$0$lcssa | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $lit, $db) { + $first = $first | 0; + $last = $last | 0; + $lit = $lit | 0; + $db = $db | 0; + var $$0$i$i$i = 0, $$0$i$i$i5 = 0, $$02 = 0, $$1 = 0, $0 = 0, $1 = 0, $11 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $37 = 0, $39 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $48 = 0, $52 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $67 = 0, $69 = 0, $72 = 0, $73 = 0, $76 = 0, $8 = 0, $82 = 0, $88 = 0, $90 = 0, $94 = 0, $__v$i$i4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 80 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v$i$i4 = sp + 48 | 0; + $0 = sp + 24 | 0; + $1 = sp + 12 | 0; + $2 = sp; + $3 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) | 0; + if (($3 | 0) == ($first | 0) | ($3 | 0) == ($last | 0)) $$1 = $first; else if ((HEAP8[$3 >> 0] | 0) == 69) { + $8 = HEAP8[$lit >> 0] | 0; + $11 = $lit + 4 | 0; + do if ((($8 & 1) == 0 ? ($8 & 255) >>> 1 : HEAP32[$11 >> 2] | 0) >>> 0 > 3) { + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($2, 47883, $lit); + $17 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$17 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$17 + 8 >> 2]; + HEAP32[$17 >> 2] = 0; + HEAP32[$17 + 4 >> 2] = 0; + HEAP32[$17 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + $20 = $db + 4 | 0; + $21 = HEAP32[$20 >> 2] | 0; + $23 = HEAP32[$db + 8 >> 2] | 0; + if ($21 >>> 0 < $23 >>> 0) { + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($21, $0); + HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 24; + } else { + $30 = HEAP32[$db >> 2] | 0; + $31 = $21 - $30 | 0; + $32 = ($31 | 0) / 24 | 0; + $33 = $32 + 1 | 0; + if (($31 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $37 = ($23 - $30 | 0) / 24 | 0; + if ($37 >>> 0 < 1073741823) { + $39 = $37 << 1; + $$0$i$i$i = $39 >>> 0 < $33 >>> 0 ? $33 : $39; + } else $$0$i$i$i = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i, $32, $db + 12 | 0); + $42 = $__v$i$i4 + 8 | 0; + $43 = HEAP32[$42 >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0); + HEAP32[$42 >> 2] = $43 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4); + } + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + } else { + $45 = $db + 4 | 0; + $46 = HEAP32[$45 >> 2] | 0; + $48 = HEAP32[$db + 8 >> 2] | 0; + if ($46 >>> 0 < $48 >>> 0) { + HEAP32[$46 >> 2] = 0; + HEAP32[$46 + 4 >> 2] = 0; + HEAP32[$46 + 8 >> 2] = 0; + HEAP32[$46 + 12 >> 2] = 0; + HEAP32[$46 + 16 >> 2] = 0; + HEAP32[$46 + 20 >> 2] = 0; + HEAP32[$46 >> 2] = 0; + HEAP32[$46 + 4 >> 2] = 0; + HEAP32[$46 + 8 >> 2] = 0; + $52 = $46 + 12 | 0; + HEAP32[$52 >> 2] = 0; + HEAP32[$52 + 4 >> 2] = 0; + HEAP32[$52 + 8 >> 2] = 0; + HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 24; + break; + } + $60 = HEAP32[$db >> 2] | 0; + $61 = $46 - $60 | 0; + $62 = ($61 | 0) / 24 | 0; + $63 = $62 + 1 | 0; + if (($61 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); + $67 = ($48 - $60 | 0) / 24 | 0; + if ($67 >>> 0 < 1073741823) { + $69 = $67 << 1; + $$0$i$i$i5 = $69 >>> 0 < $63 >>> 0 ? $63 : $69; + } else $$0$i$i$i5 = 2147483647; + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i5, $62, $db + 12 | 0); + $72 = $__v$i$i4 + 8 | 0; + $73 = HEAP32[$72 >> 2] | 0; + HEAP32[$73 >> 2] = 0; + HEAP32[$73 + 4 >> 2] = 0; + HEAP32[$73 + 8 >> 2] = 0; + HEAP32[$73 + 12 >> 2] = 0; + HEAP32[$73 + 16 >> 2] = 0; + HEAP32[$73 + 20 >> 2] = 0; + HEAP32[$73 >> 2] = 0; + HEAP32[$73 + 4 >> 2] = 0; + HEAP32[$73 + 8 >> 2] = 0; + $76 = $73 + 12 | 0; + HEAP32[$76 >> 2] = 0; + HEAP32[$76 + 4 >> 2] = 0; + HEAP32[$76 + 8 >> 2] = 0; + HEAP32[$72 >> 2] = $73 + 24; + __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4); + __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4); + } while (0); + $82 = $db + 4 | 0; + if ((HEAP8[$first >> 0] | 0) == 110) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$82 >> 2] | 0) + -24 | 0, 45); + $$02 = $first + 1 | 0; + } else $$02 = $first; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$82 >> 2] | 0) + -24 | 0, $$02, $3); + $88 = HEAP8[$lit >> 0] | 0; + $90 = ($88 & 1) == 0; + $94 = $90 ? ($88 & 255) >>> 1 : HEAP32[$11 >> 2] | 0; + if ($94 >>> 0 < 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$82 >> 2] | 0) + -24 | 0, $90 ? $lit + 1 | 0 : HEAP32[$lit + 8 >> 2] | 0, $94) | 0; + $$1 = $3 + 1 | 0; + } else $$1 = $first; + STACKTOP = sp; + return $$1 | 0; +} + +function __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $__e, $__err, $__ct, $__n) { + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + $__n = $__n | 0; + var $$0 = 0, $$0$i$i = 0, $$0$i$i10 = 0, $$0$in = 0, $$01 = 0, $$lcssa = 0, $$pre$i2$i$i20 = 0, $$pre$i2$i$i20$lcssa = 0, $$pre$i2$i$i7 = 0, $0 = 0, $107 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $13 = 0, $14 = 0, $142 = 0, $143 = 0, $157 = 0, $28 = 0, $30 = 0, $40 = 0, $42 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $65 = 0, $77 = 0, $78 = 0, $80 = 0, $92 = 0, $95 = 0, $97 = 0, $__r$0 = 0, $__r$0$in = 0, $__r$0$lcssa = 0, label = 0; + $0 = HEAP32[$__b >> 2] | 0; + do if (!$0) $13 = 0; else if ((HEAP32[$0 + 12 >> 2] | 0) == (HEAP32[$0 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 127]($0) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $13 = 0; + break; + } else { + $13 = HEAP32[$__b >> 2] | 0; + break; + } else $13 = $0; while (0); + $12 = ($13 | 0) == 0; + $14 = HEAP32[$__e >> 2] | 0; + do if (!$14) label = 11; else { + if ((HEAP32[$14 + 12 >> 2] | 0) == (HEAP32[$14 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$14 >> 2] | 0) + 36 >> 2] & 127]($14) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 11; + break; + } + if ($12) { + $157 = $14; + label = 13; + } else label = 12; + } while (0); + if ((label | 0) == 11) if ($12) label = 12; else { + $157 = 0; + label = 13; + } + L16 : do if ((label | 0) == 12) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 6; + $$01 = 0; + } else if ((label | 0) == 13) { + $28 = HEAP32[$__b >> 2] | 0; + $30 = HEAP32[$28 + 12 >> 2] | 0; + if (($30 | 0) == (HEAP32[$28 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$28 >> 2] | 0) + 36 >> 2] & 127]($28) | 0; else $$0$i$i = HEAPU8[$30 >> 0] | 0; + $40 = $$0$i$i & 255; + if ($40 << 24 >> 24 > -1) { + $42 = $__ct + 8 | 0; + if (HEAP16[(HEAP32[$42 >> 2] | 0) + ($$0$i$i << 24 >> 24 << 1) >> 1] & 2048) { + $54 = (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 36 >> 2] & 63]($__ct, $40, 0) | 0) << 24 >> 24; + $55 = HEAP32[$__b >> 2] | 0; + $56 = $55 + 12 | 0; + $57 = HEAP32[$56 >> 2] | 0; + if (($57 | 0) == (HEAP32[$55 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$55 >> 2] | 0) + 40 >> 2] & 127]($55) | 0; + $$0$in = $__n; + $$pre$i2$i$i7 = $157; + $80 = $157; + $__r$0$in = $54; + } else { + HEAP32[$56 >> 2] = $57 + 1; + $$0$in = $__n; + $$pre$i2$i$i7 = $157; + $80 = $157; + $__r$0$in = $54; + } + while (1) { + $__r$0 = $__r$0$in + -48 | 0; + $$0 = $$0$in + -1 | 0; + $65 = HEAP32[$__b >> 2] | 0; + do if (!$65) $78 = 0; else if ((HEAP32[$65 + 12 >> 2] | 0) == (HEAP32[$65 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$65 >> 2] | 0) + 36 >> 2] & 127]($65) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $78 = 0; + break; } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $228 = $pnt$164 + 4 | 0; - $229 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; + $78 = HEAP32[$__b >> 2] | 0; break; + } else $78 = $65; while (0); + $77 = ($78 | 0) == 0; + if (!$80) { + $$pre$i2$i$i20 = $$pre$i2$i$i7; + $92 = 0; + } else if ((HEAP32[$80 + 12 >> 2] | 0) == (HEAP32[$80 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$80 >> 2] | 0) + 36 >> 2] & 127]($80) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + $$pre$i2$i$i20 = 0; + $92 = 0; } else { - $pnt$164 = $228; - $pnt2$363 = $229; - $wk_max$158 = $wk_max$2; + $$pre$i2$i$i20 = $$pre$i2$i$i7; + $92 = $$pre$i2$i$i7; + } else { + $$pre$i2$i$i20 = $$pre$i2$i$i7; + $92 = $80; + } + $95 = HEAP32[$__b >> 2] | 0; + if (!(($$0$in | 0) > 1 & ($77 ^ ($92 | 0) == 0))) { + $$lcssa = $95; + $$pre$i2$i$i20$lcssa = $$pre$i2$i$i20; + $__r$0$lcssa = $__r$0; + break; + } + $97 = HEAP32[$95 + 12 >> 2] | 0; + if (($97 | 0) == (HEAP32[$95 + 16 >> 2] | 0)) $$0$i$i10 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$95 >> 2] | 0) + 36 >> 2] & 127]($95) | 0; else $$0$i$i10 = HEAPU8[$97 >> 0] | 0; + $107 = $$0$i$i10 & 255; + if ($107 << 24 >> 24 <= -1) { + $$01 = $__r$0; + break L16; + } + if (!(HEAP16[(HEAP32[$42 >> 2] | 0) + ($$0$i$i10 << 24 >> 24 << 1) >> 1] & 2048)) { + $$01 = $__r$0; + break L16; + } + $120 = ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 36 >> 2] & 63]($__ct, $107, 0) | 0) << 24 >> 24) + ($__r$0 * 10 | 0) | 0; + $121 = HEAP32[$__b >> 2] | 0; + $122 = $121 + 12 | 0; + $123 = HEAP32[$122 >> 2] | 0; + if (($123 | 0) == (HEAP32[$121 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$121 >> 2] | 0) + 40 >> 2] & 127]($121) | 0; + $$0$in = $$0; + $$pre$i2$i$i7 = $$pre$i2$i$i20; + $80 = $92; + $__r$0$in = $120; + continue; + } else { + HEAP32[$122 >> 2] = $123 + 1; + $$0$in = $$0; + $$pre$i2$i$i7 = $$pre$i2$i$i20; + $80 = $92; + $__r$0$in = $120; + continue; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + do if (!$$lcssa) $143 = 0; else if ((HEAP32[$$lcssa + 12 >> 2] | 0) == (HEAP32[$$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$lcssa >> 2] | 0) + 36 >> 2] & 127]($$lcssa) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $143 = 0; + break; + } else { + $143 = HEAP32[$__b >> 2] | 0; + break; + } else $143 = $$lcssa; while (0); + $142 = ($143 | 0) == 0; + do if (!$$pre$i2$i$i20$lcssa) label = 50; else { + if ((HEAP32[$$pre$i2$i$i20$lcssa + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i20$lcssa + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i20$lcssa >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i20$lcssa) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 50; + break; + } + if ($142) { + $$01 = $__r$0$lcssa; + break L16; + } + } while (0); + if ((label | 0) == 50) if (!$142) { + $$01 = $__r$0$lcssa; + break; + } + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $$01 = $__r$0$lcssa; + break; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + $$01 = 0; } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; + return $$01 | 0; +} + +function _jinit_1pass_quantizer($cinfo) { + $cinfo = $cinfo | 0; + var $$lcssa = 0, $$lcssa41 = 0, $$lcssa42 = 0, $0 = 0, $12 = 0, $16 = 0, $17 = 0, $19 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $34 = 0, $39 = 0, $4 = 0, $41 = 0, $49 = 0, $50 = 0, $51 = 0, $53 = 0, $54 = 0, $60 = 0, $62 = 0, $79 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $94 = 0, $blkdist$0$i19 = 0, $changed$0$i$i = 0, $changed$0$ph$i$i = 0, $i$0$i$i26 = 0, $i$0$i20 = 0, $i$1$i$i23 = 0, $i$2$i$i = 0, $i$2$i$i$lcssa = 0, $i$2$ph$i$i = 0, $iroot$0$i$i = 0, $iroot$0$i$i$lcssa = 0, $j$0$i15 = 0, $k$0$i13 = 0, $ptr$0$i14 = 0, $temp$0$i$i$lcssa = 0, $temp$0$i$i$lcssa$lcssa = 0, $temp$0$i$i27 = 0, $total_colors$0$i$i$lcssa = 0, $total_colors$0$i$i24 = 0, $total_colors$2$ph$i$i = 0, $total_colors$2$ph$i$i$lcssa = 0, $blkdist$0$i19$looptemp = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 88) | 0; + $4 = $cinfo + 460 | 0; + HEAP32[$4 >> 2] = $3; + HEAP32[$3 >> 2] = 45; + HEAP32[$3 + 8 >> 2] = 133; + HEAP32[$3 + 12 >> 2] = 134; + HEAP32[$3 + 68 >> 2] = 0; + HEAP32[$3 + 52 >> 2] = 0; + $9 = $cinfo + 120 | 0; + if ((HEAP32[$9 >> 2] | 0) > 4) { + $12 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$12 + 20 >> 2] = 55; + HEAP32[$12 + 24 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$12 >> 2] & 255]($cinfo); + } + $16 = $cinfo + 96 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (($17 | 0) > 256) { + $19 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$19 + 20 >> 2] = 57; + HEAP32[$19 + 24 >> 2] = 256; + FUNCTION_TABLE_vi[HEAP32[$19 >> 2] & 255]($cinfo); + $31 = HEAP32[$16 >> 2] | 0; + } else $31 = $17; + $23 = HEAP32[$4 >> 2] | 0; + $24 = HEAP32[$9 >> 2] | 0; + $25 = ($24 | 0) > 1; + $iroot$0$i$i = 1; + while (1) { + $26 = $iroot$0$i$i + 1 | 0; + if ($25) { + $i$0$i$i26 = 1; + $temp$0$i$i27 = $26; while (1) { - $237 = HEAP32[$wk$440 >> 2] | 0; - if (($237 | 0) == ($i$338 | 0)) { - $243 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $243; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $27 = Math_imul($temp$0$i$i27, $26) | 0; + $i$0$i$i26 = $i$0$i$i26 + 1 | 0; + if (($i$0$i$i26 | 0) >= ($24 | 0)) { + $temp$0$i$i$lcssa = $27; + break; + } else $temp$0$i$i27 = $27; + } + } else $temp$0$i$i$lcssa = $26; + if (($temp$0$i$i$lcssa | 0) > ($31 | 0)) { + $iroot$0$i$i$lcssa = $iroot$0$i$i; + $temp$0$i$i$lcssa$lcssa = $temp$0$i$i$lcssa; + break; + } else $iroot$0$i$i = $26; + } + $32 = $23 + 32 | 0; + if (($iroot$0$i$i$lcssa | 0) < 2) { + $34 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$34 + 20 >> 2] = 56; + HEAP32[$34 + 24 >> 2] = $temp$0$i$i$lcssa$lcssa; + FUNCTION_TABLE_vi[HEAP32[$34 >> 2] & 255]($cinfo); + } + if (($24 | 0) > 0) { + $i$1$i$i23 = 0; + $total_colors$0$i$i24 = 1; + while (1) { + HEAP32[$23 + 32 + ($i$1$i$i23 << 2) >> 2] = $iroot$0$i$i$lcssa; + $41 = Math_imul($total_colors$0$i$i24, $iroot$0$i$i$lcssa) | 0; + $i$1$i$i23 = $i$1$i$i23 + 1 | 0; + if (($i$1$i$i23 | 0) >= ($24 | 0)) { + $total_colors$0$i$i$lcssa = $41; + break; + } else $total_colors$0$i$i24 = $41; + } + } else $total_colors$0$i$i$lcssa = 1; + $39 = $cinfo + 44 | 0; + $changed$0$ph$i$i = 0; + $i$2$ph$i$i = 0; + $total_colors$2$ph$i$i = $total_colors$0$i$i$lcssa; + L21 : while (1) { + $changed$0$i$i = $changed$0$ph$i$i; + $i$2$i$i = $i$2$ph$i$i; + while (1) { + if (($i$2$i$i | 0) < ($24 | 0)) { + if ((HEAP32[$39 >> 2] | 0) == 2) $50 = HEAP32[5664 + ($i$2$i$i << 2) >> 2] | 0; else $50 = $i$2$i$i; + $49 = $23 + 32 + ($50 << 2) | 0; + $51 = HEAP32[$49 >> 2] | 0; + $53 = $51 + 1 | 0; + $54 = Math_imul(($total_colors$2$ph$i$i | 0) / ($51 | 0) | 0, $53) | 0; + if (($54 | 0) <= ($31 | 0)) { + $$lcssa = $49; + $$lcssa41 = $53; + $$lcssa42 = $54; + $i$2$i$i$lcssa = $i$2$i$i; break; } } - } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $255 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0)); + if (!$changed$0$i$i) { + $total_colors$2$ph$i$i$lcssa = $total_colors$2$ph$i$i; + break L21; + } else { + $changed$0$i$i = 0; + $i$2$i$i = 0; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; + } + HEAP32[$$lcssa >> 2] = $$lcssa41; + $changed$0$ph$i$i = 1; + $i$2$ph$i$i = $i$2$i$i$lcssa + 1 | 0; + $total_colors$2$ph$i$i = $$lcssa42; + } + $60 = HEAP32[$cinfo >> 2] | 0; + $62 = HEAP32[$60 + 4 >> 2] | 0; + if ((HEAP32[$9 >> 2] | 0) == 3) { + HEAP32[$60 + 24 >> 2] = $total_colors$2$ph$i$i$lcssa; + HEAP32[$60 + 28 >> 2] = HEAP32[$32 >> 2]; + HEAP32[$60 + 32 >> 2] = HEAP32[$23 + 36 >> 2]; + HEAP32[$60 + 36 >> 2] = HEAP32[$23 + 40 >> 2]; + HEAP32[$60 + 20 >> 2] = 94; + FUNCTION_TABLE_vii[$62 & 63]($cinfo, 1); + } else { + HEAP32[$60 + 20 >> 2] = 95; + HEAP32[$60 + 24 >> 2] = $total_colors$2$ph$i$i$lcssa; + FUNCTION_TABLE_vii[$62 & 63]($cinfo, 1); + } + $79 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 8 >> 2] & 15]($cinfo, 1, $total_colors$2$ph$i$i$lcssa, HEAP32[$9 >> 2] | 0) | 0; + if ((HEAP32[$9 >> 2] | 0) > 0) { + $blkdist$0$i19 = $total_colors$2$ph$i$i$lcssa; + $i$0$i20 = 0; + do { + $83 = HEAP32[$23 + 32 + ($i$0$i20 << 2) >> 2] | 0; + $blkdist$0$i19$looptemp = $blkdist$0$i19; + $blkdist$0$i19 = ($blkdist$0$i19 | 0) / ($83 | 0) | 0; + $85 = $83 + -1 | 0; + $86 = ($85 | 0) / 2 | 0; + $87 = $79 + ($i$0$i20 << 2) | 0; + if (($83 | 0) > 0) { + $89 = ($blkdist$0$i19 | 0) > 0; + $j$0$i15 = 0; do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$534 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + $93 = Math_imul($j$0$i15, $blkdist$0$i19) | 0; + $94 = ((($j$0$i15 * 255 | 0) + $86 | 0) / ($85 | 0) | 0) & 255; + if (($93 | 0) < ($total_colors$2$ph$i$i$lcssa | 0)) { + $ptr$0$i14 = $93; + do { + if ($89) { + $k$0$i13 = 0; + do { + HEAP8[(HEAP32[$87 >> 2] | 0) + ($k$0$i13 + $ptr$0$i14) >> 0] = $94; + $k$0$i13 = $k$0$i13 + 1 | 0; + } while (($k$0$i13 | 0) < ($blkdist$0$i19 | 0)); + } + $ptr$0$i14 = $ptr$0$i14 + $blkdist$0$i19$looptemp | 0; + } while (($ptr$0$i14 | 0) < ($total_colors$2$ph$i$i$lcssa | 0)); + } + $j$0$i15 = $j$0$i15 + 1 | 0; + } while (($j$0$i15 | 0) < ($83 | 0)); } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $322 = $labelInfo + 12 + ($i$633 << 2) | 0; - $325 = $i$633 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + $i$0$i20 = $i$0$i20 + 1 | 0; + } while (($i$0$i20 | 0) < (HEAP32[$9 >> 2] | 0)); } - STACKTOP = sp; - return $$0 | 0; + HEAP32[$23 + 16 >> 2] = $79; + HEAP32[$23 + 20 >> 2] = $total_colors$2$ph$i$i$lcssa; + _create_colorindex($cinfo); + if ((HEAP32[$cinfo + 88 >> 2] | 0) == 2) _alloc_fs_workspace($cinfo); + return; } -function _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; +function _arGetContour($limage, $xsize, $ysize, $label_ref, $label, $clip, $marker_info2) { + $limage = $limage | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + $label_ref = $label_ref | 0; + $label = $label | 0; + $clip = $clip | 0; + $marker_info2 = $marker_info2 | 0; + var $$0 = 0, $$lcssa68 = 0, $$lcssa69 = 0, $1 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $24 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $34 = 0, $38 = 0, $4 = 0, $40 = 0, $41 = 0, $46 = 0, $48 = 0, $49 = 0, $56 = 0, $61 = 0, $62 = 0, $65 = 0, $67 = 0, $68 = 0, $83 = 0, $9 = 0, $92 = 0, $dir$0 = 0, $dir$1 = 0, $dir$1$lcssa = 0, $dir$130 = 0, $dir$146 = 0, $dmax$040 = 0, $i$048 = 0, $i$048$lcssa = 0, $i$145 = 0, $i$2$v1$0 = 0, $i$242 = 0, $i$338 = 0, $i$436 = 0, $i$535 = 0, $p1$047 = 0, $v1$0$lcssa = 0, $v1$041 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $wx = 0, $wy = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 80032 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + $wx = sp + 40024 | 0; + $wy = sp + 24 | 0; + $1 = HEAP32[$clip + 8 >> 2] | 0; + $2 = HEAP32[$clip >> 2] | 0; + $4 = HEAP32[$clip + 4 >> 2] | 0; + L1 : do if (($2 | 0) > ($4 | 0)) label = 6; else { + $i$048 = $2; + $p1$047 = $limage + ((Math_imul($1, $xsize) | 0) + $2 << 1) | 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; - do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) { - $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$362 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$205 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $208 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$362 >> 1] = $74; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $91 = $74; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$362 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $91 = $71; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$362 >> 1] = $117; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $134 = $117; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $134 = $117; - } else { - HEAP16[$pnt2$362 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $134 = $114; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $134 = $114; - } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $228 = $pnt$163 + 2 | 0; - $229 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $228; - $pnt2$362 = $229; - $wk_max$157 = $wk_max$2; - } - } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $9 = HEAP16[$p1$047 >> 1] | 0; + if ($9 << 16 >> 16 > 0) if ((HEAP32[$label_ref + (($9 << 16 >> 16) + -1 << 2) >> 2] | 0) == ($label | 0)) { + $i$048$lcssa = $i$048; + break; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if (($i$048 | 0) < ($4 | 0)) { + $i$048 = $i$048 + 1 | 0; + $p1$047 = $p1$047 + 2 | 0; } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + label = 6; + break L1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + $19 = $marker_info2 + 24 | 0; + HEAP32[$19 >> 2] = 1; + $20 = $marker_info2 + 28 | 0; + HEAP32[$20 >> 2] = $i$048$lcssa; + $21 = $marker_info2 + 40028 | 0; + HEAP32[$21 >> 2] = $1; + $27 = $1; + $29 = $i$048$lcssa; + $40 = 1; + $dir$0 = 5; + while (1) { + $dir$146 = ($dir$0 + 5 | 0) % 8 | 0; + $i$145 = 0; while (1) { - $237 = HEAP32[$wk$439 >> 2] | 0; - if (($237 | 0) == ($i$337 | 0)) { - $243 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $24 = HEAP32[3120 + ($dir$146 << 2) >> 2] | 0; + $26 = HEAP32[3152 + ($dir$146 << 2) >> 2] | 0; + $30 = $limage + ($26 + $29 + (Math_imul($24 + $27 | 0, $xsize) | 0) << 1) | 0; + if ((HEAP16[$30 >> 1] | 0) > 0) { + $38 = $26; + $46 = $24; + $dir$130 = $dir$146; + break; } - HEAP32[$wk$439 >> 2] = $243; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + $34 = $i$145 + 1 | 0; + $dir$1 = ($dir$146 + 1 | 0) % 8 | 0; + if (($34 | 0) < 8) { + $dir$146 = $dir$1; + $i$145 = $34; } else { - $j$1$lcssa = $j$2; + $$lcssa68 = $34; + $dir$1$lcssa = $dir$1; + label = 11; + break; + } + } + if ((label | 0) == 11) { + label = 0; + if (($$lcssa68 | 0) == 8) { + label = 13; break; } + $38 = HEAP32[3152 + ($dir$1$lcssa << 2) >> 2] | 0; + $46 = HEAP32[3120 + ($dir$1$lcssa << 2) >> 2] | 0; + $dir$130 = $dir$1$lcssa; + } + HEAP32[$marker_info2 + 28 + ($40 << 2) >> 2] = $38 + $29; + $41 = HEAP32[$19 >> 2] | 0; + HEAP32[$marker_info2 + 40028 + ($41 << 2) >> 2] = $46 + (HEAP32[$marker_info2 + 40028 + ($41 + -1 << 2) >> 2] | 0); + $48 = HEAP32[$19 >> 2] | 0; + $49 = $marker_info2 + 28 + ($48 << 2) | 0; + if ((HEAP32[$49 >> 2] | 0) == ($i$048$lcssa | 0)) if ((HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0) == ($1 | 0)) { + $$lcssa69 = $48; + label = 16; + break; + } + $56 = $48 + 1 | 0; + HEAP32[$19 >> 2] = $56; + if (($56 | 0) == 9999) { + label = 19; + break; } + $27 = HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0; + $29 = HEAP32[$49 >> 2] | 0; + $40 = $56; + $dir$0 = $dir$130; } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; + if ((label | 0) == 13) { + _arLog(3, 18535, $vararg_buffer1); + $$0 = -1; + break; + } else if ((label | 0) == 16) { + if (($$lcssa69 | 0) > 1) { + $dmax$040 = 0; + $i$242 = 1; + $v1$041 = 0; + while (1) { + $61 = (HEAP32[$marker_info2 + 28 + ($i$242 << 2) >> 2] | 0) - $i$048$lcssa | 0; + $62 = Math_imul($61, $61) | 0; + $65 = (HEAP32[$marker_info2 + 40028 + ($i$242 << 2) >> 2] | 0) - $1 | 0; + $67 = (Math_imul($65, $65) | 0) + $62 | 0; + $68 = ($67 | 0) > ($dmax$040 | 0); + $i$2$v1$0 = $68 ? $i$242 : $v1$041; + $i$242 = $i$242 + 1 | 0; + if (($i$242 | 0) >= ($$lcssa69 | 0)) { + $v1$0$lcssa = $i$2$v1$0; + break; + } else { + $dmax$040 = $68 ? $67 : $dmax$040; + $v1$041 = $i$2$v1$0; + } + } + } else $v1$0$lcssa = 0; + if (($v1$0$lcssa | 0) > 0) { + $i$338 = 0; do { - $255 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + HEAP32[$wx + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$338 << 2) >> 2]; + HEAP32[$wy + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$338 << 2) >> 2]; + $i$338 = $i$338 + 1 | 0; + } while (($i$338 | 0) < ($v1$0$lcssa | 0)); } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; + if (($v1$0$lcssa | 0) < ($$lcssa69 | 0)) { + $i$436 = $v1$0$lcssa; do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$533 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + $83 = $i$436 - $v1$0$lcssa | 0; + HEAP32[$marker_info2 + 28 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$436 << 2) >> 2]; + HEAP32[$marker_info2 + 40028 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$436 << 2) >> 2]; + $i$436 = $i$436 + 1 | 0; + } while (($i$436 | 0) < (HEAP32[$19 >> 2] | 0)); } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$632 = 0; + if (($v1$0$lcssa | 0) > 0) { + $i$535 = 0; do { - $322 = $labelInfo + 12 + ($i$632 << 2) | 0; - $325 = $i$632 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $92 = $i$535 - $v1$0$lcssa | 0; + HEAP32[$marker_info2 + 28 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wx + ($i$535 << 2) >> 2]; + HEAP32[$marker_info2 + 40028 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wy + ($i$535 << 2) >> 2]; + $i$535 = $i$535 + 1 | 0; + } while (($i$535 | 0) < ($v1$0$lcssa | 0)); + } + HEAP32[$marker_info2 + 28 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$20 >> 2]; + HEAP32[$marker_info2 + 40028 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$21 >> 2]; + HEAP32[$19 >> 2] = (HEAP32[$19 >> 2] | 0) + 1; + $$0 = 0; + break; + } else if ((label | 0) == 19) { + _arLog(3, 18542, $vararg_buffer3); + $$0 = -1; + break; } + } while (0); + if ((label | 0) == 6) { + _arLog(3, 18528, $vararg_buffer); + $$0 = -1; } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function ___cxa_demangle($mangled_name, $buf, $n, $status) { + $mangled_name = $mangled_name | 0; + $buf = $buf | 0; + $n = $n | 0; + $status = $status | 0; + var $$0 = 0, $$028 = 0, $$1 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $109 = 0, $11 = 0, $112 = 0, $15 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $30 = 0, $31 = 0, $35 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $49 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0, $6 = 0, $60 = 0, $62 = 0, $7 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $82 = 0, $83 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $__v$i$i = 0, $a = 0, $db = 0, $internal_status = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 4208 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; + $__v$i$i = sp + 4184 | 0; + $a = sp; + $db = sp + 4120 | 0; + $internal_status = sp + 4112 | 0; + if (!$mangled_name) label = 3; else { + $1 = ($buf | 0) != 0; + $2 = ($n | 0) == 0; + if ($1 & $2) label = 3; else { + if ($1) $82 = HEAP32[$n >> 2] | 0; else $82 = 0; + HEAP32[$a + 4096 >> 2] = $a; + $6 = $a; + HEAP32[$db >> 2] = 0; + $7 = $db + 4 | 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$db + 8 >> 2] = 0; + HEAP32[$db + 12 >> 2] = $6; + $10 = $db + 16 | 0; + HEAP32[$10 >> 2] = 0; + $11 = $db + 20 | 0; + HEAP32[$11 >> 2] = 0; + HEAP32[$db + 24 >> 2] = 0; + HEAP32[$db + 28 >> 2] = $6; + HEAP32[$db + 32 >> 2] = 0; + $15 = $db + 36 | 0; + HEAP32[$15 >> 2] = 0; + HEAP32[$db + 40 >> 2] = 0; + $17 = $db + 44 | 0; + HEAP32[$17 >> 2] = $6; + $18 = $db + 48 | 0; + $19 = $db + 61 | 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$18 + 4 >> 2] = 0; + HEAP32[$18 + 8 >> 2] = 0; + HEAP8[$18 + 12 >> 0] = 0; + HEAP8[$19 >> 0] = 1; + $20 = $db + 32 | 0; + __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i, 1, 0, $17); + $21 = $__v$i$i + 8 | 0; + $22 = HEAP32[$21 >> 2] | 0; + HEAP32[$22 >> 2] = 0; + HEAP32[$22 + 4 >> 2] = 0; + HEAP32[$22 + 8 >> 2] = 0; + HEAP32[$22 + 12 >> 2] = $6; + HEAP32[$21 >> 2] = $22 + 16; + __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($20, $__v$i$i); + __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i); + $27 = $db + 62 | 0; + HEAP8[$27 >> 0] = 0; + HEAP8[$db + 63 >> 0] = 1; + HEAP32[$internal_status >> 2] = 0; + $30 = $mangled_name + (_strlen($mangled_name) | 0) | 0; + __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status); + $31 = HEAP32[$internal_status >> 2] | 0; + do if (($31 | 0) != 0 | (HEAP8[$27 >> 0] | 0) == 0) { + $59 = $31; + label = 17; + } else { + $35 = HEAP32[$20 >> 2] | 0; + if (($35 | 0) == (HEAP32[$15 >> 2] | 0)) label = 18; else if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$35 + 4 >> 2] | 0)) label = 18; else { + HEAP8[$27 >> 0] = 0; + HEAP8[$19 >> 0] = 0; + $42 = HEAP32[$db >> 2] | 0; + $43 = HEAP32[$7 >> 2] | 0; + if (($43 | 0) != ($42 | 0)) { + $46 = $43; + do { + $45 = $46 + -24 | 0; + HEAP32[$7 >> 2] = $45; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45); + $46 = HEAP32[$7 >> 2] | 0; + } while (($46 | 0) != ($42 | 0)); + } + $49 = HEAP32[$10 >> 2] | 0; + $50 = HEAP32[$11 >> 2] | 0; + if (($50 | 0) != ($49 | 0)) { + $53 = $50; + do { + $52 = $53 + -16 | 0; + HEAP32[$11 >> 2] = $52; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($52); + $53 = HEAP32[$11 >> 2] | 0; + } while (($53 | 0) != ($49 | 0)); + } + __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status); + if (!(HEAP8[$27 >> 0] | 0)) { + $59 = HEAP32[$internal_status >> 2] | 0; + label = 17; + break; + } else { + HEAP32[$internal_status >> 2] = -2; + $$1 = 0; + $112 = -2; + break; + } + } + } while (0); + if ((label | 0) == 17) if (!$59) label = 18; else { + $$1 = 0; + $112 = $59; } + do if ((label | 0) == 18) { + $60 = HEAP32[$7 >> 2] | 0; + $62 = HEAP8[$60 + -24 >> 0] | 0; + if (!($62 & 1)) $79 = ($62 & 255) >>> 1; else $79 = HEAP32[$60 + -20 >> 2] | 0; + $70 = HEAP8[$60 + -12 >> 0] | 0; + if (!($70 & 1)) $78 = ($70 & 255) >>> 1; else $78 = HEAP32[$60 + -8 >> 2] | 0; + $77 = $78 + $79 | 0; + $80 = $77 + 1 | 0; + if ($80 >>> 0 > $82 >>> 0) { + $83 = _realloc($buf, $80) | 0; + if (!$83) { + HEAP32[$internal_status >> 2] = -1; + $$1 = 0; + $112 = -1; + break; + } + if ($2) $$028 = $83; else { + HEAP32[$n >> 2] = $80; + $$028 = $83; + } + } else if (!$buf) { + $$1 = 0; + $112 = 0; + break; + } else $$028 = $buf; + $86 = HEAP32[$7 >> 2] | 0; + $88 = $86 + -12 | 0; + $89 = HEAP8[$88 >> 0] | 0; + $91 = ($89 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($86 + -24 | 0, $91 ? $88 + 1 | 0 : HEAP32[$86 + -4 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$86 + -8 >> 2] | 0) | 0; + $101 = HEAP32[$7 >> 2] | 0; + $102 = $101 + -24 | 0; + if (!(HEAP8[$102 >> 0] & 1)) $109 = $102 + 1 | 0; else $109 = HEAP32[$101 + -16 >> 2] | 0; + _memcpy($$028 | 0, $109 | 0, $77 | 0) | 0; + HEAP8[$$028 + $77 >> 0] = 0; + $$1 = $$028; + $112 = 0; + } while (0); + if ($status) HEAP32[$status >> 2] = $112; + __ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($db); + $$0 = $$1; } } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + if ((label | 0) == 3) if (!$status) $$0 = 0; else { + HEAP32[$status >> 2] = -3; + $$0 = 0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision14ExtractFREAK84ERNS_18BinaryFeatureStoreEPKNS_25GaussianScaleSpacePyramidERKNSt3__16vectorINS_12FeaturePointENS5_9allocatorIS7_EEEEPKfSE_SE_SE_SE_SE_ffffffff($store, $pyramid, $points, $points_ring0, $points_ring1, $points_ring2, $points_ring3, $points_ring4, $points_ring5, $sigma_center, $sigma_ring0, $sigma_ring1, $sigma_ring2, $sigma_ring3, $sigma_ring4, $sigma_ring5, $expansion_factor) { + $store = $store | 0; + $pyramid = $pyramid | 0; + $points = $points | 0; + $points_ring0 = $points_ring0 | 0; + $points_ring1 = $points_ring1 | 0; + $points_ring2 = $points_ring2 | 0; + $points_ring3 = $points_ring3 | 0; + $points_ring4 = $points_ring4 | 0; + $points_ring5 = $points_ring5 | 0; + $sigma_center = +$sigma_center; + $sigma_ring0 = +$sigma_ring0; + $sigma_ring1 = +$sigma_ring1; + $sigma_ring2 = +$sigma_ring2; + $sigma_ring3 = +$sigma_ring3; + $sigma_ring4 = +$sigma_ring4; + $sigma_ring5 = +$sigma_ring5; + $expansion_factor = +$expansion_factor; + var $$lcssa = 0, $0 = 0, $12 = 0, $13 = 0, $17 = 0, $20 = 0, $25 = 0, $26 = 0, $27 = 0, $32 = 0, $43 = 0, $48 = 0, $49 = 0, $53 = 0, $55 = 0, $59 = 0, $61 = 0, $63 = 0, $64 = 0, $68 = 0, $7 = 0, $76 = 0, $81 = 0, $82 = 0, $86 = 0, $num_points$0$lcssa = 0, $num_points$04 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if (!$pyramid) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32754) | 0, 32785) | 0, 34302) | 0, 537) | 0, 34309) | 0, 32888) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + $20 = $store + 16 | 0; + $25 = $points + 4 | 0; + $26 = HEAP32[$25 >> 2] | 0; + $27 = HEAP32[$points >> 2] | 0; + if (((HEAP32[$store + 20 >> 2] | 0) - (HEAP32[$20 >> 2] | 0) | 0) != ($26 - $27 | 0)) { + $43 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32904) | 0, 32785) | 0, 34302) | 0, 538) | 0, 34309) | 0, 32957) | 0; + $48 = __ZNKSt3__18ios_base6getlocEv($43 + (HEAP32[(HEAP32[$43 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $48; + $49 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $53 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$49 >> 2] | 0) + 28 >> 2] & 63]($49, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($43, $53) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($43) | 0; + _abort(); + } + $32 = $store + 4 | 0; + if (($26 | 0) == ($27 | 0)) { + $$lcssa = ($26 - $27 | 0) / 20 | 0; + $num_points$0$lcssa = 0; + } else { + $59 = $27; + $num_points$04 = 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $55 = Math_imul(HEAP32[$store >> 2] | 0, $num_points$04) | 0; + __ZN6vision14ExtractFREAK84EPhPKNS_25GaussianScaleSpacePyramidERKNS_12FeaturePointEPKfS8_S8_S8_S8_S8_ffffffff((HEAP32[$32 >> 2] | 0) + $55 | 0, $pyramid, $59 + ($num_points$04 * 20 | 0) | 0, $points_ring0, $points_ring1, $points_ring2, $points_ring3, $points_ring4, $points_ring5, $sigma_center, $sigma_ring0, $sigma_ring1, $sigma_ring2, $sigma_ring3, $sigma_ring4, $sigma_ring5, $expansion_factor) | 0; + $61 = (HEAP32[$20 >> 2] | 0) + ($num_points$04 * 20 | 0) | 0; + $63 = (HEAP32[$points >> 2] | 0) + ($num_points$04 * 20 | 0) | 0; + HEAP32[$61 >> 2] = HEAP32[$63 >> 2]; + HEAP32[$61 + 4 >> 2] = HEAP32[$63 + 4 >> 2]; + HEAP32[$61 + 8 >> 2] = HEAP32[$63 + 8 >> 2]; + HEAP32[$61 + 12 >> 2] = HEAP32[$63 + 12 >> 2]; + HEAP8[$61 + 16 >> 0] = HEAP8[$63 + 16 >> 0] | 0; + $64 = $num_points$04 + 1 | 0; + $59 = HEAP32[$points >> 2] | 0; + $68 = ((HEAP32[$25 >> 2] | 0) - $59 | 0) / 20 | 0; + if ($64 >>> 0 >= $68 >>> 0) { + $$lcssa = $68; + $num_points$0$lcssa = $64; + break; + } else $num_points$04 = $64; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; - do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$362 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$205 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $208 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$362 >> 1] = $74; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $91 = $74; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$362 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $91 = $71; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + if (($num_points$0$lcssa | 0) == ($$lcssa | 0)) { + __ZN6vision18BinaryFeatureStore6resizeEj($store, $num_points$0$lcssa); + STACKTOP = sp; + return; + } else { + $76 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32994) | 0, 32785) | 0, 34302) | 0, 617) | 0, 34309) | 0, 33045) | 0; + $81 = __ZNKSt3__18ios_base6getlocEv($76 + (HEAP32[(HEAP32[$76 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $81; + $82 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $86 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$82 >> 2] | 0) + 28 >> 2] & 63]($82, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($76, $86) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($76) | 0; + _abort(); + } +} + +function _fmod($x, $y) { + $x = +$x; + $y = +$y; + var $$0 = 0.0, $$lcssa7 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $106 = 0, $107 = 0, $11 = 0, $112 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $130 = 0, $137 = 0, $138 = 0, $139 = 0, $140 = 0, $141 = 0, $146 = 0, $149 = 0, $150 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $16 = 0, $2 = 0, $23 = 0.0, $25 = 0, $26 = 0, $3 = 0, $37 = 0, $38 = 0, $4 = 0, $44 = 0, $45 = 0, $46 = 0, $55 = 0, $6 = 0, $60 = 0, $61 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $78 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $93 = 0, $95 = 0, $97 = 0, $ex$0$lcssa = 0, $ex$026 = 0, $ex$1 = 0, $ex$2$lcssa = 0, $ex$212 = 0, $ex$3$lcssa = 0, $ex$39 = 0, $ey$0$lcssa = 0, $ey$020 = 0, $ey$1$ph = 0, label = 0; + HEAPF64[tempDoublePtr >> 3] = $x; + $0 = HEAP32[tempDoublePtr >> 2] | 0; + $1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; + HEAPF64[tempDoublePtr >> 3] = $y; + $2 = HEAP32[tempDoublePtr >> 2] | 0; + $3 = HEAP32[tempDoublePtr + 4 >> 2] | 0; + $4 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0; + $6 = $4 & 2047; + $7 = _bitshift64Lshr($2 | 0, $3 | 0, 52) | 0; + $9 = $7 & 2047; + $10 = $1 & -2147483648; + $11 = _bitshift64Shl($2 | 0, $3 | 0, 1) | 0; + $12 = tempRet0; + L1 : do if (($11 | 0) == 0 & ($12 | 0) == 0) label = 3; else { + $16 = $3 & 2147483647; + if ($16 >>> 0 > 2146435072 | ($16 | 0) == 2146435072 & $2 >>> 0 > 0 | ($6 | 0) == 2047) label = 3; else { + $25 = _bitshift64Shl($0 | 0, $1 | 0, 1) | 0; + $26 = tempRet0; + if (!($26 >>> 0 > $12 >>> 0 | ($26 | 0) == ($12 | 0) & $25 >>> 0 > $11 >>> 0)) return +(($25 | 0) == ($11 | 0) & ($26 | 0) == ($12 | 0) ? $x * 0.0 : $x); + if (!$6) { + $37 = _bitshift64Shl($0 | 0, $1 | 0, 12) | 0; + $38 = tempRet0; + if (($38 | 0) > -1 | ($38 | 0) == -1 & $37 >>> 0 > 4294967295) { + $45 = $37; + $46 = $38; + $ex$026 = 0; + while (1) { + $44 = $ex$026 + -1 | 0; + $45 = _bitshift64Shl($45 | 0, $46 | 0, 1) | 0; + $46 = tempRet0; + if (!(($46 | 0) > -1 | ($46 | 0) == -1 & $45 >>> 0 > 4294967295)) { + $ex$0$lcssa = $44; break; - } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$362 >> 1] = $117; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $134 = $117; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $134 = $117; - } else { - HEAP16[$pnt2$362 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $134 = $114; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $134 = $114; - } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $228 = $pnt$163 + 2 | 0; - $229 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $228; - $pnt2$362 = $229; - $wk_max$157 = $wk_max$2; + } else $ex$026 = $44; } - } + } else $ex$0$lcssa = 0; + $55 = _bitshift64Shl($0 | 0, $1 | 0, 1 - $ex$0$lcssa | 0) | 0; + $83 = $55; + $84 = tempRet0; + $ex$1 = $ex$0$lcssa; } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $83 = $0; + $84 = $1 & 1048575 | 1048576; + $ex$1 = $6; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + if (!$9) { + $60 = _bitshift64Shl($2 | 0, $3 | 0, 12) | 0; + $61 = tempRet0; + if (($61 | 0) > -1 | ($61 | 0) == -1 & $60 >>> 0 > 4294967295) { + $68 = $60; + $69 = $61; + $ey$020 = 0; + while (1) { + $67 = $ey$020 + -1 | 0; + $68 = _bitshift64Shl($68 | 0, $69 | 0, 1) | 0; + $69 = tempRet0; + if (!(($69 | 0) > -1 | ($69 | 0) == -1 & $68 >>> 0 > 4294967295)) { + $ey$0$lcssa = $67; + break; + } else $ey$020 = $67; + } + } else $ey$0$lcssa = 0; + $78 = _bitshift64Shl($2 | 0, $3 | 0, 1 - $ey$0$lcssa | 0) | 0; + $85 = $78; + $86 = tempRet0; + $ey$1$ph = $ey$0$lcssa; } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $85 = $2; + $86 = $3 & 1048575 | 1048576; + $ey$1$ph = $9; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $237 = HEAP32[$wk$439 >> 2] | 0; - if (($237 | 0) == ($i$337 | 0)) { - $243 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $243; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $87 = _i64Subtract($83 | 0, $84 | 0, $85 | 0, $86 | 0) | 0; + $88 = tempRet0; + $93 = ($88 | 0) > -1 | ($88 | 0) == -1 & $87 >>> 0 > 4294967295; + L23 : do if (($ex$1 | 0) > ($ey$1$ph | 0)) { + $152 = $93; + $153 = $87; + $154 = $88; + $95 = $83; + $97 = $84; + $ex$212 = $ex$1; + while (1) { + if ($152) if (($95 | 0) == ($85 | 0) & ($97 | 0) == ($86 | 0)) break; else { + $100 = $153; + $101 = $154; + } else { + $100 = $95; + $101 = $97; + } + $102 = _bitshift64Shl($100 | 0, $101 | 0, 1) | 0; + $103 = tempRet0; + $104 = $ex$212 + -1 | 0; + $106 = _i64Subtract($102 | 0, $103 | 0, $85 | 0, $86 | 0) | 0; + $107 = tempRet0; + $112 = ($107 | 0) > -1 | ($107 | 0) == -1 & $106 >>> 0 > 4294967295; + if (($104 | 0) > ($ey$1$ph | 0)) { + $152 = $112; + $153 = $106; + $154 = $107; + $95 = $102; + $97 = $103; + $ex$212 = $104; + } else { + $$lcssa7 = $112; + $114 = $102; + $116 = $103; + $155 = $106; + $156 = $107; + $ex$2$lcssa = $104; + break L23; + } } + $$0 = $x * 0.0; + break L1; + } else { + $$lcssa7 = $93; + $114 = $83; + $116 = $84; + $155 = $87; + $156 = $88; + $ex$2$lcssa = $ex$1; + } while (0); + if ($$lcssa7) if (($114 | 0) == ($85 | 0) & ($116 | 0) == ($86 | 0)) { + $$0 = $x * 0.0; + break; + } else { + $119 = $156; + $121 = $155; + } else { + $119 = $116; + $121 = $114; } - } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $255 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + if ($119 >>> 0 < 1048576 | ($119 | 0) == 1048576 & $121 >>> 0 < 0) { + $126 = $121; + $127 = $119; + $ex$39 = $ex$2$lcssa; + while (1) { + $128 = _bitshift64Shl($126 | 0, $127 | 0, 1) | 0; + $129 = tempRet0; + $130 = $ex$39 + -1 | 0; + if ($129 >>> 0 < 1048576 | ($129 | 0) == 1048576 & $128 >>> 0 < 0) { + $126 = $128; + $127 = $129; + $ex$39 = $130; + } else { + $137 = $128; + $138 = $129; + $ex$3$lcssa = $130; + break; + } + } + } else { + $137 = $121; + $138 = $119; + $ex$3$lcssa = $ex$2$lcssa; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$533 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + if (($ex$3$lcssa | 0) > 0) { + $139 = _i64Add($137 | 0, $138 | 0, 0, -1048576) | 0; + $140 = tempRet0; + $141 = _bitshift64Shl($ex$3$lcssa | 0, 0, 52) | 0; + $149 = $140 | tempRet0; + $150 = $139 | $141; + } else { + $146 = _bitshift64Lshr($137 | 0, $138 | 0, 1 - $ex$3$lcssa | 0) | 0; + $149 = tempRet0; + $150 = $146; } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $322 = $labelInfo + 12 + ($i$632 << 2) | 0; - $325 = $i$632 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + HEAP32[tempDoublePtr >> 2] = $150; + HEAP32[tempDoublePtr + 4 >> 2] = $149 | $10; + $$0 = +HEAPF64[tempDoublePtr >> 3]; } + } while (0); + if ((label | 0) == 3) { + $23 = $x * $y; + $$0 = $23 / $23; } - STACKTOP = sp; - return $$0 | 0; + return +$$0; } -function _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev($this) { + $this = $this | 0; + var $0 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(43445, 30); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43451, 74); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43460, 75); + __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(43469, 29); + __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(43480, 30); + __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(43496, 31); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43510, 32); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43528, 76); + __ZN10emscripten8functionIiJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(43548, 77); + __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(43560, 31); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43577, 33); + __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(43597, 32); + __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(43615, 33); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43637, 34); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43660, 35); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43689, 78); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43702, 79); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43715, 80); + __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(43731, 34); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43750, 36); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43760, 37); + __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(43773, 38); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43786, 81); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43799, 82); + __ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_(43818, 140); + __ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_(43830, 1); + __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(43842, 1); + __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(43865, 1); + __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(43888, 2); + __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(43910, 2); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(43932, 49); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43949, 83); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(43966, 50); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(43979, 84); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(43992, 51); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(44016, 85); + __ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_(44040, 3); + __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(44053, 3); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(44066, 52); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(44084, 86); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(44102, 53); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(44118, 87); + __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(44134, 54); + __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(44151, 88); + __ZN10emscripten8constantIiEEvPKcRKT_(44168, 5860); + __ZN10emscripten8constantIiEEvPKcRKT_(44197, 5872); + __ZN10emscripten8constantIiEEvPKcRKT_(44225, 5864); + __embind_register_constant(44258, 872, 0); + __embind_register_constant(44275, 872, 1); + __embind_register_constant(44291, 872, 0); + __embind_register_constant(44313, 872, 0); + __embind_register_constant(44338, 872, 1); + __embind_register_constant(44363, 872, 1); + __embind_register_constant(44388, 872, 100); + __embind_register_constant(44415, 872, 0); + __embind_register_constant(44441, 872, 1); + __embind_register_constant(44467, 872, 0); + __embind_register_constant(44494, 872, 0); + __embind_register_constant(44521, 872, 1); + __embind_register_constant(44547, 872, 2); + __embind_register_constant(44572, 872, 3); + __embind_register_constant(44610, 872, 4); + __embind_register_constant(44647, 872, 0); + __embind_register_constant(44681, 872, 0); + __embind_register_constant(44705, 872, 1); + __embind_register_constant(44731, 872, 2); + __embind_register_constant(44758, 872, 2); + __embind_register_constant(44792, 872, 5); + HEAPF64[$0 >> 3] = .5; + __ZN10emscripten8constantIdEEvPKcRKT_(44810, $0); + __embind_register_constant(44831, 872, 0); + __embind_register_constant(44850, 872, 1); + __embind_register_constant(44868, 872, 2); + __embind_register_constant(44886, 872, 3); + __embind_register_constant(44905, 872, 4); + __embind_register_constant(44927, 872, 3); + __embind_register_constant(44946, 872, 515); + __embind_register_constant(44975, 872, 259); + __embind_register_constant(45003, 872, 4); + __embind_register_constant(45022, 872, 772); + __embind_register_constant(45052, 872, 1028); + __embind_register_constant(45082, 872, 0); + __embind_register_constant(45113, 872, 1); + __embind_register_constant(45149, 872, 2); + __embind_register_constant(45183, 872, 3); + __embind_register_constant(45221, 872, 0); + __embind_register_constant(45254, 872, 1); + __embind_register_constant(45301, 872, 2); + __embind_register_constant(45343, 872, 3); + __embind_register_constant(45386, 872, 4); + __embind_register_constant(45438, 872, 5); + __embind_register_constant(45489, 872, 6); + __embind_register_constant(45534, 872, 7); + __embind_register_constant(45573, 872, 8); + __embind_register_constant(45618, 872, 9); + STACKTOP = sp; + return; +} + +function _ar2ReadFeatureSet($filename, $ext) { + $filename = $filename | 0; + $ext = $ext | 0; + var $$0 = 0, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $25 = 0, $30 = 0, $31 = 0, $4 = 0, $7 = 0, $9 = 0, $buf = 0, $featureSet$0 = 0, $i$048 = 0, $i$048$lcssa = 0, $i$048$lcssa62 = 0, $i$048$lcssa63 = 0, $i$048$lcssa64 = 0, $i$048$lcssa67 = 0, $i$048$lcssa68 = 0, $i$048$lcssa69 = 0, $i$048$lcssa70 = 0, $i$048$lcssa71 = 0, $i$04872 = 0, $j$0 = 0, $l3$047 = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer17 = 0, $vararg_buffer19 = 0, $vararg_buffer2 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer25 = 0, $vararg_buffer27 = 0, $vararg_buffer29 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 640 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer29 = sp + 112 | 0; + $vararg_buffer27 = sp + 104 | 0; + $vararg_buffer25 = sp + 96 | 0; + $vararg_buffer23 = sp + 88 | 0; + $vararg_buffer21 = sp + 80 | 0; + $vararg_buffer19 = sp + 72 | 0; + $vararg_buffer17 = sp + 64 | 0; + $vararg_buffer15 = sp + 56 | 0; + $vararg_buffer13 = sp + 48 | 0; + $vararg_buffer11 = sp + 40 | 0; + $vararg_buffer9 = sp + 32 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer5 = sp + 16 | 0; + $vararg_buffer2 = sp + 8 | 0; $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $buf = sp + 120 | 0; + HEAP32[$vararg_buffer >> 2] = $filename; + HEAP32[$vararg_buffer + 4 >> 2] = $ext; + _sprintf($buf, 21376, $vararg_buffer) | 0; + $0 = _fopen($buf, 20972) | 0; + if (!$0) { + HEAP32[$vararg_buffer2 >> 2] = $filename; + _arLog(3, 20483, $vararg_buffer2); + $$0 = 0; + } else { + $2 = _malloc(8) | 0; + if (!$2) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + $4 = $2 + 4 | 0; + L7 : do if ((_fread($4, 4, 1, $0) | 0) == 1) { + $7 = HEAP32[$4 >> 2] | 0; + $9 = _malloc($7 * 20 | 0) | 0; + HEAP32[$2 >> 2] = $9; + if (!$9) { + _arLog(3, 21359, $vararg_buffer9); + _exit(1); } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; - do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) { - $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$362 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$205 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $208 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$362 >> 1] = $74; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $91 = $74; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$362 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $91 = $71; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + if (($7 | 0) > 0) { + $13 = $9; + $i$048 = 0; + L13 : while (1) { + if ((_fread($13 + ($i$048 * 20 | 0) + 8 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa = $i$048; + label = 12; + break; + } + $13 = HEAP32[$2 >> 2] | 0; + if ((_fread($13 + ($i$048 * 20 | 0) + 12 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa62 = $i$048; + label = 16; + break; + } + if ((_fread($13 + ($i$048 * 20 | 0) + 16 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa63 = $i$048; + label = 18; + break; + } + $25 = $13 + ($i$048 * 20 | 0) + 4 | 0; + if ((_fread($25, 4, 1, $0) | 0) != 1) { + $i$048$lcssa64 = $i$048; + label = 20; + break; + } + $30 = _malloc((HEAP32[$25 >> 2] | 0) * 20 | 0) | 0; + $31 = $13 + ($i$048 * 20 | 0) | 0; + HEAP32[$31 >> 2] = $30; + if (!$30) { + label = 22; + break; + } else $j$0 = 0; + while (1) { + if (($j$0 | 0) >= (HEAP32[$25 >> 2] | 0)) break; + if ((_fread((HEAP32[$31 >> 2] | 0) + ($j$0 * 20 | 0) | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa67 = $i$048; + label = 25; + break L13; } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$362 >> 1] = $117; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $134 = $117; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $134 = $117; - } else { - HEAP16[$pnt2$362 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $134 = $114; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $134 = $114; + if ((_fread((HEAP32[$31 >> 2] | 0) + ($j$0 * 20 | 0) + 4 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa68 = $i$048; + label = 27; + break L13; } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $228 = $pnt$163 + 2 | 0; - $229 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; + if ((_fread((HEAP32[$31 >> 2] | 0) + ($j$0 * 20 | 0) + 8 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa69 = $i$048; + label = 29; + break L13; + } + if ((_fread((HEAP32[$31 >> 2] | 0) + ($j$0 * 20 | 0) + 12 | 0, 4, 1, $0) | 0) != 1) { + $i$048$lcssa70 = $i$048; + label = 31; + break L13; + } + if ((_fread((HEAP32[$31 >> 2] | 0) + ($j$0 * 20 | 0) + 16 | 0, 4, 1, $0) | 0) == 1) $j$0 = $j$0 + 1 | 0; else { + $i$048$lcssa71 = $i$048; + label = 33; + break L13; + } + } + $i$048 = $i$048 + 1 | 0; + if (($i$048 | 0) >= ($7 | 0)) { + $featureSet$0 = $2; + break L7; + } + } + switch (label | 0) { + case 12: + { + _arLog(3, 20504, $vararg_buffer11); + $i$04872 = $i$048$lcssa; + break; + } + case 16: + { + _arLog(3, 20504, $vararg_buffer13); + $i$04872 = $i$048$lcssa62; + break; + } + case 18: + { + _arLog(3, 20504, $vararg_buffer15); + $i$04872 = $i$048$lcssa63; + break; + } + case 20: + { + _arLog(3, 20504, $vararg_buffer17); + $i$04872 = $i$048$lcssa64; + break; + } + case 22: + { + _arLog(3, 21359, $vararg_buffer19); + _exit(1); break; - } else { - $pnt$163 = $228; - $pnt2$362 = $229; - $wk_max$157 = $wk_max$2; } + case 25: + { + _arLog(3, 20504, $vararg_buffer21); + $i$04872 = $i$048$lcssa67; + break; + } + case 27: + { + _arLog(3, 20504, $vararg_buffer23); + $i$04872 = $i$048$lcssa68; + break; + } + case 29: + { + _arLog(3, 20504, $vararg_buffer25); + $i$04872 = $i$048$lcssa69; + break; + } + case 31: + { + _arLog(3, 20504, $vararg_buffer27); + $i$04872 = $i$048$lcssa70; + break; + } + case 33: + { + _arLog(3, 20504, $vararg_buffer29); + $i$04872 = $i$048$lcssa71; + break; + } + } + if (($i$04872 | 0) > 0) { + $17 = HEAP32[$2 >> 2] | 0; + $l3$047 = 0; + do { + _free(HEAP32[$17 + ($l3$047 * 20 | 0) >> 2] | 0); + $l3$047 = $l3$047 + 1 | 0; + } while (($l3$047 | 0) < ($i$04872 | 0)); } + _free(HEAP32[$2 >> 2] | 0); + label = 37; + } else $featureSet$0 = $2; + } else { + _arLog(3, 20504, $vararg_buffer7); + label = 37; + } while (0); + if ((label | 0) == 37) { + _free($2); + $featureSet$0 = 0; + } + _fclose($0) | 0; + $$0 = $featureSet$0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _process_data_context_main($cinfo, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$$i = 0, $$pre$phi10Z2D = 0, $$pre$phi12Z2D = 0, $$pre$phi6Z2D = 0, $$pre$phi8Z2D = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $114 = 0, $117 = 0, $120 = 0, $121 = 0, $122 = 0, $124 = 0, $127 = 0, $134 = 0, $147 = 0, $15 = 0, $18 = 0, $2 = 0, $28 = 0, $29 = 0, $37 = 0, $44 = 0, $46 = 0, $47 = 0, $48 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $70 = 0, $71 = 0, $72 = 0, $86 = 0, $97 = 0, $99 = 0, $ci$0$i217 = 0, $ci$0$i24 = 0, $compptr$0$i116 = 0, $compptr$0$i23 = 0, $i$0$i20 = 0, $i$0$i313 = 0, label = 0; + $0 = $cinfo + 424 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 + 48 | 0; + if (!(HEAP32[$2 >> 2] | 0)) { + if (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$cinfo + 428 >> 2] | 0) + 12 >> 2] & 63]($cinfo, HEAP32[$1 + 56 + (HEAP32[$1 + 64 >> 2] << 2) >> 2] | 0) | 0) { + HEAP32[$2 >> 2] = 1; + $15 = $1 + 76 | 0; + HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 1; + label = 4; + } + } else label = 4; + L4 : do if ((label | 0) == 4) { + $18 = $1 + 68 | 0; + switch (HEAP32[$18 >> 2] | 0) { + case 2: + { + $28 = $1 + 52 | 0; + $29 = $1 + 72 | 0; + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 432 >> 2] | 0) + 4 >> 2] & 7]($cinfo, HEAP32[$1 + 56 + (HEAP32[$1 + 64 >> 2] << 2) >> 2] | 0, $28, HEAP32[$29 >> 2] | 0, $output_buf, $out_row_ctr, $out_rows_avail); + if ((HEAP32[$28 >> 2] | 0) >>> 0 < (HEAP32[$29 >> 2] | 0) >>> 0) break L4; + HEAP32[$18 >> 2] = 0; + if ((HEAP32[$out_row_ctr >> 2] | 0) >>> 0 < $out_rows_avail >>> 0) { + $$pre$phi6Z2D = $28; + $$pre$phi8Z2D = $29; + label = 9; + } else break L4; + break; + } + case 0: + { + $$pre$phi6Z2D = $1 + 52 | 0; + $$pre$phi8Z2D = $1 + 72 | 0; + label = 9; + break; + } + case 1: + { + $$pre$phi10Z2D = $1 + 52 | 0; + $$pre$phi12Z2D = $1 + 72 | 0; + break; + } + default: + break L4; + } + if ((label | 0) == 9) { + HEAP32[$$pre$phi6Z2D >> 2] = 0; + $37 = HEAP32[$cinfo + 316 >> 2] | 0; + HEAP32[$$pre$phi8Z2D >> 2] = $37 + -1; + if ((HEAP32[$1 + 76 >> 2] | 0) == (HEAP32[$cinfo + 320 >> 2] | 0)) { + $44 = HEAP32[$0 >> 2] | 0; + $46 = HEAP32[$cinfo + 36 >> 2] | 0; + $47 = $44 + 72 | 0; + $48 = $44 + 64 | 0; + if (($46 | 0) > 0) { + $ci$0$i24 = 0; + $compptr$0$i23 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $56 = Math_imul(HEAP32[$compptr$0$i23 + 36 >> 2] | 0, HEAP32[$compptr$0$i23 + 12 >> 2] | 0) | 0; + $57 = ($56 | 0) / ($37 | 0) | 0; + $60 = ((HEAP32[$compptr$0$i23 + 44 >> 2] | 0) >>> 0) % ($56 >>> 0) | 0; + $$$i = ($60 | 0) == 0 ? $56 : $60; + $63 = $$$i + -1 | 0; + if (!$ci$0$i24) HEAP32[$47 >> 2] = (($63 | 0) / ($57 | 0) | 0) + 1; + $70 = HEAP32[(HEAP32[$44 + 56 + (HEAP32[$48 >> 2] << 2) >> 2] | 0) + ($ci$0$i24 << 2) >> 2] | 0; + $71 = $57 << 1; + $72 = $70 + ($63 << 2) | 0; + if (($57 | 0) > 0) { + $i$0$i20 = 0; + do { + HEAP32[$70 + ($i$0$i20 + $$$i << 2) >> 2] = HEAP32[$72 >> 2]; + $i$0$i20 = $i$0$i20 + 1 | 0; + } while (($i$0$i20 | 0) < ($71 | 0)); + } + $ci$0$i24 = $ci$0$i24 + 1 | 0; + if (($ci$0$i24 | 0) >= ($46 | 0)) break; else $compptr$0$i23 = $compptr$0$i23 + 84 | 0; + } + } + } + HEAP32[$18 >> 2] = 1; + $$pre$phi10Z2D = $$pre$phi6Z2D; + $$pre$phi12Z2D = $$pre$phi8Z2D; + } + $86 = $1 + 64 | 0; + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 432 >> 2] | 0) + 4 >> 2] & 7]($cinfo, HEAP32[$1 + 56 + (HEAP32[$86 >> 2] << 2) >> 2] | 0, $$pre$phi10Z2D, HEAP32[$$pre$phi12Z2D >> 2] | 0, $output_buf, $out_row_ctr, $out_rows_avail); + if ((HEAP32[$$pre$phi10Z2D >> 2] | 0) >>> 0 >= (HEAP32[$$pre$phi12Z2D >> 2] | 0) >>> 0) { + if ((HEAP32[$1 + 76 >> 2] | 0) == 1) { + $97 = HEAP32[$0 >> 2] | 0; + $99 = HEAP32[$cinfo + 316 >> 2] | 0; + $101 = HEAP32[$cinfo + 36 >> 2] | 0; + $102 = $97 + 56 | 0; + $103 = $97 + 60 | 0; + $104 = $99 + 1 | 0; + $105 = $99 + 2 | 0; + if (($101 | 0) > 0) { + $ci$0$i217 = 0; + $compptr$0$i116 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $114 = (Math_imul(HEAP32[$compptr$0$i116 + 36 >> 2] | 0, HEAP32[$compptr$0$i116 + 12 >> 2] | 0) | 0) / ($99 | 0) | 0; + $117 = HEAP32[(HEAP32[$102 >> 2] | 0) + ($ci$0$i217 << 2) >> 2] | 0; + $120 = HEAP32[(HEAP32[$103 >> 2] | 0) + ($ci$0$i217 << 2) >> 2] | 0; + $121 = Math_imul($114, $104) | 0; + $122 = Math_imul($114, $105) | 0; + if (($114 | 0) > 0) { + $i$0$i313 = 0; + do { + $124 = $i$0$i313 + $121 | 0; + $127 = $i$0$i313 - $114 | 0; + HEAP32[$117 + ($127 << 2) >> 2] = HEAP32[$117 + ($124 << 2) >> 2]; + HEAP32[$120 + ($127 << 2) >> 2] = HEAP32[$120 + ($124 << 2) >> 2]; + $134 = $i$0$i313 + $122 | 0; + HEAP32[$117 + ($134 << 2) >> 2] = HEAP32[$117 + ($i$0$i313 << 2) >> 2]; + HEAP32[$120 + ($134 << 2) >> 2] = HEAP32[$120 + ($i$0$i313 << 2) >> 2]; + $i$0$i313 = $i$0$i313 + 1 | 0; + } while (($i$0$i313 | 0) < ($114 | 0)); + } + $ci$0$i217 = $ci$0$i217 + 1 | 0; + if (($ci$0$i217 | 0) >= ($101 | 0)) { + $147 = $99; + break; + } else $compptr$0$i116 = $compptr$0$i116 + 84 | 0; + } + } else $147 = $99; + } else $147 = HEAP32[$cinfo + 316 >> 2] | 0; + HEAP32[$86 >> 2] = HEAP32[$86 >> 2] ^ 1; + HEAP32[$2 >> 2] = 0; + HEAP32[$$pre$phi10Z2D >> 2] = $147 + 1; + HEAP32[$$pre$phi12Z2D >> 2] = $147 + 2; + HEAP32[$18 >> 2] = 2; + } + } while (0); + return; +} + +function _realize_virt_arrays($cinfo) { + $cinfo = $cinfo | 0; + var $$pre$phi6Z2D = 0, $$pre$phiZ2D = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $25 = 0, $28 = 0, $39 = 0, $41 = 0, $43 = 0, $49 = 0, $52 = 0, $57 = 0, $58 = 0, $60 = 0, $65 = 0, $66 = 0, $77 = 0, $80 = 0, $85 = 0, $86 = 0, $88 = 0, $9 = 0, $94 = 0, $95 = 0, $bptr$015 = 0, $bptr$018 = 0, $bptr$18 = 0, $bptr$19 = 0, $max_minheights$0 = 0, $maximum_space$0$lcssa = 0, $maximum_space$022 = 0, $maximum_space$1 = 0, $maximum_space$2$lcssa = 0, $maximum_space$216 = 0, $maximum_space$3 = 0, $space_per_minheight$0$lcssa = 0, $space_per_minheight$023 = 0, $space_per_minheight$1 = 0, $space_per_minheight$2$lcssa = 0, $space_per_minheight$217 = 0, $space_per_minheight$3 = 0, $sptr$021 = 0, $sptr$024 = 0, $sptr$111 = 0, $sptr$112 = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + $2 = $1 + 68 | 0; + $sptr$021 = HEAP32[$2 >> 2] | 0; + if (!$sptr$021) { + $maximum_space$0$lcssa = 0; + $space_per_minheight$0$lcssa = 0; + } else { + $maximum_space$022 = 0; + $space_per_minheight$023 = 0; + $sptr$024 = $sptr$021; + while (1) { + if (!(HEAP32[$sptr$024 >> 2] | 0)) { + $9 = HEAP32[$sptr$024 + 8 >> 2] | 0; + $11 = (Math_imul($9, HEAP32[$sptr$024 + 12 >> 2] | 0) | 0) + $space_per_minheight$023 | 0; + $maximum_space$1 = (Math_imul(HEAP32[$sptr$024 + 4 >> 2] | 0, $9) | 0) + $maximum_space$022 | 0; + $space_per_minheight$1 = $11; } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $maximum_space$1 = $maximum_space$022; + $space_per_minheight$1 = $space_per_minheight$023; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + $sptr$024 = HEAP32[$sptr$024 + 44 >> 2] | 0; + if (!$sptr$024) { + $maximum_space$0$lcssa = $maximum_space$1; + $space_per_minheight$0$lcssa = $space_per_minheight$1; + break; } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $maximum_space$022 = $maximum_space$1; + $space_per_minheight$023 = $space_per_minheight$1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + } + $18 = $1 + 72 | 0; + $bptr$015 = HEAP32[$18 >> 2] | 0; + if (!$bptr$015) { + $maximum_space$2$lcssa = $maximum_space$0$lcssa; + $space_per_minheight$2$lcssa = $space_per_minheight$0$lcssa; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $237 = HEAP32[$wk$439 >> 2] | 0; - if (($237 | 0) == ($i$337 | 0)) { - $243 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $bptr$018 = $bptr$015; + $maximum_space$216 = $maximum_space$0$lcssa; + $space_per_minheight$217 = $space_per_minheight$0$lcssa; + while (1) { + if (!(HEAP32[$bptr$018 >> 2] | 0)) { + $25 = HEAP32[$bptr$018 + 8 >> 2] | 0; + $28 = (Math_imul(HEAP32[$bptr$018 + 12 >> 2] << 7, $25) | 0) + $space_per_minheight$217 | 0; + $maximum_space$3 = (Math_imul($25 << 7, HEAP32[$bptr$018 + 4 >> 2] | 0) | 0) + $maximum_space$216 | 0; + $space_per_minheight$3 = $28; + } else { + $maximum_space$3 = $maximum_space$216; + $space_per_minheight$3 = $space_per_minheight$217; + } + $bptr$018 = HEAP32[$bptr$018 + 44 >> 2] | 0; + if (!$bptr$018) { + $maximum_space$2$lcssa = $maximum_space$3; + $space_per_minheight$2$lcssa = $space_per_minheight$3; + break; + } else { + $maximum_space$216 = $maximum_space$3; + $space_per_minheight$217 = $space_per_minheight$3; + } + } + } + if (($space_per_minheight$2$lcssa | 0) >= 1) { + $39 = _jpeg_mem_available($cinfo, $space_per_minheight$2$lcssa, $maximum_space$2$lcssa, HEAP32[$1 + 76 >> 2] | 0) | 0; + if (($39 | 0) < ($maximum_space$2$lcssa | 0)) { + $41 = ($39 | 0) / ($space_per_minheight$2$lcssa | 0) | 0; + $max_minheights$0 = ($41 | 0) < 1 ? 1 : $41; + } else $max_minheights$0 = 1e9; + $43 = $1 + 80 | 0; + $sptr$111 = HEAP32[$2 >> 2] | 0; + if ($sptr$111) { + $sptr$112 = $sptr$111; + do { + if (!(HEAP32[$sptr$112 >> 2] | 0)) { + $49 = HEAP32[$sptr$112 + 4 >> 2] | 0; + $52 = HEAP32[$sptr$112 + 12 >> 2] | 0; + if ((((($49 + -1 | 0) >>> 0) / ($52 >>> 0) | 0) + 1 | 0) > ($max_minheights$0 | 0)) { + $57 = Math_imul($52, $max_minheights$0) | 0; + $58 = $sptr$112 + 16 | 0; + HEAP32[$58 >> 2] = $57; + $60 = $sptr$112 + 8 | 0; + _jpeg_open_backing_store($cinfo, $sptr$112 + 48 | 0, Math_imul(HEAP32[$60 >> 2] | 0, $49) | 0); + HEAP32[$sptr$112 + 40 >> 2] = 1; + $$pre$phi6Z2D = $60; + $65 = HEAP32[$58 >> 2] | 0; + } else { + HEAP32[$sptr$112 + 16 >> 2] = $49; + $$pre$phi6Z2D = $sptr$112 + 8 | 0; + $65 = $49; + } + $66 = _alloc_sarray($cinfo, 1, HEAP32[$$pre$phi6Z2D >> 2] | 0, $65) | 0; + HEAP32[$sptr$112 >> 2] = $66; + HEAP32[$sptr$112 + 20 >> 2] = HEAP32[$43 >> 2]; + HEAP32[$sptr$112 + 24 >> 2] = 0; + HEAP32[$sptr$112 + 28 >> 2] = 0; + HEAP32[$sptr$112 + 36 >> 2] = 0; + } + $sptr$112 = HEAP32[$sptr$112 + 44 >> 2] | 0; + } while (($sptr$112 | 0) != 0); + } + $bptr$18 = HEAP32[$18 >> 2] | 0; + if ($bptr$18) { + $bptr$19 = $bptr$18; + do { + if (!(HEAP32[$bptr$19 >> 2] | 0)) { + $77 = HEAP32[$bptr$19 + 4 >> 2] | 0; + $80 = HEAP32[$bptr$19 + 12 >> 2] | 0; + if ((((($77 + -1 | 0) >>> 0) / ($80 >>> 0) | 0) + 1 | 0) > ($max_minheights$0 | 0)) { + $85 = Math_imul($80, $max_minheights$0) | 0; + $86 = $bptr$19 + 16 | 0; + HEAP32[$86 >> 2] = $85; + $88 = $bptr$19 + 8 | 0; + _jpeg_open_backing_store($cinfo, $bptr$19 + 48 | 0, Math_imul($77 << 7, HEAP32[$88 >> 2] | 0) | 0); + HEAP32[$bptr$19 + 40 >> 2] = 1; + $$pre$phiZ2D = $88; + $94 = HEAP32[$86 >> 2] | 0; + } else { + HEAP32[$bptr$19 + 16 >> 2] = $77; + $$pre$phiZ2D = $bptr$19 + 8 | 0; + $94 = $77; + } + $95 = _alloc_barray($cinfo, 1, HEAP32[$$pre$phiZ2D >> 2] | 0, $94) | 0; + HEAP32[$bptr$19 >> 2] = $95; + HEAP32[$bptr$19 + 20 >> 2] = HEAP32[$43 >> 2]; + HEAP32[$bptr$19 + 24 >> 2] = 0; + HEAP32[$bptr$19 + 28 >> 2] = 0; + HEAP32[$bptr$19 + 36 >> 2] = 0; } - HEAP32[$wk$439 >> 2] = $243; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + $bptr$19 = HEAP32[$bptr$19 + 44 >> 2] | 0; + } while (($bptr$19 | 0) != 0); + } + } + return; +} + +function _consume_markers($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $$lcssa = 0, $$pre$phi11$iZ2D = 0, $$pre12$i = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $120 = 0, $13 = 0, $130 = 0, $133 = 0, $136 = 0, $138 = 0, $139 = 0, $19 = 0, $2 = 0, $24 = 0, $26 = 0, $30 = 0, $31 = 0, $33 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $44 = 0, $45 = 0, $47 = 0, $49 = 0, $5 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $61 = 0, $64 = 0, $69 = 0, $71 = 0, $74 = 0, $77 = 0, $79 = 0, $82 = 0, $86 = 0, $88 = 0, $9 = 0, $92 = 0, $94 = 0, $ci$0$i5 = 0, $ci$1$i1 = 0, $compptr$0$i6 = 0, $compptr$1$i2 = 0, label = 0; + $0 = $cinfo + 436 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 + 20 | 0; + L1 : do if (!(HEAP32[$2 >> 2] | 0)) { + $5 = $cinfo + 440 | 0; + $9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 4 >> 2] & 127]($cinfo) | 0; + switch ($9 | 0) { + case 1: + break; + case 2: + { + HEAP32[$2 >> 2] = 1; + if (!(HEAP32[$1 + 24 >> 2] | 0)) { + $133 = $cinfo + 152 | 0; + $136 = HEAP32[$cinfo + 144 >> 2] | 0; + if ((HEAP32[$133 >> 2] | 0) <= ($136 | 0)) { + $$0 = 2; + break L1; + } + HEAP32[$133 >> 2] = $136; + $$0 = 2; + break L1; } else { - $j$1$lcssa = $j$2; - break; + if (!(HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] | 0)) { + $$0 = 2; + break L1; + } + $130 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$130 + 20 >> 2] = 59; + FUNCTION_TABLE_vi[HEAP32[$130 >> 2] & 255]($cinfo); + $$0 = 2; + break L1; } + break; } - } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $255 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); + default: + { + $$0 = $9; + break L1; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$533 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } + $10 = $1 + 24 | 0; + if (!(HEAP32[$10 >> 2] | 0)) { + if (!(HEAP32[$1 + 16 >> 2] | 0)) { + $120 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$120 + 20 >> 2] = 35; + FUNCTION_TABLE_vi[HEAP32[$120 >> 2] & 255]($cinfo); } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $322 = $labelInfo + 12 + ($i$632 << 2) | 0; - $325 = $i$632 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + _start_input_pass32($cinfo); + $$0 = 1; + break; } - } - STACKTOP = sp; + $13 = $cinfo + 32 | 0; + if ((HEAP32[$13 >> 2] | 0) > 65500) label = 6; else if ((HEAP32[$cinfo + 28 >> 2] | 0) > 65500) label = 6; + if ((label | 0) == 6) { + $19 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$19 + 20 >> 2] = 41; + HEAP32[$19 + 24 >> 2] = 65500; + FUNCTION_TABLE_vi[HEAP32[$19 >> 2] & 255]($cinfo); + } + $24 = HEAP32[$cinfo + 212 >> 2] | 0; + if (($24 | 0) != 8) { + $26 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$26 + 20 >> 2] = 15; + HEAP32[$26 + 24 >> 2] = $24; + FUNCTION_TABLE_vi[HEAP32[$26 >> 2] & 255]($cinfo); + } + $30 = $cinfo + 36 | 0; + $31 = HEAP32[$30 >> 2] | 0; + if (($31 | 0) > 10) { + $33 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$33 + 20 >> 2] = 26; + HEAP32[$33 + 24 >> 2] = $31; + HEAP32[$33 + 28 >> 2] = 10; + FUNCTION_TABLE_vi[HEAP32[$33 >> 2] & 255]($cinfo); + $$pre$phi11$iZ2D = $cinfo; + } else $$pre$phi11$iZ2D = $cinfo; + $38 = $cinfo + 308 | 0; + HEAP32[$38 >> 2] = 1; + $39 = $cinfo + 312 | 0; + HEAP32[$39 >> 2] = 1; + $40 = $cinfo + 216 | 0; + $41 = HEAP32[$30 >> 2] | 0; + if (($41 | 0) > 0) { + $138 = 1; + $139 = 1; + $ci$0$i5 = 0; + $compptr$0$i6 = HEAP32[$40 >> 2] | 0; + while (1) { + $44 = $compptr$0$i6 + 8 | 0; + $45 = HEAP32[$44 >> 2] | 0; + $$pre12$i = $compptr$0$i6 + 12 | 0; + if (($45 + -1 | 0) >>> 0 > 3) label = 16; else { + $47 = HEAP32[$$pre12$i >> 2] | 0; + if (($47 + -1 | 0) >>> 0 > 3) label = 16; else { + $53 = $138; + $54 = $45; + $56 = $139; + $57 = $47; + } + } + if ((label | 0) == 16) { + label = 0; + $49 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$49 + 20 >> 2] = 18; + FUNCTION_TABLE_vi[HEAP32[$49 >> 2] & 255]($$pre$phi11$iZ2D); + $53 = HEAP32[$38 >> 2] | 0; + $54 = HEAP32[$44 >> 2] | 0; + $56 = HEAP32[$39 >> 2] | 0; + $57 = HEAP32[$$pre12$i >> 2] | 0; + } + $138 = ($53 | 0) > ($54 | 0) ? $53 : $54; + HEAP32[$38 >> 2] = $138; + $139 = ($56 | 0) > ($57 | 0) ? $56 : $57; + HEAP32[$39 >> 2] = $139; + $ci$0$i5 = $ci$0$i5 + 1 | 0; + $61 = HEAP32[$30 >> 2] | 0; + if (($ci$0$i5 | 0) >= ($61 | 0)) { + $$lcssa = $61; + break; + } else $compptr$0$i6 = $compptr$0$i6 + 84 | 0; + } + } else $$lcssa = $41; + HEAP32[$cinfo + 316 >> 2] = 8; + $64 = $cinfo + 28 | 0; + if (($$lcssa | 0) > 0) { + $ci$1$i1 = 0; + $compptr$1$i2 = HEAP32[$40 >> 2] | 0; + while (1) { + HEAP32[$compptr$1$i2 + 36 >> 2] = 8; + $69 = $compptr$1$i2 + 8 | 0; + $71 = Math_imul(HEAP32[$69 >> 2] | 0, HEAP32[$64 >> 2] | 0) | 0; + $74 = _jdiv_round_up($71, HEAP32[$38 >> 2] << 3) | 0; + HEAP32[$compptr$1$i2 + 28 >> 2] = $74; + $77 = $compptr$1$i2 + 12 | 0; + $79 = Math_imul(HEAP32[$77 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0; + $82 = _jdiv_round_up($79, HEAP32[$39 >> 2] << 3) | 0; + HEAP32[$compptr$1$i2 + 32 >> 2] = $82; + $86 = Math_imul(HEAP32[$69 >> 2] | 0, HEAP32[$64 >> 2] | 0) | 0; + $88 = _jdiv_round_up($86, HEAP32[$38 >> 2] | 0) | 0; + HEAP32[$compptr$1$i2 + 40 >> 2] = $88; + $92 = Math_imul(HEAP32[$77 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0; + $94 = _jdiv_round_up($92, HEAP32[$39 >> 2] | 0) | 0; + HEAP32[$compptr$1$i2 + 44 >> 2] = $94; + HEAP32[$compptr$1$i2 + 48 >> 2] = 1; + HEAP32[$compptr$1$i2 + 76 >> 2] = 0; + $ci$1$i1 = $ci$1$i1 + 1 | 0; + if (($ci$1$i1 | 0) >= (HEAP32[$30 >> 2] | 0)) break; else $compptr$1$i2 = $compptr$1$i2 + 84 | 0; + } + } + $104 = _jdiv_round_up(HEAP32[$13 >> 2] | 0, HEAP32[$39 >> 2] << 3) | 0; + HEAP32[$cinfo + 320 >> 2] = $104; + if ((HEAP32[$cinfo + 328 >> 2] | 0) < (HEAP32[$30 >> 2] | 0)) label = 23; else if (!(HEAP32[$cinfo + 220 >> 2] | 0)) HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] = 0; else label = 23; + if ((label | 0) == 23) HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] = 1; + HEAP32[$10 >> 2] = 0; + $$0 = 1; + } else $$0 = 2; while (0); return $$0 | 0; } -function _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _decode_mcu_DC_first($cinfo, $MCU_data) { + $cinfo = $cinfo | 0; + $MCU_data = $MCU_data | 0; + var $$0 = 0, $1 = 0, $16 = 0, $17 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $33 = 0, $35 = 0, $41 = 0, $45 = 0, $46 = 0, $50 = 0, $52 = 0, $58 = 0, $68 = 0, $72 = 0, $79 = 0, $81 = 0, $88 = 0, $91 = 0, $bits_left$0$lcssa = 0, $bits_left$010 = 0, $bits_left$1 = 0, $bits_left$2 = 0, $bits_left$3 = 0, $bits_left$4 = 0, $bits_left$5 = 0, $blkn$011 = 0, $br_state = 0, $get_buffer$0$lcssa = 0, $get_buffer$09 = 0, $get_buffer$1 = 0, $get_buffer$2 = 0, $get_buffer$3 = 0, $get_buffer$4 = 0, $get_buffer$5 = 0, $nb$0 = 0, $s$0 = 0, $s$1 = 0, $state = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 48 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; + $br_state = sp + 20 | 0; + $state = sp; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $3 = HEAP32[$cinfo + 412 >> 2] | 0; + if (!(HEAP32[$cinfo + 276 >> 2] | 0)) label = 4; else if (!(HEAP32[$1 + 40 >> 2] | 0)) if (!(_process_restart($cinfo) | 0)) $$0 = 0; else label = 4; else label = 4; + L4 : do if ((label | 0) == 4) { + if (!(HEAP32[$1 + 8 >> 2] | 0)) { + HEAP32[$br_state + 16 >> 2] = $cinfo; + $16 = $cinfo + 24 | 0; + $17 = HEAP32[$16 >> 2] | 0; + HEAP32[$br_state >> 2] = HEAP32[$17 >> 2]; + $21 = $br_state + 4 | 0; + HEAP32[$21 >> 2] = HEAP32[$17 + 4 >> 2]; + $22 = $1 + 12 | 0; + $23 = HEAP32[$22 >> 2] | 0; + $24 = $1 + 16 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $1 + 20 | 0; + HEAP32[$state >> 2] = HEAP32[$26 >> 2]; + HEAP32[$state + 4 >> 2] = HEAP32[$26 + 4 >> 2]; + HEAP32[$state + 8 >> 2] = HEAP32[$26 + 8 >> 2]; + HEAP32[$state + 12 >> 2] = HEAP32[$26 + 12 >> 2]; + HEAP32[$state + 16 >> 2] = HEAP32[$26 + 16 >> 2]; + $27 = $cinfo + 356 | 0; + $28 = $br_state + 8 | 0; + $29 = $br_state + 12 | 0; + if ((HEAP32[$27 >> 2] | 0) > 0) { + $bits_left$010 = $25; + $blkn$011 = 0; + $get_buffer$09 = $23; while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - $32 = HEAPU8[$pnt$163 + 1 >> 0] | 0; - do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($43 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $43; - $46 = ($43 << 16 >> 16) * 7 | 0; - $48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1; - $52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255; - $56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0; - HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $67 = $66 << 16 >> 16; - $68 = $66 << 16 >> 16 > 0; - if ($62 << 16 >> 16 <= 0) { - if ($68) { - HEAP16[$pnt2$362 >> 1] = $66; - $168 = $67 * 7 | 0; - $170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1; - $174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255; - $178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068; - $182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0; - if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $188 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($188 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $188; - $191 = ($188 << 16 >> 16) * 7 | 0; - $193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1; - $197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255; - $201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0; - HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068; - $205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0; - if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$205 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $208 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $208; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16; - $213 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $208; - break; - } - } - if ($68) { - $71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0; - if (($71 | 0) > ($74 | 0)) { - HEAP16[$pnt2$362 >> 1] = $74; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $91 = $74; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $91 = $74; - } else { - HEAP16[$pnt2$362 >> 1] = $71; - if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $91 = $71; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $91 = $71; - } - $93 = ($91 << 16 >> 16) * 7 | 0; - $95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1; - $99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255; - $103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0; - HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + $33 = HEAP32[$MCU_data + ($blkn$011 << 2) >> 2] | 0; + $35 = HEAP32[$cinfo + 360 + ($blkn$011 << 2) >> 2] | 0; + $41 = HEAP32[$1 + 44 + (HEAP32[(HEAP32[$cinfo + 332 + ($35 << 2) >> 2] | 0) + 20 >> 2] << 2) >> 2] | 0; + if (($bits_left$010 | 0) < 8) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$09, $bits_left$010, 0) | 0)) { + $$0 = 0; + break L4; } - $109 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($109 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $62; - $149 = $63 * 7 | 0; - $151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1; - $155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255; - $159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068; - $163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0; - if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + $45 = HEAP32[$28 >> 2] | 0; + $46 = HEAP32[$29 >> 2] | 0; + if (($46 | 0) < 8) { + $bits_left$2 = $46; + $get_buffer$2 = $45; + $nb$0 = 1; + label = 11; + } else { + $bits_left$1 = $46; + $get_buffer$1 = $45; + label = 9; } - $114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - $117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($114 | 0) > ($117 | 0)) { - HEAP16[$pnt2$362 >> 1] = $117; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $134 = $117; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $134 = $117; + } else { + $bits_left$1 = $bits_left$010; + $get_buffer$1 = $get_buffer$09; + label = 9; + } + if ((label | 0) == 9) { + label = 0; + $50 = $get_buffer$1 >> $bits_left$1 + -8 & 255; + $52 = HEAP32[$41 + 144 + ($50 << 2) >> 2] | 0; + if (!$52) { + $bits_left$2 = $bits_left$1; + $get_buffer$2 = $get_buffer$1; + $nb$0 = 9; + label = 11; } else { - HEAP16[$pnt2$362 >> 1] = $114; - if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $134 = $114; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $134 = $114; + $bits_left$3 = $bits_left$1 - $52 | 0; + $get_buffer$3 = $get_buffer$1; + $s$0 = HEAPU8[$41 + 1168 + $50 >> 0] | 0; + } + } + if ((label | 0) == 11) { + label = 0; + $58 = _jpeg_huff_decode($br_state, $get_buffer$2, $bits_left$2, $41, $nb$0) | 0; + if (($58 | 0) < 0) { + $$0 = 0; + break L4; } - $136 = ($134 << 16 >> 16) * 7 | 0; - $138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1; - $142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255; - $146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $228 = $pnt$163 + 2 | 0; - $229 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $228; - $pnt2$3$lcssa = $229; - $wk_max$1$lcssa = $wk_max$2; + $bits_left$3 = HEAP32[$29 >> 2] | 0; + $get_buffer$3 = HEAP32[$28 >> 2] | 0; + $s$0 = $58; + } + if (!$s$0) { + $bits_left$5 = $bits_left$3; + $get_buffer$5 = $get_buffer$3; + $s$1 = 0; + } else { + if (($bits_left$3 | 0) < ($s$0 | 0)) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$3, $bits_left$3, $s$0) | 0)) { + $$0 = 0; + break L4; + } + $bits_left$4 = HEAP32[$29 >> 2] | 0; + $get_buffer$4 = HEAP32[$28 >> 2] | 0; + } else { + $bits_left$4 = $bits_left$3; + $get_buffer$4 = $get_buffer$3; + } + $68 = $bits_left$4 - $s$0 | 0; + $72 = $get_buffer$4 >> $68 & (1 << $s$0) + -1; + if (($72 | 0) < (HEAP32[5692 + ($s$0 << 2) >> 2] | 0)) { + $bits_left$5 = $68; + $get_buffer$5 = $get_buffer$4; + $s$1 = (HEAP32[5756 + ($s$0 << 2) >> 2] | 0) + $72 | 0; + } else { + $bits_left$5 = $68; + $get_buffer$5 = $get_buffer$4; + $s$1 = $72; + } + } + $79 = $state + 4 + ($35 << 2) | 0; + $81 = (HEAP32[$79 >> 2] | 0) + $s$1 | 0; + HEAP32[$79 >> 2] = $81; + HEAP16[$33 >> 1] = $81 << $3; + $blkn$011 = $blkn$011 + 1 | 0; + if (($blkn$011 | 0) >= (HEAP32[$27 >> 2] | 0)) { + $bits_left$0$lcssa = $bits_left$5; + $get_buffer$0$lcssa = $get_buffer$5; break; } else { - $pnt$163 = $228; - $pnt2$362 = $229; - $wk_max$157 = $wk_max$2; + $bits_left$010 = $bits_left$5; + $get_buffer$09 = $get_buffer$5; } } } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $bits_left$0$lcssa = $25; + $get_buffer$0$lcssa = $23; + } + $88 = HEAP32[$16 >> 2] | 0; + HEAP32[$88 >> 2] = HEAP32[$br_state >> 2]; + HEAP32[$88 + 4 >> 2] = HEAP32[$21 >> 2]; + HEAP32[$22 >> 2] = $get_buffer$0$lcssa; + HEAP32[$24 >> 2] = $bits_left$0$lcssa; + HEAP32[$26 >> 2] = HEAP32[$state >> 2]; + HEAP32[$26 + 4 >> 2] = HEAP32[$state + 4 >> 2]; + HEAP32[$26 + 8 >> 2] = HEAP32[$state + 8 >> 2]; + HEAP32[$26 + 12 >> 2] = HEAP32[$state + 12 >> 2]; + HEAP32[$26 + 16 >> 2] = HEAP32[$state + 16 >> 2]; + } + $91 = $1 + 40 | 0; + HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + -1; + $$0 = 1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE($frm, $frm_end, $mx, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $mx = $mx | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa82 = 0, $$lcssa83 = 0, $$lcssa84 = 0, $$lcssa85 = 0, $$lcssa86 = 0, $$pre = 0, $16 = 0, $17 = 0, $28 = 0, $38 = 0, $42 = 0, $44 = 0, $57 = 0, $71 = 0, $77 = 0, $79 = 0, $81 = 0, $93 = 0, $96 = 0, $frm_nxt$1$lcssa = 0, $frm_nxt$1$ph = 0, $frm_nxt$150 = 0, $frm_nxt$2 = 0, $nchar16_t$049 = 0, $nchar16_t$1 = 0, label = 0; + $$pre = $frm_end; + if (!($mode & 4)) $frm_nxt$1$ph = $frm; else if (($$pre - $frm | 0) > 2) if ((HEAP8[$frm >> 0] | 0) == -17) if ((HEAP8[$frm + 1 >> 0] | 0) == -69) $frm_nxt$1$ph = (HEAP8[$frm + 2 >> 0] | 0) == -65 ? $frm + 3 | 0 : $frm; else $frm_nxt$1$ph = $frm; else $frm_nxt$1$ph = $frm; else $frm_nxt$1$ph = $frm; + L7 : do if (($mx | 0) != 0 & $frm_nxt$1$ph >>> 0 < $frm_end >>> 0) { + $frm_nxt$150 = $frm_nxt$1$ph; + $nchar16_t$049 = 0; + L8 : while (1) { + $16 = HEAP8[$frm_nxt$150 >> 0] | 0; + $17 = $16 & 255; + if ($17 >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + do if ($16 << 24 >> 24 > -1) { + $frm_nxt$2 = $frm_nxt$150 + 1 | 0; + $nchar16_t$1 = $nchar16_t$049; } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; - } + if (($16 & 255) < 194) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + if (($16 & 255) < 224) { + if (($$pre - $frm_nxt$150 | 0) < 2) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $28 = HEAPU8[$frm_nxt$150 + 1 >> 0] | 0; + if (($28 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + if (($28 & 63 | $17 << 6 & 1984) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$150 + 2 | 0; + $nchar16_t$1 = $nchar16_t$049; + break; + } + if (($16 & 255) < 240) { + $38 = $frm_nxt$150; + if (($$pre - $38 | 0) < 3) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $42 = HEAP8[$frm_nxt$150 + 1 >> 0] | 0; + $44 = HEAP8[$frm_nxt$150 + 2 >> 0] | 0; + switch ($17 | 0) { + case 224: + { + if (($42 & -32) << 24 >> 24 != -96) { + $$lcssa85 = $38; + label = 20; + break L8; + } + break; + } + case 237: + { + if (($42 & -32) << 24 >> 24 != -128) { + $$lcssa84 = $38; + label = 22; + break L8; + } + break; + } + default: + if (($42 & -64) << 24 >> 24 != -128) { + $$lcssa86 = $38; + label = 24; + break L8; + } + } + $57 = $44 & 255; + if (($57 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + if ((($42 & 255) << 6 & 4032 | $17 << 12 & 61440 | $57 & 63) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$150 + 3 | 0; + $nchar16_t$1 = $nchar16_t$049; + break; + } + if (($16 & 255) >= 245) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $71 = $frm_nxt$150; + if (($mx - $nchar16_t$049 | 0) >>> 0 < 2 | ($$pre - $71 | 0) < 4) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $77 = HEAP8[$frm_nxt$150 + 1 >> 0] | 0; + $79 = HEAP8[$frm_nxt$150 + 2 >> 0] | 0; + $81 = HEAP8[$frm_nxt$150 + 3 >> 0] | 0; + switch ($17 | 0) { + case 240: + { + if (($77 + 112 & 255) >= 48) { + $$lcssa82 = $71; + label = 32; + break L8; + } + break; + } + case 244: + { + if (($77 & -16) << 24 >> 24 != -128) { + $$lcssa = $71; + label = 34; + break L8; + } + break; + } + default: + if (($77 & -64) << 24 >> 24 != -128) { + $$lcssa83 = $71; + label = 36; + break L8; + } + } + $93 = $79 & 255; + if (($93 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $96 = $81 & 255; + if (($96 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + if ((($77 & 255) << 12 & 258048 | $17 << 18 & 1835008 | $93 << 6 & 4032 | $96 & 63) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$150; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$150 + 4 | 0; + $nchar16_t$1 = $nchar16_t$049 + 1 | 0; + } while (0); + $nchar16_t$049 = $nchar16_t$1 + 1 | 0; + if (!($nchar16_t$049 >>> 0 < $mx >>> 0 & $frm_nxt$2 >>> 0 < $frm_end >>> 0)) { + $frm_nxt$1$lcssa = $frm_nxt$2; + label = 42; + break L7; + } else $frm_nxt$150 = $frm_nxt$2; + } + if ((label | 0) == 20) { + $$0 = $$lcssa85 - $frm | 0; + break; + } else if ((label | 0) == 22) { + $$0 = $$lcssa84 - $frm | 0; + break; + } else if ((label | 0) == 24) { + $$0 = $$lcssa86 - $frm | 0; + break; + } else if ((label | 0) == 32) { + $$0 = $$lcssa82 - $frm | 0; + break; + } else if ((label | 0) == 34) { + $$0 = $$lcssa - $frm | 0; + break; + } else if ((label | 0) == 36) { + $$0 = $$lcssa83 - $frm | 0; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; + $frm_nxt$1$lcssa = $frm_nxt$1$ph; + label = 42; } while (0); - if ((label | 0) == 52) { - $235 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + if ((label | 0) == 42) $$0 = $frm_nxt$1$lcssa - $frm | 0; + return $$0 | 0; +} + +function _jpeg_make_d_derived_tbl($cinfo, $isDC, $tblno, $pdtbl) { + $cinfo = $cinfo | 0; + $isDC = $isDC | 0; + $tblno = $tblno | 0; + $pdtbl = $pdtbl | 0; + var $$lcssa48 = 0, $$pre$lcssa = 0, $$pre$phiZ2D = 0, $$pre11 = 0, $$sink = 0, $1 = 0, $10 = 0, $100 = 0, $14 = 0, $19 = 0, $21 = 0, $23 = 0, $24 = 0, $25 = 0, $27 = 0, $30 = 0, $38 = 0, $42 = 0, $44 = 0, $46 = 0, $5 = 0, $51 = 0, $57 = 0, $66 = 0, $74 = 0, $75 = 0, $76 = 0, $79 = 0, $8 = 0, $80 = 0, $91 = 0, $code$034 = 0, $code$1$lcssa = 0, $code$127 = 0, $ctr$015 = 0, $huffcode = 0, $huffsize = 0, $i$036 = 0, $i$119 = 0, $i$213 = 0, $l$040 = 0, $l$125 = 0, $l$223 = 0, $lookbits$014 = 0, $p$041 = 0, $p$137 = 0, $p$235 = 0, $p$3$lcssa = 0, $p$328 = 0, $p$426 = 0, $p$5 = 0, $p$624 = 0, $p$7$lcssa = 0, $p$720 = 0, $si$033 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1296 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $huffsize = sp + 1028 | 0; + $huffcode = sp; + if ($tblno >>> 0 > 3) { + $1 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$1 + 20 >> 2] = 50; + HEAP32[$1 + 24 >> 2] = $tblno; + FUNCTION_TABLE_vi[HEAP32[$1 >> 2] & 255]($cinfo); + } + $5 = ($isDC | 0) != 0; + $8 = HEAP32[($5 ? $cinfo + 180 + ($tblno << 2) | 0 : $cinfo + 196 + ($tblno << 2) | 0) >> 2] | 0; + if (!$8) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 50; + HEAP32[$10 + 24 >> 2] = $tblno; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + $14 = HEAP32[$pdtbl >> 2] | 0; + if (!$14) { + $19 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, 1424) | 0; + HEAP32[$pdtbl >> 2] = $19; + $$pre$phiZ2D = $cinfo; + $21 = $19; + } else { + $$pre$phiZ2D = $cinfo; + $21 = $14; + } + HEAP32[$21 + 140 >> 2] = $8; + $l$040 = 1; + $p$041 = 0; + while (1) { + $23 = HEAP8[$8 + $l$040 >> 0] | 0; + $24 = $23 & 255; + $25 = $24 + $p$041 | 0; + if (($25 | 0) > 256) { + $27 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$27 + 20 >> 2] = 8; + FUNCTION_TABLE_vi[HEAP32[$27 >> 2] & 255]($$pre$phiZ2D); + } + $30 = $l$040 & 255; + if ($23 << 24 >> 24) { + $i$036 = $24; + $p$137 = $p$041; while (1) { - $237 = HEAP32[$wk$439 >> 2] | 0; - if (($237 | 0) == ($i$337 | 0)) { - $243 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $i$036 = $i$036 + -1 | 0; + HEAP8[$huffsize + $p$137 >> 0] = $30; + if (!$i$036) break; else $p$137 = $p$137 + 1 | 0; + } + } + $l$040 = $l$040 + 1 | 0; + if (($l$040 | 0) == 17) { + $$lcssa48 = $25; + break; + } else $p$041 = $25; + } + HEAP8[$huffsize + $$lcssa48 >> 0] = 0; + $38 = HEAP8[$huffsize >> 0] | 0; + if (!($38 << 24 >> 24)) { + $l$125 = 1; + $p$426 = 0; + } else { + $42 = $38; + $code$034 = 0; + $p$235 = 0; + $si$033 = $38 << 24 >> 24; + while (1) { + if (($42 << 24 >> 24 | 0) == ($si$033 | 0)) { + $code$127 = $code$034; + $p$328 = $p$235; + while (1) { + $44 = $p$328 + 1 | 0; + HEAP32[$huffcode + ($p$328 << 2) >> 2] = $code$127; + $46 = $code$127 + 1 | 0; + $$pre11 = HEAP8[$huffsize + $44 >> 0] | 0; + if (($$pre11 << 24 >> 24 | 0) == ($si$033 | 0)) { + $code$127 = $46; + $p$328 = $44; + } else { + $$pre$lcssa = $$pre11; + $code$1$lcssa = $46; + $p$3$lcssa = $44; + break; + } } - HEAP32[$wk$439 >> 2] = $243; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + } else { + $$pre$lcssa = $42; + $code$1$lcssa = $code$034; + $p$3$lcssa = $p$235; + } + if (($code$1$lcssa | 0) >= (1 << $si$033 | 0)) { + $51 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$51 + 20 >> 2] = 8; + FUNCTION_TABLE_vi[HEAP32[$51 >> 2] & 255]($$pre$phiZ2D); + } + if (!($$pre$lcssa << 24 >> 24)) { + $l$125 = 1; + $p$426 = 0; + break; + } else { + $42 = $$pre$lcssa; + $code$034 = $code$1$lcssa << 1; + $p$235 = $p$3$lcssa; + $si$033 = $si$033 + 1 | 0; + } + } + } + while (1) { + $57 = $8 + $l$125 | 0; + if (!(HEAP8[$57 >> 0] | 0)) { + $$sink = -1; + $p$5 = $p$426; + } else { + HEAP32[$21 + 72 + ($l$125 << 2) >> 2] = $p$426 - (HEAP32[$huffcode + ($p$426 << 2) >> 2] | 0); + $66 = (HEAPU8[$57 >> 0] | 0) + $p$426 | 0; + $$sink = HEAP32[$huffcode + ($66 + -1 << 2) >> 2] | 0; + $p$5 = $66; + } + HEAP32[$21 + ($l$125 << 2) >> 2] = $$sink; + $l$125 = $l$125 + 1 | 0; + if (($l$125 | 0) == 17) break; else $p$426 = $p$5; + } + HEAP32[$21 + 68 >> 2] = 1048575; + _memset($21 + 144 | 0, 0, 1024) | 0; + $l$223 = 1; + $p$624 = 0; + while (1) { + $74 = $8 + $l$223 | 0; + $75 = 8 - $l$223 | 0; + $76 = 1 << $75; + if (!(HEAP8[$74 >> 0] | 0)) $p$7$lcssa = $p$624; else { + $79 = ($75 | 0) == 31; + $i$119 = 1; + $p$720 = $p$624; + while (1) { + $80 = $8 + 17 + $p$720 | 0; + if (!$79) { + $ctr$015 = $76; + $lookbits$014 = HEAP32[$huffcode + ($p$720 << 2) >> 2] << $75; + while (1) { + HEAP32[$21 + 144 + ($lookbits$014 << 2) >> 2] = $l$223; + HEAP8[$21 + 1168 + $lookbits$014 >> 0] = HEAP8[$80 >> 0] | 0; + if (($ctr$015 | 0) > 1) { + $ctr$015 = $ctr$015 + -1 | 0; + $lookbits$014 = $lookbits$014 + 1 | 0; + } else break; + } + } + $91 = $p$720 + 1 | 0; + if (($i$119 | 0) < (HEAPU8[$74 >> 0] | 0)) { + $i$119 = $i$119 + 1 | 0; + $p$720 = $91; } else { - $j$1$lcssa = $j$2; + $p$7$lcssa = $91; break; } } } - $247 = $labelInfo + 8 | 0; - $248 = $j$1$lcssa + -1 | 0; - HEAP32[$247 >> 2] = $248; - if (!$248) $$0 = 0; else { - _memset($235 | 0, 0, $248 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $255 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $270 = $i$533 * 7 | 0; - $273 = $labelInfo + 12 + ($269 << 2) | 0; - HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0); - $280 = $269 << 1; - $281 = $labelInfo + 655376 + ($280 << 3) | 0; - HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0); - $289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0; - HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0); - $292 = $269 << 2; - $293 = $labelInfo + 131084 + ($292 << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0; - $311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0; - if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311; - $314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0; - $318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0; - if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + $l$223 = $l$223 + 1 | 0; + if (($l$223 | 0) == 9) break; else $p$624 = $p$7$lcssa; + } + if ($5 & ($$lcssa48 | 0) > 0) { + $i$213 = 0; + do { + if ((HEAPU8[$8 + 17 + $i$213 >> 0] | 0) > 15) { + $100 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$100 + 20 >> 2] = 8; + FUNCTION_TABLE_vi[HEAP32[$100 >> 2] & 255]($$pre$phiZ2D); } - if ((HEAP32[$247 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $322 = $labelInfo + 12 + ($i$632 << 2) | 0; - $325 = $i$632 << 1; - $326 = $labelInfo + 655376 + ($325 << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0); - $332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0; - HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + $i$213 = $i$213 + 1 | 0; + } while (($i$213 | 0) < ($$lcssa48 | 0)); } STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNK6vision4NodeILi96EE7nearestERNSt3__16vectorIPKS1_NS2_9allocatorIS5_EEEERNS2_14priority_queueINS_17PriorityQueueItemILi96EEENS3_ISC_NS6_ISC_EEEENS2_4lessISC_EEEEPKh($this, $nodes, $queue, $feature) { + $this = $this | 0; + $nodes = $nodes | 0; + $queue = $queue | 0; + $feature = $feature | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $100 = 0, $101 = 0, $13 = 0, $15 = 0, $19 = 0, $2 = 0, $21 = 0, $23 = 0, $26 = 0, $3 = 0, $4 = 0, $41 = 0, $46 = 0, $47 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $62 = 0, $63 = 0, $65 = 0, $68 = 0, $69 = 0, $7 = 0, $77 = 0, $78 = 0, $83 = 0, $86 = 0, $91 = 0, $92 = 0, $97 = 0, $99 = 0, $i$0$mini$0 = 0, $i$012 = 0, $i1$011 = 0, $mind$014 = 0, $mini$0$lcssa = 0, $mini$013 = 0, $v = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 48 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $$byval_copy1 = sp + 36 | 0; + $$byval_copy = sp + 32 | 0; + $0 = sp + 28 | 0; + $1 = sp + 24 | 0; + $2 = sp; + $v = sp + 12 | 0; + $3 = sp + 8 | 0; + $4 = sp + 4 | 0; + $7 = $this + 104 | 0; + __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEEC2Ej($v, (HEAP32[$this + 108 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) >> 2); + $13 = $v + 4 | 0; + $15 = HEAP32[$v >> 2] | 0; + if ((HEAP32[$13 >> 2] | 0) == ($15 | 0)) $mini$0$lcssa = -1; else { + $23 = $15; + $i$012 = 0; + $mind$014 = -1; + $mini$013 = -1; while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $19 = HEAP32[(HEAP32[$7 >> 2] | 0) + ($i$012 << 2) >> 2] | 0; + $21 = __ZN6vision18HammingDistance768EPKjS1_($19 + 4 | 0, $feature) | 0; + HEAP32[$23 + ($i$012 << 3) >> 2] = $19; + HEAP32[$23 + ($i$012 << 3) + 4 >> 2] = $21; + $26 = $21 >>> 0 < $mind$014 >>> 0; + $i$0$mini$0 = $26 ? $i$012 : $mini$013; + $i$012 = $i$012 + 1 | 0; + $23 = HEAP32[$v >> 2] | 0; + if ($i$012 >>> 0 >= (HEAP32[$13 >> 2] | 0) - $23 >> 3 >>> 0) { + $mini$0$lcssa = $i$0$mini$0; + break; + } else { + $mind$014 = $26 ? $21 : $mind$014; + $mini$013 = $i$0$mini$0; } } } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + if (($mini$0$lcssa | 0) == -1) { + $41 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29782) | 0, 29634) | 0, 34302) | 0, 155) | 0, 34309) | 0, 29816) | 0; + $46 = __ZNKSt3__18ios_base6getlocEv($41 + (HEAP32[(HEAP32[$41 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy1 >> 2] = $46; + $47 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy1, 13680) | 0; + $51 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$47 >> 2] | 0) + 28 >> 2] & 63]($47, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy1); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($41, $51) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($41) | 0; + _abort(); + } + $54 = HEAP32[(HEAP32[$7 >> 2] | 0) + ($mini$0$lcssa << 2) >> 2] | 0; + HEAP32[$3 >> 2] = $54; + $55 = $nodes + 4 | 0; + $56 = HEAP32[$55 >> 2] | 0; + $57 = $nodes + 8 | 0; + if (($56 | 0) == (HEAP32[$57 >> 2] | 0)) __ZNSt3__16vectorIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEE21__push_back_slow_pathIKS5_EEvRT_($nodes, $3); else { + HEAP32[$56 >> 2] = $54; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 4; + } + $62 = $queue + 4 | 0; + $63 = $queue + 8 | 0; + $65 = HEAP32[$v >> 2] | 0; + if ((HEAP32[$13 >> 2] | 0) != ($65 | 0)) { + $69 = $65; + $i1$011 = 0; + do { + do if (($i1$011 | 0) != ($mini$0$lcssa | 0)) { + $68 = $69 + ($i1$011 << 3) | 0; + if ((HEAP32[$69 + ($i1$011 << 3) + 4 >> 2] | 0) == (HEAP32[$69 + ($mini$0$lcssa << 3) + 4 >> 2] | 0)) { + $77 = HEAP32[(HEAP32[$7 >> 2] | 0) + ($i1$011 << 2) >> 2] | 0; + HEAP32[$4 >> 2] = $77; + $78 = HEAP32[$55 >> 2] | 0; + if (($78 | 0) == (HEAP32[$57 >> 2] | 0)) { + __ZNSt3__16vectorIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEE21__push_back_slow_pathIKS5_EEvRT_($nodes, $4); + break; + } else { + HEAP32[$78 >> 2] = $77; + HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 4; + break; + } + } + $83 = HEAP32[$62 >> 2] | 0; + if (($83 | 0) == (HEAP32[$63 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($queue, $68); + $100 = HEAP32[$62 >> 2] | 0; + } else { + $86 = $68; + $91 = HEAP32[$86 + 4 >> 2] | 0; + $92 = $83; + HEAP32[$92 >> 2] = HEAP32[$86 >> 2]; + HEAP32[$92 + 4 >> 2] = $91; + $97 = (HEAP32[$62 >> 2] | 0) + 8 | 0; + HEAP32[$62 >> 2] = $97; + $100 = $97; + } + $99 = $100; + $101 = HEAP32[$queue >> 2] | 0; + HEAP32[$0 >> 2] = $101; + HEAP32[$1 >> 2] = $99; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__19__sift_upIRNS_4lessIN6vision17PriorityQueueItemILi96EEEEENS_11__wrap_iterIPS4_EEEEvT0_SA_T_NS_15iterator_traitsISA_E15difference_typeE($$byval_copy, $$byval_copy1, $2, $99 - $101 >> 3); + } while (0); + $i1$011 = $i1$011 + 1 | 0; + $69 = HEAP32[$v >> 2] | 0; + } while ($i1$011 >>> 0 < (HEAP32[$13 >> 2] | 0) - $69 >> 3 >>> 0); + } + __ZNSt3__113__vector_baseIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEED2Ev($v); + STACKTOP = sp; + return; +} + +function __ZNK6vision25GaussianScaleSpacePyramid6locateERiS1_f($this, $octave, $scale, $sigma) { + $this = $this | 0; + $octave = $octave | 0; + $scale = $scale | 0; + $sigma = +$sigma; + var $0 = 0, $100 = 0, $101 = 0, $13 = 0, $14 = 0, $20 = 0, $23 = 0, $27 = 0, $28 = 0, $3 = 0, $35 = 0, $40 = 0, $41 = 0, $45 = 0, $54 = 0, $59 = 0, $60 = 0, $64 = 0, $66 = 0, $7 = 0.0, $72 = 0, $77 = 0, $78 = 0, $82 = 0, $90 = 0, $95 = 0, $96 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $3 = ~~+Math_floor(+(+__ZN6vision4log2IfEET_S1_($sigma))); + HEAP32[$octave >> 2] = $3; + $7 = +Math_log(+($sigma / +(1 << $3 | 0))); + $13 = ~~+Math_floor(+($7 * +HEAPF32[$this + 28 >> 2] + .5)); + HEAP32[$scale >> 2] = $13; + $14 = $this + 20 | 0; + if (($13 | 0) == ((HEAP32[$14 >> 2] | 0) + -1 | 0)) { + HEAP32[$octave >> 2] = (HEAP32[$octave >> 2] | 0) + 1; + HEAP32[$scale >> 2] = 0; + $101 = 0; + } else $101 = $13; + $20 = HEAP32[$octave >> 2] | 0; + if (($20 | 0) < 0) { + HEAP32[$octave >> 2] = 0; + HEAP32[$scale >> 2] = 0; + $66 = 0; + } else { + $23 = HEAP32[$this + 16 >> 2] | 0; + if (($20 | 0) < ($23 | 0)) $66 = $101; else { + HEAP32[$octave >> 2] = $23 + -1; + $27 = (HEAP32[$14 >> 2] | 0) + -1 | 0; + HEAP32[$scale >> 2] = $27; + $66 = $27; } } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize * 3 | 0) + 12 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$363 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$203 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $206 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $206; - break; - } - } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$363 >> 1] = $72; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $89 = $72; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $89 = $72; - } else { - HEAP16[$pnt2$363 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $89 = $69; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $89 = $69; + $28 = HEAP32[$octave >> 2] | 0; + if (($28 | 0) <= -1) { + $35 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33065) | 0, 33100) | 0, 34302) | 0, 268) | 0, 34309) | 0, 33227) | 0; + $40 = __ZNKSt3__18ios_base6getlocEv($35 + (HEAP32[(HEAP32[$35 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $40; + $41 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $45 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$41 >> 2] | 0) + 28 >> 2] & 63]($41, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($35, $45) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($35) | 0; + _abort(); + } + if (($28 | 0) >= (HEAP32[$this + 16 >> 2] | 0)) { + $54 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33251) | 0, 33100) | 0, 34302) | 0, 269) | 0, 34309) | 0, 33295) | 0; + $59 = __ZNKSt3__18ios_base6getlocEv($54 + (HEAP32[(HEAP32[$54 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $59; + $60 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $64 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$60 >> 2] | 0) + 28 >> 2] & 63]($60, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($54, $64) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($54) | 0; + _abort(); + } + if (($66 | 0) <= -1) { + $72 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33338) | 0, 33100) | 0, 34302) | 0, 270) | 0, 34309) | 0, 33372) | 0; + $77 = __ZNKSt3__18ios_base6getlocEv($72 + (HEAP32[(HEAP32[$72 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $77; + $78 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $82 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$78 >> 2] | 0) + 28 >> 2] & 63]($78, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($72, $82) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($72) | 0; + _abort(); + } + if (($66 | 0) < (HEAP32[$14 >> 2] | 0)) { + STACKTOP = sp; + return; + } else { + $90 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33395) | 0, 33100) | 0, 34302) | 0, 271) | 0, 34309) | 0, 33446) | 0; + $95 = __ZNKSt3__18ios_base6getlocEv($90 + (HEAP32[(HEAP32[$90 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $95; + $96 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $100 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$96 >> 2] | 0) + 28 >> 2] & 63]($96, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($90, $100) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($90) | 0; + _abort(); + } +} + +function __ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE($frm, $frm_end, $mx, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $mx = $mx | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa80 = 0, $$lcssa81 = 0, $$lcssa82 = 0, $$lcssa83 = 0, $$lcssa84 = 0, $$pre = 0, $16 = 0, $17 = 0, $28 = 0, $38 = 0, $42 = 0, $44 = 0, $57 = 0, $71 = 0, $75 = 0, $77 = 0, $79 = 0, $91 = 0, $94 = 0, $frm_nxt$1$lcssa = 0, $frm_nxt$1$ph = 0, $frm_nxt$148 = 0, $frm_nxt$2 = 0, $nchar32_t$047 = 0, label = 0; + $$pre = $frm_end; + if (!($mode & 4)) $frm_nxt$1$ph = $frm; else if (($$pre - $frm | 0) > 2) if ((HEAP8[$frm >> 0] | 0) == -17) if ((HEAP8[$frm + 1 >> 0] | 0) == -69) $frm_nxt$1$ph = (HEAP8[$frm + 2 >> 0] | 0) == -65 ? $frm + 3 | 0 : $frm; else $frm_nxt$1$ph = $frm; else $frm_nxt$1$ph = $frm; else $frm_nxt$1$ph = $frm; + L7 : do if (($mx | 0) != 0 & $frm_nxt$1$ph >>> 0 < $frm_end >>> 0) { + $frm_nxt$148 = $frm_nxt$1$ph; + $nchar32_t$047 = 0; + L8 : while (1) { + $16 = HEAP8[$frm_nxt$148 >> 0] | 0; + $17 = $16 & 255; + do if ($16 << 24 >> 24 > -1) { + if ($17 >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$148 + 1 | 0; + } else { + if (($16 & 255) < 194) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + if (($16 & 255) < 224) { + if (($$pre - $frm_nxt$148 | 0) < 2) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $28 = HEAPU8[$frm_nxt$148 + 1 >> 0] | 0; + if (($28 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + if (($28 & 63 | $17 << 6 & 1984) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$148 + 2 | 0; + break; + } + if (($16 & 255) < 240) { + $38 = $frm_nxt$148; + if (($$pre - $38 | 0) < 3) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $42 = HEAP8[$frm_nxt$148 + 1 >> 0] | 0; + $44 = HEAP8[$frm_nxt$148 + 2 >> 0] | 0; + switch ($17 | 0) { + case 224: + { + if (($42 & -32) << 24 >> 24 != -96) { + $$lcssa83 = $38; + label = 20; + break L8; } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; break; } - $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + case 237: + { + if (($42 & -32) << 24 >> 24 != -128) { + $$lcssa82 = $38; + label = 22; + break L8; + } break; } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$363 >> 1] = $115; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $132 = $115; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $132 = $115; - } else { - HEAP16[$pnt2$363 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $132 = $112; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $132 = $112; + default: + if (($42 & -64) << 24 >> 24 != -128) { + $$lcssa84 = $38; + label = 24; + break L8; + } + } + $57 = $44 & 255; + if (($57 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + if ((($42 & 255) << 6 & 4032 | $17 << 12 & 61440 | $57 & 63) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$148 + 3 | 0; + break; + } + if (($16 & 255) >= 245) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $71 = $frm_nxt$148; + if (($$pre - $71 | 0) < 4) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $75 = HEAP8[$frm_nxt$148 + 1 >> 0] | 0; + $77 = HEAP8[$frm_nxt$148 + 2 >> 0] | 0; + $79 = HEAP8[$frm_nxt$148 + 3 >> 0] | 0; + switch ($17 | 0) { + case 240: + { + if (($75 + 112 & 255) >= 48) { + $$lcssa80 = $71; + label = 32; + break L8; + } + break; + } + case 244: + { + if (($75 & -16) << 24 >> 24 != -128) { + $$lcssa = $71; + label = 34; + break L8; } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $226 = $pnt$164 + 6 | 0; - $227 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; break; - } else { - $pnt$164 = $226; - $pnt2$363 = $227; - $wk_max$158 = $wk_max$2; + } + default: + if (($75 & -64) << 24 >> 24 != -128) { + $$lcssa81 = $71; + label = 36; + break L8; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } + $91 = $77 & 255; + if (($91 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $94 = $79 & 255; + if (($94 & 192 | 0) != 128) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + if ((($75 & 255) << 12 & 258048 | $17 << 18 & 1835008 | $91 << 6 & 4032 | $94 & 63) >>> 0 > $Maxcode >>> 0) { + $frm_nxt$1$lcssa = $frm_nxt$148; + label = 42; + break L7; + } + $frm_nxt$2 = $frm_nxt$148 + 4 | 0; + } while (0); + $nchar32_t$047 = $nchar32_t$047 + 1 | 0; + if (!($nchar32_t$047 >>> 0 < $mx >>> 0 & $frm_nxt$2 >>> 0 < $frm_end >>> 0)) { + $frm_nxt$1$lcssa = $frm_nxt$2; + label = 42; + break L7; + } else $frm_nxt$148 = $frm_nxt$2; + } + if ((label | 0) == 20) { + $$0 = $$lcssa83 - $frm | 0; + break; + } else if ((label | 0) == 22) { + $$0 = $$lcssa82 - $frm | 0; + break; + } else if ((label | 0) == 24) { + $$0 = $$lcssa84 - $frm | 0; + break; + } else if ((label | 0) == 32) { + $$0 = $$lcssa80 - $frm | 0; + break; + } else if ((label | 0) == 34) { + $$0 = $$lcssa - $frm | 0; + break; + } else if ((label | 0) == 36) { + $$0 = $$lcssa81 - $frm | 0; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; + $frm_nxt$1$lcssa = $frm_nxt$1$ph; + label = 42; } while (0); - if ((label | 0) == 52) { - $233 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; + if ((label | 0) == 42) $$0 = $frm_nxt$1$lcssa - $frm | 0; + return $$0 | 0; +} + +function _jpeg_idct_4x4($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $$sum10 = 0, $$sum8 = 0, $$sum9 = 0, $1 = 0, $107 = 0, $108 = 0, $110 = 0, $112 = 0, $132 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $149 = 0, $151 = 0, $158 = 0, $165 = 0, $166 = 0, $178 = 0, $27 = 0, $35 = 0, $37 = 0, $49 = 0, $57 = 0, $6 = 0, $63 = 0, $69 = 0, $73 = 0, $8 = 0, $80 = 0, $87 = 0, $88 = 0, $94 = 0, $ctr$033 = 0, $ctr$126 = 0, $inptr$027 = 0, $quantptr$029 = 0, $workspace = 0, $wsptr$031 = 0, $wsptr$125 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $workspace = sp; + $1 = HEAP32[$cinfo + 324 >> 2] | 0; + $ctr$033 = 8; + $inptr$027 = $coef_block; + $quantptr$029 = HEAP32[$compptr + 80 >> 2] | 0; + $wsptr$031 = $workspace; + while (1) { + do if (($ctr$033 | 0) != 4) { + $6 = HEAP16[$inptr$027 + 16 >> 1] | 0; + $8 = HEAP16[$inptr$027 + 32 >> 1] | 0; + if (!(($6 | $8) << 16 >> 16)) if (!(HEAP16[$inptr$027 + 48 >> 1] | 0)) if (!(HEAP16[$inptr$027 + 80 >> 1] | 0)) if (!(HEAP16[$inptr$027 + 96 >> 1] | 0)) if (!(HEAP16[$inptr$027 + 112 >> 1] | 0)) { + $27 = Math_imul(HEAP32[$quantptr$029 >> 2] << 2, HEAP16[$inptr$027 >> 1] | 0) | 0; + HEAP32[$wsptr$031 >> 2] = $27; + HEAP32[$wsptr$031 + 32 >> 2] = $27; + HEAP32[$wsptr$031 + 64 >> 2] = $27; + HEAP32[$wsptr$031 + 96 >> 2] = $27; + break; + } else $37 = 0; else $37 = 0; else $37 = 0; else $37 = 0; else $37 = $8; + $35 = Math_imul(HEAP32[$quantptr$029 >> 2] << 14, HEAP16[$inptr$027 >> 1] | 0) | 0; + $49 = (Math_imul((HEAP32[$quantptr$029 + 64 >> 2] | 0) * 15137 | 0, $37 << 16 >> 16) | 0) - (Math_imul((HEAP32[$quantptr$029 + 192 >> 2] | 0) * 6270 | 0, HEAP16[$inptr$027 + 96 >> 1] | 0) | 0) | 0; + $57 = Math_imul(HEAP16[$inptr$027 + 112 >> 1] | 0, HEAP32[$quantptr$029 + 224 >> 2] | 0) | 0; + $63 = Math_imul(HEAP16[$inptr$027 + 80 >> 1] | 0, HEAP32[$quantptr$029 + 160 >> 2] | 0) | 0; + $69 = Math_imul(HEAP16[$inptr$027 + 48 >> 1] | 0, HEAP32[$quantptr$029 + 96 >> 2] | 0) | 0; + $73 = Math_imul($6 << 16 >> 16, HEAP32[$quantptr$029 + 32 >> 2] | 0) | 0; + $80 = ($73 * 8697 | 0) + ((Math_imul($57, -1730) | 0) + ($63 * 11893 | 0) + (Math_imul($69, -17799) | 0)) | 0; + $87 = (Math_imul($57, -4176) | 0) + (Math_imul($63, -4926) | 0) + ($69 * 7373 | 0) + ($73 * 20995 | 0) | 0; + $88 = $49 + $35 + 2048 | 0; + HEAP32[$wsptr$031 >> 2] = $88 + $87 >> 12; + HEAP32[$wsptr$031 + 96 >> 2] = $88 - $87 >> 12; + $94 = $35 - $49 + 2048 | 0; + HEAP32[$wsptr$031 + 32 >> 2] = $94 + $80 >> 12; + HEAP32[$wsptr$031 + 64 >> 2] = $94 - $80 >> 12; + } while (0); + if (($ctr$033 | 0) > 1) { + $ctr$033 = $ctr$033 + -1 | 0; + $inptr$027 = $inptr$027 + 2 | 0; + $quantptr$029 = $quantptr$029 + 4 | 0; + $wsptr$031 = $wsptr$031 + 4 | 0; + } else break; + } + $$sum8 = $output_col + 1 | 0; + $$sum9 = $output_col + 2 | 0; + $$sum10 = $output_col + 3 | 0; + $ctr$126 = 0; + $wsptr$125 = $workspace; + while (1) { + $107 = HEAP32[$output_buf + ($ctr$126 << 2) >> 2] | 0; + $108 = $107 + $output_col | 0; + $110 = HEAP32[$wsptr$125 + 4 >> 2] | 0; + $112 = HEAP32[$wsptr$125 + 8 >> 2] | 0; + if (!($110 | $112)) if (!(HEAP32[$wsptr$125 + 12 >> 2] | 0)) if (!(HEAP32[$wsptr$125 + 20 >> 2] | 0)) if (!(HEAP32[$wsptr$125 + 24 >> 2] | 0)) if (!(HEAP32[$wsptr$125 + 28 >> 2] | 0)) { + $132 = HEAP8[$1 + ((((HEAP32[$wsptr$125 >> 2] | 0) + 16 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$108 >> 0] = $132; + HEAP8[$107 + $$sum8 >> 0] = $132; + HEAP8[$107 + $$sum9 >> 0] = $132; + HEAP8[$107 + $$sum10 >> 0] = $132; + } else { + $139 = 0; + label = 18; + } else { + $139 = 0; + label = 18; + } else { + $139 = 0; + label = 18; + } else { + $139 = 0; + label = 18; + } else { + $139 = $112; + label = 18; + } + if ((label | 0) == 18) { + label = 0; + $137 = HEAP32[$wsptr$125 >> 2] << 14; + $143 = ($139 * 15137 | 0) + (Math_imul(HEAP32[$wsptr$125 + 24 >> 2] | 0, -6270) | 0) | 0; + $147 = HEAP32[$wsptr$125 + 28 >> 2] | 0; + $149 = HEAP32[$wsptr$125 + 20 >> 2] | 0; + $151 = HEAP32[$wsptr$125 + 12 >> 2] | 0; + $158 = (Math_imul($147, -1730) | 0) + ($149 * 11893 | 0) + (Math_imul($151, -17799) | 0) + ($110 * 8697 | 0) | 0; + $165 = (Math_imul($147, -4176) | 0) + (Math_imul($149, -4926) | 0) + ($151 * 7373 | 0) + ($110 * 20995 | 0) | 0; + $166 = $143 + $137 + 262144 | 0; + HEAP8[$108 >> 0] = HEAP8[$1 + ((($166 + $165 | 0) >>> 19 & 1023) + 128) >> 0] | 0; + HEAP8[$107 + $$sum10 >> 0] = HEAP8[$1 + ((($166 - $165 | 0) >>> 19 & 1023) + 128) >> 0] | 0; + $178 = $137 - $143 + 262144 | 0; + HEAP8[$107 + $$sum8 >> 0] = HEAP8[$1 + ((($178 + $158 | 0) >>> 19 & 1023) + 128) >> 0] | 0; + HEAP8[$107 + $$sum9 >> 0] = HEAP8[$1 + ((($178 - $158 | 0) >>> 19 & 1023) + 128) >> 0] | 0; + } + $ctr$126 = $ctr$126 + 1 | 0; + if (($ctr$126 | 0) == 4) break; else $wsptr$125 = $wsptr$125 + 32 | 0; + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe($this, $__b, $__e, $__intl, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i$i$i = 0, $$0$i$i1$i$i = 0, $$0$lcssa$i = 0, $$byval_copy = 0, $0 = 0, $104 = 0, $13 = 0, $14 = 0, $17 = 0, $2 = 0, $21 = 0, $27 = 0, $28 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $50 = 0, $53 = 0, $55 = 0, $58 = 0, $68 = 0, $71 = 0, $8 = 0, $83 = 0, $85 = 0, $__loc = 0, $__nbuf = 0, $__nc$0 = 0, $__nc$1 = 0, $__nc$2$lcssa = 0, $__nc$24 = 0, $__neg = 0, $__w$03 = 0, $__wb = 0, $__wbuf = 0, $__wn = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 576 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 424 | 0; + $vararg_buffer = sp; + $__wbuf = sp + 24 | 0; + $__wb = sp + 16 | 0; + $__wn = sp + 12 | 0; + $__loc = sp + 8 | 0; + $__neg = sp + 464 | 0; + $0 = sp + 4 | 0; + $__nbuf = sp + 468 | 0; + HEAP32[$__wb >> 2] = $__wbuf; + $2 = $__wb + 4 | 0; + HEAP32[$2 >> 2] = 147; + $4 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $4; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + HEAP8[$__neg >> 0] = 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + $8 = HEAP32[$__iob + 4 >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + if (__ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_($__b, $$byval_copy, $__intl, $__loc, $8, $__err, $__neg, $5, $__wb, $__wn, $__wbuf + 400 | 0) | 0) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 48 >> 2] & 15]($5, 56764, 56774, $$byval_copy) | 0; + $13 = HEAP32[$__wn >> 2] | 0; + $14 = HEAP32[$__wb >> 2] | 0; + $17 = $13 - $14 | 0; + if (($17 | 0) > 392) { + $21 = _malloc(($17 >> 2) + 2 | 0) | 0; + if (!$21) __ZSt17__throw_bad_allocv(); else { + $53 = $21; + $__nc$0 = $21; + } + } else { + $53 = 0; + $__nc$0 = $__nbuf; + } + if (!(HEAP8[$__neg >> 0] | 0)) $__nc$1 = $__nc$0; else { + HEAP8[$__nc$0 >> 0] = 45; + $__nc$1 = $__nc$0 + 1 | 0; + } + $27 = $$byval_copy + 40 | 0; + $28 = $$byval_copy; + if ($14 >>> 0 < $13 >>> 0) { + $30 = $$byval_copy + 4 | 0; + $31 = $30 + 4 | 0; + $32 = $31 + 4 | 0; + $33 = $32 + 4 | 0; + $34 = $33 + 4 | 0; + $35 = $34 + 4 | 0; + $36 = $35 + 4 | 0; + $37 = $36 + 4 | 0; + $38 = $37 + 4 | 0; + $__nc$24 = $__nc$1; + $__w$03 = $14; while (1) { - $235 = HEAP32[$wk$440 >> 2] | 0; - if (($235 | 0) == ($i$338 | 0)) { - $241 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $241; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $39 = HEAP32[$__w$03 >> 2] | 0; + if ((HEAP32[$$byval_copy >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $$byval_copy; else if ((HEAP32[$30 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $30; else if ((HEAP32[$31 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $31; else if ((HEAP32[$32 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $32; else if ((HEAP32[$33 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $33; else if ((HEAP32[$34 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $34; else if ((HEAP32[$35 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $35; else if ((HEAP32[$36 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $36; else if ((HEAP32[$37 >> 2] | 0) == ($39 | 0)) $$0$lcssa$i = $37; else $$0$lcssa$i = (HEAP32[$38 >> 2] | 0) == ($39 | 0) ? $38 : $27; + HEAP8[$__nc$24 >> 0] = HEAP8[56764 + ($$0$lcssa$i - $28 >> 2) >> 0] | 0; + $__w$03 = $__w$03 + 4 | 0; + $50 = $__nc$24 + 1 | 0; + if ($__w$03 >>> 0 >= (HEAP32[$__wn >> 2] | 0) >>> 0) { + $__nc$2$lcssa = $50; break; - } + } else $__nc$24 = $50; } + } else $__nc$2$lcssa = $__nc$1; + HEAP8[$__nc$2$lcssa >> 0] = 0; + HEAP32[$vararg_buffer >> 2] = $__v; + _sscanf($__nbuf, 56760, $vararg_buffer) | 0; + if ($53) _free($53); + } + $55 = HEAP32[$__b >> 2] | 0; + do if (!$55) $104 = 1; else { + $58 = HEAP32[$55 + 12 >> 2] | 0; + if (($58 | 0) == (HEAP32[$55 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$55 >> 2] | 0) + 36 >> 2] & 127]($55) | 0; else $$0$i$i$i$i = HEAP32[$58 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $104 = 1; + break; + } else { + $104 = (HEAP32[$__b >> 2] | 0) == 0; + break; } - $245 = $labelInfo + 8 | 0; - $246 = $j$1$lcssa + -1 | 0; - HEAP32[$245 >> 2] = $246; - if (!$246) $$0 = 0; else { - _memset($233 | 0, 0, $246 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $253 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); + } while (0); + $68 = HEAP32[$__e >> 2] | 0; + do if (!$68) label = 28; else { + $71 = HEAP32[$68 + 12 >> 2] | 0; + if (($71 | 0) == (HEAP32[$68 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$68 >> 2] | 0) + 36 >> 2] & 127]($68) | 0; else $$0$i$i1$i$i = HEAP32[$71 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 28; + break; + } else if ($104) break; else { + label = 30; + break; + } + } while (0); + if ((label | 0) == 28) if ($104) label = 30; + if ((label | 0) == 30) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $83 = HEAP32[$__b >> 2] | 0; + __ZNSt3__114__shared_count16__release_sharedEv(HEAP32[$__loc >> 2] | 0) | 0; + $85 = HEAP32[$__wb >> 2] | 0; + HEAP32[$__wb >> 2] = 0; + if ($85) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($85); + STACKTOP = sp; + return $83 | 0; +} + +function __ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nb, $__np, $__ne, $__ob, $__op, $__oe, $__loc) { + $__nb = $__nb | 0; + $__np = $__np | 0; + $__ne = $__ne | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__loc = $__loc | 0; + var $$01$i$i110 = 0, $$01$i$i6 = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $103 = 0, $105 = 0, $107 = 0, $109 = 0, $117 = 0, $18 = 0, $20 = 0, $21 = 0, $26 = 0, $27 = 0, $35 = 0, $40 = 0, $41 = 0, $48 = 0, $49 = 0, $5 = 0, $52 = 0, $54 = 0, $56 = 0, $63 = 0, $64 = 0, $65 = 0, $73 = 0, $77 = 0, $79 = 0, $8 = 0, $93 = 0, $94 = 0, $__dc$07 = 0, $__dc$1 = 0, $__dg$08 = 0, $__dg$1 = 0, $__grouping = 0, $__nf$0 = 0, $__nf$1 = 0, $__p$09 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__grouping = sp; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13828) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$1 >> 2] | 0) + 20 >> 2] & 63]($__grouping, $1); + $5 = HEAP8[$__grouping >> 0] | 0; + $8 = $__grouping + 4 | 0; + if (!((($5 & 1) == 0 ? ($5 & 255) >>> 1 : HEAP32[$8 >> 2] | 0) | 0)) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 15]($0, $__nb, $__ne, $__ob) | 0; + $18 = $__nb; + $20 = $__ob + ($__ne - $18 << 2) | 0; + HEAP32[$__oe >> 2] = $20; + $$pre$phiZ2D = $18; + $117 = $20; + } else { + HEAP32[$__oe >> 2] = $__ob; + $21 = HEAP8[$__nb >> 0] | 0; + switch ($21 << 24 >> 24) { + case 43: + case 45: + { + $26 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, $21) | 0; + $27 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $27 + 4; + HEAP32[$27 >> 2] = $26; + $__nf$0 = $__nb + 1 | 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $268 = $i$534 * 7 | 0; - $271 = $labelInfo + 12 + ($267 << 2) | 0; - HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); - $278 = $267 << 1; - $279 = $labelInfo + 655376 + ($278 << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); - $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; - HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); - $290 = $267 << 2; - $291 = $labelInfo + 131084 + ($290 << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + default: + $__nf$0 = $__nb; + } + L7 : do if (($__ne - $__nf$0 | 0) > 1) if ((HEAP8[$__nf$0 >> 0] | 0) == 48) { + $35 = $__nf$0 + 1 | 0; + switch (HEAP8[$35 >> 0] | 0) { + case 88: + case 120: + break; + default: + { + $__nf$1 = $__nf$0; + break L7; + } } - if ((HEAP32[$245 >> 2] | 0) > 0) { - $i$633 = 0; + $40 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, 48) | 0; + $41 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $41 + 4; + HEAP32[$41 >> 2] = $40; + $48 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, HEAP8[$35 >> 0] | 0) | 0; + $49 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $49 + 4; + HEAP32[$49 >> 2] = $48; + $__nf$1 = $__nf$0 + 2 | 0; + } else $__nf$1 = $__nf$0; else $__nf$1 = $__nf$0; while (0); + if (($__nf$1 | 0) != ($__ne | 0)) { + $52 = $__ne + -1 | 0; + if ($__nf$1 >>> 0 < $52 >>> 0) { + $$01$i$i110 = $__nf$1; + $56 = $52; do { - $320 = $labelInfo + 12 + ($i$633 << 2) | 0; - $323 = $i$633 << 1; - $324 = $labelInfo + 655376 + ($323 << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); - $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $54 = HEAP8[$$01$i$i110 >> 0] | 0; + HEAP8[$$01$i$i110 >> 0] = HEAP8[$56 >> 0] | 0; + HEAP8[$56 >> 0] = $54; + $$01$i$i110 = $$01$i$i110 + 1 | 0; + $56 = $56 + -1 | 0; + } while ($$01$i$i110 >>> 0 < $56 >>> 0); + } + } + $63 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] & 127]($1) | 0; + $64 = $__grouping + 8 | 0; + $65 = $__grouping + 1 | 0; + if ($__nf$1 >>> 0 < $__ne >>> 0) { + $__dc$07 = 0; + $__dg$08 = 0; + $__p$09 = $__nf$1; + while (1) { + $73 = HEAP8[((HEAP8[$__grouping >> 0] & 1) == 0 ? $65 : HEAP32[$64 >> 2] | 0) + $__dg$08 >> 0] | 0; + if ($73 << 24 >> 24 != 0 & ($__dc$07 | 0) == ($73 << 24 >> 24 | 0)) { + $77 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $77 + 4; + HEAP32[$77 >> 2] = $63; + $79 = HEAP8[$__grouping >> 0] | 0; + $__dc$1 = 0; + $__dg$1 = ($__dg$08 >>> 0 < ((($79 & 1) == 0 ? ($79 & 255) >>> 1 : HEAP32[$8 >> 2] | 0) + -1 | 0) >>> 0 & 1) + $__dg$08 | 0; + } else { + $__dc$1 = $__dc$07; + $__dg$1 = $__dg$08; + } + $93 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 44 >> 2] & 63]($0, HEAP8[$__p$09 >> 0] | 0) | 0; + $94 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $94 + 4; + HEAP32[$94 >> 2] = $93; + $__p$09 = $__p$09 + 1 | 0; + if ($__p$09 >>> 0 >= $__ne >>> 0) break; else { + $__dc$07 = $__dc$1 + 1 | 0; + $__dg$08 = $__dg$1; + } + } + } + $100 = $__nb; + $102 = $__ob + ($__nf$1 - $100 << 2) | 0; + $103 = HEAP32[$__oe >> 2] | 0; + if (($102 | 0) == ($103 | 0)) { + $$pre$phiZ2D = $100; + $117 = $102; + } else { + $105 = $103 + -4 | 0; + if ($102 >>> 0 < $105 >>> 0) { + $$01$i$i6 = $102; + $109 = $105; + do { + $107 = HEAP32[$$01$i$i6 >> 2] | 0; + HEAP32[$$01$i$i6 >> 2] = HEAP32[$109 >> 2]; + HEAP32[$109 >> 2] = $107; + $$01$i$i6 = $$01$i$i6 + 4 | 0; + $109 = $109 + -4 | 0; + } while ($$01$i$i6 >>> 0 < $109 >>> 0); + $$pre$phiZ2D = $100; + $117 = $103; + } else { + $$pre$phiZ2D = $100; + $117 = $103; + } } } + HEAP32[$__op >> 2] = ($__np | 0) == ($__ne | 0) ? $117 : $__ob + ($__np - $$pre$phiZ2D << 2) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17codecvtIwc11__mbstate_tE5do_inERS1_PKcS5_RS5_PwS7_RS7_($this, $st, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $st = $st | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $$0 = 0, $$01$be = 0, $$0153 = 0, $$0153$lcssa = 0, $$02$be = 0, $$0252 = 0, $$0252$lcssa = 0, $$1$lcssa = 0, $$145 = 0, $$145$lcssa = 0, $$145$lcssa73 = 0, $$2 = 0, $$lcssa = 0, $$pre = 0, $14 = 0, $15 = 0, $19 = 0, $26 = 0, $27 = 0, $34 = 0, $35 = 0, $45 = 0, $5 = 0, $51 = 0, $52 = 0, $58 = 0, $6 = 0, $64 = 0, $9 = 0, $fend$0$lcssa = 0, $fend$057 = 0, $fend$1$be = 0, $fend$154 = 0, $fend$2$lcssa = 0, $fend$246 = 0, $save_state = 0, $storemerge44 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $save_state = sp; + L1 : do if (($frm | 0) == ($frm_end | 0)) $fend$0$lcssa = $frm_end; else { + $fend$057 = $frm; while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + if (!(HEAP8[$fend$057 >> 0] | 0)) { + $fend$0$lcssa = $fend$057; + break L1; } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $fend$057 = $fend$057 + 1 | 0; + if (($fend$057 | 0) == ($frm_end | 0)) { + $fend$0$lcssa = $frm_end; + break; } } - } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize * 3 | 0) + 12 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$363 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$203 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $206 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $206; - break; - } - } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$363 >> 1] = $72; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $89 = $72; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $89 = $72; - } else { - HEAP16[$pnt2$363 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $89 = $69; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $89 = $69; - } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + } while (0); + HEAP32[$to_nxt >> 2] = $to; + HEAP32[$frm_nxt >> 2] = $frm; + $5 = $to_end; + $6 = $this + 8 | 0; + L6 : do if (($to | 0) == ($to_end | 0) | ($frm | 0) == ($frm_end | 0)) { + $64 = $frm; + label = 29; + } else { + $$0153 = $frm; + $$0252 = $to; + $fend$154 = $fend$0$lcssa; + L7 : while (1) { + $9 = $st; + $14 = HEAP32[$9 + 4 >> 2] | 0; + $15 = $save_state; + HEAP32[$15 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$15 + 4 >> 2] = $14; + $19 = $fend$154; + $26 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $27 = _mbsnrtowcs($$0252, $frm_nxt, $19 - $$0153 | 0, $5 - $$0252 >> 2, $st) | 0; + if ($26) _uselocale($26) | 0; + switch ($27 | 0) { + case 0: + { + $$0 = 2; + break L6; + break; + } + case -1: + { + $$0153$lcssa = $$0153; + $$0252$lcssa = $$0252; + $$lcssa = $19; + break L7; + break; + } + default: + {} + } + $45 = (HEAP32[$to_nxt >> 2] | 0) + ($27 << 2) | 0; + HEAP32[$to_nxt >> 2] = $45; + if (($45 | 0) == ($to_end | 0)) { + label = 19; + break; + } + $$pre = HEAP32[$frm_nxt >> 2] | 0; + if (($fend$154 | 0) == ($frm_end | 0)) { + $$01$be = $$pre; + $$02$be = $45; + $fend$1$be = $frm_end; + } else { + $51 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $52 = _mbrtowc($45, $$pre, 1, $st) | 0; + if ($51) _uselocale($51) | 0; + if ($52) { + $$0 = 2; + break L6; + } + HEAP32[$to_nxt >> 2] = (HEAP32[$to_nxt >> 2] | 0) + 4; + $58 = (HEAP32[$frm_nxt >> 2] | 0) + 1 | 0; + HEAP32[$frm_nxt >> 2] = $58; + L20 : do if (($58 | 0) == ($frm_end | 0)) $fend$2$lcssa = $frm_end; else { + $fend$246 = $58; + while (1) { + if (!(HEAP8[$fend$246 >> 0] | 0)) { + $fend$2$lcssa = $fend$246; + break L20; } - $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $fend$246 = $fend$246 + 1 | 0; + if (($fend$246 | 0) == ($frm_end | 0)) { + $fend$2$lcssa = $frm_end; break; } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$363 >> 1] = $115; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $132 = $115; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $132 = $115; - } else { - HEAP16[$pnt2$363 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $132 = $112; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $132 = $112; - } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $226 = $pnt$164 + 6 | 0; - $227 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; + } + } while (0); + $$01$be = $58; + $$02$be = HEAP32[$to_nxt >> 2] | 0; + $fend$1$be = $fend$2$lcssa; + } + if (($$02$be | 0) == ($to_end | 0) | ($$01$be | 0) == ($frm_end | 0)) { + $64 = $$01$be; + label = 29; + break L6; + } else { + $$0153 = $$01$be; + $$0252 = $$02$be; + $fend$154 = $fend$1$be; + } + } + if ((label | 0) == 19) { + $64 = HEAP32[$frm_nxt >> 2] | 0; + label = 29; + break; + } + HEAP32[$to_nxt >> 2] = $$0252$lcssa; + L29 : do if (($$0153$lcssa | 0) == (HEAP32[$frm_nxt >> 2] | 0)) $$1$lcssa = $$0153$lcssa; else { + $$145 = $$0153$lcssa; + $storemerge44 = $$0252$lcssa; + L30 : while (1) { + $34 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $35 = _mbrtowc($storemerge44, $$145, $$lcssa - $$145 | 0, $save_state) | 0; + if ($34) _uselocale($34) | 0; + switch ($35 | 0) { + case -1: + { + $$145$lcssa = $$145; + label = 13; + break L30; + break; + } + case -2: + { + $$145$lcssa73 = $$145; + label = 14; + break L30; + break; + } + case 0: + { + $$2 = $$145 + 1 | 0; break; - } else { - $pnt$164 = $226; - $pnt2$363 = $227; - $wk_max$158 = $wk_max$2; } + default: + $$2 = $$145 + $35 | 0; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $storemerge44 = (HEAP32[$to_nxt >> 2] | 0) + 4 | 0; + HEAP32[$to_nxt >> 2] = $storemerge44; + if (($$2 | 0) == (HEAP32[$frm_nxt >> 2] | 0)) { + $$1$lcssa = $$2; + break L29; + } else $$145 = $$2; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + if ((label | 0) == 13) { + HEAP32[$frm_nxt >> 2] = $$145$lcssa; + $$0 = 2; + break L6; + } else if ((label | 0) == 14) { + HEAP32[$frm_nxt >> 2] = $$145$lcssa73; + $$0 = 1; + break L6; + } + } while (0); + HEAP32[$frm_nxt >> 2] = $$1$lcssa; + $$0 = ($$1$lcssa | 0) != ($frm_end | 0) & 1; + } while (0); + if ((label | 0) == 29) $$0 = ($64 | 0) != ($frm_end | 0) & 1; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nb, $__np, $__ne, $__ob, $__op, $__oe, $__loc) { + $__nb = $__nb | 0; + $__np = $__np | 0; + $__ne = $__ne | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__loc = $__loc | 0; + var $$01$i$i111 = 0, $$01$i$i7 = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $103 = 0, $105 = 0, $107 = 0, $109 = 0, $117 = 0, $18 = 0, $20 = 0, $21 = 0, $26 = 0, $27 = 0, $35 = 0, $40 = 0, $41 = 0, $48 = 0, $49 = 0, $5 = 0, $52 = 0, $54 = 0, $56 = 0, $63 = 0, $64 = 0, $65 = 0, $73 = 0, $77 = 0, $79 = 0, $8 = 0, $93 = 0, $94 = 0, $__dc$08 = 0, $__dc$1 = 0, $__dg$09 = 0, $__dg$1 = 0, $__grouping = 0, $__nf$0 = 0, $__nf$1 = 0, $__p$010 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__grouping = sp; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13820) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$1 >> 2] | 0) + 20 >> 2] & 63]($__grouping, $1); + $5 = HEAP8[$__grouping >> 0] | 0; + $8 = $__grouping + 4 | 0; + if (!((($5 & 1) == 0 ? ($5 & 255) >>> 1 : HEAP32[$8 >> 2] | 0) | 0)) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 32 >> 2] & 15]($0, $__nb, $__ne, $__ob) | 0; + $18 = $__nb; + $20 = $__ob + ($__ne - $18) | 0; + HEAP32[$__oe >> 2] = $20; + $$pre$phiZ2D = $18; + $117 = $20; + } else { + HEAP32[$__oe >> 2] = $__ob; + $21 = HEAP8[$__nb >> 0] | 0; + switch ($21 << 24 >> 24) { + case 43: + case 45: + { + $26 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, $21) | 0; + $27 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $27 + 1; + HEAP8[$27 >> 0] = $26; + $__nf$0 = $__nb + 1 | 0; + break; } + default: + $__nf$0 = $__nb; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $233 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $235 = HEAP32[$wk$440 >> 2] | 0; - if (($235 | 0) == ($i$338 | 0)) { - $241 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $241; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + L7 : do if (($__ne - $__nf$0 | 0) > 1) if ((HEAP8[$__nf$0 >> 0] | 0) == 48) { + $35 = $__nf$0 + 1 | 0; + switch (HEAP8[$35 >> 0] | 0) { + case 88: + case 120: + break; + default: + { + $__nf$1 = $__nf$0; + break L7; } } - } - $245 = $labelInfo + 8 | 0; - $246 = $j$1$lcssa + -1 | 0; - HEAP32[$245 >> 2] = $246; - if (!$246) $$0 = 0; else { - _memset($233 | 0, 0, $246 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; + $40 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, 48) | 0; + $41 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $41 + 1; + HEAP8[$41 >> 0] = $40; + $48 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, HEAP8[$35 >> 0] | 0) | 0; + $49 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $49 + 1; + HEAP8[$49 >> 0] = $48; + $__nf$1 = $__nf$0 + 2 | 0; + } else $__nf$1 = $__nf$0; else $__nf$1 = $__nf$0; while (0); + if (($__nf$1 | 0) != ($__ne | 0)) { + $52 = $__ne + -1 | 0; + if ($__nf$1 >>> 0 < $52 >>> 0) { + $$01$i$i111 = $__nf$1; + $56 = $52; do { - $253 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; + $54 = HEAP8[$$01$i$i111 >> 0] | 0; + HEAP8[$$01$i$i111 >> 0] = HEAP8[$56 >> 0] | 0; + HEAP8[$56 >> 0] = $54; + $$01$i$i111 = $$01$i$i111 + 1 | 0; + $56 = $56 + -1 | 0; + } while ($$01$i$i111 >>> 0 < $56 >>> 0); + } + } + $63 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] & 127]($1) | 0; + $64 = $__grouping + 8 | 0; + $65 = $__grouping + 1 | 0; + if ($__nf$1 >>> 0 < $__ne >>> 0) { + $__dc$08 = 0; + $__dg$09 = 0; + $__p$010 = $__nf$1; + while (1) { + $73 = HEAP8[((HEAP8[$__grouping >> 0] & 1) == 0 ? $65 : HEAP32[$64 >> 2] | 0) + $__dg$09 >> 0] | 0; + if ($73 << 24 >> 24 != 0 & ($__dc$08 | 0) == ($73 << 24 >> 24 | 0)) { + $77 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $77 + 1; + HEAP8[$77 >> 0] = $63; + $79 = HEAP8[$__grouping >> 0] | 0; + $__dc$1 = 0; + $__dg$1 = ($__dg$09 >>> 0 < ((($79 & 1) == 0 ? ($79 & 255) >>> 1 : HEAP32[$8 >> 2] | 0) + -1 | 0) >>> 0 & 1) + $__dg$09 | 0; + } else { + $__dc$1 = $__dc$08; + $__dg$1 = $__dg$09; + } + $93 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$0 >> 2] | 0) + 28 >> 2] & 63]($0, HEAP8[$__p$010 >> 0] | 0) | 0; + $94 = HEAP32[$__oe >> 2] | 0; + HEAP32[$__oe >> 2] = $94 + 1; + HEAP8[$94 >> 0] = $93; + $__p$010 = $__p$010 + 1 | 0; + if ($__p$010 >>> 0 >= $__ne >>> 0) break; else { + $__dc$08 = $__dc$1 + 1 | 0; + $__dg$09 = $__dg$1; + } + } + } + $100 = $__nb; + $102 = $__ob + ($__nf$1 - $100) | 0; + $103 = HEAP32[$__oe >> 2] | 0; + if (($102 | 0) == ($103 | 0)) { + $$pre$phiZ2D = $100; + $117 = $102; + } else { + $105 = $103 + -1 | 0; + if ($102 >>> 0 < $105 >>> 0) { + $$01$i$i7 = $102; + $109 = $105; do { - $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $268 = $i$534 * 7 | 0; - $271 = $labelInfo + 12 + ($267 << 2) | 0; - HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); - $278 = $267 << 1; - $279 = $labelInfo + 655376 + ($278 << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); - $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; - HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); - $290 = $267 << 2; - $291 = $labelInfo + 131084 + ($290 << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + $107 = HEAP8[$$01$i$i7 >> 0] | 0; + HEAP8[$$01$i$i7 >> 0] = HEAP8[$109 >> 0] | 0; + HEAP8[$109 >> 0] = $107; + $$01$i$i7 = $$01$i$i7 + 1 | 0; + $109 = $109 + -1 | 0; + } while ($$01$i$i7 >>> 0 < $109 >>> 0); } - if ((HEAP32[$245 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $320 = $labelInfo + 12 + ($i$633 << 2) | 0; - $323 = $i$633 << 1; - $324 = $labelInfo + 655376 + ($323 << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); - $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $$pre$phiZ2D = $100; + $117 = HEAP32[$__oe >> 2] | 0; } } + HEAP32[$__op >> 2] = ($__np | 0) == ($__ne | 0) ? $117 : $__ob + ($__np - $$pre$phiZ2D) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grouping); STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision25DoGScaleInvariantDetector13pruneFeaturesEv($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $15 = 0, $19 = 0, $2 = 0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $45 = 0, $54 = 0, $59 = 0, $60 = 0, $64 = 0, $65 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $87 = 0, $9 = 0, $92 = 0, $93 = 0, $97 = 0, $points = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 12 | 0; + $points = sp; + $1 = $this + 60 | 0; + $2 = $this + 64 | 0; + $9 = $this + 84 | 0; + $10 = HEAP32[$9 >> 2] | 0; + do if ((((HEAP32[$2 >> 2] | 0) - (HEAP32[$1 >> 2] | 0) | 0) / 36 | 0) >>> 0 > $10 >>> 0) { + $12 = $this + 16 | 0; + $15 = HEAP32[$12 >> 2] | 0; + $19 = ((HEAP32[$this + 20 >> 2] | 0) - $15 | 0) / 12 | 0; + if (($19 | 0) != (HEAP32[$this + 8 >> 2] | 0)) { + $28 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23028) | 0, 21425) | 0, 34302) | 0, 454) | 0, 34309) | 0, 23083) | 0; + $33 = __ZNKSt3__18ios_base6getlocEv($28 + (HEAP32[(HEAP32[$28 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $38 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$34 >> 2] | 0) + 28 >> 2] & 63]($34, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($28, $38) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($28) | 0; + _abort(); + } + $45 = ((HEAP32[$15 + 4 >> 2] | 0) - (HEAP32[$15 >> 2] | 0) | 0) / 12 | 0; + if (($45 | 0) != (HEAP32[$this + 12 >> 2] | 0)) { + $54 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23109) | 0, 21425) | 0, 34302) | 0, 455) | 0, 34309) | 0, 23083) | 0; + $59 = __ZNKSt3__18ios_base6getlocEv($54 + (HEAP32[(HEAP32[$54 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $59; + $60 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $64 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$60 >> 2] | 0) + 28 >> 2] & 63]($60, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($54, $64) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($54) | 0; + _abort(); + } + HEAP32[$points >> 2] = 0; + $65 = $points + 4 | 0; + HEAP32[$65 >> 2] = 0; + HEAP32[$points + 8 >> 2] = 0; + __ZN6vision16PruneDoGFeaturesERNSt3__16vectorINS1_INS1_INS0_4pairIfjEENS0_9allocatorIS3_EEEENS4_IS6_EEEENS4_IS8_EEEERNS1_INS_25DoGScaleInvariantDetector12FeaturePointENS4_ISD_EEEERKSF_iiiii($12, $points, $1, $19, $45, HEAP32[$this >> 2] | 0, HEAP32[$this + 4 >> 2] | 0, $10); + $70 = HEAP32[$1 >> 2] | 0; + $71 = HEAP32[$points >> 2] | 0; + HEAP32[$1 >> 2] = $71; + HEAP32[$points >> 2] = $70; + $72 = HEAP32[$2 >> 2] | 0; + $73 = HEAP32[$65 >> 2] | 0; + HEAP32[$2 >> 2] = $73; + HEAP32[$65 >> 2] = $72; + $74 = $this + 68 | 0; + $75 = $points + 8 | 0; + $76 = HEAP32[$74 >> 2] | 0; + HEAP32[$74 >> 2] = HEAP32[$75 >> 2]; + HEAP32[$75 >> 2] = $76; + if ((($73 - $71 | 0) / 36 | 0) >>> 0 > (HEAP32[$9 >> 2] | 0) >>> 0) { + $87 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23167) | 0, 21425) | 0, 34302) | 0, 469) | 0, 34309) | 0, 23236) | 0; + $92 = __ZNKSt3__18ios_base6getlocEv($87 + (HEAP32[(HEAP32[$87 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $92; + $93 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $97 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$93 >> 2] | 0) + 28 >> 2] & 63]($93, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($87, $97) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($87) | 0; + _abort(); + } else { + __ZNSt3__113__vector_baseIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEED2Ev($points); + break; + } + } while (0); + STACKTOP = sp; + return; +} + +function _pass2_fs_dither($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $1 = 0, $102 = 0, $106 = 0, $11 = 0, $111 = 0, $118 = 0, $12 = 0, $125 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $28 = 0, $3 = 0, $36 = 0, $37 = 0, $38 = 0, $5 = 0, $7 = 0, $76 = 0, $79 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $88 = 0, $89 = 0, $9 = 0, $92 = 0, $93 = 0, $98 = 0, $belowerr0$011 = 0, $belowerr1$010 = 0, $belowerr2$09 = 0, $bpreverr0$0$lcssa = 0, $bpreverr0$08 = 0, $bpreverr1$0$lcssa = 0, $bpreverr1$07 = 0, $bpreverr2$0$lcssa = 0, $bpreverr2$06 = 0, $col$05 = 0, $cur0$014 = 0, $cur1$013 = 0, $cur2$012 = 0, $dir$0 = 0, $dir3$0 = 0, $errorptr$0 = 0, $errorptr$14 = 0, $inptr$0 = 0, $inptr$12 = 0, $outptr$0 = 0, $outptr$13 = 0, $row$017 = 0, $storemerge = 0, $errorptr$14$looptemp = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $3 = HEAP32[$1 + 24 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + $7 = HEAP32[$cinfo + 324 >> 2] | 0; + $9 = HEAP32[$1 + 40 >> 2] | 0; + $11 = HEAP32[$cinfo + 136 >> 2] | 0; + $12 = HEAP32[$11 >> 2] | 0; + $14 = HEAP32[$11 + 4 >> 2] | 0; + $16 = HEAP32[$11 + 8 >> 2] | 0; + $17 = $1 + 36 | 0; + $18 = $1 + 32 | 0; + $19 = $5 + -1 | 0; + $20 = $19 * 3 | 0; + $22 = ($5 * 3 | 0) + 3 | 0; + if (($num_rows | 0) > 0) { + $24 = ($5 | 0) == 0; + $row$017 = 0; + do { + $26 = HEAP32[$input_buf + ($row$017 << 2) >> 2] | 0; + $28 = HEAP32[$output_buf + ($row$017 << 2) >> 2] | 0; + if (!(HEAP32[$17 >> 2] | 0)) { + $dir$0 = 1; + $dir3$0 = 3; + $errorptr$0 = HEAP32[$18 >> 2] | 0; + $inptr$0 = $26; + $outptr$0 = $28; + $storemerge = 1; + } else { + $dir$0 = -1; + $dir3$0 = -3; + $errorptr$0 = (HEAP32[$18 >> 2] | 0) + ($22 << 1) | 0; + $inptr$0 = $26 + $20 | 0; + $outptr$0 = $28 + $19 | 0; + $storemerge = 0; + } + HEAP32[$17 >> 2] = $storemerge; + $36 = $dir3$0 + 1 | 0; + $37 = $dir3$0 + 2 | 0; + $38 = Math_imul($5, $dir3$0) | 0; + if ($24) { + $bpreverr0$0$lcssa = 0; + $bpreverr1$0$lcssa = 0; + $bpreverr2$0$lcssa = 0; + } else { + $belowerr0$011 = 0; + $belowerr1$010 = 0; + $belowerr2$09 = 0; + $bpreverr0$08 = 0; + $bpreverr1$07 = 0; + $bpreverr2$06 = 0; + $col$05 = $5; + $cur0$014 = 0; + $cur1$013 = 0; + $cur2$012 = 0; + $errorptr$14 = $errorptr$0; + $inptr$12 = $inptr$0; + $outptr$13 = $outptr$0; + while (1) { + $errorptr$14$looptemp = $errorptr$14; + $errorptr$14 = $errorptr$14 + ($dir3$0 << 1) | 0; + $76 = HEAPU8[$7 + ((HEAPU8[$inptr$12 >> 0] | 0) + (HEAP32[$9 + ($cur0$014 + 8 + (HEAP16[$errorptr$14 >> 1] | 0) >> 4 << 2) >> 2] | 0)) >> 0] | 0; + $79 = HEAPU8[$7 + ((HEAPU8[$inptr$12 + 1 >> 0] | 0) + (HEAP32[$9 + ($cur1$013 + 8 + (HEAP16[$errorptr$14$looptemp + ($36 << 1) >> 1] | 0) >> 4 << 2) >> 2] | 0)) >> 0] | 0; + $82 = HEAPU8[$7 + ((HEAPU8[$inptr$12 + 2 >> 0] | 0) + (HEAP32[$9 + ($cur2$012 + 8 + (HEAP16[$errorptr$14$looptemp + ($37 << 1) >> 1] | 0) >> 4 << 2) >> 2] | 0)) >> 0] | 0; + $83 = $82 >>> 3; + $84 = $79 >>> 2; + $85 = $76 >>> 3; + $88 = (HEAP32[$3 + ($85 << 2) >> 2] | 0) + ($84 << 6) + ($83 << 1) | 0; + $89 = HEAP16[$88 >> 1] | 0; + if (!($89 << 16 >> 16)) { + _fill_inverse_cmap($cinfo, $85, $84, $83); + $92 = HEAP16[$88 >> 1] | 0; + } else $92 = $89; + $93 = ($92 & 65535) + -1 | 0; + HEAP8[$outptr$13 >> 0] = $93; + $98 = $76 - (HEAPU8[$12 + $93 >> 0] | 0) | 0; + $102 = $79 - (HEAPU8[$14 + $93 >> 0] | 0) | 0; + $106 = $82 - (HEAPU8[$16 + $93 >> 0] | 0) | 0; + HEAP16[$errorptr$14$looptemp >> 1] = ($98 * 3 | 0) + $bpreverr0$08; + $111 = ($98 * 5 | 0) + $belowerr0$011 | 0; + HEAP16[$errorptr$14$looptemp + 2 >> 1] = ($102 * 3 | 0) + $bpreverr1$07; + $118 = ($102 * 5 | 0) + $belowerr1$010 | 0; + HEAP16[$errorptr$14$looptemp + 4 >> 1] = ($106 * 3 | 0) + $bpreverr2$06; + $125 = ($106 * 5 | 0) + $belowerr2$09 | 0; + $col$05 = $col$05 + -1 | 0; + if (!$col$05) { + $bpreverr0$0$lcssa = $111; + $bpreverr1$0$lcssa = $118; + $bpreverr2$0$lcssa = $125; + break; + } else { + $belowerr0$011 = $98; + $belowerr1$010 = $102; + $belowerr2$09 = $106; + $bpreverr0$08 = $111; + $bpreverr1$07 = $118; + $bpreverr2$06 = $125; + $cur0$014 = $98 * 7 | 0; + $cur1$013 = $102 * 7 | 0; + $cur2$012 = $106 * 7 | 0; + $inptr$12 = $inptr$12 + $dir3$0 | 0; + $outptr$13 = $outptr$13 + $dir$0 | 0; + } + } + } + HEAP16[$errorptr$0 + ($38 << 1) >> 1] = $bpreverr0$0$lcssa; + HEAP16[$errorptr$0 + ($38 + 1 << 1) >> 1] = $bpreverr1$0$lcssa; + HEAP16[$errorptr$0 + ($38 + 2 << 1) >> 1] = $bpreverr2$0$lcssa; + $row$017 = $row$017 + 1 | 0; + } while (($row$017 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe($this, $__b, $__e, $__intl, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$lcssa$i = 0, $$byval_copy = 0, $0 = 0, $13 = 0, $14 = 0, $17 = 0, $2 = 0, $20 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $48 = 0, $5 = 0, $51 = 0, $53 = 0, $65 = 0, $66 = 0, $67 = 0, $8 = 0, $81 = 0, $83 = 0, $__atoms = 0, $__loc = 0, $__nc$0 = 0, $__nc$1 = 0, $__nc$2$lcssa = 0, $__nc$25 = 0, $__neg = 0, $__w$04 = 0, $__wb = 0, $__wbuf = 0, $__wn = 0, $vararg_buffer = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 24 | 0; $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $__wbuf = sp + 136 | 0; + $__wb = sp + 16 | 0; + $__wn = sp + 12 | 0; + $__loc = sp + 8 | 0; + $__neg = sp + 134 | 0; + $0 = sp + 4 | 0; + $__atoms = sp + 124 | 0; + HEAP32[$__wb >> 2] = $__wbuf; + $2 = $__wb + 4 | 0; + HEAP32[$2 >> 2] = 147; + $4 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $4; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + HEAP8[$__neg >> 0] = 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + $8 = HEAP32[$__iob + 4 >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + if (__ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_($__b, $$byval_copy, $__intl, $__loc, $8, $__err, $__neg, $5, $__wb, $__wn, $__wbuf + 100 | 0) | 0) { + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 32 >> 2] & 15]($5, 56749, 56759, $__atoms) | 0; + $13 = HEAP32[$__wn >> 2] | 0; + $14 = HEAP32[$__wb >> 2] | 0; + $17 = $13 - $14 | 0; + if (($17 | 0) > 98) { + $20 = _malloc($17 + 2 | 0) | 0; + if (!$20) __ZSt17__throw_bad_allocv(); else { + $51 = $20; + $__nc$0 = $20; + } + } else { + $51 = 0; + $__nc$0 = $$byval_copy; + } + if (!(HEAP8[$__neg >> 0] | 0)) $__nc$1 = $__nc$0; else { + HEAP8[$__nc$0 >> 0] = 45; + $__nc$1 = $__nc$0 + 1 | 0; + } + $26 = $__atoms + 10 | 0; + $27 = $__atoms; + if ($14 >>> 0 < $13 >>> 0) { + $29 = $__atoms + 1 | 0; + $30 = $29 + 1 | 0; + $31 = $30 + 1 | 0; + $32 = $31 + 1 | 0; + $33 = $32 + 1 | 0; + $34 = $33 + 1 | 0; + $35 = $34 + 1 | 0; + $36 = $35 + 1 | 0; + $37 = $36 + 1 | 0; + $__nc$25 = $__nc$1; + $__w$04 = $14; + while (1) { + $38 = HEAP8[$__w$04 >> 0] | 0; + if ((HEAP8[$__atoms >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $__atoms; else if ((HEAP8[$29 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $29; else if ((HEAP8[$30 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $30; else if ((HEAP8[$31 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $31; else if ((HEAP8[$32 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $32; else if ((HEAP8[$33 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $33; else if ((HEAP8[$34 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $34; else if ((HEAP8[$35 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $35; else if ((HEAP8[$36 >> 0] | 0) == $38 << 24 >> 24) $$0$lcssa$i = $36; else $$0$lcssa$i = (HEAP8[$37 >> 0] | 0) == $38 << 24 >> 24 ? $37 : $26; + HEAP8[$__nc$25 >> 0] = HEAP8[56749 + ($$0$lcssa$i - $27) >> 0] | 0; + $__w$04 = $__w$04 + 1 | 0; + $48 = $__nc$25 + 1 | 0; + if ($__w$04 >>> 0 >= (HEAP32[$__wn >> 2] | 0) >>> 0) { + $__nc$2$lcssa = $48; + break; + } else $__nc$25 = $48; } + } else $__nc$2$lcssa = $__nc$1; + HEAP8[$__nc$2$lcssa >> 0] = 0; + HEAP32[$vararg_buffer >> 2] = $__v; + _sscanf($$byval_copy, 56760, $vararg_buffer) | 0; + if ($51) _free($51); + } + $53 = HEAP32[$__b >> 2] | 0; + do if (!$53) $66 = 0; else if ((HEAP32[$53 + 12 >> 2] | 0) == (HEAP32[$53 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$53 >> 2] | 0) + 36 >> 2] & 127]($53) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $66 = 0; + break; + } else { + $66 = HEAP32[$__b >> 2] | 0; + break; + } else $66 = $53; while (0); + $65 = ($66 | 0) == 0; + $67 = HEAP32[$__e >> 2] | 0; + do if (!$67) label = 25; else { + if ((HEAP32[$67 + 12 >> 2] | 0) == (HEAP32[$67 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$67 >> 2] | 0) + 36 >> 2] & 127]($67) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 25; + break; } + if (!$65) label = 26; + } while (0); + if ((label | 0) == 25) if ($65) label = 26; + if ((label | 0) == 26) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $81 = HEAP32[$__b >> 2] | 0; + __ZNSt3__114__shared_count16__release_sharedEv(HEAP32[$__loc >> 2] | 0) | 0; + $83 = HEAP32[$__wb >> 2] | 0; + HEAP32[$__wb >> 2] = 0; + if ($83) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($83); + STACKTOP = sp; + return $81 | 0; +} + +function _arParamDecompMat($source, $cpara, $trans) { + $source = $source | 0; + $cpara = $cpara | 0; + $trans = $trans | 0; + var $102 = 0, $105 = 0, $109 = 0.0, $111 = 0.0, $113 = 0.0, $118 = 0.0, $119 = 0, $127 = 0.0, $128 = 0, $134 = 0.0, $140 = 0.0, $146 = 0.0, $152 = 0.0, $163 = 0.0, $167 = 0.0, $181 = 0, $185 = 0, $189 = 0, $45 = 0.0, $47 = 0.0, $49 = 0.0, $55 = 0.0, $56 = 0, $57 = 0.0, $58 = 0, $60 = 0.0, $61 = 0, $63 = 0.0, $64 = 0, $69 = 0, $71 = 0.0, $73 = 0.0, $75 = 0.0, $80 = 0.0, $81 = 0, $84 = 0.0, $87 = 0.0, $90 = 0.0, $96 = 0.0, $97 = 0, $99 = 0, $Cpara = 0, $r$024 = 0, $r$122 = 0, $r$318 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $Cpara = sp; + if (!(+HEAPF64[$source + 88 >> 3] >= 0.0)) { + $r$122 = 0; + do { + HEAPF64[$Cpara + ($r$122 << 5) >> 3] = -+HEAPF64[$source + ($r$122 << 5) >> 3]; + HEAPF64[$Cpara + ($r$122 << 5) + 8 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 8 >> 3]; + HEAPF64[$Cpara + ($r$122 << 5) + 16 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 16 >> 3]; + HEAPF64[$Cpara + ($r$122 << 5) + 24 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 24 >> 3]; + $r$122 = $r$122 + 1 | 0; + } while (($r$122 | 0) != 3); + } else { + $r$024 = 0; + do { + HEAPF64[$Cpara + ($r$024 << 5) >> 3] = +HEAPF64[$source + ($r$024 << 5) >> 3]; + HEAPF64[$Cpara + ($r$024 << 5) + 8 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 8 >> 3]; + HEAPF64[$Cpara + ($r$024 << 5) + 16 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 16 >> 3]; + HEAPF64[$Cpara + ($r$024 << 5) + 24 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 24 >> 3]; + $r$024 = $r$024 + 1 | 0; + } while (($r$024 | 0) != 3); } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + HEAPF64[$cpara >> 3] = 0.0; + HEAPF64[$cpara + 8 >> 3] = 0.0; + HEAPF64[$cpara + 16 >> 3] = 0.0; + HEAPF64[$cpara + 24 >> 3] = 0.0; + HEAPF64[$cpara + 32 >> 3] = 0.0; + HEAPF64[$cpara + 40 >> 3] = 0.0; + HEAPF64[$cpara + 48 >> 3] = 0.0; + HEAPF64[$cpara + 56 >> 3] = 0.0; + HEAPF64[$cpara + 64 >> 3] = 0.0; + HEAPF64[$cpara + 72 >> 3] = 0.0; + HEAPF64[$cpara + 80 >> 3] = 0.0; + HEAPF64[$cpara + 88 >> 3] = 0.0; + $45 = +HEAPF64[$Cpara + 64 >> 3]; + $47 = +HEAPF64[$Cpara + 72 >> 3]; + $49 = +HEAPF64[$Cpara + 80 >> 3]; + $55 = +Math_sqrt(+($45 * $45 + $47 * $47 + $49 * $49)); + $56 = $cpara + 80 | 0; + HEAPF64[$56 >> 3] = $55; + $57 = $45 / $55; + $58 = $trans + 64 | 0; + HEAPF64[$58 >> 3] = $57; + $60 = $47 / +HEAPF64[$56 >> 3]; + $61 = $trans + 72 | 0; + HEAPF64[$61 >> 3] = $60; + $63 = $49 / +HEAPF64[$56 >> 3]; + $64 = $trans + 80 | 0; + HEAPF64[$64 >> 3] = $63; + $69 = $trans + 88 | 0; + HEAPF64[$69 >> 3] = +HEAPF64[$Cpara + 88 >> 3] / +HEAPF64[$56 >> 3]; + $71 = +HEAPF64[$Cpara + 32 >> 3]; + $73 = +HEAPF64[$Cpara + 40 >> 3]; + $75 = +HEAPF64[$Cpara + 48 >> 3]; + $80 = $57 * $71 + $60 * $73 + $63 * $75; + $81 = $cpara + 48 | 0; + HEAPF64[$81 >> 3] = $80; + $84 = $71 - $80 * +HEAPF64[$58 >> 3]; + $87 = $73 - $80 * +HEAPF64[$61 >> 3]; + $90 = $75 - $80 * +HEAPF64[$64 >> 3]; + $96 = +Math_sqrt(+($84 * $84 + $87 * $87 + $90 * $90)); + $97 = $cpara + 40 | 0; + HEAPF64[$97 >> 3] = $96; + $99 = $trans + 32 | 0; + HEAPF64[$99 >> 3] = $84 / $96; + $102 = $trans + 40 | 0; + HEAPF64[$102 >> 3] = $87 / +HEAPF64[$97 >> 3]; + $105 = $trans + 48 | 0; + HEAPF64[$105 >> 3] = $90 / +HEAPF64[$97 >> 3]; + $109 = +HEAPF64[$Cpara >> 3]; + $111 = +HEAPF64[$Cpara + 8 >> 3]; + $113 = +HEAPF64[$Cpara + 16 >> 3]; + $118 = +HEAPF64[$58 >> 3] * $109 + +HEAPF64[$61 >> 3] * $111 + +HEAPF64[$64 >> 3] * $113; + $119 = $cpara + 16 | 0; + HEAPF64[$119 >> 3] = $118; + $127 = +HEAPF64[$99 >> 3] * $109 + +HEAPF64[$102 >> 3] * $111 + +HEAPF64[$105 >> 3] * $113; + $128 = $cpara + 8 | 0; + HEAPF64[$128 >> 3] = $127; + $134 = $109 - $127 * +HEAPF64[$99 >> 3] - $118 * +HEAPF64[$58 >> 3]; + $140 = $111 - $127 * +HEAPF64[$102 >> 3] - $118 * +HEAPF64[$61 >> 3]; + $146 = $113 - $127 * +HEAPF64[$105 >> 3] - $118 * +HEAPF64[$64 >> 3]; + $152 = +Math_sqrt(+($134 * $134 + $140 * $140 + $146 * $146)); + HEAPF64[$cpara >> 3] = $152; + HEAPF64[$trans >> 3] = $134 / $152; + HEAPF64[$trans + 8 >> 3] = $140 / +HEAPF64[$cpara >> 3]; + HEAPF64[$trans + 16 >> 3] = $146 / +HEAPF64[$cpara >> 3]; + $163 = +HEAPF64[$69 >> 3]; + $167 = (+HEAPF64[$Cpara + 56 >> 3] - +HEAPF64[$81 >> 3] * $163) / +HEAPF64[$97 >> 3]; + HEAPF64[$trans + 56 >> 3] = $167; + HEAPF64[$trans + 24 >> 3] = (+HEAPF64[$Cpara + 24 >> 3] - $167 * +HEAPF64[$128 >> 3] - +HEAPF64[$119 >> 3] * $163) / +HEAPF64[$cpara >> 3]; + $r$318 = 0; + do { + $181 = $cpara + ($r$318 << 5) | 0; + HEAPF64[$181 >> 3] = +HEAPF64[$181 >> 3] / +HEAPF64[$56 >> 3]; + $185 = $cpara + ($r$318 << 5) + 8 | 0; + HEAPF64[$185 >> 3] = +HEAPF64[$185 >> 3] / +HEAPF64[$56 >> 3]; + $189 = $cpara + ($r$318 << 5) + 16 | 0; + HEAPF64[$189 >> 3] = +HEAPF64[$189 >> 3] / +HEAPF64[$56 >> 3]; + $r$318 = $r$318 + 1 | 0; + } while (($r$318 | 0) != 3); + STACKTOP = sp; + return 0; +} + +function __ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$lcssa = 0, $$pre = 0, $$pre$phiZ2D = 0, $100 = 0, $104 = 0, $107 = 0, $128 = 0, $134 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $27 = 0, $3 = 0, $36 = 0, $42 = 0, $51 = 0, $53 = 0, $60 = 0, $69 = 0, $79 = 0, $81 = 0, $83 = 0, $89 = 0, $92 = 0, $98 = 0, label = 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + if (!($mode & 4)) { + $$pre = $to; + $$pre$phiZ2D = $frm_end; + } else { + $2 = HEAP32[$frm_nxt >> 2] | 0; + $3 = $frm_end; + if (($3 - $2 | 0) > 2) if ((HEAP8[$2 >> 0] | 0) == -17) if ((HEAP8[$2 + 1 >> 0] | 0) == -69) if ((HEAP8[$2 + 2 >> 0] | 0) == -65) { + HEAP32[$frm_nxt >> 2] = $2 + 3; + $$pre = HEAP32[$to_nxt >> 2] | 0; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; } } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 3) + 8) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) { - $42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($42 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $42; - $45 = ($42 << 16 >> 16) * 7 | 0; - $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; - $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256; - $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $67 = $65 << 16 >> 16 > 0; - if ($61 << 16 >> 16 <= 0) { - if ($67) { - HEAP16[$pnt2$363 >> 1] = $65; - $167 = $66 * 7 | 0; - $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; - $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256; - $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069; - $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; - if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $187 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($187 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $187; - $190 = ($187 << 16 >> 16) * 7 | 0; - $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; - $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256; - $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069; - $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; - if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$204 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $207 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $207; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16; - $212 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $207; - break; - } - } - if ($67) { - $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - if (($70 | 0) > ($73 | 0)) { - HEAP16[$pnt2$363 >> 1] = $73; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $90 = $73; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $90 = $73; - } else { - HEAP16[$pnt2$363 >> 1] = $70; - if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $90 = $70; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $90 = $70; + $16 = $to_end; + $17 = HEAP32[$frm_nxt >> 2] | 0; + $18 = $17 >>> 0 < $frm_end >>> 0; + L9 : do if ($18 & $$pre >>> 0 < $to_end >>> 0) { + $22 = $17; + $27 = $$pre; + while (1) { + $21 = HEAP8[$22 >> 0] | 0; + $23 = $21 & 255; + if ($23 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + do if ($21 << 24 >> 24 > -1) { + HEAP16[$27 >> 1] = $21 & 255; + HEAP32[$frm_nxt >> 2] = $22 + 1; + } else { + if (($21 & 255) < 194) { + $$0 = 2; + break L9; + } + if (($21 & 255) < 224) { + if (($$pre$phiZ2D - $22 | 0) < 2) { + $$0 = 1; + break L9; + } + $36 = HEAPU8[$22 + 1 >> 0] | 0; + if (($36 & 192 | 0) != 128) { + $$0 = 2; + break L9; + } + $42 = $36 & 63 | $23 << 6 & 1984; + if ($42 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP16[$27 >> 1] = $42; + HEAP32[$frm_nxt >> 2] = $22 + 2; + break; + } + if (($21 & 255) < 240) { + if (($$pre$phiZ2D - $22 | 0) < 3) { + $$0 = 1; + break L9; + } + $51 = HEAP8[$22 + 1 >> 0] | 0; + $53 = HEAP8[$22 + 2 >> 0] | 0; + switch ($23 | 0) { + case 224: + { + if (($51 & -32) << 24 >> 24 != -96) { + $$0 = 2; + break L9; } - $92 = ($90 << 16 >> 16) * 7 | 0; - $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; - $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256; - $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; break; } - $108 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($108 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $61; - $148 = $62 * 7 | 0; - $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; - $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256; - $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069; - $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; - if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + case 237: + { + if (($51 & -32) << 24 >> 24 != -128) { + $$0 = 2; + break L9; + } break; } - $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($113 | 0) > ($116 | 0)) { - HEAP16[$pnt2$363 >> 1] = $116; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $133 = $116; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $133 = $116; - } else { - HEAP16[$pnt2$363 >> 1] = $113; - if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $133 = $113; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $133 = $113; + default: + if (($51 & -64) << 24 >> 24 != -128) { + $$0 = 2; + break L9; + } + } + $60 = $53 & 255; + if (($60 & 192 | 0) != 128) { + $$0 = 2; + break L9; + } + $69 = ($51 & 255) << 6 & 4032 | $23 << 12 | $60 & 63; + if (($69 & 65535) >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP16[$27 >> 1] = $69; + HEAP32[$frm_nxt >> 2] = $22 + 3; + break; + } + if (($21 & 255) >= 245) { + $$0 = 2; + break L9; + } + if (($$pre$phiZ2D - $22 | 0) < 4) { + $$0 = 1; + break L9; + } + $79 = HEAP8[$22 + 1 >> 0] | 0; + $81 = HEAP8[$22 + 2 >> 0] | 0; + $83 = HEAP8[$22 + 3 >> 0] | 0; + switch ($23 | 0) { + case 240: + { + if (($79 + 112 & 255) >= 48) { + $$0 = 2; + break L9; } - $135 = ($133 << 16 >> 16) * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $227 = $pnt$164 + 8 | 0; - $228 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $227; - $pnt2$3$lcssa = $228; - $wk_max$1$lcssa = $wk_max$2; break; - } else { - $pnt$164 = $227; - $pnt2$363 = $228; - $wk_max$158 = $wk_max$2; + } + case 244: + { + if (($79 & -16) << 24 >> 24 != -128) { + $$0 = 2; + break L9; + } + break; + } + default: + if (($79 & -64) << 24 >> 24 != -128) { + $$0 = 2; + break L9; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $236 = HEAP32[$wk$440 >> 2] | 0; - if (($236 | 0) == ($i$338 | 0)) { - $242 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $89 = $81 & 255; + if (($89 & 192 | 0) != 128) { + $$0 = 2; + break L9; } - HEAP32[$wk$440 >> 2] = $242; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $92 = $83 & 255; + if (($92 & 192 | 0) != 128) { + $$0 = 2; + break L9; + } + if (($16 - $27 | 0) < 4) { + $$0 = 1; + break L9; } + $98 = $23 & 7; + $100 = $79 & 255; + $104 = $89 << 6; + $107 = $92 & 63; + if (($100 << 12 & 258048 | $98 << 18 | $104 & 4032 | $107) >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP16[$27 >> 1] = $100 << 2 & 60 | $89 >>> 4 & 3 | (($100 >>> 4 & 3 | $98 << 2) << 6) + 16320 | 55296; + $128 = $27 + 2 | 0; + HEAP32[$to_nxt >> 2] = $128; + HEAP16[$128 >> 1] = $107 | $104 & 960 | 56320; + HEAP32[$frm_nxt >> 2] = (HEAP32[$frm_nxt >> 2] | 0) + 4; + } while (0); + $27 = (HEAP32[$to_nxt >> 2] | 0) + 2 | 0; + HEAP32[$to_nxt >> 2] = $27; + $22 = HEAP32[$frm_nxt >> 2] | 0; + $134 = $22 >>> 0 < $frm_end >>> 0; + if (!($134 & $27 >>> 0 < $to_end >>> 0)) { + $$lcssa = $134; + label = 39; + break; } } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; + } else { + $$lcssa = $18; + label = 39; + } while (0); + if ((label | 0) == 39) $$0 = $$lcssa & 1; + return $$0 | 0; +} + +function _decompress_onepass($cinfo, $output_buf) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + var $$0 = 0, $$old = 0, $1 = 0, $10 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $30 = 0, $34 = 0, $4 = 0, $42 = 0, $45 = 0, $46 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $62 = 0, $7 = 0, $71 = 0, $76 = 0, $78 = 0, $8 = 0, $9 = 0, $90 = 0, $94 = 0, $MCU_col_num$021 = 0, $MCU_col_num$021$lcssa = 0, $blkn$019 = 0, $blkn$115 = 0, $blkn$2 = 0, $ci$018 = 0, $output_col$012 = 0, $output_ptr$014 = 0, $xindex$011 = 0, $yindex$013 = 0, $yoffset$026 = 0, $yoffset$026$lcssa = 0, label = 0; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + $4 = (HEAP32[$cinfo + 348 >> 2] | 0) + -1 | 0; + $5 = $cinfo + 320 | 0; + $7 = (HEAP32[$5 >> 2] | 0) + -1 | 0; + $8 = $1 + 24 | 0; + $9 = HEAP32[$8 >> 2] | 0; + $10 = $1 + 28 | 0; + $11 = $1 + 20 | 0; + $12 = $1 + 32 | 0; + $13 = $cinfo + 356 | 0; + $14 = $cinfo + 444 | 0; + $15 = $cinfo + 328 | 0; + $16 = $cinfo + 448 | 0; + $17 = $cinfo + 148 | 0; + L1 : do if (($9 | 0) < (HEAP32[$10 >> 2] | 0)) { + $yoffset$026 = $9; + L2 : while (1) { + $20 = HEAP32[$11 >> 2] | 0; + if ($20 >>> 0 <= $4 >>> 0) { + $MCU_col_num$021 = $20; do { - $254 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0)); + _jzero_far(HEAP32[$12 >> 2] | 0, HEAP32[$13 >> 2] << 7); + if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 4 >> 2] & 63]($cinfo, $12) | 0)) { + $MCU_col_num$021$lcssa = $MCU_col_num$021; + $yoffset$026$lcssa = $yoffset$026; + break L2; + } + $30 = $MCU_col_num$021 >>> 0 < $4 >>> 0; + if ((HEAP32[$15 >> 2] | 0) > 0) { + $blkn$019 = 0; + $ci$018 = 0; + while (1) { + $34 = HEAP32[$cinfo + 332 + ($ci$018 << 2) >> 2] | 0; + if (!(HEAP32[$34 + 48 >> 2] | 0)) $blkn$2 = (HEAP32[$34 + 60 >> 2] | 0) + $blkn$019 | 0; else { + $42 = HEAP32[$34 + 4 >> 2] | 0; + $45 = HEAP32[(HEAP32[$16 >> 2] | 0) + 4 + ($42 << 2) >> 2] | 0; + $46 = $34 + 52 | 0; + $48 = HEAP32[($30 ? $46 : $34 + 68 | 0) >> 2] | 0; + $49 = $34 + 36 | 0; + $50 = HEAP32[$49 >> 2] | 0; + $53 = Math_imul(HEAP32[$34 + 64 >> 2] | 0, $MCU_col_num$021) | 0; + $54 = $34 + 56 | 0; + $55 = $34 + 72 | 0; + if ((HEAP32[$54 >> 2] | 0) > 0) { + $$old = ($48 | 0) > 0; + $62 = ($48 | 0) > 0; + $101 = $50; + $blkn$115 = $blkn$019; + $output_ptr$014 = (HEAP32[$output_buf + ($42 << 2) >> 2] | 0) + ((Math_imul($50, $yoffset$026) | 0) << 2) | 0; + $yindex$013 = 0; + while (1) { + if ((HEAP32[$17 >> 2] | 0) >>> 0 < $7 >>> 0) if ($$old) { + $output_col$012 = $53; + $xindex$011 = 0; + label = 13; + } else $78 = $101; else if (($yindex$013 + $yoffset$026 | 0) < (HEAP32[$55 >> 2] | 0) & $62) { + $output_col$012 = $53; + $xindex$011 = 0; + label = 13; + } else $78 = $101; + if ((label | 0) == 13) while (1) { + label = 0; + FUNCTION_TABLE_viiiii[$45 & 31]($cinfo, $34, HEAP32[$1 + 32 + ($xindex$011 + $blkn$115 << 2) >> 2] | 0, $output_ptr$014, $output_col$012); + $71 = HEAP32[$49 >> 2] | 0; + $xindex$011 = $xindex$011 + 1 | 0; + if (($xindex$011 | 0) >= ($48 | 0)) { + $78 = $71; + break; + } else { + $output_col$012 = $71 + $output_col$012 | 0; + label = 13; + } + } + $76 = (HEAP32[$46 >> 2] | 0) + $blkn$115 | 0; + $yindex$013 = $yindex$013 + 1 | 0; + if (($yindex$013 | 0) >= (HEAP32[$54 >> 2] | 0)) { + $blkn$2 = $76; + break; + } else { + $101 = $78; + $blkn$115 = $76; + $output_ptr$014 = $output_ptr$014 + ($78 << 2) | 0; + } + } + } else $blkn$2 = $blkn$019; + } + $ci$018 = $ci$018 + 1 | 0; + if (($ci$018 | 0) >= (HEAP32[$15 >> 2] | 0)) break; else $blkn$019 = $blkn$2; + } + } + $MCU_col_num$021 = $MCU_col_num$021 + 1 | 0; + } while ($MCU_col_num$021 >>> 0 <= $4 >>> 0); } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$534 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + HEAP32[$11 >> 2] = 0; + $yoffset$026 = $yoffset$026 + 1 | 0; + if (($yoffset$026 | 0) >= (HEAP32[$10 >> 2] | 0)) { + label = 18; + break L1; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $321 = $labelInfo + 12 + ($i$633 << 2) | 0; - $324 = $i$633 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } - STACKTOP = sp; + HEAP32[$8 >> 2] = $yoffset$026$lcssa; + HEAP32[$11 >> 2] = $MCU_col_num$021$lcssa; + $$0 = 0; + } else label = 18; while (0); + do if ((label | 0) == 18) { + $90 = $cinfo + 156 | 0; + HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1; + $94 = (HEAP32[$17 >> 2] | 0) + 1 | 0; + HEAP32[$17 >> 2] = $94; + if ($94 >>> 0 < (HEAP32[$5 >> 2] | 0) >>> 0) { + _start_iMCU_row27($cinfo); + $$0 = 3; + break; + } else { + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 436 >> 2] | 0) + 12 >> 2] & 255]($cinfo); + $$0 = 4; + break; + } + } while (0); return $$0 | 0; } -function _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNSt3__16locale5__impC2Ej($this, $refs) { + $this = $this | 0; + $refs = $refs | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0, $8 = 0; + HEAP32[$this + 4 >> 2] = $refs + -1; + HEAP32[$this >> 2] = 13656; + $2 = $this + 8 | 0; + __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEEC2Ej($2, 28); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this + 144 | 0, 56679, 1); + $4 = HEAP32[$2 >> 2] | 0; + $5 = $this + 12 | 0; + $$pre$i$i$i = HEAP32[$5 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($4 | 0)) { + $8 = $$pre$i$i$i; + while (1) { + $7 = $8 + -4 | 0; + if (($7 | 0) == ($4 | 0)) { + $$lcssa = $7; + break; + } else $8 = $7; + } + HEAP32[$5 >> 2] = $$lcssa; + } + HEAP32[563] = 0; + HEAP32[562] = 12584; + __ZNSt3__16locale5__imp7installINS_7collateIcEEEEvPT_($this, 2248); + HEAP32[565] = 0; + HEAP32[564] = 12624; + __ZNSt3__16locale5__imp7installINS_7collateIwEEEEvPT_($this, 2256); + __ZNSt3__15ctypeIcEC2EPKtbj(2264, 0, 0, 1); + __ZNSt3__16locale5__imp7installINS_5ctypeIcEEEEvPT_($this, 2264); + HEAP32[571] = 0; + HEAP32[570] = 13944; + __ZNSt3__16locale5__imp7installINS_5ctypeIwEEEEvPT_($this, 2280); + HEAP32[573] = 0; + HEAP32[572] = 14012; + __ZNSt3__16locale5__imp7installINS_7codecvtIcc11__mbstate_tEEEEvPT_($this, 2288); + HEAP32[575] = 0; + HEAP32[574] = 13764; + $10 = __ZNSt3__16__clocEv() | 0; + HEAP32[576] = $10; + __ZNSt3__16locale5__imp7installINS_7codecvtIwc11__mbstate_tEEEEvPT_($this, 2296); + HEAP32[579] = 0; + HEAP32[578] = 14060; + __ZNSt3__16locale5__imp7installINS_7codecvtIDsc11__mbstate_tEEEEvPT_($this, 2312); + HEAP32[581] = 0; + HEAP32[580] = 14108; + __ZNSt3__16locale5__imp7installINS_7codecvtIDic11__mbstate_tEEEEvPT_($this, 2320); + __ZNSt3__18numpunctIcEC2Ej(2328, 1); + __ZNSt3__16locale5__imp7installINS_8numpunctIcEEEEvPT_($this, 2328); + __ZNSt3__18numpunctIwEC2Ej(2352, 1); + __ZNSt3__16locale5__imp7installINS_8numpunctIwEEEEvPT_($this, 2352); + HEAP32[597] = 0; + HEAP32[596] = 12664; + __ZNSt3__16locale5__imp7installINS_7num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2384); + HEAP32[599] = 0; + HEAP32[598] = 12736; + __ZNSt3__16locale5__imp7installINS_7num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2392); + HEAP32[601] = 0; + HEAP32[600] = 12808; + __ZNSt3__16locale5__imp7installINS_7num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2400); + HEAP32[603] = 0; + HEAP32[602] = 12868; + __ZNSt3__16locale5__imp7installINS_7num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2408); + HEAP32[605] = 0; + HEAP32[604] = 13176; + __ZNSt3__16locale5__imp7installINS_10moneypunctIcLb0EEEEEvPT_($this, 2416); + HEAP32[607] = 0; + HEAP32[606] = 13240; + __ZNSt3__16locale5__imp7installINS_10moneypunctIcLb1EEEEEvPT_($this, 2424); + HEAP32[609] = 0; + HEAP32[608] = 13304; + __ZNSt3__16locale5__imp7installINS_10moneypunctIwLb0EEEEEvPT_($this, 2432); + HEAP32[611] = 0; + HEAP32[610] = 13368; + __ZNSt3__16locale5__imp7installINS_10moneypunctIwLb1EEEEEvPT_($this, 2440); + HEAP32[613] = 0; + HEAP32[612] = 13432; + __ZNSt3__16locale5__imp7installINS_9money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2448); + HEAP32[615] = 0; + HEAP32[614] = 13468; + __ZNSt3__16locale5__imp7installINS_9money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2456); + HEAP32[617] = 0; + HEAP32[616] = 13504; + __ZNSt3__16locale5__imp7installINS_9money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2464); + HEAP32[619] = 0; + HEAP32[618] = 13540; + __ZNSt3__16locale5__imp7installINS_9money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2472); + HEAP32[621] = 0; + HEAP32[620] = 12928; + HEAP32[622] = 12976; + __ZNSt3__16locale5__imp7installINS_8time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2480); + HEAP32[625] = 0; + HEAP32[624] = 13020; + HEAP32[626] = 13068; + __ZNSt3__16locale5__imp7installINS_8time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2496); + HEAP32[629] = 0; + HEAP32[628] = 13924; + $11 = __ZNSt3__16__clocEv() | 0; + HEAP32[630] = $11; + HEAP32[628] = 13112; + __ZNSt3__16locale5__imp7installINS_8time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, 2512); + HEAP32[633] = 0; + HEAP32[632] = 13924; + $12 = __ZNSt3__16__clocEv() | 0; + HEAP32[634] = $12; + HEAP32[632] = 13144; + __ZNSt3__16locale5__imp7installINS_8time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, 2528); + HEAP32[637] = 0; + HEAP32[636] = 13576; + __ZNSt3__16locale5__imp7installINS_8messagesIcEEEEvPT_($this, 2544); + HEAP32[639] = 0; + HEAP32[638] = 13616; + __ZNSt3__16locale5__imp7installINS_8messagesIwEEEEvPT_($this, 2552); + return; +} + +function __ZN6vision11PartialSortIfiEENSt3__14pairIT_T0_EEPS5_ii($agg$result, $a, $n, $k) { + $agg$result = $agg$result | 0; + $a = $a | 0; + $n = $n | 0; + $k = $k | 0; + var $$lcssa = 0, $$lcssa19 = 0.0, $$lcssa20 = 0, $$lcssa21 = 0.0, $0 = 0, $12 = 0, $13 = 0, $17 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $50 = 0, $51 = 0.0, $59 = 0, $60 = 0, $61 = 0, $69 = 0, $7 = 0, $74 = 0, $75 = 0, $i$0 = 0, $i$0$lcssa = 0, $i$0$ph = 0, $i$1 = 0, $i$1$lcssa = 0, $j$0$ph = 0, $j$1 = 0, $j$1$lcssa = 0, $j$2 = 0, $j$2$lcssa = 0, $l$014 = 0, $m$015 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } - } + $0 = sp; + if (($n | 0) <= 0) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31849) | 0, 31878) | 0, 34302) | 0, 82) | 0, 34309) | 0, 31985) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } - } + if (($k | 0) <= 0) { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32004) | 0, 31878) | 0, 34302) | 0, 83) | 0, 34309) | 0, 32033) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 3) + 8) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; + $35 = $k + -1 | 0; + $36 = $a + ($35 << 3) | 0; + $37 = $a + ($35 << 3) + 4 | 0; + if (($n | 0) > 1) { + $l$014 = 0; + $m$015 = $n + -1 | 0; + do { + $40 = +HEAPF32[$36 >> 2]; + $41 = HEAP32[$37 >> 2] | 0; + $i$0$ph = $l$014; + $j$0$ph = $m$015; + while (1) { + $i$0 = $i$0$ph; while (1) { - do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($42 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $42; - $45 = ($42 << 16 >> 16) * 7 | 0; - $47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1; - $51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256; - $55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0; - HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $42 = $a + ($i$0 << 3) | 0; + $43 = +HEAPF32[$42 >> 2]; + if (!($43 < $40)) { + if ($40 < $43) { + $$lcssa = $42; + $$lcssa19 = $43; + $i$0$lcssa = $i$0; break; } - $61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $66 = $65 << 16 >> 16; - $67 = $65 << 16 >> 16 > 0; - if ($61 << 16 >> 16 <= 0) { - if ($67) { - HEAP16[$pnt2$363 >> 1] = $65; - $167 = $66 * 7 | 0; - $169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1; - $173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256; - $177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069; - $181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0; - if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $187 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($187 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $187; - $190 = ($187 << 16 >> 16) * 7 | 0; - $192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1; - $196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256; - $200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0; - HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069; - $204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0; - if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$204 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $207 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $207; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16; - $212 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $207; - break; - } + if ((HEAP32[$a + ($i$0 << 3) + 4 >> 2] | 0) >= ($41 | 0)) { + $$lcssa = $42; + $$lcssa19 = $43; + $i$0$lcssa = $i$0; + break; } - if ($67) { - $70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0; - if (($70 | 0) > ($73 | 0)) { - HEAP16[$pnt2$363 >> 1] = $73; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $90 = $73; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $90 = $73; - } else { - HEAP16[$pnt2$363 >> 1] = $70; - if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $90 = $70; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $90 = $70; - } - $92 = ($90 << 16 >> 16) * 7 | 0; - $94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1; - $98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256; - $102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0; - HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + } + $i$0 = $i$0 + 1 | 0; + } + $j$1 = $j$0$ph; + while (1) { + $50 = $a + ($j$1 << 3) | 0; + $51 = +HEAPF32[$50 >> 2]; + if (!($40 < $51)) { + if ($51 < $40) { + $$lcssa20 = $50; + $$lcssa21 = $51; + $j$1$lcssa = $j$1; break; } - $108 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($108 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $61; - $148 = $62 * 7 | 0; - $150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1; - $154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256; - $158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069; - $162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0; - if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + if (($41 | 0) >= (HEAP32[$a + ($j$1 << 3) + 4 >> 2] | 0)) { + $$lcssa20 = $50; + $$lcssa21 = $51; + $j$1$lcssa = $j$1; break; } - $113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - $116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($113 | 0) > ($116 | 0)) { - HEAP16[$pnt2$363 >> 1] = $116; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $133 = $116; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $133 = $116; + } + $j$1 = $j$1 + -1 | 0; + } + if (($i$0$lcssa | 0) > ($j$1$lcssa | 0)) { + $i$1 = $i$0$lcssa; + $j$2 = $j$1$lcssa; + } else { + HEAPF32[$$lcssa >> 2] = $$lcssa21; + HEAPF32[$$lcssa20 >> 2] = $$lcssa19; + $59 = $a + ($i$0$lcssa << 3) + 4 | 0; + $60 = $a + ($j$1$lcssa << 3) + 4 | 0; + $61 = HEAP32[$59 >> 2] | 0; + HEAP32[$59 >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $61; + $i$1 = $i$0$lcssa + 1 | 0; + $j$2 = $j$1$lcssa + -1 | 0; + } + if (($i$1 | 0) > ($j$2 | 0)) { + $i$1$lcssa = $i$1; + $j$2$lcssa = $j$2; + break; + } else { + $i$0$ph = $i$1; + $j$0$ph = $j$2; + } + } + $l$014 = ($j$2$lcssa | 0) < ($35 | 0) ? $i$1$lcssa : $l$014; + $m$015 = ($i$1$lcssa | 0) < ($k | 0) ? $m$015 : $j$2$lcssa; + } while (($l$014 | 0) < ($m$015 | 0)); + } + $69 = $36; + $74 = HEAP32[$69 + 4 >> 2] | 0; + $75 = $agg$result; + HEAP32[$75 >> 2] = HEAP32[$69 >> 2]; + HEAP32[$75 + 4 >> 2] = $74; + STACKTOP = sp; + return; +} + +function __ZN6vision21HoughSimilarityVoting19autoAdjustXYNumBinsEPKfS2_i($this, $ins, $ref, $size) { + $this = $this | 0; + $ins = $ins | 0; + $ref = $ref | 0; + $size = $size | 0; + var $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $12 = 0, $17 = 0, $18 = 0, $2 = 0, $22 = 0, $3 = 0, $30 = 0, $35 = 0, $36 = 0, $40 = 0, $43 = 0.0, $44 = 0, $50 = 0, $55 = 0, $56 = 0, $60 = 0, $65 = 0.0, $79 = 0.0, $87 = 0, $89 = 0, $98 = 0, $i$032 = 0, $projected_dim = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 12 | 0; + $projected_dim = sp; + $1 = HEAP32[$this >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + __ZNSt3__16vectorIfNS_9allocatorIfEEEC2Ej($projected_dim, $size); + if (($size | 0) <= 0) { + $12 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31185) | 0, 31217) | 0, 34302) | 0, 208) | 0, 34309) | 0, 31340) | 0; + $17 = __ZNKSt3__18ios_base6getlocEv($12 + (HEAP32[(HEAP32[$12 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $17; + $18 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $22 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$18 >> 2] | 0) + 28 >> 2] & 63]($18, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($12, $22) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($12) | 0; + _abort(); + } + if ((HEAP32[$this >> 2] | 0) <= 0) { + $30 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31362) | 0, 31217) | 0, 34302) | 0, 209) | 0, 34309) | 0, 31404) | 0; + $35 = __ZNKSt3__18ios_base6getlocEv($30 + (HEAP32[(HEAP32[$30 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $35; + $36 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $40 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$36 >> 2] | 0) + 28 >> 2] & 63]($36, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($30, $40) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($30) | 0; + _abort(); + } + if ((HEAP32[$2 >> 2] | 0) <= 0) { + $50 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31427) | 0, 31217) | 0, 34302) | 0, 210) | 0, 34309) | 0, 31470) | 0; + $55 = __ZNKSt3__18ios_base6getlocEv($50 + (HEAP32[(HEAP32[$50 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $55; + $56 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $60 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$56 >> 2] | 0) + 28 >> 2] & 63]($56, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($50, $60) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($50) | 0; + _abort(); + } + $43 = +((($1 | 0) > ($3 | 0) ? $1 : $3) | 0); + $44 = HEAP32[$projected_dim >> 2] | 0; + if ($size) { + $i$032 = 0; + do { + $$sum1 = $i$032 << 2 | 3; + $65 = +HEAPF32[$ref + ($$sum1 << 2) >> 2]; + HEAPF32[$44 + ($i$032 << 2) >> 2] = $43 * (+HEAPF32[$ins + ($$sum1 << 2) >> 2] / ($65 == 0.0 ? 1.0 : $65)); + $i$032 = $i$032 + 1 | 0; + } while (($i$032 | 0) != ($size | 0)); + } + $79 = +__ZN6vision10FastMedianIfEET_PS1_i($44, (HEAP32[$projected_dim + 4 >> 2] | 0) - $44 >> 2) * .25; + $87 = ~~+Math_ceil(+((+HEAPF32[$this + 24 >> 2] - +HEAPF32[$this + 20 >> 2]) / $79)); + $89 = ($87 | 0) < 5 ? 5 : $87; + HEAP32[$this + 52 >> 2] = $89; + $98 = ~~+Math_ceil(+((+HEAPF32[$this + 32 >> 2] - +HEAPF32[$this + 28 >> 2]) / $79)); + $100 = ($98 | 0) < 5 ? 5 : $98; + HEAP32[$this + 56 >> 2] = $100; + $102 = Math_imul($100, $89) | 0; + HEAP32[$this + 84 >> 2] = $102; + $106 = Math_imul($102, HEAP32[$this + 60 >> 2] | 0) | 0; + HEAP32[$this + 88 >> 2] = $106; + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($projected_dim); + STACKTOP = sp; + return; +} + +function _jpeg_fill_bit_buffer($state, $get_buffer, $bits_left, $nbits) { + $state = $state | 0; + $get_buffer = $get_buffer | 0; + $bits_left = $bits_left | 0; + $nbits = $nbits | 0; + var $$0 = 0, $$0181 = 0, $$0181$lcssa108 = 0, $$0279 = 0, $$0279$lcssa111 = 0, $$1 = 0, $$13 = 0, $$2 = 0, $$24 = 0, $$lcssa = 0, $$lcssa103 = 0, $$lcssa105 = 0, $0 = 0, $1 = 0, $16 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $31 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $44 = 0, $49 = 0, $5 = 0, $8 = 0, $bytes_in_buffer$084 = 0, $bytes_in_buffer$1 = 0, $bytes_in_buffer$2 = 0, $bytes_in_buffer$3 = 0, $bytes_in_buffer$4 = 0, $bytes_in_buffer$5 = 0, $bytes_in_buffer$6 = 0, $c$0 = 0, $next_input_byte$083 = 0, $next_input_byte$1 = 0, $next_input_byte$2 = 0, $next_input_byte$3 = 0, $next_input_byte$4 = 0, $next_input_byte$5 = 0, $next_input_byte$6 = 0, label = 0; + $0 = HEAP32[$state >> 2] | 0; + $1 = $state + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $4 = HEAP32[$state + 16 >> 2] | 0; + $5 = $4 + 416 | 0; + L1 : do if (!(HEAP32[$5 >> 2] | 0)) { + $8 = $4 + 24 | 0; + if (($bits_left | 0) < 25) { + $$0181 = $get_buffer; + $$0279 = $bits_left; + $bytes_in_buffer$084 = $2; + $next_input_byte$083 = $0; + L3 : while (1) { + if (!$bytes_in_buffer$084) { + if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[$8 >> 2] | 0) + 12 >> 2] & 127]($4) | 0)) { + $$0 = 0; + break L1; + } + $16 = HEAP32[$8 >> 2] | 0; + $bytes_in_buffer$1 = HEAP32[$16 + 4 >> 2] | 0; + $next_input_byte$1 = HEAP32[$16 >> 2] | 0; + } else { + $bytes_in_buffer$1 = $bytes_in_buffer$084; + $next_input_byte$1 = $next_input_byte$083; + } + $20 = $bytes_in_buffer$1 + -1 | 0; + $21 = $next_input_byte$1 + 1 | 0; + $22 = HEAP8[$next_input_byte$1 >> 0] | 0; + $23 = $22 & 255; + L9 : do if ($22 << 24 >> 24 == -1) { + $bytes_in_buffer$2 = $20; + $next_input_byte$2 = $21; + while (1) { + if (!$bytes_in_buffer$2) { + if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[$8 >> 2] | 0) + 12 >> 2] & 127]($4) | 0)) { + $$0 = 0; + break L1; + } + $31 = HEAP32[$8 >> 2] | 0; + $bytes_in_buffer$3 = HEAP32[$31 + 4 >> 2] | 0; + $next_input_byte$3 = HEAP32[$31 >> 2] | 0; } else { - HEAP16[$pnt2$363 >> 1] = $113; - if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $133 = $113; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $133 = $113; + $bytes_in_buffer$3 = $bytes_in_buffer$2; + $next_input_byte$3 = $next_input_byte$2; } - $135 = ($133 << 16 >> 16) * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $227 = $pnt$164 + 8 | 0; - $228 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $227; - $pnt2$3$lcssa = $228; - $wk_max$1$lcssa = $wk_max$2; - break; + $35 = $bytes_in_buffer$3 + -1 | 0; + $36 = $next_input_byte$3 + 1 | 0; + $37 = HEAP8[$next_input_byte$3 >> 0] | 0; + switch ($37 << 24 >> 24) { + case 0: + { + $bytes_in_buffer$4 = $35; + $c$0 = 255; + $next_input_byte$4 = $36; + break L9; + break; + } + case -1: + { + $bytes_in_buffer$2 = $35; + $next_input_byte$2 = $36; + break; + } + default: + { + $$0181$lcssa108 = $$0181; + $$0279$lcssa111 = $$0279; + $$lcssa = $35; + $$lcssa103 = $36; + $$lcssa105 = $37; + break L3; + } + } + } + } else { + $bytes_in_buffer$4 = $20; + $c$0 = $23; + $next_input_byte$4 = $21; + } while (0); + $40 = $c$0 | $$0181 << 8; + $41 = $$0279 + 8 | 0; + if (($41 | 0) < 25) { + $$0181 = $40; + $$0279 = $41; + $bytes_in_buffer$084 = $bytes_in_buffer$4; + $next_input_byte$083 = $next_input_byte$4; + } else { + $$2 = $40; + $$24 = $41; + $bytes_in_buffer$6 = $bytes_in_buffer$4; + $next_input_byte$6 = $next_input_byte$4; + label = 17; + break L1; + } + } + HEAP32[$5 >> 2] = $$lcssa105 & 255; + $$1 = $$0181$lcssa108; + $$13 = $$0279$lcssa111; + $bytes_in_buffer$5 = $$lcssa; + $next_input_byte$5 = $$lcssa103; + label = 13; + } else { + $$2 = $get_buffer; + $$24 = $bits_left; + $bytes_in_buffer$6 = $2; + $next_input_byte$6 = $0; + label = 17; + } + } else { + $$1 = $get_buffer; + $$13 = $bits_left; + $bytes_in_buffer$5 = $2; + $next_input_byte$5 = $0; + label = 13; + } while (0); + if ((label | 0) == 13) if (($$13 | 0) < ($nbits | 0)) { + $44 = $4 + 444 | 0; + if (!(HEAP32[(HEAP32[$44 >> 2] | 0) + 8 >> 2] | 0)) { + $49 = HEAP32[$4 >> 2] | 0; + HEAP32[$49 + 20 >> 2] = 117; + FUNCTION_TABLE_vii[HEAP32[$49 + 4 >> 2] & 63]($4, -1); + HEAP32[(HEAP32[$44 >> 2] | 0) + 8 >> 2] = 1; + } + $$2 = $$1 << 25 - $$13; + $$24 = 25; + $bytes_in_buffer$6 = $bytes_in_buffer$5; + $next_input_byte$6 = $next_input_byte$5; + label = 17; + } else { + $$2 = $$1; + $$24 = $$13; + $bytes_in_buffer$6 = $bytes_in_buffer$5; + $next_input_byte$6 = $next_input_byte$5; + label = 17; + } + if ((label | 0) == 17) { + HEAP32[$state >> 2] = $next_input_byte$6; + HEAP32[$1 >> 2] = $bytes_in_buffer$6; + HEAP32[$state + 8 >> 2] = $$2; + HEAP32[$state + 12 >> 2] = $$24; + $$0 = 1; + } + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($agg$result, $s) { + $agg$result = $agg$result | 0; + $s = $s | 0; + var $$$$i$i$i3 = 0, $$0$i$i27 = 0, $$lcssa = 0, $$lcssa32 = 0, $$lcssa33 = 0, $0 = 0, $12 = 0, $13 = 0, $15 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $31 = 0, $33 = 0, $38 = 0, $42 = 0, $46 = 0, $48 = 0, $56 = 0, $63 = 0, $64 = 0, $7 = 0, $__p$0$i$i26 = 0, $__p$0$ph$i$i = 0, $c$0$ph = 0, $p0$0 = 0, $p0$1 = 0, $pe$0 = 0, $pe$0$ph = 0, $pe$1 = 0, $pe$1$pn = 0, label = 0; + $0 = HEAP8[$s >> 0] | 0; + $2 = ($0 & 1) == 0; + $7 = $2 ? ($0 & 255) >>> 1 : HEAP32[$s + 4 >> 2] | 0; + L1 : do if (!$7) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($agg$result, $s); else { + $12 = $2 ? $s + 1 | 0 : HEAP32[$s + 8 >> 2] | 0; + $13 = $7 >>> 0 > 11; + $15 = _memcmp($12, 48015, $13 ? 11 : $7) | 0; + if (!((($15 | 0) == 0 ? ($7 >>> 0 < 11 ? -1 : $13 & 1) : $15) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 48619, 70); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 48690, 12); + break; + } + $20 = $7 >>> 0 > 12; + $21 = $20 ? 12 : $7; + $22 = _memcmp($12, 48027, $21) | 0; + $$$$i$i$i3 = $7 >>> 0 < 12 ? -1 : $20 & 1; + if (!((($22 | 0) == 0 ? $$$$i$i$i3 : $22) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 48703, 49); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 48753, 13); + break; + } + $27 = _memcmp($12, 48040, $21) | 0; + if (!((($27 | 0) == 0 ? $$$$i$i$i3 : $27) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 48767, 49); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 48817, 13); + break; + } + $31 = $7 >>> 0 > 13; + $33 = _memcmp($12, 48053, $31 ? 13 : $7) | 0; + if (!((($33 | 0) == 0 ? ($7 >>> 0 < 13 ? -1 : $31 & 1) : $33) | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 48831, 50); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 48882, 14); + break; + } + $38 = $12 + $7 | 0; + L16 : do if ((HEAP8[$12 + ($7 + -1) >> 0] | 0) == 62) { + $c$0$ph = 1; + $pe$0$ph = $38; + L17 : while (1) { + $pe$0 = $pe$0$ph; + L19 : while (1) { + $42 = $pe$0 + -1 | 0; + if (($42 | 0) == ($12 | 0)) break L17; + $46 = $pe$0 + -2 | 0; + switch (HEAP8[$46 >> 0] | 0) { + case 60: + { + $$lcssa = $46; + $$lcssa32 = $42; + label = 16; + break L19; + break; + } + case 62: + { + $$lcssa33 = $42; + label = 17; + break L19; + break; + } + default: + $pe$0 = $42; + } + } + if ((label | 0) == 16) { + label = 0; + $48 = $c$0$ph + -1 | 0; + if (!$48) { + $pe$1 = $$lcssa; + break L16; } else { - $pnt$164 = $227; - $pnt2$363 = $228; - $wk_max$158 = $wk_max$2; + $c$0$ph = $48; + $pe$0$ph = $$lcssa32; + continue; } + } else if ((label | 0) == 17) { + label = 0; + $c$0$ph = $c$0$ph + 1 | 0; + $pe$0$ph = $$lcssa33; + continue; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + break L1; + } else $pe$1 = $38; while (0); + $pe$1$pn = $pe$1; + while (1) { + $p0$0 = $pe$1$pn + -1 | 0; + if (($p0$0 | 0) == ($12 | 0)) { + $p0$1 = $12; + break; } + if ((HEAP8[$p0$0 >> 0] | 0) == 58) { + $p0$1 = $pe$1$pn; + break; + } else $pe$1$pn = $p0$0; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $234 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $236 = HEAP32[$wk$440 >> 2] | 0; - if (($236 | 0) == ($i$338 | 0)) { - $242 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $242; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } + $56 = $pe$1 - $p0$1 | 0; + if ($56 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($agg$result); + if ($56 >>> 0 < 11) { + HEAP8[$agg$result >> 0] = $56 << 1; + $__p$0$ph$i$i = $agg$result + 1 | 0; + } else { + $63 = $56 + 16 & -16; + $64 = _malloc($63) | 0; + HEAP32[$agg$result + 8 >> 2] = $64; + HEAP32[$agg$result >> 2] = $63 | 1; + HEAP32[$agg$result + 4 >> 2] = $56; + $__p$0$ph$i$i = $64; } - $246 = $labelInfo + 8 | 0; - $247 = $j$1$lcssa + -1 | 0; - HEAP32[$246 >> 2] = $247; - if (!$247) $$0 = 0; else { - _memset($234 | 0, 0, $247 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $254 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $269 = $i$534 * 7 | 0; - $272 = $labelInfo + 12 + ($268 << 2) | 0; - HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0); - $279 = $268 << 1; - $280 = $labelInfo + 655376 + ($279 << 3) | 0; - HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0); - $288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0; - HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0); - $291 = $268 << 2; - $292 = $labelInfo + 131084 + ($291 << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0; - $310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0; - if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310; - $313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0; - $317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0; - if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + if (($p0$1 | 0) != ($pe$1 | 0)) { + $$0$i$i27 = $p0$1; + $__p$0$i$i26 = $__p$0$ph$i$i; + while (1) { + HEAP8[$__p$0$i$i26 >> 0] = HEAP8[$$0$i$i27 >> 0] | 0; + $$0$i$i27 = $$0$i$i27 + 1 | 0; + if (($$0$i$i27 | 0) == ($pe$1 | 0)) break; else $__p$0$i$i26 = $__p$0$i$i26 + 1 | 0; } - if ((HEAP32[$246 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $321 = $labelInfo + 12 + ($i$633 << 2) | 0; - $324 = $i$633 << 1; - $325 = $labelInfo + 655376 + ($324 << 3) | 0; - HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0); - $331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0; - HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } - STACKTOP = sp; - return $$0 | 0; + HEAP8[$__p$0$ph$i$i + $56 >> 0] = 0; + } while (0); + return; } -function _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17codecvtIwc11__mbstate_tE6do_outERS1_PKwS5_RS5_PcS7_RS7_($this, $st, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $st = $st | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $$0 = 0, $$01$be = 0, $$0143 = 0, $$0143$lcssa = 0, $$02$be = 0, $$0242 = 0, $$0242$lcssa = 0, $$1$lcssa = 0, $$128 = 0, $14 = 0, $15 = 0, $26 = 0, $27 = 0, $31 = 0, $33 = 0, $34 = 0, $35 = 0, $40 = 0, $44 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $60 = 0, $61 = 0, $66 = 0, $72 = 0, $9 = 0, $fend$0$lcssa = 0, $fend$048 = 0, $fend$1$be = 0, $fend$144 = 0, $fend$2$lcssa = 0, $fend$235 = 0, $n$032 = 0, $p$033 = 0, $save_state = 0, $tmp = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; + $save_state = sp; + $tmp = sp + 8 | 0; + L1 : do if (($frm | 0) == ($frm_end | 0)) $fend$0$lcssa = $frm_end; else { + $fend$048 = $frm; while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + if (!(HEAP32[$fend$048 >> 2] | 0)) { + $fend$0$lcssa = $fend$048; + break L1; } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $fend$048 = $fend$048 + 4 | 0; + if (($fend$048 | 0) == ($frm_end | 0)) { + $fend$0$lcssa = $frm_end; + break; } } - } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 3) + 8) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + } while (0); + HEAP32[$to_nxt >> 2] = $to; + HEAP32[$frm_nxt >> 2] = $frm; + $5 = $to_end; + $6 = $this + 8 | 0; + L6 : do if (($to | 0) == ($to_end | 0) | ($frm | 0) == ($frm_end | 0)) { + $72 = $frm; + label = 29; + } else { + $$0143 = $frm; + $$0242 = $to; + $fend$144 = $fend$0$lcssa; + L7 : while (1) { + $9 = $st; + $14 = HEAP32[$9 + 4 >> 2] | 0; + $15 = $save_state; + HEAP32[$15 >> 2] = HEAP32[$9 >> 2]; + HEAP32[$15 + 4 >> 2] = $14; + $26 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $27 = _wcsnrtombs($$0242, $frm_nxt, $fend$144 - $$0143 >> 2, $5 - $$0242 | 0, $st) | 0; + if ($26) _uselocale($26) | 0; + switch ($27 | 0) { + case 0: + { + $$0 = 1; + break L6; + break; + } + case -1: + { + $$0143$lcssa = $$0143; + $$0242$lcssa = $$0242; + break L7; + break; + } + default: + {} + } + $44 = (HEAP32[$to_nxt >> 2] | 0) + $27 | 0; + HEAP32[$to_nxt >> 2] = $44; + if (($44 | 0) == ($to_end | 0)) { + label = 15; + break; + } + if (($fend$144 | 0) == ($frm_end | 0)) { + $$01$be = HEAP32[$frm_nxt >> 2] | 0; + $$02$be = $44; + $fend$1$be = $frm_end; + } else { + $50 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $51 = _wcrtomb($tmp, 0, $st) | 0; + if ($50) _uselocale($50) | 0; + if (($51 | 0) == -1) { + $$0 = 2; + break L6; + } + if ($51 >>> 0 > ($5 - (HEAP32[$to_nxt >> 2] | 0) | 0) >>> 0) { + $$0 = 1; + break L6; + } + if ($51) { + $n$032 = $51; + $p$033 = $tmp; + while (1) { + $60 = HEAP8[$p$033 >> 0] | 0; + $61 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $61 + 1; + HEAP8[$61 >> 0] = $60; + $n$032 = $n$032 + -1 | 0; + if (!$n$032) break; else $p$033 = $p$033 + 1 | 0; + } + } + $66 = (HEAP32[$frm_nxt >> 2] | 0) + 4 | 0; + HEAP32[$frm_nxt >> 2] = $66; + L26 : do if (($66 | 0) == ($frm_end | 0)) $fend$2$lcssa = $frm_end; else { + $fend$235 = $66; + while (1) { + if (!(HEAP32[$fend$235 >> 2] | 0)) { + $fend$2$lcssa = $fend$235; + break L26; + } + $fend$235 = $fend$235 + 4 | 0; + if (($fend$235 | 0) == ($frm_end | 0)) { + $fend$2$lcssa = $frm_end; break; } - $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$363 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$203 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $206 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $206; + } + } while (0); + $$01$be = $66; + $$02$be = HEAP32[$to_nxt >> 2] | 0; + $fend$1$be = $fend$2$lcssa; + } + if (($$02$be | 0) == ($to_end | 0) | ($$01$be | 0) == ($frm_end | 0)) { + $72 = $$01$be; + label = 29; + break L6; + } else { + $$0143 = $$01$be; + $$0242 = $$02$be; + $fend$144 = $fend$1$be; + } + } + if ((label | 0) == 15) { + $72 = HEAP32[$frm_nxt >> 2] | 0; + label = 29; + break; + } + HEAP32[$to_nxt >> 2] = $$0242$lcssa; + L35 : do if (($$0143$lcssa | 0) == (HEAP32[$frm_nxt >> 2] | 0)) $$1$lcssa = $$0143$lcssa; else { + $$128 = $$0143$lcssa; + $34 = $$0242$lcssa; + while (1) { + $31 = HEAP32[$$128 >> 2] | 0; + $33 = _uselocale(HEAP32[$6 >> 2] | 0) | 0; + $35 = _wcrtomb($34, $31, $save_state) | 0; + if ($33) _uselocale($33) | 0; + if (($35 | 0) == -1) { + $$1$lcssa = $$128; + break L35; + } + $34 = (HEAP32[$to_nxt >> 2] | 0) + $35 | 0; + HEAP32[$to_nxt >> 2] = $34; + $40 = $$128 + 4 | 0; + if (($40 | 0) == (HEAP32[$frm_nxt >> 2] | 0)) { + $$1$lcssa = $40; + break; + } else $$128 = $40; + } + } while (0); + HEAP32[$frm_nxt >> 2] = $$1$lcssa; + $$0 = 2; + } while (0); + if ((label | 0) == 29) $$0 = ($72 | 0) != ($frm_end | 0) & 1; + STACKTOP = sp; + return $$0 | 0; +} + +function _trinkle($head, $width, $cmp, $pp, $pshift, $trusty, $lp) { + $head = $head | 0; + $width = $width | 0; + $cmp = $cmp | 0; + $pp = $pp | 0; + $pshift = $pshift | 0; + $trusty = $trusty | 0; + $lp = $lp | 0; + var $$0$i = 0, $$0$lcssa = 0, $$0$lcssa49 = 0, $$01162 = 0, $$01162$phi = 0, $$02$i$i = 0, $$02$i3$i = 0, $$02$lcssa = 0, $$02$lcssa51 = 0, $$02964 = 0, $$03$lcssa = 0, $$03865 = 0, $$lcssa = 0, $$lcssa75 = 0, $0 = 0, $10 = 0, $17 = 0, $18 = 0, $2 = 0, $24 = 0, $26 = 0, $27 = 0, $3 = 0, $31 = 0, $37 = 0, $40 = 0, $47 = 0, $49 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $65 = 0, $ar = 0, $i$0$lcssa = 0, $i$0$lcssa50 = 0, $i$01063 = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ar = sp; + $0 = HEAP32[$pp >> 2] | 0; + $2 = HEAP32[$pp + 4 >> 2] | 0; + HEAP32[$ar >> 2] = $head; + $3 = 0 - $width | 0; + L1 : do if (($2 | 0) != 0 | ($0 | 0) != 1) { + $10 = $head + (0 - (HEAP32[$lp + ($pshift << 2) >> 2] | 0)) | 0; + if ((FUNCTION_TABLE_iii[$cmp & 63]($10, $head) | 0) < 1) { + $$0$lcssa = $head; + $$02$lcssa = $pshift; + $$03$lcssa = $trusty; + $i$0$lcssa = 1; + label = 19; + } else { + $$01162 = $head; + $$02964 = $pshift; + $$03865 = ($trusty | 0) == 0; + $18 = $10; + $27 = $0; + $37 = $2; + $i$01063 = 1; + while (1) { + if ($$03865 & ($$02964 | 0) > 1) { + $17 = HEAP32[$lp + ($$02964 + -2 << 2) >> 2] | 0; + if ((FUNCTION_TABLE_iii[$cmp & 63]($$01162 + $3 | 0, $18) | 0) > -1) { + $$0$lcssa49 = $$01162; + $$02$lcssa51 = $$02964; + $i$0$lcssa50 = $i$01063; + label = 20; + break L1; + } + if ((FUNCTION_TABLE_iii[$cmp & 63]($$01162 + (0 - ($17 + $width)) | 0, $18) | 0) > -1) { + $$0$lcssa49 = $$01162; + $$02$lcssa51 = $$02964; + $i$0$lcssa50 = $i$01063; + label = 20; + break L1; + } + } + $24 = $i$01063 + 1 | 0; + HEAP32[$ar + ($i$01063 << 2) >> 2] = $18; + $26 = $27 + -1 | 0; + do if (!$26) { + $49 = 32; + label = 16; + } else { + if (!($26 & 1)) { + $$02$i$i = $26; + $nTrailingZeros$03$i$i = 0; + while (1) { + $31 = $nTrailingZeros$03$i$i + 1 | 0; + $$02$i$i = $$02$i$i >>> 1; + if ($$02$i$i & 1) { + $$lcssa = $31; break; - } + } else $nTrailingZeros$03$i$i = $31; } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$363 >> 1] = $72; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $89 = $72; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $89 = $72; - } else { - HEAP16[$pnt2$363 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $89 = $69; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $89 = $69; - } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + if (!$$lcssa) label = 11; else $47 = $$lcssa; + } else label = 11; + if ((label | 0) == 11) { + label = 0; + if (!$37) { + $49 = 64; + label = 16; break; } - $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + if (!($37 & 1)) { + $$02$i3$i = $37; + $nTrailingZeros$03$i2$i = 0; + } else { + $$0$i = 0; + $51 = $27; + $54 = $37; + $58 = 0; break; } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$363 >> 1] = $115; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $132 = $115; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $132 = $115; - } else { - HEAP16[$pnt2$363 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $132 = $112; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $132 = $112; + while (1) { + $40 = $nTrailingZeros$03$i2$i + 1 | 0; + $$02$i3$i = $$02$i3$i >>> 1; + if ($$02$i3$i & 1) { + $$lcssa75 = $40; + $nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i; + break; + } else $nTrailingZeros$03$i2$i = $40; } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $226 = $pnt$164 + 8 | 0; - $227 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; - break; + if (!$$lcssa75) { + $$0$i = 0; + $51 = $27; + $54 = $37; + $58 = 0; + break; + } else $47 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0; + } + if ($47 >>> 0 > 31) { + $49 = $47; + label = 16; } else { - $pnt$164 = $226; - $pnt2$363 = $227; - $wk_max$158 = $wk_max$2; + $$0$i = $47; + $51 = $27; + $54 = $37; + $58 = $47; } + } while (0); + if ((label | 0) == 16) { + label = 0; + $$0$i = $49 + -32 | 0; + $51 = $37; + $54 = 0; + $58 = $49; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $233 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $235 = HEAP32[$wk$440 >> 2] | 0; - if (($235 | 0) == ($i$338 | 0)) { - $241 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $27 = $54 << 32 - $$0$i | $51 >>> $$0$i; + $37 = $54 >>> $$0$i; + $57 = $58 + $$02964 | 0; + if (!(($37 | 0) != 0 | ($27 | 0) != 1)) { + $$0$lcssa49 = $18; + $$02$lcssa51 = $57; + $i$0$lcssa50 = $24; + label = 20; + break L1; } - HEAP32[$wk$440 >> 2] = $241; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $65 = $18 + (0 - (HEAP32[$lp + ($57 << 2) >> 2] | 0)) | 0; + if ((FUNCTION_TABLE_iii[$cmp & 63]($65, HEAP32[$ar >> 2] | 0) | 0) < 1) { + $$0$lcssa = $18; + $$02$lcssa = $57; + $$03$lcssa = 0; + $i$0$lcssa = $24; + label = 19; break; + } else { + $$01162$phi = $18; + $$02964 = $57; + $$03865 = 1; + $18 = $65; + $i$01063 = $24; + $$01162 = $$01162$phi; } } } - $245 = $labelInfo + 8 | 0; - $246 = $j$1$lcssa + -1 | 0; - HEAP32[$245 >> 2] = $246; - if (!$246) $$0 = 0; else { - _memset($233 | 0, 0, $246 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $253 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $268 = $i$534 * 7 | 0; - $271 = $labelInfo + 12 + ($267 << 2) | 0; - HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); - $278 = $267 << 1; - $279 = $labelInfo + 655376 + ($278 << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); - $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; - HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); - $290 = $267 << 2; - $291 = $labelInfo + 131084 + ($290 << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$245 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $320 = $labelInfo + 12 + ($i$633 << 2) | 0; - $323 = $i$633 << 1; - $324 = $labelInfo + 655376 + ($323 << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); - $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + } else { + $$0$lcssa = $head; + $$02$lcssa = $pshift; + $$03$lcssa = $trusty; + $i$0$lcssa = 1; + label = 19; + } while (0); + if ((label | 0) == 19) if (!$$03$lcssa) { + $$0$lcssa49 = $$0$lcssa; + $$02$lcssa51 = $$02$lcssa; + $i$0$lcssa50 = $i$0$lcssa; + label = 20; + } + if ((label | 0) == 20) { + _cycle($width, $ar, $i$0$lcssa50); + _sift($$0$lcssa49, $width, $cmp, $$02$lcssa51, $lp); } STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } - } - } - $11 = $labelingThresh * 3 | 0; - $12 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($12 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } - } - } - $19 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 2) + 16 | 0; - L11 : do if (($3 | 0) > 1) { - $28 = ($12 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 3) + 8) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($28) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($41 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $41; - $44 = ($41 << 16 >> 16) * 7 | 0; - $46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1; - $50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256; - $54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0; - HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; +function _arMatrixPCA($input, $evec, $ev, $mean) { + $input = $input | 0; + $evec = $evec | 0; + $ev = $ev | 0; + $mean = $mean | 0; + var $$0 = 0, $1 = 0, $14 = 0, $17 = 0, $20 = 0, $23 = 0.0, $25 = 0, $27 = 0, $3 = 0, $32 = 0, $35 = 0, $36 = 0.0, $37 = 0, $46 = 0, $5 = 0, $52 = 0, $53 = 0, $65 = 0, $70 = 0, $71 = 0, $73 = 0, $75 = 0, $78 = 0.0, $81 = 0, $exitcond3$i29 = 0, $i$0$i322 = 0, $i$0$i42 = 0, $i$015 = 0, $i$1$i38 = 0, $i$113 = 0, $i$2$i26 = 0, $i$211 = 0, $j$0$i32 = 0, $j$0$i619 = 0, $m$0$i221 = 0, $m$0$i37 = 0, $m$1$i31 = 0, $m$1$i518 = 0, $smax$i = 0, $sum$0$lcssa = 0.0, $sum$012 = 0.0, $v$0$i30 = 0, $v$0$i417 = 0; + $1 = HEAP32[$input + 4 >> 2] | 0; + $3 = HEAP32[$input + 8 >> 2] | 0; + $5 = ($1 | 0) < ($3 | 0) ? $1 : $3; + L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else if ((HEAP32[$evec + 8 >> 2] | 0) == ($3 | 0)) if ((HEAP32[$evec + 4 >> 2] | 0) == ($5 | 0)) { + $14 = $ev + 4 | 0; + if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { + $17 = $mean + 4 | 0; + if ((HEAP32[$17 >> 2] | 0) == ($3 | 0)) { + $20 = _arMatrixAllocDup($input) | 0; + if (!$20) $$0 = -1; else { + $23 = +Math_sqrt(+(+($1 | 0))); + $25 = HEAP32[$20 + 4 >> 2] | 0; + $27 = HEAP32[$20 + 8 >> 2] | 0; + if (!(($25 | 0) < 1 | ($27 | 0) < 1)) if ((HEAP32[$17 >> 2] | 0) == ($27 | 0)) { + if ($27) { + $32 = HEAP32[$mean >> 2] | 0; + $i$0$i42 = 0; + do { + HEAPF64[$32 + ($i$0$i42 << 3) >> 3] = 0.0; + $i$0$i42 = $i$0$i42 + 1 | 0; + } while (($i$0$i42 | 0) != ($27 | 0)); } - $60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $65 = $64 << 16 >> 16; - $66 = $64 << 16 >> 16 > 0; - if ($60 << 16 >> 16 <= 0) { - if ($66) { - HEAP16[$pnt2$363 >> 1] = $64; - $166 = $65 * 7 | 0; - $168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1; - $172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256; - $176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0; - HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069; - $180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0; - if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $186 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($186 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $186; - $189 = ($186 << 16 >> 16) * 7 | 0; - $191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1; - $195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256; - $199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0; - HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069; - $203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0; - if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; + $35 = HEAP32[$20 >> 2] | 0; + if ($25) { + $exitcond3$i29 = ($27 | 0) == 0; + $i$1$i38 = 0; + $m$0$i37 = $35; + while (1) { + if (!$exitcond3$i29) { + $j$0$i32 = 0; + $m$1$i31 = $m$0$i37; + $v$0$i30 = HEAP32[$mean >> 2] | 0; + while (1) { + HEAPF64[$v$0$i30 >> 3] = +HEAPF64[$m$1$i31 >> 3] + +HEAPF64[$v$0$i30 >> 3]; + $j$0$i32 = $j$0$i32 + 1 | 0; + if (($j$0$i32 | 0) == ($27 | 0)) break; else { + $m$1$i31 = $m$1$i31 + 8 | 0; + $v$0$i30 = $v$0$i30 + 8 | 0; + } + } } - HEAP32[$203 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $206 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $206; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16; - $211 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $206; - break; + $i$1$i38 = $i$1$i38 + 1 | 0; + if (($i$1$i38 | 0) == ($25 | 0)) break; else $m$0$i37 = $m$0$i37 + ($27 << 3) | 0; } } - if ($66) { - $69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0; - if (($69 | 0) > ($72 | 0)) { - HEAP16[$pnt2$363 >> 1] = $72; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $19; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $89 = $72; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $89 = $72; - } else { - HEAP16[$pnt2$363 >> 1] = $69; - if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $19; + $36 = +($25 | 0); + if ($27) { + $37 = HEAP32[$mean >> 2] | 0; + $i$2$i26 = 0; + do { + $46 = $37 + ($i$2$i26 << 3) | 0; + HEAPF64[$46 >> 3] = +HEAPF64[$46 >> 3] / $36; + $i$2$i26 = $i$2$i26 + 1 | 0; + } while (($i$2$i26 | 0) != ($27 | 0)); + } + $smax$i = ($27 | 0) > 0 ? $27 : 0; + if (($25 | 0) > 0) { + $52 = ($27 | 0) > 0; + $i$0$i322 = 0; + $m$0$i221 = $35; + while (1) { + if ($52) { + $j$0$i619 = 0; + $m$1$i518 = $m$0$i221; + $v$0$i417 = HEAP32[$mean >> 2] | 0; while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $89 = $69; - break; - } else $wk$150 = $wk$150 + 4 | 0; + HEAPF64[$m$1$i518 >> 3] = +HEAPF64[$m$1$i518 >> 3] - +HEAPF64[$v$0$i417 >> 3]; + $j$0$i619 = $j$0$i619 + 1 | 0; + if (($j$0$i619 | 0) >= ($27 | 0)) break; else { + $m$1$i518 = $m$1$i518 + 8 | 0; + $v$0$i417 = $v$0$i417 + 8 | 0; + } } - } else $89 = $69; + } + $i$0$i322 = $i$0$i322 + 1 | 0; + if (($i$0$i322 | 0) >= ($25 | 0)) break; else $m$0$i221 = $m$0$i221 + ($smax$i << 3) | 0; } - $91 = ($89 << 16 >> 16) * 7 | 0; - $93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1; - $97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256; - $101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0; - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; } - $107 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($107 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $60; - $147 = $61 * 7 | 0; - $149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1; - $153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256; - $157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0; - HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069; - $161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0; - if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $53 = Math_imul($3, $1) | 0; + if (($53 | 0) > 0) { + $i$015 = 0; + do { + $65 = $35 + ($i$015 << 3) | 0; + HEAPF64[$65 >> 3] = +HEAPF64[$65 >> 3] / $23; + $i$015 = $i$015 + 1 | 0; + } while (($i$015 | 0) < ($53 | 0)); + } + $70 = _PCA($20, $evec, $ev) | 0; + _arMatrixFree($20) | 0; + $71 = HEAP32[$14 >> 2] | 0; + if (($71 | 0) > 0) { + $73 = HEAP32[$ev >> 2] | 0; + $i$113 = 0; + $sum$012 = 0.0; + while (1) { + $78 = $sum$012 + +HEAPF64[$73 + ($i$113 << 3) >> 3]; + $i$113 = $i$113 + 1 | 0; + if (($i$113 | 0) >= ($71 | 0)) { + $sum$0$lcssa = $78; + break; + } else $sum$012 = $78; + } + } else $sum$0$lcssa = 0.0; + if (($71 | 0) <= 0) { + $$0 = $70; break; } - $112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - $115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($112 | 0) > ($115 | 0)) { - HEAP16[$pnt2$363 >> 1] = $115; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $19; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $132 = $115; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $132 = $115; - } else { - HEAP16[$pnt2$363 >> 1] = $112; - if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $19; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $132 = $112; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $132 = $112; + $75 = HEAP32[$ev >> 2] | 0; + $i$211 = 0; + while (1) { + $81 = $75 + ($i$211 << 3) | 0; + HEAPF64[$81 >> 3] = +HEAPF64[$81 >> 3] / $sum$0$lcssa; + $i$211 = $i$211 + 1 | 0; + if (($i$211 | 0) >= ($71 | 0)) { + $$0 = $70; + break L1; + } } - $134 = ($132 << 16 >> 16) * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $226 = $pnt$164 + 8 | 0; - $227 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($12 | 0)) { - $pnt$1$lcssa = $226; - $pnt2$3$lcssa = $227; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $226; - $pnt2$363 = $227; - $wk_max$158 = $wk_max$2; } + _arMatrixFree($20) | 0; + $$0 = -1; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } + } else $$0 = -1; + } else $$0 = -1; + } else $$0 = -1; else $$0 = -1; while (0); + return $$0 | 0; +} + +function __ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwe($this, $__s, $__intl, $__iob, $__fl, $__units) { + $this = $this | 0; + $__s = $__s | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__units = +$__units; + var $$byval_copy = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $14 = 0, $29 = 0, $3 = 0, $30 = 0, $34 = 0, $4 = 0, $42 = 0, $5 = 0, $54 = 0, $62 = 0, $74 = 0, $76 = 0, $85 = 0, $86 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $96 = 0, $__bb = 0, $__buf = 0, $__db$0 = 0, $__digits = 0, $__dp = 0, $__fd = 0, $__grp = 0, $__loc = 0, $__mb$0 = 0, $__mbuf = 0, $__me = 0, $__mi = 0, $__n$0 = 0, $__pat = 0, $__sn = 0, $__sym = 0, $__ts = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 992 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $vararg_buffer1 = sp; + $__buf = sp + 888 | 0; + $__bb = sp + 880 | 0; + $__digits = sp + 480 | 0; + $__loc = sp + 76 | 0; + $__pat = sp + 884 | 0; + $__dp = sp + 72 | 0; + $__ts = sp + 68 | 0; + $__grp = sp + 56 | 0; + $__sym = sp + 44 | 0; + $__sn = sp + 32 | 0; + $__fd = sp + 28 | 0; + $__mbuf = sp + 80 | 0; + $__mi = sp + 24 | 0; + $__me = sp + 20 | 0; + $0 = sp + 16 | 0; + HEAP32[$__bb >> 2] = $__buf; + HEAPF64[$$byval_copy >> 3] = $__units; + $1 = _snprintf($__buf, 100, 56775, $$byval_copy) | 0; + if ($1 >>> 0 > 99) { + $3 = __ZNSt3__16__clocEv() | 0; + HEAPF64[$vararg_buffer1 >> 3] = $__units; + $4 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__bb, $3, 56775, $vararg_buffer1) | 0; + $5 = HEAP32[$__bb >> 2] | 0; + if (!$5) __ZSt17__throw_bad_allocv(); + $9 = _malloc($4 << 2) | 0; + if (!$9) __ZSt17__throw_bad_allocv(); else { + $93 = $9; + $96 = $5; + $__db$0 = $9; + $__n$0 = $4; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $233 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $19; - while (1) { - $235 = HEAP32[$wk$440 >> 2] | 0; - if (($235 | 0) == ($i$338 | 0)) { - $241 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $241; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } - } - $245 = $labelInfo + 8 | 0; - $246 = $j$1$lcssa + -1 | 0; - HEAP32[$245 >> 2] = $246; - if (!$246) $$0 = 0; else { - _memset($233 | 0, 0, $246 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $253 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $268 = $i$534 * 7 | 0; - $271 = $labelInfo + 12 + ($267 << 2) | 0; - HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0); - $278 = $267 << 1; - $279 = $labelInfo + 655376 + ($278 << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0); - $287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0; - HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0); - $290 = $267 << 2; - $291 = $labelInfo + 131084 + ($290 << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0; - $309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0; - if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309; - $312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0; - $316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0; - if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$245 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $320 = $labelInfo + 12 + ($i$633 << 2) | 0; - $323 = $i$633 << 1; - $324 = $labelInfo + 655376 + ($323 << 3) | 0; - HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0); - $330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0; - HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + $93 = 0; + $96 = 0; + $__db$0 = $__digits; + $__n$0 = $1; + } + $12 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + $14 = HEAP32[$__bb >> 2] | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$13 >> 2] | 0) + 48 >> 2] & 15]($13, $14, $14 + $__n$0 | 0, $__db$0) | 0; + if (!$__n$0) $29 = 0; else $29 = (HEAP8[HEAP32[$__bb >> 2] >> 0] | 0) == 45; + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__sn >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + HEAP32[$__sn + 8 >> 2] = 0; + __ZNSt3__111__money_putIwE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_Ri($__intl, $29, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd); + $30 = HEAP32[$__fd >> 2] | 0; + if (($__n$0 | 0) > ($30 | 0)) { + $34 = HEAP8[$__sn >> 0] | 0; + $42 = HEAP8[$__sym >> 0] | 0; + $74 = ($__n$0 - $30 << 1 | 1) + $30 + (($34 & 1) == 0 ? ($34 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($42 & 1) == 0 ? ($42 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } else { + $54 = HEAP8[$__sn >> 0] | 0; + $62 = HEAP8[$__sym >> 0] | 0; + $74 = $30 + 2 + (($54 & 1) == 0 ? ($54 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($62 & 1) == 0 ? ($62 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } + if ($74 >>> 0 > 100) { + $76 = _malloc($74 << 2) | 0; + if (!$76) __ZSt17__throw_bad_allocv(); else { + $89 = $76; + $__mb$0 = $76; } + } else { + $89 = 0; + $__mb$0 = $__mbuf; } + __ZNSt3__111__money_putIwE8__formatEPwRS2_S3_jPKwS5_RKNS_5ctypeIwEEbRKNS_10money_base7patternEwwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNSE_IwNSF_IwEENSH_IwEEEESQ_i($__mb$0, $__mi, $__me, HEAP32[$__iob + 4 >> 2] | 0, $__db$0, $__db$0 + ($__n$0 << 2) | 0, $13, $29, $__pat, HEAP32[$__dp >> 2] | 0, HEAP32[$__ts >> 2] | 0, $__grp, $__sym, $__sn, $30); + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + $85 = HEAP32[$__mi >> 2] | 0; + $86 = HEAP32[$__me >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $87 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__mb$0, $85, $86, $__iob, $__fl) | 0; + if (!$89) $91 = $12; else { + _free($89); + $91 = HEAP32[$__loc >> 2] | 0; + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sn); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + __ZNSt3__114__shared_count16__release_sharedEv($91) | 0; + if ($93) _free($93); + if ($96) _free($96); STACKTOP = sp; - return $$0 | 0; + return $87 | 0; } -function _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEce($this, $__s, $__intl, $__iob, $__fl, $__units) { + $this = $this | 0; + $__s = $__s | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__units = +$__units; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $28 = 0, $29 = 0, $3 = 0, $33 = 0, $4 = 0, $41 = 0, $5 = 0, $53 = 0, $61 = 0, $73 = 0, $74 = 0, $8 = 0, $83 = 0, $84 = 0, $85 = 0, $87 = 0, $89 = 0, $91 = 0, $94 = 0, $__bb = 0, $__buf = 0, $__db$0 = 0, $__digits = 0, $__dp = 0, $__fd = 0, $__grp = 0, $__loc = 0, $__mb$0 = 0, $__mbuf = 0, $__me = 0, $__mi = 0, $__n$0 = 0, $__pat = 0, $__sn = 0, $__sym = 0, $__ts = 0, $vararg_buffer1 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 384 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $$byval_copy = sp + 8 | 0; + $vararg_buffer1 = sp; + $__buf = sp + 284 | 0; + $__bb = sp + 72 | 0; + $__digits = sp + 184 | 0; + $__loc = sp + 68 | 0; + $__pat = sp + 80 | 0; + $__dp = sp + 77 | 0; + $__ts = sp + 76 | 0; + $__grp = sp + 56 | 0; + $__sym = sp + 44 | 0; + $__sn = sp + 32 | 0; + $__fd = sp + 28 | 0; + $__mbuf = sp + 84 | 0; + $__mi = sp + 24 | 0; + $__me = sp + 20 | 0; + $0 = sp + 16 | 0; + HEAP32[$__bb >> 2] = $__buf; + HEAPF64[$$byval_copy >> 3] = $__units; + $1 = _snprintf($__buf, 100, 56775, $$byval_copy) | 0; + if ($1 >>> 0 > 99) { + $3 = __ZNSt3__16__clocEv() | 0; + HEAPF64[$vararg_buffer1 >> 3] = $__units; + $4 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__bb, $3, 56775, $vararg_buffer1) | 0; + $5 = HEAP32[$__bb >> 2] | 0; + if (!$5) __ZSt17__throw_bad_allocv(); + $8 = _malloc($4) | 0; + if (!$8) __ZSt17__throw_bad_allocv(); else { + $91 = $8; + $94 = $5; + $__db$0 = $8; + $__n$0 = $4; } + } else { + $91 = 0; + $94 = 0; + $__db$0 = $__digits; + $__n$0 = $1; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $11 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $11; + $12 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + $13 = HEAP32[$__bb >> 2] | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$12 >> 2] | 0) + 32 >> 2] & 15]($12, $13, $13 + $__n$0 | 0, $__db$0) | 0; + if (!$__n$0) $28 = 0; else $28 = (HEAP8[HEAP32[$__bb >> 2] >> 0] | 0) == 45; + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__sn >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + HEAP32[$__sn + 8 >> 2] = 0; + __ZNSt3__111__money_putIcE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_Ri($__intl, $28, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd); + $29 = HEAP32[$__fd >> 2] | 0; + if (($__n$0 | 0) > ($29 | 0)) { + $33 = HEAP8[$__sn >> 0] | 0; + $41 = HEAP8[$__sym >> 0] | 0; + $73 = ($__n$0 - $29 << 1 | 1) + $29 + (($33 & 1) == 0 ? ($33 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($41 & 1) == 0 ? ($41 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } else { + $53 = HEAP8[$__sn >> 0] | 0; + $61 = HEAP8[$__sym >> 0] | 0; + $73 = $29 + 2 + (($53 & 1) == 0 ? ($53 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($61 & 1) == 0 ? ($61 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } + if ($73 >>> 0 > 100) { + $74 = _malloc($73) | 0; + if (!$74) __ZSt17__throw_bad_allocv(); else { + $87 = $74; + $__mb$0 = $74; } + } else { + $87 = 0; + $__mb$0 = $__mbuf; } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { - $39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($39 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $39; - $42 = ($39 << 16 >> 16) * 7 | 0; - $44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1; - $48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255; - $52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $59 = $58 << 16 >> 16; - $62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $64 = $62 << 16 >> 16 > 0; - if ($58 << 16 >> 16 <= 0) { - if ($64) { - HEAP16[$pnt2$362 >> 1] = $62; - $164 = $63 * 7 | 0; - $166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1; - $170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255; - $174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068; - $178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0; - if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $184 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($184 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $184; - $187 = ($184 << 16 >> 16) * 7 | 0; - $189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1; - $193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255; - $197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068; - $201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0; - if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$201 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $204 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $204; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16; - $209 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $204; - break; - } + __ZNSt3__111__money_putIcE8__formatEPcRS2_S3_jPKcS5_RKNS_5ctypeIcEEbRKNS_10money_base7patternEccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESL_SL_i($__mb$0, $__mi, $__me, HEAP32[$__iob + 4 >> 2] | 0, $__db$0, $__db$0 + $__n$0 | 0, $12, $28, $__pat, HEAP8[$__dp >> 0] | 0, HEAP8[$__ts >> 0] | 0, $__grp, $__sym, $__sn, $29); + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + $83 = HEAP32[$__mi >> 2] | 0; + $84 = HEAP32[$__me >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $85 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__mb$0, $83, $84, $__iob, $__fl) | 0; + if (!$87) $89 = $11; else { + _free($87); + $89 = HEAP32[$__loc >> 2] | 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sn); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + __ZNSt3__114__shared_count16__release_sharedEv($89) | 0; + if ($91) _free($91); + if ($94) _free($94); + STACKTOP = sp; + return $85 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $$0$i = 0, $10 = 0, $12 = 0, $14 = 0, $15 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $4 = 0, $42 = 0, $48 = 0, $52 = 0, $54 = 0, $56 = 0, $58 = 0, $59 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $75 = 0, $9 = 0, $args = 0, $args3 = 0, $t$0$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $args = sp + 12 | 0; + $args3 = sp; + L1 : do if (($last - $first | 0) > 1) { + $4 = HEAP8[$first >> 0] | 0; + switch ($4 << 24 >> 24) { + case 100: + case 111: + { + if ((HEAP8[$first + 1 >> 0] | 0) == 110) { + $9 = $first + 2 | 0; + if ($4 << 24 >> 24 == 111) { + $10 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; + if (($10 | 0) == ($9 | 0)) { + $$0 = $first; + break L1; } - if ($64) { - $67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - $70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - if (($67 | 0) > ($70 | 0)) { - HEAP16[$pnt2$362 >> 1] = $70; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $87 = $70; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $87 = $70; - } else { - HEAP16[$pnt2$362 >> 1] = $67; - if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $87 = $67; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $87 = $67; - } - $89 = ($87 << 16 >> 16) * 7 | 0; - $91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1; - $95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255; - $99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + $12 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($10, $last, $db) | 0; + if (($12 | 0) == ($10 | 0)) { + $$0 = $10; + break L1; } - $105 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($105 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $58; - $145 = $59 * 7 | 0; - $147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1; - $151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255; - $155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068; - $159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0; - if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + $14 = $db + 4 | 0; + $15 = HEAP32[$14 >> 2] | 0; + if ((($15 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { + $$0 = $12; + break L1; } - $110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - $113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($110 | 0) > ($113 | 0)) { - HEAP16[$pnt2$362 >> 1] = $113; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $130 = $113; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $130 = $113; - } else { - HEAP16[$pnt2$362 >> 1] = $110; - if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $130 = $110; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $130 = $110; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $15 + -24 | 0); + $23 = HEAP32[$14 >> 2] | 0; + $24 = $23 + -24 | 0; + $26 = $23; + do { + $25 = $26 + -24 | 0; + HEAP32[$14 >> 2] = $25; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); + $26 = HEAP32[$14 >> 2] | 0; + } while (($26 | 0) != ($24 | 0)); + $29 = HEAP8[$args >> 0] | 0; + $31 = ($29 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($23 + -48 | 0, $31 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $31 ? ($29 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$0 = $12; + break L1; + } + if (($9 | 0) == ($last | 0)) $$0$i = $last; else { + $42 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; + if (($42 | 0) == ($9 | 0)) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; else $t$0$i = $42; + if (($t$0$i | 0) == ($9 | 0)) $$0$i = $9; else { + $48 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($48 | 0)) $$0$i = $9; else { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($48 + -24 | 0, 0, 48097) | 0; + $$0$i = $t$0$i; + } } - $132 = ($130 << 16 >> 16) * 7 | 0; - $134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1; - $138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255; - $142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $224 = $pnt$163 + 2 | 0; - $225 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $224; - $pnt2$3$lcssa = $225; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $224; - $pnt2$362 = $225; - $wk_max$157 = $wk_max$2; } + STACKTOP = sp; + return (($$0$i | 0) == ($9 | 0) ? $first : $$0$i) | 0; } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + break; } + default: + {} } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $231 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $233 = HEAP32[$wk$439 >> 2] | 0; - if (($233 | 0) == ($i$337 | 0)) { - $239 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $239; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $52 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($52 | 0) == ($first | 0)) { + $54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($54 | 0) == ($first | 0)) $$0 = $first; else { + $56 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0; + if (($56 | 0) == ($54 | 0)) $$0 = $54; else { + $58 = $db + 4 | 0; + $59 = HEAP32[$58 >> 2] | 0; + if ((($59 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $56; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $59 + -24 | 0); + $67 = HEAP32[$58 >> 2] | 0; + $68 = $67 + -24 | 0; + $70 = $67; + do { + $69 = $70 + -24 | 0; + HEAP32[$58 >> 2] = $69; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69); + $70 = HEAP32[$58 >> 2] | 0; + } while (($70 | 0) != ($68 | 0)); + $73 = HEAP8[$args3 >> 0] | 0; + $75 = ($73 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($67 + -48 | 0, $75 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $75 ? ($73 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3); + $$0 = $56; + } } } - } - $243 = $labelInfo + 8 | 0; - $244 = $j$1$lcssa + -1 | 0; - HEAP32[$243 >> 2] = $244; - if (!$244) $$0 = 0; else { - _memset($231 | 0, 0, $244 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $251 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0)); + } else $$0 = $52; + } else $$0 = $first; while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _examine_app0($cinfo, $data, $datalen, $remaining) { + $cinfo = $cinfo | 0; + $data = $data | 0; + $datalen = $datalen | 0; + $remaining = $remaining | 0; + var $$pre$phi10Z2D = 0, $0 = 0, $116 = 0, $119 = 0, $124 = 0, $129 = 0, $134 = 0, $142 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $24 = 0, $25 = 0, $34 = 0, $35 = 0, $44 = 0, $45 = 0, $47 = 0, $55 = 0, $58 = 0, $60 = 0, $63 = 0, $66 = 0, $69 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $80 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, label = 0; + $0 = $remaining + $datalen | 0; + if ($datalen >>> 0 > 13) if ((HEAP8[$data >> 0] | 0) == 74) if ((HEAP8[$data + 1 >> 0] | 0) == 70) if ((HEAP8[$data + 2 >> 0] | 0) == 73) if ((HEAP8[$data + 3 >> 0] | 0) == 70) if (!(HEAP8[$data + 4 >> 0] | 0)) { + HEAP32[$cinfo + 280 >> 2] = 1; + $18 = HEAP8[$data + 5 >> 0] | 0; + $19 = $cinfo + 284 | 0; + HEAP8[$19 >> 0] = $18; + $21 = HEAP8[$data + 6 >> 0] | 0; + $22 = $cinfo + 285 | 0; + HEAP8[$22 >> 0] = $21; + $24 = HEAP8[$data + 7 >> 0] | 0; + $25 = $cinfo + 286 | 0; + HEAP8[$25 >> 0] = $24; + $34 = (HEAPU8[$data + 8 >> 0] << 8 | HEAPU8[$data + 9 >> 0]) & 65535; + $35 = $cinfo + 288 | 0; + HEAP16[$35 >> 1] = $34; + $44 = (HEAPU8[$data + 10 >> 0] << 8 | HEAPU8[$data + 11 >> 0]) & 65535; + $45 = $cinfo + 290 | 0; + HEAP16[$45 >> 1] = $44; + if ($18 << 24 >> 24 == 1) { + $$pre$phi10Z2D = $cinfo; + $58 = 1; + $60 = $21; + $63 = $34; + $66 = $44; + $69 = $24; + } else { + $47 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$47 + 20 >> 2] = 119; + HEAP32[$47 + 24 >> 2] = $18 & 255; + HEAP32[$47 + 28 >> 2] = $21 & 255; + FUNCTION_TABLE_vii[HEAP32[$47 + 4 >> 2] & 63]($cinfo, -1); + $$pre$phi10Z2D = $cinfo; + $58 = HEAP8[$19 >> 0] | 0; + $60 = HEAP8[$22 >> 0] | 0; + $63 = HEAP16[$35 >> 1] | 0; + $66 = HEAP16[$45 >> 1] | 0; + $69 = HEAP8[$25 >> 0] | 0; + } + $55 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$55 + 24 >> 2] = $58 & 255; + HEAP32[$55 + 28 >> 2] = $60 & 255; + HEAP32[$55 + 32 >> 2] = $63 & 65535; + HEAP32[$55 + 36 >> 2] = $66 & 65535; + HEAP32[$55 + 40 >> 2] = $69 & 255; + HEAP32[$55 + 20 >> 2] = 87; + FUNCTION_TABLE_vii[HEAP32[$55 + 4 >> 2] & 63]($$pre$phi10Z2D, 1); + $74 = $data + 12 | 0; + $75 = HEAP8[$74 >> 0] | 0; + $76 = $data + 13 | 0; + $77 = HEAP8[$76 >> 0] | 0; + if (!(($77 | $75) << 24 >> 24)) { + $92 = $75; + $94 = $77; + } else { + $80 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$80 + 20 >> 2] = 90; + HEAP32[$80 + 24 >> 2] = HEAPU8[$74 >> 0]; + HEAP32[$80 + 28 >> 2] = HEAPU8[$76 >> 0]; + FUNCTION_TABLE_vii[HEAP32[$80 + 4 >> 2] & 63]($$pre$phi10Z2D, 1); + $92 = HEAP8[$74 >> 0] | 0; + $94 = HEAP8[$76 >> 0] | 0; + } + $90 = $0 + -14 | 0; + if (($90 | 0) != (Math_imul(($92 & 255) * 3 | 0, $94 & 255) | 0)) { + $98 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$98 + 20 >> 2] = 88; + HEAP32[$98 + 24 >> 2] = $90; + FUNCTION_TABLE_vii[HEAP32[$98 + 4 >> 2] & 63]($$pre$phi10Z2D, 1); + } + } else label = 16; else label = 16; else label = 16; else label = 16; else label = 25; else if ($datalen >>> 0 > 5) if ((HEAP8[$data >> 0] | 0) == 74) label = 16; else label = 25; else label = 25; + L18 : do if ((label | 0) == 16) if ((HEAP8[$data + 1 >> 0] | 0) == 70) if ((HEAP8[$data + 2 >> 0] | 0) == 88) if ((HEAP8[$data + 3 >> 0] | 0) == 88) if (!(HEAP8[$data + 4 >> 0] | 0)) { + $116 = $data + 5 | 0; + switch (HEAPU8[$116 >> 0] | 0) { + case 16: + { + $119 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$119 + 20 >> 2] = 108; + HEAP32[$119 + 24 >> 2] = $0; + FUNCTION_TABLE_vii[HEAP32[$119 + 4 >> 2] & 63]($cinfo, 1); + break L18; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $266 = $i$533 * 7 | 0; - $269 = $labelInfo + 12 + ($265 << 2) | 0; - HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0); - $276 = $265 << 1; - $277 = $labelInfo + 655376 + ($276 << 3) | 0; - HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0); - $285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0); - $288 = $265 << 2; - $289 = $labelInfo + 131084 + ($288 << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + case 17: + { + $124 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$124 + 20 >> 2] = 109; + HEAP32[$124 + 24 >> 2] = $0; + FUNCTION_TABLE_vii[HEAP32[$124 + 4 >> 2] & 63]($cinfo, 1); + break L18; + break; } - if ((HEAP32[$243 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $318 = $labelInfo + 12 + ($i$632 << 2) | 0; - $321 = $i$632 << 1; - $322 = $labelInfo + 655376 + ($321 << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0); - $328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0; - HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + case 19: + { + $129 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$129 + 20 >> 2] = 110; + HEAP32[$129 + 24 >> 2] = $0; + FUNCTION_TABLE_vii[HEAP32[$129 + 4 >> 2] & 63]($cinfo, 1); + break L18; + break; + } + default: + { + $134 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$134 + 20 >> 2] = 89; + HEAP32[$134 + 24 >> 2] = HEAPU8[$116 >> 0]; + HEAP32[$134 + 28 >> 2] = $0; + FUNCTION_TABLE_vii[HEAP32[$134 + 4 >> 2] & 63]($cinfo, 1); + break L18; + } + } + } else label = 25; else label = 25; else label = 25; else label = 25; while (0); + if ((label | 0) == 25) { + $142 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$142 + 20 >> 2] = 77; + HEAP32[$142 + 24 >> 2] = $0; + FUNCTION_TABLE_vii[HEAP32[$142 + 4 >> 2] & 63]($cinfo, 1); } - STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; +function _jinit_master_decompress($cinfo) { + $cinfo = $cinfo | 0; + var $$pre$phi$iZ2D = 0, $0 = 0, $106 = 0, $11 = 0, $119 = 0, $125 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $38 = 0, $41 = 0, $81 = 0, $87 = 0, $9 = 0, $96 = 0, $i$0$i$i2 = 0, $i$1$i$i1 = 0, $nscans$0$i = 0, dest = 0, src = 0, stop = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 28) | 0; + HEAP32[$cinfo + 420 >> 2] = $3; + HEAP32[$3 >> 2] = 125; + HEAP32[$3 + 4 >> 2] = 126; + HEAP32[$3 + 8 >> 2] = 0; + _jpeg_calc_output_dimensions($cinfo); + $9 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 1408) | 0; + $11 = $cinfo + 324 | 0; + HEAP32[$11 >> 2] = $9 + 256; + _memset($9 | 0, 0, 256) | 0; + $i$0$i$i2 = 0; + do { + HEAP8[$9 + ($i$0$i$i2 + 256) >> 0] = $i$0$i$i2; + $i$0$i$i2 = $i$0$i$i2 + 1 | 0; + } while (($i$0$i$i2 | 0) != 256); + $i$1$i$i1 = 128; + do { + HEAP8[$9 + ($i$1$i$i1 + 384) >> 0] = -1; + $i$1$i$i1 = $i$1$i$i1 + 1 | 0; + } while (($i$1$i$i1 | 0) != 512); + _memset($9 + 896 | 0, 0, 384) | 0; + dest = $9 + 1280 | 0; + src = HEAP32[$11 >> 2] | 0; + stop = dest + 128 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + $20 = $cinfo + 120 | 0; + $21 = $3 + 12 | 0; + HEAP32[$21 >> 2] = 0; + $22 = _use_merged_upsample($cinfo) | 0; + $23 = $3 + 16 | 0; + HEAP32[$23 >> 2] = $22; + $24 = $3 + 20 | 0; + HEAP32[$24 >> 2] = 0; + $25 = $3 + 24 | 0; + HEAP32[$25 >> 2] = 0; + do if (!(HEAP32[$cinfo + 84 >> 2] | 0)) { + HEAP32[$cinfo + 100 >> 2] = 0; + HEAP32[$cinfo + 104 >> 2] = 0; + HEAP32[$cinfo + 108 >> 2] = 0; + $$pre$phi$iZ2D = $cinfo + 68 | 0; + } else { + if (!(HEAP32[$cinfo + 64 >> 2] | 0)) { + HEAP32[$cinfo + 100 >> 2] = 0; + HEAP32[$cinfo + 104 >> 2] = 0; + HEAP32[$cinfo + 108 >> 2] = 0; + } + $38 = $cinfo + 68 | 0; + if (HEAP32[$38 >> 2] | 0) { + $41 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$41 + 20 >> 2] = 47; + FUNCTION_TABLE_vi[HEAP32[$41 >> 2] & 255]($cinfo); + } + do if ((HEAP32[$20 >> 2] | 0) == 3) { + if (HEAP32[$cinfo + 136 >> 2] | 0) { + HEAP32[$cinfo + 104 >> 2] = 1; + break; + } + if (!(HEAP32[$cinfo + 92 >> 2] | 0)) { + HEAP32[$cinfo + 100 >> 2] = 1; + break; + } else { + HEAP32[$cinfo + 108 >> 2] = 1; + break; } + } else { + HEAP32[$cinfo + 100 >> 2] = 1; + HEAP32[$cinfo + 104 >> 2] = 0; + HEAP32[$cinfo + 108 >> 2] = 0; + HEAP32[$cinfo + 136 >> 2] = 0; + } while (0); + if (HEAP32[$cinfo + 100 >> 2] | 0) { + _jinit_1pass_quantizer($cinfo); + HEAP32[$24 >> 2] = HEAP32[$cinfo + 460 >> 2]; + } + if (!(HEAP32[$cinfo + 108 >> 2] | 0)) if (!(HEAP32[$cinfo + 104 >> 2] | 0)) { + $$pre$phi$iZ2D = $38; + break; } + _jinit_2pass_quantizer($cinfo); + HEAP32[$25 >> 2] = HEAP32[$cinfo + 460 >> 2]; + $$pre$phi$iZ2D = $38; + } while (0); + if (!(HEAP32[$$pre$phi$iZ2D >> 2] | 0)) { + if (!(HEAP32[$23 >> 2] | 0)) { + _jinit_color_deconverter($cinfo); + _jinit_upsampler($cinfo); + } else _jinit_merged_upsampler($cinfo); + _jinit_d_post_controller($cinfo, HEAP32[$cinfo + 108 >> 2] | 0); } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + _jinit_inverse_dct($cinfo); + do if (!(HEAP32[$cinfo + 224 >> 2] | 0)) if (!(HEAP32[$cinfo + 220 >> 2] | 0)) { + _jinit_huff_decoder($cinfo); + break; + } else { + _jinit_phuff_decoder($cinfo); + break; + } else { + $81 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$81 + 20 >> 2] = 1; + FUNCTION_TABLE_vi[HEAP32[$81 >> 2] & 255]($cinfo); + } while (0); + $87 = $cinfo + 436 | 0; + if (!(HEAP32[(HEAP32[$87 >> 2] | 0) + 16 >> 2] | 0)) $96 = (HEAP32[$cinfo + 64 >> 2] | 0) != 0; else $96 = 1; + _jinit_d_coef_controller($cinfo, $96 & 1); + if (!(HEAP32[$$pre$phi$iZ2D >> 2] | 0)) _jinit_d_main_controller($cinfo, 0); + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$0 >> 2] | 0) + 24 >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$87 >> 2] | 0) + 8 >> 2] & 255]($cinfo); + $106 = HEAP32[$cinfo + 8 >> 2] | 0; + if ($106) if (!(HEAP32[$cinfo + 64 >> 2] | 0)) if (HEAP32[(HEAP32[$87 >> 2] | 0) + 16 >> 2] | 0) { + $119 = HEAP32[$cinfo + 36 >> 2] | 0; + $nscans$0$i = (HEAP32[$cinfo + 220 >> 2] | 0) == 0 ? $119 : ($119 * 3 | 0) + 2 | 0; + HEAP32[$106 + 4 >> 2] = 0; + $125 = Math_imul($nscans$0$i, HEAP32[$cinfo + 320 >> 2] | 0) | 0; + HEAP32[$106 + 8 >> 2] = $125; + HEAP32[$106 + 12 >> 2] = 0; + HEAP32[$106 + 16 >> 2] = (HEAP32[$cinfo + 108 >> 2] | 0) != 0 ? 3 : 2; + HEAP32[$21 >> 2] = (HEAP32[$21 >> 2] | 0) + 1; + } + return; +} + +function __ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$lcssa = 0, $$pre = 0, $$pre$phiZ2D = 0, $101 = 0, $107 = 0, $16 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $25 = 0, $3 = 0, $34 = 0, $40 = 0, $48 = 0, $50 = 0, $57 = 0, $67 = 0, $75 = 0, $77 = 0, $79 = 0, $85 = 0, $88 = 0, label = 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + if (!($mode & 4)) { + $$pre = $to; + $$pre$phiZ2D = $frm_end; + } else { + $2 = HEAP32[$frm_nxt >> 2] | 0; + $3 = $frm_end; + if (($3 - $2 | 0) > 2) if ((HEAP8[$2 >> 0] | 0) == -17) if ((HEAP8[$2 + 1 >> 0] | 0) == -69) if ((HEAP8[$2 + 2 >> 0] | 0) == -65) { + HEAP32[$frm_nxt >> 2] = $2 + 3; + $$pre = HEAP32[$to_nxt >> 2] | 0; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; + } else { + $$pre = $to; + $$pre$phiZ2D = $3; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 1) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - $26 = HEAPU8[$pnt$163 >> 0] | 0; - do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($39 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $39; - $42 = ($39 << 16 >> 16) * 7 | 0; - $44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1; - $48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0; - HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255; - $52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0; - HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $59 = $58 << 16 >> 16; - $62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $63 = $62 << 16 >> 16; - $64 = $62 << 16 >> 16 > 0; - if ($58 << 16 >> 16 <= 0) { - if ($64) { - HEAP16[$pnt2$362 >> 1] = $62; - $164 = $63 * 7 | 0; - $166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1; - $170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0; - HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255; - $174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0; - HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068; - $178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0; - if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $184 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($184 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $184; - $187 = ($184 << 16 >> 16) * 7 | 0; - $189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1; - $193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0; - HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255; - $197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0; - HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068; - $201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0; - if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$201 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $204 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $204; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16; - $209 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $204; - break; + $16 = HEAP32[$frm_nxt >> 2] | 0; + $17 = $16 >>> 0 < $frm_end >>> 0; + L9 : do if ($17 & $$pre >>> 0 < $to_end >>> 0) { + $21 = $16; + $25 = $$pre; + while (1) { + $20 = HEAP8[$21 >> 0] | 0; + $22 = $20 & 255; + do if ($20 << 24 >> 24 > -1) { + if ($22 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP32[$25 >> 2] = $22; + HEAP32[$frm_nxt >> 2] = $21 + 1; + } else { + if (($20 & 255) < 194) { + $$0 = 2; + break L9; + } + if (($20 & 255) < 224) { + if (($$pre$phiZ2D - $21 | 0) < 2) { + $$0 = 1; + break L9; + } + $34 = HEAPU8[$21 + 1 >> 0] | 0; + if (($34 & 192 | 0) != 128) { + $$0 = 2; + break L9; + } + $40 = $34 & 63 | $22 << 6 & 1984; + if ($40 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP32[$25 >> 2] = $40; + HEAP32[$frm_nxt >> 2] = $21 + 2; + break; + } + if (($20 & 255) < 240) { + if (($$pre$phiZ2D - $21 | 0) < 3) { + $$0 = 1; + break L9; + } + $48 = HEAP8[$21 + 1 >> 0] | 0; + $50 = HEAP8[$21 + 2 >> 0] | 0; + switch ($22 | 0) { + case 224: + { + if (($48 & -32) << 24 >> 24 != -96) { + $$0 = 2; + break L9; } + break; } - if ($64) { - $67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - $70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0; - if (($67 | 0) > ($70 | 0)) { - HEAP16[$pnt2$362 >> 1] = $70; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $87 = $70; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $87 = $70; - } else { - HEAP16[$pnt2$362 >> 1] = $67; - if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $87 = $67; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $87 = $67; + case 237: + { + if (($48 & -32) << 24 >> 24 != -128) { + $$0 = 2; + break L9; } - $89 = ($87 << 16 >> 16) * 7 | 0; - $91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1; - $95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0; - HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255; - $99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; break; } - $105 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($105 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $58; - $145 = $59 * 7 | 0; - $147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1; - $151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0; - HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255; - $155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068; - $159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0; - if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + default: + if (($48 & -64) << 24 >> 24 != -128) { + $$0 = 2; + break L9; } - $110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0; - $113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($110 | 0) > ($113 | 0)) { - HEAP16[$pnt2$362 >> 1] = $113; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $130 = $113; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $130 = $113; - } else { - HEAP16[$pnt2$362 >> 1] = $110; - if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $130 = $110; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $130 = $110; + } + $57 = $50 & 255; + if (($57 & 192 | 0) != 128) { + $$0 = 2; + break L9; + } + $67 = ($48 & 255) << 6 & 4032 | $22 << 12 & 61440 | $57 & 63; + if ($67 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP32[$25 >> 2] = $67; + HEAP32[$frm_nxt >> 2] = $21 + 3; + break; + } + if (($20 & 255) >= 245) { + $$0 = 2; + break L9; + } + if (($$pre$phiZ2D - $21 | 0) < 4) { + $$0 = 1; + break L9; + } + $75 = HEAP8[$21 + 1 >> 0] | 0; + $77 = HEAP8[$21 + 2 >> 0] | 0; + $79 = HEAP8[$21 + 3 >> 0] | 0; + switch ($22 | 0) { + case 240: + { + if (($75 + 112 & 255) >= 48) { + $$0 = 2; + break L9; } - $132 = ($130 << 16 >> 16) * 7 | 0; - $134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1; - $138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0; - HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255; - $142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0; - HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $224 = $pnt$163 + 2 | 0; - $225 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $224; - $pnt2$3$lcssa = $225; - $wk_max$1$lcssa = $wk_max$2; break; - } else { - $pnt$163 = $224; - $pnt2$362 = $225; - $wk_max$157 = $wk_max$2; + } + case 244: + { + if (($75 & -16) << 24 >> 24 != -128) { + $$0 = 2; + break L9; + } + break; + } + default: + if (($75 & -64) << 24 >> 24 != -128) { + $$0 = 2; + break L9; } } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $231 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $233 = HEAP32[$wk$439 >> 2] | 0; - if (($233 | 0) == ($i$337 | 0)) { - $239 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $85 = $77 & 255; + if (($85 & 192 | 0) != 128) { + $$0 = 2; + break L9; } - HEAP32[$wk$439 >> 2] = $239; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $88 = $79 & 255; + if (($88 & 192 | 0) != 128) { + $$0 = 2; + break L9; } + $101 = ($75 & 255) << 12 & 258048 | $22 << 18 & 1835008 | $85 << 6 & 4032 | $88 & 63; + if ($101 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L9; + } + HEAP32[$25 >> 2] = $101; + HEAP32[$frm_nxt >> 2] = $21 + 4; + } while (0); + $25 = (HEAP32[$to_nxt >> 2] | 0) + 4 | 0; + HEAP32[$to_nxt >> 2] = $25; + $21 = HEAP32[$frm_nxt >> 2] | 0; + $107 = $21 >>> 0 < $frm_end >>> 0; + if (!($107 & $25 >>> 0 < $to_end >>> 0)) { + $$lcssa = $107; + label = 38; + break; } } - $243 = $labelInfo + 8 | 0; - $244 = $j$1$lcssa + -1 | 0; - HEAP32[$243 >> 2] = $244; - if (!$244) $$0 = 0; else { - _memset($231 | 0, 0, $244 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $251 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $266 = $i$533 * 7 | 0; - $269 = $labelInfo + 12 + ($265 << 2) | 0; - HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0); - $276 = $265 << 1; - $277 = $labelInfo + 655376 + ($276 << 3) | 0; - HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0); - $285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0; - HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0); - $288 = $265 << 2; - $289 = $labelInfo + 131084 + ($288 << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307; - $310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0; - $314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0; - if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$243 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $318 = $labelInfo + 12 + ($i$632 << 2) | 0; - $321 = $i$632 << 1; - $322 = $labelInfo + 655376 + ($321 << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0); - $328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0; - HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } - STACKTOP = sp; + } else { + $$lcssa = $17; + label = 38; + } while (0); + if ((label | 0) == 38) $$0 = $$lcssa & 1; return $$0 | 0; } -function _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _arParamLoad($filename, $num, $param, $varargs) { + $filename = $filename | 0; + $num = $num | 0; + $param = $param | 0; + $varargs = $varargs | 0; + var $$pre$phi14Z2D = 0, $11 = 0, $14 = 0, $15 = 0, $18 = 0, $21 = 0, $23 = 0, $26 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $36 = 0, $43 = 0, $44 = 0, $5 = 0, $53 = 0.0, $8 = 0, $ap = 0, $dist_function_version$04 = 0, $i$0 = 0, $i$0$lcssa = 0, $i$119 = 0, $param_wasRead = 0, $ret$06 = 0, $ret$09 = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer18 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 256 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $vararg_buffer18 = sp + 232 | 0; + $vararg_buffer15 = sp + 224 | 0; + $vararg_buffer13 = sp + 216 | 0; + $vararg_buffer9 = sp + 208 | 0; + $vararg_buffer6 = sp + 200 | 0; + $vararg_buffer2 = sp + 192 | 0; + $vararg_buffer = sp + 184 | 0; + $ap = sp + 240 | 0; + $param_wasRead = sp; + do if (($filename | 0) != 0 & ($num | 0) > 0 & ($param | 0) != 0) { + $3 = _fopen($filename, 20972) | 0; + if (!$3) { + $5 = ___errno_location() | 0; + HEAP32[$vararg_buffer >> 2] = HEAP32[$5 >> 2]; + HEAP32[$vararg_buffer + 4 >> 2] = $filename; + _arLog(3, 19042, $vararg_buffer); + $8 = _strerror(HEAP32[$5 >> 2] | 0) | 0; + HEAP32[$vararg_buffer2 >> 2] = 56692; + HEAP32[$vararg_buffer2 + 4 >> 2] = $8; + _arLog(3, 20546, $vararg_buffer2); + $ret$06 = -1; + break; } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + _fseek($3, 0, 2) | 0; + L6 : do if (!(_ferror($3) | 0)) { + $15 = _ftell($3) | 0; + _rewind($3); + $i$0 = 0; + while (1) { + if (($i$0 | 0) >= 4) { + $i$0$lcssa = $i$0; + label = 9; + break; + } + $18 = HEAP32[4356 + ($i$0 << 3) + 4 >> 2] | 0; + $21 = $i$0 + 1 | 0; + if (!(($15 | 0) % ($18 | 0) | 0)) { + $23 = $18; + $dist_function_version$04 = $21; + break; + } else $i$0 = $21; + } + do if ((label | 0) == 9) if (($i$0$lcssa | 0) == 4) { + _arLog(3, 19156, $vararg_buffer13); + $ret$09 = -1; + break L6; + } else { + $23 = HEAP32[4356 + (0 << 3) + 4 >> 2] | 0; + $dist_function_version$04 = 0; + break; + } while (0); + if ((_fread($param_wasRead, $23, 1, $3) | 0) != 1) { + $26 = ___errno_location() | 0; + HEAP32[$vararg_buffer15 >> 2] = HEAP32[$26 >> 2]; + _arLog(3, 19236, $vararg_buffer15); + $29 = _strerror(HEAP32[$26 >> 2] | 0) | 0; + HEAP32[$vararg_buffer18 >> 2] = 56692; + HEAP32[$vararg_buffer18 + 4 >> 2] = $29; + _arLog(3, 20546, $vararg_buffer18); + $ret$09 = -1; + break; } + $30 = $param_wasRead + 176 | 0; + HEAP32[$30 >> 2] = $dist_function_version$04; + _byteswap($param_wasRead); + $31 = ($dist_function_version$04 | 0) == 1; + $32 = $param_wasRead + 120 | 0; + if ($31) { + $33 = +HEAPF64[$32 >> 3]; + $34 = $param_wasRead + 128 | 0; + HEAPF64[$32 >> 3] = +HEAPF64[$34 >> 3]; + HEAPF64[$34 >> 3] = $33; + $$pre$phi14Z2D = $34; + } else $$pre$phi14Z2D = $param_wasRead + 128 | 0; + _memcpy($param | 0, $param_wasRead | 0, 184) | 0; + HEAP32[$ap >> 2] = $varargs; + $36 = $param + 176 | 0; + if (($num | 0) > 1) { + $i$119 = 1; + while (1) { + $43 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $44 = HEAP32[$43 >> 2] | 0; + HEAP32[$ap >> 2] = $43 + 4; + HEAP32[$44 + 176 >> 2] = HEAP32[$36 >> 2]; + if ((_fread($param_wasRead, HEAP32[4356 + ((HEAP32[$36 >> 2] | 0) + -1 << 3) + 4 >> 2] | 0, 1, $3) | 0) != 1) { + $ret$09 = -1; + break L6; + } + HEAP32[$30 >> 2] = $dist_function_version$04; + _byteswap($param_wasRead); + if ($31) { + $53 = +HEAPF64[$32 >> 3]; + HEAPF64[$32 >> 3] = +HEAPF64[$$pre$phi14Z2D >> 3]; + HEAPF64[$$pre$phi14Z2D >> 3] = $53; + } + _memcpy($44 | 0, $param_wasRead | 0, 184) | 0; + $i$119 = $i$119 + 1 | 0; + if (($i$119 | 0) >= ($num | 0)) { + $ret$09 = 0; + break; + } + } + } else $ret$09 = 0; + } else { + $11 = ___errno_location() | 0; + HEAP32[$vararg_buffer6 >> 2] = HEAP32[$11 >> 2]; + _arLog(3, 19111, $vararg_buffer6); + $14 = _strerror(HEAP32[$11 >> 2] | 0) | 0; + HEAP32[$vararg_buffer9 >> 2] = 56692; + HEAP32[$vararg_buffer9 + 4 >> 2] = $14; + _arLog(3, 20546, $vararg_buffer9); + $ret$09 = -1; + } while (0); + _fclose($3) | 0; + $ret$06 = $ret$09; + } else $ret$06 = -1; while (0); + STACKTOP = sp; + return $ret$06 | 0; +} + +function _jpeg_consume_input($cinfo) { + $cinfo = $cinfo | 0; + var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $12 = 0, $2 = 0, $27 = 0, $30 = 0, $37 = 0, $38 = 0, $40 = 0, $42 = 0, $51 = 0, $65 = 0, $68 = 0, $98 = 0, $retcode$0 = 0, label = 0; + $0 = $cinfo + 20 | 0; + $1 = HEAP32[$0 >> 2] | 0; + switch ($1 | 0) { + case 200: + { + $2 = $cinfo + 436 | 0; + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$2 >> 2] | 0) + 4 >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 24 >> 2] | 0) + 8 >> 2] & 255]($cinfo); + HEAP32[$0 >> 2] = 201; + $$pre$phiZ2D = $2; + label = 4; + break; + } + case 201: + { + $$pre$phiZ2D = $cinfo + 436 | 0; + label = 4; + break; + } + case 202: + { + $retcode$0 = 1; + break; + } + case 210: + case 208: + case 207: + case 206: + case 205: + case 204: + case 203: + { + $retcode$0 = FUNCTION_TABLE_ii[HEAP32[HEAP32[$cinfo + 436 >> 2] >> 2] & 127]($cinfo) | 0; + break; + } + default: + { + $98 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$98 + 20 >> 2] = 20; + HEAP32[$98 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$98 >> 2] & 255]($cinfo); + $retcode$0 = 0; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 2) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) { - $38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($38 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $38; - $41 = ($38 << 16 >> 16) * 7 | 0; - $43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1; - $47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255; - $51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $58 = $57 << 16 >> 16; - $61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $63 = $61 << 16 >> 16 > 0; - if ($57 << 16 >> 16 <= 0) { - if ($63) { - HEAP16[$pnt2$362 >> 1] = $61; - $163 = $62 * 7 | 0; - $165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1; - $169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255; - $173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068; - $177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0; - if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $183 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($183 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $183; - $186 = ($183 << 16 >> 16) * 7 | 0; - $188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1; - $192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255; - $196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068; - $200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0; - if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; + if ((label | 0) == 4) { + $12 = FUNCTION_TABLE_ii[HEAP32[HEAP32[$$pre$phiZ2D >> 2] >> 2] & 127]($cinfo) | 0; + if (($12 | 0) == 1) { + switch (HEAP32[$cinfo + 36 >> 2] | 0) { + case 1: + { + HEAP32[$cinfo + 40 >> 2] = 1; + HEAP32[$cinfo + 44 >> 2] = 1; + break; + } + case 3: + { + L13 : do if (!(HEAP32[$cinfo + 280 >> 2] | 0)) { + if (HEAP32[$cinfo + 292 >> 2] | 0) { + $27 = HEAPU8[$cinfo + 296 >> 0] | 0; + switch ($27 | 0) { + case 0: + { + HEAP32[$cinfo + 40 >> 2] = 2; + break L13; break; } - HEAP32[$200 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $203 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $203; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16; - $208 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $203; - break; + case 1: + { + HEAP32[$cinfo + 40 >> 2] = 3; + break L13; + break; + } + default: + { + $30 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$30 + 20 >> 2] = 114; + HEAP32[$30 + 24 >> 2] = $27; + FUNCTION_TABLE_vii[HEAP32[$30 + 4 >> 2] & 63]($cinfo, -1); + HEAP32[$cinfo + 40 >> 2] = 3; + break L13; + } } } - if ($63) { - $66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - $69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - if (($66 | 0) > ($69 | 0)) { - HEAP16[$pnt2$362 >> 1] = $69; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $86 = $69; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $86 = $69; - } else { - HEAP16[$pnt2$362 >> 1] = $66; - if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $86 = $66; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $86 = $66; - } - $88 = ($86 << 16 >> 16) * 7 | 0; - $90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1; - $94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255; - $98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + $37 = HEAP32[$cinfo + 216 >> 2] | 0; + $38 = HEAP32[$37 >> 2] | 0; + $40 = HEAP32[$37 + 84 >> 2] | 0; + $42 = HEAP32[$37 + 168 >> 2] | 0; + if (($38 | 0) == 1 & ($40 | 0) == 2 & ($42 | 0) == 3) { + HEAP32[$cinfo + 40 >> 2] = 3; break; } - $104 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($104 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $57; - $144 = $58 * 7 | 0; - $146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1; - $150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255; - $154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068; - $158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0; - if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + if (($38 | 0) == 82 & ($40 | 0) == 71 & ($42 | 0) == 66) { + HEAP32[$cinfo + 40 >> 2] = 2; break; - } - $109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - $112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($109 | 0) > ($112 | 0)) { - HEAP16[$pnt2$362 >> 1] = $112; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $129 = $112; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $129 = $112; } else { - HEAP16[$pnt2$362 >> 1] = $109; - if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $129 = $109; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $129 = $109; + $51 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$51 + 24 >> 2] = $38; + HEAP32[$51 + 28 >> 2] = $40; + HEAP32[$51 + 32 >> 2] = $42; + HEAP32[$51 + 20 >> 2] = 111; + FUNCTION_TABLE_vii[HEAP32[$51 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$cinfo + 40 >> 2] = 3; + break; + } + } else HEAP32[$cinfo + 40 >> 2] = 3; while (0); + HEAP32[$cinfo + 44 >> 2] = 2; + break; + } + case 4: + { + L31 : do if (!(HEAP32[$cinfo + 292 >> 2] | 0)) HEAP32[$cinfo + 40 >> 2] = 4; else { + $65 = HEAPU8[$cinfo + 296 >> 0] | 0; + switch ($65 | 0) { + case 0: + { + HEAP32[$cinfo + 40 >> 2] = 4; + break L31; + break; + } + case 2: + { + HEAP32[$cinfo + 40 >> 2] = 5; + break L31; + break; + } + default: + { + $68 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$68 + 20 >> 2] = 114; + HEAP32[$68 + 24 >> 2] = $65; + FUNCTION_TABLE_vii[HEAP32[$68 + 4 >> 2] & 63]($cinfo, -1); + HEAP32[$cinfo + 40 >> 2] = 5; + break L31; + } } - $131 = ($129 << 16 >> 16) * 7 | 0; - $133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1; - $137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255; - $141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; } while (0); - $i$255 = $i$255 + 1 | 0; - $223 = $pnt$163 + 4 | 0; - $224 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $223; - $pnt2$3$lcssa = $224; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $223; - $pnt2$362 = $224; - $wk_max$157 = $wk_max$2; - } + HEAP32[$cinfo + 44 >> 2] = 4; + break; } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 8 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; - } + default: + { + HEAP32[$cinfo + 40 >> 2] = 0; + HEAP32[$cinfo + 44 >> 2] = 0; + } + } + HEAP32[$cinfo + 48 >> 2] = 1; + HEAP32[$cinfo + 52 >> 2] = 1; + HEAPF64[$cinfo + 56 >> 3] = 1.0; + HEAP32[$cinfo + 64 >> 2] = 0; + HEAP32[$cinfo + 68 >> 2] = 0; + HEAP32[$cinfo + 72 >> 2] = 0; + HEAP32[$cinfo + 76 >> 2] = 1; + HEAP32[$cinfo + 80 >> 2] = 1; + HEAP32[$cinfo + 84 >> 2] = 0; + HEAP32[$cinfo + 88 >> 2] = 2; + HEAP32[$cinfo + 92 >> 2] = 1; + HEAP32[$cinfo + 96 >> 2] = 256; + HEAP32[$cinfo + 136 >> 2] = 0; + HEAP32[$cinfo + 100 >> 2] = 0; + HEAP32[$cinfo + 104 >> 2] = 0; + HEAP32[$cinfo + 108 >> 2] = 0; + HEAP32[$0 >> 2] = 202; + $retcode$0 = 1; + } else $retcode$0 = $12; + } + return $retcode$0 | 0; +} + +function __ZN6vision25DoGScaleInvariantDetector23findFeatureOrientationsEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $$0$i = 0.0, $$0$i1 = 0.0, $$lcssa = 0, $$pre$i$i$i = 0, $10 = 0, $14 = 0, $15 = 0, $16 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $33 = 0, $36 = 0, $4 = 0, $43 = 0, $46 = 0.0, $48 = 0.0, $50 = 0.0, $52 = 0.0, $53 = 0.0, $55 = 0, $58 = 0.0, $6 = 0, $65 = 0, $68 = 0.0, $72 = 0, $84 = 0, $fp = 0, $i$04 = 0, $i1$07 = 0, $j$05 = 0, $num_angles = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $num_angles = sp; + $fp = sp + 4 | 0; + if (!(HEAP8[$this + 28 >> 0] | 0)) { + $4 = HEAP32[$this + 64 >> 2] | 0; + $6 = HEAP32[$this + 60 >> 2] | 0; + $10 = ($4 - $6 | 0) / 36 | 0; + if (($4 | 0) != ($6 | 0)) { + $i$04 = 0; + do { + HEAPF32[$6 + ($i$04 * 36 | 0) + 8 >> 2] = 0.0; + $i$04 = $i$04 + 1 | 0; + } while (($i$04 | 0) != ($10 | 0)); } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $230 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + $14 = $this + 72 | 0; + $15 = HEAP32[$14 >> 2] | 0; + $16 = $this + 76 | 0; + $$pre$i$i$i = HEAP32[$16 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($15 | 0)) { + $19 = $$pre$i$i$i; while (1) { - $232 = HEAP32[$wk$439 >> 2] | 0; - if (($232 | 0) == ($i$337 | 0)) { - $238 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $238; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $18 = $19 + -36 | 0; + if (($18 | 0) == ($15 | 0)) { + $$lcssa = $18; break; - } - } - } - $242 = $labelInfo + 8 | 0; - $243 = $j$1$lcssa + -1 | 0; - HEAP32[$242 >> 2] = $243; - if (!$243) $$0 = 0; else { - _memset($230 | 0, 0, $243 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $250 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $265 = $i$533 * 7 | 0; - $268 = $labelInfo + 12 + ($264 << 2) | 0; - HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); - $275 = $264 << 1; - $276 = $labelInfo + 655376 + ($275 << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); - $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); - $287 = $264 << 2; - $288 = $labelInfo + 131084 + ($287 << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$242 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $317 = $labelInfo + 12 + ($i$632 << 2) | 0; - $320 = $i$632 << 1; - $321 = $labelInfo + 655376 + ($320 << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); - $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } else $19 = $18; + } + HEAP32[$16 >> 2] = $$lcssa; + } + $21 = $this + 60 | 0; + $22 = $this + 64 | 0; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE7reserveEj($14, (HEAP32[$22 >> 2] | 0) - (HEAP32[$21 >> 2] | 0) | 0); + $28 = $this + 92 | 0; + __ZN6vision21OrientationAssignment16computeGradientsEPKNS_25GaussianScaleSpacePyramidE($28, $pyramid); + $29 = $this + 144 | 0; + $30 = $fp + 8 | 0; + $31 = $this + 80 | 0; + $33 = HEAP32[$21 >> 2] | 0; + if ((HEAP32[$22 >> 2] | 0) != ($33 | 0)) { + $36 = $33; + $i1$07 = 0; + do { + $43 = HEAP32[$36 + ($i1$07 * 36 | 0) + 12 >> 2] | 0; + $46 = 1.0 / +(1 << $43 | 0); + $48 = $46 * .5 + -.5; + $50 = +HEAPF32[$36 + ($i1$07 * 36 | 0) >> 2] * $46 + $48; + $52 = +HEAPF32[$36 + ($i1$07 * 36 | 0) + 4 >> 2] * $46 + $48; + $53 = +HEAPF32[$36 + ($i1$07 * 36 | 0) + 28 >> 2] * $46; + $55 = (__ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, $43, 0) | 0) + 4 | 0; + $58 = +(((HEAP32[$55 >> 2] | 0) + -1 | 0) >>> 0); + if ($50 < 0.0) $$0$i1 = 0.0; else if ($50 > $58) $$0$i1 = $58; else $$0$i1 = $50; + $65 = (__ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, HEAP32[(HEAP32[$21 >> 2] | 0) + ($i1$07 * 36 | 0) + 12 >> 2] | 0, 0) | 0) + 8 | 0; + $68 = +(((HEAP32[$65 >> 2] | 0) + -1 | 0) >>> 0); + if ($52 < 0.0) $$0$i = 0.0; else if ($52 > $68) $$0$i = $68; else $$0$i = $52; + $72 = HEAP32[$21 >> 2] | 0; + __ZN6vision21OrientationAssignment7computeEPfRiiifff($28, HEAP32[$29 >> 2] | 0, $num_angles, HEAP32[$72 + ($i1$07 * 36 | 0) + 12 >> 2] | 0, HEAP32[$72 + ($i1$07 * 36 | 0) + 16 >> 2] | 0, $$0$i1, $$0$i, $53); + if ((HEAP32[$num_angles >> 2] | 0) > 0) { + $j$05 = 0; + do { + dest = $fp; + src = (HEAP32[$21 >> 2] | 0) + ($i1$07 * 36 | 0) | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$30 >> 2] = HEAP32[(HEAP32[$29 >> 2] | 0) + ($j$05 << 2) >> 2]; + $84 = HEAP32[$16 >> 2] | 0; + if (($84 | 0) == (HEAP32[$31 >> 2] | 0)) __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($14, $fp); else { + dest = $84; + src = $fp; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$16 >> 2] = (HEAP32[$16 >> 2] | 0) + 36; + } + $j$05 = $j$05 + 1 | 0; + } while (($j$05 | 0) < (HEAP32[$num_angles >> 2] | 0)); + } + $i1$07 = $i1$07 + 1 | 0; + $36 = HEAP32[$21 >> 2] | 0; + } while ($i1$07 >>> 0 < (((HEAP32[$22 >> 2] | 0) - $36 | 0) / 36 | 0) >>> 0); } + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE4swapERS6_($21, $14); } STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision22ComputeSubpixelHessianEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y) { + $H = $H | 0; + $b = $b | 0; + $lap0 = $lap0 | 0; + $lap1 = $lap1 | 0; + $lap2 = $lap2 | 0; + $x = $x | 0; + $y = $y | 0; + var $0 = 0, $2 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $38 = 0, $4 = 0, $5 = 0, $51 = 0, $56 = 0, $57 = 0, $61 = 0, $70 = 0, $75 = 0, $76 = 0, $8 = 0, $80 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $0 = sp; + $2 = HEAP32[$lap0 + 4 >> 2] | 0; + $4 = HEAP32[$lap1 + 4 >> 2] | 0; + $5 = ($2 | 0) == ($4 | 0); + $8 = HEAP32[$lap2 + 4 >> 2] | 0; + do if (($5 & 1 | 0) == ($8 | 0)) if (((HEAP32[$lap0 + 8 >> 2] | 0) == (HEAP32[$lap1 + 8 >> 2] | 0) | 0) == (HEAP32[$lap2 + 8 >> 2] | 0)) { + __ZN6vision32ComputeSubpixelHessianSameOctaveEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y); + break; + } else { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23337) | 0, 23408) | 0, 34302) | 0, 466) | 0, 34309) | 0, 23535) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); + } else { + if (!($5 & ($4 >>> 1 | 0) == ($8 | 0))) if (($2 >>> 1 | 0) == ($4 | 0) & ($4 | 0) == ($8 | 0)) { + __ZN6vision38ComputeSubpixelHessianCoarseOctavePairEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y); + break; + } else { + $70 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 28540) | 0, 23408) | 0, 34302) | 0, 475) | 0, 34309) | 0, 23664) | 0; + $75 = __ZNKSt3__18ios_base6getlocEv($70 + (HEAP32[(HEAP32[$70 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $75; + $76 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $80 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$76 >> 2] | 0) + 28 >> 2] & 63]($76, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($70, $80) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($70) | 0; + _abort(); + } + $38 = HEAP32[$lap0 + 8 >> 2] | 0; + if (($38 | 0) == (HEAP32[$lap1 + 8 >> 2] | 0)) if (($38 >>> 1 | 0) == (HEAP32[$lap2 + 8 >> 2] | 0)) { + __ZN6vision36ComputeSubpixelHessianFineOctavePairEPfS0_RKNS_5ImageES3_S3_ii($H, $b, $lap0, $lap1, $lap2, $x, $y); + break; + } + $51 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 23567) | 0, 23408) | 0, 34302) | 0, 469) | 0, 34309) | 0, 23535) | 0; + $56 = __ZNKSt3__18ios_base6getlocEv($51 + (HEAP32[(HEAP32[$51 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $56; + $57 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $61 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$57 >> 2] | 0) + 28 >> 2] & 63]($57, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($51, $61) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($51) | 0; + _abort(); + } while (0); + STACKTOP = sp; + return 1; +} + +function _start_input_pass32($cinfo) { + $cinfo = $cinfo | 0; + var $$pre = 0, $$pre$phi3$iZ2D = 0, $$pre$phiZ2D = 0, $$pre4 = 0, $0 = 0, $1 = 0, $100 = 0, $106 = 0, $113 = 0, $121 = 0, $19 = 0, $20 = 0, $26 = 0, $36 = 0, $4 = 0, $43 = 0, $45 = 0, $46 = 0, $49 = 0, $51 = 0, $54 = 0, $56 = 0, $60 = 0, $64 = 0, $69 = 0, $75 = 0, $80 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $92 = 0, $96 = 0, $ci$0$i15 = 0, $ci$0$i8 = 0, $mcublks$0$i6 = 0, label = 0; + $0 = $cinfo + 328 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (($1 | 0) == 1) { + $4 = HEAP32[$cinfo + 332 >> 2] | 0; + HEAP32[$cinfo + 348 >> 2] = HEAP32[$4 + 28 >> 2]; + $9 = HEAP32[$4 + 32 >> 2] | 0; + HEAP32[$cinfo + 352 >> 2] = $9; + HEAP32[$4 + 52 >> 2] = 1; + HEAP32[$4 + 56 >> 2] = 1; + HEAP32[$4 + 60 >> 2] = 1; + HEAP32[$4 + 64 >> 2] = HEAP32[$4 + 36 >> 2]; + HEAP32[$4 + 68 >> 2] = 1; + $19 = HEAP32[$4 + 12 >> 2] | 0; + $20 = ($9 >>> 0) % ($19 >>> 0) | 0; + HEAP32[$4 + 72 >> 2] = ($20 | 0) == 0 ? $19 : $20; + HEAP32[$cinfo + 356 >> 2] = 1; + HEAP32[$cinfo + 360 >> 2] = 0; + $$pre$phiZ2D = $cinfo; + $89 = 1; + } else { + if (($1 + -1 | 0) >>> 0 > 3) { + $26 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$26 + 20 >> 2] = 26; + HEAP32[$26 + 24 >> 2] = $1; + HEAP32[$26 + 28 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$26 >> 2] & 255]($cinfo); + $$pre$phi3$iZ2D = $cinfo; + } else $$pre$phi3$iZ2D = $cinfo; + $36 = _jdiv_round_up(HEAP32[$cinfo + 28 >> 2] | 0, HEAP32[$cinfo + 308 >> 2] << 3) | 0; + HEAP32[$cinfo + 348 >> 2] = $36; + $43 = _jdiv_round_up(HEAP32[$cinfo + 32 >> 2] | 0, HEAP32[$cinfo + 312 >> 2] << 3) | 0; + HEAP32[$cinfo + 352 >> 2] = $43; + $45 = $cinfo + 356 | 0; + HEAP32[$45 >> 2] = 0; + $46 = HEAP32[$0 >> 2] | 0; + if (($46 | 0) > 0) { + $ci$0$i8 = 0; + do { + $49 = HEAP32[$cinfo + 332 + ($ci$0$i8 << 2) >> 2] | 0; + $51 = HEAP32[$49 + 8 >> 2] | 0; + HEAP32[$49 + 52 >> 2] = $51; + $54 = HEAP32[$49 + 12 >> 2] | 0; + HEAP32[$49 + 56 >> 2] = $54; + $56 = Math_imul($54, $51) | 0; + HEAP32[$49 + 60 >> 2] = $56; + $60 = Math_imul(HEAP32[$49 + 36 >> 2] | 0, $51) | 0; + HEAP32[$49 + 64 >> 2] = $60; + $64 = ((HEAP32[$49 + 28 >> 2] | 0) >>> 0) % ($51 >>> 0) | 0; + HEAP32[$49 + 68 >> 2] = ($64 | 0) == 0 ? $51 : $64; + $69 = ((HEAP32[$49 + 32 >> 2] | 0) >>> 0) % ($54 >>> 0) | 0; + HEAP32[$49 + 72 >> 2] = ($69 | 0) == 0 ? $54 : $69; + if (((HEAP32[$45 >> 2] | 0) + $56 | 0) > 10) { + $75 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$75 + 20 >> 2] = 13; + FUNCTION_TABLE_vi[HEAP32[$75 >> 2] & 255]($$pre$phi3$iZ2D); + } + if (($56 | 0) > 0) { + $mcublks$0$i6 = $56; + while (1) { + $80 = HEAP32[$45 >> 2] | 0; + HEAP32[$45 >> 2] = $80 + 1; + HEAP32[$cinfo + 360 + ($80 << 2) >> 2] = $ci$0$i8; + if (($mcublks$0$i6 | 0) > 1) $mcublks$0$i6 = $mcublks$0$i6 + -1 | 0; else break; + } + } + $ci$0$i8 = $ci$0$i8 + 1 | 0; + $85 = HEAP32[$0 >> 2] | 0; + } while (($ci$0$i8 | 0) < ($85 | 0)); + $$pre$phiZ2D = $cinfo; + $89 = $85; + } else { + $$pre$phiZ2D = $cinfo; + $89 = $46; } } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + $87 = $cinfo + 4 | 0; + if (($89 | 0) > 0) { + $121 = $89; + $ci$0$i15 = 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $91 = HEAP32[$cinfo + 332 + ($ci$0$i15 << 2) >> 2] | 0; + $92 = $91 + 76 | 0; + if (!(HEAP32[$92 >> 2] | 0)) { + $96 = HEAP32[$91 + 16 >> 2] | 0; + $$pre4 = $cinfo + 164 + ($96 << 2) | 0; + if ($96 >>> 0 > 3) label = 16; else if (!(HEAP32[$$pre4 >> 2] | 0)) label = 16; + if ((label | 0) == 16) { + label = 0; + $100 = HEAP32[$$pre$phiZ2D >> 2] | 0; + HEAP32[$100 + 20 >> 2] = 52; + HEAP32[$100 + 24 >> 2] = $96; + FUNCTION_TABLE_vi[HEAP32[$100 >> 2] & 255]($cinfo); + } + $106 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$87 >> 2] >> 2] & 63]($cinfo, 1, 132) | 0; + _memcpy($106 | 0, HEAP32[$$pre4 >> 2] | 0, 132) | 0; + HEAP32[$92 >> 2] = $106; + $$pre = HEAP32[$0 >> 2] | 0; + } else $$pre = $121; + $ci$0$i15 = $ci$0$i15 + 1 | 0; + if (($ci$0$i15 | 0) >= ($$pre | 0)) break; else $121 = $$pre; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 2) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; + FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo + 444 >> 2] >> 2] & 255]($cinfo); + $113 = $cinfo + 428 | 0; + FUNCTION_TABLE_vi[HEAP32[HEAP32[$113 >> 2] >> 2] & 255]($cinfo); + HEAP32[HEAP32[$cinfo + 436 >> 2] >> 2] = HEAP32[(HEAP32[$113 >> 2] | 0) + 4 >> 2]; + return; +} + +function __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) { + $first = $first | 0; + $last = $last | 0; + $op = $op | 0; + $db = $db | 0; + var $$04 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $2 = 0, $25 = 0, $28 = 0, $3 = 0, $35 = 0, $37 = 0, $4 = 0, $40 = 0, $44 = 0, $47 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $69 = 0, $7 = 0, $72 = 0, $77 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 36 | 0; + $1 = sp + 24 | 0; + $2 = sp + 12 | 0; + $3 = sp; + $4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($4 | 0) == ($first | 0)) $$04 = $first; else { + $7 = $db + 4 | 0; + $8 = HEAP32[$7 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($8 | 0)) $$04 = $first; else { + $10 = $8 + -24 | 0; + __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($2, $op, 47883); + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$7 >> 2] | 0) + -24 | 0); + $13 = HEAP8[$3 >> 0] | 0; + $15 = ($13 & 1) == 0; + $25 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $15 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $15 ? ($13 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; + HEAP32[$1 >> 2] = HEAP32[$25 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$25 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$25 + 8 >> 2]; + HEAP32[$25 >> 2] = 0; + HEAP32[$25 + 4 >> 2] = 0; + HEAP32[$25 + 8 >> 2] = 0; + $28 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 47788) | 0; + HEAP32[$0 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$0 + 4 >> 2] = HEAP32[$28 + 4 >> 2]; + HEAP32[$0 + 8 >> 2] = HEAP32[$28 + 8 >> 2]; + HEAP32[$28 >> 2] = 0; + HEAP32[$28 + 4 >> 2] = 0; + HEAP32[$28 + 8 >> 2] = 0; + do if (!(HEAP8[$10 >> 0] & 1)) { + HEAP8[$10 + 1 >> 0] = 0; + HEAP8[$10 >> 0] = 0; + } else { + $35 = $8 + -16 | 0; + HEAP8[HEAP32[$35 >> 2] >> 0] = 0; + $37 = $8 + -20 | 0; + HEAP32[$37 >> 2] = 0; + $$pre$i$i$i = HEAP8[$10 >> 0] | 0; + if (!($$pre$i$i$i & 1)) { + $44 = $$pre$i$i$i; + $53 = 10; + } else { + $40 = HEAP32[$10 >> 2] | 0; + $44 = $40 & 255; + $53 = ($40 & -2) + -1 | 0; + } + if (!($44 & 1)) { + $47 = ($44 & 255) >>> 1; + if (($44 & 255) < 22) { + $52 = 10; + $72 = $47; + $77 = 1; } else { - $38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($38 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $38; - $41 = ($38 << 16 >> 16) * 7 | 0; - $43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0; - HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1; - $47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0; - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255; - $51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0; - HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + $52 = ($47 + 16 & 240) + -1 | 0; + $72 = $47; + $77 = 1; + } + } else { + $52 = 10; + $72 = 0; + $77 = 0; + } + if (($52 | 0) != ($53 | 0)) { + if (($52 | 0) == 10) { + $59 = $10 + 1 | 0; + $60 = HEAP32[$35 >> 2] | 0; + if ($77) { + _memcpy($59 | 0, $60 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0; + _free($60); + } else { + HEAP8[$59 >> 0] = HEAP8[$60 >> 0] | 0; + _free($60); } - $57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $58 = $57 << 16 >> 16; - $61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $62 = $61 << 16 >> 16; - $63 = $61 << 16 >> 16 > 0; - if ($57 << 16 >> 16 <= 0) { - if ($63) { - HEAP16[$pnt2$362 >> 1] = $61; - $163 = $62 * 7 | 0; - $165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0; - HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1; - $169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0; - HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255; - $173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0; - HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068; - $177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0; - if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $183 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($183 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $183; - $186 = ($183 << 16 >> 16) * 7 | 0; - $188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0; - HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1; - $192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0; - HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255; - $196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0; - HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068; - $200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0; - if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$200 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $203 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $203; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16; - $208 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $203; - break; - } + HEAP8[$10 >> 0] = $72 << 1; + break; + } + $56 = $52 + 1 | 0; + $57 = _malloc($56) | 0; + if (!($52 >>> 0 <= $53 >>> 0 & ($57 | 0) == 0)) { + if ($77) _memcpy($57 | 0, $10 + 1 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0; else { + $69 = HEAP32[$35 >> 2] | 0; + HEAP8[$57 >> 0] = HEAP8[$69 >> 0] | 0; + _free($69); } - if ($63) { - $66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - $69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0; - if (($66 | 0) > ($69 | 0)) { - HEAP16[$pnt2$362 >> 1] = $69; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $86 = $69; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $86 = $69; - } else { - HEAP16[$pnt2$362 >> 1] = $66; - if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $86 = $66; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $86 = $66; - } - $88 = ($86 << 16 >> 16) * 7 | 0; - $90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0; - HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1; - $94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0; - HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255; - $98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0; - HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + HEAP32[$10 >> 2] = $56 | 1; + HEAP32[$37 >> 2] = $72; + HEAP32[$35 >> 2] = $57; + } + } + } while (0); + HEAP32[$10 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$10 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$10 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $$04 = $4; + } + } + STACKTOP = sp; + return $$04 | 0; +} + +function __ZN6vision10DoGPyramid7computeEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $0 = 0, $10 = 0, $15 = 0, $16 = 0, $20 = 0, $29 = 0, $34 = 0, $35 = 0, $39 = 0, $41 = 0, $42 = 0, $50 = 0, $55 = 0, $56 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $67 = 0, $68 = 0, $i$05 = 0, $j$04 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ((HEAP32[$this + 4 >> 2] | 0) == (HEAP32[$this >> 2] | 0)) { + $10 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21579) | 0, 21425) | 0, 34302) | 0, 72) | 0, 34309) | 0, 21621) | 0; + $15 = __ZNKSt3__18ios_base6getlocEv($10 + (HEAP32[(HEAP32[$10 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $15; + $16 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $20 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$16 >> 2] | 0) + 28 >> 2] & 63]($16, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($10, $20) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($10) | 0; + _abort(); + } + if ((HEAP32[$pyramid + 16 >> 2] | 0) <= 0) { + $29 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21662) | 0, 21425) | 0, 34302) | 0, 73) | 0, 34309) | 0, 21711) | 0; + $34 = __ZNKSt3__18ios_base6getlocEv($29 + (HEAP32[(HEAP32[$29 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $34; + $35 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $39 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$35 >> 2] | 0) + 28 >> 2] & 63]($35, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($29, $39) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($29) | 0; + _abort(); + } + if (!(___dynamic_cast($pyramid, 8, 16, 0) | 0)) { + $50 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21747) | 0, 21425) | 0, 34302) | 0, 74) | 0, 34309) | 0, 21819) | 0; + $55 = __ZNKSt3__18ios_base6getlocEv($50 + (HEAP32[(HEAP32[$50 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $55; + $56 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $60 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$56 >> 2] | 0) + 28 >> 2] & 63]($56, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($50, $60) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($50) | 0; + _abort(); + } + $41 = $this + 12 | 0; + $42 = $this + 16 | 0; + if (HEAP32[$41 >> 2] | 0) { + $i$05 = 0; + do { + $61 = HEAP32[$42 >> 2] | 0; + if ($61) { + $64 = $61; + $j$04 = 0; + do { + $65 = (Math_imul($64, $i$05) | 0) + $j$04 | 0; + $67 = (HEAP32[$this >> 2] | 0) + ($65 << 5) | 0; + $68 = __ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, $i$05, $j$04) | 0; + $j$04 = $j$04 + 1 | 0; + __ZN6vision10DoGPyramid25difference_image_binomialERNS_5ImageERKS1_S4_(0, $67, $68, __ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, $i$05, $j$04) | 0); + $64 = HEAP32[$42 >> 2] | 0; + } while ($j$04 >>> 0 < $64 >>> 0); + } + $i$05 = $i$05 + 1 | 0; + } while ($i$05 >>> 0 < (HEAP32[$41 >> 2] | 0) >>> 0); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$pre = 0, $$pre1 = 0, $10 = 0, $102 = 0, $107 = 0, $110 = 0, $12 = 0, $122 = 0, $127 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $35 = 0, $38 = 0, $50 = 0, $55 = 0, $6 = 0, $61 = 0, $63 = 0, $70 = 0, $8 = 0, $80 = 0, $84 = 0, $93 = 0, label = 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + $$pre1 = $to_end; + if (!($mode & 2)) label = 4; else if (($$pre1 - $to | 0) < 3) $$0 = 1; else { + HEAP32[$to_nxt >> 2] = $to + 1; + HEAP8[$to >> 0] = -17; + $6 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $6 + 1; + HEAP8[$6 >> 0] = -69; + $8 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $8 + 1; + HEAP8[$8 >> 0] = -65; + label = 4; + } + L4 : do if ((label | 0) == 4) { + $10 = $frm_end; + $$pre = HEAP32[$frm_nxt >> 2] | 0; + if ($$pre >>> 0 < $frm_end >>> 0) { + $13 = $$pre; + while (1) { + $12 = HEAP16[$13 >> 1] | 0; + $14 = $12 & 65535; + if ($14 >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L4; + } + do if (($12 & 65535) < 128) { + $17 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $17 | 0) < 1) { + $$0 = 1; + break L4; + } + HEAP32[$to_nxt >> 2] = $17 + 1; + HEAP8[$17 >> 0] = $12; + } else { + if (($12 & 65535) < 2048) { + $24 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $24 | 0) < 2) { + $$0 = 1; + break L4; } - $104 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($104 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $57; - $144 = $58 * 7 | 0; - $146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0; - HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1; - $150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0; - HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255; - $154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068; - $158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0; - if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + HEAP32[$to_nxt >> 2] = $24 + 1; + HEAP8[$24 >> 0] = $14 >>> 6 | 192; + $35 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $35 + 1; + HEAP8[$35 >> 0] = $14 & 63 | 128; + break; + } + if (($12 & 65535) < 55296) { + $38 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $38 | 0) < 3) { + $$0 = 1; + break L4; } - $109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0; - $112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($109 | 0) > ($112 | 0)) { - HEAP16[$pnt2$362 >> 1] = $112; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $129 = $112; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $129 = $112; - } else { - HEAP16[$pnt2$362 >> 1] = $109; - if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $129 = $109; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $129 = $109; + HEAP32[$to_nxt >> 2] = $38 + 1; + HEAP8[$38 >> 0] = $14 >>> 12 | 224; + $50 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $50 + 1; + HEAP8[$50 >> 0] = $14 >>> 6 & 63 | 128; + $55 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $55 + 1; + HEAP8[$55 >> 0] = $14 & 63 | 128; + break; + } + if (($12 & 65535) >= 56320) { + if (($12 & 65535) < 57344) { + $$0 = 2; + break L4; } - $131 = ($129 << 16 >> 16) * 7 | 0; - $133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0; - HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1; - $137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255; - $141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $223 = $pnt$163 + 4 | 0; - $224 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $223; - $pnt2$3$lcssa = $224; - $wk_max$1$lcssa = $wk_max$2; + $110 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $110 | 0) < 3) { + $$0 = 1; + break L4; + } + HEAP32[$to_nxt >> 2] = $110 + 1; + HEAP8[$110 >> 0] = $14 >>> 12 | 224; + $122 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $122 + 1; + HEAP8[$122 >> 0] = $14 >>> 6 & 63 | 128; + $127 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $127 + 1; + HEAP8[$127 >> 0] = $14 & 63 | 128; break; - } else { - $pnt$163 = $223; - $pnt2$362 = $224; - $wk_max$157 = $wk_max$2; } + if (($10 - $13 | 0) < 4) { + $$0 = 1; + break L4; + } + $61 = $13 + 2 | 0; + $63 = HEAPU16[$61 >> 1] | 0; + if (($63 & 64512 | 0) != 56320) { + $$0 = 2; + break L4; + } + if (($$pre1 - (HEAP32[$to_nxt >> 2] | 0) | 0) < 4) { + $$0 = 1; + break L4; + } + $70 = $14 & 960; + if ((($70 << 10) + 65536 | $14 << 10 & 64512 | $63 & 1023) >>> 0 > $Maxcode >>> 0) { + $$0 = 2; + break L4; + } + HEAP32[$frm_nxt >> 2] = $61; + $80 = ($70 >>> 6) + 1 | 0; + $84 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $84 + 1; + HEAP8[$84 >> 0] = $80 >>> 2 | 240; + $93 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $93 + 1; + HEAP8[$93 >> 0] = $14 >>> 2 & 15 | $80 << 4 & 48 | 128; + $102 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $102 + 1; + HEAP8[$102 >> 0] = $14 << 4 & 48 | $63 >>> 6 & 15 | 128; + $107 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $107 + 1; + HEAP8[$107 >> 0] = $63 & 63 | 128; + } while (0); + $13 = (HEAP32[$frm_nxt >> 2] | 0) + 2 | 0; + HEAP32[$frm_nxt >> 2] = $13; + if ($13 >>> 0 >= $frm_end >>> 0) { + $$0 = 0; + break; + } + } + } else $$0 = 0; + } while (0); + return $$0 | 0; +} + +function _ar2ReadMarkerSet($filename, $ext, $pattHandle) { + $filename = $filename | 0; + $ext = $ext | 0; + $pattHandle = $pattHandle | 0; + var $$0 = 0, $$lcssa = 0, $0 = 0, $12 = 0, $2 = 0, $21 = 0, $22 = 0, $37 = 0, $6 = 0, $9 = 0, $buf = 0, $buf1 = 0, $i$010 = 0, $j$0 = 0, $markerSet$0 = 0, $namebuf = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer15 = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1088 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer15 = sp + 48 | 0; + $vararg_buffer12 = sp + 40 | 0; + $vararg_buffer9 = sp + 32 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer4 = sp + 16 | 0; + $vararg_buffer2 = sp + 8 | 0; + $vararg_buffer = sp; + $buf = sp + 832 | 0; + $buf1 = sp + 576 | 0; + $namebuf = sp + 64 | 0; + HEAP32[$vararg_buffer >> 2] = $filename; + HEAP32[$vararg_buffer + 4 >> 2] = $ext; + _sprintf($namebuf, 21376, $vararg_buffer) | 0; + $0 = _fopen($namebuf, 20518) | 0; + if (!$0) $$0 = 0; else { + $2 = _malloc(8) | 0; + if (!$2) { + _arLog(3, 21359, $vararg_buffer2); + _exit(1); + } + L6 : do if (!(_get_buff377($buf, $0) | 0)) { + _free($2); + $markerSet$0 = 0; + } else { + $6 = $2 + 4 | 0; + HEAP32[$vararg_buffer4 >> 2] = $6; + if ((_sscanf($buf, 20552, $vararg_buffer4) | 0) != 1) { + _free($2); + $markerSet$0 = 0; + break; + } + $9 = HEAP32[$6 >> 2] | 0; + if (($9 | 0) < 1) { + _free($2); + $markerSet$0 = 0; + break; + } + $12 = _malloc($9 * 56 | 0) | 0; + HEAP32[$2 >> 2] = $12; + if (!$12) { + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } + if (($9 | 0) > 0) { + $i$010 = 0; + L18 : while (1) { + if (!(_get_buff377($buf, $0) | 0)) { + label = 14; + break; + } + HEAP32[$vararg_buffer9 >> 2] = $buf1; + if ((_sscanf($buf, 20579, $vararg_buffer9) | 0) != 1) { + label = 16; + break; + } + $21 = _arPattLoad($pattHandle, $buf1) | 0; + $22 = HEAP32[$2 >> 2] | 0; + HEAP32[$22 + ($i$010 * 56 | 0) + 4 >> 2] = $21; + if (($21 | 0) < 0) { + $$lcssa = $22; + label = 18; + break; + } + if (!(_get_buff377($buf, $0) | 0)) { + label = 20; + break; + } + HEAP32[$vararg_buffer12 >> 2] = (HEAP32[$2 >> 2] | 0) + ($i$010 * 56 | 0); + if ((_sscanf($buf, 20480, $vararg_buffer12) | 0) == 1) $j$0 = 0; else { + label = 22; + break; + } + while (1) { + if (($j$0 | 0) >= 3) break; + if (!(_get_buff377($buf, $0) | 0)) { + label = 25; + break L18; + } + $37 = HEAP32[$2 >> 2] | 0; + HEAP32[$vararg_buffer15 >> 2] = $37 + ($i$010 * 56 | 0) + 8 + ($j$0 << 4); + HEAP32[$vararg_buffer15 + 4 >> 2] = $37 + ($i$010 * 56 | 0) + 8 + ($j$0 << 4) + 4; + HEAP32[$vararg_buffer15 + 8 >> 2] = $37 + ($i$010 * 56 | 0) + 8 + ($j$0 << 4) + 8; + HEAP32[$vararg_buffer15 + 12 >> 2] = $37 + ($i$010 * 56 | 0) + 8 + ($j$0 << 4) + 12; + if ((_sscanf($buf, 20745, $vararg_buffer15) | 0) == 4) $j$0 = $j$0 + 1 | 0; else { + label = 27; + break L18; + } + } + $i$010 = $i$010 + 1 | 0; + if (($i$010 | 0) >= (HEAP32[$6 >> 2] | 0)) { + $markerSet$0 = $2; + break L6; + } + } + if ((label | 0) == 14) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 16) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 18) { + _free($$lcssa); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 20) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 22) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 25) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } else if ((label | 0) == 27) { + _free(HEAP32[$2 >> 2] | 0); + _free($2); + $markerSet$0 = 0; + break; + } + } else $markerSet$0 = $2; + } while (0); + _fclose($0) | 0; + $$0 = $markerSet$0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _icpPoint($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) { + $handle = $handle | 0; + $data = $data | 0; + $initMatXw2Xc = $initMatXw2Xc | 0; + $matXw2Xc = $matXw2Xc | 0; + $err = $err | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa28 = 0, $$lcssa50 = 0.0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $28 = 0, $34 = 0, $38 = 0.0, $4 = 0, $42 = 0.0, $46 = 0.0, $47 = 0, $52 = 0, $55 = 0.0, $7 = 0, $9 = 0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$033 = 0.0, $i$1 = 0, $j$042 = 0, $j$134 = 0, $j$238 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 168 | 0; + $vararg_buffer = sp + 160 | 0; + $U = sp + 48 | 0; + $matXw2U = sp + 64 | 0; + $dS = sp; + $0 = $data + 8 | 0; + $1 = HEAP32[$0 >> 2] | 0; + do if (($1 | 0) < 3) $$0 = -1; else { + $4 = _malloc($1 * 96 | 0) | 0; + if (!$4) { + _arLog(3, 19294, $vararg_buffer); + $$0 = -1; + break; + } + $7 = _malloc($1 << 4) | 0; + if (!$7) { + _arLog(3, 19294, $vararg_buffer1); + _free($4); + $$0 = -1; + break; + } else $j$042 = 0; + do { + HEAPF64[$matXw2Xc + ($j$042 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) >> 3]; + HEAPF64[$matXw2Xc + ($j$042 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 8 >> 3]; + HEAPF64[$matXw2Xc + ($j$042 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 16 >> 3]; + HEAPF64[$matXw2Xc + ($j$042 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 24 >> 3]; + $j$042 = $j$042 + 1 | 0; + } while (($j$042 | 0) != 3); + $9 = $data + 4 | 0; + $10 = $U + 8 | 0; + $11 = $handle + 104 | 0; + $12 = $handle + 120 | 0; + $13 = $handle + 112 | 0; + $14 = $handle + 96 | 0; + $err0$0 = 0.0; + $i$1 = 0; + L11 : while (1) { + _arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0; + $28 = HEAP32[$0 >> 2] | 0; + if (($28 | 0) > 0) { + $err1$033 = 0.0; + $j$134 = 0; + while (1) { + if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$9 >> 2] | 0) + ($j$134 * 24 | 0) | 0) | 0) < 0) { + label = 10; + break L11; + } + $34 = HEAP32[$data >> 2] | 0; + $38 = +HEAPF64[$34 + ($j$134 << 4) >> 3] - +HEAPF64[$U >> 3]; + $42 = +HEAPF64[$34 + ($j$134 << 4) + 8 >> 3] - +HEAPF64[$10 >> 3]; + $46 = $err1$033 + ($38 * $38 + $42 * $42); + $47 = $j$134 << 1; + HEAPF64[$7 + ($47 << 3) >> 3] = $38; + HEAPF64[$7 + (($47 | 1) << 3) >> 3] = $42; + $j$134 = $j$134 + 1 | 0; + $52 = HEAP32[$0 >> 2] | 0; + if (($j$134 | 0) >= ($52 | 0)) { + $$lcssa = $52; + $err1$0$lcssa = $46; + break; + } else $err1$033 = $46; } } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $$lcssa = $28; + $err1$0$lcssa = 0.0; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 8 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $55 = $err1$0$lcssa / +($$lcssa | 0); + if ($55 < +HEAPF64[$11 >> 3]) { + $$lcssa50 = $55; + label = 24; + break; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $230 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $232 = HEAP32[$wk$439 >> 2] | 0; - if (($232 | 0) == ($i$337 | 0)) { - $238 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $238; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + if (($i$1 | 0) > 0) if ($55 < +HEAPF64[$12 >> 3]) if ($55 / $err0$0 > +HEAPF64[$13 >> 3]) { + $$lcssa50 = $55; + label = 24; + break; } - } - $242 = $labelInfo + 8 | 0; - $243 = $j$1$lcssa + -1 | 0; - HEAP32[$242 >> 2] = $243; - if (!$243) $$0 = 0; else { - _memset($230 | 0, 0, $243 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $250 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0)); + if (($i$1 | 0) == (HEAP32[$14 >> 2] | 0)) { + $$lcssa50 = $55; + label = 24; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $265 = $i$533 * 7 | 0; - $268 = $labelInfo + 12 + ($264 << 2) | 0; - HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0); - $275 = $264 << 1; - $276 = $labelInfo + 655376 + ($275 << 3) | 0; - HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0); - $284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0; - HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0); - $287 = $264 << 2; - $288 = $labelInfo + 131084 + ($287 << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306; - $309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0; - $313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0; - if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + if (($$lcssa | 0) > 0) { + $j$238 = 0; + while (1) { + if ((_icpGetJ_U_S($4 + ($j$238 * 12 << 3) | 0, $handle, $matXw2Xc, (HEAP32[$9 >> 2] | 0) + ($j$238 * 24 | 0) | 0) | 0) < 0) { + label = 20; + break L11; + } + $j$238 = $j$238 + 1 | 0; + $$pre = HEAP32[$0 >> 2] | 0; + if (($j$238 | 0) >= ($$pre | 0)) { + $$lcssa28 = $$pre; + break; + } + } + } else $$lcssa28 = $$lcssa; + if ((_icpGetDeltaS($dS, $7, $4, $$lcssa28 << 1) | 0) < 0) { + label = 22; + break; } - if ((HEAP32[$242 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $317 = $labelInfo + 12 + ($i$632 << 2) | 0; - $320 = $i$632 << 1; - $321 = $labelInfo + 655376 + ($320 << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0); - $327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0; - HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + _icpUpdateMat($matXw2Xc, $dS) | 0; + $err0$0 = $55; + $i$1 = $i$1 + 1 | 0; } - } + if ((label | 0) == 10) { + _icpGetXw2XcCleanup($4, $7); + $$0 = -1; + break; + } else if ((label | 0) == 20) { + _icpGetXw2XcCleanup($4, $7); + $$0 = -1; + break; + } else if ((label | 0) == 22) { + _icpGetXw2XcCleanup($4, $7); + $$0 = -1; + break; + } else if ((label | 0) == 24) { + HEAPF64[$err >> 3] = $$lcssa50; + _free($4); + _free($7); + $$0 = 0; + break; + } + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwRKNS_12basic_stringIwS3_NS_9allocatorIwEEEE($this, $__s, $__intl, $__iob, $__fl, $__digits) { + $this = $this | 0; + $__s = $__s | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__digits = $__digits | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $104 = 0, $15 = 0, $2 = 0, $27 = 0, $28 = 0, $3 = 0, $31 = 0, $34 = 0, $35 = 0, $39 = 0, $47 = 0, $5 = 0, $59 = 0, $6 = 0, $67 = 0, $79 = 0, $81 = 0, $87 = 0, $90 = 0, $98 = 0, $99 = 0, $__dp = 0, $__fd = 0, $__grp = 0, $__loc = 0, $__mb$0 = 0, $__mbuf = 0, $__me = 0, $__mi = 0, $__pat = 0, $__sn = 0, $__sym = 0, $__ts = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 480 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $$byval_copy = sp + 468 | 0; + $__loc = sp + 464 | 0; + $__pat = sp + 472 | 0; + $__dp = sp + 56 | 0; + $__ts = sp + 52 | 0; + $__grp = sp + 40 | 0; + $__sym = sp + 28 | 0; + $__sn = sp + 16 | 0; + $__fd = sp + 12 | 0; + $__mbuf = sp + 64 | 0; + $__mi = sp + 8 | 0; + $__me = sp + 4 | 0; + $0 = sp; + $1 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $1; + $2 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + $3 = HEAP8[$__digits >> 0] | 0; + $5 = ($3 & 1) == 0; + $6 = $__digits + 4 | 0; + if (!(($5 ? ($3 & 255) >>> 1 : HEAP32[$6 >> 2] | 0) | 0)) $27 = 0; else { + $15 = HEAP32[($5 ? $6 : HEAP32[$__digits + 8 >> 2] | 0) >> 2] | 0; + $27 = ($15 | 0) == (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$2 >> 2] | 0) + 44 >> 2] & 63]($2, 45) | 0); + } + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__sn >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + HEAP32[$__sn + 8 >> 2] = 0; + __ZNSt3__111__money_putIwE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERwS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS9_IwNSA_IwEENSC_IwEEEESJ_Ri($__intl, $27, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd); + $28 = HEAP8[$__digits >> 0] | 0; + $31 = HEAP32[$6 >> 2] | 0; + $34 = ($28 & 1) == 0 ? ($28 & 255) >>> 1 : $31; + $35 = HEAP32[$__fd >> 2] | 0; + if (($34 | 0) > ($35 | 0)) { + $39 = HEAP8[$__sn >> 0] | 0; + $47 = HEAP8[$__sym >> 0] | 0; + $79 = ($34 - $35 << 1 | 1) + $35 + (($39 & 1) == 0 ? ($39 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($47 & 1) == 0 ? ($47 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } else { + $59 = HEAP8[$__sn >> 0] | 0; + $67 = HEAP8[$__sym >> 0] | 0; + $79 = $35 + 2 + (($59 & 1) == 0 ? ($59 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($67 & 1) == 0 ? ($67 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } + if ($79 >>> 0 > 100) { + $81 = _malloc($79 << 2) | 0; + if (!$81) __ZSt17__throw_bad_allocv(); else { + $102 = $81; + $__mb$0 = $81; + } + } else { + $102 = 0; + $__mb$0 = $__mbuf; + } + $87 = ($28 & 1) == 0; + $90 = $87 ? $6 : HEAP32[$__digits + 8 >> 2] | 0; + __ZNSt3__111__money_putIwE8__formatEPwRS2_S3_jPKwS5_RKNS_5ctypeIwEEbRKNS_10money_base7patternEwwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNSE_IwNSF_IwEENSH_IwEEEESQ_i($__mb$0, $__mi, $__me, HEAP32[$__iob + 4 >> 2] | 0, $90, $90 + (($87 ? ($28 & 255) >>> 1 : $31) << 2) | 0, $2, $27, $__pat, HEAP32[$__dp >> 2] | 0, HEAP32[$__ts >> 2] | 0, $__grp, $__sym, $__sn, $35); + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + $98 = HEAP32[$__mi >> 2] | 0; + $99 = HEAP32[$__me >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $100 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__mb$0, $98, $99, $__iob, $__fl) | 0; + if (!$102) $104 = $1; else { + _free($102); + $104 = HEAP32[$__loc >> 2] | 0; + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sn); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + __ZNSt3__114__shared_count16__release_sharedEv($104) | 0; + STACKTOP = sp; + return $100 | 0; +} + +function __ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEcRKNS_12basic_stringIcS3_NS_9allocatorIcEEEE($this, $__s, $__intl, $__iob, $__fl, $__digits) { + $this = $this | 0; + $__s = $__s | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__digits = $__digits | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $100 = 0, $101 = 0, $103 = 0, $105 = 0, $16 = 0, $2 = 0, $28 = 0, $29 = 0, $3 = 0, $32 = 0, $35 = 0, $36 = 0, $40 = 0, $48 = 0, $5 = 0, $6 = 0, $60 = 0, $68 = 0, $80 = 0, $81 = 0, $87 = 0, $91 = 0, $99 = 0, $__dp = 0, $__fd = 0, $__grp = 0, $__loc = 0, $__mb$0 = 0, $__mbuf = 0, $__me = 0, $__mi = 0, $__pat = 0, $__sn = 0, $__sym = 0, $__ts = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 56 | 0; + $__loc = sp + 52 | 0; + $__pat = sp + 64 | 0; + $__dp = sp + 61 | 0; + $__ts = sp + 60 | 0; + $__grp = sp + 40 | 0; + $__sym = sp + 28 | 0; + $__sn = sp + 16 | 0; + $__fd = sp + 12 | 0; + $__mbuf = sp + 68 | 0; + $__mi = sp + 8 | 0; + $__me = sp + 4 | 0; + $0 = sp; + $1 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $1; + $2 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + $3 = HEAP8[$__digits >> 0] | 0; + $5 = ($3 & 1) == 0; + $6 = $__digits + 4 | 0; + if (!(($5 ? ($3 & 255) >>> 1 : HEAP32[$6 >> 2] | 0) | 0)) $28 = 0; else { + $16 = HEAP8[($5 ? $__digits + 1 | 0 : HEAP32[$__digits + 8 >> 2] | 0) >> 0] | 0; + $28 = $16 << 24 >> 24 == (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$2 >> 2] | 0) + 28 >> 2] & 63]($2, 45) | 0) << 24 >> 24; + } + HEAP32[$__grp >> 2] = 0; + HEAP32[$__grp + 4 >> 2] = 0; + HEAP32[$__grp + 8 >> 2] = 0; + HEAP32[$__sym >> 2] = 0; + HEAP32[$__sym + 4 >> 2] = 0; + HEAP32[$__sym + 8 >> 2] = 0; + HEAP32[$__sn >> 2] = 0; + HEAP32[$__sn + 4 >> 2] = 0; + HEAP32[$__sn + 8 >> 2] = 0; + __ZNSt3__111__money_putIcE13__gather_infoEbbRKNS_6localeERNS_10money_base7patternERcS8_RNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESF_SF_Ri($__intl, $28, $__loc, $__pat, $__dp, $__ts, $__grp, $__sym, $__sn, $__fd); + $29 = HEAP8[$__digits >> 0] | 0; + $32 = HEAP32[$6 >> 2] | 0; + $35 = ($29 & 1) == 0 ? ($29 & 255) >>> 1 : $32; + $36 = HEAP32[$__fd >> 2] | 0; + if (($35 | 0) > ($36 | 0)) { + $40 = HEAP8[$__sn >> 0] | 0; + $48 = HEAP8[$__sym >> 0] | 0; + $80 = ($35 - $36 << 1 | 1) + $36 + (($40 & 1) == 0 ? ($40 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($48 & 1) == 0 ? ($48 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } else { + $60 = HEAP8[$__sn >> 0] | 0; + $68 = HEAP8[$__sym >> 0] | 0; + $80 = $36 + 2 + (($60 & 1) == 0 ? ($60 & 255) >>> 1 : HEAP32[$__sn + 4 >> 2] | 0) + (($68 & 1) == 0 ? ($68 & 255) >>> 1 : HEAP32[$__sym + 4 >> 2] | 0) | 0; + } + if ($80 >>> 0 > 100) { + $81 = _malloc($80) | 0; + if (!$81) __ZSt17__throw_bad_allocv(); else { + $103 = $81; + $__mb$0 = $81; + } + } else { + $103 = 0; + $__mb$0 = $__mbuf; + } + $87 = ($29 & 1) == 0; + $91 = $87 ? $__digits + 1 | 0 : HEAP32[$__digits + 8 >> 2] | 0; + __ZNSt3__111__money_putIcE8__formatEPcRS2_S3_jPKcS5_RKNS_5ctypeIcEEbRKNS_10money_base7patternEccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEESL_SL_i($__mb$0, $__mi, $__me, HEAP32[$__iob + 4 >> 2] | 0, $91, $91 + ($87 ? ($29 & 255) >>> 1 : $32) | 0, $2, $28, $__pat, HEAP8[$__dp >> 0] | 0, HEAP8[$__ts >> 0] | 0, $__grp, $__sym, $__sn, $36); + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + $99 = HEAP32[$__mi >> 2] | 0; + $100 = HEAP32[$__me >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $101 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__mb$0, $99, $100, $__iob, $__fl) | 0; + if (!$103) $105 = $1; else { + _free($103); + $105 = HEAP32[$__loc >> 2] | 0; + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sn); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sym); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__grp); + __ZNSt3__114__shared_count16__release_sharedEv($105) | 0; + STACKTOP = sp; + return $101 | 0; +} + +function _jpeg_calc_output_dimensions($cinfo) { + $cinfo = $cinfo | 0; + var $$lcssa = 0, $$pre = 0, $$sink = 0, $1 = 0, $11 = 0, $111 = 0, $15 = 0, $19 = 0, $26 = 0, $3 = 0, $30 = 0, $36 = 0, $37 = 0, $41 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $75 = 0, $76 = 0, $8 = 0, $81 = 0, $84 = 0, $87 = 0, $94 = 0, $97 = 0, $ci$05 = 0, $ci$13 = 0, $compptr$06 = 0, $compptr$14 = 0, $ssize$0 = 0, $ssize$0$lcssa = 0; + $1 = HEAP32[$cinfo + 20 >> 2] | 0; + if (($1 | 0) != 202) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 20; + HEAP32[$3 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $8 = HEAP32[$cinfo + 48 >> 2] | 0; + $11 = HEAP32[$cinfo + 52 >> 2] | 0; + do if ($8 << 3 >>> 0 > $11 >>> 0) { + if ($8 << 2 >>> 0 <= $11 >>> 0) { + $26 = _jdiv_round_up(HEAP32[$cinfo + 28 >> 2] | 0, 4) | 0; + HEAP32[$cinfo + 112 >> 2] = $26; + $30 = _jdiv_round_up(HEAP32[$cinfo + 32 >> 2] | 0, 4) | 0; + HEAP32[$cinfo + 116 >> 2] = $30; + HEAP32[$cinfo + 316 >> 2] = 2; + $64 = 2; + break; + } + $36 = HEAP32[$cinfo + 28 >> 2] | 0; + if ($8 << 1 >>> 0 > $11 >>> 0) { + HEAP32[$cinfo + 112 >> 2] = $36; + HEAP32[$cinfo + 116 >> 2] = HEAP32[$cinfo + 32 >> 2]; + HEAP32[$cinfo + 316 >> 2] = 8; + $64 = 8; + break; + } else { + $37 = _jdiv_round_up($36, 2) | 0; + HEAP32[$cinfo + 112 >> 2] = $37; + $41 = _jdiv_round_up(HEAP32[$cinfo + 32 >> 2] | 0, 2) | 0; + HEAP32[$cinfo + 116 >> 2] = $41; + HEAP32[$cinfo + 316 >> 2] = 4; + $64 = 4; + break; + } + } else { + $15 = _jdiv_round_up(HEAP32[$cinfo + 28 >> 2] | 0, 8) | 0; + HEAP32[$cinfo + 112 >> 2] = $15; + $19 = _jdiv_round_up(HEAP32[$cinfo + 32 >> 2] | 0, 8) | 0; + HEAP32[$cinfo + 116 >> 2] = $19; + HEAP32[$cinfo + 316 >> 2] = 1; + $64 = 1; + } while (0); + $50 = HEAP32[$cinfo + 216 >> 2] | 0; + $51 = $cinfo + 36 | 0; + $52 = HEAP32[$51 >> 2] | 0; + $53 = $cinfo + 308 | 0; + $54 = $cinfo + 312 | 0; + if (($52 | 0) > 0) { + $ci$05 = 0; + $compptr$06 = $50; while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; + $56 = $compptr$06 + 8 | 0; + $57 = $compptr$06 + 12 | 0; + $ssize$0 = $64; + while (1) { + if (($ssize$0 | 0) >= 8) { + $ssize$0$lcssa = $ssize$0; + break; + } + $60 = $ssize$0 << 1; + $61 = Math_imul($60, HEAP32[$56 >> 2] | 0) | 0; + if (($61 | 0) > (Math_imul($64, HEAP32[$53 >> 2] | 0) | 0)) { + $ssize$0$lcssa = $ssize$0; + break; + } + $67 = Math_imul($60, HEAP32[$57 >> 2] | 0) | 0; + if (($67 | 0) > (Math_imul(HEAP32[$54 >> 2] | 0, $64) | 0)) { + $ssize$0$lcssa = $ssize$0; + break; + } else $ssize$0 = $60; } + HEAP32[$compptr$06 + 36 >> 2] = $ssize$0$lcssa; + $ci$05 = $ci$05 + 1 | 0; + if (($ci$05 | 0) >= ($52 | 0)) break; else $compptr$06 = $compptr$06 + 84 | 0; } } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + $75 = $cinfo + 28 | 0; + $76 = $cinfo + 32 | 0; + if (($52 | 0) > 0) { + $ci$13 = 0; + $compptr$14 = $50; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $81 = $compptr$14 + 36 | 0; + $84 = Math_imul(Math_imul(HEAP32[$compptr$14 + 8 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0, HEAP32[$81 >> 2] | 0) | 0; + $87 = _jdiv_round_up($84, HEAP32[$53 >> 2] << 3) | 0; + HEAP32[$compptr$14 + 40 >> 2] = $87; + $94 = Math_imul(Math_imul(HEAP32[$compptr$14 + 12 >> 2] | 0, HEAP32[$76 >> 2] | 0) | 0, HEAP32[$81 >> 2] | 0) | 0; + $97 = _jdiv_round_up($94, HEAP32[$54 >> 2] << 3) | 0; + HEAP32[$compptr$14 + 44 >> 2] = $97; + $ci$13 = $ci$13 + 1 | 0; + $$pre = HEAP32[$51 >> 2] | 0; + if (($ci$13 | 0) >= ($$pre | 0)) { + $$lcssa = $$pre; + break; + } else $compptr$14 = $compptr$14 + 84 | 0; + } + } else $$lcssa = $52; + switch (HEAP32[$cinfo + 44 >> 2] | 0) { + case 1: + { + HEAP32[$cinfo + 120 >> 2] = 1; + $111 = 1; + break; + } + case 3: + case 2: + { + HEAP32[$cinfo + 120 >> 2] = 3; + $111 = 3; + break; + } + case 5: + case 4: + { + HEAP32[$cinfo + 120 >> 2] = 4; + $111 = 4; + break; + } + default: + { + HEAP32[$cinfo + 120 >> 2] = $$lcssa; + $111 = $$lcssa; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 * 3 | 0) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($37 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $37; - $40 = ($37 << 16 >> 16) * 7 | 0; - $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; - $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; - $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $62 = $60 << 16 >> 16 > 0; - if ($56 << 16 >> 16 <= 0) { - if ($62) { - HEAP16[$pnt2$362 >> 1] = $60; - $162 = $61 * 7 | 0; - $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; - $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; - $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; - $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; - if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($182 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $182; - $185 = ($182 << 16 >> 16) * 7 | 0; - $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; - $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; - $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; - $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; - if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$199 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $202 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $202; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; - $207 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $202; - break; - } - } - if ($62) { - $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - if (($65 | 0) > ($68 | 0)) { - HEAP16[$pnt2$362 >> 1] = $68; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $85 = $68; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $85 = $68; - } else { - HEAP16[$pnt2$362 >> 1] = $65; - if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $85 = $65; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $85 = $65; - } - $87 = ($85 << 16 >> 16) * 7 | 0; - $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; - $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; - $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($103 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $56; - $143 = $57 * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; - $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; - if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($108 | 0) > ($111 | 0)) { - HEAP16[$pnt2$362 >> 1] = $111; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $128 = $111; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $128 = $111; - } else { - HEAP16[$pnt2$362 >> 1] = $108; - if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; + HEAP32[$cinfo + 124 >> 2] = (HEAP32[$cinfo + 84 >> 2] | 0) == 0 ? $111 : 1; + if (!(_use_merged_upsample($cinfo) | 0)) $$sink = 1; else $$sink = HEAP32[$54 >> 2] | 0; + HEAP32[$cinfo + 128 >> 2] = $$sink; + return; +} + +function _consume_data($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $$pre = 0, $1 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $34 = 0, $39 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $45 = 0, $48 = 0, $59 = 0, $76 = 0, $8 = 0, $MCU_col_num$022 = 0, $MCU_col_num$022$lcssa = 0, $blkn$018 = 0, $blkn$1$lcssa = 0, $blkn$113 = 0, $blkn$210 = 0, $buffer = 0, $buffer_ptr$012 = 0, $ci$029 = 0, $ci$119 = 0, $smax = 0, $xindex$011 = 0, $yindex$014 = 0, $yoffset$024 = 0, $yoffset$024$lcssa = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $buffer = sp; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + $2 = $cinfo + 328 | 0; + $3 = $cinfo + 4 | 0; + $4 = $cinfo + 148 | 0; + if ((HEAP32[$2 >> 2] | 0) > 0) { + $ci$029 = 0; + do { + $8 = HEAP32[$cinfo + 332 + ($ci$029 << 2) >> 2] | 0; + $18 = HEAP32[$8 + 12 >> 2] | 0; + $19 = Math_imul($18, HEAP32[$4 >> 2] | 0) | 0; + $20 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$3 >> 2] | 0) + 32 >> 2] & 31]($cinfo, HEAP32[$1 + 72 + (HEAP32[$8 + 4 >> 2] << 2) >> 2] | 0, $19, $18, 1) | 0; + HEAP32[$buffer + ($ci$029 << 2) >> 2] = $20; + $ci$029 = $ci$029 + 1 | 0; + } while (($ci$029 | 0) < (HEAP32[$2 >> 2] | 0)); + } + $25 = $1 + 24 | 0; + $26 = HEAP32[$25 >> 2] | 0; + $27 = $1 + 28 | 0; + $28 = $1 + 20 | 0; + $29 = $cinfo + 348 | 0; + $30 = $cinfo + 444 | 0; + $31 = $1 + 32 | 0; + L5 : do if (($26 | 0) < (HEAP32[$27 >> 2] | 0)) { + $yoffset$024 = $26; + L6 : while (1) { + $34 = HEAP32[$28 >> 2] | 0; + if ($34 >>> 0 < (HEAP32[$29 >> 2] | 0) >>> 0) { + $MCU_col_num$022 = $34; + do { + $$pre = HEAP32[$2 >> 2] | 0; + if (($$pre | 0) > 0) { + $blkn$018 = 0; + $ci$119 = 0; + while (1) { + $39 = HEAP32[$cinfo + 332 + ($ci$119 << 2) >> 2] | 0; + $41 = HEAP32[$39 + 52 >> 2] | 0; + $42 = Math_imul($41, $MCU_col_num$022) | 0; + $44 = HEAP32[$39 + 56 >> 2] | 0; + $45 = $buffer + ($ci$119 << 2) | 0; + $smax = ($41 | 0) > 0 ? $41 : 0; + if (($44 | 0) > 0) { + $48 = ($41 | 0) > 0; + $blkn$113 = $blkn$018; + $yindex$014 = 0; while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $128 = $108; + if ($48) { + $blkn$210 = $blkn$113; + $buffer_ptr$012 = (HEAP32[(HEAP32[$45 >> 2] | 0) + ($yindex$014 + $yoffset$024 << 2) >> 2] | 0) + ($42 << 7) | 0; + $xindex$011 = 0; + while (1) { + HEAP32[$1 + 32 + ($blkn$210 << 2) >> 2] = $buffer_ptr$012; + $xindex$011 = $xindex$011 + 1 | 0; + if (($xindex$011 | 0) >= ($41 | 0)) break; else { + $blkn$210 = $blkn$210 + 1 | 0; + $buffer_ptr$012 = $buffer_ptr$012 + 128 | 0; + } + } + } + $59 = $blkn$113 + $smax | 0; + $yindex$014 = $yindex$014 + 1 | 0; + if (($yindex$014 | 0) >= ($44 | 0)) { + $blkn$1$lcssa = $59; break; - } else $wk$342 = $wk$342 + 4 | 0; + } else $blkn$113 = $59; } - } else $128 = $108; + } else $blkn$1$lcssa = $blkn$018; + $ci$119 = $ci$119 + 1 | 0; + if (($ci$119 | 0) >= ($$pre | 0)) break; else $blkn$018 = $blkn$1$lcssa; } - $130 = ($128 << 16 >> 16) * 7 | 0; - $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; - $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; - $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $222 = $pnt$163 + 3 | 0; - $223 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $222; - $pnt2$3$lcssa = $223; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $222; - $pnt2$362 = $223; - $wk_max$157 = $wk_max$2; } - } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 4 >> 2] & 63]($cinfo, $31) | 0)) { + $MCU_col_num$022$lcssa = $MCU_col_num$022; + $yoffset$024$lcssa = $yoffset$024; + break L6; + } + $MCU_col_num$022 = $MCU_col_num$022 + 1 | 0; + } while ($MCU_col_num$022 >>> 0 < (HEAP32[$29 >> 2] | 0) >>> 0); } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 6 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + HEAP32[$28 >> 2] = 0; + $yoffset$024 = $yoffset$024 + 1 | 0; + if (($yoffset$024 | 0) >= (HEAP32[$27 >> 2] | 0)) { + label = 17; + break L5; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + HEAP32[$25 >> 2] = $yoffset$024$lcssa; + HEAP32[$28 >> 2] = $MCU_col_num$022$lcssa; + $$0 = 0; + } else label = 17; while (0); + do if ((label | 0) == 17) { + $76 = (HEAP32[$4 >> 2] | 0) + 1 | 0; + HEAP32[$4 >> 2] = $76; + if ($76 >>> 0 < (HEAP32[$cinfo + 320 >> 2] | 0) >>> 0) { + _start_iMCU_row27($cinfo); + $$0 = 3; + break; + } else { + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 436 >> 2] | 0) + 12 >> 2] & 255]($cinfo); + $$0 = 4; + break; + } } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision11PartialSortIfEET_PS1_ii($a, $n, $k) { + $a = $a | 0; + $n = $n | 0; + $k = $k | 0; + var $$lcssa = 0, $$lcssa18 = 0.0, $$lcssa27 = 0.0, $$lcssa28 = 0, $$lcssa29 = 0, $$lcssa30 = 0.0, $$lcssa31 = 0, $0 = 0, $12 = 0, $13 = 0, $17 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $35 = 0, $36 = 0, $38 = 0.0, $40 = 0, $41 = 0.0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0.0, $48 = 0, $54 = 0.0, $7 = 0, $i$0 = 0, $i$0$lcssa = 0, $i$0$ph = 0, $i$1 = 0, $i$1$lcssa = 0, $j$0$ph = 0, $j$1 = 0, $j$1$lcssa = 0, $j$2 = 0, $j$2$lcssa = 0, $l$019 = 0, $m$020 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if (($n | 0) <= 0) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31849) | 0, 31878) | 0, 34302) | 0, 53) | 0, 34309) | 0, 31985) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + if (($k | 0) <= 0) { + $24 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32004) | 0, 31878) | 0, 34302) | 0, 54) | 0, 34309) | 0, 32033) | 0; + $29 = __ZNKSt3__18ios_base6getlocEv($24 + (HEAP32[(HEAP32[$24 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $29; + $30 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $34 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$30 >> 2] | 0) + 28 >> 2] & 63]($30, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($24, $34) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($24) | 0; + _abort(); + } + $35 = $k + -1 | 0; + $36 = $a + ($35 << 2) | 0; + $38 = +HEAPF32[$36 >> 2]; + if (($n | 0) > 1) { + $43 = $38; + $l$019 = 0; + $m$020 = $n + -1 | 0; + while (1) { + $i$0$ph = $l$019; + $j$0$ph = $m$020; while (1) { - $231 = HEAP32[$wk$439 >> 2] | 0; - if (($231 | 0) == ($i$337 | 0)) { - $237 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $i$0 = $i$0$ph; + while (1) { + $40 = $a + ($i$0 << 2) | 0; + $41 = +HEAPF32[$40 >> 2]; + $44 = $i$0 + 1 | 0; + if ($41 < $43) $i$0 = $44; else { + $$lcssa = $40; + $$lcssa27 = $41; + $$lcssa28 = $44; + $i$0$lcssa = $i$0; + break; + } } - HEAP32[$wk$439 >> 2] = $237; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + $j$1 = $j$0$ph; + while (1) { + $45 = $a + ($j$1 << 2) | 0; + $46 = +HEAPF32[$45 >> 2]; + $48 = $j$1 + -1 | 0; + if ($43 < $46) $j$1 = $48; else { + $$lcssa29 = $45; + $$lcssa30 = $46; + $$lcssa31 = $48; + $j$1$lcssa = $j$1; + break; + } + } + if (($i$0$lcssa | 0) > ($j$1$lcssa | 0)) { + $i$1 = $i$0$lcssa; + $j$2 = $j$1$lcssa; } else { - $j$1$lcssa = $j$2; + HEAPF32[$$lcssa >> 2] = $$lcssa30; + HEAPF32[$$lcssa29 >> 2] = $$lcssa27; + $i$1 = $$lcssa28; + $j$2 = $$lcssa31; + } + if (($i$1 | 0) > ($j$2 | 0)) { + $i$1$lcssa = $i$1; + $j$2$lcssa = $j$2; break; + } else { + $i$0$ph = $i$1; + $j$0$ph = $j$2; } } + $l$019 = ($j$2$lcssa | 0) < ($35 | 0) ? $i$1$lcssa : $l$019; + $m$020 = ($i$1$lcssa | 0) < ($k | 0) ? $m$020 : $j$2$lcssa; + $54 = +HEAPF32[$36 >> 2]; + if (($l$019 | 0) >= ($m$020 | 0)) { + $$lcssa18 = $54; + break; + } else $43 = $54; } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $249 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + } else $$lcssa18 = $38; + STACKTOP = sp; + return +$$lcssa18; +} + +function _next_marker($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa$lcssa = 0, $$lcssa42 = 0, $$lcssa42$lcssa = 0, $$lcssa43 = 0, $$lcssa43$lcssa = 0, $$lcssa44 = 0, $$sink$in$be = 0, $$sink$in$ph = 0, $1 = 0, $15 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $37 = 0, $38 = 0, $40 = 0, $42 = 0, $5 = 0, $6 = 0, $bytes_in_buffer$0 = 0, $bytes_in_buffer$2 = 0, $bytes_in_buffer$2$in$be = 0, $bytes_in_buffer$2$in$ph = 0, $bytes_in_buffer$232 = 0, $bytes_in_buffer$234 = 0, $bytes_in_buffer$4 = 0, $bytes_in_buffer$5 = 0, $next_input_byte$0 = 0, $next_input_byte$2 = 0, $next_input_byte$233 = 0, $next_input_byte$235 = 0, $next_input_byte$4 = 0, $next_input_byte$5 = 0, label = 0; + $1 = HEAP32[$cinfo + 24 >> 2] | 0; + $3 = $1 + 4 | 0; + $5 = $1 + 12 | 0; + $6 = $cinfo + 440 | 0; + $bytes_in_buffer$0 = HEAP32[$3 >> 2] | 0; + $next_input_byte$0 = HEAP32[$1 >> 2] | 0; + L1 : while (1) { + if (!$bytes_in_buffer$0) { + if (!(FUNCTION_TABLE_ii[HEAP32[$5 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$533 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + $$sink$in$ph = HEAP32[$1 >> 2] | 0; + $bytes_in_buffer$2$in$ph = HEAP32[$3 >> 2] | 0; + } else { + $$sink$in$ph = $next_input_byte$0; + $bytes_in_buffer$2$in$ph = $bytes_in_buffer$0; + } + $bytes_in_buffer$232 = $bytes_in_buffer$2$in$ph + -1 | 0; + $next_input_byte$233 = $$sink$in$ph + 1 | 0; + if ((HEAP8[$$sink$in$ph >> 0] | 0) == -1) { + $bytes_in_buffer$4 = $bytes_in_buffer$232; + $next_input_byte$4 = $next_input_byte$233; + } else { + $bytes_in_buffer$234 = $bytes_in_buffer$232; + $next_input_byte$235 = $next_input_byte$233; + while (1) { + $15 = (HEAP32[$6 >> 2] | 0) + 24 | 0; + HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 1; + HEAP32[$1 >> 2] = $next_input_byte$235; + HEAP32[$3 >> 2] = $bytes_in_buffer$234; + if (!$bytes_in_buffer$234) { + if (!(FUNCTION_TABLE_ii[HEAP32[$5 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $$sink$in$be = HEAP32[$1 >> 2] | 0; + $bytes_in_buffer$2$in$be = HEAP32[$3 >> 2] | 0; + } else { + $$sink$in$be = $next_input_byte$235; + $bytes_in_buffer$2$in$be = $bytes_in_buffer$234; + } + $bytes_in_buffer$2 = $bytes_in_buffer$2$in$be + -1 | 0; + $next_input_byte$2 = $$sink$in$be + 1 | 0; + if ((HEAP8[$$sink$in$be >> 0] | 0) == -1) { + $bytes_in_buffer$4 = $bytes_in_buffer$2; + $next_input_byte$4 = $next_input_byte$2; + break; + } else { + $bytes_in_buffer$234 = $bytes_in_buffer$2; + $next_input_byte$235 = $next_input_byte$2; + } + } + } + while (1) { + if (!$bytes_in_buffer$4) { + if (!(FUNCTION_TABLE_ii[HEAP32[$5 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L1; + } + $bytes_in_buffer$5 = HEAP32[$3 >> 2] | 0; + $next_input_byte$5 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$5 = $bytes_in_buffer$4; + $next_input_byte$5 = $next_input_byte$4; + } + $31 = $bytes_in_buffer$5 + -1 | 0; + $32 = $next_input_byte$5 + 1 | 0; + $33 = HEAP8[$next_input_byte$5 >> 0] | 0; + if ($33 << 24 >> 24 == -1) { + $bytes_in_buffer$4 = $31; + $next_input_byte$4 = $32; + } else { + $$lcssa = $31; + $$lcssa42 = $32; + $$lcssa43 = $33; + break; } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $316 = $labelInfo + 12 + ($i$632 << 2) | 0; - $319 = $i$632 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } + $37 = (HEAP32[$6 >> 2] | 0) + 24 | 0; + $38 = HEAP32[$37 >> 2] | 0; + if ($$lcssa43 << 24 >> 24) { + $$lcssa$lcssa = $$lcssa; + $$lcssa42$lcssa = $$lcssa42; + $$lcssa43$lcssa = $$lcssa43; + $$lcssa44 = $38; + label = 16; + break; + } + HEAP32[$37 >> 2] = $38 + 2; + HEAP32[$1 >> 2] = $$lcssa42; + HEAP32[$3 >> 2] = $$lcssa; + $bytes_in_buffer$0 = $$lcssa; + $next_input_byte$0 = $$lcssa42; + } + if ((label | 0) == 16) { + $40 = $$lcssa43$lcssa & 255; + if ($$lcssa44) { + $42 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$42 + 20 >> 2] = 116; + HEAP32[$42 + 24 >> 2] = $$lcssa44; + HEAP32[$42 + 28 >> 2] = $40; + FUNCTION_TABLE_vii[HEAP32[$42 + 4 >> 2] & 63]($cinfo, -1); + HEAP32[(HEAP32[$6 >> 2] | 0) + 24 >> 2] = 0; + } + HEAP32[$cinfo + 416 >> 2] = $40; + HEAP32[$1 >> 2] = $$lcssa42$lcssa; + HEAP32[$3 >> 2] = $$lcssa$lcssa; + $$0 = 1; } - STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryERNSt3__114priority_queueINS_17PriorityQueueItemILi96EEENS2_6vectorIS5_NS2_9allocatorIS5_EEEENS2_4lessIS5_EEEEPKNS_4NodeILi96EEEPKh($this, $queue, $node, $feature) { + $this = $this | 0; + $queue = $queue | 0; + $node = $node | 0; + $feature = $feature | 0; + var $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $0 = 0, $1 = 0, $18 = 0, $2 = 0, $21 = 0, $24 = 0, $3 = 0, $34 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $43 = 0, $45 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $52 = 0, $55 = 0, $56 = 0, $6 = 0, $61 = 0, $62 = 0, $66 = 0, $73 = 0, $i$01 = 0, $nodes = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 64 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $$byval_copy5 = sp + 48 | 0; + $$byval_copy4 = sp + 44 | 0; + $$byval_copy3 = sp + 40 | 0; + $0 = sp + 36 | 0; + $1 = sp + 32 | 0; + $2 = sp + 20 | 0; + $3 = sp; + $4 = sp + 28 | 0; + $5 = sp + 24 | 0; + $6 = sp + 16 | 0; + $nodes = sp + 4 | 0; + if (!(HEAP8[$node + 100 >> 0] | 0)) { + HEAP32[$nodes >> 2] = 0; + $18 = $nodes + 4 | 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$nodes + 8 >> 2] = 0; + __ZNK6vision4NodeILi96EE7nearestERNSt3__16vectorIPKS1_NS2_9allocatorIS5_EEEERNS2_14priority_queueINS_17PriorityQueueItemILi96EEENS3_ISC_NS6_ISC_EEEENS2_4lessISC_EEEEPKh($node, $nodes, $queue, $feature); + $21 = HEAP32[$nodes >> 2] | 0; + if ((HEAP32[$18 >> 2] | 0) != ($21 | 0)) { + $24 = $21; + $i$01 = 0; + do { + __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryERNSt3__114priority_queueINS_17PriorityQueueItemILi96EEENS2_6vectorIS5_NS2_9allocatorIS5_EEEENS2_4lessIS5_EEEEPKNS_4NodeILi96EEEPKh($this, $queue, HEAP32[$24 + ($i$01 << 2) >> 2] | 0, $feature); + $i$01 = $i$01 + 1 | 0; + $24 = HEAP32[$nodes >> 2] | 0; + } while ($i$01 >>> 0 < (HEAP32[$18 >> 2] | 0) - $24 >> 2 >>> 0); + } + $34 = $this + 100 | 0; + if ((HEAP32[$34 >> 2] | 0) < (HEAP32[$this + 104 >> 2] | 0)) { + $39 = HEAP32[$queue >> 2] | 0; + $40 = $queue + 4 | 0; + $41 = HEAP32[$40 >> 2] | 0; + if (($39 | 0) != ($41 | 0)) { + $43 = HEAP32[$39 >> 2] | 0; + $45 = $39; + $46 = $41 - $45 | 0; + if (($46 | 0) > 8) { + $49 = $41 + -8 | 0; + $50 = $39; + $52 = HEAP32[$50 >> 2] | 0; + $55 = HEAP32[$50 + 4 >> 2] | 0; + $56 = $49; + $61 = HEAP32[$56 + 4 >> 2] | 0; + $62 = $39; + HEAP32[$62 >> 2] = HEAP32[$56 >> 2]; + HEAP32[$62 + 4 >> 2] = $61; + $66 = $49; + HEAP32[$66 >> 2] = $52; + HEAP32[$66 + 4 >> 2] = $55; + HEAP32[$0 >> 2] = $45; + HEAP32[$1 >> 2] = $49; + HEAP32[$2 >> 2] = $45; + HEAP32[$$byval_copy3 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy4 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy5 >> 2] = HEAP32[$2 >> 2]; + __ZNSt3__111__sift_downIRNS_4lessIN6vision17PriorityQueueItemILi96EEEEENS_11__wrap_iterIPS4_EEEEvT0_SA_T_NS_15iterator_traitsISA_E15difference_typeESA_($$byval_copy3, $$byval_copy4, $3, ($46 >> 3) + -1 | 0, $$byval_copy5); + $73 = HEAP32[$40 >> 2] | 0; + } else $73 = $41; + HEAP32[$40 >> 2] = $73 + -8; + HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1; + __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryERNSt3__114priority_queueINS_17PriorityQueueItemILi96EEENS2_6vectorIS5_NS2_9allocatorIS5_EEEENS2_4lessIS5_EEEEPKNS_4NodeILi96EEEPKh($this, $queue, $43, $feature); + } + } + __ZNSt3__113__vector_baseIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEED2Ev($nodes); + } else { + HEAP32[$4 >> 2] = HEAP32[$this + 76 >> 2]; + HEAP32[$5 >> 2] = HEAP32[$node + 116 >> 2]; + HEAP32[$6 >> 2] = HEAP32[$node + 120 >> 2]; + HEAP32[$$byval_copy3 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$$byval_copy4 >> 2] = HEAP32[$5 >> 2]; + HEAP32[$$byval_copy5 >> 2] = HEAP32[$6 >> 2]; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6insertINS_11__wrap_iterIPKiEEEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsISA_E9referenceEEE5valueENS5_IPiEEE4typeES8_SA_SA_($this + 72 | 0, $$byval_copy3, $$byval_copy4, $$byval_copy5) | 0; + } + STACKTOP = sp; + return; +} + +function __ZN6vision16FindHoughMatchesERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEERKNS_21HoughSimilarityVotingERKS5_if($out_matches, $hough, $in_matches, $binIndex, $binDelta) { + $out_matches = $out_matches | 0; + $hough = $hough | 0; + $in_matches = $in_matches | 0; + $binIndex = $binIndex | 0; + $binDelta = +$binDelta; + var $$lcssa = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $2 = 0, $26 = 0.0, $30 = 0.0, $34 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $48 = 0, $5 = 0, $53 = 0, $54 = 0, $58 = 0, $78 = 0, $79 = 0, $82 = 0, $87 = 0, $88 = 0, $9 = 0, $bin_angle = 0, $bin_scale = 0, $bin_x = 0, $bin_y = 0, $dangle = 0, $dscale = 0, $dx = 0, $dy = 0, $i$06 = 0, $vote_loc$07 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 32 | 0; + $dx = sp + 28 | 0; + $dy = sp + 24 | 0; + $dangle = sp + 20 | 0; + $dscale = sp + 16 | 0; + $bin_x = sp + 12 | 0; + $bin_y = sp + 8 | 0; + $bin_angle = sp + 4 | 0; + $bin_scale = sp; + __ZNK6vision21HoughSimilarityVoting16getBinsFromIndexERiS1_S1_S1_i($hough, $bin_x, $bin_y, $bin_angle, $bin_scale, $binIndex); + $1 = HEAP32[$out_matches >> 2] | 0; + $2 = $out_matches + 4 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + $9 = $hough + 124 | 0; + $13 = (HEAP32[$hough + 128 >> 2] | 0) - (HEAP32[$9 >> 2] | 0) | 0; + $14 = $13 >> 2; + if ($14 >>> 0 > (HEAP32[$in_matches + 4 >> 2] | 0) - (HEAP32[$in_matches >> 2] | 0) >> 3 >>> 0) { + $48 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29346) | 0, 29392) | 0, 34302) | 0, 342) | 0, 34309) | 0, 29505) | 0; + $53 = __ZNKSt3__18ios_base6getlocEv($48 + (HEAP32[(HEAP32[$48 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $53; + $54 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $58 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$54 >> 2] | 0) + 28 >> 2] & 63]($54, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($48, $58) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($48) | 0; + _abort(); + } + $26 = +(HEAP32[$bin_x >> 2] | 0) + .5; + $30 = +(HEAP32[$bin_y >> 2] | 0) + .5; + $34 = +(HEAP32[$bin_angle >> 2] | 0) + .5; + $38 = +(HEAP32[$bin_scale >> 2] | 0) + .5; + $39 = $out_matches + 8 | 0; + if (($13 | 0) > 0) { + $i$06 = 0; + $vote_loc$07 = HEAP32[$hough + 112 >> 2] | 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + __ZNK6vision21HoughSimilarityVoting14getBinDistanceERfS1_S1_S1_ffffffff($hough, $dx, $dy, $dangle, $dscale, +HEAPF32[$vote_loc$07 >> 2], +HEAPF32[$vote_loc$07 + 4 >> 2], +HEAPF32[$vote_loc$07 + 8 >> 2], +HEAPF32[$vote_loc$07 + 12 >> 2], $26, $30, $34, $38); + do if ((+HEAPF32[$dx >> 2] < $binDelta ? +HEAPF32[$dy >> 2] < $binDelta : 0) & +HEAPF32[$dangle >> 2] < $binDelta & +HEAPF32[$dscale >> 2] < $binDelta) { + $78 = (HEAP32[$in_matches >> 2] | 0) + (HEAP32[(HEAP32[$9 >> 2] | 0) + ($i$06 << 2) >> 2] << 3) | 0; + $79 = HEAP32[$2 >> 2] | 0; + if (($79 | 0) == (HEAP32[$39 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($out_matches, $78); + break; + } else { + $82 = $78; + $87 = HEAP32[$82 + 4 >> 2] | 0; + $88 = $79; + HEAP32[$88 >> 2] = HEAP32[$82 >> 2]; + HEAP32[$88 + 4 >> 2] = $87; + HEAP32[$2 >> 2] = (HEAP32[$2 >> 2] | 0) + 8; + break; + } + } while (0); + $i$06 = $i$06 + 1 | 0; + if (($i$06 | 0) >= ($14 | 0)) break; else $vote_loc$07 = $vote_loc$07 + 16 | 0; } } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 * 3 | 0) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($37 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $37; - $40 = ($37 << 16 >> 16) * 7 | 0; - $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; - $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; - $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + STACKTOP = sp; + return; +} + +function _start_pass($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $10 = 0, $11 = 0, $14 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0, $3 = 0, $36 = 0, $45 = 0, $49 = 0, $51 = 0.0, $65 = 0, $9 = 0, $ci$019 = 0, $col$011 = 0, $compptr$018 = 0, $i$015 = 0, $i$114 = 0, $i$212 = 0, $i$310 = 0, $method$017 = 0, $method$1 = 0, $method_ptr$016 = 0, $method_ptr$1 = 0, $row$013 = 0; + $1 = HEAP32[$cinfo + 448 >> 2] | 0; + $2 = $cinfo + 36 | 0; + $3 = $cinfo + 72 | 0; + L1 : do if ((HEAP32[$2 >> 2] | 0) > 0) { + $ci$019 = 0; + $compptr$018 = HEAP32[$cinfo + 216 >> 2] | 0; + $method$017 = 0; + $method_ptr$016 = 0; + while (1) { + $9 = HEAP32[$compptr$018 + 36 >> 2] | 0; + L5 : do switch ($9 | 0) { + case 1: + { + $method$1 = 0; + $method_ptr$1 = 11; + break; + } + case 2: + { + $method$1 = 0; + $method_ptr$1 = 12; + break; + } + case 4: + { + $method$1 = 0; + $method_ptr$1 = 13; + break; + } + case 8: + { + $10 = HEAP32[$3 >> 2] | 0; + switch ($10 | 0) { + case 0: + { + $method$1 = 0; + $method_ptr$1 = 14; + break L5; break; } - $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $62 = $60 << 16 >> 16 > 0; - if ($56 << 16 >> 16 <= 0) { - if ($62) { - HEAP16[$pnt2$362 >> 1] = $60; - $162 = $61 * 7 | 0; - $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; - $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; - $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; - $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; - if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($182 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $182; - $185 = ($182 << 16 >> 16) * 7 | 0; - $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; - $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; - $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; - $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; - if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$199 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $202 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $202; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; - $207 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $202; - break; - } - } - if ($62) { - $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - if (($65 | 0) > ($68 | 0)) { - HEAP16[$pnt2$362 >> 1] = $68; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $85 = $68; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $85 = $68; - } else { - HEAP16[$pnt2$362 >> 1] = $65; - if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $85 = $65; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $85 = $65; - } - $87 = ($85 << 16 >> 16) * 7 | 0; - $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; - $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; - $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + case 1: + { + $method$1 = $10; + $method_ptr$1 = 15; + break L5; break; } - $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($103 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $56; - $143 = $57 * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; - $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; - if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + case 2: + { + $method$1 = $10; + $method_ptr$1 = 16; + break L5; break; } - $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($108 | 0) > ($111 | 0)) { - HEAP16[$pnt2$362 >> 1] = $111; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $128 = $111; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $128 = $111; - } else { - HEAP16[$pnt2$362 >> 1] = $108; - if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $128 = $108; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $128 = $108; + default: + { + $11 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$11 + 20 >> 2] = 48; + FUNCTION_TABLE_vi[HEAP32[$11 >> 2] & 255]($cinfo); + $method$1 = $method$017; + $method_ptr$1 = $method_ptr$016; + break L5; } - $130 = ($128 << 16 >> 16) * 7 | 0; - $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; - $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; - $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $222 = $pnt$163 + 3 | 0; - $223 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $222; - $pnt2$3$lcssa = $223; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $222; - $pnt2$362 = $223; - $wk_max$157 = $wk_max$2; } + break; } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 6 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; - } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; - while (1) { - $231 = HEAP32[$wk$439 >> 2] | 0; - if (($231 | 0) == ($i$337 | 0)) { - $237 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + default: + { + $14 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$14 + 20 >> 2] = 7; + HEAP32[$14 + 24 >> 2] = $9; + FUNCTION_TABLE_vi[HEAP32[$14 >> 2] & 255]($cinfo); + $method$1 = $method$017; + $method_ptr$1 = $method_ptr$016; } - HEAP32[$wk$439 >> 2] = $237; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + } while (0); + HEAP32[$1 + 4 + ($ci$019 << 2) >> 2] = $method_ptr$1; + L15 : do if (HEAP32[$compptr$018 + 48 >> 2] | 0) { + $22 = $1 + 44 + ($ci$019 << 2) | 0; + if ((HEAP32[$22 >> 2] | 0) != ($method$1 | 0)) { + $26 = HEAP32[$compptr$018 + 76 >> 2] | 0; + if ($26) { + HEAP32[$22 >> 2] = $method$1; + switch ($method$1 | 0) { + case 0: + { + $29 = HEAP32[$compptr$018 + 80 >> 2] | 0; + $i$015 = 0; + do { + HEAP32[$29 + ($i$015 << 2) >> 2] = HEAPU16[$26 + ($i$015 << 1) >> 1]; + $i$015 = $i$015 + 1 | 0; + } while (($i$015 | 0) != 64); + break; + } + case 1: + { + $36 = HEAP32[$compptr$018 + 80 >> 2] | 0; + $i$114 = 0; + do { + $45 = (Math_imul(HEAP16[17196 + ($i$114 << 1) >> 1] | 0, HEAPU16[$26 + ($i$114 << 1) >> 1] | 0) | 0) + 2048 >> 12; + HEAP32[$36 + ($i$114 << 2) >> 2] = $45; + $i$114 = $i$114 + 1 | 0; + } while (($i$114 | 0) != 64); + break; + } + case 2: + { + $49 = HEAP32[$compptr$018 + 80 >> 2] | 0; + $i$212 = 0; + $row$013 = 0; + while (1) { + $51 = +HEAPF64[104 + ($row$013 << 3) >> 3]; + $col$011 = 0; + $i$310 = $i$212; + while (1) { + HEAPF32[$49 + ($i$310 << 2) >> 2] = +(HEAPU16[$26 + ($i$310 << 1) >> 1] | 0) * $51 * +HEAPF64[104 + ($col$011 << 3) >> 3]; + $col$011 = $col$011 + 1 | 0; + if (($col$011 | 0) == 8) break; else $i$310 = $i$310 + 1 | 0; + } + $row$013 = $row$013 + 1 | 0; + if (($row$013 | 0) == 8) break; else $i$212 = $i$212 + 8 | 0; + } + break; + } + default: + { + $65 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$65 + 20 >> 2] = 48; + FUNCTION_TABLE_vi[HEAP32[$65 >> 2] & 255]($cinfo); + break L15; + } + } + } } + } while (0); + $ci$019 = $ci$019 + 1 | 0; + if (($ci$019 | 0) >= (HEAP32[$2 >> 2] | 0)) break L1; else { + $compptr$018 = $compptr$018 + 84 | 0; + $method$017 = $method$1; + $method_ptr$016 = $method_ptr$1; } } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $249 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$533 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + } while (0); + return; +} + +function _h2v2_merged_upsample($cinfo, $input_buf, $in_row_group_ctr, $output_buf) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $output_buf = $output_buf | 0; + var $1 = 0, $11 = 0, $118 = 0, $12 = 0, $120 = 0, $122 = 0, $128 = 0, $13 = 0, $130 = 0, $132 = 0, $145 = 0, $15 = 0, $18 = 0, $22 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $38 = 0, $41 = 0, $43 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $69 = 0, $7 = 0, $84 = 0, $9 = 0, $99 = 0, $col$014 = 0, $inptr00$010 = 0, $inptr01$011 = 0, $inptr1$012 = 0, $inptr2$013 = 0, $outptr0$08 = 0, $outptr1$09 = 0, $scevgep = 0, $scevgep2 = 0, $scevgep4 = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + $3 = HEAP32[$cinfo + 324 >> 2] | 0; + $5 = HEAP32[$1 + 16 >> 2] | 0; + $7 = HEAP32[$1 + 20 >> 2] | 0; + $9 = HEAP32[$1 + 24 >> 2] | 0; + $11 = HEAP32[$1 + 28 >> 2] | 0; + $12 = $in_row_group_ctr << 1; + $13 = HEAP32[$input_buf >> 2] | 0; + $15 = HEAP32[$13 + ($12 << 2) >> 2] | 0; + $18 = HEAP32[$13 + (($12 | 1) << 2) >> 2] | 0; + $22 = HEAP32[(HEAP32[$input_buf + 4 >> 2] | 0) + ($in_row_group_ctr << 2) >> 2] | 0; + $26 = HEAP32[(HEAP32[$input_buf + 8 >> 2] | 0) + ($in_row_group_ctr << 2) >> 2] | 0; + $27 = HEAP32[$output_buf >> 2] | 0; + $29 = HEAP32[$output_buf + 4 >> 2] | 0; + $30 = $cinfo + 112 | 0; + $32 = (HEAP32[$30 >> 2] | 0) >>> 1; + $scevgep = $26 + $32 | 0; + $33 = $32 << 1; + $scevgep2 = $18 + $33 | 0; + $34 = $32 * 6 | 0; + $scevgep4 = $29 + $34 | 0; + if ($32) { + $col$014 = $32; + $inptr00$010 = $15; + $inptr01$011 = $18; + $inptr1$012 = $22; + $inptr2$013 = $26; + $outptr0$08 = $27; + $outptr1$09 = $29; + while (1) { + $38 = HEAPU8[$inptr1$012 >> 0] | 0; + $41 = HEAPU8[$inptr2$013 >> 0] | 0; + $43 = HEAP32[$5 + ($41 << 2) >> 2] | 0; + $49 = (HEAP32[$9 + ($41 << 2) >> 2] | 0) + (HEAP32[$11 + ($38 << 2) >> 2] | 0) >> 16; + $51 = HEAP32[$7 + ($38 << 2) >> 2] | 0; + $54 = HEAPU8[$inptr00$010 >> 0] | 0; + HEAP8[$outptr0$08 >> 0] = HEAP8[$3 + ($54 + $43) >> 0] | 0; + HEAP8[$outptr0$08 + 1 >> 0] = HEAP8[$3 + ($54 + $49) >> 0] | 0; + HEAP8[$outptr0$08 + 2 >> 0] = HEAP8[$3 + ($54 + $51) >> 0] | 0; + $69 = HEAPU8[$inptr00$010 + 1 >> 0] | 0; + HEAP8[$outptr0$08 + 3 >> 0] = HEAP8[$3 + ($69 + $43) >> 0] | 0; + HEAP8[$outptr0$08 + 4 >> 0] = HEAP8[$3 + ($69 + $49) >> 0] | 0; + HEAP8[$outptr0$08 + 5 >> 0] = HEAP8[$3 + ($69 + $51) >> 0] | 0; + $84 = HEAPU8[$inptr01$011 >> 0] | 0; + HEAP8[$outptr1$09 >> 0] = HEAP8[$3 + ($84 + $43) >> 0] | 0; + HEAP8[$outptr1$09 + 1 >> 0] = HEAP8[$3 + ($84 + $49) >> 0] | 0; + HEAP8[$outptr1$09 + 2 >> 0] = HEAP8[$3 + ($84 + $51) >> 0] | 0; + $99 = HEAPU8[$inptr01$011 + 1 >> 0] | 0; + HEAP8[$outptr1$09 + 3 >> 0] = HEAP8[$3 + ($99 + $43) >> 0] | 0; + HEAP8[$outptr1$09 + 4 >> 0] = HEAP8[$3 + ($99 + $49) >> 0] | 0; + HEAP8[$outptr1$09 + 5 >> 0] = HEAP8[$3 + ($99 + $51) >> 0] | 0; + $col$014 = $col$014 + -1 | 0; + if (!$col$014) break; else { + $inptr00$010 = $inptr00$010 + 2 | 0; + $inptr01$011 = $inptr01$011 + 2 | 0; + $inptr1$012 = $inptr1$012 + 1 | 0; + $inptr2$013 = $inptr2$013 + 1 | 0; + $outptr0$08 = $outptr0$08 + 6 | 0; + $outptr1$09 = $outptr1$09 + 6 | 0; } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $316 = $labelInfo + 12 + ($i$632 << 2) | 0; - $319 = $i$632 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } } - STACKTOP = sp; - return $$0 | 0; + if (HEAP32[$30 >> 2] & 1) { + $118 = HEAPU8[$22 + $32 >> 0] | 0; + $120 = HEAPU8[$scevgep >> 0] | 0; + $122 = HEAP32[$5 + ($120 << 2) >> 2] | 0; + $128 = (HEAP32[$9 + ($120 << 2) >> 2] | 0) + (HEAP32[$11 + ($118 << 2) >> 2] | 0) >> 16; + $130 = HEAP32[$7 + ($118 << 2) >> 2] | 0; + $132 = HEAPU8[$15 + $33 >> 0] | 0; + HEAP8[$27 + $34 >> 0] = HEAP8[$3 + ($132 + $122) >> 0] | 0; + HEAP8[$27 + ($34 | 1) >> 0] = HEAP8[$3 + ($132 + $128) >> 0] | 0; + HEAP8[$27 + ($34 + 2) >> 0] = HEAP8[$3 + ($132 + $130) >> 0] | 0; + $145 = HEAPU8[$scevgep2 >> 0] | 0; + HEAP8[$scevgep4 >> 0] = HEAP8[$3 + ($145 + $122) >> 0] | 0; + HEAP8[$29 + ($34 | 1) >> 0] = HEAP8[$3 + ($145 + $128) >> 0] | 0; + HEAP8[$29 + ($34 + 2) >> 0] = HEAP8[$3 + ($145 + $130) >> 0] | 0; + } + return; } -function _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { +function _arGetMarkerInfo($image, $xsize, $ysize, $pixelFormat, $markerInfo2, $marker2_num, $pattHandle, $imageProcMode, $pattDetectMode, $arParamLTf, $pattRatio, $markerInfo, $marker_num, $matrixCodeType) { $image = $image | 0; $xsize = $xsize | 0; $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; + $pixelFormat = $pixelFormat | 0; + $markerInfo2 = $markerInfo2 | 0; + $marker2_num = $marker2_num | 0; + $pattHandle = $pattHandle | 0; + $imageProcMode = $imageProcMode | 0; + $pattDetectMode = $pattDetectMode | 0; + $arParamLTf = $arParamLTf | 0; + $pattRatio = +$pattRatio; + $markerInfo = $markerInfo | 0; + $marker_num = $marker_num | 0; + $matrixCodeType = $matrixCodeType | 0; + var $0 = 0, $1 = 0, $26 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $i$03 = 0, $j$0$lcssa = 0, $j$02 = 0, $j$1 = 0, $pos0 = 0, $pos1 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } - } - } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; + $pos0 = sp + 4 | 0; + $pos1 = sp; + $0 = $pattDetectMode >>> 0 < 2; + $1 = ($pattDetectMode | 0) == 2; + if (($marker2_num | 0) > 0) { + $i$03 = 0; + $j$02 = 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } - } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 2) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($37 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $37; - $40 = ($37 << 16 >> 16) * 7 | 0; - $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; - $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; - $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + HEAP32[$markerInfo + ($j$02 << 8) >> 2] = HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) >> 2]; + if ((_arParamObserv2IdealLTf($arParamLTf, +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 8 >> 3], +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 16 >> 3], $pos0, $pos1) | 0) < 0) $j$1 = $j$02; else { + HEAPF64[$markerInfo + ($j$02 << 8) + 56 >> 3] = +HEAPF32[$pos0 >> 2]; + HEAPF64[$markerInfo + ($j$02 << 8) + 64 >> 3] = +HEAPF32[$pos1 >> 2]; + $26 = $markerInfo + ($j$02 << 8) + 168 | 0; + if ((_arGetLine($markerInfo2 + ($i$03 * 80048 | 0) + 28 | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 40028 | 0, HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) + 24 >> 2] | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 80028 | 0, $arParamLTf, $markerInfo + ($j$02 << 8) + 72 | 0, $26) | 0) < 0) $j$1 = $j$02; else { + $29 = $markerInfo + ($j$02 << 8) + 8 | 0; + $30 = $markerInfo + ($j$02 << 8) + 20 | 0; + $31 = $markerInfo + ($j$02 << 8) + 40 | 0; + $32 = $markerInfo + ($j$02 << 8) + 12 | 0; + $33 = $markerInfo + ($j$02 << 8) + 24 | 0; + $34 = $markerInfo + ($j$02 << 8) + 48 | 0; + switch (_arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $arParamLTf, $26, $pattRatio, $29, $30, $31, $32, $33, $34, $matrixCodeType, $markerInfo + ($j$02 << 8) + 240 | 0, $markerInfo + ($j$02 << 8) + 248 | 0) | 0) { + case 0: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 0; break; } - $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $62 = $60 << 16 >> 16 > 0; - if ($56 << 16 >> 16 <= 0) { - if ($62) { - HEAP16[$pnt2$362 >> 1] = $60; - $162 = $61 * 7 | 0; - $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; - $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; - $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; - $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; - if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($182 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $182; - $185 = ($182 << 16 >> 16) * 7 | 0; - $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; - $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; - $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; - $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; - if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$199 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $202 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $202; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; - $207 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $202; - break; - } + case -1: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 2; + break; } - if ($62) { - $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - if (($65 | 0) > ($68 | 0)) { - HEAP16[$pnt2$362 >> 1] = $68; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $85 = $68; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $85 = $68; - } else { - HEAP16[$pnt2$362 >> 1] = $65; - if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $85 = $65; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $85 = $65; - } - $87 = ($85 << 16 >> 16) * 7 | 0; - $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; - $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; - $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + case -2: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 3; break; } - $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($103 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $56; - $143 = $57 * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; - $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; - if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; + case -3: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 4; break; } - $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($108 | 0) > ($111 | 0)) { - HEAP16[$pnt2$362 >> 1] = $111; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $128 = $111; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $128 = $111; + case -4: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 5; + break; + } + case -5: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 9; + break; + } + case -6: + { + HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 1; + break; + } + default: + {} + } + if ($0) { + HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$29 >> 2]; + HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$30 >> 2]; + HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$31 >> 3]; + } else if ($1) { + HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$32 >> 2]; + HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$33 >> 2]; + HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$34 >> 3]; + } + $j$1 = $j$02 + 1 | 0; + } + } + $i$03 = $i$03 + 1 | 0; + if (($i$03 | 0) >= ($marker2_num | 0)) { + $j$0$lcssa = $j$1; + break; + } else $j$02 = $j$1; + } + } else $j$0$lcssa = 0; + HEAP32[$marker_num >> 2] = $j$0$lcssa; + STACKTOP = sp; + return 0; +} + +function _arImageProcLumaHistAndBoxFilterWithBias($ipi, $dataPtr, $boxSize, $bias) { + $ipi = $ipi | 0; + $dataPtr = $dataPtr | 0; + $boxSize = $boxSize | 0; + $bias = $bias | 0; + var $$0 = 0, $$lcssa = 0, $$pre$phi6Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $43 = 0, $5 = 0, $50 = 0, $57 = 0, $7 = 0, $count$0$lcssa = 0, $count$015 = 0, $count$110 = 0, $count$2 = 0, $count$3 = 0, $i$020 = 0, $i$18 = 0, $j$021 = 0, $kernel_i$011 = 0, $kernel_j$016 = 0, $val$0$lcssa = 0, $val$014 = 0, $val$19 = 0, $val$2 = 0, $val$3 = 0; + $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; + do if (($0 | 0) < 0) $$0 = $0; else { + $2 = $ipi + 4 | 0; + if (!(HEAP32[$2 >> 2] | 0)) { + $5 = $ipi + 8 | 0; + $7 = $ipi + 12 | 0; + $10 = _malloc(Math_imul(HEAP32[$7 >> 2] | 0, HEAP32[$5 >> 2] | 0) | 0) | 0; + HEAP32[$2 >> 2] = $10; + if (!$10) { + $$0 = -1; + break; + } else { + $$pre$phi6Z2D = $5; + $$pre$phiZ2D = $7; + } + } else { + $$pre$phi6Z2D = $ipi + 8 | 0; + $$pre$phiZ2D = $ipi + 12 | 0; + } + $12 = $boxSize >> 1; + $13 = 0 - $12 | 0; + $14 = HEAP32[$$pre$phiZ2D >> 2] | 0; + if (($14 | 0) > 0) { + $16 = ($12 | 0) < ($13 | 0); + $17 = ($12 | 0) < ($13 | 0); + $j$021 = 0; + do { + $18 = HEAP32[$$pre$phi6Z2D >> 2] | 0; + if (($18 | 0) > 0) { + $25 = $18; + $i$020 = 0; + do { + if ($16) { + $count$0$lcssa = 0; + $val$0$lcssa = 0; } else { - HEAP16[$pnt2$362 >> 1] = $108; - if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $128 = $108; - break; - } else $wk$342 = $wk$342 + 4 | 0; + $count$015 = 0; + $kernel_j$016 = $13; + $val$014 = 0; + while (1) { + $20 = $kernel_j$016 + $j$021 | 0; + if (($20 | 0) < 0) { + $count$3 = $count$015; + $val$3 = $val$014; + } else if (($20 | 0) < (HEAP32[$$pre$phiZ2D >> 2] | 0)) { + $24 = Math_imul($25, $20) | 0; + if ($17) { + $count$3 = $count$015; + $val$3 = $val$014; + } else { + $count$110 = $count$015; + $kernel_i$011 = $13; + $val$19 = $val$014; + while (1) { + $26 = $kernel_i$011 + $i$020 | 0; + if (($26 | 0) > -1 & ($26 | 0) < ($25 | 0)) { + $count$2 = $count$110 + 1 | 0; + $val$2 = (HEAPU8[(HEAP32[$ipi >> 2] | 0) + ($24 + $26) >> 0] | 0) + $val$19 | 0; + } else { + $count$2 = $count$110; + $val$2 = $val$19; + } + if (($kernel_i$011 | 0) < ($12 | 0)) { + $count$110 = $count$2; + $kernel_i$011 = $kernel_i$011 + 1 | 0; + $val$19 = $val$2; + } else { + $count$3 = $count$2; + $val$3 = $val$2; + break; + } + } + } + } else { + $count$3 = $count$015; + $val$3 = $val$014; } - } else $128 = $108; + if (($kernel_j$016 | 0) < ($12 | 0)) { + $count$015 = $count$3; + $kernel_j$016 = $kernel_j$016 + 1 | 0; + $val$014 = $val$3; + } else { + $count$0$lcssa = $count$3; + $val$0$lcssa = $val$3; + break; + } + } } - $130 = ($128 << 16 >> 16) * 7 | 0; - $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; - $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; - $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $222 = $pnt$163 + 4 | 0; - $223 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $222; - $pnt2$3$lcssa = $223; - $wk_max$1$lcssa = $wk_max$2; + $43 = (Math_imul($25, $j$021) | 0) + $i$020 | 0; + HEAP8[(HEAP32[$2 >> 2] | 0) + $43 >> 0] = ($val$0$lcssa | 0) / ($count$0$lcssa | 0) | 0; + $i$020 = $i$020 + 1 | 0; + $25 = HEAP32[$$pre$phi6Z2D >> 2] | 0; + } while (($i$020 | 0) < ($25 | 0)); + } + $j$021 = $j$021 + 1 | 0; + $50 = HEAP32[$$pre$phiZ2D >> 2] | 0; + } while (($j$021 | 0) < ($50 | 0)); + $$lcssa = $50; + } else $$lcssa = $14; + if (!$bias) $$0 = 0; else if ((Math_imul($$lcssa, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0) > 0) { + $i$18 = 0; + do { + $57 = (HEAP32[$2 >> 2] | 0) + $i$18 | 0; + HEAP8[$57 >> 0] = (HEAPU8[$57 >> 0] | 0) + $bias; + $i$18 = $i$18 + 1 | 0; + } while (($i$18 | 0) < (Math_imul(HEAP32[$$pre$phiZ2D >> 2] | 0, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0)); + $$0 = 0; + } else $$0 = 0; + } while (0); + return $$0 | 0; +} +function _kpmLoadRefDataSet($filename, $ext, $refDataSetPtr) { + $filename = $filename | 0; + $ext = $ext | 0; + $refDataSetPtr = $refDataSetPtr | 0; + var $$0 = 0, $12 = 0, $15 = 0, $2 = 0, $4 = 0, $40 = 0, $43 = 0, $47 = 0, $48 = 0, $59 = 0, $61 = 0, $63 = 0, $7 = 0, $71 = 0, $73 = 0, $9 = 0, $fmode = 0, $i$09 = 0, $i$18 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer13 = sp + 56 | 0; + $vararg_buffer11 = sp + 48 | 0; + $vararg_buffer9 = sp + 40 | 0; + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $fmode = sp + 60 | 0; + HEAP8[$fmode >> 0] = HEAP8[20972] | 0; + HEAP8[$fmode + 1 >> 0] = HEAP8[20973] | 0; + HEAP8[$fmode + 2 >> 0] = HEAP8[20974] | 0; + L1 : do if (($filename | 0) != 0 & ($refDataSetPtr | 0) != 0) { + $2 = _kpmFopen($filename, $ext, $fmode) | 0; + if (!$2) { + $4 = ($ext | 0) != 0; + HEAP32[$vararg_buffer1 >> 2] = $filename; + HEAP32[$vararg_buffer1 + 4 >> 2] = $4 ? 54710 : 56692; + HEAP32[$vararg_buffer1 + 8 >> 2] = $4 ? $ext : 56692; + _arLog(3, 21026, $vararg_buffer1); + $$0 = -1; + break; + } + $7 = _calloc(1, 16) | 0; + if (!$7) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); + } + $9 = $7 + 4 | 0; + L9 : do if ((_fread($9, 4, 1, $2) | 0) == 1) { + $12 = HEAP32[$9 >> 2] | 0; + if (($12 | 0) >= 1) { + $15 = _malloc($12 * 132 | 0) | 0; + HEAP32[$7 >> 2] = $15; + if (!$15) { + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } + if (($12 | 0) > 0) { + $i$09 = 0; + do { + if ((_fread((HEAP32[$7 >> 2] | 0) + ($i$09 * 132 | 0) | 0, 8, 1, $2) | 0) != 1) break L9; + if ((_fread((HEAP32[$7 >> 2] | 0) + ($i$09 * 132 | 0) + 8 | 0, 8, 1, $2) | 0) != 1) break L9; + if ((_fread((HEAP32[$7 >> 2] | 0) + ($i$09 * 132 | 0) + 16 | 0, 108, 1, $2) | 0) != 1) break L9; + if ((_fread((HEAP32[$7 >> 2] | 0) + ($i$09 * 132 | 0) + 124 | 0, 4, 1, $2) | 0) != 1) break L9; + if ((_fread((HEAP32[$7 >> 2] | 0) + ($i$09 * 132 | 0) + 128 | 0, 4, 1, $2) | 0) != 1) break L9; + $i$09 = $i$09 + 1 | 0; + } while (($i$09 | 0) < (HEAP32[$9 >> 2] | 0)); + } + $40 = $7 + 12 | 0; + if ((_fread($40, 4, 1, $2) | 0) == 1) { + $43 = HEAP32[$40 >> 2] | 0; + if (($43 | 0) < 1) { + HEAP32[$7 + 8 >> 2] = 0; break; - } else { - $pnt$163 = $222; - $pnt2$362 = $223; - $wk_max$157 = $wk_max$2; } + $47 = _malloc($43 * 12 | 0) | 0; + $48 = $7 + 8 | 0; + HEAP32[$48 >> 2] = $47; + if (!$47) { + _arLog(3, 21359, $vararg_buffer9); + _exit(1); + } + L31 : do if (($43 | 0) > 0) { + $i$18 = 0; + while (1) { + if ((_fread((HEAP32[$48 >> 2] | 0) + ($i$18 * 12 | 0) + 8 | 0, 4, 1, $2) | 0) != 1) break L9; + if ((_fread((HEAP32[$48 >> 2] | 0) + ($i$18 * 12 | 0) + 4 | 0, 4, 1, $2) | 0) != 1) break L9; + $59 = HEAP32[$48 >> 2] | 0; + $61 = HEAP32[$59 + ($i$18 * 12 | 0) + 4 >> 2] | 0; + $63 = _malloc($61 * 12 | 0) | 0; + HEAP32[$59 + ($i$18 * 12 | 0) >> 2] = $63; + if (!$63) break; + if ((_fread($63, 12, $61, $2) | 0) != ($61 | 0)) break L9; + $i$18 = $i$18 + 1 | 0; + if (($i$18 | 0) >= (HEAP32[$40 >> 2] | 0)) break L31; + } + _arLog(3, 21359, $vararg_buffer11); + _exit(1); + } while (0); + HEAP32[$refDataSetPtr >> 2] = $7; + _fclose($2) | 0; + $$0 = 0; + break L1; } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 8 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; } - } - _arLog(3, 3904, $vararg_buffer); + } while (0); + _arLog(3, 21093, $vararg_buffer13); + $71 = HEAP32[$7 + 8 >> 2] | 0; + if ($71) _free($71); + $73 = HEAP32[$7 >> 2] | 0; + if ($73) _free($73); + _free($7); + _fclose($2) | 0; $$0 = -1; } else { - $wk_max$0$lcssa = 0; - label = 52; + _arLog(3, 20975, $vararg_buffer); + $$0 = -1; } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE($this, $__b, $__e, $__intl, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$0$i$i$i$i = 0, $$0$i$i1$i$i = 0, $$byval_copy = 0, $0 = 0, $10 = 0, $2 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $33 = 0, $35 = 0, $38 = 0, $4 = 0, $5 = 0, $50 = 0, $6 = 0, $63 = 0, $64 = 0, $67 = 0, $8 = 0, $__loc = 0, $__neg = 0, $__w$0$lcssa = 0, $__w$02 = 0, $__wb = 0, $__wbuf = 0, $__wn = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 432 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 424 | 0; + $__wbuf = sp + 24 | 0; + $__wb = sp + 16 | 0; + $__wn = sp + 8 | 0; + $__loc = sp + 4 | 0; + $__neg = sp + 428 | 0; + $0 = sp; + HEAP32[$__wb >> 2] = $__wbuf; + $2 = $__wb + 4 | 0; + HEAP32[$2 >> 2] = 147; + $4 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $4; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + HEAP8[$__neg >> 0] = 0; + $6 = HEAP32[$__e >> 2] | 0; + HEAP32[$0 >> 2] = $6; + $8 = HEAP32[$__iob + 4 >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $10 = $6; + if (__ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_($__b, $$byval_copy, $__intl, $__loc, $8, $__err, $__neg, $5, $__wb, $__wn, $__wbuf + 400 | 0) | 0) { + if (!(HEAP8[$__v >> 0] & 1)) HEAP8[$__v >> 0] = 0; else HEAP32[HEAP32[$__v + 8 >> 2] >> 2] = 0; + HEAP32[$__v + 4 >> 2] = 0; + if (HEAP8[$__neg >> 0] | 0) __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw($__v, FUNCTION_TABLE_iii[HEAP32[(HEAP32[$5 >> 2] | 0) + 44 >> 2] & 63]($5, 45) | 0); + $26 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$5 >> 2] | 0) + 44 >> 2] & 63]($5, 48) | 0; + $27 = HEAP32[$__wb >> 2] | 0; + $28 = HEAP32[$__wn >> 2] | 0; + $29 = $28 + -4 | 0; + L10 : do if ($27 >>> 0 < $29 >>> 0) { + $__w$02 = $27; while (1) { - $231 = HEAP32[$wk$439 >> 2] | 0; - if (($231 | 0) == ($i$337 | 0)) { - $237 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + if ((HEAP32[$__w$02 >> 2] | 0) != ($26 | 0)) { + $__w$0$lcssa = $__w$02; + break L10; } - HEAP32[$wk$439 >> 2] = $237; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $33 = $__w$02 + 4 | 0; + if ($33 >>> 0 < $29 >>> 0) $__w$02 = $33; else { + $__w$0$lcssa = $33; break; } } + } else $__w$0$lcssa = $27; while (0); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS5_E4typeES9_S9_($__v, $__w$0$lcssa, $28) | 0; + } + $35 = HEAP32[$__b >> 2] | 0; + do if (!$35) $67 = 1; else { + $38 = HEAP32[$35 + 12 >> 2] | 0; + if (($38 | 0) == (HEAP32[$35 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$35 >> 2] | 0) + 36 >> 2] & 127]($35) | 0; else $$0$i$i$i$i = HEAP32[$38 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $67 = 1; + break; + } else { + $67 = (HEAP32[$__b >> 2] | 0) == 0; + break; } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $249 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$533 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $316 = $labelInfo + 12 + ($i$632 << 2) | 0; - $319 = $i$632 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); + } while (0); + do if (!$6) label = 24; else { + $50 = HEAP32[$10 + 12 >> 2] | 0; + if (($50 | 0) == (HEAP32[$10 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$6 >> 2] | 0) + 36 >> 2] & 127]($10) | 0; else $$0$i$i1$i$i = HEAP32[$50 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 24; + break; + } else if ($67) break; else { + label = 26; + break; + } + } while (0); + if ((label | 0) == 24) if ($67) label = 26; + if ((label | 0) == 26) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $63 = HEAP32[$__b >> 2] | 0; + __ZNSt3__114__shared_count16__release_sharedEv($4) | 0; + $64 = HEAP32[$__wb >> 2] | 0; + HEAP32[$__wb >> 2] = 0; + if ($64) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($64); + STACKTOP = sp; + return $63 | 0; +} + +function __ZNSt3__19__num_getIcE19__stage2_float_loopEcRbRcPcRS4_ccRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjS4_($__ct, $__in_units, $__exp, $__a, $__a_end, $__decimal_point, $__thousands_sep, $__grouping, $__g, $__g_end, $__dc, $__atoms) { + $__ct = $__ct | 0; + $__in_units = $__in_units | 0; + $__exp = $__exp | 0; + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__decimal_point = $__decimal_point | 0; + $__thousands_sep = $__thousands_sep | 0; + $__grouping = $__grouping | 0; + $__g = $__g | 0; + $__g_end = $__g_end | 0; + $__dc = $__dc | 0; + $__atoms = $__atoms | 0; + var $$0 = 0, $$0$i3 = 0, $$0$lcssa$i = 0, $14 = 0, $19 = 0, $22 = 0, $3 = 0, $33 = 0, $38 = 0, $40 = 0, $47 = 0, $5 = 0, $50 = 0, $51 = 0, $62 = 0, $65 = 0, $73 = 0, $82 = 0, $87 = 0, $89 = 0; + L1 : do if ($__ct << 24 >> 24 == $__decimal_point << 24 >> 24) if (!(HEAP8[$__in_units >> 0] | 0)) $$0 = -1; else { + HEAP8[$__in_units >> 0] = 0; + $3 = HEAP32[$__a_end >> 2] | 0; + HEAP32[$__a_end >> 2] = $3 + 1; + HEAP8[$3 >> 0] = 46; + $5 = HEAP8[$__grouping >> 0] | 0; + if (!((($5 & 1) == 0 ? ($5 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $$0 = 0; else { + $14 = HEAP32[$__g_end >> 2] | 0; + if (($14 - $__g | 0) < 160) { + $19 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $14 + 4; + HEAP32[$14 >> 2] = $19; $$0 = 0; } else $$0 = 0; } - } - STACKTOP = sp; + } else { + if ($__ct << 24 >> 24 == $__thousands_sep << 24 >> 24) { + $22 = HEAP8[$__grouping >> 0] | 0; + if ((($22 & 1) == 0 ? ($22 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) { + if (!(HEAP8[$__in_units >> 0] | 0)) { + $$0 = -1; + break; + } + $33 = HEAP32[$__g_end >> 2] | 0; + if (($33 - $__g | 0) >= 160) { + $$0 = 0; + break; + } + $38 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $33 + 4; + HEAP32[$33 >> 2] = $38; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + break; + } + } + $40 = $__atoms + 32 | 0; + $$0$i3 = $__atoms; + while (1) { + if ((HEAP8[$$0$i3 >> 0] | 0) == $__ct << 24 >> 24) { + $$0$lcssa$i = $$0$i3; + break; + } + $$0$i3 = $$0$i3 + 1 | 0; + if (($$0$i3 | 0) == ($40 | 0)) { + $$0$lcssa$i = $40; + break; + } + } + $47 = $$0$lcssa$i - $__atoms | 0; + if (($47 | 0) > 31) $$0 = -1; else { + $50 = HEAP8[55292 + $47 >> 0] | 0; + switch ($47 | 0) { + case 24: + case 25: + { + $51 = HEAP32[$__a_end >> 2] | 0; + if (($51 | 0) != ($__a | 0)) if ((HEAPU8[$51 + -1 >> 0] & 95 | 0) != (HEAPU8[$__exp >> 0] & 127 | 0)) { + $$0 = -1; + break L1; + } + HEAP32[$__a_end >> 2] = $51 + 1; + HEAP8[$51 >> 0] = $50; + $$0 = 0; + break L1; + break; + } + case 23: + case 22: + { + HEAP8[$__exp >> 0] = 80; + $62 = HEAP32[$__a_end >> 2] | 0; + HEAP32[$__a_end >> 2] = $62 + 1; + HEAP8[$62 >> 0] = $50; + $$0 = 0; + break L1; + break; + } + default: + { + $65 = $50 & 95; + if (($65 | 0) == (HEAP8[$__exp >> 0] | 0)) { + HEAP8[$__exp >> 0] = $65 | 128; + if (HEAP8[$__in_units >> 0] | 0) { + HEAP8[$__in_units >> 0] = 0; + $73 = HEAP8[$__grouping >> 0] | 0; + if ((($73 & 1) == 0 ? ($73 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) { + $82 = HEAP32[$__g_end >> 2] | 0; + if (($82 - $__g | 0) < 160) { + $87 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $82 + 4; + HEAP32[$82 >> 2] = $87; + } + } + } + } + $89 = HEAP32[$__a_end >> 2] | 0; + HEAP32[$__a_end >> 2] = $89 + 1; + HEAP8[$89 >> 0] = $50; + if (($47 | 0) > 21) { + $$0 = 0; + break L1; + } + HEAP32[$__dc >> 2] = (HEAP32[$__dc >> 2] | 0) + 1; + $$0 = 0; + break L1; + } + } + } + } while (0); return $$0 | 0; } -function _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _start_pass_phuff_decoder($cinfo) { + $cinfo = $cinfo | 0; + var $$lcssa = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre$phi8Z2D = 0, $1 = 0, $12 = 0, $13 = 0, $19 = 0, $2 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $36 = 0, $37 = 0, $4 = 0, $41 = 0, $47 = 0, $5 = 0, $50 = 0, $51 = 0, $55 = 0, $6 = 0, $66 = 0, $70 = 0, $71 = 0, $74 = 0, $78 = 0, $81 = 0, $82 = 0, $87 = 0, $bad$1 = 0, $bad$2 = 0, $ci$015 = 0, $ci$19 = 0, $coefi$011 = 0; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $2 = $cinfo + 400 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $4 = ($3 | 0) == 0; + $5 = $cinfo + 404 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($4) $bad$1 = ($6 | 0) != 0 & 1; else $bad$1 = (HEAP32[$cinfo + 328 >> 2] | 0) == 1 ? (($3 | 0) > ($6 | 0) | ($6 | 0) > 63) & 1 : 1; + $12 = $cinfo + 408 | 0; + $13 = HEAP32[$12 >> 2] | 0; + $$phi$trans$insert = $cinfo + 412 | 0; + $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; + if (!$13) $bad$2 = $bad$1; else $bad$2 = ($$pre | 0) == ($13 + -1 | 0) ? $bad$1 : 1; + if (($bad$2 | 0) == 0 & ($$pre | 0) < 14) $$pre$phi8Z2D = $cinfo; else { + $19 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$19 + 20 >> 2] = 16; + HEAP32[$19 + 24 >> 2] = $3; + HEAP32[$19 + 28 >> 2] = HEAP32[$5 >> 2]; + HEAP32[$19 + 32 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$19 + 36 >> 2] = HEAP32[$$phi$trans$insert >> 2]; + FUNCTION_TABLE_vi[HEAP32[$19 >> 2] & 255]($cinfo); + $$pre$phi8Z2D = $cinfo; + } + $29 = $cinfo + 328 | 0; + $30 = $cinfo + 160 | 0; + $31 = HEAP32[$29 >> 2] | 0; + if (($31 | 0) > 0) { + $ci$015 = 0; + do { + $36 = HEAP32[(HEAP32[$cinfo + 332 + ($ci$015 << 2) >> 2] | 0) + 4 >> 2] | 0; + $37 = HEAP32[$30 >> 2] | 0; + if (!$4) if ((HEAP32[$37 + ($36 << 8) >> 2] | 0) < 0) { + $41 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$41 + 20 >> 2] = 115; + HEAP32[$41 + 24 >> 2] = $36; + HEAP32[$41 + 28 >> 2] = 0; + FUNCTION_TABLE_vii[HEAP32[$41 + 4 >> 2] & 63]($$pre$phi8Z2D, -1); + } + $47 = HEAP32[$2 >> 2] | 0; + if (($47 | 0) <= (HEAP32[$5 >> 2] | 0)) { + $coefi$011 = $47; + while (1) { + $50 = $37 + ($36 << 8) + ($coefi$011 << 2) | 0; + $51 = HEAP32[$50 >> 2] | 0; + if ((HEAP32[$12 >> 2] | 0) != ((($51 | 0) < 0 ? 0 : $51) | 0)) { + $55 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$55 + 20 >> 2] = 115; + HEAP32[$55 + 24 >> 2] = $36; + HEAP32[$55 + 28 >> 2] = $coefi$011; + FUNCTION_TABLE_vii[HEAP32[$55 + 4 >> 2] & 63]($$pre$phi8Z2D, -1); + } + HEAP32[$50 >> 2] = HEAP32[$$phi$trans$insert >> 2]; + if (($coefi$011 | 0) < (HEAP32[$5 >> 2] | 0)) $coefi$011 = $coefi$011 + 1 | 0; else break; + } + } + $ci$015 = $ci$015 + 1 | 0; + $66 = HEAP32[$29 >> 2] | 0; + } while (($ci$015 | 0) < ($66 | 0)); + $$lcssa = $66; + } else $$lcssa = $31; + $70 = $1 + 4 | 0; + do if (!(HEAP32[$12 >> 2] | 0)) if ($4) { + HEAP32[$70 >> 2] = 25; + break; + } else { + HEAP32[$70 >> 2] = 26; + break; + } else if ($4) { + HEAP32[$70 >> 2] = 27; + break; + } else { + HEAP32[$70 >> 2] = 28; + break; + } while (0); + $71 = $1 + 60 | 0; + if (($$lcssa | 0) > 0) { + $ci$19 = 0; + do { + $74 = HEAP32[$cinfo + 332 + ($ci$19 << 2) >> 2] | 0; + if ($4) { + if (!(HEAP32[$12 >> 2] | 0)) { + $78 = HEAP32[$74 + 20 >> 2] | 0; + _jpeg_make_d_derived_tbl($cinfo, 1, $78, $1 + 44 + ($78 << 2) | 0); + } + } else { + $81 = HEAP32[$74 + 24 >> 2] | 0; + $82 = $1 + 44 + ($81 << 2) | 0; + _jpeg_make_d_derived_tbl($cinfo, 0, $81, $82); + HEAP32[$71 >> 2] = HEAP32[$82 >> 2]; + } + HEAP32[$1 + 24 + ($ci$19 << 2) >> 2] = 0; + $ci$19 = $ci$19 + 1 | 0; + } while (($ci$19 | 0) < (HEAP32[$29 >> 2] | 0)); + } + $87 = $1 + 8 | 0; + HEAP32[$87 >> 2] = 0; + HEAP32[$87 + 4 >> 2] = 0; + HEAP32[$87 + 8 >> 2] = 0; + HEAP32[$87 + 12 >> 2] = 0; + HEAP32[$1 + 40 >> 2] = HEAP32[$cinfo + 276 >> 2]; + return; +} +function __ZNK6vision21HoughSimilarityVoting17mapCorrespondenceERfS1_S1_S1_ffffffff($this, $x, $y, $angle, $scale, $ins_x, $ins_y, $ins_angle, $ins_scale, $ref_x, $ref_y, $ref_angle, $ref_scale) { + $this = $this | 0; + $x = $x | 0; + $y = $y | 0; + $angle = $angle | 0; + $scale = $scale | 0; + $ins_x = +$ins_x; + $ins_y = +$ins_y; + $ins_angle = +$ins_angle; + $ins_scale = +$ins_scale; + $ref_x = +$ref_x; + $ref_y = +$ref_y; + $ref_angle = +$ref_angle; + $ref_scale = +$ref_scale; + var $0 = 0, $1 = 0.0, $10 = 0.0, $17 = 0, $2 = 0.0, $22 = 0, $23 = 0, $27 = 0, $34 = 0, $39 = 0, $40 = 0, $44 = 0, $47 = 0.0, $48 = 0.0, $5 = 0.0, $50 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $66 = 0, $69 = 0, $8 = 0.0, $9 = 0.0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } - } + $0 = sp; + $1 = $ins_angle - $ref_angle; + HEAPF32[$angle >> 2] = $1; + $2 = $1; + if (!($2 <= -3.141592653589793)) if ($2 > 3.141592653589793) { + $8 = $2 + -6.283185307179586; + HEAPF32[$angle >> 2] = $8; + $10 = $8; + } else $10 = $1; else { + $5 = $2 + 6.283185307179586; + HEAPF32[$angle >> 2] = $5; + $10 = $5; } - $9 = $labelingThresh * 3 | 0; - $10 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($10 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + $9 = $10; + if (!($9 > -3.141592653589793)) { + $17 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31658) | 0, 32052) | 0, 34302) | 0, 468) | 0, 34309) | 0, 31693) | 0; + $22 = __ZNKSt3__18ios_base6getlocEv($17 + (HEAP32[(HEAP32[$17 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $22; + $23 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $27 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$23 >> 2] | 0) + 28 >> 2] & 63]($23, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($17, $27) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($17) | 0; + _abort(); + } + if (!($9 <= 3.141592653589793)) { + $34 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 31712) | 0, 32052) | 0, 34302) | 0, 469) | 0, 34309) | 0, 31693) | 0; + $39 = __ZNKSt3__18ios_base6getlocEv($34 + (HEAP32[(HEAP32[$34 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $39; + $40 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $44 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$40 >> 2] | 0) + 28 >> 2] & 63]($40, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($34, $44) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($34) | 0; + _abort(); + } else { + $47 = $ins_scale / ($ref_scale == 0.0 ? 1.0 : $ref_scale); + HEAPF32[$scale >> 2] = $47; + $48 = +HEAPF32[$angle >> 2]; + $50 = $47 * +Math_cos(+$48); + $52 = $47 * +Math_sin(+$48); + $53 = -$52; + $54 = +Math_log(+$47); + HEAPF32[$scale >> 2] = $54 * +HEAPF32[$this + 48 >> 2]; + $66 = $this + 8 | 0; + $69 = $this + 12 | 0; + HEAPF32[$x >> 2] = $ins_x - ($50 * $ref_x + $ref_y * $53) + ($50 * +HEAPF32[$66 >> 2] + +HEAPF32[$69 >> 2] * $53); + HEAPF32[$y >> 2] = $ins_y - ($50 * $ref_y + $52 * $ref_x) + ($52 * +HEAPF32[$66 >> 2] + $50 * +HEAPF32[$69 >> 2]); + STACKTOP = sp; + return; + } +} + +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + var $$pre$i$i$i = 0, $$pre$i$i$i2 = 0, $10 = 0, $14 = 0, $17 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $39 = 0, $42 = 0, $47 = 0, $48 = 0, $5 = 0, $53 = 0, $55 = 0, $58 = 0, $62 = 0, $65 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $87 = 0, $90 = 0, $95 = 0, $96 = 0; + do if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this + 1 >> 0] = 0; + HEAP8[$this >> 0] = 0; + } else { + $5 = $this + 8 | 0; + HEAP8[HEAP32[$5 >> 2] >> 0] = 0; + $7 = $this + 4 | 0; + HEAP32[$7 >> 2] = 0; + $$pre$i$i$i = HEAP8[$this >> 0] | 0; + if (!($$pre$i$i$i & 1)) { + $14 = $$pre$i$i$i; + $23 = 10; + } else { + $10 = HEAP32[$this >> 2] | 0; + $14 = $10 & 255; + $23 = ($10 & -2) + -1 | 0; + } + if (!($14 & 1)) { + $17 = ($14 & 255) >>> 1; + if (($14 & 255) < 22) { + $22 = 10; + $42 = $17; + $95 = 1; + } else { + $22 = ($17 + 16 & 240) + -1 | 0; + $42 = $17; + $95 = 1; } + } else { + $22 = 10; + $42 = 0; + $95 = 0; } - } - $17 = $labelInfo + 1179664 | 0; - $18 = $xsize + 1 | 0; - $19 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $24 = ($10 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($18 << 2) | 0; - $pnt2$271 = $0 + ($18 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($24) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0; - if ($37 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $37; - $40 = ($37 << 16 >> 16) * 7 | 0; - $42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1; - $46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255; - $50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0; - HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $61 = $60 << 16 >> 16; - $62 = $60 << 16 >> 16 > 0; - if ($56 << 16 >> 16 <= 0) { - if ($62) { - HEAP16[$pnt2$362 >> 1] = $60; - $162 = $61 * 7 | 0; - $164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1; - $168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255; - $172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0; - HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068; - $176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0; - if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $182 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($182 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $182; - $185 = ($182 << 16 >> 16) * 7 | 0; - $187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1; - $191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255; - $195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0; - HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068; - $199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0; - if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$199 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $202 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $202; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16; - $207 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $202; - break; - } - } - if ($62) { - $65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0; - if (($65 | 0) > ($68 | 0)) { - HEAP16[$pnt2$362 >> 1] = $68; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $17; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $85 = $68; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $85 = $68; - } else { - HEAP16[$pnt2$362 >> 1] = $65; - if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $17; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $85 = $65; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $85 = $65; - } - $87 = ($85 << 16 >> 16) * 7 | 0; - $89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1; - $93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255; - $97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0; - HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $103 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($103 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $56; - $143 = $57 * 7 | 0; - $145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1; - $149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255; - $153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0; - HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068; - $157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0; - if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - $111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($108 | 0) > ($111 | 0)) { - HEAP16[$pnt2$362 >> 1] = $111; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $17; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $128 = $111; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $128 = $111; - } else { - HEAP16[$pnt2$362 >> 1] = $108; - if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $17; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $128 = $108; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $128 = $108; - } - $130 = ($128 << 16 >> 16) * 7 | 0; - $132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1; - $136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255; - $140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $222 = $pnt$163 + 4 | 0; - $223 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($10 | 0)) { - $pnt$1$lcssa = $222; - $pnt2$3$lcssa = $223; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $222; - $pnt2$362 = $223; - $wk_max$157 = $wk_max$2; - } + if (($22 | 0) != ($23 | 0)) { + if (($22 | 0) == 10) { + $29 = $this + 1 | 0; + $30 = HEAP32[$5 >> 2] | 0; + if ($95) { + _memcpy($29 | 0, $30 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0; + _free($30); + } else { + HEAP8[$29 >> 0] = HEAP8[$30 >> 0] | 0; + _free($30); + } + HEAP8[$this >> 0] = $42 << 1; + break; + } + $26 = $22 + 1 | 0; + $27 = _malloc($26) | 0; + if (!($22 >>> 0 <= $23 >>> 0 & ($27 | 0) == 0)) { + if ($95) _memcpy($27 | 0, $this + 1 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0; else { + $39 = HEAP32[$5 >> 2] | 0; + HEAP8[$27 >> 0] = HEAP8[$39 >> 0] | 0; + _free($39); } + HEAP32[$this >> 2] = $26 | 1; + HEAP32[$7 >> 2] = $42; + HEAP32[$5 >> 2] = $27; + } + } + } while (0); + HEAP32[$this >> 2] = HEAP32[$0 >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + $47 = $this + 12 | 0; + $48 = $0 + 12 | 0; + do if (!(HEAP8[$47 >> 0] & 1)) { + HEAP8[$47 + 1 >> 0] = 0; + HEAP8[$47 >> 0] = 0; + } else { + $53 = $this + 20 | 0; + HEAP8[HEAP32[$53 >> 2] >> 0] = 0; + $55 = $this + 16 | 0; + HEAP32[$55 >> 2] = 0; + $$pre$i$i$i2 = HEAP8[$47 >> 0] | 0; + if (!($$pre$i$i$i2 & 1)) { + $62 = $$pre$i$i$i2; + $71 = 10; + } else { + $58 = HEAP32[$47 >> 2] | 0; + $62 = $58 & 255; + $71 = ($58 & -2) + -1 | 0; + } + if (!($62 & 1)) { + $65 = ($62 & 255) >>> 1; + if (($62 & 255) < 22) { + $70 = 10; + $90 = $65; + $96 = 1; } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $70 = ($65 + 16 & 240) + -1 | 0; + $90 = $65; + $96 = 1; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 8 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + } else { + $70 = 10; + $90 = 0; + $96 = 0; + } + if (($70 | 0) != ($71 | 0)) { + if (($70 | 0) == 10) { + $77 = $47 + 1 | 0; + $78 = HEAP32[$53 >> 2] | 0; + if ($96) { + _memcpy($77 | 0, $78 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0; + _free($78); + } else { + HEAP8[$77 >> 0] = HEAP8[$78 >> 0] | 0; + _free($78); + } + HEAP8[$47 >> 0] = $90 << 1; + break; + } + $74 = $70 + 1 | 0; + $75 = _malloc($74) | 0; + if (!($70 >>> 0 <= $71 >>> 0 & ($75 | 0) == 0)) { + if ($96) _memcpy($75 | 0, $47 + 1 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0; else { + $87 = HEAP32[$53 >> 2] | 0; + HEAP8[$75 >> 0] = HEAP8[$87 >> 0] | 0; + _free($87); + } + HEAP32[$47 >> 2] = $74 | 1; + HEAP32[$55 >> 2] = $90; + HEAP32[$53 >> 2] = $75; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $229 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $17; + HEAP32[$47 >> 2] = HEAP32[$48 >> 2]; + HEAP32[$47 + 4 >> 2] = HEAP32[$48 + 4 >> 2]; + HEAP32[$47 + 8 >> 2] = HEAP32[$48 + 8 >> 2]; + HEAP32[$48 >> 2] = 0; + HEAP32[$48 + 4 >> 2] = 0; + HEAP32[$48 + 8 >> 2] = 0; + return; +} + +function __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryEPKh($this, $feature) { + $this = $this | 0; + $feature = $feature | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$lcssa = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $12 = 0, $17 = 0, $18 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $33 = 0, $34 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $43 = 0, $44 = 0, $46 = 0, $49 = 0, $50 = 0, $55 = 0, $56 = 0, $60 = 0, $67 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy2 = sp + 24 | 0; + $$byval_copy1 = sp + 20 | 0; + $$byval_copy = sp + 16 | 0; + $0 = sp + 12 | 0; + $1 = sp + 8 | 0; + $2 = sp + 4 | 0; + $3 = sp; + $4 = $this + 8 | 0; + if (!(HEAP32[$4 >> 2] | 0)) { + $12 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29599) | 0, 29634) | 0, 34302) | 0, 405) | 0, 34309) | 0, 29762) | 0; + $17 = __ZNKSt3__18ios_base6getlocEv($12 + (HEAP32[(HEAP32[$12 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$$byval_copy2 >> 2] = $17; + $18 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy2, 13680) | 0; + $22 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$18 >> 2] | 0) + 28 >> 2] & 63]($18, 10) | 0; + __ZNSt3__16localeD2Ev($$byval_copy2); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($12, $22) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($12) | 0; + _abort(); + } + HEAP32[$this + 100 >> 2] = 0; + $24 = $this + 72 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $this + 76 | 0; + $$pre$i$i$i = HEAP32[$26 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($25 | 0)) { + $34 = $$pre$i$i$i; + while (1) { + $33 = $34 + -4 | 0; + if (($33 | 0) == ($25 | 0)) { + $$lcssa = $33; + break; + } else $34 = $33; + } + HEAP32[$26 >> 2] = $$lcssa; + } + $28 = $this + 84 | 0; + $29 = $this + 88 | 0; + $30 = HEAP32[$28 >> 2] | 0; + $31 = HEAP32[$29 >> 2] | 0; + if (($30 | 0) != ($31 | 0)) { + $37 = $31; + $39 = $30; + do { + $38 = $39; + $40 = $37 - $38 | 0; + if (($40 | 0) > 8) { + $43 = $37 + -8 | 0; + $44 = $39; + $46 = HEAP32[$44 >> 2] | 0; + $49 = HEAP32[$44 + 4 >> 2] | 0; + $50 = $43; + $55 = HEAP32[$50 + 4 >> 2] | 0; + $56 = $39; + HEAP32[$56 >> 2] = HEAP32[$50 >> 2]; + HEAP32[$56 + 4 >> 2] = $55; + $60 = $43; + HEAP32[$60 >> 2] = $46; + HEAP32[$60 + 4 >> 2] = $49; + HEAP32[$0 >> 2] = $38; + HEAP32[$1 >> 2] = $43; + HEAP32[$2 >> 2] = $38; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$2 >> 2]; + __ZNSt3__111__sift_downIRNS_4lessIN6vision17PriorityQueueItemILi96EEEEENS_11__wrap_iterIPS4_EEEEvT0_SA_T_NS_15iterator_traitsISA_E15difference_typeESA_($$byval_copy, $$byval_copy1, $3, ($40 >> 3) + -1 | 0, $$byval_copy2); + $67 = HEAP32[$29 >> 2] | 0; + } else $67 = $37; + HEAP32[$29 >> 2] = $67 + -8; + $39 = HEAP32[$28 >> 2] | 0; + $37 = HEAP32[$29 >> 2] | 0; + } while (($39 | 0) != ($37 | 0)); + } + __ZNK6vision28BinaryHierarchicalClusteringILi96EE5queryERNSt3__114priority_queueINS_17PriorityQueueItemILi96EEENS2_6vectorIS5_NS2_9allocatorIS5_EEEENS2_4lessIS5_EEEEPKNS_4NodeILi96EEEPKh($this, $28, HEAP32[$4 >> 2] | 0, $feature); + STACKTOP = sp; + return (HEAP32[$26 >> 2] | 0) - (HEAP32[$24 >> 2] | 0) >> 2 | 0; +} + +function _get_interesting_appn($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $16 = 0, $2 = 0, $24 = 0, $25 = 0, $3 = 0, $39 = 0, $41 = 0, $42 = 0, $b = 0, $bytes_in_buffer$0 = 0, $bytes_in_buffer$1 = 0, $bytes_in_buffer$2 = 0, $bytes_in_buffer$2$lcssa = 0, $bytes_in_buffer$212 = 0, $bytes_in_buffer$29 = 0, $bytes_in_buffer$3 = 0, $i$011 = 0, $next_input_byte$0 = 0, $next_input_byte$1 = 0, $next_input_byte$2 = 0, $next_input_byte$2$lcssa = 0, $next_input_byte$210 = 0, $next_input_byte$213 = 0, $next_input_byte$3 = 0, $numtoread$0 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $b = sp; + $0 = $cinfo + 24 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) $$0 = 0; else { + $bytes_in_buffer$0 = HEAP32[$2 >> 2] | 0; + label = 4; + } else { + $bytes_in_buffer$0 = $3; + label = 4; + } + L4 : do if ((label | 0) == 4) { + $next_input_byte$0 = HEAP32[$1 >> 2] | 0; + $10 = $bytes_in_buffer$0 + -1 | 0; + $13 = (HEAPU8[$next_input_byte$0 >> 0] | 0) << 8; + if (!$10) { + $16 = $1 + 12 | 0; + if (!(FUNCTION_TABLE_ii[HEAP32[$16 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + $$pre$phiZ2D = $16; + $bytes_in_buffer$1 = HEAP32[$2 >> 2] | 0; + $next_input_byte$1 = HEAP32[$1 >> 2] | 0; + } else { + $$pre$phiZ2D = $1 + 12 | 0; + $bytes_in_buffer$1 = $10; + $next_input_byte$1 = $next_input_byte$0 + 1 | 0; + } + $24 = HEAPU8[$next_input_byte$1 >> 0] | 0 | $13; + $25 = $24 + -2 | 0; + $numtoread$0 = ($25 | 0) > 13 ? 14 : $24 >>> 0 > 2 ? $25 : 0; + $bytes_in_buffer$29 = $bytes_in_buffer$1 + -1 | 0; + $next_input_byte$210 = $next_input_byte$1 + 1 | 0; + if (!$numtoread$0) { + $bytes_in_buffer$2$lcssa = $bytes_in_buffer$29; + $next_input_byte$2$lcssa = $next_input_byte$210; + } else { + $bytes_in_buffer$212 = $bytes_in_buffer$29; + $i$011 = 0; + $next_input_byte$213 = $next_input_byte$210; while (1) { - $231 = HEAP32[$wk$439 >> 2] | 0; - if (($231 | 0) == ($i$337 | 0)) { - $237 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $237; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + if (!$bytes_in_buffer$212) { + if (!(FUNCTION_TABLE_ii[HEAP32[$$pre$phiZ2D >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break L4; + } + $bytes_in_buffer$3 = HEAP32[$2 >> 2] | 0; + $next_input_byte$3 = HEAP32[$1 >> 2] | 0; } else { - $j$1$lcssa = $j$2; + $bytes_in_buffer$3 = $bytes_in_buffer$212; + $next_input_byte$3 = $next_input_byte$213; + } + HEAP8[$b + $i$011 >> 0] = HEAP8[$next_input_byte$3 >> 0] | 0; + $i$011 = $i$011 + 1 | 0; + $bytes_in_buffer$2 = $bytes_in_buffer$3 + -1 | 0; + $next_input_byte$2 = $next_input_byte$3 + 1 | 0; + if ($i$011 >>> 0 >= $numtoread$0 >>> 0) { + $bytes_in_buffer$2$lcssa = $bytes_in_buffer$2; + $next_input_byte$2$lcssa = $next_input_byte$2; break; + } else { + $bytes_in_buffer$212 = $bytes_in_buffer$2; + $next_input_byte$213 = $next_input_byte$2; } } } - $241 = $labelInfo + 8 | 0; - $242 = $j$1$lcssa + -1 | 0; - HEAP32[$241 >> 2] = $242; - if (!$242) $$0 = 0; else { - _memset($229 | 0, 0, $242 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $249 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0)); + $39 = $25 - $numtoread$0 | 0; + $41 = HEAP32[$cinfo + 416 >> 2] | 0; + switch ($41 | 0) { + case 224: + { + _examine_app0($cinfo, $b, $numtoread$0, $39); + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $264 = $i$533 * 7 | 0; - $267 = $labelInfo + 12 + ($263 << 2) | 0; - HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0); - $274 = $263 << 1; - $275 = $labelInfo + 655376 + ($274 << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0); - $283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0; - HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0); - $286 = $263 << 2; - $287 = $labelInfo + 131084 + ($286 << 2) | 0; - $291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0; - if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291; - $294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0; - $298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0; - if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298; - $301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0; - $305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0; - if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305; - $308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0; - $312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0; - if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + case 238: + { + _examine_app14($cinfo, $b, $numtoread$0, $39); + break; + } + default: + { + $42 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$42 + 20 >> 2] = 68; + HEAP32[$42 + 24 >> 2] = $41; + FUNCTION_TABLE_vi[HEAP32[$42 >> 2] & 255]($cinfo); } - if ((HEAP32[$241 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $316 = $labelInfo + 12 + ($i$632 << 2) | 0; - $319 = $i$632 << 1; - $320 = $labelInfo + 655376 + ($319 << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0); - $326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0; - HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } + HEAP32[$1 >> 2] = $next_input_byte$2$lcssa; + HEAP32[$2 >> 2] = $bytes_in_buffer$2$lcssa; + if (($39 | 0) > 0) { + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] & 63]($cinfo, $39); + $$0 = 1; + } else $$0 = 1; + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0; + $0 = $this + 4 | 0; + L1 : do if (!$__nbc) { + $51 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($51) __ZdlPv($51); + HEAP32[$0 >> 2] = 0; + } else { + $3 = __Znwj($__nbc << 2) | 0; + $4 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $3; + if ($4) __ZdlPv($4); + HEAP32[$0 >> 2] = $__nbc; + if ($__nbc) { + $__i$039 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0; + $__i$039 = $__i$039 + 1 | 0; + } while (($__i$039 | 0) != ($__nbc | 0)); } - } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $9 = $this + 8 | 0; + $10 = HEAP32[$9 >> 2] | 0; + if ($10) { + $13 = HEAP32[$10 + 4 >> 2] | 0; + $14 = $__nbc + -1 | 0; + $16 = ($14 & $__nbc | 0) == 0; + if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9; + $__cp$0252833 = HEAP32[$10 >> 2] | 0; + if ($__cp$0252833) { + $$in = $10; + $__cp$0$in2736 = $10; + $__cp$0252837 = $__cp$0252833; + $__phash$0$ph$ph35 = $21; + while (1) { + $$in41 = $$in; + $__cp$0$in30 = $__cp$0$in2736; + $__cp$02531 = $__cp$0252837; + L21 : while (1) { + $__cp$026 = $__cp$02531; + while (1) { + $25 = HEAP32[$__cp$026 + 4 >> 2] | 0; + if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0; + if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) { + $__cp$026$lcssa = $__cp$026; + break; + } + $31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0; + if (!(HEAP32[$31 >> 2] | 0)) { + $$in41$lcssa = $$in41; + $$lcssa56 = $29; + $$lcssa58 = $31; + $__cp$026$lcssa53 = $__cp$026; + break L21; + } + $34 = $__cp$026 + 8 | 0; + $__np$0 = $__cp$026; + while (1) { + $36 = HEAP32[$__np$0 >> 2] | 0; + if (!$36) { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; + break; + } + } + HEAP32[$$in41 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026; + $__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0; + if (!$__cp$026) break L1; + } + $__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0; + if (!$__cp$025) break L1; else { + $$in41 = $__cp$026$lcssa; + $__cp$0$in30 = $__cp$026$lcssa; + $__cp$02531 = $__cp$025; + } + } + HEAP32[$$lcssa58 >> 2] = $$in41$lcssa; + $__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0; + if (!$__cp$02528) break; else { + $$in = $__cp$026$lcssa53; + $__cp$0$in2736 = $__cp$026$lcssa53; + $__cp$0252837 = $__cp$02528; + $__phash$0$ph$ph35 = $$lcssa56; + } + } } } - } - $18 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $27 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($27) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; + } while (0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0; + $0 = $this + 4 | 0; + L1 : do if (!$__nbc) { + $51 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($51) __ZdlPv($51); + HEAP32[$0 >> 2] = 0; + } else { + $3 = __Znwj($__nbc << 2) | 0; + $4 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $3; + if ($4) __ZdlPv($4); + HEAP32[$0 >> 2] = $__nbc; + if ($__nbc) { + $__i$039 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0; + $__i$039 = $__i$039 + 1 | 0; + } while (($__i$039 | 0) != ($__nbc | 0)); + } + $9 = $this + 8 | 0; + $10 = HEAP32[$9 >> 2] | 0; + if ($10) { + $13 = HEAP32[$10 + 4 >> 2] | 0; + $14 = $__nbc + -1 | 0; + $16 = ($14 & $__nbc | 0) == 0; + if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9; + $__cp$0252833 = HEAP32[$10 >> 2] | 0; + if ($__cp$0252833) { + $$in = $10; + $__cp$0$in2736 = $10; + $__cp$0252837 = $__cp$0252833; + $__phash$0$ph$ph35 = $21; while (1) { - do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($33 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $33; - $36 = ($33 << 16 >> 16) * 7 | 0; - $38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0; - HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; - $42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256; - $46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + $$in41 = $$in; + $__cp$0$in30 = $__cp$0$in2736; + $__cp$02531 = $__cp$0252837; + L21 : while (1) { + $__cp$026 = $__cp$02531; + while (1) { + $25 = HEAP32[$__cp$026 + 4 >> 2] | 0; + if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0; + if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) { + $__cp$026$lcssa = $__cp$026; + break; + } + $31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0; + if (!(HEAP32[$31 >> 2] | 0)) { + $$in41$lcssa = $$in41; + $$lcssa56 = $29; + $$lcssa58 = $31; + $__cp$026$lcssa53 = $__cp$026; + break L21; + } + $34 = $__cp$026 + 8 | 0; + $__np$0 = $__cp$026; + while (1) { + $36 = HEAP32[$__np$0 >> 2] | 0; + if (!$36) { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; + break; + } + } + HEAP32[$$in41 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026; + $__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0; + if (!$__cp$026) break L1; } - $52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $53 = $52 << 16 >> 16; - $56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $58 = $56 << 16 >> 16 > 0; - if ($52 << 16 >> 16 <= 0) { - if ($58) { - HEAP16[$pnt2$363 >> 1] = $56; - $158 = $57 * 7 | 0; - $160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1; - $164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256; - $168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069; - $172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0; - if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0; + if (!$__cp$025) break L1; else { + $$in41 = $__cp$026$lcssa; + $__cp$0$in30 = $__cp$026$lcssa; + $__cp$02531 = $__cp$025; + } + } + HEAP32[$$lcssa58 >> 2] = $$in41$lcssa; + $__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0; + if (!$__cp$02528) break; else { + $$in = $__cp$026$lcssa53; + $__cp$0$in2736 = $__cp$026$lcssa53; + $__cp$0252837 = $__cp$02528; + $__phash$0$ph$ph35 = $$lcssa56; + } + } + } + } + } while (0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0; + $0 = $this + 4 | 0; + L1 : do if (!$__nbc) { + $51 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($51) __ZdlPv($51); + HEAP32[$0 >> 2] = 0; + } else { + $3 = __Znwj($__nbc << 2) | 0; + $4 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $3; + if ($4) __ZdlPv($4); + HEAP32[$0 >> 2] = $__nbc; + if ($__nbc) { + $__i$039 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0; + $__i$039 = $__i$039 + 1 | 0; + } while (($__i$039 | 0) != ($__nbc | 0)); + } + $9 = $this + 8 | 0; + $10 = HEAP32[$9 >> 2] | 0; + if ($10) { + $13 = HEAP32[$10 + 4 >> 2] | 0; + $14 = $__nbc + -1 | 0; + $16 = ($14 & $__nbc | 0) == 0; + if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9; + $__cp$0252833 = HEAP32[$10 >> 2] | 0; + if ($__cp$0252833) { + $$in = $10; + $__cp$0$in2736 = $10; + $__cp$0252837 = $__cp$0252833; + $__phash$0$ph$ph35 = $21; + while (1) { + $$in41 = $$in; + $__cp$0$in30 = $__cp$0$in2736; + $__cp$02531 = $__cp$0252837; + L21 : while (1) { + $__cp$026 = $__cp$02531; + while (1) { + $25 = HEAP32[$__cp$026 + 4 >> 2] | 0; + if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0; + if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) { + $__cp$026$lcssa = $__cp$026; break; } - $178 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($178 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $178; - $181 = ($178 << 16 >> 16) * 7 | 0; - $183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0; - HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1; - $187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256; - $191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069; - $195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0; - if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; + $31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0; + if (!(HEAP32[$31 >> 2] | 0)) { + $$in41$lcssa = $$in41; + $$lcssa56 = $29; + $$lcssa58 = $31; + $__cp$026$lcssa53 = $__cp$026; + break L21; + } + $34 = $__cp$026 + 8 | 0; + $__np$0 = $__cp$026; + while (1) { + $36 = HEAP32[$__np$0 >> 2] | 0; + if (!$36) { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else { + $$lcssa = $36; + $__np$0$lcssa = $__np$0; break; } - HEAP32[$195 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $198 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $198; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16; - $203 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $198; - break; - } - } - if ($58) { - $61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - $64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - if (($61 | 0) > ($64 | 0)) { - HEAP16[$pnt2$363 >> 1] = $64; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $81 = $64; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $81 = $64; - } else { - HEAP16[$pnt2$363 >> 1] = $61; - if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $81 = $61; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $81 = $61; } - $83 = ($81 << 16 >> 16) * 7 | 0; - $85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0; - HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1; - $89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256; - $93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $99 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($99 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $52; - $139 = $53 * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069; - $153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0; - if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + HEAP32[$$in41 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026; + $__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0; + if (!$__cp$026) break L1; } - $104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - $107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($104 | 0) > ($107 | 0)) { - HEAP16[$pnt2$363 >> 1] = $107; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $124 = $107; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $124 = $107; - } else { - HEAP16[$pnt2$363 >> 1] = $104; - if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $124 = $104; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $124 = $104; + $__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0; + if (!$__cp$025) break L1; else { + $$in41 = $__cp$026$lcssa; + $__cp$0$in30 = $__cp$026$lcssa; + $__cp$02531 = $__cp$025; } - $126 = ($124 << 16 >> 16) * 7 | 0; - $128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0; - HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1; - $132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256; - $136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $218 = $pnt$164 + 4 | 0; - $219 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $218; - $pnt2$3$lcssa = $219; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $218; - $pnt2$363 = $219; - $wk_max$158 = $wk_max$2; + } + HEAP32[$$lcssa58 >> 2] = $$in41$lcssa; + $__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0; + if (!$__cp$02528) break; else { + $$in = $__cp$026$lcssa53; + $__cp$0$in2736 = $__cp$026$lcssa53; + $__cp$0252837 = $__cp$02528; + $__phash$0$ph$ph35 = $$lcssa56; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $225 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; + return; +} + +function __ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE($this, $__b, $__e, $__intl, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__intl = $__intl | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $10 = 0, $2 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $34 = 0, $36 = 0, $4 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $64 = 0, $65 = 0, $8 = 0, $__loc = 0, $__neg = 0, $__w$0$lcssa = 0, $__w$02 = 0, $__wb = 0, $__wbuf = 0, $__wn = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 144 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 24 | 0; + $__wbuf = sp + 32 | 0; + $__wb = sp + 16 | 0; + $__wn = sp + 8 | 0; + $__loc = sp + 4 | 0; + $__neg = sp + 28 | 0; + $0 = sp; + HEAP32[$__wb >> 2] = $__wbuf; + $2 = $__wb + 4 | 0; + HEAP32[$2 >> 2] = 147; + $4 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $4; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + HEAP8[$__neg >> 0] = 0; + $6 = HEAP32[$__e >> 2] | 0; + HEAP32[$0 >> 2] = $6; + $8 = HEAP32[$__iob + 4 >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $10 = $6; + if (__ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_($__b, $$byval_copy, $__intl, $__loc, $8, $__err, $__neg, $5, $__wb, $__wn, $__wbuf + 100 | 0) | 0) { + if (!(HEAP8[$__v >> 0] & 1)) { + HEAP8[$__v + 1 >> 0] = 0; + HEAP8[$__v >> 0] = 0; + } else { + HEAP8[HEAP32[$__v + 8 >> 2] >> 0] = 0; + HEAP32[$__v + 4 >> 2] = 0; + } + if (HEAP8[$__neg >> 0] | 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($__v, FUNCTION_TABLE_iii[HEAP32[(HEAP32[$5 >> 2] | 0) + 28 >> 2] & 63]($5, 45) | 0); + $27 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$5 >> 2] | 0) + 28 >> 2] & 63]($5, 48) | 0; + $28 = HEAP32[$__wb >> 2] | 0; + $29 = HEAP32[$__wn >> 2] | 0; + $30 = $29 + -1 | 0; + L10 : do if ($28 >>> 0 < $30 >>> 0) { + $__w$02 = $28; while (1) { - $227 = HEAP32[$wk$440 >> 2] | 0; - if (($227 | 0) == ($i$338 | 0)) { - $233 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + if ((HEAP8[$__w$02 >> 0] | 0) != $27 << 24 >> 24) { + $__w$0$lcssa = $__w$02; + break L10; } - HEAP32[$wk$440 >> 2] = $233; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $34 = $__w$02 + 1 | 0; + if ($34 >>> 0 < $30 >>> 0) $__w$02 = $34; else { + $__w$0$lcssa = $34; break; } } - } - $237 = $labelInfo + 8 | 0; - $238 = $j$1$lcssa + -1 | 0; - HEAP32[$237 >> 2] = $238; - if (!$238) $$0 = 0; else { - _memset($225 | 0, 0, $238 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $245 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $260 = $i$534 * 7 | 0; - $263 = $labelInfo + 12 + ($259 << 2) | 0; - HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); - $270 = $259 << 1; - $271 = $labelInfo + 655376 + ($270 << 3) | 0; - HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); - $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); - $282 = $259 << 2; - $283 = $labelInfo + 131084 + ($282 << 2) | 0; - $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; - if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; - $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; - $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; - if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; - $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$237 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $312 = $labelInfo + 12 + ($i$633 << 2) | 0; - $315 = $i$633 << 1; - $316 = $labelInfo + 655376 + ($315 << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); - $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + } else $__w$0$lcssa = $28; while (0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS5_E4typeES9_S9_($__v, $__w$0$lcssa, $29) | 0; } + $36 = HEAP32[$__b >> 2] | 0; + do if (!$36) $49 = 0; else if ((HEAP32[$36 + 12 >> 2] | 0) == (HEAP32[$36 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$36 >> 2] | 0) + 36 >> 2] & 127]($36) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $49 = 0; + break; + } else { + $49 = HEAP32[$__b >> 2] | 0; + break; + } else $49 = $36; while (0); + $48 = ($49 | 0) == 0; + do if (!$6) label = 21; else { + if ((HEAP32[$10 + 12 >> 2] | 0) == (HEAP32[$10 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$6 >> 2] | 0) + 36 >> 2] & 127]($10) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 21; + break; + } + if (!$48) label = 22; + } while (0); + if ((label | 0) == 21) if ($48) label = 22; + if ((label | 0) == 22) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + $64 = HEAP32[$__b >> 2] | 0; + __ZNSt3__114__shared_count16__release_sharedEv($4) | 0; + $65 = HEAP32[$__wb >> 2] | 0; + HEAP32[$__wb >> 2] = 0; + if ($65) FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($65); STACKTOP = sp; - return $$0 | 0; + return $64 | 0; } -function _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision26ComputeSubpixelDerivativesERfS0_S0_S0_S0_RKNS_5ImageEii($Dx, $Dy, $Dxx, $Dyy, $Dxy, $im, $x, $y) { + $Dx = $Dx | 0; + $Dy = $Dy | 0; + $Dxx = $Dxx | 0; + $Dyy = $Dyy | 0; + $Dxy = $Dxy | 0; + $im = $im | 0; + $x = $x | 0; + $y = $y | 0; + var $$sum1 = 0, $0 = 0, $11 = 0, $16 = 0, $17 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $33 = 0, $38 = 0, $39 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $52 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $0 = sp; + if (($x | 0) > 0) { + $2 = $x + 1 | 0; + if ($2 >>> 0 < (HEAP32[$im + 4 >> 2] | 0) >>> 0) { + $22 = $y + -1 | 0; + if (($y | 0) > 0) { + $24 = $y + 1 | 0; + if ($24 >>> 0 < (HEAP32[$im + 8 >> 2] | 0) >>> 0) { + $44 = __ZNK6vision5Image3getIfEEPKT_j($im, $22) | 0; + $45 = $44 + ($x << 2) | 0; + $46 = __ZNK6vision5Image3getIfEEPKT_j($im, $y) | 0; + $47 = $46 + ($x << 2) | 0; + $48 = __ZNK6vision5Image3getIfEEPKT_j($im, $24) | 0; + $49 = $48 + ($x << 2) | 0; + $50 = $46 + ($2 << 2) | 0; + $$sum1 = $x + -1 | 0; + $52 = $46 + ($$sum1 << 2) | 0; + HEAPF32[$Dx >> 2] = (+HEAPF32[$50 >> 2] - +HEAPF32[$52 >> 2]) * .5; + HEAPF32[$Dy >> 2] = (+HEAPF32[$49 >> 2] - +HEAPF32[$45 >> 2]) * .5; + HEAPF32[$Dxx >> 2] = +HEAPF32[$50 >> 2] + (+HEAPF32[$52 >> 2] - +HEAPF32[$47 >> 2] * 2.0); + HEAPF32[$Dyy >> 2] = +HEAPF32[$49 >> 2] + (+HEAPF32[$45 >> 2] - +HEAPF32[$47 >> 2] * 2.0); + HEAPF32[$Dxy >> 2] = (+HEAPF32[$44 + ($$sum1 << 2) >> 2] + +HEAPF32[$48 + ($2 << 2) >> 2] - (+HEAPF32[$44 + ($2 << 2) >> 2] + +HEAPF32[$48 + ($$sum1 << 2) >> 2])) * .25; + STACKTOP = sp; + return; + } } + $33 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24160) | 0, 23408) | 0, 34302) | 0, 285) | 0, 34309) | 0, 23826) | 0; + $38 = __ZNKSt3__18ios_base6getlocEv($33 + (HEAP32[(HEAP32[$33 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $38; + $39 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $43 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$39 >> 2] | 0) + 28 >> 2] & 63]($39, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($33, $43) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($33) | 0; + _abort(); } } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $11 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 24104) | 0, 23408) | 0, 34302) | 0, 284) | 0, 34309) | 0, 23751) | 0; + $16 = __ZNKSt3__18ios_base6getlocEv($11 + (HEAP32[(HEAP32[$11 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $21 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$17 >> 2] | 0) + 28 >> 2] & 63]($17, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($11, $21) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($11) | 0; + _abort(); +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE15__insert_uniqueERKS2_($agg$result, $this, $__x) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__x = $__x | 0; + var $$pn = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $17 = 0, $2 = 0, $21 = 0, $25 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $57 = 0, $59 = 0, $63 = 0, $66 = 0, $67 = 0, $7 = 0, $74 = 0, $80 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__nd$0 = 0, $__nd$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $1 = HEAP32[$__x >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $4 = ($3 | 0) == 0; + L1 : do if ($4) { + $__chash$0 = 0; + label = 12; + } else { + $5 = $3 + -1 | 0; + $7 = ($5 & $3 | 0) == 0; + if ($7) $12 = $5 & $1; else $12 = ($1 >>> 0) % ($3 >>> 0) | 0; + $13 = HEAP32[(HEAP32[$this >> 2] | 0) + ($12 << 2) >> 2] | 0; + if (!$13) { + $__chash$0 = $12; + label = 12; + } else { + $$pn = $13; + while (1) { + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $__chash$0 = $12; + label = 12; + break L1; + } + $17 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($7) $21 = $17 & $5; else $21 = ($17 >>> 0) % ($3 >>> 0) | 0; + if (($21 | 0) != ($12 | 0)) { + $__chash$0 = $12; + label = 12; + break L1; + } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($1 | 0)) { + $80 = 0; + $__nd$1 = $__nd$0; + break; + } else $$pn = $__nd$0; } } + } while (0); + if ((label | 0) == 12) { + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE16__construct_nodeERKS2_j($0, $this, $__x, $1); + $25 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($4 | $29 > +($3 >>> 0) * $32) { + if ($3 >>> 0 > 2) $41 = ($3 + -1 & $3 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $3 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$2 >> 2] | 0; + $50 = $49 + -1 | 0; + if (!($50 & $49)) { + $__bc$0 = $49; + $__chash$1 = $50 & $1; + break; + } else { + $__bc$0 = $49; + $__chash$1 = ($1 >>> 0) % ($49 >>> 0) | 0; + break; + } + } else { + $__bc$0 = $3; + $__chash$1 = $__chash$0; + } while (0); + $57 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$57) { + $59 = $this + 8 | 0; + HEAP32[$25 >> 2] = HEAP32[$59 >> 2]; + HEAP32[$59 >> 2] = $25; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $59; + $63 = HEAP32[$25 >> 2] | 0; + if ($63) { + $66 = HEAP32[$63 + 4 >> 2] | 0; + $67 = $__bc$0 + -1 | 0; + if (!($67 & $__bc$0)) $74 = $66 & $67; else $74 = ($66 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($74 << 2) >> 2] = $25; + } + } else { + HEAP32[$25 >> 2] = HEAP32[$57 >> 2]; + HEAP32[$57 >> 2] = $25; + } + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $80 = 1; + $__nd$1 = $25; } - $18 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $27 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($27) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; + HEAP32[$agg$result >> 2] = $__nd$1; + HEAP8[$agg$result + 4 >> 0] = $80; + STACKTOP = sp; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in45 = 0, $$in45$lcssa = 0, $$lcssa = 0, $$lcssa61 = 0, $$lcssa63 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $22 = 0, $26 = 0, $3 = 0, $30 = 0, $32 = 0, $35 = 0, $37 = 0, $4 = 0, $__cp$0$in3140 = 0, $__cp$0$in34 = 0, $__cp$029 = 0, $__cp$02932 = 0, $__cp$0293237 = 0, $__cp$0293241 = 0, $__cp$02935 = 0, $__cp$030 = 0, $__cp$030$lcssa = 0, $__cp$030$lcssa58 = 0, $__i$043 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph39 = 0; + $0 = ($__nbc | 0) != 0; + if ($0) $4 = __Znwj($__nbc << 2) | 0; else $4 = 0; + $3 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $4; + if ($3) __ZdlPv($3); + HEAP32[$this + 4 >> 2] = $__nbc; + L7 : do if ($0) { + if ($__nbc) { + $__i$043 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$043 << 2) >> 2] = 0; + $__i$043 = $__i$043 + 1 | 0; + } while (($__i$043 | 0) != ($__nbc | 0)); + } + $10 = $this + 8 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + $14 = HEAP32[$11 + 4 >> 2] | 0; + $15 = $__nbc + -1 | 0; + $17 = ($15 & $__nbc | 0) == 0; + if ($17) $22 = $14 & $15; else $22 = ($14 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($22 << 2) >> 2] = $10; + $__cp$0293237 = HEAP32[$11 >> 2] | 0; + if ($__cp$0293237) { + $$in = $11; + $__cp$0$in3140 = $11; + $__cp$0293241 = $__cp$0293237; + $__phash$0$ph$ph39 = $22; while (1) { - do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($33 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $33; - $36 = ($33 << 16 >> 16) * 7 | 0; - $38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0; - HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; - $42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256; - $46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0; - HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + $$in45 = $$in; + $__cp$0$in34 = $__cp$0$in3140; + $__cp$02935 = $__cp$0293241; + L20 : while (1) { + $__cp$030 = $__cp$02935; + while (1) { + $26 = HEAP32[$__cp$030 + 4 >> 2] | 0; + if ($17) $30 = $26 & $15; else $30 = ($26 >>> 0) % ($__nbc >>> 0) | 0; + if (($30 | 0) == ($__phash$0$ph$ph39 | 0)) { + $__cp$030$lcssa = $__cp$030; + break; + } + $32 = (HEAP32[$this >> 2] | 0) + ($30 << 2) | 0; + if (!(HEAP32[$32 >> 2] | 0)) { + $$in45$lcssa = $$in45; + $$lcssa61 = $30; + $$lcssa63 = $32; + $__cp$030$lcssa58 = $__cp$030; + break L20; + } + $35 = $__cp$030 + 8 | 0; + $__np$0 = $__cp$030; + while (1) { + $37 = HEAP32[$__np$0 >> 2] | 0; + if (!$37) { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$37 + 8 >> 2] | 0)) $__np$0 = $37; else { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; + } + } + HEAP32[$$in45 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2] = $__cp$030; + $__cp$030 = HEAP32[$__cp$0$in34 >> 2] | 0; + if (!$__cp$030) break L7; } - $52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $53 = $52 << 16 >> 16; - $56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $57 = $56 << 16 >> 16; - $58 = $56 << 16 >> 16 > 0; - if ($52 << 16 >> 16 <= 0) { - if ($58) { - HEAP16[$pnt2$363 >> 1] = $56; - $158 = $57 * 7 | 0; - $160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1; - $164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256; - $168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0; - HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069; - $172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0; - if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + $__cp$029 = HEAP32[$__cp$030$lcssa >> 2] | 0; + if (!$__cp$029) break L7; else { + $$in45 = $__cp$030$lcssa; + $__cp$0$in34 = $__cp$030$lcssa; + $__cp$02935 = $__cp$029; + } + } + HEAP32[$$lcssa63 >> 2] = $$in45$lcssa; + $__cp$02932 = HEAP32[$__cp$030$lcssa58 >> 2] | 0; + if (!$__cp$02932) break; else { + $$in = $__cp$030$lcssa58; + $__cp$0$in3140 = $__cp$030$lcssa58; + $__cp$0293241 = $__cp$02932; + $__phash$0$ph$ph39 = $$lcssa61; + } + } + } + } + } while (0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in45 = 0, $$in45$lcssa = 0, $$lcssa = 0, $$lcssa61 = 0, $$lcssa63 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $22 = 0, $26 = 0, $3 = 0, $30 = 0, $32 = 0, $35 = 0, $37 = 0, $4 = 0, $__cp$0$in3140 = 0, $__cp$0$in34 = 0, $__cp$029 = 0, $__cp$02932 = 0, $__cp$0293237 = 0, $__cp$0293241 = 0, $__cp$02935 = 0, $__cp$030 = 0, $__cp$030$lcssa = 0, $__cp$030$lcssa58 = 0, $__i$043 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph39 = 0; + $0 = ($__nbc | 0) != 0; + if ($0) $4 = __Znwj($__nbc << 2) | 0; else $4 = 0; + $3 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $4; + if ($3) __ZdlPv($3); + HEAP32[$this + 4 >> 2] = $__nbc; + L7 : do if ($0) { + if ($__nbc) { + $__i$043 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$043 << 2) >> 2] = 0; + $__i$043 = $__i$043 + 1 | 0; + } while (($__i$043 | 0) != ($__nbc | 0)); + } + $10 = $this + 8 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + $14 = HEAP32[$11 + 4 >> 2] | 0; + $15 = $__nbc + -1 | 0; + $17 = ($15 & $__nbc | 0) == 0; + if ($17) $22 = $14 & $15; else $22 = ($14 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($22 << 2) >> 2] = $10; + $__cp$0293237 = HEAP32[$11 >> 2] | 0; + if ($__cp$0293237) { + $$in = $11; + $__cp$0$in3140 = $11; + $__cp$0293241 = $__cp$0293237; + $__phash$0$ph$ph39 = $22; + while (1) { + $$in45 = $$in; + $__cp$0$in34 = $__cp$0$in3140; + $__cp$02935 = $__cp$0293241; + L20 : while (1) { + $__cp$030 = $__cp$02935; + while (1) { + $26 = HEAP32[$__cp$030 + 4 >> 2] | 0; + if ($17) $30 = $26 & $15; else $30 = ($26 >>> 0) % ($__nbc >>> 0) | 0; + if (($30 | 0) == ($__phash$0$ph$ph39 | 0)) { + $__cp$030$lcssa = $__cp$030; + break; + } + $32 = (HEAP32[$this >> 2] | 0) + ($30 << 2) | 0; + if (!(HEAP32[$32 >> 2] | 0)) { + $$in45$lcssa = $$in45; + $$lcssa61 = $30; + $$lcssa63 = $32; + $__cp$030$lcssa58 = $__cp$030; + break L20; + } + $35 = $__cp$030 + 8 | 0; + $__np$0 = $__cp$030; + while (1) { + $37 = HEAP32[$__np$0 >> 2] | 0; + if (!$37) { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$37 + 8 >> 2] | 0)) $__np$0 = $37; else { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; + } + } + HEAP32[$$in45 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2] = $__cp$030; + $__cp$030 = HEAP32[$__cp$0$in34 >> 2] | 0; + if (!$__cp$030) break L7; + } + $__cp$029 = HEAP32[$__cp$030$lcssa >> 2] | 0; + if (!$__cp$029) break L7; else { + $$in45 = $__cp$030$lcssa; + $__cp$0$in34 = $__cp$030$lcssa; + $__cp$02935 = $__cp$029; + } + } + HEAP32[$$lcssa63 >> 2] = $$in45$lcssa; + $__cp$02932 = HEAP32[$__cp$030$lcssa58 >> 2] | 0; + if (!$__cp$02932) break; else { + $$in = $__cp$030$lcssa58; + $__cp$0$in3140 = $__cp$030$lcssa58; + $__cp$0293241 = $__cp$02932; + $__phash$0$ph$ph39 = $$lcssa61; + } + } + } + } + } while (0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in45 = 0, $$in45$lcssa = 0, $$lcssa = 0, $$lcssa61 = 0, $$lcssa63 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $22 = 0, $26 = 0, $3 = 0, $30 = 0, $32 = 0, $35 = 0, $37 = 0, $4 = 0, $__cp$0$in3140 = 0, $__cp$0$in34 = 0, $__cp$029 = 0, $__cp$02932 = 0, $__cp$0293237 = 0, $__cp$0293241 = 0, $__cp$02935 = 0, $__cp$030 = 0, $__cp$030$lcssa = 0, $__cp$030$lcssa58 = 0, $__i$043 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph39 = 0; + $0 = ($__nbc | 0) != 0; + if ($0) $4 = __Znwj($__nbc << 2) | 0; else $4 = 0; + $3 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $4; + if ($3) __ZdlPv($3); + HEAP32[$this + 4 >> 2] = $__nbc; + L7 : do if ($0) { + if ($__nbc) { + $__i$043 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$043 << 2) >> 2] = 0; + $__i$043 = $__i$043 + 1 | 0; + } while (($__i$043 | 0) != ($__nbc | 0)); + } + $10 = $this + 8 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + $14 = HEAP32[$11 + 4 >> 2] | 0; + $15 = $__nbc + -1 | 0; + $17 = ($15 & $__nbc | 0) == 0; + if ($17) $22 = $14 & $15; else $22 = ($14 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($22 << 2) >> 2] = $10; + $__cp$0293237 = HEAP32[$11 >> 2] | 0; + if ($__cp$0293237) { + $$in = $11; + $__cp$0$in3140 = $11; + $__cp$0293241 = $__cp$0293237; + $__phash$0$ph$ph39 = $22; + while (1) { + $$in45 = $$in; + $__cp$0$in34 = $__cp$0$in3140; + $__cp$02935 = $__cp$0293241; + L20 : while (1) { + $__cp$030 = $__cp$02935; + while (1) { + $26 = HEAP32[$__cp$030 + 4 >> 2] | 0; + if ($17) $30 = $26 & $15; else $30 = ($26 >>> 0) % ($__nbc >>> 0) | 0; + if (($30 | 0) == ($__phash$0$ph$ph39 | 0)) { + $__cp$030$lcssa = $__cp$030; break; } - $178 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($178 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $178; - $181 = ($178 << 16 >> 16) * 7 | 0; - $183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0; - HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1; - $187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256; - $191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0; - HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069; - $195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0; - if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; + $32 = (HEAP32[$this >> 2] | 0) + ($30 << 2) | 0; + if (!(HEAP32[$32 >> 2] | 0)) { + $$in45$lcssa = $$in45; + $$lcssa61 = $30; + $$lcssa63 = $32; + $__cp$030$lcssa58 = $__cp$030; + break L20; + } + $35 = $__cp$030 + 8 | 0; + $__np$0 = $__cp$030; + while (1) { + $37 = HEAP32[$__np$0 >> 2] | 0; + if (!$37) { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; + } + if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$37 + 8 >> 2] | 0)) $__np$0 = $37; else { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; break; } - HEAP32[$195 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $198 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $198; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16; - $203 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $198; - break; } + HEAP32[$$in45 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2] = $__cp$030; + $__cp$030 = HEAP32[$__cp$0$in34 >> 2] | 0; + if (!$__cp$030) break L7; } - if ($58) { - $61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - $64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0; - if (($61 | 0) > ($64 | 0)) { - HEAP16[$pnt2$363 >> 1] = $64; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $81 = $64; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $81 = $64; - } else { - HEAP16[$pnt2$363 >> 1] = $61; - if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $81 = $61; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $81 = $61; - } - $83 = ($81 << 16 >> 16) * 7 | 0; - $85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0; - HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1; - $89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256; - $93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + $__cp$029 = HEAP32[$__cp$030$lcssa >> 2] | 0; + if (!$__cp$029) break L7; else { + $$in45 = $__cp$030$lcssa; + $__cp$0$in34 = $__cp$030$lcssa; + $__cp$02935 = $__cp$029; } - $99 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($99 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $52; - $139 = $53 * 7 | 0; - $141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1; - $145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256; - $149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0; - HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069; - $153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0; - if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; + } + HEAP32[$$lcssa63 >> 2] = $$in45$lcssa; + $__cp$02932 = HEAP32[$__cp$030$lcssa58 >> 2] | 0; + if (!$__cp$02932) break; else { + $$in = $__cp$030$lcssa58; + $__cp$0$in3140 = $__cp$030$lcssa58; + $__cp$0293241 = $__cp$02932; + $__phash$0$ph$ph39 = $$lcssa61; + } + } + } + } + } while (0); + return; +} + +function __ZNSt3__19__num_getIwE19__stage2_float_loopEwRbRcPcRS4_wwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSE_RjPw($__ct, $__in_units, $__exp, $__a, $__a_end, $__decimal_point, $__thousands_sep, $__grouping, $__g, $__g_end, $__dc, $__atoms) { + $__ct = $__ct | 0; + $__in_units = $__in_units | 0; + $__exp = $__exp | 0; + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__decimal_point = $__decimal_point | 0; + $__thousands_sep = $__thousands_sep | 0; + $__grouping = $__grouping | 0; + $__g = $__g | 0; + $__g_end = $__g_end | 0; + $__dc = $__dc | 0; + $__atoms = $__atoms | 0; + var $$0 = 0, $$0$i3 = 0, $$0$lcssa$i = 0, $14 = 0, $19 = 0, $22 = 0, $3 = 0, $33 = 0, $38 = 0, $40 = 0, $47 = 0, $48 = 0, $5 = 0, $51 = 0, $52 = 0, $64 = 0, $72 = 0, $81 = 0, $86 = 0, $88 = 0; + L1 : do if (($__ct | 0) == ($__decimal_point | 0)) if (!(HEAP8[$__in_units >> 0] | 0)) $$0 = -1; else { + HEAP8[$__in_units >> 0] = 0; + $3 = HEAP32[$__a_end >> 2] | 0; + HEAP32[$__a_end >> 2] = $3 + 1; + HEAP8[$3 >> 0] = 46; + $5 = HEAP8[$__grouping >> 0] | 0; + if (!((($5 & 1) == 0 ? ($5 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0)) $$0 = 0; else { + $14 = HEAP32[$__g_end >> 2] | 0; + if (($14 - $__g | 0) < 160) { + $19 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $14 + 4; + HEAP32[$14 >> 2] = $19; + $$0 = 0; + } else $$0 = 0; + } + } else { + if (($__ct | 0) == ($__thousands_sep | 0)) { + $22 = HEAP8[$__grouping >> 0] | 0; + if ((($22 & 1) == 0 ? ($22 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) { + if (!(HEAP8[$__in_units >> 0] | 0)) { + $$0 = -1; + break; + } + $33 = HEAP32[$__g_end >> 2] | 0; + if (($33 - $__g | 0) >= 160) { + $$0 = 0; + break; + } + $38 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $33 + 4; + HEAP32[$33 >> 2] = $38; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + break; + } + } + $40 = $__atoms + 128 | 0; + $$0$i3 = $__atoms; + while (1) { + if ((HEAP32[$$0$i3 >> 2] | 0) == ($__ct | 0)) { + $$0$lcssa$i = $$0$i3; + break; + } + $$0$i3 = $$0$i3 + 4 | 0; + if (($$0$i3 | 0) == ($40 | 0)) { + $$0$lcssa$i = $40; + break; + } + } + $47 = $$0$lcssa$i - $__atoms | 0; + $48 = $47 >> 2; + if (($47 | 0) > 124) $$0 = -1; else { + $51 = HEAP8[55292 + $48 >> 0] | 0; + switch ($48 | 0) { + case 24: + case 25: + { + $52 = HEAP32[$__a_end >> 2] | 0; + if (($52 | 0) != ($__a | 0)) if ((HEAPU8[$52 + -1 >> 0] & 95 | 0) != (HEAPU8[$__exp >> 0] & 127 | 0)) { + $$0 = -1; + break L1; + } + HEAP32[$__a_end >> 2] = $52 + 1; + HEAP8[$52 >> 0] = $51; + $$0 = 0; + break L1; + break; + } + case 23: + case 22: + { + HEAP8[$__exp >> 0] = 80; + break; + } + default: + { + $64 = $51 & 95; + if (($64 | 0) == (HEAP8[$__exp >> 0] | 0)) { + HEAP8[$__exp >> 0] = $64 | 128; + if (HEAP8[$__in_units >> 0] | 0) { + HEAP8[$__in_units >> 0] = 0; + $72 = HEAP8[$__grouping >> 0] | 0; + if ((($72 & 1) == 0 ? ($72 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) { + $81 = HEAP32[$__g_end >> 2] | 0; + if (($81 - $__g | 0) < 160) { + $86 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $81 + 4; + HEAP32[$81 >> 2] = $86; + } + } } - $104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - $107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($104 | 0) > ($107 | 0)) { - HEAP16[$pnt2$363 >> 1] = $107; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $124 = $107; - break; - } else $wk$246 = $wk$246 + 4 | 0; + } + } + } + $88 = HEAP32[$__a_end >> 2] | 0; + HEAP32[$__a_end >> 2] = $88 + 1; + HEAP8[$88 >> 0] = $51; + if (($47 | 0) > 84) $$0 = 0; else { + HEAP32[$__dc >> 2] = (HEAP32[$__dc >> 2] | 0) + 1; + $$0 = 0; + } + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE8__rehashEj($this, $__nbc) { + $this = $this | 0; + $__nbc = $__nbc | 0; + var $$in = 0, $$in45 = 0, $$in45$lcssa = 0, $$lcssa = 0, $$lcssa61 = 0, $$lcssa63 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $22 = 0, $26 = 0, $3 = 0, $30 = 0, $32 = 0, $35 = 0, $37 = 0, $4 = 0, $__cp$0$in3140 = 0, $__cp$0$in34 = 0, $__cp$029 = 0, $__cp$02932 = 0, $__cp$0293237 = 0, $__cp$0293241 = 0, $__cp$02935 = 0, $__cp$030 = 0, $__cp$030$lcssa = 0, $__cp$030$lcssa58 = 0, $__i$043 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph39 = 0; + $0 = ($__nbc | 0) != 0; + if ($0) $4 = __Znwj($__nbc << 2) | 0; else $4 = 0; + $3 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $4; + if ($3) __ZdlPv($3); + HEAP32[$this + 4 >> 2] = $__nbc; + L7 : do if ($0) { + if ($__nbc) { + $__i$043 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$043 << 2) >> 2] = 0; + $__i$043 = $__i$043 + 1 | 0; + } while (($__i$043 | 0) != ($__nbc | 0)); + } + $10 = $this + 8 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11) { + $14 = HEAP32[$11 + 4 >> 2] | 0; + $15 = $__nbc + -1 | 0; + $17 = ($15 & $__nbc | 0) == 0; + if ($17) $22 = $14 & $15; else $22 = ($14 >>> 0) % ($__nbc >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($22 << 2) >> 2] = $10; + $__cp$0293237 = HEAP32[$11 >> 2] | 0; + if ($__cp$0293237) { + $$in = $11; + $__cp$0$in3140 = $11; + $__cp$0293241 = $__cp$0293237; + $__phash$0$ph$ph39 = $22; + while (1) { + $$in45 = $$in; + $__cp$0$in34 = $__cp$0$in3140; + $__cp$02935 = $__cp$0293241; + L20 : while (1) { + $__cp$030 = $__cp$02935; + while (1) { + $26 = HEAP32[$__cp$030 + 4 >> 2] | 0; + if ($17) $30 = $26 & $15; else $30 = ($26 >>> 0) % ($__nbc >>> 0) | 0; + if (($30 | 0) == ($__phash$0$ph$ph39 | 0)) { + $__cp$030$lcssa = $__cp$030; + break; + } + $32 = (HEAP32[$this >> 2] | 0) + ($30 << 2) | 0; + if (!(HEAP32[$32 >> 2] | 0)) { + $$in45$lcssa = $$in45; + $$lcssa61 = $30; + $$lcssa63 = $32; + $__cp$030$lcssa58 = $__cp$030; + break L20; + } + $35 = $__cp$030 + 8 | 0; + $__np$0 = $__cp$030; + while (1) { + $37 = HEAP32[$__np$0 >> 2] | 0; + if (!$37) { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; } - } else $124 = $107; - } else { - HEAP16[$pnt2$363 >> 1] = $104; - if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $124 = $104; - break; - } else $wk$343 = $wk$343 + 4 | 0; + if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$37 + 8 >> 2] | 0)) $__np$0 = $37; else { + $$lcssa = $37; + $__np$0$lcssa = $__np$0; + break; } - } else $124 = $104; + } + HEAP32[$$in45 >> 2] = $$lcssa; + HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2]; + HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($30 << 2) >> 2] >> 2] = $__cp$030; + $__cp$030 = HEAP32[$__cp$0$in34 >> 2] | 0; + if (!$__cp$030) break L7; + } + $__cp$029 = HEAP32[$__cp$030$lcssa >> 2] | 0; + if (!$__cp$029) break L7; else { + $$in45 = $__cp$030$lcssa; + $__cp$0$in34 = $__cp$030$lcssa; + $__cp$02935 = $__cp$029; } - $126 = ($124 << 16 >> 16) * 7 | 0; - $128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0; - HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1; - $132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256; - $136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $218 = $pnt$164 + 4 | 0; - $219 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $218; - $pnt2$3$lcssa = $219; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $218; - $pnt2$363 = $219; - $wk_max$158 = $wk_max$2; + } + HEAP32[$$lcssa63 >> 2] = $$in45$lcssa; + $__cp$02932 = HEAP32[$__cp$030$lcssa58 >> 2] | 0; + if (!$__cp$02932) break; else { + $$in = $__cp$030$lcssa58; + $__cp$0$in3140 = $__cp$030$lcssa58; + $__cp$0293241 = $__cp$02932; + $__phash$0$ph$ph39 = $$lcssa61; } } + } + } + } while (0); + return; +} + +function _arglCameraFrustum($cparam, $focalmin, $focalmax, $m_projection) { + $cparam = $cparam | 0; + $focalmin = +$focalmin; + $focalmax = +$focalmax; + $m_projection = $m_projection | 0; + var $0 = 0, $11 = 0, $17 = 0, $2 = 0, $23 = 0, $29 = 0, $33 = 0.0, $50 = 0.0, $63 = 0, $7 = 0.0, $75 = 0, $77 = 0.0, $84 = 0, $88 = 0.0, $90 = 0.0, $92 = 0.0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0.0, $98 = 0.0, $i$111 = 0, $i$29 = 0, $icpara = 0, $j$18 = 0, $p = 0, $q = 0, $trans = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 400 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $icpara = sp + 296 | 0; + $trans = sp + 200 | 0; + $p = sp + 128 | 0; + $q = sp; + $0 = HEAP32[$cparam >> 2] | 0; + $2 = HEAP32[$cparam + 4 >> 2] | 0; + if ((_arParamDecompMat($cparam + 8 | 0, $icpara, $trans) | 0) < 0) _arLog(3, 20181, sp + 392 | 0); else { + $7 = +($2 + -1 | 0); + $11 = $icpara + 32 | 0; + HEAPF64[$11 >> 3] = $7 * +HEAPF64[$icpara + 64 >> 3] - +HEAPF64[$11 >> 3]; + $17 = $icpara + 40 | 0; + HEAPF64[$17 >> 3] = $7 * +HEAPF64[$icpara + 72 >> 3] - +HEAPF64[$17 >> 3]; + $23 = $icpara + 48 | 0; + HEAPF64[$23 >> 3] = $7 * +HEAPF64[$icpara + 80 >> 3] - +HEAPF64[$23 >> 3]; + $29 = $icpara + 56 | 0; + HEAPF64[$29 >> 3] = $7 * +HEAPF64[$icpara + 88 >> 3] - +HEAPF64[$29 >> 3]; + $33 = +HEAPF64[$icpara + 80 >> 3]; + $i$111 = 0; + do { + HEAPF64[$p + ($i$111 * 24 | 0) >> 3] = +HEAPF64[$icpara + ($i$111 << 5) >> 3] / $33; + HEAPF64[$p + ($i$111 * 24 | 0) + 8 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 8 >> 3] / $33; + HEAPF64[$p + ($i$111 * 24 | 0) + 16 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 16 >> 3] / $33; + $i$111 = $i$111 + 1 | 0; + } while (($i$111 | 0) != 3); + $50 = +($0 + -1 | 0); + HEAPF64[$q >> 3] = +HEAPF64[$p >> 3] * 2.0 / $50; + HEAPF64[$q + 8 >> 3] = +HEAPF64[$p + 8 >> 3] * 2.0 / $50; + HEAPF64[$q + 16 >> 3] = +HEAPF64[$p + 16 >> 3] * 2.0 / $50 + -1.0; + $63 = $q + 24 | 0; + HEAP32[$63 >> 2] = 0; + HEAP32[$63 + 4 >> 2] = 0; + HEAP32[$63 + 8 >> 2] = 0; + HEAP32[$63 + 12 >> 2] = 0; + HEAPF64[$q + 40 >> 3] = +HEAPF64[$p + 32 >> 3] * 2.0 / $7; + HEAPF64[$q + 48 >> 3] = +HEAPF64[$p + 40 >> 3] * 2.0 / $7 + -1.0; + $75 = $q + 56 | 0; + $77 = $focalmax - $focalmin; + HEAP32[$75 >> 2] = 0; + HEAP32[$75 + 4 >> 2] = 0; + HEAP32[$75 + 8 >> 2] = 0; + HEAP32[$75 + 12 >> 2] = 0; + HEAP32[$75 + 16 >> 2] = 0; + HEAP32[$75 + 20 >> 2] = 0; + HEAPF64[$q + 80 >> 3] = ($focalmin + $focalmax) / $77; + HEAPF64[$q + 88 >> 3] = $focalmax * -2.0 * $focalmin / $77; + $84 = $q + 96 | 0; + HEAP32[$84 >> 2] = 0; + HEAP32[$84 + 4 >> 2] = 0; + HEAP32[$84 + 8 >> 2] = 0; + HEAP32[$84 + 12 >> 2] = 0; + HEAPF64[$q + 112 >> 3] = 1.0; + HEAPF64[$q + 120 >> 3] = 0.0; + $88 = +HEAPF64[$trans + 24 >> 3]; + $90 = +HEAPF64[$trans + 56 >> 3]; + $92 = +HEAPF64[$trans + 88 >> 3]; + $i$29 = 0; + do { + $94 = +HEAPF64[$q + ($i$29 << 5) >> 3]; + $95 = $q + ($i$29 << 5) + 8 | 0; + $96 = $q + ($i$29 << 5) + 16 | 0; + $97 = +HEAPF64[$95 >> 3]; + $98 = +HEAPF64[$96 >> 3]; + $j$18 = 0; + do { + HEAPF64[$m_projection + (($j$18 << 2) + $i$29 << 3) >> 3] = $94 * +HEAPF64[$trans + ($j$18 << 3) >> 3] + $97 * +HEAPF64[$trans + 32 + ($j$18 << 3) >> 3] + $98 * +HEAPF64[$trans + 64 + ($j$18 << 3) >> 3]; + $j$18 = $j$18 + 1 | 0; + } while (($j$18 | 0) != 3); + HEAPF64[$m_projection + ($i$29 + 12 << 3) >> 3] = +HEAPF64[$q + ($i$29 << 5) + 24 >> 3] + ($94 * $88 + +HEAPF64[$95 >> 3] * $90 + +HEAPF64[$96 >> 3] * $92); + $i$29 = $i$29 + 1 | 0; + } while (($i$29 | 0) != 4); + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIwEE($this, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre = 0, $$pre$i3$i$i915 = 0, $0 = 0, $13 = 0, $16 = 0, $28 = 0, $3 = 0, $30 = 0, $46 = 0, $47 = 0, $48 = 0, $58 = 0, $59 = 0, $71 = 0, $83 = 0, $84 = 0, label = 0; + $0 = HEAP32[$__b >> 2] | 0; + do if (!$0) $83 = 1; else { + $3 = HEAP32[$0 + 12 >> 2] | 0; + if (($3 | 0) == (HEAP32[$0 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 127]($0) | 0; else $$0$i$i$i$i = HEAP32[$3 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $83 = 1; + break; + } else { + $83 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $13 = HEAP32[$__e >> 2] | 0; + do if (!$13) label = 14; else { + $16 = HEAP32[$13 + 12 >> 2] | 0; + if (($16 | 0) == (HEAP32[$13 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$13 >> 2] | 0) + 36 >> 2] & 127]($13) | 0; else $$0$i$i1$i$i = HEAP32[$16 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 14; + break; + } else if ($83) { + $$pre$i3$i$i915 = $13; + label = 17; + break; + } else { + label = 16; + break; + } + } while (0); + if ((label | 0) == 14) if ($83) label = 16; else { + $$pre$i3$i$i915 = 0; + label = 17; + } + L22 : do if ((label | 0) == 16) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 6; else if ((label | 0) == 17) { + $28 = HEAP32[$__b >> 2] | 0; + $30 = HEAP32[$28 + 12 >> 2] | 0; + if (($30 | 0) == (HEAP32[$28 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$28 >> 2] | 0) + 36 >> 2] & 127]($28) | 0; else $$0$i$i = HEAP32[$30 >> 2] | 0; + if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 52 >> 2] & 63]($__ct, $$0$i$i, 0) | 0) << 24 >> 24 != 37) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + break; + } + $46 = HEAP32[$__b >> 2] | 0; + $47 = $46 + 12 | 0; + $48 = HEAP32[$47 >> 2] | 0; + if (($48 | 0) == (HEAP32[$46 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$46 >> 2] | 0) + 40 >> 2] & 127]($46) | 0; + $$pre = HEAP32[$__b >> 2] | 0; + if (!$$pre) $84 = 1; else { + $58 = $$pre; + label = 25; + } + } else { + HEAP32[$47 >> 2] = $48 + 4; + $58 = $46; + label = 25; + } + do if ((label | 0) == 25) { + $59 = HEAP32[$58 + 12 >> 2] | 0; + if (($59 | 0) == (HEAP32[$58 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$58 >> 2] | 0) + 36 >> 2] & 127]($58) | 0; else $$0$i$i$i$i1 = HEAP32[$59 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $84 = 1; + break; } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $84 = (HEAP32[$__b >> 2] | 0) == 0; + break; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } while (0); + do if (!$$pre$i3$i$i915) label = 37; else { + $71 = HEAP32[$$pre$i3$i$i915 + 12 >> 2] | 0; + if (($71 | 0) == (HEAP32[$$pre$i3$i$i915 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i915 >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i915) | 0; else $$0$i$i1$i$i7 = HEAP32[$71 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 37; + break; + } else if ($84) break L22; else break; + } while (0); + if ((label | 0) == 37) if (!$84) break; + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + } while (0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS9_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; + } else { + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; + while (1) { + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; + } + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; + } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; + break; + } else $$pn = $__ndptr$0; + } + } + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; + } + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; + } + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS7_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $225 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; while (1) { - $227 = HEAP32[$wk$440 >> 2] | 0; - if (($227 | 0) == ($i$338 | 0)) { - $233 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; } - HEAP32[$wk$440 >> 2] = $233; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; + } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; break; - } + } else $$pn = $__ndptr$0; } } - $237 = $labelInfo + 8 | 0; - $238 = $j$1$lcssa + -1 | 0; - HEAP32[$237 >> 2] = $238; - if (!$238) $$0 = 0; else { - _memset($225 | 0, 0, $238 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $245 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0)); + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; + } else { + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $260 = $i$534 * 7 | 0; - $263 = $labelInfo + 12 + ($259 << 2) | 0; - HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0); - $270 = $259 << 1; - $271 = $labelInfo + 655376 + ($270 << 3) | 0; - HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0); - $279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0; - HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0); - $282 = $259 << 2; - $283 = $labelInfo + 131084 + ($282 << 2) | 0; - $287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0; - if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287; - $290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0; - $294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0; - if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294; - $297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0; - $301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0; - if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301; - $304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0; - $308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0; - if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } - if ((HEAP32[$237 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $312 = $labelInfo + 12 + ($i$633 << 2) | 0; - $315 = $i$633 << 1; - $316 = $labelInfo + 655376 + ($315 << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0); - $322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0; - HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; } - STACKTOP = sp; - return $$0 | 0; + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; } -function _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function _jpeg_idct_2x2($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $$sum7 = 0, $1 = 0, $101 = 0, $102 = 0, $20 = 0, $26 = 0, $33 = 0, $43 = 0, $5 = 0, $54 = 0, $55 = 0, $67 = 0, $68 = 0, $7 = 0, $70 = 0, $72 = 0, $86 = 0, $98 = 0, $ctr$024 = 0, $ctr$117 = 0, $inptr$022 = 0, $quantptr$020 = 0, $workspace = 0, $wsptr$018 = 0, $wsptr$116 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 64 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; + $workspace = sp; + $1 = HEAP32[$cinfo + 324 >> 2] | 0; + $ctr$024 = 8; + $inptr$022 = $coef_block; + $quantptr$020 = HEAP32[$compptr + 80 >> 2] | 0; + $wsptr$018 = $workspace; + while (1) { + L3 : do switch ($ctr$024 | 0) { + case 2: + case 4: + case 6: + break; + default: + { + $5 = HEAP16[$inptr$022 + 16 >> 1] | 0; + $7 = HEAP16[$inptr$022 + 48 >> 1] | 0; + if (!(($5 | $7) << 16 >> 16)) if (!(HEAP16[$inptr$022 + 80 >> 1] | 0)) if (!(HEAP16[$inptr$022 + 112 >> 1] | 0)) { + $20 = Math_imul(HEAP32[$quantptr$020 >> 2] << 2, HEAP16[$inptr$022 >> 1] | 0) | 0; + HEAP32[$wsptr$018 >> 2] = $20; + HEAP32[$wsptr$018 + 32 >> 2] = $20; + break L3; + } else $43 = 0; else $43 = 0; else $43 = $7; + $26 = Math_imul(HEAP32[$quantptr$020 >> 2] << 15, HEAP16[$inptr$022 >> 1] | 0) | 0; + $33 = Math_imul((HEAP32[$quantptr$020 + 224 >> 2] | 0) * 5906 | 0, HEAP16[$inptr$022 + 112 >> 1] | 0) | 0; + $54 = (Math_imul((HEAP32[$quantptr$020 + 160 >> 2] | 0) * 6967 | 0, HEAP16[$inptr$022 + 80 >> 1] | 0) | 0) - $33 - (Math_imul((HEAP32[$quantptr$020 + 96 >> 2] | 0) * 10426 | 0, $43 << 16 >> 16) | 0) + (Math_imul((HEAP32[$quantptr$020 + 32 >> 2] | 0) * 29692 | 0, $5 << 16 >> 16) | 0) | 0; + $55 = $26 | 4096; + HEAP32[$wsptr$018 >> 2] = $55 + $54 >> 13; + HEAP32[$wsptr$018 + 32 >> 2] = $55 - $54 >> 13; } - } + } while (0); + if (($ctr$024 | 0) > 1) { + $ctr$024 = $ctr$024 + -1 | 0; + $inptr$022 = $inptr$022 + 2 | 0; + $quantptr$020 = $quantptr$020 + 4 | 0; + $wsptr$018 = $wsptr$018 + 4 | 0; + } else break; } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } + $$sum7 = $output_col + 1 | 0; + $ctr$117 = 0; + $wsptr$116 = $workspace; + while (1) { + $67 = HEAP32[$output_buf + ($ctr$117 << 2) >> 2] | 0; + $68 = $67 + $output_col | 0; + $70 = HEAP32[$wsptr$116 + 4 >> 2] | 0; + $72 = HEAP32[$wsptr$116 + 12 >> 2] | 0; + if (!($70 | $72)) if (!(HEAP32[$wsptr$116 + 20 >> 2] | 0)) if (!(HEAP32[$wsptr$116 + 28 >> 2] | 0)) { + $86 = HEAP8[$1 + ((((HEAP32[$wsptr$116 >> 2] | 0) + 16 | 0) >>> 5 & 1023) + 128) >> 0] | 0; + HEAP8[$68 >> 0] = $86; + HEAP8[$67 + $$sum7 >> 0] = $86; + } else { + $98 = 0; + label = 14; + } else { + $98 = 0; + label = 14; + } else { + $98 = $72; + label = 14; + } + if ((label | 0) == 14) { + label = 0; + $101 = (Math_imul(HEAP32[$wsptr$116 + 28 >> 2] | 0, -5906) | 0) + ((HEAP32[$wsptr$116 + 20 >> 2] | 0) * 6967 | 0) + (Math_imul($98, -10426) | 0) + ($70 * 29692 | 0) | 0; + $102 = (HEAP32[$wsptr$116 >> 2] << 15) + 524288 | 0; + HEAP8[$68 >> 0] = HEAP8[$1 + ((($102 + $101 | 0) >>> 20 & 1023) + 128) >> 0] | 0; + HEAP8[$67 + $$sum7 >> 0] = HEAP8[$1 + ((($102 - $101 | 0) >>> 20 & 1023) + 128) >> 0] | 0; } + $ctr$117 = $ctr$117 + 1 | 0; + if (($ctr$117 | 0) == 2) break; else $wsptr$116 = $wsptr$116 + 32 | 0; } - $18 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $27 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($27) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($32 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $32; - $35 = ($32 << 16 >> 16) * 7 | 0; - $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; - $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256; - $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $57 = $55 << 16 >> 16 > 0; - if ($51 << 16 >> 16 <= 0) { - if ($57) { - HEAP16[$pnt2$363 >> 1] = $55; - $157 = $56 * 7 | 0; - $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; - $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256; - $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069; - $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; - if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $177 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($177 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $177; - $180 = ($177 << 16 >> 16) * 7 | 0; - $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; - $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256; - $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069; - $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; - if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$194 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $197 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $197; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16; - $202 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $197; - break; - } - } - if ($57) { - $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - if (($60 | 0) > ($63 | 0)) { - HEAP16[$pnt2$363 >> 1] = $63; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $80 = $63; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $80 = $63; - } else { - HEAP16[$pnt2$363 >> 1] = $60; - if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $80 = $60; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $80 = $60; - } - $82 = ($80 << 16 >> 16) * 7 | 0; - $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; - $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256; - $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $98 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($98 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $51; - $138 = $52 * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069; - $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; - if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($103 | 0) > ($106 | 0)) { - HEAP16[$pnt2$363 >> 1] = $106; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $123 = $106; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $123 = $106; - } else { - HEAP16[$pnt2$363 >> 1] = $103; - if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $123 = $103; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $123 = $103; - } - $125 = ($123 << 16 >> 16) * 7 | 0; - $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; - $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256; - $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $217 = $pnt$164 + 4 | 0; - $218 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $217; - $pnt2$3$lcssa = $218; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $217; - $pnt2$363 = $218; - $wk_max$158 = $wk_max$2; - } - } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; - } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; - } + STACKTOP = sp; + return; +} + +function _arParamIdeal2Observ($dist_factor, $ix, $iy, $ox, $oy, $dist_function_version) { + $dist_factor = $dist_factor | 0; + $ix = +$ix; + $iy = +$iy; + $ox = $ox | 0; + $oy = $oy | 0; + $dist_function_version = $dist_function_version | 0; + var $$0 = 0, $10 = 0.0, $104 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0, $130 = 0.0, $14 = 0.0, $141 = 0.0, $16 = 0.0, $19 = 0.0, $22 = 0.0, $25 = 0.0, $30 = 0.0, $4 = 0.0, $55 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0, $63 = 0.0, $71 = 0.0, $8 = 0.0, $83 = 0.0, $90 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0, $98 = 0.0, $storemerge = 0.0, $storemerge6 = 0.0, $storemerge7 = 0.0; + switch ($dist_function_version | 0) { + case 4: + { + $4 = +HEAPF64[$dist_factor + 16 >> 3]; + $6 = +HEAPF64[$dist_factor + 24 >> 3]; + $8 = +HEAPF64[$dist_factor + 32 >> 3]; + $10 = +HEAPF64[$dist_factor + 40 >> 3]; + $12 = +HEAPF64[$dist_factor + 48 >> 3]; + $14 = +HEAPF64[$dist_factor + 56 >> 3]; + $16 = +HEAPF64[$dist_factor + 64 >> 3]; + $19 = ($ix - $12) * $16 / $8; + $22 = ($iy - $14) * $16 / $10; + $25 = $19 * $19 + $22 * $22; + $30 = +HEAPF64[$dist_factor >> 3] * $25 + 1.0 + $25 * (+HEAPF64[$dist_factor + 8 >> 3] * $25); + HEAPF64[$ox >> 3] = $12 + $8 * ($6 * ($19 * ($19 * 2.0) + $25) + ($4 * 2.0 * $19 * $22 + $19 * $30)); + HEAPF64[$oy >> 3] = $14 + $10 * ($6 * 2.0 * $19 * $22 + ($4 * ($25 + $22 * ($22 * 2.0)) + $22 * $30)); + $$0 = 0; + break; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $224 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; - while (1) { - $226 = HEAP32[$wk$440 >> 2] | 0; - if (($226 | 0) == ($i$338 | 0)) { - $232 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $232; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + case 3: + { + $55 = +HEAPF64[$dist_factor >> 3]; + $58 = +HEAPF64[$dist_factor + 16 >> 3]; + $59 = ($ix - $55) * $58; + $60 = $dist_factor + 8 | 0; + $63 = $58 * ($iy - +HEAPF64[$60 >> 3]); + if ($59 == 0.0 & $63 == 0.0) { + HEAPF64[$ox >> 3] = $55; + $storemerge7 = +HEAPF64[$60 >> 3]; + } else { + $71 = $59 * $59 + $63 * $63; + $83 = 1.0 - $71 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8) - $71 * ($71 * (+HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5)); + HEAPF64[$ox >> 3] = $55 + +HEAPF64[$dist_factor + 24 >> 3] * ($59 * $83); + $storemerge7 = +HEAPF64[$60 >> 3] + $63 * $83; } + HEAPF64[$oy >> 3] = $storemerge7; + $$0 = 0; + break; } - $236 = $labelInfo + 8 | 0; - $237 = $j$1$lcssa + -1 | 0; - HEAP32[$236 >> 2] = $237; - if (!$237) $$0 = 0; else { - _memset($224 | 0, 0, $237 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $244 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $259 = $i$534 * 7 | 0; - $262 = $labelInfo + 12 + ($258 << 2) | 0; - HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); - $269 = $258 << 1; - $270 = $labelInfo + 655376 + ($269 << 3) | 0; - HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); - $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; - HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); - $281 = $258 << 2; - $282 = $labelInfo + 131084 + ($281 << 2) | 0; - $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; - if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; - $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + case 2: + { + $90 = +HEAPF64[$dist_factor >> 3]; + $93 = +HEAPF64[$dist_factor + 16 >> 3]; + $94 = ($ix - $90) * $93; + $95 = $dist_factor + 8 | 0; + $98 = $93 * ($iy - +HEAPF64[$95 >> 3]); + if ($94 == 0.0 & $98 == 0.0) { + HEAPF64[$ox >> 3] = $90; + $storemerge6 = +HEAPF64[$95 >> 3]; + } else { + $104 = $94 * $94 + $98 * $98; + $116 = 1.0 - $104 * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8) - $104 * ($104 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5)); + HEAPF64[$ox >> 3] = $90 + $94 * $116; + $storemerge6 = +HEAPF64[$95 >> 3] + $98 * $116; } - if ((HEAP32[$236 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $311 = $labelInfo + 12 + ($i$633 << 2) | 0; - $314 = $i$633 << 1; - $315 = $labelInfo + 655376 + ($314 << 3) | 0; - HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); - $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + HEAPF64[$oy >> 3] = $storemerge6; + $$0 = 0; + break; + } + case 1: + { + $122 = +HEAPF64[$dist_factor >> 3]; + $125 = +HEAPF64[$dist_factor + 16 >> 3]; + $126 = ($ix - $122) * $125; + $127 = $dist_factor + 8 | 0; + $130 = $125 * ($iy - +HEAPF64[$127 >> 3]); + if ($126 == 0.0 & $130 == 0.0) { + HEAPF64[$ox >> 3] = $122; + $storemerge = +HEAPF64[$127 >> 3]; + } else { + $141 = 1.0 - ($126 * $126 + $130 * $130) * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8); + HEAPF64[$ox >> 3] = $122 + $126 * $141; + $storemerge = +HEAPF64[$127 >> 3] + $130 * $141; + } + HEAPF64[$oy >> 3] = $storemerge; + $$0 = 0; + break; } + default: + $$0 = -1; } - STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwe($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = +$__v; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $16 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $25 = 0, $28 = 0, $30 = 0, $31 = 0, $33 = 0, $34 = 0, $35 = 0, $37 = 0, $38 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__nb = 0, $__nc$0 = 0, $__nc$1 = 0, $__nc$2 = 0, $__o = 0, $__ob$0 = 0, $__oe = 0, $__op = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_buffer9 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 352 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } + $$byval_copy = sp + 304 | 0; + $vararg_buffer9 = sp + 48 | 0; + $vararg_buffer5 = sp + 32 | 0; + $vararg_buffer2 = sp + 24 | 0; + $vararg_buffer = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 308 | 0; + $__nb = sp + 72 | 0; + $__o = sp + 76 | 0; + $__op = sp + 68 | 0; + $__oe = sp + 64 | 0; + $0 = sp + 60 | 0; + $1 = sp + 56 | 0; + $2 = $__fmt; + HEAP32[$2 >> 2] = 37; + HEAP32[$2 + 4 >> 2] = 0; + $9 = __ZNSt3__114__num_put_base14__format_floatEPcPKcj($__fmt + 1 | 0, 56693, HEAP32[$__iob + 4 >> 2] | 0) | 0; + HEAP32[$__nb >> 2] = $__nar; + $10 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer + 8 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer) | 0; + } else { + HEAPF64[$vararg_buffer2 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer2) | 0; + } + if (($__nc$0 | 0) > 29) { + $16 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer5 >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer5 + 8 >> 3] = $__v; + $__nc$1 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer5) | 0; + } else { + HEAPF64[$vararg_buffer9 >> 3] = $__v; + $__nc$1 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer9) | 0; + } + $21 = HEAP32[$__nb >> 2] | 0; + if (!$21) __ZSt17__throw_bad_allocv(); else { + $24 = $21; + $38 = $21; + $__nc$2 = $__nc$1; + } + } else { + $24 = HEAP32[$__nb >> 2] | 0; + $38 = 0; + $__nc$2 = $__nc$0; + } + $23 = $24 + $__nc$2 | 0; + $25 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($24, $23, $__iob) | 0; + if (($24 | 0) == ($__nar | 0)) { + $31 = $__nar; + $37 = 0; + $__ob$0 = $__o; + } else { + $28 = _malloc($__nc$2 << 3) | 0; + if (!$28) __ZSt17__throw_bad_allocv(); else { + $31 = $24; + $37 = $28; + $__ob$0 = $28; } } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $30 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $30; + __ZNSt3__19__num_putIwE23__widen_and_group_floatEPcS2_S2_PwRS3_S4_RKNS_6localeE($31, $25, $23, $__ob$0, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($30) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $33 = HEAP32[$__op >> 2] | 0; + $34 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $35 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__ob$0, $33, $34, $__iob, $__fl) | 0; + HEAP32[$__s >> 2] = $35; + if ($37) _free($37); + _free($38); + STACKTOP = sp; + return $35 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS6_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; + } else { + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; + while (1) { + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; + } + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; + } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; + break; + } else $$pn = $__ndptr$0; + } + } + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; + } else { + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; + } + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; } - $18 = $labelInfo + 1179664 | 0; - $20 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = ($xsize << 1) + 8 | 0; - L11 : do if (($3 | 0) > 1) { - $27 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 2) + 4) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($27) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0; - if ($32 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $32; - $35 = ($32 << 16 >> 16) * 7 | 0; - $37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1; - $41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256; - $45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $56 = $55 << 16 >> 16; - $57 = $55 << 16 >> 16 > 0; - if ($51 << 16 >> 16 <= 0) { - if ($57) { - HEAP16[$pnt2$363 >> 1] = $55; - $157 = $56 * 7 | 0; - $159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1; - $163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256; - $167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0; - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069; - $171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0; - if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $177 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($177 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $177; - $180 = ($177 << 16 >> 16) * 7 | 0; - $182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1; - $186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256; - $190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0; - HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069; - $194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0; - if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$194 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $197 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $197; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16; - $202 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $197; - break; - } - } - if ($57) { - $60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0; - if (($60 | 0) > ($63 | 0)) { - HEAP16[$pnt2$363 >> 1] = $63; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $80 = $63; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $80 = $63; - } else { - HEAP16[$pnt2$363 >> 1] = $60; - if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $80 = $60; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $80 = $60; - } - $82 = ($80 << 16 >> 16) * 7 | 0; - $84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1; - $88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256; - $92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0; - HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $98 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($98 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $51; - $138 = $52 * 7 | 0; - $140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1; - $144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256; - $148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0; - HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069; - $152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0; - if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; +} + +function _start_output_pass($cinfo) { + $cinfo = $cinfo | 0; + var $$pre$phi$iZ2D = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $20 = 0, $23 = 0, $29 = 0, $48 = 0, $52 = 0, $57 = 0, $62 = 0, $67 = 0, $72 = 0, $85 = 0, $ci$0$i7 = 0, $coef_bits_latch$0$i10 = 0, $compptr$0$i8 = 0, $smoothing_useful$0$i9 = 0, $smoothing_useful$1$$i = 0, $smoothing_useful$1$$i$1 = 0, $smoothing_useful$1$$i$2 = 0, $smoothing_useful$1$$i$3 = 0, $smoothing_useful$1$$i$4 = 0, $smoothing_useful$1$$i$4$lcssa = 0; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + L1 : do if (HEAP32[$1 + 16 >> 2] | 0) { + L3 : do if (HEAP32[$cinfo + 80 >> 2] | 0) if (HEAP32[$cinfo + 220 >> 2] | 0) { + $11 = $cinfo + 160 | 0; + if (HEAP32[$11 >> 2] | 0) { + $14 = $1 + 112 | 0; + $15 = HEAP32[$14 >> 2] | 0; + if (!$15) { + $20 = $cinfo + 36 | 0; + $23 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, (HEAP32[$20 >> 2] | 0) * 24 | 0) | 0; + HEAP32[$14 >> 2] = $23; + $$pre$phi$iZ2D = $20; + $85 = $23; + } else { + $$pre$phi$iZ2D = $cinfo + 36 | 0; + $85 = $15; + } + if ((HEAP32[$$pre$phi$iZ2D >> 2] | 0) > 0) { + $ci$0$i7 = 0; + $coef_bits_latch$0$i10 = $85; + $compptr$0$i8 = HEAP32[$cinfo + 216 >> 2] | 0; + $smoothing_useful$0$i9 = 0; + while (1) { + $29 = HEAP32[$compptr$0$i8 + 76 >> 2] | 0; + if (!$29) break L3; + if (!(HEAP16[$29 >> 1] | 0)) break L3; + if (!(HEAP16[$29 + 2 >> 1] | 0)) break L3; + if (!(HEAP16[$29 + 16 >> 1] | 0)) break L3; + if (!(HEAP16[$29 + 32 >> 1] | 0)) break L3; + if (!(HEAP16[$29 + 18 >> 1] | 0)) break L3; + if (!(HEAP16[$29 + 4 >> 1] | 0)) break L3; + $48 = HEAP32[$11 >> 2] | 0; + if ((HEAP32[$48 + ($ci$0$i7 << 8) >> 2] | 0) < 0) break L3; + $52 = $48 + ($ci$0$i7 << 8) + 4 | 0; + HEAP32[$coef_bits_latch$0$i10 + 4 >> 2] = HEAP32[$52 >> 2]; + $smoothing_useful$1$$i = (HEAP32[$52 >> 2] | 0) == 0 ? $smoothing_useful$0$i9 : 1; + $57 = $48 + ($ci$0$i7 << 8) + 8 | 0; + HEAP32[$coef_bits_latch$0$i10 + 8 >> 2] = HEAP32[$57 >> 2]; + $smoothing_useful$1$$i$1 = (HEAP32[$57 >> 2] | 0) == 0 ? $smoothing_useful$1$$i : 1; + $62 = $48 + ($ci$0$i7 << 8) + 12 | 0; + HEAP32[$coef_bits_latch$0$i10 + 12 >> 2] = HEAP32[$62 >> 2]; + $smoothing_useful$1$$i$2 = (HEAP32[$62 >> 2] | 0) == 0 ? $smoothing_useful$1$$i$1 : 1; + $67 = $48 + ($ci$0$i7 << 8) + 16 | 0; + HEAP32[$coef_bits_latch$0$i10 + 16 >> 2] = HEAP32[$67 >> 2]; + $smoothing_useful$1$$i$3 = (HEAP32[$67 >> 2] | 0) == 0 ? $smoothing_useful$1$$i$2 : 1; + $72 = $48 + ($ci$0$i7 << 8) + 20 | 0; + HEAP32[$coef_bits_latch$0$i10 + 20 >> 2] = HEAP32[$72 >> 2]; + $smoothing_useful$1$$i$4 = (HEAP32[$72 >> 2] | 0) == 0 ? $smoothing_useful$1$$i$3 : 1; + $ci$0$i7 = $ci$0$i7 + 1 | 0; + if (($ci$0$i7 | 0) >= (HEAP32[$$pre$phi$iZ2D >> 2] | 0)) { + $smoothing_useful$1$$i$4$lcssa = $smoothing_useful$1$$i$4; break; - } - $103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - $106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($103 | 0) > ($106 | 0)) { - HEAP16[$pnt2$363 >> 1] = $106; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $123 = $106; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $123 = $106; } else { - HEAP16[$pnt2$363 >> 1] = $103; - if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $123 = $103; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $123 = $103; + $coef_bits_latch$0$i10 = $coef_bits_latch$0$i10 + 24 | 0; + $compptr$0$i8 = $compptr$0$i8 + 84 | 0; + $smoothing_useful$0$i9 = $smoothing_useful$1$$i$4; } - $125 = ($123 << 16 >> 16) * 7 | 0; - $127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1; - $131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256; - $135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $217 = $pnt$164 + 4 | 0; - $218 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $217; - $pnt2$3$lcssa = $218; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $217; - $pnt2$363 = $218; - $wk_max$158 = $wk_max$2; + } + if ($smoothing_useful$1$$i$4$lcssa) { + HEAP32[$1 + 12 >> 2] = 24; + break L1; } } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } while (0); + HEAP32[$1 + 12 >> 2] = 21; + } while (0); + HEAP32[$cinfo + 156 >> 2] = 0; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS4_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; + } else { + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; + while (1) { + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; + } + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; + } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; + break; + } else $$pn = $__ndptr$0; + } + } + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; + } + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; + } + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $224 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; while (1) { - $226 = HEAP32[$wk$440 >> 2] | 0; - if (($226 | 0) == ($i$338 | 0)) { - $232 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; } - HEAP32[$wk$440 >> 2] = $232; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; + break; + } else $$pn = $__ndptr$0; } } - $236 = $labelInfo + 8 | 0; - $237 = $j$1$lcssa + -1 | 0; - HEAP32[$236 >> 2] = $237; - if (!$237) $$0 = 0; else { - _memset($224 | 0, 0, $237 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $244 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0)); + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; + } else { + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $259 = $i$534 * 7 | 0; - $262 = $labelInfo + 12 + ($258 << 2) | 0; - HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0); - $269 = $258 << 1; - $270 = $labelInfo + 655376 + ($269 << 3) | 0; - HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0); - $278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0; - HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0); - $281 = $258 << 2; - $282 = $labelInfo + 131084 + ($281 << 2) | 0; - $286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0; - if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286; - $289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0; - $293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0; - if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293; - $296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0; - $300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0; - if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300; - $303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0; - $307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0; - if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } - if ((HEAP32[$236 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $311 = $labelInfo + 12 + ($i$633 << 2) | 0; - $314 = $i$633 << 1; - $315 = $labelInfo + 655376 + ($314 << 3) | 0; - HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0); - $321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0; - HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; } - STACKTOP = sp; - return $$0 | 0; + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; } -function _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; +function _scanexp($f, $pok) { + $f = $f | 0; + $pok = $pok | 0; + var $$lcssa22 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $20 = 0, $35 = 0, $36 = 0, $48 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $61 = 0, $62 = 0, $63 = 0, $78 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $c$0 = 0, $c$1$be = 0, $c$1$be$lcssa = 0, $c$112 = 0, $c$2$be = 0, $c$2$lcssa = 0, $c$27 = 0, $c$3$be = 0, $neg$0 = 0, $x$013 = 0; + $0 = $f + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $f + 100 | 0; + if ($1 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $1 + 1; + $10 = HEAPU8[$1 >> 0] | 0; + } else $10 = ___shgetc($f) | 0; + switch ($10 | 0) { + case 43: + case 45: + { + $11 = ($10 | 0) == 45 & 1; + $12 = HEAP32[$0 >> 2] | 0; + if ($12 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $12 + 1; + $20 = HEAPU8[$12 >> 0] | 0; + } else $20 = ___shgetc($f) | 0; + if (($pok | 0) != 0 & ($20 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) { + $c$0 = $20; + $neg$0 = $11; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $c$0 = $20; + $neg$0 = $11; + } else { + $c$0 = $20; + $neg$0 = $11; } + break; + } + default: + { + $c$0 = $10; + $neg$0 = 0; } } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; + if (($c$0 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) { + $98 = -2147483648; + $99 = 0; + } else { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $98 = -2147483648; + $99 = 0; + } else { + $c$112 = $c$0; + $x$013 = 0; while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; + $35 = $c$112 + -48 + ($x$013 * 10 | 0) | 0; + $36 = HEAP32[$0 >> 2] | 0; + if ($36 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $36 + 1; + $c$1$be = HEAPU8[$36 >> 0] | 0; + } else $c$1$be = ___shgetc($f) | 0; + if (($c$1$be + -48 | 0) >>> 0 < 10 & ($35 | 0) < 214748364) { + $c$112 = $c$1$be; + $x$013 = $35; + } else { + $$lcssa22 = $35; + $c$1$be$lcssa = $c$1$be; + break; + } + } + $48 = (($$lcssa22 | 0) < 0) << 31 >> 31; + if (($c$1$be$lcssa + -48 | 0) >>> 0 < 10) { + $53 = $$lcssa22; + $54 = $48; + $c$27 = $c$1$be$lcssa; + while (1) { + $55 = ___muldi3($53 | 0, $54 | 0, 10, 0) | 0; + $56 = tempRet0; + $59 = _i64Add($c$27 | 0, (($c$27 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; + $61 = _i64Add($59 | 0, tempRet0 | 0, $55 | 0, $56 | 0) | 0; + $62 = tempRet0; + $63 = HEAP32[$0 >> 2] | 0; + if ($63 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $63 + 1; + $c$2$be = HEAPU8[$63 >> 0] | 0; + } else $c$2$be = ___shgetc($f) | 0; + if (($c$2$be + -48 | 0) >>> 0 < 10 & (($62 | 0) < 21474836 | ($62 | 0) == 21474836 & $61 >>> 0 < 2061584302)) { + $53 = $61; + $54 = $62; + $c$27 = $c$2$be; + } else { + $92 = $61; + $93 = $62; + $c$2$lcssa = $c$2$be; + break; + } } + } else { + $92 = $$lcssa22; + $93 = $48; + $c$2$lcssa = $c$1$be$lcssa; } + if (($c$2$lcssa + -48 | 0) >>> 0 < 10) do { + $78 = HEAP32[$0 >> 2] | 0; + if ($78 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $78 + 1; + $c$3$be = HEAPU8[$78 >> 0] | 0; + } else $c$3$be = ___shgetc($f) | 0; + } while (($c$3$be + -48 | 0) >>> 0 < 10); + if (HEAP32[$2 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; + $91 = ($neg$0 | 0) != 0; + $94 = _i64Subtract(0, 0, $92 | 0, $93 | 0) | 0; + $98 = $91 ? tempRet0 : $93; + $99 = $91 ? $94 : $92; } - $18 = $labelInfo + 1179664 | 0; - $19 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = $xsize + 4 | 0; - L11 : do if (($3 | 0) > 1) { - $26 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 1) + 2) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($26) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$363 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $176 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$193 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $196 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $196; - break; - } - } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$363 >> 1] = $62; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $79 = $62; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $79 = $62; - } else { - HEAP16[$pnt2$363 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $79 = $59; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $79 = $59; - } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $97 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$363 >> 1] = $105; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $122 = $105; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $122 = $105; - } else { - HEAP16[$pnt2$363 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $122 = $102; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $122 = $102; - } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } else { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $216 = $pnt$164 + 2 | 0; - $217 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $216; - $pnt2$3$lcssa = $217; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $216; - $pnt2$363 = $217; - $wk_max$158 = $wk_max$2; - } + tempRet0 = $98; + return $99 | 0; +} + +function _jinit_color_deconverter($cinfo) { + $cinfo = $cinfo | 0; + var $$sink = 0, $10 = 0, $16 = 0, $22 = 0, $28 = 0, $3 = 0, $32 = 0, $37 = 0, $40 = 0, $44 = 0, $5 = 0, $52 = 0, $59 = 0, $68 = 0, $ci$01 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, 24) | 0; + HEAP32[$cinfo + 456 >> 2] = $3; + HEAP32[$3 >> 2] = 118; + $5 = $cinfo + 40 | 0; + switch (HEAP32[$5 >> 2] | 0) { + case 1: + { + if ((HEAP32[$cinfo + 36 >> 2] | 0) != 1) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 10; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + break; + } + case 3: + case 2: + { + if ((HEAP32[$cinfo + 36 >> 2] | 0) != 3) { + $16 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$16 + 20 >> 2] = 10; + FUNCTION_TABLE_vi[HEAP32[$16 >> 2] & 255]($cinfo); + } + break; + } + case 5: + case 4: + { + if ((HEAP32[$cinfo + 36 >> 2] | 0) != 4) { + $22 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$22 + 20 >> 2] = 10; + FUNCTION_TABLE_vi[HEAP32[$22 >> 2] & 255]($cinfo); + } + break; + } + default: + if ((HEAP32[$cinfo + 36 >> 2] | 0) < 1) { + $28 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$28 + 20 >> 2] = 10; + FUNCTION_TABLE_vi[HEAP32[$28 >> 2] & 255]($cinfo); + } + } + $32 = HEAP32[$cinfo + 44 >> 2] | 0; + L11 : do switch ($32 | 0) { + case 1: + { + HEAP32[$cinfo + 120 >> 2] = 1; + switch (HEAP32[$5 >> 2] | 0) { + case 3: + case 1: + break; + default: + { + $44 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$44 + 20 >> 2] = 27; + FUNCTION_TABLE_vi[HEAP32[$44 >> 2] & 255]($cinfo); + break L11; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + HEAP32[$3 + 4 >> 2] = 4; + $37 = HEAP32[$cinfo + 36 >> 2] | 0; + if (($37 | 0) > 1) { + $40 = HEAP32[$cinfo + 216 >> 2] | 0; + $ci$01 = 1; + do { + HEAP32[$40 + ($ci$01 * 84 | 0) + 48 >> 2] = 0; + $ci$01 = $ci$01 + 1 | 0; + } while (($ci$01 | 0) < ($37 | 0)); } + break; + } + case 2: + { + HEAP32[$cinfo + 120 >> 2] = 3; + switch (HEAP32[$5 >> 2] | 0) { + case 3: + { + HEAP32[$3 + 4 >> 2] = 5; + _build_ycc_rgb_table($cinfo); + break L11; + break; + } + case 1: + { + HEAP32[$3 + 4 >> 2] = 6; + break L11; + break; + } + case 2: + { + HEAP32[$3 + 4 >> 2] = 7; + break L11; + break; + } + default: + { + $52 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$52 + 20 >> 2] = 27; + FUNCTION_TABLE_vi[HEAP32[$52 >> 2] & 255]($cinfo); + break L11; + } + } + break; + } + case 4: + { + HEAP32[$cinfo + 120 >> 2] = 4; + switch (HEAP32[$5 >> 2] | 0) { + case 5: + { + HEAP32[$3 + 4 >> 2] = 8; + _build_ycc_rgb_table($cinfo); + break L11; + break; + } + case 4: + { + HEAP32[$3 + 4 >> 2] = 7; + break L11; + break; + } + default: + { + $59 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$59 + 20 >> 2] = 27; + FUNCTION_TABLE_vi[HEAP32[$59 >> 2] & 255]($cinfo); + break L11; + } + } + break; + } + default: + if (($32 | 0) == (HEAP32[$5 >> 2] | 0)) { + HEAP32[$cinfo + 120 >> 2] = HEAP32[$cinfo + 36 >> 2]; + HEAP32[$3 + 4 >> 2] = 7; + break L11; + } else { + $68 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$68 + 20 >> 2] = 27; + FUNCTION_TABLE_vi[HEAP32[$68 >> 2] & 255]($cinfo); + break L11; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $223 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; + if (!(HEAP32[$cinfo + 84 >> 2] | 0)) $$sink = HEAP32[$cinfo + 120 >> 2] | 0; else $$sink = 1; + HEAP32[$cinfo + 124 >> 2] = $$sink; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__nd = $__nd | 0; + var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; + $1 = HEAP32[$__nd + 8 >> 2] | 0; + $2 = $__nd + 4 | 0; + HEAP32[$2 >> 2] = $1; + $3 = $this + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + $5 = ($4 | 0) == 0; + L1 : do if ($5) { + $__chash$0 = 0; + label = 12; + } else { + $6 = $4 + -1 | 0; + $8 = ($6 & $4 | 0) == 0; + if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; + $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; + if (!$14) { + $__chash$0 = $13; + label = 12; + } else { + $$pn = $14; while (1) { - $225 = HEAP32[$wk$440 >> 2] | 0; - if (($225 | 0) == ($i$338 | 0)) { - $231 = $j$139; - $j$2 = $j$139 + 1 | 0; - } else { - $231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; + $__ndptr$0 = HEAP32[$$pn >> 2] | 0; + if (!$__ndptr$0) { + $__chash$0 = $13; + label = 12; + break L1; } - HEAP32[$wk$440 >> 2] = $231; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; + $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; + if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; + if (($22 | 0) != ($13 | 0)) { + $__chash$0 = $13; + label = 12; + break L1; } + if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { + $81 = 0; + $__ndptr$1 = $__ndptr$0; + break; + } else $$pn = $__ndptr$0; } } - $235 = $labelInfo + 8 | 0; - $236 = $j$1$lcssa + -1 | 0; - HEAP32[$235 >> 2] = $236; - if (!$236) $$0 = 0; else { - _memset($223 | 0, 0, $236 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $243 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0)); + } while (0); + if ((label | 0) == 12) { + $26 = $this + 12 | 0; + $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); + $32 = +HEAPF32[$this + 16 >> 2]; + do if ($5 | $29 > +($4 >>> 0) * $32) { + if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; + $43 = ($41 & 1 | $4 << 1) ^ 1; + $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); + $49 = HEAP32[$3 >> 2] | 0; + $50 = HEAP32[$2 >> 2] | 0; + $51 = $49 + -1 | 0; + if (!($51 & $49)) { + $__bc$0 = $49; + $__chash$1 = $51 & $50; + break; + } else { + $__bc$0 = $49; + $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + break; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $258 = $i$534 * 7 | 0; - $261 = $labelInfo + 12 + ($257 << 2) | 0; - HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0); - $268 = $257 << 1; - $269 = $labelInfo + 655376 + ($268 << 3) | 0; - HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0); - $277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0; - HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0); - $280 = $257 << 2; - $281 = $labelInfo + 131084 + ($280 << 2) | 0; - $285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0; - if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285; - $288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + } else { + $__bc$0 = $4; + $__chash$1 = $__chash$0; + } while (0); + $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; + if (!$58) { + $60 = $this + 8 | 0; + HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; + HEAP32[$60 >> 2] = $__nd; + HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; + $64 = HEAP32[$__nd >> 2] | 0; + if ($64) { + $67 = HEAP32[$64 + 4 >> 2] | 0; + $68 = $__bc$0 + -1 | 0; + if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; + HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; } - if ((HEAP32[$235 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $310 = $labelInfo + 12 + ($i$633 << 2) | 0; - $313 = $i$633 << 1; - $314 = $labelInfo + 655376 + ($313 << 3) | 0; - HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0); - $320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } else { + HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; + HEAP32[$58 >> 2] = $__nd; } + HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; + $81 = 1; + $__ndptr$1 = $__nd; } - STACKTOP = sp; - return $$0 | 0; + HEAP32[$agg$result >> 2] = $__ndptr$1; + HEAP8[$agg$result + 4 >> 0] = $81; + return; } -function _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEce($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = +$__v; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $16 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $25 = 0, $28 = 0, $30 = 0, $31 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__nb = 0, $__nc$0 = 0, $__nc$1 = 0, $__nc$2 = 0, $__o = 0, $__ob$0 = 0, $__oe = 0, $__op = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_buffer9 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 176 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = ($xsize | 0) / 2 | 0; - $1 = ($ysize | 0) / 2 | 0; - $2 = HEAP32[$labelInfo >> 2] | 0; - $3 = $1 + -1 | 0; - if (($xsize | 0) > 1) { - $i$082 = 0; - $pnt1$084 = $2; - $pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$083 >> 1] = 0; - HEAP16[$pnt1$084 >> 1] = 0; - $i$082 = $i$082 + 1 | 0; - if (($i$082 | 0) >= ($0 | 0)) break; else { - $pnt1$084 = $pnt1$084 + 2 | 0; - $pnt2$083 = $pnt2$083 + 2 | 0; - } - } - } - $11 = $0 + -1 | 0; - if (($ysize | 0) > 1) { - $i$176 = 0; - $pnt1$178 = $2; - $pnt2$177 = $2 + ($11 << 1) | 0; - while (1) { - HEAP16[$pnt2$177 >> 1] = 0; - HEAP16[$pnt1$178 >> 1] = 0; - $i$176 = $i$176 + 1 | 0; - if (($i$176 | 0) >= ($1 | 0)) break; else { - $pnt1$178 = $pnt1$178 + ($0 << 1) | 0; - $pnt2$177 = $pnt2$177 + ($0 << 1) | 0; - } - } + $$byval_copy = sp + 76 | 0; + $vararg_buffer9 = sp + 48 | 0; + $vararg_buffer5 = sp + 32 | 0; + $vararg_buffer2 = sp + 24 | 0; + $vararg_buffer = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 80 | 0; + $__nb = sp + 72 | 0; + $__o = sp + 110 | 0; + $__op = sp + 68 | 0; + $__oe = sp + 64 | 0; + $0 = sp + 60 | 0; + $1 = sp + 56 | 0; + $2 = $__fmt; + HEAP32[$2 >> 2] = 37; + HEAP32[$2 + 4 >> 2] = 0; + $9 = __ZNSt3__114__num_put_base14__format_floatEPcPKcj($__fmt + 1 | 0, 56693, HEAP32[$__iob + 4 >> 2] | 0) | 0; + HEAP32[$__nb >> 2] = $__nar; + $10 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer + 8 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer) | 0; + } else { + HEAPF64[$vararg_buffer2 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer2) | 0; } - $18 = $labelInfo + 1179664 | 0; - $19 = 0 - $0 | 0; - $$sum1 = 1 - $0 | 0; - $$sum2 = ~$0; - $$sum = $xsize + 4 | 0; - L11 : do if (($3 | 0) > 1) { - $26 = ($11 | 0) > 1; - $j$069 = 1; - $pnt$073 = $image + (($xsize << 1) + 2) | 0; - $pnt2$272 = $2 + ($0 + 1 << 1) | 0; - $wk_max$071 = 0; - L13 : while (1) { - if ($26) { - $i$256 = 1; - $pnt$164 = $pnt$073; - $pnt2$363 = $pnt2$272; - $wk_max$158 = $wk_max$071; - while (1) { - do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$363 >> 1] = 0; - $wk_max$2 = $wk_max$158; - } else { - $31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0; - if ($31 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $31; - $34 = ($31 << 16 >> 16) * 7 | 0; - $36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1; - $40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256; - $44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0; - $55 = $54 << 16 >> 16; - $56 = $54 << 16 >> 16 > 0; - if ($50 << 16 >> 16 <= 0) { - if ($56) { - HEAP16[$pnt2$363 >> 1] = $54; - $156 = $55 * 7 | 0; - $158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1; - $162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256; - $166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0; - HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069; - $170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0; - if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $176 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($176 << 16 >> 16 > 0) { - HEAP16[$pnt2$363 >> 1] = $176; - $179 = ($176 << 16 >> 16) * 7 | 0; - $181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1; - $185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256; - $189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0; - HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069; - $193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0; - if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) { - $wk_max$2 = $wk_max$158; - break; - } - HEAP32[$193 >> 2] = $i$256; - $wk_max$2 = $wk_max$158; - break; - } else { - $196 = $wk_max$158 + 1 | 0; - if (($wk_max$158 | 0) > 32767) break L13; - HEAP16[$pnt2$363 >> 1] = $196; - HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16; - $201 = $wk_max$158 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069; - HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069; - $wk_max$2 = $196; - break; - } - } - if ($56) { - $59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0; - if (($59 | 0) > ($62 | 0)) { - HEAP16[$pnt2$363 >> 1] = $62; - if (($wk_max$158 | 0) > 0) { - $k$052 = 0; - $wk$053 = $18; - while (1) { - if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62; - $k$052 = $k$052 + 1 | 0; - if (($k$052 | 0) >= ($wk_max$158 | 0)) { - $79 = $62; - break; - } else $wk$053 = $wk$053 + 4 | 0; - } - } else $79 = $62; - } else { - HEAP16[$pnt2$363 >> 1] = $59; - if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) { - $k$149 = 0; - $wk$150 = $18; - while (1) { - if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59; - $k$149 = $k$149 + 1 | 0; - if (($k$149 | 0) >= ($wk_max$158 | 0)) { - $79 = $59; - break; - } else $wk$150 = $wk$150 + 4 | 0; - } - } else $79 = $59; - } - $81 = ($79 << 16 >> 16) * 7 | 0; - $83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1; - $87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256; - $91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0; - HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069; - HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $97 = HEAP16[$pnt2$363 + -2 >> 1] | 0; - if ($97 << 16 >> 16 <= 0) { - HEAP16[$pnt2$363 >> 1] = $50; - $137 = $51 * 7 | 0; - $139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1; - $143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256; - $147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0; - HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069; - $151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0; - if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256; - HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069; - $wk_max$2 = $wk_max$158; - break; - } - $102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - $105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($102 | 0) > ($105 | 0)) { - HEAP16[$pnt2$363 >> 1] = $105; - if (($wk_max$158 | 0) > 0) { - $k$245 = 0; - $wk$246 = $18; - while (1) { - if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105; - $k$245 = $k$245 + 1 | 0; - if (($k$245 | 0) >= ($wk_max$158 | 0)) { - $122 = $105; - break; - } else $wk$246 = $wk$246 + 4 | 0; - } - } else $122 = $105; - } else { - HEAP16[$pnt2$363 >> 1] = $102; - if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) { - $k$342 = 0; - $wk$343 = $18; - while (1) { - if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102; - $k$342 = $k$342 + 1 | 0; - if (($k$342 | 0) >= ($wk_max$158 | 0)) { - $122 = $102; - break; - } else $wk$343 = $wk$343 + 4 | 0; - } - } else $122 = $102; - } - $124 = ($122 << 16 >> 16) * 7 | 0; - $126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1; - $130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256; - $134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0; - HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069; - $wk_max$2 = $wk_max$158; - } while (0); - $i$256 = $i$256 + 1 | 0; - $216 = $pnt$164 + 2 | 0; - $217 = $pnt2$363 + 2 | 0; - if (($i$256 | 0) >= ($11 | 0)) { - $pnt$1$lcssa = $216; - $pnt2$3$lcssa = $217; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$164 = $216; - $pnt2$363 = $217; - $wk_max$158 = $wk_max$2; - } + if (($__nc$0 | 0) > 29) { + $16 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer5 >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer5 + 8 >> 3] = $__v; + $__nc$1 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer5) | 0; + } else { + HEAPF64[$vararg_buffer9 >> 3] = $__v; + $__nc$1 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer9) | 0; + } + $21 = HEAP32[$__nb >> 2] | 0; + if (!$21) __ZSt17__throw_bad_allocv(); else { + $24 = $21; + $37 = $21; + $__nc$2 = $__nc$1; + } + } else { + $24 = HEAP32[$__nb >> 2] | 0; + $37 = 0; + $__nc$2 = $__nc$0; + } + $23 = $24 + $__nc$2 | 0; + $25 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($24, $23, $__iob) | 0; + if (($24 | 0) == ($__nar | 0)) { + $31 = $__nar; + $36 = 0; + $__ob$0 = $__o; + } else { + $28 = _malloc($__nc$2 << 1) | 0; + if (!$28) __ZSt17__throw_bad_allocv(); else { + $31 = $24; + $36 = $28; + $__ob$0 = $28; + } + } + $30 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $30; + __ZNSt3__19__num_putIcE23__widen_and_group_floatEPcS2_S2_S2_RS2_S3_RKNS_6localeE($31, $25, $23, $__ob$0, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($30) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $33 = HEAP32[$__op >> 2] | 0; + $34 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $35 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__ob$0, $33, $34, $__iob, $__fl) | 0; + _free($36); + _free($37); + STACKTOP = sp; + return $35 | 0; +} + +function _arGetLine($x_coord, $y_coord, $coord_num, $vertex, $paramLTf, $line, $v) { + $x_coord = $x_coord | 0; + $y_coord = $y_coord | 0; + $coord_num = $coord_num | 0; + $vertex = $vertex | 0; + $paramLTf = $paramLTf | 0; + $line = $line | 0; + $v = $v | 0; + var $$0 = 0, $0 = 0, $1 = 0, $12 = 0.0, $15 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $34 = 0, $35 = 0, $45 = 0, $47 = 0.0, $5 = 0, $50 = 0.0, $52 = 0, $63 = 0, $64 = 0, $67 = 0.0, $69 = 0, $7 = 0, $72 = 0.0, $74 = 0.0, $77 = 0, $80 = 0, $97 = 0, $i$011 = 0, $i$19 = 0, $j$010 = 0, $m0 = 0, $m1 = 0, label = 0, sp = 0, $i$011$looptemp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $m0 = sp + 4 | 0; + $m1 = sp; + $0 = _arVecAlloc(2) | 0; + $1 = _arVecAlloc(2) | 0; + $2 = _arMatrixAlloc(2, 2) | 0; + $i$011 = 0; + L1 : while (1) { + $i$011$looptemp = $i$011; + $i$011 = $i$011 + 1 | 0; + $5 = HEAP32[$vertex + ($i$011 << 2) >> 2] | 0; + $7 = HEAP32[$vertex + ($i$011$looptemp << 2) >> 2] | 0; + $12 = +($5 + 1 - $7 | 0) * .05 + .5; + $15 = ~~(+($7 | 0) + $12); + $19 = ~~(+($5 | 0) - $12) - $15 | 0; + $20 = $19 + 1 | 0; + $21 = _arMatrixAlloc($20, 2) | 0; + if (($19 | 0) > -1) { + $j$010 = 0; + do { + $23 = $j$010 + $15 | 0; + if ((_arParamObserv2IdealLTf($paramLTf, +(HEAP32[$x_coord + ($23 << 2) >> 2] | 0), +(HEAP32[$y_coord + ($23 << 2) >> 2] | 0), $m0, $m1) | 0) < 0) { + $97 = $21; + label = 10; + break L1; } - } else { - $pnt$1$lcssa = $pnt$073; - $pnt2$3$lcssa = $pnt2$272; - $wk_max$1$lcssa = $wk_max$071; + $34 = $j$010 << 1; + $35 = HEAP32[$21 >> 2] | 0; + HEAPF64[$35 + ($34 << 3) >> 3] = +HEAPF32[$m0 >> 2]; + HEAPF64[$35 + (($34 | 1) << 3) >> 3] = +HEAPF32[$m1 >> 2]; + $j$010 = $j$010 + 1 | 0; + } while (($j$010 | 0) < ($20 | 0)); + } + if ((_arMatrixPCA($21, $2, $0, $1) | 0) < 0) { + $97 = $21; + label = 10; + break; + } + $45 = HEAP32[$2 >> 2] | 0; + $47 = +HEAPF64[$45 + 8 >> 3]; + HEAPF64[$line + ($i$011$looptemp * 24 | 0) >> 3] = $47; + $50 = -+HEAPF64[$45 >> 3]; + HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 8 >> 3] = $50; + $52 = HEAP32[$1 >> 2] | 0; + HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 16 >> 3] = -($47 * +HEAPF64[$52 >> 3] + +HEAPF64[$52 + 8 >> 3] * $50); + _arMatrixFree($21) | 0; + if (($i$011 | 0) >= 4) { + label = 7; + break; + } + } + L9 : do if ((label | 0) == 7) { + _arMatrixFree($2) | 0; + _arVecFree($1) | 0; + _arVecFree($0) | 0; + $i$19 = 0; + while (1) { + $63 = ($i$19 + 3 | 0) % 4 | 0; + $64 = $line + ($63 * 24 | 0) | 0; + $67 = +HEAPF64[$line + ($i$19 * 24 | 0) + 8 >> 3]; + $69 = $line + ($i$19 * 24 | 0) | 0; + $72 = +HEAPF64[$line + ($63 * 24 | 0) + 8 >> 3]; + $74 = +HEAPF64[$64 >> 3] * $67 - +HEAPF64[$69 >> 3] * $72; + if (+Math_abs(+$74) < .0001) { + $$0 = -1; + break L9; } - $j$069 = $j$069 + 1 | 0; - if (($j$069 | 0) >= ($3 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$073 = $pnt$1$lcssa + $$sum | 0; - $pnt2$272 = $pnt2$3$lcssa + 4 | 0; - $wk_max$071 = $wk_max$1$lcssa; + $77 = $line + ($i$19 * 24 | 0) + 16 | 0; + $80 = $line + ($63 * 24 | 0) + 16 | 0; + HEAPF64[$v + ($i$19 << 4) >> 3] = ($72 * +HEAPF64[$77 >> 3] - $67 * +HEAPF64[$80 >> 3]) / $74; + HEAPF64[$v + ($i$19 << 4) + 8 >> 3] = (+HEAPF64[$69 >> 3] * +HEAPF64[$80 >> 3] - +HEAPF64[$64 >> 3] * +HEAPF64[$77 >> 3]) / $74; + $i$19 = $i$19 + 1 | 0; + if (($i$19 | 0) >= 4) { + $$0 = 0; + break; } } - _arLog(3, 3904, $vararg_buffer); + } else if ((label | 0) == 10) { + _arMatrixFree($97) | 0; + _arMatrixFree($2) | 0; + _arVecFree($1) | 0; + _arVecFree($0) | 0; $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $223 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$338 = 1; - $j$139 = 1; - $wk$440 = $18; + STACKTOP = sp; + return $$0 | 0; +} + +function _wcsrtombs($s, $ws, $n, $st) { + $s = $s | 0; + $ws = $ws | 0; + $n = $n | 0; + $st = $st | 0; + var $$0 = 0, $$01$lcssa = 0, $$0129 = 0, $$0129$lcssa = 0, $$0218 = 0, $$1 = 0, $$13 = 0, $$223 = 0, $$223$lcssa = 0, $$24$lcssa = 0, $$2428 = 0, $$2428$lcssa = 0, $$3 = 0, $$35 = 0, $$422 = 0, $$422$lcssa = 0, $$422$lcssa82 = 0, $$5 = 0, $$pn = 0, $13 = 0, $14 = 0, $19 = 0, $2 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $35 = 0, $46 = 0, $6 = 0, $7 = 0, $buf = 0, $ws2$019 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $buf = sp; + L1 : do if (!$s) { + $2 = HEAP32[$ws >> 2] | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) $$0 = 0; else { + $$0218 = 0; + $6 = $3; + $ws2$019 = $2; while (1) { - $225 = HEAP32[$wk$440 >> 2] | 0; - if (($225 | 0) == ($i$338 | 0)) { - $231 = $j$139; - $j$2 = $j$139 + 1 | 0; + if ($6 >>> 0 > 127) { + $7 = _wcrtomb($buf, $6, 0) | 0; + if (($7 | 0) == -1) { + $$0 = -1; + break L1; + } else $$pn = $7; + } else $$pn = 1; + $$13 = $$pn + $$0218 | 0; + $ws2$019 = $ws2$019 + 4 | 0; + $6 = HEAP32[$ws2$019 >> 2] | 0; + if (!$6) { + $$0 = $$13; + break; + } else $$0218 = $$13; + } + } + } else { + L9 : do if ($n >>> 0 > 3) { + $$0129 = $s; + $$2428 = $n; + $14 = HEAP32[$ws >> 2] | 0; + while (1) { + $13 = HEAP32[$14 >> 2] | 0; + if (($13 + -1 | 0) >>> 0 > 126) { + if (!$13) { + $$0129$lcssa = $$0129; + $$2428$lcssa = $$2428; + break; + } + $19 = _wcrtomb($$0129, $13, 0) | 0; + if (($19 | 0) == -1) { + $$0 = -1; + break L1; + } + $$1 = $$0129 + $19 | 0; + $$35 = $$2428 - $19 | 0; + $27 = $14; } else { - $231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0; - $j$2 = $j$139; - } - HEAP32[$wk$440 >> 2] = $231; - if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) { - $i$338 = $i$338 + 1 | 0; - $j$139 = $j$2; - $wk$440 = $wk$440 + 4 | 0; + HEAP8[$$0129 >> 0] = $13; + $$1 = $$0129 + 1 | 0; + $$35 = $$2428 + -1 | 0; + $27 = HEAP32[$ws >> 2] | 0; + } + $14 = $27 + 4 | 0; + HEAP32[$ws >> 2] = $14; + if ($$35 >>> 0 <= 3) { + $$01$lcssa = $$1; + $$24$lcssa = $$35; + break L9; } else { - $j$1$lcssa = $j$2; - break; + $$0129 = $$1; + $$2428 = $$35; } } - } - $235 = $labelInfo + 8 | 0; - $236 = $j$1$lcssa + -1 | 0; - HEAP32[$235 >> 2] = $236; - if (!$236) $$0 = 0; else { - _memset($223 | 0, 0, $236 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$436 = 0; - do { - $243 = $i$436 << 2; - HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0; - HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1; - HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0)); + HEAP8[$$0129$lcssa >> 0] = 0; + HEAP32[$ws >> 2] = 0; + $$0 = $n - $$2428$lcssa | 0; + break L1; + } else { + $$01$lcssa = $s; + $$24$lcssa = $n; + } while (0); + if (!$$24$lcssa) $$0 = $n; else { + $$223 = $$01$lcssa; + $$422 = $$24$lcssa; + $30 = HEAP32[$ws >> 2] | 0; + while (1) { + $29 = HEAP32[$30 >> 2] | 0; + if (($29 + -1 | 0) >>> 0 > 126) { + if (!$29) { + $$223$lcssa = $$223; + $$422$lcssa = $$422; + label = 19; + break; + } + $35 = _wcrtomb($buf, $29, 0) | 0; + if (($35 | 0) == -1) { + $$0 = -1; + break L1; + } + if ($$422 >>> 0 < $35 >>> 0) { + $$422$lcssa82 = $$422; + label = 22; + break; + } + _wcrtomb($$223, HEAP32[$30 >> 2] | 0, 0) | 0; + $$3 = $$223 + $35 | 0; + $$5 = $$422 - $35 | 0; + $46 = $30; + } else { + HEAP8[$$223 >> 0] = $29; + $$3 = $$223 + 1 | 0; + $$5 = $$422 + -1 | 0; + $46 = HEAP32[$ws >> 2] | 0; + } + $30 = $46 + 4 | 0; + HEAP32[$ws >> 2] = $30; + if (!$$5) { + $$0 = $n; + break L1; + } else { + $$223 = $$3; + $$422 = $$5; + } } - if (($wk_max$0$lcssa | 0) > 0) { - $i$534 = 0; - do { - $257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0; - $258 = $i$534 * 7 | 0; - $261 = $labelInfo + 12 + ($257 << 2) | 0; - HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0); - $268 = $257 << 1; - $269 = $labelInfo + 655376 + ($268 << 3) | 0; - HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0); - $277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0; - HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0); - $280 = $257 << 2; - $281 = $labelInfo + 131084 + ($280 << 2) | 0; - $285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0; - if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285; - $288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0; - $292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0; - if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292; - $295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0; - $299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0; - if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299; - $302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0; - $306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0; - if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306; - $i$534 = $i$534 + 1 | 0; - } while (($i$534 | 0) < ($wk_max$0$lcssa | 0)); + if ((label | 0) == 19) { + HEAP8[$$223$lcssa >> 0] = 0; + HEAP32[$ws >> 2] = 0; + $$0 = $n - $$422$lcssa | 0; + break; + } else if ((label | 0) == 22) { + $$0 = $n - $$422$lcssa82 | 0; + break; } - if ((HEAP32[$235 >> 2] | 0) > 0) { - $i$633 = 0; - do { - $310 = $labelInfo + 12 + ($i$633 << 2) | 0; - $313 = $i$633 << 1; - $314 = $labelInfo + 655376 + ($313 << 3) | 0; - HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0); - $320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0; - HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0); - $i$633 = $i$633 + 1 | 0; - } while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } - } + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZN6vision20VisualDatabaseFacade30addFreakFeaturesAndDescriptorsERKNSt3__16vectorINS_12FeaturePointENS1_9allocatorIS3_EEEERKNS2_IhNS4_IhEEEERKNS2_INS_7Point3dIfEENS4_ISE_EEEEjji($this, $featurePoints, $descriptors, $points3D, $width, $height, $image_id) { + $this = $this | 0; + $featurePoints = $featurePoints | 0; + $descriptors = $descriptors | 0; + $points3D = $points3D | 0; + $width = $width | 0; + $height = $height | 0; + $image_id = $image_id | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $30 = 0, $33 = 0, $37 = 0, $4 = 0, $7 = 0, $8 = 0, $keyframe = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 28 | 0; + $0 = sp + 24 | 0; + $keyframe = sp + 16 | 0; + $1 = sp + 8 | 0; + $2 = sp; + HEAP32[$0 >> 2] = $image_id; + $3 = __Znwj(148) | 0; + __ZN6vision8KeyframeILi96EEC2Ev($3); + HEAP32[$1 >> 2] = 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($keyframe, $3, $$byval_copy); + $4 = HEAP32[$keyframe >> 2] | 0; + HEAP32[$4 >> 2] = $width; + HEAP32[$4 + 4 >> 2] = $height; + HEAP32[$4 + 8 >> 2] = 96; + $7 = $4 + 24 | 0; + $8 = $featurePoints + 4 | 0; + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE6resizeEj($7, ((HEAP32[$8 >> 2] | 0) - (HEAP32[$featurePoints >> 2] | 0) | 0) / 20 | 0); + if (($7 | 0) != ($featurePoints | 0)) __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_($7, HEAP32[$featurePoints >> 2] | 0, HEAP32[$8 >> 2] | 0); + $19 = $4 + 12 | 0; + $20 = $descriptors + 4 | 0; + __ZNSt3__16vectorIhNS_9allocatorIhEEE6resizeEj($19, (HEAP32[$20 >> 2] | 0) - (HEAP32[$descriptors >> 2] | 0) | 0); + if (($19 | 0) != ($descriptors | 0)) __ZNSt3__16vectorIhNS_9allocatorIhEEE6assignIPhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_($19, HEAP32[$descriptors >> 2] | 0, HEAP32[$20 >> 2] | 0); + __ZN6vision8KeyframeILi96EE10buildIndexEv($4); + $30 = HEAP32[HEAP32[$this >> 2] >> 2] | 0; + HEAP32[$2 >> 2] = $4; + $33 = HEAP32[$keyframe + 4 >> 2] | 0; + HEAP32[$2 + 4 >> 2] = $33; + if ($33) __ZNSt3__119__shared_weak_count12__add_sharedEv($33); + __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE11addKeyframeENSt3__110shared_ptrINS_8KeyframeILi96EEEEEi($30, $2, $image_id); + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($2); + $37 = __ZNSt3__113unordered_mapIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS4_EEEENS_4hashIiEENS_8equal_toIiEENS5_INS_4pairIKiS7_EEEEEixERSD_((HEAP32[$this >> 2] | 0) + 4 | 0, $0) | 0; + if (($37 | 0) != ($points3D | 0)) __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE6assignIPS3_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS3_NS_15iterator_traitsISA_E9referenceEEE5valueEvE4typeESA_SA_($37, HEAP32[$points3D >> 2] | 0, HEAP32[$points3D + 4 >> 2] | 0); + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($keyframe); + STACKTOP = sp; + return; +} + +function _ar2GenImageLayer2($src, $dpi) { + $src = $src | 0; + $dpi = +$dpi; + var $0 = 0, $13 = 0, $14 = 0, $20 = 0, $24 = 0, $28 = 0.0, $31 = 0, $35 = 0, $36 = 0, $38 = 0, $4 = 0, $40 = 0.0, $43 = 0, $48 = 0, $49 = 0, $5 = 0.0, $51 = 0, $59 = 0, $60 = 0, $7 = 0, $8 = 0, $co$0$lcssa = 0, $co$08 = 0, $co$1$lcssa = 0, $co$14 = 0, $ex$0 = 0, $ey$0 = 0, $ii$016 = 0, $iii$03 = 0, $jj$020 = 0, $jjj$07 = 0, $p1$02 = 0, $p2$019 = 0, $p2$115 = 0, $smax = 0, $value$0$lcssa = 0, $value$09 = 0, $value$1$lcssa = 0, $value$15 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } - } + $0 = $src + 4 | 0; + $4 = $src + 12 | 0; + $5 = +HEAPF32[$4 >> 2]; + $7 = _lroundf(+(HEAP32[$0 >> 2] | 0) * $dpi / $5) | 0; + $8 = $src + 8 | 0; + $13 = _lroundf(+(HEAP32[$8 >> 2] | 0) * $dpi / $5) | 0; + $14 = _malloc(16) | 0; + if (!$14) { + _arLog(3, 21359, sp); + _exit(1); } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } - } + HEAP32[$14 + 4 >> 2] = $7; + HEAP32[$14 + 8 >> 2] = $13; + HEAPF32[$14 + 12 >> 2] = $dpi; + $20 = _malloc(Math_imul($13, $7) | 0) | 0; + HEAP32[$14 >> 2] = $20; + if (!$20) { + _arLog(3, 21359, sp + 8 | 0); + _exit(1); } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($17 << 1) | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($23) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; + $smax = ($7 | 0) > 0 ? $7 : 0; + if (($13 | 0) > 0) { + $24 = ($7 | 0) > 0; + $jj$020 = 0; + $p2$019 = $20; + while (1) { + $28 = +HEAPF32[$4 >> 2]; + $31 = _lroundf(+($jj$020 | 0) * $28 / $dpi) | 0; + $jj$020 = $jj$020 + 1 | 0; + $35 = _lroundf(+($jj$020 | 0) * $28 / $dpi) | 0; + $36 = HEAP32[$8 >> 2] | 0; + $ey$0 = (($35 | 0) > ($36 | 0) ? $36 : $35) + -1 | 0; + if ($24) { + $38 = ($31 | 0) > ($ey$0 | 0); + $ii$016 = 0; + $p2$115 = $p2$019; while (1) { - do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($29 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $29; - $32 = ($29 << 16 >> 16) * 7 | 0; - $34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0; - HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1; - $38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0; - HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255; - $42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $49 = $48 << 16 >> 16; - $52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $53 = $52 << 16 >> 16; - $54 = $52 << 16 >> 16 > 0; - if ($48 << 16 >> 16 <= 0) { - if ($54) { - HEAP16[$pnt2$362 >> 1] = $52; - $154 = $53 * 7 | 0; - $156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1; - $160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255; - $164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068; - $168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0; - if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $174 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($174 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $174; - $177 = ($174 << 16 >> 16) * 7 | 0; - $179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1; - $183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0; - HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255; - $187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068; - $191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0; - if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; + $40 = +HEAPF32[$4 >> 2]; + $43 = _lroundf(+($ii$016 | 0) * $40 / $dpi) | 0; + $ii$016 = $ii$016 + 1 | 0; + $48 = _lroundf(+($ii$016 | 0) * $40 / $dpi) | 0; + $49 = HEAP32[$0 >> 2] | 0; + $ex$0 = (($48 | 0) > ($49 | 0) ? $49 : $48) + -1 | 0; + if ($38) { + $co$0$lcssa = 0; + $value$0$lcssa = 0; + } else { + $51 = ($43 | 0) > ($ex$0 | 0); + $co$08 = 0; + $jjj$07 = $31; + $value$09 = 0; + while (1) { + if ($51) { + $co$1$lcssa = $co$08; + $value$1$lcssa = $value$09; + } else { + $co$14 = $co$08; + $iii$03 = $43; + $p1$02 = (HEAP32[$src >> 2] | 0) + ((Math_imul($49, $jjj$07) | 0) + $43) | 0; + $value$15 = $value$09; + while (1) { + $59 = (HEAPU8[$p1$02 >> 0] | 0) + $value$15 | 0; + $60 = $co$14 + 1 | 0; + if (($iii$03 | 0) < ($ex$0 | 0)) { + $co$14 = $60; + $iii$03 = $iii$03 + 1 | 0; + $p1$02 = $p1$02 + 1 | 0; + $value$15 = $59; + } else { + $co$1$lcssa = $60; + $value$1$lcssa = $59; + break; + } } - HEAP32[$191 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; + } + if (($jjj$07 | 0) < ($ey$0 | 0)) { + $co$08 = $co$1$lcssa; + $jjj$07 = $jjj$07 + 1 | 0; + $value$09 = $value$1$lcssa; } else { - $194 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $194; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16; - $199 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $194; + $co$0$lcssa = $co$1$lcssa; + $value$0$lcssa = $value$1$lcssa; break; } } - if ($54) { - $57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; - $60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - if (($57 | 0) > ($60 | 0)) { - HEAP16[$pnt2$362 >> 1] = $60; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $77 = $60; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $77 = $60; + } + HEAP8[$p2$115 >> 0] = ($value$0$lcssa | 0) / ($co$0$lcssa | 0) | 0; + if (($ii$016 | 0) >= ($7 | 0)) break; else $p2$115 = $p2$115 + 1 | 0; + } + } + if (($jj$020 | 0) >= ($13 | 0)) break; else $p2$019 = $p2$019 + $smax | 0; + } + } + STACKTOP = sp; + return $14 | 0; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE6insertINS_11__wrap_iterIPKiEEEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsISA_E9referenceEEE5valueENS5_IPiEEE4typeES8_SA_SA_($this, $__position, $__first, $__last) { + $this = $this | 0; + $__position = $__position | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$0$i = 0, $$0$i$i18 = 0, $$lcssa = 0, $$lcssa23 = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $25 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $36 = 0, $37 = 0, $40 = 0, $47 = 0, $5 = 0, $50 = 0, $51 = 0, $54 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $__p$0 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $0 = HEAP32[$this >> 2] | 0; + $1 = HEAP32[$__position >> 2] | 0; + $2 = $1; + $3 = $0; + $5 = $2 - $3 >> 2; + $6 = HEAP32[$__first >> 2] | 0; + $7 = HEAP32[$__last >> 2] | 0; + $8 = $7 - $6 | 0; + $9 = $8 >> 2; + L1 : do if (($8 | 0) > 0) { + $12 = HEAP32[$this + 8 >> 2] | 0; + $13 = $this + 4 | 0; + $14 = HEAP32[$13 >> 2] | 0; + $16 = $14; + if (($9 | 0) <= ($12 - $16 >> 2 | 0)) { + $20 = $16 - $2 | 0; + $21 = $20 >> 2; + $23 = $6; + if (($9 | 0) > ($21 | 0)) { + $24 = $23 + ($21 << 2) | 0; + $25 = $7; + if (($24 | 0) != ($25 | 0)) { + $28 = $24; + $29 = $14; + while (1) { + HEAP32[$29 >> 2] = HEAP32[$28 >> 2]; + $30 = $29 + 4 | 0; + $28 = $28 + 4 | 0; + if (($28 | 0) == ($25 | 0)) { + $$lcssa23 = $30; + break; + } else $29 = $30; + } + HEAP32[$13 >> 2] = $$lcssa23; + } + if (($20 | 0) > 0) $37 = $24; else { + $__p$0 = $1; + break; + } + } else $37 = $7; + __ZNSt3__16vectorIiNS_9allocatorIiEEE12__move_rangeEPiS4_S4_($this, $1, $14, $0 + ($9 + $5 << 2) | 0); + $36 = $37; + if (($23 | 0) == ($36 | 0)) { + $__p$0 = $1; + break; + } else { + $$0$i$i18 = $1; + $40 = $23; + } + while (1) { + HEAP32[$$0$i$i18 >> 2] = HEAP32[$40 >> 2]; + $40 = $40 + 4 | 0; + if (($40 | 0) == ($36 | 0)) { + $__p$0 = $1; + break L1; + } else $$0$i$i18 = $$0$i$i18 + 4 | 0; + } + } + $47 = ($16 - $3 >> 2) + $9 | 0; + if ($47 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $50 = $0; + $51 = $12 - $50 | 0; + if ($51 >> 2 >>> 0 < 536870911) { + $54 = $51 >> 1; + $$0$i = $54 >>> 0 < $47 >>> 0 ? $47 : $54; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEEC2EjjS3_($__v, $$0$i, $2 - $50 >> 2, $this + 8 | 0); + $59 = $7; + $60 = $__v + 8 | 0; + $61 = $6; + if (($61 | 0) != ($59 | 0)) { + $64 = $61; + $65 = HEAP32[$60 >> 2] | 0; + while (1) { + HEAP32[$65 >> 2] = HEAP32[$64 >> 2]; + $66 = $65 + 4 | 0; + $64 = $64 + 4 | 0; + if (($64 | 0) == ($59 | 0)) { + $$lcssa = $66; + break; + } else $65 = $66; + } + HEAP32[$60 >> 2] = $$lcssa; + } + $69 = __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EEPi($this, $__v, $1) | 0; + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEED2Ev($__v); + $__p$0 = $69; + } else $__p$0 = $1; while (0); + STACKTOP = sp; + return $__p$0 | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIwEE($this, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$0$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i1 = 0, $$0$i$i1$i$i = 0, $$0$i$i1$i$i7 = 0, $$pre$i3$i$i9 = 0, $0 = 0, $13 = 0, $16 = 0, $26 = 0, $28 = 0, $3 = 0, $41 = 0, $42 = 0, $43 = 0, $51 = 0, $54 = 0, $66 = 0, $78 = 0, $79 = 0, $80 = 0, label = 0; + L1 : while (1) { + $0 = HEAP32[$__b >> 2] | 0; + do if (!$0) $78 = 1; else { + $3 = HEAP32[$0 + 12 >> 2] | 0; + if (($3 | 0) == (HEAP32[$0 + 16 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 127]($0) | 0; else $$0$i$i$i$i = HEAP32[$3 >> 2] | 0; + if (($$0$i$i$i$i | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $78 = 1; + break; + } else { + $78 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + $13 = HEAP32[$__e >> 2] | 0; + do if (!$13) label = 15; else { + $16 = HEAP32[$13 + 12 >> 2] | 0; + if (($16 | 0) == (HEAP32[$13 + 16 >> 2] | 0)) $$0$i$i1$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$13 >> 2] | 0) + 36 >> 2] & 127]($13) | 0; else $$0$i$i1$i$i = HEAP32[$16 >> 2] | 0; + if (($$0$i$i1$i$i | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 15; + break; + } else if ($78) { + $79 = $13; + break; + } else { + $$pre$i3$i$i9 = $13; + break L1; + } + } while (0); + if ((label | 0) == 15) { + label = 0; + if ($78) { + $$pre$i3$i$i9 = 0; + break; + } else $79 = 0; + } + $26 = HEAP32[$__b >> 2] | 0; + $28 = HEAP32[$26 + 12 >> 2] | 0; + if (($28 | 0) == (HEAP32[$26 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$26 >> 2] | 0) + 36 >> 2] & 127]($26) | 0; else $$0$i$i = HEAP32[$28 >> 2] | 0; + if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 12 >> 2] & 63]($__ct, 8192, $$0$i$i) | 0)) { + $$pre$i3$i$i9 = $79; + break; + } + $41 = HEAP32[$__b >> 2] | 0; + $42 = $41 + 12 | 0; + $43 = HEAP32[$42 >> 2] | 0; + if (($43 | 0) == (HEAP32[$41 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$41 >> 2] | 0) + 40 >> 2] & 127]($41) | 0; + continue; + } else { + HEAP32[$42 >> 2] = $43 + 4; + continue; + } + } + $51 = HEAP32[$__b >> 2] | 0; + do if (!$51) $80 = 1; else { + $54 = HEAP32[$51 + 12 >> 2] | 0; + if (($54 | 0) == (HEAP32[$51 + 16 >> 2] | 0)) $$0$i$i$i$i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$51 >> 2] | 0) + 36 >> 2] & 127]($51) | 0; else $$0$i$i$i$i1 = HEAP32[$54 >> 2] | 0; + if (($$0$i$i$i$i1 | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $80 = 1; + break; + } else { + $80 = (HEAP32[$__b >> 2] | 0) == 0; + break; + } + } while (0); + do if (!$$pre$i3$i$i9) label = 37; else { + $66 = HEAP32[$$pre$i3$i$i9 + 12 >> 2] | 0; + if (($66 | 0) == (HEAP32[$$pre$i3$i$i9 + 16 >> 2] | 0)) $$0$i$i1$i$i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i3$i$i9 >> 2] | 0) + 36 >> 2] & 127]($$pre$i3$i$i9) | 0; else $$0$i$i1$i$i7 = HEAP32[$66 >> 2] | 0; + if (($$0$i$i1$i$i7 | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 37; + break; + } else if ($80) break; else { + label = 39; + break; + } + } while (0); + if ((label | 0) == 37) if ($80) label = 39; + if ((label | 0) == 39) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + return; +} + +function _quantize_fs_dither($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $$sum$pn = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $20 = 0, $22 = 0, $26 = 0, $3 = 0, $31 = 0, $34 = 0, $35 = 0, $47 = 0, $5 = 0, $50 = 0, $58 = 0, $63 = 0, $7 = 0, $8 = 0, $9 = 0, $belowerr$06 = 0, $bpreverr$0$lcssa = 0, $bpreverr$04 = 0, $ci$08 = 0, $col$05 = 0, $cur$07 = 0, $dir$0 = 0, $dirnc$0 = 0, $errorptr$0 = 0, $errorptr$13 = 0, $input_ptr$12 = 0, $output_ptr$0 = 0, $output_ptr$11 = 0, $row$012 = 0, $errorptr$13$looptemp = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $3 = HEAP32[$cinfo + 120 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + $7 = HEAP32[$cinfo + 324 >> 2] | 0; + $8 = $1 + 84 | 0; + $9 = $1 + 24 | 0; + $10 = $1 + 16 | 0; + $11 = $5 + -1 | 0; + $12 = Math_imul($11, $3) | 0; + $13 = 0 - $3 | 0; + $14 = $5 + 1 | 0; + if (($num_rows | 0) > 0) { + $16 = ($3 | 0) > 0; + $17 = ($5 | 0) == 0; + $row$012 = 0; + do { + $18 = $output_buf + ($row$012 << 2) | 0; + _jzero_far(HEAP32[$18 >> 2] | 0, $5); + $20 = $input_buf + ($row$012 << 2) | 0; + if ($16) { + $ci$08 = 0; + do { + $22 = HEAP32[$18 >> 2] | 0; + $26 = HEAP32[$1 + 68 + ($ci$08 << 2) >> 2] | 0; + if (!(HEAP32[$8 >> 2] | 0)) { + $$sum$pn = $ci$08; + $dir$0 = 1; + $dirnc$0 = $3; + $errorptr$0 = $26; + $output_ptr$0 = $22; + } else { + $$sum$pn = $ci$08 + $12 | 0; + $dir$0 = -1; + $dirnc$0 = $13; + $errorptr$0 = $26 + ($14 << 1) | 0; + $output_ptr$0 = $22 + $11 | 0; + } + $31 = HEAP32[(HEAP32[$9 >> 2] | 0) + ($ci$08 << 2) >> 2] | 0; + $34 = HEAP32[(HEAP32[$10 >> 2] | 0) + ($ci$08 << 2) >> 2] | 0; + $35 = Math_imul($5, $dir$0) | 0; + if ($17) $bpreverr$0$lcssa = 0; else { + $belowerr$06 = 0; + $bpreverr$04 = 0; + $col$05 = $5; + $cur$07 = 0; + $errorptr$13 = $errorptr$0; + $input_ptr$12 = (HEAP32[$20 >> 2] | 0) + $$sum$pn | 0; + $output_ptr$11 = $output_ptr$0; + while (1) { + $errorptr$13$looptemp = $errorptr$13; + $errorptr$13 = $errorptr$13 + ($dir$0 << 1) | 0; + $47 = HEAPU8[$7 + (($cur$07 + 8 + (HEAP16[$errorptr$13 >> 1] | 0) >> 4) + (HEAPU8[$input_ptr$12 >> 0] | 0)) >> 0] | 0; + $50 = HEAPU8[$31 + $47 >> 0] | 0; + HEAP8[$output_ptr$11 >> 0] = (HEAPU8[$output_ptr$11 >> 0] | 0) + $50; + $58 = $47 - (HEAPU8[$34 + $50 >> 0] | 0) | 0; + HEAP16[$errorptr$13$looptemp >> 1] = ($58 * 3 | 0) + $bpreverr$04; + $63 = ($58 * 5 | 0) + $belowerr$06 | 0; + $col$05 = $col$05 + -1 | 0; + if (!$col$05) { + $bpreverr$0$lcssa = $63; + break; } else { - HEAP16[$pnt2$362 >> 1] = $57; - if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $77 = $57; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $77 = $57; + $belowerr$06 = $58; + $bpreverr$04 = $63; + $cur$07 = $58 * 7 | 0; + $input_ptr$12 = $input_ptr$12 + $dirnc$0 | 0; + $output_ptr$11 = $output_ptr$11 + $dir$0 | 0; } - $79 = ($77 << 16 >> 16) * 7 | 0; - $81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0; - HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1; - $85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0; - HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255; - $89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $95 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($95 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $48; - $135 = $49 * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068; - $149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0; - if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; } - $100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; - $103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($100 | 0) > ($103 | 0)) { - HEAP16[$pnt2$362 >> 1] = $103; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $120 = $103; - break; - } else $wk$245 = $wk$245 + 4 | 0; + } + HEAP16[$errorptr$0 + ($35 << 1) >> 1] = $bpreverr$0$lcssa; + $ci$08 = $ci$08 + 1 | 0; + } while (($ci$08 | 0) < ($3 | 0)); + } + HEAP32[$8 >> 2] = (HEAP32[$8 >> 2] | 0) == 0 & 1; + $row$012 = $row$012 + 1 | 0; + } while (($row$012 | 0) < ($num_rows | 0)); + } + return; +} + +function _start_pass_1_quant($cinfo, $is_pre_scan) { + $cinfo = $cinfo | 0; + $is_pre_scan = $is_pre_scan | 0; + var $0 = 0, $1 = 0, $13 = 0, $14 = 0, $25 = 0, $26 = 0, $30 = 0, $38 = 0, $42 = 0, $44 = 0, $49 = 0, $50 = 0, $57 = 0, $72 = 0, $73 = 0, $81 = 0, $i$0$i11 = 0, $i$013 = 0, $j$0$i$i10 = 0, $j$0$i8 = 0, $j$0$i8$lcssa = 0, $k$0$i$i9 = 0, $odither$1$i = 0, label = 0; + $0 = $cinfo + 460 | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$cinfo + 136 >> 2] = HEAP32[$1 + 16 >> 2]; + HEAP32[$cinfo + 132 >> 2] = HEAP32[$1 + 20 >> 2]; + L1 : do switch (HEAP32[$cinfo + 88 >> 2] | 0) { + case 0: + { + $13 = $1 + 4 | 0; + if ((HEAP32[$cinfo + 120 >> 2] | 0) == 3) { + HEAP32[$13 >> 2] = 20; + break L1; + } else { + HEAP32[$13 >> 2] = 21; + break L1; + } + break; + } + case 1: + { + $14 = $cinfo + 120 | 0; + HEAP32[$1 + 4 >> 2] = (HEAP32[$14 >> 2] | 0) == 3 ? 22 : 23; + HEAP32[$1 + 48 >> 2] = 0; + if (!(HEAP32[$1 + 28 >> 2] | 0)) _create_colorindex($cinfo); + if (!(HEAP32[$1 + 52 >> 2] | 0)) { + $25 = HEAP32[$0 >> 2] | 0; + $26 = $cinfo + 4 | 0; + if ((HEAP32[$14 >> 2] | 0) > 0) { + $i$0$i11 = 0; + do { + $30 = HEAP32[$25 + 32 + ($i$0$i11 << 2) >> 2] | 0; + L14 : do if (($i$0$i11 | 0) > 0) { + $j$0$i8 = 0; + while (1) { + if (($30 | 0) == (HEAP32[$25 + 32 + ($j$0$i8 << 2) >> 2] | 0)) { + $j$0$i8$lcssa = $j$0$i8; + break; } - } else $120 = $103; - } else { - HEAP16[$pnt2$362 >> 1] = $100; - if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $120 = $100; - break; - } else $wk$342 = $wk$342 + 4 | 0; + $j$0$i8 = $j$0$i8 + 1 | 0; + if (($j$0$i8 | 0) >= ($i$0$i11 | 0)) { + label = 13; + break L14; } - } else $120 = $100; + } + $38 = HEAP32[$25 + 52 + ($j$0$i8$lcssa << 2) >> 2] | 0; + if (!$38) label = 13; else $odither$1$i = $38; + } else label = 13; while (0); + if ((label | 0) == 13) { + label = 0; + $42 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$26 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $44 = ($30 << 9) + -512 | 0; + $j$0$i$i10 = 0; + do { + $k$0$i$i9 = 0; + do { + $49 = 255 - ((HEAPU8[39055 + ($j$0$i$i10 << 4) + $k$0$i$i9 >> 0] | 0) << 1) | 0; + $50 = $49 * 255 | 0; + if (($49 | 0) < 0) $57 = 0 - ((0 - $50 | 0) / ($44 | 0) | 0) | 0; else $57 = ($50 | 0) / ($44 | 0) | 0; + HEAP32[$42 + ($j$0$i$i10 << 6) + ($k$0$i$i9 << 2) >> 2] = $57; + $k$0$i$i9 = $k$0$i$i9 + 1 | 0; + } while (($k$0$i$i9 | 0) != 16); + $j$0$i$i10 = $j$0$i$i10 + 1 | 0; + } while (($j$0$i$i10 | 0) != 16); + $odither$1$i = $42; } - $122 = ($120 << 16 >> 16) * 7 | 0; - $124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0; - HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1; - $128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0; - HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255; - $132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $214 = $pnt$163 + 2 | 0; - $215 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $214; - $pnt2$3$lcssa = $215; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $214; - $pnt2$362 = $215; - $wk_max$157 = $wk_max$2; - } + HEAP32[$25 + 52 + ($i$0$i11 << 2) >> 2] = $odither$1$i; + $i$0$i11 = $i$0$i11 + 1 | 0; + } while (($i$0$i11 | 0) < (HEAP32[$14 >> 2] | 0)); } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + break; + } + case 2: + { + HEAP32[$1 + 4 >> 2] = 24; + HEAP32[$1 + 84 >> 2] = 0; + if (!(HEAP32[$1 + 68 >> 2] | 0)) _alloc_fs_workspace($cinfo); + $72 = (HEAP32[$cinfo + 112 >> 2] << 1) + 4 | 0; + $73 = $cinfo + 120 | 0; + if ((HEAP32[$73 >> 2] | 0) > 0) { + $i$013 = 0; + do { + _jzero_far(HEAP32[$1 + 68 + ($i$013 << 2) >> 2] | 0, $72); + $i$013 = $i$013 + 1 | 0; + } while (($i$013 | 0) < (HEAP32[$73 >> 2] | 0)); } + break; + } + default: + { + $81 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$81 + 20 >> 2] = 48; + FUNCTION_TABLE_vi[HEAP32[$81 >> 2] & 255]($cinfo); } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; } while (0); - if ((label | 0) == 52) { - $221 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; + return; +} + +function __Z21kpmUtilGetPose_binaryP9ARParamLTRKNSt3__16vectorIN6vision7match_tENS1_9allocatorIS4_EEEERKNS2_INS3_7Point3dIfEENS5_ISB_EEEERKNS2_INS3_12FeaturePointENS5_ISG_EEEEPA4_fPf($cparamLT, $matchData, $refDataSet, $inputDataSet, $camPose, $error) { + $cparamLT = $cparamLT | 0; + $matchData = $matchData | 0; + $refDataSet = $refDataSet | 0; + $inputDataSet = $inputDataSet | 0; + $camPose = $camPose | 0; + $error = $error | 0; + var $$0 = 0, $$1 = 0, $12 = 0, $14 = 0, $15 = 0, $17 = 0, $2 = 0, $27 = 0, $40 = 0, $43 = 0, $5 = 0, $6 = 0, $65 = 0.0, $9 = 0, $camPosed = 0, $err = 0, $i$08 = 0, $icpData = 0, $icpHandle = 0, $initMatXw2Xc = 0, $r$06 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 208 | 0; + $vararg_buffer = sp + 200 | 0; + $icpHandle = sp + 224 | 0; + $icpData = sp + 212 | 0; + $initMatXw2Xc = sp + 104 | 0; + $err = sp; + $camPosed = sp + 8 | 0; + $2 = HEAP32[$matchData >> 2] | 0; + $5 = (HEAP32[$matchData + 4 >> 2] | 0) - $2 | 0; + $6 = $5 >> 3; + do if ($6 >>> 0 < 4) $$1 = -1; else { + $9 = _malloc($5 << 1) | 0; + if (!$9) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } + $12 = _malloc($6 * 24 | 0) | 0; + if (!$12) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + $14 = HEAP32[$inputDataSet >> 2] | 0; + $15 = HEAP32[$refDataSet >> 2] | 0; + if ($6) { + $i$08 = 0; + do { + $17 = HEAP32[$2 + ($i$08 << 3) >> 2] | 0; + HEAPF64[$9 + ($i$08 << 4) >> 3] = +HEAPF32[$14 + ($17 * 20 | 0) >> 2]; + HEAPF64[$9 + ($i$08 << 4) + 8 >> 3] = +HEAPF32[$14 + ($17 * 20 | 0) + 4 >> 2]; + $27 = HEAP32[$2 + ($i$08 << 3) + 4 >> 2] | 0; + HEAPF64[$12 + ($i$08 * 24 | 0) >> 3] = +HEAPF32[$15 + ($27 * 12 | 0) >> 2]; + HEAPF64[$12 + ($i$08 * 24 | 0) + 8 >> 3] = +HEAPF32[$15 + ($27 * 12 | 0) + 4 >> 2]; + HEAPF64[$12 + ($i$08 * 24 | 0) + 16 >> 3] = 0.0; + $i$08 = $i$08 + 1 | 0; + } while (($i$08 | 0) != ($6 | 0)); + } + HEAP32[$icpData + 8 >> 2] = $6; + HEAP32[$icpData >> 2] = $9; + HEAP32[$icpData + 4 >> 2] = $12; + $40 = $cparamLT + 8 | 0; + if ((_icpGetInitXw2Xc_from_PlanarData($40, $9, $12, $6, $initMatXw2Xc) | 0) < 0) { + _free($9); + _free($12); + $$1 = -1; + break; + } + $43 = _icpCreateHandle($40) | 0; + HEAP32[$icpHandle >> 2] = $43; + if (!$43) { + _free($9); + _free($12); + $$1 = -1; + break; + } + if ((_icpPoint($43, $icpData, $initMatXw2Xc, $camPosed, $err) | 0) < 0) { + _free($9); + _free($12); + _icpDeleteHandle($icpHandle) | 0; + $$0 = -1; + } else { + $r$06 = 0; + do { + HEAPF32[$camPose + ($r$06 << 4) >> 2] = +HEAPF64[$camPosed + ($r$06 << 5) >> 3]; + HEAPF32[$camPose + ($r$06 << 4) + 4 >> 2] = +HEAPF64[$camPosed + ($r$06 << 5) + 8 >> 3]; + HEAPF32[$camPose + ($r$06 << 4) + 8 >> 2] = +HEAPF64[$camPosed + ($r$06 << 5) + 16 >> 3]; + HEAPF32[$camPose + ($r$06 << 4) + 12 >> 2] = +HEAPF64[$camPosed + ($r$06 << 5) + 24 >> 3]; + $r$06 = $r$06 + 1 | 0; + } while (($r$06 | 0) != 3); + _icpDeleteHandle($icpHandle) | 0; + _free($9); + _free($12); + $65 = +HEAPF64[$err >> 3]; + HEAPF32[$error >> 2] = $65; + $$0 = ($65 > 10.0) << 31 >> 31; + } + $$1 = $$0; + } while (0); + STACKTOP = sp; + return $$1 | 0; +} + +function _getNFTMarkerInfo($id, $markerIndex) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + var $$0 = 0, $$pre = 0.0, $0 = 0, $11 = 0, $12 = 0, $4 = 0, $err$0$lcssa = 0.0, $err$08 = 0.0, $err$1 = 0.0, $flag$0$lcssa = 0, $flag$07 = 0, $flag$1 = 0, $i$06 = 0, $j$05 = 0, $kpmResult = 0, $kpmResultNum = 0, $or$cond = 0, $trans = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $kpmResult = sp + 4 | 0; + $kpmResultNum = sp; + $trans = sp + 16 | 0; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if ((HEAP32[$4 + 236 >> 2] | 0) <= ($markerIndex | 0)) { + $$0 = HEAP32[1466] | 0; + break; + } + HEAP32[$kpmResult >> 2] = 0; + HEAP32[$kpmResultNum >> 2] = -1; + _kpmGetResult(HEAP32[$4 + 228 >> 2] | 0, $kpmResult, $kpmResultNum) | 0; + $11 = HEAP32[$kpmResultNum >> 2] | 0; + $12 = HEAP32[$kpmResult >> 2] | 0; + if (($11 | 0) > 0) { + $err$08 = -1.0; + $flag$07 = -1; + $i$06 = 0; while (1) { - $223 = HEAP32[$wk$439 >> 2] | 0; - if (($223 | 0) == ($i$337 | 0)) { - $229 = $j$138; - $j$2 = $j$138 + 1 | 0; + if ((HEAP32[$12 + ($i$06 * 68 | 0) + 48 >> 2] | 0) == ($markerIndex | 0)) if (!(HEAP32[$12 + ($i$06 * 68 | 0) + 60 >> 2] | 0)) { + $$pre = +HEAPF32[$12 + ($i$06 * 68 | 0) + 52 >> 2]; + $or$cond = ($flag$07 | 0) == -1 | $err$08 > $$pre; + $err$1 = $or$cond ? $$pre : $err$08; + $flag$1 = $or$cond ? $i$06 : $flag$07; } else { - $229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $229; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + $err$1 = $err$08; + $flag$1 = $flag$07; } else { - $j$1$lcssa = $j$2; + $err$1 = $err$08; + $flag$1 = $flag$07; + } + $i$06 = $i$06 + 1 | 0; + if (($i$06 | 0) >= ($11 | 0)) { + $err$0$lcssa = $err$1; + $flag$0$lcssa = $flag$1; break; + } else { + $err$08 = $err$1; + $flag$07 = $flag$1; } } + } else { + $err$0$lcssa = -1.0; + $flag$0$lcssa = -1; } - $233 = $labelInfo + 8 | 0; - $234 = $j$1$lcssa + -1 | 0; - HEAP32[$233 >> 2] = $234; - if (!$234) $$0 = 0; else { - _memset($221 | 0, 0, $234 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $241 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $256 = $i$533 * 7 | 0; - $259 = $labelInfo + 12 + ($255 << 2) | 0; - HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0); - $266 = $255 << 1; - $267 = $labelInfo + 655376 + ($266 << 3) | 0; - HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0); - $275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0); - $278 = $255 << 2; - $279 = $labelInfo + 131084 + ($278 << 2) | 0; - $283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0; - if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283; - $286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0; - $290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0; - if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290; - $293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$233 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $308 = $labelInfo + 12 + ($i$632 << 2) | 0; - $311 = $i$632 << 1; - $312 = $labelInfo + 655376 + ($311 << 3) | 0; - HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0); - $318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0; - HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } - } + if (($flag$0$lcssa | 0) > -1) { + $j$05 = 0; + do { + HEAP32[$trans + ($j$05 << 4) >> 2] = HEAP32[$12 + ($flag$0$lcssa * 68 | 0) + ($j$05 << 4) >> 2]; + HEAP32[$trans + ($j$05 << 4) + 4 >> 2] = HEAP32[$12 + ($flag$0$lcssa * 68 | 0) + ($j$05 << 4) + 4 >> 2]; + HEAP32[$trans + ($j$05 << 4) + 8 >> 2] = HEAP32[$12 + ($flag$0$lcssa * 68 | 0) + ($j$05 << 4) + 8 >> 2]; + HEAP32[$trans + ($j$05 << 4) + 12 >> 2] = HEAP32[$12 + ($flag$0$lcssa * 68 | 0) + ($j$05 << 4) + 12 >> 2]; + $j$05 = $j$05 + 1 | 0; + } while (($j$05 | 0) != 3); + _emscripten_asm_const_14(0, $markerIndex | 0, +$err$0$lcssa, +(+HEAPF32[$trans >> 2]), +(+HEAPF32[$trans + 4 >> 2]), +(+HEAPF32[$trans + 8 >> 2]), +(+HEAPF32[$trans + 12 >> 2]), +(+HEAPF32[$trans + 16 >> 2]), +(+HEAPF32[$trans + 20 >> 2]), +(+HEAPF32[$trans + 24 >> 2]), +(+HEAPF32[$trans + 28 >> 2]), +(+HEAPF32[$trans + 32 >> 2]), +(+HEAPF32[$trans + 36 >> 2]), +(+HEAPF32[$trans + 40 >> 2]), +(+HEAPF32[$trans + 44 >> 2])) | 0; + } else _emscripten_asm_const_1(1, $markerIndex | 0) | 0; + $$0 = 0; + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; +function _decompress_data($cinfo, $output_buf) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $46 = 0, $47 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $6 = 0, $7 = 0, $76 = 0, $8 = 0, $9 = 0, $block_num$04 = 0, $block_row$07 = 0, $block_rows$0 = 0, $buffer_ptr$05 = 0, $ci$011 = 0, $compptr$013 = 0, $output_col$06 = 0, $output_ptr$08 = 0, label = 0; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + $2 = $cinfo + 320 | 0; + $4 = (HEAP32[$2 >> 2] | 0) + -1 | 0; + $5 = $cinfo + 144 | 0; + $6 = $cinfo + 152 | 0; + $7 = $cinfo + 436 | 0; + $8 = $cinfo + 148 | 0; + $9 = $cinfo + 156 | 0; + while (1) { + $10 = HEAP32[$5 >> 2] | 0; + $11 = HEAP32[$6 >> 2] | 0; + if (($10 | 0) >= ($11 | 0)) { + if (($10 | 0) != ($11 | 0)) { + label = 6; + break; } - } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + if ((HEAP32[$8 >> 2] | 0) >>> 0 > (HEAP32[$9 >> 2] | 0) >>> 0) { + label = 6; + break; } } + if (!(FUNCTION_TABLE_ii[HEAP32[HEAP32[$7 >> 2] >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($17 << 1) | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($23) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($29 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $29; - $32 = ($29 << 16 >> 16) * 7 | 0; - $34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0; - HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1; - $38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0; - HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255; - $42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0; - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $49 = $48 << 16 >> 16; - $52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $53 = $52 << 16 >> 16; - $54 = $52 << 16 >> 16 > 0; - if ($48 << 16 >> 16 <= 0) { - if ($54) { - HEAP16[$pnt2$362 >> 1] = $52; - $154 = $53 * 7 | 0; - $156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0; - HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1; - $160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255; - $164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0; - HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068; - $168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0; - if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $174 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($174 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $174; - $177 = ($174 << 16 >> 16) * 7 | 0; - $179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0; - HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1; - $183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0; - HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255; - $187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0; - HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068; - $191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0; - if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$191 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $194 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $194; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16; - $199 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $194; - break; - } - } - if ($54) { - $57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; - $60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0; - if (($57 | 0) > ($60 | 0)) { - HEAP16[$pnt2$362 >> 1] = $60; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $77 = $60; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $77 = $60; - } else { - HEAP16[$pnt2$362 >> 1] = $57; - if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $77 = $57; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $77 = $57; - } - $79 = ($77 << 16 >> 16) * 7 | 0; - $81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0; - HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1; - $85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0; - HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255; - $89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0; - HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $95 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($95 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $48; - $135 = $49 * 7 | 0; - $137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0; - HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1; - $141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0; - HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255; - $145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0; - HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068; - $149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0; - if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0; - $103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($100 | 0) > ($103 | 0)) { - HEAP16[$pnt2$362 >> 1] = $103; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $120 = $103; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $120 = $103; - } else { - HEAP16[$pnt2$362 >> 1] = $100; - if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; + if ((label | 0) == 6) { + $21 = $cinfo + 36 | 0; + $22 = $cinfo + 4 | 0; + $23 = $cinfo + 448 | 0; + if ((HEAP32[$21 >> 2] | 0) > 0) { + $ci$011 = 0; + $compptr$013 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + if (HEAP32[$compptr$013 + 48 >> 2] | 0) { + $37 = $compptr$013 + 12 | 0; + $38 = HEAP32[$37 >> 2] | 0; + $39 = Math_imul($38, HEAP32[$9 >> 2] | 0) | 0; + $40 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$22 >> 2] | 0) + 32 >> 2] & 31]($cinfo, HEAP32[$1 + 72 + ($ci$011 << 2) >> 2] | 0, $39, $38, 0) | 0; + if ((HEAP32[$9 >> 2] | 0) >>> 0 < $4 >>> 0) $block_rows$0 = HEAP32[$37 >> 2] | 0; else { + $46 = HEAP32[$37 >> 2] | 0; + $47 = ((HEAP32[$compptr$013 + 32 >> 2] | 0) >>> 0) % ($46 >>> 0) | 0; + $block_rows$0 = ($47 | 0) == 0 ? $46 : $47; + } + $51 = HEAP32[(HEAP32[$23 >> 2] | 0) + 4 + ($ci$011 << 2) >> 2] | 0; + $52 = $compptr$013 + 28 | 0; + $53 = $compptr$013 + 36 | 0; + if (($block_rows$0 | 0) > 0) { + $block_row$07 = 0; + $output_ptr$08 = HEAP32[$output_buf + ($ci$011 << 2) >> 2] | 0; + while (1) { + if (HEAP32[$52 >> 2] | 0) { + $block_num$04 = 0; + $buffer_ptr$05 = HEAP32[$40 + ($block_row$07 << 2) >> 2] | 0; + $output_col$06 = 0; while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $120 = $100; - break; - } else $wk$342 = $wk$342 + 4 | 0; + FUNCTION_TABLE_viiiii[$51 & 31]($cinfo, $compptr$013, $buffer_ptr$05, $output_ptr$08, $output_col$06); + $block_num$04 = $block_num$04 + 1 | 0; + if ($block_num$04 >>> 0 >= (HEAP32[$52 >> 2] | 0) >>> 0) break; else { + $buffer_ptr$05 = $buffer_ptr$05 + 128 | 0; + $output_col$06 = (HEAP32[$53 >> 2] | 0) + $output_col$06 | 0; + } } - } else $120 = $100; + } + $block_row$07 = $block_row$07 + 1 | 0; + if (($block_row$07 | 0) >= ($block_rows$0 | 0)) break; else $output_ptr$08 = $output_ptr$08 + (HEAP32[$53 >> 2] << 2) | 0; } - $122 = ($120 << 16 >> 16) * 7 | 0; - $124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0; - HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1; - $128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0; - HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255; - $132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0; - HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $214 = $pnt$163 + 2 | 0; - $215 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $214; - $pnt2$3$lcssa = $215; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $214; - $pnt2$362 = $215; - $wk_max$157 = $wk_max$2; } } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $ci$011 = $ci$011 + 1 | 0; + if (($ci$011 | 0) >= (HEAP32[$21 >> 2] | 0)) break; else $compptr$013 = $compptr$013 + 84 | 0; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $221 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; + $76 = (HEAP32[$9 >> 2] | 0) + 1 | 0; + HEAP32[$9 >> 2] = $76; + $$0 = $76 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0 ? 3 : 4; + } + return $$0 | 0; +} + +function ___stpncpy($d, $s, $n) { + $d = $d | 0; + $s = $s | 0; + $n = $n | 0; + var $$0$lcssa = 0, $$0$lcssa60 = 0, $$031 = 0, $$04$lcssa = 0, $$04$lcssa61 = 0, $$0430 = 0, $$06$lcssa = 0, $$06$lcssa62 = 0, $$0629 = 0, $$1$lcssa = 0, $$117 = 0, $$15$ph = 0, $$1511 = 0, $$17$ph = 0, $$1710 = 0, $$2$ph = 0, $$212 = 0, $$28 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $16 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $35 = 0, $7 = 0, $8 = 0, $wd$0$lcssa = 0, $wd$018 = 0, $ws$0$lcssa = 0, $ws$019 = 0, label = 0; + $0 = $s; + do if (!(($0 ^ $d) & 3)) { + $7 = ($n | 0) != 0; + L3 : do if ($7 & ($0 & 3 | 0) != 0) { + $$031 = $n; + $$0430 = $s; + $$0629 = $d; while (1) { - $223 = HEAP32[$wk$439 >> 2] | 0; - if (($223 | 0) == ($i$337 | 0)) { - $229 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + $8 = HEAP8[$$0430 >> 0] | 0; + HEAP8[$$0629 >> 0] = $8; + if (!($8 << 24 >> 24)) { + $$0$lcssa60 = $$031; + $$04$lcssa61 = $$0430; + $$06$lcssa62 = $$0629; + break L3; } - HEAP32[$wk$439 >> 2] = $229; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; + $10 = $$031 + -1 | 0; + $11 = $$0430 + 1 | 0; + $12 = $$0629 + 1 | 0; + $16 = ($10 | 0) != 0; + if ($16 & ($11 & 3 | 0) != 0) { + $$031 = $10; + $$0430 = $11; + $$0629 = $12; } else { - $j$1$lcssa = $j$2; + $$0$lcssa = $10; + $$04$lcssa = $11; + $$06$lcssa = $12; + $$lcssa = $16; + label = 5; break; } } + } else { + $$0$lcssa = $n; + $$04$lcssa = $s; + $$06$lcssa = $d; + $$lcssa = $7; + label = 5; + } while (0); + if ((label | 0) == 5) if ($$lcssa) { + $$0$lcssa60 = $$0$lcssa; + $$04$lcssa61 = $$04$lcssa; + $$06$lcssa62 = $$06$lcssa; + } else { + $$28 = $$06$lcssa; + $$3 = 0; + break; } - $233 = $labelInfo + 8 | 0; - $234 = $j$1$lcssa + -1 | 0; - HEAP32[$233 >> 2] = $234; - if (!$234) $$0 = 0; else { - _memset($221 | 0, 0, $234 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $241 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0)); + if (!(HEAP8[$$04$lcssa61 >> 0] | 0)) { + $$28 = $$06$lcssa62; + $$3 = $$0$lcssa60; + } else { + L11 : do if ($$0$lcssa60 >>> 0 > 3) { + $$117 = $$0$lcssa60; + $wd$018 = $$06$lcssa62; + $ws$019 = $$04$lcssa61; + while (1) { + $20 = HEAP32[$ws$019 >> 2] | 0; + if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) { + $$1$lcssa = $$117; + $wd$0$lcssa = $wd$018; + $ws$0$lcssa = $ws$019; + break L11; + } + HEAP32[$wd$018 >> 2] = $20; + $26 = $$117 + -4 | 0; + $27 = $ws$019 + 4 | 0; + $28 = $wd$018 + 4 | 0; + if ($26 >>> 0 > 3) { + $$117 = $26; + $wd$018 = $28; + $ws$019 = $27; + } else { + $$1$lcssa = $26; + $wd$0$lcssa = $28; + $ws$0$lcssa = $27; + break; + } + } + } else { + $$1$lcssa = $$0$lcssa60; + $wd$0$lcssa = $$06$lcssa62; + $ws$0$lcssa = $$04$lcssa61; + } while (0); + $$15$ph = $ws$0$lcssa; + $$17$ph = $wd$0$lcssa; + $$2$ph = $$1$lcssa; + label = 11; + } + } else { + $$15$ph = $s; + $$17$ph = $d; + $$2$ph = $n; + label = 11; + } while (0); + L16 : do if ((label | 0) == 11) if (!$$2$ph) { + $$28 = $$17$ph; + $$3 = 0; + } else { + $$1511 = $$15$ph; + $$1710 = $$17$ph; + $$212 = $$2$ph; + while (1) { + $31 = HEAP8[$$1511 >> 0] | 0; + HEAP8[$$1710 >> 0] = $31; + if (!($31 << 24 >> 24)) { + $$28 = $$1710; + $$3 = $$212; + break L16; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $256 = $i$533 * 7 | 0; - $259 = $labelInfo + 12 + ($255 << 2) | 0; - HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0); - $266 = $255 << 1; - $267 = $labelInfo + 655376 + ($266 << 3) | 0; - HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0); - $275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0; - HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0); - $278 = $255 << 2; - $279 = $labelInfo + 131084 + ($278 << 2) | 0; - $283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0; - if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283; - $286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0; - $290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0; - if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290; - $293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0; - $297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0; - if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297; - $300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0; - $304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0; - if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + $$212 = $$212 + -1 | 0; + $35 = $$1710 + 1 | 0; + if (!$$212) { + $$28 = $35; + $$3 = 0; + break; + } else { + $$1511 = $$1511 + 1 | 0; + $$1710 = $35; } - if ((HEAP32[$233 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $308 = $labelInfo + 12 + ($i$632 << 2) | 0; - $311 = $i$632 << 1; - $312 = $labelInfo + 655376 + ($311 << 3) | 0; - HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0); - $318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0; - HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } + } while (0); + _memset($$28 | 0, 0, $$3 | 0) | 0; + return $$28 | 0; +} + +function __ZNSt3__18ios_base4InitC2Ev($this) { + $this = $this | 0; + var $$sum$i1 = 0, $$sum$i11 = 0, $$sum1$i12 = 0, $$sum1$i2 = 0, $0 = 0, $1 = 0, $10 = 0, $18 = 0, $29 = 0, $36 = 0, $40 = 0, $5 = 0, $51 = 0, $6 = 0, $62 = 0; + $0 = HEAP32[1608] | 0; + __ZNSt3__110__stdinbufIcEC2EP8_IO_FILEP11__mbstate_t(11204, $0, 11260); + HEAP32[2631] = 12412; + HEAP32[2633] = 12432; + HEAP32[2632] = 0; + $1 = HEAP32[3100] | 0; + __ZNSt3__18ios_base4initEPv(10524 + $1 | 0, 11204); + HEAP32[10524 + ($1 + 72) >> 2] = 0; + HEAP32[10524 + ($1 + 76) >> 2] = -1; + $5 = HEAP32[1609] | 0; + __ZNSt3__111__stdoutbufIcEC2EP8_IO_FILEP11__mbstate_t(11308, $5, 11268); + HEAP32[2653] = 12492; + HEAP32[2654] = 12512; + $6 = HEAP32[3120] | 0; + __ZNSt3__18ios_base4initEPv(10612 + $6 | 0, 11308); + $$sum$i1 = $6 + 72 | 0; + HEAP32[10612 + $$sum$i1 >> 2] = 0; + $$sum1$i2 = $6 + 76 | 0; + HEAP32[10612 + $$sum1$i2 >> 2] = -1; + $10 = HEAP32[1607] | 0; + __ZNSt3__111__stdoutbufIcEC2EP8_IO_FILEP11__mbstate_t(11356, $10, 11276); + HEAP32[2674] = 12492; + HEAP32[2675] = 12512; + __ZNSt3__18ios_base4initEPv(10696 + $6 | 0, 11356); + HEAP32[10696 + $$sum$i1 >> 2] = 0; + HEAP32[10696 + $$sum1$i2 >> 2] = -1; + $18 = HEAP32[10696 + ((HEAP32[(HEAP32[2674] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + HEAP32[2695] = 12492; + HEAP32[2696] = 12512; + __ZNSt3__18ios_base4initEPv(10780 + $6 | 0, $18); + HEAP32[10780 + $$sum$i1 >> 2] = 0; + HEAP32[10780 + $$sum1$i2 >> 2] = -1; + HEAP32[10524 + ((HEAP32[(HEAP32[2631] | 0) + -12 >> 2] | 0) + 72) >> 2] = 10612; + $29 = 10696 + ((HEAP32[(HEAP32[2674] | 0) + -12 >> 2] | 0) + 4) | 0; + HEAP32[$29 >> 2] = HEAP32[$29 >> 2] | 8192; + HEAP32[10696 + ((HEAP32[(HEAP32[2674] | 0) + -12 >> 2] | 0) + 72) >> 2] = 10612; + __ZNSt3__110__stdinbufIwEC2EP8_IO_FILEP11__mbstate_t(11404, $0, 11284); + HEAP32[2716] = 12452; + HEAP32[2718] = 12472; + HEAP32[2717] = 0; + $36 = HEAP32[3110] | 0; + __ZNSt3__18ios_base4initEPv(10864 + $36 | 0, 11404); + HEAP32[10864 + ($36 + 72) >> 2] = 0; + HEAP32[10864 + ($36 + 76) >> 2] = -1; + __ZNSt3__111__stdoutbufIwEC2EP8_IO_FILEP11__mbstate_t(11460, $5, 11292); + HEAP32[2738] = 12532; + HEAP32[2739] = 12552; + $40 = HEAP32[3130] | 0; + __ZNSt3__18ios_base4initEPv(10952 + $40 | 0, 11460); + $$sum$i11 = $40 + 72 | 0; + HEAP32[10952 + $$sum$i11 >> 2] = 0; + $$sum1$i12 = $40 + 76 | 0; + HEAP32[10952 + $$sum1$i12 >> 2] = -1; + __ZNSt3__111__stdoutbufIwEC2EP8_IO_FILEP11__mbstate_t(11508, $10, 11300); + HEAP32[2759] = 12532; + HEAP32[2760] = 12552; + __ZNSt3__18ios_base4initEPv(11036 + $40 | 0, 11508); + HEAP32[11036 + $$sum$i11 >> 2] = 0; + HEAP32[11036 + $$sum1$i12 >> 2] = -1; + $51 = HEAP32[11036 + ((HEAP32[(HEAP32[2759] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + HEAP32[2780] = 12532; + HEAP32[2781] = 12552; + __ZNSt3__18ios_base4initEPv(11120 + $40 | 0, $51); + HEAP32[11120 + $$sum$i11 >> 2] = 0; + HEAP32[11120 + $$sum1$i12 >> 2] = -1; + HEAP32[10864 + ((HEAP32[(HEAP32[2716] | 0) + -12 >> 2] | 0) + 72) >> 2] = 10952; + $62 = 11036 + ((HEAP32[(HEAP32[2759] | 0) + -12 >> 2] | 0) + 4) | 0; + HEAP32[$62 >> 2] = HEAP32[$62 >> 2] | 8192; + HEAP32[11036 + ((HEAP32[(HEAP32[2759] | 0) + -12 >> 2] | 0) + 72) >> 2] = 10952; + return; +} + +function __ZN6vision19FindHoughSimilarityERNS_21HoughSimilarityVotingERKNSt3__16vectorINS_12FeaturePointENS2_9allocatorIS4_EEEES9_RKNS3_INS_7match_tENS5_ISA_EEEEiiii($hough, $p1, $p2, $matches, $insWidth, $insHeigth, $refWidth, $refHeight) { + $hough = $hough | 0; + $p1 = $p1 | 0; + $p2 = $p2 | 0; + $matches = $matches | 0; + $insWidth = $insWidth | 0; + $insHeigth = $insHeigth | 0; + $refWidth = $refWidth | 0; + $refHeight = $refHeight | 0; + var $$sum2 = 0, $$sum3 = 0, $$sum4 = 0, $0 = 0, $14 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $24 = 0, $27 = 0, $29 = 0, $53 = 0.0, $55 = 0.0, $56 = 0.0, $58 = 0.0, $76 = 0.0, $77 = 0, $i$09 = 0, $maxIndex = 0, $maxVotes = 0, $query = 0, $ref = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $query = sp + 20 | 0; + $ref = sp + 8 | 0; + $maxVotes = sp + 4 | 0; + $maxIndex = sp; + $0 = $matches + 4 | 0; + __ZNSt3__16vectorIfNS_9allocatorIfEEEC2Ej($query, (HEAP32[$0 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 1); + __ZNSt3__16vectorIfNS_9allocatorIfEEEC2Ej($ref, (HEAP32[$0 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 1); + $14 = HEAP32[$matches >> 2] | 0; + $18 = (HEAP32[$0 >> 2] | 0) - $14 >> 3; + $19 = HEAP32[$p1 >> 2] | 0; + $20 = HEAP32[$p2 >> 2] | 0; + $21 = HEAP32[$query >> 2] | 0; + $22 = HEAP32[$ref >> 2] | 0; + if ($18) { + $i$09 = 0; + do { + $24 = HEAP32[$14 + ($i$09 << 3) >> 2] | 0; + $27 = HEAP32[$14 + ($i$09 << 3) + 4 >> 2] | 0; + $29 = $i$09 << 2; + HEAP32[$21 + ($29 << 2) >> 2] = HEAP32[$19 + ($24 * 20 | 0) >> 2]; + $$sum2 = $29 | 1; + HEAP32[$21 + ($$sum2 << 2) >> 2] = HEAP32[$19 + ($24 * 20 | 0) + 4 >> 2]; + $$sum3 = $29 | 2; + HEAP32[$21 + ($$sum3 << 2) >> 2] = HEAP32[$19 + ($24 * 20 | 0) + 8 >> 2]; + $$sum4 = $29 | 3; + HEAP32[$21 + ($$sum4 << 2) >> 2] = HEAP32[$19 + ($24 * 20 | 0) + 12 >> 2]; + HEAP32[$22 + ($29 << 2) >> 2] = HEAP32[$20 + ($27 * 20 | 0) >> 2]; + HEAP32[$22 + ($$sum2 << 2) >> 2] = HEAP32[$20 + ($27 * 20 | 0) + 4 >> 2]; + HEAP32[$22 + ($$sum3 << 2) >> 2] = HEAP32[$20 + ($27 * 20 | 0) + 8 >> 2]; + HEAP32[$22 + ($$sum4 << 2) >> 2] = HEAP32[$20 + ($27 * 20 | 0) + 12 >> 2]; + $i$09 = $i$09 + 1 | 0; + } while (($i$09 | 0) != ($18 | 0)); } + $53 = +($insWidth | 0); + $55 = $53 + $53 * .20000000298023224; + $56 = +($insHeigth | 0); + $58 = $56 + $56 * .20000000298023224; + __ZN6vision21HoughSimilarityVoting4initEffffiiii($hough, -$55, $55, -$58, $58, 0, 0, 12, 10); + HEAPF32[$hough + 8 >> 2] = +($refWidth >> 1 | 0); + HEAPF32[$hough + 12 >> 2] = +($refHeight >> 1 | 0); + HEAP32[$hough >> 2] = $refWidth; + HEAP32[$hough + 4 >> 2] = $refHeight; + __ZN6vision21HoughSimilarityVoting4voteEPKfS2_i($hough, HEAP32[$query >> 2] | 0, HEAP32[$ref >> 2] | 0, (HEAP32[$0 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 3); + __ZNK6vision21HoughSimilarityVoting23getMaximumNumberOfVotesERfRi($hough, $maxVotes, $maxIndex); + $76 = +HEAPF32[$maxVotes >> 2]; + $77 = HEAP32[$maxIndex >> 2] | 0; + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($ref); + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($query); STACKTOP = sp; - return $$0 | 0; + return ($76 < 3.0 ? -1 : $77) | 0; } -function _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwd($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = +$__v; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__nb = 0, $__nc$0 = 0, $__nc$1 = 0, $__o = 0, $__ob$0 = 0, $__oe = 0, $__op = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 336 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $$byval_copy = sp + 296 | 0; + $vararg_buffer5 = sp + 32 | 0; + $vararg_buffer2 = sp + 24 | 0; + $vararg_buffer = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 300 | 0; + $__nb = sp + 64 | 0; + $__o = sp + 68 | 0; + $__op = sp + 60 | 0; + $__oe = sp + 56 | 0; + $0 = sp + 52 | 0; + $1 = sp + 48 | 0; + $2 = $__fmt; + HEAP32[$2 >> 2] = 37; + HEAP32[$2 + 4 >> 2] = 0; + $9 = __ZNSt3__114__num_put_base14__format_floatEPcPKcj($__fmt + 1 | 0, 56692, HEAP32[$__iob + 4 >> 2] | 0) | 0; + HEAP32[$__nb >> 2] = $__nar; + $10 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer + 8 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer) | 0; + } else { + HEAPF64[$vararg_buffer2 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer2) | 0; + } + if (($__nc$0 | 0) > 29) { + $16 = __ZNSt3__16__clocEv() | 0; + HEAP32[$vararg_buffer5 >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer5 + 8 >> 3] = $__v; + $19 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer5) | 0; + $20 = HEAP32[$__nb >> 2] | 0; + if (!$20) __ZSt17__throw_bad_allocv(); else { + $23 = $20; + $37 = $20; + $__nc$1 = $19; } + } else { + $23 = HEAP32[$__nb >> 2] | 0; + $37 = 0; + $__nc$1 = $__nc$0; } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $22 = $23 + $__nc$1 | 0; + $24 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($23, $22, $__iob) | 0; + if (($23 | 0) == ($__nar | 0)) { + $30 = $__nar; + $36 = 0; + $__ob$0 = $__o; + } else { + $27 = _malloc($__nc$1 << 3) | 0; + if (!$27) __ZSt17__throw_bad_allocv(); else { + $30 = $23; + $36 = $27; + $__ob$0 = $27; } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($17 << 1) | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($23) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($28 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $28; - $31 = ($28 << 16 >> 16) * 7 | 0; - $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; - HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; - $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255; - $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $48 = $47 << 16 >> 16; - $51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $53 = $51 << 16 >> 16 > 0; - if ($47 << 16 >> 16 <= 0) { - if ($53) { - HEAP16[$pnt2$362 >> 1] = $51; - $153 = $52 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068; - $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $173 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($173 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $173; - $176 = ($173 << 16 >> 16) * 7 | 0; - $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; - $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255; - $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068; - $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; - if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$190 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $193 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $193; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16; - $198 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $193; - break; - } - } - if ($53) { - $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - if (($56 | 0) > ($59 | 0)) { - HEAP16[$pnt2$362 >> 1] = $59; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $76 = $59; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $76 = $59; - } else { - HEAP16[$pnt2$362 >> 1] = $56; - if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $76 = $56; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $76 = $56; - } - $78 = ($76 << 16 >> 16) * 7 | 0; - $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; - HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; - $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255; - $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $94 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($94 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $47; - $134 = $48 * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068; - $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; - if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($99 | 0) > ($102 | 0)) { - HEAP16[$pnt2$362 >> 1] = $102; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $119 = $102; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $119 = $102; - } else { - HEAP16[$pnt2$362 >> 1] = $99; - if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $119 = $99; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $119 = $99; - } - $121 = ($119 << 16 >> 16) * 7 | 0; - $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; - HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; - $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255; - $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $213 = $pnt$163 + 2 | 0; - $214 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $213; - $pnt2$3$lcssa = $214; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $213; - $pnt2$362 = $214; - $wk_max$157 = $wk_max$2; - } - } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $29 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $29; + __ZNSt3__19__num_putIwE23__widen_and_group_floatEPcS2_S2_PwRS3_S4_RKNS_6localeE($30, $24, $22, $__ob$0, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($29) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $32 = HEAP32[$__op >> 2] | 0; + $33 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $34 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__ob$0, $32, $33, $__iob, $__fl) | 0; + HEAP32[$__s >> 2] = $34; + if ($36) _free($36); + _free($37); + STACKTOP = sp; + return $34 | 0; +} + +function _mbsnrtowcs($wcs, $src, $n, $wn, $st) { + $wcs = $wcs | 0; + $src = $src | 0; + $n = $n | 0; + $wn = $wn | 0; + $st = $st | 0; + var $$02$ = 0, $$021 = 0, $$0218 = 0, $$1 = 0, $$13 = 0, $$216 = 0, $$24 = 0, $$313 = 0, $$cast = 0, $$lcssa = 0, $$lcssa57 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $15 = 0, $19 = 0, $23 = 0, $24 = 0, $32 = 0, $37 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 0, $cnt$019 = 0, $cnt$1 = 0, $cnt$214 = 0, $cnt$214$lcssa = 0, $cnt$3 = 0, $s = 0, $wbuf = 0, $wcs$ = 0, $wn$ = 0, $ws$020 = 0, $ws$020$lcssa56 = 0, $ws$09 = 0, $ws$1 = 0, $ws$215 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 1040 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $wbuf = sp + 8 | 0; + $s = sp; + $0 = HEAP32[$src >> 2] | 0; + HEAP32[$s >> 2] = $0; + $1 = ($wcs | 0) != 0; + $wn$ = $1 ? $wn : 256; + $wcs$ = $1 ? $wcs : $wbuf; + $$cast = $0; + L1 : do if (($wn$ | 0) != 0 & ($0 | 0) != 0) { + $$021 = $n; + $$0218 = $wn$; + $37 = $$cast; + $cnt$019 = 0; + $ws$020 = $wcs$; + while (1) { + $4 = $$021 >>> 2; + $5 = $4 >>> 0 >= $$0218 >>> 0; + if (!($$021 >>> 0 > 131 | $5)) { + $$1 = $$021; + $$24 = $$0218; + $19 = $37; + $cnt$1 = $cnt$019; + $ws$09 = $ws$020; + break L1; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + $$02$ = $5 ? $$0218 : $4; + $8 = $$021 - $$02$ | 0; + $9 = _mbsrtowcs($ws$020, $s, $$02$, $st) | 0; + if (($9 | 0) == -1) { + $$lcssa57 = $8; + $ws$020$lcssa56 = $ws$020; + break; + } + $11 = ($ws$020 | 0) == ($wbuf | 0); + $13 = $11 ? 0 : $9; + $$13 = $$0218 - $13 | 0; + $ws$1 = $11 ? $ws$020 : $ws$020 + ($9 << 2) | 0; + $14 = $9 + $cnt$019 | 0; + $15 = HEAP32[$s >> 2] | 0; + if (($$0218 | 0) != ($13 | 0) & ($15 | 0) != 0) { + $$021 = $8; + $$0218 = $$13; + $37 = $15; + $cnt$019 = $14; + $ws$020 = $ws$1; } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $$1 = $8; + $$24 = $$13; + $19 = $15; + $cnt$1 = $14; + $ws$09 = $ws$1; + break L1; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + $$1 = $$lcssa57; + $$24 = 0; + $19 = HEAP32[$s >> 2] | 0; + $cnt$1 = -1; + $ws$09 = $ws$020$lcssa56; } else { - $wk_max$0$lcssa = 0; - label = 52; + $$1 = $n; + $$24 = $wn$; + $19 = $$cast; + $cnt$1 = 0; + $ws$09 = $wcs$; } while (0); - if ((label | 0) == 52) { - $220 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; - while (1) { - $222 = HEAP32[$wk$439 >> 2] | 0; - if (($222 | 0) == ($i$337 | 0)) { - $228 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $228; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } + L8 : do if (!$19) $cnt$3 = $cnt$1; else if (($$24 | 0) != 0 & ($$1 | 0) != 0) { + $$216 = $$1; + $$313 = $$24; + $23 = $19; + $cnt$214 = $cnt$1; + $ws$215 = $ws$09; + while (1) { + $24 = _mbrtowc($ws$215, $23, $$216, $st) | 0; + if (($24 + 2 | 0) >>> 0 < 3) { + $$lcssa = $24; + $cnt$214$lcssa = $cnt$214; + break; + } + $23 = (HEAP32[$s >> 2] | 0) + $24 | 0; + HEAP32[$s >> 2] = $23; + $$313 = $$313 + -1 | 0; + $32 = $cnt$214 + 1 | 0; + if (!(($$313 | 0) != 0 & ($$216 | 0) != ($24 | 0))) { + $cnt$3 = $32; + break L8; + } else { + $$216 = $$216 - $24 | 0; + $cnt$214 = $32; + $ws$215 = $ws$215 + 4 | 0; + } + } + switch ($$lcssa | 0) { + case -1: + { + $cnt$3 = -1; + break L8; + break; + } + case 0: + { + HEAP32[$s >> 2] = 0; + $cnt$3 = $cnt$214$lcssa; + break L8; + break; + } + default: + { + HEAP32[$st >> 2] = 0; + $cnt$3 = $cnt$214$lcssa; + break L8; } } - $232 = $labelInfo + 8 | 0; - $233 = $j$1$lcssa + -1 | 0; - HEAP32[$232 >> 2] = $233; - if (!$233) $$0 = 0; else { - _memset($220 | 0, 0, $233 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; + } else $cnt$3 = $cnt$1; while (0); + if ($1) HEAP32[$src >> 2] = HEAP32[$s >> 2]; + STACKTOP = sp; + return $cnt$3 | 0; +} + +function __ZNKSt3__18messagesIwE6do_getEiiiRKNS_12basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE($agg$result, $this, $__c, $__set, $__msgid, $__dflt) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__c = $__c | 0; + $__set = $__set | 0; + $__msgid = $__msgid | 0; + $__dflt = $__dflt | 0; + var $$0$i15 = 0, $$0$i922 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $15 = 0, $16 = 0, $17 = 0, $22 = 0, $44 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $61 = 0, $7 = 0, $__bn$i7 = 0, $__buf$i6 = 0, $__mb$i5 = 0, $__ndflt = 0, $__p$0$i1018 = 0, $__p$0$i14 = 0, $__wn$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__mb$i5 = sp + 168 | 0; + $__buf$i6 = sp + 40 | 0; + $__bn$i7 = sp + 32 | 0; + $__wn$i = sp + 28 | 0; + $__ndflt = sp + 16 | 0; + $0 = sp + 8 | 0; + $1 = sp; + HEAP32[$__ndflt >> 2] = 0; + HEAP32[$__ndflt + 4 >> 2] = 0; + HEAP32[$__ndflt + 8 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 >> 2] = 14156; + $5 = HEAP8[$__dflt >> 0] | 0; + $7 = ($5 & 1) == 0; + $10 = $__dflt + 4 | 0; + $11 = $7 ? $10 : HEAP32[$__dflt + 8 >> 2] | 0; + $15 = $7 ? ($5 & 255) >>> 1 : HEAP32[$10 >> 2] | 0; + $16 = $11 + ($15 << 2) | 0; + $17 = $__buf$i6 + 32 | 0; + if (($15 | 0) > 0) { + $$0$i922 = $11; + do { + HEAP32[$__wn$i >> 2] = $$0$i922; + $22 = FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 12 >> 2] & 15]($0, $__mb$i5, $$0$i922, $16, $__wn$i, $__buf$i6, $17, $__bn$i7) | 0; + if ($__buf$i6 >>> 0 < (HEAP32[$__bn$i7 >> 2] | 0) >>> 0) { + $__p$0$i1018 = $__buf$i6; do { - $240 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0)); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($__ndflt, HEAP8[$__p$0$i1018 >> 0] | 0); + $__p$0$i1018 = $__p$0$i1018 + 1 | 0; + } while ($__p$0$i1018 >>> 0 < (HEAP32[$__bn$i7 >> 2] | 0) >>> 0); } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; + $$0$i922 = HEAP32[$__wn$i >> 2] | 0; + } while (($22 | 0) != 2 & $$0$i922 >>> 0 < $16 >>> 0); + } + $44 = _catgets(($__c | 0) == -1 ? -1 : $__c << 1, $__set, $__msgid, (HEAP8[$__ndflt >> 0] & 1) == 0 ? $__ndflt + 1 | 0 : HEAP32[$__ndflt + 8 >> 2] | 0) | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 >> 2] = 14204; + $48 = _strlen($44) | 0; + $49 = $44 + $48 | 0; + $50 = $49; + $51 = $__buf$i6 + 128 | 0; + if (($48 | 0) > 0) { + $$0$i15 = $44; + do { + HEAP32[$__wn$i >> 2] = $$0$i15; + $61 = FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$1 >> 2] | 0) + 16 >> 2] & 15]($1, $__mb$i5, $$0$i15, ($50 - $$0$i15 | 0) > 32 ? $$0$i15 + 32 | 0 : $49, $__wn$i, $__buf$i6, $51, $__bn$i7) | 0; + if ($__buf$i6 >>> 0 < (HEAP32[$__bn$i7 >> 2] | 0) >>> 0) { + $__p$0$i14 = $__buf$i6; do { - $254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $255 = $i$533 * 7 | 0; - $258 = $labelInfo + 12 + ($254 << 2) | 0; - HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0); - $265 = $254 << 1; - $266 = $labelInfo + 655376 + ($265 << 3) | 0; - HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0); - $274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0; - HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0); - $277 = $254 << 2; - $278 = $labelInfo + 131084 + ($277 << 2) | 0; - $282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0; - if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282; - $285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0; - $289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0; - if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289; - $292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw($agg$result, HEAP32[$__p$0$i14 >> 2] | 0); + $__p$0$i14 = $__p$0$i14 + 4 | 0; + } while ($__p$0$i14 >>> 0 < (HEAP32[$__bn$i7 >> 2] | 0) >>> 0); } - if ((HEAP32[$232 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $307 = $labelInfo + 12 + ($i$632 << 2) | 0; - $310 = $i$632 << 1; - $311 = $labelInfo + 655376 + ($310 << 3) | 0; - HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0); - $317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0; - HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; - } + $$0$i15 = HEAP32[$__wn$i >> 2] | 0; + } while (($61 | 0) != 2 & $$0$i15 >>> 0 < $49 >>> 0); } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__ndflt); STACKTOP = sp; - return $$0 | 0; + return; } -function _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcd($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = +$__v; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $29 = 0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__nb = 0, $__nc$0 = 0, $__nc$1 = 0, $__o = 0, $__ob$0 = 0, $__oe = 0, $__op = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 160 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; - while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; - } + $$byval_copy = sp + 68 | 0; + $vararg_buffer5 = sp + 32 | 0; + $vararg_buffer2 = sp + 24 | 0; + $vararg_buffer = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 72 | 0; + $__nb = sp + 64 | 0; + $__o = sp + 102 | 0; + $__op = sp + 60 | 0; + $__oe = sp + 56 | 0; + $0 = sp + 52 | 0; + $1 = sp + 48 | 0; + $2 = $__fmt; + HEAP32[$2 >> 2] = 37; + HEAP32[$2 + 4 >> 2] = 0; + $9 = __ZNSt3__114__num_put_base14__format_floatEPcPKcj($__fmt + 1 | 0, 56692, HEAP32[$__iob + 4 >> 2] | 0) | 0; + HEAP32[$__nb >> 2] = $__nar; + $10 = __ZNSt3__16__clocEv() | 0; + if ($9) { + HEAP32[$vararg_buffer >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer + 8 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer) | 0; + } else { + HEAPF64[$vararg_buffer2 >> 3] = $__v; + $__nc$0 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 30, $10, $__fmt, $vararg_buffer2) | 0; + } + if (($__nc$0 | 0) > 29) { + $16 = __ZNSt3__16__clocEv() | 0; + HEAP32[$vararg_buffer5 >> 2] = HEAP32[$__iob + 8 >> 2]; + HEAPF64[$vararg_buffer5 + 8 >> 3] = $__v; + $19 = __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__nb, $16, $__fmt, $vararg_buffer5) | 0; + $20 = HEAP32[$__nb >> 2] | 0; + if (!$20) __ZSt17__throw_bad_allocv(); else { + $23 = $20; + $36 = $20; + $__nc$1 = $19; } + } else { + $23 = HEAP32[$__nb >> 2] | 0; + $36 = 0; + $__nc$1 = $__nc$0; } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; + $22 = $23 + $__nc$1 | 0; + $24 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($23, $22, $__iob) | 0; + if (($23 | 0) == ($__nar | 0)) { + $30 = $__nar; + $35 = 0; + $__ob$0 = $__o; + } else { + $27 = _malloc($__nc$1 << 1) | 0; + if (!$27) __ZSt17__throw_bad_allocv(); else { + $30 = $23; + $35 = $27; + $__ob$0 = $27; + } + } + $29 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $29; + __ZNSt3__19__num_putIcE23__widen_and_group_floatEPcS2_S2_S2_RS2_S3_RKNS_6localeE($30, $24, $22, $__ob$0, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($29) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $32 = HEAP32[$__op >> 2] | 0; + $33 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $34 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__ob$0, $32, $33, $__iob, $__fl) | 0; + _free($35); + _free($36); + STACKTOP = sp; + return $34 | 0; +} + +function _jinit_upsampler($cinfo) { + $cinfo = $cinfo | 0; + var $$pre = 0, $0 = 0, $10 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $39 = 0, $40 = 0, $41 = 0, $48 = 0, $51 = 0, $6 = 0, $75 = 0, $80 = 0, $83 = 0, $85 = 0, $91 = 0, $ci$012 = 0, $compptr$011 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 160) | 0; + HEAP32[$cinfo + 452 >> 2] = $3; + HEAP32[$3 >> 2] = 129; + HEAP32[$3 + 4 >> 2] = 3; + $6 = $3 + 8 | 0; + HEAP32[$6 >> 2] = 0; + if (HEAP32[$cinfo + 300 >> 2] | 0) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 25; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + $$pre = $cinfo + 316 | 0; + if (!(HEAP32[$cinfo + 76 >> 2] | 0)) $91 = 0; else $91 = (HEAP32[$$pre >> 2] | 0) > 1; + $18 = $cinfo + 36 | 0; + $19 = $cinfo + 308 | 0; + $20 = $cinfo + 312 | 0; + $21 = $3 + 100 | 0; + $22 = $3 + 52 | 0; + $23 = $cinfo + 112 | 0; + $24 = $3 + 12 | 0; + if ((HEAP32[$18 >> 2] | 0) > 0) { + $ci$012 = 0; + $compptr$011 = HEAP32[$cinfo + 216 >> 2] | 0; while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; - } + $32 = HEAP32[$compptr$011 + 36 >> 2] | 0; + $33 = Math_imul($32, HEAP32[$compptr$011 + 8 >> 2] | 0) | 0; + $34 = HEAP32[$$pre >> 2] | 0; + $35 = ($33 | 0) / ($34 | 0) | 0; + $39 = (Math_imul(HEAP32[$compptr$011 + 12 >> 2] | 0, $32) | 0) / ($34 | 0) | 0; + $40 = HEAP32[$19 >> 2] | 0; + $41 = HEAP32[$20 >> 2] | 0; + HEAP32[$21 + ($ci$012 << 2) >> 2] = $39; + do if (!(HEAP32[$compptr$011 + 48 >> 2] | 0)) HEAP32[$22 + ($ci$012 << 2) >> 2] = 10; else { + $48 = ($39 | 0) == ($41 | 0); + if (($35 | 0) == ($40 | 0) & $48) { + HEAP32[$22 + ($ci$012 << 2) >> 2] = 11; + break; + } + $51 = ($35 << 1 | 0) == ($40 | 0); + do if ($51 & $48) { + if ($91) if ((HEAP32[$compptr$011 + 40 >> 2] | 0) >>> 0 > 2) { + HEAP32[$22 + ($ci$012 << 2) >> 2] = 12; + break; + } + HEAP32[$22 + ($ci$012 << 2) >> 2] = 13; + } else if ($51 & ($39 << 1 | 0) == ($41 | 0)) { + if ($91) if ((HEAP32[$compptr$011 + 40 >> 2] | 0) >>> 0 > 2) { + HEAP32[$22 + ($ci$012 << 2) >> 2] = 14; + HEAP32[$6 >> 2] = 1; + break; + } + HEAP32[$22 + ($ci$012 << 2) >> 2] = 15; + break; + } else { + if (!(($40 | 0) % ($35 | 0) | 0)) if (!(($41 | 0) % ($39 | 0) | 0)) { + HEAP32[$22 + ($ci$012 << 2) >> 2] = 16; + HEAP8[$3 + ($ci$012 + 140) >> 0] = ($40 | 0) / ($35 | 0) | 0; + HEAP8[$3 + ($ci$012 + 150) >> 0] = ($41 | 0) / ($39 | 0) | 0; + break; + } + $75 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$75 + 20 >> 2] = 38; + FUNCTION_TABLE_vi[HEAP32[$75 >> 2] & 255]($cinfo); + break; + } while (0); + $80 = HEAP32[(HEAP32[$0 >> 2] | 0) + 8 >> 2] | 0; + $83 = _jround_up(HEAP32[$23 >> 2] | 0, HEAP32[$19 >> 2] | 0) | 0; + $85 = FUNCTION_TABLE_iiiii[$80 & 15]($cinfo, 1, $83, HEAP32[$20 >> 2] | 0) | 0; + HEAP32[$24 + ($ci$012 << 2) >> 2] = $85; + } while (0); + $ci$012 = $ci$012 + 1 | 0; + if (($ci$012 | 0) >= (HEAP32[$18 >> 2] | 0)) break; else $compptr$011 = $compptr$011 + 84 | 0; } } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $23 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + ($17 << 1) | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($23) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($28 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $28; - $31 = ($28 << 16 >> 16) * 7 | 0; - $33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0; - HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; - $37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0; - HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255; - $41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0; - HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $48 = $47 << 16 >> 16; - $51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $52 = $51 << 16 >> 16; - $53 = $51 << 16 >> 16 > 0; - if ($47 << 16 >> 16 <= 0) { - if ($53) { - HEAP16[$pnt2$362 >> 1] = $51; - $153 = $52 * 7 | 0; - $155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0; - HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1; - $159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0; - HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255; - $163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0; - HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068; - $167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0; - if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $173 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($173 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $173; - $176 = ($173 << 16 >> 16) * 7 | 0; - $178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0; - HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1; - $182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0; - HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255; - $186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0; - HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068; - $190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0; - if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$190 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $193 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $193; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16; - $198 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $193; - break; - } - } - if ($53) { - $56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0; - if (($56 | 0) > ($59 | 0)) { - HEAP16[$pnt2$362 >> 1] = $59; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $76 = $59; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $76 = $59; - } else { - HEAP16[$pnt2$362 >> 1] = $56; - if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $76 = $56; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $76 = $56; - } - $78 = ($76 << 16 >> 16) * 7 | 0; - $80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0; - HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1; - $84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0; - HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255; - $88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0; - HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $94 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($94 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $47; - $134 = $48 * 7 | 0; - $136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0; - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1; - $140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0; - HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255; - $144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0; - HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068; - $148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0; - if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; + return; +} + +function __ZN6vision21HoughSimilarityVoting4voteEPKfS2_i($this, $ins, $ref, $size) { + $this = $this | 0; + $ins = $ins | 0; + $ref = $ref | 0; + $size = $size | 0; + var $$sum1 = 0, $$sum2 = 0, $$sum3 = 0, $10 = 0, $11 = 0, $13 = 0, $2 = 0, $35 = 0, $36 = 0, $4 = 0, $8 = 0, $9 = 0, $angle = 0, $i$010 = 0, $num_features_that_cast_vote$0$lcssa = 0, $num_features_that_cast_vote$011 = 0, $num_features_that_cast_vote$1 = 0, $scale = 0, $x = 0, $y = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $x = sp + 12 | 0; + $y = sp + 8 | 0; + $angle = sp + 4 | 0; + $scale = sp; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE5clearEv($this + 92 | 0); + if ($size) { + $2 = $this + 112 | 0; + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($2, $size << 2); + $4 = $this + 124 | 0; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($4, $size); + if (HEAP8[$this + 16 >> 0] | 0) __ZN6vision21HoughSimilarityVoting19autoAdjustXYNumBinsEPKfS2_i($this, $ins, $ref, $size); + $8 = $this + 68 | 0; + $9 = $this + 72 | 0; + $10 = $this + 76 | 0; + $11 = $this + 80 | 0; + if (($size | 0) > 0) { + $i$010 = 0; + $num_features_that_cast_vote$011 = 0; + while (1) { + $13 = $i$010 << 2; + $$sum1 = $13 | 1; + $$sum2 = $13 | 2; + $$sum3 = $13 | 3; + __ZNK6vision21HoughSimilarityVoting17mapCorrespondenceERfS1_S1_S1_ffffffff($this, $x, $y, $angle, $scale, +HEAPF32[$ins + ($13 << 2) >> 2], +HEAPF32[$ins + ($$sum1 << 2) >> 2], +HEAPF32[$ins + ($$sum2 << 2) >> 2], +HEAPF32[$ins + ($$sum3 << 2) >> 2], +HEAPF32[$ref + ($13 << 2) >> 2], +HEAPF32[$ref + ($$sum1 << 2) >> 2], +HEAPF32[$ref + ($$sum2 << 2) >> 2], +HEAPF32[$ref + ($$sum3 << 2) >> 2]); + if (__ZN6vision21HoughSimilarityVoting4voteEffff($this, +HEAPF32[$x >> 2], +HEAPF32[$y >> 2], +HEAPF32[$angle >> 2], +HEAPF32[$scale >> 2]) | 0) { + $35 = $num_features_that_cast_vote$011 << 2; + $36 = HEAP32[$2 >> 2] | 0; + HEAP32[$36 + ($35 << 2) >> 2] = HEAP32[$8 >> 2]; + HEAP32[$36 + (($35 | 1) << 2) >> 2] = HEAP32[$9 >> 2]; + HEAP32[$36 + (($35 | 2) << 2) >> 2] = HEAP32[$10 >> 2]; + HEAP32[$36 + (($35 | 3) << 2) >> 2] = HEAP32[$11 >> 2]; + HEAP32[(HEAP32[$4 >> 2] | 0) + ($num_features_that_cast_vote$011 << 2) >> 2] = $i$010; + $num_features_that_cast_vote$1 = $num_features_that_cast_vote$011 + 1 | 0; + } else $num_features_that_cast_vote$1 = $num_features_that_cast_vote$011; + $i$010 = $i$010 + 1 | 0; + if (($i$010 | 0) >= ($size | 0)) { + $num_features_that_cast_vote$0$lcssa = $num_features_that_cast_vote$1; + break; + } else $num_features_that_cast_vote$011 = $num_features_that_cast_vote$1; + } + } else $num_features_that_cast_vote$0$lcssa = 0; + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($2, $num_features_that_cast_vote$0$lcssa << 2); + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($4, $num_features_that_cast_vote$0$lcssa); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt, $Maxcode, $mode) { + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + $Maxcode = $Maxcode | 0; + $mode = $mode | 0; + var $$0 = 0, $$pre = 0, $$pre1 = 0, $11 = 0, $12 = 0, $17 = 0, $24 = 0, $35 = 0, $38 = 0, $40 = 0, $50 = 0, $55 = 0, $6 = 0, $66 = 0, $72 = 0, $77 = 0, $8 = 0, label = 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + $$pre1 = $to_end; + if (!($mode & 2)) label = 4; else if (($$pre1 - $to | 0) < 3) $$0 = 1; else { + HEAP32[$to_nxt >> 2] = $to + 1; + HEAP8[$to >> 0] = -17; + $6 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $6 + 1; + HEAP8[$6 >> 0] = -69; + $8 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $8 + 1; + HEAP8[$8 >> 0] = -65; + label = 4; + } + L4 : do if ((label | 0) == 4) { + $$pre = HEAP32[$frm_nxt >> 2] | 0; + if ($$pre >>> 0 < $frm_end >>> 0) { + $12 = $$pre; + while (1) { + $11 = HEAP32[$12 >> 2] | 0; + if ($11 >>> 0 > $Maxcode >>> 0 | ($11 & -2048 | 0) == 55296) { + $$0 = 2; + break L4; + } + do if ($11 >>> 0 < 128) { + $17 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $17 | 0) < 1) { + $$0 = 1; + break L4; + } + HEAP32[$to_nxt >> 2] = $17 + 1; + HEAP8[$17 >> 0] = $11; + } else { + if ($11 >>> 0 < 2048) { + $24 = HEAP32[$to_nxt >> 2] | 0; + if (($$pre1 - $24 | 0) < 2) { + $$0 = 1; + break L4; } - $99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0; - $102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($99 | 0) > ($102 | 0)) { - HEAP16[$pnt2$362 >> 1] = $102; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $119 = $102; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $119 = $102; - } else { - HEAP16[$pnt2$362 >> 1] = $99; - if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $119 = $99; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $119 = $99; + HEAP32[$to_nxt >> 2] = $24 + 1; + HEAP8[$24 >> 0] = $11 >>> 6 | 192; + $35 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $35 + 1; + HEAP8[$35 >> 0] = $11 & 63 | 128; + break; + } + $38 = HEAP32[$to_nxt >> 2] | 0; + $40 = $$pre1 - $38 | 0; + if ($11 >>> 0 < 65536) { + if (($40 | 0) < 3) { + $$0 = 1; + break L4; } - $121 = ($119 << 16 >> 16) * 7 | 0; - $123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0; - HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1; - $127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0; - HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255; - $131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0; - HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $213 = $pnt$163 + 2 | 0; - $214 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $213; - $pnt2$3$lcssa = $214; - $wk_max$1$lcssa = $wk_max$2; + HEAP32[$to_nxt >> 2] = $38 + 1; + HEAP8[$38 >> 0] = $11 >>> 12 | 224; + $50 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $50 + 1; + HEAP8[$50 >> 0] = $11 >>> 6 & 63 | 128; + $55 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $55 + 1; + HEAP8[$55 >> 0] = $11 & 63 | 128; break; } else { - $pnt$163 = $213; - $pnt2$362 = $214; - $wk_max$157 = $wk_max$2; + if (($40 | 0) < 4) { + $$0 = 1; + break L4; + } + HEAP32[$to_nxt >> 2] = $38 + 1; + HEAP8[$38 >> 0] = $11 >>> 18 | 240; + $66 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $66 + 1; + HEAP8[$66 >> 0] = $11 >>> 12 & 63 | 128; + $72 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $72 + 1; + HEAP8[$72 >> 0] = $11 >>> 6 & 63 | 128; + $77 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $77 + 1; + HEAP8[$77 >> 0] = $11 & 63 | 128; + break; } + } while (0); + $12 = (HEAP32[$frm_nxt >> 2] | 0) + 4 | 0; + HEAP32[$frm_nxt >> 2] = $12; + if ($12 >>> 0 >= $frm_end >>> 0) { + $$0 = 0; + break; } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; - } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 4 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; } - } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; - } else { - $wk_max$0$lcssa = 0; - label = 52; + } else $$0 = 0; } while (0); - if ((label | 0) == 52) { - $220 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; + return $$0 | 0; +} + +function _jinit_d_main_controller($cinfo, $need_full_buffer) { + $cinfo = $cinfo | 0; + $need_full_buffer = $need_full_buffer | 0; + var $$pre$phi3Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $14 = 0, $15 = 0, $17 = 0, $20 = 0, $23 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $59 = 0, $6 = 0, $66 = 0, $67 = 0, $75 = 0, $76 = 0, $77 = 0, $ci$0$i9 = 0, $ci$04 = 0, $compptr$0$i8 = 0, $compptr$05 = 0, $ngroups$0 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 80) | 0; + $4 = $cinfo + 424 | 0; + HEAP32[$4 >> 2] = $3; + HEAP32[$3 >> 2] = 41; + if ($need_full_buffer) { + $6 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$6 + 20 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$6 >> 2] & 255]($cinfo); + } + $14 = $cinfo + 316 | 0; + $15 = HEAP32[$14 >> 2] | 0; + if (!(HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 8 >> 2] | 0)) { + $$pre$phi3Z2D = $cinfo + 36 | 0; + $$pre$phiZ2D = $cinfo + 216 | 0; + $ngroups$0 = $15; + } else { + if (($15 | 0) < 2) { + $17 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$17 + 20 >> 2] = 47; + FUNCTION_TABLE_vi[HEAP32[$17 >> 2] & 255]($cinfo); + $33 = HEAP32[$14 >> 2] | 0; + } else $33 = $15; + $20 = HEAP32[$4 >> 2] | 0; + $23 = $cinfo + 36 | 0; + $26 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, HEAP32[$23 >> 2] << 3) | 0; + $27 = $20 + 56 | 0; + HEAP32[$27 >> 2] = $26; + $28 = HEAP32[$23 >> 2] | 0; + $30 = $20 + 60 | 0; + HEAP32[$30 >> 2] = $26 + ($28 << 2); + $31 = $cinfo + 216 | 0; + $32 = $33 + 4 | 0; + if (($28 | 0) > 0) { + $ci$0$i9 = 0; + $compptr$0$i8 = HEAP32[$31 >> 2] | 0; while (1) { - $222 = HEAP32[$wk$439 >> 2] | 0; - if (($222 | 0) == ($i$337 | 0)) { - $228 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $228; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; - break; - } - } + $40 = Math_imul(HEAP32[$compptr$0$i8 + 36 >> 2] | 0, HEAP32[$compptr$0$i8 + 12 >> 2] | 0) | 0; + $42 = ($40 | 0) / (HEAP32[$14 >> 2] | 0) | 0; + $45 = Math_imul($42, $32) | 0; + $47 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, $45 << 3) | 0; + HEAP32[(HEAP32[$27 >> 2] | 0) + ($ci$0$i9 << 2) >> 2] = $47 + ($42 << 2); + HEAP32[(HEAP32[$30 >> 2] | 0) + ($ci$0$i9 << 2) >> 2] = $47 + ($45 + $42 << 2); + $ci$0$i9 = $ci$0$i9 + 1 | 0; + if (($ci$0$i9 | 0) >= (HEAP32[$23 >> 2] | 0)) break; else $compptr$0$i8 = $compptr$0$i8 + 84 | 0; + } + } + $$pre$phi3Z2D = $23; + $$pre$phiZ2D = $31; + $ngroups$0 = (HEAP32[$14 >> 2] | 0) + 2 | 0; + } + $59 = $3 + 8 | 0; + if ((HEAP32[$$pre$phi3Z2D >> 2] | 0) > 0) { + $ci$04 = 0; + $compptr$05 = HEAP32[$$pre$phiZ2D >> 2] | 0; + while (1) { + $66 = HEAP32[$compptr$05 + 36 >> 2] | 0; + $67 = Math_imul($66, HEAP32[$compptr$05 + 12 >> 2] | 0) | 0; + $75 = Math_imul(HEAP32[$compptr$05 + 28 >> 2] | 0, $66) | 0; + $76 = Math_imul(($67 | 0) / (HEAP32[$14 >> 2] | 0) | 0, $ngroups$0) | 0; + $77 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 8 >> 2] & 15]($cinfo, 1, $75, $76) | 0; + HEAP32[$59 + ($ci$04 << 2) >> 2] = $77; + $ci$04 = $ci$04 + 1 | 0; + if (($ci$04 | 0) >= (HEAP32[$$pre$phi3Z2D >> 2] | 0)) break; else $compptr$05 = $compptr$05 + 84 | 0; } - $232 = $labelInfo + 8 | 0; - $233 = $j$1$lcssa + -1 | 0; - HEAP32[$232 >> 2] = $233; - if (!$233) $$0 = 0; else { - _memset($220 | 0, 0, $233 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $240 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0)); + } + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_white_spaceERS4_S4_RjRKNS_5ctypeIcEE($this, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$0$i$i = 0, $$pre$i2$i$i6 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $15 = 0, $27 = 0, $29 = 0, $46 = 0, $47 = 0, $48 = 0, $56 = 0, $68 = 0, $69 = 0, $83 = 0, label = 0; + $0 = $__ct + 8 | 0; + L1 : while (1) { + $1 = HEAP32[$__b >> 2] | 0; + do if (!$1) $14 = 0; else if ((HEAP32[$1 + 12 >> 2] | 0) == (HEAP32[$1 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 36 >> 2] & 127]($1) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $14 = 0; + break; + } else { + $14 = HEAP32[$__b >> 2] | 0; + break; + } else $14 = $1; while (0); + $13 = ($14 | 0) == 0; + $15 = HEAP32[$__e >> 2] | 0; + do if (!$15) label = 12; else { + if ((HEAP32[$15 + 12 >> 2] | 0) != (HEAP32[$15 + 16 >> 2] | 0)) if ($13) { + $83 = $15; + break; + } else { + $$pre$i2$i$i6 = $15; + break L1; } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $255 = $i$533 * 7 | 0; - $258 = $labelInfo + 12 + ($254 << 2) | 0; - HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0); - $265 = $254 << 1; - $266 = $labelInfo + 655376 + ($265 << 3) | 0; - HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0); - $274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0; - HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0); - $277 = $254 << 2; - $278 = $labelInfo + 131084 + ($277 << 2) | 0; - $282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0; - if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282; - $285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0; - $289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0; - if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289; - $292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0; - $296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0; - if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296; - $299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0; - $303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0; - if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$15 >> 2] | 0) + 36 >> 2] & 127]($15) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 12; + break; + } else if ($13) { + $83 = $15; + break; + } else { + $$pre$i2$i$i6 = $15; + break L1; } - if ((HEAP32[$232 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $307 = $labelInfo + 12 + ($i$632 << 2) | 0; - $310 = $i$632 << 1; - $311 = $labelInfo + 655376 + ($310 << 3) | 0; - HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0); - $317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0; - HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ((label | 0) == 12) { + label = 0; + if ($13) { + $$pre$i2$i$i6 = 0; + break; + } else $83 = 0; + } + $27 = HEAP32[$__b >> 2] | 0; + $29 = HEAP32[$27 + 12 >> 2] | 0; + if (($29 | 0) == (HEAP32[$27 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$27 >> 2] | 0) + 36 >> 2] & 127]($27) | 0; else $$0$i$i = HEAPU8[$29 >> 0] | 0; + if (($$0$i$i & 255) << 24 >> 24 <= -1) { + $$pre$i2$i$i6 = $83; + break; + } + if (!(HEAP16[(HEAP32[$0 >> 2] | 0) + ($$0$i$i << 24 >> 24 << 1) >> 1] & 8192)) { + $$pre$i2$i$i6 = $83; + break; + } + $46 = HEAP32[$__b >> 2] | 0; + $47 = $46 + 12 | 0; + $48 = HEAP32[$47 >> 2] | 0; + if (($48 | 0) == (HEAP32[$46 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$46 >> 2] | 0) + 40 >> 2] & 127]($46) | 0; + continue; + } else { + HEAP32[$47 >> 2] = $48 + 1; + continue; } } - STACKTOP = sp; - return $$0 | 0; + $56 = HEAP32[$__b >> 2] | 0; + do if (!$56) $69 = 0; else if ((HEAP32[$56 + 12 >> 2] | 0) == (HEAP32[$56 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$56 >> 2] | 0) + 36 >> 2] & 127]($56) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $69 = 0; + break; + } else { + $69 = HEAP32[$__b >> 2] | 0; + break; + } else $69 = $56; while (0); + $68 = ($69 | 0) == 0; + do if (!$$pre$i2$i$i6) label = 32; else { + if ((HEAP32[$$pre$i2$i$i6 + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i6 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i6 >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i6) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 32; + break; + } + if (!$68) label = 33; + } while (0); + if ((label | 0) == 32) if ($68) label = 33; + if ((label | 0) == 33) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + return; } -function _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; +function _alloc_small($cinfo, $pool_id, $sizeofobject) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $sizeofobject = $sizeofobject | 0; + var $$0 = 0, $$lcssa = 0, $$lcssa13 = 0, $$slop$0 = 0, $1 = 0, $12 = 0, $16 = 0, $20 = 0, $21 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $29 = 0, $3 = 0, $33 = 0, $34 = 0, $36 = 0, $43 = 0, $44 = 0, $47 = 0, $7 = 0, $hdr_ptr$0 = 0, $hdr_ptr$019 = 0, $hdr_ptr$021 = 0, $hdr_ptr$1 = 0, $prev_hdr_ptr$0$lcssa = 0, $slop$0 = 0, $slop$1$lcssa = 0, $slop$116 = 0, label = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + if ($sizeofobject >>> 0 > 999999984) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 54; + HEAP32[$3 + 24 >> 2] = 1; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = $sizeofobject & 7; + $$0 = (($7 | 0) == 0 ? 0 : 8 - $7 | 0) + $sizeofobject | 0; + if ($pool_id >>> 0 > 1) { + $12 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$12 + 20 >> 2] = 14; + HEAP32[$12 + 24 >> 2] = $pool_id; + FUNCTION_TABLE_vi[HEAP32[$12 >> 2] & 255]($cinfo); + } + $16 = $1 + 52 + ($pool_id << 2) | 0; + $hdr_ptr$019 = HEAP32[$16 >> 2] | 0; + L7 : do if (!$hdr_ptr$019) { + $prev_hdr_ptr$0$lcssa = 0; + label = 8; + } else { + $hdr_ptr$021 = $hdr_ptr$019; while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; + if ((HEAP32[$hdr_ptr$021 + 8 >> 2] | 0) >>> 0 >= $$0 >>> 0) { + $hdr_ptr$1 = $hdr_ptr$021; + break L7; } + $hdr_ptr$0 = HEAP32[$hdr_ptr$021 >> 2] | 0; + if (!$hdr_ptr$0) { + $prev_hdr_ptr$0$lcssa = $hdr_ptr$021; + label = 8; + break; + } else $hdr_ptr$021 = $hdr_ptr$0; } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + } while (0); + do if ((label | 0) == 8) { + $20 = $$0 + 16 | 0; + $21 = ($prev_hdr_ptr$0$lcssa | 0) == 0; + $slop$0 = HEAP32[($21 ? 5676 : 5684) + ($pool_id << 2) >> 2] | 0; + $22 = 999999984 - $$0 | 0; + $$slop$0 = $slop$0 >>> 0 > $22 >>> 0 ? $22 : $slop$0; + $24 = $20 + $$slop$0 | 0; + $25 = _jpeg_get_small($cinfo, $24) | 0; + if (!$25) { + $slop$116 = $$slop$0; + while (1) { + $27 = $slop$116 >>> 1; + if ($slop$116 >>> 0 < 100) { + $29 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$29 + 20 >> 2] = 54; + HEAP32[$29 + 24 >> 2] = 2; + FUNCTION_TABLE_vi[HEAP32[$29 >> 2] & 255]($cinfo); + } + $33 = $20 + $27 | 0; + $34 = _jpeg_get_small($cinfo, $33) | 0; + if (!$34) $slop$116 = $27; else { + $$lcssa = $33; + $$lcssa13 = $34; + $slop$1$lcssa = $27; + break; + } } + } else { + $$lcssa = $24; + $$lcssa13 = $25; + $slop$1$lcssa = $$slop$0; + } + $36 = $1 + 76 | 0; + HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $$lcssa; + HEAP32[$$lcssa13 >> 2] = 0; + HEAP32[$$lcssa13 + 4 >> 2] = 0; + HEAP32[$$lcssa13 + 8 >> 2] = $slop$1$lcssa + $$0; + if ($21) { + HEAP32[$16 >> 2] = $$lcssa13; + $hdr_ptr$1 = $$lcssa13; + break; + } else { + HEAP32[$prev_hdr_ptr$0$lcssa >> 2] = $$lcssa13; + $hdr_ptr$1 = $$lcssa13; + break; } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $22 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + $17 | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($22) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - $27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($27 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $27; - $30 = ($27 << 16 >> 16) * 7 | 0; - $32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0; - HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1; - $36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255; - $40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $47 = $46 << 16 >> 16; - $50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $52 = $50 << 16 >> 16 > 0; - if ($46 << 16 >> 16 <= 0) { - if ($52) { - HEAP16[$pnt2$362 >> 1] = $50; - $152 = $51 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068; - $166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $172 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($172 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $172; - $175 = ($172 << 16 >> 16) * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$189 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $192 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $192; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16; - $197 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $192; - break; - } - } - if ($52) { - $55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; - $58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - if (($55 | 0) > ($58 | 0)) { - HEAP16[$pnt2$362 >> 1] = $58; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $75 = $58; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $75 = $58; - } else { - HEAP16[$pnt2$362 >> 1] = $55; - if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $75 = $55; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $75 = $55; - } - $77 = ($75 << 16 >> 16) * 7 | 0; - $79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0; - HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1; - $83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255; - $87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $93 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($93 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $46; - $133 = $47 * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068; - $147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0; - if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; - $101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($98 | 0) > ($101 | 0)) { - HEAP16[$pnt2$362 >> 1] = $101; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $118 = $101; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $118 = $101; - } else { - HEAP16[$pnt2$362 >> 1] = $98; - if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $118 = $98; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $118 = $98; - } - $120 = ($118 << 16 >> 16) * 7 | 0; - $122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0; - HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1; - $126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255; - $130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } else { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $212 = $pnt$163 + 1 | 0; - $213 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $212; - $pnt2$3$lcssa = $213; - $wk_max$1$lcssa = $wk_max$2; + } while (0); + $43 = $hdr_ptr$1 + 4 | 0; + $44 = HEAP32[$43 >> 2] | 0; + HEAP32[$43 >> 2] = $44 + $$0; + $47 = $hdr_ptr$1 + 8 | 0; + HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) - $$0; + return $hdr_ptr$1 + 16 + $44 | 0; +} + +function __ZNSt3__110__stdinbufIcE9__getcharEb($this, $__consume) { + $this = $this | 0; + $__consume = $__consume | 0; + var $$0 = 0, $0 = 0, $12 = 0, $21 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $28 = 0, $3 = 0, $31 = 0, $32 = 0, $33 = 0, $39 = 0, $4 = 0, $45 = 0, $58 = 0, $6 = 0, $62 = 0, $8 = 0, $9 = 0, $__1buf = 0, $__enxt = 0, $__extbuf = 0, $__i$019 = 0, $__i2$0 = 0, $__inxt = 0, $__nread$0 = 0, $__nread$0$lcssa24 = 0, $__nread$2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 16 | 0; + $__1buf = sp + 8 | 0; + $__enxt = sp + 4 | 0; + $__inxt = sp; + $0 = $this + 52 | 0; + L1 : do if (!(HEAP8[$0 >> 0] | 0)) { + $6 = HEAP32[$this + 44 >> 2] | 0; + $8 = ($6 | 0) > 1 ? $6 : 1; + $9 = $this + 32 | 0; + if (($8 | 0) > 0) { + $__i$019 = 0; + do { + $12 = _getc(HEAP32[$9 >> 2] | 0) | 0; + if (($12 | 0) == -1) { + $$0 = -1; + break L1; + } + HEAP8[$__extbuf + $__i$019 >> 0] = $12; + $__i$019 = $__i$019 + 1 | 0; + } while (($__i$019 | 0) < ($8 | 0)); + } + L8 : do if (!(HEAP8[$this + 53 >> 0] | 0)) { + $21 = $this + 40 | 0; + $22 = $this + 36 | 0; + $23 = $__1buf + 1 | 0; + $__nread$0 = $8; + L10 : while (1) { + $25 = HEAP32[$21 >> 2] | 0; + $26 = $25; + $28 = HEAP32[$26 >> 2] | 0; + $31 = HEAP32[$26 + 4 >> 2] | 0; + $32 = HEAP32[$22 >> 2] | 0; + $33 = $__extbuf + $__nread$0 | 0; + switch (FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$32 >> 2] | 0) + 16 >> 2] & 15]($32, $25, $__extbuf, $33, $__enxt, $__1buf, $23, $__inxt) | 0) { + case 2: + { + $$0 = -1; + break L1; break; - } else { - $pnt$163 = $212; - $pnt2$362 = $213; - $wk_max$157 = $wk_max$2; + } + case 3: + { + $__nread$0$lcssa24 = $__nread$0; + break L10; + break; + } + case 1: + break; + default: + { + $__nread$2 = $__nread$0; + break L8; } } - } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $39 = HEAP32[$21 >> 2] | 0; + HEAP32[$39 >> 2] = $28; + HEAP32[$39 + 4 >> 2] = $31; + if (($__nread$0 | 0) == 8) { + $$0 = -1; + break L1; + } + $45 = _getc(HEAP32[$9 >> 2] | 0) | 0; + if (($45 | 0) == -1) { + $$0 = -1; + break L1; + } + HEAP8[$33 >> 0] = $45; + $__nread$0 = $__nread$0 + 1 | 0; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; - } else { - $pnt$072 = $pnt$1$lcssa + 2 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + HEAP8[$__1buf >> 0] = HEAP8[$__extbuf >> 0] | 0; + $__nread$2 = $__nread$0$lcssa24; + } else { + HEAP8[$__1buf >> 0] = HEAP8[$__extbuf >> 0] | 0; + $__nread$2 = $8; + } while (0); + if ($__consume) { + $58 = HEAP8[$__1buf >> 0] | 0; + HEAP32[$this + 48 >> 2] = $58 & 255; + $62 = $58; + } else { + $__i2$0 = $__nread$2; + while (1) { + if (($__i2$0 | 0) <= 0) break; + $__i2$0 = $__i2$0 + -1 | 0; + if ((_ungetc(HEAPU8[$__extbuf + $__i2$0 >> 0] | 0, HEAP32[$9 >> 2] | 0) | 0) == -1) { + $$0 = -1; + break L1; + } } + $62 = HEAP8[$__1buf >> 0] | 0; } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + $$0 = $62 & 255; } else { - $wk_max$0$lcssa = 0; - label = 52; + $3 = $this + 48 | 0; + $4 = HEAP32[$3 >> 2] | 0; + if ($__consume) { + HEAP32[$3 >> 2] = -1; + HEAP8[$0 >> 0] = 0; + $$0 = $4; + } else $$0 = $4; } while (0); - if ((label | 0) == 52) { - $219 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; - while (1) { - $221 = HEAP32[$wk$439 >> 2] | 0; - if (($221 | 0) == ($i$337 | 0)) { - $227 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_percentERS4_S4_RjRKNS_5ctypeIcEE($this, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$0$i$i = 0, $$pre = 0, $$pre$i2$i$i611 = 0, $0 = 0, $12 = 0, $13 = 0, $14 = 0, $28 = 0, $30 = 0, $48 = 0, $49 = 0, $50 = 0, $60 = 0, $70 = 0, $71 = 0, label = 0; + $0 = HEAP32[$__b >> 2] | 0; + do if (!$0) $13 = 0; else if ((HEAP32[$0 + 12 >> 2] | 0) == (HEAP32[$0 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 127]($0) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $13 = 0; + break; + } else { + $13 = HEAP32[$__b >> 2] | 0; + break; + } else $13 = $0; while (0); + $12 = ($13 | 0) == 0; + $14 = HEAP32[$__e >> 2] | 0; + do if (!$14) label = 11; else { + if ((HEAP32[$14 + 12 >> 2] | 0) == (HEAP32[$14 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$14 >> 2] | 0) + 36 >> 2] & 127]($14) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 11; + break; + } + if ($12) { + $$pre$i2$i$i611 = $14; + label = 13; + } else label = 12; + } while (0); + if ((label | 0) == 11) if ($12) label = 12; else { + $$pre$i2$i$i611 = 0; + label = 13; + } + L16 : do if ((label | 0) == 12) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 6; else if ((label | 0) == 13) { + $28 = HEAP32[$__b >> 2] | 0; + $30 = HEAP32[$28 + 12 >> 2] | 0; + if (($30 | 0) == (HEAP32[$28 + 16 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$28 >> 2] | 0) + 36 >> 2] & 127]($28) | 0; else $$0$i$i = HEAPU8[$30 >> 0] | 0; + if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$__ct >> 2] | 0) + 36 >> 2] & 63]($__ct, $$0$i$i & 255, 0) | 0) << 24 >> 24 != 37) { + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; + break; + } + $48 = HEAP32[$__b >> 2] | 0; + $49 = $48 + 12 | 0; + $50 = HEAP32[$49 >> 2] | 0; + if (($50 | 0) == (HEAP32[$48 + 16 >> 2] | 0)) { + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$48 >> 2] | 0) + 40 >> 2] & 127]($48) | 0; + $$pre = HEAP32[$__b >> 2] | 0; + if (!$$pre) $71 = 0; else { + $60 = $$pre; + label = 21; + } + } else { + HEAP32[$49 >> 2] = $50 + 1; + $60 = $48; + label = 21; + } + do if ((label | 0) == 21) if ((HEAP32[$60 + 12 >> 2] | 0) == (HEAP32[$60 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$60 >> 2] | 0) + 36 >> 2] & 127]($60) | 0) == -1) { + HEAP32[$__b >> 2] = 0; + $71 = 0; + break; + } else { + $71 = HEAP32[$__b >> 2] | 0; + break; + } else $71 = $60; while (0); + $70 = ($71 | 0) == 0; + do if (!$$pre$i2$i$i611) label = 30; else { + if ((HEAP32[$$pre$i2$i$i611 + 12 >> 2] | 0) == (HEAP32[$$pre$i2$i$i611 + 16 >> 2] | 0)) if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$$pre$i2$i$i611 >> 2] | 0) + 36 >> 2] & 127]($$pre$i2$i$i611) | 0) == -1) { + HEAP32[$__e >> 2] = 0; + label = 30; + break; + } + if ($70) break L16; + } while (0); + if ((label | 0) == 30) if (!$70) break; + HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 2; + } while (0); + return; +} + +function __ZN6vision18HammingDistance768EPKjS1_($a, $b) { + $a = $a | 0; + $b = $b | 0; + var $104 = 0, $110 = 0, $116 = 0, $122 = 0, $128 = 0, $134 = 0, $14 = 0, $2 = 0, $20 = 0, $26 = 0, $32 = 0, $38 = 0, $44 = 0, $50 = 0, $56 = 0, $62 = 0, $68 = 0, $74 = 0, $8 = 0, $80 = 0, $86 = 0, $92 = 0, $98 = 0; + $2 = __ZN6vision17HammingDistance32Ejj(HEAP32[$a >> 2] | 0, HEAP32[$b >> 2] | 0) | 0; + $8 = (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 4 >> 2] | 0, HEAP32[$b + 4 >> 2] | 0) | 0) + $2 | 0; + $14 = $8 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 8 >> 2] | 0, HEAP32[$b + 8 >> 2] | 0) | 0) | 0; + $20 = $14 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 12 >> 2] | 0, HEAP32[$b + 12 >> 2] | 0) | 0) | 0; + $26 = $20 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 16 >> 2] | 0, HEAP32[$b + 16 >> 2] | 0) | 0) | 0; + $32 = $26 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 20 >> 2] | 0, HEAP32[$b + 20 >> 2] | 0) | 0) | 0; + $38 = $32 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 24 >> 2] | 0, HEAP32[$b + 24 >> 2] | 0) | 0) | 0; + $44 = $38 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 28 >> 2] | 0, HEAP32[$b + 28 >> 2] | 0) | 0) | 0; + $50 = $44 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 32 >> 2] | 0, HEAP32[$b + 32 >> 2] | 0) | 0) | 0; + $56 = $50 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 36 >> 2] | 0, HEAP32[$b + 36 >> 2] | 0) | 0) | 0; + $62 = $56 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 40 >> 2] | 0, HEAP32[$b + 40 >> 2] | 0) | 0) | 0; + $68 = $62 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 44 >> 2] | 0, HEAP32[$b + 44 >> 2] | 0) | 0) | 0; + $74 = $68 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 48 >> 2] | 0, HEAP32[$b + 48 >> 2] | 0) | 0) | 0; + $80 = $74 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 52 >> 2] | 0, HEAP32[$b + 52 >> 2] | 0) | 0) | 0; + $86 = $80 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 56 >> 2] | 0, HEAP32[$b + 56 >> 2] | 0) | 0) | 0; + $92 = $86 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 60 >> 2] | 0, HEAP32[$b + 60 >> 2] | 0) | 0) | 0; + $98 = $92 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 64 >> 2] | 0, HEAP32[$b + 64 >> 2] | 0) | 0) | 0; + $104 = $98 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 68 >> 2] | 0, HEAP32[$b + 68 >> 2] | 0) | 0) | 0; + $110 = $104 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 72 >> 2] | 0, HEAP32[$b + 72 >> 2] | 0) | 0) | 0; + $116 = $110 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 76 >> 2] | 0, HEAP32[$b + 76 >> 2] | 0) | 0) | 0; + $122 = $116 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 80 >> 2] | 0, HEAP32[$b + 80 >> 2] | 0) | 0) | 0; + $128 = $122 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 84 >> 2] | 0, HEAP32[$b + 84 >> 2] | 0) | 0) | 0; + $134 = $128 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 88 >> 2] | 0, HEAP32[$b + 88 >> 2] | 0) | 0) | 0; + return $134 + (__ZN6vision17HammingDistance32Ejj(HEAP32[$a + 92 >> 2] | 0, HEAP32[$b + 92 >> 2] | 0) | 0) | 0; +} + +function __ZNSt3__110__stdinbufIwE9__getcharEb($this, $__consume) { + $this = $this | 0; + $__consume = $__consume | 0; + var $$0 = 0, $0 = 0, $12 = 0, $21 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $40 = 0, $46 = 0, $6 = 0, $60 = 0, $8 = 0, $9 = 0, $__1buf = 0, $__enxt = 0, $__extbuf = 0, $__i$019 = 0, $__i2$0 = 0, $__inxt = 0, $__nread$0 = 0, $__nread$0$lcssa24 = 0, $__nread$2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 16 | 0; + $__1buf = sp + 8 | 0; + $__enxt = sp + 4 | 0; + $__inxt = sp; + $0 = $this + 52 | 0; + L1 : do if (!(HEAP8[$0 >> 0] | 0)) { + $6 = HEAP32[$this + 44 >> 2] | 0; + $8 = ($6 | 0) > 1 ? $6 : 1; + $9 = $this + 32 | 0; + if (($8 | 0) > 0) { + $__i$019 = 0; + do { + $12 = _getc(HEAP32[$9 >> 2] | 0) | 0; + if (($12 | 0) == -1) { + $$0 = -1; + break L1; } - HEAP32[$wk$439 >> 2] = $227; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + HEAP8[$__extbuf + $__i$019 >> 0] = $12; + $__i$019 = $__i$019 + 1 | 0; + } while (($__i$019 | 0) < ($8 | 0)); + } + L8 : do if (!(HEAP8[$this + 53 >> 0] | 0)) { + $21 = $this + 40 | 0; + $22 = $this + 36 | 0; + $23 = $__1buf + 4 | 0; + $__nread$0 = $8; + L10 : while (1) { + $26 = HEAP32[$21 >> 2] | 0; + $27 = $26; + $29 = HEAP32[$27 >> 2] | 0; + $32 = HEAP32[$27 + 4 >> 2] | 0; + $33 = HEAP32[$22 >> 2] | 0; + $34 = $__extbuf + $__nread$0 | 0; + switch (FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$33 >> 2] | 0) + 16 >> 2] & 15]($33, $26, $__extbuf, $34, $__enxt, $__1buf, $23, $__inxt) | 0) { + case 2: + { + $$0 = -1; + break L1; + break; + } + case 3: + { + $__nread$0$lcssa24 = $__nread$0; + break L10; + break; + } + case 1: break; + default: + { + $__nread$2 = $__nread$0; + break L8; + } } + $40 = HEAP32[$21 >> 2] | 0; + HEAP32[$40 >> 2] = $29; + HEAP32[$40 + 4 >> 2] = $32; + if (($__nread$0 | 0) == 8) { + $$0 = -1; + break L1; + } + $46 = _getc(HEAP32[$9 >> 2] | 0) | 0; + if (($46 | 0) == -1) { + $$0 = -1; + break L1; + } + HEAP8[$34 >> 0] = $46; + $__nread$0 = $__nread$0 + 1 | 0; } - } - $231 = $labelInfo + 8 | 0; - $232 = $j$1$lcssa + -1 | 0; - HEAP32[$231 >> 2] = $232; - if (!$232) $$0 = 0; else { - _memset($219 | 0, 0, $232 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $239 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $254 = $i$533 * 7 | 0; - $257 = $labelInfo + 12 + ($253 << 2) | 0; - HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0); - $264 = $253 << 1; - $265 = $labelInfo + 655376 + ($264 << 3) | 0; - HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0); - $273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0; - HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0); - $276 = $253 << 2; - $277 = $labelInfo + 131084 + ($276 << 2) | 0; - $281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0; - if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281; - $284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0; - $288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0; - if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288; - $291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); + HEAP32[$__1buf >> 2] = HEAP8[$__extbuf >> 0]; + $__nread$2 = $__nread$0$lcssa24; + } else { + HEAP32[$__1buf >> 2] = HEAP8[$__extbuf >> 0]; + $__nread$2 = $8; + } while (0); + if ($__consume) { + $60 = HEAP32[$__1buf >> 2] | 0; + HEAP32[$this + 48 >> 2] = $60; + $$0 = $60; + break; + } else $__i2$0 = $__nread$2; + while (1) { + if (($__i2$0 | 0) <= 0) break; + $__i2$0 = $__i2$0 + -1 | 0; + if ((_ungetc(HEAP8[$__extbuf + $__i2$0 >> 0] | 0, HEAP32[$9 >> 2] | 0) | 0) == -1) { + $$0 = -1; + break L1; } - if ((HEAP32[$231 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $306 = $labelInfo + 12 + ($i$632 << 2) | 0; - $309 = $i$632 << 1; - $310 = $labelInfo + 655376 + ($309 << 3) | 0; - HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0); - $316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; } + $$0 = HEAP32[$__1buf >> 2] | 0; + } else { + $3 = $this + 48 | 0; + $4 = HEAP32[$3 >> 2] | 0; + if ($__consume) { + HEAP32[$3 >> 2] = -1; + HEAP8[$0 >> 0] = 0; + $$0 = $4; + } else $$0 = $4; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function ___stdio_write($f, $buf, $len) { + $f = $f | 0; + $buf = $buf | 0; + $len = $len | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $3 = 0, $35 = 0, $37 = 0, $39 = 0, $50 = 0, $6 = 0, $cnt$0 = 0, $cnt$1 = 0, $iov$0 = 0, $iov$0$lcssa11 = 0, $iov$1 = 0, $iovcnt$0 = 0, $iovcnt$0$lcssa12 = 0, $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer = sp; + $iovs = sp + 32 | 0; + $0 = $f + 28 | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$iovs >> 2] = $1; + $3 = $f + 20 | 0; + $6 = (HEAP32[$3 >> 2] | 0) - $1 | 0; + HEAP32[$iovs + 4 >> 2] = $6; + HEAP32[$iovs + 8 >> 2] = $buf; + HEAP32[$iovs + 12 >> 2] = $len; + $10 = $f + 60 | 0; + $11 = $f + 44 | 0; + $iov$0 = $iovs; + $iovcnt$0 = 2; + $rem$0 = $6 + $len | 0; + while (1) { + if (!(HEAP32[1545] | 0)) { + HEAP32[$vararg_buffer3 >> 2] = HEAP32[$10 >> 2]; + HEAP32[$vararg_buffer3 + 4 >> 2] = $iov$0; + HEAP32[$vararg_buffer3 + 8 >> 2] = $iovcnt$0; + $cnt$0 = ___syscall_ret(___syscall146(146, $vararg_buffer3 | 0) | 0) | 0; + } else { + _pthread_cleanup_push(145, $f | 0); + HEAP32[$vararg_buffer >> 2] = HEAP32[$10 >> 2]; + HEAP32[$vararg_buffer + 4 >> 2] = $iov$0; + HEAP32[$vararg_buffer + 8 >> 2] = $iovcnt$0; + $16 = ___syscall_ret(___syscall146(146, $vararg_buffer | 0) | 0) | 0; + _pthread_cleanup_pop(0); + $cnt$0 = $16; + } + if (($rem$0 | 0) == ($cnt$0 | 0)) { + label = 6; + break; + } + if (($cnt$0 | 0) < 0) { + $iov$0$lcssa11 = $iov$0; + $iovcnt$0$lcssa12 = $iovcnt$0; + label = 8; + break; + } + $35 = $rem$0 - $cnt$0 | 0; + $37 = HEAP32[$iov$0 + 4 >> 2] | 0; + if ($cnt$0 >>> 0 > $37 >>> 0) { + $39 = HEAP32[$11 >> 2] | 0; + HEAP32[$0 >> 2] = $39; + HEAP32[$3 >> 2] = $39; + $50 = HEAP32[$iov$0 + 12 >> 2] | 0; + $cnt$1 = $cnt$0 - $37 | 0; + $iov$1 = $iov$0 + 8 | 0; + $iovcnt$1 = $iovcnt$0 + -1 | 0; + } else if (($iovcnt$0 | 0) == 2) { + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + $cnt$0; + $50 = $37; + $cnt$1 = $cnt$0; + $iov$1 = $iov$0; + $iovcnt$1 = 2; + } else { + $50 = $37; + $cnt$1 = $cnt$0; + $iov$1 = $iov$0; + $iovcnt$1 = $iovcnt$0; + } + HEAP32[$iov$1 >> 2] = (HEAP32[$iov$1 >> 2] | 0) + $cnt$1; + HEAP32[$iov$1 + 4 >> 2] = $50 - $cnt$1; + $iov$0 = $iov$1; + $iovcnt$0 = $iovcnt$1; + $rem$0 = $35; + } + if ((label | 0) == 6) { + $21 = HEAP32[$11 >> 2] | 0; + HEAP32[$f + 16 >> 2] = $21 + (HEAP32[$f + 48 >> 2] | 0); + $26 = $21; + HEAP32[$0 >> 2] = $26; + HEAP32[$3 >> 2] = $26; + $$0 = $len; + } else if ((label | 0) == 8) { + HEAP32[$f + 16 >> 2] = 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$3 >> 2] = 0; + HEAP32[$f >> 2] = HEAP32[$f >> 2] | 32; + if (($iovcnt$0$lcssa12 | 0) == 2) $$0 = 0; else $$0 = $len - (HEAP32[$iov$0$lcssa11 + 4 >> 2] | 0) | 0; } STACKTOP = sp; return $$0 | 0; } -function _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelingThresh = $labelingThresh | 0; - $labelInfo = $labelInfo | 0; - var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0; +function __ZNKSt3__120__time_get_c_storageIwE8__monthsEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2784] | 0)) if (___cxa_guard_acquire(2784) | 0) { + if (!(HEAP8[2792] | 0)) if (___cxa_guard_acquire(2792) | 0) { + $8 = 15476; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 15764); + ___cxa_atexit(153, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2792); + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15476, 15764) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15488, 15796) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15500, 15832) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15512, 15856) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15524, 15880) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15536, 15896) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15548, 15916) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15560, 15936) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15572, 15964) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15584, 16004) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15596, 16036) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15608, 16072) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15620, 16108) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15632, 16124) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15644, 16140) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15656, 16156) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15668, 15880) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15680, 16172) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15692, 16188) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15704, 16204) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15716, 16220) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15728, 16236) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15740, 16252) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(15752, 16268) | 0; + HEAP32[4071] = 15476; + ___cxa_guard_release(2784); + } + return HEAP32[4071] | 0; +} + +function __ZNKSt3__120__time_get_c_storageIcE8__monthsEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2768] | 0)) if (___cxa_guard_acquire(2768) | 0) { + if (!(HEAP8[2776] | 0)) if (___cxa_guard_acquire(2776) | 0) { + $8 = 15184; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 15472); + ___cxa_atexit(152, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2776); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15184, 56877) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15196, 56885) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15208, 56894) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15220, 56900) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15232, 56906) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15244, 56910) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15256, 56915) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15268, 56920) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15280, 56927) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15292, 56937) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15304, 56945) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15316, 56954) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15328, 56963) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15340, 56967) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15352, 56971) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15364, 56975) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15376, 56906) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15388, 56979) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15400, 56983) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15412, 56987) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15424, 56991) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15436, 56995) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15448, 56999) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(15460, 57003) | 0; + HEAP32[3868] = 15184; + ___cxa_guard_release(2768); + } + return HEAP32[3868] | 0; +} + +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $15 = 0, $16 = 0, $17 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $3 = 0, $38 = 0, $39 = 0, $47 = 0, $49 = 0, $5 = 0, $6 = 0, $_ScopedTimer = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 80 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = HEAP32[$labelInfo >> 2] | 0; - $1 = $ysize + -1 | 0; - if (($xsize | 0) > 0) { - $i$081 = 0; - $pnt1$083 = $0; - $pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0; + $$byval_copy = sp + 72 | 0; + $vararg_buffer = sp + 32 | 0; + $0 = sp + 64 | 0; + $1 = sp + 60 | 0; + $_ScopedTimer = sp; + $2 = sp + 48 | 0; + $3 = $this + 160 | 0; + $5 = $pyramid + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ((HEAP32[$3 >> 2] | 0) == (HEAP32[$6 + 4 >> 2] | 0)) { + if ((HEAP32[$this + 164 >> 2] | 0) != (HEAP32[$6 + 8 >> 2] | 0)) label = 3; + } else label = 3; + if ((label | 0) == 3) __ZN6vision25DoGScaleInvariantDetector5allocEPKNS_25GaussianScaleSpacePyramidE($3, $pyramid); + $15 = $this + 64 | 0; + $16 = __Znwj(148) | 0; + __ZN6vision8KeyframeILi96EEC2Ev($16); + HEAP32[$1 >> 2] = 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($0, $16, $$byval_copy); + $17 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$15 >> 2]; + HEAP32[$15 >> 2] = $17; + $19 = $0 + 4 | 0; + $20 = $this + 68 | 0; + $21 = HEAP32[$19 >> 2] | 0; + HEAP32[$19 >> 2] = HEAP32[$20 >> 2]; + HEAP32[$20 >> 2] = $21; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($0); + $23 = HEAP32[$15 >> 2] | 0; + $24 = HEAP32[$5 >> 2] | 0; + HEAP32[$23 >> 2] = HEAP32[$24 + 4 >> 2]; + HEAP32[$23 + 4 >> 2] = HEAP32[$24 + 8 >> 2]; + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer, 27993); + __ZN6vision12FindFeaturesINS_14FREAKExtractorELi96EEEvPNS_8KeyframeIXT0_EEEPKNS_25GaussianScaleSpacePyramidEPNS_25DoGScaleInvariantDetectorEPT_(HEAP32[$15 >> 2] | 0, $pyramid, $3, $this + 316 | 0); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer); + __ZN6vision6Logger11getInstanceEv() | 0; + __ZN6vision15get_pretty_timeEv($2); + $38 = (HEAP8[$2 >> 0] & 1) == 0 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0; + $39 = HEAP32[$15 >> 2] | 0; + $47 = ((HEAP32[$39 + 28 >> 2] | 0) - (HEAP32[$39 + 24 >> 2] | 0) | 0) / 20 | 0; + HEAP32[$vararg_buffer >> 2] = 34431; + HEAP32[$vararg_buffer + 4 >> 2] = $38; + HEAP32[$vararg_buffer + 8 >> 2] = 28054; + HEAP32[$vararg_buffer + 12 >> 2] = $47; + __ZN6vision6Logger5writeENS_19LoggerPriorityLevelEPKcz(4452, 8, 28010, $vararg_buffer); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($2); + $49 = __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryEPKNS_8KeyframeILi96EEE($this, HEAP32[$15 >> 2] | 0) | 0; + STACKTOP = sp; + return $49 | 0; +} + +function _wcsnrtombs($dst, $wcs, $wn, $n, $st) { + $dst = $dst | 0; + $wcs = $wcs | 0; + $wn = $wn | 0; + $n = $n | 0; + $st = $st | 0; + var $$02$$0 = 0, $$021 = 0, $$0218 = 0, $$1 = 0, $$13 = 0, $$216 = 0, $$24 = 0, $$313 = 0, $$cast = 0, $$lcssa = 0, $$lcssa57 = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $18 = 0, $23 = 0, $24 = 0, $33 = 0, $38 = 0, $4 = 0, $7 = 0, $8 = 0, $buf = 0, $cnt$019 = 0, $cnt$1 = 0, $cnt$214 = 0, $cnt$214$lcssa = 0, $cnt$3 = 0, $dst$ = 0, $n$ = 0, $s$020 = 0, $s$020$lcssa56 = 0, $s$09 = 0, $s$1 = 0, $s$215 = 0, $ws = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $buf = sp + 8 | 0; + $ws = sp; + $0 = HEAP32[$wcs >> 2] | 0; + HEAP32[$ws >> 2] = $0; + $1 = ($dst | 0) != 0; + $n$ = $1 ? $n : 256; + $dst$ = $1 ? $dst : $buf; + $$cast = $0; + L1 : do if (($n$ | 0) != 0 & ($0 | 0) != 0) { + $$021 = $wn; + $$0218 = $n$; + $38 = $$cast; + $cnt$019 = 0; + $s$020 = $dst$; while (1) { - HEAP16[$pnt2$082 >> 1] = 0; - HEAP16[$pnt1$083 >> 1] = 0; - $i$081 = $i$081 + 1 | 0; - if (($i$081 | 0) >= ($xsize | 0)) break; else { - $pnt1$083 = $pnt1$083 + 2 | 0; - $pnt2$082 = $pnt2$082 + 2 | 0; + $4 = $$021 >>> 0 >= $$0218 >>> 0; + if (!($4 | $$021 >>> 0 > 32)) { + $$1 = $$021; + $$24 = $$0218; + $18 = $38; + $cnt$1 = $cnt$019; + $s$09 = $s$020; + break L1; } - } - } - $9 = $xsize + -1 | 0; - if (($ysize | 0) > 0) { - $i$175 = 0; - $pnt1$177 = $0; - $pnt2$176 = $0 + ($9 << 1) | 0; - while (1) { - HEAP16[$pnt2$176 >> 1] = 0; - HEAP16[$pnt1$177 >> 1] = 0; - $i$175 = $i$175 + 1 | 0; - if (($i$175 | 0) >= ($ysize | 0)) break; else { - $pnt1$177 = $pnt1$177 + ($xsize << 1) | 0; - $pnt2$176 = $pnt2$176 + ($xsize << 1) | 0; + $$02$$0 = $4 ? $$0218 : $$021; + $7 = $$021 - $$02$$0 | 0; + $8 = _wcsrtombs($s$020, $ws, $$02$$0, 0) | 0; + if (($8 | 0) == -1) { + $$lcssa57 = $7; + $s$020$lcssa56 = $s$020; + break; } - } - } - $16 = $labelInfo + 1179664 | 0; - $17 = $xsize + 1 | 0; - $18 = 0 - $xsize | 0; - $$sum = 1 - $xsize | 0; - $$sum1 = ~$xsize; - L11 : do if (($1 | 0) > 1) { - $22 = ($9 | 0) > 1; - $j$068 = 1; - $pnt$072 = $image + $17 | 0; - $pnt2$271 = $0 + ($17 << 1) | 0; - $wk_max$070 = 0; - L13 : while (1) { - if ($22) { - $i$255 = 1; - $pnt$163 = $pnt$072; - $pnt2$362 = $pnt2$271; - $wk_max$157 = $wk_max$070; - while (1) { - do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) { - HEAP16[$pnt2$362 >> 1] = 0; - $wk_max$2 = $wk_max$157; - } else { - $27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0; - if ($27 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $27; - $30 = ($27 << 16 >> 16) * 7 | 0; - $32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0; - HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1; - $36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0; - HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255; - $40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0; - HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0; - $47 = $46 << 16 >> 16; - $50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0; - $51 = $50 << 16 >> 16; - $52 = $50 << 16 >> 16 > 0; - if ($46 << 16 >> 16 <= 0) { - if ($52) { - HEAP16[$pnt2$362 >> 1] = $50; - $152 = $51 * 7 | 0; - $154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0; - HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1; - $158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0; - HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255; - $162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0; - HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068; - $166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0; - if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $172 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($172 << 16 >> 16 > 0) { - HEAP16[$pnt2$362 >> 1] = $172; - $175 = ($172 << 16 >> 16) * 7 | 0; - $177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0; - HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1; - $181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0; - HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255; - $185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0; - HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068; - $189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0; - if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) { - $wk_max$2 = $wk_max$157; - break; - } - HEAP32[$189 >> 2] = $i$255; - $wk_max$2 = $wk_max$157; - break; - } else { - $192 = $wk_max$157 + 1 | 0; - if (($wk_max$157 | 0) > 32767) break L13; - HEAP16[$pnt2$362 >> 1] = $192; - HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16; - $197 = $wk_max$157 * 7 | 0; - HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1; - HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068; - HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068; - $wk_max$2 = $192; - break; - } - } - if ($52) { - $55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; - $58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0; - if (($55 | 0) > ($58 | 0)) { - HEAP16[$pnt2$362 >> 1] = $58; - if (($wk_max$157 | 0) > 0) { - $k$051 = 0; - $wk$052 = $16; - while (1) { - if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58; - $k$051 = $k$051 + 1 | 0; - if (($k$051 | 0) >= ($wk_max$157 | 0)) { - $75 = $58; - break; - } else $wk$052 = $wk$052 + 4 | 0; - } - } else $75 = $58; - } else { - HEAP16[$pnt2$362 >> 1] = $55; - if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) { - $k$148 = 0; - $wk$149 = $16; - while (1) { - if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55; - $k$148 = $k$148 + 1 | 0; - if (($k$148 | 0) >= ($wk_max$157 | 0)) { - $75 = $55; - break; - } else $wk$149 = $wk$149 + 4 | 0; - } - } else $75 = $55; - } - $77 = ($75 << 16 >> 16) * 7 | 0; - $79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0; - HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1; - $83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0; - HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255; - $87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0; - HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068; - HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $93 = HEAP16[$pnt2$362 + -2 >> 1] | 0; - if ($93 << 16 >> 16 <= 0) { - HEAP16[$pnt2$362 >> 1] = $46; - $133 = $47 * 7 | 0; - $135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0; - HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1; - $139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0; - HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255; - $143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0; - HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068; - $147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0; - if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255; - HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068; - $wk_max$2 = $wk_max$157; - break; - } - $98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0; - $101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0; - if (($98 | 0) > ($101 | 0)) { - HEAP16[$pnt2$362 >> 1] = $101; - if (($wk_max$157 | 0) > 0) { - $k$244 = 0; - $wk$245 = $16; - while (1) { - if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101; - $k$244 = $k$244 + 1 | 0; - if (($k$244 | 0) >= ($wk_max$157 | 0)) { - $118 = $101; - break; - } else $wk$245 = $wk$245 + 4 | 0; - } - } else $118 = $101; - } else { - HEAP16[$pnt2$362 >> 1] = $98; - if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) { - $k$341 = 0; - $wk$342 = $16; - while (1) { - if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98; - $k$341 = $k$341 + 1 | 0; - if (($k$341 | 0) >= ($wk_max$157 | 0)) { - $118 = $98; - break; - } else $wk$342 = $wk$342 + 4 | 0; - } - } else $118 = $98; - } - $120 = ($118 << 16 >> 16) * 7 | 0; - $122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0; - HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1; - $126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0; - HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255; - $130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0; - HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068; - $wk_max$2 = $wk_max$157; - } while (0); - $i$255 = $i$255 + 1 | 0; - $212 = $pnt$163 + 1 | 0; - $213 = $pnt2$362 + 2 | 0; - if (($i$255 | 0) >= ($9 | 0)) { - $pnt$1$lcssa = $212; - $pnt2$3$lcssa = $213; - $wk_max$1$lcssa = $wk_max$2; - break; - } else { - $pnt$163 = $212; - $pnt2$362 = $213; - $wk_max$157 = $wk_max$2; - } - } + $10 = ($s$020 | 0) == ($buf | 0); + $12 = $10 ? 0 : $8; + $$13 = $$0218 - $12 | 0; + $s$1 = $10 ? $s$020 : $s$020 + $8 | 0; + $13 = $8 + $cnt$019 | 0; + $14 = HEAP32[$ws >> 2] | 0; + if (($$0218 | 0) != ($12 | 0) & ($14 | 0) != 0) { + $$021 = $7; + $$0218 = $$13; + $38 = $14; + $cnt$019 = $13; + $s$020 = $s$1; } else { - $pnt$1$lcssa = $pnt$072; - $pnt2$3$lcssa = $pnt2$271; - $wk_max$1$lcssa = $wk_max$070; + $$1 = $7; + $$24 = $$13; + $18 = $14; + $cnt$1 = $13; + $s$09 = $s$1; + break L1; } - $j$068 = $j$068 + 1 | 0; - if (($j$068 | 0) >= ($1 | 0)) { - $wk_max$0$lcssa = $wk_max$1$lcssa; - label = 52; - break L11; + } + $$1 = $$lcssa57; + $$24 = 0; + $18 = HEAP32[$ws >> 2] | 0; + $cnt$1 = -1; + $s$09 = $s$020$lcssa56; + } else { + $$1 = $wn; + $$24 = $n$; + $18 = $$cast; + $cnt$1 = 0; + $s$09 = $dst$; + } while (0); + L8 : do if (!$18) $cnt$3 = $cnt$1; else if (($$24 | 0) != 0 & ($$1 | 0) != 0) { + $$216 = $$1; + $$313 = $$24; + $23 = $18; + $cnt$214 = $cnt$1; + $s$215 = $s$09; + while (1) { + $24 = _wcrtomb($s$215, HEAP32[$23 >> 2] | 0, 0) | 0; + if (($24 + 1 | 0) >>> 0 < 2) { + $$lcssa = $24; + $cnt$214$lcssa = $cnt$214; + break; + } + $23 = (HEAP32[$ws >> 2] | 0) + 4 | 0; + HEAP32[$ws >> 2] = $23; + $$216 = $$216 + -1 | 0; + $33 = $cnt$214 + 1 | 0; + if (!(($$313 | 0) != ($24 | 0) & ($$216 | 0) != 0)) { + $cnt$3 = $33; + break L8; } else { - $pnt$072 = $pnt$1$lcssa + 2 | 0; - $pnt2$271 = $pnt2$3$lcssa + 4 | 0; - $wk_max$070 = $wk_max$1$lcssa; + $$313 = $$313 - $24 | 0; + $cnt$214 = $33; + $s$215 = $s$215 + $24 | 0; } } - _arLog(3, 3904, $vararg_buffer); - $$0 = -1; + if (!$$lcssa) { + HEAP32[$ws >> 2] = 0; + $cnt$3 = $cnt$214$lcssa; + } else $cnt$3 = -1; + } else $cnt$3 = $cnt$1; while (0); + if ($1) HEAP32[$wcs >> 2] = HEAP32[$ws >> 2]; + STACKTOP = sp; + return $cnt$3 | 0; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$0$i1 = 0, $$0$i11 = 0, $$0$i212 = 0, $$__last = 0, $$lcssa = 0, $$pre$i$i = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $20 = 0, $22 = 0, $24 = 0, $3 = 0, $30 = 0, $31 = 0, $39 = 0, $4 = 0, $41 = 0, $44 = 0, $46 = 0, $6 = 0, $8 = 0; + $1 = $__first; + $3 = ($__last - $1 | 0) / 20 | 0; + $4 = $this + 8 | 0; + $6 = HEAP32[$this >> 2] | 0; + $8 = $6; + L1 : do if ($3 >>> 0 > (((HEAP32[$4 >> 2] | 0) - $8 | 0) / 20 | 0) >>> 0) { + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE10deallocateEv($this); + if ($3 >>> 0 > 214748364) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $39 = ((HEAP32[$4 >> 2] | 0) - (HEAP32[$this >> 2] | 0) | 0) / 20 | 0; + if ($39 >>> 0 < 107374182) { + $41 = $39 << 1; + $$0$i1 = $41 >>> 0 < $3 >>> 0 ? $3 : $41; + } else $$0$i1 = 214748364; + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE8allocateEj($this, $$0$i1); + $44 = $this + 4 | 0; + if (($__first | 0) != ($__last | 0)) { + $$0$i11 = $__first; + do { + $46 = HEAP32[$44 >> 2] | 0; + HEAP32[$46 >> 2] = HEAP32[$$0$i11 >> 2]; + HEAP32[$46 + 4 >> 2] = HEAP32[$$0$i11 + 4 >> 2]; + HEAP32[$46 + 8 >> 2] = HEAP32[$$0$i11 + 8 >> 2]; + HEAP32[$46 + 12 >> 2] = HEAP32[$$0$i11 + 12 >> 2]; + HEAP32[$46 + 16 >> 2] = HEAP32[$$0$i11 + 16 >> 2]; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 20; + $$0$i11 = $$0$i11 + 20 | 0; + } while (($$0$i11 | 0) != ($__last | 0)); + } } else { - $wk_max$0$lcssa = 0; - label = 52; - } while (0); - if ((label | 0) == 52) { - $219 = $labelInfo + 12 | 0; - if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else { - $i$337 = 1; - $j$138 = 1; - $wk$439 = $16; + $12 = $this + 4 | 0; + $16 = ((HEAP32[$12 >> 2] | 0) - $8 | 0) / 20 | 0; + $17 = $3 >>> 0 > $16 >>> 0; + $$__last = $17 ? $__first + ($16 * 20 | 0) | 0 : $__last; + $20 = $$__last - $1 | 0; + _memmove($6 | 0, $__first | 0, $20 | 0) | 0; + $22 = $6 + ((($20 | 0) / 20 | 0) * 20 | 0) | 0; + if ($17) { + if (($$__last | 0) == ($__last | 0)) break; else $$0$i212 = $$__last; while (1) { - $221 = HEAP32[$wk$439 >> 2] | 0; - if (($221 | 0) == ($i$337 | 0)) { - $227 = $j$138; - $j$2 = $j$138 + 1 | 0; - } else { - $227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0; - $j$2 = $j$138; - } - HEAP32[$wk$439 >> 2] = $227; - if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) { - $i$337 = $i$337 + 1 | 0; - $j$138 = $j$2; - $wk$439 = $wk$439 + 4 | 0; - } else { - $j$1$lcssa = $j$2; + $24 = HEAP32[$12 >> 2] | 0; + HEAP32[$24 >> 2] = HEAP32[$$0$i212 >> 2]; + HEAP32[$24 + 4 >> 2] = HEAP32[$$0$i212 + 4 >> 2]; + HEAP32[$24 + 8 >> 2] = HEAP32[$$0$i212 + 8 >> 2]; + HEAP32[$24 + 12 >> 2] = HEAP32[$$0$i212 + 12 >> 2]; + HEAP32[$24 + 16 >> 2] = HEAP32[$$0$i212 + 16 >> 2]; + HEAP32[$12 >> 2] = (HEAP32[$12 >> 2] | 0) + 20; + $$0$i212 = $$0$i212 + 20 | 0; + if (($$0$i212 | 0) == ($__last | 0)) break L1; + } + } + $$pre$i$i = HEAP32[$12 >> 2] | 0; + if (($$pre$i$i | 0) != ($22 | 0)) { + $31 = $$pre$i$i; + while (1) { + $30 = $31 + -20 | 0; + if (($30 | 0) == ($22 | 0)) { + $$lcssa = $30; break; - } + } else $31 = $30; } + HEAP32[$12 >> 2] = $$lcssa; + } + } while (0); + return; +} + +function _pop_arg($arg, $type, $ap) { + $arg = $arg | 0; + $type = $type | 0; + $ap = $ap | 0; + var $105 = 0, $106 = 0.0, $112 = 0, $113 = 0.0, $13 = 0, $14 = 0, $17 = 0, $26 = 0, $27 = 0, $28 = 0, $37 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $53 = 0, $54 = 0, $56 = 0, $59 = 0, $6 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $79 = 0, $80 = 0, $82 = 0, $85 = 0, $94 = 0, $95 = 0, $96 = 0; + L1 : do if ($type >>> 0 <= 20) do switch ($type | 0) { + case 9: + { + $6 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $7 = HEAP32[$6 >> 2] | 0; + HEAP32[$ap >> 2] = $6 + 4; + HEAP32[$arg >> 2] = $7; + break L1; + break; + } + case 10: + { + $13 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $14 = HEAP32[$13 >> 2] | 0; + HEAP32[$ap >> 2] = $13 + 4; + $17 = $arg; + HEAP32[$17 >> 2] = $14; + HEAP32[$17 + 4 >> 2] = (($14 | 0) < 0) << 31 >> 31; + break L1; + break; + } + case 11: + { + $26 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $27 = HEAP32[$26 >> 2] | 0; + HEAP32[$ap >> 2] = $26 + 4; + $28 = $arg; + HEAP32[$28 >> 2] = $27; + HEAP32[$28 + 4 >> 2] = 0; + break L1; + break; + } + case 12: + { + $37 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); + $38 = $37; + $40 = HEAP32[$38 >> 2] | 0; + $43 = HEAP32[$38 + 4 >> 2] | 0; + HEAP32[$ap >> 2] = $37 + 8; + $44 = $arg; + HEAP32[$44 >> 2] = $40; + HEAP32[$44 + 4 >> 2] = $43; + break L1; + break; + } + case 13: + { + $53 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $54 = HEAP32[$53 >> 2] | 0; + HEAP32[$ap >> 2] = $53 + 4; + $56 = ($54 & 65535) << 16 >> 16; + $59 = $arg; + HEAP32[$59 >> 2] = $56; + HEAP32[$59 + 4 >> 2] = (($56 | 0) < 0) << 31 >> 31; + break L1; + break; + } + case 14: + { + $68 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $69 = HEAP32[$68 >> 2] | 0; + HEAP32[$ap >> 2] = $68 + 4; + $70 = $arg; + HEAP32[$70 >> 2] = $69 & 65535; + HEAP32[$70 + 4 >> 2] = 0; + break L1; + break; + } + case 15: + { + $79 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $80 = HEAP32[$79 >> 2] | 0; + HEAP32[$ap >> 2] = $79 + 4; + $82 = ($80 & 255) << 24 >> 24; + $85 = $arg; + HEAP32[$85 >> 2] = $82; + HEAP32[$85 + 4 >> 2] = (($82 | 0) < 0) << 31 >> 31; + break L1; + break; + } + case 16: + { + $94 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); + $95 = HEAP32[$94 >> 2] | 0; + HEAP32[$ap >> 2] = $94 + 4; + $96 = $arg; + HEAP32[$96 >> 2] = $95 & 255; + HEAP32[$96 + 4 >> 2] = 0; + break L1; + break; + } + case 17: + { + $105 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); + $106 = +HEAPF64[$105 >> 3]; + HEAP32[$ap >> 2] = $105 + 8; + HEAPF64[$arg >> 3] = $106; + break L1; + break; + } + case 18: + { + $112 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); + $113 = +HEAPF64[$112 >> 3]; + HEAP32[$ap >> 2] = $112 + 8; + HEAPF64[$arg >> 3] = $113; + break L1; + break; + } + default: + break L1; + } while (0); while (0); + return; +} + +function _access_virt_barray($cinfo, $ptr, $start_row, $num_rows, $writable) { + $cinfo = $cinfo | 0; + $ptr = $ptr | 0; + $start_row = $start_row | 0; + $num_rows = $num_rows | 0; + $writable = $writable | 0; + var $0 = 0, $12 = 0, $13 = 0, $22 = 0, $25 = 0, $32 = 0, $34 = 0, $35 = 0, $38 = 0, $39 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $57 = 0, $66 = 0, $9 = 0, $storemerge = 0, $undef_row$01 = 0, $undef_row$02 = 0, $undef_row$14 = 0, label = 0; + $0 = $num_rows + $start_row | 0; + if ($0 >>> 0 > (HEAP32[$ptr + 4 >> 2] | 0) >>> 0) label = 4; else if ((HEAP32[$ptr + 12 >> 2] | 0) >>> 0 < $num_rows >>> 0) label = 4; else if (!(HEAP32[$ptr >> 2] | 0)) label = 4; + if ((label | 0) == 4) { + $9 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$9 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$9 >> 2] & 255]($cinfo); + } + $12 = $ptr + 24 | 0; + $13 = HEAP32[$12 >> 2] | 0; + if ($13 >>> 0 > $start_row >>> 0) label = 7; else if ($0 >>> 0 > ((HEAP32[$ptr + 16 >> 2] | 0) + $13 | 0) >>> 0) label = 7; + if ((label | 0) == 7) { + if (!(HEAP32[$ptr + 40 >> 2] | 0)) { + $22 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$22 + 20 >> 2] = 69; + FUNCTION_TABLE_vi[HEAP32[$22 >> 2] & 255]($cinfo); + } + $25 = $ptr + 36 | 0; + if (HEAP32[$25 >> 2] | 0) { + _do_barray_io($cinfo, $ptr, 1); + HEAP32[$25 >> 2] = 0; + } + if ((HEAP32[$12 >> 2] | 0) >>> 0 < $start_row >>> 0) $storemerge = $start_row; else { + $32 = $0 - (HEAP32[$ptr + 16 >> 2] | 0) | 0; + $storemerge = ($32 | 0) < 0 ? 0 : $32; + } + HEAP32[$12 >> 2] = $storemerge; + _do_barray_io($cinfo, $ptr, 0); + } + $34 = $ptr + 28 | 0; + $35 = HEAP32[$34 >> 2] | 0; + do if ($35 >>> 0 < $0 >>> 0) { + $38 = ($writable | 0) == 0; + if ($35 >>> 0 < $start_row >>> 0) if ($38) { + $66 = 0; + $undef_row$01 = $start_row; + } else { + $39 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$39 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$39 >> 2] & 255]($cinfo); + $undef_row$02 = $start_row; + label = 19; + } else if ($38) { + $66 = 0; + $undef_row$01 = $35; + } else { + $undef_row$02 = $35; + label = 19; + } + if ((label | 0) == 19) { + HEAP32[$34 >> 2] = $0; + $66 = 1; + $undef_row$01 = $undef_row$02; + } + if (!(HEAP32[$ptr + 32 >> 2] | 0)) { + if ($66) break; + $57 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$57 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$57 >> 2] & 255]($cinfo); + break; + } else { + $47 = HEAP32[$ptr + 8 >> 2] << 7; + $48 = HEAP32[$12 >> 2] | 0; + $49 = $undef_row$01 - $48 | 0; + $50 = $0 - $48 | 0; + if ($49 >>> 0 < $50 >>> 0) $undef_row$14 = $49; else break; + do { + _jzero_far(HEAP32[(HEAP32[$ptr >> 2] | 0) + ($undef_row$14 << 2) >> 2] | 0, $47); + $undef_row$14 = $undef_row$14 + 1 | 0; + } while ($undef_row$14 >>> 0 < $50 >>> 0); } - $231 = $labelInfo + 8 | 0; - $232 = $j$1$lcssa + -1 | 0; - HEAP32[$231 >> 2] = $232; - if (!$232) $$0 = 0; else { - _memset($219 | 0, 0, $232 << 2 | 0) | 0; - _memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0; - if (($j$1$lcssa | 0) > 1) { - $i$435 = 0; - do { - $239 = $i$435 << 2; - HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize; - HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0; - HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize; - HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0; - $i$435 = $i$435 + 1 | 0; - } while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0)); - } - if (($wk_max$0$lcssa | 0) > 0) { - $i$533 = 0; - do { - $253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0; - $254 = $i$533 * 7 | 0; - $257 = $labelInfo + 12 + ($253 << 2) | 0; - HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0); - $264 = $253 << 1; - $265 = $labelInfo + 655376 + ($264 << 3) | 0; - HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0); - $273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0; - HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0); - $276 = $253 << 2; - $277 = $labelInfo + 131084 + ($276 << 2) | 0; - $281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0; - if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281; - $284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0; - $288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0; - if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288; - $291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0; - $295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0; - if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295; - $298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0; - $302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0; - if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302; - $i$533 = $i$533 + 1 | 0; - } while (($i$533 | 0) < ($wk_max$0$lcssa | 0)); - } - if ((HEAP32[$231 >> 2] | 0) > 0) { - $i$632 = 0; - do { - $306 = $labelInfo + 12 + ($i$632 << 2) | 0; - $309 = $i$632 << 1; - $310 = $labelInfo + 655376 + ($309 << 3) | 0; - HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0); - $316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0; - HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0); - $i$632 = $i$632 + 1 | 0; - } while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0)); - $$0 = 0; - } else $$0 = 0; + } while (0); + if ($writable) HEAP32[$ptr + 36 >> 2] = 1; + return (HEAP32[$ptr >> 2] | 0) + ($start_row - (HEAP32[$12 >> 2] | 0) << 2) | 0; +} + +function _access_virt_sarray($cinfo, $ptr, $start_row, $num_rows, $writable) { + $cinfo = $cinfo | 0; + $ptr = $ptr | 0; + $start_row = $start_row | 0; + $num_rows = $num_rows | 0; + $writable = $writable | 0; + var $0 = 0, $12 = 0, $13 = 0, $22 = 0, $25 = 0, $32 = 0, $34 = 0, $35 = 0, $38 = 0, $39 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $56 = 0, $65 = 0, $9 = 0, $storemerge = 0, $undef_row$01 = 0, $undef_row$02 = 0, $undef_row$14 = 0, label = 0; + $0 = $num_rows + $start_row | 0; + if ($0 >>> 0 > (HEAP32[$ptr + 4 >> 2] | 0) >>> 0) label = 4; else if ((HEAP32[$ptr + 12 >> 2] | 0) >>> 0 < $num_rows >>> 0) label = 4; else if (!(HEAP32[$ptr >> 2] | 0)) label = 4; + if ((label | 0) == 4) { + $9 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$9 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$9 >> 2] & 255]($cinfo); + } + $12 = $ptr + 24 | 0; + $13 = HEAP32[$12 >> 2] | 0; + if ($13 >>> 0 > $start_row >>> 0) label = 7; else if ($0 >>> 0 > ((HEAP32[$ptr + 16 >> 2] | 0) + $13 | 0) >>> 0) label = 7; + if ((label | 0) == 7) { + if (!(HEAP32[$ptr + 40 >> 2] | 0)) { + $22 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$22 + 20 >> 2] = 69; + FUNCTION_TABLE_vi[HEAP32[$22 >> 2] & 255]($cinfo); + } + $25 = $ptr + 36 | 0; + if (HEAP32[$25 >> 2] | 0) { + _do_sarray_io($cinfo, $ptr, 1); + HEAP32[$25 >> 2] = 0; } + if ((HEAP32[$12 >> 2] | 0) >>> 0 < $start_row >>> 0) $storemerge = $start_row; else { + $32 = $0 - (HEAP32[$ptr + 16 >> 2] | 0) | 0; + $storemerge = ($32 | 0) < 0 ? 0 : $32; + } + HEAP32[$12 >> 2] = $storemerge; + _do_sarray_io($cinfo, $ptr, 0); } - STACKTOP = sp; - return $$0 | 0; + $34 = $ptr + 28 | 0; + $35 = HEAP32[$34 >> 2] | 0; + do if ($35 >>> 0 < $0 >>> 0) { + $38 = ($writable | 0) == 0; + if ($35 >>> 0 < $start_row >>> 0) if ($38) { + $65 = 0; + $undef_row$01 = $start_row; + } else { + $39 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$39 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$39 >> 2] & 255]($cinfo); + $undef_row$02 = $start_row; + label = 19; + } else if ($38) { + $65 = 0; + $undef_row$01 = $35; + } else { + $undef_row$02 = $35; + label = 19; + } + if ((label | 0) == 19) { + HEAP32[$34 >> 2] = $0; + $65 = 1; + $undef_row$01 = $undef_row$02; + } + if (!(HEAP32[$ptr + 32 >> 2] | 0)) { + if ($65) break; + $56 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$56 + 20 >> 2] = 22; + FUNCTION_TABLE_vi[HEAP32[$56 >> 2] & 255]($cinfo); + break; + } else { + $46 = HEAP32[$ptr + 8 >> 2] | 0; + $47 = HEAP32[$12 >> 2] | 0; + $48 = $undef_row$01 - $47 | 0; + $49 = $0 - $47 | 0; + if ($48 >>> 0 < $49 >>> 0) $undef_row$14 = $48; else break; + do { + _jzero_far(HEAP32[(HEAP32[$ptr >> 2] | 0) + ($undef_row$14 << 2) >> 2] | 0, $46); + $undef_row$14 = $undef_row$14 + 1 | 0; + } while ($undef_row$14 >>> 0 < $49 >>> 0); + } + } while (0); + if ($writable) HEAP32[$ptr + 36 >> 2] = 1; + return (HEAP32[$ptr >> 2] | 0) + ($start_row - (HEAP32[$12 >> 2] | 0) << 2) | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i21 = 0, $$0$i$i$i7 = 0, $$1 = 0, $$lcssa = 0, $$lcssa152 = 0, $$pre = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $118 = 0, $12 = 0, $121 = 0, $124 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $154 = 0, $157 = 0, $16 = 0, $164 = 0, $174 = 0, $176 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $193 = 0, $195 = 0, $2 = 0, $209 = 0, $211 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $225 = 0, $227 = 0, $23 = 0, $230 = 0, $231 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $38 = 0, $43 = 0, $44 = 0, $45 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $66 = 0, $76 = 0, $82 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__v$i$i20 = 0, $args = 0, $k$0121 = 0, $k1$0124 = 0, $k2$0123 = 0, $t$0$lcssa = 0, $t$0126 = 0, label = 0, sp = 0; +function _arPattCreateHandle2($pattSize, $patternCountMax) { + $pattSize = $pattSize | 0; + $patternCountMax = $patternCountMax | 0; + var $$0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $32 = 0, $35 = 0, $7 = 0, $i$04 = 0, $j$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; + STACKTOP = STACKTOP + 64 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i20 = sp + 64 | 0; - $args = sp + 52 | 0; - $0 = sp + 40 | 0; - $1 = sp + 16 | 0; - $2 = sp; - L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 73) { - $9 = $db + 61 | 0; - $$pre = $db + 36 | 0; - if (HEAP8[$9 >> 0] | 0) { - $12 = HEAP32[$$pre >> 2] | 0; - $14 = HEAP32[$12 + -16 >> 2] | 0; - $15 = $12 + -12 | 0; - $16 = HEAP32[$15 >> 2] | 0; - if (($16 | 0) != ($14 | 0)) { - $19 = $16; - do { - $18 = $19 + -16 | 0; - HEAP32[$15 >> 2] = $18; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18); - $19 = HEAP32[$15 >> 2] | 0; - } while (($19 | 0) != ($14 | 0)); - } + $vararg_buffer13 = sp + 56 | 0; + $vararg_buffer11 = sp + 48 | 0; + $vararg_buffer9 = sp + 40 | 0; + $vararg_buffer7 = sp + 32 | 0; + $vararg_buffer5 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + L1 : do if (($pattSize + -16 | 0) >>> 0 > 48 | ($patternCountMax | 0) < 1) $$0 = 0; else { + $2 = _malloc(32) | 0; + if (!$2) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); } - $22 = $first + 1 | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($args, 12776, 1); - $23 = $db + 4 | 0; - $24 = $db + 12 | 0; - $25 = $__v$i$i20 + 8 | 0; - $26 = $__v$i$i20 + 8 | 0; - $27 = $args + 4 | 0; - $28 = $0 + 8 | 0; - $29 = $0 + 1 | 0; - $30 = $0 + 4 | 0; - $31 = $db + 32 | 0; - $32 = $db + 40 | 0; - $33 = $db + 44 | 0; - $34 = $__v$i$i20 + 8 | 0; - L9 : do if ((HEAP8[$22 >> 0] | 0) == 69) $t$0$lcssa = $22; else { - $t$0126 = $22; - L10 : while (1) { - do if (HEAP8[$9 >> 0] | 0) { - $43 = HEAP32[$24 >> 2] | 0; - $44 = HEAP32[$$pre >> 2] | 0; - $45 = HEAP32[$32 >> 2] | 0; - if ($44 >>> 0 < $45 >>> 0) { - HEAP32[$44 >> 2] = 0; - HEAP32[$44 + 4 >> 2] = 0; - HEAP32[$44 + 8 >> 2] = 0; - HEAP32[$44 + 12 >> 2] = $43; - HEAP32[$$pre >> 2] = (HEAP32[$$pre >> 2] | 0) + 16; - break; - } - $54 = HEAP32[$31 >> 2] | 0; - $55 = $44 - $54 | 0; - $56 = $55 >> 4; - $57 = $56 + 1 | 0; - if (($55 | 0) < -16) { - label = 12; - break L10; - } - $60 = $45 - $54 | 0; - if ($60 >> 4 >>> 0 < 1073741823) { - $63 = $60 >> 3; - $$0$i$i$i = $63 >>> 0 < $57 >>> 0 ? $57 : $63; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i20, $$0$i$i$i, $56, $33); - $66 = HEAP32[$34 >> 2] | 0; - HEAP32[$66 >> 2] = 0; - HEAP32[$66 + 4 >> 2] = 0; - HEAP32[$66 + 8 >> 2] = 0; - HEAP32[$66 + 12 >> 2] = $43; - HEAP32[$34 >> 2] = $66 + 16; - __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($31, $__v$i$i20); - __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i20); - } while (0); - $76 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $38 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0126, $last, $db) | 0; - $82 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (HEAP8[$9 >> 0] | 0) { - $85 = HEAP32[$$pre >> 2] | 0; - $86 = $85 + -16 | 0; - $88 = $85; - do { - $87 = $88 + -16 | 0; - HEAP32[$$pre >> 2] = $87; - __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($87); - $88 = HEAP32[$$pre >> 2] | 0; - } while (($88 | 0) != ($86 | 0)); - } - if (($38 | 0) == ($t$0126 | 0) | ($38 | 0) == ($last | 0)) { - label = 56; - break; - } - if (HEAP8[$9 >> 0] | 0) { - $95 = HEAP32[$$pre >> 2] | 0; - $96 = $95 + -16 | 0; - $98 = HEAP32[$24 >> 2] | 0; - $99 = $95 + -12 | 0; - $100 = HEAP32[$99 >> 2] | 0; - $102 = HEAP32[$95 + -8 >> 2] | 0; - if ($100 >>> 0 < $102 >>> 0) { - HEAP32[$100 >> 2] = 0; - HEAP32[$100 + 4 >> 2] = 0; - HEAP32[$100 + 8 >> 2] = 0; - HEAP32[$100 + 12 >> 2] = $98; - HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 16; - } else { - $112 = HEAP32[$96 >> 2] | 0; - $113 = $100 - $112 | 0; - $114 = $113 >> 4; - $115 = $114 + 1 | 0; - if (($113 | 0) < -16) { - $$lcssa = $96; - label = 25; - break; - } - $118 = $102 - $112 | 0; - if ($118 >> 4 >>> 0 < 1073741823) { - $121 = $118 >> 3; - $$0$i$i$i7 = $121 >>> 0 < $115 >>> 0 ? $115 : $121; - } else $$0$i$i$i7 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i20, $$0$i$i$i7, $114, $95 + -4 | 0); - $124 = HEAP32[$25 >> 2] | 0; - HEAP32[$124 >> 2] = 0; - HEAP32[$124 + 4 >> 2] = 0; - HEAP32[$124 + 8 >> 2] = 0; - HEAP32[$124 + 12 >> 2] = $98; - HEAP32[$25 >> 2] = $124 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($96, $__v$i$i20); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i20); - } - if ($76 >>> 0 < $82 >>> 0) { - $k$0121 = $76; - do { - $132 = HEAP32[(HEAP32[$$pre >> 2] | 0) + -12 >> 2] | 0; - $133 = $132 + -16 | 0; - $134 = HEAP32[$db >> 2] | 0; - $135 = $134 + ($k$0121 * 24 | 0) | 0; - $136 = $132 + -12 | 0; - $137 = HEAP32[$136 >> 2] | 0; - if (($137 | 0) == (HEAP32[$132 + -8 >> 2] | 0)) { - $149 = $137 - (HEAP32[$133 >> 2] | 0) | 0; - $150 = ($149 | 0) / 24 | 0; - $151 = $150 + 1 | 0; - if (($149 | 0) < -24) { - $$lcssa152 = $133; - label = 33; - break L10; - } - if ($150 >>> 0 < 1073741823) { - $154 = $150 << 1; - $$0$i$i$i10 = $154 >>> 0 < $151 >>> 0 ? $151 : $154; - } else $$0$i$i$i10 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i10, $150, $132 + -4 | 0); - $157 = HEAP32[$26 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157, $135); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0); - HEAP32[$26 >> 2] = $157 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($133, $__v$i$i20); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137, $135); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0); - HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 24; - } - $k$0121 = $k$0121 + 1 | 0; - } while ($k$0121 >>> 0 < $82 >>> 0); + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = $patternCountMax; + HEAP32[$2 + 28 >> 2] = $pattSize; + $7 = _malloc($patternCountMax << 2) | 0; + HEAP32[$2 + 8 >> 2] = $7; + if (!$7) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } + $10 = $patternCountMax << 4; + $11 = _malloc($10) | 0; + HEAP32[$2 + 12 >> 2] = $11; + if (!$11) { + _arLog(3, 21359, $vararg_buffer3); + _exit(1); + } + $14 = _malloc($10) | 0; + $15 = $2 + 20 | 0; + HEAP32[$15 >> 2] = $14; + if (!$14) { + _arLog(3, 21359, $vararg_buffer5); + _exit(1); + } + $17 = $patternCountMax << 5; + $18 = _malloc($17) | 0; + HEAP32[$2 + 16 >> 2] = $18; + if (!$18) { + _arLog(3, 21359, $vararg_buffer7); + _exit(1); + } + $21 = _malloc($17) | 0; + HEAP32[$2 + 24 >> 2] = $21; + if (!$21) { + _arLog(3, 21359, $vararg_buffer9); + _exit(1); + } + $24 = Math_imul($pattSize, $pattSize) | 0; + $25 = $24 * 12 | 0; + $26 = $24 << 2; + if (($patternCountMax | 0) > 0) { + $i$04 = 0; + L21 : while (1) { + HEAP32[$7 + ($i$04 << 2) >> 2] = 0; + $29 = $i$04 << 2; + $j$0 = 0; + while (1) { + if (($j$0 | 0) >= 4) break; + $31 = _malloc($25) | 0; + $32 = $j$0 + $29 | 0; + HEAP32[$11 + ($32 << 2) >> 2] = $31; + if (!$31) { + label = 18; + break L21; } + $35 = _malloc($26) | 0; + HEAP32[(HEAP32[$15 >> 2] | 0) + ($32 << 2) >> 2] = $35; + if (!$35) { + label = 20; + break L21; + } else $j$0 = $j$0 + 1 | 0; } - if ($76 >>> 0 < $82 >>> 0) { - $k2$0123 = $76; - do { - $164 = HEAP8[$args >> 0] | 0; - if ((($164 & 1) == 0 ? ($164 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 12716) | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k2$0123 * 24 | 0) | 0); - $174 = HEAP8[$0 >> 0] | 0; - $176 = ($174 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($args, $176 ? $29 : HEAP32[$28 >> 2] | 0, $176 ? ($174 & 255) >>> 1 : HEAP32[$30 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - $k2$0123 = $k2$0123 + 1 | 0; - } while ($k2$0123 >>> 0 < $82 >>> 0); - } - if (($82 | 0) != ($76 | 0)) { - $k1$0124 = $82; - do { - $185 = HEAP32[$23 >> 2] | 0; - $186 = $185 + -24 | 0; - $188 = $185; - do { - $187 = $188 + -24 | 0; - HEAP32[$23 >> 2] = $187; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187); - $188 = HEAP32[$23 >> 2] | 0; - } while (($188 | 0) != ($186 | 0)); - $k1$0124 = $k1$0124 + -1 | 0; - } while (($k1$0124 | 0) != ($76 | 0)); + $i$04 = $i$04 + 1 | 0; + if (($i$04 | 0) >= ($patternCountMax | 0)) { + $$0 = $2; + break L1; } - if ((HEAP8[$38 >> 0] | 0) == 69) { - $t$0$lcssa = $38; - break L9; - } else $t$0126 = $38; } - if ((label | 0) == 12) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($31); else if ((label | 0) == 25) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa); else if ((label | 0) == 33) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa152); else if ((label | 0) == 56) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$1 = $first; - break L1; + if ((label | 0) == 18) { + _arLog(3, 21359, $vararg_buffer11); + _exit(1); + } else if ((label | 0) == 20) { + _arLog(3, 21359, $vararg_buffer13); + _exit(1); } - } while (0); - $192 = $t$0$lcssa + 1 | 0; - $193 = HEAP8[$args >> 0] | 0; - $195 = ($193 & 1) == 0; - if ((HEAP8[($195 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0) + (($195 ? ($193 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) + -1) >> 0] | 0) == 62) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 13761) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 12778) | 0; - HEAP32[$2 >> 2] = HEAP32[$args >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$args + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$args + 8 >> 2]; - HEAP32[$args >> 2] = 0; - HEAP32[$args + 4 >> 2] = 0; - HEAP32[$args + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - $209 = HEAP32[$23 >> 2] | 0; - $211 = HEAP32[$db + 8 >> 2] | 0; - if ($209 >>> 0 < $211 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($209, $1); - HEAP32[$23 >> 2] = (HEAP32[$23 >> 2] | 0) + 24; - } else { - $218 = HEAP32[$db >> 2] | 0; - $219 = $209 - $218 | 0; - $220 = ($219 | 0) / 24 | 0; - $221 = $220 + 1 | 0; - if (($219 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $225 = ($211 - $218 | 0) / 24 | 0; - if ($225 >>> 0 < 1073741823) { - $227 = $225 << 1; - $$0$i$i$i21 = $227 >>> 0 < $221 >>> 0 ? $221 : $227; - } else $$0$i$i$i21 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i21, $220, $db + 12 | 0); - $230 = $__v$i$i20 + 8 | 0; - $231 = HEAP32[$230 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($231, $1); - HEAP32[$230 >> 2] = $231 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i20); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$1 = $192; - } else $$1 = $first; else $$1 = $first; while (0); + } else $$0 = $2; + } while (0); STACKTOP = sp; - return $$1 | 0; + return $$0 | 0; } -function _free($mem) { - $mem = $mem | 0; - var $$lcssa = 0, $$pre$phi59Z2D = 0, $$pre$phi61Z2D = 0, $$pre$phiZ2D = 0, $$sum2 = 0, $1 = 0, $103 = 0, $104 = 0, $111 = 0, $112 = 0, $12 = 0, $120 = 0, $128 = 0, $133 = 0, $134 = 0, $137 = 0, $139 = 0, $14 = 0, $141 = 0, $15 = 0, $156 = 0, $161 = 0, $163 = 0, $166 = 0, $169 = 0, $172 = 0, $175 = 0, $176 = 0, $178 = 0, $179 = 0, $181 = 0, $182 = 0, $184 = 0, $185 = 0, $19 = 0, $191 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $210 = 0, $216 = 0, $22 = 0, $231 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $24 = 0, $240 = 0, $241 = 0, $247 = 0, $252 = 0, $253 = 0, $256 = 0, $258 = 0, $26 = 0, $261 = 0, $266 = 0, $272 = 0, $276 = 0, $277 = 0, $284 = 0, $296 = 0, $301 = 0, $308 = 0, $309 = 0, $310 = 0, $318 = 0, $39 = 0, $44 = 0, $46 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $63 = 0, $64 = 0, $66 = 0, $67 = 0, $72 = 0, $73 = 0, $8 = 0, $82 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $F16$0 = 0, $I18$0 = 0, $K19$052 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$051 = 0, $T$051$lcssa = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0; - if (!$mem) return; - $1 = $mem + -8 | 0; - $2 = HEAP32[760] | 0; - if ($1 >>> 0 < $2 >>> 0) _abort(); - $5 = HEAP32[$mem + -4 >> 2] | 0; - $6 = $5 & 3; - if (($6 | 0) == 1) _abort(); - $8 = $5 & -8; - $9 = $mem + ($8 + -8) | 0; - do if (!($5 & 1)) { - $12 = HEAP32[$1 >> 2] | 0; - if (!$6) return; - $$sum2 = -8 - $12 | 0; - $14 = $mem + $$sum2 | 0; - $15 = $12 + $8 | 0; - if ($14 >>> 0 < $2 >>> 0) _abort(); - if (($14 | 0) == (HEAP32[761] | 0)) { - $103 = $mem + ($8 + -4) | 0; - $104 = HEAP32[$103 >> 2] | 0; - if (($104 & 3 | 0) != 3) { - $p$0 = $14; - $psize$0 = $15; - break; - } - HEAP32[758] = $15; - HEAP32[$103 >> 2] = $104 & -2; - HEAP32[$mem + ($$sum2 + 4) >> 2] = $15 | 1; - HEAP32[$9 >> 2] = $15; - return; - } - $19 = $12 >>> 3; - if ($12 >>> 0 < 256) { - $22 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; - $24 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; - $26 = 3064 + ($19 << 1 << 2) | 0; - if (($22 | 0) != ($26 | 0)) { - if ($22 >>> 0 < $2 >>> 0) _abort(); - if ((HEAP32[$22 + 12 >> 2] | 0) != ($14 | 0)) _abort(); - } - if (($24 | 0) == ($22 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $19); - $p$0 = $14; - $psize$0 = $15; - break; - } - if (($24 | 0) == ($26 | 0)) $$pre$phi61Z2D = $24 + 8 | 0; else { - if ($24 >>> 0 < $2 >>> 0) _abort(); - $39 = $24 + 8 | 0; - if ((HEAP32[$39 >> 2] | 0) == ($14 | 0)) $$pre$phi61Z2D = $39; else _abort(); - } - HEAP32[$22 + 12 >> 2] = $24; - HEAP32[$$pre$phi61Z2D >> 2] = $22; - $p$0 = $14; - $psize$0 = $15; - break; - } - $44 = HEAP32[$mem + ($$sum2 + 24) >> 2] | 0; - $46 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0; - do if (($46 | 0) == ($14 | 0)) { - $57 = $mem + ($$sum2 + 20) | 0; - $58 = HEAP32[$57 >> 2] | 0; - if (!$58) { - $60 = $mem + ($$sum2 + 16) | 0; - $61 = HEAP32[$60 >> 2] | 0; - if (!$61) { - $R$1 = 0; - break; + +function _h2v2_fancy_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + var $$pn = 0, $0 = 0, $1 = 0, $17 = 0, $2 = 0, $23 = 0, $34 = 0, $35 = 0, $36 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $9 = 0, $colctr$011 = 0, $inptr0$06 = 0, $inptr1$0 = 0, $inptr1$17 = 0, $inrow$016 = 0, $lastcolsum$0$lcssa = 0, $lastcolsum$010 = 0, $lastcolsum$010$phi = 0, $outrow$017 = 0, $outrow$114 = 0, $thiscolsum$0$lcssa = 0, $thiscolsum$09 = 0, $v$015 = 0, $$pn$looptemp = 0; + $0 = HEAP32[$output_data_ptr >> 2] | 0; + $1 = $cinfo + 312 | 0; + $2 = $compptr + 40 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $inrow$016 = 0; + $outrow$017 = 0; + while (1) { + $5 = $input_data + ($inrow$016 << 2) | 0; + $outrow$114 = $outrow$017; + $v$015 = 0; + while (1) { + $6 = HEAP32[$5 >> 2] | 0; + $inptr1$0 = HEAP32[$input_data + ((($v$015 | 0) == 0 ? -1 : 1) + $inrow$016 << 2) >> 2] | 0; + $9 = HEAP32[$0 + ($outrow$114 << 2) >> 2] | 0; + $17 = ((HEAPU8[$6 >> 0] | 0) * 3 | 0) + (HEAPU8[$inptr1$0 >> 0] | 0) | 0; + $23 = ((HEAPU8[$6 + 1 >> 0] | 0) * 3 | 0) + (HEAPU8[$inptr1$0 + 1 >> 0] | 0) | 0; + HEAP8[$9 >> 0] = (($17 << 2) + 8 | 0) >>> 4; + HEAP8[$9 + 1 >> 0] = (($17 * 3 | 0) + 7 + $23 | 0) >>> 4; + $34 = HEAP32[$2 >> 2] | 0; + $35 = $34 + -2 | 0; + $36 = $34 << 1; + if (!$35) { + $lastcolsum$0$lcssa = $17; + $thiscolsum$0$lcssa = $23; } else { - $R$0 = $61; - $RP$0 = $60; + $$pn = $9; + $colctr$011 = $35; + $inptr0$06 = $6 + 2 | 0; + $inptr1$17 = $inptr1$0 + 2 | 0; + $lastcolsum$010 = $17; + $thiscolsum$09 = $23; + while (1) { + $$pn$looptemp = $$pn; + $$pn = $$pn + 2 | 0; + $47 = ((HEAPU8[$inptr0$06 >> 0] | 0) * 3 | 0) + (HEAPU8[$inptr1$17 >> 0] | 0) | 0; + $48 = $thiscolsum$09 * 3 | 0; + HEAP8[$$pn >> 0] = ($lastcolsum$010 + 8 + $48 | 0) >>> 4; + HEAP8[$$pn$looptemp + 3 >> 0] = ($48 + 7 + $47 | 0) >>> 4; + $colctr$011 = $colctr$011 + -1 | 0; + if (!$colctr$011) { + $lastcolsum$0$lcssa = $thiscolsum$09; + $thiscolsum$0$lcssa = $47; + break; + } else { + $lastcolsum$010$phi = $thiscolsum$09; + $inptr0$06 = $inptr0$06 + 1 | 0; + $inptr1$17 = $inptr1$17 + 1 | 0; + $thiscolsum$09 = $47; + $lastcolsum$010 = $lastcolsum$010$phi; + } + } } - } else { - $R$0 = $58; - $RP$0 = $57; + HEAP8[$9 + ($36 + -2) >> 0] = ($lastcolsum$0$lcssa + 8 + ($thiscolsum$0$lcssa * 3 | 0) | 0) >>> 4; + HEAP8[$9 + ($36 + -1) >> 0] = (($thiscolsum$0$lcssa << 2) + 7 | 0) >>> 4; + $v$015 = $v$015 + 1 | 0; + if (($v$015 | 0) == 2) break; else $outrow$114 = $outrow$114 + 1 | 0; } + $outrow$017 = $outrow$017 + 2 | 0; + if (($outrow$017 | 0) >= (HEAP32[$1 >> 2] | 0)) break; else $inrow$016 = $inrow$016 + 1 | 0; + } + } + return; +} + +function __ZN6vision39HomographyPointsGeometricallyConsistentIfEEbPKT_S3_i($H, $x, $size) { + $H = $H | 0; + $x = $x | 0; + $size = $size | 0; + var $$0 = 0, $1 = 0, $13 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $8 = 0, $9 = 0, $first_xp1 = 0, $first_xp2 = 0, $i$0 = 0, $x1_ptr$0 = 0, $x2_ptr$0 = 0, $x2_ptr$0$lcssa = 0, $x3_ptr$0 = 0, $x3_ptr$0$lcssa = 0, $xp1 = 0, $xp1_ptr$0 = 0, $xp1_ptr$0$phi = 0, $xp2 = 0, $xp2_ptr$0 = 0, $xp2_ptr$0$lcssa = 0, $xp2_ptr$0$phi = 0, $xp3 = 0, $xp3_ptr$0 = 0, $xp3_ptr$0$lcssa = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $xp1 = sp + 24 | 0; + $xp2 = sp + 16 | 0; + $xp3 = sp + 32 | 0; + $first_xp1 = sp + 8 | 0; + $first_xp2 = sp; + L1 : do if (($size | 0) < 2) $$0 = 1; else { + $1 = $x + 8 | 0; + $2 = $x + 16 | 0; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($xp1, $H, $x); + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($xp2, $H, $1); + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($xp3, $H, $2); + $3 = $xp1; + $8 = HEAP32[$3 + 4 >> 2] | 0; + $9 = $first_xp1; + HEAP32[$9 >> 2] = HEAP32[$3 >> 2]; + HEAP32[$9 + 4 >> 2] = $8; + $13 = $xp2; + $18 = HEAP32[$13 + 4 >> 2] | 0; + $19 = $first_xp2; + HEAP32[$19 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$19 + 4 >> 2] = $18; + if (__ZN6vision40Homography3PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_($x, $1, $2, $xp1, $xp2, $xp3) | 0) { + $i$0 = 3; + $x1_ptr$0 = $x; + $x2_ptr$0 = $1; + $x3_ptr$0 = $2; + $xp1_ptr$0 = $xp1; + $xp2_ptr$0 = $xp2; + $xp3_ptr$0 = $xp3; while (1) { - $63 = $R$0 + 20 | 0; - $64 = HEAP32[$63 >> 2] | 0; - if ($64) { - $R$0 = $64; - $RP$0 = $63; - continue; - } - $66 = $R$0 + 16 | 0; - $67 = HEAP32[$66 >> 2] | 0; - if (!$67) { - $R$0$lcssa = $R$0; - $RP$0$lcssa = $RP$0; + if (($i$0 | 0) >= ($size | 0)) { + $x2_ptr$0$lcssa = $x2_ptr$0; + $x3_ptr$0$lcssa = $x3_ptr$0; + $xp2_ptr$0$lcssa = $xp2_ptr$0; + $xp3_ptr$0$lcssa = $xp3_ptr$0; break; + } + $x1_ptr$0 = $x1_ptr$0 + 8 | 0; + $x2_ptr$0 = $x2_ptr$0 + 8 | 0; + $x3_ptr$0 = $x3_ptr$0 + 8 | 0; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($xp1_ptr$0, $H, $x3_ptr$0); + if (!(__ZN6vision40Homography3PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_($x1_ptr$0, $x2_ptr$0, $x3_ptr$0, $xp2_ptr$0, $xp3_ptr$0, $xp1_ptr$0) | 0)) { + $$0 = 0; + break L1; } else { - $R$0 = $67; - $RP$0 = $66; + $xp2_ptr$0$phi = $xp3_ptr$0; + $xp1_ptr$0$phi = $xp2_ptr$0; + $i$0 = $i$0 + 1 | 0; + $xp3_ptr$0 = $xp1_ptr$0; + $xp2_ptr$0 = $xp2_ptr$0$phi; + $xp1_ptr$0 = $xp1_ptr$0$phi; } } - if ($RP$0$lcssa >>> 0 < $2 >>> 0) _abort(); else { - HEAP32[$RP$0$lcssa >> 2] = 0; - $R$1 = $R$0$lcssa; + if (__ZN6vision40Homography3PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_($x2_ptr$0$lcssa, $x3_ptr$0$lcssa, $x, $xp2_ptr$0$lcssa, $xp3_ptr$0$lcssa, $first_xp1) | 0) $$0 = __ZN6vision40Homography3PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_($x3_ptr$0$lcssa, $x, $1, $xp3_ptr$0$lcssa, $first_xp1, $first_xp2) | 0; else $$0 = 0; + } else $$0 = 0; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__17__sort3IRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEjT0_S9_S9_T_($__x, $__y, $__z, $__c) { + $__x = $__x | 0; + $__y = $__y | 0; + $__z = $__z | 0; + $__c = $__c | 0; + var $$0 = 0, $$phi$trans$insert = 0, $$phi$trans$insert7 = 0, $$pre$phi9Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0.0, $2 = 0.0, $20 = 0, $21 = 0, $22 = 0, $24 = 0.0, $25 = 0.0, $28 = 0, $29 = 0, $3 = 0.0, $30 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0.0, $45 = 0, $46 = 0, $48 = 0, $49 = 0, $50 = 0; + $0 = HEAP32[$__y >> 2] | 0; + $1 = HEAP32[$__x >> 2] | 0; + $2 = +HEAPF32[$1 >> 2]; + $3 = +HEAPF32[$0 >> 2]; + if ($2 < $3) $49 = 1; else if ($3 < $2) $49 = 0; else $49 = (HEAP32[$1 + 4 >> 2] | 0) >>> 0 < (HEAP32[$0 + 4 >> 2] | 0) >>> 0; + $11 = HEAP32[$__z >> 2] | 0; + $12 = +HEAPF32[$11 >> 2]; + if ($3 < $12) $50 = 1; else if ($12 < $3) $50 = 0; else $50 = (HEAP32[$0 + 4 >> 2] | 0) >>> 0 < (HEAP32[$11 + 4 >> 2] | 0) >>> 0; + do if ($49) { + if ($50) { + HEAPF32[$1 >> 2] = $12; + HEAPF32[$11 >> 2] = $2; + $34 = $1 + 4 | 0; + $35 = $11 + 4 | 0; + $36 = HEAP32[$34 >> 2] | 0; + HEAP32[$34 >> 2] = HEAP32[$35 >> 2]; + HEAP32[$35 >> 2] = $36; + $$0 = 1; + break; + } + HEAPF32[$1 >> 2] = $3; + HEAPF32[$0 >> 2] = $2; + $38 = $1 + 4 | 0; + $39 = $0 + 4 | 0; + $40 = HEAP32[$38 >> 2] | 0; + HEAP32[$38 >> 2] = HEAP32[$39 >> 2]; + HEAP32[$39 >> 2] = $40; + $42 = +HEAPF32[$11 >> 2]; + if ($2 < $42) { + $$phi$trans$insert7 = $11 + 4 | 0; + $$pre$phiZ2D = $$phi$trans$insert7; + $48 = HEAP32[$$phi$trans$insert7 >> 2] | 0; + } else { + if ($42 < $2) { + $$0 = 1; break; } - } else { - $49 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0; - if ($49 >>> 0 < $2 >>> 0) _abort(); - $51 = $49 + 12 | 0; - if ((HEAP32[$51 >> 2] | 0) != ($14 | 0)) _abort(); - $54 = $46 + 8 | 0; - if ((HEAP32[$54 >> 2] | 0) == ($14 | 0)) { - HEAP32[$51 >> 2] = $46; - HEAP32[$54 >> 2] = $49; - $R$1 = $46; + $45 = $11 + 4 | 0; + $46 = HEAP32[$45 >> 2] | 0; + if ($40 >>> 0 < $46 >>> 0) { + $$pre$phiZ2D = $45; + $48 = $46; + } else { + $$0 = 1; break; - } else _abort(); - } while (0); - if (!$44) { - $p$0 = $14; - $psize$0 = $15; + } + } + HEAPF32[$0 >> 2] = $42; + HEAPF32[$11 >> 2] = $2; + HEAP32[$39 >> 2] = $48; + HEAP32[$$pre$phiZ2D >> 2] = $40; + $$0 = 2; + } else if ($50) { + HEAPF32[$0 >> 2] = $12; + HEAPF32[$11 >> 2] = $3; + $20 = $0 + 4 | 0; + $21 = $11 + 4 | 0; + $22 = HEAP32[$20 >> 2] | 0; + HEAP32[$20 >> 2] = HEAP32[$21 >> 2]; + HEAP32[$21 >> 2] = $22; + $24 = +HEAPF32[$1 >> 2]; + $25 = +HEAPF32[$0 >> 2]; + if ($24 < $25) { + $$phi$trans$insert = $1 + 4 | 0; + $$pre$phi9Z2D = $$phi$trans$insert; + $32 = HEAP32[$20 >> 2] | 0; + $33 = HEAP32[$$phi$trans$insert >> 2] | 0; } else { - $72 = HEAP32[$mem + ($$sum2 + 28) >> 2] | 0; - $73 = 3328 + ($72 << 2) | 0; - if (($14 | 0) == (HEAP32[$73 >> 2] | 0)) { - HEAP32[$73 >> 2] = $R$1; - if (!$R$1) { - HEAP32[757] = HEAP32[757] & ~(1 << $72); - $p$0 = $14; - $psize$0 = $15; - break; - } + if ($25 < $24) { + $$0 = 1; + break; + } + $28 = $1 + 4 | 0; + $29 = HEAP32[$28 >> 2] | 0; + $30 = HEAP32[$20 >> 2] | 0; + if ($29 >>> 0 < $30 >>> 0) { + $$pre$phi9Z2D = $28; + $32 = $30; + $33 = $29; } else { - if ($44 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $82 = $44 + 16 | 0; - if ((HEAP32[$82 >> 2] | 0) == ($14 | 0)) HEAP32[$82 >> 2] = $R$1; else HEAP32[$44 + 20 >> 2] = $R$1; - if (!$R$1) { - $p$0 = $14; - $psize$0 = $15; - break; - } + $$0 = 1; + break; } - $87 = HEAP32[760] | 0; - if ($R$1 >>> 0 < $87 >>> 0) _abort(); - HEAP32[$R$1 + 24 >> 2] = $44; - $91 = HEAP32[$mem + ($$sum2 + 16) >> 2] | 0; - do if ($91) if ($91 >>> 0 < $87 >>> 0) _abort(); else { - HEAP32[$R$1 + 16 >> 2] = $91; - HEAP32[$91 + 24 >> 2] = $R$1; + } + HEAPF32[$1 >> 2] = $25; + HEAPF32[$0 >> 2] = $24; + HEAP32[$$pre$phi9Z2D >> 2] = $32; + HEAP32[$20 >> 2] = $33; + $$0 = 2; + } else $$0 = 0; while (0); + return $$0 | 0; +} + +function _setCamera($id, $cameraID) { + $id = $id | 0; + $cameraID = $cameraID | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $14 = 0, $15 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $26 = 0, $39 = 0, $4 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer6 = sp + 24 | 0; + $vararg_buffer4 = sp + 16 | 0; + $vararg_buffer2 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = sp + 32 | 0; + $1 = sp + 28 | 0; + HEAP32[$0 >> 2] = $id; + HEAP32[$1 >> 2] = $cameraID; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5840, $1) | 0)) $$0 = -1; else { + $7 = $4 + 8 | 0; + _memcpy($7 | 0, __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5840, $1) | 0, 184) | 0; + $9 = HEAP32[$7 >> 2] | 0; + $10 = $4 + 204 | 0; + $14 = HEAP32[$4 + 12 >> 2] | 0; + $15 = $4 + 208 | 0; + if (!(($9 | 0) == (HEAP32[$10 >> 2] | 0) ? ($14 | 0) == (HEAP32[$15 >> 2] | 0) : 0)) { + HEAP32[$vararg_buffer >> 2] = $9; + HEAP32[$vararg_buffer + 4 >> 2] = $14; + _arLog(2, 40961, $vararg_buffer); + _arParamChangeSize($7, HEAP32[$10 >> 2] | 0, HEAP32[$15 >> 2] | 0, $7) | 0; + } + _deleteHandle($4); + $20 = _arParamLTCreate($7, 15) | 0; + $21 = $4 + 192 | 0; + HEAP32[$21 >> 2] = $20; + if (!$20) { + _arLog(3, 41008, $vararg_buffer2); + $$0 = -1; break; - } while (0); - $97 = HEAP32[$mem + ($$sum2 + 20) >> 2] | 0; - if (!$97) { - $p$0 = $14; - $psize$0 = $15; - } else if ($97 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1 + 20 >> 2] = $97; - HEAP32[$97 + 24 >> 2] = $R$1; - $p$0 = $14; - $psize$0 = $15; + } + $23 = _arCreateHandle($20) | 0; + $24 = $4 + 212 | 0; + HEAP32[$24 >> 2] = $23; + if (!$23) { + _arLog(3, 41046, $vararg_buffer4); + $$0 = -1; + break; + } + _arSetPixelFormat($23, 2) | 0; + $26 = _ar3DCreateHandle($7) | 0; + HEAP32[$4 + 224 >> 2] = $26; + if (!$26) { + _arLog(3, 41083, $vararg_buffer6); + $$0 = -1; + break; + } else { + _arPattAttach(HEAP32[$24 >> 2] | 0, HEAP32[$4 + 216 >> 2] | 0) | 0; + _arglCameraFrustum(HEAP32[$21 >> 2] | 0, +HEAPF64[$4 + 264 >> 3], +HEAPF64[$4 + 272 >> 3], $4 + 296 | 0); + $39 = _kpmCreateHandle(HEAP32[$21 >> 2] | 0, 2) | 0; + HEAP32[$4 + 228 >> 2] = $39; + $$0 = 0; break; } } - } else { - $p$0 = $1; - $psize$0 = $8; } while (0); - if ($p$0 >>> 0 >= $9 >>> 0) _abort(); - $111 = $mem + ($8 + -4) | 0; - $112 = HEAP32[$111 >> 2] | 0; - if (!($112 & 1)) _abort(); - if (!($112 & 2)) { - if (($9 | 0) == (HEAP32[762] | 0)) { - $120 = (HEAP32[759] | 0) + $psize$0 | 0; - HEAP32[759] = $120; - HEAP32[762] = $p$0; - HEAP32[$p$0 + 4 >> 2] = $120 | 1; - if (($p$0 | 0) != (HEAP32[761] | 0)) return; - HEAP32[761] = 0; - HEAP32[758] = 0; - return; + STACKTOP = sp; + return $$0 | 0; +} + +function _arParamChangeSize($source, $xsize, $ysize, $newparam) { + $source = $source | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $newparam = $newparam | 0; + var $$0 = 0, $23 = 0, $3 = 0.0, $8 = 0.0, $i$01 = 0, label = 0; + $3 = +($xsize | 0) / +(HEAP32[$source >> 2] | 0); + $8 = +($ysize | 0) / +(HEAP32[$source + 4 >> 2] | 0); + HEAP32[$newparam >> 2] = $xsize; + HEAP32[$newparam + 4 >> 2] = $ysize; + $i$01 = 0; + do { + HEAPF64[$newparam + 8 + ($i$01 << 3) >> 3] = $3 * +HEAPF64[$source + 8 + ($i$01 << 3) >> 3]; + HEAPF64[$newparam + 40 + ($i$01 << 3) >> 3] = $8 * +HEAPF64[$source + 40 + ($i$01 << 3) >> 3]; + HEAPF64[$newparam + 72 + ($i$01 << 3) >> 3] = +HEAPF64[$source + 72 + ($i$01 << 3) >> 3]; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) != 4); + $23 = HEAP32[$source + 176 >> 2] | 0; + switch ($23 | 0) { + case 4: + { + HEAPF64[$newparam + 104 >> 3] = +HEAPF64[$source + 104 >> 3]; + HEAPF64[$newparam + 112 >> 3] = +HEAPF64[$source + 112 >> 3]; + HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; + HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3]; + HEAPF64[$newparam + 136 >> 3] = $3 * +HEAPF64[$source + 136 >> 3]; + HEAPF64[$newparam + 144 >> 3] = $8 * +HEAPF64[$source + 144 >> 3]; + HEAPF64[$newparam + 152 >> 3] = $3 * +HEAPF64[$source + 152 >> 3]; + HEAPF64[$newparam + 160 >> 3] = $8 * +HEAPF64[$source + 160 >> 3]; + HEAPF64[$newparam + 168 >> 3] = +HEAPF64[$source + 168 >> 3]; + label = 8; + break; } - if (($9 | 0) == (HEAP32[761] | 0)) { - $128 = (HEAP32[758] | 0) + $psize$0 | 0; - HEAP32[758] = $128; - HEAP32[761] = $p$0; - HEAP32[$p$0 + 4 >> 2] = $128 | 1; - HEAP32[$p$0 + $128 >> 2] = $128; - return; + case 3: + { + HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; + HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; + HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; + HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3]; + HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($3 * $8); + HEAPF64[$newparam + 144 >> 3] = +HEAPF64[$source + 144 >> 3] / ($8 * ($3 * $3 * $8)); + label = 8; + break; } - $133 = ($112 & -8) + $psize$0 | 0; - $134 = $112 >>> 3; - do if ($112 >>> 0 < 256) { - $137 = HEAP32[$mem + $8 >> 2] | 0; - $139 = HEAP32[$mem + ($8 | 4) >> 2] | 0; - $141 = 3064 + ($134 << 1 << 2) | 0; - if (($137 | 0) != ($141 | 0)) { - if ($137 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - if ((HEAP32[$137 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + case 2: + { + HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; + HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; + HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; + HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8); + HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($8 * ($3 * $3 * $8)); + label = 8; + break; + } + case 1: + { + HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; + HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; + HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; + HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8); + label = 8; + break; + } + default: + $$0 = -1; + } + if ((label | 0) == 8) { + HEAP32[$newparam + 176 >> 2] = $23; + $$0 = 0; + } + return $$0 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRb($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy2 = 0, $$sroa$01$0 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $31 = 0, $32 = 0, $4 = 0, $__lv = 0, $__names = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy2 = sp + 56 | 0; + $$byval_copy = sp + 52 | 0; + $__lv = sp + 48 | 0; + $0 = sp + 44 | 0; + $1 = sp + 40 | 0; + $2 = sp + 36 | 0; + $3 = sp + 32 | 0; + $__names = sp + 8 | 0; + $4 = sp; + L1 : do if (!(HEAP32[$__iob + 4 >> 2] & 1)) { + HEAP32[$__lv >> 2] = -1; + $11 = HEAP32[(HEAP32[$this >> 2] | 0) + 16 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$1 >> 2]; + $14 = FUNCTION_TABLE_iiiiiii[$11 & 63]($this, $$byval_copy, $$byval_copy2, $__iob, $__err, $__lv) | 0; + HEAP32[$__b >> 2] = $14; + switch (HEAP32[$__lv >> 2] | 0) { + case 0: + { + HEAP8[$__v >> 0] = 0; + $$sroa$01$0 = $14; + break L1; + break; } - if (($139 | 0) == ($137 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $134); + case 1: + { + HEAP8[$__v >> 0] = 1; + $$sroa$01$0 = $14; + break L1; break; } - if (($139 | 0) == ($141 | 0)) $$pre$phi59Z2D = $139 + 8 | 0; else { - if ($139 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $156 = $139 + 8 | 0; - if ((HEAP32[$156 >> 2] | 0) == ($9 | 0)) $$pre$phi59Z2D = $156; else _abort(); + default: + { + HEAP8[$__v >> 0] = 1; + HEAP32[$__err >> 2] = 4; + $$sroa$01$0 = $14; + break L1; } - HEAP32[$137 + 12 >> 2] = $139; - HEAP32[$$pre$phi59Z2D >> 2] = $137; - } else { - $161 = HEAP32[$mem + ($8 + 16) >> 2] | 0; - $163 = HEAP32[$mem + ($8 | 4) >> 2] | 0; - do if (($163 | 0) == ($9 | 0)) { - $175 = $mem + ($8 + 12) | 0; - $176 = HEAP32[$175 >> 2] | 0; - if (!$176) { - $178 = $mem + ($8 + 8) | 0; - $179 = HEAP32[$178 >> 2] | 0; - if (!$179) { - $R7$1 = 0; - break; - } else { - $R7$0 = $179; - $RP9$0 = $178; - } - } else { - $R7$0 = $176; - $RP9$0 = $175; - } - while (1) { - $181 = $R7$0 + 20 | 0; - $182 = HEAP32[$181 >> 2] | 0; - if ($182) { - $R7$0 = $182; - $RP9$0 = $181; - continue; - } - $184 = $R7$0 + 16 | 0; - $185 = HEAP32[$184 >> 2] | 0; - if (!$185) { - $R7$0$lcssa = $R7$0; - $RP9$0$lcssa = $RP9$0; - break; - } else { - $R7$0 = $185; - $RP9$0 = $184; - } - } - if ($RP9$0$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$RP9$0$lcssa >> 2] = 0; - $R7$1 = $R7$0$lcssa; - break; - } - } else { - $166 = HEAP32[$mem + $8 >> 2] | 0; - if ($166 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $169 = $166 + 12 | 0; - if ((HEAP32[$169 >> 2] | 0) != ($9 | 0)) _abort(); - $172 = $163 + 8 | 0; - if ((HEAP32[$172 >> 2] | 0) == ($9 | 0)) { - HEAP32[$169 >> 2] = $163; - HEAP32[$172 >> 2] = $166; - $R7$1 = $163; - break; - } else _abort(); - } while (0); - if ($161) { - $191 = HEAP32[$mem + ($8 + 20) >> 2] | 0; - $192 = 3328 + ($191 << 2) | 0; - if (($9 | 0) == (HEAP32[$192 >> 2] | 0)) { - HEAP32[$192 >> 2] = $R7$1; - if (!$R7$1) { - HEAP32[757] = HEAP32[757] & ~(1 << $191); - break; - } - } else { - if ($161 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $201 = $161 + 16 | 0; - if ((HEAP32[$201 >> 2] | 0) == ($9 | 0)) HEAP32[$201 >> 2] = $R7$1; else HEAP32[$161 + 20 >> 2] = $R7$1; - if (!$R7$1) break; - } - $206 = HEAP32[760] | 0; - if ($R7$1 >>> 0 < $206 >>> 0) _abort(); - HEAP32[$R7$1 + 24 >> 2] = $161; - $210 = HEAP32[$mem + ($8 + 8) >> 2] | 0; - do if ($210) if ($210 >>> 0 < $206 >>> 0) _abort(); else { - HEAP32[$R7$1 + 16 >> 2] = $210; - HEAP32[$210 + 24 >> 2] = $R7$1; - break; - } while (0); - $216 = HEAP32[$mem + ($8 + 12) >> 2] | 0; - if ($216) if ($216 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R7$1 + 20 >> 2] = $216; - HEAP32[$216 + 24 >> 2] = $R7$1; - break; - } + } + } else { + $16 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($2, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($16) | 0; + $18 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$3 >> 2] = $18; + $19 = __ZNKSt3__16locale9use_facetERNS0_2idE($3, 13828) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($18) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$19 >> 2] | 0) + 24 >> 2] & 63]($__names, $19); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$19 >> 2] | 0) + 28 >> 2] & 63]($__names + 12 | 0, $19); + HEAP32[$4 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$4 >> 2]; + $31 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy2, $__names, $__names + 24 | 0, $17, $__err, 1) | 0) == ($__names | 0) & 1; + HEAP8[$__v >> 0] = $31; + $32 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__names + 12 | 0); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__names); + $$sroa$01$0 = $32; + } while (0); + STACKTOP = sp; + return $$sroa$01$0 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRb($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy2 = 0, $$sroa$01$0 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $31 = 0, $32 = 0, $4 = 0, $__lv = 0, $__names = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy2 = sp + 56 | 0; + $$byval_copy = sp + 52 | 0; + $__lv = sp + 48 | 0; + $0 = sp + 44 | 0; + $1 = sp + 40 | 0; + $2 = sp + 36 | 0; + $3 = sp + 32 | 0; + $__names = sp + 8 | 0; + $4 = sp; + L1 : do if (!(HEAP32[$__iob + 4 >> 2] & 1)) { + HEAP32[$__lv >> 2] = -1; + $11 = HEAP32[(HEAP32[$this >> 2] | 0) + 16 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$1 >> 2]; + $14 = FUNCTION_TABLE_iiiiiii[$11 & 63]($this, $$byval_copy, $$byval_copy2, $__iob, $__err, $__lv) | 0; + HEAP32[$__b >> 2] = $14; + switch (HEAP32[$__lv >> 2] | 0) { + case 0: + { + HEAP8[$__v >> 0] = 0; + $$sroa$01$0 = $14; + break L1; + break; } - } while (0); - HEAP32[$p$0 + 4 >> 2] = $133 | 1; - HEAP32[$p$0 + $133 >> 2] = $133; - if (($p$0 | 0) == (HEAP32[761] | 0)) { - HEAP32[758] = $133; - return; - } else $psize$1 = $133; + case 1: + { + HEAP8[$__v >> 0] = 1; + $$sroa$01$0 = $14; + break L1; + break; + } + default: + { + HEAP8[$__v >> 0] = 1; + HEAP32[$__err >> 2] = 4; + $$sroa$01$0 = $14; + break L1; + } + } } else { - HEAP32[$111 >> 2] = $112 & -2; - HEAP32[$p$0 + 4 >> 2] = $psize$0 | 1; - HEAP32[$p$0 + $psize$0 >> 2] = $psize$0; - $psize$1 = $psize$0; + $16 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($2, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($16) | 0; + $18 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$3 >> 2] = $18; + $19 = __ZNKSt3__16locale9use_facetERNS0_2idE($3, 13820) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($18) | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$19 >> 2] | 0) + 24 >> 2] & 63]($__names, $19); + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$19 >> 2] | 0) + 28 >> 2] & 63]($__names + 12 | 0, $19); + HEAP32[$4 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy2 >> 2] = HEAP32[$4 >> 2]; + $31 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy2, $__names, $__names + 24 | 0, $17, $__err, 1) | 0) == ($__names | 0) & 1; + HEAP8[$__v >> 0] = $31; + $32 = HEAP32[$__b >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__names + 12 | 0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__names); + $$sroa$01$0 = $32; + } while (0); + STACKTOP = sp; + return $$sroa$01$0 | 0; +} + +function _icpUpdateMat($matXw2Xc, $dS) { + $matXw2Xc = $matXw2Xc | 0; + $dS = $dS | 0; + var $$sink$i = 0.0, $$sink1$i = 0.0, $0 = 0.0, $11 = 0.0, $16 = 0.0, $18 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $25 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $35 = 0.0, $36 = 0.0, $47 = 0.0, $48 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $7 = 0.0, $82 = 0, $9 = 0.0, $i$08 = 0, $j$09 = 0, $j$17 = 0, $mat = 0, $mat2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $mat = sp + 96 | 0; + $mat2 = sp; + $0 = +HEAPF64[$dS >> 3]; + $3 = +HEAPF64[$dS + 8 >> 3]; + $7 = +HEAPF64[$dS + 16 >> 3]; + $9 = $0 * $0 + $3 * $3 + $7 * $7; + if ($9 == 0.0) { + $$sink$i = 0.0; + $$sink1$i = 0.0; + $25 = 1.0; + $29 = 0.0; + } else { + $11 = +Math_sqrt(+$9); + $$sink$i = $11; + $$sink1$i = $7 / $11; + $25 = $0 / $11; + $29 = $3 / $11; } - $231 = $psize$1 >>> 3; - if ($psize$1 >>> 0 < 256) { - $233 = $231 << 1; - $234 = 3064 + ($233 << 2) | 0; - $235 = HEAP32[756] | 0; - $236 = 1 << $231; - if (!($235 & $236)) { - HEAP32[756] = $235 | $236; - $$pre$phiZ2D = 3064 + ($233 + 2 << 2) | 0; - $F16$0 = $234; - } else { - $240 = 3064 + ($233 + 2 << 2) | 0; - $241 = HEAP32[$240 >> 2] | 0; - if ($241 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phiZ2D = $240; - $F16$0 = $241; + $16 = +HEAPF64[$dS + 24 >> 3]; + $18 = +HEAPF64[$dS + 32 >> 3]; + $20 = +HEAPF64[$dS + 40 >> 3]; + $21 = +Math_cos(+$$sink$i); + $22 = 1.0 - $21; + $23 = +Math_sin(+$$sink$i); + HEAPF64[$mat >> 3] = $21 + $25 * $25 * $22; + $30 = $29 * $25 * $22; + $31 = $$sink1$i * $23; + HEAPF64[$mat + 8 >> 3] = $30 - $31; + $35 = $25 * $$sink1$i * $22; + $36 = $29 * $23; + HEAPF64[$mat + 16 >> 3] = $35 + $36; + HEAPF64[$mat + 24 >> 3] = $16; + HEAPF64[$mat + 32 >> 3] = $30 + $31; + HEAPF64[$mat + 40 >> 3] = $21 + $29 * $29 * $22; + $47 = $29 * $$sink1$i * $22; + $48 = $25 * $23; + HEAPF64[$mat + 48 >> 3] = $47 - $48; + HEAPF64[$mat + 56 >> 3] = $18; + HEAPF64[$mat + 64 >> 3] = $35 - $36; + HEAPF64[$mat + 72 >> 3] = $47 + $48; + HEAPF64[$mat + 80 >> 3] = $21 + $$sink1$i * $$sink1$i * $22; + HEAPF64[$mat + 88 >> 3] = $20; + $j$09 = 0; + do { + $64 = +HEAPF64[$matXw2Xc + ($j$09 << 5) >> 3]; + $65 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 8 >> 3]; + $66 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 16 >> 3]; + $i$08 = 0; + do { + HEAPF64[$mat2 + ($j$09 << 5) + ($i$08 << 3) >> 3] = $64 * +HEAPF64[$mat + ($i$08 << 3) >> 3] + $65 * +HEAPF64[$mat + 32 + ($i$08 << 3) >> 3] + $66 * +HEAPF64[$mat + 64 + ($i$08 << 3) >> 3]; + $i$08 = $i$08 + 1 | 0; + } while (($i$08 | 0) != 4); + $82 = $mat2 + ($j$09 << 5) + 24 | 0; + HEAPF64[$82 >> 3] = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 24 >> 3] + +HEAPF64[$82 >> 3]; + $j$09 = $j$09 + 1 | 0; + } while (($j$09 | 0) != 3); + $j$17 = 0; + do { + HEAPF64[$matXw2Xc + ($j$17 << 5) >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) >> 3]; + HEAPF64[$matXw2Xc + ($j$17 << 5) + 8 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 8 >> 3]; + HEAPF64[$matXw2Xc + ($j$17 << 5) + 16 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 16 >> 3]; + HEAPF64[$matXw2Xc + ($j$17 << 5) + 24 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 24 >> 3]; + $j$17 = $j$17 + 1 | 0; + } while (($j$17 | 0) != 3); + STACKTOP = sp; + return 0; +} + +function _h2v1_merged_upsample($cinfo, $input_buf, $in_row_group_ctr, $output_buf) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $output_buf = $output_buf | 0; + var $1 = 0, $11 = 0, $14 = 0, $18 = 0, $22 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $32 = 0, $35 = 0, $37 = 0, $43 = 0, $45 = 0, $48 = 0, $5 = 0, $63 = 0, $7 = 0, $82 = 0, $84 = 0, $9 = 0, $92 = 0, $94 = 0, $96 = 0, $col$09 = 0, $inptr0$06 = 0, $inptr1$07 = 0, $inptr2$08 = 0, $outptr$05 = 0, $scevgep = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + $3 = HEAP32[$cinfo + 324 >> 2] | 0; + $5 = HEAP32[$1 + 16 >> 2] | 0; + $7 = HEAP32[$1 + 20 >> 2] | 0; + $9 = HEAP32[$1 + 24 >> 2] | 0; + $11 = HEAP32[$1 + 28 >> 2] | 0; + $14 = HEAP32[(HEAP32[$input_buf >> 2] | 0) + ($in_row_group_ctr << 2) >> 2] | 0; + $18 = HEAP32[(HEAP32[$input_buf + 4 >> 2] | 0) + ($in_row_group_ctr << 2) >> 2] | 0; + $22 = HEAP32[(HEAP32[$input_buf + 8 >> 2] | 0) + ($in_row_group_ctr << 2) >> 2] | 0; + $23 = HEAP32[$output_buf >> 2] | 0; + $24 = $cinfo + 112 | 0; + $26 = (HEAP32[$24 >> 2] | 0) >>> 1; + $scevgep = $22 + $26 | 0; + $27 = $26 << 1; + $28 = $26 * 6 | 0; + if ($26) { + $col$09 = $26; + $inptr0$06 = $14; + $inptr1$07 = $18; + $inptr2$08 = $22; + $outptr$05 = $23; + while (1) { + $32 = HEAPU8[$inptr1$07 >> 0] | 0; + $35 = HEAPU8[$inptr2$08 >> 0] | 0; + $37 = HEAP32[$5 + ($35 << 2) >> 2] | 0; + $43 = (HEAP32[$9 + ($35 << 2) >> 2] | 0) + (HEAP32[$11 + ($32 << 2) >> 2] | 0) >> 16; + $45 = HEAP32[$7 + ($32 << 2) >> 2] | 0; + $48 = HEAPU8[$inptr0$06 >> 0] | 0; + HEAP8[$outptr$05 >> 0] = HEAP8[$3 + ($48 + $37) >> 0] | 0; + HEAP8[$outptr$05 + 1 >> 0] = HEAP8[$3 + ($48 + $43) >> 0] | 0; + HEAP8[$outptr$05 + 2 >> 0] = HEAP8[$3 + ($48 + $45) >> 0] | 0; + $63 = HEAPU8[$inptr0$06 + 1 >> 0] | 0; + HEAP8[$outptr$05 + 3 >> 0] = HEAP8[$3 + ($63 + $37) >> 0] | 0; + HEAP8[$outptr$05 + 4 >> 0] = HEAP8[$3 + ($63 + $43) >> 0] | 0; + HEAP8[$outptr$05 + 5 >> 0] = HEAP8[$3 + ($63 + $45) >> 0] | 0; + $col$09 = $col$09 + -1 | 0; + if (!$col$09) break; else { + $inptr0$06 = $inptr0$06 + 2 | 0; + $inptr1$07 = $inptr1$07 + 1 | 0; + $inptr2$08 = $inptr2$08 + 1 | 0; + $outptr$05 = $outptr$05 + 6 | 0; } } - HEAP32[$$pre$phiZ2D >> 2] = $p$0; - HEAP32[$F16$0 + 12 >> 2] = $p$0; - HEAP32[$p$0 + 8 >> 2] = $F16$0; - HEAP32[$p$0 + 12 >> 2] = $234; - return; } - $247 = $psize$1 >>> 8; - if (!$247) $I18$0 = 0; else if ($psize$1 >>> 0 > 16777215) $I18$0 = 31; else { - $252 = ($247 + 1048320 | 0) >>> 16 & 8; - $253 = $247 << $252; - $256 = ($253 + 520192 | 0) >>> 16 & 4; - $258 = $253 << $256; - $261 = ($258 + 245760 | 0) >>> 16 & 2; - $266 = 14 - ($256 | $252 | $261) + ($258 << $261 >>> 15) | 0; - $I18$0 = $psize$1 >>> ($266 + 7 | 0) & 1 | $266 << 1; + if (HEAP32[$24 >> 2] & 1) { + $82 = HEAPU8[$18 + $26 >> 0] | 0; + $84 = HEAPU8[$scevgep >> 0] | 0; + $92 = (HEAP32[$9 + ($84 << 2) >> 2] | 0) + (HEAP32[$11 + ($82 << 2) >> 2] | 0) >> 16; + $94 = HEAP32[$7 + ($82 << 2) >> 2] | 0; + $96 = HEAPU8[$14 + $27 >> 0] | 0; + HEAP8[$23 + $28 >> 0] = HEAP8[$3 + ($96 + (HEAP32[$5 + ($84 << 2) >> 2] | 0)) >> 0] | 0; + HEAP8[$23 + ($28 | 1) >> 0] = HEAP8[$3 + ($96 + $92) >> 0] | 0; + HEAP8[$23 + ($28 + 2) >> 0] = HEAP8[$3 + ($96 + $94) >> 0] | 0; } - $272 = 3328 + ($I18$0 << 2) | 0; - HEAP32[$p$0 + 28 >> 2] = $I18$0; - HEAP32[$p$0 + 20 >> 2] = 0; - HEAP32[$p$0 + 16 >> 2] = 0; - $276 = HEAP32[757] | 0; - $277 = 1 << $I18$0; - L199 : do if (!($276 & $277)) { - HEAP32[757] = $276 | $277; - HEAP32[$272 >> 2] = $p$0; - HEAP32[$p$0 + 24 >> 2] = $272; - HEAP32[$p$0 + 12 >> 2] = $p$0; - HEAP32[$p$0 + 8 >> 2] = $p$0; - } else { - $284 = HEAP32[$272 >> 2] | 0; - L202 : do if ((HEAP32[$284 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) $T$0$lcssa = $284; else { - $K19$052 = $psize$1 << (($I18$0 | 0) == 31 ? 0 : 25 - ($I18$0 >>> 1) | 0); - $T$051 = $284; - while (1) { - $301 = $T$051 + 16 + ($K19$052 >>> 31 << 2) | 0; - $296 = HEAP32[$301 >> 2] | 0; - if (!$296) { - $$lcssa = $301; - $T$051$lcssa = $T$051; - break; - } - if ((HEAP32[$296 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) { - $T$0$lcssa = $296; - break L202; - } else { - $K19$052 = $K19$052 << 1; - $T$051 = $296; - } - } - if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$$lcssa >> 2] = $p$0; - HEAP32[$p$0 + 24 >> 2] = $T$051$lcssa; - HEAP32[$p$0 + 12 >> 2] = $p$0; - HEAP32[$p$0 + 8 >> 2] = $p$0; - break L199; + return; +} + +function _start_pass_main33($cinfo, $pass_mode) { + $cinfo = $cinfo | 0; + $pass_mode = $pass_mode | 0; + var $1 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $24 = 0, $27 = 0, $30 = 0, $32 = 0, $33 = 0, $35 = 0, $36 = 0, $37 = 0, $40 = 0, $46 = 0, $49 = 0, $7 = 0, $70 = 0, $9 = 0, $ci$0$i7 = 0, $compptr$0$i6 = 0, $i$0$i1 = 0, $i$1$i2 = 0, $i$2$i4 = 0; + $1 = HEAP32[$cinfo + 424 >> 2] | 0; + switch ($pass_mode | 0) { + case 0: + { + $7 = $1 + 4 | 0; + if (!(HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 8 >> 2] | 0)) HEAP32[$7 >> 2] = 18; else { + HEAP32[$7 >> 2] = 17; + $9 = HEAP32[$cinfo + 316 >> 2] | 0; + $11 = HEAP32[$cinfo + 36 >> 2] | 0; + $12 = $1 + 56 | 0; + $13 = $1 + 60 | 0; + $14 = $9 + 2 | 0; + $15 = $9 + -2 | 0; + if (($11 | 0) > 0) { + $ci$0$i7 = 0; + $compptr$0$i6 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $24 = (Math_imul(HEAP32[$compptr$0$i6 + 36 >> 2] | 0, HEAP32[$compptr$0$i6 + 12 >> 2] | 0) | 0) / ($9 | 0) | 0; + $27 = HEAP32[(HEAP32[$12 >> 2] | 0) + ($ci$0$i7 << 2) >> 2] | 0; + $30 = HEAP32[(HEAP32[$13 >> 2] | 0) + ($ci$0$i7 << 2) >> 2] | 0; + $32 = HEAP32[$1 + 8 + ($ci$0$i7 << 2) >> 2] | 0; + $33 = Math_imul($24, $14) | 0; + if (($33 | 0) > 0) { + $i$0$i1 = 0; + do { + $40 = HEAP32[$32 + ($i$0$i1 << 2) >> 2] | 0; + HEAP32[$30 + ($i$0$i1 << 2) >> 2] = $40; + HEAP32[$27 + ($i$0$i1 << 2) >> 2] = $40; + $i$0$i1 = $i$0$i1 + 1 | 0; + } while (($i$0$i1 | 0) < ($33 | 0)); + } + $35 = $24 << 1; + $36 = Math_imul($24, $9) | 0; + $37 = Math_imul($24, $15) | 0; + if (($24 | 0) > 0) { + $i$1$i2 = 0; + do { + $46 = $i$1$i2 + $36 | 0; + $49 = $i$1$i2 + $37 | 0; + HEAP32[$30 + ($49 << 2) >> 2] = HEAP32[$32 + ($46 << 2) >> 2]; + HEAP32[$30 + ($46 << 2) >> 2] = HEAP32[$32 + ($49 << 2) >> 2]; + $i$1$i2 = $i$1$i2 + 1 | 0; + } while (($i$1$i2 | 0) < ($35 | 0)); + } + if (($24 | 0) > 0) { + $i$2$i4 = 0; + do { + HEAP32[$27 + ($i$2$i4 - $24 << 2) >> 2] = HEAP32[$27 >> 2]; + $i$2$i4 = $i$2$i4 + 1 | 0; + } while (($i$2$i4 | 0) < ($24 | 0)); + } + $ci$0$i7 = $ci$0$i7 + 1 | 0; + if (($ci$0$i7 | 0) >= ($11 | 0)) break; else $compptr$0$i6 = $compptr$0$i6 + 84 | 0; + } + } + HEAP32[$1 + 64 >> 2] = 0; + HEAP32[$1 + 68 >> 2] = 0; + HEAP32[$1 + 76 >> 2] = 0; } - } while (0); - $308 = $T$0$lcssa + 8 | 0; - $309 = HEAP32[$308 >> 2] | 0; - $310 = HEAP32[760] | 0; - if ($309 >>> 0 >= $310 >>> 0 & $T$0$lcssa >>> 0 >= $310 >>> 0) { - HEAP32[$309 + 12 >> 2] = $p$0; - HEAP32[$308 >> 2] = $p$0; - HEAP32[$p$0 + 8 >> 2] = $309; - HEAP32[$p$0 + 12 >> 2] = $T$0$lcssa; - HEAP32[$p$0 + 24 >> 2] = 0; + HEAP32[$1 + 48 >> 2] = 0; + HEAP32[$1 + 52 >> 2] = 0; break; - } else _abort(); - } while (0); - $318 = (HEAP32[764] | 0) + -1 | 0; - HEAP32[764] = $318; - if (!$318) $sp$0$in$i = 3480; else return; - while (1) { - $sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0; - if (!$sp$0$i) break; else $sp$0$in$i = $sp$0$i + 8 | 0; + } + case 2: + { + HEAP32[$1 + 4 >> 2] = 19; + break; + } + default: + { + $70 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$70 + 20 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$70 >> 2] & 255]($cinfo); + } } - HEAP32[764] = -1; return; } -function ___intscan($f, $base, $pok, $0, $1) { - $f = $f | 0; - $base = $base | 0; - $pok = $pok | 0; - $0 = $0 | 0; - $1 = $1 | 0; - var $$1 = 0, $$122 = 0, $$123 = 0, $$base21 = 0, $$lcssa = 0, $$lcssa130 = 0, $$lcssa131 = 0, $$lcssa132 = 0, $$lcssa133 = 0, $$lcssa134 = 0, $$lcssa135 = 0, $100 = 0, $101 = 0, $108 = 0, $120 = 0, $121 = 0, $128 = 0, $13 = 0, $130 = 0, $131 = 0, $134 = 0, $135 = 0, $136 = 0, $144 = 0, $149 = 0, $150 = 0, $152 = 0, $155 = 0, $157 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $195 = 0, $201 = 0, $203 = 0, $204 = 0, $206 = 0, $208 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $223 = 0, $224 = 0, $239 = 0, $25 = 0, $250 = 0, $260 = 0, $262 = 0, $271 = 0, $272 = 0, $279 = 0, $281 = 0, $284 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $3 = 0, $37 = 0, $39 = 0, $4 = 0, $46 = 0, $5 = 0, $51 = 0, $6 = 0, $65 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $90 = 0, $91 = 0, $93 = 0, $99 = 0, $c$0 = 0, $c$1 = 0, $c$124 = 0, $c$2$be = 0, $c$2$be$lcssa = 0, $c$2$lcssa = 0, $c$3$be = 0, $c$3$lcssa = 0, $c$371 = 0, $c$4$be = 0, $c$4$be$lcssa = 0, $c$4$lcssa = 0, $c$5$be = 0, $c$6$be = 0, $c$6$be$lcssa = 0, $c$6$lcssa = 0, $c$7$be = 0, $c$753 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $neg$1 = 0, $x$082 = 0, $x$146 = 0, $x$266 = 0, label = 0; - L1 : do if ($base >>> 0 > 36) { - $5 = ___errno_location() | 0; - HEAP32[$5 >> 2] = 22; - $286 = 0; - $287 = 0; +function __ZN6vision25DoGScaleInvariantDetector6detectEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $0 = 0, $14 = 0, $15 = 0, $19 = 0, $20 = 0, $9 = 0, $_ScopedTimer = 0, $_ScopedTimer1 = 0, $_ScopedTimer2 = 0, $_ScopedTimer3 = 0, $_ScopedTimer4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 176 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 160 | 0; + $_ScopedTimer = sp + 128 | 0; + $_ScopedTimer1 = sp + 96 | 0; + $_ScopedTimer2 = sp + 64 | 0; + $_ScopedTimer3 = sp + 32 | 0; + $_ScopedTimer4 = sp; + if ((HEAP32[$pyramid + 16 >> 2] | 0) > 0) { + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer, 22448); + $20 = $this + 32 | 0; + __ZN6vision10DoGPyramid7computeEPKNS_25GaussianScaleSpacePyramidE($20, $pyramid); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer1, 22460); + __ZN6vision25DoGScaleInvariantDetector15extractFeaturesEPKNS_25GaussianScaleSpacePyramidEPKNS_10DoGPyramidE($this, $pyramid, $20); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer1); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer2, 22480); + __ZN6vision25DoGScaleInvariantDetector21findSubpixelLocationsEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer2); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer3, 22489); + __ZN6vision25DoGScaleInvariantDetector13pruneFeaturesEv($this); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer3); + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer4, 22503); + __ZN6vision25DoGScaleInvariantDetector23findFeatureOrientationsEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer4); + STACKTOP = sp; + return; } else { - $3 = $f + 4 | 0; - $4 = $f + 100 | 0; + $9 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21662) | 0, 21425) | 0, 34302) | 0, 147) | 0, 34309) | 0, 21711) | 0; + $14 = __ZNKSt3__18ios_base6getlocEv($9 + (HEAP32[(HEAP32[$9 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $14; + $15 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$15 >> 2] | 0) + 28 >> 2] & 63]($15, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($9, $19) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($9) | 0; + _abort(); + } +} + +function __ZN6vision10DoGPyramid5allocEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $0 = 0, $11 = 0, $16 = 0, $17 = 0, $21 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $28 = 0, $29 = 0, $31 = 0, $32 = 0, $35 = 0, $36 = 0, $40 = 0, $41 = 0, $42 = 0, $45 = 0, $46 = 0, $i$02 = 0, $j$01 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ((HEAP32[$pyramid + 8 >> 2] | 0) == (HEAP32[$pyramid + 4 >> 2] | 0)) { + $11 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 21382) | 0, 21425) | 0, 34302) | 0, 53) | 0, 34309) | 0, 21554) | 0; + $16 = __ZNKSt3__18ios_base6getlocEv($11 + (HEAP32[(HEAP32[$11 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $16; + $17 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $21 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$17 >> 2] | 0) + 28 >> 2] & 63]($17, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($11, $21) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($11) | 0; + _abort(); + } + $22 = __ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, 0, 0) | 0; + $23 = HEAP32[$22 >> 2] | 0; + $25 = (__ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, 0, 0) | 0) + 4 | 0; + $26 = HEAP32[$25 >> 2] | 0; + $28 = (__ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, 0, 0) | 0) + 8 | 0; + $29 = HEAP32[$28 >> 2] | 0; + $31 = HEAP32[$pyramid + 16 >> 2] | 0; + $32 = $this + 12 | 0; + HEAP32[$32 >> 2] = $31; + $35 = (HEAP32[$pyramid + 20 >> 2] | 0) + -1 | 0; + $36 = $this + 16 | 0; + HEAP32[$36 >> 2] = $35; + __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE6resizeEj($this, Math_imul($31, $35) | 0); + if (HEAP32[$32 >> 2] | 0) { + $i$02 = 0; do { - $6 = HEAP32[$3 >> 2] | 0; - if ($6 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $6 + 1; - $13 = HEAPU8[$6 >> 0] | 0; - } else $13 = ___shgetc($f) | 0; - } while ((_isspace($13) | 0) != 0); - $$lcssa135 = $13; - L11 : do switch ($$lcssa135 | 0) { - case 43: - case 45: - { - $17 = (($$lcssa135 | 0) == 45) << 31 >> 31; - $18 = HEAP32[$3 >> 2] | 0; - if ($18 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $18 + 1; - $c$0 = HEAPU8[$18 >> 0] | 0; - $neg$0 = $17; - break L11; - } else { - $c$0 = ___shgetc($f) | 0; - $neg$0 = $17; - break L11; - } - break; + $40 = $26 >>> $i$02; + $41 = $29 >>> $i$02; + $42 = HEAP32[$36 >> 2] | 0; + if ($42) { + $45 = $42; + $j$01 = 0; + do { + $46 = (Math_imul($45, $i$02) | 0) + $j$01 | 0; + __ZN6vision5Image5allocENS_9ImageTypeEjjij((HEAP32[$this >> 2] | 0) + ($46 << 5) | 0, $23, $40, $41, -1, 1); + $j$01 = $j$01 + 1 | 0; + $45 = HEAP32[$36 >> 2] | 0; + } while ($j$01 >>> 0 < $45 >>> 0); } - default: - { - $c$0 = $$lcssa135; - $neg$0 = 0; + $i$02 = $i$02 + 1 | 0; + } while ($i$02 >>> 0 < (HEAP32[$32 >> 2] | 0) >>> 0); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__19__num_getIwE17__stage2_int_loopEwiPcRS2_RjwRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_Pw($__ct, $__base, $__a, $__a_end, $__dc, $__thousands_sep, $__grouping, $__g, $__g_end, $__atoms) { + $__ct = $__ct | 0; + $__base = $__base | 0; + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__dc = $__dc | 0; + $__thousands_sep = $__thousands_sep | 0; + $__grouping = $__grouping | 0; + $__g = $__g | 0; + $__g_end = $__g_end | 0; + $__atoms = $__atoms | 0; + var $$0 = 0, $$0$i2 = 0, $$0$lcssa$i = 0, $0 = 0, $1 = 0, $10 = 0, $20 = 0, $25 = 0, $27 = 0, $34 = 0, $35 = 0, $4 = 0, $47 = 0, $50 = 0, label = 0; + $0 = HEAP32[$__a_end >> 2] | 0; + $1 = ($0 | 0) == ($__a | 0); + do if ($1) { + $4 = (HEAP32[$__atoms + 96 >> 2] | 0) == ($__ct | 0); + if (!$4) if ((HEAP32[$__atoms + 100 >> 2] | 0) != ($__ct | 0)) { + label = 5; + break; + } + HEAP32[$__a_end >> 2] = $__a + 1; + HEAP8[$__a >> 0] = $4 ? 43 : 45; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + } else label = 5; while (0); + L6 : do if ((label | 0) == 5) { + $10 = HEAP8[$__grouping >> 0] | 0; + if (($__ct | 0) == ($__thousands_sep | 0) ? ((($10 & 1) == 0 ? ($10 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) != 0 : 0) { + $20 = HEAP32[$__g_end >> 2] | 0; + if (($20 - $__g | 0) >= 160) { + $$0 = 0; + break; } - } while (0); - $25 = ($base | 0) == 0; - do if (($base & -17 | 0) == 0 & ($c$0 | 0) == 48) { - $29 = HEAP32[$3 >> 2] | 0; - if ($29 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $29 + 1; - $37 = HEAPU8[$29 >> 0] | 0; - } else $37 = ___shgetc($f) | 0; - if (($37 | 32 | 0) != 120) if ($25) { - $$123 = 8; - $c$124 = $37; - label = 46; + $25 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $20 + 4; + HEAP32[$20 >> 2] = $25; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + break; + } + $27 = $__atoms + 104 | 0; + $$0$i2 = $__atoms; + while (1) { + if ((HEAP32[$$0$i2 >> 2] | 0) == ($__ct | 0)) { + $$0$lcssa$i = $$0$i2; break; - } else { - $$1 = $base; - $c$1 = $37; - label = 32; + } + $$0$i2 = $$0$i2 + 4 | 0; + if (($$0$i2 | 0) == ($27 | 0)) { + $$0$lcssa$i = $27; break; } - $39 = HEAP32[$3 >> 2] | 0; - if ($39 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $39 + 1; - $46 = HEAPU8[$39 >> 0] | 0; - } else $46 = ___shgetc($f) | 0; - if ((HEAPU8[16493 + ($46 + 1) >> 0] | 0) > 15) { - $51 = (HEAP32[$4 >> 2] | 0) == 0; - if (!$51) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; - if (!$pok) { - ___shlim($f, 0); - $286 = 0; - $287 = 0; - break L1; + } + $34 = $$0$lcssa$i - $__atoms | 0; + $35 = $34 >> 2; + if (($34 | 0) > 92) $$0 = -1; else { + switch ($__base | 0) { + case 10: + case 8: + { + if (($35 | 0) >= ($__base | 0)) { + $$0 = -1; + break L6; + } + break; } - if ($51) { - $286 = 0; - $287 = 0; - break L1; + case 16: + { + if (($34 | 0) >= 88) { + if ($1) { + $$0 = -1; + break L6; + } + if (($0 - $__a | 0) >= 3) { + $$0 = -1; + break L6; + } + if ((HEAP8[$0 + -1 >> 0] | 0) != 48) { + $$0 = -1; + break L6; + } + HEAP32[$__dc >> 2] = 0; + $47 = HEAP8[55292 + $35 >> 0] | 0; + HEAP32[$__a_end >> 2] = $0 + 1; + HEAP8[$0 >> 0] = $47; + $$0 = 0; + break L6; + } + break; } - HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; - $286 = 0; - $287 = 0; - break L1; - } else { - $$123 = 16; - $c$124 = $46; - label = 46; + default: + {} } - } else { - $$base21 = $25 ? 10 : $base; - if ((HEAPU8[16493 + ($c$0 + 1) >> 0] | 0) >>> 0 < $$base21 >>> 0) { - $$1 = $$base21; - $c$1 = $c$0; - label = 32; - } else { - if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; - ___shlim($f, 0); - $65 = ___errno_location() | 0; - HEAP32[$65 >> 2] = 22; - $286 = 0; - $287 = 0; - break L1; + $50 = HEAP8[55292 + $35 >> 0] | 0; + HEAP32[$__a_end >> 2] = $0 + 1; + HEAP8[$0 >> 0] = $50; + HEAP32[$__dc >> 2] = (HEAP32[$__dc >> 2] | 0) + 1; + $$0 = 0; + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__19__num_getIcE17__stage2_int_loopEciPcRS2_RjcRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjRSD_S2_($__ct, $__base, $__a, $__a_end, $__dc, $__thousands_sep, $__grouping, $__g, $__g_end, $__atoms) { + $__ct = $__ct | 0; + $__base = $__base | 0; + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__dc = $__dc | 0; + $__thousands_sep = $__thousands_sep | 0; + $__grouping = $__grouping | 0; + $__g = $__g | 0; + $__g_end = $__g_end | 0; + $__atoms = $__atoms | 0; + var $$0 = 0, $$0$i2 = 0, $$0$lcssa$i = 0, $0 = 0, $1 = 0, $10 = 0, $20 = 0, $25 = 0, $27 = 0, $34 = 0, $4 = 0, $46 = 0, $49 = 0, label = 0; + $0 = HEAP32[$__a_end >> 2] | 0; + $1 = ($0 | 0) == ($__a | 0); + do if ($1) { + $4 = (HEAP8[$__atoms + 24 >> 0] | 0) == $__ct << 24 >> 24; + if (!$4) if ((HEAP8[$__atoms + 25 >> 0] | 0) != $__ct << 24 >> 24) { + label = 5; + break; + } + HEAP32[$__a_end >> 2] = $__a + 1; + HEAP8[$__a >> 0] = $4 ? 43 : 45; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + } else label = 5; while (0); + L6 : do if ((label | 0) == 5) { + $10 = HEAP8[$__grouping >> 0] | 0; + if ($__ct << 24 >> 24 == $__thousands_sep << 24 >> 24 ? ((($10 & 1) == 0 ? ($10 & 255) >>> 1 : HEAP32[$__grouping + 4 >> 2] | 0) | 0) != 0 : 0) { + $20 = HEAP32[$__g_end >> 2] | 0; + if (($20 - $__g | 0) >= 160) { + $$0 = 0; + break; } - } while (0); - if ((label | 0) == 32) if (($$1 | 0) == 10) { - $67 = $c$1 + -48 | 0; - if ($67 >>> 0 < 10) { - $71 = $67; - $x$082 = 0; - while (1) { - $70 = ($x$082 * 10 | 0) + $71 | 0; - $72 = HEAP32[$3 >> 2] | 0; - if ($72 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $72 + 1; - $c$2$be = HEAPU8[$72 >> 0] | 0; - } else $c$2$be = ___shgetc($f) | 0; - $71 = $c$2$be + -48 | 0; - if (!($71 >>> 0 < 10 & $70 >>> 0 < 429496729)) { - $$lcssa134 = $70; - $c$2$be$lcssa = $c$2$be; - break; - } else $x$082 = $70; - } - $288 = $$lcssa134; - $289 = 0; - $c$2$lcssa = $c$2$be$lcssa; - } else { - $288 = 0; - $289 = 0; - $c$2$lcssa = $c$1; + $25 = HEAP32[$__dc >> 2] | 0; + HEAP32[$__g_end >> 2] = $20 + 4; + HEAP32[$20 >> 2] = $25; + HEAP32[$__dc >> 2] = 0; + $$0 = 0; + break; + } + $27 = $__atoms + 26 | 0; + $$0$i2 = $__atoms; + while (1) { + if ((HEAP8[$$0$i2 >> 0] | 0) == $__ct << 24 >> 24) { + $$0$lcssa$i = $$0$i2; + break; } - $83 = $c$2$lcssa + -48 | 0; - if ($83 >>> 0 < 10) { - $85 = $288; - $86 = $289; - $90 = $83; - $c$371 = $c$2$lcssa; - while (1) { - $87 = ___muldi3($85 | 0, $86 | 0, 10, 0) | 0; - $88 = tempRet0; - $91 = (($90 | 0) < 0) << 31 >> 31; - $93 = ~$91; - if ($88 >>> 0 > $93 >>> 0 | ($88 | 0) == ($93 | 0) & $87 >>> 0 > ~$90 >>> 0) { - $$lcssa = $90; - $290 = $85; - $291 = $86; - $c$3$lcssa = $c$371; - break; - } - $99 = _i64Add($87 | 0, $88 | 0, $90 | 0, $91 | 0) | 0; - $100 = tempRet0; - $101 = HEAP32[$3 >> 2] | 0; - if ($101 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $101 + 1; - $c$3$be = HEAPU8[$101 >> 0] | 0; - } else $c$3$be = ___shgetc($f) | 0; - $108 = $c$3$be + -48 | 0; - if ($108 >>> 0 < 10 & ($100 >>> 0 < 429496729 | ($100 | 0) == 429496729 & $99 >>> 0 < 2576980378)) { - $85 = $99; - $86 = $100; - $90 = $108; - $c$371 = $c$3$be; - } else { - $$lcssa = $108; - $290 = $99; - $291 = $100; - $c$3$lcssa = $c$3$be; - break; - } - } - if ($$lcssa >>> 0 > 9) { - $260 = $291; - $262 = $290; - $neg$1 = $neg$0; - } else { - $$122 = 10; - $292 = $290; - $293 = $291; - $c$8 = $c$3$lcssa; - label = 72; - } - } else { - $260 = $289; - $262 = $288; - $neg$1 = $neg$0; + $$0$i2 = $$0$i2 + 1 | 0; + if (($$0$i2 | 0) == ($27 | 0)) { + $$0$lcssa$i = $27; + break; } - } else { - $$123 = $$1; - $c$124 = $c$1; - label = 46; } - L63 : do if ((label | 0) == 46) { - if (!($$123 + -1 & $$123)) { - $128 = HEAP8[16750 + (($$123 * 23 | 0) >>> 5 & 7) >> 0] | 0; - $130 = HEAP8[16493 + ($c$124 + 1) >> 0] | 0; - $131 = $130 & 255; - if ($131 >>> 0 < $$123 >>> 0) { - $135 = $131; - $x$146 = 0; - while (1) { - $134 = $135 | $x$146 << $128; - $136 = HEAP32[$3 >> 2] | 0; - if ($136 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $136 + 1; - $c$4$be = HEAPU8[$136 >> 0] | 0; - } else $c$4$be = ___shgetc($f) | 0; - $144 = HEAP8[16493 + ($c$4$be + 1) >> 0] | 0; - $135 = $144 & 255; - if (!($134 >>> 0 < 134217728 & $135 >>> 0 < $$123 >>> 0)) { - $$lcssa130 = $134; - $$lcssa131 = $144; - $c$4$be$lcssa = $c$4$be; - break; - } else $x$146 = $134; + $34 = $$0$lcssa$i - $__atoms | 0; + if (($34 | 0) > 23) $$0 = -1; else { + switch ($__base | 0) { + case 10: + case 8: + { + if (($34 | 0) >= ($__base | 0)) { + $$0 = -1; + break L6; } - $152 = $$lcssa131; - $155 = 0; - $157 = $$lcssa130; - $c$4$lcssa = $c$4$be$lcssa; - } else { - $152 = $130; - $155 = 0; - $157 = 0; - $c$4$lcssa = $c$124; - } - $149 = _bitshift64Lshr(-1, -1, $128 | 0) | 0; - $150 = tempRet0; - if (($152 & 255) >>> 0 >= $$123 >>> 0 | ($155 >>> 0 > $150 >>> 0 | ($155 | 0) == ($150 | 0) & $157 >>> 0 > $149 >>> 0)) { - $$122 = $$123; - $292 = $157; - $293 = $155; - $c$8 = $c$4$lcssa; - label = 72; break; - } else { - $161 = $157; - $162 = $155; - $166 = $152; } - while (1) { - $163 = _bitshift64Shl($161 | 0, $162 | 0, $128 | 0) | 0; - $164 = tempRet0; - $167 = $166 & 255 | $163; - $168 = HEAP32[$3 >> 2] | 0; - if ($168 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $168 + 1; - $c$5$be = HEAPU8[$168 >> 0] | 0; - } else $c$5$be = ___shgetc($f) | 0; - $166 = HEAP8[16493 + ($c$5$be + 1) >> 0] | 0; - if (($166 & 255) >>> 0 >= $$123 >>> 0 | ($164 >>> 0 > $150 >>> 0 | ($164 | 0) == ($150 | 0) & $167 >>> 0 > $149 >>> 0)) { - $$122 = $$123; - $292 = $167; - $293 = $164; - $c$8 = $c$5$be; - label = 72; - break L63; - } else { - $161 = $167; - $162 = $164; + case 16: + { + if (($34 | 0) >= 22) { + if ($1) { + $$0 = -1; + break L6; + } + if (($0 - $__a | 0) >= 3) { + $$0 = -1; + break L6; + } + if ((HEAP8[$0 + -1 >> 0] | 0) != 48) { + $$0 = -1; + break L6; + } + HEAP32[$__dc >> 2] = 0; + $46 = HEAP8[55292 + $34 >> 0] | 0; + HEAP32[$__a_end >> 2] = $0 + 1; + HEAP8[$0 >> 0] = $46; + $$0 = 0; + break L6; } + break; } + default: + {} } - $120 = HEAP8[16493 + ($c$124 + 1) >> 0] | 0; - $121 = $120 & 255; - if ($121 >>> 0 < $$123 >>> 0) { - $186 = $121; - $x$266 = 0; - while (1) { - $185 = $186 + (Math_imul($x$266, $$123) | 0) | 0; - $187 = HEAP32[$3 >> 2] | 0; - if ($187 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $187 + 1; - $c$6$be = HEAPU8[$187 >> 0] | 0; - } else $c$6$be = ___shgetc($f) | 0; - $195 = HEAP8[16493 + ($c$6$be + 1) >> 0] | 0; - $186 = $195 & 255; - if (!($185 >>> 0 < 119304647 & $186 >>> 0 < $$123 >>> 0)) { - $$lcssa132 = $185; - $$lcssa133 = $195; - $c$6$be$lcssa = $c$6$be; - break; - } else $x$266 = $185; + $49 = HEAP8[55292 + $34 >> 0] | 0; + HEAP32[$__a_end >> 2] = $0 + 1; + HEAP8[$0 >> 0] = $49; + HEAP32[$__dc >> 2] = (HEAP32[$__dc >> 2] | 0) + 1; + $$0 = 0; + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE6assignIPS3_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS3_NS_15iterator_traitsISA_E9referenceEEE5valueEvE4typeESA_SA_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$0$i1 = 0, $$0$i11 = 0, $$0$i212 = 0, $$__last = 0, $$lcssa = 0, $$pre$i$i = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $20 = 0, $22 = 0, $24 = 0, $3 = 0, $30 = 0, $31 = 0, $39 = 0, $4 = 0, $41 = 0, $44 = 0, $46 = 0, $6 = 0, $8 = 0; + $1 = $__first; + $3 = ($__last - $1 | 0) / 12 | 0; + $4 = $this + 8 | 0; + $6 = HEAP32[$this >> 2] | 0; + $8 = $6; + L1 : do if ($3 >>> 0 > (((HEAP32[$4 >> 2] | 0) - $8 | 0) / 12 | 0) >>> 0) { + __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE10deallocateEv($this); + if ($3 >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $39 = ((HEAP32[$4 >> 2] | 0) - (HEAP32[$this >> 2] | 0) | 0) / 12 | 0; + if ($39 >>> 0 < 178956970) { + $41 = $39 << 1; + $$0$i1 = $41 >>> 0 < $3 >>> 0 ? $3 : $41; + } else $$0$i1 = 357913941; + __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE8allocateEj($this, $$0$i1); + $44 = $this + 4 | 0; + if (($__first | 0) != ($__last | 0)) { + $$0$i11 = $__first; + do { + $46 = HEAP32[$44 >> 2] | 0; + HEAP32[$46 >> 2] = HEAP32[$$0$i11 >> 2]; + HEAP32[$46 + 4 >> 2] = HEAP32[$$0$i11 + 4 >> 2]; + HEAP32[$46 + 8 >> 2] = HEAP32[$$0$i11 + 8 >> 2]; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 12; + $$0$i11 = $$0$i11 + 12 | 0; + } while (($$0$i11 | 0) != ($__last | 0)); + } + } else { + $12 = $this + 4 | 0; + $16 = ((HEAP32[$12 >> 2] | 0) - $8 | 0) / 12 | 0; + $17 = $3 >>> 0 > $16 >>> 0; + $$__last = $17 ? $__first + ($16 * 12 | 0) | 0 : $__last; + $20 = $$__last - $1 | 0; + _memmove($6 | 0, $__first | 0, $20 | 0) | 0; + $22 = $6 + ((($20 | 0) / 12 | 0) * 12 | 0) | 0; + if ($17) { + if (($$__last | 0) == ($__last | 0)) break; else $$0$i212 = $$__last; + while (1) { + $24 = HEAP32[$12 >> 2] | 0; + HEAP32[$24 >> 2] = HEAP32[$$0$i212 >> 2]; + HEAP32[$24 + 4 >> 2] = HEAP32[$$0$i212 + 4 >> 2]; + HEAP32[$24 + 8 >> 2] = HEAP32[$$0$i212 + 8 >> 2]; + HEAP32[$12 >> 2] = (HEAP32[$12 >> 2] | 0) + 12; + $$0$i212 = $$0$i212 + 12 | 0; + if (($$0$i212 | 0) == ($__last | 0)) break L1; + } + } + $$pre$i$i = HEAP32[$12 >> 2] | 0; + if (($$pre$i$i | 0) != ($22 | 0)) { + $31 = $$pre$i$i; + while (1) { + $30 = $31 + -12 | 0; + if (($30 | 0) == ($22 | 0)) { + $$lcssa = $30; + break; + } else $31 = $30; + } + HEAP32[$12 >> 2] = $$lcssa; + } + } while (0); + return; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwb($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$0$i$i = 0, $$byval_copy = 0, $$ph = 0, $$pre = 0, $$pre$phi3Z2D = 0, $$pre1 = 0, $$sroa$0$0 = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $14 = 0, $19 = 0, $21 = 0, $24 = 0, $26 = 0, $34 = 0, $35 = 0, $36 = 0, $38 = 0, $39 = 0, $51 = 0, $59 = 0, $8 = 0, $__nm = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 20 | 0; + $0 = sp + 16 | 0; + $1 = sp + 12 | 0; + $__nm = sp; + if (!(HEAP32[$__iob + 4 >> 2] & 1)) { + $8 = HEAP32[(HEAP32[$this >> 2] | 0) + 24 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $$sroa$0$0 = FUNCTION_TABLE_iiiiii[$8 & 31]($this, $$byval_copy, $__iob, $__fl, $__v & 1) | 0; + } else { + $12 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$1 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13828) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($12) | 0; + $14 = HEAP32[$13 >> 2] | 0; + if ($__v) FUNCTION_TABLE_vii[HEAP32[$14 + 24 >> 2] & 63]($__nm, $13); else FUNCTION_TABLE_vii[HEAP32[$14 + 28 >> 2] & 63]($__nm, $13); + $19 = HEAP8[$__nm >> 0] | 0; + $21 = ($19 & 1) == 0; + $24 = $__nm + 4 | 0; + $$pre1 = $__nm + 8 | 0; + $$pre$phi3Z2D = $21 ? $24 : $__nm + 4 | 0; + $$ph = $21 ? $24 : HEAP32[$__nm + 8 >> 2] | 0; + $26 = ($19 & 1) == 0; + if (($$ph | 0) != (($26 ? $$pre$phi3Z2D : HEAP32[$$pre1 >> 2] | 0) + (($26 ? ($19 & 255) >>> 1 : HEAP32[$$pre$phi3Z2D >> 2] | 0) << 2) | 0)) { + $35 = $$ph; + do { + $34 = HEAP32[$35 >> 2] | 0; + $36 = HEAP32[$__s >> 2] | 0; + if ($36) { + $38 = $36 + 24 | 0; + $39 = HEAP32[$38 >> 2] | 0; + if (($39 | 0) == (HEAP32[$36 + 28 >> 2] | 0)) $$0$i$i = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$36 >> 2] | 0) + 52 >> 2] & 63]($36, $34) | 0; else { + HEAP32[$38 >> 2] = $39 + 4; + HEAP32[$39 >> 2] = $34; + $$0$i$i = $34; + } + if (($$0$i$i | 0) == -1) HEAP32[$__s >> 2] = 0; } - $201 = $$lcssa133; - $294 = $$lcssa132; - $295 = 0; - $c$6$lcssa = $c$6$be$lcssa; + $35 = $35 + 4 | 0; + $$pre = HEAP8[$__nm >> 0] | 0; + $51 = ($$pre & 1) == 0; + } while (($35 | 0) != (($51 ? $$pre$phi3Z2D : HEAP32[$$pre1 >> 2] | 0) + (($51 ? ($$pre & 255) >>> 1 : HEAP32[$$pre$phi3Z2D >> 2] | 0) << 2) | 0)); + } + $59 = HEAP32[$__s >> 2] | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__nm); + $$sroa$0$0 = $59; + } + STACKTOP = sp; + return $$sroa$0$0 | 0; +} + +function _loadNFTMarker($arc, $surfaceSetCount, $datasetPathname) { + $arc = $arc | 0; + $surfaceSetCount = $surfaceSetCount | 0; + $datasetPathname = $datasetPathname | 0; + var $$0 = 0, $0 = 0, $10 = 0, $13 = 0, $2 = 0, $refDataSet = 0, $refDataSet2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer16 = 0, $vararg_buffer19 = 0, $vararg_buffer21 = 0, $vararg_buffer23 = 0, $vararg_buffer4 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer23 = sp + 80 | 0; + $vararg_buffer21 = sp + 72 | 0; + $vararg_buffer19 = sp + 64 | 0; + $vararg_buffer16 = sp + 56 | 0; + $vararg_buffer13 = sp + 48 | 0; + $vararg_buffer11 = sp + 40 | 0; + $vararg_buffer9 = sp + 32 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer4 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = sp + 92 | 0; + $refDataSet = sp + 88 | 0; + $refDataSet2 = sp + 84 | 0; + HEAP32[$0 >> 2] = $surfaceSetCount; + $2 = HEAP32[$arc + 228 >> 2] | 0; + HEAP32[$refDataSet >> 2] = 0; + HEAP32[$vararg_buffer >> 2] = $datasetPathname; + _arLog(1, 40632, $vararg_buffer); + do if ((_kpmLoadRefDataSet($datasetPathname, 40650, $refDataSet2) | 0) < 0) { + HEAP32[$vararg_buffer1 >> 2] = $datasetPathname; + _arLog(3, 40656, $vararg_buffer1); + $$0 = 0; + } else { + HEAP32[$vararg_buffer4 >> 2] = $surfaceSetCount; + _arLog(1, 40694, $vararg_buffer4); + if ((_kpmChangePageNoOfRefDataSet(HEAP32[$refDataSet2 >> 2] | 0, -1, $surfaceSetCount) | 0) < 0) { + _arLog(3, 40719, $vararg_buffer7); + $$0 = 0; + break; + } + if ((_kpmMergeRefDataSet($refDataSet, $refDataSet2) | 0) < 0) { + _arLog(3, 40755, $vararg_buffer9); + $$0 = 0; + break; + } + _arLog(1, 40782, $vararg_buffer11); + HEAP32[$vararg_buffer13 >> 2] = $datasetPathname; + _arLog(1, 40791, $vararg_buffer13); + $10 = _ar2ReadSurfaceSet($datasetPathname, 40808, 0) | 0; + if (!$10) { + HEAP32[$vararg_buffer16 >> 2] = $datasetPathname; + _arLog(3, 40813, $vararg_buffer16); + } + _arLog(1, 40782, $vararg_buffer19); + $13 = __ZNSt3__113unordered_mapIiP14AR2SurfaceSetTNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS2_EEEEEixERS9_($arc + 240 | 0, $0) | 0; + HEAP32[$13 >> 2] = $10; + if ((_kpmSetRefDataSet($2, HEAP32[$refDataSet >> 2] | 0) | 0) < 0) { + _arLog(3, 40846, $vararg_buffer21); + $$0 = 0; + break; + } else { + _kpmDeleteRefDataSet($refDataSet) | 0; + _arLog(1, 40871, $vararg_buffer23); + $$0 = 1; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _memchr($src, $c, $n) { + $src = $src | 0; + $c = $c | 0; + $n = $n | 0; + var $$0$lcssa = 0, $$0$lcssa44 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $17 = 0, $20 = 0, $26 = 0, $27 = 0, $32 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 0, $s$0$lcssa = 0, $s$0$lcssa43 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0; + $0 = $c & 255; + $4 = ($n | 0) != 0; + L1 : do if ($4 & ($src & 3 | 0) != 0) { + $5 = $c & 255; + $$019 = $n; + $s$020 = $src; + while (1) { + if ((HEAP8[$s$020 >> 0] | 0) == $5 << 24 >> 24) { + $$0$lcssa44 = $$019; + $s$0$lcssa43 = $s$020; + label = 6; + break L1; + } + $8 = $s$020 + 1 | 0; + $9 = $$019 + -1 | 0; + $13 = ($9 | 0) != 0; + if ($13 & ($8 & 3 | 0) != 0) { + $$019 = $9; + $s$020 = $8; } else { - $201 = $120; - $294 = 0; - $295 = 0; - $c$6$lcssa = $c$124; + $$0$lcssa = $9; + $$lcssa = $13; + $s$0$lcssa = $8; + label = 5; + break; } - if (($201 & 255) >>> 0 < $$123 >>> 0) { - $203 = ___udivdi3(-1, -1, $$123 | 0, 0) | 0; - $204 = tempRet0; - $206 = $295; - $208 = $294; - $215 = $201; - $c$753 = $c$6$lcssa; + } + } else { + $$0$lcssa = $n; + $$lcssa = $4; + $s$0$lcssa = $src; + label = 5; + } while (0); + if ((label | 0) == 5) if ($$lcssa) { + $$0$lcssa44 = $$0$lcssa; + $s$0$lcssa43 = $s$0$lcssa; + label = 6; + } else { + $$3 = 0; + $s$2 = $s$0$lcssa; + } + L8 : do if ((label | 0) == 6) { + $15 = $c & 255; + if ((HEAP8[$s$0$lcssa43 >> 0] | 0) == $15 << 24 >> 24) { + $$3 = $$0$lcssa44; + $s$2 = $s$0$lcssa43; + } else { + $17 = Math_imul($0, 16843009) | 0; + L11 : do if ($$0$lcssa44 >>> 0 > 3) { + $$110 = $$0$lcssa44; + $w$011 = $s$0$lcssa43; while (1) { - if ($206 >>> 0 > $204 >>> 0 | ($206 | 0) == ($204 | 0) & $208 >>> 0 > $203 >>> 0) { - $$122 = $$123; - $292 = $208; - $293 = $206; - $c$8 = $c$753; - label = 72; - break L63; - } - $212 = ___muldi3($208 | 0, $206 | 0, $$123 | 0, 0) | 0; - $213 = tempRet0; - $214 = $215 & 255; - if ($213 >>> 0 > 4294967295 | ($213 | 0) == -1 & $212 >>> 0 > ~$214 >>> 0) { - $$122 = $$123; - $292 = $208; - $293 = $206; - $c$8 = $c$753; - label = 72; - break L63; - } - $222 = _i64Add($214 | 0, 0, $212 | 0, $213 | 0) | 0; - $223 = tempRet0; - $224 = HEAP32[$3 >> 2] | 0; - if ($224 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $224 + 1; - $c$7$be = HEAPU8[$224 >> 0] | 0; - } else $c$7$be = ___shgetc($f) | 0; - $215 = HEAP8[16493 + ($c$7$be + 1) >> 0] | 0; - if (($215 & 255) >>> 0 >= $$123 >>> 0) { - $$122 = $$123; - $292 = $222; - $293 = $223; - $c$8 = $c$7$be; - label = 72; + $20 = HEAP32[$w$011 >> 2] ^ $17; + if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) { + $$110$lcssa = $$110; + $w$011$lcssa = $w$011; break; + } + $26 = $w$011 + 4 | 0; + $27 = $$110 + -4 | 0; + if ($27 >>> 0 > 3) { + $$110 = $27; + $w$011 = $26; } else { - $206 = $223; - $208 = $222; - $c$753 = $c$7$be; + $$1$lcssa = $27; + $w$0$lcssa = $26; + label = 11; + break L11; } } + $$24 = $$110$lcssa; + $s$15 = $w$011$lcssa; } else { - $$122 = $$123; - $292 = $294; - $293 = $295; - $c$8 = $c$6$lcssa; - label = 72; - } - } while (0); - if ((label | 0) == 72) if ((HEAPU8[16493 + ($c$8 + 1) >> 0] | 0) >>> 0 < $$122 >>> 0) { - do { - $239 = HEAP32[$3 >> 2] | 0; - if ($239 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) { - HEAP32[$3 >> 2] = $239 + 1; - $c$9$be = HEAPU8[$239 >> 0] | 0; - } else $c$9$be = ___shgetc($f) | 0; - } while ((HEAPU8[16493 + ($c$9$be + 1) >> 0] | 0) >>> 0 < $$122 >>> 0); - $250 = ___errno_location() | 0; - HEAP32[$250 >> 2] = 34; - $260 = $1; - $262 = $0; - $neg$1 = ($0 & 1 | 0) == 0 & 0 == 0 ? $neg$0 : 0; - } else { - $260 = $293; - $262 = $292; - $neg$1 = $neg$0; - } - if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1; - if (!($260 >>> 0 < $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 < $0 >>> 0)) { - if (!(($0 & 1 | 0) != 0 | 0 != 0 | ($neg$1 | 0) != 0)) { - $271 = ___errno_location() | 0; - HEAP32[$271 >> 2] = 34; - $272 = _i64Add($0 | 0, $1 | 0, -1, -1) | 0; - $286 = tempRet0; - $287 = $272; + $$1$lcssa = $$0$lcssa44; + $w$0$lcssa = $s$0$lcssa43; + label = 11; + } while (0); + if ((label | 0) == 11) if (!$$1$lcssa) { + $$3 = 0; + $s$2 = $w$0$lcssa; break; + } else { + $$24 = $$1$lcssa; + $s$15 = $w$0$lcssa; } - if ($260 >>> 0 > $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 > $0 >>> 0) { - $279 = ___errno_location() | 0; - HEAP32[$279 >> 2] = 34; - $286 = $1; - $287 = $0; - break; + while (1) { + if ((HEAP8[$s$15 >> 0] | 0) == $15 << 24 >> 24) { + $$3 = $$24; + $s$2 = $s$15; + break L8; + } + $32 = $s$15 + 1 | 0; + $$24 = $$24 + -1 | 0; + if (!$$24) { + $$3 = 0; + $s$2 = $32; + break; + } else $s$15 = $32; } } - $281 = (($neg$1 | 0) < 0) << 31 >> 31; - $284 = _i64Subtract($262 ^ $neg$1 | 0, $260 ^ $281 | 0, $neg$1 | 0, $281 | 0) | 0; - $286 = tempRet0; - $287 = $284; } while (0); - tempRet0 = $286; - return $287 | 0; + return (($$3 | 0) != 0 ? $s$2 : 0) | 0; } -function _dispose_chunk($p, $psize) { - $p = $p | 0; - $psize = $psize | 0; - var $$0 = 0, $$02 = 0, $$1 = 0, $$lcssa = 0, $$pre$phi50Z2D = 0, $$pre$phi52Z2D = 0, $$pre$phiZ2D = 0, $$sum18 = 0, $$sum21 = 0, $0 = 0, $10 = 0, $100 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $115 = 0, $123 = 0, $128 = 0, $129 = 0, $132 = 0, $134 = 0, $136 = 0, $149 = 0, $15 = 0, $154 = 0, $156 = 0, $159 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $2 = 0, $20 = 0, $201 = 0, $207 = 0, $22 = 0, $222 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $231 = 0, $232 = 0, $238 = 0, $243 = 0, $244 = 0, $247 = 0, $249 = 0, $252 = 0, $257 = 0, $263 = 0, $267 = 0, $268 = 0, $275 = 0, $287 = 0, $292 = 0, $299 = 0, $300 = 0, $301 = 0, $35 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $62 = 0, $63 = 0, $68 = 0, $69 = 0, $78 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $99 = 0, $F16$0 = 0, $I19$0 = 0, $K20$043 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$042 = 0, $T$042$lcssa = 0; - $0 = $p + $psize | 0; - $2 = HEAP32[$p + 4 >> 2] | 0; - do if (!($2 & 1)) { - $5 = HEAP32[$p >> 2] | 0; - if (!($2 & 3)) return; - $9 = $p + (0 - $5) | 0; - $10 = $5 + $psize | 0; - $11 = HEAP32[760] | 0; - if ($9 >>> 0 < $11 >>> 0) _abort(); - if (($9 | 0) == (HEAP32[761] | 0)) { - $99 = $p + ($psize + 4) | 0; - $100 = HEAP32[$99 >> 2] | 0; - if (($100 & 3 | 0) != 3) { - $$0 = $9; - $$02 = $10; - break; +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcb($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$ph = 0, $$pre = 0, $$pre$phi5Z2D = 0, $$pre1 = 0, $$sroa$0$0 = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $14 = 0, $19 = 0, $21 = 0, $24 = 0, $25 = 0, $27 = 0, $35 = 0, $36 = 0, $37 = 0, $39 = 0, $40 = 0, $53 = 0, $61 = 0, $8 = 0, $__nm = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 20 | 0; + $0 = sp + 16 | 0; + $1 = sp + 12 | 0; + $__nm = sp; + if (!(HEAP32[$__iob + 4 >> 2] & 1)) { + $8 = HEAP32[(HEAP32[$this >> 2] | 0) + 24 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$__s >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $$sroa$0$0 = FUNCTION_TABLE_iiiiii[$8 & 31]($this, $$byval_copy, $__iob, $__fl, $__v & 1) | 0; + } else { + $12 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$1 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13820) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($12) | 0; + $14 = HEAP32[$13 >> 2] | 0; + if ($__v) FUNCTION_TABLE_vii[HEAP32[$14 + 24 >> 2] & 63]($__nm, $13); else FUNCTION_TABLE_vii[HEAP32[$14 + 28 >> 2] & 63]($__nm, $13); + $19 = HEAP8[$__nm >> 0] | 0; + $21 = ($19 & 1) == 0; + $24 = $__nm + 1 | 0; + $$pre1 = $__nm + 8 | 0; + $$pre$phi5Z2D = $21 ? $24 : $__nm + 1 | 0; + $$ph = $21 ? $24 : HEAP32[$__nm + 8 >> 2] | 0; + $25 = $__nm + 4 | 0; + $27 = ($19 & 1) == 0; + if (($$ph | 0) != (($27 ? $$pre$phi5Z2D : HEAP32[$$pre1 >> 2] | 0) + ($27 ? ($19 & 255) >>> 1 : HEAP32[$25 >> 2] | 0) | 0)) { + $36 = $$ph; + do { + $35 = HEAP8[$36 >> 0] | 0; + $37 = HEAP32[$__s >> 2] | 0; + do if ($37) { + $39 = $37 + 24 | 0; + $40 = HEAP32[$39 >> 2] | 0; + if (($40 | 0) != (HEAP32[$37 + 28 >> 2] | 0)) { + HEAP32[$39 >> 2] = $40 + 1; + HEAP8[$40 >> 0] = $35; + break; + } + if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$37 >> 2] | 0) + 52 >> 2] & 63]($37, $35 & 255) | 0) == -1) HEAP32[$__s >> 2] = 0; + } while (0); + $36 = $36 + 1 | 0; + $$pre = HEAP8[$__nm >> 0] | 0; + $53 = ($$pre & 1) == 0; + } while (($36 | 0) != (($53 ? $$pre$phi5Z2D : HEAP32[$$pre1 >> 2] | 0) + ($53 ? ($$pre & 255) >>> 1 : HEAP32[$25 >> 2] | 0) | 0)); + } + $61 = HEAP32[$__s >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__nm); + $$sroa$0$0 = $61; + } + STACKTOP = sp; + return $$sroa$0$0 | 0; +} + +function __ZN6vision18EstimateHomographyEPfRKNSt3__16vectorINS_12FeaturePointENS1_9allocatorIS3_EEEES8_RKNS2_INS_7match_tENS4_IS9_EEEERNS_16RobustHomographyIfEEii($H, $p1, $p2, $matches, $estimator, $refWidth, $refHeight) { + $H = $H | 0; + $p1 = $p1 | 0; + $p2 = $p2 | 0; + $matches = $matches | 0; + $estimator = $estimator | 0; + $refWidth = $refWidth | 0; + $refHeight = $refHeight | 0; + var $$02 = 0, $0 = 0, $14 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $24 = 0, $32 = 0, $41 = 0.0, $45 = 0.0, $dstPoints = 0, $i$04 = 0, $srcPoints = 0, $test_points = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $srcPoints = sp + 44 | 0; + $dstPoints = sp + 32 | 0; + $test_points = sp; + $0 = $matches + 4 | 0; + __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEEC2Ej($srcPoints, (HEAP32[$0 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 3); + __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEEC2Ej($dstPoints, (HEAP32[$0 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 3); + $14 = HEAP32[$matches >> 2] | 0; + $18 = (HEAP32[$0 >> 2] | 0) - $14 >> 3; + $19 = HEAP32[$p1 >> 2] | 0; + $20 = HEAP32[$dstPoints >> 2] | 0; + $21 = HEAP32[$p2 >> 2] | 0; + $22 = HEAP32[$srcPoints >> 2] | 0; + if ($18) { + $i$04 = 0; + do { + $24 = HEAP32[$14 + ($i$04 << 3) >> 2] | 0; + HEAP32[$20 + ($i$04 << 3) >> 2] = HEAP32[$19 + ($24 * 20 | 0) >> 2]; + HEAP32[$20 + ($i$04 << 3) + 4 >> 2] = HEAP32[$19 + ($24 * 20 | 0) + 4 >> 2]; + $32 = HEAP32[$14 + ($i$04 << 3) + 4 >> 2] | 0; + HEAP32[$22 + ($i$04 << 3) >> 2] = HEAP32[$21 + ($32 * 20 | 0) >> 2]; + HEAP32[$22 + ($i$04 << 3) + 4 >> 2] = HEAP32[$21 + ($32 * 20 | 0) + 4 >> 2]; + $i$04 = $i$04 + 1 | 0; + } while (($i$04 | 0) != ($18 | 0)); + } + HEAPF32[$test_points >> 2] = 0.0; + HEAPF32[$test_points + 4 >> 2] = 0.0; + $41 = +($refWidth | 0); + HEAPF32[$test_points + 8 >> 2] = $41; + HEAPF32[$test_points + 12 >> 2] = 0.0; + HEAPF32[$test_points + 16 >> 2] = $41; + $45 = +($refHeight | 0); + HEAPF32[$test_points + 20 >> 2] = $45; + HEAPF32[$test_points + 24 >> 2] = 0.0; + HEAPF32[$test_points + 28 >> 2] = $45; + if (__ZN6vision16RobustHomographyIfE4findEPfPKfS4_iS4_i($estimator, $H, $22, $20, $18, $test_points, 4) | 0) $$02 = __ZN6vision25CheckHomographyHeuristicsEPfii($H, $refWidth, $refHeight) | 0; else $$02 = 0; + __ZNSt3__113__vector_baseIN6vision7Point2dIfEENS_9allocatorIS3_EEED2Ev($dstPoints); + __ZNSt3__113__vector_baseIN6vision7Point2dIfEENS_9allocatorIS3_EEED2Ev($srcPoints); + STACKTOP = sp; + return $$02 | 0; +} + +function __ZNK6vision25GaussianScaleSpacePyramid3getEjj($this, $octave, $scale) { + $this = $this | 0; + $octave = $octave | 0; + $scale = $scale | 0; + var $0 = 0, $14 = 0, $15 = 0, $19 = 0, $21 = 0, $28 = 0, $33 = 0, $34 = 0, $38 = 0, $40 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ((HEAP32[$this + 16 >> 2] | 0) >>> 0 <= $octave >>> 0) { + $9 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33251) | 0, 33100) | 0, 34302) | 0, 218) | 0, 34309) | 0, 25770) | 0; + $14 = __ZNKSt3__18ios_base6getlocEv($9 + (HEAP32[(HEAP32[$9 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $14; + $15 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$15 >> 2] | 0) + 28 >> 2] & 63]($15, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($9, $19) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($9) | 0; + _abort(); + } + $21 = HEAP32[$this + 20 >> 2] | 0; + if ($21 >>> 0 > $scale >>> 0) { + $40 = (Math_imul($21, $octave) | 0) + $scale | 0; + STACKTOP = sp; + return (HEAP32[$this + 4 >> 2] | 0) + ($40 << 5) | 0; + } else { + $28 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33395) | 0, 33100) | 0, 34302) | 0, 219) | 0, 34309) | 0, 25790) | 0; + $33 = __ZNKSt3__18ios_base6getlocEv($28 + (HEAP32[(HEAP32[$28 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $33; + $34 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $38 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$34 >> 2] | 0) + 28 >> 2] & 63]($34, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($28, $38) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($28) | 0; + _abort(); + } + return 0; +} + +function _decode_mcu_DC_refine($cinfo, $MCU_data) { + $cinfo = $cinfo | 0; + $MCU_data = $MCU_data | 0; + var $$0 = 0, $1 = 0, $14 = 0, $15 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $30 = 0, $36 = 0, $4 = 0, $48 = 0, $51 = 0, $bits_left$0$lcssa = 0, $bits_left$011 = 0, $bits_left$1 = 0, $blkn$09 = 0, $br_state = 0, $get_buffer$0$lcssa = 0, $get_buffer$010 = 0, $get_buffer$1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $br_state = sp; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $4 = 1 << HEAP32[$cinfo + 412 >> 2]; + if (!(HEAP32[$cinfo + 276 >> 2] | 0)) label = 4; else if (!(HEAP32[$1 + 40 >> 2] | 0)) if (!(_process_restart($cinfo) | 0)) $$0 = 0; else label = 4; else label = 4; + L4 : do if ((label | 0) == 4) { + HEAP32[$br_state + 16 >> 2] = $cinfo; + $14 = $cinfo + 24 | 0; + $15 = HEAP32[$14 >> 2] | 0; + HEAP32[$br_state >> 2] = HEAP32[$15 >> 2]; + $19 = $br_state + 4 | 0; + HEAP32[$19 >> 2] = HEAP32[$15 + 4 >> 2]; + $20 = $1 + 12 | 0; + $21 = HEAP32[$20 >> 2] | 0; + $22 = $1 + 16 | 0; + $23 = HEAP32[$22 >> 2] | 0; + $24 = $cinfo + 356 | 0; + $25 = $br_state + 8 | 0; + $26 = $br_state + 12 | 0; + if ((HEAP32[$24 >> 2] | 0) > 0) { + $bits_left$011 = $23; + $blkn$09 = 0; + $get_buffer$010 = $21; + while (1) { + $30 = HEAP32[$MCU_data + ($blkn$09 << 2) >> 2] | 0; + if (($bits_left$011 | 0) < 1) { + if (!(_jpeg_fill_bit_buffer($br_state, $get_buffer$010, $bits_left$011, 1) | 0)) { + $$0 = 0; + break L4; + } + $bits_left$1 = HEAP32[$26 >> 2] | 0; + $get_buffer$1 = HEAP32[$25 >> 2] | 0; + } else { + $bits_left$1 = $bits_left$011; + $get_buffer$1 = $get_buffer$010; + } + $36 = $bits_left$1 + -1 | 0; + if (1 << $36 & $get_buffer$1) HEAP16[$30 >> 1] = HEAPU16[$30 >> 1] | 0 | $4; + $blkn$09 = $blkn$09 + 1 | 0; + if (($blkn$09 | 0) >= (HEAP32[$24 >> 2] | 0)) { + $bits_left$0$lcssa = $36; + $get_buffer$0$lcssa = $get_buffer$1; + break; + } else { + $bits_left$011 = $36; + $get_buffer$010 = $get_buffer$1; + } } - HEAP32[758] = $10; - HEAP32[$99 >> 2] = $100 & -2; - HEAP32[$p + (4 - $5) >> 2] = $10 | 1; - HEAP32[$0 >> 2] = $10; - return; + } else { + $bits_left$0$lcssa = $23; + $get_buffer$0$lcssa = $21; + } + $48 = HEAP32[$14 >> 2] | 0; + HEAP32[$48 >> 2] = HEAP32[$br_state >> 2]; + HEAP32[$48 + 4 >> 2] = HEAP32[$19 >> 2]; + HEAP32[$20 >> 2] = $get_buffer$0$lcssa; + HEAP32[$22 >> 2] = $bits_left$0$lcssa; + $51 = $1 + 40 | 0; + HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + -1; + $$0 = 1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _getMarkerInfo($id, $markerIndex) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { + $_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 168 : $6 + 48 + ($markerIndex << 8) | 0; + _emscripten_asm_const_33(3, HEAP32[$_ZL11gMarkerInfo$ >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 4 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 8 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 12 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 16 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 20 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 24 >> 2] | 0, +(+HEAPF64[$_ZL11gMarkerInfo$ + 32 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 40 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 48 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 72 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 80 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 88 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 96 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 104 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 112 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 120 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 128 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 136 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 144 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 152 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 160 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3]), HEAP32[$_ZL11gMarkerInfo$ + 240 >> 2] | 0) | 0; + $$0 = 0; + break; + } else { + $$0 = HEAP32[1466] | 0; + break; } - $15 = $5 >>> 3; - if ($5 >>> 0 < 256) { - $18 = HEAP32[$p + (8 - $5) >> 2] | 0; - $20 = HEAP32[$p + (12 - $5) >> 2] | 0; - $22 = 3064 + ($15 << 1 << 2) | 0; - if (($18 | 0) != ($22 | 0)) { - if ($18 >>> 0 < $11 >>> 0) _abort(); - if ((HEAP32[$18 + 12 >> 2] | 0) != ($9 | 0)) _abort(); + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$03 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $27 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 40 | 0; + $1 = sp + 24 | 0; + $2 = sp + 12 | 0; + $3 = sp; + L1 : do if (($last - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 68) { + switch (HEAP8[$first + 1 >> 0] | 0) { + case 84: + case 116: + break; + default: + { + $$03 = $first; + break L1; } - if (($20 | 0) == ($18 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $15); - $$0 = $9; - $$02 = $10; - break; + } + $13 = $first + 2 | 0; + $14 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($13, $last, $db) | 0; + if (($14 | 0) == ($13 | 0) | ($14 | 0) == ($last | 0)) $$03 = $first; else if ((HEAP8[$14 >> 0] | 0) == 69) { + $21 = HEAP32[$db + 4 >> 2] | 0; + if ((HEAP32[$db >> 2] | 0) == ($21 | 0)) $$03 = $first; else { + $23 = $21 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $23); + $24 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 47972) | 0; + HEAP32[$2 >> 2] = HEAP32[$24 >> 2]; + HEAP32[$2 + 4 >> 2] = HEAP32[$24 + 4 >> 2]; + HEAP32[$2 + 8 >> 2] = HEAP32[$24 + 8 >> 2]; + HEAP32[$24 >> 2] = 0; + HEAP32[$24 + 4 >> 2] = 0; + HEAP32[$24 + 8 >> 2] = 0; + $27 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 47788) | 0; + HEAP32[$1 >> 2] = HEAP32[$27 >> 2]; + HEAP32[$1 + 4 >> 2] = HEAP32[$27 + 4 >> 2]; + HEAP32[$1 + 8 >> 2] = HEAP32[$27 + 8 >> 2]; + HEAP32[$27 >> 2] = 0; + HEAP32[$27 + 4 >> 2] = 0; + HEAP32[$27 + 8 >> 2] = 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($23, $0); + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); + $$03 = $14 + 1 | 0; } - if (($20 | 0) == ($22 | 0)) $$pre$phi52Z2D = $20 + 8 | 0; else { - if ($20 >>> 0 < $11 >>> 0) _abort(); - $35 = $20 + 8 | 0; - if ((HEAP32[$35 >> 2] | 0) == ($9 | 0)) $$pre$phi52Z2D = $35; else _abort(); + } else $$03 = $first; + } else $$03 = $first; else $$03 = $first; while (0); + STACKTOP = sp; + return $$03 | 0; +} + +function ___fdopen($fd, $mode) { + $fd = $fd | 0; + $mode = $mode | 0; + var $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $19 = 0, $24 = 0, $26 = 0, $3 = 0, $37 = 0, $4 = 0, $tio = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer12 = sp + 40 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer = sp; + $tio = sp + 52 | 0; + $0 = HEAP8[$mode >> 0] | 0; + if (!(_memchr(52062, $0 << 24 >> 24, 4) | 0)) { + $3 = ___errno_location() | 0; + HEAP32[$3 >> 2] = 22; + $$0 = 0; + } else { + $4 = _malloc(1144) | 0; + if (!$4) $$0 = 0; else { + dest = $4; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + if (!(_strchr($mode, 43) | 0)) HEAP32[$4 >> 2] = $0 << 24 >> 24 == 114 ? 8 : 4; + if (!(_strchr($mode, 101) | 0)) $13 = $0; else { + HEAP32[$vararg_buffer >> 2] = $fd; + HEAP32[$vararg_buffer + 4 >> 2] = 2; + HEAP32[$vararg_buffer + 8 >> 2] = 1; + ___syscall221(221, $vararg_buffer | 0) | 0; + $13 = HEAP8[$mode >> 0] | 0; } - HEAP32[$18 + 12 >> 2] = $20; - HEAP32[$$pre$phi52Z2D >> 2] = $18; - $$0 = $9; - $$02 = $10; - break; - } - $40 = HEAP32[$p + (24 - $5) >> 2] | 0; - $42 = HEAP32[$p + (12 - $5) >> 2] | 0; - do if (($42 | 0) == ($9 | 0)) { - $$sum18 = 16 - $5 | 0; - $53 = $p + ($$sum18 + 4) | 0; - $54 = HEAP32[$53 >> 2] | 0; - if (!$54) { - $56 = $p + $$sum18 | 0; - $57 = HEAP32[$56 >> 2] | 0; - if (!$57) { - $R$1 = 0; - break; - } else { - $R$0 = $57; - $RP$0 = $56; + if ($13 << 24 >> 24 == 97) { + HEAP32[$vararg_buffer3 >> 2] = $fd; + HEAP32[$vararg_buffer3 + 4 >> 2] = 3; + $14 = ___syscall221(221, $vararg_buffer3 | 0) | 0; + if (!($14 & 1024)) { + HEAP32[$vararg_buffer7 >> 2] = $fd; + HEAP32[$vararg_buffer7 + 4 >> 2] = 4; + HEAP32[$vararg_buffer7 + 8 >> 2] = $14 | 1024; + ___syscall221(221, $vararg_buffer7 | 0) | 0; } - } else { - $R$0 = $54; - $RP$0 = $53; + $19 = HEAP32[$4 >> 2] | 128; + HEAP32[$4 >> 2] = $19; + $26 = $19; + } else $26 = HEAP32[$4 >> 2] | 0; + HEAP32[$4 + 60 >> 2] = $fd; + HEAP32[$4 + 44 >> 2] = $4 + 120; + HEAP32[$4 + 48 >> 2] = 1024; + $24 = $4 + 75 | 0; + HEAP8[$24 >> 0] = -1; + if (!($26 & 8)) { + HEAP32[$vararg_buffer12 >> 2] = $fd; + HEAP32[$vararg_buffer12 + 4 >> 2] = 21505; + HEAP32[$vararg_buffer12 + 8 >> 2] = $tio; + if (!(___syscall54(54, $vararg_buffer12 | 0) | 0)) HEAP8[$24 >> 0] = 10; } + HEAP32[$4 + 32 >> 2] = 6; + HEAP32[$4 + 36 >> 2] = 4; + HEAP32[$4 + 40 >> 2] = 5; + HEAP32[$4 + 12 >> 2] = 3; + if (!(HEAP32[1546] | 0)) HEAP32[$4 + 76 >> 2] = -1; + ___lock(6208); + $37 = HEAP32[1551] | 0; + HEAP32[$4 + 56 >> 2] = $37; + if ($37) HEAP32[$37 + 52 >> 2] = $4; + HEAP32[1551] = $4; + ___unlock(6208); + $$0 = $4; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function _jpeg_huff_decode($state, $get_buffer, $bits_left, $htbl, $min_bits) { + $state = $state | 0; + $get_buffer = $get_buffer | 0; + $bits_left = $bits_left | 0; + $htbl = $htbl | 0; + $min_bits = $min_bits | 0; + var $$0 = 0, $$01 = 0, $$02 = 0, $$1$lcssa = 0, $$124 = 0, $$13$lcssa = 0, $$1323 = 0, $$2 = 0, $$24 = 0, $$pre$phi14Z2D = 0, $$pre$phiZ2D = 0, $11 = 0, $15 = 0, $21 = 0, $24 = 0, $25 = 0, $3 = 0, $31 = 0, $32 = 0, $5 = 0, $7 = 0, $code$0$lcssa = 0, $code$026 = 0, $l$0$lcssa = 0, $l$025 = 0, label = 0; + if (($bits_left | 0) < ($min_bits | 0)) if (!(_jpeg_fill_bit_buffer($state, $get_buffer, $bits_left, $min_bits) | 0)) $$0 = -1; else { + $3 = $state + 8 | 0; + $5 = $state + 12 | 0; + $$01 = HEAP32[$3 >> 2] | 0; + $$02 = HEAP32[$5 >> 2] | 0; + $$pre$phi14Z2D = $5; + $$pre$phiZ2D = $3; + label = 5; + } else { + $$01 = $get_buffer; + $$02 = $bits_left; + $$pre$phi14Z2D = $state + 12 | 0; + $$pre$phiZ2D = $state + 8 | 0; + label = 5; + } + L5 : do if ((label | 0) == 5) { + $7 = $$02 - $min_bits | 0; + $11 = $$01 >> $7 & (1 << $min_bits) + -1; + if (($11 | 0) > (HEAP32[$htbl + ($min_bits << 2) >> 2] | 0)) { + $$124 = $$01; + $$1323 = $7; + $code$026 = $11; + $l$025 = $min_bits; while (1) { - $59 = $R$0 + 20 | 0; - $60 = HEAP32[$59 >> 2] | 0; - if ($60) { - $R$0 = $60; - $RP$0 = $59; - continue; - } - $62 = $R$0 + 16 | 0; - $63 = HEAP32[$62 >> 2] | 0; - if (!$63) { - $R$0$lcssa = $R$0; - $RP$0$lcssa = $RP$0; - break; + $15 = $code$026 << 1; + if (($$1323 | 0) < 1) { + if (!(_jpeg_fill_bit_buffer($state, $$124, $$1323, 1) | 0)) { + $$0 = -1; + break L5; + } + $$2 = HEAP32[$$pre$phiZ2D >> 2] | 0; + $$24 = HEAP32[$$pre$phi14Z2D >> 2] | 0; } else { - $R$0 = $63; - $RP$0 = $62; + $$2 = $$124; + $$24 = $$1323; + } + $21 = $$24 + -1 | 0; + $24 = $$2 >>> $21 & 1 | $15; + $25 = $l$025 + 1 | 0; + if (($24 | 0) > (HEAP32[$htbl + ($25 << 2) >> 2] | 0)) { + $$124 = $$2; + $$1323 = $21; + $code$026 = $24; + $l$025 = $25; + } else { + $$1$lcssa = $$2; + $$13$lcssa = $21; + $code$0$lcssa = $24; + $l$0$lcssa = $25; + break; } } - if ($RP$0$lcssa >>> 0 < $11 >>> 0) _abort(); else { - HEAP32[$RP$0$lcssa >> 2] = 0; - $R$1 = $R$0$lcssa; - break; - } } else { - $45 = HEAP32[$p + (8 - $5) >> 2] | 0; - if ($45 >>> 0 < $11 >>> 0) _abort(); - $47 = $45 + 12 | 0; - if ((HEAP32[$47 >> 2] | 0) != ($9 | 0)) _abort(); - $50 = $42 + 8 | 0; - if ((HEAP32[$50 >> 2] | 0) == ($9 | 0)) { - HEAP32[$47 >> 2] = $42; - HEAP32[$50 >> 2] = $45; - $R$1 = $42; - break; - } else _abort(); - } while (0); - if (!$40) { - $$0 = $9; - $$02 = $10; + $$1$lcssa = $$01; + $$13$lcssa = $7; + $code$0$lcssa = $11; + $l$0$lcssa = $min_bits; + } + HEAP32[$$pre$phiZ2D >> 2] = $$1$lcssa; + HEAP32[$$pre$phi14Z2D >> 2] = $$13$lcssa; + if (($l$0$lcssa | 0) > 16) { + $31 = HEAP32[$state + 16 >> 2] | 0; + $32 = HEAP32[$31 >> 2] | 0; + HEAP32[$32 + 20 >> 2] = 118; + FUNCTION_TABLE_vii[HEAP32[$32 + 4 >> 2] & 63]($31, -1); + $$0 = 0; + break; } else { - $68 = HEAP32[$p + (28 - $5) >> 2] | 0; - $69 = 3328 + ($68 << 2) | 0; - if (($9 | 0) == (HEAP32[$69 >> 2] | 0)) { - HEAP32[$69 >> 2] = $R$1; - if (!$R$1) { - HEAP32[757] = HEAP32[757] & ~(1 << $68); - $$0 = $9; - $$02 = $10; - break; - } - } else { - if ($40 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $78 = $40 + 16 | 0; - if ((HEAP32[$78 >> 2] | 0) == ($9 | 0)) HEAP32[$78 >> 2] = $R$1; else HEAP32[$40 + 20 >> 2] = $R$1; - if (!$R$1) { - $$0 = $9; - $$02 = $10; - break; - } + $$0 = HEAPU8[(HEAP32[$htbl + 72 + ($l$0$lcssa << 2) >> 2] | 0) + $code$0$lcssa + ((HEAP32[$htbl + 140 >> 2] | 0) + 17) >> 0] | 0; + break; + } + } while (0); + return $$0 | 0; +} + +function _format_message($cinfo, $buffer) { + $cinfo = $cinfo | 0; + $buffer = $buffer | 0; + var $$lcssa7 = 0, $0 = 0, $11 = 0, $14 = 0, $2 = 0, $26 = 0, $34 = 0, $36 = 0, $38 = 0, $40 = 0, $42 = 0, $44 = 0, $46 = 0, $msgptr$0 = 0, $msgtext$0 = 0, $msgtext$0$in = 0, $msgtext$1 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = HEAP32[$cinfo >> 2] | 0; + $2 = HEAP32[$0 + 20 >> 2] | 0; + if (($2 | 0) > 0) if (($2 | 0) > (HEAP32[$0 + 116 >> 2] | 0)) label = 4; else { + $msgtext$0$in = (HEAP32[$0 + 112 >> 2] | 0) + ($2 << 2) | 0; + label = 8; + } else label = 4; + if ((label | 0) == 4) { + $11 = HEAP32[$0 + 120 >> 2] | 0; + if (!$11) label = 9; else { + $14 = HEAP32[$0 + 124 >> 2] | 0; + if (($2 | 0) < ($14 | 0)) label = 9; else if (($2 | 0) > (HEAP32[$0 + 128 >> 2] | 0)) label = 9; else { + $msgtext$0$in = $11 + ($2 - $14 << 2) | 0; + label = 8; } - $83 = HEAP32[760] | 0; - if ($R$1 >>> 0 < $83 >>> 0) _abort(); - HEAP32[$R$1 + 24 >> 2] = $40; - $$sum21 = 16 - $5 | 0; - $87 = HEAP32[$p + $$sum21 >> 2] | 0; - do if ($87) if ($87 >>> 0 < $83 >>> 0) _abort(); else { - HEAP32[$R$1 + 16 >> 2] = $87; - HEAP32[$87 + 24 >> 2] = $R$1; + } + } + if ((label | 0) == 8) { + $msgtext$0 = HEAP32[$msgtext$0$in >> 2] | 0; + if (!$msgtext$0) label = 9; else $msgtext$1 = $msgtext$0; + } + if ((label | 0) == 9) { + HEAP32[$0 + 24 >> 2] = $2; + $msgtext$1 = HEAP32[HEAP32[$0 + 112 >> 2] >> 2] | 0; + } + $msgptr$0 = $msgtext$1; + L14 : while (1) { + $26 = $msgptr$0 + 1 | 0; + switch (HEAP8[$msgptr$0 >> 0] | 0) { + case 0: + { + label = 14; + break L14; break; - } while (0); - $93 = HEAP32[$p + ($$sum21 + 4) >> 2] | 0; - if (!$93) { - $$0 = $9; - $$02 = $10; - } else if ($93 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1 + 20 >> 2] = $93; - HEAP32[$93 + 24 >> 2] = $R$1; - $$0 = $9; - $$02 = $10; + } + case 37: + { + $$lcssa7 = $26; + label = 12; + break L14; break; } + default: + $msgptr$0 = $26; + } + } + if ((label | 0) == 12) if ((HEAP8[$$lcssa7 >> 0] | 0) == 115) { + HEAP32[$vararg_buffer >> 2] = $0 + 24; + _sprintf($buffer, $msgtext$1, $vararg_buffer) | 0; + } else label = 14; + if ((label | 0) == 14) { + $34 = HEAP32[$0 + 28 >> 2] | 0; + $36 = HEAP32[$0 + 32 >> 2] | 0; + $38 = HEAP32[$0 + 36 >> 2] | 0; + $40 = HEAP32[$0 + 40 >> 2] | 0; + $42 = HEAP32[$0 + 44 >> 2] | 0; + $44 = HEAP32[$0 + 48 >> 2] | 0; + $46 = HEAP32[$0 + 52 >> 2] | 0; + HEAP32[$vararg_buffer1 >> 2] = HEAP32[$0 + 24 >> 2]; + HEAP32[$vararg_buffer1 + 4 >> 2] = $34; + HEAP32[$vararg_buffer1 + 8 >> 2] = $36; + HEAP32[$vararg_buffer1 + 12 >> 2] = $38; + HEAP32[$vararg_buffer1 + 16 >> 2] = $40; + HEAP32[$vararg_buffer1 + 20 >> 2] = $42; + HEAP32[$vararg_buffer1 + 24 >> 2] = $44; + HEAP32[$vararg_buffer1 + 28 >> 2] = $46; + _sprintf($buffer, $msgtext$1, $vararg_buffer1) | 0; + } + STACKTOP = sp; + return; +} + +function __ZNK6vision25GaussianScaleSpacePyramid14effectiveSigmaEjf($this, $octave, $scale) { + $this = $this | 0; + $octave = $octave | 0; + $scale = +$scale; + var $0 = 0, $12 = 0, $13 = 0, $17 = 0, $27 = 0, $32 = 0, $33 = 0, $37 = 0, $43 = 0.0, $7 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if (!($scale >= 0.0)) { + $7 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33338) | 0, 33100) | 0, 34302) | 0, 232) | 0, 34309) | 0, 33372) | 0; + $12 = __ZNKSt3__18ios_base6getlocEv($7 + (HEAP32[(HEAP32[$7 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $12; + $13 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $17 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$13 >> 2] | 0) + 28 >> 2] & 63]($13, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($7, $17) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($7) | 0; + _abort(); + } + if (+(HEAP32[$this + 20 >> 2] | 0) > $scale) { + $43 = +(1 << $octave | 0) * +Math_pow(+(+HEAPF32[$this + 24 >> 2]), +$scale); + STACKTOP = sp; + return +$43; + } else { + $27 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 33395) | 0, 33100) | 0, 34302) | 0, 233) | 0, 34309) | 0, 33446) | 0; + $32 = __ZNKSt3__18ios_base6getlocEv($27 + (HEAP32[(HEAP32[$27 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $32; + $33 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $37 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$33 >> 2] | 0) + 28 >> 2] & 63]($33, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($27, $37) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($27) | 0; + _abort(); + } + return +(0.0); +} + +function __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $dst, $src) { + $this = $this | 0; + $dst = $dst | 0; + $src = $src | 0; + var $0 = 0, $1 = 0, $10 = 0, $15 = 0, $16 = 0, $2 = 0, $20 = 0, $42 = 0, $43 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 24 | 0; + $1 = sp + 12 | 0; + $2 = sp; + if ((HEAP32[$dst >> 2] | 0) != 2) { + $10 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26465) | 0, 25873) | 0, 34302) | 0, 357) | 0, 34309) | 0, 26512) | 0; + $15 = __ZNKSt3__18ios_base6getlocEv($10 + (HEAP32[(HEAP32[$10 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $15; + $16 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $20 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$16 >> 2] | 0) + 28 >> 2] & 63]($16, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($10, $20) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($10) | 0; + _abort(); + } + switch (HEAP32[$src >> 2] | 0) { + case 1: + { + __ZN6vision18binomial_4th_orderEPfPtPKhjj(HEAP32[$dst + 24 >> 2] | 0, HEAP32[$this + 32 >> 2] | 0, HEAP32[$src + 24 >> 2] | 0, HEAP32[$src + 4 >> 2] | 0, HEAP32[$src + 8 >> 2] | 0); + break; } - } else { - $$0 = $p; - $$02 = $psize; - } while (0); - $106 = HEAP32[760] | 0; - if ($0 >>> 0 < $106 >>> 0) _abort(); - $108 = $p + ($psize + 4) | 0; - $109 = HEAP32[$108 >> 2] | 0; - if (!($109 & 2)) { - if (($0 | 0) == (HEAP32[762] | 0)) { - $115 = (HEAP32[759] | 0) + $$02 | 0; - HEAP32[759] = $115; - HEAP32[762] = $$0; - HEAP32[$$0 + 4 >> 2] = $115 | 1; - if (($$0 | 0) != (HEAP32[761] | 0)) return; - HEAP32[761] = 0; - HEAP32[758] = 0; - return; + case 2: + { + __ZN6vision18binomial_4th_orderEPfS0_PKfjj(HEAP32[$dst + 24 >> 2] | 0, HEAP32[$this + 44 >> 2] | 0, HEAP32[$src + 24 >> 2] | 0, HEAP32[$src + 4 >> 2] | 0, HEAP32[$src + 8 >> 2] | 0); + break; } - if (($0 | 0) == (HEAP32[761] | 0)) { - $123 = (HEAP32[758] | 0) + $$02 | 0; - HEAP32[758] = $123; - HEAP32[761] = $$0; - HEAP32[$$0 + 4 >> 2] = $123 | 1; - HEAP32[$$0 + $123 >> 2] = $123; - return; + case 0: + { + $42 = ___cxa_allocate_exception(16) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($1, 26548, 18); + __ZN6vision9ExceptionC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE($42, $1); + ___cxa_throw($42 | 0, 32, 5); + break; } - $128 = ($109 & -8) + $$02 | 0; - $129 = $109 >>> 3; - do if ($109 >>> 0 < 256) { - $132 = HEAP32[$p + ($psize + 8) >> 2] | 0; - $134 = HEAP32[$p + ($psize + 12) >> 2] | 0; - $136 = 3064 + ($129 << 1 << 2) | 0; - if (($132 | 0) != ($136 | 0)) { - if ($132 >>> 0 < $106 >>> 0) _abort(); - if ((HEAP32[$132 + 12 >> 2] | 0) != ($0 | 0)) _abort(); - } - if (($134 | 0) == ($132 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $129); + default: + { + $43 = ___cxa_allocate_exception(16) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($2, 26567, 22); + __ZN6vision9ExceptionC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE($43, $2); + ___cxa_throw($43 | 0, 32, 5); + } + } + STACKTOP = sp; + return; +} + +function _free_pool($cinfo, $pool_id) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + var $1 = 0, $10 = 0, $18 = 0, $20 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $38 = 0, $42 = 0, $43 = 0, $51 = 0, $8 = 0, $bptr$07 = 0, $bptr$08 = 0, $lhdr_ptr$03 = 0, $shdr_ptr$02 = 0, $sptr$012 = 0, $sptr$013 = 0, $lhdr_ptr$03$looptemp = 0, $shdr_ptr$02$looptemp = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + if ($pool_id >>> 0 > 1) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 14; + HEAP32[$3 + 24 >> 2] = $pool_id; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } else if (($pool_id | 0) == 1) { + $8 = $1 + 68 | 0; + $sptr$012 = HEAP32[$8 >> 2] | 0; + if ($sptr$012) { + $sptr$013 = $sptr$012; + do { + $10 = $sptr$013 + 40 | 0; + if (HEAP32[$10 >> 2] | 0) { + HEAP32[$10 >> 2] = 0; + FUNCTION_TABLE_vii[HEAP32[$sptr$013 + 56 >> 2] & 63]($cinfo, $sptr$013 + 48 | 0); + } + $sptr$013 = HEAP32[$sptr$013 + 44 >> 2] | 0; + } while (($sptr$013 | 0) != 0); + } + HEAP32[$8 >> 2] = 0; + $18 = $1 + 72 | 0; + $bptr$07 = HEAP32[$18 >> 2] | 0; + if ($bptr$07) { + $bptr$08 = $bptr$07; + do { + $20 = $bptr$08 + 40 | 0; + if (HEAP32[$20 >> 2] | 0) { + HEAP32[$20 >> 2] = 0; + FUNCTION_TABLE_vii[HEAP32[$bptr$08 + 56 >> 2] & 63]($cinfo, $bptr$08 + 48 | 0); + } + $bptr$08 = HEAP32[$bptr$08 + 44 >> 2] | 0; + } while (($bptr$08 | 0) != 0); + } + HEAP32[$18 >> 2] = 0; + } + $28 = $1 + 60 + ($pool_id << 2) | 0; + $29 = HEAP32[$28 >> 2] | 0; + HEAP32[$28 >> 2] = 0; + $30 = $1 + 76 | 0; + if ($29) { + $lhdr_ptr$03 = $29; + do { + $lhdr_ptr$03$looptemp = $lhdr_ptr$03; + $lhdr_ptr$03 = HEAP32[$lhdr_ptr$03 >> 2] | 0; + $38 = (HEAP32[$lhdr_ptr$03$looptemp + 4 >> 2] | 0) + 16 + (HEAP32[$lhdr_ptr$03$looptemp + 8 >> 2] | 0) | 0; + _jpeg_free_large($cinfo, $lhdr_ptr$03$looptemp, $38); + HEAP32[$30 >> 2] = (HEAP32[$30 >> 2] | 0) - $38; + } while (($lhdr_ptr$03 | 0) != 0); + } + $42 = $1 + 52 + ($pool_id << 2) | 0; + $43 = HEAP32[$42 >> 2] | 0; + HEAP32[$42 >> 2] = 0; + if ($43) { + $shdr_ptr$02 = $43; + do { + $shdr_ptr$02$looptemp = $shdr_ptr$02; + $shdr_ptr$02 = HEAP32[$shdr_ptr$02 >> 2] | 0; + $51 = (HEAP32[$shdr_ptr$02$looptemp + 4 >> 2] | 0) + 16 + (HEAP32[$shdr_ptr$02$looptemp + 8 >> 2] | 0) | 0; + _jpeg_free_small($cinfo, $shdr_ptr$02$looptemp, $51); + HEAP32[$30 >> 2] = (HEAP32[$30 >> 2] | 0) - $51; + } while (($shdr_ptr$02 | 0) != 0); + } + return; +} + +function _addMultiMarker($id, $patt_name) { + $id = $id | 0; + $patt_name = $patt_name | 0; + var $$0 = 0, $0 = 0, $11 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $21 = 0, $22 = 0, $23 = 0, $28 = 0, $29 = 0, $3 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $marker = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 16 | 0; + $vararg_buffer = sp + 8 | 0; + $0 = sp + 20 | 0; + $marker = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if (!(HEAP8[$patt_name >> 0] & 1)) $15 = $patt_name + 1 | 0; else $15 = HEAP32[$patt_name + 8 >> 2] | 0; + $11 = HEAP32[$3 + 212 >> 2] | 0; + $12 = $3 + 216 | 0; + $13 = $3 + 220 | 0; + $16 = _arMultiReadConfigFile($15, HEAP32[$12 >> 2] | 0) | 0; + HEAP32[$13 >> 2] = $16; + if (!$16) { + _arLog(3, 41256, $vararg_buffer); + _arPattDeleteHandle(HEAP32[$12 >> 2] | 0) | 0; + _arLog(3, 41283, $vararg_buffer1); + $$0 = -1; + break; + } + switch (HEAP32[$16 + 108 >> 2] | 0) { + case 0: + { + _arSetPatternDetectionMode($11, 0) | 0; break; } - if (($134 | 0) == ($136 | 0)) $$pre$phi50Z2D = $134 + 8 | 0; else { - if ($134 >>> 0 < $106 >>> 0) _abort(); - $149 = $134 + 8 | 0; - if ((HEAP32[$149 >> 2] | 0) == ($0 | 0)) $$pre$phi50Z2D = $149; else _abort(); + case 1: + { + _arSetPatternDetectionMode($11, 2) | 0; + break; } - HEAP32[$132 + 12 >> 2] = $134; - HEAP32[$$pre$phi50Z2D >> 2] = $132; + default: + _arSetPatternDetectionMode($11, 3) | 0; + } + $21 = $3 + 280 | 0; + $22 = $3 + 284 | 0; + $23 = HEAP32[$22 >> 2] | 0; + $28 = $23 - (HEAP32[$21 >> 2] | 0) >> 3; + $29 = $marker; + HEAP32[$29 >> 2] = 0; + HEAP32[$29 + 4 >> 2] = 0; + HEAP32[$marker >> 2] = $28; + HEAP32[$marker + 4 >> 2] = HEAP32[$13 >> 2]; + if (($23 | 0) == (HEAP32[$3 + 288 >> 2] | 0)) { + __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($21, $marker); + $$0 = $28; + break; } else { - $154 = HEAP32[$p + ($psize + 24) >> 2] | 0; - $156 = HEAP32[$p + ($psize + 12) >> 2] | 0; - do if (($156 | 0) == ($0 | 0)) { - $167 = $p + ($psize + 20) | 0; - $168 = HEAP32[$167 >> 2] | 0; - if (!$168) { - $170 = $p + ($psize + 16) | 0; - $171 = HEAP32[$170 >> 2] | 0; - if (!$171) { - $R7$1 = 0; - break; - } else { - $R7$0 = $171; - $RP9$0 = $170; - } - } else { - $R7$0 = $168; - $RP9$0 = $167; - } + $38 = $marker; + $40 = HEAP32[$38 >> 2] | 0; + $43 = HEAP32[$38 + 4 >> 2] | 0; + $44 = $23; + HEAP32[$44 >> 2] = $40; + HEAP32[$44 + 4 >> 2] = $43; + HEAP32[$22 >> 2] = (HEAP32[$22 >> 2] | 0) + 8; + $$0 = $40; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__111__sift_downIRNS_4lessIN6vision17PriorityQueueItemILi96EEEEENS_11__wrap_iterIPS4_EEEEvT0_SA_T_NS_15iterator_traitsISA_E15difference_typeESA_($__first, $__last, $__comp, $__len, $__start) { + $__first = $__first | 0; + $__last = $__last | 0; + $__comp = $__comp | 0; + $__len = $__len | 0; + $__start = $__start | 0; + var $$lcssa = 0, $$lcssa9 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $21 = 0, $24 = 0, $30 = 0, $32 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $43 = 0, $44 = 0, $45 = 0, $51 = 0, $53 = 0, $54 = 0, $61 = 0, $64 = 0, $68 = 0, $8 = 0, $__child$0 = 0, $__child$1 = 0, $__child$2 = 0; + $0 = HEAP32[$__start >> 2] | 0; + $1 = HEAP32[$__first >> 2] | 0; + $4 = $0 - $1 | 0; + if (($__len | 0) >= 2) { + $8 = ($__len + -2 | 0) / 2 | 0; + if (($8 | 0) >= ($4 >> 3 | 0)) { + $11 = $4 >> 2 | 1; + $13 = $1 + ($11 << 3) | 0; + $14 = $11 + 1 | 0; + if (($14 | 0) < ($__len | 0)) { + $21 = (HEAP32[$1 + ($11 << 3) + 4 >> 2] | 0) >>> 0 > (HEAP32[$1 + ($14 << 3) + 4 >> 2] | 0) >>> 0; + $24 = $21 ? $1 + ($14 << 3) | 0 : $13; + $__child$0 = $21 ? $14 : $11; + } else { + $24 = $13; + $__child$0 = $11; + } + if ((HEAP32[$24 + 4 >> 2] | 0) >>> 0 <= (HEAP32[$0 + 4 >> 2] | 0) >>> 0) { + $30 = $0; + $32 = HEAP32[$30 >> 2] | 0; + $35 = HEAP32[$30 + 4 >> 2] | 0; + $37 = $24; + $45 = $0; + $__child$1 = $__child$0; while (1) { - $173 = $R7$0 + 20 | 0; - $174 = HEAP32[$173 >> 2] | 0; - if ($174) { - $R7$0 = $174; - $RP9$0 = $173; - continue; - } - $176 = $R7$0 + 16 | 0; - $177 = HEAP32[$176 >> 2] | 0; - if (!$177) { - $R7$0$lcssa = $R7$0; - $RP9$0$lcssa = $RP9$0; + $36 = $37; + $38 = $36; + $43 = HEAP32[$38 + 4 >> 2] | 0; + $44 = $45; + HEAP32[$44 >> 2] = HEAP32[$38 >> 2]; + HEAP32[$44 + 4 >> 2] = $43; + if (($8 | 0) < ($__child$1 | 0)) { + $$lcssa = $37; + $$lcssa9 = $36; break; + } + $51 = $__child$1 << 1 | 1; + $53 = $1 + ($51 << 3) | 0; + $54 = $51 + 1 | 0; + if (($54 | 0) < ($__len | 0)) { + $61 = (HEAP32[$1 + ($51 << 3) + 4 >> 2] | 0) >>> 0 > (HEAP32[$1 + ($54 << 3) + 4 >> 2] | 0) >>> 0; + $64 = $61 ? $1 + ($54 << 3) | 0 : $53; + $__child$2 = $61 ? $54 : $51; } else { - $R7$0 = $177; - $RP9$0 = $176; + $64 = $53; + $__child$2 = $51; } - } - if ($RP9$0$lcssa >>> 0 < $106 >>> 0) _abort(); else { - HEAP32[$RP9$0$lcssa >> 2] = 0; - $R7$1 = $R7$0$lcssa; - break; - } - } else { - $159 = HEAP32[$p + ($psize + 8) >> 2] | 0; - if ($159 >>> 0 < $106 >>> 0) _abort(); - $161 = $159 + 12 | 0; - if ((HEAP32[$161 >> 2] | 0) != ($0 | 0)) _abort(); - $164 = $156 + 8 | 0; - if ((HEAP32[$164 >> 2] | 0) == ($0 | 0)) { - HEAP32[$161 >> 2] = $156; - HEAP32[$164 >> 2] = $159; - $R7$1 = $156; - break; - } else _abort(); - } while (0); - if ($154) { - $182 = HEAP32[$p + ($psize + 28) >> 2] | 0; - $183 = 3328 + ($182 << 2) | 0; - if (($0 | 0) == (HEAP32[$183 >> 2] | 0)) { - HEAP32[$183 >> 2] = $R7$1; - if (!$R7$1) { - HEAP32[757] = HEAP32[757] & ~(1 << $182); + if ((HEAP32[$64 + 4 >> 2] | 0) >>> 0 > $35 >>> 0) { + $$lcssa = $37; + $$lcssa9 = $36; break; + } else { + $37 = $64; + $45 = $36; + $__child$1 = $__child$2; } - } else { - if ($154 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $192 = $154 + 16 | 0; - if ((HEAP32[$192 >> 2] | 0) == ($0 | 0)) HEAP32[$192 >> 2] = $R7$1; else HEAP32[$154 + 20 >> 2] = $R7$1; - if (!$R7$1) break; - } - $197 = HEAP32[760] | 0; - if ($R7$1 >>> 0 < $197 >>> 0) _abort(); - HEAP32[$R7$1 + 24 >> 2] = $154; - $201 = HEAP32[$p + ($psize + 16) >> 2] | 0; - do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else { - HEAP32[$R7$1 + 16 >> 2] = $201; - HEAP32[$201 + 24 >> 2] = $R7$1; - break; - } while (0); - $207 = HEAP32[$p + ($psize + 20) >> 2] | 0; - if ($207) if ($207 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R7$1 + 20 >> 2] = $207; - HEAP32[$207 + 24 >> 2] = $R7$1; - break; } + HEAP32[$__start >> 2] = $$lcssa; + $68 = $$lcssa9; + HEAP32[$68 >> 2] = $32; + HEAP32[$68 + 4 >> 2] = $35; } - } while (0); - HEAP32[$$0 + 4 >> 2] = $128 | 1; - HEAP32[$$0 + $128 >> 2] = $128; - if (($$0 | 0) == (HEAP32[761] | 0)) { - HEAP32[758] = $128; - return; - } else $$1 = $128; + } + } + return; +} + +function _get_cpara($world, $vertex, $para) { + $world = $world | 0; + $vertex = $vertex | 0; + $para = $para | 0; + var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $3 = 0, $4 = 0, $49 = 0, $5 = 0, $62 = 0, $68 = 0, $7 = 0, $76 = 0, $86 = 0, $9 = 0, $i$03 = 0; + $0 = _arMatrixAlloc(8, 8) | 0; + $1 = _arMatrixAlloc(8, 1) | 0; + $2 = _arMatrixAlloc(8, 1) | 0; + $3 = HEAP32[$0 >> 2] | 0; + $4 = HEAP32[$1 >> 2] | 0; + $i$03 = 0; + do { + $5 = $world + ($i$03 << 4) | 0; + $7 = $i$03 << 4; + HEAPF64[$3 + ($7 << 3) >> 3] = +HEAPF64[$5 >> 3]; + $9 = $world + ($i$03 << 4) + 8 | 0; + HEAPF64[$3 + (($7 | 1) << 3) >> 3] = +HEAPF64[$9 >> 3]; + HEAPF64[$3 + (($7 | 2) << 3) >> 3] = 1.0; + HEAPF64[$3 + (($7 | 3) << 3) >> 3] = 0.0; + HEAPF64[$3 + (($7 | 4) << 3) >> 3] = 0.0; + HEAPF64[$3 + (($7 | 5) << 3) >> 3] = 0.0; + $22 = $vertex + ($i$03 << 4) | 0; + HEAPF64[$3 + (($7 | 6) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$22 >> 3]); + HEAPF64[$3 + (($7 | 7) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$22 >> 3]); + HEAPF64[$3 + (($7 | 8) << 3) >> 3] = 0.0; + HEAPF64[$3 + (($7 | 9) << 3) >> 3] = 0.0; + HEAPF64[$3 + (($7 | 10) << 3) >> 3] = 0.0; + HEAPF64[$3 + (($7 | 11) << 3) >> 3] = +HEAPF64[$5 >> 3]; + HEAPF64[$3 + (($7 | 12) << 3) >> 3] = +HEAPF64[$9 >> 3]; + HEAPF64[$3 + (($7 | 13) << 3) >> 3] = 1.0; + $49 = $vertex + ($i$03 << 4) + 8 | 0; + HEAPF64[$3 + (($7 | 14) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$49 >> 3]); + HEAPF64[$3 + (($7 | 15) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$49 >> 3]); + $62 = $i$03 << 1; + HEAPF64[$4 + ($62 << 3) >> 3] = +HEAPF64[$22 >> 3]; + HEAPF64[$4 + (($62 | 1) << 3) >> 3] = +HEAPF64[$49 >> 3]; + $i$03 = $i$03 + 1 | 0; + } while (($i$03 | 0) != 4); + _arMatrixSelfInv($0) | 0; + _arMatrixMul($2, $0, $1) | 0; + $68 = HEAP32[$2 >> 2] | 0; + HEAPF64[$para >> 3] = +HEAPF64[$68 >> 3]; + HEAPF64[$para + 8 >> 3] = +HEAPF64[$68 + 8 >> 3]; + HEAPF64[$para + 16 >> 3] = +HEAPF64[$68 + 16 >> 3]; + $76 = HEAP32[$2 >> 2] | 0; + HEAPF64[$para + 24 >> 3] = +HEAPF64[$76 + 24 >> 3]; + HEAPF64[$para + 32 >> 3] = +HEAPF64[$76 + 32 >> 3]; + HEAPF64[$para + 40 >> 3] = +HEAPF64[$76 + 40 >> 3]; + $86 = HEAP32[$2 >> 2] | 0; + HEAPF64[$para + 48 >> 3] = +HEAPF64[$86 + 48 >> 3]; + HEAPF64[$para + 56 >> 3] = +HEAPF64[$86 + 56 >> 3]; + HEAPF64[$para + 64 >> 3] = 1.0; + _arMatrixFree($0) | 0; + _arMatrixFree($1) | 0; + _arMatrixFree($2) | 0; + return; +} + +function __ZNK6vision5Timer19duration_in_secondsEv($this) { + $this = $this | 0; + var $0 = 0, $1 = 0.0, $13 = 0, $14 = 0, $18 = 0, $20 = 0.0, $27 = 0, $32 = 0, $33 = 0, $37 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $1 = +HEAPF64[$this >> 3]; + if (!($1 >= 0.0)) { + $8 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 34156) | 0, 34195) | 0, 34302) | 0, 80) | 0, 34309) | 0, 34312) | 0; + $13 = __ZNKSt3__18ios_base6getlocEv($8 + (HEAP32[(HEAP32[$8 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $13; + $14 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 28 >> 2] & 63]($14, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($8, $18) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + _abort(); + } + $20 = +HEAPF64[$this + 8 >> 3]; + if (!($20 >= 0.0)) { + $27 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 34339) | 0, 34195) | 0, 34302) | 0, 81) | 0, 34309) | 0, 34377) | 0; + $32 = __ZNKSt3__18ios_base6getlocEv($27 + (HEAP32[(HEAP32[$27 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $32; + $33 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $37 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$33 >> 2] | 0) + 28 >> 2] & 63]($33, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($27, $37) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($27) | 0; + _abort(); } else { - HEAP32[$108 >> 2] = $109 & -2; - HEAP32[$$0 + 4 >> 2] = $$02 | 1; - HEAP32[$$0 + $$02 >> 2] = $$02; - $$1 = $$02; + STACKTOP = sp; + return +($20 - $1); } - $222 = $$1 >>> 3; - if ($$1 >>> 0 < 256) { - $224 = $222 << 1; - $225 = 3064 + ($224 << 2) | 0; - $226 = HEAP32[756] | 0; - $227 = 1 << $222; - if (!($226 & $227)) { - HEAP32[756] = $226 | $227; - $$pre$phiZ2D = 3064 + ($224 + 2 << 2) | 0; - $F16$0 = $225; + return +(0.0); +} + +function _arGetTransMatSquare($handle, $marker_info, $width, $conv) { + $handle = $handle | 0; + $marker_info = $marker_info | 0; + $width = +$width; + $conv = $conv | 0; + var $$0 = 0.0, $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $53 = 0, $data = 0, $err = 0, $initMatXw2Xc = 0, $screenCoord = 0, $worldCoord = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $screenCoord = sp + 200 | 0; + $worldCoord = sp + 104 | 0; + $data = sp + 264 | 0; + $initMatXw2Xc = sp + 8 | 0; + $err = sp; + $1 = HEAP32[$marker_info + 16 >> 2] | 0; + $3 = (4 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3]; + HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3]; + $10 = (5 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3]; + HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3]; + $18 = (6 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3]; + HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3]; + $26 = (7 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3]; + HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3]; + $33 = $width * -.5; + HEAPF64[$worldCoord >> 3] = $33; + $34 = $width * .5; + HEAPF64[$worldCoord + 8 >> 3] = $34; + HEAPF64[$worldCoord + 16 >> 3] = 0.0; + HEAPF64[$worldCoord + 24 >> 3] = $34; + HEAPF64[$worldCoord + 32 >> 3] = $34; + HEAPF64[$worldCoord + 40 >> 3] = 0.0; + HEAPF64[$worldCoord + 48 >> 3] = $34; + HEAPF64[$worldCoord + 56 >> 3] = $33; + HEAPF64[$worldCoord + 64 >> 3] = 0.0; + HEAPF64[$worldCoord + 72 >> 3] = $33; + HEAPF64[$worldCoord + 80 >> 3] = $33; + HEAPF64[$worldCoord + 88 >> 3] = 0.0; + HEAP32[$data >> 2] = $screenCoord; + HEAP32[$data + 4 >> 2] = $worldCoord; + HEAP32[$data + 8 >> 2] = 4; + if ((_icpGetInitXw2Xc_from_PlanarData(HEAP32[$handle >> 2] | 0, $screenCoord, $worldCoord, 4, $initMatXw2Xc) | 0) < 0) $$0 = 1.0e8; else { + $53 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initMatXw2Xc, $conv, $err) | 0) < 0; + $$0 = $53 ? 1.0e8 : +HEAPF64[$err >> 3]; + } + STACKTOP = sp; + return +$$0; +} + +function __ZNSt3__116__check_groupingERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPjS8_Rj($__grouping, $__g, $__g_end, $__err) { + $__grouping = $__grouping | 0; + $__g = $__g | 0; + $__g_end = $__g_end | 0; + $__err = $__err | 0; + var $$01$i$i22 = 0, $$lcssa = 0, $0 = 0, $10 = 0, $12 = 0, $14 = 0, $19 = 0, $20 = 0, $24 = 0, $28 = 0, $3 = 0, $30 = 0, $31 = 0, $33 = 0, $36 = 0, $4 = 0, $45 = 0, $__ig$018 = 0, $__r$019 = 0, $or$cond2 = 0, $or$cond2$lcssa = 0, $or$cond217 = 0, $or$cond220 = 0; + $0 = HEAP8[$__grouping >> 0] | 0; + $3 = $__grouping + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + L1 : do if ((($0 & 1) == 0 ? ($0 & 255) >>> 1 : $4) | 0) { + if (($__g | 0) == ($__g_end | 0)) { + $19 = $0; + $28 = $4; } else { - $231 = 3064 + ($224 + 2 << 2) | 0; - $232 = HEAP32[$231 >> 2] | 0; - if ($232 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - $$pre$phiZ2D = $231; - $F16$0 = $232; + $10 = $__g_end + -4 | 0; + if ($10 >>> 0 > $__g >>> 0) { + $$01$i$i22 = $__g; + $14 = $10; + do { + $12 = HEAP32[$$01$i$i22 >> 2] | 0; + HEAP32[$$01$i$i22 >> 2] = HEAP32[$14 >> 2]; + HEAP32[$14 >> 2] = $12; + $$01$i$i22 = $$01$i$i22 + 4 | 0; + $14 = $14 + -4 | 0; + } while ($$01$i$i22 >>> 0 < $14 >>> 0); + } + $19 = HEAP8[$__grouping >> 0] | 0; + $28 = HEAP32[$3 >> 2] | 0; + } + $20 = ($19 & 1) == 0; + $24 = $20 ? $__grouping + 1 | 0 : HEAP32[$__grouping + 8 >> 2] | 0; + $30 = $__g_end + -4 | 0; + $31 = $24 + ($20 ? ($19 & 255) >>> 1 : $28) | 0; + $33 = HEAP8[$24 >> 0] | 0; + $or$cond217 = $33 << 24 >> 24 < 1 | $33 << 24 >> 24 == 127; + L10 : do if ($30 >>> 0 > $__g >>> 0) { + $36 = $33; + $__ig$018 = $24; + $__r$019 = $__g; + $or$cond220 = $or$cond217; + while (1) { + if (!$or$cond220) if (($36 << 24 >> 24 | 0) != (HEAP32[$__r$019 >> 2] | 0)) break; + $__ig$018 = ($31 - $__ig$018 | 0) > 1 ? $__ig$018 + 1 | 0 : $__ig$018; + $__r$019 = $__r$019 + 4 | 0; + $45 = HEAP8[$__ig$018 >> 0] | 0; + $or$cond2 = $45 << 24 >> 24 < 1 | $45 << 24 >> 24 == 127; + if ($__r$019 >>> 0 >= $30 >>> 0) { + $$lcssa = $45; + $or$cond2$lcssa = $or$cond2; + break L10; + } else { + $36 = $45; + $or$cond220 = $or$cond2; + } } + HEAP32[$__err >> 2] = 4; + break L1; + } else { + $$lcssa = $33; + $or$cond2$lcssa = $or$cond217; + } while (0); + if (!$or$cond2$lcssa) if (((HEAP32[$30 >> 2] | 0) + -1 | 0) >>> 0 >= $$lcssa << 24 >> 24 >>> 0) HEAP32[$__err >> 2] = 4; + } while (0); + return; +} + +function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { + $this = $this | 0; + $info = $info | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $14 = 0, $20 = 0, $23 = 0, $24 = 0, $26 = 0, $33 = 0, $44 = 0, $6 = 0, $is_dst_type_derived_from_static_type$0$off01 = 0, label = 0; + L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { + $6 = $info + 28 | 0; + if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; } - HEAP32[$$pre$phiZ2D >> 2] = $$0; - HEAP32[$F16$0 + 12 >> 2] = $$0; - HEAP32[$$0 + 8 >> 2] = $F16$0; - HEAP32[$$0 + 12 >> 2] = $225; - return; - } - $238 = $$1 >>> 8; - if (!$238) $I19$0 = 0; else if ($$1 >>> 0 > 16777215) $I19$0 = 31; else { - $243 = ($238 + 1048320 | 0) >>> 16 & 8; - $244 = $238 << $243; - $247 = ($244 + 520192 | 0) >>> 16 & 4; - $249 = $244 << $247; - $252 = ($249 + 245760 | 0) >>> 16 & 2; - $257 = 14 - ($247 | $243 | $252) + ($249 << $252 >>> 15) | 0; - $I19$0 = $$1 >>> ($257 + 7 | 0) & 1 | $257 << 1; - } - $263 = 3328 + ($I19$0 << 2) | 0; - HEAP32[$$0 + 28 >> 2] = $I19$0; - HEAP32[$$0 + 20 >> 2] = 0; - HEAP32[$$0 + 16 >> 2] = 0; - $267 = HEAP32[757] | 0; - $268 = 1 << $I19$0; - if (!($267 & $268)) { - HEAP32[757] = $267 | $268; - HEAP32[$263 >> 2] = $$0; - HEAP32[$$0 + 24 >> 2] = $263; - HEAP32[$$0 + 12 >> 2] = $$0; - HEAP32[$$0 + 8 >> 2] = $$0; - return; - } - $275 = HEAP32[$263 >> 2] | 0; - L191 : do if ((HEAP32[$275 + 4 >> 2] & -8 | 0) == ($$1 | 0)) $T$0$lcssa = $275; else { - $K20$043 = $$1 << (($I19$0 | 0) == 31 ? 0 : 25 - ($I19$0 >>> 1) | 0); - $T$042 = $275; - while (1) { - $292 = $T$042 + 16 + ($K20$043 >>> 31 << 2) | 0; - $287 = HEAP32[$292 >> 2] | 0; - if (!$287) { - $$lcssa = $292; - $T$042$lcssa = $T$042; + } else { + if (($this | 0) != (HEAP32[$info >> 2] | 0)) { + $44 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$44 >> 2] | 0) + 24 >> 2] & 31]($44, $info, $current_ptr, $path_below, $use_strcmp); + break; + } + if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { + $14 = $info + 20 | 0; + if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { + HEAP32[$info + 32 >> 2] = $path_below; + $20 = $info + 44 | 0; + if ((HEAP32[$20 >> 2] | 0) == 4) break; + $23 = $info + 52 | 0; + HEAP8[$23 >> 0] = 0; + $24 = $info + 53 | 0; + HEAP8[$24 >> 0] = 0; + $26 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$26 >> 2] | 0) + 20 >> 2] & 7]($26, $info, $current_ptr, $current_ptr, 1, $use_strcmp); + if (!(HEAP8[$24 >> 0] | 0)) { + $is_dst_type_derived_from_static_type$0$off01 = 0; + label = 13; + } else if (!(HEAP8[$23 >> 0] | 0)) { + $is_dst_type_derived_from_static_type$0$off01 = 1; + label = 13; + } + do if ((label | 0) == 13) { + HEAP32[$14 >> 2] = $current_ptr; + $33 = $info + 40 | 0; + HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; + if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) { + HEAP8[$info + 54 >> 0] = 1; + if ($is_dst_type_derived_from_static_type$0$off01) break; + } else label = 16; else label = 16; + if ((label | 0) == 16) if ($is_dst_type_derived_from_static_type$0$off01) break; + HEAP32[$20 >> 2] = 4; + break L1; + } while (0); + HEAP32[$20 >> 2] = 3; break; } - if ((HEAP32[$287 + 4 >> 2] & -8 | 0) == ($$1 | 0)) { - $T$0$lcssa = $287; - break L191; - } else { - $K20$043 = $K20$043 << 1; - $T$042 = $287; + } + if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; + } while (0); + return; +} + +function _fgets($s, $n, $f) { + $s = $s | 0; + $n = $n | 0; + $f = $f | 0; + var $$0 = 0, $$048 = 0, $$05 = 0, $$lcssa14 = 0, $$sum$pre$phiZZ2D = 0, $$sum6 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $6 = 0, $8 = 0, $p$0 = 0, $p$1 = 0, label = 0; + if ((HEAP32[$f + 76 >> 2] | 0) > -1) $13 = ___lockfile($f) | 0; else $13 = 0; + $4 = $n + -1 | 0; + if (($n | 0) < 2) { + $6 = $f + 74 | 0; + $8 = HEAP8[$6 >> 0] | 0; + HEAP8[$6 >> 0] = $8 + 255 | $8; + if ($13) ___unlockfile($f); + if (!$4) { + HEAP8[$s >> 0] = 0; + $$0 = $s; + } else $$0 = 0; + } else { + L11 : do if (!$4) { + $p$1 = $s; + label = 18; + } else { + $15 = $f + 4 | 0; + $16 = $f + 8 | 0; + $$05 = $4; + $p$0 = $s; + while (1) { + $17 = HEAP32[$15 >> 2] | 0; + $20 = $17; + $21 = (HEAP32[$16 >> 2] | 0) - $20 | 0; + $22 = _memchr($17, 10, $21) | 0; + $23 = ($22 | 0) == 0; + $27 = $23 ? $21 : 1 - $20 + $22 | 0; + $28 = $27 >>> 0 < $$05 >>> 0; + $29 = $28 ? $27 : $$05; + _memcpy($p$0 | 0, $17 | 0, $29 | 0) | 0; + $30 = HEAP32[$15 >> 2] | 0; + $31 = $30 + $29 | 0; + HEAP32[$15 >> 2] = $31; + $32 = $p$0 + $29 | 0; + $33 = $$05 - $29 | 0; + if (!($23 & $28)) { + $p$1 = $32; + label = 18; + break L11; + } + if ($31 >>> 0 < (HEAP32[$16 >> 2] | 0) >>> 0) { + $$sum6 = $29 + 1 | 0; + HEAP32[$15 >> 2] = $30 + $$sum6; + $$sum$pre$phiZZ2D = $$sum6; + $47 = HEAPU8[$31 >> 0] | 0; + } else { + $39 = ___uflow($f) | 0; + if (($39 | 0) < 0) { + $$lcssa14 = $32; + break; + } + $$sum$pre$phiZZ2D = $29 + 1 | 0; + $47 = $39; + } + $$05 = $33 + -1 | 0; + $48 = $p$0 + $$sum$pre$phiZZ2D | 0; + HEAP8[$32 >> 0] = $47; + if (!(($$05 | 0) != 0 & ($47 & 255 | 0) != 10)) { + $p$1 = $48; + label = 18; + break L11; + } else $p$0 = $48; + } + if (($$lcssa14 | 0) == ($s | 0)) $$048 = 0; else if (!(HEAP32[$f >> 2] & 16)) $$048 = 0; else { + $p$1 = $$lcssa14; + label = 18; } + } while (0); + if ((label | 0) == 18) if (!$s) $$048 = 0; else { + HEAP8[$p$1 >> 0] = 0; + $$048 = $s; } - if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - HEAP32[$$lcssa >> 2] = $$0; - HEAP32[$$0 + 24 >> 2] = $T$042$lcssa; - HEAP32[$$0 + 12 >> 2] = $$0; - HEAP32[$$0 + 8 >> 2] = $$0; - return; - } while (0); - $299 = $T$0$lcssa + 8 | 0; - $300 = HEAP32[$299 >> 2] | 0; - $301 = HEAP32[760] | 0; - if (!($300 >>> 0 >= $301 >>> 0 & $T$0$lcssa >>> 0 >= $301 >>> 0)) _abort(); - HEAP32[$300 + 12 >> 2] = $$0; - HEAP32[$299 >> 2] = $$0; - HEAP32[$$0 + 8 >> 2] = $300; - HEAP32[$$0 + 12 >> 2] = $T$0$lcssa; - HEAP32[$$0 + 24 >> 2] = 0; - return; + if (!$13) $$0 = $$048; else { + ___unlockfile($f); + $$0 = $$048; + } + } + return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i15 = 0, $$0$i$i$i7 = 0, $$0$i$i$i9 = 0, $$0$i$i58 = 0, $$lcssa81 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $114 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $120 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $135 = 0, $138 = 0, $141 = 0, $148 = 0, $15 = 0, $150 = 0, $157 = 0, $158 = 0, $167 = 0, $168 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $190 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $33 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $46 = 0, $49 = 0, $56 = 0, $58 = 0, $61 = 0, $62 = 0, $64 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $78 = 0, $80 = 0, $83 = 0, $84 = 0, $89 = 0, $91 = 0, $__p$0$i$i57 = 0, $__p$0$ph$i$i = 0, $__v$i$i13 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $sub$061 = 0, $sub$061$lcssa = 0, $t1$060 = 0, $t1$060$lcssa = 0, sp = 0; +function _mbrtowc($wc, $src, $n, $st) { + $wc = $wc | 0; + $src = $src | 0; + $n = $n | 0; + $st = $st | 0; + var $$0 = 0, $$024 = 0, $$1 = 0, $$lcssa = 0, $$lcssa35 = 0, $$st = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $19 = 0, $21 = 0, $30 = 0, $40 = 0, $7 = 0, $8 = 0, $c$05 = 0, $c$1 = 0, $c$2 = 0, $dummy = 0, $dummy$wc = 0, $s$06 = 0, $s$1 = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i13 = sp + 64 | 0; - $0 = sp + 40 | 0; - $1 = sp + 16 | 0; - $2 = sp; - $4 = $first; - L1 : do if (($last - $4 | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 84) { - $10 = HEAP8[$first + 1 >> 0] | 0; - if ($10 << 24 >> 24 == 95) { - $15 = HEAP32[$db + 36 >> 2] | 0; - if ((HEAP32[$db + 32 >> 2] | 0) == ($15 | 0)) { - $$0 = $first; - break; - } - $18 = HEAP32[$15 + -16 >> 2] | 0; - if (($18 | 0) == (HEAP32[$15 + -12 >> 2] | 0)) { - HEAP8[$0 >> 0] = 4; - $56 = $0 + 1 | 0; - HEAP8[$56 >> 0] = 84; - HEAP8[$56 + 1 >> 0] = 95; - HEAP8[$0 + 3 >> 0] = 0; - $58 = $0 + 12 | 0; - HEAP32[$58 >> 2] = 0; - HEAP32[$58 + 4 >> 2] = 0; - HEAP32[$58 + 8 >> 2] = 0; - $61 = $db + 4 | 0; - $62 = HEAP32[$61 >> 2] | 0; - $64 = HEAP32[$db + 8 >> 2] | 0; - if ($62 >>> 0 < $64 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($62, $0); - HEAP32[$61 >> 2] = (HEAP32[$61 >> 2] | 0) + 24; - } else { - $71 = HEAP32[$db >> 2] | 0; - $72 = $62 - $71 | 0; - $73 = ($72 | 0) / 24 | 0; - $74 = $73 + 1 | 0; - if (($72 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $78 = ($64 - $71 | 0) / 24 | 0; - if ($78 >>> 0 < 1073741823) { - $80 = $78 << 1; - $$0$i$i$i9 = $80 >>> 0 < $74 >>> 0 ? $74 : $80; - } else $$0$i$i$i9 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i9, $73, $db + 12 | 0); - $83 = $__v$i$i13 + 8 | 0; - $84 = HEAP32[$83 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($84, $0); - HEAP32[$83 >> 2] = $84 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); + $dummy = sp; + $$st = ($st | 0) == 0 ? 6496 : $st; + $1 = HEAP32[$$st >> 2] | 0; + L1 : do if (!$src) if (!$1) $$0 = 0; else label = 15; else { + $dummy$wc = ($wc | 0) == 0 ? $dummy : $wc; + if (!$n) $$0 = -2; else { + if (!$1) { + $7 = HEAP8[$src >> 0] | 0; + $8 = $7 & 255; + if ($7 << 24 >> 24 > -1) { + HEAP32[$dummy$wc >> 2] = $8; + $$0 = $7 << 24 >> 24 != 0 & 1; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - HEAP8[$db + 62 >> 0] = 1; - $$0 = $first + 2 | 0; - break; + $12 = $8 + -194 | 0; + if ($12 >>> 0 > 50) { + label = 15; + break; + } + $16 = HEAP32[6224 + ($12 << 2) >> 2] | 0; + $17 = $n + -1 | 0; + if (!$17) $c$2 = $16; else { + $$024 = $17; + $c$05 = $16; + $s$06 = $src + 1 | 0; + label = 9; + } + } else { + $$024 = $n; + $c$05 = $1; + $s$06 = $src; + label = 9; } - $22 = HEAP32[$18 >> 2] | 0; - $24 = HEAP32[$18 + 4 >> 2] | 0; - $25 = $db + 4 | 0; - $26 = $db + 8 | 0; - $27 = $db + 12 | 0; - $28 = $__v$i$i13 + 8 | 0; - L20 : do if (($22 | 0) != ($24 | 0)) { - $33 = $22; - while (1) { - $30 = HEAP32[$25 >> 2] | 0; - if (($30 | 0) == (HEAP32[$26 >> 2] | 0)) { - $41 = $30 - (HEAP32[$db >> 2] | 0) | 0; - $42 = ($41 | 0) / 24 | 0; - $43 = $42 + 1 | 0; - if (($41 | 0) < -24) break; - if ($42 >>> 0 < 1073741823) { - $46 = $42 << 1; - $$0$i$i$i7 = $46 >>> 0 < $43 >>> 0 ? $43 : $46; - } else $$0$i$i$i7 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i7, $42, $27); - $49 = HEAP32[$28 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49, $33); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49 + 12 | 0, $33 + 12 | 0); - HEAP32[$28 >> 2] = $49 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30, $33); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30 + 12 | 0, $33 + 12 | 0); - HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 24; - } - $33 = $33 + 24 | 0; - if (($33 | 0) == ($24 | 0)) break L20; + L11 : do if ((label | 0) == 9) { + $19 = HEAP8[$s$06 >> 0] | 0; + $21 = ($19 & 255) >>> 3; + if (($21 + -16 | $21 + ($c$05 >> 26)) >>> 0 > 7) { + label = 15; + break L1; + } else { + $$1 = $$024; + $30 = $19; + $c$1 = $c$05; + $s$1 = $s$06; } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - } while (0); - $$0 = $first + 2 | 0; - break; - } - $isdigittmp = ($10 << 24 >> 24) + -48 | 0; - if ($isdigittmp >>> 0 < 10) { - $89 = $first + 2 | 0; - if (($89 | 0) == ($last | 0)) $$0 = $first; else { - $sub$061 = $isdigittmp; - $t1$060 = $89; while (1) { - $91 = HEAP8[$t1$060 >> 0] | 0; - $isdigittmp4 = ($91 << 24 >> 24) + -48 | 0; - if ($isdigittmp4 >>> 0 >= 10) { - $$lcssa81 = $91; - $sub$061$lcssa = $sub$061; - $t1$060$lcssa = $t1$060; + $s$1 = $s$1 + 1 | 0; + $c$1 = ($30 & 255) + -128 | $c$1 << 6; + $$1 = $$1 + -1 | 0; + if (($c$1 | 0) >= 0) { + $$lcssa = $c$1; + $$lcssa35 = $$1; break; } - $t1$060 = $t1$060 + 1 | 0; - if (($t1$060 | 0) == ($last | 0)) { - $$0 = $first; + if (!$$1) { + $c$2 = $c$1; + break L11; + } + $30 = HEAP8[$s$1 >> 0] | 0; + if (($30 & -64) << 24 >> 24 != -128) { + label = 15; break L1; - } else $sub$061 = $isdigittmp4 + ($sub$061 * 10 | 0) | 0; - } - if ($$lcssa81 << 24 >> 24 == 95) { - $101 = HEAP32[$db + 36 >> 2] | 0; - if ((HEAP32[$db + 32 >> 2] | 0) == ($101 | 0)) $$0 = $first; else { - $103 = $sub$061$lcssa + 1 | 0; - $107 = HEAP32[$101 + -16 >> 2] | 0; - if ($103 >>> 0 < (HEAP32[$101 + -12 >> 2] | 0) - $107 >> 4 >>> 0) { - $114 = HEAP32[$107 + ($103 << 4) >> 2] | 0; - $116 = HEAP32[$107 + ($103 << 4) + 4 >> 2] | 0; - $117 = $db + 4 | 0; - $118 = $db + 8 | 0; - $119 = $db + 12 | 0; - $120 = $__v$i$i13 + 8 | 0; - L43 : do if (($114 | 0) != ($116 | 0)) { - $125 = $114; - while (1) { - $122 = HEAP32[$117 >> 2] | 0; - if (($122 | 0) == (HEAP32[$118 >> 2] | 0)) { - $133 = $122 - (HEAP32[$db >> 2] | 0) | 0; - $134 = ($133 | 0) / 24 | 0; - $135 = $134 + 1 | 0; - if (($133 | 0) < -24) break; - if ($134 >>> 0 < 1073741823) { - $138 = $134 << 1; - $$0$i$i$i15 = $138 >>> 0 < $135 >>> 0 ? $135 : $138; - } else $$0$i$i$i15 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i15, $134, $119); - $141 = HEAP32[$120 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141, $125); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141 + 12 | 0, $125 + 12 | 0); - HEAP32[$120 >> 2] = $141 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); - } else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122, $125); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122 + 12 | 0, $125 + 12 | 0); - HEAP32[$117 >> 2] = (HEAP32[$117 >> 2] | 0) + 24; - } - $125 = $125 + 24 | 0; - if (($125 | 0) == ($116 | 0)) break L43; - } - __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - } while (0); - $$0 = $t1$060$lcssa + 1 | 0; - break; - } - $148 = $t1$060$lcssa + 1 | 0; - $150 = $148 - $4 | 0; - if ($150 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); - if ($150 >>> 0 < 11) { - HEAP8[$2 >> 0] = $150 << 1; - $__p$0$ph$i$i = $2 + 1 | 0; - } else { - $157 = $150 + 16 & -16; - $158 = _malloc($157) | 0; - HEAP32[$2 + 8 >> 2] = $158; - HEAP32[$2 >> 2] = $157 | 1; - HEAP32[$2 + 4 >> 2] = $150; - $__p$0$ph$i$i = $158; - } - if (($148 | 0) != ($first | 0)) { - $$0$i$i58 = $first; - $__p$0$i$i57 = $__p$0$ph$i$i; - while (1) { - HEAP8[$__p$0$i$i57 >> 0] = HEAP8[$$0$i$i58 >> 0] | 0; - if (($$0$i$i58 | 0) == ($t1$060$lcssa | 0)) break; else { - $$0$i$i58 = $$0$i$i58 + 1 | 0; - $__p$0$i$i57 = $__p$0$i$i57 + 1 | 0; - } - } - } - HEAP8[$__p$0$ph$i$i + $150 >> 0] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2); - $167 = $db + 4 | 0; - $168 = HEAP32[$167 >> 2] | 0; - $170 = HEAP32[$db + 8 >> 2] | 0; - if ($168 >>> 0 < $170 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $1); - HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24; - } else { - $177 = HEAP32[$db >> 2] | 0; - $178 = $168 - $177 | 0; - $179 = ($178 | 0) / 24 | 0; - $180 = $179 + 1 | 0; - if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $184 = ($170 - $177 | 0) / 24 | 0; - if ($184 >>> 0 < 1073741823) { - $186 = $184 << 1; - $$0$i$i$i = $186 >>> 0 < $180 >>> 0 ? $180 : $186; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i, $179, $db + 12 | 0); - $189 = $__v$i$i13 + 8 | 0; - $190 = HEAP32[$189 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $1); - HEAP32[$189 >> 2] = $190 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - HEAP8[$db + 62 >> 0] = 1; - $$0 = $148; } - } else $$0 = $first; - } - } else $$0 = $first; - } else $$0 = $first; else $$0 = $first; while (0); + } + HEAP32[$$st >> 2] = 0; + HEAP32[$dummy$wc >> 2] = $$lcssa; + $$0 = $n - $$lcssa35 | 0; + break L1; + } while (0); + HEAP32[$$st >> 2] = $c$2; + $$0 = -2; + } + } while (0); + if ((label | 0) == 15) { + HEAP32[$$st >> 2] = 0; + $40 = ___errno_location() | 0; + HEAP32[$40 >> 2] = 84; + $$0 = -1; + } STACKTOP = sp; return $$0 | 0; } -function _get_matrix_code($data, $size, $code_out_p, $dir, $cf, $matrixCodeType, $errorCorrected) { - $data = $data | 0; - $size = $size | 0; - $code_out_p = $code_out_p | 0; - $dir = $dir | 0; - $cf = $cf | 0; - $matrixCodeType = $matrixCodeType | 0; - $errorCorrected = $errorCorrected | 0; - var $$ = 0, $$0 = 0, $$lcssa115 = 0, $$max$0 = 0, $$max$0$1 = 0, $$max$0$2 = 0, $1 = 0, $10 = 0, $100 = 0, $102 = 0, $103 = 0, $108 = 0, $109 = 0, $110 = 0, $120 = 0, $121 = 0, $122 = 0, $124 = 0, $125 = 0, $126 = 0, $130 = 0, $140 = 0, $144 = 0, $145 = 0, $146 = 0, $157 = 0, $158 = 0, $16 = 0, $163 = 0, $164 = 0, $165 = 0, $169 = 0, $182 = 0, $183 = 0, $184 = 0, $187 = 0, $193 = 0, $194 = 0, $197 = 0, $2 = 0, $206 = 0, $207 = 0, $211 = 0, $22 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $28 = 0, $31 = 0, $32 = 0, $36 = 0, $4 = 0, $70 = 0, $83 = 0, $85 = 0, $86 = 0, $96 = 0, $98 = 0, $code = 0, $contrastMin$0$lcssa = 0, $contrastMin$098 = 0, $contrastMin$1 = 0, $corner = 0, $dirCode = 0, $exitcond64 = 0, $i$2102 = 0, $i$2102$lcssa = 0, $i$399 = 0, $i$465 = 0, $i$576 = 0, $i$680 = 0, $i$794 = 0, $j$067 = 0, $j$171 = 0, $j$285 = 0, $j$389 = 0, $min$1 = 0, $min$1$1 = 0, $min$1$2 = 0, $or$cond734 = 0, label = 0, sp = 0; +function __ZNK6vision21HoughSimilarityVoting14getBinDistanceERfS1_S1_S1_ffffffff($this, $distBinX, $distBinY, $distBinAngle, $distBinScale, $insBinX, $insBinY, $insBinAngle, $insBinScale, $refBinX, $refBinY, $refBinAngle, $refBinScale) { + $this = $this | 0; + $distBinX = $distBinX | 0; + $distBinY = $distBinY | 0; + $distBinAngle = $distBinAngle | 0; + $distBinScale = $distBinScale | 0; + $insBinX = +$insBinX; + $insBinY = +$insBinY; + $insBinAngle = +$insBinAngle; + $insBinScale = +$insBinScale; + $refBinX = +$refBinX; + $refBinY = +$refBinY; + $refBinAngle = +$refBinAngle; + $refBinScale = +$refBinScale; + var $0 = 0, $12 = 0.0, $14 = 0.0, $2 = 0.0, $21 = 0, $26 = 0, $27 = 0, $31 = 0, $4 = 0.0, $6 = 0.0, $8 = 0.0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $dirCode = sp + 24 | 0; - $corner = sp + 8 | 0; - $code = sp; - L1 : do if (($size + -3 | 0) >>> 0 > 5) { - HEAP32[$code_out_p >> 2] = -1; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -1; + $0 = sp; + $2 = +Math_abs(+($insBinX - $refBinX)); + HEAPF32[$distBinX >> 2] = $2; + $4 = +Math_abs(+($insBinY - $refBinY)); + HEAPF32[$distBinY >> 2] = $4; + $6 = +Math_abs(+($insBinScale - $refBinScale)); + HEAPF32[$distBinScale >> 2] = $6; + $8 = +Math_abs(+($insBinAngle - $refBinAngle)); + $12 = +(HEAP32[$this + 60 >> 2] | 0) - $8; + $14 = $8 < $12 ? $8 : $12; + HEAPF32[$distBinAngle >> 2] = $14; + if (!($14 >= 0.0)) { + $21 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 29524) | 0, 32052) | 0, 34302) | 0, 333) | 0, 34309) | 0, 29565) | 0; + $26 = __ZNKSt3__18ios_base6getlocEv($21 + (HEAP32[(HEAP32[$21 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $26; + $27 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $31 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$27 >> 2] | 0) + 28 >> 2] & 63]($27, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($21, $31) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($21) | 0; + _abort(); } else { - HEAP32[$corner >> 2] = 0; - $1 = $size + -1 | 0; - $2 = Math_imul($1, $size) | 0; - HEAP32[$corner + 4 >> 2] = $2; - $4 = Math_imul($size, $size) | 0; - HEAP32[$corner + 8 >> 2] = $4 + -1; - HEAP32[$corner + 12 >> 2] = $1; - $10 = HEAP8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0; - $$max$0 = ($10 & 255) > 0 ? $10 : 0; - $min$1 = ($10 & 255) < 255 ? $10 : -1; - $16 = HEAP8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0; - $$max$0$1 = ($16 & 255) > ($$max$0 & 255) ? $16 : $$max$0; - $min$1$1 = ($16 & 255) < ($min$1 & 255) ? $16 : $min$1; - $22 = HEAP8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0; - $$max$0$2 = ($22 & 255) > ($$max$0$1 & 255) ? $22 : $$max$0$1; - $min$1$2 = ($22 & 255) < ($min$1$1 & 255) ? $22 : $min$1$1; - $28 = HEAP8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0; - $31 = (($28 & 255) > ($$max$0$2 & 255) ? $28 : $$max$0$2) & 255; - $32 = (($28 & 255) < ($min$1$2 & 255) ? $28 : $min$1$2) & 255; - if (($31 - $32 | 0) < 30) { - HEAP32[$code_out_p >> 2] = -1; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -2; + STACKTOP = sp; + return; + } +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($agg$result, $this, $__p) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__p = $__p | 0; + var $$pre$phiZ2D = 0, $0 = 0, $11 = 0, $12 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $23 = 0, $24 = 0, $27 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $4 = 0, $40 = 0, $43 = 0, $44 = 0, $5 = 0, $7 = 0, $__pn$0 = 0, $__pn$0$lcssa = 0, label = 0; + $0 = HEAP32[$__p >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + $4 = HEAP32[$0 + 4 >> 2] | 0; + $5 = $2 + -1 | 0; + $7 = ($5 & $2 | 0) == 0; + if ($7) $12 = $5 & $4; else $12 = ($4 >>> 0) % ($2 >>> 0) | 0; + $11 = (HEAP32[$this >> 2] | 0) + ($12 << 2) | 0; + $__pn$0 = HEAP32[$11 >> 2] | 0; + while (1) { + $14 = HEAP32[$__pn$0 >> 2] | 0; + if (($14 | 0) == ($0 | 0)) { + $__pn$0$lcssa = $__pn$0; break; + } else $__pn$0 = $14; + } + $16 = $this + 8 | 0; + if (($__pn$0$lcssa | 0) == ($16 | 0)) label = 12; else { + $19 = HEAP32[$__pn$0$lcssa + 4 >> 2] | 0; + if ($7) $23 = $19 & $5; else $23 = ($19 >>> 0) % ($2 >>> 0) | 0; + if (($23 | 0) == ($12 | 0)) $$pre$phiZ2D = $0; else label = 12; + } + do if ((label | 0) == 12) { + $24 = HEAP32[$0 >> 2] | 0; + if ($24) { + $27 = HEAP32[$24 + 4 >> 2] | 0; + if ($7) $31 = $27 & $5; else $31 = ($27 >>> 0) % ($2 >>> 0) | 0; + if (($31 | 0) == ($12 | 0)) { + $$pre$phiZ2D = $0; + break; + } } - $36 = ($31 + $32 | 0) >>> 1; - HEAP8[$dirCode >> 0] = (HEAPU8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; - HEAP8[$dirCode + 1 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; - HEAP8[$dirCode + 2 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; - HEAP8[$dirCode + 3 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1; - $i$2102 = 0; + HEAP32[$11 >> 2] = 0; + $$pre$phiZ2D = $0; + } while (0); + $32 = HEAP32[$$pre$phiZ2D >> 2] | 0; + $34 = $32; + if (!$32) $43 = $34; else { + $36 = HEAP32[$32 + 4 >> 2] | 0; + if ($7) $40 = $36 & $5; else $40 = ($36 >>> 0) % ($2 >>> 0) | 0; + if (($40 | 0) == ($12 | 0)) $43 = $34; else { + HEAP32[(HEAP32[$this >> 2] | 0) + ($40 << 2) >> 2] = $__pn$0$lcssa; + $43 = HEAP32[$0 >> 2] | 0; + } + } + HEAP32[$__pn$0$lcssa >> 2] = $43; + HEAP32[$$pre$phiZ2D >> 2] = 0; + $44 = $this + 12 | 0; + HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + -1; + HEAP32[$agg$result >> 2] = $0; + HEAP32[$agg$result + 4 >> 2] = $16; + HEAP8[$agg$result + 8 >> 0] = 1; + return; +} + +function _arParamLTCreate($param, $offset) { + $param = $param | 0; + $offset = $offset | 0; + var $0 = 0, $14 = 0, $15 = 0, $17 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $9 = 0, $i$04 = 0, $i2of$05 = 0, $i2of$12 = 0, $ix = 0, $iy = 0, $j$07 = 0, $o2if$06 = 0, $o2if$13 = 0, $ox = 0, $oy = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ix = sp + 24 | 0; + $iy = sp + 16 | 0; + $ox = sp + 8 | 0; + $oy = sp; + $0 = _malloc(208) | 0; + if (!$0) { + _arLog(3, 21359, sp + 32 | 0); + _exit(1); + } + _memcpy($0 | 0, $param | 0, 184) | 0; + $3 = $offset << 1; + $4 = (HEAP32[$param >> 2] | 0) + $3 | 0; + HEAP32[$0 + 192 >> 2] = $4; + $9 = (HEAP32[$param + 4 >> 2] | 0) + $3 | 0; + HEAP32[$0 + 196 >> 2] = $9; + HEAP32[$0 + 200 >> 2] = $offset; + HEAP32[$0 + 204 >> 2] = $offset; + $14 = Math_imul($4 << 3, $9) | 0; + $15 = _malloc($14) | 0; + HEAP32[$0 + 184 >> 2] = $15; + if (!$15) { + _arLog(3, 21359, sp + 40 | 0); + _exit(1); + } + $17 = _malloc($14) | 0; + HEAP32[$0 + 188 >> 2] = $17; + if (!$17) { + _arLog(3, 21359, sp + 48 | 0); + _exit(1); + } + $20 = $param + 104 | 0; + $22 = HEAP32[$param + 176 >> 2] | 0; + $24 = ($4 | 0) > 0 ? $4 << 1 : 0; + if (($9 | 0) > 0) { + $26 = ($4 | 0) > 0; + $i2of$05 = $15; + $j$07 = 0; + $o2if$06 = $17; + while (1) { + $29 = +($j$07 - $offset | 0); + if ($26) { + $i$04 = 0; + $i2of$12 = $i2of$05; + $o2if$13 = $o2if$06; + while (1) { + $32 = +($i$04 - $offset | 0); + _arParamIdeal2Observ($20, $32, $29, $ox, $oy, $22) | 0; + HEAPF32[$i2of$12 >> 2] = +HEAPF64[$ox >> 3]; + HEAPF32[$i2of$12 + 4 >> 2] = +HEAPF64[$oy >> 3]; + _arParamObserv2Ideal($20, $32, $29, $ix, $iy, $22) | 0; + HEAPF32[$o2if$13 >> 2] = +HEAPF64[$ix >> 3]; + HEAPF32[$o2if$13 + 4 >> 2] = +HEAPF64[$iy >> 3]; + $i$04 = $i$04 + 1 | 0; + if (($i$04 | 0) >= ($4 | 0)) break; else { + $i2of$12 = $i2of$12 + 8 | 0; + $o2if$13 = $o2if$13 + 8 | 0; + } + } + } + $o2if$06 = $o2if$06 + ($24 << 2) | 0; + $j$07 = $j$07 + 1 | 0; + if (($j$07 | 0) >= ($9 | 0)) break; else $i2of$05 = $i2of$05 + ($24 << 2) | 0; + } + } + STACKTOP = sp; + return $0 | 0; +} + +function _ycck_cmyk_convert($cinfo, $input_buf, $input_row, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $input_row = $input_row | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $$0112 = 0, $$013 = 0, $$in = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $23 = 0, $26 = 0, $29 = 0, $3 = 0, $32 = 0, $40 = 0, $43 = 0, $46 = 0, $5 = 0, $7 = 0, $9 = 0, $col$010 = 0, $exitcond9 = 0, $outptr$011 = 0, $$in$looptemp = 0; + $1 = HEAP32[$cinfo + 456 >> 2] | 0; + $3 = HEAP32[$cinfo + 112 >> 2] | 0; + $5 = HEAP32[$cinfo + 324 >> 2] | 0; + $7 = HEAP32[$1 + 8 >> 2] | 0; + $9 = HEAP32[$1 + 12 >> 2] | 0; + $11 = HEAP32[$1 + 16 >> 2] | 0; + $13 = HEAP32[$1 + 20 >> 2] | 0; + $14 = $input_buf + 4 | 0; + $15 = $input_buf + 8 | 0; + $16 = $input_buf + 12 | 0; + if (($num_rows | 0) > 0) { + $exitcond9 = ($3 | 0) == 0; + $$0112 = $output_buf; + $$013 = $input_row; + $$in = $num_rows; while (1) { - $70 = $i$2102 + 1 | 0; - if ((HEAP8[$dirCode + $i$2102 >> 0] | 0) == 1) if ((HEAP8[$dirCode + (($70 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode + (($i$2102 + 2 | 0) % 4 | 0) >> 0] | 0)) { - $i$2102$lcssa = $i$2102; - label = 10; - break; - } - if (($70 | 0) < 4) $i$2102 = $70; else { - $$lcssa115 = $70; - label = 12; - break; + $$in$looptemp = $$in; + $$in = $$in + -1 | 0; + $23 = HEAP32[(HEAP32[$input_buf >> 2] | 0) + ($$013 << 2) >> 2] | 0; + $26 = HEAP32[(HEAP32[$14 >> 2] | 0) + ($$013 << 2) >> 2] | 0; + $29 = HEAP32[(HEAP32[$15 >> 2] | 0) + ($$013 << 2) >> 2] | 0; + $32 = HEAP32[(HEAP32[$16 >> 2] | 0) + ($$013 << 2) >> 2] | 0; + $$013 = $$013 + 1 | 0; + if (!$exitcond9) { + $col$010 = 0; + $outptr$011 = HEAP32[$$0112 >> 2] | 0; + while (1) { + $40 = HEAPU8[$26 + $col$010 >> 0] | 0; + $43 = HEAPU8[$29 + $col$010 >> 0] | 0; + $46 = (HEAPU8[$23 + $col$010 >> 0] | 0) ^ 255; + HEAP8[$outptr$011 >> 0] = HEAP8[$5 + ($46 - (HEAP32[$7 + ($43 << 2) >> 2] | 0)) >> 0] | 0; + HEAP8[$outptr$011 + 1 >> 0] = HEAP8[$5 + ($46 - ((HEAP32[$11 + ($43 << 2) >> 2] | 0) + (HEAP32[$13 + ($40 << 2) >> 2] | 0) >> 16)) >> 0] | 0; + HEAP8[$outptr$011 + 2 >> 0] = HEAP8[$5 + ($46 - (HEAP32[$9 + ($40 << 2) >> 2] | 0)) >> 0] | 0; + HEAP8[$outptr$011 + 3 >> 0] = HEAP8[$32 + $col$010 >> 0] | 0; + $col$010 = $col$010 + 1 | 0; + if (($col$010 | 0) == ($3 | 0)) break; else $outptr$011 = $outptr$011 + 4 | 0; + } } + if (($$in$looptemp | 0) <= 1) break; else $$0112 = $$0112 + 4 | 0; } - if ((label | 0) == 10) HEAP32[$dir >> 2] = $i$2102$lcssa; else if ((label | 0) == 12) if (($$lcssa115 | 0) == 4) { - HEAP32[$code_out_p >> 2] = -1; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -3; - break; + } + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE6assignIPhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$0$i1 = 0, $$0$i12 = 0, $$0$i213 = 0, $$lcssa = 0, $$pre$i$i = 0, $10 = 0, $13 = 0, $15 = 0, $2 = 0, $23 = 0, $25 = 0, $26 = 0, $3 = 0, $33 = 0, $35 = 0, $38 = 0, $5 = 0, $7 = 0; + $2 = $__last - $__first | 0; + $3 = $this + 8 | 0; + $5 = HEAP32[$this >> 2] | 0; + $7 = $5; + L1 : do if ($2 >>> 0 > ((HEAP32[$3 >> 2] | 0) - $7 | 0) >>> 0) { + __ZNSt3__16vectorIhNS_9allocatorIhEEE10deallocateEv($this); + if (($2 | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $33 = (HEAP32[$3 >> 2] | 0) - (HEAP32[$this >> 2] | 0) | 0; + if ($33 >>> 0 < 1073741823) { + $35 = $33 << 1; + $$0$i1 = $35 >>> 0 < $2 >>> 0 ? $2 : $35; + } else $$0$i1 = 2147483647; + __ZNSt3__16vectorIhNS_9allocatorIhEEE8allocateEj($this, $$0$i1); + $38 = $this + 4 | 0; + if (($__first | 0) != ($__last | 0)) { + $$0$i12 = $__first; + do { + HEAP8[HEAP32[$38 >> 2] >> 0] = HEAP8[$$0$i12 >> 0] | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1; + $$0$i12 = $$0$i12 + 1 | 0; + } while (($$0$i12 | 0) != ($__last | 0)); } - if (!$4) $contrastMin$0$lcssa = 255; else { - $contrastMin$098 = 255; - $i$399 = 0; + } else { + $10 = $this + 4 | 0; + $13 = (HEAP32[$10 >> 2] | 0) - $7 | 0; + if ($2 >>> 0 > $13 >>> 0) { + $15 = $__first + $13 | 0; + _memmove($5 | 0, $__first | 0, $13 | 0) | 0; + if (($15 | 0) == ($__last | 0)) break; else $$0$i213 = $15; while (1) { - $83 = $data + $i$399 | 0; - $85 = HEAPU8[$83 >> 0] | 0; - $86 = $85 - $36 | 0; - $$ = ($86 | 0) < 0 ? 0 - $86 | 0 : $86; - $contrastMin$1 = ($$ | 0) < ($contrastMin$098 | 0) ? $$ : $contrastMin$098; - HEAP8[$83 >> 0] = $85 >>> 0 < $36 >>> 0 & 1; - $i$399 = $i$399 + 1 | 0; - if (($i$399 | 0) >= ($4 | 0)) { - $contrastMin$0$lcssa = $contrastMin$1; + HEAP8[HEAP32[$10 >> 2] >> 0] = HEAP8[$$0$i213 >> 0] | 0; + HEAP32[$10 >> 2] = (HEAP32[$10 >> 2] | 0) + 1; + $$0$i213 = $$0$i213 + 1 | 0; + if (($$0$i213 | 0) == ($__last | 0)) break L1; + } + } + _memmove($5 | 0, $__first | 0, $2 | 0) | 0; + $23 = $5 + $2 | 0; + $$pre$i$i = HEAP32[$10 >> 2] | 0; + if (($$pre$i$i | 0) != ($23 | 0)) { + $26 = $$pre$i$i; + while (1) { + $25 = $26 + -1 | 0; + if (($25 | 0) == ($23 | 0)) { + $$lcssa = $25; break; - } else $contrastMin$098 = $contrastMin$1; + } else $26 = $25; } + HEAP32[$10 >> 2] = $$lcssa; } - switch (HEAP32[$dir >> 2] | 0) { - case 0: - { - if (($size | 0) > 0) { - $exitcond64 = ($size | 0) == 0; - $227 = 0; - $228 = 0; - $j$067 = 0; - while (1) { - $102 = ($j$067 | 0) == ($1 | 0); - $103 = Math_imul($j$067, $size) | 0; - if ($exitcond64) { - $229 = $227; - $230 = $228; - } else { - $108 = $227; - $109 = $228; - $i$465 = 0; - while (1) { - if (!($i$465 | $j$067)) { - $231 = $108; - $232 = $109; - } else if ($102 & (($i$465 | 0) == 0 | ($i$465 | 0) == ($1 | 0))) { - $231 = $108; - $232 = $109; - } else { - $110 = _bitshift64Shl($108 | 0, $109 | 0, 1) | 0; - $231 = (HEAP8[$data + ($i$465 + $103) >> 0] | 0) != 0 | $110; - $232 = tempRet0; - } - $i$465 = $i$465 + 1 | 0; - if (($i$465 | 0) == ($size | 0)) { - $229 = $231; - $230 = $232; - break; - } else { - $108 = $231; - $109 = $232; - } - } - } - $j$067 = $j$067 + 1 | 0; - if (($j$067 | 0) >= ($size | 0)) { - $182 = $229; - $206 = $230; - break; - } else { - $227 = $229; - $228 = $230; - } - } - } else { - $182 = 0; - $206 = 0; - } + } while (0); + return; +} + +function _prepare_for_output_pass($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $14 = 0, $2 = 0, $35 = 0, $73 = 0, $76 = 0, $81 = 0, $82 = 0; + $1 = HEAP32[$cinfo + 420 >> 2] | 0; + $2 = $1 + 8 | 0; + if (!(HEAP32[$2 >> 2] | 0)) { + $14 = $cinfo + 84 | 0; + do if (HEAP32[$14 >> 2] | 0) if (!(HEAP32[$cinfo + 136 >> 2] | 0)) { + if (HEAP32[$cinfo + 92 >> 2] | 0) if (HEAP32[$cinfo + 108 >> 2] | 0) { + HEAP32[$cinfo + 460 >> 2] = HEAP32[$1 + 24 >> 2]; + HEAP32[$2 >> 2] = 1; break; } - case 1: - { - if (($size | 0) > 0) { - $100 = ($size | 0) > 0; - $225 = 0; - $226 = 0; - $i$576 = 0; + if (!(HEAP32[$cinfo + 100 >> 2] | 0)) { + $35 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$35 + 20 >> 2] = 46; + FUNCTION_TABLE_vi[HEAP32[$35 >> 2] & 255]($cinfo); + break; + } else { + HEAP32[$cinfo + 460 >> 2] = HEAP32[$1 + 20 >> 2]; + break; + } + } while (0); + FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo + 448 >> 2] >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 428 >> 2] | 0) + 8 >> 2] & 255]($cinfo); + if (!(HEAP32[$cinfo + 68 >> 2] | 0)) { + if (!(HEAP32[$1 + 16 >> 2] | 0)) FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo + 456 >> 2] >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo + 452 >> 2] >> 2] & 255]($cinfo); + if (HEAP32[$14 >> 2] | 0) FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 460 >> 2] >> 2] & 63]($cinfo, HEAP32[$2 >> 2] | 0); + FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 432 >> 2] >> 2] & 63]($cinfo, (HEAP32[$2 >> 2] | 0) != 0 ? 3 : 0); + FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 424 >> 2] >> 2] & 63]($cinfo, 0); + } + } else { + HEAP32[$2 >> 2] = 0; + FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 460 >> 2] >> 2] & 63]($cinfo, 0); + FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 432 >> 2] >> 2] & 63]($cinfo, 2); + FUNCTION_TABLE_vii[HEAP32[HEAP32[$cinfo + 424 >> 2] >> 2] & 63]($cinfo, 2); + } + $73 = HEAP32[$cinfo + 8 >> 2] | 0; + if ($73) { + $76 = HEAP32[$1 + 12 >> 2] | 0; + HEAP32[$73 + 12 >> 2] = $76; + $81 = ((HEAP32[$2 >> 2] | 0) != 0 ? 2 : 1) + $76 | 0; + $82 = $73 + 16 | 0; + HEAP32[$82 >> 2] = $81; + if (HEAP32[$cinfo + 64 >> 2] | 0) if (!(HEAP32[(HEAP32[$cinfo + 436 >> 2] | 0) + 20 >> 2] | 0)) HEAP32[$82 >> 2] = $81 + ((HEAP32[$cinfo + 108 >> 2] | 0) != 0 ? 2 : 1); + } + return; +} + +function _arGetTransMatSquareCont($handle, $marker_info, $initConv, $width, $conv) { + $handle = $handle | 0; + $marker_info = $marker_info | 0; + $initConv = $initConv | 0; + $width = +$width; + $conv = $conv | 0; + var $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $50 = 0, $data = 0, $err = 0, $screenCoord = 0, $worldCoord = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $screenCoord = sp + 104 | 0; + $worldCoord = sp + 8 | 0; + $data = sp + 168 | 0; + $err = sp; + $1 = HEAP32[$marker_info + 16 >> 2] | 0; + $3 = (4 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3]; + HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3]; + $10 = (5 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3]; + HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3]; + $18 = (6 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3]; + HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3]; + $26 = (7 - $1 | 0) % 4 | 0; + HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3]; + HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3]; + $33 = $width * -.5; + HEAPF64[$worldCoord >> 3] = $33; + $34 = $width * .5; + HEAPF64[$worldCoord + 8 >> 3] = $34; + HEAPF64[$worldCoord + 16 >> 3] = 0.0; + HEAPF64[$worldCoord + 24 >> 3] = $34; + HEAPF64[$worldCoord + 32 >> 3] = $34; + HEAPF64[$worldCoord + 40 >> 3] = 0.0; + HEAPF64[$worldCoord + 48 >> 3] = $34; + HEAPF64[$worldCoord + 56 >> 3] = $33; + HEAPF64[$worldCoord + 64 >> 3] = 0.0; + HEAPF64[$worldCoord + 72 >> 3] = $33; + HEAPF64[$worldCoord + 80 >> 3] = $33; + HEAPF64[$worldCoord + 88 >> 3] = 0.0; + HEAP32[$data >> 2] = $screenCoord; + HEAP32[$data + 4 >> 2] = $worldCoord; + HEAP32[$data + 8 >> 2] = 4; + $50 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0; + STACKTOP = sp; + return +($50 ? 1.0e8 : +HEAPF64[$err >> 3]); +} + +function __ZN6vision11FindInliersERNSt3__16vectorINS_7match_tENS0_9allocatorIS2_EEEEPKfRKNS1_INS_12FeaturePointENS3_IS9_EEEESD_RKS5_f($inliers, $H, $p1, $p2, $matches, $threshold) { + $inliers = $inliers | 0; + $H = $H | 0; + $p1 = $p1 | 0; + $p2 = $p2 | 0; + $matches = $matches | 0; + $threshold = +$threshold; + var $0 = 0.0, $1 = 0, $10 = 0, $12 = 0, $15 = 0, $16 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0.0, $34 = 0.0, $38 = 0, $41 = 0, $46 = 0, $47 = 0, $8 = 0, $9 = 0, $i$01 = 0, $xp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $xp = sp; + $0 = $threshold * $threshold; + $1 = $matches + 4 | 0; + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE7reserveEj($inliers, (HEAP32[$1 >> 2] | 0) - (HEAP32[$matches >> 2] | 0) >> 3); + $8 = $xp + 4 | 0; + $9 = $inliers + 4 | 0; + $10 = $inliers + 8 | 0; + $12 = HEAP32[$matches >> 2] | 0; + if ((HEAP32[$1 >> 2] | 0) != ($12 | 0)) { + $15 = $12; + $i$01 = 0; + do { + $16 = HEAP32[$15 + ($i$01 << 3) + 4 >> 2] | 0; + $17 = HEAP32[$p2 >> 2] | 0; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvRT_S2_PKS1_S1_S1_($xp, $8, $H, +HEAPF32[$17 + ($16 * 20 | 0) >> 2], +HEAPF32[$17 + ($16 * 20 | 0) + 4 >> 2]); + $24 = (HEAP32[$matches >> 2] | 0) + ($i$01 << 3) | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = HEAP32[$p1 >> 2] | 0; + $29 = +HEAPF32[$xp >> 2] - +HEAPF32[$26 + ($25 * 20 | 0) >> 2]; + $34 = +HEAPF32[$8 >> 2] - +HEAPF32[$26 + ($25 * 20 | 0) + 4 >> 2]; + do if ($29 * $29 + $34 * $34 <= $0) { + $38 = HEAP32[$9 >> 2] | 0; + if (($38 | 0) == (HEAP32[$10 >> 2] | 0)) { + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($inliers, $24); + break; + } else { + $41 = $24; + $46 = HEAP32[$41 + 4 >> 2] | 0; + $47 = $38; + HEAP32[$47 >> 2] = HEAP32[$41 >> 2]; + HEAP32[$47 + 4 >> 2] = $46; + HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 8; + break; + } + } while (0); + $i$01 = $i$01 + 1 | 0; + $15 = HEAP32[$matches >> 2] | 0; + } while ($i$01 >>> 0 < (HEAP32[$1 >> 2] | 0) - $15 >> 3 >>> 0); + } + STACKTOP = sp; + return; +} + +function _create_colorindex($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $11 = 0, $13 = 0, $14 = 0, $20 = 0, $23 = 0, $28 = 0, $29 = 0, $31 = 0, $34 = 0, $39 = 0, $4 = 0, $42 = 0, $45 = 0, $blksize$011 = 0, $i$010 = 0, $j$06 = 0, $j$19 = 0, $k$07 = 0, $k$1$lcssa = 0, $val$08 = 0, $val$1$lcssa = 0, $val$14 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $4 = (HEAP32[$cinfo + 88 >> 2] | 0) == 1; + HEAP32[$1 + 28 >> 2] = $4 & 1; + $11 = $cinfo + 120 | 0; + $13 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 8 >> 2] & 15]($cinfo, 1, $4 ? 766 : 256, HEAP32[$11 >> 2] | 0) | 0; + $14 = $1 + 24 | 0; + HEAP32[$14 >> 2] = $13; + if ((HEAP32[$11 >> 2] | 0) > 0) { + $blksize$011 = HEAP32[$1 + 20 >> 2] | 0; + $i$010 = 0; + do { + $20 = HEAP32[$1 + 32 + ($i$010 << 2) >> 2] | 0; + $blksize$011 = ($blksize$011 | 0) / ($20 | 0) | 0; + if ($4) { + $23 = (HEAP32[$14 >> 2] | 0) + ($i$010 << 2) | 0; + HEAP32[$23 >> 2] = (HEAP32[$23 >> 2] | 0) + 255; + } + $28 = HEAP32[(HEAP32[$14 >> 2] | 0) + ($i$010 << 2) >> 2] | 0; + $29 = $20 + -1 | 0; + $31 = $29 << 1; + $j$06 = 0; + $k$07 = ($20 + 254 | 0) / ($31 | 0) | 0; + $val$08 = 0; + while (1) { + if (($j$06 | 0) > ($k$07 | 0)) { + $val$14 = $val$08; while (1) { - $120 = ($i$576 | 0) == 0; - $121 = ($i$576 | 0) == ($1 | 0); - if ($100) { - $124 = $225; - $125 = $226; - $j$171 = $1; - while (1) { - $122 = ($j$171 | 0) == ($1 | 0); - if ($120 & $122) { - $235 = $124; - $236 = $125; - } else if ($121 & ($122 | ($j$171 | 0) == 0)) { - $235 = $124; - $236 = $125; - } else { - $126 = _bitshift64Shl($124 | 0, $125 | 0, 1) | 0; - $130 = $data + ((Math_imul($j$171, $size) | 0) + $i$576) | 0; - $235 = (HEAP8[$130 >> 0] | 0) != 0 | $126; - $236 = tempRet0; - } - if (($j$171 | 0) > 0) { - $124 = $235; - $125 = $236; - $j$171 = $j$171 + -1 | 0; - } else { - $233 = $235; - $234 = $236; - break; - } - } - } else { - $233 = $225; - $234 = $226; - } - $i$576 = $i$576 + 1 | 0; - if (($i$576 | 0) >= ($size | 0)) { - $182 = $233; - $206 = $234; + $34 = $val$14 + 1 | 0; + $39 = ((($34 << 1 | 1) * 255 | 0) + $29 | 0) / ($31 | 0) | 0; + if (($j$06 | 0) > ($39 | 0)) $val$14 = $34; else { + $k$1$lcssa = $39; + $val$1$lcssa = $34; break; - } else { - $225 = $233; - $226 = $234; } } } else { - $182 = 0; - $206 = 0; + $k$1$lcssa = $k$07; + $val$1$lcssa = $val$08; + } + $42 = (Math_imul($val$1$lcssa, $blksize$011) | 0) & 255; + HEAP8[$28 + $j$06 >> 0] = $42; + $j$06 = $j$06 + 1 | 0; + if (($j$06 | 0) == 256) break; else { + $k$07 = $k$1$lcssa; + $val$08 = $val$1$lcssa; } - break; } - case 2: - { - if (($size | 0) > 0) { - $98 = ($size | 0) > 0; - $223 = 0; - $224 = 0; - $j$285 = $1; + if ($4) { + $45 = $28 + 255 | 0; + $j$19 = 1; + do { + HEAP8[$28 + (0 - $j$19) >> 0] = HEAP8[$28 >> 0] | 0; + HEAP8[$28 + ($j$19 + 255) >> 0] = HEAP8[$45 >> 0] | 0; + $j$19 = $j$19 + 1 | 0; + } while (($j$19 | 0) != 256); + } + $i$010 = $i$010 + 1 | 0; + } while (($i$010 | 0) < (HEAP32[$11 >> 2] | 0)); + } + return; +} + +function _sep_upsample($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$ = 0, $1 = 0, $2 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $32 = 0, $33 = 0, $4 = 0, $46 = 0, $5 = 0, $7 = 0, $ci$01 = 0, $compptr$02 = 0, $num_rows$1 = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + $2 = $1 + 92 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $4 = $cinfo + 312 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if (($3 | 0) < ($5 | 0)) { + $27 = $5; + $28 = $3; + } else { + $7 = $cinfo + 36 | 0; + if ((HEAP32[$7 >> 2] | 0) > 0) { + $ci$01 = 0; + $compptr$02 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $20 = (HEAP32[$input_buf + ($ci$01 << 2) >> 2] | 0) + ((Math_imul(HEAP32[$1 + 100 + ($ci$01 << 2) >> 2] | 0, HEAP32[$in_row_group_ctr >> 2] | 0) | 0) << 2) | 0; + FUNCTION_TABLE_viiii[HEAP32[$1 + 52 + ($ci$01 << 2) >> 2] & 31]($cinfo, $compptr$02, $20, $1 + 12 + ($ci$01 << 2) | 0); + $ci$01 = $ci$01 + 1 | 0; + if (($ci$01 | 0) >= (HEAP32[$7 >> 2] | 0)) break; else $compptr$02 = $compptr$02 + 84 | 0; + } + } + HEAP32[$2 >> 2] = 0; + $27 = HEAP32[$4 >> 2] | 0; + $28 = 0; + } + $26 = $27 - $28 | 0; + $29 = $1 + 96 | 0; + $30 = HEAP32[$29 >> 2] | 0; + $$ = $26 >>> 0 > $30 >>> 0 ? $30 : $26; + $32 = HEAP32[$out_row_ctr >> 2] | 0; + $33 = $out_rows_avail - $32 | 0; + $num_rows$1 = $$ >>> 0 > $33 >>> 0 ? $33 : $$; + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$cinfo + 456 >> 2] | 0) + 4 >> 2] & 31]($cinfo, $1 + 12 | 0, $28, $output_buf + ($32 << 2) | 0, $num_rows$1); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + $num_rows$1; + HEAP32[$29 >> 2] = (HEAP32[$29 >> 2] | 0) - $num_rows$1; + $46 = (HEAP32[$2 >> 2] | 0) + $num_rows$1 | 0; + HEAP32[$2 >> 2] = $46; + if (($46 | 0) >= (HEAP32[$4 >> 2] | 0)) HEAP32[$in_row_group_ctr >> 2] = (HEAP32[$in_row_group_ctr >> 2] | 0) + 1; + return; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis1IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $14 = 0.0, $15 = 0.0, $17 = 0.0, $19 = 0.0, $2 = 0, $21 = 0.0, $23 = 0.0, $25 = 0.0, $27 = 0, $29 = 0.0, $4 = 0, $6 = 0, $8 = 0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 36 | 0; + $1 = $A + 36 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $Q, $1); + $2 = $Q + 72 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($2, $Q, $A + 72 | 0); + $4 = $Q + 108 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($4, $Q, $A + 108 | 0); + $6 = $Q + 144 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($6, $Q, $A + 144 | 0); + $8 = $Q + 180 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($8, $Q, $A + 180 | 0); + $10 = $Q + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($10, $Q, $A + 216 | 0); + $12 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($12, $Q, $A + 252 | 0); + $14 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $14; + $15 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($2, $2); + HEAPF32[$ss + 4 >> 2] = $15; + $17 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($4, $4); + HEAPF32[$ss + 8 >> 2] = $17; + $19 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($6, $6); + HEAPF32[$ss + 12 >> 2] = $19; + $21 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($8, $8); + HEAPF32[$ss + 16 >> 2] = $21; + $23 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($10, $10); + HEAPF32[$ss + 20 >> 2] = $23; + $25 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($12, $12); + HEAPF32[$ss + 24 >> 2] = $25; + $27 = __ZN6vision9MaxIndex7IfEEiPKT_($ss) | 0; + $29 = +HEAPF32[$ss + ($27 << 2) >> 2]; + if ($29 == 0.0) $$0 = 0; else { + $$sum = ($27 * 9 | 0) + 9 | 0; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($1, $A + ($$sum << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$29)); + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision21HoughSimilarityVoting11voteAtIndexEij($this, $index, $weight) { + $this = $this | 0; + $index = $index | 0; + $weight = $weight | 0; + var $0 = 0, $1 = 0, $14 = 0, $15 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $27 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 16 | 0; + $1 = sp; + $2 = sp + 8 | 0; + if (($index | 0) <= -1) { + $9 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 32173) | 0, 32052) | 0, 34302) | 0, 290) | 0, 34309) | 0, 32207) | 0; + $14 = __ZNKSt3__18ios_base6getlocEv($9 + (HEAP32[(HEAP32[$9 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $14; + $15 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$15 >> 2] | 0) + 28 >> 2] & 63]($15, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($9, $19) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($9) | 0; + _abort(); + } + HEAP32[$2 >> 2] = $index; + $20 = $this + 92 | 0; + $21 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE4findIjEENS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEERKT_($20, $2) | 0; + if (!$21) { + $23 = $1; + HEAP32[$23 >> 2] = $index; + HEAP32[$23 + 4 >> 2] = $weight; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE15__insert_uniqueERKS2_($0, $20, $1); + } else { + $27 = $21 + 12 | 0; + HEAP32[$27 >> 2] = (HEAP32[$27 >> 2] | 0) + $weight; + } + STACKTOP = sp; + return; +} + +function _jinit_merged_upsampler($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $10 = 0, $15 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $31 = 0, $32 = 0, $35 = 0, $36 = 0, $39 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $52 = 0, $55 = 0, $i$0$i2 = 0, $x$0$i3 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 48) | 0; + $4 = $cinfo + 452 | 0; + HEAP32[$4 >> 2] = $3; + HEAP32[$3 >> 2] = 127; + HEAP32[$3 + 8 >> 2] = 0; + $10 = Math_imul(HEAP32[$cinfo + 120 >> 2] | 0, HEAP32[$cinfo + 112 >> 2] | 0) | 0; + HEAP32[$3 + 40 >> 2] = $10; + $15 = $3 + 4 | 0; + if ((HEAP32[$cinfo + 312 >> 2] | 0) == 2) { + HEAP32[$15 >> 2] = 1; + HEAP32[$3 + 12 >> 2] = 8; + $20 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, $10) | 0; + HEAP32[$3 + 32 >> 2] = $20; + $28 = HEAP32[$4 >> 2] | 0; + } else { + HEAP32[$15 >> 2] = 2; + HEAP32[$3 + 12 >> 2] = 9; + HEAP32[$3 + 32 >> 2] = 0; + $28 = $3; + } + $26 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $27 = $28 + 16 | 0; + HEAP32[$27 >> 2] = $26; + $31 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $32 = $28 + 20 | 0; + HEAP32[$32 >> 2] = $31; + $35 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $36 = $28 + 24 | 0; + HEAP32[$36 >> 2] = $35; + $39 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + HEAP32[$28 + 28 >> 2] = $39; + $41 = HEAP32[$27 >> 2] | 0; + $42 = HEAP32[$32 >> 2] | 0; + $43 = HEAP32[$36 >> 2] | 0; + $i$0$i2 = 0; + $x$0$i3 = -128; + while (1) { + HEAP32[$41 + ($i$0$i2 << 2) >> 2] = ($x$0$i3 * 91881 | 0) + 32768 >> 16; + HEAP32[$42 + ($i$0$i2 << 2) >> 2] = ($x$0$i3 * 116130 | 0) + 32768 >> 16; + $52 = Math_imul($x$0$i3, -46802) | 0; + HEAP32[$43 + ($i$0$i2 << 2) >> 2] = $52; + $55 = (Math_imul($x$0$i3, -22554) | 0) + 32768 | 0; + HEAP32[$39 + ($i$0$i2 << 2) >> 2] = $55; + $i$0$i2 = $i$0$i2 + 1 | 0; + if (($i$0$i2 | 0) == 256) break; else $x$0$i3 = $x$0$i3 + 1 | 0; + } + return; +} + +function __ZNSt3__116__selection_sortIRNS_7greaterINS_4pairIfjEEEENS_11__wrap_iterIPS3_EEEEvT0_S9_T_($__first, $__last, $__comp) { + $__first = $__first | 0; + $__last = $__last | 0; + $__comp = $__comp | 0; + var $$in = 0, $$in13 = 0, $$in16 = 0, $$in16$lcssa = 0, $$lcssa22 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0.0, $12 = 0.0, $15 = 0, $19 = 0, $19$phi = 0, $2 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $5 = 0, $9 = 0; + $1 = HEAP32[$__last >> 2] | 0; + $2 = $1 + -8 | 0; + $$pre = HEAP32[$__first >> 2] | 0; + if (($$pre | 0) != ($2 | 0)) { + $$in13 = $$pre; + while (1) { + L4 : do if (($$in13 | 0) == ($1 | 0)) $23 = $1; else { + $5 = $$in13 + 8 | 0; + if (($5 | 0) == ($1 | 0)) $23 = $$in13; else { + $$in = $5; + $10 = $$in13; while (1) { - $or$cond734 = ($j$285 | 0) == ($1 | 0) | ($j$285 | 0) == 0; - $140 = Math_imul($j$285, $size) | 0; - if ($98) { - $144 = $223; - $145 = $224; - $i$680 = $1; - while (1) { - if ($or$cond734 & ($i$680 | 0) == ($1 | 0) | ($i$680 | $j$285 | 0) == 0) { - $239 = $144; - $240 = $145; - } else { - $146 = _bitshift64Shl($144 | 0, $145 | 0, 1) | 0; - $239 = (HEAP8[$data + ($i$680 + $140) >> 0] | 0) != 0 | $146; - $240 = tempRet0; - } - if (($i$680 | 0) > 0) { - $144 = $239; - $145 = $240; - $i$680 = $i$680 + -1 | 0; - } else { - $237 = $239; - $238 = $240; - break; - } + $9 = $10 + 4 | 0; + $11 = +HEAPF32[$10 >> 2]; + $$in16 = $$in; + $19 = $10; + while (1) { + $12 = +HEAPF32[$$in16 >> 2]; + if ($11 < $12) { + $$in16$lcssa = $$in16; + break; + } + if (!($12 < $11)) if ((HEAP32[$9 >> 2] | 0) >>> 0 < (HEAP32[$19 + 12 >> 2] | 0) >>> 0) { + $$in16$lcssa = $$in16; + break; + } + $15 = $$in16 + 8 | 0; + if (($15 | 0) == ($1 | 0)) { + $23 = $10; + break L4; + } else { + $19$phi = $$in16; + $$in16 = $15; + $19 = $19$phi; } - } else { - $237 = $223; - $238 = $224; } - if (($j$285 | 0) > 0) { - $223 = $237; - $224 = $238; - $j$285 = $j$285 + -1 | 0; - } else { - $182 = $237; - $206 = $238; + $$in = $$in16$lcssa + 8 | 0; + if (($$in | 0) == ($1 | 0)) { + $23 = $$in16$lcssa; break; - } + } else $10 = $$in16$lcssa; } - } else { - $182 = 0; - $206 = 0; } + } while (0); + if (($23 | 0) != ($$in13 | 0)) { + $24 = HEAP32[$$in13 >> 2] | 0; + HEAP32[$$in13 >> 2] = HEAP32[$23 >> 2]; + HEAP32[$23 >> 2] = $24; + $26 = $$in13 + 4 | 0; + $27 = $23 + 4 | 0; + $28 = HEAP32[$26 >> 2] | 0; + HEAP32[$26 >> 2] = HEAP32[$27 >> 2]; + HEAP32[$27 >> 2] = $28; + } + $30 = $$in13 + 8 | 0; + if (($30 | 0) == ($2 | 0)) { + $$lcssa22 = $30; + break; + } else $$in13 = $30; + } + HEAP32[$__first >> 2] = $$lcssa22; + } + return; +} + +function __ZN6vision21OrientationAssignment16computeGradientsEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $0 = 0, $1 = 0, $19 = 0, $2 = 0, $24 = 0, $25 = 0, $29 = 0, $3 = 0, $5 = 0, $8 = 0, $9 = 0, $i$01 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $1 = $pyramid + 8 | 0; + $2 = $pyramid + 4 | 0; + $3 = $this + 40 | 0; + $5 = HEAP32[$2 >> 2] | 0; + L1 : do if ((HEAP32[$1 >> 2] | 0) != ($5 | 0)) { + $8 = $5; + $i$01 = 0; + while (1) { + $9 = HEAP32[$8 + ($i$01 << 5) + 4 >> 2] | 0; + if (($9 | 0) != ((HEAP32[$8 + ($i$01 << 5) + 12 >> 2] | 0) >>> 2 | 0)) break; + __ZN6vision21ComputePolarGradientsEPfPKfjj(HEAP32[(HEAP32[$3 >> 2] | 0) + ($i$01 << 5) + 24 >> 2] | 0, HEAP32[$8 + ($i$01 << 5) + 24 >> 2] | 0, $9, HEAP32[$8 + ($i$01 << 5) + 8 >> 2] | 0); + $i$01 = $i$01 + 1 | 0; + $8 = HEAP32[$2 >> 2] | 0; + if ($i$01 >>> 0 >= (HEAP32[$1 >> 2] | 0) - $8 >> 5 >>> 0) break L1; + } + $19 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 26610) | 0, 26671) | 0, 34302) | 0, 96) | 0, 34309) | 0, 26794) | 0; + $24 = __ZNKSt3__18ios_base6getlocEv($19 + (HEAP32[(HEAP32[$19 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $24; + $25 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $29 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$25 >> 2] | 0) + 28 >> 2] & 63]($25, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($19, $29) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($19) | 0; + _abort(); + } while (0); + STACKTOP = sp; + return; +} + +function _jinit_d_coef_controller($cinfo, $need_full_buffer) { + $cinfo = $cinfo | 0; + $need_full_buffer = $need_full_buffer | 0; + var $$ = 0, $0 = 0, $10 = 0, $15 = 0, $16 = 0, $22 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $44 = 0, $45 = 0, $8 = 0, $9 = 0, $ci$03 = 0, $compptr$02 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 116) | 0; + HEAP32[$cinfo + 428 >> 2] = $3; + HEAP32[$3 >> 2] = 116; + HEAP32[$3 + 8 >> 2] = 117; + HEAP32[$3 + 112 >> 2] = 0; + if (!$need_full_buffer) { + $44 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, 1280) | 0; + $45 = $3 + 32 | 0; + HEAP32[$45 >> 2] = $44; + HEAP32[$45 + 4 >> 2] = $44 + 128; + HEAP32[$45 + 8 >> 2] = $44 + 256; + HEAP32[$45 + 12 >> 2] = $44 + 384; + HEAP32[$45 + 16 >> 2] = $44 + 512; + HEAP32[$45 + 20 >> 2] = $44 + 640; + HEAP32[$45 + 24 >> 2] = $44 + 768; + HEAP32[$45 + 28 >> 2] = $44 + 896; + HEAP32[$45 + 32 >> 2] = $44 + 1024; + HEAP32[$45 + 36 >> 2] = $44 + 1152; + HEAP32[$3 + 4 >> 2] = 68; + HEAP32[$3 + 12 >> 2] = 22; + HEAP32[$3 + 16 >> 2] = 0; + } else { + $8 = $cinfo + 36 | 0; + $9 = $cinfo + 220 | 0; + $10 = $3 + 72 | 0; + if ((HEAP32[$8 >> 2] | 0) > 0) { + $ci$03 = 0; + $compptr$02 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $15 = $compptr$02 + 12 | 0; + $16 = HEAP32[$15 >> 2] | 0; + $$ = (HEAP32[$9 >> 2] | 0) == 0 ? $16 : $16 * 3 | 0; + $22 = HEAP32[(HEAP32[$0 >> 2] | 0) + 20 >> 2] | 0; + $27 = _jround_up(HEAP32[$compptr$02 + 28 >> 2] | 0, HEAP32[$compptr$02 + 8 >> 2] | 0) | 0; + $31 = _jround_up(HEAP32[$compptr$02 + 32 >> 2] | 0, HEAP32[$15 >> 2] | 0) | 0; + $32 = FUNCTION_TABLE_iiiiiii[$22 & 63]($cinfo, 1, 1, $27, $31, $$) | 0; + HEAP32[$10 + ($ci$03 << 2) >> 2] = $32; + $ci$03 = $ci$03 + 1 | 0; + if (($ci$03 | 0) >= (HEAP32[$8 >> 2] | 0)) break; else $compptr$02 = $compptr$02 + 84 | 0; + } + } + HEAP32[$3 + 4 >> 2] = 67; + HEAP32[$3 + 12 >> 2] = 21; + HEAP32[$3 + 16 >> 2] = $10; + } + return; +} + +function ___dynamic_cast($static_ptr, $static_type, $dst_type, $src2dst_offset) { + $static_ptr = $static_ptr | 0; + $static_type = $static_type | 0; + $dst_type = $dst_type | 0; + $src2dst_offset = $src2dst_offset | 0; + var $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $6 = 0, $dst_ptr$0 = 0, $info = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $info = sp; + $0 = HEAP32[$static_ptr >> 2] | 0; + $4 = $static_ptr + (HEAP32[$0 + -8 >> 2] | 0) | 0; + $6 = HEAP32[$0 + -4 >> 2] | 0; + HEAP32[$info >> 2] = $dst_type; + HEAP32[$info + 4 >> 2] = $static_ptr; + HEAP32[$info + 8 >> 2] = $static_type; + HEAP32[$info + 12 >> 2] = $src2dst_offset; + $10 = $info + 16 | 0; + $11 = $info + 20 | 0; + $12 = $info + 24 | 0; + $13 = $info + 28 | 0; + $14 = $info + 32 | 0; + $15 = $info + 40 | 0; + $16 = ($6 | 0) == ($dst_type | 0); + dest = $10; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP16[$10 + 36 >> 1] = 0; + HEAP8[$10 + 38 >> 0] = 0; + L1 : do if ($16) { + HEAP32[$info + 48 >> 2] = 1; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$dst_type >> 2] | 0) + 20 >> 2] & 7]($dst_type, $info, $4, $4, 1, 0); + $dst_ptr$0 = (HEAP32[$12 >> 2] | 0) == 1 ? $4 : 0; + } else { + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$6 >> 2] | 0) + 24 >> 2] & 31]($6, $info, $4, 1, 0); + switch (HEAP32[$info + 36 >> 2] | 0) { + case 0: + { + $dst_ptr$0 = (HEAP32[$15 >> 2] | 0) == 1 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1 ? HEAP32[$11 >> 2] | 0 : 0; + break L1; break; } - case 3: + case 1: + break; + default: { - if (($size | 0) > 0) { - $96 = ($size | 0) > 0; - $221 = 0; - $222 = 0; - $i$794 = $1; - while (1) { - $157 = ($i$794 | 0) == ($1 | 0); - $158 = ($i$794 | 0) == 0; - if ($96) { - $163 = $221; - $164 = $222; - $j$389 = 0; - while (1) { - if ($157 & ($j$389 | 0) == 0 | ($j$389 | $i$794 | 0) == 0 | $158 & ($j$389 | 0) == ($1 | 0)) { - $243 = $163; - $244 = $164; - } else { - $165 = _bitshift64Shl($163 | 0, $164 | 0, 1) | 0; - $169 = $data + ((Math_imul($j$389, $size) | 0) + $i$794) | 0; - $243 = (HEAP8[$169 >> 0] | 0) != 0 | $165; - $244 = tempRet0; - } - $j$389 = $j$389 + 1 | 0; - if (($j$389 | 0) >= ($size | 0)) { - $241 = $243; - $242 = $244; - break; - } else { - $163 = $243; - $164 = $244; - } - } - } else { - $241 = $221; - $242 = $222; - } - if (($i$794 | 0) > 0) { - $221 = $241; - $222 = $242; - $i$794 = $i$794 + -1 | 0; - } else { - $182 = $241; - $206 = $242; - break; - } - } - } else { - $182 = 0; - $206 = 0; + $dst_ptr$0 = 0; + break L1; + } + } + if ((HEAP32[$12 >> 2] | 0) != 1) if (!((HEAP32[$15 >> 2] | 0) == 0 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1)) { + $dst_ptr$0 = 0; + break; + } + $dst_ptr$0 = HEAP32[$10 >> 2] | 0; + } while (0); + STACKTOP = sp; + return $dst_ptr$0 | 0; +} + +function _arImageProcLumaHistAndOtsu($ipi, $dataPtr, $value_p) { + $ipi = $ipi | 0; + $dataPtr = $dataPtr | 0; + $value_p = $value_p | 0; + var $$0 = 0, $$lcssa = 0.0, $0 = 0, $12 = 0.0, $14 = 0, $18 = 0.0, $22 = 0.0, $27 = 0.0, $29 = 0.0, $6 = 0.0, $indvars$iv = 0, $indvars$iv1 = 0, $sum$0 = 0.0, $sumB$0 = 0.0, $sumB$1 = 0.0, $threshold$0 = 0, $threshold$1 = 0, $threshold$2 = 0, $varMax$0 = 0.0, $varMax$1 = 0.0, $wB$0 = 0.0; + $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; + if (($0 | 0) < 0) $$0 = $0; else { + $indvars$iv1 = 1; + $sum$0 = 0.0; + while (1) { + $6 = $sum$0 + +((Math_imul(HEAP32[$ipi + 16 + ($indvars$iv1 << 2) >> 2] | 0, $indvars$iv1) | 0) >>> 0); + $indvars$iv1 = $indvars$iv1 + 1 | 0; + if (($indvars$iv1 | 0) == 256) { + $$lcssa = $6; + break; + } else $sum$0 = $6; + } + $12 = +(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0); + $indvars$iv = 0; + $sumB$0 = 0.0; + $threshold$0 = 0; + $varMax$0 = 0.0; + $wB$0 = 0.0; + while (1) { + $14 = HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0; + $wB$0 = $wB$0 + +($14 >>> 0); + if ($wB$0 != 0.0) { + $18 = $12 - $wB$0; + if ($18 == 0.0) { + $threshold$2 = $threshold$0; + break; + } + $22 = $sumB$0 + +((Math_imul($indvars$iv, $14) | 0) >>> 0); + $27 = $22 / $wB$0 - ($$lcssa - $22) / $18; + $29 = $27 * ($wB$0 * $18 * $27); + if ($29 > $varMax$0) { + $sumB$1 = $22; + $threshold$1 = $indvars$iv & 255; + $varMax$1 = $29; + } else { + $sumB$1 = $22; + $threshold$1 = $threshold$0; + $varMax$1 = $varMax$0; } + } else { + $sumB$1 = $sumB$0; + $threshold$1 = $threshold$0; + $varMax$1 = $varMax$0; + } + if (($indvars$iv & 255) << 24 >> 24 == -1) { + $threshold$2 = $threshold$1; break; + } else { + $indvars$iv = $indvars$iv + 1 | 0; + $sumB$0 = $sumB$1; + $threshold$0 = $threshold$1; + $varMax$0 = $varMax$1; } - default: - { - $182 = 0; - $206 = 0; + } + HEAP8[$value_p >> 0] = $threshold$2; + $$0 = 0; + } + return $$0 | 0; +} + +function _start_pass_huff_decoder($cinfo) { + $cinfo = $cinfo | 0; + var $$sink = 0, $1 = 0, $14 = 0, $18 = 0, $21 = 0, $25 = 0, $27 = 0, $29 = 0, $39 = 0, $53 = 0, $blkn$02 = 0, $ci$03 = 0, label = 0; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + if (!(HEAP32[$cinfo + 400 >> 2] | 0)) if ((HEAP32[$cinfo + 404 >> 2] | 0) == 63) if (!(HEAP32[$cinfo + 408 >> 2] | 0)) { + if (HEAP32[$cinfo + 412 >> 2] | 0) label = 5; + } else label = 5; else label = 5; else label = 5; + if ((label | 0) == 5) { + $14 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$14 + 20 >> 2] = 122; + FUNCTION_TABLE_vii[HEAP32[$14 + 4 >> 2] & 63]($cinfo, -1); + } + $18 = $cinfo + 328 | 0; + if ((HEAP32[$18 >> 2] | 0) > 0) { + $ci$03 = 0; + do { + $25 = HEAP32[$cinfo + 332 + ($ci$03 << 2) >> 2] | 0; + $27 = HEAP32[$25 + 20 >> 2] | 0; + $29 = HEAP32[$25 + 24 >> 2] | 0; + _jpeg_make_d_derived_tbl($cinfo, 1, $27, $1 + 40 + ($27 << 2) | 0); + _jpeg_make_d_derived_tbl($cinfo, 0, $29, $1 + 56 + ($29 << 2) | 0); + HEAP32[$1 + 20 + ($ci$03 << 2) >> 2] = 0; + $ci$03 = $ci$03 + 1 | 0; + } while (($ci$03 | 0) < (HEAP32[$18 >> 2] | 0)); + } + $21 = $cinfo + 356 | 0; + if ((HEAP32[$21 >> 2] | 0) > 0) { + $blkn$02 = 0; + do { + $39 = HEAP32[$cinfo + 332 + (HEAP32[$cinfo + 360 + ($blkn$02 << 2) >> 2] << 2) >> 2] | 0; + HEAP32[$1 + 72 + ($blkn$02 << 2) >> 2] = HEAP32[$1 + 40 + (HEAP32[$39 + 20 >> 2] << 2) >> 2]; + HEAP32[$1 + 112 + ($blkn$02 << 2) >> 2] = HEAP32[$1 + 56 + (HEAP32[$39 + 24 >> 2] << 2) >> 2]; + $53 = $1 + 152 + ($blkn$02 << 2) | 0; + if (!(HEAP32[$39 + 48 >> 2] | 0)) { + HEAP32[$53 >> 2] = 0; + $$sink = 0; + } else { + HEAP32[$53 >> 2] = 1; + $$sink = (HEAP32[$39 + 36 >> 2] | 0) > 1 & 1; + } + HEAP32[$1 + 192 + ($blkn$02 << 2) >> 2] = $$sink; + $blkn$02 = $blkn$02 + 1 | 0; + } while (($blkn$02 | 0) < (HEAP32[$21 >> 2] | 0)); + } + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 + 36 >> 2] = HEAP32[$cinfo + 276 >> 2]; + return; +} + +function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($this) { + $this = $this | 0; + __embind_register_void(816, 49354); + __embind_register_bool(824, 49359, 1, 1, 0); + __embind_register_integer(832, 48941, 1, -128, 127); + __embind_register_integer(848, 48946, 1, -128, 127); + __embind_register_integer(840, 48958, 1, 0, 255); + __embind_register_integer(856, 48972, 2, -32768, 32767); + __embind_register_integer(864, 48978, 2, 0, 65535); + __embind_register_integer(872, 49364, 4, -2147483648, 2147483647); + __embind_register_integer(880, 49368, 4, 0, -1); + __embind_register_integer(888, 49381, 4, -2147483648, 2147483647); + __embind_register_integer(896, 49386, 4, 0, -1); + __embind_register_float(904, 49429, 4); + __embind_register_float(912, 49435, 8); + __embind_register_std_string(520, 48015); + __embind_register_std_string(552, 45823); + __embind_register_std_wstring(576, 4, 45856); + __embind_register_emval(600, 45869); + __embind_register_memory_view(608, 0, 45885); + __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(45915); + __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(45952); + __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(45991); + __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(46022); + __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(46062); + __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(46091); + __embind_register_memory_view(616, 4, 46129); + __embind_register_memory_view(624, 5, 46159); + __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(46198); + __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(46230); + __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(46263); + __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(46296); + __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(46330); + __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(46363); + __embind_register_memory_view(632, 6, 46397); + __embind_register_memory_view(640, 7, 46428); + __embind_register_memory_view(648, 7, 46460); + return; +} + +function ___cxx_global_array_dtor112($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16856); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16844); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16832); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16820); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16808); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16796); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16784); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16772); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16760); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16748); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16736); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16724); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16712); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16700); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16688); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16676); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16664); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16652); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16640); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16628); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16616); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16604); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16592); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(16580); + return; +} + +function ___cxx_global_array_dtor109($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16564); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16552); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16540); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16528); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16516); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16504); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16492); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16480); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16468); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16456); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16444); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16432); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16420); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16408); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16396); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16384); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16372); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16360); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16348); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16336); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16324); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16312); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16300); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(16288); + return; +} + +function ___cxx_global_array_dtor85($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15752); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15740); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15728); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15716); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15704); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15692); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15680); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15668); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15656); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15644); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15632); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15620); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15608); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15596); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15584); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15572); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15560); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15548); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15536); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15524); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15512); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15500); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15488); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(15476); + return; +} + +function ___cxx_global_array_dtor61($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15460); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15448); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15436); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15424); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15412); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15400); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15388); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15376); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15364); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15352); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15340); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15328); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15316); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15304); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15292); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15280); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15268); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15256); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15244); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15232); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15220); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15208); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15196); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(15184); + return; +} + +function _ycc_rgb_convert($cinfo, $input_buf, $input_row, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $input_row = $input_row | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $$016 = 0, $$07 = 0, $$in = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $15 = 0, $22 = 0, $25 = 0, $28 = 0, $3 = 0, $33 = 0, $36 = 0, $39 = 0, $5 = 0, $7 = 0, $9 = 0, $col$04 = 0, $exitcond3 = 0, $outptr$05 = 0, $$in$looptemp = 0; + $1 = HEAP32[$cinfo + 456 >> 2] | 0; + $3 = HEAP32[$cinfo + 112 >> 2] | 0; + $5 = HEAP32[$cinfo + 324 >> 2] | 0; + $7 = HEAP32[$1 + 8 >> 2] | 0; + $9 = HEAP32[$1 + 12 >> 2] | 0; + $11 = HEAP32[$1 + 16 >> 2] | 0; + $13 = HEAP32[$1 + 20 >> 2] | 0; + $14 = $input_buf + 4 | 0; + $15 = $input_buf + 8 | 0; + if (($num_rows | 0) > 0) { + $exitcond3 = ($3 | 0) == 0; + $$016 = $output_buf; + $$07 = $input_row; + $$in = $num_rows; + while (1) { + $$in$looptemp = $$in; + $$in = $$in + -1 | 0; + $22 = HEAP32[(HEAP32[$input_buf >> 2] | 0) + ($$07 << 2) >> 2] | 0; + $25 = HEAP32[(HEAP32[$14 >> 2] | 0) + ($$07 << 2) >> 2] | 0; + $28 = HEAP32[(HEAP32[$15 >> 2] | 0) + ($$07 << 2) >> 2] | 0; + $$07 = $$07 + 1 | 0; + if (!$exitcond3) { + $col$04 = 0; + $outptr$05 = HEAP32[$$016 >> 2] | 0; + while (1) { + $33 = HEAPU8[$22 + $col$04 >> 0] | 0; + $36 = HEAPU8[$25 + $col$04 >> 0] | 0; + $39 = HEAPU8[$28 + $col$04 >> 0] | 0; + HEAP8[$outptr$05 >> 0] = HEAP8[$5 + ((HEAP32[$7 + ($39 << 2) >> 2] | 0) + $33) >> 0] | 0; + HEAP8[$outptr$05 + 1 >> 0] = HEAP8[$5 + (((HEAP32[$11 + ($39 << 2) >> 2] | 0) + (HEAP32[$13 + ($36 << 2) >> 2] | 0) >> 16) + $33) >> 0] | 0; + HEAP8[$outptr$05 + 2 >> 0] = HEAP8[$5 + ((HEAP32[$9 + ($36 << 2) >> 2] | 0) + $33) >> 0] | 0; + $col$04 = $col$04 + 1 | 0; + if (($col$04 | 0) == ($3 | 0)) break; else $outptr$05 = $outptr$05 + 3 | 0; + } } + if (($$in$looptemp | 0) <= 1) break; else $$016 = $$016 + 4 | 0; } - HEAPF64[$cf >> 3] = ($contrastMin$0$lcssa | 0) > 30 ? 1.0 : +($contrastMin$0$lcssa | 0) / 30.0; - switch ($matrixCodeType | 0) { - case 259: - { - $183 = HEAP8[4551 + $182 >> 0] | 0; - $184 = $183 << 24 >> 24; - $187 = $code; - HEAP32[$187 >> 2] = $184; - HEAP32[$187 + 4 >> 2] = (($184 | 0) < 0) << 31 >> 31; - if ($183 << 24 >> 24 < 0) { - HEAP32[$code_out_p >> 2] = -1; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -4; + } + return; +} + +function _arSetPixelFormat($handle, $pixFormat) { + $handle = $handle | 0; + $pixFormat = $pixFormat | 0; + var $$0 = 0, $1 = 0, $14 = 0, $16 = 0, $17 = 0, $4 = 0, $6 = 0, $7 = 0, $monoFormat$0 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + L1 : do if (!$handle) $$0 = -1; else { + $1 = $handle + 4 | 0; + if ((HEAP32[$1 >> 2] | 0) == ($pixFormat | 0)) $$0 = 0; else { + switch ($pixFormat | 0) { + case 11: + case 10: + case 9: + case 8: + case 7: + case 6: + case 4: + case 3: + case 2: + case 1: + case 0: + { + $monoFormat$0 = 0; + break; + } + case 14: + case 13: + case 12: + case 5: + { + $monoFormat$0 = 1; + break; + } + default: + { + HEAP32[$vararg_buffer >> 2] = $pixFormat; + _arLog(3, 18124, $vararg_buffer); + $$0 = -1; break L1; } - break; } - case 515: - { - $193 = HEAP8[4423 + $182 >> 0] | 0; - $194 = $193 << 24 >> 24; - $197 = $code; - HEAP32[$197 >> 2] = $194; - HEAP32[$197 + 4 >> 2] = (($194 | 0) < 0) << 31 >> 31; - if ($errorCorrected) HEAP32[$errorCorrected >> 2] = HEAPU8[4487 + $182 >> 0]; - if ($193 << 24 >> 24 < 0) { - HEAP32[$code_out_p >> 2] = -1; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -4; + HEAP32[$1 >> 2] = $pixFormat; + $4 = _arUtilGetPixelSize($pixFormat) | 0; + HEAP32[$handle + 8 >> 2] = $4; + $6 = $handle + 7062408 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if ($7) { + _arImageProcFinal($7); + $14 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$1 >> 2] | 0, 0) | 0; + HEAP32[$6 >> 2] = $14; + } + $16 = $handle + 24 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (!$monoFormat$0) switch ($17 | 0) { + case 1: + { + HEAP32[$16 >> 2] = 4; + $$0 = 0; break L1; + break; } - break; - } - case 772: - case 1028: - { - $207 = _decode_bch($matrixCodeType, $182, $206, 0, $code) | 0; - if (($207 | 0) < 0) { - HEAP32[$code_out_p >> 2] = -1; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -4; + case 4: + { + HEAP32[$16 >> 2] = 3; + $$0 = 0; + break L1; + break; + } + default: + { + $$0 = 0; + break L1; + } + } else switch ($17 | 0) { + case 0: + { + HEAP32[$16 >> 2] = 1; + $$0 = 0; + break L1; + break; + } + case 3: + { + HEAP32[$16 >> 2] = 4; + $$0 = 0; + break L1; + break; + } + default: + { + $$0 = 0; break L1; } - if (($errorCorrected | 0) != 0 & ($207 | 0) > 0) HEAP32[$errorCorrected >> 2] = $207; - break; - } - default: - { - $211 = $code; - HEAP32[$211 >> 2] = $182; - HEAP32[$211 + 4 >> 2] = $206; } } - HEAP32[$code_out_p >> 2] = HEAP32[$code >> 2]; - $$0 = 0; } while (0); STACKTOP = sp; return $$0 | 0; } -function _decode_bch($matrixCodeType, $0, $1, $recd127, $out_p) { - $matrixCodeType = $matrixCodeType | 0; - $0 = $0 | 0; - $1 = $1 | 0; - $recd127 = $recd127 | 0; - $out_p = $out_p | 0; - var $$ = 0, $$0 = 0, $$lcssa24 = 0, $$lcssa76 = 0, $$lcssa77 = 0, $$pre$phi$lcssaZ2D = 0, $$pre$phiZ2D = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $110 = 0, $114 = 0, $118 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $143 = 0, $154 = 0, $155 = 0, $156 = 0, $159 = 0, $17 = 0, $175 = 0, $182 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $20 = 0, $208 = 0, $209 = 0, $28 = 0, $3 = 0, $30 = 0, $41 = 0, $43 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $58 = 0, $6 = 0, $71 = 0, $73 = 0, $74 = 0, $76 = 0, $78 = 0, $79 = 0, $86 = 0, $alpha_to$0 = 0, $count$036 = 0, $count$1 = 0, $count$1$lcssa = 0, $d = 0, $elp = 0, $i$066 = 0, $i$1035 = 0, $i$1130 = 0, $i$1228 = 0, $i$159 = 0, $i$254 = 0, $i$347 = 0, $i$441 = 0, $i$543 = 0, $i$645 = 0, $i$750 = 0, $i$839 = 0, $i$937 = 0, $index_of$0 = 0, $j$058 = 0, $j$1 = 0, $j$232 = 0, $k$0 = 0, $k$1 = 0, $l = 0, $length$0 = 0, $loc = 0, $n$0 = 0, $q$0 = 0, $q$1 = 0, $q$2 = 0, $q$3 = 0, $q$4$lcssa = 0, $q$433 = 0, $q$5 = 0, $recd$0 = 0, $recd15 = 0, $reg = 0, $s = 0, $syn_error$0$ = 0, $syn_error$0$$lcssa = 0, $syn_error$060 = 0, $t$0 = 0, $t$1 = 0, $u$0 = 0, $u$1 = 0, $u_lu = 0, label = 0, sp = 0, $j$1$looptemp = 0, $u$0$looptemp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 2320 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $recd15 = sp + 2304 | 0; - $elp = sp + 864 | 0; - $d = sp + 784 | 0; - $l = sp + 704 | 0; - $u_lu = sp + 624 | 0; - $s = sp + 548 | 0; - $loc = sp + 40 | 0; - $reg = sp; - switch ($matrixCodeType | 0) { - case 772: - { - $k$0 = 9; - $t$0 = 1; - label = 3; - break; - } - case 1028: +function _confidenceCutoff($arHandle) { + $arHandle = $arHandle | 0; + var $11 = 0, $21 = 0, $3 = 0, $31 = 0, $37 = 0, $6 = 0, $9 = 0, $cfOK$0 = 0, $i$010 = 0, $i$112 = 0, $i$29 = 0; + switch (HEAP32[$arHandle + 24 >> 2] | 0) { + case 1: + case 0: { - $k$0 = 5; - $t$0 = 2; - label = 3; + $6 = HEAP32[$arHandle + 44 >> 2] | 0; + if (($6 | 0) > 0) { + $i$010 = 0; + do { + $11 = $arHandle + 48 + ($i$010 << 8) + 4 | 0; + if ((HEAP32[$11 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$010 << 8) + 32 >> 3] < .5) { + HEAP32[$arHandle + 48 + ($i$010 << 8) + 8 >> 2] = -1; + HEAP32[$11 >> 2] = -1; + HEAP32[$arHandle + 48 + ($i$010 << 8) + 236 >> 2] = 6; + } + $i$010 = $i$010 + 1 | 0; + } while (($i$010 | 0) < ($6 | 0)); + } break; } - case 2830: + case 2: { - $alpha_to$0 = 900; - $index_of$0 = 1472; - $k$1 = 64; - $length$0 = 120; - $n$0 = 127; - $recd$0 = $recd127; - $t$1 = 9; - label = 6; + $3 = HEAP32[$arHandle + 44 >> 2] | 0; + if (($3 | 0) > 0) { + $i$112 = 0; + do { + $21 = $arHandle + 48 + ($i$112 << 8) + 4 | 0; + if ((HEAP32[$21 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$112 << 8) + 32 >> 3] < .5) { + HEAP32[$arHandle + 48 + ($i$112 << 8) + 12 >> 2] = -1; + HEAP32[$21 >> 2] = -1; + HEAP32[$arHandle + 48 + ($i$112 << 8) + 236 >> 2] = 6; + } + $i$112 = $i$112 + 1 | 0; + } while (($i$112 | 0) < ($3 | 0)); + } break; } default: - $$0 = -1; - } - if ((label | 0) == 3) { - $3 = $0; - $6 = $1; - $i$066 = 0; - while (1) { - HEAP8[$recd15 + $i$066 >> 0] = $3 & 1; - $3 = _bitshift64Lshr($3 | 0, $6 | 0, 1) | 0; - $i$066 = $i$066 + 1 | 0; - if (($i$066 | 0) == 13) break; else $6 = tempRet0; + { + $9 = HEAP32[$arHandle + 44 >> 2] | 0; + if (($9 | 0) > 0) { + $i$29 = 0; + do { + $31 = $arHandle + 48 + ($i$29 << 8) + 8 | 0; + if ((HEAP32[$31 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 40 >> 3] < .5) { + HEAP32[$31 >> 2] = -1; + $cfOK$0 = 0; + } else $cfOK$0 = 1; else $cfOK$0 = 1; + $37 = $arHandle + 48 + ($i$29 << 8) + 12 | 0; + if ((HEAP32[$37 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 48 >> 3] < .5) { + HEAP32[$37 >> 2] = -1; + if (!$cfOK$0) HEAP32[$arHandle + 48 + ($i$29 << 8) + 236 >> 2] = 6; + } + $i$29 = $i$29 + 1 | 0; + } while (($i$29 | 0) < ($9 | 0)); + } } - $alpha_to$0 = 840; - $index_of$0 = 1408; - $k$1 = $k$0; - $length$0 = 13; - $n$0 = 15; - $recd$0 = $recd15; - $t$1 = $t$0; - label = 6; } - do if ((label | 0) == 6) { - $10 = $t$1 << 1; - $i$159 = 1; - $syn_error$060 = 0; - while (1) { - $11 = $s + ($i$159 << 2) | 0; - HEAP32[$11 >> 2] = 0; - $20 = 0; - $j$058 = 0; - while (1) { - if (!(HEAP8[$recd$0 + $j$058 >> 0] | 0)) $208 = $20; else { - $17 = $alpha_to$0 + (((Math_imul($j$058, $i$159) | 0) % ($n$0 | 0) | 0) << 2) | 0; - $19 = $20 ^ HEAP32[$17 >> 2]; - HEAP32[$11 >> 2] = $19; - $208 = $19; - } - $j$058 = $j$058 + 1 | 0; - if (($j$058 | 0) >= ($length$0 | 0)) { - $$lcssa77 = $208; - break; - } else $20 = $208; - } - $syn_error$0$ = ($$lcssa77 | 0) == 0 ? $syn_error$060 : 1; - HEAP32[$11 >> 2] = HEAP32[$index_of$0 + ($$lcssa77 << 2) >> 2]; - if (($i$159 | 0) < ($10 | 0)) { - $i$159 = $i$159 + 1 | 0; - $syn_error$060 = $syn_error$0$; + return; +} + +function _jpeg_start_decompress($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $17 = 0, $18 = 0, $22 = 0, $24 = 0, $25 = 0, $26 = 0, $33 = 0, $5 = 0, label = 0; + $0 = $cinfo + 20 | 0; + $1 = HEAP32[$0 >> 2] | 0; + L1 : do switch ($1 | 0) { + case 202: + { + _jinit_master_decompress($cinfo); + if (!(HEAP32[$cinfo + 64 >> 2] | 0)) { + HEAP32[$0 >> 2] = 203; + label = 5; + break L1; } else { - $syn_error$0$$lcssa = $syn_error$0$; - break; + HEAP32[$0 >> 2] = 207; + $$0 = 1; + break L1; } + break; } - $28 = ($syn_error$0$$lcssa | 0) != 0; - if ($28) { - HEAP32[$d >> 2] = 0; - $30 = HEAP32[$s + 4 >> 2] | 0; - HEAP32[$d + 4 >> 2] = $30; - HEAP32[$elp >> 2] = 0; - HEAP32[$elp + 72 >> 2] = 1; - if (($10 | 0) > 1) { - $i$254 = 1; - do { - HEAP32[$elp + ($i$254 << 2) >> 2] = -1; - HEAP32[$elp + 72 + ($i$254 << 2) >> 2] = 0; - $i$254 = $i$254 + 1 | 0; - } while (($i$254 | 0) < ($10 | 0)); - } - HEAP32[$l >> 2] = 0; - HEAP32[$l + 4 >> 2] = 0; - HEAP32[$u_lu >> 2] = -1; - HEAP32[$u_lu + 4 >> 2] = 0; - $43 = $30; - $46 = 0; - $u$0 = 0; + case 203: + { + label = 5; + break; + } + case 204: + { + label = 15; + break; + } + default: + { + $33 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$33 + 20 >> 2] = 20; + HEAP32[$33 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$33 >> 2] & 255]($cinfo); + label = 15; + } + } while (0); + L7 : do if ((label | 0) == 5) { + $5 = $cinfo + 436 | 0; + L9 : do if (HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] | 0) { + $10 = $cinfo + 8 | 0; + $11 = $cinfo + 320 | 0; + $13 = HEAP32[$10 >> 2] | 0; while (1) { - $u$0$looptemp = $u$0; - $u$0 = $u$0 + 1 | 0; - $41 = $d + ($u$0 << 2) | 0; - if (($43 | 0) == -1) { - $44 = $u$0$looptemp + 2 | 0; - HEAP32[$l + ($44 << 2) >> 2] = $46; - if (($46 | 0) < 0) { - $$pre$phiZ2D = $44; - $110 = $46; - } else { - $i$347 = 0; - while (1) { - $48 = $elp + ($u$0 * 72 | 0) + ($i$347 << 2) | 0; - $49 = HEAP32[$48 >> 2] | 0; - HEAP32[$elp + ($44 * 72 | 0) + ($i$347 << 2) >> 2] = $49; - HEAP32[$48 >> 2] = HEAP32[$index_of$0 + ($49 << 2) >> 2]; - if (($i$347 | 0) < ($46 | 0)) $i$347 = $i$347 + 1 | 0; else { - $$pre$phiZ2D = $44; - $110 = $46; - break; - } - } - } - } else { - $q$0 = $u$0$looptemp; - while (1) { - $58 = ($q$0 | 0) > 0; - if ($58 & (HEAP32[$d + ($q$0 << 2) >> 2] | 0) == -1) $q$0 = $q$0 + -1 | 0; else break; - } - if ($58) { - $j$1 = $q$0; - $q$1 = $q$0; - while (1) { - $j$1$looptemp = $j$1; - $j$1 = $j$1 + -1 | 0; - if ((HEAP32[$d + ($j$1 << 2) >> 2] | 0) == -1) $q$2 = $q$1; else $q$2 = (HEAP32[$u_lu + ($q$1 << 2) >> 2] | 0) < (HEAP32[$u_lu + ($j$1 << 2) >> 2] | 0) ? $j$1 : $q$1; - if (($j$1$looptemp | 0) <= 1) { - $q$3 = $q$2; - break; - } else $q$1 = $q$2; - } - } else $q$3 = $q$0; - $71 = $l + ($q$3 << 2) | 0; - $73 = $u$0 - $q$3 | 0; - $74 = $73 + (HEAP32[$71 >> 2] | 0) | 0; - $76 = $u$0$looptemp + 2 | 0; - $$ = ($46 | 0) > ($74 | 0) ? $46 : $74; - HEAP32[$l + ($76 << 2) >> 2] = $$; - $i$441 = 0; - do { - HEAP32[$elp + ($76 * 72 | 0) + ($i$441 << 2) >> 2] = 0; - $i$441 = $i$441 + 1 | 0; - } while (($i$441 | 0) < ($10 | 0)); - $78 = HEAP32[$71 >> 2] | 0; - $79 = $d + ($q$3 << 2) | 0; - if (($78 | 0) >= 0) { - $i$543 = 0; - while (1) { - $86 = HEAP32[$elp + ($q$3 * 72 | 0) + ($i$543 << 2) >> 2] | 0; - if (($86 | 0) != -1) HEAP32[$elp + ($76 * 72 | 0) + ($73 + $i$543 << 2) >> 2] = HEAP32[$alpha_to$0 + ((($86 + $n$0 + (HEAP32[$41 >> 2] | 0) - (HEAP32[$79 >> 2] | 0) | 0) % ($n$0 | 0) | 0) << 2) >> 2]; - if (($i$543 | 0) < ($78 | 0)) $i$543 = $i$543 + 1 | 0; else break; - } + if ($13) FUNCTION_TABLE_vi[HEAP32[$13 >> 2] & 255]($cinfo); + $17 = FUNCTION_TABLE_ii[HEAP32[HEAP32[$5 >> 2] >> 2] & 127]($cinfo) | 0; + switch ($17 | 0) { + case 0: + { + $$0 = 0; + break L7; + break; } - if (($46 | 0) < 0) { - $$pre$phiZ2D = $76; - $110 = $$; - } else { - $i$645 = 0; - while (1) { - $100 = $elp + ($u$0 * 72 | 0) + ($i$645 << 2) | 0; - $101 = HEAP32[$100 >> 2] | 0; - $102 = $elp + ($76 * 72 | 0) + ($i$645 << 2) | 0; - HEAP32[$102 >> 2] = HEAP32[$102 >> 2] ^ $101; - HEAP32[$100 >> 2] = HEAP32[$index_of$0 + ($101 << 2) >> 2]; - if (($i$645 | 0) < ($46 | 0)) $i$645 = $i$645 + 1 | 0; else { - $$pre$phiZ2D = $76; - $110 = $$; - break; - } - } + case 2: + { + break L9; + break; } + default: + {} } - HEAP32[$u_lu + ($$pre$phiZ2D << 2) >> 2] = $u$0 - $110; - if (($u$0 | 0) >= ($10 | 0)) { - $$lcssa76 = $110; - $$pre$phi$lcssaZ2D = $$pre$phiZ2D; - break; + $18 = HEAP32[$10 >> 2] | 0; + if (!(($17 & -3 | 0) == 1 & ($18 | 0) != 0)) { + $13 = $18; + continue; } - $114 = HEAP32[$s + ($$pre$phiZ2D << 2) >> 2] | 0; - if (($114 | 0) == -1) $$sink = 0; else $$sink = HEAP32[$alpha_to$0 + ($114 << 2) >> 2] | 0; - $118 = $d + ($$pre$phiZ2D << 2) | 0; - HEAP32[$118 >> 2] = $$sink; - if (($110 | 0) < 1) $$lcssa24 = $$sink; else { - $134 = $$sink; - $i$750 = 1; - while (1) { - $122 = HEAP32[$s + ($$pre$phiZ2D - $i$750 << 2) >> 2] | 0; - if (($122 | 0) == -1) $209 = $134; else { - $125 = HEAP32[$elp + ($$pre$phiZ2D * 72 | 0) + ($i$750 << 2) >> 2] | 0; - if (!$125) $209 = $134; else { - $133 = $134 ^ HEAP32[$alpha_to$0 + ((((HEAP32[$index_of$0 + ($125 << 2) >> 2] | 0) + $122 | 0) % ($n$0 | 0) | 0) << 2) >> 2]; - HEAP32[$118 >> 2] = $133; - $209 = $133; - } - } - if (($i$750 | 0) < ($110 | 0)) { - $134 = $209; - $i$750 = $i$750 + 1 | 0; - } else { - $$lcssa24 = $209; - break; - } - } + $22 = $18 + 4 | 0; + $24 = (HEAP32[$22 >> 2] | 0) + 1 | 0; + HEAP32[$22 >> 2] = $24; + $25 = $18 + 8 | 0; + $26 = HEAP32[$25 >> 2] | 0; + if (($24 | 0) < ($26 | 0)) { + $13 = $18; + continue; } - $43 = HEAP32[$index_of$0 + ($$lcssa24 << 2) >> 2] | 0; - HEAP32[$118 >> 2] = $43; - if (($110 | 0) > ($t$1 | 0)) { - $$lcssa76 = $110; - $$pre$phi$lcssaZ2D = $$pre$phiZ2D; - break; - } else $46 = $110; + HEAP32[$25 >> 2] = (HEAP32[$11 >> 2] | 0) + $26; + $13 = $18; } - if (($$lcssa76 | 0) > ($t$1 | 0)) { - $$0 = -1; + } while (0); + HEAP32[$cinfo + 152 >> 2] = HEAP32[$cinfo + 144 >> 2]; + label = 15; + } while (0); + if ((label | 0) == 15) $$0 = _output_pass_setup($cinfo) | 0; + return $$0 | 0; +} + +function __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($__s, $__ob, $__op, $__oe, $__iob, $__fl) { + $__s = $__s | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + var $$sroa$0$1 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $32 = 0, $33 = 0, $5 = 0, $6 = 0, $7 = 0, $__ns$0 = 0, $__sp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__sp = sp; + $0 = HEAP32[$__s >> 2] | 0; + L1 : do if (!$0) $$sroa$0$1 = 0; else { + $2 = $__oe; + $3 = $__ob; + $5 = $2 - $3 >> 2; + $6 = $__iob + 12 | 0; + $7 = HEAP32[$6 >> 2] | 0; + $__ns$0 = ($7 | 0) > ($5 | 0) ? $7 - $5 | 0 : 0; + $10 = $__op; + $11 = $10 - $3 | 0; + $12 = $11 >> 2; + if (($11 | 0) > 0) if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, $__ob, $12) | 0) != ($12 | 0)) { + HEAP32[$__s >> 2] = 0; + $$sroa$0$1 = 0; + break; + } + do if (($__ns$0 | 0) > 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEjw($__sp, $__ns$0, $__fl); + if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, (HEAP8[$__sp >> 0] & 1) == 0 ? $__sp + 4 | 0 : HEAP32[$__sp + 8 >> 2] | 0, $__ns$0) | 0) == ($__ns$0 | 0)) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sp); break; + } else { + HEAP32[$__s >> 2] = 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($__sp); + $$sroa$0$1 = 0; + break L1; } - if (($$lcssa76 | 0) >= 0) { - $i$839 = 0; - while (1) { - $143 = $elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$839 << 2) | 0; - HEAP32[$143 >> 2] = HEAP32[$index_of$0 + (HEAP32[$143 >> 2] << 2) >> 2]; - if (($i$839 | 0) < ($$lcssa76 | 0)) $i$839 = $i$839 + 1 | 0; else break; + } while (0); + $32 = $2 - $10 | 0; + $33 = $32 >> 2; + if (($32 | 0) > 0) if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, $__op, $33) | 0) != ($33 | 0)) { + HEAP32[$__s >> 2] = 0; + $$sroa$0$1 = 0; + break; + } + HEAP32[$6 >> 2] = 0; + $$sroa$0$1 = $0; + } while (0); + STACKTOP = sp; + return $$sroa$0$1 | 0; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwm($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp; + $__fmt = sp + 116 | 0; + $__nar = sp + 104 | 0; + $__o = sp + 20 | 0; + $__op = sp + 16 | 0; + $__oe = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56681] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56682] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56683] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56684] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56685] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56686] | 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56687, 0, HEAP32[$__iob + 4 >> 2] | 0); + $5 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $7 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 12, $5, $__fmt, $$byval_copy) | 0) | 0; + $8 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $7, $__iob) | 0; + $9 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $9; + __ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nar, $8, $7, $__o, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($9) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $11 = HEAP32[$__op >> 2] | 0; + $12 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $13 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $11, $12, $__iob, $__fl) | 0; + STACKTOP = sp; + return $13 | 0; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwl($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp; + $__fmt = sp + 116 | 0; + $__nar = sp + 104 | 0; + $__o = sp + 20 | 0; + $__op = sp + 16 | 0; + $__oe = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56681] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56682] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56683] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56684] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56685] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56686] | 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56687, 1, HEAP32[$__iob + 4 >> 2] | 0); + $5 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $7 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 12, $5, $__fmt, $$byval_copy) | 0) | 0; + $8 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $7, $__iob) | 0; + $9 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $9; + __ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nar, $8, $7, $__o, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($9) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $11 = HEAP32[$__op >> 2] | 0; + $12 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $13 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $11, $12, $__iob, $__fl) | 0; + STACKTOP = sp; + return $13 | 0; +} + +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcm($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp; + $__fmt = sp + 56 | 0; + $__nar = sp + 44 | 0; + $__o = sp + 20 | 0; + $__op = sp + 16 | 0; + $__oe = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56681] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56682] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56683] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56684] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56685] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56686] | 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56687, 0, HEAP32[$__iob + 4 >> 2] | 0); + $5 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $7 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 12, $5, $__fmt, $$byval_copy) | 0) | 0; + $8 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $7, $__iob) | 0; + $9 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $9; + __ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nar, $8, $7, $__o, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($9) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $11 = HEAP32[$__op >> 2] | 0; + $12 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $13 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $11, $12, $__iob, $__fl) | 0; + STACKTOP = sp; + return $13 | 0; +} + +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcl($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $5 = 0, $7 = 0, $8 = 0, $9 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp; + $__fmt = sp + 56 | 0; + $__nar = sp + 44 | 0; + $__o = sp + 20 | 0; + $__op = sp + 16 | 0; + $__oe = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56681] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56682] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56683] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56684] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56685] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56686] | 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56687, 1, HEAP32[$__iob + 4 >> 2] | 0); + $5 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $7 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 12, $5, $__fmt, $$byval_copy) | 0) | 0; + $8 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $7, $__iob) | 0; + $9 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $9; + __ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nar, $8, $7, $__o, $__op, $__oe, $0); + __ZNSt3__114__shared_count16__release_sharedEv($9) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + $11 = HEAP32[$__op >> 2] | 0; + $12 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $13 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $11, $12, $__iob, $__fl) | 0; + STACKTOP = sp; + return $13 | 0; +} + +function ___stpcpy($d, $s) { + $d = $d | 0; + $s = $s | 0; + var $$0$lcssa = 0, $$01$lcssa = 0, $$0115 = 0, $$016 = 0, $$03 = 0, $$1$ph = 0, $$12$ph = 0, $$128 = 0, $$19 = 0, $0 = 0, $10 = 0, $14 = 0, $20 = 0, $21 = 0, $22 = 0, $29 = 0, $32 = 0, $33 = 0, $7 = 0, $9 = 0, $wd$0$lcssa = 0, $wd$010 = 0, $ws$0$lcssa = 0, $ws$011 = 0, label = 0; + $0 = $s; + L1 : do if (!(($0 ^ $d) & 3)) { + if (!($0 & 3)) { + $$0$lcssa = $s; + $$01$lcssa = $d; + } else { + $$0115 = $d; + $$016 = $s; + while (1) { + $7 = HEAP8[$$016 >> 0] | 0; + HEAP8[$$0115 >> 0] = $7; + if (!($7 << 24 >> 24)) { + $$03 = $$0115; + break L1; } - } - if (($$lcssa76 | 0) >= 1) { - $i$937 = 1; - while (1) { - HEAP32[$reg + ($i$937 << 2) >> 2] = HEAP32[$elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$937 << 2) >> 2]; - if (($i$937 | 0) < ($$lcssa76 | 0)) $i$937 = $i$937 + 1 | 0; else break; + $9 = $$016 + 1 | 0; + $10 = $$0115 + 1 | 0; + if (!($9 & 3)) { + $$0$lcssa = $9; + $$01$lcssa = $10; + break; + } else { + $$0115 = $10; + $$016 = $9; } } - $154 = ($$lcssa76 | 0) < 1; - $count$036 = 0; - $i$1035 = 1; + } + $14 = HEAP32[$$0$lcssa >> 2] | 0; + if (!(($14 & -2139062144 ^ -2139062144) & $14 + -16843009)) { + $22 = $14; + $wd$010 = $$01$lcssa; + $ws$011 = $$0$lcssa; while (1) { - if ($154) $q$4$lcssa = 1; else { - $j$232 = 1; - $q$433 = 1; - while (1) { - $155 = $reg + ($j$232 << 2) | 0; - $156 = HEAP32[$155 >> 2] | 0; - if (($156 | 0) == -1) $q$5 = $q$433; else { - $159 = ($156 + $j$232 | 0) % ($n$0 | 0) | 0; - HEAP32[$155 >> 2] = $159; - $q$5 = HEAP32[$alpha_to$0 + ($159 << 2) >> 2] ^ $q$433; - } - if (($j$232 | 0) < ($$lcssa76 | 0)) { - $j$232 = $j$232 + 1 | 0; - $q$433 = $q$5; - } else { - $q$4$lcssa = $q$5; - break; - } - } - } - if (!$q$4$lcssa) { - HEAP32[$loc + ($count$036 << 2) >> 2] = $n$0 - $i$1035; - $count$1 = $count$036 + 1 | 0; - } else $count$1 = $count$036; - $i$1035 = $i$1035 + 1 | 0; - if (($n$0 | 0) < ($i$1035 | 0)) { - $count$1$lcssa = $count$1; + $20 = $ws$011 + 4 | 0; + $21 = $wd$010 + 4 | 0; + HEAP32[$wd$010 >> 2] = $22; + $22 = HEAP32[$20 >> 2] | 0; + if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) { + $wd$0$lcssa = $21; + $ws$0$lcssa = $20; break; - } else $count$036 = $count$1; - } - if (($count$1$lcssa | 0) != ($$lcssa76 | 0)) { - $$0 = -1; - break; + } else { + $wd$010 = $21; + $ws$011 = $20; + } } - if (($$lcssa76 | 0) > 0) { - $i$1130 = 0; - do { - $175 = $recd$0 + (HEAP32[$loc + ($i$1130 << 2) >> 2] | 0) | 0; - HEAP8[$175 >> 0] = HEAPU8[$175 >> 0] ^ 1; - $i$1130 = $i$1130 + 1 | 0; - } while (($i$1130 | 0) < ($$lcssa76 | 0)); - $u$1 = $$pre$phi$lcssaZ2D; - } else $u$1 = $$pre$phi$lcssaZ2D; - } else $u$1 = 0; - $182 = $out_p; - HEAP32[$182 >> 2] = 0; - HEAP32[$182 + 4 >> 2] = 0; - $190 = 1; - $191 = 0; - $194 = 0; - $195 = 0; - $i$1228 = $length$0 - $k$1 | 0; - while (1) { - $192 = ___muldi3(HEAPU8[$recd$0 + $i$1228 >> 0] | 0, 0, $190 | 0, $191 | 0) | 0; - $194 = _i64Add($192 | 0, tempRet0 | 0, $194 | 0, $195 | 0) | 0; - $195 = tempRet0; - $198 = $out_p; - HEAP32[$198 >> 2] = $194; - HEAP32[$198 + 4 >> 2] = $195; - $190 = _bitshift64Shl($190 | 0, $191 | 0, 1) | 0; - $i$1228 = $i$1228 + 1 | 0; - if (($i$1228 | 0) >= ($length$0 | 0)) break; else $191 = tempRet0; + } else { + $wd$0$lcssa = $$01$lcssa; + $ws$0$lcssa = $$0$lcssa; } - if ($28) $$0 = HEAP32[$l + ($u$1 << 2) >> 2] | 0; else $$0 = 0; + $$1$ph = $ws$0$lcssa; + $$12$ph = $wd$0$lcssa; + label = 8; + } else { + $$1$ph = $s; + $$12$ph = $d; + label = 8; } while (0); + if ((label | 0) == 8) { + $29 = HEAP8[$$1$ph >> 0] | 0; + HEAP8[$$12$ph >> 0] = $29; + if (!($29 << 24 >> 24)) $$03 = $$12$ph; else { + $$128 = $$12$ph; + $$19 = $$1$ph; + while (1) { + $$19 = $$19 + 1 | 0; + $32 = $$128 + 1 | 0; + $33 = HEAP8[$$19 >> 0] | 0; + HEAP8[$32 >> 0] = $33; + if (!($33 << 24 >> 24)) { + $$03 = $32; + break; + } else $$128 = $32; + } + } + } + return $$03 | 0; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis2IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0.0, $14 = 0.0, $16 = 0.0, $18 = 0.0, $2 = 0, $20 = 0.0, $22 = 0.0, $24 = 0, $26 = 0.0, $3 = 0, $5 = 0, $7 = 0, $9 = 0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 72 | 0; + $1 = $Q + 36 | 0; + $2 = $A + 72 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $1, $2); + $3 = $Q + 108 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($3, $1, $A + 108 | 0); + $5 = $Q + 144 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($5, $1, $A + 144 | 0); + $7 = $Q + 180 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($7, $1, $A + 180 | 0); + $9 = $Q + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($9, $1, $A + 216 | 0); + $11 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($11, $1, $A + 252 | 0); + $13 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $13; + $14 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($3, $3); + HEAPF32[$ss + 4 >> 2] = $14; + $16 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($5, $5); + HEAPF32[$ss + 8 >> 2] = $16; + $18 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($7, $7); + HEAPF32[$ss + 12 >> 2] = $18; + $20 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($9, $9); + HEAPF32[$ss + 16 >> 2] = $20; + $22 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($11, $11); + HEAPF32[$ss + 20 >> 2] = $22; + $24 = __ZN6vision9MaxIndex6IfEEiPKT_($ss) | 0; + $26 = +HEAPF32[$ss + ($24 << 2) >> 2]; + if ($26 == 0.0) $$0 = 0; else { + $$sum = ($24 * 9 | 0) + 18 | 0; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($2, $A + ($$sum << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$26)); + $$0 = 1; + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { +function _jinit_2pass_quantizer($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $11 = 0, $16 = 0, $17 = 0, $21 = 0, $3 = 0, $30 = 0, $32 = 0, $37 = 0, $44 = 0, $48 = 0, $58 = 0, $6 = 0, $i$03 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 44) | 0; + HEAP32[$cinfo + 460 >> 2] = $3; + HEAP32[$3 >> 2] = 46; + HEAP32[$3 + 12 >> 2] = 135; + $6 = $3 + 32 | 0; + HEAP32[$6 >> 2] = 0; + HEAP32[$3 + 40 >> 2] = 0; + if ((HEAP32[$cinfo + 120 >> 2] | 0) != 3) { + $11 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$11 + 20 >> 2] = 47; + FUNCTION_TABLE_vi[HEAP32[$11 >> 2] & 255]($cinfo); + } + $16 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 128) | 0; + $17 = $3 + 24 | 0; + HEAP32[$17 >> 2] = $16; + $i$03 = 0; + do { + $21 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, 4096) | 0; + HEAP32[(HEAP32[$17 >> 2] | 0) + ($i$03 << 2) >> 2] = $21; + $i$03 = $i$03 + 1 | 0; + } while (($i$03 | 0) != 32); + HEAP32[$3 + 28 >> 2] = 1; + if (!(HEAP32[$cinfo + 108 >> 2] | 0)) HEAP32[$3 + 16 >> 2] = 0; else { + $30 = HEAP32[$cinfo + 96 >> 2] | 0; + if (($30 | 0) < 8) { + $32 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$32 + 20 >> 2] = 56; + HEAP32[$32 + 24 >> 2] = 8; + FUNCTION_TABLE_vi[HEAP32[$32 >> 2] & 255]($cinfo); + } else if (($30 | 0) > 256) { + $37 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$37 + 20 >> 2] = 57; + HEAP32[$37 + 24 >> 2] = 256; + FUNCTION_TABLE_vi[HEAP32[$37 >> 2] & 255]($cinfo); + } + $44 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 8 >> 2] & 15]($cinfo, 1, $30, 3) | 0; + HEAP32[$3 + 16 >> 2] = $44; + HEAP32[$3 + 20 >> 2] = $30; + } + $48 = $cinfo + 88 | 0; + if (HEAP32[$48 >> 2] | 0) { + HEAP32[$48 >> 2] = 2; + $58 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, ((HEAP32[$cinfo + 112 >> 2] | 0) * 6 | 0) + 12 | 0) | 0; + HEAP32[$6 >> 2] = $58; + _init_error_limit($cinfo); + } + return; +} + +function __ZNKSt3__120__time_get_c_storageIwE7__weeksEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2752] | 0)) if (___cxa_guard_acquire(2752) | 0) { + if (!(HEAP8[2760] | 0)) if (___cxa_guard_acquire(2760) | 0) { + $8 = 14672; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 14840); + ___cxa_atexit(151, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2760); + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14672, 14840) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14684, 14868) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14696, 14896) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14708, 14928) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14720, 14968) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14732, 15004) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14744, 15032) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14756, 15068) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14768, 15084) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14780, 15100) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14792, 15116) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14804, 15132) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14816, 15148) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(14828, 15164) | 0; + HEAP32[3795] = 14672; + ___cxa_guard_release(2752); + } + return HEAP32[3795] | 0; +} + +function __ZNKSt3__120__time_get_c_storageIcE7__weeksEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2736] | 0)) if (___cxa_guard_acquire(2736) | 0) { + if (!(HEAP8[2744] | 0)) if (___cxa_guard_acquire(2744) | 0) { + $8 = 14500; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 14668); + ___cxa_atexit(150, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2744); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14500, 56792) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14512, 56799) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14524, 56806) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14536, 56814) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14548, 56824) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14560, 56833) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14572, 56840) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14584, 56849) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14596, 56853) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14608, 56857) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14620, 56861) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14632, 56865) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14644, 56869) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(14656, 56873) | 0; + HEAP32[3667] = 14500; + ___cxa_guard_release(2736); + } + return HEAP32[3667] | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { $first = $first | 0; $last = $last | 0; $db = $db | 0; - var $$0$i$i$i = 0, $$0$i$i$i11 = 0, $$0$i$i$i6 = 0, $$02 = 0, $0 = 0, $1 = 0, $103 = 0, $105 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $119 = 0, $122 = 0, $125 = 0, $126 = 0, $132 = 0, $134 = 0, $138 = 0, $147 = 0, $148 = 0, $15 = 0, $151 = 0, $152 = 0, $155 = 0, $157 = 0, $16 = 0, $160 = 0, $161 = 0, $163 = 0, $17 = 0, $170 = 0, $172 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $193 = 0, $199 = 0, $2 = 0, $201 = 0, $22 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $34 = 0, $4 = 0, $41 = 0, $43 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $63 = 0, $64 = 0, $70 = 0, $72 = 0, $77 = 0, $78 = 0, $79 = 0, $83 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i10 = 0, $k1$015 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i10 = sp + 72 | 0; - $0 = sp + 56 | 0; - $1 = sp + 48 | 0; - $2 = sp + 32 | 0; - $3 = sp + 24 | 0; - $4 = sp + 8 | 0; - $5 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else switch (HEAP8[$first >> 0] | 0) { - case 84: + var $$0 = 0, $10 = 0, $17 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $t$0 = 0, $t$0$lcssa = 0, $t$0$looptemp = 0; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else switch (HEAP8[$first >> 0] | 0) { + case 88: { - $9 = $db + 4 | 0; - $15 = ((HEAP32[$9 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - $16 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - $17 = HEAP32[$9 >> 2] | 0; - $22 = ($17 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0; - if (!(($16 | 0) != ($first | 0) & ($22 | 0) == ($15 + 1 | 0))) { - if (($22 | 0) == ($15 | 0)) { - $$02 = $first; + $3 = $first + 1 | 0; + $4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($3, $last, $db) | 0; + if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } + $$0 = (HEAP8[$4 >> 0] | 0) == 69 ? $4 + 1 | 0 : $first; + break L1; + break; + } + case 74: + { + $10 = $first + 1 | 0; + if (($10 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } else $t$0 = $10; + while (1) { + if ((HEAP8[$t$0 >> 0] | 0) == 69) { + $t$0$lcssa = $t$0; + break; + } + $t$0$looptemp = $t$0; + $t$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0; + if (($t$0 | 0) == ($t$0$looptemp | 0)) { + $$0 = $first; break L1; - } else { - $77 = $17; - $k1$015 = $22; } - while (1) { - $79 = $77; - $77 = $77 + -24 | 0; - do { - $78 = $79 + -24 | 0; - HEAP32[$9 >> 2] = $78; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($78); - $79 = HEAP32[$9 >> 2] | 0; - } while (($79 | 0) != ($77 | 0)); - $k1$015 = $k1$015 + -1 | 0; - if (($k1$015 | 0) == ($15 | 0)) { - $$02 = $first; - break L1; - } + } + $$0 = $t$0$lcssa + 1 | 0; + break L1; + break; + } + case 76: + { + $17 = $first + 1 | 0; + if (($17 | 0) != ($last | 0)) if ((HEAP8[$17 >> 0] | 0) == 90) { + $21 = $first + 2 | 0; + $22 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0; + if (($22 | 0) == ($21 | 0) | ($22 | 0) == ($last | 0)) { + $$0 = $first; + break L1; } + return ((HEAP8[$22 >> 0] | 0) == 69 ? $22 + 1 | 0 : $first) | 0; } - $27 = $db + 16 | 0; - HEAP32[$1 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($0, $17 + -24 | 0, $1); - $31 = $db + 20 | 0; - $32 = HEAP32[$31 >> 2] | 0; - $34 = HEAP32[$db + 24 >> 2] | 0; - if ($32 >>> 0 < $34 >>> 0) { - HEAP32[$32 + 12 >> 2] = HEAP32[$0 + 12 >> 2]; - HEAP32[$32 >> 2] = HEAP32[$0 >> 2]; - $41 = $0 + 4 | 0; - HEAP32[$32 + 4 >> 2] = HEAP32[$41 >> 2]; - $43 = $0 + 8 | 0; - HEAP32[$32 + 8 >> 2] = HEAP32[$43 >> 2]; - HEAP32[$43 >> 2] = 0; - HEAP32[$41 >> 2] = 0; - HEAP32[$0 >> 2] = 0; - HEAP32[$31 >> 2] = (HEAP32[$31 >> 2] | 0) + 16; + $$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + break; + } + default: + { + $$0 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + break L1; + } + } while (0); + return $$0 | 0; +} + +function __ZN6vision21OrientationAssignment5allocEjjiiiffif($this, $fine_width, $fine_height, $num_octaves, $num_scales_per_octave, $num_bins, $gaussian_expansion_factor, $support_region_expansion_factor, $num_smoothing_iterations, $peak_threshold) { + $this = $this | 0; + $fine_width = $fine_width | 0; + $fine_height = $fine_height | 0; + $num_octaves = $num_octaves | 0; + $num_scales_per_octave = $num_scales_per_octave | 0; + $num_bins = $num_bins | 0; + $gaussian_expansion_factor = +$gaussian_expansion_factor; + $support_region_expansion_factor = +$support_region_expansion_factor; + $num_smoothing_iterations = $num_smoothing_iterations | 0; + $peak_threshold = +$peak_threshold; + var $0 = 0, $11 = 0, $12 = 0, $13 = 0, $7 = 0, $exitcond2 = 0, $i$05 = 0, $j$03 = 0; + HEAP32[$this >> 2] = $num_octaves; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = $num_scales_per_octave; + HEAP32[$this + 8 >> 2] = $num_bins; + HEAPF32[$this + 12 >> 2] = $gaussian_expansion_factor; + HEAPF32[$this + 16 >> 2] = $support_region_expansion_factor; + HEAP32[$this + 20 >> 2] = $num_smoothing_iterations; + HEAPF32[$this + 24 >> 2] = $peak_threshold; + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($this + 28 | 0, $num_bins); + $7 = $this + 40 | 0; + __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE6resizeEj($7, Math_imul(HEAP32[$0 >> 2] | 0, HEAP32[$this >> 2] | 0) | 0); + if ($num_octaves) { + $exitcond2 = ($num_scales_per_octave | 0) == 0; + $i$05 = 0; + do { + $11 = Math_imul($i$05, $num_scales_per_octave) | 0; + $12 = $fine_width >>> $i$05; + $13 = $fine_height >>> $i$05; + if (!$exitcond2) { + $j$03 = 0; + do { + __ZN6vision5Image5allocENS_9ImageTypeEjjij((HEAP32[$7 >> 2] | 0) + ($j$03 + $11 << 5) | 0, 2, $12, $13, -1, 2); + $j$03 = $j$03 + 1 | 0; + } while (($j$03 | 0) != ($num_scales_per_octave | 0)); + } + $i$05 = $i$05 + 1 | 0; + } while (($i$05 | 0) != ($num_octaves | 0)); + } + return; +} + +function _post_process_2pass($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$ = 0, $$pre$phi4Z2D = 0, $$pre$phiZ2D = 0, $1 = 0, $11 = 0, $13 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $26 = 0, $3 = 0, $33 = 0, $38 = 0, $39 = 0, $num_rows$1 = 0; + $1 = HEAP32[$cinfo + 432 >> 2] | 0; + $2 = $1 + 24 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) { + $11 = $1 + 20 | 0; + $13 = $1 + 16 | 0; + $15 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 28 >> 2] & 31]($cinfo, HEAP32[$1 + 8 >> 2] | 0, HEAP32[$11 >> 2] | 0, HEAP32[$13 >> 2] | 0, 0) | 0; + HEAP32[$1 + 12 >> 2] = $15; + $$pre$phi4Z2D = $11; + $$pre$phiZ2D = $13; + $19 = HEAP32[$2 >> 2] | 0; + $33 = $15; + } else { + $$pre$phi4Z2D = $1 + 20 | 0; + $$pre$phiZ2D = $1 + 16 | 0; + $19 = $3; + $33 = HEAP32[$1 + 12 >> 2] | 0; + } + $18 = (HEAP32[$$pre$phiZ2D >> 2] | 0) - $19 | 0; + $20 = HEAP32[$out_row_ctr >> 2] | 0; + $21 = $out_rows_avail - $20 | 0; + $$ = $18 >>> 0 > $21 >>> 0 ? $21 : $18; + $26 = (HEAP32[$cinfo + 116 >> 2] | 0) - (HEAP32[$$pre$phi4Z2D >> 2] | 0) | 0; + $num_rows$1 = $$ >>> 0 > $26 >>> 0 ? $26 : $$; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 4 >> 2] & 31]($cinfo, $33 + ($19 << 2) | 0, $output_buf + ($20 << 2) | 0, $num_rows$1); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + $num_rows$1; + $38 = (HEAP32[$2 >> 2] | 0) + $num_rows$1 | 0; + HEAP32[$2 >> 2] = $38; + $39 = HEAP32[$$pre$phiZ2D >> 2] | 0; + if ($38 >>> 0 >= $39 >>> 0) { + HEAP32[$$pre$phi4Z2D >> 2] = (HEAP32[$$pre$phi4Z2D >> 2] | 0) + $39; + HEAP32[$2 >> 2] = 0; + } + return; +} + +function _vfprintf($f, $fmt, $ap) { + $f = $f | 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + var $$ = 0, $$0 = 0, $12 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $28 = 0, $33 = 0, $6 = 0, $7 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0, $ret$1 = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ap2 = sp + 80 | 0; + $nl_type = sp + 96 | 0; + $nl_arg = sp; + $internal_buf = sp + 136 | 0; + dest = $nl_type; + stop = dest + 40 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2]; + if ((_printf_core(0, $fmt, $ap2, $nl_arg, $nl_type) | 0) < 0) $$0 = -1; else { + if ((HEAP32[$f + 76 >> 2] | 0) > -1) $33 = ___lockfile($f) | 0; else $33 = 0; + $6 = HEAP32[$f >> 2] | 0; + $7 = $6 & 32; + if ((HEAP8[$f + 74 >> 0] | 0) < 1) HEAP32[$f >> 2] = $6 & -33; + $12 = $f + 48 | 0; + if (!(HEAP32[$12 >> 2] | 0)) { + $16 = $f + 44 | 0; + $17 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = $internal_buf; + $18 = $f + 28 | 0; + HEAP32[$18 >> 2] = $internal_buf; + $19 = $f + 20 | 0; + HEAP32[$19 >> 2] = $internal_buf; + HEAP32[$12 >> 2] = 80; + $21 = $f + 16 | 0; + HEAP32[$21 >> 2] = $internal_buf + 80; + $22 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; + if (!$17) $ret$1 = $22; else { + FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0; + $$ = (HEAP32[$19 >> 2] | 0) == 0 ? -1 : $22; + HEAP32[$16 >> 2] = $17; + HEAP32[$12 >> 2] = 0; + HEAP32[$21 >> 2] = 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$19 >> 2] = 0; + $ret$1 = $$; + } + } else $ret$1 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; + $28 = HEAP32[$f >> 2] | 0; + HEAP32[$f >> 2] = $28 | $7; + if ($33) ___unlockfile($f); + $$0 = ($28 & 32 | 0) == 0 ? $ret$1 : -1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _get_vertex($x_coord, $y_coord, $st, $ed, $thresh, $vertex, $vnum) { + $x_coord = $x_coord | 0; + $y_coord = $y_coord | 0; + $st = $st | 0; + $ed = $ed | 0; + $thresh = +$thresh; + $vertex = $vertex | 0; + $vnum = $vnum | 0; + var $$0 = 0, $1 = 0, $11 = 0.0, $15 = 0.0, $16 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $39 = 0, $5 = 0.0, $7 = 0, $9 = 0, $dmax$0$lcssa = 0.0, $dmax$01 = 0.0, $dmax$1 = 0.0, $i$02 = 0, $v1$0$lcssa = 0, $v1$03 = 0, $v1$1 = 0, label = 0; + $1 = HEAP32[$y_coord + ($ed << 2) >> 2] | 0; + $3 = HEAP32[$y_coord + ($st << 2) >> 2] | 0; + $5 = +($1 - $3 | 0); + $7 = HEAP32[$x_coord + ($st << 2) >> 2] | 0; + $9 = HEAP32[$x_coord + ($ed << 2) >> 2] | 0; + $11 = +($7 - $9 | 0); + $15 = +((Math_imul($9, $3) | 0) - (Math_imul($7, $1) | 0) | 0); + $16 = $st + 1 | 0; + if (($16 | 0) < ($ed | 0)) { + $dmax$01 = 0.0; + $i$02 = $16; + $v1$03 = $16; + while (1) { + $27 = $15 + ($5 * +(HEAP32[$x_coord + ($i$02 << 2) >> 2] | 0) + $11 * +(HEAP32[$y_coord + ($i$02 << 2) >> 2] | 0)); + $28 = $27 * $27; + $29 = $28 > $dmax$01; + $dmax$1 = $29 ? $28 : $dmax$01; + $v1$1 = $29 ? $i$02 : $v1$03; + $i$02 = $i$02 + 1 | 0; + if (($i$02 | 0) >= ($ed | 0)) { + $dmax$0$lcssa = $dmax$1; + $v1$0$lcssa = $v1$1; + break; } else { - $51 = HEAP32[$27 >> 2] | 0; - $52 = $32 - $51 | 0; - $53 = $52 >> 4; - $54 = $53 + 1 | 0; - if (($52 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($27); - $57 = $34 - $51 | 0; - if ($57 >> 4 >>> 0 < 1073741823) { - $60 = $57 >> 3; - $$0$i$i$i = $60 >>> 0 < $54 >>> 0 ? $54 : $60; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i, $53, $db + 28 | 0); - $63 = $__v$i$i10 + 8 | 0; - $64 = HEAP32[$63 >> 2] | 0; - HEAP32[$64 + 12 >> 2] = HEAP32[$0 + 12 >> 2]; - HEAP32[$64 >> 2] = HEAP32[$0 >> 2]; - $70 = $0 + 4 | 0; - HEAP32[$64 + 4 >> 2] = HEAP32[$70 >> 2]; - $72 = $0 + 8 | 0; - HEAP32[$64 + 8 >> 2] = HEAP32[$72 >> 2]; - HEAP32[$72 >> 2] = 0; - HEAP32[$70 >> 2] = 0; - HEAP32[$0 >> 2] = 0; - HEAP32[$63 >> 2] = $64 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($27, $__v$i$i10); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); + $dmax$01 = $dmax$1; + $v1$03 = $v1$1; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($0); - $$02 = $16; - break L1; + } + } else { + $dmax$0$lcssa = 0.0; + $v1$0$lcssa = $16; + } + if ($dmax$0$lcssa / ($5 * $5 + $11 * $11) > $thresh) if ((_get_vertex($x_coord, $y_coord, $st, $v1$0$lcssa, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else { + $39 = HEAP32[$vnum >> 2] | 0; + if (($39 | 0) > 5) $$0 = -1; else { + HEAP32[$vertex + ($39 << 2) >> 2] = $v1$0$lcssa; + HEAP32[$vnum >> 2] = (HEAP32[$vnum >> 2] | 0) + 1; + if ((_get_vertex($x_coord, $y_coord, $v1$0$lcssa, $ed, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else label = 7; + } + } else label = 7; + if ((label | 0) == 7) $$0 = 0; + return $$0 | 0; +} + +function _post_process_prepass($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$phi$trans$insert = 0, $$pre$phi4Z2D = 0, $$pre$phiZ2D = 0, $1 = 0, $13 = 0, $15 = 0, $16 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $3 = 0, $35 = 0, $37 = 0, $38 = 0; + $1 = HEAP32[$cinfo + 432 >> 2] | 0; + $2 = $1 + 24 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) { + $13 = $1 + 16 | 0; + $15 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 28 >> 2] & 31]($cinfo, HEAP32[$1 + 8 >> 2] | 0, HEAP32[$1 + 20 >> 2] | 0, HEAP32[$13 >> 2] | 0, 1) | 0; + $16 = $1 + 12 | 0; + HEAP32[$16 >> 2] = $15; + $$pre$phi4Z2D = $13; + $$pre$phiZ2D = $16; + $22 = $15; + $25 = HEAP32[$2 >> 2] | 0; + } else { + $$phi$trans$insert = $1 + 12 | 0; + $$pre$phi4Z2D = $1 + 16 | 0; + $$pre$phiZ2D = $$phi$trans$insert; + $22 = HEAP32[$$phi$trans$insert >> 2] | 0; + $25 = $3; + } + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 4 >> 2] & 7]($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $22, $2, HEAP32[$$pre$phi4Z2D >> 2] | 0); + $23 = HEAP32[$2 >> 2] | 0; + if ($23 >>> 0 > $25 >>> 0) { + $26 = $23 - $25 | 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 4 >> 2] & 31]($cinfo, (HEAP32[$$pre$phiZ2D >> 2] | 0) + ($25 << 2) | 0, 0, $26); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + $26; + $37 = HEAP32[$2 >> 2] | 0; + } else $37 = $23; + $35 = HEAP32[$$pre$phi4Z2D >> 2] | 0; + if ($37 >>> 0 >= $35 >>> 0) { + $38 = $1 + 20 | 0; + HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $35; + HEAP32[$2 >> 2] = 0; + } + return; +} + +function __ZNSt3__111__stdoutbufIcE8overflowEi($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $20 = 0, $27 = 0, $31 = 0, $9 = 0, $__1buf = 0, $__e = 0, $__extbe = 0, $__extbuf = 0, $pbase$0 = 0, $pbase$0$lcssa12 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 16 | 0; + $__1buf = sp + 8 | 0; + $__extbe = sp + 4 | 0; + $__e = sp; + $0 = ($__c | 0) == -1; + L1 : do if ($0) label = 11; else { + HEAP8[$__1buf >> 0] = $__c; + if (HEAP8[$this + 44 >> 0] | 0) if ((_fwrite($__1buf, 1, 1, HEAP32[$this + 32 >> 2] | 0) | 0) == 1) { + label = 11; + break; + } else { + $$0 = -1; break; } - case 68: - { - $83 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($83 | 0) == ($first | 0)) { - $$02 = $first; + HEAP32[$__extbe >> 2] = $__extbuf; + $9 = $__1buf + 1 | 0; + $10 = $this + 36 | 0; + $11 = $this + 40 | 0; + $12 = $__extbuf + 8 | 0; + $13 = $__extbuf; + $14 = $this + 32 | 0; + $pbase$0 = $__1buf; + while (1) { + $15 = HEAP32[$10 >> 2] | 0; + $20 = FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$15 >> 2] | 0) + 12 >> 2] & 15]($15, HEAP32[$11 >> 2] | 0, $pbase$0, $9, $__e, $__extbuf, $12, $__extbe) | 0; + if ((HEAP32[$__e >> 2] | 0) == ($pbase$0 | 0)) { + $$0 = -1; break L1; } - $87 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($87 | 0)) { - $$02 = $first; + if (($20 | 0) == 3) { + $pbase$0$lcssa12 = $pbase$0; + break; + } + $27 = ($20 | 0) == 1; + if ($20 >>> 0 >= 2) { + $$0 = -1; break L1; } - $89 = $db + 16 | 0; - HEAP32[$3 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($2, $87 + -24 | 0, $3); - $93 = $db + 20 | 0; - $94 = HEAP32[$93 >> 2] | 0; - $96 = HEAP32[$db + 24 >> 2] | 0; - if ($94 >>> 0 < $96 >>> 0) { - HEAP32[$94 + 12 >> 2] = HEAP32[$2 + 12 >> 2]; - HEAP32[$94 >> 2] = HEAP32[$2 >> 2]; - $103 = $2 + 4 | 0; - HEAP32[$94 + 4 >> 2] = HEAP32[$103 >> 2]; - $105 = $2 + 8 | 0; - HEAP32[$94 + 8 >> 2] = HEAP32[$105 >> 2]; - HEAP32[$105 >> 2] = 0; - HEAP32[$103 >> 2] = 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 16; - } else { - $113 = HEAP32[$89 >> 2] | 0; - $114 = $94 - $113 | 0; - $115 = $114 >> 4; - $116 = $115 + 1 | 0; - if (($114 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($89); - $119 = $96 - $113 | 0; - if ($119 >> 4 >>> 0 < 1073741823) { - $122 = $119 >> 3; - $$0$i$i$i6 = $122 >>> 0 < $116 >>> 0 ? $116 : $122; - } else $$0$i$i$i6 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i6, $115, $db + 28 | 0); - $125 = $__v$i$i10 + 8 | 0; - $126 = HEAP32[$125 >> 2] | 0; - HEAP32[$126 + 12 >> 2] = HEAP32[$2 + 12 >> 2]; - HEAP32[$126 >> 2] = HEAP32[$2 >> 2]; - $132 = $2 + 4 | 0; - HEAP32[$126 + 4 >> 2] = HEAP32[$132 >> 2]; - $134 = $2 + 8 | 0; - HEAP32[$126 + 8 >> 2] = HEAP32[$134 >> 2]; - HEAP32[$134 >> 2] = 0; - HEAP32[$132 >> 2] = 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$125 >> 2] = $126 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($89, $__v$i$i10); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); + $31 = (HEAP32[$__extbe >> 2] | 0) - $13 | 0; + if ((_fwrite($__extbuf, 1, $31, HEAP32[$14 >> 2] | 0) | 0) != ($31 | 0)) { + $$0 = -1; + break L1; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($2); - $$02 = $83; - break L1; + if ($27) $pbase$0 = $27 ? HEAP32[$__e >> 2] | 0 : $pbase$0; else { + label = 11; + break L1; + } + } + if ((_fwrite($pbase$0$lcssa12, 1, 1, HEAP32[$14 >> 2] | 0) | 0) == 1) label = 11; else $$0 = -1; + } while (0); + if ((label | 0) == 11) $$0 = $0 ? 0 : $__c; + STACKTOP = sp; + return $$0 | 0; +} + +function _setMarkerInfoVertex($id, $markerIndex) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + var $$0 = 0, $0 = 0, $13 = 0.0, $15 = 0.0, $17 = 0.0, $19 = 0.0, $21 = 0.0, $23 = 0.0, $25 = 0.0, $27 = 0.0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { + $_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 168 : $6 + 48 + ($markerIndex << 8) | 0; + $13 = +HEAPF64[53]; + HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3] = $13; + $15 = +HEAPF64[54]; + HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3] = $15; + $17 = +HEAPF64[55]; + HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3] = $17; + $19 = +HEAPF64[56]; + HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3] = $19; + $21 = +HEAPF64[57]; + HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3] = $21; + $23 = +HEAPF64[58]; + HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3] = $23; + $25 = +HEAPF64[59]; + HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3] = $25; + $27 = +HEAPF64[60]; + HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3] = $27; + HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3] = ($13 + $17 + $21 + $25) * .25; + HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3] = ($15 + $19 + $23 + $27) * .25; + $$0 = 0; + break; + } else { + $$0 = HEAP32[1466] | 0; break; } - case 83: - { - $138 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($138 | 0) != ($first | 0)) { - $$02 = $138; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__111__stdoutbufIwE8overflowEj($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $19 = 0, $26 = 0, $30 = 0, $8 = 0, $9 = 0, $__1buf = 0, $__e = 0, $__extbe = 0, $__extbuf = 0, $pbase$0 = 0, $pbase$0$lcssa12 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 16 | 0; + $__1buf = sp + 8 | 0; + $__extbe = sp + 4 | 0; + $__e = sp; + $0 = ($__c | 0) == -1; + L1 : do if ($0) label = 11; else { + HEAP32[$__1buf >> 2] = $__c; + if (HEAP8[$this + 44 >> 0] | 0) if ((_fwrite($__1buf, 4, 1, HEAP32[$this + 32 >> 2] | 0) | 0) == 1) { + label = 11; + break; + } else { + $$0 = -1; + break; + } + HEAP32[$__extbe >> 2] = $__extbuf; + $8 = $__1buf + 4 | 0; + $9 = $this + 36 | 0; + $10 = $this + 40 | 0; + $11 = $__extbuf + 8 | 0; + $12 = $__extbuf; + $13 = $this + 32 | 0; + $pbase$0 = $__1buf; + while (1) { + $14 = HEAP32[$9 >> 2] | 0; + $19 = FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$14 >> 2] | 0) + 12 >> 2] & 15]($14, HEAP32[$10 >> 2] | 0, $pbase$0, $8, $__e, $__extbuf, $11, $__extbe) | 0; + if ((HEAP32[$__e >> 2] | 0) == ($pbase$0 | 0)) { + $$0 = -1; break L1; } - if (($last - $first | 0) <= 2) { - $$02 = $first; - break L1; + if (($19 | 0) == 3) { + $pbase$0$lcssa12 = $pbase$0; + break; } - if ((HEAP8[$first + 1 >> 0] | 0) != 116) { - $$02 = $first; + $26 = ($19 | 0) == 1; + if ($19 >>> 0 >= 2) { + $$0 = -1; break L1; } - $147 = $first + 2 | 0; - $148 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($147, $last, $db) | 0; - if (($148 | 0) == ($147 | 0)) { - $$02 = $first; + $30 = (HEAP32[$__extbe >> 2] | 0) - $12 | 0; + if ((_fwrite($__extbuf, 1, $30, HEAP32[$13 >> 2] | 0) | 0) != ($30 | 0)) { + $$0 = -1; break L1; } - $151 = $db + 4 | 0; - $152 = HEAP32[$151 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($152 | 0)) { - $$02 = $first; + if ($26) $pbase$0 = $26 ? HEAP32[$__e >> 2] | 0 : $pbase$0; else { + label = 11; break L1; } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($152 + -24 | 0, 0, 12922) | 0; - $155 = $db + 16 | 0; - $157 = (HEAP32[$151 >> 2] | 0) + -24 | 0; - HEAP32[$5 >> 2] = HEAP32[$db + 12 >> 2]; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $157, $5); - $160 = $db + 20 | 0; - $161 = HEAP32[$160 >> 2] | 0; - $163 = HEAP32[$db + 24 >> 2] | 0; - if ($161 >>> 0 < $163 >>> 0) { - HEAP32[$161 + 12 >> 2] = HEAP32[$4 + 12 >> 2]; - HEAP32[$161 >> 2] = HEAP32[$4 >> 2]; - $170 = $4 + 4 | 0; - HEAP32[$161 + 4 >> 2] = HEAP32[$170 >> 2]; - $172 = $4 + 8 | 0; - HEAP32[$161 + 8 >> 2] = HEAP32[$172 >> 2]; - HEAP32[$172 >> 2] = 0; - HEAP32[$170 >> 2] = 0; - HEAP32[$4 >> 2] = 0; - HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 16; + } + if ((_fwrite($pbase$0$lcssa12, 1, 1, HEAP32[$13 >> 2] | 0) | 0) == 1) label = 11; else $$0 = -1; + } while (0); + if ((label | 0) == 11) $$0 = $0 ? 0 : $__c; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($__s, $__ob, $__op, $__oe, $__iob, $__fl) { + $__s = $__s | 0; + $__ob = $__ob | 0; + $__op = $__op | 0; + $__oe = $__oe | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + var $$sroa$0$1 = 0, $0 = 0, $10 = 0, $2 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $__ns$0 = 0, $__sp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__sp = sp; + $0 = HEAP32[$__s >> 2] | 0; + L1 : do if (!$0) $$sroa$0$1 = 0; else { + $2 = $__oe; + $3 = $__ob; + $4 = $2 - $3 | 0; + $5 = $__iob + 12 | 0; + $6 = HEAP32[$5 >> 2] | 0; + $__ns$0 = ($6 | 0) > ($4 | 0) ? $6 - $4 | 0 : 0; + $9 = $__op; + $10 = $9 - $3 | 0; + if (($10 | 0) > 0) if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, $__ob, $10) | 0) != ($10 | 0)) { + HEAP32[$__s >> 2] = 0; + $$sroa$0$1 = 0; + break; + } + do if (($__ns$0 | 0) > 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc($__sp, $__ns$0, $__fl); + if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, (HEAP8[$__sp >> 0] & 1) == 0 ? $__sp + 1 | 0 : HEAP32[$__sp + 8 >> 2] | 0, $__ns$0) | 0) == ($__ns$0 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sp); + break; } else { - $180 = HEAP32[$155 >> 2] | 0; - $181 = $161 - $180 | 0; - $182 = $181 >> 4; - $183 = $182 + 1 | 0; - if (($181 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($155); - $186 = $163 - $180 | 0; - if ($186 >> 4 >>> 0 < 1073741823) { - $189 = $186 >> 3; - $$0$i$i$i11 = $189 >>> 0 < $183 >>> 0 ? $183 : $189; - } else $$0$i$i$i11 = 2147483647; - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i11, $182, $db + 28 | 0); - $192 = $__v$i$i10 + 8 | 0; - $193 = HEAP32[$192 >> 2] | 0; - HEAP32[$193 + 12 >> 2] = HEAP32[$4 + 12 >> 2]; - HEAP32[$193 >> 2] = HEAP32[$4 >> 2]; - $199 = $4 + 4 | 0; - HEAP32[$193 + 4 >> 2] = HEAP32[$199 >> 2]; - $201 = $4 + 8 | 0; - HEAP32[$193 + 8 >> 2] = HEAP32[$201 >> 2]; - HEAP32[$201 >> 2] = 0; - HEAP32[$199 >> 2] = 0; - HEAP32[$4 >> 2] = 0; - HEAP32[$192 >> 2] = $193 + 16; - __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($155, $__v$i$i10); - __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10); + HEAP32[$__s >> 2] = 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__sp); + $$sroa$0$1 = 0; + break L1; } - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4); - $$02 = $148; - break L1; + } while (0); + $30 = $2 - $9 | 0; + if (($30 | 0) > 0) if ((FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$0 >> 2] | 0) + 48 >> 2] & 63]($0, $__op, $30) | 0) != ($30 | 0)) { + HEAP32[$__s >> 2] = 0; + $$sroa$0$1 = 0; break; } - default: - { - $$02 = $first; - break L1; - } + HEAP32[$5 >> 2] = 0; + $$sroa$0$1 = $0; } while (0); STACKTOP = sp; - return $$02 | 0; + return $$sroa$0$1 | 0; } -function _arDetectMarker2($xsize, $ysize, $labelInfo, $imageProcMode, $areaMax, $areaMin, $squareFitThresh, $markerInfo2, $marker2_num) { - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $labelInfo = $labelInfo | 0; - $imageProcMode = $imageProcMode | 0; - $areaMax = $areaMax | 0; - $areaMin = $areaMin | 0; - $squareFitThresh = +$squareFitThresh; - $markerInfo2 = $markerInfo2 | 0; - $marker2_num = $marker2_num | 0; - var $$0 = 0, $$01 = 0, $$02 = 0, $$03 = 0, $$lcssa = 0, $$lcssa15 = 0, $$lcssa16 = 0, $$lcssa17 = 0, $$ph = 0, $$pre10 = 0, $$pre9 = 0, $0 = 0, $115 = 0, $12 = 0, $120 = 0, $129 = 0, $13 = 0, $130 = 0, $132 = 0, $133 = 0.0, $136 = 0.0, $141 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $16 = 0, $160 = 0, $164 = 0, $167 = 0, $171 = 0, $174 = 0, $177 = 0, $180 = 0, $183 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $46 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0.0, $6 = 0, $66 = 0, $68 = 0, $7 = 0, $74 = 0, $8 = 0, $90 = 0, $dmax$0$i38 = 0, $i$0$i39 = 0, $i$0$v1$0$i = 0, $i$044 = 0, $i$134 = 0, $i$227 = 0, $i$321 = 0, $j$030 = 0, $j$1 = 0, $j$1$in24 = 0, $j$1$in24$phi = 0, $j$123 = 0, $j$125 = 0, $j$218 = 0, $pm$019 = 0, $v1$0$i$lcssa = 0, $v1$0$i37 = 0, $vertex$sroa$12$0$i = 0, $vertex$sroa$4$0$i = 0, $vertex$sroa$8$0$i = 0, $wv1$i = 0, $wv2$i = 0, $wvnum1$i = 0, $wvnum2$i = 0, label = 0, sp = 0, $i$134$looptemp = 0; +function _jinit_memory_mgr($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $1 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $28 = 0, $34 = 0, $36 = 0, $4 = 0, $ch = 0, $max_to_use = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $wv1$i = sp + 56 | 0; - $wvnum1$i = sp + 48 | 0; - $wv2$i = sp + 8 | 0; - $wvnum2$i = sp; - $0 = ($imageProcMode | 0) == 1; - if ($0) { - $$0 = ($xsize | 0) / 2 | 0; - $$01 = ($ysize | 0) / 2 | 0; - $$02 = ($areaMax | 0) / 4 | 0; - $$03 = ($areaMin | 0) / 4 | 0; + $vararg_buffer = sp; + $max_to_use = sp + 8 | 0; + $ch = sp + 12 | 0; + $0 = $cinfo + 4 | 0; + HEAP32[$0 >> 2] = 0; + $1 = _jpeg_mem_init($cinfo) | 0; + HEAP32[$max_to_use >> 2] = $1; + $2 = _jpeg_get_small($cinfo, 84) | 0; + if (!$2) { + _jpeg_mem_term($cinfo); + $4 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$4 + 20 >> 2] = 54; + HEAP32[$4 + 24 >> 2] = 0; + FUNCTION_TABLE_vi[HEAP32[$4 >> 2] & 255]($cinfo); + } + HEAP32[$2 >> 2] = 28; + HEAP32[$2 + 4 >> 2] = 29; + HEAP32[$2 + 8 >> 2] = 6; + HEAP32[$2 + 12 >> 2] = 7; + HEAP32[$2 + 16 >> 2] = 39; + HEAP32[$2 + 20 >> 2] = 40; + HEAP32[$2 + 24 >> 2] = 136; + HEAP32[$2 + 28 >> 2] = 21; + HEAP32[$2 + 32 >> 2] = 22; + HEAP32[$2 + 36 >> 2] = 47; + HEAP32[$2 + 40 >> 2] = 137; + HEAP32[$2 + 48 >> 2] = 1e9; + $20 = $2 + 44 | 0; + HEAP32[$20 >> 2] = HEAP32[$max_to_use >> 2]; + $21 = $2 + 52 | 0; + $22 = $2 + 60 | 0; + HEAP32[$21 + 4 >> 2] = 0; + HEAP32[$22 + 4 >> 2] = 0; + HEAP32[$21 >> 2] = 0; + HEAP32[$22 >> 2] = 0; + HEAP32[$2 + 68 >> 2] = 0; + HEAP32[$2 + 72 >> 2] = 0; + HEAP32[$2 + 76 >> 2] = 84; + HEAP32[$0 >> 2] = $2; + $28 = _getenv(34475) | 0; + if ($28) { + HEAP8[$ch >> 0] = 120; + HEAP32[$vararg_buffer >> 2] = $max_to_use; + HEAP32[$vararg_buffer + 4 >> 2] = $ch; + if ((_sscanf($28, 34483, $vararg_buffer) | 0) > 0) { + switch (HEAP8[$ch >> 0] | 0) { + case 77: + case 109: + { + $34 = (HEAP32[$max_to_use >> 2] | 0) * 1e3 | 0; + HEAP32[$max_to_use >> 2] = $34; + $36 = $34; + break; + } + default: + $36 = HEAP32[$max_to_use >> 2] | 0; + } + HEAP32[$20 >> 2] = $36 * 1e3; + } + } + STACKTOP = sp; + return; +} + +function _merged_2v_upsample($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$ = 0, $$pre$phiZ2D = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $2 = 0, $num_rows$1 = 0, $num_rows$2 = 0, $work_ptrs = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $work_ptrs = sp; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + $2 = $1 + 36 | 0; + if (!(HEAP32[$2 >> 2] | 0)) { + $10 = $1 + 44 | 0; + $11 = HEAP32[$10 >> 2] | 0; + $$ = $11 >>> 0 < 2 ? $11 : 2; + $13 = HEAP32[$out_row_ctr >> 2] | 0; + $14 = $out_rows_avail - $13 | 0; + $num_rows$1 = $$ >>> 0 > $14 >>> 0 ? $14 : $$; + HEAP32[$work_ptrs >> 2] = HEAP32[$output_buf + ($13 << 2) >> 2]; + if ($num_rows$1 >>> 0 > 1) HEAP32[$work_ptrs + 4 >> 2] = HEAP32[$output_buf + ($13 + 1 << 2) >> 2]; else { + HEAP32[$work_ptrs + 4 >> 2] = HEAP32[$1 + 32 >> 2]; + HEAP32[$2 >> 2] = 1; + } + FUNCTION_TABLE_viiii[HEAP32[$1 + 12 >> 2] & 31]($cinfo, $input_buf, HEAP32[$in_row_group_ctr >> 2] | 0, $work_ptrs); + $$pre$phiZ2D = $10; + $num_rows$2 = $num_rows$1; } else { - $$0 = $xsize; - $$01 = $ysize; - $$02 = $areaMax; - $$03 = $areaMin; + _jcopy_sample_rows($1 + 32 | 0, 0, $output_buf + (HEAP32[$out_row_ctr >> 2] << 2) | 0, 0, 1, HEAP32[$1 + 40 >> 2] | 0); + HEAP32[$2 >> 2] = 0; + $$pre$phiZ2D = $1 + 44 | 0; + $num_rows$2 = 1; } - HEAP32[$marker2_num >> 2] = 0; - $5 = $labelInfo + 8 | 0; - $6 = $$0 + -2 | 0; - $7 = $$01 + -2 | 0; - $8 = $labelInfo + 1179664 | 0; - L4 : do if ((HEAP32[$5 >> 2] | 0) > 0) { - $i$044 = 0; - while (1) { - $12 = $labelInfo + 12 + ($i$044 << 2) | 0; - $13 = HEAP32[$12 >> 2] | 0; - L7 : do if (!(($13 | 0) < ($$03 | 0) | ($13 | 0) > ($$02 | 0))) { - $16 = $labelInfo + 131084 + ($i$044 << 4) | 0; - if ((HEAP32[$16 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 4 >> 2] | 0) != ($6 | 0)) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 8 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 12 >> 2] | 0) != ($7 | 0)) if ((_arGetContour(HEAP32[$labelInfo >> 2] | 0, $$0, 0, $8, $i$044 + 1 | 0, $16, $markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) | 0) | 0) >= 0) { - $34 = HEAP32[$12 >> 2] | 0; - $35 = HEAP32[$marker2_num >> 2] | 0; - $36 = $markerInfo2 + ($35 * 80048 | 0) + 28 | 0; - $37 = HEAP32[$36 >> 2] | 0; - $38 = $markerInfo2 + ($35 * 80048 | 0) + 40028 | 0; - $39 = HEAP32[$38 >> 2] | 0; - $40 = $markerInfo2 + ($35 * 80048 | 0) + 24 | 0; - $42 = (HEAP32[$40 >> 2] | 0) + -1 | 0; - if (($42 | 0) > 1) { - $dmax$0$i38 = 0; - $i$0$i39 = 1; - $v1$0$i37 = 0; - while (1) { - $46 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 28 + ($i$0$i39 << 2) >> 2] | 0) - $37 | 0; - $47 = Math_imul($46, $46) | 0; - $50 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 40028 + ($i$0$i39 << 2) >> 2] | 0) - $39 | 0; - $52 = (Math_imul($50, $50) | 0) + $47 | 0; - $53 = ($52 | 0) > ($dmax$0$i38 | 0); - $i$0$v1$0$i = $53 ? $i$0$i39 : $v1$0$i37; - $i$0$i39 = $i$0$i39 + 1 | 0; - if (($i$0$i39 | 0) >= ($42 | 0)) { - $v1$0$i$lcssa = $i$0$v1$0$i; - break; - } else { - $dmax$0$i38 = $53 ? $52 : $dmax$0$i38; - $v1$0$i37 = $i$0$v1$0$i; - } - } - } else $v1$0$i$lcssa = 0; - $59 = +($34 | 0) / .75 * .01 * $squareFitThresh; - HEAP32[$wvnum1$i >> 2] = 0; - HEAP32[$wvnum2$i >> 2] = 0; - L18 : do if ((_get_vertex($36, $38, 0, $v1$0$i$lcssa, $59, $wv1$i, $wvnum1$i) | 0) >= 0) if ((_get_vertex($36, $38, $v1$0$i$lcssa, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) >= 0) { - $66 = HEAP32[$wvnum1$i >> 2] | 0; - $68 = HEAP32[$wvnum2$i >> 2] | 0; - do if (($66 | 0) == 1 & ($68 | 0) == 1) { - $vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0; - $vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0; - $vertex$sroa$8$0$i = $v1$0$i$lcssa; - } else { - if (($66 | 0) > 1 & ($68 | 0) == 0) { - $74 = ($v1$0$i$lcssa | 0) / 2 | 0; - HEAP32[$wvnum2$i >> 2] = 0; - HEAP32[$wvnum1$i >> 2] = 0; - if ((_get_vertex($36, $38, 0, $74, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18; - if ((_get_vertex($36, $38, $74, $v1$0$i$lcssa, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18; - if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18; - $vertex$sroa$12$0$i = $v1$0$i$lcssa; - $vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0; - $vertex$sroa$8$0$i = HEAP32[$wv2$i >> 2] | 0; - break; - } - if (!(($66 | 0) == 0 & ($68 | 0) > 1)) break L18; - $90 = ($v1$0$i$lcssa + -1 + (HEAP32[$40 >> 2] | 0) | 0) / 2 | 0; - HEAP32[$wvnum2$i >> 2] = 0; - HEAP32[$wvnum1$i >> 2] = 0; - if ((_get_vertex($36, $38, $v1$0$i$lcssa, $90, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18; - if ((_get_vertex($36, $38, $90, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18; - if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18; - $vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0; - $vertex$sroa$4$0$i = $v1$0$i$lcssa; - $vertex$sroa$8$0$i = HEAP32[$wv1$i >> 2] | 0; - } while (0); - HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80028 >> 2] = 0; - HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80032 >> 2] = $vertex$sroa$4$0$i; - HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80036 >> 2] = $vertex$sroa$8$0$i; - HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80040 >> 2] = $vertex$sroa$12$0$i; - HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80044 >> 2] = (HEAP32[$40 >> 2] | 0) + -1; - HEAP32[$markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) >> 2] = HEAP32[$12 >> 2]; - $115 = HEAP32[$marker2_num >> 2] | 0; - HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 8 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) >> 3]; - HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 16 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) + 8 >> 3]; - $120 = $115 + 1 | 0; - HEAP32[$marker2_num >> 2] = $120; - if (($120 | 0) == 60) { - $$ph = 60; - break L4; - } else break L7; - } while (0); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + $num_rows$2; + HEAP32[$$pre$phiZ2D >> 2] = (HEAP32[$$pre$phiZ2D >> 2] | 0) - $num_rows$2; + if (!(HEAP32[$2 >> 2] | 0)) HEAP32[$in_row_group_ctr >> 2] = (HEAP32[$in_row_group_ctr >> 2] | 0) + 1; + STACKTOP = sp; + return; +} + +function _quantize3_ord_dither($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $6 = 0, $8 = 0, $col$03 = 0, $col_index$02 = 0, $input_ptr$04 = 0, $output_ptr$01 = 0, $row$05 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $3 = HEAP32[$1 + 24 >> 2] | 0; + $4 = HEAP32[$3 >> 2] | 0; + $6 = HEAP32[$3 + 4 >> 2] | 0; + $8 = HEAP32[$3 + 8 >> 2] | 0; + $10 = HEAP32[$cinfo + 112 >> 2] | 0; + $11 = $1 + 48 | 0; + $12 = $1 + 52 | 0; + $13 = $1 + 56 | 0; + $14 = $1 + 60 | 0; + if (($num_rows | 0) > 0) { + $16 = ($10 | 0) == 0; + $row$05 = 0; + do { + $17 = HEAP32[$11 >> 2] | 0; + $18 = HEAP32[$12 >> 2] | 0; + $19 = HEAP32[$13 >> 2] | 0; + $20 = HEAP32[$14 >> 2] | 0; + if (!$16) { + $col$03 = $10; + $col_index$02 = 0; + $input_ptr$04 = HEAP32[$input_buf + ($row$05 << 2) >> 2] | 0; + $output_ptr$01 = HEAP32[$output_buf + ($row$05 << 2) >> 2] | 0; + while (1) { + HEAP8[$output_ptr$01 >> 0] = (HEAPU8[$6 + ((HEAPU8[$input_ptr$04 + 1 >> 0] | 0) + (HEAP32[$19 + ($17 << 6) + ($col_index$02 << 2) >> 2] | 0)) >> 0] | 0) + (HEAPU8[$4 + ((HEAPU8[$input_ptr$04 >> 0] | 0) + (HEAP32[$18 + ($17 << 6) + ($col_index$02 << 2) >> 2] | 0)) >> 0] | 0) + (HEAPU8[$8 + ((HEAPU8[$input_ptr$04 + 2 >> 0] | 0) + (HEAP32[$20 + ($17 << 6) + ($col_index$02 << 2) >> 2] | 0)) >> 0] | 0); + $col$03 = $col$03 + -1 | 0; + if (!$col$03) break; else { + $col_index$02 = $col_index$02 + 1 & 15; + $input_ptr$04 = $input_ptr$04 + 3 | 0; + $output_ptr$01 = $output_ptr$01 + 1 | 0; + } } - } while (0); - $i$044 = $i$044 + 1 | 0; - if (($i$044 | 0) >= (HEAP32[$5 >> 2] | 0)) { - label = 4; - break; } + HEAP32[$11 >> 2] = $17 + 1 & 15; + $row$05 = $row$05 + 1 | 0; + } while (($row$05 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $19 = 0, $20 = 0, $24 = 0, $25 = 0, $27 = 0, $30 = 0, $36 = 0, $8 = 0, $9 = 0, $__s = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 16 | 0; + $0 = sp + 4 | 0; + $__s = sp + 8 | 0; + $1 = sp; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_($__s, $this); + if (HEAP8[$__s >> 0] | 0) { + $8 = __ZNKSt3__18ios_base6getlocEv($this + (HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$1 >> 2] = $8; + $9 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 12852) | 0; + __ZNSt3__16localeD2Ev($1); + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0; + $14 = HEAP32[$this + ($12 + 24) >> 2] | 0; + $15 = $this + $12 | 0; + $16 = $this + ($12 + 76) | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (($17 | 0) == -1) { + $19 = __ZNKSt3__18ios_base6getlocEv($15) | 0; + HEAP32[$$byval_copy >> 2] = $19; + $20 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $24 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$20 >> 2] | 0) + 28 >> 2] & 63]($20, 32) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + $25 = $24 << 24 >> 24; + HEAP32[$16 >> 2] = $25; + $27 = $25; + } else $27 = $17; + $30 = HEAP32[(HEAP32[$9 >> 2] | 0) + 16 >> 2] | 0; + HEAP32[$0 >> 2] = $14; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + if (!(FUNCTION_TABLE_iiiiii[$30 & 31]($9, $$byval_copy, $15, $27 & 255, $__n) | 0)) { + $36 = $this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$36 >> 2] = HEAP32[$36 >> 2] | 5; } - } else label = 4; while (0); - if ((label | 0) == 4) $$ph = HEAP32[$marker2_num >> 2] | 0; - if (($$ph | 0) > 0) { - $132 = $$ph; - $i$134 = 0; + } + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev($__s); + STACKTOP = sp; + return $this | 0; +} + +function __ZNSt3__114__num_put_base14__format_floatEPcPKcj($__fmtp, $__len, $__flags) { + $__fmtp = $__fmtp | 0; + $__len = $__len | 0; + $__flags = $__flags | 0; + var $$0 = 0, $$012 = 0, $$1 = 0, $$2$lcssa = 0, $$2$ph = 0, $$23 = 0, $11 = 0, $14 = 0, $15 = 0, $23 = 0, $6 = 0, $7 = 0, $8 = 0, $specify_precision$0$off0$ph = 0; + if (!($__flags & 2048)) $$0 = $__fmtp; else { + HEAP8[$__fmtp >> 0] = 43; + $$0 = $__fmtp + 1 | 0; + } + if (!($__flags & 1024)) $$1 = $$0; else { + HEAP8[$$0 >> 0] = 35; + $$1 = $$0 + 1 | 0; + } + $6 = $__flags & 260; + $7 = $__flags >>> 14; + $8 = ($6 | 0) == 260; + if ($8) { + $$2$ph = $$1; + $specify_precision$0$off0$ph = 0; + } else { + HEAP8[$$1 >> 0] = 46; + HEAP8[$$1 + 1 >> 0] = 42; + $$2$ph = $$1 + 2 | 0; + $specify_precision$0$off0$ph = 1; + } + $11 = HEAP8[$__len >> 0] | 0; + if (!($11 << 24 >> 24)) $$2$lcssa = $$2$ph; else { + $$012 = $__len; + $$23 = $$2$ph; + $15 = $11; while (1) { - $i$134$looptemp = $i$134; - $i$134 = $i$134 + 1 | 0; - $129 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) + 16 | 0; - $130 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) | 0; - if (($i$134 | 0) < ($132 | 0)) { - $133 = +HEAPF64[$markerInfo2 + ($i$134$looptemp * 80048 | 0) + 8 >> 3]; - $j$030 = $i$134; - do { - $136 = $133 - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 8 >> 3]; - $141 = +HEAPF64[$129 >> 3] - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 16 >> 3]; - $143 = $136 * $136 + $141 * $141; - $144 = HEAP32[$130 >> 2] | 0; - $145 = $markerInfo2 + ($j$030 * 80048 | 0) | 0; - $146 = HEAP32[$145 >> 2] | 0; - if (($144 | 0) > ($146 | 0)) { - if ($143 < +(($144 | 0) / 4 | 0 | 0)) HEAP32[$145 >> 2] = 0; - } else if ($143 < +(($146 | 0) / 4 | 0 | 0)) HEAP32[$130 >> 2] = 0; - $j$030 = $j$030 + 1 | 0; - $$pre10 = HEAP32[$marker2_num >> 2] | 0; - } while (($j$030 | 0) < ($$pre10 | 0)); - $$lcssa16 = $$pre10; - } else $$lcssa16 = $132; - if (($i$134 | 0) >= ($$lcssa16 | 0)) { - $$lcssa17 = $$lcssa16; + $$012 = $$012 + 1 | 0; + $14 = $$23 + 1 | 0; + HEAP8[$$23 >> 0] = $15; + $15 = HEAP8[$$012 >> 0] | 0; + if (!($15 << 24 >> 24)) { + $$2$lcssa = $14; break; - } else $132 = $$lcssa16; + } else $$23 = $14; } - } else $$lcssa17 = $$ph; - if (($$lcssa17 | 0) > 0) { - $160 = $$lcssa17; - $i$227 = 0; - while (1) { - if (!(HEAP32[$markerInfo2 + ($i$227 * 80048 | 0) >> 2] | 0)) { - $j$123 = $i$227 + 1 | 0; - if (($j$123 | 0) < ($160 | 0)) { - $j$1$in24 = $i$227; - $j$125 = $j$123; - while (1) { - _memcpy($markerInfo2 + ($j$1$in24 * 80048 | 0) | 0, $markerInfo2 + ($j$125 * 80048 | 0) | 0, 80048) | 0; - $$pre9 = HEAP32[$marker2_num >> 2] | 0; - $j$1 = $j$125 + 1 | 0; - if (($j$1 | 0) < ($$pre9 | 0)) { - $j$1$in24$phi = $j$125; - $j$125 = $j$1; - $j$1$in24 = $j$1$in24$phi; - } else { - $$lcssa = $$pre9; - break; - } - } - } else $$lcssa = $160; - $164 = $$lcssa + -1 | 0; - HEAP32[$marker2_num >> 2] = $164; - $167 = $164; - } else $167 = $160; - $i$227 = $i$227 + 1 | 0; - if (($i$227 | 0) >= ($167 | 0)) { - $$lcssa15 = $167; - break; - } else $160 = $167; + } + L14 : do switch ($6 | 0) { + case 4: + { + if (!($7 & 1)) { + HEAP8[$$2$lcssa >> 0] = 102; + break L14; + } else { + HEAP8[$$2$lcssa >> 0] = 70; + break L14; + } + break; } - } else $$lcssa15 = $$lcssa17; - if ($0 & ($$lcssa15 | 0) > 0) { - $i$321 = 0; - $pm$019 = $markerInfo2; - while (1) { - HEAP32[$pm$019 >> 2] = HEAP32[$pm$019 >> 2] << 2; - $171 = $pm$019 + 8 | 0; - HEAPF64[$171 >> 3] = +HEAPF64[$171 >> 3] * 2.0; - $174 = $pm$019 + 16 | 0; - HEAPF64[$174 >> 3] = +HEAPF64[$174 >> 3] * 2.0; - $177 = $pm$019 + 24 | 0; - if ((HEAP32[$177 >> 2] | 0) > 0) { - $j$218 = 0; - do { - $180 = $pm$019 + 28 + ($j$218 << 2) | 0; - HEAP32[$180 >> 2] = HEAP32[$180 >> 2] << 1; - $183 = $pm$019 + 40028 + ($j$218 << 2) | 0; - HEAP32[$183 >> 2] = HEAP32[$183 >> 2] << 1; - $j$218 = $j$218 + 1 | 0; - } while (($j$218 | 0) < (HEAP32[$177 >> 2] | 0)); + case 256: + { + if (!($7 & 1)) { + HEAP8[$$2$lcssa >> 0] = 101; + break L14; + } else { + HEAP8[$$2$lcssa >> 0] = 69; + break L14; + } + break; + } + default: + { + $23 = ($7 & 1 | 0) != 0; + if ($8) if ($23) { + HEAP8[$$2$lcssa >> 0] = 65; + break L14; + } else { + HEAP8[$$2$lcssa >> 0] = 97; + break L14; + } else if ($23) { + HEAP8[$$2$lcssa >> 0] = 71; + break L14; + } else { + HEAP8[$$2$lcssa >> 0] = 103; + break L14; + } + } + } while (0); + return $specify_precision$0$off0$ph | 0; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKv($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $__fmt = 0, $__nar = 0, $__o = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp; + $__fmt = sp + 180 | 0; + $__nar = sp + 160 | 0; + $__o = sp + 12 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56695] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56696] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56697] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56698] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56699] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56700] | 0; + $2 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $3 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 20, $2, $__fmt, $$byval_copy) | 0; + $4 = $__nar + $3 | 0; + $5 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $4, $__iob) | 0; + $6 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $6; + $7 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($6) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$7 >> 2] | 0) + 48 >> 2] & 15]($7, $__nar, $4, $__o) | 0; + $11 = $__o + ($3 << 2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $18 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, ($5 | 0) == ($4 | 0) ? $11 : $__o + ($5 - $__nar << 2) | 0, $11, $__iob, $__fl) | 0; + STACKTOP = sp; + return $18 | 0; +} + +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryERKNS_5ImageE($this, $image) { + $this = $this | 0; + $image = $image | 0; + var $$0$i4 = 0, $$01$i3 = 0, $0 = 0, $17 = 0, $19 = 0, $23 = 0, $26 = 0, $4 = 0, $7 = 0, $9 = 0, $_ScopedTimer = 0, $num_octaves$0$i$lcssa = 0, $num_octaves$0$i5 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $_ScopedTimer = sp; + $0 = $this + 92 | 0; + $4 = HEAP32[$this + 96 >> 2] | 0; + if ((HEAP32[$this + 100 >> 2] | 0) == ($4 | 0)) { + $19 = HEAP32[$image + 4 >> 2] | 0; + label = 5; + } else { + $7 = HEAP32[$4 + 4 >> 2] | 0; + $9 = HEAP32[$image + 4 >> 2] | 0; + if (($7 | 0) == ($9 | 0)) { + if ((HEAP32[$4 + 8 >> 2] | 0) != (HEAP32[$image + 8 >> 2] | 0)) { + $19 = $7; + label = 5; + } + } else { + $19 = $9; + label = 5; + } + } + if ((label | 0) == 5) { + $17 = HEAP32[$image + 8 >> 2] | 0; + if (($17 | 0) < 8 | ($19 | 0) < 8) $num_octaves$0$i$lcssa = 0; else { + $$0$i4 = $19; + $$01$i3 = $17; + $num_octaves$0$i5 = 0; + while (1) { + $$0$i4 = $$0$i4 >> 1; + $$01$i3 = $$01$i3 >> 1; + $23 = $num_octaves$0$i5 + 1 | 0; + if (($$01$i3 | 0) < 8 | ($$0$i4 | 0) < 8) { + $num_octaves$0$i$lcssa = $23; + break; + } else $num_octaves$0$i5 = $23; } - $i$321 = $i$321 + 1 | 0; - if (($i$321 | 0) >= (HEAP32[$marker2_num >> 2] | 0)) break; else $pm$019 = $pm$019 + 80048 | 0; } + __ZN6vision18BinomialPyramid32f5allocEjji($0, $19, $17, $num_octaves$0$i$lcssa); } + __ZN6vision11ScopedTimerC2EPKc($_ScopedTimer, 27979); + __ZN6vision18BinomialPyramid32f5buildERKNS_5ImageE($0, $image); + __ZN6vision11ScopedTimerD2Ev($_ScopedTimer); + $26 = __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryEPKNS_25GaussianScaleSpacePyramidE($this, $0) | 0; STACKTOP = sp; - return 0; + return $26 | 0; } -function _pattern_match($pattHandle, $mode, $data, $size, $code, $dir, $cf) { - $pattHandle = $pattHandle | 0; - $mode = $mode | 0; - $data = $data | 0; - $size = $size | 0; - $code = $code | 0; - $dir = $dir | 0; - $cf = $cf | 0; - var $$0 = 0, $$lcssa103 = 0, $$lcssa108 = 0, $1 = 0, $100 = 0, $101 = 0, $102 = 0, $105 = 0, $11 = 0, $111 = 0, $118 = 0.0, $119 = 0, $14 = 0, $2 = 0, $20 = 0, $23 = 0, $26 = 0.0, $31 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $45 = 0, $51 = 0, $58 = 0.0, $59 = 0, $63 = 0, $65 = 0, $72 = 0, $75 = 0, $81 = 0, $84 = 0, $87 = 0.0, $91 = 0, $93 = 0, $94 = 0, $96 = 0, $97 = 0, $ave$0$lcssa = 0, $ave$055 = 0, $ave$1$lcssa = 0, $ave$183 = 0, $i$056 = 0, $i$150 = 0, $i$235 = 0, $i$384 = 0, $i$478 = 0, $i$560 = 0, $j$038 = 0, $j$166 = 0, $k$042 = 0, $k$1 = 0, $k$1$in = 0, $k$1$lcssa = 0, $k$1102 = 0, $k$270 = 0, $k$3 = 0, $k$3$in = 0, $k$3$lcssa = 0, $k$3106 = 0, $l$043 = 0, $l$171 = 0, $max$0$lcssa = 0.0, $max$044 = 0.0, $max$139 = 0.0, $max$2 = 0.0, $max$3 = 0.0, $max$4$lcssa = 0.0, $max$472 = 0.0, $max$567 = 0.0, $max$6 = 0.0, $max$7 = 0.0, $res1$0$lcssa = 0, $res1$040 = 0, $res1$136 = 0, $res1$2 = 0, $res1$3 = 0, $res1$4$lcssa = 0, $res1$468 = 0, $res1$564 = 0, $res1$6 = 0, $res1$7 = 0, $res2$0$lcssa = 0, $res2$041 = 0, $res2$137 = 0, $res2$2 = 0, $res2$3 = 0, $res2$4$lcssa = 0, $res2$469 = 0, $res2$565 = 0, $res2$6 = 0, $res2$7 = 0, $sum$0$lcssa = 0.0, $sum$049 = 0, $sum$1$lcssa = 0, $sum$134 = 0, $sum$2$lcssa = 0.0, $sum$277 = 0, $sum$3$lcssa = 0, $sum$359 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKv($this, $__s, $__iob, $__fl, $__v) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $__fmt = 0, $__nar = 0, $__o = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 80 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 8 | 0; + $$byval_copy = sp; + $__fmt = sp + 70 | 0; + $__nar = sp + 12 | 0; + $__o = sp + 32 | 0; + $0 = sp + 8 | 0; + $1 = sp + 4 | 0; + HEAP8[$__fmt >> 0] = HEAP8[56695] | 0; + HEAP8[$__fmt + 1 >> 0] = HEAP8[56696] | 0; + HEAP8[$__fmt + 2 >> 0] = HEAP8[56697] | 0; + HEAP8[$__fmt + 3 >> 0] = HEAP8[56698] | 0; + HEAP8[$__fmt + 4 >> 0] = HEAP8[56699] | 0; + HEAP8[$__fmt + 5 >> 0] = HEAP8[56700] | 0; + $2 = __ZNSt3__16__clocEv() | 0; + HEAP32[$$byval_copy >> 2] = $__v; + $3 = __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 20, $2, $__fmt, $$byval_copy) | 0; + $4 = $__nar + $3 | 0; + $5 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $4, $__iob) | 0; + $6 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $6; + $7 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($6) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$7 >> 2] | 0) + 32 >> 2] & 15]($7, $__nar, $4, $__o) | 0; + $11 = $__o + $3 | 0; + HEAP32[$1 >> 2] = HEAP32[$__s >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + $18 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, ($5 | 0) == ($4 | 0) ? $11 : $__o + ($5 - $__nar) | 0, $11, $__iob, $__fl) | 0; + STACKTOP = sp; + return $18 | 0; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwy($this, $__s, $__iob, $__fl, $0, $1) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$byval_copy = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 204 | 0; + $__o = sp + 32 | 0; + $__op = sp + 28 | 0; + $__oe = sp + 24 | 0; + $2 = sp + 20 | 0; + $3 = sp + 16 | 0; + $4 = $__fmt; + HEAP32[$4 >> 2] = 37; + HEAP32[$4 + 4 >> 2] = 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56689, 0, HEAP32[$__iob + 4 >> 2] | 0); + $11 = __ZNSt3__16__clocEv() | 0; + $12 = $$byval_copy; + HEAP32[$12 >> 2] = $0; + HEAP32[$12 + 4 >> 2] = $1; + $17 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 23, $11, $__fmt, $$byval_copy) | 0) | 0; + $18 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $17, $__iob) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $19; + __ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nar, $18, $17, $__o, $__op, $__oe, $2); + __ZNSt3__114__shared_count16__release_sharedEv($19) | 0; + HEAP32[$3 >> 2] = HEAP32[$__s >> 2]; + $21 = HEAP32[$__op >> 2] | 0; + $22 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$3 >> 2]; + $23 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $21, $22, $__iob, $__fl) | 0; + STACKTOP = sp; + return $23 | 0; +} + +function __ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwx($this, $__s, $__iob, $__fl, $0, $1) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$byval_copy = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 224 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 196 | 0; + $__o = sp + 32 | 0; + $__op = sp + 28 | 0; + $__oe = sp + 24 | 0; + $2 = sp + 20 | 0; + $3 = sp + 16 | 0; + $4 = $__fmt; + HEAP32[$4 >> 2] = 37; + HEAP32[$4 + 4 >> 2] = 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56689, 1, HEAP32[$__iob + 4 >> 2] | 0); + $11 = __ZNSt3__16__clocEv() | 0; + $12 = $$byval_copy; + HEAP32[$12 >> 2] = $0; + HEAP32[$12 + 4 >> 2] = $1; + $17 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 22, $11, $__fmt, $$byval_copy) | 0) | 0; + $18 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $17, $__iob) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $19; + __ZNSt3__19__num_putIwE21__widen_and_group_intEPcS2_S2_PwRS3_S4_RKNS_6localeE($__nar, $18, $17, $__o, $__op, $__oe, $2); + __ZNSt3__114__shared_count16__release_sharedEv($19) | 0; + HEAP32[$3 >> 2] = HEAP32[$__s >> 2]; + $21 = HEAP32[$__op >> 2] | 0; + $22 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$3 >> 2]; + $23 = __ZNSt3__116__pad_and_outputIwNS_11char_traitsIwEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $21, $22, $__iob, $__fl) | 0; + STACKTOP = sp; + return $23 | 0; +} + +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcy($this, $__s, $__iob, $__fl, $0, $1) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$byval_copy = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 75 | 0; + $__o = sp + 32 | 0; + $__op = sp + 28 | 0; + $__oe = sp + 24 | 0; + $2 = sp + 20 | 0; + $3 = sp + 16 | 0; + $4 = $__fmt; + HEAP32[$4 >> 2] = 37; + HEAP32[$4 + 4 >> 2] = 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56689, 0, HEAP32[$__iob + 4 >> 2] | 0); + $11 = __ZNSt3__16__clocEv() | 0; + $12 = $$byval_copy; + HEAP32[$12 >> 2] = $0; + HEAP32[$12 + 4 >> 2] = $1; + $17 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 23, $11, $__fmt, $$byval_copy) | 0) | 0; + $18 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $17, $__iob) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $19; + __ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nar, $18, $17, $__o, $__op, $__oe, $2); + __ZNSt3__114__shared_count16__release_sharedEv($19) | 0; + HEAP32[$3 >> 2] = HEAP32[$__s >> 2]; + $21 = HEAP32[$__op >> 2] | 0; + $22 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$3 >> 2]; + $23 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $21, $22, $__iob, $__fl) | 0; + STACKTOP = sp; + return $23 | 0; +} + +function __ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcx($this, $__s, $__iob, $__fl, $0, $1) { + $this = $this | 0; + $__s = $__s | 0; + $__iob = $__iob | 0; + $__fl = $__fl | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $$byval_copy = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $__fmt = 0, $__nar = 0, $__o = 0, $__oe = 0, $__op = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $__fmt = sp; + $__nar = sp + 74 | 0; + $__o = sp + 32 | 0; + $__op = sp + 28 | 0; + $__oe = sp + 24 | 0; + $2 = sp + 20 | 0; + $3 = sp + 16 | 0; + $4 = $__fmt; + HEAP32[$4 >> 2] = 37; + HEAP32[$4 + 4 >> 2] = 0; + __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmt + 1 | 0, 56689, 1, HEAP32[$__iob + 4 >> 2] | 0); + $11 = __ZNSt3__16__clocEv() | 0; + $12 = $$byval_copy; + HEAP32[$12 >> 2] = $0; + HEAP32[$12 + 4 >> 2] = $1; + $17 = $__nar + (__ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__nar, 22, $11, $__fmt, $$byval_copy) | 0) | 0; + $18 = __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nar, $17, $__iob) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$2 >> 2] = $19; + __ZNSt3__19__num_putIcE21__widen_and_group_intEPcS2_S2_S2_RS2_S3_RKNS_6localeE($__nar, $18, $17, $__o, $__op, $__oe, $2); + __ZNSt3__114__shared_count16__release_sharedEv($19) | 0; + HEAP32[$3 >> 2] = HEAP32[$__s >> 2]; + $21 = HEAP32[$__op >> 2] | 0; + $22 = HEAP32[$__oe >> 2] | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$3 >> 2]; + $23 = __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__o, $21, $22, $__iob, $__fl) | 0; + STACKTOP = sp; + return $23 | 0; +} + +function __ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_j($__os, $__str, $__len) { + $__os = $__os | 0; + $__str = $__str | 0; + $__len = $__len | 0; + var $$byval_copy = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $20 = 0, $21 = 0, $23 = 0, $31 = 0, $5 = 0, $8 = 0, $__s = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 16 | 0; + $__s = sp + 8 | 0; + $0 = sp; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_($__s, $__os); + if (HEAP8[$__s >> 0] | 0) { + $5 = HEAP32[(HEAP32[$__os >> 2] | 0) + -12 >> 2] | 0; + HEAP32[$0 >> 2] = HEAP32[$__os + ($5 + 24) >> 2]; + $8 = $__os + $5 | 0; + $10 = HEAP32[$__os + ($5 + 4) >> 2] | 0; + $11 = $__str + $__len | 0; + $12 = $__os + ($5 + 76) | 0; + $13 = HEAP32[$12 >> 2] | 0; + if (($13 | 0) == -1) { + $15 = __ZNKSt3__18ios_base6getlocEv($8) | 0; + HEAP32[$$byval_copy >> 2] = $15; + $16 = __ZNKSt3__16locale9use_facetERNS0_2idE($$byval_copy, 13680) | 0; + $20 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$16 >> 2] | 0) + 28 >> 2] & 63]($16, 32) | 0; + __ZNSt3__16localeD2Ev($$byval_copy); + $21 = $20 << 24 >> 24; + HEAP32[$12 >> 2] = $21; + $23 = $21; + } else $23 = $13; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + if (!(__ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_($$byval_copy, $__str, ($10 & 176 | 0) == 32 ? $11 : $__str, $11, $8, $23 & 255) | 0)) { + $31 = HEAP32[(HEAP32[$__os >> 2] | 0) + -12 >> 2] | 0; + __ZNSt3__18ios_base5clearEj($__os + $31 | 0, HEAP32[$__os + ($31 + 16) >> 2] | 5); + } + } + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev($__s); + STACKTOP = sp; + return $__os | 0; +} + +function ___stdio_read($f, $buf, $len) { + $f = $f | 0; + $buf = $buf | 0; + $len = $len | 0; + var $$0 = 0, $0 = 0, $1 = 0, $15 = 0, $2 = 0, $27 = 0, $30 = 0, $31 = 0, $32 = 0, $7 = 0, $cnt$0 = 0, $iov = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; $vararg_buffer = sp; - L1 : do if (!$pattHandle) { - HEAP32[$code >> 2] = 0; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - $$0 = -1; - } else switch ($mode | 0) { - case 0: - { - $1 = Math_imul($size, $size) | 0; - $2 = $1 * 3 | 0; - $4 = _malloc($1 * 12 | 0) | 0; - if (!$4) { - _arLog(3, 5471, $vararg_buffer); - _exit(1); - } - if (!$1) $ave$0$lcssa = 0; else { - $ave$055 = 0; - $i$056 = 0; - while (1) { - $11 = ((HEAPU8[$data + $i$056 >> 0] | 0) ^ 255) + $ave$055 | 0; - $i$056 = $i$056 + 1 | 0; - if (($i$056 | 0) >= ($2 | 0)) { - $ave$0$lcssa = $11; - break; - } else $ave$055 = $11; - } - } - $14 = ($ave$0$lcssa | 0) / ($2 | 0) | 0; - if (!$1) $sum$0$lcssa = 0.0; else { - $i$150 = 0; - $sum$049 = 0; - while (1) { - $20 = ((HEAPU8[$data + $i$150 >> 0] | 0) ^ 255) - $14 | 0; - HEAP32[$4 + ($i$150 << 2) >> 2] = $20; - $23 = (Math_imul($20, $20) | 0) + $sum$049 | 0; - $i$150 = $i$150 + 1 | 0; - if (($i$150 | 0) >= ($2 | 0)) { - $$lcssa103 = $23; - break; - } else $sum$049 = $23; - } - $sum$0$lcssa = +($$lcssa103 | 0); - } - $26 = +Math_sqrt(+$sum$0$lcssa); - if ($26 / (+($size | 0) * 1.7320508) < 15.0) { - HEAP32[$code >> 2] = 0; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - _free($4); - $$0 = -2; - break L1; + $iov = sp + 32 | 0; + HEAP32[$iov >> 2] = $buf; + $0 = $iov + 4 | 0; + $1 = $f + 48 | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$0 >> 2] = $len - (($2 | 0) != 0 & 1); + $7 = $f + 44 | 0; + HEAP32[$iov + 8 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$iov + 12 >> 2] = $2; + if (!(HEAP32[1545] | 0)) { + HEAP32[$vararg_buffer3 >> 2] = HEAP32[$f + 60 >> 2]; + HEAP32[$vararg_buffer3 + 4 >> 2] = $iov; + HEAP32[$vararg_buffer3 + 8 >> 2] = 2; + $cnt$0 = ___syscall_ret(___syscall145(145, $vararg_buffer3 | 0) | 0) | 0; + } else { + _pthread_cleanup_push(144, $f | 0); + HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; + HEAP32[$vararg_buffer + 4 >> 2] = $iov; + HEAP32[$vararg_buffer + 8 >> 2] = 2; + $15 = ___syscall_ret(___syscall145(145, $vararg_buffer | 0) | 0) | 0; + _pthread_cleanup_pop(0); + $cnt$0 = $15; + } + if (($cnt$0 | 0) < 1) { + HEAP32[$f >> 2] = HEAP32[$f >> 2] | $cnt$0 & 48 ^ 16; + HEAP32[$f + 8 >> 2] = 0; + HEAP32[$f + 4 >> 2] = 0; + $$0 = $cnt$0; + } else { + $27 = HEAP32[$0 >> 2] | 0; + if ($cnt$0 >>> 0 > $27 >>> 0) { + $30 = HEAP32[$7 >> 2] | 0; + $31 = $f + 4 | 0; + HEAP32[$31 >> 2] = $30; + $32 = $30; + HEAP32[$f + 8 >> 2] = $32 + ($cnt$0 - $27); + if (!(HEAP32[$1 >> 2] | 0)) $$0 = $len; else { + HEAP32[$31 >> 2] = $32 + 1; + HEAP8[$buf + ($len + -1) >> 0] = HEAP8[$32 >> 0] | 0; + $$0 = $len; } - $31 = HEAP32[$pattHandle >> 2] | 0; - $33 = $pattHandle + 12 | 0; - $34 = $pattHandle + 16 | 0; - if (($31 | 0) > 0) { - $36 = HEAP32[$pattHandle + 8 >> 2] | 0; - $37 = ($1 | 0) == 0; - $k$042 = -1; - $l$043 = 0; - $max$044 = 0.0; - $res1$040 = -1; - $res2$041 = -1; + } else $$0 = $cnt$0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _int_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $27 = 0, $4 = 0, $6 = 0, $7 = 0, $9 = 0, $h$01 = 0, $inptr$04 = 0, $inrow$06 = 0, $outptr$03 = 0, $outptr$12 = 0, $outrow$07 = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + $2 = HEAP32[$output_data_ptr >> 2] | 0; + $4 = HEAP32[$compptr + 4 >> 2] | 0; + $6 = HEAP8[$1 + 140 + $4 >> 0] | 0; + $7 = $6 & 255; + $9 = HEAP8[$1 + 150 + $4 >> 0] | 0; + $10 = $9 & 255; + $11 = $cinfo + 312 | 0; + $12 = $cinfo + 112 | 0; + $13 = ($9 & 255) > 1; + $14 = $10 + -1 | 0; + if ((HEAP32[$11 >> 2] | 0) > 0) { + $17 = $6 << 24 >> 24 == 0; + $inrow$06 = 0; + $outrow$07 = 0; + while (1) { + $19 = HEAP32[$2 + ($outrow$07 << 2) >> 2] | 0; + $20 = HEAP32[$12 >> 2] | 0; + $21 = $19 + $20 | 0; + if (($20 | 0) > 0) { + $inptr$04 = HEAP32[$input_data + ($inrow$06 << 2) >> 2] | 0; + $outptr$03 = $19; while (1) { - $k$1$in = $k$042; - L25 : while (1) { - $k$1 = $k$1$in + 1 | 0; - switch (HEAP32[$36 + ($k$1 << 2) >> 2] | 0) { - case 0: - { - $k$1$in = $k$1; - break; - } - case 2: - { - $k$1102 = $k$1; - $max$3 = $max$044; - $res1$3 = $res1$040; - $res2$3 = $res2$041; - break L25; - break; - } - default: - { - $k$1$lcssa = $k$1; - label = 17; - break L25; - } + $27 = HEAP8[$inptr$04 >> 0] | 0; + if (!$17) { + $h$01 = $7; + $outptr$12 = $outptr$03; + while (1) { + HEAP8[$outptr$12 >> 0] = $27; + if (($h$01 | 0) > 1) { + $h$01 = $h$01 + -1 | 0; + $outptr$12 = $outptr$12 + 1 | 0; + } else break; } } - if ((label | 0) == 17) { - label = 0; - $40 = $k$1$lcssa << 2; - $41 = HEAP32[$34 >> 2] | 0; - $j$038 = 0; - $max$139 = $max$044; - $res1$136 = $res1$040; - $res2$137 = $res2$041; + $outptr$03 = $outptr$03 + $7 | 0; + if ($outptr$03 >>> 0 >= $21 >>> 0) break; else $inptr$04 = $inptr$04 + 1 | 0; + } + } + if ($13) _jcopy_sample_rows($2, $outrow$07, $2, $outrow$07 + 1 | 0, $14, HEAP32[$12 >> 2] | 0); + $outrow$07 = $outrow$07 + $10 | 0; + if (($outrow$07 | 0) >= (HEAP32[$11 >> 2] | 0)) break; else $inrow$06 = $inrow$06 + 1 | 0; + } + } + return; +} + +function _quantize_ord_dither($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $17 = 0, $19 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $9 = 0, $ci$05 = 0, $col$03 = 0, $col_index$01 = 0, $input_ptr$04 = 0, $output_ptr$02 = 0, $row$09 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $3 = HEAP32[$cinfo + 120 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + $6 = $1 + 48 | 0; + $7 = $1 + 24 | 0; + if (($num_rows | 0) > 0) { + $9 = ($3 | 0) > 0; + $10 = ($5 | 0) == 0; + $row$09 = 0; + do { + $11 = $output_buf + ($row$09 << 2) | 0; + _jzero_far(HEAP32[$11 >> 2] | 0, $5); + $13 = HEAP32[$6 >> 2] | 0; + $14 = $input_buf + ($row$09 << 2) | 0; + if ($9) { + $ci$05 = 0; + do { + $17 = HEAP32[(HEAP32[$7 >> 2] | 0) + ($ci$05 << 2) >> 2] | 0; + $19 = HEAP32[$1 + 52 + ($ci$05 << 2) >> 2] | 0; + if (!$10) { + $col$03 = $5; + $col_index$01 = 0; + $input_ptr$04 = (HEAP32[$14 >> 2] | 0) + $ci$05 | 0; + $output_ptr$02 = HEAP32[$11 >> 2] | 0; while (1) { - $42 = $j$038 + $40 | 0; - if ($37) $sum$1$lcssa = 0; else { - $45 = HEAP32[(HEAP32[$33 >> 2] | 0) + ($42 << 2) >> 2] | 0; - $i$235 = 0; - $sum$134 = 0; - while (1) { - $51 = (Math_imul(HEAP32[$45 + ($i$235 << 2) >> 2] | 0, HEAP32[$4 + ($i$235 << 2) >> 2] | 0) | 0) + $sum$134 | 0; - $i$235 = $i$235 + 1 | 0; - if (($i$235 | 0) >= ($2 | 0)) { - $sum$1$lcssa = $51; - break; - } else $sum$134 = $51; - } - } - $58 = +($sum$1$lcssa | 0) / +HEAPF64[$41 + ($42 << 3) >> 3] / $26; - $59 = $58 > $max$139; - $res1$2 = $59 ? $j$038 : $res1$136; - $res2$2 = $59 ? $k$1$lcssa : $res2$137; - $max$2 = $59 ? $58 : $max$139; - $j$038 = $j$038 + 1 | 0; - if (($j$038 | 0) == 4) { - $k$1102 = $k$1$lcssa; - $max$3 = $max$2; - $res1$3 = $res1$2; - $res2$3 = $res2$2; - break; - } else { - $max$139 = $max$2; - $res1$136 = $res1$2; - $res2$137 = $res2$2; + HEAP8[$output_ptr$02 >> 0] = (HEAPU8[$output_ptr$02 >> 0] | 0) + (HEAPU8[$17 + ((HEAPU8[$input_ptr$04 >> 0] | 0) + (HEAP32[$19 + ($13 << 6) + ($col_index$01 << 2) >> 2] | 0)) >> 0] | 0); + $col$03 = $col$03 + -1 | 0; + if (!$col$03) break; else { + $col_index$01 = $col_index$01 + 1 & 15; + $input_ptr$04 = $input_ptr$04 + $3 | 0; + $output_ptr$02 = $output_ptr$02 + 1 | 0; } } } - $l$043 = $l$043 + 1 | 0; - if (($l$043 | 0) >= ($31 | 0)) { - $max$0$lcssa = $max$3; - $res1$0$lcssa = $res1$3; - $res2$0$lcssa = $res2$3; - break; - } else { - $k$042 = $k$1102; - $max$044 = $max$3; - $res1$040 = $res1$3; - $res2$041 = $res2$3; - } + $ci$05 = $ci$05 + 1 | 0; + } while (($ci$05 | 0) < ($3 | 0)); + } + HEAP32[$6 >> 2] = $13 + 1 & 15; + $row$09 = $row$09 + 1 | 0; + } while (($row$09 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$0$i1 = 0, $$pre$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $21 = 0, $28 = 0, $30 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ((($1 - $5 | 0) / 20 | 0) >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = (($5 - $10 | 0) / 20 | 0) + $__n | 0; + if ($14 >>> 0 > 214748364) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $19 = ($1 - $17 | 0) / 20 | 0; + if ($19 >>> 0 < 107374182) { + $21 = $19 << 1; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 214748364; + __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, ((HEAP32[$2 >> 2] | 0) - $17 | 0) / 20 | 0, $this + 8 | 0); + $28 = $__v + 8 | 0; + $$pre$i = HEAP32[$28 >> 2] | 0; + $$0$i1 = $__n; + $30 = $$pre$i; + while (1) { + HEAP32[$30 >> 2] = 0; + HEAP32[$30 + 4 >> 2] = 0; + HEAP32[$30 + 8 >> 2] = 0; + HEAP32[$30 + 12 >> 2] = 0; + HEAP8[$30 + 16 >> 0] = 1; + $$0$i1 = $$0$i1 + -1 | 0; + if (!$$0$i1) break; else $30 = $30 + 20 | 0; + } + HEAP32[$28 >> 2] = $$pre$i + ($__n * 20 | 0); + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEED2Ev($__v); + } else __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { + $this = $this | 0; + $info = $info | 0; + $dst_ptr = $dst_ptr | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $10 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $p$0 = 0; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else { + $3 = $info + 52 | 0; + $4 = HEAP8[$3 >> 0] | 0; + $5 = $info + 53 | 0; + $6 = HEAP8[$5 >> 0] | 0; + $9 = HEAP32[$this + 12 >> 2] | 0; + $10 = $this + 16 + ($9 << 3) | 0; + HEAP8[$3 >> 0] = 0; + HEAP8[$5 >> 0] = 0; + __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this + 16 | 0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); + L4 : do if (($9 | 0) > 1) { + $13 = $info + 24 | 0; + $14 = $this + 8 | 0; + $15 = $info + 54 | 0; + $p$0 = $this + 24 | 0; + do { + if (HEAP8[$15 >> 0] | 0) break L4; + if (!(HEAP8[$3 >> 0] | 0)) { + if (HEAP8[$5 >> 0] | 0) if (!(HEAP32[$14 >> 2] & 1)) break L4; + } else { + if ((HEAP32[$13 >> 2] | 0) == 1) break L4; + if (!(HEAP32[$14 >> 2] & 2)) break L4; } + HEAP8[$3 >> 0] = 0; + HEAP8[$5 >> 0] = 0; + __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); + $p$0 = $p$0 + 8 | 0; + } while ($p$0 >>> 0 < $10 >>> 0); + } while (0); + HEAP8[$3 >> 0] = $4; + HEAP8[$5 >> 0] = $6; + } + return; +} + +function __ZN6vision18Condition4Points2dIfEEbPT_S2_S2_S2_RS1_S2_PKS1_S5_S5_S5_($xp1, $xp2, $xp3, $xp4, $s, $mu, $x1, $x2, $x3, $x4) { + $xp1 = $xp1 | 0; + $xp2 = $xp2 | 0; + $xp3 = $xp3 | 0; + $xp4 = $xp4 | 0; + $s = $s | 0; + $mu = $mu | 0; + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + var $$0 = 0, $10 = 0, $13 = 0, $16 = 0, $19 = 0.0, $22 = 0.0, $24 = 0.0, $26 = 0.0, $28 = 0.0, $30 = 0.0, $32 = 0.0, $34 = 0.0, $36 = 0.0, $56 = 0.0, $61 = 0.0, $7 = 0.0, $8 = 0; + $7 = (+HEAPF32[$x1 >> 2] + +HEAPF32[$x2 >> 2] + +HEAPF32[$x3 >> 2] + +HEAPF32[$x4 >> 2]) * .25; + HEAPF32[$mu >> 2] = $7; + $8 = $x1 + 4 | 0; + $10 = $x2 + 4 | 0; + $13 = $x3 + 4 | 0; + $16 = $x4 + 4 | 0; + $19 = (+HEAPF32[$8 >> 2] + +HEAPF32[$10 >> 2] + +HEAPF32[$13 >> 2] + +HEAPF32[$16 >> 2]) * .25; + HEAPF32[$mu + 4 >> 2] = $19; + $22 = +HEAPF32[$x1 >> 2] - $7; + $24 = +HEAPF32[$8 >> 2] - $19; + $26 = +HEAPF32[$x2 >> 2] - $7; + $28 = +HEAPF32[$10 >> 2] - $19; + $30 = +HEAPF32[$x3 >> 2] - $7; + $32 = +HEAPF32[$13 >> 2] - $19; + $34 = +HEAPF32[$x4 >> 2] - $7; + $36 = +HEAPF32[$16 >> 2] - $19; + $56 = (+Math_sqrt(+($22 * $22 + $24 * $24)) + +Math_sqrt(+($26 * $26 + $28 * $28)) + +Math_sqrt(+($30 * $30 + $32 * $32)) + +Math_sqrt(+($34 * $34 + $36 * $36))) * .25; + if ($56 == 0.0) $$0 = 0; else { + $61 = 1.0 / $56 * 1.4142135623730951; + HEAPF32[$s >> 2] = $61; + HEAPF32[$xp1 >> 2] = $22 * $61; + HEAPF32[$xp1 + 4 >> 2] = $24 * +HEAPF32[$s >> 2]; + HEAPF32[$xp2 >> 2] = $26 * +HEAPF32[$s >> 2]; + HEAPF32[$xp2 + 4 >> 2] = $28 * +HEAPF32[$s >> 2]; + HEAPF32[$xp3 >> 2] = $30 * +HEAPF32[$s >> 2]; + HEAPF32[$xp3 + 4 >> 2] = $32 * +HEAPF32[$s >> 2]; + HEAPF32[$xp4 >> 2] = $34 * +HEAPF32[$s >> 2]; + HEAPF32[$xp4 + 4 >> 2] = $36 * +HEAPF32[$s >> 2]; + $$0 = 1; + } + return $$0 | 0; +} + +function _h2v1_fancy_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + var $$pn = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $24 = 0, $27 = 0, $29 = 0, $29$phi = 0, $44 = 0, $6 = 0, $8 = 0, $9 = 0, $colctr$011 = 0, $inptr$09 = 0, $inrow$013 = 0, $$pn$looptemp = 0; + $0 = HEAP32[$output_data_ptr >> 2] | 0; + $1 = $cinfo + 312 | 0; + $2 = $compptr + 40 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $inrow$013 = 0; + do { + $6 = HEAP32[$input_data + ($inrow$013 << 2) >> 2] | 0; + $8 = HEAP32[$0 + ($inrow$013 << 2) >> 2] | 0; + $9 = $6 + 1 | 0; + $10 = HEAP8[$6 >> 0] | 0; + HEAP8[$8 >> 0] = $10; + HEAP8[$8 + 1 >> 0] = ((HEAPU8[$9 >> 0] | 0) + 2 + (($10 & 255) * 3 | 0) | 0) >>> 2; + $20 = HEAP32[$2 >> 2] | 0; + $21 = $20 + -2 | 0; + $22 = $20 << 1; + if ($21) { + $$pn = $8; + $29 = $6; + $colctr$011 = $21; + $inptr$09 = $9; + while (1) { + $$pn$looptemp = $$pn; + $$pn = $$pn + 2 | 0; + $24 = $inptr$09 + 1 | 0; + $27 = (HEAPU8[$inptr$09 >> 0] | 0) * 3 | 0; + HEAP8[$$pn >> 0] = ((HEAPU8[$29 >> 0] | 0) + 1 + $27 | 0) >>> 2; + HEAP8[$$pn$looptemp + 3 >> 0] = ($27 + 2 + (HEAPU8[$24 >> 0] | 0) | 0) >>> 2; + $colctr$011 = $colctr$011 + -1 | 0; + if (!$colctr$011) break; else { + $29$phi = $inptr$09; + $inptr$09 = $24; + $29 = $29$phi; + } + } + } + $44 = HEAP8[$6 + ($20 + -1) >> 0] | 0; + HEAP8[$8 + ($22 + -2) >> 0] = ((HEAPU8[$6 + ($20 + -2) >> 0] | 0) + 1 + (($44 & 255) * 3 | 0) | 0) >>> 2; + HEAP8[$8 + ($22 + -1) >> 0] = $44; + $inrow$013 = $inrow$013 + 1 | 0; + } while (($inrow$013 | 0) < (HEAP32[$1 >> 2] | 0)); + } + return; +} + +function __ZN6vision24OrthogonalizeIdentity8x9IfEEbPT_PKS1_($x, $Q) { + $x = $x | 0; + $Q = $Q | 0; + var $$0 = 0, $0 = 0.0, $11 = 0.0, $14 = 0.0, $17 = 0.0, $2 = 0.0, $20 = 0.0, $23 = 0.0, $25 = 0, $5 = 0.0, $8 = 0.0, $X = 0, $w = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 368 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $w = sp + 324 | 0; + $X = sp; + $0 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X, $Q, 0); + HEAPF32[$w >> 2] = $0; + $2 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 36 | 0, $Q, 1); + HEAPF32[$w + 4 >> 2] = $2; + $5 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 72 | 0, $Q, 2); + HEAPF32[$w + 8 >> 2] = $5; + $8 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 108 | 0, $Q, 3); + HEAPF32[$w + 12 >> 2] = $8; + $11 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 144 | 0, $Q, 4); + HEAPF32[$w + 16 >> 2] = $11; + $14 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 180 | 0, $Q, 5); + HEAPF32[$w + 20 >> 2] = $14; + $17 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 216 | 0, $Q, 6); + HEAPF32[$w + 24 >> 2] = $17; + $20 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 252 | 0, $Q, 7); + HEAPF32[$w + 28 >> 2] = $20; + $23 = +__ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($X + 288 | 0, $Q, 8); + HEAPF32[$w + 32 >> 2] = $23; + $25 = __ZN6vision9MaxIndex9IfEEiPKT_($w) | 0; + if (+HEAPF32[$w + ($25 << 2) >> 2] == 0.0) $$0 = 0; else { + dest = $x; + src = $X + ($25 * 9 << 2) | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj($this, $__res_arg) { + $this = $this | 0; + $__res_arg = $__res_arg | 0; + var $1 = 0, $15 = 0, $16 = 0, $21 = 0, $22 = 0, $28 = 0, $4 = 0, $41 = 0, $8 = 0, $__new_data$0 = 0, $__now_long$0$off0 = 0, $__p$0 = 0, $__was_long$0$off0 = 0; + if ($__res_arg >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $22 = 10; + $8 = $1; + } else { + $4 = HEAP32[$this >> 2] | 0; + $22 = ($4 & -2) + -1 | 0; + $8 = $4 & 255; + } + if (!($8 & 1)) $15 = ($8 & 255) >>> 1; else $15 = HEAP32[$this + 4 >> 2] | 0; + $16 = $15 >>> 0 > $__res_arg >>> 0 ? $15 : $__res_arg; + if ($16 >>> 0 < 11) $21 = 10; else $21 = ($16 + 16 & -16) + -1 | 0; + do if (($21 | 0) != ($22 | 0)) { + do if (($21 | 0) == 10) { + $__new_data$0 = $this + 1 | 0; + $__now_long$0$off0 = 0; + $__p$0 = HEAP32[$this + 8 >> 2] | 0; + $__was_long$0$off0 = 1; + } else { + $28 = __Znwj($21 + 1 | 0) | 0; + if (!($8 & 1)) { + $__new_data$0 = $28; + $__now_long$0$off0 = 1; + $__p$0 = $this + 1 | 0; + $__was_long$0$off0 = 0; + break; } else { - $max$0$lcssa = 0.0; - $res1$0$lcssa = -1; - $res2$0$lcssa = -1; + $__new_data$0 = $28; + $__now_long$0$off0 = 1; + $__p$0 = HEAP32[$this + 8 >> 2] | 0; + $__was_long$0$off0 = 1; + break; } - HEAP32[$dir >> 2] = $res1$0$lcssa; - HEAP32[$code >> 2] = $res2$0$lcssa; - HEAPF64[$cf >> 3] = $max$0$lcssa; - _free($4); - $$0 = 0; - break L1; + } while (0); + if (!($8 & 1)) $41 = ($8 & 255) >>> 1; else $41 = HEAP32[$this + 4 >> 2] | 0; + _memcpy($__new_data$0 | 0, $__p$0 | 0, $41 + 1 | 0) | 0; + if ($__was_long$0$off0) __ZdlPv($__p$0); + if ($__now_long$0$off0) { + HEAP32[$this >> 2] = $21 + 1 | 1; + HEAP32[$this + 4 >> 2] = $15; + HEAP32[$this + 8 >> 2] = $__new_data$0; + break; + } else { + HEAP8[$this >> 0] = $15 << 1; break; } - case 1: - { - $63 = Math_imul($size, $size) | 0; - $65 = _malloc($63 << 2) | 0; - if (!$65) { - _arLog(3, 5471, $vararg_buffer1); - _exit(1); - } - if (!$63) $ave$1$lcssa = 0; else { - $ave$183 = 0; - $i$384 = 0; - while (1) { - $72 = ((HEAPU8[$data + $i$384 >> 0] | 0) ^ 255) + $ave$183 | 0; - $i$384 = $i$384 + 1 | 0; - if (($i$384 | 0) >= ($63 | 0)) { - $ave$1$lcssa = $72; - break; - } else $ave$183 = $72; - } - } - $75 = ($ave$1$lcssa | 0) / ($63 | 0) | 0; - if (!$63) $sum$2$lcssa = 0.0; else { - $i$478 = 0; - $sum$277 = 0; - while (1) { - $81 = ((HEAPU8[$data + $i$478 >> 0] | 0) ^ 255) - $75 | 0; - HEAP32[$65 + ($i$478 << 2) >> 2] = $81; - $84 = (Math_imul($81, $81) | 0) + $sum$277 | 0; - $i$478 = $i$478 + 1 | 0; - if (($i$478 | 0) >= ($63 | 0)) { - $$lcssa108 = $84; - break; - } else $sum$277 = $84; - } - $sum$2$lcssa = +($$lcssa108 | 0); - } - $87 = +Math_sqrt(+$sum$2$lcssa); - if ($87 / +($size | 0) < 15.0) { - HEAP32[$code >> 2] = 0; - HEAP32[$dir >> 2] = 0; - HEAPF64[$cf >> 3] = -1.0; - _free($65); - $$0 = -2; - break L1; + } while (0); + return; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE7reserveEj($this, $__res_arg) { + $this = $this | 0; + $__res_arg = $__res_arg | 0; + var $1 = 0, $15 = 0, $16 = 0, $21 = 0, $22 = 0, $29 = 0, $4 = 0, $42 = 0, $8 = 0, $__new_data$0 = 0, $__now_long$0$off0 = 0, $__p$0 = 0, $__was_long$0$off0 = 0; + if ($__res_arg >>> 0 > 1073741807) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $22 = 1; + $8 = $1; + } else { + $4 = HEAP32[$this >> 2] | 0; + $22 = ($4 & -2) + -1 | 0; + $8 = $4 & 255; + } + if (!($8 & 1)) $15 = ($8 & 255) >>> 1; else $15 = HEAP32[$this + 4 >> 2] | 0; + $16 = $15 >>> 0 > $__res_arg >>> 0 ? $15 : $__res_arg; + if ($16 >>> 0 < 2) $21 = 1; else $21 = ($16 + 4 & -4) + -1 | 0; + do if (($21 | 0) != ($22 | 0)) { + do if (($21 | 0) == 1) { + $__new_data$0 = $this + 4 | 0; + $__now_long$0$off0 = 0; + $__p$0 = HEAP32[$this + 8 >> 2] | 0; + $__was_long$0$off0 = 1; + } else { + $29 = __Znwj(($21 << 2) + 4 | 0) | 0; + if (!($8 & 1)) { + $__new_data$0 = $29; + $__now_long$0$off0 = 1; + $__p$0 = $this + 4 | 0; + $__was_long$0$off0 = 0; + break; + } else { + $__new_data$0 = $29; + $__now_long$0$off0 = 1; + $__p$0 = HEAP32[$this + 8 >> 2] | 0; + $__was_long$0$off0 = 1; + break; } - $91 = HEAP32[$pattHandle >> 2] | 0; - $93 = $pattHandle + 20 | 0; - $94 = $pattHandle + 24 | 0; - if (($91 | 0) > 0) { - $96 = HEAP32[$pattHandle + 8 >> 2] | 0; - $97 = ($63 | 0) == 0; - $k$270 = -1; - $l$171 = 0; - $max$472 = 0.0; - $res1$468 = -1; - $res2$469 = -1; - while (1) { - $k$3$in = $k$270; - L58 : while (1) { - $k$3 = $k$3$in + 1 | 0; - switch (HEAP32[$96 + ($k$3 << 2) >> 2] | 0) { - case 0: - { - $k$3$in = $k$3; - break; - } - case 2: - { - $k$3106 = $k$3; - $max$7 = $max$472; - $res1$7 = $res1$468; - $res2$7 = $res2$469; - break L58; - break; - } - default: - { - $k$3$lcssa = $k$3; - label = 37; - break L58; - } - } - } - if ((label | 0) == 37) { - label = 0; - $100 = $k$3$lcssa << 2; - $101 = HEAP32[$94 >> 2] | 0; - $j$166 = 0; - $max$567 = $max$472; - $res1$564 = $res1$468; - $res2$565 = $res2$469; - while (1) { - $102 = $j$166 + $100 | 0; - if ($97) $sum$3$lcssa = 0; else { - $105 = HEAP32[(HEAP32[$93 >> 2] | 0) + ($102 << 2) >> 2] | 0; - $i$560 = 0; - $sum$359 = 0; - while (1) { - $111 = (Math_imul(HEAP32[$105 + ($i$560 << 2) >> 2] | 0, HEAP32[$65 + ($i$560 << 2) >> 2] | 0) | 0) + $sum$359 | 0; - $i$560 = $i$560 + 1 | 0; - if (($i$560 | 0) >= ($63 | 0)) { - $sum$3$lcssa = $111; - break; - } else $sum$359 = $111; + } while (0); + if (!($8 & 1)) $42 = ($8 & 255) >>> 1; else $42 = HEAP32[$this + 4 >> 2] | 0; + _wmemcpy($__new_data$0, $__p$0, $42 + 1 | 0) | 0; + if ($__was_long$0$off0) __ZdlPv($__p$0); + if ($__now_long$0$off0) { + HEAP32[$this >> 2] = $21 + 1 | 1; + HEAP32[$this + 4 >> 2] = $15; + HEAP32[$this + 8 >> 2] = $__new_data$0; + break; + } else { + HEAP8[$this >> 0] = $15 << 1; + break; + } + } while (0); + return; +} + +function _alloc_barray($cinfo, $pool_id, $blocksperrow, $numrows) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $blocksperrow = $blocksperrow | 0; + $numrows = $numrows | 0; + var $$numrows = 0, $1 = 0, $11 = 0, $12 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $5 = 0, $currow$05 = 0, $currow$11 = 0, $i$02 = 0, $rowsperchunk$14 = 0, $umax = 0, $workspace$03 = 0, $rowsperchunk$14$looptemp = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + $2 = $blocksperrow << 7; + $3 = 999999984 / ($2 >>> 0) | 0; + if (!$3) { + $5 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$5 + 20 >> 2] = 70; + FUNCTION_TABLE_vi[HEAP32[$5 >> 2] & 255]($cinfo); + } + $$numrows = ($3 | 0) < ($numrows | 0) ? $3 : $numrows; + HEAP32[$1 + 80 >> 2] = $$numrows; + $11 = _alloc_small($cinfo, $pool_id, $numrows << 2) | 0; + $12 = ~$numrows; + if ($numrows) { + $currow$05 = 0; + $rowsperchunk$14 = $$numrows; + do { + $17 = $numrows - $currow$05 | 0; + $rowsperchunk$14$looptemp = $rowsperchunk$14; + $rowsperchunk$14 = $rowsperchunk$14 >>> 0 < $17 >>> 0 ? $rowsperchunk$14 : $17; + $20 = _alloc_large($cinfo, $pool_id, Math_imul($2, $rowsperchunk$14) | 0) | 0; + $21 = $currow$05 + $12 | 0; + $22 = ~$rowsperchunk$14$looptemp; + $umax = $21 >>> 0 > $22 >>> 0 ? $21 : $22; + if ($rowsperchunk$14) { + $currow$11 = $currow$05; + $i$02 = $rowsperchunk$14; + $workspace$03 = $20; + while (1) { + HEAP32[$11 + ($currow$11 << 2) >> 2] = $workspace$03; + $i$02 = $i$02 + -1 | 0; + if (!$i$02) break; else { + $currow$11 = $currow$11 + 1 | 0; + $workspace$03 = $workspace$03 + ($blocksperrow << 7) | 0; + } + } + } + $currow$05 = $currow$05 + -1 - $umax | 0; + } while ($currow$05 >>> 0 < $numrows >>> 0); + } + return $11 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { + $first = $first | 0; + $last = $last | 0; + $db = $db | 0; + var $$0 = 0, $1 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $22 = 0, $3 = 0, $5 = 0, $6 = 0, $args = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $args = sp; + if (($first | 0) == ($last | 0)) $$0 = $first; else { + $1 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; + if (($1 | 0) == ($first | 0)) $$0 = $first; else { + $3 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1, $last, $db) | 0; + if (($3 | 0) == ($1 | 0)) $$0 = $1; else { + $5 = $db + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ((($6 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else { + __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $6 + -24 | 0); + $14 = HEAP32[$5 >> 2] | 0; + $15 = $14 + -24 | 0; + $17 = $14; + do { + $16 = $17 + -24 | 0; + HEAP32[$5 >> 2] = $16; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); + $17 = HEAP32[$5 >> 2] | 0; + } while (($17 | 0) != ($15 | 0)); + $20 = HEAP8[$args >> 0] | 0; + $22 = ($20 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($14 + -48 | 0, $22 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $22 ? ($20 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); + $$0 = $3; + } + } + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE8__appendEjRKi($this, $__n, $__x) { + $this = $this | 0; + $__n = $__n | 0; + $__x = $__x | 0; + var $$0$i = 0, $$0$i2 = 0, $$0$i4 = 0, $$promoted$i1 = 0, $1 = 0, $10 = 0, $15 = 0, $19 = 0, $2 = 0, $22 = 0, $23 = 0, $26 = 0, $3 = 0, $33 = 0, $35 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = $3; + if ($1 - $5 >> 2 >>> 0 < $__n >>> 0) { + $15 = HEAP32[$this >> 2] | 0; + $19 = ($5 - $15 >> 2) + $__n | 0; + if ($19 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $22 = $15; + $23 = $1 - $22 | 0; + if ($23 >> 2 >>> 0 < 536870911) { + $26 = $23 >> 1; + $$0$i4 = $26 >>> 0 < $19 >>> 0 ? $19 : $26; + } else $$0$i4 = 1073741823; + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEEC2EjjS3_($__v, $$0$i4, (HEAP32[$2 >> 2] | 0) - $22 >> 2, $this + 8 | 0); + $33 = $__v + 8 | 0; + $$promoted$i1 = HEAP32[$33 >> 2] | 0; + $$0$i2 = $__n; + $35 = $$promoted$i1; + while (1) { + HEAP32[$35 >> 2] = HEAP32[$__x >> 2]; + $$0$i2 = $$0$i2 + -1 | 0; + if (!$$0$i2) break; else $35 = $35 + 4 | 0; + } + HEAP32[$33 >> 2] = $$promoted$i1 + ($__n << 2); + __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEED2Ev($__v); + } else { + $$0$i = $__n; + $10 = $3; + while (1) { + HEAP32[$10 >> 2] = HEAP32[$__x >> 2]; + $$0$i = $$0$i + -1 | 0; + if (!$$0$i) break; else $10 = $10 + 4 | 0; + } + HEAP32[$2 >> 2] = $3 + ($__n << 2); + } + STACKTOP = sp; + return; +} + +function _arMatrixMul($dest, $a, $b) { + $dest = $dest | 0; + $a = $a | 0; + $b = $b | 0; + var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $19 = 0, $20 = 0, $29 = 0.0, $6 = 0, $c$04 = 0, $i$01 = 0, $p1$02 = 0, $p2$03 = 0, $p3$09 = 0, $p3$15 = 0, $r$08 = 0, $smax = 0; + $1 = HEAP32[$a + 8 >> 2] | 0; + if (($1 | 0) == (HEAP32[$b + 4 >> 2] | 0)) { + $6 = HEAP32[$dest + 4 >> 2] | 0; + if (($6 | 0) == (HEAP32[$a + 4 >> 2] | 0)) { + $11 = HEAP32[$dest + 8 >> 2] | 0; + if (($11 | 0) == (HEAP32[$b + 8 >> 2] | 0)) { + $smax = ($11 | 0) > 0 ? $11 : 0; + if (($6 | 0) > 0) { + $18 = ($11 | 0) > 0; + $19 = ($1 | 0) > 0; + $p3$09 = HEAP32[$dest >> 2] | 0; + $r$08 = 0; + while (1) { + $20 = Math_imul($1, $r$08) | 0; + if ($18) { + $c$04 = 0; + $p3$15 = $p3$09; + while (1) { + HEAPF64[$p3$15 >> 3] = 0.0; + if ($19) { + $29 = 0.0; + $i$01 = 0; + $p1$02 = (HEAP32[$a >> 2] | 0) + ($20 << 3) | 0; + $p2$03 = (HEAP32[$b >> 2] | 0) + ($c$04 << 3) | 0; + while (1) { + $29 = $29 + +HEAPF64[$p1$02 >> 3] * +HEAPF64[$p2$03 >> 3]; + HEAPF64[$p3$15 >> 3] = $29; + $i$01 = $i$01 + 1 | 0; + if (($i$01 | 0) >= ($1 | 0)) break; else { + $p1$02 = $p1$02 + 8 | 0; + $p2$03 = $p2$03 + ($11 << 3) | 0; + } + } } - } - $118 = +($sum$3$lcssa | 0) / +HEAPF64[$101 + ($102 << 3) >> 3] / $87; - $119 = $118 > $max$567; - $res1$6 = $119 ? $j$166 : $res1$564; - $res2$6 = $119 ? $k$3$lcssa : $res2$565; - $max$6 = $119 ? $118 : $max$567; - $j$166 = $j$166 + 1 | 0; - if (($j$166 | 0) == 4) { - $k$3106 = $k$3$lcssa; - $max$7 = $max$6; - $res1$7 = $res1$6; - $res2$7 = $res2$6; - break; - } else { - $max$567 = $max$6; - $res1$564 = $res1$6; - $res2$565 = $res2$6; + $c$04 = $c$04 + 1 | 0; + if (($c$04 | 0) >= ($11 | 0)) break; else $p3$15 = $p3$15 + 8 | 0; } } + $r$08 = $r$08 + 1 | 0; + if (($r$08 | 0) >= ($6 | 0)) { + $$0 = 0; + break; + } else $p3$09 = $p3$09 + ($smax << 3) | 0; } - $l$171 = $l$171 + 1 | 0; - if (($l$171 | 0) >= ($91 | 0)) { - $max$4$lcssa = $max$7; - $res1$4$lcssa = $res1$7; - $res2$4$lcssa = $res2$7; - break; - } else { - $k$270 = $k$3106; - $max$472 = $max$7; - $res1$468 = $res1$7; - $res2$469 = $res2$7; + } else $$0 = 0; + } else $$0 = -1; + } else $$0 = -1; + } else $$0 = -1; + return $$0 | 0; +} + +function __ZNKSt3__18messagesIcE6do_getEiiiRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE($agg$result, $this, $__c, $__set, $__msgid, $__dflt) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__c = $__c | 0; + $__set = $__set | 0; + $__msgid = $__msgid | 0; + $__dflt = $__dflt | 0; + var $$0$i12 = 0, $$0$i614 = 0, $13 = 0, $14 = 0, $2 = 0, $30 = 0, $33 = 0, $34 = 0, $4 = 0, $8 = 0, $__ndflt = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__ndflt = sp; + HEAP32[$__ndflt >> 2] = 0; + HEAP32[$__ndflt + 4 >> 2] = 0; + HEAP32[$__ndflt + 8 >> 2] = 0; + $2 = HEAP8[$__dflt >> 0] | 0; + $4 = ($2 & 1) == 0; + $8 = $4 ? $__dflt + 1 | 0 : HEAP32[$__dflt + 8 >> 2] | 0; + $13 = $4 ? ($2 & 255) >>> 1 : HEAP32[$__dflt + 4 >> 2] | 0; + $14 = $8 + $13 | 0; + if (($13 | 0) > 0) { + $$0$i614 = $8; + do { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($__ndflt, HEAP8[$$0$i614 >> 0] | 0); + $$0$i614 = $$0$i614 + 1 | 0; + } while ($$0$i614 >>> 0 < $14 >>> 0); + } + $30 = _catgets(($__c | 0) == -1 ? -1 : $__c << 1, $__set, $__msgid, (HEAP8[$__ndflt >> 0] & 1) == 0 ? $__ndflt + 1 | 0 : HEAP32[$__ndflt + 8 >> 2] | 0) | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + $33 = _strlen($30) | 0; + $34 = $30 + $33 | 0; + if (($33 | 0) > 0) { + $$0$i12 = $30; + do { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($agg$result, HEAP8[$$0$i12 >> 0] | 0); + $$0$i12 = $$0$i12 + 1 | 0; + } while ($$0$i12 >>> 0 < $34 >>> 0); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($__ndflt); + STACKTOP = sp; + return; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis3IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum = 0, $0 = 0, $1 = 0, $11 = 0.0, $12 = 0.0, $14 = 0.0, $16 = 0.0, $18 = 0.0, $2 = 0, $20 = 0, $22 = 0.0, $3 = 0, $5 = 0, $7 = 0, $9 = 0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 108 | 0; + $1 = $Q + 72 | 0; + $2 = $A + 108 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $1, $2); + $3 = $Q + 144 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($3, $1, $A + 144 | 0); + $5 = $Q + 180 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($5, $1, $A + 180 | 0); + $7 = $Q + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($7, $1, $A + 216 | 0); + $9 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($9, $1, $A + 252 | 0); + $11 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $11; + $12 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($3, $3); + HEAPF32[$ss + 4 >> 2] = $12; + $14 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($5, $5); + HEAPF32[$ss + 8 >> 2] = $14; + $16 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($7, $7); + HEAPF32[$ss + 12 >> 2] = $16; + $18 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($9, $9); + HEAPF32[$ss + 16 >> 2] = $18; + $20 = __ZN6vision9MaxIndex5IfEEiPKT_($ss) | 0; + $22 = +HEAPF32[$ss + ($20 << 2) >> 2]; + if ($22 == 0.0) $$0 = 0; else { + $$sum = ($20 * 9 | 0) + 27 | 0; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($2, $A + ($$sum << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$22)); + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _alloc_sarray($cinfo, $pool_id, $samplesperrow, $numrows) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $samplesperrow = $samplesperrow | 0; + $numrows = $numrows | 0; + var $$numrows = 0, $1 = 0, $10 = 0, $11 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $4 = 0, $currow$05 = 0, $currow$11 = 0, $i$02 = 0, $rowsperchunk$14 = 0, $umax = 0, $workspace$03 = 0, $rowsperchunk$14$looptemp = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + $2 = 999999984 / ($samplesperrow >>> 0) | 0; + if (!$2) { + $4 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$4 + 20 >> 2] = 70; + FUNCTION_TABLE_vi[HEAP32[$4 >> 2] & 255]($cinfo); + } + $$numrows = ($2 | 0) < ($numrows | 0) ? $2 : $numrows; + HEAP32[$1 + 80 >> 2] = $$numrows; + $10 = _alloc_small($cinfo, $pool_id, $numrows << 2) | 0; + $11 = ~$numrows; + if ($numrows) { + $currow$05 = 0; + $rowsperchunk$14 = $$numrows; + do { + $16 = $numrows - $currow$05 | 0; + $rowsperchunk$14$looptemp = $rowsperchunk$14; + $rowsperchunk$14 = $rowsperchunk$14 >>> 0 < $16 >>> 0 ? $rowsperchunk$14 : $16; + $19 = _alloc_large($cinfo, $pool_id, Math_imul($rowsperchunk$14, $samplesperrow) | 0) | 0; + $20 = $currow$05 + $11 | 0; + $21 = ~$rowsperchunk$14$looptemp; + $umax = $20 >>> 0 > $21 >>> 0 ? $20 : $21; + if ($rowsperchunk$14) { + $currow$11 = $currow$05; + $i$02 = $rowsperchunk$14; + $workspace$03 = $19; + while (1) { + HEAP32[$10 + ($currow$11 << 2) >> 2] = $workspace$03; + $i$02 = $i$02 + -1 | 0; + if (!$i$02) break; else { + $currow$11 = $currow$11 + 1 | 0; + $workspace$03 = $workspace$03 + $samplesperrow | 0; } } + } + $currow$05 = $currow$05 + -1 - $umax | 0; + } while ($currow$05 >>> 0 < $numrows >>> 0); + } + return $10 | 0; +} + +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE11addKeyframeENSt3__110shared_ptrINS_8KeyframeILi96EEEEEi($this, $keyframe, $id) { + $this = $this | 0; + $keyframe = $keyframe | 0; + $id = $id | 0; + var $0 = 0, $1 = 0, $11 = 0, $15 = 0, $2 = 0, $3 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 16 | 0; + $1 = sp + 12 | 0; + $2 = sp; + HEAP32[$1 >> 2] = $id; + $3 = $this + 72 | 0; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS7_PvEEEERKT_($3, $1) | 0) { + $6 = ___cxa_allocate_exception(16) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($2, 30139, 17); + __ZN6vision9ExceptionC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE($6, $2); + ___cxa_throw($6 | 0, 32, 5); + } + $7 = __ZNSt3__113unordered_mapIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEENS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS5_EEEEEixERSC_($3, $1) | 0; + $8 = HEAP32[$keyframe >> 2] | 0; + HEAP32[$0 >> 2] = $8; + $9 = $0 + 4 | 0; + $11 = HEAP32[$keyframe + 4 >> 2] | 0; + HEAP32[$9 >> 2] = $11; + if ($11) __ZNSt3__119__shared_weak_count12__add_sharedEv($11); + HEAP32[$0 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$7 >> 2] = $8; + $15 = $7 + 4 | 0; + HEAP32[$9 >> 2] = HEAP32[$15 >> 2]; + HEAP32[$15 >> 2] = $11; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($0); + STACKTOP = sp; + return; +} + +function __ZL25default_terminate_handlerv() { + var $0 = 0, $11 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $29 = 0, $30 = 0, $34 = 0, $6 = 0, $8 = 0, $thrown_object = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer10 = sp + 32 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer = sp; + $thrown_object = sp + 36 | 0; + $0 = ___cxa_get_globals_fast() | 0; + if ($0) { + $2 = HEAP32[$0 >> 2] | 0; + if ($2) { + $6 = $2 + 48 | 0; + $8 = HEAP32[$6 >> 2] | 0; + $11 = HEAP32[$6 + 4 >> 2] | 0; + if (!(($8 & -256 | 0) == 1126902528 & ($11 | 0) == 1129074247)) { + HEAP32[$vararg_buffer7 >> 2] = HEAP32[1544]; + _abort_message(49830, $vararg_buffer7); + } + if (($8 | 0) == 1126902529 & ($11 | 0) == 1129074247) $21 = HEAP32[$2 + 44 >> 2] | 0; else $21 = $2 + 80 | 0; + HEAP32[$thrown_object >> 2] = $21; + $22 = HEAP32[$2 >> 2] | 0; + $24 = HEAP32[$22 + 4 >> 2] | 0; + if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[720 >> 2] | 0) + 16 >> 2] & 63](720, $22, $thrown_object) | 0) { + $29 = HEAP32[$thrown_object >> 2] | 0; + $30 = HEAP32[1544] | 0; + $34 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$29 >> 2] | 0) + 8 >> 2] & 127]($29) | 0; + HEAP32[$vararg_buffer >> 2] = $30; + HEAP32[$vararg_buffer + 4 >> 2] = $24; + HEAP32[$vararg_buffer + 8 >> 2] = $34; + _abort_message(49744, $vararg_buffer); } else { - $max$4$lcssa = 0.0; - $res1$4$lcssa = -1; - $res2$4$lcssa = -1; + HEAP32[$vararg_buffer3 >> 2] = HEAP32[1544]; + HEAP32[$vararg_buffer3 + 4 >> 2] = $24; + _abort_message(49789, $vararg_buffer3); } - HEAP32[$dir >> 2] = $res1$4$lcssa; - HEAP32[$code >> 2] = $res2$4$lcssa; - HEAPF64[$cf >> 3] = $max$4$lcssa; - _free($65); - $$0 = 0; - break L1; - break; } - default: - { - $$0 = -1; - break L1; + } + _abort_message(49868, $vararg_buffer10); +} + +function _start_pass_2_quant($cinfo, $is_pre_scan) { + $cinfo = $cinfo | 0; + $is_pre_scan = $is_pre_scan | 0; + var $1 = 0, $12 = 0, $16 = 0, $18 = 0, $23 = 0, $3 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $40 = 0, $41 = 0, $46 = 0, $i$01 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $3 = HEAP32[$1 + 24 >> 2] | 0; + $4 = $cinfo + 88 | 0; + if (!(HEAP32[$4 >> 2] | 0)) $12 = 0; else { + HEAP32[$4 >> 2] = 2; + $12 = 2; + } + if (!$is_pre_scan) { + HEAP32[$1 + 4 >> 2] = ($12 | 0) == 2 ? 26 : 27; + HEAP32[$1 + 8 >> 2] = 139; + $16 = HEAP32[$cinfo + 132 >> 2] | 0; + if (($16 | 0) < 1) { + $18 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$18 + 20 >> 2] = 56; + HEAP32[$18 + 24 >> 2] = 1; + FUNCTION_TABLE_vi[HEAP32[$18 >> 2] & 255]($cinfo); + } else if (($16 | 0) > 256) { + $23 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$23 + 20 >> 2] = 57; + HEAP32[$23 + 24 >> 2] = 256; + FUNCTION_TABLE_vi[HEAP32[$23 >> 2] & 255]($cinfo); + } + if ((HEAP32[$4 >> 2] | 0) == 2) { + $32 = ((HEAP32[$cinfo + 112 >> 2] | 0) * 6 | 0) + 12 | 0; + $33 = $1 + 32 | 0; + $34 = HEAP32[$33 >> 2] | 0; + if (!$34) { + $40 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, $32) | 0; + HEAP32[$33 >> 2] = $40; + $41 = $40; + } else $41 = $34; + _jzero_far($41, $32); + if (!(HEAP32[$1 + 40 >> 2] | 0)) _init_error_limit($cinfo); + HEAP32[$1 + 36 >> 2] = 0; } - } while (0); + } else { + HEAP32[$1 + 4 >> 2] = 25; + HEAP32[$1 + 8 >> 2] = 138; + HEAP32[$1 + 28 >> 2] = 1; + } + $46 = $1 + 28 | 0; + if (HEAP32[$46 >> 2] | 0) { + $i$01 = 0; + do { + _jzero_far(HEAP32[$3 + ($i$01 << 2) >> 2] | 0, 4096); + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) != 32); + HEAP32[$46 >> 2] = 0; + } + return; +} + +function _teardown($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $13 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $i$02 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $4 = $3 + 196 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if ($5) { + _free($5); + HEAP32[$4 >> 2] = 0; + HEAP32[$3 + 200 >> 2] = 0; + } + _deleteHandle($3); + _arPattDeleteHandle(HEAP32[$3 + 216 >> 2] | 0) | 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_(5820, $0) | 0; + $10 = $3 + 280 | 0; + $11 = $3 + 284 | 0; + $13 = HEAP32[$10 >> 2] | 0; + if ((HEAP32[$11 >> 2] | 0) != ($13 | 0)) { + $16 = $13; + $i$02 = 0; + do { + _arMultiFreeConfig(HEAP32[$16 + ($i$02 << 3) + 4 >> 2] | 0) | 0; + $i$02 = $i$02 + 1 | 0; + $16 = HEAP32[$10 >> 2] | 0; + } while ($i$02 >>> 0 < (HEAP32[$11 >> 2] | 0) - $16 >> 3 >>> 0); + } + __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($10); + __ZdlPv($10); + __ZN12arControllerD2Ev($3); + __ZdlPv($3); + $$0 = 0; + } STACKTOP = sp; return $$0 | 0; } -function _arMultiReadConfigFile($filename, $pattHandle) { - $filename = $filename | 0; - $pattHandle = $pattHandle | 0; - var $$0 = 0, $0 = 0, $108 = 0, $11 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $21 = 0, $28 = 0, $34 = 0, $4 = 0, $45 = 0, $49 = 0, $50 = 0, $52 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $79 = 0.0, $83 = 0.0, $9 = 0, $buf = 0, $dummy = 0, $i$052 = 0, $i$052$lcssa64 = 0, $i$052$lcssa65 = 0, $i$052$lcssa66 = 0, $j$0 = 0, $j$150 = 0, $num = 0, $pattPath = 0, $patt_type$0$lcssa = 0, $patt_type$051 = 0, $patt_type$1 = 0, $t1 = 0, $t2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer17 = 0, $vararg_buffer21 = 0, $vararg_buffer24 = 0, $vararg_buffer28 = 0, $vararg_buffer31 = 0, $vararg_buffer35 = 0, $vararg_buffer41 = 0, $vararg_buffer45 = 0, $vararg_buffer49 = 0, $vararg_buffer5 = 0, $vararg_buffer55 = 0, $vararg_buffer59 = 0, $vararg_buffer8 = 0, $wpos3d = 0, label = 0, sp = 0; +function __ZNSt3__16vectorIhNS_9allocatorIhEEE8__appendEjRKh($this, $__n, $__x) { + $this = $this | 0; + $__n = $__n | 0; + $__x = $__x | 0; + var $$0$i = 0, $$0$i2 = 0, $$0$i3 = 0, $$pre$i1 = 0, $1 = 0, $15 = 0, $18 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $3 = 0, $30 = 0, $32 = 0, $5 = 0, $9 = 0, $__v = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 2544 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer59 = sp + 208 | 0; - $vararg_buffer55 = sp + 200 | 0; - $vararg_buffer49 = sp + 184 | 0; - $vararg_buffer45 = sp + 176 | 0; - $vararg_buffer41 = sp + 168 | 0; - $vararg_buffer35 = sp + 152 | 0; - $vararg_buffer31 = sp + 144 | 0; - $vararg_buffer28 = sp + 136 | 0; - $vararg_buffer24 = sp + 128 | 0; - $vararg_buffer21 = sp + 120 | 0; - $vararg_buffer17 = sp + 112 | 0; - $vararg_buffer13 = sp + 104 | 0; - $vararg_buffer11 = sp + 96 | 0; - $vararg_buffer8 = sp + 88 | 0; - $vararg_buffer5 = sp + 80 | 0; - $vararg_buffer1 = sp + 72 | 0; - $vararg_buffer = sp + 64 | 0; - $wpos3d = sp; - $buf = sp + 2280 | 0; - $pattPath = sp + 232 | 0; - $dummy = sp + 224 | 0; - $num = sp + 220 | 0; - $t1 = sp + 216 | 0; - $t2 = sp + 212 | 0; - $0 = _fopen($filename, 5306) | 0; - L1 : do if (!$0) { - HEAP32[$vararg_buffer >> 2] = $filename; - _arLog(3, 5308, $vararg_buffer); - $2 = ___errno_location() | 0; - $4 = _strerror(HEAP32[$2 >> 2] | 0) | 0; - HEAP32[$vararg_buffer1 >> 2] = 13835; - HEAP32[$vararg_buffer1 + 4 >> 2] = $4; - _arLog(3, 5361, $vararg_buffer1); - $$0 = 0; - } else { - _get_buff($buf, $0); - HEAP32[$vararg_buffer5 >> 2] = $num; - if ((_sscanf($buf, 5367, $vararg_buffer5) | 0) != 1) { - HEAP32[$vararg_buffer8 >> 2] = $filename; - _arLog(3, 5370, $vararg_buffer8); - _fclose($0) | 0; - $$0 = 0; - break; - } - $7 = HEAP32[$num >> 2] | 0; - $9 = _malloc($7 * 320 | 0) | 0; - if (!$9) { - _arLog(3, 5471, $vararg_buffer11); - _exit(1); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = $3; + if (($1 - $5 | 0) >>> 0 < $__n >>> 0) { + $15 = HEAP32[$this >> 2] | 0; + $18 = $5 - $15 + $__n | 0; + if (($18 | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $21 = $15; + $22 = $1 - $21 | 0; + if ($22 >>> 0 < 1073741823) { + $24 = $22 << 1; + $$0$i3 = $24 >>> 0 < $18 >>> 0 ? $18 : $24; + } else $$0$i3 = 2147483647; + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEEC2EjjS3_($__v, $$0$i3, (HEAP32[$2 >> 2] | 0) - $21 | 0, $this + 8 | 0); + $30 = $__v + 8 | 0; + $$pre$i1 = HEAP32[$30 >> 2] | 0; + $$0$i2 = $__n; + $32 = $$pre$i1; + while (1) { + HEAP8[$32 >> 0] = HEAP8[$__x >> 0] | 0; + $$0$i2 = $$0$i2 + -1 | 0; + if (!$$0$i2) break; else $32 = $32 + 1 | 0; } - $11 = $wpos3d + 8 | 0; - $12 = $wpos3d + 16 | 0; - $13 = $wpos3d + 24 | 0; - $14 = $wpos3d + 32 | 0; - $15 = $wpos3d + 40 | 0; - $16 = $wpos3d + 48 | 0; - $17 = $wpos3d + 56 | 0; - $18 = ($pattHandle | 0) == 0; - L10 : do if (($7 | 0) > 0) { - $i$052 = 0; - $patt_type$051 = 0; - L11 : while (1) { - _get_buff($buf, $0); - $20 = $9 + ($i$052 * 320 | 0) | 0; - $21 = $9 + ($i$052 * 320 | 0) + 312 | 0; - HEAP32[$vararg_buffer13 >> 2] = $21; - HEAP32[$vararg_buffer13 + 4 >> 2] = $dummy; - if ((_sscanf($buf, 5488, $vararg_buffer13) | 0) == 1) { - $34 = HEAP32[$21 >> 2] | 0; - HEAP32[$20 >> 2] = ($34 & -32768 | 0) == 0 & 0 == 0 ? $34 & 32767 : 0; - HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 1; - $patt_type$1 = $patt_type$051 | 2; - } else { - if ($18) { - label = 10; - break; - } - if (!(_arUtilGetDirectoryNameFromPath($pattPath, $filename, 2048, 1) | 0)) { - label = 12; - break; - } - _strncat($pattPath, $buf, 2047 - (_strlen($pattPath) | 0) | 0) | 0; - $28 = _arPattLoad($pattHandle, $pattPath) | 0; - HEAP32[$20 >> 2] = $28; - if (($28 | 0) < 0) { - label = 14; - break; - } - HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 0; - $patt_type$1 = $patt_type$051 | 1; + HEAP32[$30 >> 2] = $$pre$i1 + $__n; + __ZNSt3__16vectorIhNS_9allocatorIhEEE26__swap_out_circular_bufferERNS_14__split_bufferIhRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEED2Ev($__v); + } else { + $$0$i = $__n; + $9 = $3; + do { + HEAP8[$9 >> 0] = HEAP8[$__x >> 0] | 0; + $9 = (HEAP32[$2 >> 2] | 0) + 1 | 0; + HEAP32[$2 >> 2] = $9; + $$0$i = $$0$i + -1 | 0; + } while (($$0$i | 0) != 0); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$pre$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $21 = 0, $28 = 0, $29 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ((($1 - $5 | 0) / 36 | 0) >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = (($5 - $10 | 0) / 36 | 0) + $__n | 0; + if ($14 >>> 0 > 119304647) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $19 = ($1 - $17 | 0) / 36 | 0; + if ($19 >>> 0 < 59652323) { + $21 = $19 << 1; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 119304647; + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEEC2EjjS6_($__v, $$0$i, ((HEAP32[$2 >> 2] | 0) - $17 | 0) / 36 | 0, $this + 8 | 0); + $28 = $__v + 8 | 0; + $$pre$i = HEAP32[$28 >> 2] | 0; + $29 = $__n * 36 | 0; + _memset($$pre$i | 0, 0, $29 | 0) | 0; + HEAP32[$28 >> 2] = $$pre$i + $29; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEED2Ev($__v); + } else __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function _arLog($logLevel, $format, $varargs) { + $logLevel = $logLevel | 0; + $format = $format | 0; + $varargs = $varargs | 0; + var $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $5 = 0, $7 = 0, $ap = 0, $buf = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $buf = sp + 16 | 0; + $ap = sp; + HEAP32[$buf >> 2] = 0; + if (($format | 0) != 0 & (HEAP32[1082] | 0) <= ($logLevel | 0)) if (HEAP8[$format >> 0] | 0) { + HEAP32[$ap >> 2] = $varargs; + $5 = _vasprintf($buf, $format, $ap) | 0; + if (($5 | 0) > -1) { + $7 = HEAP32[1083] | 0; + do if (!$7) _fputs(HEAP32[$buf >> 2] | 0, HEAP32[1607] | 0) | 0; else { + if (!(HEAP32[1084] | 0)) { + FUNCTION_TABLE_vi[$7 & 255](HEAP32[$buf >> 2] | 0); + break; } - _get_buff($buf, $0); - $45 = $9 + ($i$052 * 320 | 0) + 8 | 0; - HEAP32[$vararg_buffer28 >> 2] = $45; - if ((_sscanf($buf, 5784, $vararg_buffer28) | 0) != 1) { - $i$052$lcssa64 = $i$052; - label = 18; + $12 = _pthread_self() | 0; + $15 = HEAP32[1086] | 0; + if (($12 | 0) == (HEAP32[1085] | 0)) { + if (($15 | 0) > 0) { + FUNCTION_TABLE_vi[$7 & 255](HEAP32[1088] | 0); + HEAP32[1086] = 0; + $29 = HEAP32[1083] | 0; + } else $29 = $7; + FUNCTION_TABLE_vi[$29 & 255](HEAP32[$buf >> 2] | 0); break; } - _get_buff($buf, $0); - $49 = $9 + ($i$052 * 320 | 0) + 16 | 0; - $50 = $9 + ($i$052 * 320 | 0) + 24 | 0; - $52 = $9 + ($i$052 * 320 | 0) + 40 | 0; - HEAP32[$vararg_buffer35 >> 2] = $49; - HEAP32[$vararg_buffer35 + 4 >> 2] = $50; - HEAP32[$vararg_buffer35 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 32; - HEAP32[$vararg_buffer35 + 12 >> 2] = $52; - if ((_sscanf($buf, 5893, $vararg_buffer35) | 0) == 4) $j$0 = 1; else { - HEAP32[$vararg_buffer41 >> 2] = $t1; - HEAP32[$vararg_buffer41 + 4 >> 2] = $t2; - if ((_sscanf($buf, 5909, $vararg_buffer41) | 0) == 2) $j$0 = 0; else { - $i$052$lcssa65 = $i$052; - label = 21; + $16 = HEAP32[1087] | 0; + if (($15 | 0) < ($16 | 0)) { + $21 = (HEAP32[1088] | 0) + $15 | 0; + if (($5 | 0) < (-3 - $15 + $16 | 0)) { + _strcpy($21, HEAP32[$buf >> 2] | 0) | 0; + HEAP32[1086] = (HEAP32[1086] | 0) + $5; + break; + } else { + HEAP8[$21 >> 0] = 46; + HEAP8[$21 + 1 >> 0] = 46; + HEAP8[$21 + 2 >> 0] = 46; + HEAP8[$21 + 3 >> 0] = 0; + HEAP32[1086] = HEAP32[1087]; break; } } - do { - _get_buff($buf, $0); - HEAP32[$vararg_buffer49 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5); - HEAP32[$vararg_buffer49 + 4 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 8; - HEAP32[$vararg_buffer49 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 16; - HEAP32[$vararg_buffer49 + 12 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 24; - if ((_sscanf($buf, 5893, $vararg_buffer49) | 0) != 4) { - $i$052$lcssa66 = $i$052; - label = 23; - break L11; - } - $j$0 = $j$0 + 1 | 0; - } while (($j$0 | 0) < 3); - _arUtilMatInv($49, $9 + ($i$052 * 320 | 0) + 112 | 0) | 0; - $68 = +HEAPF64[$45 >> 3]; - $69 = $68 * -.5; - HEAPF64[$wpos3d >> 3] = $69; - $70 = $68 * .5; - HEAPF64[$11 >> 3] = $70; - HEAPF64[$12 >> 3] = $70; - HEAPF64[$13 >> 3] = $70; - HEAPF64[$14 >> 3] = $70; - HEAPF64[$15 >> 3] = $69; - HEAPF64[$16 >> 3] = $69; - HEAPF64[$17 >> 3] = $69; - $71 = $9 + ($i$052 * 320 | 0) + 48 | 0; - $72 = $9 + ($i$052 * 320 | 0) + 56 | 0; - $73 = $9 + ($i$052 * 320 | 0) + 72 | 0; - $74 = $9 + ($i$052 * 320 | 0) + 80 | 0; - $75 = $9 + ($i$052 * 320 | 0) + 88 | 0; - $76 = $9 + ($i$052 * 320 | 0) + 104 | 0; - $j$150 = 0; - do { - $79 = +HEAPF64[$wpos3d + ($j$150 << 4) >> 3]; - $83 = +HEAPF64[$wpos3d + ($j$150 << 4) + 8 >> 3]; - HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) >> 3] = +HEAPF64[$52 >> 3] + (+HEAPF64[$49 >> 3] * $79 + +HEAPF64[$50 >> 3] * $83); - HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 8 >> 3] = +HEAPF64[$73 >> 3] + (+HEAPF64[$71 >> 3] * $79 + +HEAPF64[$72 >> 3] * $83); - HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 16 >> 3] = +HEAPF64[$76 >> 3] + (+HEAPF64[$74 >> 3] * $79 + +HEAPF64[$75 >> 3] * $83); - $j$150 = $j$150 + 1 | 0; - } while (($j$150 | 0) != 4); - $i$052 = $i$052 + 1 | 0; - if (($i$052 | 0) >= (HEAP32[$num >> 2] | 0)) { - $patt_type$0$lcssa = $patt_type$1; - break L10; - } else $patt_type$051 = $patt_type$1; - } - if ((label | 0) == 10) { - HEAP32[$vararg_buffer17 >> 2] = $filename; - HEAP32[$vararg_buffer17 + 4 >> 2] = $buf; - _arLog(3, 5495, $vararg_buffer17); - } else if ((label | 0) == 12) { - HEAP32[$vararg_buffer21 >> 2] = $filename; - _arLog(3, 5623, $vararg_buffer21); - } else if ((label | 0) == 14) { - HEAP32[$vararg_buffer24 >> 2] = $filename; - HEAP32[$vararg_buffer24 + 4 >> 2] = $pattPath; - _arLog(3, 5707, $vararg_buffer24); - } else if ((label | 0) == 18) { - HEAP32[$vararg_buffer31 >> 2] = $filename; - HEAP32[$vararg_buffer31 + 4 >> 2] = $i$052$lcssa64 + 1; - _arLog(3, 5788, $vararg_buffer31); - } else if ((label | 0) == 21) { - HEAP32[$vararg_buffer45 >> 2] = $filename; - HEAP32[$vararg_buffer45 + 4 >> 2] = $i$052$lcssa65 + 1; - _arLog(3, 5915, $vararg_buffer45); - } else if ((label | 0) == 23) { - HEAP32[$vararg_buffer55 >> 2] = $filename; - HEAP32[$vararg_buffer55 + 4 >> 2] = $i$052$lcssa66 + 1; - _arLog(3, 5915, $vararg_buffer55); + } while (0); + _free(HEAP32[$buf >> 2] | 0); + } + } + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $5 = HEAP32[$3 >> 2] | 0; + $6 = $5 + -16 | 0; + $$0$i1$looptemp = $$0$i1; + $$0$i1 = $$0$i1 + -16 | 0; + HEAP32[$6 >> 2] = 0; + $9 = $5 + -12 | 0; + HEAP32[$9 >> 2] = 0; + $11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0; + HEAP32[$5 + -8 >> 2] = 0; + HEAP32[$5 + -4 >> 2] = $11; + HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2]; + $14 = $$0$i1$looptemp + -12 | 0; + HEAP32[$9 >> 2] = HEAP32[$14 >> 2]; + $16 = $$0$i1$looptemp + -8 | 0; + HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2]; + HEAP32[$16 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$$0$i1 >> 2] = 0; + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $22 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $22; + $24 = $__v + 8 | 0; + $25 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$24 >> 2]; + HEAP32[$24 >> 2] = $25; + $27 = $this + 8 | 0; + $28 = $__v + 12 | 0; + $29 = HEAP32[$27 >> 2] | 0; + HEAP32[$27 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$28 >> 2] = $29; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _strspn($s, $c) { + $s = $s | 0; + $c = $c | 0; + var $$0 = 0, $$028 = 0, $$03 = 0, $$03$lcssa = 0, $$1$lcssa = 0, $$16 = 0, $0 = 0, $11 = 0, $14 = 0, $18 = 0, $24 = 0, $33 = 0, $byteset = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $byteset = sp; + HEAP32[$byteset >> 2] = 0; + HEAP32[$byteset + 4 >> 2] = 0; + HEAP32[$byteset + 8 >> 2] = 0; + HEAP32[$byteset + 12 >> 2] = 0; + HEAP32[$byteset + 16 >> 2] = 0; + HEAP32[$byteset + 20 >> 2] = 0; + HEAP32[$byteset + 24 >> 2] = 0; + HEAP32[$byteset + 28 >> 2] = 0; + $0 = HEAP8[$c >> 0] | 0; + do if (!($0 << 24 >> 24)) $$0 = 0; else { + if (!(HEAP8[$c + 1 >> 0] | 0)) { + $$03 = $s; + while (1) if ((HEAP8[$$03 >> 0] | 0) == $0 << 24 >> 24) $$03 = $$03 + 1 | 0; else { + $$03$lcssa = $$03; + break; } - _fclose($0) | 0; - _free($9); - $$0 = 0; - break L1; - } else $patt_type$0$lcssa = 0; while (0); - _fclose($0) | 0; - $108 = _malloc(136) | 0; - if (!$108) { - _arLog(3, 5471, $vararg_buffer59); - _exit(1); + $$0 = $$03$lcssa - $s | 0; + break; + } else { + $$028 = $c; + $14 = $0; } - HEAP32[$108 >> 2] = $9; - HEAP32[$108 + 4 >> 2] = HEAP32[$num >> 2]; - HEAP32[$108 + 104 >> 2] = 0; - do if (($patt_type$0$lcssa & 3 | 0) == 3) HEAP32[$108 + 108 >> 2] = 2; else { - $118 = $108 + 108 | 0; - if (!($patt_type$0$lcssa & 1)) { - HEAP32[$118 >> 2] = 1; - break; - } else { - HEAP32[$118 >> 2] = 0; - break; + do { + $18 = $byteset + ((($14 & 255) >>> 5 & 255) << 2) | 0; + HEAP32[$18 >> 2] = HEAP32[$18 >> 2] | 1 << ($14 & 31); + $$028 = $$028 + 1 | 0; + $14 = HEAP8[$$028 >> 0] | 0; + } while ($14 << 24 >> 24 != 0); + $11 = HEAP8[$s >> 0] | 0; + L10 : do if (!($11 << 24 >> 24)) $$1$lcssa = $s; else { + $$16 = $s; + $24 = $11; + while (1) { + if (!(HEAP32[$byteset + ((($24 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($24 & 31))) { + $$1$lcssa = $$16; + break L10; + } + $33 = $$16 + 1 | 0; + $24 = HEAP8[$33 >> 0] | 0; + if (!($24 << 24 >> 24)) { + $$1$lcssa = $33; + break; + } else $$16 = $33; } } while (0); - HEAPF64[$108 + 112 >> 3] = .5; - HEAPF64[$108 + 120 >> 3] = .5; - $$0 = $108; + $$0 = $$1$lcssa - $s | 0; } while (0); STACKTOP = sp; return $$0 | 0; } -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $_0$0 = 0, $_0$1 = 0, $q_sroa_1_1198$looptemp = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (!$n_sroa_1_4_extract_trunc) { - $4 = ($rem | 0) != 0; - if (!$d_sroa_1_4_extract_trunc) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 | 0; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } +function _output_pass_setup($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $$pre$phi6Z2D = 0, $$pre4 = 0, $0 = 0, $13 = 0, $15 = 0, $16 = 0, $26 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0; + $0 = $cinfo + 20 | 0; + $$pre4 = $cinfo + 420 | 0; + if ((HEAP32[$0 >> 2] | 0) == 204) $$pre$phi6Z2D = $cinfo + 140 | 0; else { + FUNCTION_TABLE_vi[HEAP32[HEAP32[$$pre4 >> 2] >> 2] & 255]($cinfo); + $5 = $cinfo + 140 | 0; + HEAP32[$5 >> 2] = 0; + HEAP32[$0 >> 2] = 204; + $$pre$phi6Z2D = $5; } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do if (!$d_sroa_0_0_extract_trunc) { - if ($17) { - if ($rem) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (!$n_sroa_0_0_extract_trunc) { - if ($rem) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (!($37 & $d_sroa_1_4_extract_trunc)) { - if ($rem) { - HEAP32[$rem >> 2] = $a$0 | 0; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; + $6 = $cinfo + 116 | 0; + $7 = $cinfo + 8 | 0; + $8 = $cinfo + 424 | 0; + L5 : do if (!(HEAP32[(HEAP32[$$pre4 >> 2] | 0) + 8 >> 2] | 0)) label = 11; else while (1) { + $15 = HEAP32[$$pre$phi6Z2D >> 2] | 0; + while (1) { + $13 = HEAP32[$6 >> 2] | 0; + if ($15 >>> 0 >= $13 >>> 0) break; + $16 = HEAP32[$7 >> 2] | 0; + if (!$16) $26 = $15; else { + HEAP32[$16 + 4 >> 2] = $15; + HEAP32[$16 + 8 >> 2] = $13; + FUNCTION_TABLE_vi[HEAP32[$16 >> 2] & 255]($cinfo); + $26 = HEAP32[$$pre$phi6Z2D >> 2] | 0; + } + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 4 >> 2] & 31]($cinfo, 0, $$pre$phi6Z2D, 0); + $15 = HEAP32[$$pre$phi6Z2D >> 2] | 0; + if (($15 | 0) == ($26 | 0)) { + $$0 = 0; + break L5; } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; } - $51 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$$pre4 >> 2] | 0) + 4 >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[HEAP32[$$pre4 >> 2] >> 2] & 255]($cinfo); + HEAP32[$$pre$phi6Z2D >> 2] = 0; + if (!(HEAP32[(HEAP32[$$pre4 >> 2] | 0) + 8 >> 2] | 0)) { + label = 11; break; } - if (!$rem) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 | 0; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; + } while (0); + if ((label | 0) == 11) { + HEAP32[$0 >> 2] = (HEAP32[$cinfo + 68 >> 2] | 0) != 0 ? 206 : 205; + $$0 = 1; + } + return $$0 | 0; +} + +function __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $21 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ((($1 - $5 | 0) / 12 | 0) >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = (($5 - $10 | 0) / 12 | 0) + $__n | 0; + if ($14 >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $19 = ($1 - $17 | 0) / 12 | 0; + if ($19 >>> 0 < 178956970) { + $21 = $19 << 1; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 357913941; + __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEEC2EjjSA_($__v, $$0$i, ((HEAP32[$2 >> 2] | 0) - $17 | 0) / 12 | 0, $this + 8 | 0); + __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEE18__construct_at_endEj($__v, $__n); + __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS8_EE($this, $__v); + __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEED2Ev($__v); + } else __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $5 = HEAP32[$3 >> 2] | 0; + $6 = $5 + -16 | 0; + $$0$i1$looptemp = $$0$i1; + $$0$i1 = $$0$i1 + -16 | 0; + HEAP32[$6 >> 2] = 0; + $9 = $5 + -12 | 0; + HEAP32[$9 >> 2] = 0; + $11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0; + HEAP32[$5 + -8 >> 2] = 0; + HEAP32[$5 + -4 >> 2] = $11; + HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2]; + $14 = $$0$i1$looptemp + -12 | 0; + HEAP32[$9 >> 2] = HEAP32[$14 >> 2]; + $16 = $$0$i1$looptemp + -8 | 0; + HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2]; + HEAP32[$16 >> 2] = 0; + HEAP32[$14 >> 2] = 0; + HEAP32[$$0$i1 >> 2] = 0; + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $22 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $22; + $24 = $__v + 8 | 0; + $25 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$24 >> 2]; + HEAP32[$24 >> 2] = $25; + $27 = $this + 8 | 0; + $28 = $__v + 12 | 0; + $29 = HEAP32[$27 >> 2] | 0; + HEAP32[$27 >> 2] = HEAP32[$28 >> 2]; + HEAP32[$28 >> 2] = $29; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$0$i1 = 0, $$promoted$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $28 = 0, $29 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ($1 - $5 >> 3 >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = ($5 - $10 >> 3) + $__n | 0; + if ($14 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $18 = $1 - $17 | 0; + if ($18 >> 3 >>> 0 < 268435455) { + $21 = $18 >> 2; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 536870911; + __ZNSt3__114__split_bufferINS_4pairIfiEERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, (HEAP32[$2 >> 2] | 0) - $17 >> 3, $this + 8 | 0); + $28 = $__v + 8 | 0; + $$promoted$i = HEAP32[$28 >> 2] | 0; + $$0$i1 = $__n; + $29 = $$promoted$i; + while (1) { + HEAPF32[$29 >> 2] = 0.0; + HEAP32[$29 + 4 >> 2] = 0; + $$0$i1 = $$0$i1 + -1 | 0; + if (!$$0$i1) break; else $29 = $29 + 8 | 0; + } + HEAP32[$28 >> 2] = $$promoted$i + ($__n << 3); + __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferINS_4pairIfiEERNS_9allocatorIS2_EEED2Ev($__v); + } else __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNSt3__110__stdinbufIwE9pbackfailEj($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$01 = 0, $1 = 0, $11 = 0, $23 = 0, $24 = 0, $26 = 0, $3 = 0, $5 = 0, $8 = 0, $__ci = 0, $__enxt = 0, $__extbuf = 0, $__inxt = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 16 | 0; + $__enxt = sp + 8 | 0; + $__ci = sp + 4 | 0; + $__inxt = sp; + $1 = $this + 52 | 0; + $3 = (HEAP8[$1 >> 0] | 0) != 0; + L1 : do if (($__c | 0) == -1) if ($3) $$01 = -1; else { + $5 = HEAP32[$this + 48 >> 2] | 0; + HEAP8[$1 >> 0] = ($5 | 0) != -1 & 1; + $$01 = $5; } else { - if (!$17) { - $119 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; + $8 = $this + 48 | 0; + L5 : do if ($3) { + HEAP32[$__ci >> 2] = HEAP32[$8 >> 2]; + $11 = HEAP32[$this + 36 >> 2] | 0; + switch (FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$11 >> 2] | 0) + 12 >> 2] & 15]($11, HEAP32[$this + 40 >> 2] | 0, $__ci, $__ci + 4 | 0, $__inxt, $__extbuf, $__extbuf + 8 | 0, $__enxt) | 0) { + case 1: + case 2: + { + $$01 = -1; + break L1; + break; + } + case 3: + { + HEAP8[$__extbuf >> 0] = HEAP32[$8 >> 2]; + HEAP32[$__enxt >> 2] = $__extbuf + 1; + break; + } + default: + {} } - if (!$rem) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; + $23 = $this + 32 | 0; + while (1) { + $24 = HEAP32[$__enxt >> 2] | 0; + if ($24 >>> 0 <= $__extbuf >>> 0) break L5; + $26 = $24 + -1 | 0; + HEAP32[$__enxt >> 2] = $26; + if ((_ungetc(HEAP8[$26 >> 0] | 0, HEAP32[$23 >> 2] | 0) | 0) == -1) { + $$01 = -1; + break L1; + } } - HEAP32[$rem >> 2] = $a$0 | 0; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if ($66 & $d_sroa_0_0_extract_trunc) { - $88 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if ($rem) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = $a$0 | 0 | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = $n_sroa_1_4_extract_trunc >>> ($78 >>> 0) | 0; - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } + } while (0); + HEAP32[$8 >> 2] = $__c; + HEAP8[$1 >> 0] = 1; + $$01 = $__c; } while (0); - if (!$sr_1_ph) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = $b$0 | 0 | 0; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - do { - $q_sroa_1_1198$looptemp = $q_sroa_1_1198; - $q_sroa_1_1198 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $q_sroa_0_1199 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = $r_sroa_0_1201 << 1 | $q_sroa_1_1198$looptemp >>> 31 | 0; - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0, $137$1, $r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $carry_0203 = $151$0 & 1; - $r_sroa_0_1201 = _i64Subtract($r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1, $151$0 & $d_sroa_0_0_insert_insert99$0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1) | 0; - $r_sroa_1_1200 = tempRet0; - $sr_1202 = $sr_1202 - 1 | 0; - } while (($sr_1202 | 0) != 0); - $q_sroa_1_1_lcssa = $q_sroa_1_1198; - $q_sroa_0_1_lcssa = $q_sroa_0_1199; - $r_sroa_1_1_lcssa = $r_sroa_1_1200; - $r_sroa_0_1_lcssa = $r_sroa_0_1201; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $carry_0203; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - if ($rem) { - HEAP32[$rem >> 2] = $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa; - } - $_0$1 = ($q_sroa_0_0_insert_ext75$0 | 0) >>> 31 | ($q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1) << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; + STACKTOP = sp; + return $$01 | 0; } -function _icpGetJ_U_S($J_U_S, $matXc2U, $matXw2Xc, $worldCoord) { - $J_U_S = $J_U_S | 0; - $matXc2U = $matXc2U | 0; - $matXw2Xc = $matXw2Xc | 0; - $worldCoord = $worldCoord | 0; - var $$0 = 0, $$lcssa = 0.0, $0 = 0.0, $1 = 0.0, $100 = 0, $101 = 0, $104 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0.0, $115 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $128 = 0.0, $129 = 0.0, $132 = 0.0, $136 = 0.0, $14 = 0.0, $141 = 0.0, $143 = 0.0, $146 = 0.0, $150 = 0.0, $155 = 0.0, $157 = 0.0, $16 = 0.0, $160 = 0.0, $164 = 0.0, $169 = 0.0, $171 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $202 = 0.0, $204 = 0.0, $206 = 0.0, $207 = 0, $21 = 0.0, $211 = 0.0, $215 = 0.0, $22 = 0.0, $24 = 0.0, $26 = 0.0, $28 = 0.0, $29 = 0.0, $31 = 0.0, $32 = 0.0, $34 = 0.0, $4 = 0.0, $5 = 0, $52 = 0.0, $6 = 0.0, $7 = 0.0, $71 = 0.0, $79 = 0.0, $9 = 0.0, $92 = 0, $93 = 0, $96 = 0, $98 = 0, $J_T_S$i = 0, $J_U_Xc = 0, $J_Xc_S = 0, $J_Xc_T$i = 0, $i$0$i7 = 0, $i$04 = 0, $j$0$i8 = 0, $j$05 = 0, $k$0$i6 = 0, $vararg_buffer = 0, dest = 0, sp = 0, stop = 0; +function __ZNSt3__110__stdinbufIcE9pbackfailEi($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$01 = 0, $1 = 0, $12 = 0, $24 = 0, $25 = 0, $27 = 0, $3 = 0, $5 = 0, $8 = 0, $__ci = 0, $__enxt = 0, $__extbuf = 0, $__inxt = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 1072 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp + 1056 | 0; - $J_Xc_T$i = sp + 768 | 0; - $J_T_S$i = sp + 192 | 0; - $J_Xc_S = sp + 48 | 0; - $J_U_Xc = sp; - $0 = +HEAPF64[$matXw2Xc >> 3]; - $1 = +HEAPF64[$worldCoord >> 3]; - $2 = $0 * $1; - $4 = +HEAPF64[$matXw2Xc + 8 >> 3]; - $5 = $worldCoord + 8 | 0; - $6 = +HEAPF64[$5 >> 3]; - $7 = $4 * $6; - $9 = +HEAPF64[$matXw2Xc + 16 >> 3]; - $11 = +HEAPF64[$worldCoord + 16 >> 3]; - $12 = $9 * $11; - $14 = +HEAPF64[$matXw2Xc + 24 >> 3]; - $16 = +HEAPF64[$matXw2Xc + 32 >> 3]; - $18 = +HEAPF64[$matXw2Xc + 40 >> 3]; - $19 = $6 * $18; - $21 = +HEAPF64[$matXw2Xc + 48 >> 3]; - $22 = $11 * $21; - $24 = +HEAPF64[$matXw2Xc + 56 >> 3]; - $26 = +HEAPF64[$matXw2Xc + 64 >> 3]; - $28 = +HEAPF64[$matXw2Xc + 72 >> 3]; - $29 = $6 * $28; - $31 = +HEAPF64[$matXw2Xc + 80 >> 3]; - $32 = $11 * $31; - $34 = +HEAPF64[$matXw2Xc + 88 >> 3]; - HEAPF64[$J_Xc_T$i >> 3] = $2; - HEAPF64[$J_Xc_T$i + 8 >> 3] = $0 * $6; - HEAPF64[$J_Xc_T$i + 16 >> 3] = $0 * $11; - HEAPF64[$J_Xc_T$i + 24 >> 3] = $1 * $4; - HEAPF64[$J_Xc_T$i + 32 >> 3] = $7; - HEAPF64[$J_Xc_T$i + 40 >> 3] = $11 * $4; - HEAPF64[$J_Xc_T$i + 48 >> 3] = $1 * $9; - HEAPF64[$J_Xc_T$i + 56 >> 3] = $6 * $9; - HEAPF64[$J_Xc_T$i + 64 >> 3] = $12; - HEAPF64[$J_Xc_T$i + 72 >> 3] = $0; - HEAPF64[$J_Xc_T$i + 80 >> 3] = $4; - HEAPF64[$J_Xc_T$i + 88 >> 3] = $9; - $52 = $1 * $16; - HEAPF64[$J_Xc_T$i + 96 >> 3] = $52; - HEAPF64[$J_Xc_T$i + 104 >> 3] = $6 * $16; - HEAPF64[$J_Xc_T$i + 112 >> 3] = $11 * $16; - HEAPF64[$J_Xc_T$i + 120 >> 3] = $1 * $18; - HEAPF64[$J_Xc_T$i + 128 >> 3] = $19; - HEAPF64[$J_Xc_T$i + 136 >> 3] = $11 * $18; - HEAPF64[$J_Xc_T$i + 144 >> 3] = $1 * $21; - HEAPF64[$J_Xc_T$i + 152 >> 3] = $6 * $21; - HEAPF64[$J_Xc_T$i + 160 >> 3] = $22; - HEAPF64[$J_Xc_T$i + 168 >> 3] = $16; - HEAPF64[$J_Xc_T$i + 176 >> 3] = $18; - HEAPF64[$J_Xc_T$i + 184 >> 3] = $21; - $71 = $26 * $1; - HEAPF64[$J_Xc_T$i + 192 >> 3] = $71; - HEAPF64[$J_Xc_T$i + 200 >> 3] = $6 * $26; - HEAPF64[$J_Xc_T$i + 208 >> 3] = $11 * $26; - HEAPF64[$J_Xc_T$i + 216 >> 3] = $1 * $28; - $79 = +HEAPF64[$5 >> 3]; - HEAPF64[$J_Xc_T$i + 224 >> 3] = $28 * $79; - HEAPF64[$J_Xc_T$i + 232 >> 3] = $11 * $28; - HEAPF64[$J_Xc_T$i + 240 >> 3] = $1 * $31; - HEAPF64[$J_Xc_T$i + 248 >> 3] = $79 * $31; - HEAPF64[$J_Xc_T$i + 256 >> 3] = $32; - HEAPF64[$J_Xc_T$i + 264 >> 3] = $26; - HEAPF64[$J_Xc_T$i + 272 >> 3] = $28; - HEAPF64[$J_Xc_T$i + 280 >> 3] = $31; - $92 = $J_T_S$i + 64 | 0; - dest = $J_T_S$i; - stop = dest + 64 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - HEAPF64[$92 >> 3] = -1.0; - $93 = $J_T_S$i + 72 | 0; - HEAP32[$93 >> 2] = 0; - HEAP32[$93 + 4 >> 2] = 0; - HEAP32[$93 + 8 >> 2] = 0; - HEAP32[$93 + 12 >> 2] = 0; - HEAP32[$93 + 16 >> 2] = 0; - HEAP32[$93 + 20 >> 2] = 0; - HEAP32[$93 + 24 >> 2] = 0; - HEAP32[$93 + 28 >> 2] = 0; - HEAPF64[$J_T_S$i + 104 >> 3] = 1.0; - $96 = $J_T_S$i + 160 | 0; - dest = $J_T_S$i + 112 | 0; + $__extbuf = sp + 16 | 0; + $__enxt = sp + 4 | 0; + $__ci = sp + 8 | 0; + $__inxt = sp; + $1 = $this + 52 | 0; + $3 = (HEAP8[$1 >> 0] | 0) != 0; + L1 : do if (($__c | 0) == -1) if ($3) $$01 = -1; else { + $5 = HEAP32[$this + 48 >> 2] | 0; + HEAP8[$1 >> 0] = ($5 | 0) != -1 & 1; + $$01 = $5; + } else { + $8 = $this + 48 | 0; + L5 : do if ($3) { + HEAP8[$__ci >> 0] = HEAP32[$8 >> 2]; + $12 = HEAP32[$this + 36 >> 2] | 0; + switch (FUNCTION_TABLE_iiiiiiiii[HEAP32[(HEAP32[$12 >> 2] | 0) + 12 >> 2] & 15]($12, HEAP32[$this + 40 >> 2] | 0, $__ci, $__ci + 1 | 0, $__inxt, $__extbuf, $__extbuf + 8 | 0, $__enxt) | 0) { + case 1: + case 2: + { + $$01 = -1; + break L1; + break; + } + case 3: + { + HEAP8[$__extbuf >> 0] = HEAP32[$8 >> 2]; + HEAP32[$__enxt >> 2] = $__extbuf + 1; + break; + } + default: + {} + } + $24 = $this + 32 | 0; + while (1) { + $25 = HEAP32[$__enxt >> 2] | 0; + if ($25 >>> 0 <= $__extbuf >>> 0) break L5; + $27 = $25 + -1 | 0; + HEAP32[$__enxt >> 2] = $27; + if ((_ungetc(HEAP8[$27 >> 0] | 0, HEAP32[$24 >> 2] | 0) | 0) == -1) { + $$01 = -1; + break L1; + } + } + } while (0); + HEAP32[$8 >> 2] = $__c; + HEAP8[$1 >> 0] = 1; + $$01 = $__c; + } while (0); + STACKTOP = sp; + return $$01 | 0; +} + +function _color_quantize($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $10 = 0, $11 = 0, $24 = 0, $3 = 0, $5 = 0, $7 = 0, $ci$02 = 0, $col$06 = 0, $pixcode$0$lcssa = 0, $pixcode$03 = 0, $ptrin$04 = 0, $ptrin$11 = 0, $ptrout$05 = 0, $row$07 = 0, $smax = 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + $7 = HEAP32[$cinfo + 120 >> 2] | 0; + $smax = ($7 | 0) > 0 ? $7 : 0; + if (($num_rows | 0) > 0) { + $10 = ($5 | 0) == 0; + $11 = ($7 | 0) > 0; + $row$07 = 0; + do { + if (!$10) { + $col$06 = $5; + $ptrin$04 = HEAP32[$input_buf + ($row$07 << 2) >> 2] | 0; + $ptrout$05 = HEAP32[$output_buf + ($row$07 << 2) >> 2] | 0; + while (1) { + if ($11) { + $ci$02 = 0; + $pixcode$03 = 0; + $ptrin$11 = $ptrin$04; + while (1) { + $24 = (HEAPU8[(HEAP32[$3 + ($ci$02 << 2) >> 2] | 0) + (HEAPU8[$ptrin$11 >> 0] | 0) >> 0] | 0) + $pixcode$03 | 0; + $ci$02 = $ci$02 + 1 | 0; + if (($ci$02 | 0) >= ($7 | 0)) { + $pixcode$0$lcssa = $24; + break; + } else { + $pixcode$03 = $24; + $ptrin$11 = $ptrin$11 + 1 | 0; + } + } + } else $pixcode$0$lcssa = 0; + HEAP8[$ptrout$05 >> 0] = $pixcode$0$lcssa; + $col$06 = $col$06 + -1 | 0; + if (!$col$06) break; else { + $ptrin$04 = $ptrin$04 + $smax | 0; + $ptrout$05 = $ptrout$05 + 1 | 0; + } + } + } + $row$07 = $row$07 + 1 | 0; + } while (($row$07 | 0) < ($num_rows | 0)); + } + return; +} + +function _mbtowc($wc, $src, $n) { + $wc = $wc | 0; + $src = $src | 0; + $n = $n | 0; + var $$0 = 0, $10 = 0, $12 = 0, $20 = 0, $21 = 0, $29 = 0, $3 = 0, $33 = 0, $38 = 0, $4 = 0, $42 = 0, $48 = 0, $8 = 0, $dummy = 0, $dummy$wc = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $dummy = sp; + L1 : do if (!$src) $$0 = 0; else { + do if ($n) { + $dummy$wc = ($wc | 0) == 0 ? $dummy : $wc; + $3 = HEAP8[$src >> 0] | 0; + $4 = $3 & 255; + if ($3 << 24 >> 24 > -1) { + HEAP32[$dummy$wc >> 2] = $4; + $$0 = $3 << 24 >> 24 != 0 & 1; + break L1; + } + $8 = $4 + -194 | 0; + if ($8 >>> 0 <= 50) { + $10 = $src + 1 | 0; + $12 = HEAP32[6224 + ($8 << 2) >> 2] | 0; + if ($n >>> 0 < 4) if ($12 & -2147483648 >>> (($n * 6 | 0) + -6 | 0)) break; + $20 = HEAPU8[$10 >> 0] | 0; + $21 = $20 >>> 3; + if (($21 + -16 | $21 + ($12 >> 26)) >>> 0 <= 7) { + $29 = $20 + -128 | $12 << 6; + if (($29 | 0) >= 0) { + HEAP32[$dummy$wc >> 2] = $29; + $$0 = 2; + break L1; + } + $33 = HEAPU8[$src + 2 >> 0] | 0; + if (($33 & 192 | 0) == 128) { + $38 = $33 + -128 | $29 << 6; + if (($38 | 0) >= 0) { + HEAP32[$dummy$wc >> 2] = $38; + $$0 = 3; + break L1; + } + $42 = HEAPU8[$src + 3 >> 0] | 0; + if (($42 & 192 | 0) == 128) { + HEAP32[$dummy$wc >> 2] = $42 + -128 | $38 << 6; + $$0 = 4; + break L1; + } + } + } + } + } while (0); + $48 = ___errno_location() | 0; + HEAP32[$48 >> 2] = 84; + $$0 = -1; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision14FREAKExtractorC2Ev($this) { + $this = $this | 0; + var dest = 0, src = 0, stop = 0; + dest = $this; + src = 4500; stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$96 >> 3] = 1.0; - $98 = $J_T_S$i + 240 | 0; - dest = $J_T_S$i + 168 | 0; - stop = dest + 72 | 0; + dest = $this + 48 | 0; + src = 4548; + stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$98 >> 3] = -1.0; - $100 = $J_T_S$i + 296 | 0; - dest = $J_T_S$i + 248 | 0; + dest = $this + 96 | 0; + src = 4596; stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$100 >> 3] = -1.0; - $101 = $J_T_S$i + 304 | 0; - HEAP32[$101 >> 2] = 0; - HEAP32[$101 + 4 >> 2] = 0; - HEAP32[$101 + 8 >> 2] = 0; - HEAP32[$101 + 12 >> 2] = 0; - HEAP32[$101 + 16 >> 2] = 0; - HEAP32[$101 + 20 >> 2] = 0; - HEAP32[$101 + 24 >> 2] = 0; - HEAP32[$101 + 28 >> 2] = 0; - HEAPF64[$J_T_S$i + 336 >> 3] = 1.0; - $104 = $J_T_S$i + 456 | 0; - dest = $J_T_S$i + 344 | 0; - stop = dest + 112 | 0; + dest = $this + 144 | 0; + src = 4644; + stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$104 >> 3] = 1.0; - $106 = $J_T_S$i + 512 | 0; - dest = $J_T_S$i + 464 | 0; + dest = $this + 192 | 0; + src = 4692; stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$106 >> 3] = 1.0; - $108 = $J_T_S$i + 568 | 0; - dest = $J_T_S$i + 520 | 0; + dest = $this + 240 | 0; + src = 4740; stop = dest + 48 | 0; do { - HEAP32[dest >> 2] = 0; + HEAP32[dest >> 2] = HEAP32[src >> 2]; dest = dest + 4 | 0; + src = src + 4 | 0; } while ((dest | 0) < (stop | 0)); - HEAPF64[$108 >> 3] = 1.0; - $j$0$i8 = 0; - do { - $i$0$i7 = 0; - do { - $109 = $J_Xc_S + ($j$0$i8 * 48 | 0) + ($i$0$i7 << 3) | 0; - HEAPF64[$109 >> 3] = 0.0; - $116 = 0.0; - $k$0$i6 = 0; - while (1) { - $115 = $116 + +HEAPF64[$J_Xc_T$i + ($j$0$i8 * 96 | 0) + ($k$0$i6 << 3) >> 3] * +HEAPF64[$J_T_S$i + ($k$0$i6 * 48 | 0) + ($i$0$i7 << 3) >> 3]; - $k$0$i6 = $k$0$i6 + 1 | 0; - if (($k$0$i6 | 0) == 12) { - $$lcssa = $115; - break; - } else $116 = $115; - } - HEAPF64[$109 >> 3] = $$lcssa; - $i$0$i7 = $i$0$i7 + 1 | 0; - } while (($i$0$i7 | 0) != 6); - $j$0$i8 = $j$0$i8 + 1 | 0; - } while (($j$0$i8 | 0) != 3); - $122 = $14 + ($2 + $7 + $12); - $125 = $24 + ($52 + $19 + $22); - $128 = $34 + ($71 + $29 + $32); - $129 = +HEAPF64[$matXc2U >> 3]; - $132 = +HEAPF64[$matXc2U + 8 >> 3]; - $136 = +HEAPF64[$matXc2U + 16 >> 3]; - $141 = +HEAPF64[$matXc2U + 24 >> 3] + ($122 * $129 + $125 * $132 + $128 * $136); - $143 = +HEAPF64[$matXc2U + 32 >> 3]; - $146 = +HEAPF64[$matXc2U + 40 >> 3]; - $150 = +HEAPF64[$matXc2U + 48 >> 3]; - $155 = +HEAPF64[$matXc2U + 56 >> 3] + ($122 * $143 + $125 * $146 + $128 * $150); - $157 = +HEAPF64[$matXc2U + 64 >> 3]; - $160 = +HEAPF64[$matXc2U + 72 >> 3]; - $164 = +HEAPF64[$matXc2U + 80 >> 3]; - $169 = +HEAPF64[$matXc2U + 88 >> 3] + ($122 * $157 + $125 * $160 + $128 * $164); - if ($169 == 0.0) { - _arLog(3, 5089, $vararg_buffer); - $$0 = -1; - } else { - $171 = $169 * $169; - HEAPF64[$J_U_Xc >> 3] = ($129 * $169 - $141 * $157) / $171; - HEAPF64[$J_U_Xc + 8 >> 3] = ($169 * $132 - $141 * $160) / $171; - HEAPF64[$J_U_Xc + 16 >> 3] = ($169 * $136 - $141 * $164) / $171; - HEAPF64[$J_U_Xc + 24 >> 3] = ($169 * $143 - $155 * $157) / $171; - HEAPF64[$J_U_Xc + 32 >> 3] = ($169 * $146 - $155 * $160) / $171; - HEAPF64[$J_U_Xc + 40 >> 3] = ($169 * $150 - $155 * $164) / $171; - $j$05 = 0; - do { - $202 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) >> 3]; - $204 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 8 >> 3]; - $206 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 16 >> 3]; - $i$04 = 0; - do { - $207 = $J_U_S + ($j$05 * 48 | 0) + ($i$04 << 3) | 0; - HEAPF64[$207 >> 3] = 0.0; - $211 = $202 * +HEAPF64[$J_Xc_S + ($i$04 << 3) >> 3] + 0.0; - HEAPF64[$207 >> 3] = $211; - $215 = $211 + $204 * +HEAPF64[$J_Xc_S + 48 + ($i$04 << 3) >> 3]; - HEAPF64[$207 >> 3] = $215; - HEAPF64[$207 >> 3] = $215 + $206 * +HEAPF64[$J_Xc_S + 96 + ($i$04 << 3) >> 3]; - $i$04 = $i$04 + 1 | 0; - } while (($i$04 | 0) != 6); - $j$05 = $j$05 + 1 | 0; - } while (($j$05 | 0) != 2); - $$0 = 0; + HEAPF32[$this + 288 >> 2] = .10000000149011612; + HEAPF32[$this + 292 >> 2] = .17499999701976776; + HEAPF32[$this + 296 >> 2] = .25; + HEAPF32[$this + 300 >> 2] = .32499998807907104; + HEAPF32[$this + 304 >> 2] = .4000000059604645; + HEAPF32[$this + 308 >> 2] = .4749999940395355; + HEAPF32[$this + 312 >> 2] = .550000011920929; + HEAPF32[$this + 316 >> 2] = 7.0; + return; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis0IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $0 = 0.0, $1 = 0, $10 = 0, $11 = 0.0, $13 = 0, $14 = 0.0, $16 = 0, $17 = 0.0, $19 = 0, $2 = 0.0, $20 = 0.0, $22 = 0, $24 = 0.0, $4 = 0, $5 = 0.0, $7 = 0, $8 = 0.0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($A, $A); + HEAPF32[$ss >> 2] = $0; + $1 = $A + 36 | 0; + $2 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($1, $1); + HEAPF32[$ss + 4 >> 2] = $2; + $4 = $A + 72 | 0; + $5 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($4, $4); + HEAPF32[$ss + 8 >> 2] = $5; + $7 = $A + 108 | 0; + $8 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($7, $7); + HEAPF32[$ss + 12 >> 2] = $8; + $10 = $A + 144 | 0; + $11 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($10, $10); + HEAPF32[$ss + 16 >> 2] = $11; + $13 = $A + 180 | 0; + $14 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($13, $13); + HEAPF32[$ss + 20 >> 2] = $14; + $16 = $A + 216 | 0; + $17 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($16, $16); + HEAPF32[$ss + 24 >> 2] = $17; + $19 = $A + 252 | 0; + $20 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($19, $19); + HEAPF32[$ss + 28 >> 2] = $20; + $22 = __ZN6vision9MaxIndex8IfEEiPKT_($ss) | 0; + $24 = +HEAPF32[$ss + ($22 << 2) >> 2]; + if ($24 == 0.0) $$0 = 0; else { + __ZN6vision5Swap9IfEEvPT_S2_($A, $A + ($22 * 9 << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($Q, $A, 1.0 / +Math_sqrt(+$24)); + _memcpy($Q + 36 | 0, $1 | 0, 252) | 0; + $$0 = 1; } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i18 = 0, $$0$i$i1027 = 0, $$0$i$i24 = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $104 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $118 = 0, $120 = 0, $123 = 0, $124 = 0, $15 = 0, $16 = 0, $2 = 0, $22 = 0, $29 = 0, $3 = 0, $30 = 0, $39 = 0, $4 = 0, $42 = 0, $43 = 0, $45 = 0, $5 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $59 = 0, $61 = 0, $64 = 0, $65 = 0, $69 = 0, $74 = 0, $75 = 0, $81 = 0, $88 = 0, $89 = 0, $98 = 0, $__p$0$i$i23 = 0, $__p$0$i$i926 = 0, $__p$0$ph$i$i = 0, $__p$0$ph$i$i7 = 0, $__v$i$i17 = 0, $cv = 0, $cv1 = 0, sp = 0; +function _getMultiEachMarkerInfo($id, $multiMarkerId, $markerIndex) { + $id = $id | 0; + $multiMarkerId = $multiMarkerId | 0; + $markerIndex = $markerIndex | 0; + var $$0 = 0, $0 = 0, $17 = 0, $23 = 0, $4 = 0, $8 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 128 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i17 = sp + 108 | 0; - $cv = sp + 104 | 0; - $0 = sp + 80 | 0; - $1 = sp + 64 | 0; - $2 = sp + 52 | 0; - $cv1 = sp + 48 | 0; - $3 = sp + 24 | 0; - $4 = sp + 12 | 0; - $5 = sp; - L1 : do if (($last - $first | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 102) { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 112: - { - $15 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first + 2 | 0, $last, $cv) | 0; - $16 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($15, $last) | 0; - if (($16 | 0) == ($last | 0)) { - $$0 = $first; + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $8 = HEAP32[$4 + 280 >> 2] | 0; + if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 284 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { + $$0 = HEAP32[1468] | 0; + break; + } + $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; + if (($markerIndex | 0) < 0 ? 1 : (HEAP32[$17 + 4 >> 2] | 0) <= ($markerIndex | 0)) { + $$0 = HEAP32[1466] | 0; + break; + } else { + $23 = HEAP32[$17 >> 2] | 0; + _matrixCopy($23 + ($markerIndex * 320 | 0) + 16 | 0, 424); + _emscripten_asm_const_4(2, HEAP32[$23 + ($markerIndex * 320 | 0) + 304 >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) + 4 >> 2] | 0, +(+HEAPF64[$23 + ($markerIndex * 320 | 0) + 8 >> 3])) | 0; + $$0 = 0; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function _jpeg_resync_to_restart($cinfo, $desired) { + $cinfo = $cinfo | 0; + $desired = $desired | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $16 = 0, $19 = 0, $2 = 0, $20 = 0, $28 = 0, $action$0 = 0, $brmerge4 = 0, $marker$0$ph = 0, label = 0; + $0 = $cinfo + 416 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$2 + 20 >> 2] = 121; + HEAP32[$2 + 24 >> 2] = $1; + HEAP32[$2 + 28 >> 2] = $desired; + FUNCTION_TABLE_vii[HEAP32[$2 + 4 >> 2] & 63]($cinfo, -1); + $10 = $desired + 1 & 7 | 208; + $13 = $desired + 2 & 7 | 208; + $16 = $desired + 7 & 7 | 208; + $19 = $desired + 6 & 7 | 208; + $marker$0$ph = $1; + L1 : while (1) { + $20 = ($marker$0$ph | 0) < 192; + $brmerge4 = $20 | ($marker$0$ph & -8 | 0) != 208 | ($marker$0$ph | 0) == ($10 | 0); + $action$0 = $brmerge4 | ($marker$0$ph | 0) == ($13 | 0) ? ($brmerge4 & $20 ? 2 : 3) : ($marker$0$ph | 0) == ($16 | 0) | ($marker$0$ph | 0) == ($19 | 0) ? 2 : 1; + L3 : while (1) { + $28 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$28 + 20 >> 2] = 97; + HEAP32[$28 + 24 >> 2] = $marker$0$ph; + HEAP32[$28 + 28 >> 2] = $action$0; + FUNCTION_TABLE_vii[HEAP32[$28 + 4 >> 2] & 63]($cinfo, 4); + switch ($action$0 | 0) { + case 3: + { + $$0 = 1; break L1; + break; } - if ((HEAP8[$16 >> 0] | 0) != 95) { - $$0 = $first; + case 1: + { + label = 4; break L1; + break; } - $22 = $16 - $15 | 0; - if ($22 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); - if ($22 >>> 0 < 11) { - HEAP8[$2 >> 0] = $22 << 1; - $__p$0$ph$i$i = $2 + 1 | 0; - } else { - $29 = $22 + 16 & -16; - $30 = _malloc($29) | 0; - HEAP32[$2 + 8 >> 2] = $30; - HEAP32[$2 >> 2] = $29 | 1; - HEAP32[$2 + 4 >> 2] = $22; - $__p$0$ph$i$i = $30; - } - if (($15 | 0) != ($16 | 0)) { - $$0$i$i24 = $15; - $__p$0$i$i23 = $__p$0$ph$i$i; - while (1) { - HEAP8[$__p$0$i$i23 >> 0] = HEAP8[$$0$i$i24 >> 0] | 0; - $$0$i$i24 = $$0$i$i24 + 1 | 0; - if (($$0$i$i24 | 0) == ($16 | 0)) break; else $__p$0$i$i23 = $__p$0$i$i23 + 1 | 0; - } - } - HEAP8[$__p$0$ph$i$i + $22 >> 0] = 0; - $39 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14149) | 0; - HEAP32[$1 >> 2] = HEAP32[$39 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$39 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$39 + 8 >> 2]; - HEAP32[$39 >> 2] = 0; - HEAP32[$39 + 4 >> 2] = 0; - HEAP32[$39 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - $42 = $db + 4 | 0; - $43 = HEAP32[$42 >> 2] | 0; - $45 = HEAP32[$db + 8 >> 2] | 0; - if ($43 >>> 0 < $45 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0); - HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 24; - } else { - $52 = HEAP32[$db >> 2] | 0; - $53 = $43 - $52 | 0; - $54 = ($53 | 0) / 24 | 0; - $55 = $54 + 1 | 0; - if (($53 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $59 = ($45 - $52 | 0) / 24 | 0; - if ($59 >>> 0 < 1073741823) { - $61 = $59 << 1; - $$0$i$i$i = $61 >>> 0 < $55 >>> 0 ? $55 : $61; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i, $54, $db + 12 | 0); - $64 = $__v$i$i17 + 8 | 0; - $65 = HEAP32[$64 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($65, $0); - HEAP32[$64 >> 2] = $65 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17); + case 2: + { + break L3; + break; } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$0 = $16 + 1 | 0; - break L1; - break; + default: + {} } - case 76: + } + if (!(_next_marker($cinfo) | 0)) { + $$0 = 0; break; - default: - { - $$0 = $first; - break L1; - } } - $69 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first + 2 | 0, $last) | 0; - if (($69 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$69 >> 0] | 0) == 112) { - $74 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($69 + 1 | 0, $last, $cv1) | 0; - $75 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($74, $last) | 0; - if (($75 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$75 >> 0] | 0) == 95) { - $81 = $75 - $74 | 0; - if ($81 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($5); - if ($81 >>> 0 < 11) { - HEAP8[$5 >> 0] = $81 << 1; - $__p$0$ph$i$i7 = $5 + 1 | 0; - } else { - $88 = $81 + 16 & -16; - $89 = _malloc($88) | 0; - HEAP32[$5 + 8 >> 2] = $89; - HEAP32[$5 >> 2] = $88 | 1; - HEAP32[$5 + 4 >> 2] = $81; - $__p$0$ph$i$i7 = $89; - } - if (($74 | 0) != ($75 | 0)) { - $$0$i$i1027 = $74; - $__p$0$i$i926 = $__p$0$ph$i$i7; - while (1) { - HEAP8[$__p$0$i$i926 >> 0] = HEAP8[$$0$i$i1027 >> 0] | 0; - $$0$i$i1027 = $$0$i$i1027 + 1 | 0; - if (($$0$i$i1027 | 0) == ($75 | 0)) break; else $__p$0$i$i926 = $__p$0$i$i926 + 1 | 0; - } - } - HEAP8[$__p$0$ph$i$i7 + $81 >> 0] = 0; - $98 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($5, 0, 14149) | 0; - HEAP32[$4 >> 2] = HEAP32[$98 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$98 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$98 + 8 >> 2]; - HEAP32[$98 >> 2] = 0; - HEAP32[$98 + 4 >> 2] = 0; - HEAP32[$98 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4); - $101 = $db + 4 | 0; - $102 = HEAP32[$101 >> 2] | 0; - $104 = HEAP32[$db + 8 >> 2] | 0; - if ($102 >>> 0 < $104 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($102, $3); - HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + 24; - } else { - $111 = HEAP32[$db >> 2] | 0; - $112 = $102 - $111 | 0; - $113 = ($112 | 0) / 24 | 0; - $114 = $113 + 1 | 0; - if (($112 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $118 = ($104 - $111 | 0) / 24 | 0; - if ($118 >>> 0 < 1073741823) { - $120 = $118 << 1; - $$0$i$i$i18 = $120 >>> 0 < $114 >>> 0 ? $114 : $120; - } else $$0$i$i$i18 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i18, $113, $db + 12 | 0); - $123 = $__v$i$i17 + 8 | 0; - $124 = HEAP32[$123 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($124, $3); - HEAP32[$123 >> 2] = $124 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - $$0 = $75 + 1 | 0; - } else $$0 = $first; - } else $$0 = $first; - } else $$0 = $first; else $$0 = $first; while (0); - STACKTOP = sp; + $marker$0$ph = HEAP32[$0 >> 2] | 0; + } + if ((label | 0) == 4) { + HEAP32[$0 >> 2] = 0; + $$0 = 1; + } return $$0 | 0; } -function _icpPointRobust($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) { - $handle = $handle | 0; - $data = $data | 0; - $initMatXw2Xc = $initMatXw2Xc | 0; - $matXw2Xc = $matXw2Xc | 0; - $err = $err | 0; - var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa50 = 0.0, $$pn = 0.0, $$pre = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $108 = 0.0, $109 = 0.0, $11 = 0, $113 = 0, $117 = 0, $121 = 0, $125 = 0, $129 = 0, $133 = 0, $137 = 0, $14 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $16 = 0, $17 = 0, $174 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $41 = 0, $47 = 0, $51 = 0.0, $55 = 0.0, $56 = 0, $62 = 0.0, $66 = 0, $69 = 0.0, $71 = 0, $72 = 0.0, $75 = 0.0, $78 = 0.0, $8 = 0, $86 = 0.0, $99 = 0.0, $K2$0 = 0.0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$032 = 0.0, $err1$1 = 0.0, $i$1 = 0, $j$043 = 0, $j$131 = 0, $j$233 = 0, $j$338 = 0, $k$0$lcssa = 0, $k$039 = 0, $k$1 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer5 = sp + 184 | 0; - $vararg_buffer3 = sp + 176 | 0; - $vararg_buffer1 = sp + 168 | 0; - $vararg_buffer = sp + 160 | 0; - $U = sp + 48 | 0; - $matXw2U = sp + 64 | 0; - $dS = sp; - $0 = $data + 8 | 0; - $1 = HEAP32[$0 >> 2] | 0; - do if (($1 | 0) < 4) $$0 = -1; else { - $8 = ~~(+($1 | 0) * +HEAPF64[$handle + 128 >> 3]) + -1 | 0; - $$ = ($8 | 0) < 3 ? 3 : $8; - $11 = _malloc($1 * 96 | 0) | 0; - if (!$11) { - _arLog(3, 5109, $vararg_buffer); - $$0 = -1; - break; +function __ZN6vision16MatrixInverse3x3IfEEbPT_PKS1_S1_($B, $A, $threshold) { + $B = $B | 0; + $A = $A | 0; + $threshold = +$threshold; + var $$0 = 0, $0 = 0.0, $10 = 0, $16 = 0, $18 = 0, $3 = 0.0, $37 = 0, $4 = 0, $40 = 0, $6 = 0, $8 = 0; + $0 = +__ZN6vision14Determinant3x3IfEET_PKS1_($A); + if (!(+Math_abs(+$0) <= $threshold)) { + $3 = 1.0 / $0; + $4 = $A + 16 | 0; + $6 = $A + 20 | 0; + $8 = $A + 28 | 0; + $10 = $A + 32 | 0; + HEAPF32[$B >> 2] = $3 * (+HEAPF32[$4 >> 2] * +HEAPF32[$10 >> 2] - +HEAPF32[$6 >> 2] * +HEAPF32[$8 >> 2]); + $16 = $A + 8 | 0; + $18 = $A + 4 | 0; + HEAPF32[$B + 4 >> 2] = $3 * (+HEAPF32[$16 >> 2] * +HEAPF32[$8 >> 2] - +HEAPF32[$18 >> 2] * +HEAPF32[$10 >> 2]); + HEAPF32[$B + 8 >> 2] = $3 * (+HEAPF32[$18 >> 2] * +HEAPF32[$6 >> 2] - +HEAPF32[$16 >> 2] * +HEAPF32[$4 >> 2]); + $37 = $A + 12 | 0; + $40 = $A + 24 | 0; + HEAPF32[$B + 12 >> 2] = $3 * (+HEAPF32[$6 >> 2] * +HEAPF32[$40 >> 2] - +HEAPF32[$37 >> 2] * +HEAPF32[$10 >> 2]); + HEAPF32[$B + 16 >> 2] = $3 * (+HEAPF32[$A >> 2] * +HEAPF32[$10 >> 2] - +HEAPF32[$16 >> 2] * +HEAPF32[$40 >> 2]); + HEAPF32[$B + 20 >> 2] = $3 * (+HEAPF32[$16 >> 2] * +HEAPF32[$37 >> 2] - +HEAPF32[$A >> 2] * +HEAPF32[$6 >> 2]); + HEAPF32[$B + 24 >> 2] = $3 * (+HEAPF32[$37 >> 2] * +HEAPF32[$8 >> 2] - +HEAPF32[$4 >> 2] * +HEAPF32[$40 >> 2]); + HEAPF32[$B + 28 >> 2] = $3 * (+HEAPF32[$18 >> 2] * +HEAPF32[$40 >> 2] - +HEAPF32[$A >> 2] * +HEAPF32[$8 >> 2]); + HEAPF32[$B + 32 >> 2] = $3 * (+HEAPF32[$A >> 2] * +HEAPF32[$4 >> 2] - +HEAPF32[$18 >> 2] * +HEAPF32[$37 >> 2]); + $$0 = 1; + } else $$0 = 0; + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$03 = 0, $0 = 0, $1 = 0, $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $34 = 0, $41 = 0, $8 = 0, $__p$04 = 0, $scevgep1 = 0; + $0 = $__first; + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $15 = 10; + $16 = ($1 & 255) >>> 1; + $41 = $1; + } else { + $8 = HEAP32[$this >> 2] | 0; + $15 = ($8 & -2) + -1 | 0; + $16 = HEAP32[$this + 4 >> 2] | 0; + $41 = $8 & 255; + } + $12 = $__last - $0 | 0; + do if (($__last | 0) != ($__first | 0)) { + if (($15 - $16 | 0) >>> 0 < $12 >>> 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $15, $16 + $12 - $15 | 0, $16, $16, 0); + $21 = HEAP8[$this >> 0] | 0; + } else $21 = $41; + if (!($21 & 1)) $29 = $this + 1 | 0; else $29 = HEAP32[$this + 8 >> 2] | 0; + $scevgep1 = $__last + ($16 - $0) | 0; + if (($__first | 0) != ($__last | 0)) { + $$03 = $__first; + $__p$04 = $29 + $16 | 0; + while (1) { + HEAP8[$__p$04 >> 0] = HEAP8[$$03 >> 0] | 0; + $$03 = $$03 + 1 | 0; + if (($$03 | 0) == ($__last | 0)) break; else $__p$04 = $__p$04 + 1 | 0; + } } - $14 = _malloc($1 << 4) | 0; - if (!$14) { - _arLog(3, 5109, $vararg_buffer1); - _free($11); - $$0 = -1; + HEAP8[$29 + $scevgep1 >> 0] = 0; + $34 = $16 + $12 | 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $34 << 1; break; - } - $16 = $1 << 3; - $17 = _malloc($16) | 0; - if (!$17) { - _arLog(3, 5109, $vararg_buffer3); - _free($11); - _free($14); - $$0 = -1; + } else { + HEAP32[$this + 4 >> 2] = $34; break; } - $19 = _malloc($16) | 0; - if (!$19) { - _arLog(3, 5109, $vararg_buffer5); - _free($11); - _free($14); - _free($17); - $$0 = -1; - break; - } else $j$043 = 0; - do { - HEAPF64[$matXw2Xc + ($j$043 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) >> 3]; - HEAPF64[$matXw2Xc + ($j$043 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 8 >> 3]; - HEAPF64[$matXw2Xc + ($j$043 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 16 >> 3]; - HEAPF64[$matXw2Xc + ($j$043 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 24 >> 3]; - $j$043 = $j$043 + 1 | 0; - } while (($j$043 | 0) != 3); - $21 = $data + 4 | 0; - $22 = $U + 8 | 0; - $23 = $19 + ($$ << 3) | 0; - $24 = $handle + 104 | 0; - $25 = $handle + 120 | 0; - $26 = $handle + 112 | 0; - $27 = $handle + 96 | 0; - $err0$0 = 0.0; - $i$1 = 0; - L17 : while (1) { - _arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0; - $41 = HEAP32[$0 >> 2] | 0; - if (($41 | 0) > 0) { - $j$131 = 0; - while (1) { - if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$21 >> 2] | 0) + ($j$131 * 24 | 0) | 0) | 0) < 0) { - label = 14; - break L17; - } - $47 = HEAP32[$data >> 2] | 0; - $51 = +HEAPF64[$47 + ($j$131 << 4) >> 3] - +HEAPF64[$U >> 3]; - $55 = +HEAPF64[$47 + ($j$131 << 4) + 8 >> 3] - +HEAPF64[$22 >> 3]; - $56 = $j$131 << 1; - HEAPF64[$14 + ($56 << 3) >> 3] = $51; - HEAPF64[$14 + (($56 | 1) << 3) >> 3] = $55; - $62 = $51 * $51 + $55 * $55; - HEAPF64[$19 + ($j$131 << 3) >> 3] = $62; - HEAPF64[$17 + ($j$131 << 3) >> 3] = $62; - $j$131 = $j$131 + 1 | 0; - $66 = HEAP32[$0 >> 2] | 0; - if (($j$131 | 0) >= ($66 | 0)) { - $$lcssa = $66; - break; - } - } - } else $$lcssa = $41; - _qsort($19, $$lcssa, 8, 1); - $69 = +HEAPF64[$23 >> 3] * 4.0; - $K2$0 = $69 < 16.0 ? 16.0 : $69; - $71 = HEAP32[$0 >> 2] | 0; - $72 = $K2$0 / 6.0; - if (($71 | 0) > 0) { - $err1$032 = 0.0; - $j$233 = 0; - while (1) { - $75 = +HEAPF64[$19 + ($j$233 << 3) >> 3]; - if ($75 > $K2$0) $$pn = $72; else { - $78 = 1.0 - $75 / $K2$0; - $$pn = $72 * (1.0 - $78 * ($78 * $78)); - } - $err1$1 = $err1$032 + $$pn; - $j$233 = $j$233 + 1 | 0; - if (($j$233 | 0) >= ($71 | 0)) { - $err1$0$lcssa = $err1$1; - break; - } else $err1$032 = $err1$1; - } - } else $err1$0$lcssa = 0.0; - $86 = $err1$0$lcssa / +($71 | 0); - if ($86 < +HEAPF64[$24 >> 3]) { - $$lcssa50 = $86; - label = 36; + } while (0); + return; +} + +function _skip_variable($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $14 = 0, $2 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $bytes_in_buffer$0 = 0, $bytes_in_buffer$1 = 0, $next_input_byte$0 = 0, $next_input_byte$1 = 0, label = 0; + $0 = $cinfo + 24 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $1 + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) $$0 = 0; else { + $bytes_in_buffer$0 = HEAP32[$2 >> 2] | 0; + label = 4; + } else { + $bytes_in_buffer$0 = $3; + label = 4; + } + do if ((label | 0) == 4) { + $next_input_byte$0 = HEAP32[$1 >> 2] | 0; + $10 = $bytes_in_buffer$0 + -1 | 0; + $11 = $next_input_byte$0 + 1 | 0; + $14 = (HEAPU8[$next_input_byte$0 >> 0] | 0) << 8; + if (!$10) { + if (!(FUNCTION_TABLE_ii[HEAP32[$1 + 12 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; break; } - if (($i$1 | 0) > 0) if ($86 < +HEAPF64[$25 >> 3]) if ($86 / $err0$0 > +HEAPF64[$26 >> 3]) { - $$lcssa50 = $86; - label = 36; + $bytes_in_buffer$1 = HEAP32[$2 >> 2] | 0; + $next_input_byte$1 = HEAP32[$1 >> 2] | 0; + } else { + $bytes_in_buffer$1 = $10; + $next_input_byte$1 = $11; + } + $26 = HEAPU8[$next_input_byte$1 >> 0] | 0 | $14; + $27 = $26 + -2 | 0; + $28 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$28 + 20 >> 2] = 91; + HEAP32[$28 + 24 >> 2] = HEAP32[$cinfo + 416 >> 2]; + HEAP32[$28 + 28 >> 2] = $27; + FUNCTION_TABLE_vii[HEAP32[$28 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$1 >> 2] = $next_input_byte$1 + 1; + HEAP32[$2 >> 2] = $bytes_in_buffer$1 + -1; + if ($26 >>> 0 > 2) { + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$0 >> 2] | 0) + 16 >> 2] & 63]($cinfo, $27); + $$0 = 1; + } else $$0 = 1; + } while (0); + return $$0 | 0; +} + +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $15 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, dest = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = (((HEAP32[$1 >> 2] | 0) - $3 | 0) / 36 | 0) + 1 | 0; + if ($8 >>> 0 > 119304647) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $15 = ((HEAP32[$this + 8 >> 2] | 0) - $13 | 0) / 36 | 0; + if ($15 >>> 0 < 59652323) { + $17 = $15 << 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 119304647; + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEEC2EjjS6_($__v, $$0$i, ((HEAP32[$1 >> 2] | 0) - $13 | 0) / 36 | 0, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + dest = $25; + src = $__x; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$24 >> 2] = $25 + 36; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function _do_barray_io($cinfo, $ptr, $writing) { + $cinfo = $cinfo | 0; + $ptr = $ptr | 0; + $writing = $writing | 0; + var $$ = 0, $$1 = 0, $10 = 0, $11 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $file_offset$02 = 0, $i$03 = 0; + $2 = HEAP32[$ptr + 8 >> 2] << 7; + $3 = $ptr + 24 | 0; + $4 = $ptr + 20 | 0; + $5 = $ptr + 16 | 0; + $6 = $ptr + 28 | 0; + $7 = $ptr + 4 | 0; + $8 = ($writing | 0) == 0; + $9 = $ptr + 48 | 0; + $10 = $ptr + 52 | 0; + $11 = HEAP32[$5 >> 2] | 0; + L1 : do if (($11 | 0) > 0) { + $17 = $11; + $file_offset$02 = Math_imul(HEAP32[$3 >> 2] | 0, $2) | 0; + $i$03 = 0; + while (1) { + $15 = HEAP32[$4 >> 2] | 0; + $16 = $17 - $i$03 | 0; + $$ = ($15 | 0) < ($16 | 0) ? $15 : $16; + $20 = (HEAP32[$3 >> 2] | 0) + $i$03 | 0; + $22 = (HEAP32[$6 >> 2] | 0) - $20 | 0; + $24 = ($$ | 0) < ($22 | 0) ? $$ : $22; + $26 = (HEAP32[$7 >> 2] | 0) - $20 | 0; + $$1 = ($24 | 0) < ($26 | 0) ? $24 : $26; + if (($$1 | 0) < 1) break L1; + $29 = Math_imul($$1, $2) | 0; + if ($8) FUNCTION_TABLE_viiiii[HEAP32[$9 >> 2] & 31]($cinfo, $9, HEAP32[(HEAP32[$ptr >> 2] | 0) + ($i$03 << 2) >> 2] | 0, $file_offset$02, $29); else FUNCTION_TABLE_viiiii[HEAP32[$10 >> 2] & 31]($cinfo, $9, HEAP32[(HEAP32[$ptr >> 2] | 0) + ($i$03 << 2) >> 2] | 0, $file_offset$02, $29); + $i$03 = (HEAP32[$4 >> 2] | 0) + $i$03 | 0; + $17 = HEAP32[$5 >> 2] | 0; + if (($17 | 0) <= ($i$03 | 0)) break; else $file_offset$02 = $29 + $file_offset$02 | 0; + } + } while (0); + return; +} + +function _fread($destv, $size, $nmemb, $f) { + $destv = $destv | 0; + $size = $size | 0; + $nmemb = $nmemb | 0; + $f = $f | 0; + var $$ = 0, $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $28 = 0, $32 = 0, $5 = 0, $7 = 0, $dest$0$ph = 0, $dest$02 = 0, $l$0$ph = 0, $l$03 = 0, $l$03$lcssa = 0, label = 0; + $0 = Math_imul($nmemb, $size) | 0; + if ((HEAP32[$f + 76 >> 2] | 0) > -1) $32 = ___lockfile($f) | 0; else $32 = 0; + $5 = $f + 74 | 0; + $7 = HEAP8[$5 >> 0] | 0; + HEAP8[$5 >> 0] = $7 + 255 | $7; + $13 = $f + 4 | 0; + $14 = HEAP32[$13 >> 2] | 0; + $17 = (HEAP32[$f + 8 >> 2] | 0) - $14 | 0; + if (($17 | 0) > 0) { + $$ = $17 >>> 0 < $0 >>> 0 ? $17 : $0; + _memcpy($destv | 0, $14 | 0, $$ | 0) | 0; + HEAP32[$13 >> 2] = $14 + $$; + $dest$0$ph = $destv + $$ | 0; + $l$0$ph = $0 - $$ | 0; + } else { + $dest$0$ph = $destv; + $l$0$ph = $0; + } + L7 : do if (!$l$0$ph) label = 13; else { + $24 = $f + 32 | 0; + $dest$02 = $dest$0$ph; + $l$03 = $l$0$ph; + while (1) { + if (___toread($f) | 0) { + $l$03$lcssa = $l$03; break; } - if (($i$1 | 0) == (HEAP32[$27 >> 2] | 0)) { - $$lcssa50 = $86; - label = 36; + $28 = FUNCTION_TABLE_iiii[HEAP32[$24 >> 2] & 63]($f, $dest$02, $l$03) | 0; + if (($28 + 1 | 0) >>> 0 < 2) { + $l$03$lcssa = $l$03; break; } - if (($71 | 0) > 0) { - $174 = $71; - $j$338 = 0; - $k$039 = 0; - while (1) { - $99 = +HEAPF64[$17 + ($j$338 << 3) >> 3]; - if (!($99 <= $K2$0)) { - $$pre = $174; - $k$1 = $k$039; - } else { - $101 = $k$039 * 6 | 0; - $102 = $11 + ($101 << 3) | 0; - if ((_icpGetJ_U_S($102, $handle, $matXw2Xc, (HEAP32[$21 >> 2] | 0) + ($j$338 * 24 | 0) | 0) | 0) < 0) { - label = 28; - break L17; - } - $108 = 1.0 - $99 / $K2$0; - $109 = $108 * $108; - HEAPF64[$102 >> 3] = +HEAPF64[$102 >> 3] * $109; - $113 = $11 + (($101 | 1) << 3) | 0; - HEAPF64[$113 >> 3] = +HEAPF64[$113 >> 3] * $109; - $117 = $11 + ($101 + 2 << 3) | 0; - HEAPF64[$117 >> 3] = $109 * +HEAPF64[$117 >> 3]; - $121 = $11 + ($101 + 3 << 3) | 0; - HEAPF64[$121 >> 3] = $109 * +HEAPF64[$121 >> 3]; - $125 = $11 + ($101 + 4 << 3) | 0; - HEAPF64[$125 >> 3] = $109 * +HEAPF64[$125 >> 3]; - $129 = $11 + ($101 + 5 << 3) | 0; - HEAPF64[$129 >> 3] = $109 * +HEAPF64[$129 >> 3]; - $133 = $11 + ($101 + 6 << 3) | 0; - HEAPF64[$133 >> 3] = $109 * +HEAPF64[$133 >> 3]; - $137 = $11 + ($101 + 7 << 3) | 0; - HEAPF64[$137 >> 3] = $109 * +HEAPF64[$137 >> 3]; - $141 = $11 + ($101 + 8 << 3) | 0; - HEAPF64[$141 >> 3] = $109 * +HEAPF64[$141 >> 3]; - $145 = $11 + ($101 + 9 << 3) | 0; - HEAPF64[$145 >> 3] = $109 * +HEAPF64[$145 >> 3]; - $149 = $11 + ($101 + 10 << 3) | 0; - HEAPF64[$149 >> 3] = $109 * +HEAPF64[$149 >> 3]; - $153 = $11 + ($101 + 11 << 3) | 0; - HEAPF64[$153 >> 3] = $109 * +HEAPF64[$153 >> 3]; - $156 = $j$338 << 1; - HEAPF64[$14 + ($k$039 << 3) >> 3] = $109 * +HEAPF64[$14 + ($156 << 3) >> 3]; - HEAPF64[$14 + ($k$039 + 1 << 3) >> 3] = $109 * +HEAPF64[$14 + (($156 | 1) << 3) >> 3]; - $$pre = HEAP32[$0 >> 2] | 0; - $k$1 = $k$039 + 2 | 0; - } - $j$338 = $j$338 + 1 | 0; - if (($j$338 | 0) >= ($$pre | 0)) { - $k$0$lcssa = $k$1; - break; - } else { - $174 = $$pre; - $k$039 = $k$1; - } - } - } else $k$0$lcssa = 0; - if (($k$0$lcssa | 0) < 6) { - label = 32; + if (($l$03 | 0) == ($28 | 0)) { + label = 13; + break L7; + } else { + $dest$02 = $dest$02 + $28 | 0; + $l$03 = $l$03 - $28 | 0; + } + } + if ($32) ___unlockfile($f); + $$0 = (($0 - $l$03$lcssa | 0) >>> 0) / ($size >>> 0) | 0; + } while (0); + if ((label | 0) == 13) if (!$32) $$0 = $nmemb; else { + ___unlockfile($f); + $$0 = $nmemb; + } + return $$0 | 0; +} + +function _do_sarray_io($cinfo, $ptr, $writing) { + $cinfo = $cinfo | 0; + $ptr = $ptr | 0; + $writing = $writing | 0; + var $$ = 0, $$1 = 0, $1 = 0, $10 = 0, $14 = 0, $15 = 0, $16 = 0, $19 = 0, $2 = 0, $21 = 0, $23 = 0, $25 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $file_offset$02 = 0, $i$03 = 0; + $1 = HEAP32[$ptr + 8 >> 2] | 0; + $2 = $ptr + 24 | 0; + $3 = $ptr + 20 | 0; + $4 = $ptr + 16 | 0; + $5 = $ptr + 28 | 0; + $6 = $ptr + 4 | 0; + $7 = ($writing | 0) == 0; + $8 = $ptr + 48 | 0; + $9 = $ptr + 52 | 0; + $10 = HEAP32[$4 >> 2] | 0; + L1 : do if (($10 | 0) > 0) { + $16 = $10; + $file_offset$02 = Math_imul(HEAP32[$2 >> 2] | 0, $1) | 0; + $i$03 = 0; + while (1) { + $14 = HEAP32[$3 >> 2] | 0; + $15 = $16 - $i$03 | 0; + $$ = ($14 | 0) < ($15 | 0) ? $14 : $15; + $19 = (HEAP32[$2 >> 2] | 0) + $i$03 | 0; + $21 = (HEAP32[$5 >> 2] | 0) - $19 | 0; + $23 = ($$ | 0) < ($21 | 0) ? $$ : $21; + $25 = (HEAP32[$6 >> 2] | 0) - $19 | 0; + $$1 = ($23 | 0) < ($25 | 0) ? $23 : $25; + if (($$1 | 0) < 1) break L1; + $28 = Math_imul($$1, $1) | 0; + if ($7) FUNCTION_TABLE_viiiii[HEAP32[$8 >> 2] & 31]($cinfo, $8, HEAP32[(HEAP32[$ptr >> 2] | 0) + ($i$03 << 2) >> 2] | 0, $file_offset$02, $28); else FUNCTION_TABLE_viiiii[HEAP32[$9 >> 2] & 31]($cinfo, $8, HEAP32[(HEAP32[$ptr >> 2] | 0) + ($i$03 << 2) >> 2] | 0, $file_offset$02, $28); + $i$03 = (HEAP32[$3 >> 2] | 0) + $i$03 | 0; + $16 = HEAP32[$4 >> 2] | 0; + if (($16 | 0) <= ($i$03 | 0)) break; else $file_offset$02 = $28 + $file_offset$02 | 0; + } + } while (0); + return; +} + +function __ZNK6vision10DoGPyramid15octaveFromIndexEi($this, $index) { + $this = $this | 0; + $index = $index | 0; + var $0 = 0, $14 = 0, $19 = 0, $20 = 0, $24 = 0, $3 = 0, $34 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + $3 = HEAP32[$this >> 2] | 0; + if ((HEAP32[$this + 4 >> 2] | 0) - $3 >> 5 >>> 0 > $index >>> 0) { + $34 = ~~+Math_floor(+(+__ZN6vision4log2IfEET_S1_(+((((HEAP32[$3 + 4 >> 2] | 0) >>> 0) / ((HEAP32[$3 + ($index << 5) + 4 >> 2] | 0) >>> 0) | 0) >>> 0)) + .5)); + STACKTOP = sp; + return $34 | 0; + } else { + $14 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25506) | 0, 23408) | 0, 34302) | 0, 94) | 0, 34309) | 0, 25552) | 0; + $19 = __ZNKSt3__18ios_base6getlocEv($14 + (HEAP32[(HEAP32[$14 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $19; + $20 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $24 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$20 >> 2] | 0) + 28 >> 2] & 63]($20, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($14, $24) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($14) | 0; + _abort(); + } + return 0; +} + +function _jpeg_CreateDecompress($cinfo, $version, $structsize) { + $cinfo = $cinfo | 0; + $version = $version | 0; + $structsize = $structsize | 0; + var $$pre$phiZ2D = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $8 = 0; + HEAP32[$cinfo + 4 >> 2] = 0; + if (($version | 0) != 62) { + $2 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$2 + 20 >> 2] = 12; + HEAP32[$2 + 24 >> 2] = 62; + HEAP32[$2 + 28 >> 2] = $version; + FUNCTION_TABLE_vi[HEAP32[$2 >> 2] & 255]($cinfo); + } + if (($structsize | 0) == 464) $$pre$phiZ2D = $cinfo; else { + $8 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$8 + 20 >> 2] = 21; + HEAP32[$8 + 24 >> 2] = 464; + HEAP32[$8 + 28 >> 2] = $structsize; + FUNCTION_TABLE_vi[HEAP32[$8 >> 2] & 255]($cinfo); + $$pre$phiZ2D = $cinfo; + } + $13 = HEAP32[$cinfo >> 2] | 0; + $14 = $cinfo + 12 | 0; + $15 = HEAP32[$14 >> 2] | 0; + _memset($cinfo | 0, 0, 464) | 0; + HEAP32[$cinfo >> 2] = $13; + HEAP32[$14 >> 2] = $15; + HEAP32[$cinfo + 16 >> 2] = 1; + _jinit_memory_mgr($$pre$phiZ2D); + HEAP32[$cinfo + 8 >> 2] = 0; + HEAP32[$cinfo + 24 >> 2] = 0; + HEAP32[$cinfo + 164 >> 2] = 0; + HEAP32[$cinfo + 168 >> 2] = 0; + HEAP32[$cinfo + 172 >> 2] = 0; + HEAP32[$cinfo + 176 >> 2] = 0; + HEAP32[$cinfo + 180 >> 2] = 0; + HEAP32[$cinfo + 196 >> 2] = 0; + HEAP32[$cinfo + 184 >> 2] = 0; + HEAP32[$cinfo + 200 >> 2] = 0; + HEAP32[$cinfo + 188 >> 2] = 0; + HEAP32[$cinfo + 204 >> 2] = 0; + HEAP32[$cinfo + 192 >> 2] = 0; + HEAP32[$cinfo + 208 >> 2] = 0; + HEAP32[$cinfo + 304 >> 2] = 0; + _jinit_marker_reader($cinfo); + _jinit_input_controller($cinfo); + HEAP32[$cinfo + 20 >> 2] = 200; + return; +} + +function _tmpnam($s) { + $s = $s | 0; + var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $15 = 0, $4 = 0, $5 = 0, $8 = 0, $try$0 = 0, $try$1 = 0, $ts = 0, $vararg_buffer = 0, $vararg_buffer11 = 0, $vararg_buffer2 = 0, $vararg_buffer7 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer11 = sp + 32 | 0; + $vararg_buffer7 = sp + 24 | 0; + $vararg_buffer2 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = sp + 48 | 0; + $ts = sp + 40 | 0; + HEAP32[$0 >> 2] = ($s | 0) == 0 ? 52069 : $s; + HEAP32[$vararg_buffer >> 2] = 52089; + HEAP32[$vararg_buffer + 4 >> 2] = 7; + if (!(___syscall33(33, $vararg_buffer | 0) | 0)) { + $4 = $ts + 4 | 0; + $5 = $0; + $try$0 = 0; + while (1) { + HEAP32[$vararg_buffer2 >> 2] = 0; + HEAP32[$vararg_buffer2 + 4 >> 2] = $ts; + HEAP32[$vararg_buffer2 + 8 >> 2] = 0; + ___syscall265(265, $vararg_buffer2 | 0) | 0; + $8 = HEAP32[$0 >> 2] | 0; + $10 = HEAP32[$4 >> 2] ^ $5 ^ $8; + $11 = HEAP32[1625] | 0; + HEAP32[1625] = $11 + 1; + HEAP32[$vararg_buffer7 >> 2] = $11; + HEAP32[$vararg_buffer7 + 4 >> 2] = $10; + _snprintf($8, 20, 52094, $vararg_buffer7) | 0; + HEAP32[$vararg_buffer11 >> 2] = HEAP32[$0 >> 2]; + HEAP32[$vararg_buffer11 + 4 >> 2] = 0; + if (___syscall33(33, $vararg_buffer11 | 0) | 0) { + $try$1 = $try$0; break; } - if ((_icpGetDeltaS($dS, $14, $11, $k$0$lcssa) | 0) < 0) { - label = 34; + $15 = $try$0 + 1 | 0; + if (($try$0 | 0) < 100) $try$0 = $15; else { + $try$1 = $15; break; } - _icpUpdateMat($matXw2Xc, $dS) | 0; - $err0$0 = $86; - $i$1 = $i$1 + 1 | 0; - } - if ((label | 0) == 14) { - _icpGetXw2XcCleanup295($11, $14, $17, $19); - $$0 = -1; - break; - } else if ((label | 0) == 28) { - _icpGetXw2XcCleanup295($11, $14, $17, $19); - $$0 = -1; - break; - } else if ((label | 0) == 32) { - _icpGetXw2XcCleanup295($11, $14, $17, $19); - $$0 = -1; - break; - } else if ((label | 0) == 34) { - _icpGetXw2XcCleanup295($11, $14, $17, $19); - $$0 = -1; - break; - } else if ((label | 0) == 36) { - HEAPF64[$err >> 3] = $$lcssa50; - _free($11); - _free($14); - _free($17); - _free($19); - $$0 = 0; - break; } - } while (0); + $$0 = ($try$1 | 0) > 99 ? 0 : HEAP32[$0 >> 2] | 0; + } else $$0 = 0; STACKTOP = sp; return $$0 | 0; } -function _arParamObserv2Ideal($dist_factor, $ox, $oy, $ix, $iy, $dist_function_version) { - $dist_factor = $dist_factor | 0; - $ox = +$ox; - $oy = +$oy; - $ix = $ix | 0; - $iy = $iy | 0; - $dist_function_version = $dist_function_version | 0; - var $$0 = 0, $0 = 0.0, $10 = 0.0, $101 = 0.0, $103 = 0.0, $104 = 0, $106 = 0.0, $109 = 0.0, $113 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0.0, $134 = 0.0, $14 = 0.0, $146 = 0, $154 = 0.0, $155 = 0.0, $156 = 0, $158 = 0.0, $16 = 0.0, $161 = 0.0, $165 = 0.0, $168 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $18 = 0.0, $186 = 0.0, $198 = 0, $2 = 0.0, $20 = 0.0, $206 = 0.0, $207 = 0.0, $208 = 0, $21 = 0.0, $210 = 0.0, $213 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $22 = 0.0, $227 = 0.0, $23 = 0.0, $239 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $29 = 0.0, $34 = 0.0, $4 = 0.0, $44 = 0.0, $50 = 0.0, $6 = 0.0, $67 = 0.0, $8 = 0.0, $i$03 = 0, $i14$029 = 0, $i21$042 = 0, $i5$015 = 0, $px$07 = 0.0, $px$1 = 0.0, $px12$027 = 0.0, $px12$1 = 0.0, $px19$040 = 0.0, $px19$1 = 0.0, $px3$012 = 0.0, $px3$1 = 0.0, $py$06 = 0.0, $py$1 = 0.0, $py13$028 = 0.0, $py13$1 = 0.0, $py20$041 = 0.0, $py20$1 = 0.0, $py4$013 = 0.0, $py4$1 = 0.0, $x02$05 = 0.0, $y02$04 = 0.0, $z0$014 = 0.0, $z016$039 = 0.0, $z02$016 = 0.0, $z0215$038 = 0.0, $z026$025 = 0.0, $z07$026 = 0.0; - switch ($dist_function_version | 0) { - case 4: - { - $0 = +HEAPF64[$dist_factor >> 3]; - $2 = +HEAPF64[$dist_factor + 8 >> 3]; - $4 = +HEAPF64[$dist_factor + 16 >> 3]; - $6 = +HEAPF64[$dist_factor + 24 >> 3]; - $8 = +HEAPF64[$dist_factor + 32 >> 3]; - $10 = +HEAPF64[$dist_factor + 40 >> 3]; - $12 = +HEAPF64[$dist_factor + 48 >> 3]; - $14 = +HEAPF64[$dist_factor + 56 >> 3]; - $16 = +HEAPF64[$dist_factor + 64 >> 3]; - $18 = ($ox - $12) / $8; - $20 = ($oy - $14) / $10; - $21 = $18 * $18; - $22 = $20 * $20; - $23 = $4 * 2.0; - $24 = $6 * 6.0; - $25 = $6 * 2.0; - $26 = $4 * 6.0; - L3 : do if ($22 != 0.0 | $21 != 0.0) { - $i$03 = 1; - $px$07 = $18; - $py$06 = $20; - $x02$05 = $21; - $y02$04 = $22; - while (1) { - $29 = $y02$04 + $x02$05; - $34 = $0 * $29 + 1.0 + $29 * ($2 * $29); - $44 = $x02$05 * 3.0; - $50 = $y02$04 * $44; - $px$07 = $px$07 - ($6 * ($29 + $x02$05 * 2.0) + ($py$06 * ($23 * $px$07) + $px$07 * $34) - $18) / ($24 * $px$07 + ($23 * $py$06 + ($0 * ($y02$04 + $44) + 1.0 + $2 * ($y02$04 * $y02$04 + ($x02$05 * ($x02$05 * 5.0) + $50))))); - $67 = $25 * $px$07; - $py$06 = $py$06 - ($4 * ($y02$04 * 2.0 + $29) + $py$06 * $34 + $py$06 * $67 - $20) / ($26 * $py$06 + ($0 * ($x02$05 + $y02$04 * 3.0) + 1.0 + $2 * ($y02$04 * ($y02$04 * 5.0) + ($x02$05 * $x02$05 + $50))) + $67); - if (($i$03 | 0) == 4) { - $px$1 = $px$07; - $py$1 = $py$06; - break L3; - } - $x02$05 = $px$07 * $px$07; - $y02$04 = $py$06 * $py$06; - if (!($y02$04 != 0.0 | $x02$05 != 0.0)) { - $px$1 = 0.0; - $py$1 = 0.0; - break; - } else $i$03 = $i$03 + 1 | 0; - } - } else { - $px$1 = 0.0; - $py$1 = 0.0; - } while (0); - HEAPF64[$ix >> 3] = $12 + $8 * $px$1 / $16; - HEAPF64[$iy >> 3] = $14 + $10 * $py$1 / $16; - $$0 = 0; - break; +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($this, $__pos, $__s, $__n) { + $this = $this | 0; + $__pos = $__pos | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$1 = 0, $$pre$phiZ2D = 0, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $23 = 0, $25 = 0, $31 = 0, $8 = 0, $9 = 0; + $0 = HEAP8[$this >> 0] | 0; + $2 = ($0 & 1) == 0; + if ($2) $8 = ($0 & 255) >>> 1; else $8 = HEAP32[$this + 4 >> 2] | 0; + if ($8 >>> 0 < $__pos >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv($this); + if ($2) { + $13 = 10; + $17 = $0; + } else { + $9 = HEAP32[$this >> 2] | 0; + $13 = ($9 & -2) + -1 | 0; + $17 = $9 & 255; + } + if (($13 - $8 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $13, $8 + $__n - $13 | 0, $8, $__pos, 0, $__n, $__s); else if ($__n) { + if (!($17 & 1)) $23 = $this + 1 | 0; else $23 = HEAP32[$this + 8 >> 2] | 0; + if (($8 | 0) == ($__pos | 0)) { + $$1 = $__s; + $$pre$phiZ2D = $23 + $__pos | 0; + } else { + $25 = $23 + $__pos | 0; + _memmove($23 + ($__n + $__pos) | 0, $25 | 0, $8 - $__pos | 0) | 0; + $$1 = $25 >>> 0 <= $__s >>> 0 & ($23 + $8 | 0) >>> 0 > $__s >>> 0 ? $__s + $__n | 0 : $__s; + $$pre$phiZ2D = $25; } - case 3: - { - $101 = +HEAPF64[$dist_factor >> 3]; - $103 = ($ox - $101) / +HEAPF64[$dist_factor + 24 >> 3]; - $104 = $dist_factor + 8 | 0; - $106 = $oy - +HEAPF64[$104 >> 3]; - $109 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8; - $113 = +HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5; - $116 = $103 * $103 + $106 * $106; - $117 = +Math_sqrt(+$116); - $118 = $109 * 3.0; - $119 = $113 * 5.0; - L9 : do if ($117 != 0.0) { - $i5$015 = 1; - $px3$012 = $103; - $py4$013 = $106; - $z0$014 = $117; - $z02$016 = $116; - while (1) { - $134 = $z0$014 - ($z0$014 * (1.0 - $109 * $z02$016 - $z02$016 * ($113 * $z02$016)) - $117) / (1.0 - $118 * $z02$016 - $z02$016 * ($119 * $z02$016)); - $px3$012 = $px3$012 * $134 / $z0$014; - $py4$013 = $py4$013 * $134 / $z0$014; - if (($i5$015 | 0) == 3) { - $px3$1 = $px3$012; - $py4$1 = $py4$013; - break L9; - } - $z02$016 = $px3$012 * $px3$012 + $py4$013 * $py4$013; - $z0$014 = +Math_sqrt(+$z02$016); - if (!($z0$014 != 0.0)) { - $px3$1 = 0.0; - $py4$1 = 0.0; - break; - } else $i5$015 = $i5$015 + 1 | 0; - } - } else { - $px3$1 = 0.0; - $py4$1 = 0.0; - } while (0); - $146 = $dist_factor + 16 | 0; - HEAPF64[$ix >> 3] = $px3$1 / +HEAPF64[$146 >> 3] + $101; - HEAPF64[$iy >> 3] = $py4$1 / +HEAPF64[$146 >> 3] + +HEAPF64[$104 >> 3]; - $$0 = 0; - break; + _memmove($$pre$phiZ2D | 0, $$1 | 0, $__n | 0) | 0; + $31 = $8 + $__n | 0; + if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $31 << 1; else HEAP32[$this + 4 >> 2] = $31; + HEAP8[$23 + $31 >> 0] = 0; + } + return $this | 0; +} + +function _arUtilMatInv($s, $d) { + $s = $s | 0; + $d = $d | 0; + var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $j$08 = 0, $j$16 = 0; + $0 = _arMatrixAlloc(4, 4) | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$0 >> 2] | 0; + $3 = HEAP32[$0 >> 2] | 0; + $4 = HEAP32[$0 >> 2] | 0; + $j$08 = 0; + do { + $5 = $j$08 << 2; + HEAPF64[$1 + ($5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) >> 3]; + HEAPF64[$2 + (1 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 8 >> 3]; + HEAPF64[$3 + (2 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 16 >> 3]; + HEAPF64[$4 + (3 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 24 >> 3]; + $j$08 = $j$08 + 1 | 0; + } while (($j$08 | 0) != 3); + $22 = HEAP32[$0 >> 2] | 0; + $23 = $22 + 96 | 0; + HEAP32[$23 >> 2] = 0; + HEAP32[$23 + 4 >> 2] = 0; + HEAP32[$23 + 8 >> 2] = 0; + HEAP32[$23 + 12 >> 2] = 0; + HEAP32[$23 + 16 >> 2] = 0; + HEAP32[$23 + 20 >> 2] = 0; + HEAPF64[$22 + 120 >> 3] = 1.0; + _arMatrixSelfInv($0) | 0; + $25 = HEAP32[$0 >> 2] | 0; + $26 = HEAP32[$0 >> 2] | 0; + $27 = HEAP32[$0 >> 2] | 0; + $28 = HEAP32[$0 >> 2] | 0; + $j$16 = 0; + do { + $29 = $j$16 << 2; + HEAPF64[$d + ($j$16 << 5) >> 3] = +HEAPF64[$25 + ($29 << 3) >> 3]; + HEAPF64[$d + ($j$16 << 5) + 8 >> 3] = +HEAPF64[$26 + (1 + $29 << 3) >> 3]; + HEAPF64[$d + ($j$16 << 5) + 16 >> 3] = +HEAPF64[$27 + (2 + $29 << 3) >> 3]; + HEAPF64[$d + ($j$16 << 5) + 24 >> 3] = +HEAPF64[$28 + (3 + $29 << 3) >> 3]; + $j$16 = $j$16 + 1 | 0; + } while (($j$16 | 0) != 3); + _arMatrixFree($0) | 0; + return 0; +} + +function _arUtilMatInvf($s, $d) { + $s = $s | 0; + $d = $d | 0; + var $0 = 0, $1 = 0, $2 = 0, $26 = 0, $27 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $j$08 = 0, $j$16 = 0; + $0 = _arMatrixAlloc(4, 4) | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$0 >> 2] | 0; + $3 = HEAP32[$0 >> 2] | 0; + $4 = HEAP32[$0 >> 2] | 0; + $j$08 = 0; + do { + $5 = $j$08 << 2; + HEAPF64[$1 + ($5 << 3) >> 3] = +HEAPF32[$s + ($j$08 << 4) >> 2]; + HEAPF64[$2 + (1 + $5 << 3) >> 3] = +HEAPF32[$s + ($j$08 << 4) + 4 >> 2]; + HEAPF64[$3 + (2 + $5 << 3) >> 3] = +HEAPF32[$s + ($j$08 << 4) + 8 >> 2]; + HEAPF64[$4 + (3 + $5 << 3) >> 3] = +HEAPF32[$s + ($j$08 << 4) + 12 >> 2]; + $j$08 = $j$08 + 1 | 0; + } while (($j$08 | 0) != 3); + $26 = HEAP32[$0 >> 2] | 0; + $27 = $26 + 96 | 0; + HEAP32[$27 >> 2] = 0; + HEAP32[$27 + 4 >> 2] = 0; + HEAP32[$27 + 8 >> 2] = 0; + HEAP32[$27 + 12 >> 2] = 0; + HEAP32[$27 + 16 >> 2] = 0; + HEAP32[$27 + 20 >> 2] = 0; + HEAPF64[$26 + 120 >> 3] = 1.0; + _arMatrixSelfInv($0) | 0; + $29 = HEAP32[$0 >> 2] | 0; + $30 = HEAP32[$0 >> 2] | 0; + $31 = HEAP32[$0 >> 2] | 0; + $32 = HEAP32[$0 >> 2] | 0; + $j$16 = 0; + do { + $33 = $j$16 << 2; + HEAPF32[$d + ($j$16 << 4) >> 2] = +HEAPF64[$29 + ($33 << 3) >> 3]; + HEAPF32[$d + ($j$16 << 4) + 4 >> 2] = +HEAPF64[$30 + (1 + $33 << 3) >> 3]; + HEAPF32[$d + ($j$16 << 4) + 8 >> 2] = +HEAPF64[$31 + (2 + $33 << 3) >> 3]; + HEAPF32[$d + ($j$16 << 4) + 12 >> 2] = +HEAPF64[$32 + (3 + $33 << 3) >> 3]; + $j$16 = $j$16 + 1 | 0; + } while (($j$16 | 0) != 3); + _arMatrixFree($0) | 0; + return 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS5_E4typeES9_S9_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$03 = 0, $0 = 0, $1 = 0, $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $34 = 0, $41 = 0, $8 = 0, $__p$04 = 0, $scevgep1 = 0; + $0 = $__first; + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $15 = 10; + $16 = ($1 & 255) >>> 1; + $41 = $1; + } else { + $8 = HEAP32[$this >> 2] | 0; + $15 = ($8 & -2) + -1 | 0; + $16 = HEAP32[$this + 4 >> 2] | 0; + $41 = $8 & 255; + } + $12 = $__last - $0 | 0; + do if (($__last | 0) != ($__first | 0)) { + if (($15 - $16 | 0) >>> 0 < $12 >>> 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj($this, $15, $16 + $12 - $15 | 0, $16, $16, 0, 0); + $21 = HEAP8[$this >> 0] | 0; + } else $21 = $41; + if (!($21 & 1)) $29 = $this + 1 | 0; else $29 = HEAP32[$this + 8 >> 2] | 0; + $scevgep1 = $__last + ($16 - $0) | 0; + if (($__first | 0) != ($__last | 0)) { + $$03 = $__first; + $__p$04 = $29 + $16 | 0; + while (1) { + HEAP8[$__p$04 >> 0] = HEAP8[$$03 >> 0] | 0; + $$03 = $$03 + 1 | 0; + if (($$03 | 0) == ($__last | 0)) break; else $__p$04 = $__p$04 + 1 | 0; + } } - case 2: - { - $154 = +HEAPF64[$dist_factor >> 3]; - $155 = $ox - $154; - $156 = $dist_factor + 8 | 0; - $158 = $oy - +HEAPF64[$156 >> 3]; - $161 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8; - $165 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5; - $168 = $155 * $155 + $158 * $158; - $169 = +Math_sqrt(+$168); - $170 = $161 * 3.0; - $171 = $165 * 5.0; - L15 : do if ($169 != 0.0) { - $i14$029 = 1; - $px12$027 = $155; - $py13$028 = $158; - $z026$025 = $168; - $z07$026 = $169; - while (1) { - $186 = $z07$026 - ($z07$026 * (1.0 - $161 * $z026$025 - $z026$025 * ($165 * $z026$025)) - $169) / (1.0 - $170 * $z026$025 - $z026$025 * ($171 * $z026$025)); - $px12$027 = $px12$027 * $186 / $z07$026; - $py13$028 = $py13$028 * $186 / $z07$026; - if (($i14$029 | 0) == 3) { - $px12$1 = $px12$027; - $py13$1 = $py13$028; - break L15; - } - $z026$025 = $px12$027 * $px12$027 + $py13$028 * $py13$028; - $z07$026 = +Math_sqrt(+$z026$025); - if (!($z07$026 != 0.0)) { - $px12$1 = 0.0; - $py13$1 = 0.0; - break; - } else $i14$029 = $i14$029 + 1 | 0; - } - } else { - $px12$1 = 0.0; - $py13$1 = 0.0; - } while (0); - $198 = $dist_factor + 16 | 0; - HEAPF64[$ix >> 3] = $px12$1 / +HEAPF64[$198 >> 3] + $154; - HEAPF64[$iy >> 3] = $py13$1 / +HEAPF64[$198 >> 3] + +HEAPF64[$156 >> 3]; - $$0 = 0; + HEAP8[$29 + $scevgep1 >> 0] = 0; + $34 = $16 + $12 | 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $34 << 1; + break; + } else { + HEAP32[$this + 4 >> 2] = $34; break; } - case 1: - { - $206 = +HEAPF64[$dist_factor >> 3]; - $207 = $ox - $206; - $208 = $dist_factor + 8 | 0; - $210 = $oy - +HEAPF64[$208 >> 3]; - $213 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8; - $216 = $207 * $207 + $210 * $210; - $217 = +Math_sqrt(+$216); - $218 = $213 * 3.0; - L21 : do if ($217 != 0.0) { - $i21$042 = 1; - $px19$040 = $207; - $py20$041 = $210; - $z016$039 = $217; - $z0215$038 = $216; - while (1) { - $227 = $z016$039 - ($z016$039 * (1.0 - $213 * $z0215$038) - $217) / (1.0 - $218 * $z0215$038); - $px19$040 = $px19$040 * $227 / $z016$039; - $py20$041 = $py20$041 * $227 / $z016$039; - if (($i21$042 | 0) == 3) { - $px19$1 = $px19$040; - $py20$1 = $py20$041; - break L21; + } while (0); + return $this | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($first, $last) { + $first = $first | 0; + $last = $last | 0; + var $$0 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $3 = 0, $5 = 0, $9 = 0, $first$pn = 0, $t1$016 = 0, $t1$016$lcssa = 0, $t11$0 = 0; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { + $1 = HEAP8[$first >> 0] | 0; + if ($1 << 24 >> 24 != 95) { + if ((($1 << 24 >> 24) + -48 | 0) >>> 0 < 10) $first$pn = $first; else { + $$0 = $first; + break; + } + while (1) { + $t11$0 = $first$pn + 1 | 0; + if (($t11$0 | 0) == ($last | 0)) { + $$0 = $last; + break L1; + } + if (((HEAP8[$t11$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $first$pn = $t11$0; else { + $$0 = $t11$0; + break L1; + } + } + } + $3 = $first + 1 | 0; + if (($3 | 0) == ($last | 0)) $$0 = $first; else { + $5 = HEAP8[$3 >> 0] | 0; + if ((($5 << 24 >> 24) + -48 | 0) >>> 0 < 10) { + $$0 = $first + 2 | 0; + break; + } + if ($5 << 24 >> 24 == 95) { + $9 = $first + 2 | 0; + if (($9 | 0) == ($last | 0)) $$0 = $first; else { + $t1$016 = $9; + while (1) { + $11 = HEAP8[$t1$016 >> 0] | 0; + if ((($11 << 24 >> 24) + -48 | 0) >>> 0 >= 10) { + $$lcssa = $11; + $t1$016$lcssa = $t1$016; + break; + } + $t1$016 = $t1$016 + 1 | 0; + if (($t1$016 | 0) == ($last | 0)) { + $$0 = $first; + break L1; + } } - $z0215$038 = $px19$040 * $px19$040 + $py20$041 * $py20$041; - $z016$039 = +Math_sqrt(+$z0215$038); - if (!($z016$039 != 0.0)) { - $px19$1 = 0.0; - $py20$1 = 0.0; - break; - } else $i21$042 = $i21$042 + 1 | 0; + return ($$lcssa << 24 >> 24 == 95 ? $t1$016$lcssa + 1 | 0 : $first) | 0; } - } else { - $px19$1 = 0.0; - $py20$1 = 0.0; - } while (0); - $239 = $dist_factor + 16 | 0; - HEAPF64[$ix >> 3] = $px19$1 / +HEAPF64[$239 >> 3] + $206; - HEAPF64[$iy >> 3] = $py20$1 / +HEAPF64[$239 >> 3] + +HEAPF64[$208 >> 3]; - $$0 = 0; + } else $$0 = $first; + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $21 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ((($1 - $5 | 0) / 12 | 0) >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = (($5 - $10 | 0) / 12 | 0) + $__n | 0; + if ($14 >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $19 = ($1 - $17 | 0) / 12 | 0; + if ($19 >>> 0 < 178956970) { + $21 = $19 << 1; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 357913941; + __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEEC2EjjS8_($__v, $$0$i, ((HEAP32[$2 >> 2] | 0) - $17 | 0) / 12 | 0, $this + 8 | 0); + __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEE18__construct_at_endEj($__v, $__n); + __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS6_EE($this, $__v); + __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEED2Ev($__v); + } else __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6appendIPwEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS5_E4typeES9_S9_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$03 = 0, $0 = 0, $1 = 0, $13 = 0, $16 = 0, $17 = 0, $22 = 0, $30 = 0, $33 = 0, $38 = 0, $45 = 0, $8 = 0, $__p$04 = 0; + $0 = $__first; + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $16 = 1; + $17 = ($1 & 255) >>> 1; + $45 = $1; + } else { + $8 = HEAP32[$this >> 2] | 0; + $16 = ($8 & -2) + -1 | 0; + $17 = HEAP32[$this + 4 >> 2] | 0; + $45 = $8 & 255; + } + $13 = $__last - $0 >> 2; + do if ($13) { + if (($16 - $17 | 0) >>> 0 < $13 >>> 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9__grow_byEjjjjjj($this, $16, $17 + $13 - $16 | 0, $17, $17, 0, 0); + $22 = HEAP8[$this >> 0] | 0; + } else $22 = $45; + if (!($22 & 1)) $33 = $this + 4 | 0; else $33 = HEAP32[$this + 8 >> 2] | 0; + $30 = $17 + (($__last - $0 | 0) >>> 2) | 0; + if (($__first | 0) != ($__last | 0)) { + $$03 = $__first; + $__p$04 = $33 + ($17 << 2) | 0; + while (1) { + HEAP32[$__p$04 >> 2] = HEAP32[$$03 >> 2]; + $$03 = $$03 + 4 | 0; + if (($$03 | 0) == ($__last | 0)) break; else $__p$04 = $__p$04 + 4 | 0; + } + } + HEAP32[$33 + ($30 << 2) >> 2] = 0; + $38 = $17 + $13 | 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $38 << 1; + break; + } else { + HEAP32[$this + 4 >> 2] = $38; break; } - default: - $$0 = -1; + } while (0); + return $this | 0; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis4IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0.0, $12 = 0.0, $14 = 0.0, $16 = 0, $18 = 0.0, $2 = 0, $3 = 0, $5 = 0, $7 = 0, $9 = 0.0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 144 | 0; + $1 = $Q + 108 | 0; + $2 = $A + 144 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $1, $2); + $3 = $Q + 180 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($3, $1, $A + 180 | 0); + $5 = $Q + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($5, $1, $A + 216 | 0); + $7 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($7, $1, $A + 252 | 0); + $9 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $9; + $10 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($3, $3); + HEAPF32[$ss + 4 >> 2] = $10; + $12 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($5, $5); + HEAPF32[$ss + 8 >> 2] = $12; + $14 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($7, $7); + HEAPF32[$ss + 12 >> 2] = $14; + $16 = __ZN6vision9MaxIndex4IfEEiPKT_($ss) | 0; + $18 = +HEAPF32[$ss + ($16 << 2) >> 2]; + if ($18 == 0.0) $$0 = 0; else { + $$sum = ($16 * 9 | 0) + 36 | 0; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($2, $A + ($$sum << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$18)); + $$0 = 1; } + STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0$i$i$i = 0, $$0$i$i$i8 = 0, $$02 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $105 = 0, $108 = 0, $109 = 0, $13 = 0, $19 = 0, $2 = 0, $21 = 0, $26 = 0, $3 = 0, $33 = 0, $35 = 0, $40 = 0, $45 = 0, $47 = 0, $52 = 0, $56 = 0, $59 = 0, $60 = 0, $62 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $76 = 0, $78 = 0, $81 = 0, $82 = 0, $86 = 0, $87 = 0, $89 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__v$i$i7 = 0, $c$0$in$lcssa = 0, $c$0$in29 = 0, $isdigittmp = 0, $isdigittmp427 = 0, $isdigittmp431 = 0, $n$0$lcssa = 0, $n$030 = 0, $r = 0, dest = 0, sp = 0, src = 0, stop = 0; +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add, $__p_new_stuff) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_del = $__n_del | 0; + $__n_add = $__n_add | 0; + $__p_new_stuff = $__p_new_stuff | 0; + var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $23 = 0, $31 = 0, $9 = 0; + if ((-18 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 2147483623) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; + } else $17 = -17; + $18 = _malloc($17) | 0; + if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; + if ($__n_add) _memcpy($18 + $__n_copy | 0, $__p_new_stuff | 0, $__n_add | 0) | 0; + $23 = $__old_sz - $__n_del | 0; + if (($23 | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + ($__n_del + $__n_copy) | 0, $23 - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 10) _free($20); + HEAP32[$this + 8 >> 2] = $18; + HEAP32[$this >> 2] = $17 | 1; + $31 = $23 + $__n_add | 0; + HEAP32[$this + 4 >> 2] = $31; + HEAP8[$18 + $31 >> 0] = 0; + return; +} + +function _strcspn($s, $c) { + $s = $s | 0; + $c = $c | 0; + var $$0 = 0, $$027 = 0, $$03$lcssa = 0, $$035 = 0, $0 = 0, $10 = 0, $13 = 0, $17 = 0, $23 = 0, $32 = 0, $byteset = 0, label = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 112 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i7 = sp + 88 | 0; - $r = sp + 76 | 0; - $0 = sp + 64 | 0; - $1 = sp + 40 | 0; - $2 = sp + 16 | 0; - $3 = sp; - L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else { - $isdigittmp = (HEAP8[$first >> 0] | 0) + -48 | 0; - if ($isdigittmp >>> 0 < 10) { - $7 = $first + 1 | 0; - if (($7 | 0) == ($last | 0)) $$02 = $first; else { - $isdigittmp427 = (HEAP8[$7 >> 0] | 0) + -48 | 0; - if ($isdigittmp427 >>> 0 < 10) { - $c$0$in29 = $7; - $isdigittmp431 = $isdigittmp427; - $n$030 = $isdigittmp; - while (1) { - $10 = $c$0$in29 + 1 | 0; - if (($10 | 0) == ($last | 0)) { - $$02 = $first; - break L1; - } - $13 = $isdigittmp431 + ($n$030 * 10 | 0) | 0; - $isdigittmp431 = (HEAP8[$10 >> 0] | 0) + -48 | 0; - if ($isdigittmp431 >>> 0 >= 10) { - $$lcssa = $c$0$in29; - $c$0$in$lcssa = $10; - $n$0$lcssa = $13; - break; - } else { - $c$0$in29 = $10; - $n$030 = $13; - } - } - } else { - $$lcssa = $first; - $c$0$in$lcssa = $7; - $n$0$lcssa = $isdigittmp; + $byteset = sp; + $0 = HEAP8[$c >> 0] | 0; + if (!($0 << 24 >> 24)) label = 3; else if (!(HEAP8[$c + 1 >> 0] | 0)) label = 3; else { + HEAP32[$byteset >> 2] = 0; + HEAP32[$byteset + 4 >> 2] = 0; + HEAP32[$byteset + 8 >> 2] = 0; + HEAP32[$byteset + 12 >> 2] = 0; + HEAP32[$byteset + 16 >> 2] = 0; + HEAP32[$byteset + 20 >> 2] = 0; + HEAP32[$byteset + 24 >> 2] = 0; + HEAP32[$byteset + 28 >> 2] = 0; + $$027 = $c; + $13 = $0; + do { + $17 = $byteset + ((($13 & 255) >>> 5 & 255) << 2) | 0; + HEAP32[$17 >> 2] = HEAP32[$17 >> 2] | 1 << ($13 & 31); + $$027 = $$027 + 1 | 0; + $13 = HEAP8[$$027 >> 0] | 0; + } while ($13 << 24 >> 24 != 0); + $10 = HEAP8[$s >> 0] | 0; + L7 : do if (!($10 << 24 >> 24)) $$03$lcssa = $s; else { + $$035 = $s; + $23 = $10; + while (1) { + if (HEAP32[$byteset + ((($23 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($23 & 31)) { + $$03$lcssa = $$035; + break L7; } - if (($last - $c$0$in$lcssa | 0) >>> 0 < $n$0$lcssa >>> 0) $$02 = $first; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($r, $c$0$in$lcssa, $n$0$lcssa); - $19 = HEAP8[$r >> 0] | 0; - $21 = ($19 & 1) == 0; - $26 = $21 ? ($19 & 255) >>> 1 : HEAP32[$r + 4 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $21 ? $r + 1 | 0 : HEAP32[$r + 8 >> 2] | 0, $26 >>> 0 < 10 ? $26 : 10); - $33 = HEAP8[$0 >> 0] | 0; - $35 = ($33 & 1) == 0; - $40 = $35 ? ($33 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0; - $45 = $40 >>> 0 > 10; - $47 = _memcmp($35 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 13728, $45 ? 10 : $40) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - if (!((($47 | 0) == 0 ? ($40 >>> 0 < 10 ? -1 : $45 & 1) : $47) | 0)) { - $52 = _malloc(32) | 0; - HEAP32[$1 + 8 >> 2] = $52; - HEAP32[$1 >> 2] = 33; - HEAP32[$1 + 4 >> 2] = 21; - dest = $52; - src = 13739; - stop = dest + 21 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$52 + 21 >> 0] = 0; - $56 = $1 + 12 | 0; - HEAP32[$56 >> 2] = 0; - HEAP32[$56 + 4 >> 2] = 0; - HEAP32[$56 + 8 >> 2] = 0; - $59 = $db + 4 | 0; - $60 = HEAP32[$59 >> 2] | 0; - $62 = HEAP32[$db + 8 >> 2] | 0; - if ($60 >>> 0 < $62 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($60, $1); - HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + 24; - } else { - $69 = HEAP32[$db >> 2] | 0; - $70 = $60 - $69 | 0; - $71 = ($70 | 0) / 24 | 0; - $72 = $71 + 1 | 0; - if (($70 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $76 = ($62 - $69 | 0) / 24 | 0; - if ($76 >>> 0 < 1073741823) { - $78 = $76 << 1; - $$0$i$i$i = $78 >>> 0 < $72 >>> 0 ? $72 : $78; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i, $71, $db + 12 | 0); - $81 = $__v$i$i7 + 8 | 0; - $82 = HEAP32[$81 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1); - HEAP32[$81 >> 2] = $82 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1); - } else { - HEAP32[$3 >> 2] = HEAP32[$r >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$r + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$r + 8 >> 2]; - HEAP32[$r >> 2] = 0; - HEAP32[$r + 4 >> 2] = 0; - HEAP32[$r + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3); - $86 = $db + 4 | 0; - $87 = HEAP32[$86 >> 2] | 0; - $89 = HEAP32[$db + 8 >> 2] | 0; - if ($87 >>> 0 < $89 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($87, $2); - HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 24; - } else { - $96 = HEAP32[$db >> 2] | 0; - $97 = $87 - $96 | 0; - $98 = ($97 | 0) / 24 | 0; - $99 = $98 + 1 | 0; - if (($97 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $103 = ($89 - $96 | 0) / 24 | 0; - if ($103 >>> 0 < 1073741823) { - $105 = $103 << 1; - $$0$i$i$i8 = $105 >>> 0 < $99 >>> 0 ? $99 : $105; - } else $$0$i$i$i8 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i8, $98, $db + 12 | 0); - $108 = $__v$i$i7 + 8 | 0; - $109 = HEAP32[$108 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($109, $2); - HEAP32[$108 >> 2] = $109 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - } - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($r); - $$02 = $$lcssa + ($n$0$lcssa + 1) | 0; + $32 = $$035 + 1 | 0; + $23 = HEAP8[$32 >> 0] | 0; + if (!($23 << 24 >> 24)) { + $$03$lcssa = $32; + break; + } else $$035 = $32; + } + } while (0); + $$0 = $$03$lcssa - $s | 0; + } + if ((label | 0) == 3) $$0 = (___strchrnul($s, $0 << 24 >> 24) | 0) - $s | 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE21__grow_by_and_replaceEjjjjjjPKw($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add, $__p_new_stuff) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_del = $__n_del | 0; + $__n_add = $__n_add | 0; + $__p_new_stuff = $__p_new_stuff | 0; + var $10 = 0, $12 = 0, $18 = 0, $19 = 0, $21 = 0, $24 = 0, $32 = 0, $9 = 0; + if ((1073741806 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $21 = $this + 4 | 0; else $21 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 536870887) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $18 = $12 >>> 0 < 2 ? 2 : $12 + 4 & -4; + } else $18 = 1073741807; + $19 = __Znwj($18 << 2) | 0; + if ($__n_copy) _wmemcpy($19, $21, $__n_copy) | 0; + if ($__n_add) _wmemcpy($19 + ($__n_copy << 2) | 0, $__p_new_stuff, $__n_add) | 0; + $24 = $__old_sz - $__n_del | 0; + if (($24 | 0) != ($__n_copy | 0)) _wmemcpy($19 + ($__n_add + $__n_copy << 2) | 0, $21 + ($__n_del + $__n_copy << 2) | 0, $24 - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 1) __ZdlPv($21); + HEAP32[$this + 8 >> 2] = $19; + HEAP32[$this >> 2] = $18 | 1; + $32 = $24 + $__n_add | 0; + HEAP32[$this + 4 >> 2] = $32; + HEAP32[$19 + ($32 << 2) >> 2] = 0; + return; +} + +function __ZN6vision25CheckHomographyHeuristicsEPfii($H, $refWidth, $refHeight) { + $H = $H | 0; + $refWidth = $refWidth | 0; + $refHeight = $refHeight | 0; + var $$0 = 0, $1 = 0.0, $4 = 0.0, $9 = 0.0, $Hinv = 0, $p0p = 0, $p1 = 0, $p1p = 0, $p2 = 0, $p2p = 0, $p3 = 0, $p3p = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 96 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $p0p = sp + 88 | 0; + $p1p = sp + 40 | 0; + $p2p = sp + 32 | 0; + $p3p = sp + 24 | 0; + $Hinv = sp + 48 | 0; + $p1 = sp + 16 | 0; + $p2 = sp + 8 | 0; + $p3 = sp; + if (__ZN6vision16MatrixInverse3x3IfEEbPT_PKS1_S1_($Hinv, $H, 9.999999747378752e-06) | 0) { + $1 = +($refWidth | 0); + HEAPF32[$p1 >> 2] = $1; + HEAPF32[$p1 + 4 >> 2] = 0.0; + HEAPF32[$p2 >> 2] = $1; + $4 = +($refHeight | 0); + HEAPF32[$p2 + 4 >> 2] = $4; + HEAPF32[$p3 >> 2] = 0.0; + HEAPF32[$p3 + 4 >> 2] = $4; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($p0p, $Hinv, 4464); + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($p1p, $Hinv, $p1); + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($p2p, $Hinv, $p2); + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($p3p, $Hinv, $p3); + $9 = +(Math_imul($refHeight, $refWidth) | 0) * .0001; + if (+__ZN6vision20SmallestTriangleAreaIfEET_PKS1_S3_S3_S3_($p0p, $p1p, $p2p, $p3p) < $9) $$0 = 0; else $$0 = __ZN6vision19QuadrilateralConvexIfEEbPKT_S3_S3_S3_($p0p, $p1p, $p2p, $p3p) | 0; + } else $$0 = 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision14ExtractFREAK84EPhPKNS_25GaussianScaleSpacePyramidERKNS_12FeaturePointEPKfS8_S8_S8_S8_S8_ffffffff($desc, $pyramid, $point, $points_ring0, $points_ring1, $points_ring2, $points_ring3, $points_ring4, $points_ring5, $sigma_center, $sigma_ring0, $sigma_ring1, $sigma_ring2, $sigma_ring3, $sigma_ring4, $sigma_ring5, $expansion_factor) { + $desc = $desc | 0; + $pyramid = $pyramid | 0; + $point = $point | 0; + $points_ring0 = $points_ring0 | 0; + $points_ring1 = $points_ring1 | 0; + $points_ring2 = $points_ring2 | 0; + $points_ring3 = $points_ring3 | 0; + $points_ring4 = $points_ring4 | 0; + $points_ring5 = $points_ring5 | 0; + $sigma_center = +$sigma_center; + $sigma_ring0 = +$sigma_ring0; + $sigma_ring1 = +$sigma_ring1; + $sigma_ring2 = +$sigma_ring2; + $sigma_ring3 = +$sigma_ring3; + $sigma_ring4 = +$sigma_ring4; + $sigma_ring5 = +$sigma_ring5; + $expansion_factor = +$expansion_factor; + var $samples = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 160 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $samples = sp; + __ZN6vision20SamplePyramidFREAK84EPfPKNS_25GaussianScaleSpacePyramidERKNS_12FeaturePointEPKfS8_S8_S8_S8_S8_ffffffff($samples, $pyramid, $point, $points_ring0, $points_ring1, $points_ring2, $points_ring3, $points_ring4, $points_ring5, $sigma_center, $sigma_ring0, $sigma_ring1, $sigma_ring2, $sigma_ring3, $sigma_ring4, $sigma_ring5, $expansion_factor) | 0; + __ZN6vision14CompareFREAK84EPhPKf($desc, $samples); + STACKTOP = sp; + return 1; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $15 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = (((HEAP32[$1 >> 2] | 0) - $3 | 0) / 20 | 0) + 1 | 0; + if ($8 >>> 0 > 214748364) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $15 = ((HEAP32[$this + 8 >> 2] | 0) - $13 | 0) / 20 | 0; + if ($15 >>> 0 < 107374182) { + $17 = $15 << 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 214748364; + __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, ((HEAP32[$1 >> 2] | 0) - $13 | 0) / 20 | 0, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + HEAP32[$25 >> 2] = HEAP32[$__x >> 2]; + HEAP32[$25 + 4 >> 2] = HEAP32[$__x + 4 >> 2]; + HEAP32[$25 + 8 >> 2] = HEAP32[$__x + 8 >> 2]; + HEAP32[$25 + 12 >> 2] = HEAP32[$__x + 12 >> 2]; + HEAP32[$25 + 16 >> 2] = HEAP32[$__x + 16 >> 2]; + HEAP32[$24 >> 2] = $25 + 20; + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add, $__p_new_stuff) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_del = $__n_del | 0; + $__n_add = $__n_add | 0; + $__p_new_stuff = $__p_new_stuff | 0; + var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $23 = 0, $31 = 0, $9 = 0; + if ((-18 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 2147483623) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; + } else $17 = -17; + $18 = __Znwj($17) | 0; + if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; + if ($__n_add) _memcpy($18 + $__n_copy | 0, $__p_new_stuff | 0, $__n_add | 0) | 0; + $23 = $__old_sz - $__n_del | 0; + if (($23 | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + ($__n_del + $__n_copy) | 0, $23 - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 10) __ZdlPv($20); + HEAP32[$this + 8 >> 2] = $18; + HEAP32[$this >> 2] = $17 | 1; + $31 = $23 + $__n_add | 0; + HEAP32[$this + 4 >> 2] = $31; + HEAP8[$18 + $31 >> 0] = 0; + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $14 = 0, $22 = 0, $24 = 0, $29 = 0, $31 = 0, $5 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 8 >> 2] & 127]($1) | 0; + $6 = HEAP8[$5 >> 0] | 0; + if (!($6 & 1)) $24 = ($6 & 255) >>> 1; else $24 = HEAP32[$5 + 4 >> 2] | 0; + $14 = HEAP8[$5 + 12 >> 0] | 0; + if (!($14 & 1)) $22 = ($14 & 255) >>> 1; else $22 = HEAP32[$5 + 16 >> 2] | 0; + do if (($24 | 0) == (0 - $22 | 0)) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; else { + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $29 = __ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $5, $5 + 24 | 0, $__ct, $__err, 0) | 0; + $31 = HEAP32[$__h >> 2] | 0; + if (($29 | 0) == ($5 | 0) & ($31 | 0) == 12) { + HEAP32[$__h >> 2] = 0; + break; + } + if (($31 | 0) < 12 & ($29 - $5 | 0) == 12) HEAP32[$__h >> 2] = $31 + 12; + } while (0); + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_am_pmERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $14 = 0, $22 = 0, $24 = 0, $29 = 0, $31 = 0, $5 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 8 >> 2] & 127]($1) | 0; + $6 = HEAP8[$5 >> 0] | 0; + if (!($6 & 1)) $24 = ($6 & 255) >>> 1; else $24 = HEAP32[$5 + 4 >> 2] | 0; + $14 = HEAP8[$5 + 12 >> 0] | 0; + if (!($14 & 1)) $22 = ($14 & 255) >>> 1; else $22 = HEAP32[$5 + 16 >> 2] | 0; + do if (($24 | 0) == (0 - $22 | 0)) HEAP32[$__err >> 2] = HEAP32[$__err >> 2] | 4; else { + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $29 = __ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $5, $5 + 24 | 0, $__ct, $__err, 0) | 0; + $31 = HEAP32[$__h >> 2] | 0; + if (($29 | 0) == ($5 | 0) & ($31 | 0) == 12) { + HEAP32[$__h >> 2] = 0; + break; + } + if (($31 | 0) < 12 & ($29 - $5 | 0) == 12) HEAP32[$__h >> 2] = $31 + 12; + } while (0); + STACKTOP = sp; + return; +} + +function ___strchrnul($s, $c) { + $s = $s | 0; + $c = $c | 0; + var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $11 = 0, $15 = 0, $16 = 0, $22 = 0, $23 = 0, $29 = 0, $36 = 0, $37 = 0, $5 = 0, $8 = 0, $w$0$lcssa = 0, $w$08 = 0; + $0 = $c & 255; + L1 : do if (!$0) $$0 = $s + (_strlen($s) | 0) | 0; else { + if (!($s & 3)) $$02$lcssa = $s; else { + $5 = $c & 255; + $$0211 = $s; + while (1) { + $8 = HEAP8[$$0211 >> 0] | 0; + if ($8 << 24 >> 24 == 0 ? 1 : $8 << 24 >> 24 == $5 << 24 >> 24) { + $$0 = $$0211; + break L1; } + $11 = $$0211 + 1 | 0; + if (!($11 & 3)) { + $$02$lcssa = $11; + break; + } else $$0211 = $11; } - } else $$02 = $first; + } + $15 = Math_imul($0, 16843009) | 0; + $16 = HEAP32[$$02$lcssa >> 2] | 0; + L10 : do if (!(($16 & -2139062144 ^ -2139062144) & $16 + -16843009)) { + $23 = $16; + $w$08 = $$02$lcssa; + while (1) { + $22 = $23 ^ $15; + if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) { + $w$0$lcssa = $w$08; + break L10; + } + $29 = $w$08 + 4 | 0; + $23 = HEAP32[$29 >> 2] | 0; + if (($23 & -2139062144 ^ -2139062144) & $23 + -16843009) { + $w$0$lcssa = $29; + break; + } else $w$08 = $29; + } + } else $w$0$lcssa = $$02$lcssa; while (0); + $36 = $c & 255; + $$1 = $w$0$lcssa; + while (1) { + $37 = HEAP8[$$1 >> 0] | 0; + if ($37 << 24 >> 24 == 0 ? 1 : $37 << 24 >> 24 == $36 << 24 >> 24) { + $$0 = $$1; + break; + } else $$1 = $$1 + 1 | 0; + } } while (0); + return $$0 | 0; +} + +function _arGetTransMatRobust($handle, $initConv, $pos2d, $pos3d, $num, $conv) { + $handle = $handle | 0; + $initConv = $initConv | 0; + $pos2d = $pos2d | 0; + $pos3d = $pos3d | 0; + $num = $num | 0; + $conv = $conv | 0; + var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $data = sp + 20 | 0; + $err = sp; + $1 = _malloc($num << 4) | 0; + HEAP32[$data >> 2] = $1; + if (!$1) { + _arLog(3, 21359, sp + 8 | 0); + _exit(1); + } + $4 = _malloc($num * 24 | 0) | 0; + $5 = $data + 4 | 0; + HEAP32[$5 >> 2] = $4; + if (!$4) { + _arLog(3, 21359, sp + 16 | 0); + _exit(1); + } + if (($num | 0) > 0) { + $i$01 = 0; + do { + HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3]; + HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3]; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) < ($num | 0)); + } + HEAP32[$data + 8 >> 2] = $num; + if ((_icpPointRobust(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8; + _free(HEAP32[$data >> 2] | 0); + _free(HEAP32[$5 >> 2] | 0); STACKTOP = sp; - return $$02 | 0; + return +(+HEAPF64[$err >> 3]); } -function _arPattLoadFromBuffer($pattHandle, $buffer) { - $pattHandle = $pattHandle | 0; - $buffer = $buffer | 0; - var $$0 = 0, $$lcssa = 0, $$lcssa36 = 0, $$pre = 0, $$pre17 = 0, $$pre18 = 0, $$pre19 = 0, $10 = 0, $101 = 0.0, $105 = 0, $13 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $29 = 0, $30 = 0, $31 = 0, $36 = 0, $4 = 0, $43 = 0, $46 = 0, $47 = 0, $53 = 0, $56 = 0, $6 = 0, $63 = 0, $66 = 0, $72 = 0, $73 = 0, $75 = 0, $77 = 0, $83 = 0.0, $91 = 0, $92 = 0, $94 = 0, $96 = 0, $buffPtr$064 = 0, $buffPtr$151 = 0, $buffPtr$2$lcssa = 0, $buffPtr$2$lcssa$lcssa = 0, $buffPtr$245 = 0, $buffPtr$3$lcssa = 0, $buffPtr$339 = 0, $h$063 = 0, $i$0$lcssa = 0, $i$065 = 0, $i$152 = 0, $i$258 = 0, $i1$037 = 0, $i2$042 = 0, $i3$048 = 0, $l$050 = 0, $l$1$lcssa = 0, $l$1$lcssa$lcssa = 0, $l$144 = 0, $l$2$lcssa = 0, $l$238 = 0, $m$0$lcssa = 0, $m$053 = 0, $m$1$lcssa = 0, $m$159 = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0; +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i1 = 0, $$pre$i = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $19 = 0, $22 = 0, $4 = 0, $5 = 0, $__v = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer5 = sp + 24 | 0; - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer1 = sp + 8 | 0; - do if (!$pattHandle) { - _arLog(3, 4649, sp); - $$0 = -1; - } else { - if (!$buffer) { - _arLog(3, 4674, $vararg_buffer1); - $$0 = -1; - break; - } - $2 = $pattHandle + 8 | 0; - $4 = HEAP32[$pattHandle + 4 >> 2] | 0; - L7 : do if (($4 | 0) > 0) { - $6 = HEAP32[$2 >> 2] | 0; - $i$065 = 0; - while (1) { - if (!(HEAP32[$6 + ($i$065 << 2) >> 2] | 0)) { - $i$0$lcssa = $i$065; - break L7; - } - $10 = $i$065 + 1 | 0; - if (($10 | 0) < ($4 | 0)) $i$065 = $10; else { - $i$0$lcssa = $10; + $__v = sp; + $4 = HEAP32[$this + 8 >> 2] | 0; + $5 = HEAP32[$this + 4 >> 2] | 0; + if ($4 - $5 >> 2 >>> 0 < $__n >>> 0) { + $11 = HEAP32[$this >> 2] | 0; + $13 = $5 - $11 >> 2; + $14 = $13 + $__n | 0; + if ($14 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $16 = $4 - $11 | 0; + if ($16 >> 2 >>> 0 < 536870911) { + $19 = $16 >> 1; + $$0$i1 = $19 >>> 0 < $14 >>> 0 ? $14 : $19; + } else $$0$i1 = 1073741823; + __ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEEC2EjjS6_($__v, $$0$i1, $13, $this + 16 | 0); + $22 = $__v + 8 | 0; + $$pre$i = HEAP32[$22 >> 2] | 0; + _memset($$pre$i | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$22 >> 2] = $$pre$i + ($__n << 2); + __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEED2Ev($__v); + } else __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPK2tmcc($this, $__s, $0, $1, $__tm, $__fmt, $__mod) { + $this = $this | 0; + $__s = $__s | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $__mod = $__mod | 0; + var $$0$i$i2 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $22 = 0, $25 = 0, $4 = 0, $6 = 0, $8 = 0, $__nar = 0, $__ne = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__nar = sp + 4 | 0; + $__ne = sp; + HEAP32[$__ne >> 2] = $__nar + 100; + __ZNKSt3__110__time_put8__do_putEPcRS1_PK2tmcc($this + 8 | 0, $__nar, $__ne, $__tm, $__fmt, $__mod); + $4 = HEAP32[$__ne >> 2] | 0; + $6 = HEAP32[$__s >> 2] | 0; + if (($__nar | 0) == ($4 | 0)) $$lcssa = $6; else { + $$0$i$i2 = $__nar; + $10 = $6; + while (1) { + $8 = HEAP8[$$0$i$i2 >> 0] | 0; + do if (!$10) $25 = 0; else { + $11 = $10 + 24 | 0; + $12 = HEAP32[$11 >> 2] | 0; + if (($12 | 0) == (HEAP32[$10 + 28 >> 2] | 0)) { + $22 = (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$10 >> 2] | 0) + 52 >> 2] & 63]($10, $8 & 255) | 0) == -1; + $25 = $22 ? 0 : $10; break; - } - } - } else $i$0$lcssa = 0; while (0); - if (($i$0$lcssa | 0) == ($4 | 0)) $$0 = -1; else { - $13 = ___strdup($buffer) | 0; - if (!$13) { - _arLog(3, 4719, $vararg_buffer3); - $$0 = -1; - break; - } - $16 = $pattHandle + 28 | 0; - $17 = $i$0$lcssa << 2; - $18 = $pattHandle + 12 | 0; - $19 = $pattHandle + 20 | 0; - $20 = $pattHandle + 16 | 0; - $21 = $pattHandle + 24 | 0; - $buffPtr$064 = _strtok($13, 4742) | 0; - $h$063 = 0; - L17 : while (1) { - $22 = $h$063 + $17 | 0; - $buffPtr$151 = $buffPtr$064; - $i3$048 = 0; - $l$050 = 0; - while (1) { - $23 = ($i3$048 | 0) == 0; - $24 = ($i3$048 | 0) == 2; - $$pre18 = HEAP32[$16 >> 2] | 0; - if (($$pre18 | 0) > 0) { - $27 = $$pre18; - $buffPtr$245 = $buffPtr$151; - $i2$042 = 0; - $l$144 = $l$050; - while (1) { - if (($27 | 0) > 0) { - $buffPtr$339 = $buffPtr$245; - $i1$037 = 0; - $l$238 = $l$144; - while (1) { - if (!$buffPtr$339) { - label = 17; - break L17; - } - $29 = _atoi($buffPtr$339) | 0; - $30 = _strtok(0, 4742) | 0; - $31 = 255 - $29 | 0; - $36 = (((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0) * 3 | 0) + $i3$048 | 0; - HEAP32[(HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0) + ($36 << 2) >> 2] = $31; - $43 = (Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0; - $46 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0; - $47 = $46 + ($43 << 2) | 0; - if ($23) HEAP32[$47 >> 2] = $31; else { - HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $31; - if ($24) { - $53 = $46 + ((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 << 2) | 0; - HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) / 3 | 0; - } - } - $56 = $31 + $l$238 | 0; - $i1$037 = $i1$037 + 1 | 0; - $$pre19 = HEAP32[$16 >> 2] | 0; - if (($i1$037 | 0) >= ($$pre19 | 0)) { - $$lcssa = $$pre19; - $buffPtr$3$lcssa = $30; - $l$2$lcssa = $56; - break; - } else { - $buffPtr$339 = $30; - $l$238 = $56; - } - } - } else { - $$lcssa = $27; - $buffPtr$3$lcssa = $buffPtr$245; - $l$2$lcssa = $l$144; - } - $i2$042 = $i2$042 + 1 | 0; - if (($i2$042 | 0) >= ($$lcssa | 0)) { - $buffPtr$2$lcssa = $buffPtr$3$lcssa; - $l$1$lcssa = $l$2$lcssa; - break; - } else { - $27 = $$lcssa; - $buffPtr$245 = $buffPtr$3$lcssa; - $l$144 = $l$2$lcssa; - } - } - } else { - $buffPtr$2$lcssa = $buffPtr$151; - $l$1$lcssa = $l$050; - } - $i3$048 = $i3$048 + 1 | 0; - if (($i3$048 | 0) >= 3) { - $buffPtr$2$lcssa$lcssa = $buffPtr$2$lcssa; - $l$1$lcssa$lcssa = $l$1$lcssa; - break; - } else { - $buffPtr$151 = $buffPtr$2$lcssa; - $l$050 = $l$1$lcssa; - } - } - $63 = HEAP32[$16 >> 2] | 0; - $66 = ($l$1$lcssa$lcssa | 0) / (Math_imul($63 * 3 | 0, $63) | 0) | 0; - if ((Math_imul($63 * 3 | 0, $63) | 0) > 0) { - $72 = HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0; - $i$152 = 0; - $m$053 = 0; - while (1) { - $73 = $72 + ($i$152 << 2) | 0; - $75 = (HEAP32[$73 >> 2] | 0) - $66 | 0; - HEAP32[$73 >> 2] = $75; - $77 = (Math_imul($75, $75) | 0) + $m$053 | 0; - $i$152 = $i$152 + 1 | 0; - $$pre = HEAP32[$16 >> 2] | 0; - if (($i$152 | 0) >= (Math_imul($$pre * 3 | 0, $$pre) | 0)) { - $$lcssa36 = $$pre; - $m$0$lcssa = $77; - break; - } else $m$053 = $77; - } } else { - $$lcssa36 = $63; - $m$0$lcssa = 0; - } - $83 = +Math_sqrt(+(+($m$0$lcssa | 0))); - HEAPF64[(HEAP32[$20 >> 2] | 0) + ($22 << 3) >> 3] = $83 == 0.0 ? 1.0e-07 : $83; - if (!(Math_imul($$lcssa36, $$lcssa36) | 0)) $m$1$lcssa = 0; else { - $91 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0; - $i$258 = 0; - $m$159 = 0; - while (1) { - $92 = $91 + ($i$258 << 2) | 0; - $94 = (HEAP32[$92 >> 2] | 0) - $66 | 0; - HEAP32[$92 >> 2] = $94; - $96 = (Math_imul($94, $94) | 0) + $m$159 | 0; - $i$258 = $i$258 + 1 | 0; - $$pre17 = HEAP32[$16 >> 2] | 0; - if (($i$258 | 0) >= (Math_imul($$pre17, $$pre17) | 0)) { - $m$1$lcssa = $96; - break; - } else $m$159 = $96; - } - } - $101 = +Math_sqrt(+(+($m$1$lcssa | 0))); - HEAPF64[(HEAP32[$21 >> 2] | 0) + ($22 << 3) >> 3] = $101 == 0.0 ? 1.0e-07 : $101; - $105 = $h$063 + 1 | 0; - if (($105 | 0) < 4) { - $buffPtr$064 = $buffPtr$2$lcssa$lcssa; - $h$063 = $105; - } else { - label = 32; + HEAP32[$11 >> 2] = $12 + 1; + HEAP8[$12 >> 0] = $8; + $25 = $10; break; } - } - if ((label | 0) == 17) { - _arLog(3, 4747, $vararg_buffer5); - _free($13); - $$0 = -1; - break; - } else if ((label | 0) == 32) { - _free($13); - HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$0$lcssa << 2) >> 2] = 1; - HEAP32[$pattHandle >> 2] = (HEAP32[$pattHandle >> 2] | 0) + 1; - $$0 = $i$0$lcssa; + } while (0); + $$0$i$i2 = $$0$i$i2 + 1 | 0; + if (($$0$i$i2 | 0) == ($4 | 0)) { + $$lcssa = $25; break; - } + } else $10 = $25; } - } while (0); + } STACKTOP = sp; - return $$0 | 0; + return $$lcssa | 0; } -function _qsort($base, $nel, $width, $cmp) { - $base = $base | 0; - $nel = $nel | 0; - $width = $width | 0; - $cmp = $cmp | 0; - var $$0$i = 0, $$0$i30 = 0, $$02$i$i = 0, $$02$i3$i = 0, $$lcssa = 0, $$lcssa57 = 0, $$phi$trans$insert$i = 0, $$pre1$i = 0, $$pre1$i6 = 0, $$pre1$i9 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0, $111 = 0, $14 = 0, $15 = 0, $17 = 0, $19 = 0, $23 = 0, $26 = 0, $36 = 0, $39 = 0, $41 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $51 = 0, $53 = 0, $58 = 0, $59 = 0, $63 = 0, $68 = 0, $72 = 0, $79 = 0, $8 = 0, $8$phi = 0, $81 = 0, $82 = 0, $84 = 0, $87 = 0, $9 = 0, $91 = 0, $93 = 0, $94 = 0, $95 = 0, $head$0$lcssa = 0, $head$036 = 0, $head$1$be = 0, $head$153 = 0, $i$0 = 0, $lp = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, $p = 0, $pshift$0$lcssa = 0, $pshift$037 = 0, $pshift$1 = 0, $pshift$2$be = 0, $pshift$254 = 0, label = 0, sp = 0; +function _arGetTransMat($handle, $initConv, $pos2d, $pos3d, $num, $conv) { + $handle = $handle | 0; + $initConv = $initConv | 0; + $pos2d = $pos2d | 0; + $pos3d = $pos3d | 0; + $num = $num | 0; + $conv = $conv | 0; + var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 208 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $lp = sp + 8 | 0; - $p = sp; - $0 = Math_imul($width, $nel) | 0; - $1 = $p; - HEAP32[$1 >> 2] = 1; - HEAP32[$1 + 4 >> 2] = 0; - if ($0) { - $$sum = $0 - $width | 0; - HEAP32[$lp + 4 >> 2] = $width; - HEAP32[$lp >> 2] = $width; - $10 = $width; - $8 = $width; - $i$0 = 2; + $data = sp + 20 | 0; + $err = sp; + $1 = _malloc($num << 4) | 0; + HEAP32[$data >> 2] = $1; + if (!$1) { + _arLog(3, 21359, sp + 8 | 0); + _exit(1); + } + $4 = _malloc($num * 24 | 0) | 0; + $5 = $data + 4 | 0; + HEAP32[$5 >> 2] = $4; + if (!$4) { + _arLog(3, 21359, sp + 16 | 0); + _exit(1); + } + if (($num | 0) > 0) { + $i$01 = 0; + do { + HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3]; + HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3]; + HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3]; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) < ($num | 0)); + } + HEAP32[$data + 8 >> 2] = $num; + if ((_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8; + _free(HEAP32[$data >> 2] | 0); + _free(HEAP32[$5 >> 2] | 0); + STACKTOP = sp; + return +(+HEAPF64[$err >> 3]); +} + +function __ZNKSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPK2tmcc($this, $__s, $0, $1, $__tm, $__fmt, $__mod) { + $this = $this | 0; + $__s = $__s | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $__mod = $__mod | 0; + var $$0$i$i$i$i = 0, $$0$i$i2 = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $24 = 0, $4 = 0, $6 = 0, $8 = 0, $__nar = 0, $__ne = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 416 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__nar = sp + 8 | 0; + $__ne = sp; + HEAP32[$__ne >> 2] = $__nar + 400; + __ZNKSt3__110__time_put8__do_putEPwRS1_PK2tmcc($this + 8 | 0, $__nar, $__ne, $__tm, $__fmt, $__mod); + $4 = HEAP32[$__ne >> 2] | 0; + $6 = HEAP32[$__s >> 2] | 0; + if (($__nar | 0) == ($4 | 0)) $$lcssa = $6; else { + $$0$i$i2 = $__nar; + $10 = $6; while (1) { - $9 = $8 + $width + $10 | 0; - HEAP32[$lp + ($i$0 << 2) >> 2] = $9; - if ($9 >>> 0 < $0 >>> 0) { - $8$phi = $10; - $10 = $9; - $i$0 = $i$0 + 1 | 0; - $8 = $8$phi; - } else break; + $8 = HEAP32[$$0$i$i2 >> 2] | 0; + if (!$10) $24 = 0; else { + $11 = $10 + 24 | 0; + $12 = HEAP32[$11 >> 2] | 0; + if (($12 | 0) == (HEAP32[$10 + 28 >> 2] | 0)) $$0$i$i$i$i = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$10 >> 2] | 0) + 52 >> 2] & 63]($10, $8) | 0; else { + HEAP32[$11 >> 2] = $12 + 4; + HEAP32[$12 >> 2] = $8; + $$0$i$i$i$i = $8; + } + $24 = ($$0$i$i$i$i | 0) == -1 ? 0 : $10; + } + $$0$i$i2 = $$0$i$i2 + 4 | 0; + if (($$0$i$i2 | 0) == ($4 | 0)) { + $$lcssa = $24; + break; + } else $10 = $24; } - $14 = 0 - $width | 0; - $15 = $base + $$sum | 0; - $$phi$trans$insert$i = $p + 4 | 0; - if (($$sum | 0) > 0) { - $17 = $15; - $19 = 1; - $head$036 = $base; - $pshift$037 = 1; - while (1) { - do if (($19 & 3 | 0) == 3) { - _sift($head$036, $width, $cmp, $pshift$037, $lp); - $$pre1$i = HEAP32[$$phi$trans$insert$i >> 2] | 0; - $23 = $$pre1$i << 30 | (HEAP32[$p >> 2] | 0) >>> 2; - HEAP32[$p >> 2] = $23; - HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i >>> 2; - $48 = $23; - $pshift$1 = $pshift$037 + 2 | 0; - } else { - $26 = $pshift$037 + -1 | 0; - if ((HEAP32[$lp + ($26 << 2) >> 2] | 0) >>> 0 < ($17 - $head$036 | 0) >>> 0) _sift($head$036, $width, $cmp, $pshift$037, $lp); else _trinkle($head$036, $width, $cmp, $p, $pshift$037, 0, $lp); - if (($pshift$037 | 0) == 1) { - $$pre1$i6 = HEAP32[$p >> 2] | 0; - HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i6 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1; - $36 = $$pre1$i6 << 1; - HEAP32[$p >> 2] = $36; - $48 = $36; - $pshift$1 = 0; - break; - } - if ($26 >>> 0 > 31) { - $39 = HEAP32[$p >> 2] | 0; - HEAP32[$$phi$trans$insert$i >> 2] = $39; - HEAP32[$p >> 2] = 0; - $$0$i = $pshift$037 + -33 | 0; - $41 = $39; - $44 = 0; - } else { - $$0$i = $26; - $41 = HEAP32[$$phi$trans$insert$i >> 2] | 0; - $44 = HEAP32[$p >> 2] | 0; - } - HEAP32[$$phi$trans$insert$i >> 2] = $44 >>> (32 - $$0$i | 0) | $41 << $$0$i; - $46 = $44 << $$0$i; - HEAP32[$p >> 2] = $46; - $48 = $46; - $pshift$1 = 1; - } while (0); - $19 = $48 | 1; - HEAP32[$p >> 2] = $19; - $49 = $head$036 + $width | 0; - if ($49 >>> 0 >= $15 >>> 0) { - $head$0$lcssa = $49; - $pshift$0$lcssa = $pshift$1; - break; - } else { - $head$036 = $49; - $pshift$037 = $pshift$1; - } - } - } else { - $head$0$lcssa = $base; - $pshift$0$lcssa = 1; + } + STACKTOP = sp; + return $$lcssa | 0; +} + +function __ZN6vision5Swap9IfEEvPT_S2_($a, $b) { + $a = $a | 0; + $b = $b | 0; + var $0 = 0, $10 = 0, $11 = 0, $12 = 0, $14 = 0, $15 = 0, $16 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0; + $0 = HEAP32[$a >> 2] | 0; + $2 = $a + 4 | 0; + HEAP32[$a >> 2] = HEAP32[$b >> 2]; + $3 = $b + 4 | 0; + HEAP32[$b >> 2] = $0; + $4 = HEAP32[$2 >> 2] | 0; + $6 = $a + 8 | 0; + HEAP32[$2 >> 2] = HEAP32[$3 >> 2]; + $7 = $b + 8 | 0; + HEAP32[$3 >> 2] = $4; + $8 = HEAP32[$6 >> 2] | 0; + $10 = $a + 12 | 0; + HEAP32[$6 >> 2] = HEAP32[$7 >> 2]; + $11 = $b + 12 | 0; + HEAP32[$7 >> 2] = $8; + $12 = HEAP32[$10 >> 2] | 0; + $14 = $a + 16 | 0; + HEAP32[$10 >> 2] = HEAP32[$11 >> 2]; + $15 = $b + 16 | 0; + HEAP32[$11 >> 2] = $12; + $16 = HEAP32[$14 >> 2] | 0; + $18 = $a + 20 | 0; + HEAP32[$14 >> 2] = HEAP32[$15 >> 2]; + $19 = $b + 20 | 0; + HEAP32[$15 >> 2] = $16; + $20 = HEAP32[$18 >> 2] | 0; + $22 = $a + 24 | 0; + HEAP32[$18 >> 2] = HEAP32[$19 >> 2]; + $23 = $b + 24 | 0; + HEAP32[$19 >> 2] = $20; + $24 = HEAP32[$22 >> 2] | 0; + $26 = $a + 28 | 0; + HEAP32[$22 >> 2] = HEAP32[$23 >> 2]; + $27 = $b + 28 | 0; + HEAP32[$23 >> 2] = $24; + $28 = HEAP32[$26 >> 2] | 0; + $30 = $a + 32 | 0; + HEAP32[$26 >> 2] = HEAP32[$27 >> 2]; + $31 = $b + 32 | 0; + HEAP32[$27 >> 2] = $28; + $32 = HEAP32[$30 >> 2] | 0; + HEAP32[$30 >> 2] = HEAP32[$31 >> 2]; + HEAP32[$31 >> 2] = $32; + return; +} + +function ___fwritex($s, $l, $f) { + $s = $s | 0; + $l = $l | 0; + $f = $f | 0; + var $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $19 = 0, $29 = 0, $5 = 0, $6 = 0, $8 = 0, $i$0 = 0, $i$0$lcssa10 = 0, $i$1 = 0, label = 0; + $0 = $f + 16 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) if (!(___towrite($f) | 0)) { + $8 = HEAP32[$0 >> 2] | 0; + label = 4; + } else $$0 = 0; else { + $8 = $1; + label = 4; + } + L4 : do if ((label | 0) == 4) { + $5 = $f + 20 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (($8 - $6 | 0) >>> 0 < $l >>> 0) { + $$0 = FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $s, $l) | 0; + break; } - _trinkle($head$0$lcssa, $width, $cmp, $p, $pshift$0$lcssa, 0, $lp); - $51 = $p + 4 | 0; - $53 = HEAP32[$p >> 2] | 0; - if (!(($pshift$0$lcssa | 0) == 1 & ($53 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0)) { - $59 = $53; - $head$153 = $head$0$lcssa; - $pshift$254 = $pshift$0$lcssa; - while (1) { - if (($pshift$254 | 0) < 2) { - $58 = $59 + -1 | 0; - do if (!$58) { - $81 = 32; - label = 30; - } else { - if (!($58 & 1)) { - $$02$i$i = $58; - $nTrailingZeros$03$i$i = 0; - while (1) { - $63 = $nTrailingZeros$03$i$i + 1 | 0; - $$02$i$i = $$02$i$i >>> 1; - if ($$02$i$i & 1) { - $$lcssa = $63; - break; - } else $nTrailingZeros$03$i$i = $63; - } - if (!$$lcssa) label = 24; else $79 = $$lcssa; - } else label = 24; - if ((label | 0) == 24) { - label = 0; - $68 = HEAP32[$$phi$trans$insert$i >> 2] | 0; - if (!$68) { - $81 = 64; - label = 30; - break; - } - if (!($68 & 1)) { - $$02$i3$i = $68; - $nTrailingZeros$03$i2$i = 0; - } else { - $$0$i30 = 0; - $84 = $59; - $87 = $68; - $91 = 0; - break; - } - while (1) { - $72 = $nTrailingZeros$03$i2$i + 1 | 0; - $$02$i3$i = $$02$i3$i >>> 1; - if ($$02$i3$i & 1) { - $$lcssa57 = $72; - $nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i; - break; - } else $nTrailingZeros$03$i2$i = $72; - } - if (!$$lcssa57) { - $$0$i30 = 0; - $84 = $59; - $87 = $68; - $91 = 0; - break; - } else $79 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0; - } - if ($79 >>> 0 > 31) { - $81 = $79; - label = 30; - } else { - $$0$i30 = $79; - $84 = $59; - $87 = HEAP32[$$phi$trans$insert$i >> 2] | 0; - $91 = $79; - } - } while (0); - if ((label | 0) == 30) { - label = 0; - $82 = HEAP32[$$phi$trans$insert$i >> 2] | 0; - HEAP32[$p >> 2] = $82; - HEAP32[$$phi$trans$insert$i >> 2] = 0; - $$0$i30 = $81 + -32 | 0; - $84 = $82; - $87 = 0; - $91 = $81; - } - HEAP32[$p >> 2] = $87 << 32 - $$0$i30 | $84 >>> $$0$i30; - HEAP32[$$phi$trans$insert$i >> 2] = $87 >>> $$0$i30; - $head$1$be = $head$153 + $14 | 0; - $pshift$2$be = $91 + $pshift$254 | 0; - } else { - $93 = $59 >>> 30; - $94 = $93 | HEAP32[$$phi$trans$insert$i >> 2] << 2; - $95 = $pshift$254 + -2 | 0; - HEAP32[$p >> 2] = ($59 << 1 & 2147483646 | $93 << 31) ^ 3; - HEAP32[$$phi$trans$insert$i >> 2] = $94 >>> 1; - _trinkle($head$153 + (0 - ((HEAP32[$lp + ($95 << 2) >> 2] | 0) + $width)) | 0, $width, $cmp, $p, $pshift$254 + -1 | 0, 1, $lp); - $$pre1$i9 = HEAP32[$p >> 2] | 0; - HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i9 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1; - HEAP32[$p >> 2] = $$pre1$i9 << 1 | 1; - $111 = $head$153 + $14 | 0; - _trinkle($111, $width, $cmp, $p, $95, 1, $lp); - $head$1$be = $111; - $pshift$2$be = $95; - } - $59 = HEAP32[$p >> 2] | 0; - if (($pshift$2$be | 0) == 1 & ($59 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0) break; else { - $head$153 = $head$1$be; - $pshift$254 = $pshift$2$be; + L9 : do if ((HEAP8[$f + 75 >> 0] | 0) > -1) { + $i$0 = $l; + while (1) { + if (!$i$0) { + $$01 = $l; + $$02 = $s; + $29 = $6; + $i$1 = 0; + break L9; } + $19 = $i$0 + -1 | 0; + if ((HEAP8[$s + $19 >> 0] | 0) == 10) { + $i$0$lcssa10 = $i$0; + break; + } else $i$0 = $19; } - } + if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $s, $i$0$lcssa10) | 0) >>> 0 < $i$0$lcssa10 >>> 0) { + $$0 = $i$0$lcssa10; + break L4; + } + $$01 = $l - $i$0$lcssa10 | 0; + $$02 = $s + $i$0$lcssa10 | 0; + $29 = HEAP32[$5 >> 2] | 0; + $i$1 = $i$0$lcssa10; + } else { + $$01 = $l; + $$02 = $s; + $29 = $6; + $i$1 = 0; + } while (0); + _memcpy($29 | 0, $$02 | 0, $$01 | 0) | 0; + HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + $$01; + $$0 = $i$1 + $$01 | 0; + } while (0); + return $$0 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE8__rehashEj($this, $28); + } + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE8__rehashEj($this, $28); } + return; +} + +function __ZN6vision21DenormalizeHomographyIfEEvPT_PKS1_S1_S4_S1_S4_($Hp, $H, $s, $t, $sp, $tp) { + $Hp = $Hp | 0; + $H = $H | 0; + $s = +$s; + $t = $t | 0; + $sp = +$sp; + $tp = $tp | 0; + var $0 = 0, $1 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0, $15 = 0.0, $2 = 0.0, $24 = 0.0, $25 = 0.0, $27 = 0.0, $28 = 0, $30 = 0.0, $34 = 0, $4 = 0, $5 = 0.0, $64 = 0.0, $67 = 0.0; + $0 = $H + 24 | 0; + $1 = +HEAPF32[$0 >> 2]; + $2 = +HEAPF32[$tp >> 2]; + $4 = $H + 28 | 0; + $5 = +HEAPF32[$4 >> 2]; + $12 = $1 * $2 + +HEAPF32[$H >> 2] / $sp; + $13 = $2 * $5 + +HEAPF32[$H + 4 >> 2] / $sp; + $14 = $tp + 4 | 0; + $15 = +HEAPF32[$14 >> 2]; + $24 = $1 * $15 + +HEAPF32[$H + 12 >> 2] / $sp; + $25 = $5 * $15 + +HEAPF32[$H + 16 >> 2] / $sp; + $27 = +HEAPF32[$t >> 2] * $s; + $28 = $t + 4 | 0; + $30 = +HEAPF32[$28 >> 2] * $s; + HEAPF32[$Hp >> 2] = $12 * $s; + HEAPF32[$Hp + 4 >> 2] = $13 * $s; + $34 = $H + 32 | 0; + HEAPF32[$Hp + 8 >> 2] = +HEAPF32[$34 >> 2] * +HEAPF32[$tp >> 2] + +HEAPF32[$H + 8 >> 2] / $sp - $12 * $27 - $13 * $30; + HEAPF32[$Hp + 12 >> 2] = $24 * $s; + HEAPF32[$Hp + 16 >> 2] = $25 * $s; + HEAPF32[$Hp + 20 >> 2] = +HEAPF32[$34 >> 2] * +HEAPF32[$14 >> 2] + +HEAPF32[$H + 20 >> 2] / $sp - $24 * $27 - $25 * $30; + $64 = +HEAPF32[$0 >> 2] * $s; + HEAPF32[$Hp + 24 >> 2] = $64; + $67 = +HEAPF32[$4 >> 2] * $s; + HEAPF32[$Hp + 28 >> 2] = $67; + HEAPF32[$Hp + 32 >> 2] = +HEAPF32[$34 >> 2] - $64 * +HEAPF32[$t >> 2] - $67 * +HEAPF32[$28 >> 2]; + return; +} + +function __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0; + if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 3 >>> 0 < 268435455) { + $17 = $14 >> 2; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 536870911; + __ZNSt3__114__split_bufferIN6vision17PriorityQueueItemILi96EEERNS_9allocatorIS3_EEEC2EjjS6_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $__x; + $31 = HEAP32[$26 + 4 >> 2] | 0; + $32 = $25; + HEAP32[$32 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$32 + 4 >> 2] = $31; + HEAP32[$24 >> 2] = $25 + 8; + __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision17PriorityQueueItemILi96EEERNS_9allocatorIS3_EEED2Ev($__v); STACKTOP = sp; return; } -function _arImageProcLuma($ipi, $dataPtr) { - $ipi = $ipi | 0; - $dataPtr = $dataPtr | 0; - var $$0 = 0, $1 = 0, $104 = 0, $105 = 0, $110 = 0, $111 = 0, $116 = 0, $117 = 0, $122 = 0, $123 = 0, $128 = 0, $129 = 0, $13 = 0, $14 = 0, $157 = 0, $164 = 0, $185 = 0, $192 = 0, $213 = 0, $44 = 0, $45 = 0, $75 = 0, $76 = 0, $p$040 = 0, $p$142 = 0, $p$245 = 0, $p$348 = 0, $p$451 = 0, $p$554 = 0, $p$657 = 0, $p$760 = 0, $q$041 = 0, $q$143 = 0, $q$246 = 0, $q$349 = 0, $q$452 = 0, $q$555 = 0, $q$658 = 0, $q$761 = 0, $vararg_buffer = 0, sp = 0; +function __ZN6vision22SolveHomography4PointsIfEEbPT_PKS1_S4_S4_S4_S4_S4_S4_S4_($H, $x1, $x2, $x3, $x4, $xp1, $xp2, $xp3, $xp4) { + $H = $H | 0; + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + $xp1 = $xp1 | 0; + $xp2 = $xp2 | 0; + $xp3 = $xp3 | 0; + $xp4 = $xp4 | 0; + var $$0 = 0, $Hn = 0, $s = 0, $sp = 0, $t = 0, $tp = 0, $x1p = 0, $x2p = 0, $x3p = 0, $x4p = 0, $xp1p = 0, $xp2p = 0, $xp3p = 0, $xp4p = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 128 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $1 = HEAP32[$ipi + 2068 >> 2] | 0; - L1 : do switch ($1 | 0) { - case 5: - case 12: - case 13: - case 14: - { - if (!(HEAP32[$ipi + 2072 >> 2] | 0)) { - HEAP32[$ipi >> 2] = $dataPtr; - $$0 = 0; - break L1; + $Hn = sp + 88 | 0; + $s = sp + 84 | 0; + $sp = sp + 80 | 0; + $t = sp + 72 | 0; + $tp = sp + 64 | 0; + $x1p = sp + 56 | 0; + $x2p = sp + 48 | 0; + $x3p = sp + 40 | 0; + $x4p = sp + 32 | 0; + $xp1p = sp + 24 | 0; + $xp2p = sp + 16 | 0; + $xp3p = sp + 8 | 0; + $xp4p = sp; + if (__ZN6vision18Condition4Points2dIfEEbPT_S2_S2_S2_RS1_S2_PKS1_S5_S5_S5_($x1p, $x2p, $x3p, $x4p, $s, $t, $x1, $x2, $x3, $x4) | 0) if (__ZN6vision18Condition4Points2dIfEEbPT_S2_S2_S2_RS1_S2_PKS1_S5_S5_S5_($xp1p, $xp2p, $xp3p, $xp4p, $sp, $tp, $xp1, $xp2, $xp3, $xp4) | 0) if (__ZN6vision34SolveHomography4PointsInhomogenousIfEEbPT_PKS1_S4_S4_S4_S4_S4_S4_S4_($Hn, $x1p, $x2p, $x3p, $x4p, $xp1p, $xp2p, $xp3p, $xp4p) | 0) { + __ZN6vision21DenormalizeHomographyIfEEvPT_PKS1_S1_S4_S1_S4_($H, $Hn, +HEAPF32[$s >> 2], $t, +HEAPF32[$sp >> 2], $tp); + $$0 = 1; + } else $$0 = 0; else $$0 = 0; else $$0 = 0; + STACKTOP = sp; + return $$0 | 0; +} + +function ___shgetc($f) { + $f = $f | 0; + var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre4 = 0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $21 = 0, $26 = 0, $28 = 0, $31 = 0, $36 = 0, $41 = 0, $6 = 0, $9 = 0, label = 0; + $0 = $f + 104 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) label = 3; else if ((HEAP32[$f + 108 >> 2] | 0) < ($1 | 0)) label = 3; else label = 4; + if ((label | 0) == 3) { + $6 = ___uflow($f) | 0; + if (($6 | 0) < 0) label = 4; else { + $9 = HEAP32[$0 >> 2] | 0; + $$phi$trans$insert = $f + 8 | 0; + if (!$9) { + $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; + $26 = $$pre; + $41 = $$pre; + label = 9; } else { - _memcpy(HEAP32[$ipi >> 2] | 0, $dataPtr | 0, Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) | 0; - $$0 = 0; - break L1; - } - break; - } - default: - { - if (($1 & -2 | 0) == 2) { - $13 = $ipi + 8 | 0; - $14 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; + $12 = HEAP32[$$phi$trans$insert >> 2] | 0; + $14 = HEAP32[$f + 4 >> 2] | 0; + $15 = $12; + $21 = $9 - (HEAP32[$f + 108 >> 2] | 0) + -1 | 0; + if (($15 - $14 | 0) > ($21 | 0)) { + HEAP32[$f + 100 >> 2] = $14 + $21; + $28 = $12; } else { - $p$040 = 0; - $q$041 = 0; - } - while (1) { - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$040 >> 0] = (((HEAPU8[$dataPtr + ($q$041 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$041 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$041 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0; - $p$040 = $p$040 + 1 | 0; - if ($p$040 >>> 0 >= (Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break L1; - } else $q$041 = $q$041 + 4 | 0; + $26 = $15; + $41 = $12; + label = 9; } } - if (($1 & -3 | 0) == 4) { - $44 = $ipi + 8 | 0; - $45 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$142 = 0; - $q$143 = 0; - } - while (1) { - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$142 >> 0] = (((HEAPU8[$dataPtr + ($q$143 | 2) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0; - $p$142 = $p$142 + 1 | 0; - if ($p$142 >>> 0 >= (Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break L1; - } else $q$143 = $q$143 + 4 | 0; - } + if ((label | 0) == 9) { + HEAP32[$f + 100 >> 2] = $26; + $28 = $41; } - if ($1 >>> 0 < 2) { - $75 = $ipi + 8 | 0; - $76 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$245 = 0; - $q$246 = 0; - } - while (1) { - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$245 >> 0] = (((HEAPU8[$dataPtr + ($q$246 + 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$246 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$246 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0; - $p$245 = $p$245 + 1 | 0; - if ($p$245 >>> 0 >= (Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break L1; - } else $q$246 = $q$246 + 3 | 0; - } + $$pre4 = HEAP32[$f + 4 >> 2] | 0; + if ($28) { + $31 = $f + 108 | 0; + HEAP32[$31 >> 2] = $28 + 1 - $$pre4 + (HEAP32[$31 >> 2] | 0); } - switch ($1 | 0) { - case 8: - { - $128 = $ipi + 8 | 0; - $129 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$348 = 0; - $q$349 = 0; - } - while (1) { - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$348 >> 0] = HEAP8[$dataPtr + $q$349 >> 0] | 0; - $p$348 = $p$348 + 1 | 0; - if ($p$348 >>> 0 >= (Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break; - } else $q$349 = $q$349 + 2 | 0; - } + $36 = $$pre4 + -1 | 0; + if ((HEAPU8[$36 >> 0] | 0 | 0) == ($6 | 0)) $$0 = $6; else { + HEAP8[$36 >> 0] = $6; + $$0 = $6; + } + } + } + if ((label | 0) == 4) { + HEAP32[$f + 100 >> 2] = 0; + $$0 = -1; + } + return $$0 | 0; +} + +function __ZNSt3__19__sift_upIRNS_4lessIN6vision17PriorityQueueItemILi96EEEEENS_11__wrap_iterIPS4_EEEEvT0_SA_T_NS_15iterator_traitsISA_E15difference_typeE($__first, $__last, $__comp, $__len) { + $__first = $__first | 0; + $__last = $__last | 0; + $__comp = $__comp | 0; + $__len = $__len | 0; + var $$in = 0, $$in$lcssa = 0, $$lcssa4 = 0, $$pn = 0, $12 = 0, $14 = 0, $17 = 0, $18 = 0, $2 = 0, $23 = 0, $24 = 0, $25 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0; + if (($__len | 0) > 1) { + $2 = ($__len + -2 | 0) / 2 | 0; + $4 = HEAP32[$__first >> 2] | 0; + $5 = HEAP32[$__last >> 2] | 0; + $6 = $5 + -8 | 0; + HEAP32[$__last >> 2] = $6; + if ((HEAP32[$4 + ($2 << 3) + 4 >> 2] | 0) >>> 0 > (HEAP32[$5 + -4 >> 2] | 0) >>> 0) { + $12 = $6; + $14 = HEAP32[$12 >> 2] | 0; + $17 = HEAP32[$12 + 4 >> 2] | 0; + $$pn = $2; + $25 = $6; + while (1) { + $$in = $4 + ($$pn << 3) | 0; + $18 = $$in; + $23 = HEAP32[$18 + 4 >> 2] | 0; + $24 = $25; + HEAP32[$24 >> 2] = HEAP32[$18 >> 2]; + HEAP32[$24 + 4 >> 2] = $23; + if (!$$pn) { + $$in$lcssa = $$in; + $$lcssa4 = $$in; break; } - case 7: - { - $122 = $ipi + 8 | 0; - $123 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$451 = 0; - $q$452 = 0; - } - while (1) { - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$451 >> 0] = HEAP8[$dataPtr + ($q$452 | 1) >> 0] | 0; - $p$451 = $p$451 + 1 | 0; - if ($p$451 >>> 0 >= (Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break; - } else $q$452 = $q$452 + 2 | 0; - } + $$pn = ($$pn + -1 | 0) / 2 | 0; + if ((HEAP32[$4 + ($$pn << 3) + 4 >> 2] | 0) >>> 0 <= $17 >>> 0) { + $$in$lcssa = $$in; + $$lcssa4 = $$in; break; - } - case 9: + } else $25 = $$in; + } + HEAP32[$__last >> 2] = $$in$lcssa; + $36 = $$lcssa4; + HEAP32[$36 >> 2] = $14; + HEAP32[$36 + 4 >> 2] = $17; + } + } + return; +} + +function __ZNK6vision5Image3getIfEEPKT_j($this, $row) { + $this = $this | 0; + $row = $row | 0; + var $0 = 0, $14 = 0, $15 = 0, $19 = 0, $25 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ((HEAP32[$this + 8 >> 2] | 0) >>> 0 > $row >>> 0) { + $25 = (HEAP32[$this + 24 >> 2] | 0) + (Math_imul(HEAP32[$this + 12 >> 2] | 0, $row) | 0) | 0; + STACKTOP = sp; + return $25 | 0; + } else { + $9 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25574) | 0, 25611) | 0, 34302) | 0, 124) | 0, 34309) | 0, 25715) | 0; + $14 = __ZNKSt3__18ios_base6getlocEv($9 + (HEAP32[(HEAP32[$9 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $14; + $15 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$15 >> 2] | 0) + 28 >> 2] & 63]($15, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($9, $19) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($9) | 0; + _abort(); + } + return 0; +} + +function __ZN6vision5Image3getIfEEPT_j($this, $row) { + $this = $this | 0; + $row = $row | 0; + var $0 = 0, $14 = 0, $15 = 0, $19 = 0, $25 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + if ((HEAP32[$this + 8 >> 2] | 0) >>> 0 > $row >>> 0) { + $25 = (HEAP32[$this + 24 >> 2] | 0) + (Math_imul(HEAP32[$this + 12 >> 2] | 0, $row) | 0) | 0; + STACKTOP = sp; + return $25 | 0; + } else { + $9 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 25574) | 0, 25611) | 0, 34302) | 0, 119) | 0, 34309) | 0, 25715) | 0; + $14 = __ZNKSt3__18ios_base6getlocEv($9 + (HEAP32[(HEAP32[$9 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $14; + $15 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $19 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$15 >> 2] | 0) + 28 >> 2] & 63]($15, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($9, $19) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($9) | 0; + _abort(); + } + return 0; +} + +function _arSetLabelingThreshMode($handle, $mode) { + $handle = $handle | 0; + $mode = $mode | 0; + var $$0 = 0, $1 = 0, $13 = 0, $4 = 0, $5 = 0, $mode1$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + if (!$handle) $$0 = -1; else { + $1 = $handle + 7062388 | 0; + if ((HEAP32[$1 >> 2] | 0) == ($mode | 0)) $$0 = 0; else { + $4 = $handle + 7062408 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if ($5) { + _arImageProcFinal($5); + HEAP32[$4 >> 2] = 0; + } + switch ($mode | 0) { + case 3: + case 2: + case 1: { - $116 = $ipi + 8 | 0; - $117 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$554 = 0; - $q$555 = 0; - } - while (1) { - $157 = HEAPU8[$dataPtr + $q$555 >> 0] | 0; - $164 = HEAPU8[$dataPtr + ($q$555 | 1) >> 0] | 0; - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$554 >> 0] = ((($157 & 248) + 10 + ($157 << 5 & 224) + ($164 >>> 3 & 28) + ($164 << 3 & 248) | 0) >>> 0) / 3 | 0; - $p$554 = $p$554 + 1 | 0; - if ($p$554 >>> 0 >= (Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break; - } else $q$555 = $q$555 + 2 | 0; - } + $13 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 4 >> 2] | 0, 0) | 0; + HEAP32[$4 >> 2] = $13; + $mode1$0 = $mode; break; } - case 10: + case 4: { - $110 = $ipi + 8 | 0; - $111 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$657 = 0; - $q$658 = 0; - } - while (1) { - $185 = HEAPU8[$dataPtr + $q$658 >> 0] | 0; - $192 = HEAPU8[$dataPtr + ($q$658 | 1) >> 0] | 0; - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$657 >> 0] = ((($185 & 248) + 12 + ($185 << 5 & 224) + ($192 >>> 3 & 24) + ($192 << 2 & 248) | 0) >>> 0) / 3 | 0; - $p$657 = $p$657 + 1 | 0; - if ($p$657 >>> 0 >= (Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break; - } else $q$658 = $q$658 + 2 | 0; - } + HEAP32[$handle + 7062404 >> 2] = 1; + HEAP32[$handle + 7062400 >> 2] = 1; + $mode1$0 = 4; break; } - case 11: + case 0: { - $104 = $ipi + 8 | 0; - $105 = $ipi + 12 | 0; - if (!(Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0)) { - $$0 = 0; - break L1; - } else { - $p$760 = 0; - $q$761 = 0; - } - while (1) { - $213 = HEAPU8[$dataPtr + $q$761 >> 0] | 0; - HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$760 >> 0] = ((($213 & 240) + 24 + ($213 << 4 & 240) + ((HEAPU8[$dataPtr + ($q$761 | 1) >> 0] | 0) & 240) | 0) >>> 0) / 3 | 0; - $p$760 = $p$760 + 1 | 0; - if ($p$760 >>> 0 >= (Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0) >>> 0) { - $$0 = 0; - break; - } else $q$761 = $q$761 + 2 | 0; - } + $mode1$0 = 0; break; } default: { - _arLog(3, 4361, $vararg_buffer); - $$0 = -1; - break L1; + _arLog(3, 18173, $vararg_buffer); + $mode1$0 = 0; } } + HEAP32[$1 >> 2] = $mode1$0; + if ((HEAP32[$handle >> 2] | 0) == 1) { + HEAP32[$vararg_buffer1 >> 2] = HEAP32[3104 + ($mode1$0 << 2) >> 2]; + _arLog(3, 18247, $vararg_buffer1); + $$0 = 0; + } else $$0 = 0; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$promoted$i1 = 0, $1 = 0, $11 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $22 = 0, $29 = 0, $3 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = $3; + if ($1 - $5 >> 2 >>> 0 < $__n >>> 0) { + $11 = HEAP32[$this >> 2] | 0; + $15 = ($5 - $11 >> 2) + $__n | 0; + if ($15 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $18 = $11; + $19 = $1 - $18 | 0; + if ($19 >> 2 >>> 0 < 536870911) { + $22 = $19 >> 1; + $$0$i = $22 >>> 0 < $15 >>> 0 ? $15 : $22; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEEC2EjjS3_($__v, $$0$i, (HEAP32[$2 >> 2] | 0) - $18 >> 2, $this + 8 | 0); + $29 = $__v + 8 | 0; + $$promoted$i1 = HEAP32[$29 >> 2] | 0; + _memset($$promoted$i1 | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$29 >> 2] = $$promoted$i1 + ($__n << 2); + __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEED2Ev($__v); + } else { + _memset($3 | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$2 >> 2] = $3 + ($__n << 2); + } + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorIfNS_9allocatorIfEEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$promoted$i1 = 0, $1 = 0, $11 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $22 = 0, $29 = 0, $3 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = $3; + if ($1 - $5 >> 2 >>> 0 < $__n >>> 0) { + $11 = HEAP32[$this >> 2] | 0; + $15 = ($5 - $11 >> 2) + $__n | 0; + if ($15 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $18 = $11; + $19 = $1 - $18 | 0; + if ($19 >> 2 >>> 0 < 536870911) { + $22 = $19 >> 1; + $$0$i = $22 >>> 0 < $15 >>> 0 ? $15 : $22; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIfRNS_9allocatorIfEEEC2EjjS3_($__v, $$0$i, (HEAP32[$2 >> 2] | 0) - $18 >> 2, $this + 8 | 0); + $29 = $__v + 8 | 0; + $$promoted$i1 = HEAP32[$29 >> 2] | 0; + _memset($$promoted$i1 | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$29 >> 2] = $$promoted$i1 + ($__n << 2); + __ZNSt3__16vectorIfNS_9allocatorIfEEE26__swap_out_circular_bufferERNS_14__split_bufferIfRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIfRNS_9allocatorIfEEED2Ev($__v); + } else { + _memset($3 | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$2 >> 2] = $3 + ($__n << 2); + } + STACKTOP = sp; + return; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis5IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0.0, $17 = 0.0, $2 = 0, $3 = 0, $5 = 0, $7 = 0.0, $8 = 0.0, $index$0$i = 0, $index$1$i = 0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 180 | 0; + $1 = $Q + 144 | 0; + $2 = $A + 180 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $1, $2); + $3 = $Q + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($3, $1, $A + 216 | 0); + $5 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($5, $1, $A + 252 | 0); + $7 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $7; + $8 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($3, $3); + HEAPF32[$ss + 4 >> 2] = $8; + $10 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($5, $5); + HEAPF32[$ss + 8 >> 2] = $10; + $index$0$i = $8 > $7 & 1; + $index$1$i = $10 > +HEAPF32[$ss + ($index$0$i << 2) >> 2] ? 2 : $index$0$i; + $17 = +HEAPF32[$ss + ($index$1$i << 2) >> 2]; + if ($17 == 0.0) $$0 = 0; else { + $$sum = ($index$1$i * 9 | 0) + 45 | 0; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($2, $A + ($$sum << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$17)); + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision5Timer4stopEv($this) { + $this = $this | 0; + var $0 = 0, $13 = 0, $14 = 0, $18 = 0, $8 = 0, $t = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $t = sp; + if (!(+HEAPF64[$this >> 3] >= 0.0)) { + $8 = __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(10696, 34156) | 0, 34195) | 0, 34302) | 0, 67) | 0, 34309) | 0, 34312) | 0; + $13 = __ZNKSt3__18ios_base6getlocEv($8 + (HEAP32[(HEAP32[$8 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + HEAP32[$0 >> 2] = $13; + $14 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + $18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[$14 >> 2] | 0) + 28 >> 2] & 63]($14, 10) | 0; + __ZNSt3__16localeD2Ev($0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($8, $18) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + _abort(); + } else { + _gettimeofday($t | 0, 0) | 0; + HEAPF64[$this + 8 >> 3] = +(HEAP32[$t >> 2] | 0) + +(HEAP32[$t + 4 >> 2] | 0) * 1.0e-06; + STACKTOP = sp; + return; + } +} + +function _sift($head, $width, $cmp, $pshift, $lp) { + $head = $head | 0; + $width = $width | 0; + $cmp = $cmp | 0; + $pshift = $pshift | 0; + $lp = $lp | 0; + var $$0$be = 0, $$01$be = 0, $$012 = 0, $$03 = 0, $1 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $6 = 0, $7 = 0, $ar = 0, $i$0$lcssa = 0, $i$04 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 240 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ar = sp; + HEAP32[$ar >> 2] = $head; + L1 : do if (($pshift | 0) > 1) { + $1 = 0 - $width | 0; + $$012 = $pshift; + $$03 = $head; + $7 = $head; + $i$04 = 1; + while (1) { + $2 = $$03 + $1 | 0; + $3 = $$012 + -2 | 0; + $6 = $$03 + (0 - ((HEAP32[$lp + ($3 << 2) >> 2] | 0) + $width)) | 0; + if ((FUNCTION_TABLE_iii[$cmp & 63]($7, $6) | 0) > -1) if ((FUNCTION_TABLE_iii[$cmp & 63]($7, $2) | 0) > -1) { + $i$0$lcssa = $i$04; + break L1; + } + $14 = $i$04 + 1 | 0; + $15 = $ar + ($i$04 << 2) | 0; + if ((FUNCTION_TABLE_iii[$cmp & 63]($6, $2) | 0) > -1) { + HEAP32[$15 >> 2] = $6; + $$0$be = $6; + $$01$be = $$012 + -1 | 0; + } else { + HEAP32[$15 >> 2] = $2; + $$0$be = $2; + $$01$be = $3; + } + if (($$01$be | 0) <= 1) { + $i$0$lcssa = $14; + break L1; + } + $$012 = $$01$be; + $$03 = $$0$be; + $7 = HEAP32[$ar >> 2] | 0; + $i$04 = $14; + } + } else $i$0$lcssa = 1; while (0); + _cycle($width, $ar, $i$0$lcssa); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $15 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = (((HEAP32[$1 >> 2] | 0) - $3 | 0) / 12 | 0) + 1 | 0; + if ($8 >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $15 = ((HEAP32[$this + 8 >> 2] | 0) - $13 | 0) / 12 | 0; + if ($15 >>> 0 < 178956970) { + $17 = $15 << 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 357913941; + __ZNSt3__114__split_bufferIN6vision7Point3dIfEERNS_9allocatorIS3_EEEC2EjjS6_($__v, $$0$i, ((HEAP32[$1 >> 2] | 0) - $13 | 0) / 12 | 0, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + HEAP32[$25 >> 2] = HEAP32[$__x >> 2]; + HEAP32[$25 + 4 >> 2] = HEAP32[$__x + 4 >> 2]; + HEAP32[$25 + 8 >> 2] = HEAP32[$__x + 8 >> 2]; + HEAP32[$24 >> 2] = $25 + 12; + __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision7Point3dIfEERNS_9allocatorIS3_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function _jpeg_finish_decompress($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $17 = 0, $21 = 0, $22 = 0, label = 0; + $0 = $cinfo + 20 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (($1 + -205 | 0) >>> 0 < 2) if (!(HEAP32[$cinfo + 64 >> 2] | 0)) { + if ((HEAP32[$cinfo + 140 >> 2] | 0) >>> 0 < (HEAP32[$cinfo + 116 >> 2] | 0) >>> 0) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 67; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 420 >> 2] | 0) + 4 >> 2] & 255]($cinfo); + HEAP32[$0 >> 2] = 210; + } else label = 6; else label = 6; + L7 : do if ((label | 0) == 6) switch ($1 | 0) { + case 210: + { + break L7; + break; + } + case 207: + { + HEAP32[$0 >> 2] = 210; + break L7; + break; + } + default: + { + $17 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$17 + 20 >> 2] = 20; + HEAP32[$17 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$17 >> 2] & 255]($cinfo); + break L7; } } while (0); - STACKTOP = sp; + $21 = $cinfo + 436 | 0; + while (1) { + $22 = HEAP32[$21 >> 2] | 0; + if (HEAP32[$22 + 20 >> 2] | 0) { + label = 12; + break; + } + if (!(FUNCTION_TABLE_ii[HEAP32[$22 >> 2] & 127]($cinfo) | 0)) { + $$0 = 0; + break; + } + } + if ((label | 0) == 12) { + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 24 >> 2] | 0) + 24 >> 2] & 255]($cinfo); + _jpeg_abort($cinfo); + $$0 = 1; + } return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) { - $first = $first | 0; - $last = $last | 0; - $op = $op | 0; - $db = $db | 0; - var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $11 = 0, $110 = 0, $112 = 0, $117 = 0, $118 = 0, $119 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $25 = 0, $26 = 0, $3 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $46 = 0, $48 = 0, $5 = 0, $53 = 0, $56 = 0, $58 = 0, $6 = 0, $65 = 0, $68 = 0, $71 = 0, $73 = 0, $8 = 0, $83 = 0, $86 = 0, $89 = 0, $91 = 0, $op1 = 0, $op2 = 0, sp = 0; +function _pass2_no_dither($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $15 = 0, $19 = 0, $23 = 0, $26 = 0, $27 = 0, $3 = 0, $30 = 0, $5 = 0, $7 = 0, $col$02 = 0, $inptr$03 = 0, $outptr$01 = 0, $row$04 = 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + if (($num_rows | 0) > 0) { + $7 = ($5 | 0) == 0; + $row$04 = 0; + do { + if (!$7) { + $col$02 = $5; + $inptr$03 = HEAP32[$input_buf + ($row$04 << 2) >> 2] | 0; + $outptr$01 = HEAP32[$output_buf + ($row$04 << 2) >> 2] | 0; + while (1) { + $15 = (HEAPU8[$inptr$03 >> 0] | 0) >>> 3; + $19 = (HEAPU8[$inptr$03 + 1 >> 0] | 0) >>> 2; + $23 = (HEAPU8[$inptr$03 + 2 >> 0] | 0) >>> 3; + $26 = (HEAP32[$3 + ($15 << 2) >> 2] | 0) + ($19 << 6) + ($23 << 1) | 0; + $27 = HEAP16[$26 >> 1] | 0; + if (!($27 << 16 >> 16)) { + _fill_inverse_cmap($cinfo, $15, $19, $23); + $30 = HEAP16[$26 >> 1] | 0; + } else $30 = $27; + HEAP8[$outptr$01 >> 0] = ($30 & 65535) + 255; + $col$02 = $col$02 + -1 | 0; + if (!$col$02) break; else { + $inptr$03 = $inptr$03 + 3 | 0; + $outptr$01 = $outptr$01 + 1 | 0; + } + } + } + $row$04 = $row$04 + 1 | 0; + } while (($row$04 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $1 = 0, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $5 = 0, $__v = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $op2 = sp + 84 | 0; - $op1 = sp + 72 | 0; - $0 = sp + 60 | 0; - $1 = sp + 48 | 0; - $2 = sp + 36 | 0; - $3 = sp + 24 | 0; - $4 = sp + 12 | 0; - $5 = sp; - $6 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - L1 : do if (($6 | 0) == ($first | 0)) $$0 = $first; else { - $8 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($6, $last, $db) | 0; - $10 = $db + 4 | 0; - $11 = HEAP32[$10 >> 2] | 0; - if (($8 | 0) == ($6 | 0)) { - $117 = $11 + -24 | 0; - $119 = $11; - while (1) { - $118 = $119 + -24 | 0; - HEAP32[$10 >> 2] = $118; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($118); - $119 = HEAP32[$10 >> 2] | 0; - if (($119 | 0) == ($117 | 0)) { - $$0 = $first; - break L1; - } - } - } - if ((($11 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $11 + -24 | 0); - $19 = HEAP32[$10 >> 2] | 0; - $20 = $19 + -24 | 0; - $22 = $19; - do { - $21 = $22 + -24 | 0; - HEAP32[$10 >> 2] = $21; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21); - $22 = HEAP32[$10 >> 2] | 0; - } while (($22 | 0) != ($20 | 0)); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $19 + -48 | 0); - $25 = HEAP32[$10 >> 2] | 0; - $26 = $25 + -24 | 0; - if (!(HEAP8[$26 >> 0] & 1)) { - HEAP8[$26 + 1 >> 0] = 0; - HEAP8[$26 >> 0] = 0; - } else { - HEAP8[HEAP32[$25 + -16 >> 2] >> 0] = 0; - HEAP32[$25 + -20 >> 2] = 0; - } - $34 = HEAP8[$op >> 0] | 0; - $36 = ($34 & 1) == 0; - $37 = $op + 4 | 0; - $41 = $36 ? ($34 & 255) >>> 1 : HEAP32[$37 >> 2] | 0; - $42 = $op + 8 | 0; - $44 = $op + 1 | 0; - $46 = $41 >>> 0 > 1; - $48 = _memcmp($36 ? $44 : HEAP32[$42 >> 2] | 0, 12778, $46 ? 1 : $41) | 0; - if (!((($48 | 0) == 0 ? (($41 | 0) == 0 ? -1 : $46 & 1) : $48) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 40); - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($5, 12714, $op1); - $53 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 14007) | 0; - HEAP32[$4 >> 2] = HEAP32[$53 >> 2]; - HEAP32[$4 + 4 >> 2] = HEAP32[$53 + 4 >> 2]; - HEAP32[$4 + 8 >> 2] = HEAP32[$53 + 8 >> 2]; - HEAP32[$53 >> 2] = 0; - HEAP32[$53 + 4 >> 2] = 0; - HEAP32[$53 + 8 >> 2] = 0; - $56 = HEAP8[$op >> 0] | 0; - $58 = ($56 & 1) == 0; - $65 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $58 ? $44 : HEAP32[$42 >> 2] | 0, $58 ? ($56 & 255) >>> 1 : HEAP32[$37 >> 2] | 0) | 0; - HEAP32[$3 >> 2] = HEAP32[$65 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$65 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$65 + 8 >> 2]; - HEAP32[$65 >> 2] = 0; - HEAP32[$65 + 4 >> 2] = 0; - HEAP32[$65 + 8 >> 2] = 0; - $68 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12616) | 0; - HEAP32[$2 >> 2] = HEAP32[$68 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$68 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$68 + 8 >> 2]; - HEAP32[$68 >> 2] = 0; - HEAP32[$68 + 4 >> 2] = 0; - HEAP32[$68 + 8 >> 2] = 0; - $71 = HEAP8[$op2 >> 0] | 0; - $73 = ($71 & 1) == 0; - $83 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $73 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $73 ? ($71 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0; - HEAP32[$1 >> 2] = HEAP32[$83 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$83 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$83 + 8 >> 2]; - HEAP32[$83 >> 2] = 0; - HEAP32[$83 + 4 >> 2] = 0; - HEAP32[$83 + 8 >> 2] = 0; - $86 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$86 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$86 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$86 + 8 >> 2]; - HEAP32[$86 >> 2] = 0; - HEAP32[$86 + 4 >> 2] = 0; - HEAP32[$86 + 8 >> 2] = 0; - $89 = HEAP8[$0 >> 0] | 0; - $91 = ($89 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $91 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5); - $101 = HEAP8[$op >> 0] | 0; - $103 = ($101 & 1) == 0; - $107 = $103 ? ($101 & 255) >>> 1 : HEAP32[$37 >> 2] | 0; - $110 = $107 >>> 0 > 1; - $112 = _memcmp($103 ? $44 : HEAP32[$42 >> 2] | 0, 12778, $110 ? 1 : $107) | 0; - if (!((($112 | 0) == 0 ? (($107 | 0) == 0 ? -1 : $110 & 1) : $112) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 41); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2); - $$0 = $8; - } - } while (0); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if ($1 - $5 >> 5 >>> 0 < $__n >>> 0) { + $10 = HEAP32[$this >> 2] | 0; + $14 = ($5 - $10 >> 5) + $__n | 0; + if ($14 >>> 0 > 134217727) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $17 = $10; + $18 = $1 - $17 | 0; + if ($18 >> 5 >>> 0 < 67108863) { + $21 = $18 >> 4; + $$0$i = $21 >>> 0 < $14 >>> 0 ? $14 : $21; + } else $$0$i = 134217727; + __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, (HEAP32[$2 >> 2] | 0) - $17 >> 5, $this + 8 | 0); + __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEE18__construct_at_endEj($__v, $__n); + __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEED2Ev($__v); + } else __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n); STACKTOP = sp; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE8__rehashEj($this, $28); + } + return; +} + +function __ZN6vision25MatrixInverseSymmetric3x3IfEEbPT_PKS1_S1_($B, $A, $threshold) { + $B = $B | 0; + $A = $A | 0; + $threshold = +$threshold; + var $$0 = 0, $0 = 0.0, $14 = 0, $16 = 0, $24 = 0.0, $3 = 0.0, $33 = 0.0, $36 = 0.0, $4 = 0, $51 = 0.0, $54 = 0.0, $6 = 0, $7 = 0.0, $8 = 0; + $0 = +__ZN6vision23DeterminantSymmetric3x3IfEET_PKS1_($A); + if (!(+Math_abs(+$0) <= $threshold)) { + $3 = 1.0 / $0; + $4 = $A + 16 | 0; + $6 = $A + 20 | 0; + $7 = +HEAPF32[$6 >> 2]; + $8 = $A + 32 | 0; + HEAPF32[$B >> 2] = $3 * (+HEAPF32[$4 >> 2] * +HEAPF32[$8 >> 2] - $7 * $7); + $14 = $A + 8 | 0; + $16 = $A + 4 | 0; + $24 = $3 * (+HEAPF32[$14 >> 2] * +HEAPF32[$A + 28 >> 2] - +HEAPF32[$16 >> 2] * +HEAPF32[$8 >> 2]); + HEAPF32[$B + 4 >> 2] = $24; + $33 = $3 * (+HEAPF32[$16 >> 2] * +HEAPF32[$6 >> 2] - +HEAPF32[$14 >> 2] * +HEAPF32[$4 >> 2]); + HEAPF32[$B + 8 >> 2] = $33; + $36 = +HEAPF32[$14 >> 2]; + HEAPF32[$B + 16 >> 2] = $3 * (+HEAPF32[$A >> 2] * +HEAPF32[$8 >> 2] - $36 * $36); + $51 = $3 * (+HEAPF32[$14 >> 2] * +HEAPF32[$A + 12 >> 2] - +HEAPF32[$A >> 2] * +HEAPF32[$6 >> 2]); + HEAPF32[$B + 20 >> 2] = $51; + $54 = +HEAPF32[$16 >> 2]; + HEAPF32[$B + 32 >> 2] = $3 * (+HEAPF32[$A >> 2] * +HEAPF32[$4 >> 2] - $54 * $54); + HEAPF32[$B + 12 >> 2] = $24; + HEAPF32[$B + 24 >> 2] = $33; + HEAPF32[$B + 28 >> 2] = $51; + $$0 = 1; + } else $$0 = 0; return $$0 | 0; } -function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { +function _arCreateHandle($paramLT) { + $paramLT = $paramLT | 0; + var $0 = 0, $15 = 0, $18 = 0, $26 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = _malloc(7062432) | 0; + if (!$0) { + _arLog(3, 21359, sp); + _exit(1); + } + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4834148 >> 2] = 0; + HEAP32[$0 + 7062408 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = -1; + HEAP32[$0 + 8 >> 2] = 0; + HEAP32[$0 + 12 >> 2] = 1; + HEAP32[$0 + 16 >> 2] = 100; + HEAP32[$0 + 20 >> 2] = 0; + HEAP32[$0 + 24 >> 2] = 0; + HEAP32[$0 + 28 >> 2] = 2; + HEAPF64[$0 + 7062416 >> 3] = .5; + HEAP32[$0 + 7062424 >> 2] = 3; + HEAP32[$0 + 32 >> 2] = $paramLT; + $15 = HEAP32[$paramLT >> 2] | 0; + HEAP32[$0 + 36 >> 2] = $15; + $18 = HEAP32[$paramLT + 4 >> 2] | 0; + HEAP32[$0 + 40 >> 2] = $18; + HEAP32[$0 + 44 >> 2] = 0; + HEAP32[$0 + 15408 >> 2] = 0; + HEAP32[$0 + 4834152 >> 2] = 0; + HEAP32[$0 + 4818296 >> 2] = 0; + $26 = _malloc(Math_imul($15 << 1, $18) | 0) | 0; + HEAP32[$0 + 4834144 >> 2] = $26; + if (!$26) { + _arLog(3, 21359, sp + 8 | 0); + _exit(1); + } else { + HEAP32[$0 + 7062384 >> 2] = 0; + _arSetPixelFormat($0, 2) | 0; + _arSetDebugMode($0, 0) | 0; + HEAP32[$0 + 7062388 >> 2] = -1; + _arSetLabelingThreshMode($0, 0) | 0; + HEAP32[$0 + 7062392 >> 2] = 7; + HEAP32[$0 + 7062396 >> 2] = 0; + STACKTOP = sp; + return $0 | 0; + } + return 0; +} + +function __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $__x) { $this = $this | 0; - $info = $info | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $14 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $49 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0, $does_dst_type_point_to_our_static_type$0$off023 = 0, $does_dst_type_point_to_our_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$0$off025 = 0, $is_dst_type_derived_from_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$2$off0 = 0, $p$024 = 0, $p2$0 = 0, $p2$1 = 0, $p2$2 = 0, label = 0; - L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { - if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { - $6 = $info + 28 | 0; - if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0; + if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 3 >>> 0 < 268435455) { + $17 = $14 >> 2; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 536870911; + __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $__x; + $31 = HEAP32[$26 + 4 >> 2] | 0; + $32 = $25; + HEAP32[$32 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$32 + 4 >> 2] = $31; + HEAP32[$24 >> 2] = $25 + 8; + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE8__rehashEj($this, $28); + } + return; +} + +function __ZNSt3__16vectorItNS_9allocatorItEEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$promoted$i1 = 0, $1 = 0, $11 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $27 = 0, $3 = 0, $5 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $5 = $3; + do if ($1 - $5 >> 1 >>> 0 < $__n >>> 0) { + $11 = HEAP32[$this >> 2] | 0; + $15 = ($5 - $11 >> 1) + $__n | 0; + if (($15 | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $18 = $11; + $19 = $1 - $18 | 0; + __ZNSt3__114__split_bufferItRNS_9allocatorItEEEC2EjjS3_($__v, $19 >> 1 >>> 0 < 1073741823 ? ($19 >>> 0 < $15 >>> 0 ? $15 : $19) : 2147483647, $3 - $18 >> 1, $this + 8 | 0); + $27 = $__v + 8 | 0; + $$promoted$i1 = HEAP32[$27 >> 2] | 0; + _memset($$promoted$i1 | 0, 0, $__n << 1 | 0) | 0; + HEAP32[$27 >> 2] = $$promoted$i1 + ($__n << 1); + __ZNSt3__16vectorItNS_9allocatorItEEE26__swap_out_circular_bufferERNS_14__split_bufferItRS2_EE($this, $__v); + __ZNSt3__114__split_bufferItRNS_9allocatorItEEED2Ev($__v); + break; } } else { - if (($this | 0) != (HEAP32[$info >> 2] | 0)) { - $59 = HEAP32[$this + 12 >> 2] | 0; - $60 = $this + 16 + ($59 << 3) | 0; - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this + 16 | 0, $info, $current_ptr, $path_below, $use_strcmp); - $61 = $this + 24 | 0; - if (($59 | 0) <= 1) break; - $64 = HEAP32[$this + 8 >> 2] | 0; - if (!($64 & 2)) { - $67 = $info + 36 | 0; - if ((HEAP32[$67 >> 2] | 0) != 1) { - if (!($64 & 1)) { - $79 = $info + 54 | 0; - $p2$2 = $61; + _memset($3 | 0, 0, $__n << 1 | 0) | 0; + HEAP32[$2 >> 2] = $3 + ($__n << 1); + } while (0); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0; + if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 3 >>> 0 < 268435455) { + $17 = $14 >> 2; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 536870911; + __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $__x; + $31 = HEAP32[$26 + 4 >> 2] | 0; + $32 = $25; + HEAP32[$32 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$32 + 4 >> 2] = $31; + HEAP32[$24 >> 2] = $25 + 8; + __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v); + __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28); + } + return; +} + +function _null_convert29($cinfo, $input_buf, $input_row, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $input_row = $input_row | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $$010 = 0, $$018 = 0, $$in = 0, $1 = 0, $3 = 0, $5 = 0, $6 = 0, $ci$06 = 0, $count$05 = 0, $inptr$03 = 0, $outptr$04 = 0, $$in$looptemp = 0; + $1 = HEAP32[$cinfo + 36 >> 2] | 0; + $3 = HEAP32[$cinfo + 112 >> 2] | 0; + if (($num_rows | 0) > 0) { + $5 = ($1 | 0) > 0; + $6 = ($3 | 0) == 0; + $$010 = $input_row; + $$018 = $output_buf; + $$in = $num_rows; + while (1) { + $$in$looptemp = $$in; + $$in = $$in + -1 | 0; + if ($5) { + $ci$06 = 0; + do { + if (!$6) { + $count$05 = $3; + $inptr$03 = HEAP32[(HEAP32[$input_buf + ($ci$06 << 2) >> 2] | 0) + ($$010 << 2) >> 2] | 0; + $outptr$04 = (HEAP32[$$018 >> 2] | 0) + $ci$06 | 0; while (1) { - if (HEAP8[$79 >> 0] | 0) break L1; - if ((HEAP32[$67 >> 2] | 0) == 1) break L1; - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$2, $info, $current_ptr, $path_below, $use_strcmp); - $p2$2 = $p2$2 + 8 | 0; - if ($p2$2 >>> 0 >= $60 >>> 0) break L1; + HEAP8[$outptr$04 >> 0] = HEAP8[$inptr$03 >> 0] | 0; + $count$05 = $count$05 + -1 | 0; + if (!$count$05) break; else { + $inptr$03 = $inptr$03 + 1 | 0; + $outptr$04 = $outptr$04 + $1 | 0; + } } } - $77 = $info + 24 | 0; - $78 = $info + 54 | 0; - $p2$1 = $61; - while (1) { - if (HEAP8[$78 >> 0] | 0) break L1; - if ((HEAP32[$67 >> 2] | 0) == 1) if ((HEAP32[$77 >> 2] | 0) == 1) break L1; - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$1, $info, $current_ptr, $path_below, $use_strcmp); - $p2$1 = $p2$1 + 8 | 0; - if ($p2$1 >>> 0 >= $60 >>> 0) break L1; - } - } + $ci$06 = $ci$06 + 1 | 0; + } while (($ci$06 | 0) < ($1 | 0)); } - $70 = $info + 54 | 0; - $p2$0 = $61; - while (1) { - if (HEAP8[$70 >> 0] | 0) break L1; - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$0, $info, $current_ptr, $path_below, $use_strcmp); - $p2$0 = $p2$0 + 8 | 0; - if ($p2$0 >>> 0 >= $60 >>> 0) break L1; + if (($$in$looptemp | 0) <= 1) break; else { + $$010 = $$010 + 1 | 0; + $$018 = $$018 + 4 | 0; } } - if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { - $14 = $info + 20 | 0; - if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { - HEAP32[$info + 32 >> 2] = $path_below; - $20 = $info + 44 | 0; - if ((HEAP32[$20 >> 2] | 0) == 4) break; - $24 = HEAP32[$this + 12 >> 2] | 0; - $25 = $this + 16 + ($24 << 3) | 0; - $26 = $info + 52 | 0; - $27 = $info + 53 | 0; - $28 = $info + 54 | 0; - $29 = $this + 8 | 0; - $30 = $info + 24 | 0; - L34 : do if (($24 | 0) > 0) { - $does_dst_type_point_to_our_static_type$0$off023 = 0; - $is_dst_type_derived_from_static_type$0$off025 = 0; - $p$024 = $this + 16 | 0; - while (1) { - HEAP8[$26 >> 0] = 0; - HEAP8[$27 >> 0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$024, $info, $current_ptr, $current_ptr, 1, $use_strcmp); - if (HEAP8[$28 >> 0] | 0) { - $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023; - $is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$0$off025; - label = 20; - break L34; - } - do if (!(HEAP8[$27 >> 0] | 0)) { - $does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023; - $is_dst_type_derived_from_static_type$1$off0 = $is_dst_type_derived_from_static_type$0$off025; - } else { - if (!(HEAP8[$26 >> 0] | 0)) if (!(HEAP32[$29 >> 2] & 1)) { - $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023; - $is_dst_type_derived_from_static_type$2$off0 = 1; - label = 20; - break L34; - } else { - $does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023; - $is_dst_type_derived_from_static_type$1$off0 = 1; - break; - } - if ((HEAP32[$30 >> 2] | 0) == 1) break L34; - if (!(HEAP32[$29 >> 2] & 2)) break L34; else { - $does_dst_type_point_to_our_static_type$1$off0 = 1; - $is_dst_type_derived_from_static_type$1$off0 = 1; - } - } while (0); - $p$024 = $p$024 + 8 | 0; - if ($p$024 >>> 0 >= $25 >>> 0) { - $does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$1$off0; - $is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$1$off0; - label = 20; - break; - } else { - $does_dst_type_point_to_our_static_type$0$off023 = $does_dst_type_point_to_our_static_type$1$off0; - $is_dst_type_derived_from_static_type$0$off025 = $is_dst_type_derived_from_static_type$1$off0; - } - } - } else { - $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0; - $is_dst_type_derived_from_static_type$2$off0 = 0; - label = 20; - } while (0); - do if ((label | 0) == 20) { - if ($does_dst_type_point_to_our_static_type$0$off0$lcssa) label = 24; else { - HEAP32[$14 >> 2] = $current_ptr; - $49 = $info + 40 | 0; - HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1; - if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$30 >> 2] | 0) == 2) { - HEAP8[$28 >> 0] = 1; - if ($is_dst_type_derived_from_static_type$2$off0) break; - } else label = 24; else label = 24; - } - if ((label | 0) == 24) if ($is_dst_type_derived_from_static_type$2$off0) break; - HEAP32[$20 >> 2] = 4; - break L1; - } while (0); - HEAP32[$20 >> 2] = 3; + } + return; +} + +function __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE21__push_back_slow_pathIKS2_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0; + if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 3 >>> 0 < 268435455) { + $17 = $14 >> 2; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 536870911; + __ZNSt3__114__split_bufferINS_4pairIfjEERNS_9allocatorIS2_EEEC2EjjS5_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + $26 = $__x; + $31 = HEAP32[$26 + 4 >> 2] | 0; + $32 = $25; + HEAP32[$32 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$32 + 4 >> 2] = $31; + HEAP32[$24 >> 2] = $25 + 8; + __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferINS_4pairIfjEERNS_9allocatorIS2_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function _vsnprintf($s, $n, $fmt, $ap) { + $s = $s | 0; + $n = $n | 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + var $$$02 = 0, $$0 = 0, $$01 = 0, $$02 = 0, $10 = 0, $11 = 0, $13 = 0, $15 = 0, $3 = 0, $5 = 0, $8 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $b = sp + 112 | 0; + $f = sp; + dest = $f; + src = 6504; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + } while ((dest | 0) < (stop | 0)); + if (($n + -1 | 0) >>> 0 > 2147483646) if (!$n) { + $$01 = $b; + $$02 = 1; + label = 4; + } else { + $3 = ___errno_location() | 0; + HEAP32[$3 >> 2] = 75; + $$0 = -1; + } else { + $$01 = $s; + $$02 = $n; + label = 4; + } + if ((label | 0) == 4) { + $5 = -2 - $$01 | 0; + $$$02 = $$02 >>> 0 > $5 >>> 0 ? $5 : $$02; + HEAP32[$f + 48 >> 2] = $$$02; + $8 = $f + 20 | 0; + HEAP32[$8 >> 2] = $$01; + HEAP32[$f + 44 >> 2] = $$01; + $10 = $$01 + $$$02 | 0; + $11 = $f + 16 | 0; + HEAP32[$11 >> 2] = $10; + HEAP32[$f + 28 >> 2] = $10; + $13 = _vfprintf($f, $fmt, $ap) | 0; + if (!$$$02) $$0 = $13; else { + $15 = HEAP32[$8 >> 2] | 0; + HEAP8[$15 + ((($15 | 0) == (HEAP32[$11 >> 2] | 0)) << 31 >> 31) >> 0] = 0; + $$0 = $13; + } + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__125__num_get_signed_integralIlEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $$0 = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $6 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + L1 : do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + } else { + $1 = ___errno_location() | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = 0; + $4 = _strtoll_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $5 = tempRet0; + $6 = HEAP32[$1 >> 2] | 0; + if (!$6) HEAP32[$1 >> 2] = $2; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + do if (($6 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + if (($5 | 0) > 0 | ($5 | 0) == 0 & $4 >>> 0 > 0) { + $$0 = 2147483647; + break L1; + } + } else { + if (($5 | 0) < -1 | ($5 | 0) == -1 & $4 >>> 0 < 2147483648) { + HEAP32[$__err >> 2] = 4; break; } + if (($5 | 0) > 0 | ($5 | 0) == 0 & $4 >>> 0 > 2147483647) { + HEAP32[$__err >> 2] = 4; + $$0 = 2147483647; + break L1; + } else { + $$0 = $4; + break L1; + } + } while (0); + $$0 = -2147483648; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28); + } + return; +} + +function _start_pass_dpost($cinfo, $pass_mode) { + $cinfo = $cinfo | 0; + $pass_mode = $pass_mode | 0; + var $1 = 0, $17 = 0, $26 = 0, $33 = 0, $37 = 0, $6 = 0; + $1 = HEAP32[$cinfo + 432 >> 2] | 0; + L1 : do switch ($pass_mode | 0) { + case 0: + { + if (!(HEAP32[$cinfo + 84 >> 2] | 0)) { + HEAP32[$1 + 4 >> 2] = HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 4 >> 2]; + break L1; + } + HEAP32[$1 + 4 >> 2] = 4; + $6 = $1 + 12 | 0; + if (!(HEAP32[$6 >> 2] | 0)) { + $17 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 28 >> 2] & 31]($cinfo, HEAP32[$1 + 8 >> 2] | 0, 0, HEAP32[$1 + 16 >> 2] | 0, 1) | 0; + HEAP32[$6 >> 2] = $17; + } + break; + } + case 3: + { + if (!(HEAP32[$1 + 8 >> 2] | 0)) { + $26 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$26 + 20 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$26 >> 2] & 255]($cinfo); + } + HEAP32[$1 + 4 >> 2] = 5; + break; + } + case 2: + { + if (!(HEAP32[$1 + 8 >> 2] | 0)) { + $33 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$33 + 20 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$33 >> 2] & 255]($cinfo); + } + HEAP32[$1 + 4 >> 2] = 6; + break; + } + default: + { + $37 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$37 + 20 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$37 >> 2] & 255]($cinfo); } - if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; } while (0); + HEAP32[$1 + 24 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; return; } -function _arVecTridiagonalize($a, $d, $e) { - $a = $a | 0; - $d = $d | 0; - $e = $e | 0; - var $$0 = 0, $$pre$phiZ2D = 0, $1 = 0, $106 = 0, $107 = 0, $110 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $125 = 0.0, $126 = 0, $13 = 0, $131 = 0, $14 = 0, $16 = 0, $17 = 0, $23 = 0, $25 = 0, $26 = 0.0, $32 = 0, $34 = 0, $35 = 0, $37 = 0, $40 = 0, $45 = 0.0, $54 = 0.0, $63 = 0.0, $65 = 0, $68 = 0.0, $70 = 0, $72 = 0.0, $73 = 0, $75 = 0, $84 = 0, $90 = 0, $92 = 0, $95 = 0, $97 = 0, $i$039 = 0, $i$143 = 0, $i$144 = 0, $i$223 = 0, $i$325 = 0, $j$032 = 0, $j$135 = 0, $j$240 = 0, $j$320 = 0, $k$047 = 0, $k$129$in = 0, $s$0$lcssa = 0.0, $s$031 = 0.0, $s$1$lcssa = 0.0, $s$134 = 0.0, $wv1 = 0, $wv2 = 0, label = 0, sp = 0, $k$047$looptemp = 0, $k$129$in$looptemp = 0; +function __ZNSt3__16vectorIhNS_9allocatorIhEEE8__appendEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i = 0, $$pre$i = 0, $1 = 0, $12 = 0, $15 = 0, $16 = 0, $18 = 0, $2 = 0, $24 = 0, $5 = 0, $9 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = HEAP32[$this + 8 >> 2] | 0; + $2 = $this + 4 | 0; + $5 = HEAP32[$2 >> 2] | 0; + if (($1 - $5 | 0) >>> 0 < $__n >>> 0) { + $9 = HEAP32[$this >> 2] | 0; + $12 = $5 - $9 + $__n | 0; + if (($12 | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $15 = $9; + $16 = $1 - $15 | 0; + if ($16 >>> 0 < 1073741823) { + $18 = $16 << 1; + $$0$i = $18 >>> 0 < $12 >>> 0 ? $12 : $18; + } else $$0$i = 2147483647; + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEEC2EjjS3_($__v, $$0$i, (HEAP32[$2 >> 2] | 0) - $15 | 0, $this + 8 | 0); + $24 = $__v + 8 | 0; + $$pre$i = HEAP32[$24 >> 2] | 0; + _memset($$pre$i | 0, 0, $__n | 0) | 0; + HEAP32[$24 >> 2] = $$pre$i + $__n; + __ZNSt3__16vectorIhNS_9allocatorIhEEE26__swap_out_circular_bufferERNS_14__split_bufferIhRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEED2Ev($__v); + } else __ZNSt3__16vectorIhNS_9allocatorIhEEE18__construct_at_endEj($this, $__n); + STACKTOP = sp; + return; +} + +function __ZNSt3__113unordered_mapIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS4_EEEENS_4hashIiEENS_8equal_toIiEENS5_INS_4pairIKiS7_EEEEEixERSD_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$sink = 0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $1 = sp; + $2 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS9_PvEEEERKT_($this, $__k) | 0; + if (!$2) { + __ZNSt3__113unordered_mapIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS4_EEEENS_4hashIiEENS_8equal_toIiEENS5_INS_4pairIKiS7_EEEEE25__construct_node_with_keyERSD_($0, $this, $__k); + $4 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS9_PvEE($1, $this, $4); + $$sink = HEAP32[$1 >> 2] | 0; + } else $$sink = $2; + STACKTOP = sp; + return $$sink + 12 | 0; +} + +function __ZNSt3__113unordered_mapIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEENS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS5_EEEEEixERSC_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$sink = 0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $1 = sp; + $2 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS7_PvEEEERKT_($this, $__k) | 0; + if (!$2) { + __ZNSt3__113unordered_mapIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEENS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS5_EEEEE25__construct_node_with_keyERSC_($0, $this, $__k); + $4 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS7_PvEE($1, $this, $4); + $$sink = HEAP32[$1 >> 2] | 0; + } else $$sink = $2; + STACKTOP = sp; + return $$sink + 12 | 0; +} + +function __ZN6vision25DoGScaleInvariantDetector5allocEPKNS_25GaussianScaleSpacePyramidE($this, $pyramid) { + $this = $this | 0; + $pyramid = $pyramid | 0; + var $12 = 0, $18 = 0, $2 = 0, $21 = 0, $22 = 0, $24 = 0, $27 = 0, $3 = 0, $i$01 = 0; + __ZN6vision10DoGPyramid5allocEPKNS_25GaussianScaleSpacePyramidE($this + 32 | 0, $pyramid); + $2 = $pyramid + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + __ZN6vision21OrientationAssignment5allocEjjiiiffif($this + 92 | 0, HEAP32[$3 + 4 >> 2] | 0, HEAP32[$3 + 8 >> 2] | 0, HEAP32[$pyramid + 16 >> 2] | 0, HEAP32[$pyramid + 20 >> 2] | 0, 36, 3.0, 1.5, 5, .800000011920929); + $12 = HEAP32[$2 >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$12 + 4 >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$12 + 8 >> 2]; + $18 = $this + 16 | 0; + __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE6resizeEj($18, HEAP32[$this + 8 >> 2] | 0); + $21 = $this + 20 | 0; + $22 = $this + 12 | 0; + $24 = HEAP32[$18 >> 2] | 0; + if ((HEAP32[$21 >> 2] | 0) != ($24 | 0)) { + $27 = $24; + $i$01 = 0; + do { + __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE6resizeEj($27 + ($i$01 * 12 | 0) | 0, HEAP32[$22 >> 2] | 0); + $i$01 = $i$01 + 1 | 0; + $27 = HEAP32[$18 >> 2] | 0; + } while ($i$01 >>> 0 < (((HEAP32[$21 >> 2] | 0) - $27 | 0) / 12 | 0) >>> 0); + } + return; +} + +function __ZN6vision18BinomialPyramid32f5allocEjji($this, $width, $height, $num_octaves) { + $this = $this | 0; + $width = $width | 0; + $height = $height | 0; + $num_octaves = $num_octaves | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $20 = 0, $5 = 0, $6 = 0, $7 = 0, $i$02 = 0, $j$01 = 0; + __ZN6vision25GaussianScaleSpacePyramid9configureEii($this, $num_octaves, 3); + $0 = $this + 4 | 0; + $1 = $this + 20 | 0; + __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE6resizeEj($0, Math_imul(HEAP32[$1 >> 2] | 0, $num_octaves) | 0); + if (($num_octaves | 0) > 0) { + $i$02 = 0; + do { + $5 = $width >>> $i$02; + $6 = $height >>> $i$02; + $7 = HEAP32[$1 >> 2] | 0; + if ($7) { + $10 = $7; + $j$01 = 0; + do { + $11 = (Math_imul($10, $i$02) | 0) + $j$01 | 0; + __ZN6vision5Image5allocENS_9ImageTypeEjjij((HEAP32[$0 >> 2] | 0) + ($11 << 5) | 0, 2, $5, $6, -1, 1); + $j$01 = $j$01 + 1 | 0; + $10 = HEAP32[$1 >> 2] | 0; + } while ($j$01 >>> 0 < $10 >>> 0); + } + $i$02 = $i$02 + 1 | 0; + } while (($i$02 | 0) < ($num_octaves | 0)); + } + $20 = Math_imul($height, $width) | 0; + __ZNSt3__16vectorItNS_9allocatorItEEE6resizeEj($this + 32 | 0, $20); + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($this + 44 | 0, $20); + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($this + 56 | 0, $20); + return; +} + +function _build_ycc_rgb_table($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $10 = 0, $13 = 0, $14 = 0, $17 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $30 = 0, $33 = 0, $5 = 0, $6 = 0, $9 = 0, $i$01 = 0, $x$02 = 0; + $1 = HEAP32[$cinfo + 456 >> 2] | 0; + $2 = $cinfo + 4 | 0; + $5 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$2 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $6 = $1 + 8 | 0; + HEAP32[$6 >> 2] = $5; + $9 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$2 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $10 = $1 + 12 | 0; + HEAP32[$10 >> 2] = $9; + $13 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$2 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + $14 = $1 + 16 | 0; + HEAP32[$14 >> 2] = $13; + $17 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$2 >> 2] >> 2] & 63]($cinfo, 1, 1024) | 0; + HEAP32[$1 + 20 >> 2] = $17; + $19 = HEAP32[$6 >> 2] | 0; + $20 = HEAP32[$10 >> 2] | 0; + $21 = HEAP32[$14 >> 2] | 0; + $i$01 = 0; + $x$02 = -128; + while (1) { + HEAP32[$19 + ($i$01 << 2) >> 2] = ($x$02 * 91881 | 0) + 32768 >> 16; + HEAP32[$20 + ($i$01 << 2) >> 2] = ($x$02 * 116130 | 0) + 32768 >> 16; + $30 = Math_imul($x$02, -46802) | 0; + HEAP32[$21 + ($i$01 << 2) >> 2] = $30; + $33 = (Math_imul($x$02, -22554) | 0) + 32768 | 0; + HEAP32[$17 + ($i$01 << 2) >> 2] = $33; + $i$01 = $i$01 + 1 | 0; + if (($i$01 | 0) == 256) break; else $x$02 = $x$02 + 1 | 0; + } + return; +} + +function __ZN6vision24OrthogonalizeIdentity8x9IfEET_PS1_PKS1_i($x, $Q, $i) { + $x = $x | 0; + $Q = $Q | 0; + $i = $i | 0; + var $$0 = 0.0, $3 = 0, $41 = 0.0, $43 = 0.0; + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($x, $Q, -+HEAPF32[$Q + ($i << 2) >> 2]); + $3 = $x + ($i << 2) | 0; + HEAPF32[$3 >> 2] = +HEAPF32[$3 >> 2] + 1.0; + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 36 | 0, -+HEAPF32[$Q + ($i + 9 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 72 | 0, -+HEAPF32[$Q + ($i + 18 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 108 | 0, -+HEAPF32[$Q + ($i + 27 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 144 | 0, -+HEAPF32[$Q + ($i + 36 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 180 | 0, -+HEAPF32[$Q + ($i + 45 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 216 | 0, -+HEAPF32[$Q + ($i + 54 << 2) >> 2]); + __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($x, $Q + 252 | 0, -+HEAPF32[$Q + ($i + 63 << 2) >> 2]); + $41 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($x, $x); + if ($41 == 0.0) $$0 = 0.0; else { + $43 = +Math_sqrt(+$41); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($x, $x, 1.0 / $43); + $$0 = $43; + } + return +$$0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE6rehashEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; + if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { + if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; + $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; + if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; + $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; + if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE8__rehashEj($this, $28); + } + return; +} + +function __ZN6vision21HoughSimilarityVoting4initEffffiiii($this, $minX, $maxX, $minY, $maxY, $numXBins, $numYBins, $numAngleBins, $numScaleBins) { + $this = $this | 0; + $minX = +$minX; + $maxX = +$maxX; + $minY = +$minY; + $maxY = +$maxY; + $numXBins = $numXBins | 0; + $numYBins = $numYBins | 0; + $numAngleBins = $numAngleBins | 0; + $numScaleBins = $numScaleBins | 0; + var $10 = 0, $12 = 0, $16 = 0.0; + HEAPF32[$this + 20 >> 2] = $minX; + HEAPF32[$this + 24 >> 2] = $maxX; + HEAPF32[$this + 28 >> 2] = $minY; + HEAPF32[$this + 32 >> 2] = $maxY; + HEAPF32[$this + 36 >> 2] = -1.0; + HEAPF32[$this + 40 >> 2] = 1.0; + HEAP32[$this + 52 >> 2] = $numXBins; + HEAP32[$this + 56 >> 2] = $numYBins; + HEAP32[$this + 60 >> 2] = $numAngleBins; + HEAP32[$this + 64 >> 2] = $numScaleBins; + $10 = Math_imul($numYBins, $numXBins) | 0; + HEAP32[$this + 84 >> 2] = $10; + $12 = Math_imul($10, $numAngleBins) | 0; + HEAP32[$this + 88 >> 2] = $12; + HEAPF32[$this + 44 >> 2] = 10.0; + $16 = 1.0 / +Math_log(10.0); + HEAPF32[$this + 48 >> 2] = $16; + HEAP8[$this + 16 >> 0] = ($numYBins | $numXBins | 0) == 0 & 1; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE5clearEv($this + 92 | 0); + return; +} + +function _jpeg_read_scanlines($cinfo, $scanlines, $max_lines) { + $cinfo = $cinfo | 0; + $scanlines = $scanlines | 0; + $max_lines = $max_lines | 0; + var $$0 = 0, $1 = 0, $10 = 0, $12 = 0, $17 = 0, $26 = 0, $3 = 0, $7 = 0, $8 = 0, $row_ctr = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $wv1 = sp + 8 | 0; - $wv2 = sp; - $1 = HEAP32[$a + 8 >> 2] | 0; - if (($1 | 0) == (HEAP32[$a + 4 >> 2] | 0)) if (($1 | 0) == (HEAP32[$d + 4 >> 2] | 0)) if (($1 | 0) == ((HEAP32[$e + 4 >> 2] | 0) + 1 | 0)) { - $12 = $1 + -2 | 0; - $13 = $wv1 + 4 | 0; - $14 = $wv2 + 4 | 0; - if (($1 | 0) > 2) { - $i$143 = $1 + -1 | 0; - $k$047 = 0; + $row_ctr = sp; + $1 = HEAP32[$cinfo + 20 >> 2] | 0; + if (($1 | 0) != 205) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 20; + HEAP32[$3 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = $cinfo + 140 | 0; + $8 = HEAP32[$7 >> 2] | 0; + $10 = HEAP32[$cinfo + 116 >> 2] | 0; + if ($8 >>> 0 < $10 >>> 0) { + $17 = HEAP32[$cinfo + 8 >> 2] | 0; + if ($17) { + HEAP32[$17 + 4 >> 2] = $8; + HEAP32[$17 + 8 >> 2] = $10; + FUNCTION_TABLE_vi[HEAP32[$17 >> 2] & 255]($cinfo); + } + HEAP32[$row_ctr >> 2] = 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$cinfo + 424 >> 2] | 0) + 4 >> 2] & 31]($cinfo, $scanlines, $row_ctr, $max_lines); + $26 = HEAP32[$row_ctr >> 2] | 0; + HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + $26; + $$0 = $26; + } else { + $12 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$12 + 20 >> 2] = 123; + FUNCTION_TABLE_vii[HEAP32[$12 + 4 >> 2] & 63]($cinfo, -1); + $$0 = 0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _examine_app14($cinfo, $data, $datalen, $remaining) { + $cinfo = $cinfo | 0; + $data = $data | 0; + $datalen = $datalen | 0; + $remaining = $remaining | 0; + var $30 = 0, $38 = 0, $40 = 0, $42 = 0, $52 = 0, label = 0; + if ($datalen >>> 0 > 11) if ((HEAP8[$data >> 0] | 0) == 65) if ((HEAP8[$data + 1 >> 0] | 0) == 100) if ((HEAP8[$data + 2 >> 0] | 0) == 111) if ((HEAP8[$data + 3 >> 0] | 0) == 98) if ((HEAP8[$data + 4 >> 0] | 0) == 101) { + $30 = HEAPU8[$data + 7 >> 0] << 8 | HEAPU8[$data + 8 >> 0]; + $38 = HEAPU8[$data + 9 >> 0] << 8 | HEAPU8[$data + 10 >> 0]; + $40 = HEAP8[$data + 11 >> 0] | 0; + $42 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$42 + 24 >> 2] = HEAPU8[$data + 5 >> 0] << 8 | HEAPU8[$data + 6 >> 0]; + HEAP32[$42 + 28 >> 2] = $30; + HEAP32[$42 + 32 >> 2] = $38; + HEAP32[$42 + 36 >> 2] = $40 & 255; + HEAP32[$42 + 20 >> 2] = 76; + FUNCTION_TABLE_vii[HEAP32[$42 + 4 >> 2] & 63]($cinfo, 1); + HEAP32[$cinfo + 292 >> 2] = 1; + HEAP8[$cinfo + 296 >> 0] = $40; + } else label = 8; else label = 8; else label = 8; else label = 8; else label = 8; else label = 8; + if ((label | 0) == 8) { + $52 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$52 + 20 >> 2] = 78; + HEAP32[$52 + 24 >> 2] = $remaining + $datalen; + FUNCTION_TABLE_vii[HEAP32[$52 + 4 >> 2] & 63]($cinfo, 1); + } + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $15 = 0, $2 = 0, $20 = 0, $21 = 0, $6 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = $this + 8 | 0; + $6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$2 >> 2] | 0) + 20 >> 2] & 127]($2) | 0; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + $9 = HEAP8[$6 >> 0] | 0; + $11 = ($9 & 1) == 0; + $14 = $6 + 4 | 0; + $15 = $11 ? $14 : HEAP32[$6 + 8 >> 2] | 0; + $20 = $15 + (($11 ? ($9 & 255) >>> 1 : HEAP32[$14 >> 2] | 0) << 2) | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $21 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, $15, $20) | 0; + STACKTOP = sp; + return $21 | 0; +} + +function _kpmChangePageNoOfRefDataSet($refDataSet, $oldPageNo, $newPageNo) { + $refDataSet = $refDataSet | 0; + $oldPageNo = $oldPageNo | 0; + $newPageNo = $newPageNo | 0; + var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $5 = 0, $7 = 0, $i$06 = 0, $i1$05 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + if (!$refDataSet) { + _arLog(3, 21138, sp); + $$0 = -1; + } else { + $2 = HEAP32[$refDataSet + 4 >> 2] | 0; + $3 = ($oldPageNo | 0) == -1; + if (($2 | 0) > 0) { + $5 = HEAP32[$refDataSet >> 2] | 0; + $i$06 = 0; do { - $16 = Math_imul($k$047, $1) | 0; - $17 = HEAP32[$a >> 2] | 0; - HEAPF64[(HEAP32[$d >> 2] | 0) + ($k$047 << 3) >> 3] = +HEAPF64[$17 + ($16 + $k$047 << 3) >> 3]; - $23 = $1 - $k$047 + -1 | 0; - HEAP32[$13 >> 2] = $23; - $k$047$looptemp = $k$047; - $k$047 = $k$047 + 1 | 0; - $25 = $17 + ($16 + $k$047 << 3) | 0; - HEAP32[$wv1 >> 2] = $25; - $26 = +_arVecHousehold($wv1); - HEAPF64[(HEAP32[$e >> 2] | 0) + ($k$047$looptemp << 3) >> 3] = $26; - if (!($26 == 0.0)) { - if (($k$047 | 0) < ($1 | 0)) { - $32 = HEAP32[$d >> 2] | 0; - $i$039 = $k$047; - do { - if (($k$047 | 0) < ($i$039 | 0)) { - $34 = HEAP32[$a >> 2] | 0; - $j$032 = $k$047; - $s$031 = 0.0; - while (1) { - $40 = $34 + ((Math_imul($j$032, $1) | 0) + $i$039 << 3) | 0; - $45 = $s$031 + +HEAPF64[$40 >> 3] * +HEAPF64[$17 + ($j$032 + $16 << 3) >> 3]; - $j$032 = $j$032 + 1 | 0; - if (($j$032 | 0) >= ($i$039 | 0)) { - $s$0$lcssa = $45; - break; - } else $s$031 = $45; - } - } else $s$0$lcssa = 0.0; - $35 = Math_imul($i$039, $1) | 0; - if (($i$039 | 0) < ($1 | 0)) { - $37 = HEAP32[$a >> 2] | 0; - $j$135 = $i$039; - $s$134 = $s$0$lcssa; - while (1) { - $54 = $s$134 + +HEAPF64[$37 + ($j$135 + $35 << 3) >> 3] * +HEAPF64[$17 + ($j$135 + $16 << 3) >> 3]; - $j$135 = $j$135 + 1 | 0; - if (($j$135 | 0) >= ($1 | 0)) { - $s$1$lcssa = $54; - break; - } else $s$134 = $54; - } - } else $s$1$lcssa = $s$0$lcssa; - HEAPF64[$32 + ($i$039 << 3) >> 3] = $s$1$lcssa; - $i$039 = $i$039 + 1 | 0; - } while (($i$039 | 0) < ($1 | 0)); - } - HEAP32[$14 >> 2] = $23; - HEAP32[$13 >> 2] = $23; - HEAP32[$wv1 >> 2] = $25; - HEAP32[$wv2 >> 2] = (HEAP32[$d >> 2] | 0) + ($k$047 << 3); - $63 = +_arVecInnerproduct($wv1, $wv2) * .5; - if (($i$143 | 0) > ($k$047$looptemp | 0)) { - $65 = HEAP32[$d >> 2] | 0; - $i$144 = $i$143; - do { - $68 = +HEAPF64[$17 + ($i$144 + $16 << 3) >> 3]; - $70 = $65 + ($i$144 << 3) | 0; - $72 = +HEAPF64[$70 >> 3] - $63 * $68; - HEAPF64[$70 >> 3] = $72; - $73 = Math_imul($i$144, $1) | 0; - if (($i$144 | 0) < ($1 | 0)) { - $75 = HEAP32[$a >> 2] | 0; - $j$240 = $i$144; - do { - $84 = $75 + ($j$240 + $73 << 3) | 0; - HEAPF64[$84 >> 3] = +HEAPF64[$84 >> 3] - ($68 * +HEAPF64[$65 + ($j$240 << 3) >> 3] + $72 * +HEAPF64[$17 + ($j$240 + $16 << 3) >> 3]); - $j$240 = $j$240 + 1 | 0; - } while (($j$240 | 0) < ($1 | 0)); - } - $i$144 = $i$144 + -1 | 0; - } while (($i$144 | 0) > ($k$047$looptemp | 0)); - } - } - } while (($k$047 | 0) < ($12 | 0)); - } - if (($1 | 0) > 1) { - $90 = Math_imul($12, $1) | 0; - $92 = HEAP32[$a >> 2] | 0; - $95 = HEAP32[$d >> 2] | 0; - HEAPF64[$95 + ($12 << 3) >> 3] = +HEAPF64[$92 + ($90 + $12 << 3) >> 3]; - $97 = $1 + -1 | 0; - HEAPF64[(HEAP32[$e >> 2] | 0) + ($12 << 3) >> 3] = +HEAPF64[$92 + ($97 + $90 << 3) >> 3]; - $$pre$phiZ2D = $97; - $107 = $92; - $110 = $95; - label = 27; - } else if (($1 | 0) > 0) { - $$pre$phiZ2D = 0; - $107 = HEAP32[$a >> 2] | 0; - $110 = HEAP32[$d >> 2] | 0; - label = 27; - } - if ((label | 0) == 27) { - $106 = $107 + ((Math_imul($$pre$phiZ2D, $1) | 0) + $$pre$phiZ2D << 3) | 0; - HEAPF64[$110 + ($$pre$phiZ2D << 3) >> 3] = +HEAPF64[$106 >> 3]; - } - if (($1 | 0) > 0) { - $112 = ($1 | 0) > 0; - $k$129$in = $1; + $11 = $5 + ($i$06 * 132 | 0) + 124 | 0; + $12 = HEAP32[$11 >> 2] | 0; + if (($12 | 0) == ($oldPageNo | 0) | $3 & ($12 | 0) > -1) HEAP32[$11 >> 2] = $newPageNo; + $i$06 = $i$06 + 1 | 0; + } while (($i$06 | 0) < ($2 | 0)); + } + $7 = HEAP32[$refDataSet + 12 >> 2] | 0; + if (($7 | 0) > 0) { + $10 = HEAP32[$refDataSet + 8 >> 2] | 0; + $i1$05 = 0; do { - $k$129$in$looptemp = $k$129$in; - $k$129$in = $k$129$in + -1 | 0; - $113 = Math_imul($k$129$in, $1) | 0; - $114 = HEAP32[$a >> 2] | 0; - if (($k$129$in$looptemp | 0) <= ($12 | 0)) { - $117 = $1 - $k$129$in + -1 | 0; - $118 = $114 + ($113 + $k$129$in$looptemp << 3) | 0; - if (($k$129$in$looptemp | 0) < ($1 | 0)) { - $120 = ($k$129$in$looptemp | 0) < ($1 | 0); - $i$223 = $k$129$in$looptemp; - do { - HEAP32[$14 >> 2] = $117; - HEAP32[$13 >> 2] = $117; - HEAP32[$wv1 >> 2] = $118; - $121 = Math_imul($i$223, $1) | 0; - HEAP32[$wv2 >> 2] = (HEAP32[$a >> 2] | 0) + ($121 + $k$129$in$looptemp << 3); - $125 = +_arVecInnerproduct($wv1, $wv2); - if ($120) { - $126 = HEAP32[$a >> 2] | 0; - $j$320 = $k$129$in$looptemp; - do { - $131 = $126 + ($j$320 + $121 << 3) | 0; - HEAPF64[$131 >> 3] = +HEAPF64[$131 >> 3] - $125 * +HEAPF64[$114 + ($j$320 + $113 << 3) >> 3]; - $j$320 = $j$320 + 1 | 0; - } while (($j$320 | 0) < ($1 | 0)); - } - $i$223 = $i$223 + 1 | 0; - } while (($i$223 | 0) < ($1 | 0)); - } - } - if ($112) { - $i$325 = 0; - do { - HEAPF64[$114 + ($i$325 + $113 << 3) >> 3] = 0.0; - $i$325 = $i$325 + 1 | 0; - } while (($i$325 | 0) < ($1 | 0)); - } - HEAPF64[$114 + ($113 + $k$129$in << 3) >> 3] = 1.0; - } while (($k$129$in$looptemp | 0) > 1); + $17 = $10 + ($i1$05 * 12 | 0) + 8 | 0; + $18 = HEAP32[$17 >> 2] | 0; + if (($18 | 0) == ($oldPageNo | 0) | $3 & ($18 | 0) > -1) HEAP32[$17 >> 2] = $newPageNo; + $i1$05 = $i1$05 + 1 | 0; + } while (($i1$05 | 0) < ($7 | 0)); $$0 = 0; } else $$0 = 0; - } else $$0 = -1; else $$0 = -1; else $$0 = -1; + } STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($first, $last, $db, $status) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - $status = $status | 0; - var $$0$i$i$i11 = 0, $$0$i2 = 0, $$03$i = 0, $$lcssa = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $31 = 0, $32 = 0, $41 = 0, $44 = 0, $47 = 0, $49 = 0, $6 = 0, $66 = 0, $67 = 0, $78 = 0, $83 = 0, $95 = 0, $__p$0$i$i$i10 = 0, $__p$0$ph$i$i$i = 0, $i$0$i16 = 0, $t$0 = 0, $t$0$i15 = 0, $t$0$i15$lcssa20 = 0, $t$1$i$ph = 0, $t$1$i12 = 0, $t$2$i = 0, label = 0, sp = 0; +function _addMarker($id, $patt_name) { + $id = $id | 0; + $patt_name = $patt_name | 0; + var $$0 = 0, $0 = 0, $11 = 0, $13 = 0, $14 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 24 | 0; - $1 = sp + 12 | 0; - $2 = sp; - L1 : do if ($first >>> 0 < $last >>> 0) { - L3 : do if ((HEAP8[$first >> 0] | 0) == 95) { - $6 = $last; - if (($6 - $first | 0) <= 3) { - HEAP32[$status >> 2] = -2; - break L1; - } - switch (HEAP8[$first + 1 >> 0] | 0) { - case 90: - { - $12 = $first + 2 | 0; - $13 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($12, $last, $db) | 0; - if (($13 | 0) == ($12 | 0) | ($13 | 0) == ($last | 0)) $t$0 = $13; else if ((HEAP8[$13 >> 0] | 0) == 46) { - $20 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($20 | 0)) $$03$i = $13; else { - $22 = $20 + -24 | 0; - $24 = $6 - $13 | 0; - if ($24 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2); - if ($24 >>> 0 < 11) { - HEAP8[$2 >> 0] = $24 << 1; - $__p$0$ph$i$i$i = $2 + 1 | 0; - } else { - $31 = $24 + 16 & -16; - $32 = _malloc($31) | 0; - HEAP32[$2 + 8 >> 2] = $32; - HEAP32[$2 >> 2] = $31 | 1; - HEAP32[$2 + 4 >> 2] = $24; - $__p$0$ph$i$i$i = $32; - } - if (($13 | 0) != ($last | 0)) { - $$0$i$i$i11 = $13; - $__p$0$i$i$i10 = $__p$0$ph$i$i$i; - while (1) { - HEAP8[$__p$0$i$i$i10 >> 0] = HEAP8[$$0$i$i$i11 >> 0] | 0; - $$0$i$i$i11 = $$0$i$i$i11 + 1 | 0; - if (($$0$i$i$i11 | 0) == ($last | 0)) break; else $__p$0$i$i$i10 = $__p$0$i$i$i10 + 1 | 0; - } - } - HEAP8[$__p$0$ph$i$i$i + $24 >> 0] = 0; - $41 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 12616) | 0; - HEAP32[$1 >> 2] = HEAP32[$41 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$41 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$41 + 8 >> 2]; - HEAP32[$41 >> 2] = 0; - HEAP32[$41 + 4 >> 2] = 0; - HEAP32[$41 + 8 >> 2] = 0; - $44 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$44 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$44 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$44 + 8 >> 2]; - HEAP32[$44 >> 2] = 0; - HEAP32[$44 + 4 >> 2] = 0; - HEAP32[$44 + 8 >> 2] = 0; - $47 = HEAP8[$0 >> 0] | 0; - $49 = ($47 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($22, $49 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $49 ? ($47 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$03$i = $last; - } - $t$0 = $$03$i; - } else $t$0 = $13; - if (($t$0 | 0) == ($last | 0)) break L3; - HEAP32[$status >> 2] = -2; - break L1; - break; - } - case 95: - { - label = 20; - break; - } - default: - {} - } - if ((label | 0) == 20) if ((HEAP8[$first + 2 >> 0] | 0) == 95) if ((HEAP8[$first + 3 >> 0] | 0) == 90) { - $66 = $first + 4 | 0; - $67 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($66, $last, $db) | 0; - if (($67 | 0) == ($66 | 0) | ($67 | 0) == ($last | 0)) { - HEAP32[$status >> 2] = -2; - break L1; - } - L36 : do if (($6 - $67 | 0) > 12) { - $i$0$i16 = 0; - $t$0$i15 = $67; - while (1) { - if ((HEAP8[$t$0$i15 >> 0] | 0) != (HEAP8[12621 + $i$0$i16 >> 0] | 0)) { - $$0$i2 = $67; - break L36; - } - $i$0$i16 = $i$0$i16 + 1 | 0; - $78 = $t$0$i15 + 1 | 0; - if (($i$0$i16 | 0) >= 13) { - $$lcssa = $78; - $t$0$i15$lcssa20 = $t$0$i15; - break; - } else $t$0$i15 = $78; - } - L41 : do if (($$lcssa | 0) == ($last | 0)) $t$2$i = $last; else { - if ((HEAP8[$$lcssa >> 0] | 0) == 95) { - $83 = $t$0$i15$lcssa20 + 2 | 0; - if (($83 | 0) == ($last | 0)) { - $$0$i2 = $67; - break L36; - } - if (((HEAP8[$83 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { - $$0$i2 = $67; - break L36; - } - $t$1$i$ph = $t$0$i15$lcssa20 + 3 | 0; - } else $t$1$i$ph = $$lcssa; - if (($t$1$i$ph | 0) == ($last | 0)) $t$2$i = $last; else { - $t$1$i12 = $t$1$i$ph; - while (1) { - if (((HEAP8[$t$1$i12 >> 0] | 0) + -48 | 0) >>> 0 >= 10) { - $t$2$i = $t$1$i12; - break L41; - } - $t$1$i12 = $t$1$i12 + 1 | 0; - if (($t$1$i12 | 0) == ($last | 0)) { - $t$2$i = $last; - break; - } - } - } - } while (0); - $95 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($95 | 0)) $$0$i2 = $67; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($95 + -24 | 0, 0, 12635) | 0; - $$0$i2 = $t$2$i; - } - } else $$0$i2 = $67; while (0); - if (($$0$i2 | 0) == ($last | 0)) break; - HEAP32[$status >> 2] = -2; - break L1; - } - HEAP32[$status >> 2] = -2; - break L1; - } else if ((__ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0) != ($last | 0)) { - HEAP32[$status >> 2] = -2; - break L1; - } while (0); - if (!(HEAP32[$status >> 2] | 0)) if ((HEAP32[$db >> 2] | 0) == (HEAP32[$db + 4 >> 2] | 0)) HEAP32[$status >> 2] = -2; - } else HEAP32[$status >> 2] = -2; while (0); + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = sp + 12 | 0; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if (!(HEAP8[$patt_name >> 0] & 1)) $13 = $patt_name + 1 | 0; else $13 = HEAP32[$patt_name + 8 >> 2] | 0; + $11 = $3 + 216 | 0; + $14 = _arPattLoad(HEAP32[$11 >> 2] | 0, $13) | 0; + HEAP32[$3 + 292 >> 2] = $14; + if (($14 | 0) < 0) { + HEAP32[$vararg_buffer >> 2] = $13; + _arLog(3, 41121, $vararg_buffer); + _arPattDeleteHandle(HEAP32[$11 >> 2] | 0) | 0; + _arLog(3, 41167, $vararg_buffer1); + $$0 = -1; + } else $$0 = $14; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZL19kpmCreateHandleCoreP9ARParamLTiii15AR_PIXEL_FORMAT($cparamLT, $xsize, $ysize, $poseMode, $pixFormat) { + $cparamLT = $cparamLT | 0; + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $poseMode = $poseMode | 0; + $pixFormat = $pixFormat | 0; + var $0 = 0, $10 = 0, $2 = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: + break; + default: + _arLog(2, 20797, sp); + } + $0 = _calloc(1, 4160) | 0; + if (!$0) { + _arLog(3, 21359, $vararg_buffer1); + _exit(1); + } else { + $2 = __Znwj(4) | 0; + __ZN6vision20VisualDatabaseFacadeC2Ev($2); + HEAP32[$0 >> 2] = $2; + HEAP32[$0 + 4 >> 2] = $cparamLT; + HEAP32[$0 + 8 >> 2] = $poseMode; + HEAP32[$0 + 12 >> 2] = $xsize; + HEAP32[$0 + 16 >> 2] = $ysize; + HEAP32[$0 + 20 >> 2] = $pixFormat; + HEAP32[$0 + 24 >> 2] = 1; + HEAP32[$0 + 28 >> 2] = -1; + $10 = $0 + 32 | 0; + HEAP32[$10 >> 2] = 0; + HEAP32[$10 + 4 >> 2] = 0; + HEAP32[$10 + 8 >> 2] = 0; + HEAP32[$10 + 12 >> 2] = 0; + HEAP32[$10 + 16 >> 2] = 0; + HEAP32[$10 + 20 >> 2] = 0; + HEAP32[$10 + 24 >> 2] = 0; + HEAP32[$10 + 28 >> 2] = 0; + STACKTOP = sp; + return $0 | 0; + } + return 0; +} + +function __ZNSt3__16vectorIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEE21__push_back_slow_pathIKS5_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 2) + 1 | 0; + if ($8 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 2 >>> 0 < 536870911) { + $17 = $14 >> 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIPKN6vision4NodeILi96EEERNS_9allocatorIS5_EEEC2EjjS8_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 2, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + HEAP32[$25 >> 2] = HEAP32[$__x >> 2]; + HEAP32[$24 >> 2] = $25 + 4; + __ZNSt3__16vectorIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($this, $__v); + __ZNSt3__114__split_bufferIPKN6vision4NodeILi96EEERNS_9allocatorIS5_EEED2Ev($__v); STACKTOP = sp; return; } -function _arMatrixSelfInv($m) { - $m = $m | 0; - var $$0$i = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $18 = 0.0, $19 = 0, $2 = 0, $24 = 0, $25 = 0, $26 = 0, $30 = 0.0, $35 = 0.0, $43 = 0, $44 = 0.0, $59 = 0, $61 = 0, $63 = 0, $65 = 0, $70 = 0.0, $exitcond$i23 = 0, $exitcond12$i36 = 0, $exitcond13$i43 = 0, $exitcond7$i30 = 0, $i$0$i14 = 0, $i$1$i45 = 0, $i$2$i8 = 0, $indvars$iv$i49 = 0, $indvars$iv9$i44 = 0, $ip$0$i51 = 0, $ip$1$i$lcssa = 0, $ip$1$i15 = 0, $ip$2$i = 0, $j$0$i24 = 0, $j$1$i31 = 0, $j$2$i37 = 0, $j$3$i$lcssa = 0, $j$3$i4 = 0, $n$0$i53 = 0, $n$1$i50 = 0, $n$2$i12 = 0, $nos$i = 0, $p$0$i$lcssa = 0.0, $p$0$i17 = 0.0, $p$1$i = 0.0, $scevgep$i = 0, $wap$0$i16 = 0, $wap$1$i26 = 0, $wap$2$i32 = 0, $wap$3$i39 = 0, $wap$4$i10 = 0, $wbp$0$i25 = 0, $wbp$1$i38 = 0, $wbp$2$i9 = 0, sp = 0, $wap$2$i32$looptemp = 0, $wap$3$i39$looptemp = 0; +function _icpGetDeltaS($S, $dU, $J_U_S, $n) { + $S = $S | 0; + $dU = $dU | 0; + $J_U_S = $J_U_S | 0; + $n = $n | 0; + var $$0 = 0, $10 = 0, $6 = 0, $8 = 0, $matJ = 0, $matS = 0, $matU = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 2e3 | 0; + STACKTOP = STACKTOP + 48 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $nos$i = sp; - $0 = HEAP32[$m >> 2] | 0; - $2 = HEAP32[$m + 4 >> 2] | 0; - L1 : do if (($2 | 0) > 500) $$0$i = 0; else { - switch ($2 | 0) { - case 0: - { - $$0$i = 0; - break L1; - break; - } - case 1: - { - HEAPF64[$0 >> 3] = 1.0 / +HEAPF64[$0 >> 3]; - $$0$i = $0; - break L1; - break; - } - default: - {} + $matS = sp + 24 | 0; + $matU = sp + 12 | 0; + $matJ = sp; + HEAP32[$matS + 4 >> 2] = 6; + HEAP32[$matS + 8 >> 2] = 1; + HEAP32[$matS >> 2] = $S; + HEAP32[$matU + 4 >> 2] = $n; + HEAP32[$matU + 8 >> 2] = 1; + HEAP32[$matU >> 2] = $dU; + HEAP32[$matJ + 4 >> 2] = $n; + HEAP32[$matJ + 8 >> 2] = 6; + HEAP32[$matJ >> 2] = $J_U_S; + $6 = _arMatrixAllocTrans($matJ) | 0; + do if (!$6) $$0 = -1; else { + $8 = _arMatrixAllocMul($6, $matJ) | 0; + if (!$8) { + _arMatrixFree($6) | 0; + $$0 = -1; + break; } - if (($2 | 0) > 0) { - $n$0$i53 = 0; - do { - HEAP32[$nos$i + ($n$0$i53 << 2) >> 2] = $n$0$i53; - $n$0$i53 = $n$0$i53 + 1 | 0; - } while (($n$0$i53 | 0) < ($2 | 0)); + $10 = _arMatrixAllocMul($6, $matU) | 0; + if (!$10) { + _arMatrixFree($6) | 0; + _arMatrixFree($8) | 0; + $$0 = -1; + break; } - $scevgep$i = $0 + ($2 + -1 << 3) | 0; - if (($2 | 0) > 0) { - $exitcond$i23 = ($2 | 0) == 0; - $exitcond7$i30 = ($2 | 0) == 1; - $exitcond13$i43 = ($2 | 0) == 0; - $exitcond12$i36 = ($2 | 0) == 1; - $indvars$iv$i49 = $scevgep$i; - $ip$0$i51 = 0; - $n$1$i50 = 0; - while (1) { - $15 = $0 + ((Math_imul($n$1$i50, $2) | 0) << 3) | 0; - if (($n$1$i50 | 0) < ($2 | 0)) { - $i$0$i14 = $n$1$i50; - $ip$1$i15 = $ip$0$i51; - $p$0$i17 = 0.0; - $wap$0$i16 = $15; - while (1) { - $18 = +Math_abs(+(+HEAPF64[$wap$0$i16 >> 3])); - $19 = $p$0$i17 < $18; - $ip$2$i = $19 ? $i$0$i14 : $ip$1$i15; - $p$1$i = $19 ? $18 : $p$0$i17; - $i$0$i14 = $i$0$i14 + 1 | 0; - if (($i$0$i14 | 0) >= ($2 | 0)) { - $ip$1$i$lcssa = $ip$2$i; - $p$0$i$lcssa = $p$1$i; - break; - } else { - $ip$1$i15 = $ip$2$i; - $p$0$i17 = $p$1$i; - $wap$0$i16 = $wap$0$i16 + ($2 << 3) | 0; - } - } - } else { - $ip$1$i$lcssa = $ip$0$i51; - $p$0$i$lcssa = 0.0; - } - if ($p$0$i$lcssa <= 1.0e-10) { - $$0$i = 0; - break L1; - } - $24 = $nos$i + ($ip$1$i$lcssa << 2) | 0; - $25 = HEAP32[$24 >> 2] | 0; - $26 = $nos$i + ($n$1$i50 << 2) | 0; - HEAP32[$24 >> 2] = HEAP32[$26 >> 2]; - HEAP32[$26 >> 2] = $25; - if (!$exitcond$i23) { - $j$0$i24 = 0; - $wap$1$i26 = $0 + ((Math_imul($ip$1$i$lcssa, $2) | 0) << 3) | 0; - $wbp$0$i25 = $15; - while (1) { - $30 = +HEAPF64[$wap$1$i26 >> 3]; - HEAPF64[$wap$1$i26 >> 3] = +HEAPF64[$wbp$0$i25 >> 3]; - HEAPF64[$wbp$0$i25 >> 3] = $30; - $j$0$i24 = $j$0$i24 + 1 | 0; - if (($j$0$i24 | 0) == ($2 | 0)) break; else { - $wap$1$i26 = $wap$1$i26 + 8 | 0; - $wbp$0$i25 = $wbp$0$i25 + 8 | 0; - } - } - } - $35 = +HEAPF64[$15 >> 3]; - if (!$exitcond7$i30) { - $j$1$i31 = 1; - $wap$2$i32 = $15; - do { - $wap$2$i32$looptemp = $wap$2$i32; - $wap$2$i32 = $wap$2$i32 + 8 | 0; - HEAPF64[$wap$2$i32$looptemp >> 3] = +HEAPF64[$wap$2$i32 >> 3] / $35; - $j$1$i31 = $j$1$i31 + 1 | 0; - } while (($j$1$i31 | 0) != ($2 | 0)); - } - HEAPF64[$indvars$iv$i49 >> 3] = 1.0 / $35; - if (!$exitcond13$i43) { - $i$1$i45 = 0; - $indvars$iv9$i44 = $scevgep$i; - while (1) { - if (($i$1$i45 | 0) != ($n$1$i50 | 0)) { - $43 = $0 + ((Math_imul($i$1$i45, $2) | 0) << 3) | 0; - $44 = +HEAPF64[$43 >> 3]; - if (!$exitcond12$i36) { - $j$2$i37 = 1; - $wap$3$i39 = $43; - $wbp$1$i38 = $15; - while (1) { - $wap$3$i39$looptemp = $wap$3$i39; - $wap$3$i39 = $wap$3$i39 + 8 | 0; - HEAPF64[$wap$3$i39$looptemp >> 3] = +HEAPF64[$wap$3$i39 >> 3] - $44 * +HEAPF64[$wbp$1$i38 >> 3]; - $j$2$i37 = $j$2$i37 + 1 | 0; - if (($j$2$i37 | 0) == ($2 | 0)) break; else $wbp$1$i38 = $wbp$1$i38 + 8 | 0; - } - } - HEAPF64[$indvars$iv9$i44 >> 3] = -($44 * +HEAPF64[$indvars$iv$i49 >> 3]); - } - $i$1$i45 = $i$1$i45 + 1 | 0; - if (($i$1$i45 | 0) == ($2 | 0)) break; else $indvars$iv9$i44 = $indvars$iv9$i44 + ($2 << 3) | 0; - } - } - $n$1$i50 = $n$1$i50 + 1 | 0; - if (($n$1$i50 | 0) >= ($2 | 0)) break; else { - $indvars$iv$i49 = $indvars$iv$i49 + ($2 << 3) | 0; - $ip$0$i51 = $ip$1$i$lcssa; - } - } + if ((_arMatrixSelfInv($8) | 0) < 0) { + _arMatrixFree($6) | 0; + _arMatrixFree($8) | 0; + _arMatrixFree($10) | 0; + $$0 = -1; + break; + } else { + _arMatrixMul($matS, $8, $10) | 0; + _arMatrixFree($6) | 0; + _arMatrixFree($8) | 0; + _arMatrixFree($10) | 0; + $$0 = 0; + break; } - if (($2 | 0) > 0) { - $13 = ($2 | 0) > 0; - $n$2$i12 = 0; - while (1) { - $59 = $nos$i + ($n$2$i12 << 2) | 0; - L43 : do if (($n$2$i12 | 0) < ($2 | 0)) { - $61 = $59; - $j$3$i4 = $n$2$i12; - while (1) { - if ((HEAP32[$61 >> 2] | 0) == ($n$2$i12 | 0)) { - $$lcssa = $61; - $j$3$i$lcssa = $j$3$i4; - break L43; - } - $63 = $j$3$i4 + 1 | 0; - $65 = $nos$i + ($63 << 2) | 0; - if (($63 | 0) < ($2 | 0)) { - $61 = $65; - $j$3$i4 = $63; - } else { - $$lcssa = $65; - $j$3$i$lcssa = $63; - break; - } - } - } else { - $$lcssa = $59; - $j$3$i$lcssa = $n$2$i12; - } while (0); - HEAP32[$$lcssa >> 2] = HEAP32[$nos$i + ($n$2$i12 << 2) >> 2]; - if ($13) { - $i$2$i8 = 0; - $wap$4$i10 = $0 + ($j$3$i$lcssa << 3) | 0; - $wbp$2$i9 = $0 + ($n$2$i12 << 3) | 0; - while (1) { - $70 = +HEAPF64[$wap$4$i10 >> 3]; - HEAPF64[$wap$4$i10 >> 3] = +HEAPF64[$wbp$2$i9 >> 3]; - HEAPF64[$wbp$2$i9 >> 3] = $70; - $i$2$i8 = $i$2$i8 + 1 | 0; - if (($i$2$i8 | 0) >= ($2 | 0)) break; else { - $wap$4$i10 = $wap$4$i10 + ($2 << 3) | 0; - $wbp$2$i9 = $wbp$2$i9 + ($2 << 3) | 0; - } - } - } - $n$2$i12 = $n$2$i12 + 1 | 0; - if (($n$2$i12 | 0) >= ($2 | 0)) { - $$0$i = $0; - break; - } - } - } else $$0$i = $0; } while (0); STACKTOP = sp; - return (($$0$i | 0) == 0) << 31 >> 31 | 0; + return $$0 | 0; } -function _try_realloc_chunk($p, $nb) { - $p = $p | 0; - $nb = $nb | 0; - var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $101 = 0, $103 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $116 = 0, $118 = 0, $119 = 0, $124 = 0, $125 = 0, $134 = 0, $139 = 0, $143 = 0, $149 = 0, $159 = 0, $168 = 0, $2 = 0, $20 = 0, $3 = 0, $33 = 0, $35 = 0, $4 = 0, $45 = 0, $47 = 0, $5 = 0, $56 = 0, $62 = 0, $68 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $76 = 0, $78 = 0, $8 = 0, $91 = 0, $96 = 0, $98 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $newp$0 = 0, $storemerge = 0, $storemerge21 = 0; - $0 = $p + 4 | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = $1 & -8; - $3 = $p + $2 | 0; - $4 = HEAP32[760] | 0; - $5 = $1 & 3; - if (!(($5 | 0) != 1 & $p >>> 0 >= $4 >>> 0 & $p >>> 0 < $3 >>> 0)) _abort(); - $7 = $p + ($2 | 4) | 0; - $8 = HEAP32[$7 >> 2] | 0; - if (!($8 & 1)) _abort(); - if (!$5) { - if ($nb >>> 0 < 256) { - $newp$0 = 0; - return $newp$0 | 0; - } - if ($2 >>> 0 >= ($nb + 4 | 0) >>> 0) if (($2 - $nb | 0) >>> 0 <= HEAP32[876] << 1 >>> 0) { - $newp$0 = $p; - return $newp$0 | 0; +function __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE21__push_back_slow_pathIKS4_EEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 2) + 1 | 0; + if ($8 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 2 >>> 0 < 536870911) { + $17 = $14 >> 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEEC2EjjS7_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 2, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + HEAP32[$25 >> 2] = HEAP32[$__x >> 2]; + HEAP32[$24 >> 2] = $25 + 4; + __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS4_RS6_EE($this, $__v); + __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEED2Ev($__v); + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $11 = 0, $15 = 0, $2 = 0, $21 = 0, $22 = 0, $6 = 0, $9 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = $this + 8 | 0; + $6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$2 >> 2] | 0) + 20 >> 2] & 127]($2) | 0; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + $9 = HEAP8[$6 >> 0] | 0; + $11 = ($9 & 1) == 0; + $15 = $11 ? $6 + 1 | 0 : HEAP32[$6 + 8 >> 2] | 0; + $21 = $15 + ($11 ? ($9 & 255) >>> 1 : HEAP32[$6 + 4 >> 2] | 0) | 0; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $22 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, $15, $21) | 0; + STACKTOP = sp; + return $22 | 0; +} + +function _post_process_1pass($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $1 = 0, $11 = 0, $3 = 0, $5 = 0, $num_rows = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $num_rows = sp; + $1 = HEAP32[$cinfo + 432 >> 2] | 0; + $3 = $out_rows_avail - (HEAP32[$out_row_ctr >> 2] | 0) | 0; + $5 = HEAP32[$1 + 16 >> 2] | 0; + HEAP32[$num_rows >> 2] = 0; + $11 = $1 + 12 | 0; + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 4 >> 2] & 7]($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, HEAP32[$11 >> 2] | 0, $num_rows, $3 >>> 0 > $5 >>> 0 ? $5 : $3); + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 4 >> 2] & 31]($cinfo, HEAP32[$11 >> 2] | 0, $output_buf + (HEAP32[$out_row_ctr >> 2] << 2) | 0, HEAP32[$num_rows >> 2] | 0); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + (HEAP32[$num_rows >> 2] | 0); + STACKTOP = sp; + return; +} + +function _getTransMatMultiSquareRobust($id, $multiMarkerId) { + $id = $id | 0; + $multiMarkerId = $multiMarkerId | 0; + var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $8 = HEAP32[$4 + 280 >> 2] | 0; + if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 284 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { + $$0 = HEAP32[1468] | 0; + break; + } else { + $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; + $21 = HEAP32[$4 + 212 >> 2] | 0; + +_arGetTransMatMultiSquareRobust(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17); + _matrixCopy($17 + 8 | 0, 424); + $$0 = 0; + break; } - $newp$0 = 0; - return $newp$0 | 0; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision5ImageC2EPhNS_9ImageTypeEjjij($this, $data, $type, $width, $height, $step, $channels) { + $this = $this | 0; + $data = $data | 0; + $type = $type | 0; + $width = $width | 0; + $height = $height | 0; + $step = $step | 0; + $channels = $channels | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $11 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 4 | 0; + $$byval_copy = sp + 9 | 0; + $1 = sp; + HEAP32[$this >> 2] = $type; + HEAP32[$this + 4 >> 2] = $width; + HEAP32[$this + 8 >> 2] = $height; + HEAP32[$this + 16 >> 2] = $channels; + $6 = Math_imul($step, $height) | 0; + HEAP32[$this + 20 >> 2] = $6; + HEAP32[$1 >> 2] = 0; + HEAP8[$$byval_copy >> 0] = HEAP8[sp + 8 >> 0] | 0; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__110shared_ptrIhEC2Ih16NullArrayDeleterIhEEEPT_T0_NS_9enable_ifIXsr14is_convertibleIS6_PhEE5valueENS1_5__natEE4typeE($this + 24 | 0, $data, $$byval_copy, $$byval_copy1); + if (($step | 0) < 0) { + $11 = Math_imul(Math_imul($channels, $width) | 0, __ZN6vision5Image19calculate_unit_sizeENS_9ImageTypeE($type) | 0) | 0; + HEAP32[$this + 12 >> 2] = $11; + } else HEAP32[$this + 12 >> 2] = $step; + STACKTOP = sp; + return; +} + +function __ZNSt3__114__num_put_base12__format_intEPcPKcbj($__fmtp, $__len, $__signd, $__flags) { + $__fmtp = $__fmtp | 0; + $__len = $__len | 0; + $__signd = $__signd | 0; + $__flags = $__flags | 0; + var $$0 = 0, $$012 = 0, $$1$lcssa = 0, $$1$ph = 0, $$13 = 0, $10 = 0, $6 = 0, $9 = 0; + if (!($__flags & 2048)) $$0 = $__fmtp; else { + HEAP8[$__fmtp >> 0] = 43; + $$0 = $__fmtp + 1 | 0; } - if ($2 >>> 0 >= $nb >>> 0) { - $20 = $2 - $nb | 0; - if ($20 >>> 0 <= 15) { - $newp$0 = $p; - return $newp$0 | 0; - } - HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; - HEAP32[$p + ($nb + 4) >> 2] = $20 | 3; - HEAP32[$7 >> 2] = HEAP32[$7 >> 2] | 1; - _dispose_chunk($p + $nb | 0, $20); - $newp$0 = $p; - return $newp$0 | 0; + if (!($__flags & 512)) $$1$ph = $$0; else { + HEAP8[$$0 >> 0] = 35; + $$1$ph = $$0 + 1 | 0; } - if (($3 | 0) == (HEAP32[762] | 0)) { - $33 = (HEAP32[759] | 0) + $2 | 0; - if ($33 >>> 0 <= $nb >>> 0) { - $newp$0 = 0; - return $newp$0 | 0; + $6 = HEAP8[$__len >> 0] | 0; + if (!($6 << 24 >> 24)) $$1$lcssa = $$1$ph; else { + $$012 = $__len; + $$13 = $$1$ph; + $10 = $6; + while (1) { + $$012 = $$012 + 1 | 0; + $9 = $$13 + 1 | 0; + HEAP8[$$13 >> 0] = $10; + $10 = HEAP8[$$012 >> 0] | 0; + if (!($10 << 24 >> 24)) { + $$1$lcssa = $9; + break; + } else $$13 = $9; } - $35 = $33 - $nb | 0; - HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; - HEAP32[$p + ($nb + 4) >> 2] = $35 | 1; - HEAP32[762] = $p + $nb; - HEAP32[759] = $35; - $newp$0 = $p; - return $newp$0 | 0; } - if (($3 | 0) == (HEAP32[761] | 0)) { - $45 = (HEAP32[758] | 0) + $2 | 0; - if ($45 >>> 0 < $nb >>> 0) { - $newp$0 = 0; - return $newp$0 | 0; + L11 : do switch ($__flags & 74 | 0) { + case 64: + { + HEAP8[$$1$lcssa >> 0] = 111; + break; } - $47 = $45 - $nb | 0; - if ($47 >>> 0 > 15) { - HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; - HEAP32[$p + ($nb + 4) >> 2] = $47 | 1; - HEAP32[$p + $45 >> 2] = $47; - $56 = $p + ($45 + 4) | 0; - HEAP32[$56 >> 2] = HEAP32[$56 >> 2] & -2; - $storemerge = $p + $nb | 0; - $storemerge21 = $47; + case 8: + { + if (!($__flags & 16384)) { + HEAP8[$$1$lcssa >> 0] = 120; + break L11; + } else { + HEAP8[$$1$lcssa >> 0] = 88; + break L11; + } + break; + } + default: + if ($__signd) { + HEAP8[$$1$lcssa >> 0] = 100; + break L11; } else { - HEAP32[$0 >> 2] = $1 & 1 | $45 | 2; - $62 = $p + ($45 + 4) | 0; - HEAP32[$62 >> 2] = HEAP32[$62 >> 2] | 1; - $storemerge = 0; - $storemerge21 = 0; + HEAP8[$$1$lcssa >> 0] = 117; + break L11; + } + } while (0); + return; +} + +function _arImageProcLumaHistAndCDFAndPercentile($ipi, $dataPtr, $percentile, $value_p) { + $ipi = $ipi | 0; + $dataPtr = $dataPtr | 0; + $percentile = +$percentile; + $value_p = $value_p | 0; + var $$0 = 0, $$in = 0, $$lcssa10 = 0, $$lcssa9 = 0, $11 = 0, $12 = 0, $14 = 0, $18 = 0, $2 = 0, $i$0 = 0, $i$0$lcssa = 0, $j$0$lcssa = 0; + if ($percentile < 0.0 | $percentile > 1.0) $$0 = -1; else { + $2 = _arImageProcLumaHistAndCDF($ipi, $dataPtr) | 0; + if (($2 | 0) < 0) $$0 = $2; else { + $11 = ~~(+(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) * $percentile) >>> 0; + $i$0 = 0; + while (1) { + $12 = $i$0 & 255; + $14 = HEAP32[$ipi + 1040 + ($12 << 2) >> 2] | 0; + if ($14 >>> 0 < $11 >>> 0) $i$0 = $i$0 + 1 << 24 >> 24; else { + $$lcssa10 = $14; + $$lcssa9 = $12; + $i$0$lcssa = $i$0; + break; + } + } + if (($$lcssa10 | 0) == ($11 | 0)) { + $$in = $i$0$lcssa; + while (1) { + $18 = $$in + 1 << 24 >> 24; + if ((HEAP32[$ipi + 1040 + (($18 & 255) << 2) >> 2] | 0) == ($11 | 0)) $$in = $18; else { + $j$0$lcssa = $18; + break; + } + } + } else $j$0$lcssa = $i$0$lcssa; + HEAP8[$value_p >> 0] = (($j$0$lcssa & 255) + $$lcssa9 | 0) >>> 1; + $$0 = 0; } - HEAP32[758] = $storemerge21; - HEAP32[761] = $storemerge; - $newp$0 = $p; - return $newp$0 | 0; - } - if ($8 & 2) { - $newp$0 = 0; - return $newp$0 | 0; } - $68 = ($8 & -8) + $2 | 0; - if ($68 >>> 0 < $nb >>> 0) { - $newp$0 = 0; - return $newp$0 | 0; + return $$0 | 0; +} + +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEEC2Ev($this) { + $this = $this | 0; + var $3 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = 0; + HEAP32[$this + 20 >> 2] = 0; + $3 = $this + 64 | 0; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + HEAP32[$3 + 12 >> 2] = 0; + HEAP32[$3 + 16 >> 2] = 0; + HEAP32[$3 + 20 >> 2] = 0; + HEAPF32[$this + 88 >> 2] = 1.0; + __ZN6vision18BinomialPyramid32fC2Ev($this + 92 | 0); + __ZN6vision25DoGScaleInvariantDetectorC2Ev($this + 160 | 0); + __ZN6vision14FREAKExtractorC2Ev($this + 316 | 0); + HEAP32[$this + 636 >> 2] = 0; + HEAP32[$this + 640 >> 2] = 0; + HEAP32[$this + 644 >> 2] = 0; + HEAPF32[$this + 648 >> 2] = .699999988079071; + __ZN6vision21HoughSimilarityVotingC2Ev($this + 652 | 0); + __ZN6vision16RobustHomographyIfEC2Efiii($this + 788 | 0, .009999999776482582, 1024, 1064, 50); + HEAPF32[$this + 212 >> 2] = 3.0; + HEAPF32[$this + 216 >> 2] = 4.0; + HEAP32[$this + 244 >> 2] = 500; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE7reserveEj($this + 220 | 0, 500); + HEAPF32[$this + 4 >> 2] = 3.0; + HEAP32[$this >> 2] = 8; + HEAP8[$this + 8 >> 0] = 1; + return; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $6 = (HEAP32[$3 >> 2] | 0) + -20 | 0; + $$0$i1 = $$0$i1 + -20 | 0; + HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2]; + HEAP32[$6 + 4 >> 2] = HEAP32[$$0$i1 + 4 >> 2]; + HEAP32[$6 + 8 >> 2] = HEAP32[$$0$i1 + 8 >> 2]; + HEAP32[$6 + 12 >> 2] = HEAP32[$$0$i1 + 12 >> 2]; + HEAP32[$6 + 16 >> 2] = HEAP32[$$0$i1 + 16 >> 2]; + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -20; + } while (($$0$i1 | 0) != ($0 | 0)); } - $70 = $68 - $nb | 0; - $71 = $8 >>> 3; - do if ($8 >>> 0 < 256) { - $74 = HEAP32[$p + ($2 + 8) >> 2] | 0; - $76 = HEAP32[$p + ($2 + 12) >> 2] | 0; - $78 = 3064 + ($71 << 1 << 2) | 0; - if (($74 | 0) != ($78 | 0)) { - if ($74 >>> 0 < $4 >>> 0) _abort(); - if ((HEAP32[$74 + 12 >> 2] | 0) != ($3 | 0)) _abort(); - } - if (($76 | 0) == ($74 | 0)) { - HEAP32[756] = HEAP32[756] & ~(1 << $71); + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _getTransMatMultiSquare($id, $multiMarkerId) { + $id = $id | 0; + $multiMarkerId = $multiMarkerId | 0; + var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $8 = HEAP32[$4 + 280 >> 2] | 0; + if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 284 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { + $$0 = HEAP32[1468] | 0; + break; + } else { + $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; + $21 = HEAP32[$4 + 212 >> 2] | 0; + +_arGetTransMatMultiSquare(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17); + _matrixCopy($17 + 8 | 0, 424); + $$0 = 0; break; } - if (($76 | 0) == ($78 | 0)) $$pre$phiZ2D = $76 + 8 | 0; else { - if ($76 >>> 0 < $4 >>> 0) _abort(); - $91 = $76 + 8 | 0; - if ((HEAP32[$91 >> 2] | 0) == ($3 | 0)) $$pre$phiZ2D = $91; else _abort(); - } - HEAP32[$74 + 12 >> 2] = $76; - HEAP32[$$pre$phiZ2D >> 2] = $74; - } else { - $96 = HEAP32[$p + ($2 + 24) >> 2] | 0; - $98 = HEAP32[$p + ($2 + 12) >> 2] | 0; - do if (($98 | 0) == ($3 | 0)) { - $109 = $p + ($2 + 20) | 0; - $110 = HEAP32[$109 >> 2] | 0; - if (!$110) { - $112 = $p + ($2 + 16) | 0; - $113 = HEAP32[$112 >> 2] | 0; - if (!$113) { - $R$1 = 0; + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9__grow_byEjjjjjj($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_del = $__n_del | 0; + $__n_add = $__n_add | 0; + var $10 = 0, $12 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $9 = 0; + if ((1073741807 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $21 = $this + 4 | 0; else $21 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 536870887) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $18 = $12 >>> 0 < 2 ? 2 : $12 + 4 & -4; + } else $18 = 1073741807; + $19 = __Znwj($18 << 2) | 0; + if ($__n_copy) _wmemcpy($19, $21, $__n_copy) | 0; + $22 = $__old_sz - $__n_del | 0; + if (($22 | 0) != ($__n_copy | 0)) _wmemcpy($19 + ($__n_add + $__n_copy << 2) | 0, $21 + ($__n_del + $__n_copy << 2) | 0, $22 - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 1) __ZdlPv($21); + HEAP32[$this + 8 >> 2] = $19; + HEAP32[$this >> 2] = $18 | 1; + return; +} + +function __ZNKSt3__17codecvtIwc11__mbstate_tE9do_lengthERS1_PKcS5_j($this, $st, $frm, $frm_end, $mx) { + $this = $this | 0; + $st = $st | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $mx = $mx | 0; + var $$013 = 0, $$1 = 0, $$pn = 0, $0 = 0, $1 = 0, $7 = 0, $8 = 0, $nbytes$0$lcssa = 0, $nbytes$04 = 0, $nbytes$1 = 0, $nwchar_t$05 = 0; + $0 = $frm_end; + $1 = $this + 8 | 0; + L1 : do if (($frm | 0) == ($frm_end | 0) | ($mx | 0) == 0) $nbytes$0$lcssa = 0; else { + $$013 = $frm; + $nbytes$04 = 0; + $nwchar_t$05 = 0; + while (1) { + $7 = _uselocale(HEAP32[$1 >> 2] | 0) | 0; + $8 = _mbrlen($$013, $0 - $$013 | 0, $st) | 0; + if ($7) _uselocale($7) | 0; + switch ($8 | 0) { + case -2: + case -1: + { + $nbytes$0$lcssa = $nbytes$04; + break L1; break; - } else { - $R$0 = $113; - $RP$0 = $112; - } - } else { - $R$0 = $110; - $RP$0 = $109; - } - while (1) { - $115 = $R$0 + 20 | 0; - $116 = HEAP32[$115 >> 2] | 0; - if ($116) { - $R$0 = $116; - $RP$0 = $115; - continue; } - $118 = $R$0 + 16 | 0; - $119 = HEAP32[$118 >> 2] | 0; - if (!$119) { - $R$0$lcssa = $R$0; - $RP$0$lcssa = $RP$0; + case 0: + { + $$1 = $$013 + 1 | 0; + $$pn = 1; break; - } else { - $R$0 = $119; - $RP$0 = $118; } - } - if ($RP$0$lcssa >>> 0 < $4 >>> 0) _abort(); else { - HEAP32[$RP$0$lcssa >> 2] = 0; - $R$1 = $R$0$lcssa; - break; - } - } else { - $101 = HEAP32[$p + ($2 + 8) >> 2] | 0; - if ($101 >>> 0 < $4 >>> 0) _abort(); - $103 = $101 + 12 | 0; - if ((HEAP32[$103 >> 2] | 0) != ($3 | 0)) _abort(); - $106 = $98 + 8 | 0; - if ((HEAP32[$106 >> 2] | 0) == ($3 | 0)) { - HEAP32[$103 >> 2] = $98; - HEAP32[$106 >> 2] = $101; - $R$1 = $98; - break; - } else _abort(); - } while (0); - if ($96) { - $124 = HEAP32[$p + ($2 + 28) >> 2] | 0; - $125 = 3328 + ($124 << 2) | 0; - if (($3 | 0) == (HEAP32[$125 >> 2] | 0)) { - HEAP32[$125 >> 2] = $R$1; - if (!$R$1) { - HEAP32[757] = HEAP32[757] & ~(1 << $124); - break; + default: + { + $$1 = $$013 + $8 | 0; + $$pn = $8; } - } else { - if ($96 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); - $134 = $96 + 16 | 0; - if ((HEAP32[$134 >> 2] | 0) == ($3 | 0)) HEAP32[$134 >> 2] = $R$1; else HEAP32[$96 + 20 >> 2] = $R$1; - if (!$R$1) break; } - $139 = HEAP32[760] | 0; - if ($R$1 >>> 0 < $139 >>> 0) _abort(); - HEAP32[$R$1 + 24 >> 2] = $96; - $143 = HEAP32[$p + ($2 + 16) >> 2] | 0; - do if ($143) if ($143 >>> 0 < $139 >>> 0) _abort(); else { - HEAP32[$R$1 + 16 >> 2] = $143; - HEAP32[$143 + 24 >> 2] = $R$1; - break; - } while (0); - $149 = HEAP32[$p + ($2 + 20) >> 2] | 0; - if ($149) if ($149 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else { - HEAP32[$R$1 + 20 >> 2] = $149; - HEAP32[$149 + 24 >> 2] = $R$1; - break; + $nbytes$1 = $$pn + $nbytes$04 | 0; + $nwchar_t$05 = $nwchar_t$05 + 1 | 0; + if (($$1 | 0) == ($frm_end | 0) | $nwchar_t$05 >>> 0 >= $mx >>> 0) { + $nbytes$0$lcssa = $nbytes$1; + break L1; + } else { + $$013 = $$1; + $nbytes$04 = $nbytes$1; } } } while (0); - if ($70 >>> 0 < 16) { - HEAP32[$0 >> 2] = $68 | $1 & 1 | 2; - $159 = $p + ($68 | 4) | 0; - HEAP32[$159 >> 2] = HEAP32[$159 >> 2] | 1; - $newp$0 = $p; - return $newp$0 | 0; - } else { - HEAP32[$0 >> 2] = $1 & 1 | $nb | 2; - HEAP32[$p + ($nb + 4) >> 2] = $70 | 3; - $168 = $p + ($68 | 4) | 0; - HEAP32[$168 >> 2] = HEAP32[$168 >> 2] | 1; - _dispose_chunk($p + $nb | 0, $70); - $newp$0 = $p; - return $newp$0 | 0; - } - return 0; + return $nbytes$0$lcssa | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $lit, $db) { - $first = $first | 0; - $last = $last | 0; - $lit = $lit | 0; - $db = $db | 0; - var $$0$i$i$i = 0, $$0$i$i$i5 = 0, $$02 = 0, $$1 = 0, $0 = 0, $1 = 0, $11 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $37 = 0, $39 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $48 = 0, $52 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $67 = 0, $69 = 0, $72 = 0, $73 = 0, $76 = 0, $8 = 0, $82 = 0, $88 = 0, $90 = 0, $94 = 0, $__v$i$i4 = 0, sp = 0; +function __ZNSt3__113unordered_mapIiNS_6vectorIiNS_9allocatorIiEEEENS_4hashIiEENS_8equal_toIiEENS2_INS_4pairIKiS4_EEEEEixERSA_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$sink = 0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 80 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i4 = sp + 48 | 0; - $0 = sp + 24 | 0; - $1 = sp + 12 | 0; - $2 = sp; - $3 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) | 0; - if (($3 | 0) == ($first | 0) | ($3 | 0) == ($last | 0)) $$1 = $first; else if ((HEAP8[$3 >> 0] | 0) == 69) { - $8 = HEAP8[$lit >> 0] | 0; - $11 = $lit + 4 | 0; - do if ((($8 & 1) == 0 ? ($8 & 255) >>> 1 : HEAP32[$11 >> 2] | 0) >>> 0 > 3) { - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($2, 12714, $lit); - $17 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$17 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$17 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$17 + 8 >> 2]; - HEAP32[$17 >> 2] = 0; - HEAP32[$17 + 4 >> 2] = 0; - HEAP32[$17 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - $20 = $db + 4 | 0; - $21 = HEAP32[$20 >> 2] | 0; - $23 = HEAP32[$db + 8 >> 2] | 0; - if ($21 >>> 0 < $23 >>> 0) { - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($21, $0); - HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 24; - } else { - $30 = HEAP32[$db >> 2] | 0; - $31 = $21 - $30 | 0; - $32 = ($31 | 0) / 24 | 0; - $33 = $32 + 1 | 0; - if (($31 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $37 = ($23 - $30 | 0) / 24 | 0; - if ($37 >>> 0 < 1073741823) { - $39 = $37 << 1; - $$0$i$i$i = $39 >>> 0 < $33 >>> 0 ? $33 : $39; - } else $$0$i$i$i = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i, $32, $db + 12 | 0); - $42 = $__v$i$i4 + 8 | 0; - $43 = HEAP32[$42 >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0); - HEAP32[$42 >> 2] = $43 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4); - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); + $0 = sp + 8 | 0; + $1 = sp; + $2 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS6_PvEEEERKT_($this, $__k) | 0; + if (!$2) { + __ZNSt3__113unordered_mapIiNS_6vectorIiNS_9allocatorIiEEEENS_4hashIiEENS_8equal_toIiEENS2_INS_4pairIKiS4_EEEEE25__construct_node_with_keyERSA_($0, $this, $__k); + $4 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS6_PvEE($1, $this, $4); + $$sink = HEAP32[$1 >> 2] | 0; + } else $$sink = $2; + STACKTOP = sp; + return $$sink + 12 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_del = $__n_del | 0; + $__n_add = $__n_add | 0; + var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $21 = 0, $9 = 0; + if ((-17 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 2147483623) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; + } else $17 = -17; + $18 = __Znwj($17) | 0; + if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; + $21 = $__old_sz - $__n_del | 0; + if (($21 | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + ($__n_del + $__n_copy) | 0, $21 - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 10) __ZdlPv($20); + HEAP32[$this + 8 >> 2] = $18; + HEAP32[$this >> 2] = $17 | 1; + return; +} + +function _jinit_d_post_controller($cinfo, $need_full_buffer) { + $cinfo = $cinfo | 0; + $need_full_buffer = $need_full_buffer | 0; + var $0 = 0, $11 = 0, $12 = 0, $14 = 0, $16 = 0, $18 = 0, $20 = 0, $21 = 0, $24 = 0, $26 = 0, $29 = 0, $3 = 0, $30 = 0, $5 = 0, $6 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 28) | 0; + HEAP32[$cinfo + 432 >> 2] = $3; + HEAP32[$3 >> 2] = 42; + $5 = $3 + 8 | 0; + HEAP32[$5 >> 2] = 0; + $6 = $3 + 12 | 0; + HEAP32[$6 >> 2] = 0; + do if (HEAP32[$cinfo + 84 >> 2] | 0) { + $11 = HEAP32[$cinfo + 312 >> 2] | 0; + $12 = $3 + 16 | 0; + HEAP32[$12 >> 2] = $11; + $14 = HEAP32[$0 >> 2] | 0; + $16 = HEAP32[$cinfo + 112 >> 2] | 0; + $18 = HEAP32[$cinfo + 120 >> 2] | 0; + if (!$need_full_buffer) { + $29 = Math_imul($18, $16) | 0; + $30 = FUNCTION_TABLE_iiiii[HEAP32[$14 + 8 >> 2] & 15]($cinfo, 1, $29, $11) | 0; + HEAP32[$6 >> 2] = $30; + break; } else { - $45 = $db + 4 | 0; - $46 = HEAP32[$45 >> 2] | 0; - $48 = HEAP32[$db + 8 >> 2] | 0; - if ($46 >>> 0 < $48 >>> 0) { - HEAP32[$46 >> 2] = 0; - HEAP32[$46 + 4 >> 2] = 0; - HEAP32[$46 + 8 >> 2] = 0; - HEAP32[$46 + 12 >> 2] = 0; - HEAP32[$46 + 16 >> 2] = 0; - HEAP32[$46 + 20 >> 2] = 0; - HEAP32[$46 >> 2] = 0; - HEAP32[$46 + 4 >> 2] = 0; - HEAP32[$46 + 8 >> 2] = 0; - $52 = $46 + 12 | 0; - HEAP32[$52 >> 2] = 0; - HEAP32[$52 + 4 >> 2] = 0; - HEAP32[$52 + 8 >> 2] = 0; - HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 24; + $20 = HEAP32[$14 + 16 >> 2] | 0; + $21 = Math_imul($18, $16) | 0; + $24 = _jround_up(HEAP32[$cinfo + 116 >> 2] | 0, $11) | 0; + $26 = FUNCTION_TABLE_iiiiiii[$20 & 63]($cinfo, 1, 0, $21, $24, HEAP32[$12 >> 2] | 0) | 0; + HEAP32[$5 >> 2] = $26; + break; + } + } while (0); + return; +} + +function _arPattDeleteHandle($pattHandle) { + $pattHandle = $pattHandle | 0; + var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $25 = 0, $3 = 0, $32 = 0, $4 = 0, $i$03 = 0; + if (!$pattHandle) $$0 = -1; else { + $1 = $pattHandle + 4 | 0; + $2 = $pattHandle + 8 | 0; + $3 = $pattHandle + 12 | 0; + $4 = $pattHandle + 20 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $i$03 = 0; + do { + if (HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$03 << 2) >> 2] | 0) _arPattFree($pattHandle, $i$03) | 0; + $11 = $i$03 << 2; + _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($11 << 2) >> 2] | 0); + _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($11 << 2) >> 2] | 0); + $18 = 1 + $11 | 0; + _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($18 << 2) >> 2] | 0); + _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($18 << 2) >> 2] | 0); + $25 = 2 + $11 | 0; + _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($25 << 2) >> 2] | 0); + _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($25 << 2) >> 2] | 0); + $32 = 3 + $11 | 0; + _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($32 << 2) >> 2] | 0); + _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($32 << 2) >> 2] | 0); + $i$03 = $i$03 + 1 | 0; + } while (($i$03 | 0) < (HEAP32[$1 >> 2] | 0)); + } + _free($pattHandle); + $$0 = 0; + } + return $$0 | 0; +} + +function _atoi($s) { + $s = $s | 0; + var $$0 = 0, $$0$lcssa = 0, $$1$ph = 0, $$13 = 0, $$lcssa9 = 0, $11 = 0, $4 = 0, $5 = 0, $8 = 0, $isdigittmp1 = 0, $isdigittmp5 = 0, $n$0$lcssa = 0, $n$04 = 0, $neg$0 = 0, $neg$1$ph = 0, label = 0; + $$0 = $s; + while (1) { + $4 = $$0 + 1 | 0; + if (!(_isspace(HEAP8[$$0 >> 0] | 0) | 0)) { + $$0$lcssa = $$0; + $$lcssa9 = $4; + break; + } else $$0 = $4; + } + $5 = HEAP8[$$0$lcssa >> 0] | 0; + switch ($5 << 24 >> 24 | 0) { + case 45: + { + $neg$0 = 1; + label = 5; + break; + } + case 43: + { + $neg$0 = 0; + label = 5; + break; + } + default: + { + $$1$ph = $$0$lcssa; + $8 = $5; + $neg$1$ph = 0; + } + } + if ((label | 0) == 5) { + $$1$ph = $$lcssa9; + $8 = HEAP8[$$lcssa9 >> 0] | 0; + $neg$1$ph = $neg$0; + } + $isdigittmp1 = ($8 << 24 >> 24) + -48 | 0; + if ($isdigittmp1 >>> 0 < 10) { + $$13 = $$1$ph; + $isdigittmp5 = $isdigittmp1; + $n$04 = 0; + while (1) { + $$13 = $$13 + 1 | 0; + $11 = ($n$04 * 10 | 0) - $isdigittmp5 | 0; + $isdigittmp5 = (HEAP8[$$13 >> 0] | 0) + -48 | 0; + if ($isdigittmp5 >>> 0 >= 10) { + $n$0$lcssa = $11; break; - } - $60 = HEAP32[$db >> 2] | 0; - $61 = $46 - $60 | 0; - $62 = ($61 | 0) / 24 | 0; - $63 = $62 + 1 | 0; - if (($61 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db); - $67 = ($48 - $60 | 0) / 24 | 0; - if ($67 >>> 0 < 1073741823) { - $69 = $67 << 1; - $$0$i$i$i5 = $69 >>> 0 < $63 >>> 0 ? $63 : $69; - } else $$0$i$i$i5 = 2147483647; - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i5, $62, $db + 12 | 0); - $72 = $__v$i$i4 + 8 | 0; - $73 = HEAP32[$72 >> 2] | 0; - HEAP32[$73 >> 2] = 0; - HEAP32[$73 + 4 >> 2] = 0; - HEAP32[$73 + 8 >> 2] = 0; - HEAP32[$73 + 12 >> 2] = 0; - HEAP32[$73 + 16 >> 2] = 0; - HEAP32[$73 + 20 >> 2] = 0; - HEAP32[$73 >> 2] = 0; - HEAP32[$73 + 4 >> 2] = 0; - HEAP32[$73 + 8 >> 2] = 0; - $76 = $73 + 12 | 0; - HEAP32[$76 >> 2] = 0; - HEAP32[$76 + 4 >> 2] = 0; - HEAP32[$76 + 8 >> 2] = 0; - HEAP32[$72 >> 2] = $73 + 24; - __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4); - __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4); - } while (0); - $82 = $db + 4 | 0; - if ((HEAP8[$first >> 0] | 0) == 110) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$82 >> 2] | 0) + -24 | 0, 45); - $$02 = $first + 1 | 0; - } else $$02 = $first; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$82 >> 2] | 0) + -24 | 0, $$02, $3); - $88 = HEAP8[$lit >> 0] | 0; - $90 = ($88 & 1) == 0; - $94 = $90 ? ($88 & 255) >>> 1 : HEAP32[$11 >> 2] | 0; - if ($94 >>> 0 < 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$82 >> 2] | 0) + -24 | 0, $90 ? $lit + 1 | 0 : HEAP32[$lit + 8 >> 2] | 0, $94) | 0; - $$1 = $3 + 1 | 0; - } else $$1 = $first; + } else $n$04 = $11; + } + } else $n$0$lcssa = 0; + return (($neg$1$ph | 0) != 0 ? $n$0$lcssa : 0 - $n$0$lcssa | 0) | 0; +} + +function __ZNSt3__113unordered_mapIiP14AR2SurfaceSetTNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS2_EEEEEixERS9_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__h = sp + 8 | 0; + $0 = sp; + $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS4_PvEEEERKT_($this, $__k) | 0; + if (!$1) { + __ZNSt3__113unordered_mapIiP14AR2SurfaceSetTNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS2_EEEEE25__construct_node_with_keyERS9_($__h, $this, $__k); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS4_PvEE($0, $this, HEAP32[$__h >> 2] | 0); + $5 = HEAP32[$0 >> 2] | 0; + HEAP32[$__h >> 2] = 0; + $$pn3 = $5; + } else $$pn3 = $1; STACKTOP = sp; - return $$1 | 0; + return $$pn3 + 12 | 0; } -function _arGetContour($limage, $xsize, $ysize, $label_ref, $label, $clip, $marker_info2) { - $limage = $limage | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $label_ref = $label_ref | 0; - $label = $label | 0; - $clip = $clip | 0; - $marker_info2 = $marker_info2 | 0; - var $$0 = 0, $$lcssa68 = 0, $$lcssa69 = 0, $1 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $24 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $34 = 0, $38 = 0, $4 = 0, $40 = 0, $41 = 0, $46 = 0, $48 = 0, $49 = 0, $56 = 0, $61 = 0, $62 = 0, $65 = 0, $67 = 0, $68 = 0, $83 = 0, $9 = 0, $92 = 0, $dir$0 = 0, $dir$1 = 0, $dir$1$lcssa = 0, $dir$130 = 0, $dir$146 = 0, $dmax$040 = 0, $i$048 = 0, $i$048$lcssa = 0, $i$145 = 0, $i$2$v1$0 = 0, $i$242 = 0, $i$338 = 0, $i$436 = 0, $i$535 = 0, $p1$047 = 0, $v1$0$lcssa = 0, $v1$041 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $wx = 0, $wy = 0, label = 0, sp = 0; +function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 80032 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer1 = sp + 8 | 0; - $vararg_buffer = sp; - $wx = sp + 40024 | 0; - $wy = sp + 24 | 0; - $1 = HEAP32[$clip + 8 >> 2] | 0; - $2 = HEAP32[$clip >> 2] | 0; - $4 = HEAP32[$clip + 4 >> 2] | 0; - L1 : do if (($2 | 0) > ($4 | 0)) label = 6; else { - $i$048 = $2; - $p1$047 = $limage + ((Math_imul($1, $xsize) | 0) + $2 << 1) | 0; - while (1) { - $9 = HEAP16[$p1$047 >> 1] | 0; - if ($9 << 16 >> 16 > 0) if ((HEAP32[$label_ref + (($9 << 16 >> 16) + -1 << 2) >> 2] | 0) == ($label | 0)) { - $i$048$lcssa = $i$048; - break; - } - if (($i$048 | 0) < ($4 | 0)) { - $i$048 = $i$048 + 1 | 0; - $p1$047 = $p1$047 + 2 | 0; - } else { - label = 6; - break L1; - } - } - $19 = $marker_info2 + 24 | 0; - HEAP32[$19 >> 2] = 1; - $20 = $marker_info2 + 28 | 0; - HEAP32[$20 >> 2] = $i$048$lcssa; - $21 = $marker_info2 + 40028 | 0; - HEAP32[$21 >> 2] = $1; - $27 = $1; - $29 = $i$048$lcssa; - $40 = 1; - $dir$0 = 5; - while (1) { - $dir$146 = ($dir$0 + 5 | 0) % 8 | 0; - $i$145 = 0; + $__h = sp + 8 | 0; + $0 = sp; + $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; + if (!$1) { + __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0); + $5 = HEAP32[$0 >> 2] | 0; + HEAP32[$__h >> 2] = 0; + $$pn3 = $5; + } else $$pn3 = $1; + STACKTOP = sp; + return $$pn3 + 16 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS9_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; while (1) { - $24 = HEAP32[776 + ($dir$146 << 2) >> 2] | 0; - $26 = HEAP32[808 + ($dir$146 << 2) >> 2] | 0; - $30 = $limage + ($26 + $29 + (Math_imul($24 + $27 | 0, $xsize) | 0) << 1) | 0; - if ((HEAP16[$30 >> 1] | 0) > 0) { - $38 = $26; - $46 = $24; - $dir$130 = $dir$146; + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; + } + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; + } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; break; + } else $$pn = $__nd$0; + } + } + } while (0); + return $24 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS7_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; + while (1) { + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; } - $34 = $i$145 + 1 | 0; - $dir$1 = ($dir$146 + 1 | 0) % 8 | 0; - if (($34 | 0) < 8) { - $dir$146 = $dir$1; - $i$145 = $34; - } else { - $$lcssa68 = $34; - $dir$1$lcssa = $dir$1; - label = 11; - break; + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; } - } - if ((label | 0) == 11) { - label = 0; - if (($$lcssa68 | 0) == 8) { - label = 13; + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; break; - } - $38 = HEAP32[808 + ($dir$1$lcssa << 2) >> 2] | 0; - $46 = HEAP32[776 + ($dir$1$lcssa << 2) >> 2] | 0; - $dir$130 = $dir$1$lcssa; - } - HEAP32[$marker_info2 + 28 + ($40 << 2) >> 2] = $38 + $29; - $41 = HEAP32[$19 >> 2] | 0; - HEAP32[$marker_info2 + 40028 + ($41 << 2) >> 2] = $46 + (HEAP32[$marker_info2 + 40028 + ($41 + -1 << 2) >> 2] | 0); - $48 = HEAP32[$19 >> 2] | 0; - $49 = $marker_info2 + 28 + ($48 << 2) | 0; - if ((HEAP32[$49 >> 2] | 0) == ($i$048$lcssa | 0)) if ((HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0) == ($1 | 0)) { - $$lcssa69 = $48; - label = 16; - break; - } - $56 = $48 + 1 | 0; - HEAP32[$19 >> 2] = $56; - if (($56 | 0) == 9999) { - label = 19; - break; + } else $$pn = $__nd$0; } - $27 = HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0; - $29 = HEAP32[$49 >> 2] | 0; - $40 = $56; - $dir$0 = $dir$130; } - if ((label | 0) == 13) { - _arLog(3, 4347, $vararg_buffer1); - $$0 = -1; - break; - } else if ((label | 0) == 16) { - if (($$lcssa69 | 0) > 1) { - $dmax$040 = 0; - $i$242 = 1; - $v1$041 = 0; - while (1) { - $61 = (HEAP32[$marker_info2 + 28 + ($i$242 << 2) >> 2] | 0) - $i$048$lcssa | 0; - $62 = Math_imul($61, $61) | 0; - $65 = (HEAP32[$marker_info2 + 40028 + ($i$242 << 2) >> 2] | 0) - $1 | 0; - $67 = (Math_imul($65, $65) | 0) + $62 | 0; - $68 = ($67 | 0) > ($dmax$040 | 0); - $i$2$v1$0 = $68 ? $i$242 : $v1$041; - $i$242 = $i$242 + 1 | 0; - if (($i$242 | 0) >= ($$lcssa69 | 0)) { - $v1$0$lcssa = $i$2$v1$0; - break; - } else { - $dmax$040 = $68 ? $67 : $dmax$040; - $v1$041 = $i$2$v1$0; - } - } - } else $v1$0$lcssa = 0; - if (($v1$0$lcssa | 0) > 0) { - $i$338 = 0; - do { - HEAP32[$wx + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$338 << 2) >> 2]; - HEAP32[$wy + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$338 << 2) >> 2]; - $i$338 = $i$338 + 1 | 0; - } while (($i$338 | 0) < ($v1$0$lcssa | 0)); - } - if (($v1$0$lcssa | 0) < ($$lcssa69 | 0)) { - $i$436 = $v1$0$lcssa; - do { - $83 = $i$436 - $v1$0$lcssa | 0; - HEAP32[$marker_info2 + 28 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$436 << 2) >> 2]; - HEAP32[$marker_info2 + 40028 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$436 << 2) >> 2]; - $i$436 = $i$436 + 1 | 0; - } while (($i$436 | 0) < (HEAP32[$19 >> 2] | 0)); - } - if (($v1$0$lcssa | 0) > 0) { - $i$535 = 0; - do { - $92 = $i$535 - $v1$0$lcssa | 0; - HEAP32[$marker_info2 + 28 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wx + ($i$535 << 2) >> 2]; - HEAP32[$marker_info2 + 40028 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wy + ($i$535 << 2) >> 2]; - $i$535 = $i$535 + 1 | 0; - } while (($i$535 | 0) < ($v1$0$lcssa | 0)); - } - HEAP32[$marker_info2 + 28 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$20 >> 2]; - HEAP32[$marker_info2 + 40028 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$21 >> 2]; - HEAP32[$19 >> 2] = (HEAP32[$19 >> 2] | 0) + 1; - $$0 = 0; + } while (0); + return $24 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$pn = 0, $0 = 0, $19 = 0, $2 = 0, $20 = 0, $__cap$0 = 0, $__p$0$sum$pre$phiZZZ2D = 0, $__sz$0 = 0, label = 0; + $0 = HEAP8[$this >> 0] | 0; + $2 = ($0 & 1) != 0; + if ($2) { + $__cap$0 = (HEAP32[$this >> 2] & -2) + -1 | 0; + $__sz$0 = HEAP32[$this + 4 >> 2] | 0; + } else { + $__cap$0 = 10; + $__sz$0 = ($0 & 255) >>> 1; + } + if (($__sz$0 | 0) == ($__cap$0 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__cap$0, 1, $__cap$0, $__cap$0, 0); + if (!(HEAP8[$this >> 0] & 1)) label = 7; else label = 8; + } else if ($2) label = 8; else label = 7; + if ((label | 0) == 7) { + HEAP8[$this >> 0] = ($__sz$0 << 1) + 2; + $$pn = $this + 1 | 0; + $__p$0$sum$pre$phiZZZ2D = $__sz$0 + 1 | 0; + } else if ((label | 0) == 8) { + $19 = HEAP32[$this + 8 >> 2] | 0; + $20 = $__sz$0 + 1 | 0; + HEAP32[$this + 4 >> 2] = $20; + $$pn = $19; + $__p$0$sum$pre$phiZZZ2D = $20; + } + HEAP8[$$pn + $__sz$0 >> 0] = $__c; + HEAP8[$$pn + $__p$0$sum$pre$phiZZZ2D >> 0] = 0; + return; +} + +function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($this, $info, $dst_ptr, $current_ptr, $path_below) { + $this = $this | 0; + $info = $info | 0; + $dst_ptr = $dst_ptr | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + var $16 = 0, $17 = 0, $23 = 0, $25 = 0, $5 = 0, $6 = 0; + HEAP8[$info + 53 >> 0] = 1; + do if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { + HEAP8[$info + 52 >> 0] = 1; + $5 = $info + 16 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if (!$6) { + HEAP32[$5 >> 2] = $dst_ptr; + HEAP32[$info + 24 >> 2] = $path_below; + HEAP32[$info + 36 >> 2] = 1; + if (!(($path_below | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0)) break; + HEAP8[$info + 54 >> 0] = 1; break; - } else if ((label | 0) == 19) { - _arLog(3, 4354, $vararg_buffer3); - $$0 = -1; + } + if (($6 | 0) != ($dst_ptr | 0)) { + $25 = $info + 36 | 0; + HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 1; + HEAP8[$info + 54 >> 0] = 1; break; } + $16 = $info + 24 | 0; + $17 = HEAP32[$16 >> 2] | 0; + if (($17 | 0) == 2) { + HEAP32[$16 >> 2] = $path_below; + $23 = $path_below; + } else $23 = $17; + if (($23 | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0) HEAP8[$info + 54 >> 0] = 1; } while (0); - if ((label | 0) == 6) { - _arLog(3, 4340, $vararg_buffer); - $$0 = -1; + return; +} + +function __ZN6vision14CompareFREAK84EPhPKf($desc, $samples) { + $desc = $desc | 0; + $samples = $samples | 0; + var $11 = 0, $2 = 0, $i$014 = 0, $indvars$iv111 = 0, $indvars$iv12 = 0, $indvars$iv39 = 0, $j$08 = 0, $pos$013 = 0, $pos$17 = 0, dest = 0, stop = 0; + dest = $desc; + stop = dest + 84 | 0; + do { + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + $i$014 = 0; + $indvars$iv111 = 35; + $indvars$iv12 = 36; + $indvars$iv39 = 36; + $pos$013 = 0; + while (1) { + $2 = $samples + ($i$014 << 2) | 0; + $i$014 = $i$014 + 1 | 0; + if (($pos$013 | 0) != ($indvars$iv39 | 0)) { + $j$08 = $i$014; + $pos$17 = $pos$013; + while (1) { + $11 = $desc + (($pos$17 | 0) / 8 | 0) | 0; + HEAP8[$11 >> 0] = HEAPU8[$11 >> 0] | 0 | (+HEAPF32[$2 >> 2] < +HEAPF32[$samples + ($j$08 << 2) >> 2] & 1) << ($pos$17 & 7); + $pos$17 = $pos$17 + 1 | 0; + if (($pos$17 | 0) == ($indvars$iv39 | 0)) break; else $j$08 = $j$08 + 1 | 0; + } + } + $pos$013 = $pos$013 + $indvars$iv12 | 0; + $indvars$iv39 = $indvars$iv39 + $indvars$iv111 | 0; + if (($i$014 | 0) == 37) break; else { + $indvars$iv111 = $indvars$iv111 + -1 | 0; + $indvars$iv12 = $indvars$iv12 + -1 | 0; + } } + return; +} + +function __ZNSt3__19__num_getIwE19__stage2_float_prepERNS_8ios_baseEPwRwS5_($agg$result, $__iob, $__atoms, $__decimal_point, $__thousands_sep) { + $agg$result = $agg$result | 0; + $__iob = $__iob | 0; + $__atoms = $__atoms | 0; + $__decimal_point = $__decimal_point | 0; + $__thousands_sep = $__thousands_sep | 0; + var $0 = 0, $1 = 0, $13 = 0, $5 = 0, $9 = 0, $__loc = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__loc = sp; + $0 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$1 >> 2] | 0) + 48 >> 2] & 15]($1, 55292, 55324, $__atoms) | 0; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13828) | 0; + $9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 12 >> 2] & 127]($5) | 0; + HEAP32[$__decimal_point >> 2] = $9; + $13 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] & 127]($5) | 0; + HEAP32[$__thousands_sep >> 2] = $13; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 63]($agg$result, $5); + __ZNSt3__114__shared_count16__release_sharedEv($0) | 0; STACKTOP = sp; - return $$0 | 0; + return; } -function ___cxa_demangle($mangled_name, $buf, $n, $status) { - $mangled_name = $mangled_name | 0; - $buf = $buf | 0; - $n = $n | 0; - $status = $status | 0; - var $$0 = 0, $$028 = 0, $$1 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $109 = 0, $11 = 0, $112 = 0, $15 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $30 = 0, $31 = 0, $35 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $49 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0, $6 = 0, $60 = 0, $62 = 0, $7 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $82 = 0, $83 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $__v$i$i = 0, $a = 0, $db = 0, $internal_status = 0, label = 0, sp = 0; +function __ZNSt3__19__num_getIcE19__stage2_float_prepERNS_8ios_baseEPcRcS5_($agg$result, $__iob, $__atoms, $__decimal_point, $__thousands_sep) { + $agg$result = $agg$result | 0; + $__iob = $__iob | 0; + $__atoms = $__atoms | 0; + $__decimal_point = $__decimal_point | 0; + $__thousands_sep = $__thousands_sep | 0; + var $0 = 0, $1 = 0, $13 = 0, $5 = 0, $9 = 0, $__loc = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 4208 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v$i$i = sp + 4184 | 0; - $a = sp; - $db = sp + 4120 | 0; - $internal_status = sp + 4112 | 0; - if (!$mangled_name) label = 3; else { - $1 = ($buf | 0) != 0; - $2 = ($n | 0) == 0; - if ($1 & $2) label = 3; else { - if ($1) $82 = HEAP32[$n >> 2] | 0; else $82 = 0; - HEAP32[$a + 4096 >> 2] = $a; - $6 = $a; - HEAP32[$db >> 2] = 0; - $7 = $db + 4 | 0; - HEAP32[$7 >> 2] = 0; - HEAP32[$db + 8 >> 2] = 0; - HEAP32[$db + 12 >> 2] = $6; - $10 = $db + 16 | 0; - HEAP32[$10 >> 2] = 0; - $11 = $db + 20 | 0; - HEAP32[$11 >> 2] = 0; - HEAP32[$db + 24 >> 2] = 0; - HEAP32[$db + 28 >> 2] = $6; - HEAP32[$db + 32 >> 2] = 0; - $15 = $db + 36 | 0; - HEAP32[$15 >> 2] = 0; - HEAP32[$db + 40 >> 2] = 0; - $17 = $db + 44 | 0; - HEAP32[$17 >> 2] = $6; - $18 = $db + 48 | 0; - $19 = $db + 61 | 0; - HEAP32[$18 >> 2] = 0; - HEAP32[$18 + 4 >> 2] = 0; - HEAP32[$18 + 8 >> 2] = 0; - HEAP8[$18 + 12 >> 0] = 0; - HEAP8[$19 >> 0] = 1; - $20 = $db + 32 | 0; - __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i, 1, 0, $17); - $21 = $__v$i$i + 8 | 0; - $22 = HEAP32[$21 >> 2] | 0; - HEAP32[$22 >> 2] = 0; - HEAP32[$22 + 4 >> 2] = 0; - HEAP32[$22 + 8 >> 2] = 0; - HEAP32[$22 + 12 >> 2] = $6; - HEAP32[$21 >> 2] = $22 + 16; - __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($20, $__v$i$i); - __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i); - $27 = $db + 62 | 0; - HEAP8[$27 >> 0] = 0; - HEAP8[$db + 63 >> 0] = 1; - HEAP32[$internal_status >> 2] = 0; - $30 = $mangled_name + (_strlen($mangled_name) | 0) | 0; - __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status); - $31 = HEAP32[$internal_status >> 2] | 0; - do if (($31 | 0) != 0 | (HEAP8[$27 >> 0] | 0) == 0) { - $59 = $31; - label = 17; - } else { - $35 = HEAP32[$20 >> 2] | 0; - if (($35 | 0) == (HEAP32[$15 >> 2] | 0)) label = 18; else if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$35 + 4 >> 2] | 0)) label = 18; else { - HEAP8[$27 >> 0] = 0; - HEAP8[$19 >> 0] = 0; - $42 = HEAP32[$db >> 2] | 0; - $43 = HEAP32[$7 >> 2] | 0; - if (($43 | 0) != ($42 | 0)) { - $46 = $43; - do { - $45 = $46 + -24 | 0; - HEAP32[$7 >> 2] = $45; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45); - $46 = HEAP32[$7 >> 2] | 0; - } while (($46 | 0) != ($42 | 0)); - } - $49 = HEAP32[$10 >> 2] | 0; - $50 = HEAP32[$11 >> 2] | 0; - if (($50 | 0) != ($49 | 0)) { - $53 = $50; - do { - $52 = $53 + -16 | 0; - HEAP32[$11 >> 2] = $52; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($52); - $53 = HEAP32[$11 >> 2] | 0; - } while (($53 | 0) != ($49 | 0)); - } - __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status); - if (!(HEAP8[$27 >> 0] | 0)) { - $59 = HEAP32[$internal_status >> 2] | 0; - label = 17; - break; - } else { - HEAP32[$internal_status >> 2] = -2; - $$1 = 0; - $112 = -2; - break; - } + $__loc = sp; + $0 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$1 >> 2] | 0) + 32 >> 2] & 15]($1, 55292, 55324, $__atoms) | 0; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13820) | 0; + $9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 12 >> 2] & 127]($5) | 0; + HEAP8[$__decimal_point >> 0] = $9; + $13 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] & 127]($5) | 0; + HEAP8[$__thousands_sep >> 0] = $13; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 63]($agg$result, $5); + __ZNSt3__114__shared_count16__release_sharedEv($0) | 0; + STACKTOP = sp; + return; +} +function _alloc_large($cinfo, $pool_id, $sizeofobject) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $sizeofobject = $sizeofobject | 0; + var $$0 = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $19 = 0, $23 = 0, $26 = 0, $3 = 0, $7 = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + if ($sizeofobject >>> 0 > 999999984) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 54; + HEAP32[$3 + 24 >> 2] = 3; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = $sizeofobject & 7; + $$0 = (($7 | 0) == 0 ? 0 : 8 - $7 | 0) + $sizeofobject | 0; + if ($pool_id >>> 0 > 1) { + $12 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$12 + 20 >> 2] = 14; + HEAP32[$12 + 24 >> 2] = $pool_id; + FUNCTION_TABLE_vi[HEAP32[$12 >> 2] & 255]($cinfo); + } + $16 = $$0 + 16 | 0; + $17 = _jpeg_get_large($cinfo, $16) | 0; + if (!$17) { + $19 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$19 + 20 >> 2] = 54; + HEAP32[$19 + 24 >> 2] = 4; + FUNCTION_TABLE_vi[HEAP32[$19 >> 2] & 255]($cinfo); + } + $23 = $1 + 76 | 0; + HEAP32[$23 >> 2] = (HEAP32[$23 >> 2] | 0) + $16; + $26 = $1 + 60 + ($pool_id << 2) | 0; + HEAP32[$17 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$17 + 4 >> 2] = $$0; + HEAP32[$17 + 8 >> 2] = 0; + HEAP32[$26 >> 2] = $17; + return $17 + 16 | 0; +} + +function _h2v2_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + var $0 = 0, $1 = 0, $13 = 0, $2 = 0, $6 = 0, $7 = 0, $8 = 0, $inptr$02 = 0, $inrow$03 = 0, $outptr$01 = 0, $outrow$04 = 0; + $0 = HEAP32[$output_data_ptr >> 2] | 0; + $1 = $cinfo + 312 | 0; + $2 = $cinfo + 112 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $inrow$03 = 0; + $outrow$04 = 0; + while (1) { + $6 = HEAP32[$0 + ($outrow$04 << 2) >> 2] | 0; + $7 = HEAP32[$2 >> 2] | 0; + $8 = $6 + $7 | 0; + if (($7 | 0) > 0) { + $inptr$02 = HEAP32[$input_data + ($inrow$03 << 2) >> 2] | 0; + $outptr$01 = $6; + while (1) { + $13 = HEAP8[$inptr$02 >> 0] | 0; + HEAP8[$outptr$01 >> 0] = $13; + HEAP8[$outptr$01 + 1 >> 0] = $13; + $outptr$01 = $outptr$01 + 2 | 0; + if ($outptr$01 >>> 0 >= $8 >>> 0) break; else $inptr$02 = $inptr$02 + 1 | 0; } - } while (0); - if ((label | 0) == 17) if (!$59) label = 18; else { - $$1 = 0; - $112 = $59; } - do if ((label | 0) == 18) { - $60 = HEAP32[$7 >> 2] | 0; - $62 = HEAP8[$60 + -24 >> 0] | 0; - if (!($62 & 1)) $79 = ($62 & 255) >>> 1; else $79 = HEAP32[$60 + -20 >> 2] | 0; - $70 = HEAP8[$60 + -12 >> 0] | 0; - if (!($70 & 1)) $78 = ($70 & 255) >>> 1; else $78 = HEAP32[$60 + -8 >> 2] | 0; - $77 = $78 + $79 | 0; - $80 = $77 + 1 | 0; - if ($80 >>> 0 > $82 >>> 0) { - $83 = _realloc($buf, $80) | 0; - if (!$83) { - HEAP32[$internal_status >> 2] = -1; - $$1 = 0; - $112 = -1; - break; - } - if ($2) $$028 = $83; else { - HEAP32[$n >> 2] = $80; - $$028 = $83; - } - } else if (!$buf) { - $$1 = 0; - $112 = 0; - break; - } else $$028 = $buf; - $86 = HEAP32[$7 >> 2] | 0; - $88 = $86 + -12 | 0; - $89 = HEAP8[$88 >> 0] | 0; - $91 = ($89 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($86 + -24 | 0, $91 ? $88 + 1 | 0 : HEAP32[$86 + -4 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$86 + -8 >> 2] | 0) | 0; - $101 = HEAP32[$7 >> 2] | 0; - $102 = $101 + -24 | 0; - if (!(HEAP8[$102 >> 0] & 1)) $109 = $102 + 1 | 0; else $109 = HEAP32[$101 + -16 >> 2] | 0; - _memcpy($$028 | 0, $109 | 0, $77 | 0) | 0; - HEAP8[$$028 + $77 >> 0] = 0; - $$1 = $$028; - $112 = 0; - } while (0); - if ($status) HEAP32[$status >> 2] = $112; - __ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($db); - $$0 = $$1; + _jcopy_sample_rows($0, $outrow$04, $0, $outrow$04 | 1, 1, HEAP32[$2 >> 2] | 0); + $outrow$04 = $outrow$04 + 2 | 0; + if (($outrow$04 | 0) >= (HEAP32[$1 >> 2] | 0)) break; else $inrow$03 = $inrow$03 + 1 | 0; } } - if ((label | 0) == 3) if (!$status) $$0 = 0; else { - HEAP32[$status >> 2] = -3; - $$0 = 0; - } + return; +} + +function _setup($width, $height, $cameraID) { + $width = $width | 0; + $height = $height | 0; + $cameraID = $cameraID | 0; + var $0 = 0, $10 = 0, $2 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $id = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + $id = sp + 12 | 0; + $0 = HEAP32[1469] | 0; + HEAP32[1469] = $0 + 1; + HEAP32[$id >> 2] = $0; + $2 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $id) | 0; + HEAP32[$2 >> 2] = $0; + HEAP32[$2 + 204 >> 2] = $width; + HEAP32[$2 + 208 >> 2] = $height; + $6 = Math_imul($width << 2, $height) | 0; + $7 = $2 + 200 | 0; + HEAP32[$7 >> 2] = $6; + $8 = _malloc($6) | 0; + $9 = $2 + 196 | 0; + HEAP32[$9 >> 2] = $8; + $10 = _arPattCreateHandle() | 0; + HEAP32[$2 + 216 >> 2] = $10; + if (!$10) _arLog(3, 43139, sp); + _setCamera($0, $cameraID) | 0; + HEAP32[$vararg_buffer1 >> 2] = HEAP32[$7 >> 2]; + _arLog(1, 43176, $vararg_buffer1); + _emscripten_asm_const_5(4, HEAP32[$2 >> 2] | 0, HEAP32[$9 >> 2] | 0, HEAP32[$7 >> 2] | 0, $2 + 296 | 0, 424) | 0; STACKTOP = sp; - return $$0 | 0; + return HEAP32[$2 >> 2] | 0; } -function _fmod($x, $y) { - $x = +$x; - $y = +$y; - var $$0 = 0.0, $$lcssa7 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $106 = 0, $107 = 0, $11 = 0, $112 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $130 = 0, $137 = 0, $138 = 0, $139 = 0, $140 = 0, $141 = 0, $146 = 0, $149 = 0, $150 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $16 = 0, $2 = 0, $23 = 0.0, $25 = 0, $26 = 0, $3 = 0, $37 = 0, $38 = 0, $4 = 0, $44 = 0, $45 = 0, $46 = 0, $55 = 0, $6 = 0, $60 = 0, $61 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $78 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $93 = 0, $95 = 0, $97 = 0, $ex$0$lcssa = 0, $ex$026 = 0, $ex$1 = 0, $ex$2$lcssa = 0, $ex$212 = 0, $ex$3$lcssa = 0, $ex$39 = 0, $ey$0$lcssa = 0, $ey$020 = 0, $ey$1$ph = 0, label = 0; - HEAPF64[tempDoublePtr >> 3] = $x; - $0 = HEAP32[tempDoublePtr >> 2] | 0; - $1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - HEAPF64[tempDoublePtr >> 3] = $y; - $2 = HEAP32[tempDoublePtr >> 2] | 0; - $3 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $4 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0; - $6 = $4 & 2047; - $7 = _bitshift64Lshr($2 | 0, $3 | 0, 52) | 0; - $9 = $7 & 2047; - $10 = $1 & -2147483648; - $11 = _bitshift64Shl($2 | 0, $3 | 0, 1) | 0; - $12 = tempRet0; - L1 : do if (($11 | 0) == 0 & ($12 | 0) == 0) label = 3; else { - $16 = $3 & 2147483647; - if ($16 >>> 0 > 2146435072 | ($16 | 0) == 2146435072 & $2 >>> 0 > 0 | ($6 | 0) == 2047) label = 3; else { - $25 = _bitshift64Shl($0 | 0, $1 | 0, 1) | 0; - $26 = tempRet0; - if (!($26 >>> 0 > $12 >>> 0 | ($26 | 0) == ($12 | 0) & $25 >>> 0 > $11 >>> 0)) return +(($25 | 0) == ($11 | 0) & ($26 | 0) == ($12 | 0) ? $x * 0.0 : $x); - if (!$6) { - $37 = _bitshift64Shl($0 | 0, $1 | 0, 12) | 0; - $38 = tempRet0; - if (($38 | 0) > -1 | ($38 | 0) == -1 & $37 >>> 0 > 4294967295) { - $45 = $37; - $46 = $38; - $ex$026 = 0; - while (1) { - $44 = $ex$026 + -1 | 0; - $45 = _bitshift64Shl($45 | 0, $46 | 0, 1) | 0; - $46 = tempRet0; - if (!(($46 | 0) > -1 | ($46 | 0) == -1 & $45 >>> 0 > 4294967295)) { - $ex$0$lcssa = $44; - break; - } else $ex$026 = $44; - } - } else $ex$0$lcssa = 0; - $55 = _bitshift64Shl($0 | 0, $1 | 0, 1 - $ex$0$lcssa | 0) | 0; - $83 = $55; - $84 = tempRet0; - $ex$1 = $ex$0$lcssa; - } else { - $83 = $0; - $84 = $1 & 1048575 | 1048576; - $ex$1 = $6; - } - if (!$9) { - $60 = _bitshift64Shl($2 | 0, $3 | 0, 12) | 0; - $61 = tempRet0; - if (($61 | 0) > -1 | ($61 | 0) == -1 & $60 >>> 0 > 4294967295) { - $68 = $60; - $69 = $61; - $ey$020 = 0; - while (1) { - $67 = $ey$020 + -1 | 0; - $68 = _bitshift64Shl($68 | 0, $69 | 0, 1) | 0; - $69 = tempRet0; - if (!(($69 | 0) > -1 | ($69 | 0) == -1 & $68 >>> 0 > 4294967295)) { - $ey$0$lcssa = $67; - break; - } else $ey$020 = $67; - } - } else $ey$0$lcssa = 0; - $78 = _bitshift64Shl($2 | 0, $3 | 0, 1 - $ey$0$lcssa | 0) | 0; - $85 = $78; - $86 = tempRet0; - $ey$1$ph = $ey$0$lcssa; - } else { - $85 = $2; - $86 = $3 & 1048575 | 1048576; - $ey$1$ph = $9; - } - $87 = _i64Subtract($83 | 0, $84 | 0, $85 | 0, $86 | 0) | 0; - $88 = tempRet0; - $93 = ($88 | 0) > -1 | ($88 | 0) == -1 & $87 >>> 0 > 4294967295; - L23 : do if (($ex$1 | 0) > ($ey$1$ph | 0)) { - $152 = $93; - $153 = $87; - $154 = $88; - $95 = $83; - $97 = $84; - $ex$212 = $ex$1; - while (1) { - if ($152) if (($95 | 0) == ($85 | 0) & ($97 | 0) == ($86 | 0)) break; else { - $100 = $153; - $101 = $154; - } else { - $100 = $95; - $101 = $97; - } - $102 = _bitshift64Shl($100 | 0, $101 | 0, 1) | 0; - $103 = tempRet0; - $104 = $ex$212 + -1 | 0; - $106 = _i64Subtract($102 | 0, $103 | 0, $85 | 0, $86 | 0) | 0; - $107 = tempRet0; - $112 = ($107 | 0) > -1 | ($107 | 0) == -1 & $106 >>> 0 > 4294967295; - if (($104 | 0) > ($ey$1$ph | 0)) { - $152 = $112; - $153 = $106; - $154 = $107; - $95 = $102; - $97 = $103; - $ex$212 = $104; - } else { - $$lcssa7 = $112; - $114 = $102; - $116 = $103; - $155 = $106; - $156 = $107; - $ex$2$lcssa = $104; - break L23; - } +function _addNFTMarker($id, $datasetPathname) { + $id = $id | 0; + $datasetPathname = $datasetPathname | 0; + var $$0 = 0, $0 = 0, $12 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = sp + 4 | 0; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $4 = $3 + 236 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if (!(HEAP8[$datasetPathname >> 0] & 1)) $12 = $datasetPathname + 1 | 0; else $12 = HEAP32[$datasetPathname + 8 >> 2] | 0; + if (!(_loadNFTMarker($3, $5, $12) | 0)) { + _arLog(3, 41211, $vararg_buffer); + $$0 = -1; + break; + } else { + HEAP32[$4 >> 2] = (HEAP32[$4 >> 2] | 0) + 1; + $$0 = $5; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($first, $last) { + $first = $first | 0; + $last = $last | 0; + var $$0 = 0, $10 = 0, $11 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0; + L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { + switch (HEAP8[$first >> 0] | 0) { + case 104: + { + $3 = $first + 1 | 0; + $4 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($3, $last) | 0; + if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) { + $$0 = $first; + break L1; } - $$0 = $x * 0.0; + $$0 = (HEAP8[$4 >> 0] | 0) == 95 ? $4 + 1 | 0 : $first; break L1; - } else { - $$lcssa7 = $93; - $114 = $83; - $116 = $84; - $155 = $87; - $156 = $88; - $ex$2$lcssa = $ex$1; - } while (0); - if ($$lcssa7) if (($114 | 0) == ($85 | 0) & ($116 | 0) == ($86 | 0)) { - $$0 = $x * 0.0; break; - } else { - $119 = $156; - $121 = $155; - } else { - $119 = $116; - $121 = $114; } - if ($119 >>> 0 < 1048576 | ($119 | 0) == 1048576 & $121 >>> 0 < 0) { - $126 = $121; - $127 = $119; - $ex$39 = $ex$2$lcssa; + case 118: + break; + default: + { + $$0 = $first; + break L1; + } + } + $10 = $first + 1 | 0; + $11 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($10, $last) | 0; + if (($11 | 0) == ($10 | 0) | ($11 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$11 >> 0] | 0) == 95) { + $16 = $11 + 1 | 0; + $17 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($16, $last) | 0; + if (($17 | 0) == ($16 | 0) | ($17 | 0) == ($last | 0)) $$0 = $first; else return ((HEAP8[$17 >> 0] | 0) == 95 ? $17 + 1 | 0 : $first) | 0; + } else $$0 = $first; + } while (0); + return $$0 | 0; +} + +function _color_quantize3($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $10 = 0, $12 = 0, $3 = 0, $4 = 0, $6 = 0, $8 = 0, $col$02 = 0, $ptrin$03 = 0, $ptrout$01 = 0, $row$04 = 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $4 = HEAP32[$3 >> 2] | 0; + $6 = HEAP32[$3 + 4 >> 2] | 0; + $8 = HEAP32[$3 + 8 >> 2] | 0; + $10 = HEAP32[$cinfo + 112 >> 2] | 0; + if (($num_rows | 0) > 0) { + $12 = ($10 | 0) == 0; + $row$04 = 0; + do { + if (!$12) { + $col$02 = $10; + $ptrin$03 = HEAP32[$input_buf + ($row$04 << 2) >> 2] | 0; + $ptrout$01 = HEAP32[$output_buf + ($row$04 << 2) >> 2] | 0; while (1) { - $128 = _bitshift64Shl($126 | 0, $127 | 0, 1) | 0; - $129 = tempRet0; - $130 = $ex$39 + -1 | 0; - if ($129 >>> 0 < 1048576 | ($129 | 0) == 1048576 & $128 >>> 0 < 0) { - $126 = $128; - $127 = $129; - $ex$39 = $130; - } else { - $137 = $128; - $138 = $129; - $ex$3$lcssa = $130; - break; + HEAP8[$ptrout$01 >> 0] = (HEAPU8[$6 + (HEAPU8[$ptrin$03 + 1 >> 0] | 0) >> 0] | 0) + (HEAPU8[$4 + (HEAPU8[$ptrin$03 >> 0] | 0) >> 0] | 0) + (HEAPU8[$8 + (HEAPU8[$ptrin$03 + 2 >> 0] | 0) >> 0] | 0); + $col$02 = $col$02 + -1 | 0; + if (!$col$02) break; else { + $ptrin$03 = $ptrin$03 + 3 | 0; + $ptrout$01 = $ptrout$01 + 1 | 0; } } - } else { - $137 = $121; - $138 = $119; - $ex$3$lcssa = $ex$2$lcssa; } - if (($ex$3$lcssa | 0) > 0) { - $139 = _i64Add($137 | 0, $138 | 0, 0, -1048576) | 0; - $140 = tempRet0; - $141 = _bitshift64Shl($ex$3$lcssa | 0, 0, 52) | 0; - $149 = $140 | tempRet0; - $150 = $139 | $141; - } else { - $146 = _bitshift64Lshr($137 | 0, $138 | 0, 1 - $ex$3$lcssa | 0) | 0; - $149 = tempRet0; - $150 = $146; + $row$04 = $row$04 + 1 | 0; + } while (($row$04 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS6_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; + while (1) { + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; + } + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; + } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; + break; + } else $$pn = $__nd$0; } - HEAP32[tempDoublePtr >> 2] = $150; - HEAP32[tempDoublePtr + 4 >> 2] = $149 | $10; - $$0 = +HEAPF64[tempDoublePtr >> 3]; } } while (0); - if ((label | 0) == 3) { - $23 = $x * $y; - $$0 = $23 / $23; - } - return +$$0; + return $24 | 0; } -function __ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev($this) { +function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) { $this = $this | 0; - var $0 = 0, sp = 0; + $__k = $__k | 0; + var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__h = sp + 8 | 0; $0 = sp; - __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8590, 7); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8596, 3); - __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8605, 2); - __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8616, 3); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8632, 4); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8650, 4); - __ZN10emscripten8functionIiJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8670, 5); - __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8682, 8); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8699, 5); - __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8719, 9); - __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8737, 10); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8759, 6); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8782, 7); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8811, 6); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8824, 7); - __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8837, 11); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8856, 8); - __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8866, 9); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8879, 8); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8892, 9); - __ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_(8911, 10); - __ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_(8923, 1); - __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(8935, 1); - __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(8958, 1); - __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(8981, 2); - __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(9003, 2); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9025, 1); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9042, 10); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9059, 2); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9072, 11); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9085, 3); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9109, 12); - __ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_(9133, 3); - __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(9146, 3); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9159, 4); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9177, 13); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9195, 5); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9211, 14); - __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9227, 6); - __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9244, 15); - __ZN10emscripten8constantIiEEvPKcRKT_(9261, 2088); - __ZN10emscripten8constantIiEEvPKcRKT_(9290, 2096); - __ZN10emscripten8constantIiEEvPKcRKT_(9318, 2092); - __embind_register_constant(9351, 680, 0); - __embind_register_constant(9368, 680, 1); - __embind_register_constant(9384, 680, 0); - __embind_register_constant(9406, 680, 0); - __embind_register_constant(9431, 680, 1); - __embind_register_constant(9456, 680, 1); - __embind_register_constant(9481, 680, 100); - __embind_register_constant(9508, 680, 0); - __embind_register_constant(9534, 680, 1); - __embind_register_constant(9560, 680, 0); - __embind_register_constant(9587, 680, 0); - __embind_register_constant(9614, 680, 1); - __embind_register_constant(9640, 680, 2); - __embind_register_constant(9665, 680, 3); - __embind_register_constant(9703, 680, 4); - __embind_register_constant(9740, 680, 0); - __embind_register_constant(9774, 680, 0); - __embind_register_constant(9798, 680, 1); - __embind_register_constant(9824, 680, 2); - __embind_register_constant(9851, 680, 2); - __embind_register_constant(9885, 680, 5); - HEAPF64[$0 >> 3] = .5; - __ZN10emscripten8constantIdEEvPKcRKT_(9903, $0); - __embind_register_constant(9924, 680, 0); - __embind_register_constant(9943, 680, 1); - __embind_register_constant(9961, 680, 2); - __embind_register_constant(9979, 680, 3); - __embind_register_constant(9998, 680, 4); - __embind_register_constant(10020, 680, 3); - __embind_register_constant(10039, 680, 515); - __embind_register_constant(10068, 680, 259); - __embind_register_constant(10096, 680, 4); - __embind_register_constant(10115, 680, 772); - __embind_register_constant(10145, 680, 1028); - __embind_register_constant(10175, 680, 0); - __embind_register_constant(10206, 680, 1); - __embind_register_constant(10242, 680, 2); - __embind_register_constant(10276, 680, 3); - __embind_register_constant(10314, 680, 0); - __embind_register_constant(10347, 680, 1); - __embind_register_constant(10394, 680, 2); - __embind_register_constant(10436, 680, 3); - __embind_register_constant(10479, 680, 4); - __embind_register_constant(10531, 680, 5); - __embind_register_constant(10582, 680, 6); - __embind_register_constant(10627, 680, 7); - __embind_register_constant(10666, 680, 8); - __embind_register_constant(10711, 680, 9); + $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; + if (!$1) { + __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0); + $5 = HEAP32[$0 >> 2] | 0; + HEAP32[$__h >> 2] = 0; + $$pn3 = $5; + } else $$pn3 = $1; STACKTOP = sp; - return; + return $$pn3 + 16 | 0; } -function _arParamDecompMat($source, $cpara, $trans) { - $source = $source | 0; - $cpara = $cpara | 0; - $trans = $trans | 0; - var $102 = 0, $105 = 0, $109 = 0.0, $111 = 0.0, $113 = 0.0, $118 = 0.0, $119 = 0, $127 = 0.0, $128 = 0, $134 = 0.0, $140 = 0.0, $146 = 0.0, $152 = 0.0, $163 = 0.0, $167 = 0.0, $181 = 0, $185 = 0, $189 = 0, $45 = 0.0, $47 = 0.0, $49 = 0.0, $55 = 0.0, $56 = 0, $57 = 0.0, $58 = 0, $60 = 0.0, $61 = 0, $63 = 0.0, $64 = 0, $69 = 0, $71 = 0.0, $73 = 0.0, $75 = 0.0, $80 = 0.0, $81 = 0, $84 = 0.0, $87 = 0.0, $90 = 0.0, $96 = 0.0, $97 = 0, $99 = 0, $Cpara = 0, $r$024 = 0, $r$122 = 0, $r$318 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $Cpara = sp; - if (!(+HEAPF64[$source + 88 >> 3] >= 0.0)) { - $r$122 = 0; - do { - HEAPF64[$Cpara + ($r$122 << 5) >> 3] = -+HEAPF64[$source + ($r$122 << 5) >> 3]; - HEAPF64[$Cpara + ($r$122 << 5) + 8 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 8 >> 3]; - HEAPF64[$Cpara + ($r$122 << 5) + 16 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 16 >> 3]; - HEAPF64[$Cpara + ($r$122 << 5) + 24 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 24 >> 3]; - $r$122 = $r$122 + 1 | 0; - } while (($r$122 | 0) != 3); - } else { - $r$024 = 0; - do { - HEAPF64[$Cpara + ($r$024 << 5) >> 3] = +HEAPF64[$source + ($r$024 << 5) >> 3]; - HEAPF64[$Cpara + ($r$024 << 5) + 8 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 8 >> 3]; - HEAPF64[$Cpara + ($r$024 << 5) + 16 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 16 >> 3]; - HEAPF64[$Cpara + ($r$024 << 5) + 24 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 24 >> 3]; - $r$024 = $r$024 + 1 | 0; - } while (($r$024 | 0) != 3); - } - HEAPF64[$cpara >> 3] = 0.0; - HEAPF64[$cpara + 8 >> 3] = 0.0; - HEAPF64[$cpara + 16 >> 3] = 0.0; - HEAPF64[$cpara + 24 >> 3] = 0.0; - HEAPF64[$cpara + 32 >> 3] = 0.0; - HEAPF64[$cpara + 40 >> 3] = 0.0; - HEAPF64[$cpara + 48 >> 3] = 0.0; - HEAPF64[$cpara + 56 >> 3] = 0.0; - HEAPF64[$cpara + 64 >> 3] = 0.0; - HEAPF64[$cpara + 72 >> 3] = 0.0; - HEAPF64[$cpara + 80 >> 3] = 0.0; - HEAPF64[$cpara + 88 >> 3] = 0.0; - $45 = +HEAPF64[$Cpara + 64 >> 3]; - $47 = +HEAPF64[$Cpara + 72 >> 3]; - $49 = +HEAPF64[$Cpara + 80 >> 3]; - $55 = +Math_sqrt(+($45 * $45 + $47 * $47 + $49 * $49)); - $56 = $cpara + 80 | 0; - HEAPF64[$56 >> 3] = $55; - $57 = $45 / $55; - $58 = $trans + 64 | 0; - HEAPF64[$58 >> 3] = $57; - $60 = $47 / +HEAPF64[$56 >> 3]; - $61 = $trans + 72 | 0; - HEAPF64[$61 >> 3] = $60; - $63 = $49 / +HEAPF64[$56 >> 3]; - $64 = $trans + 80 | 0; - HEAPF64[$64 >> 3] = $63; - $69 = $trans + 88 | 0; - HEAPF64[$69 >> 3] = +HEAPF64[$Cpara + 88 >> 3] / +HEAPF64[$56 >> 3]; - $71 = +HEAPF64[$Cpara + 32 >> 3]; - $73 = +HEAPF64[$Cpara + 40 >> 3]; - $75 = +HEAPF64[$Cpara + 48 >> 3]; - $80 = $57 * $71 + $60 * $73 + $63 * $75; - $81 = $cpara + 48 | 0; - HEAPF64[$81 >> 3] = $80; - $84 = $71 - $80 * +HEAPF64[$58 >> 3]; - $87 = $73 - $80 * +HEAPF64[$61 >> 3]; - $90 = $75 - $80 * +HEAPF64[$64 >> 3]; - $96 = +Math_sqrt(+($84 * $84 + $87 * $87 + $90 * $90)); - $97 = $cpara + 40 | 0; - HEAPF64[$97 >> 3] = $96; - $99 = $trans + 32 | 0; - HEAPF64[$99 >> 3] = $84 / $96; - $102 = $trans + 40 | 0; - HEAPF64[$102 >> 3] = $87 / +HEAPF64[$97 >> 3]; - $105 = $trans + 48 | 0; - HEAPF64[$105 >> 3] = $90 / +HEAPF64[$97 >> 3]; - $109 = +HEAPF64[$Cpara >> 3]; - $111 = +HEAPF64[$Cpara + 8 >> 3]; - $113 = +HEAPF64[$Cpara + 16 >> 3]; - $118 = +HEAPF64[$58 >> 3] * $109 + +HEAPF64[$61 >> 3] * $111 + +HEAPF64[$64 >> 3] * $113; - $119 = $cpara + 16 | 0; - HEAPF64[$119 >> 3] = $118; - $127 = +HEAPF64[$99 >> 3] * $109 + +HEAPF64[$102 >> 3] * $111 + +HEAPF64[$105 >> 3] * $113; - $128 = $cpara + 8 | 0; - HEAPF64[$128 >> 3] = $127; - $134 = $109 - $127 * +HEAPF64[$99 >> 3] - $118 * +HEAPF64[$58 >> 3]; - $140 = $111 - $127 * +HEAPF64[$102 >> 3] - $118 * +HEAPF64[$61 >> 3]; - $146 = $113 - $127 * +HEAPF64[$105 >> 3] - $118 * +HEAPF64[$64 >> 3]; - $152 = +Math_sqrt(+($134 * $134 + $140 * $140 + $146 * $146)); - HEAPF64[$cpara >> 3] = $152; - HEAPF64[$trans >> 3] = $134 / $152; - HEAPF64[$trans + 8 >> 3] = $140 / +HEAPF64[$cpara >> 3]; - HEAPF64[$trans + 16 >> 3] = $146 / +HEAPF64[$cpara >> 3]; - $163 = +HEAPF64[$69 >> 3]; - $167 = (+HEAPF64[$Cpara + 56 >> 3] - +HEAPF64[$81 >> 3] * $163) / +HEAPF64[$97 >> 3]; - HEAPF64[$trans + 56 >> 3] = $167; - HEAPF64[$trans + 24 >> 3] = (+HEAPF64[$Cpara + 24 >> 3] - $167 * +HEAPF64[$128 >> 3] - +HEAPF64[$119 >> 3] * $163) / +HEAPF64[$cpara >> 3]; - $r$318 = 0; +function __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPKhiPKii($this, $features, $num_features, $indices, $num_indices) { + $this = $this | 0; + $features = $features | 0; + $num_features = $num_features | 0; + $indices = $indices | 0; + $num_indices = $num_indices | 0; + var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $5 = 0, $7 = 0, $8 = 0, dest = 0, stop = 0; + $0 = __Znwj(128) | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = $2 + 1; + HEAP32[$0 >> 2] = $2; + HEAP8[$0 + 100 >> 0] = 1; + $5 = $0 + 104 | 0; + dest = $0 + 4 | 0; + stop = dest + 96 | 0; do { - $181 = $cpara + ($r$318 << 5) | 0; - HEAPF64[$181 >> 3] = +HEAPF64[$181 >> 3] / +HEAPF64[$56 >> 3]; - $185 = $cpara + ($r$318 << 5) + 8 | 0; - HEAPF64[$185 >> 3] = +HEAPF64[$185 >> 3] / +HEAPF64[$56 >> 3]; - $189 = $cpara + ($r$318 << 5) + 16 | 0; - HEAPF64[$189 >> 3] = +HEAPF64[$189 >> 3] / +HEAPF64[$56 >> 3]; - $r$318 = $r$318 + 1 | 0; - } while (($r$318 | 0) != 3); - STACKTOP = sp; - return 0; + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + HEAP32[$5 + 12 >> 2] = 0; + HEAP32[$5 + 16 >> 2] = 0; + HEAP32[$5 + 20 >> 2] = 0; + $7 = $this + 8 | 0; + $8 = HEAP32[$7 >> 2] | 0; + HEAP32[$7 >> 2] = $0; + if (!$8) $11 = $0; else { + __ZN6vision4NodeILi96EED2Ev($8); + __ZdlPv($8); + $11 = HEAP32[$7 >> 2] | 0; + } + HEAP8[$11 + 100 >> 0] = 0; + __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPNS_4NodeILi96EEEPKhiPKii($this, $11, $features, $num_features, $indices, $num_indices); + return; } -function __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($agg$result, $s) { - $agg$result = $agg$result | 0; - $s = $s | 0; - var $$$$i$i$i3 = 0, $$0$i$i27 = 0, $$lcssa = 0, $$lcssa32 = 0, $$lcssa33 = 0, $0 = 0, $12 = 0, $13 = 0, $15 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $31 = 0, $33 = 0, $38 = 0, $42 = 0, $46 = 0, $48 = 0, $56 = 0, $63 = 0, $64 = 0, $7 = 0, $__p$0$i$i26 = 0, $__p$0$ph$i$i = 0, $c$0$ph = 0, $p0$0 = 0, $p0$1 = 0, $pe$0 = 0, $pe$0$ph = 0, $pe$1 = 0, $pe$1$pn = 0, label = 0; - $0 = HEAP8[$s >> 0] | 0; - $2 = ($0 & 1) == 0; - $7 = $2 ? ($0 & 255) >>> 1 : HEAP32[$s + 4 >> 2] | 0; - L1 : do if (!$7) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($agg$result, $s); else { - $12 = $2 ? $s + 1 | 0 : HEAP32[$s + 8 >> 2] | 0; - $13 = $7 >>> 0 > 11; - $15 = _memcmp($12, 12846, $13 ? 11 : $7) | 0; - if (!((($15 | 0) == 0 ? ($7 >>> 0 < 11 ? -1 : $13 & 1) : $15) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13450, 70); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13521, 12); - break; - } - $20 = $7 >>> 0 > 12; - $21 = $20 ? 12 : $7; - $22 = _memcmp($12, 12858, $21) | 0; - $$$$i$i$i3 = $7 >>> 0 < 12 ? -1 : $20 & 1; - if (!((($22 | 0) == 0 ? $$$$i$i$i3 : $22) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13534, 49); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13584, 13); - break; - } - $27 = _memcmp($12, 12871, $21) | 0; - if (!((($27 | 0) == 0 ? $$$$i$i$i3 : $27) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13598, 49); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13648, 13); - break; - } - $31 = $7 >>> 0 > 13; - $33 = _memcmp($12, 12884, $31 ? 13 : $7) | 0; - if (!((($33 | 0) == 0 ? ($7 >>> 0 < 13 ? -1 : $31 & 1) : $33) | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13662, 50); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13713, 14); - break; - } - $38 = $12 + $7 | 0; - L16 : do if ((HEAP8[$12 + ($7 + -1) >> 0] | 0) == 62) { - $c$0$ph = 1; - $pe$0$ph = $38; - L17 : while (1) { - $pe$0 = $pe$0$ph; - L19 : while (1) { - $42 = $pe$0 + -1 | 0; - if (($42 | 0) == ($12 | 0)) break L17; - $46 = $pe$0 + -2 | 0; - switch (HEAP8[$46 >> 0] | 0) { - case 60: - { - $$lcssa = $46; - $$lcssa32 = $42; - label = 16; - break L19; - break; - } - case 62: - { - $$lcssa33 = $42; - label = 17; - break L19; - break; - } - default: - $pe$0 = $42; - } +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS4_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; + while (1) { + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; } - if ((label | 0) == 16) { - label = 0; - $48 = $c$0$ph + -1 | 0; - if (!$48) { - $pe$1 = $$lcssa; - break L16; - } else { - $c$0$ph = $48; - $pe$0$ph = $$lcssa32; - continue; - } - } else if ((label | 0) == 17) { - label = 0; - $c$0$ph = $c$0$ph + 1 | 0; - $pe$0$ph = $$lcssa33; - continue; + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; + break; + } else $$pn = $__nd$0; } - HEAP32[$agg$result >> 2] = 0; - HEAP32[$agg$result + 4 >> 2] = 0; - HEAP32[$agg$result + 8 >> 2] = 0; - break L1; - } else $pe$1 = $38; while (0); - $pe$1$pn = $pe$1; - while (1) { - $p0$0 = $pe$1$pn + -1 | 0; - if (($p0$0 | 0) == ($12 | 0)) { - $p0$1 = $12; - break; - } - if ((HEAP8[$p0$0 >> 0] | 0) == 58) { - $p0$1 = $pe$1$pn; - break; - } else $pe$1$pn = $p0$0; } - $56 = $pe$1 - $p0$1 | 0; - if ($56 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($agg$result); - if ($56 >>> 0 < 11) { - HEAP8[$agg$result >> 0] = $56 << 1; - $__p$0$ph$i$i = $agg$result + 1 | 0; - } else { - $63 = $56 + 16 & -16; - $64 = _malloc($63) | 0; - HEAP32[$agg$result + 8 >> 2] = $64; - HEAP32[$agg$result >> 2] = $63 | 1; - HEAP32[$agg$result + 4 >> 2] = $56; - $__p$0$ph$i$i = $64; + } while (0); + return $24 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_add) { + $this = $this | 0; + $__old_cap = $__old_cap | 0; + $__delta_cap = $__delta_cap | 0; + $__old_sz = $__old_sz | 0; + $__n_copy = $__n_copy | 0; + $__n_add = $__n_add | 0; + var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $9 = 0; + if ((-17 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; + if ($__old_cap >>> 0 < 2147483623) { + $9 = $__delta_cap + $__old_cap | 0; + $10 = $__old_cap << 1; + $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; + $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; + } else $17 = -17; + $18 = _malloc($17) | 0; + if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; + if (($__old_sz | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + $__n_copy | 0, $__old_sz - $__n_copy | 0) | 0; + if (($__old_cap | 0) != 10) _free($20); + HEAP32[$this + 8 >> 2] = $18; + HEAP32[$this >> 2] = $17 | 1; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; + while (1) { + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; + } + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; + } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; + break; + } else $$pn = $__nd$0; + } } - if (($p0$1 | 0) != ($pe$1 | 0)) { - $$0$i$i27 = $p0$1; - $__p$0$i$i26 = $__p$0$ph$i$i; + } while (0); + return $24 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; while (1) { - HEAP8[$__p$0$i$i26 >> 0] = HEAP8[$$0$i$i27 >> 0] | 0; - $$0$i$i27 = $$0$i$i27 + 1 | 0; - if (($$0$i$i27 | 0) == ($pe$1 | 0)) break; else $__p$0$i$i26 = $__p$0$i$i26 + 1 | 0; + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; + } + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; + break L1; + } + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; + break; + } else $$pn = $__nd$0; + } + } + } while (0); + return $24 | 0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$0 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; + if (!$1) $$0 = 0; else { + HEAP32[$0 >> 2] = $1; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $$byval_copy) | 0; + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision19downsample_bilinearEPfPKfjj($dst, $src, $src_width, $src_height) { + $dst = $dst | 0; + $src = $src | 0; + $src_width = $src_width | 0; + $src_height = $src_height | 0; + var $$08 = 0, $$13 = 0, $0 = 0, $1 = 0, $3 = 0, $col$06 = 0, $exitcond2 = 0, $row$09 = 0, $src_ptr1$04 = 0, $src_ptr2$05 = 0; + $0 = $src_width >>> 1; + $1 = $src_height >>> 1; + if ($1) { + $exitcond2 = ($0 | 0) == 0; + $$08 = $dst; + $row$09 = 0; + while (1) { + $3 = Math_imul($row$09 << 1, $src_width) | 0; + if (!$exitcond2) { + $$13 = $$08; + $col$06 = 0; + $src_ptr1$04 = $src + ($3 << 2) | 0; + $src_ptr2$05 = $src + ($3 + $src_width << 2) | 0; + while (1) { + HEAPF32[$$13 >> 2] = (+HEAPF32[$src_ptr1$04 >> 2] + +HEAPF32[$src_ptr1$04 + 4 >> 2] + +HEAPF32[$src_ptr2$05 >> 2] + +HEAPF32[$src_ptr2$05 + 4 >> 2]) * .25; + $col$06 = $col$06 + 1 | 0; + if (($col$06 | 0) == ($0 | 0)) break; else { + $$13 = $$13 + 4 | 0; + $src_ptr1$04 = $src_ptr1$04 + 8 | 0; + $src_ptr2$05 = $src_ptr2$05 + 8 | 0; + } + } } + $row$09 = $row$09 + 1 | 0; + if (($row$09 | 0) == ($1 | 0)) break; else $$08 = $$08 + ($0 << 2) | 0; } - HEAP8[$__p$0$ph$i$i + $56 >> 0] = 0; - } while (0); + } return; } -function _trinkle($head, $width, $cmp, $pp, $pshift, $trusty, $lp) { - $head = $head | 0; - $width = $width | 0; - $cmp = $cmp | 0; - $pp = $pp | 0; - $pshift = $pshift | 0; - $trusty = $trusty | 0; - $lp = $lp | 0; - var $$0$i = 0, $$0$lcssa = 0, $$0$lcssa49 = 0, $$01162 = 0, $$01162$phi = 0, $$02$i$i = 0, $$02$i3$i = 0, $$02$lcssa = 0, $$02$lcssa51 = 0, $$02964 = 0, $$03$lcssa = 0, $$03865 = 0, $$lcssa = 0, $$lcssa75 = 0, $0 = 0, $10 = 0, $17 = 0, $18 = 0, $2 = 0, $24 = 0, $26 = 0, $27 = 0, $3 = 0, $31 = 0, $37 = 0, $40 = 0, $47 = 0, $49 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $65 = 0, $ar = 0, $i$0$lcssa = 0, $i$0$lcssa50 = 0, $i$01063 = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, label = 0, sp = 0; +function __ZNSt3__16vectorIiNS_9allocatorIiEEE21__push_back_slow_pathIKiEEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $3 = 0, $8 = 0, $__v = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 240 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ar = sp; - $0 = HEAP32[$pp >> 2] | 0; - $2 = HEAP32[$pp + 4 >> 2] | 0; - HEAP32[$ar >> 2] = $head; - $3 = 0 - $width | 0; - L1 : do if (($2 | 0) != 0 | ($0 | 0) != 1) { - $10 = $head + (0 - (HEAP32[$lp + ($pshift << 2) >> 2] | 0)) | 0; - if ((FUNCTION_TABLE_iii[$cmp & 15]($10, $head) | 0) < 1) { - $$0$lcssa = $head; - $$02$lcssa = $pshift; - $$03$lcssa = $trusty; - $i$0$lcssa = 1; - label = 19; - } else { - $$01162 = $head; - $$02964 = $pshift; - $$03865 = ($trusty | 0) == 0; - $18 = $10; - $27 = $0; - $37 = $2; - $i$01063 = 1; + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 2) + 1 | 0; + if ($8 >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $13 = $3; + $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; + if ($14 >> 2 >>> 0 < 536870911) { + $17 = $14 >> 1; + $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; + } else $$0$i = 1073741823; + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEEC2EjjS3_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 2, $this + 8 | 0); + $24 = $__v + 8 | 0; + $25 = HEAP32[$24 >> 2] | 0; + HEAP32[$25 >> 2] = HEAP32[$__x >> 2]; + HEAP32[$24 >> 2] = $25 + 4; + __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEED2Ev($__v); + STACKTOP = sp; + return; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9push_backEw($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$pn = 0, $0 = 0, $19 = 0, $2 = 0, $20 = 0, $__cap$0 = 0, $__p$0$sum$pre$phiZZZ2D = 0, $__sz$0 = 0, label = 0; + $0 = HEAP8[$this >> 0] | 0; + $2 = ($0 & 1) != 0; + if ($2) { + $__cap$0 = (HEAP32[$this >> 2] & -2) + -1 | 0; + $__sz$0 = HEAP32[$this + 4 >> 2] | 0; + } else { + $__cap$0 = 1; + $__sz$0 = ($0 & 255) >>> 1; + } + if (($__sz$0 | 0) == ($__cap$0 | 0)) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE9__grow_byEjjjjjj($this, $__cap$0, 1, $__cap$0, $__cap$0, 0, 0); + if (!(HEAP8[$this >> 0] & 1)) label = 7; else label = 8; + } else if ($2) label = 8; else label = 7; + if ((label | 0) == 7) { + HEAP8[$this >> 0] = ($__sz$0 << 1) + 2; + $$pn = $this + 4 | 0; + $__p$0$sum$pre$phiZZZ2D = $__sz$0 + 1 | 0; + } else if ((label | 0) == 8) { + $19 = HEAP32[$this + 8 >> 2] | 0; + $20 = $__sz$0 + 1 | 0; + HEAP32[$this + 4 >> 2] = $20; + $$pn = $19; + $__p$0$sum$pre$phiZZZ2D = $20; + } + HEAP32[$$pn + ($__sz$0 << 2) >> 2] = $__c; + HEAP32[$$pn + ($__p$0$sum$pre$phiZZZ2D << 2) >> 2] = 0; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE4findIjEENS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEERKT_($this, $__k) { + $this = $this | 0; + $__k = $__k | 0; + var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; + $0 = HEAP32[$__k >> 2] | 0; + $2 = HEAP32[$this + 4 >> 2] | 0; + L1 : do if (!$2) $24 = 0; else { + $4 = $2 + -1 | 0; + $6 = ($4 & $2 | 0) == 0; + if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; + $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; + if (!$12) $24 = 0; else { + $$pn = $12; while (1) { - if ($$03865 & ($$02964 | 0) > 1) { - $17 = HEAP32[$lp + ($$02964 + -2 << 2) >> 2] | 0; - if ((FUNCTION_TABLE_iii[$cmp & 15]($$01162 + $3 | 0, $18) | 0) > -1) { - $$0$lcssa49 = $$01162; - $$02$lcssa51 = $$02964; - $i$0$lcssa50 = $i$01063; - label = 20; - break L1; - } - if ((FUNCTION_TABLE_iii[$cmp & 15]($$01162 + (0 - ($17 + $width)) | 0, $18) | 0) > -1) { - $$0$lcssa49 = $$01162; - $$02$lcssa51 = $$02964; - $i$0$lcssa50 = $i$01063; - label = 20; - break L1; - } - } - $24 = $i$01063 + 1 | 0; - HEAP32[$ar + ($i$01063 << 2) >> 2] = $18; - $26 = $27 + -1 | 0; - do if (!$26) { - $49 = 32; - label = 16; - } else { - if (!($26 & 1)) { - $$02$i$i = $26; - $nTrailingZeros$03$i$i = 0; - while (1) { - $31 = $nTrailingZeros$03$i$i + 1 | 0; - $$02$i$i = $$02$i$i >>> 1; - if ($$02$i$i & 1) { - $$lcssa = $31; - break; - } else $nTrailingZeros$03$i$i = $31; - } - if (!$$lcssa) label = 11; else $47 = $$lcssa; - } else label = 11; - if ((label | 0) == 11) { - label = 0; - if (!$37) { - $49 = 64; - label = 16; - break; - } - if (!($37 & 1)) { - $$02$i3$i = $37; - $nTrailingZeros$03$i2$i = 0; - } else { - $$0$i = 0; - $51 = $27; - $54 = $37; - $58 = 0; - break; - } - while (1) { - $40 = $nTrailingZeros$03$i2$i + 1 | 0; - $$02$i3$i = $$02$i3$i >>> 1; - if ($$02$i3$i & 1) { - $$lcssa75 = $40; - $nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i; - break; - } else $nTrailingZeros$03$i2$i = $40; - } - if (!$$lcssa75) { - $$0$i = 0; - $51 = $27; - $54 = $37; - $58 = 0; - break; - } else $47 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0; - } - if ($47 >>> 0 > 31) { - $49 = $47; - label = 16; - } else { - $$0$i = $47; - $51 = $27; - $54 = $37; - $58 = $47; - } - } while (0); - if ((label | 0) == 16) { - label = 0; - $$0$i = $49 + -32 | 0; - $51 = $37; - $54 = 0; - $58 = $49; + $__nd$0 = HEAP32[$$pn >> 2] | 0; + if (!$__nd$0) { + $24 = 0; + break L1; } - $27 = $54 << 32 - $$0$i | $51 >>> $$0$i; - $37 = $54 >>> $$0$i; - $57 = $58 + $$02964 | 0; - if (!(($37 | 0) != 0 | ($27 | 0) != 1)) { - $$0$lcssa49 = $18; - $$02$lcssa51 = $57; - $i$0$lcssa50 = $24; - label = 20; + $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; + if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; + if (($20 | 0) != ($11 | 0)) { + $24 = 0; break L1; } - $65 = $18 + (0 - (HEAP32[$lp + ($57 << 2) >> 2] | 0)) | 0; - if ((FUNCTION_TABLE_iii[$cmp & 15]($65, HEAP32[$ar >> 2] | 0) | 0) < 1) { - $$0$lcssa = $18; - $$02$lcssa = $57; - $$03$lcssa = 0; - $i$0$lcssa = $24; - label = 19; + if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { + $24 = $__nd$0; break; - } else { - $$01162$phi = $18; - $$02964 = $57; - $$03865 = 1; - $18 = $65; - $i$01063 = $24; - $$01162 = $$01162$phi; - } + } else $$pn = $__nd$0; } } - } else { - $$0$lcssa = $head; - $$02$lcssa = $pshift; - $$03$lcssa = $trusty; - $i$0$lcssa = 1; - label = 19; } while (0); - if ((label | 0) == 19) if (!$$03$lcssa) { - $$0$lcssa49 = $$0$lcssa; - $$02$lcssa51 = $$02$lcssa; - $i$0$lcssa50 = $i$0$lcssa; - label = 20; + return $24 | 0; +} + +function ___cxx_global_array_dtor46($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14828); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14816); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14804); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14792); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14780); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14768); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14756); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14744); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14732); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14720); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14708); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14696); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14684); + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev(14672); + return; +} + +function ___cxx_global_array_dtor($0) { + $0 = $0 | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14656); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14644); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14632); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14620); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14608); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14596); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14584); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14572); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14560); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14548); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14536); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14524); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14512); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev(14500); + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $$pn = 0, $0 = 0, $19 = 0, $2 = 0, $20 = 0, $__cap$0 = 0, $__p$0$sum$pre$phiZZZ2D = 0, $__sz$0 = 0, label = 0; + $0 = HEAP8[$this >> 0] | 0; + $2 = ($0 & 1) != 0; + if ($2) { + $__cap$0 = (HEAP32[$this >> 2] & -2) + -1 | 0; + $__sz$0 = HEAP32[$this + 4 >> 2] | 0; + } else { + $__cap$0 = 10; + $__sz$0 = ($0 & 255) >>> 1; } - if ((label | 0) == 20) { - _cycle($width, $ar, $i$0$lcssa50); - _sift($$0$lcssa49, $width, $cmp, $$02$lcssa51, $lp); + if (($__sz$0 | 0) == ($__cap$0 | 0)) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj($this, $__cap$0, 1, $__cap$0, $__cap$0, 0, 0); + if (!(HEAP8[$this >> 0] & 1)) label = 7; else label = 8; + } else if ($2) label = 8; else label = 7; + if ((label | 0) == 7) { + HEAP8[$this >> 0] = ($__sz$0 << 1) + 2; + $$pn = $this + 1 | 0; + $__p$0$sum$pre$phiZZZ2D = $__sz$0 + 1 | 0; + } else if ((label | 0) == 8) { + $19 = HEAP32[$this + 8 >> 2] | 0; + $20 = $__sz$0 + 1 | 0; + HEAP32[$this + 4 >> 2] = $20; + $$pn = $19; + $__p$0$sum$pre$phiZZZ2D = $20; } + HEAP8[$$pn + $__sz$0 >> 0] = $__c; + HEAP8[$$pn + $__p$0$sum$pre$phiZZZ2D >> 0] = 0; + return; +} + +function __ZNSt3__125__num_get_signed_integralIxEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $1 = 0, $15 = 0, $18 = 0, $19 = 0, $2 = 0, $4 = 0, $5 = 0, $6 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $18 = 0; + $19 = 0; + } else { + $1 = ___errno_location() | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = 0; + $4 = _strtoll_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $5 = tempRet0; + $6 = HEAP32[$1 >> 2] | 0; + if (!$6) HEAP32[$1 >> 2] = $2; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $18 = 0; + $19 = 0; + break; + } + if (($6 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + $15 = ($5 | 0) > 0 | ($5 | 0) == 0 & $4 >>> 0 > 0; + tempRet0 = $15 ? 2147483647 : -2147483648; + STACKTOP = sp; + return ($15 ? -1 : 0) | 0; + } else { + $18 = $5; + $19 = $4; + } + } while (0); + tempRet0 = $18; STACKTOP = sp; + return $19 | 0; +} + +function __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $26 = 0, $27 = 0, $28 = 0, $3 = 0, $8 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $$0$i1 = $$0$i1 + -8 | 0; + $8 = $$0$i1; + $13 = HEAP32[$8 + 4 >> 2] | 0; + $14 = (HEAP32[$3 >> 2] | 0) + -8 | 0; + HEAP32[$14 >> 2] = HEAP32[$8 >> 2]; + HEAP32[$14 + 4 >> 2] = $13; + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -8; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $21 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $21; + $23 = $__v + 8 | 0; + $24 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$23 >> 2]; + HEAP32[$23 >> 2] = $24; + $26 = $this + 8 | 0; + $27 = $__v + 12 | 0; + $28 = HEAP32[$26 >> 2] | 0; + HEAP32[$26 >> 2] = HEAP32[$27 >> 2]; + HEAP32[$27 >> 2] = $28; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; return; } -function _arMatrixPCA($input, $evec, $ev, $mean) { - $input = $input | 0; - $evec = $evec | 0; - $ev = $ev | 0; - $mean = $mean | 0; - var $$0 = 0, $1 = 0, $14 = 0, $17 = 0, $20 = 0, $23 = 0.0, $25 = 0, $27 = 0, $3 = 0, $32 = 0, $35 = 0, $36 = 0.0, $37 = 0, $46 = 0, $5 = 0, $52 = 0, $53 = 0, $65 = 0, $70 = 0, $71 = 0, $73 = 0, $75 = 0, $78 = 0.0, $81 = 0, $exitcond3$i29 = 0, $i$0$i322 = 0, $i$0$i42 = 0, $i$015 = 0, $i$1$i38 = 0, $i$113 = 0, $i$2$i26 = 0, $i$211 = 0, $j$0$i32 = 0, $j$0$i619 = 0, $m$0$i221 = 0, $m$0$i37 = 0, $m$1$i31 = 0, $m$1$i518 = 0, $smax$i = 0, $sum$0$lcssa = 0.0, $sum$012 = 0.0, $v$0$i30 = 0, $v$0$i417 = 0; - $1 = HEAP32[$input + 4 >> 2] | 0; - $3 = HEAP32[$input + 8 >> 2] | 0; - $5 = ($1 | 0) < ($3 | 0) ? $1 : $3; - L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else if ((HEAP32[$evec + 8 >> 2] | 0) == ($3 | 0)) if ((HEAP32[$evec + 4 >> 2] | 0) == ($5 | 0)) { - $14 = $ev + 4 | 0; - if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) { - $17 = $mean + 4 | 0; - if ((HEAP32[$17 >> 2] | 0) == ($3 | 0)) { - $20 = _arMatrixAllocDup($input) | 0; - if (!$20) $$0 = -1; else { - $23 = +Math_sqrt(+(+($1 | 0))); - $25 = HEAP32[$20 + 4 >> 2] | 0; - $27 = HEAP32[$20 + 8 >> 2] | 0; - if (!(($25 | 0) < 1 | ($27 | 0) < 1)) if ((HEAP32[$17 >> 2] | 0) == ($27 | 0)) { - if ($27) { - $32 = HEAP32[$mean >> 2] | 0; - $i$0$i42 = 0; - do { - HEAPF64[$32 + ($i$0$i42 << 3) >> 3] = 0.0; - $i$0$i42 = $i$0$i42 + 1 | 0; - } while (($i$0$i42 | 0) != ($27 | 0)); - } - $35 = HEAP32[$20 >> 2] | 0; - if ($25) { - $exitcond3$i29 = ($27 | 0) == 0; - $i$1$i38 = 0; - $m$0$i37 = $35; - while (1) { - if (!$exitcond3$i29) { - $j$0$i32 = 0; - $m$1$i31 = $m$0$i37; - $v$0$i30 = HEAP32[$mean >> 2] | 0; - while (1) { - HEAPF64[$v$0$i30 >> 3] = +HEAPF64[$m$1$i31 >> 3] + +HEAPF64[$v$0$i30 >> 3]; - $j$0$i32 = $j$0$i32 + 1 | 0; - if (($j$0$i32 | 0) == ($27 | 0)) break; else { - $m$1$i31 = $m$1$i31 + 8 | 0; - $v$0$i30 = $v$0$i30 + 8 | 0; - } - } - } - $i$1$i38 = $i$1$i38 + 1 | 0; - if (($i$1$i38 | 0) == ($25 | 0)) break; else $m$0$i37 = $m$0$i37 + ($27 << 3) | 0; - } - } - $36 = +($25 | 0); - if ($27) { - $37 = HEAP32[$mean >> 2] | 0; - $i$2$i26 = 0; - do { - $46 = $37 + ($i$2$i26 << 3) | 0; - HEAPF64[$46 >> 3] = +HEAPF64[$46 >> 3] / $36; - $i$2$i26 = $i$2$i26 + 1 | 0; - } while (($i$2$i26 | 0) != ($27 | 0)); - } - $smax$i = ($27 | 0) > 0 ? $27 : 0; - if (($25 | 0) > 0) { - $52 = ($27 | 0) > 0; - $i$0$i322 = 0; - $m$0$i221 = $35; - while (1) { - if ($52) { - $j$0$i619 = 0; - $m$1$i518 = $m$0$i221; - $v$0$i417 = HEAP32[$mean >> 2] | 0; - while (1) { - HEAPF64[$m$1$i518 >> 3] = +HEAPF64[$m$1$i518 >> 3] - +HEAPF64[$v$0$i417 >> 3]; - $j$0$i619 = $j$0$i619 + 1 | 0; - if (($j$0$i619 | 0) >= ($27 | 0)) break; else { - $m$1$i518 = $m$1$i518 + 8 | 0; - $v$0$i417 = $v$0$i417 + 8 | 0; - } - } - } - $i$0$i322 = $i$0$i322 + 1 | 0; - if (($i$0$i322 | 0) >= ($25 | 0)) break; else $m$0$i221 = $m$0$i221 + ($smax$i << 3) | 0; - } - } - $53 = Math_imul($3, $1) | 0; - if (($53 | 0) > 0) { - $i$015 = 0; - do { - $65 = $35 + ($i$015 << 3) | 0; - HEAPF64[$65 >> 3] = +HEAPF64[$65 >> 3] / $23; - $i$015 = $i$015 + 1 | 0; - } while (($i$015 | 0) < ($53 | 0)); - } - $70 = _PCA($20, $evec, $ev) | 0; - _arMatrixFree($20) | 0; - $71 = HEAP32[$14 >> 2] | 0; - if (($71 | 0) > 0) { - $73 = HEAP32[$ev >> 2] | 0; - $i$113 = 0; - $sum$012 = 0.0; - while (1) { - $78 = $sum$012 + +HEAPF64[$73 + ($i$113 << 3) >> 3]; - $i$113 = $i$113 + 1 | 0; - if (($i$113 | 0) >= ($71 | 0)) { - $sum$0$lcssa = $78; - break; - } else $sum$012 = $78; - } - } else $sum$0$lcssa = 0.0; - if (($71 | 0) <= 0) { - $$0 = $70; - break; - } - $75 = HEAP32[$ev >> 2] | 0; - $i$211 = 0; - while (1) { - $81 = $75 + ($i$211 << 3) | 0; - HEAPF64[$81 >> 3] = +HEAPF64[$81 >> 3] / $sum$0$lcssa; - $i$211 = $i$211 + 1 | 0; - if (($i$211 | 0) >= ($71 | 0)) { - $$0 = $70; - break L1; - } - } - } - _arMatrixFree($20) | 0; - $$0 = -1; +function __ZN6vision25DoGScaleInvariantDetectorC2Ev($this) { + $this = $this | 0; + var $12 = 0, $7 = 0, $9 = 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 10; + HEAP32[$this + 12 >> 2] = 10; + HEAP32[$this + 16 >> 2] = 0; + HEAP32[$this + 20 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + HEAP8[$this + 28 >> 0] = 1; + $7 = $this + 32 | 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + HEAP32[$7 + 12 >> 2] = 0; + HEAP32[$7 + 16 >> 2] = 0; + HEAP32[$7 + 20 >> 2] = 0; + HEAPF32[$this + 56 >> 2] = 10.0; + $9 = $this + 60 | 0; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + HEAP32[$9 + 12 >> 2] = 0; + HEAP32[$9 + 16 >> 2] = 0; + HEAP32[$9 + 20 >> 2] = 0; + HEAPF32[$this + 88 >> 2] = 9.0; + __ZN6vision21OrientationAssignmentC2Ev($this + 92 | 0); + $12 = $this + 144 | 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$this + 148 >> 2] = 0; + HEAP32[$this + 152 >> 2] = 0; + HEAP32[$this + 84 >> 2] = 5e3; + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE7reserveEj($9, 5e3); + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($12, 36); + return; +} + +function _gray_rgb_convert($cinfo, $input_buf, $input_row, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $input_row = $input_row | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $$016 = 0, $$07 = 0, $$in = 0, $1 = 0, $12 = 0, $9 = 0, $col$05 = 0, $exitcond3 = 0, $outptr$04 = 0, $$in$looptemp = 0; + $1 = HEAP32[$cinfo + 112 >> 2] | 0; + if (($num_rows | 0) > 0) { + $exitcond3 = ($1 | 0) == 0; + $$016 = $output_buf; + $$07 = $input_row; + $$in = $num_rows; + while (1) { + $$in$looptemp = $$in; + $$in = $$in + -1 | 0; + $9 = HEAP32[(HEAP32[$input_buf >> 2] | 0) + ($$07 << 2) >> 2] | 0; + if (!$exitcond3) { + $col$05 = 0; + $outptr$04 = HEAP32[$$016 >> 2] | 0; + while (1) { + $12 = HEAP8[$9 + $col$05 >> 0] | 0; + HEAP8[$outptr$04 + 2 >> 0] = $12; + HEAP8[$outptr$04 + 1 >> 0] = $12; + HEAP8[$outptr$04 >> 0] = $12; + $col$05 = $col$05 + 1 | 0; + if (($col$05 | 0) == ($1 | 0)) break; else $outptr$04 = $outptr$04 + 3 | 0; } - } else $$0 = -1; - } else $$0 = -1; - } else $$0 = -1; else $$0 = -1; while (0); + } + if (($$in$looptemp | 0) <= 1) break; else { + $$016 = $$016 + 4 | 0; + $$07 = $$07 + 1 | 0; + } + } + } + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE21__push_back_slow_pathIKhEEvRT_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i = 0, $1 = 0, $12 = 0, $13 = 0, $15 = 0, $21 = 0, $22 = 0, $3 = 0, $7 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $1 = $this + 4 | 0; + $3 = HEAP32[$this >> 2] | 0; + $7 = (HEAP32[$1 >> 2] | 0) - $3 + 1 | 0; + if (($7 | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $12 = $3; + $13 = (HEAP32[$this + 8 >> 2] | 0) - $12 | 0; + if ($13 >>> 0 < 1073741823) { + $15 = $13 << 1; + $$0$i = $15 >>> 0 < $7 >>> 0 ? $7 : $15; + } else $$0$i = 2147483647; + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEEC2EjjS3_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $12 | 0, $this + 8 | 0); + $21 = $__v + 8 | 0; + $22 = HEAP32[$21 >> 2] | 0; + HEAP8[$22 >> 0] = HEAP8[$__x >> 0] | 0; + HEAP32[$21 >> 2] = $22 + 1; + __ZNSt3__16vectorIhNS_9allocatorIhEEE26__swap_out_circular_bufferERNS_14__split_bufferIhRS2_EE($this, $__v); + __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEED2Ev($__v); + STACKTOP = sp; + return; +} + +function _getTransMatSquareCont($id, $markerIndex, $markerWidth) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + $markerWidth = $markerWidth | 0; + var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $6 = HEAP32[$4 + 212 >> 2] | 0; + if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { + +_arGetTransMatSquareCont(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 168 : $6 + 48 + ($markerIndex << 8) | 0, 424, +($markerWidth | 0), 424); + $$0 = 0; + break; + } else { + $$0 = HEAP32[1466] | 0; + break; + } + } while (0); + STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $$0$i = 0, $10 = 0, $12 = 0, $14 = 0, $15 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $4 = 0, $42 = 0, $48 = 0, $52 = 0, $54 = 0, $56 = 0, $58 = 0, $59 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $75 = 0, $9 = 0, $args = 0, $args3 = 0, $t$0$i = 0, sp = 0; +function _exp2f($x) { + $x = +$x; + var $$0 = 0.0, $0 = 0, $1 = 0, $10 = 0.0, $12 = 0, $15 = 0, $16 = 0, $20 = 0.0, $22 = 0.0, $23 = 0.0, label = 0; + $0 = (HEAPF32[tempDoublePtr >> 2] = $x, HEAP32[tempDoublePtr >> 2] | 0); + $1 = $0 & 2147483647; + do if ($1 >>> 0 > 1123811328) if ($0 >>> 0 > 1124073471 & ($0 | 0) > -1) { + $$0 = $x * 1701411834604692317316873.0e14; + break; + } else if (($0 | 0) < 0 & $0 >>> 0 > 3272998911) { + $$0 = 0.0; + break; + } else { + label = 7; + break; + } else if ($1 >>> 0 < 855638017) $$0 = $x + 1.0; else label = 7; while (0); + if ((label | 0) == 7) { + $10 = $x + 786432.0; + $12 = (HEAPF32[tempDoublePtr >> 2] = $10, HEAP32[tempDoublePtr >> 2] | 0) + 8 | 0; + $15 = _bitshift64Shl(($12 >>> 4) + 1023 | 0, 0, 52) | 0; + $16 = tempRet0; + $20 = $x - ($10 + -786432.0); + $22 = +HEAPF64[952 + (($12 & 15) << 3) >> 3]; + $23 = $20 * $22; + HEAP32[tempDoublePtr >> 2] = $15; + HEAP32[tempDoublePtr + 4 >> 2] = $16; + $$0 = +HEAPF64[tempDoublePtr >> 3] * ($22 + ($20 * .24022650718688965 + .6931471824645996) * $23 + ($20 * .009618354961276054 + .055505409836769104) * ($20 * $20 * $23)); + } + return +$$0; +} + +function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($this, $thrown_type, $adjustedPtr) { + $this = $this | 0; + $thrown_type = $thrown_type | 0; + $adjustedPtr = $adjustedPtr | 0; + var $$0 = 0, $$1 = 0, $2 = 0, $info = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 64 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $info = sp; + if (($this | 0) == ($thrown_type | 0)) $$1 = 1; else if (!$thrown_type) $$1 = 0; else { + $2 = ___dynamic_cast($thrown_type, 736, 752, 0) | 0; + if (!$2) $$1 = 0; else { + dest = $info; + stop = dest + 56 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$info >> 2] = $2; + HEAP32[$info + 8 >> 2] = $this; + HEAP32[$info + 12 >> 2] = -1; + HEAP32[$info + 48 >> 2] = 1; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$2 >> 2] | 0) + 28 >> 2] & 31]($2, $info, HEAP32[$adjustedPtr >> 2] | 0, 1); + if ((HEAP32[$info + 24 >> 2] | 0) == 1) { + HEAP32[$adjustedPtr >> 2] = HEAP32[$info + 16 >> 2]; + $$0 = 1; + } else $$0 = 0; + $$1 = $$0; + } + } + STACKTOP = sp; + return $$1 | 0; +} + +function _arPattLoad($pattHandle, $filename) { + $pattHandle = $pattHandle | 0; + $filename = $filename | 0; + var $$0 = 0, $0 = 0, $2 = 0, $4 = 0, $6 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $args = sp + 12 | 0; - $args3 = sp; - L1 : do if (($last - $first | 0) > 1) { - $4 = HEAP8[$first >> 0] | 0; - switch ($4 << 24 >> 24) { - case 100: - case 111: - { - if ((HEAP8[$first + 1 >> 0] | 0) == 110) { - $9 = $first + 2 | 0; - if ($4 << 24 >> 24 == 111) { - $10 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; - if (($10 | 0) == ($9 | 0)) { - $$0 = $first; - break L1; - } - $12 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($10, $last, $db) | 0; - if (($12 | 0) == ($10 | 0)) { - $$0 = $10; - break L1; - } - $14 = $db + 4 | 0; - $15 = HEAP32[$14 >> 2] | 0; - if ((($15 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) { - $$0 = $12; - break L1; - } - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $15 + -24 | 0); - $23 = HEAP32[$14 >> 2] | 0; - $24 = $23 + -24 | 0; - $26 = $23; - do { - $25 = $26 + -24 | 0; - HEAP32[$14 >> 2] = $25; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25); - $26 = HEAP32[$14 >> 2] | 0; - } while (($26 | 0) != ($24 | 0)); - $29 = HEAP8[$args >> 0] | 0; - $31 = ($29 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($23 + -48 | 0, $31 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $31 ? ($29 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$0 = $12; - break L1; - } - if (($9 | 0) == ($last | 0)) $$0$i = $last; else { - $42 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; - if (($42 | 0) == ($9 | 0)) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; else $t$0$i = $42; - if (($t$0$i | 0) == ($9 | 0)) $$0$i = $9; else { - $48 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($48 | 0)) $$0$i = $9; else { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($48 + -24 | 0, 0, 12928) | 0; - $$0$i = $t$0$i; - } - } - } - STACKTOP = sp; - return (($$0$i | 0) == ($9 | 0) ? $first : $$0$i) | 0; - } + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + $0 = _fopen($filename, 20972) | 0; + do if (!$0) { + HEAP32[$vararg_buffer >> 2] = $filename; + _arLog(3, 18962, $vararg_buffer); + $$0 = -1; + } else { + _fseek($0, 0, 2) | 0; + $2 = _ftell($0) | 0; + _fseek($0, 0, 0) | 0; + $4 = _malloc($2 + 1 | 0) | 0; + if (!$4) { + _arLog(3, 21359, $vararg_buffer1); + _fclose($0) | 0; + $$0 = -1; + break; + } + $6 = _fread($4, $2, 1, $0) | 0; + _fclose($0) | 0; + if (!$6) { + HEAP32[$vararg_buffer3 >> 2] = $filename; + _arLog(3, 19008, $vararg_buffer3); + _free($4); + $$0 = -1; + break; + } else { + HEAP8[$4 + $2 >> 0] = 0; + $9 = _arPattLoadFromBuffer($pattHandle, $4) | 0; + _free($4); + $$0 = $9; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { + $this = $this | 0; + $info = $info | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $14 = 0, $20 = 0, $6 = 0; + do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { + if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { + $6 = $info + 28 | 0; + if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; + } + } else if (($this | 0) == (HEAP32[$info >> 2] | 0)) { + if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { + $14 = $info + 20 | 0; + if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { + HEAP32[$info + 32 >> 2] = $path_below; + HEAP32[$14 >> 2] = $current_ptr; + $20 = $info + 40 | 0; + HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 1; + if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) HEAP8[$info + 54 >> 0] = 1; + HEAP32[$info + 44 >> 2] = 4; break; } - default: - {} } - $52 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($52 | 0) == ($first | 0)) { - $54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($54 | 0) == ($first | 0)) $$0 = $first; else { - $56 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0; - if (($56 | 0) == ($54 | 0)) $$0 = $54; else { - $58 = $db + 4 | 0; - $59 = HEAP32[$58 >> 2] | 0; - if ((($59 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $56; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $59 + -24 | 0); - $67 = HEAP32[$58 >> 2] | 0; - $68 = $67 + -24 | 0; - $70 = $67; - do { - $69 = $70 + -24 | 0; - HEAP32[$58 >> 2] = $69; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69); - $70 = HEAP32[$58 >> 2] | 0; - } while (($70 | 0) != ($68 | 0)); - $73 = HEAP8[$args3 >> 0] | 0; - $75 = ($73 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($67 + -48 | 0, $75 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $75 ? ($73 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3); - $$0 = $56; - } - } + if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; + } while (0); + return; +} + +function _fmt_u($0, $1, $s) { + $0 = $0 | 0; + $1 = $1 | 0; + $s = $s | 0; + var $$0$lcssa = 0, $$01$lcssa$off0 = 0, $$05 = 0, $$1$lcssa = 0, $$12 = 0, $$lcssa20 = 0, $13 = 0, $14 = 0, $25 = 0, $28 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0; + if ($1 >>> 0 > 0 | ($1 | 0) == 0 & $0 >>> 0 > 4294967295) { + $$05 = $s; + $7 = $0; + $8 = $1; + while (1) { + $9 = ___uremdi3($7 | 0, $8 | 0, 10, 0) | 0; + $13 = $$05 + -1 | 0; + HEAP8[$13 >> 0] = $9 | 48; + $14 = ___udivdi3($7 | 0, $8 | 0, 10, 0) | 0; + if ($8 >>> 0 > 9 | ($8 | 0) == 9 & $7 >>> 0 > 4294967295) { + $$05 = $13; + $7 = $14; + $8 = tempRet0; + } else { + $$lcssa20 = $13; + $28 = $14; + break; } - } else $$0 = $52; - } else $$0 = $first; while (0); + } + $$0$lcssa = $$lcssa20; + $$01$lcssa$off0 = $28; + } else { + $$0$lcssa = $s; + $$01$lcssa$off0 = $0; + } + if (!$$01$lcssa$off0) $$1$lcssa = $$0$lcssa; else { + $$12 = $$0$lcssa; + $y$03 = $$01$lcssa$off0; + while (1) { + $25 = $$12 + -1 | 0; + HEAP8[$25 >> 0] = ($y$03 >>> 0) % 10 | 0 | 48; + if ($y$03 >>> 0 < 10) { + $$1$lcssa = $25; + break; + } else { + $$12 = $25; + $y$03 = ($y$03 >>> 0) / 10 | 0; + } + } + } + return $$1$lcssa | 0; +} + +function _byteswap($param) { + $param = $param | 0; + var $$lcssa = 0, $15 = 0, $2 = 0, $i$13 = 0, $j$05 = 0, $wparam = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 192 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $wparam = sp; + _byteSwapInt($param, $wparam); + _byteSwapInt($param + 4 | 0, $wparam + 4 | 0); + $j$05 = 0; + do { + _byteSwapDouble($param + 8 + ($j$05 << 5) | 0, $wparam + 8 + ($j$05 << 5) | 0); + _byteSwapDouble($param + 8 + ($j$05 << 5) + 8 | 0, $wparam + 8 + ($j$05 << 5) + 8 | 0); + _byteSwapDouble($param + 8 + ($j$05 << 5) + 16 | 0, $wparam + 8 + ($j$05 << 5) + 16 | 0); + _byteSwapDouble($param + 8 + ($j$05 << 5) + 24 | 0, $wparam + 8 + ($j$05 << 5) + 24 | 0); + $j$05 = $j$05 + 1 | 0; + } while (($j$05 | 0) != 3); + $2 = $param + 176 | 0; + $i$13 = 0; + do { + _byteSwapDouble($param + 104 + ($i$13 << 3) | 0, $wparam + 104 + ($i$13 << 3) | 0); + $i$13 = $i$13 + 1 | 0; + $15 = HEAP32[$2 >> 2] | 0; + } while (($i$13 | 0) < (HEAP32[4356 + ($15 + -1 << 3) >> 2] | 0)); + $$lcssa = $15; + HEAP32[$wparam + 176 >> 2] = $$lcssa; + _memcpy($param | 0, $wparam | 0, 184) | 0; + STACKTOP = sp; + return; +} + +function _getTransMatSquare($id, $markerIndex, $markerWidth) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + $markerWidth = $markerWidth | 0; + var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $6 = HEAP32[$4 + 212 >> 2] | 0; + if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { + +_arGetTransMatSquare(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 168 : $6 + 48 + ($markerIndex << 8) | 0, +($markerWidth | 0), 424); + $$0 = 0; + break; + } else { + $$0 = HEAP32[1466] | 0; + break; + } + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arParamLoad($filename, $num, $param, $varargs) { - $filename = $filename | 0; - $num = $num | 0; - $param = $param | 0; - $varargs = $varargs | 0; - var $$pre$phi14Z2D = 0, $11 = 0, $14 = 0, $15 = 0, $18 = 0, $21 = 0, $23 = 0, $26 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $36 = 0, $43 = 0, $44 = 0, $5 = 0, $53 = 0.0, $8 = 0, $ap = 0, $dist_function_version$04 = 0, $i$0 = 0, $i$0$lcssa = 0, $i$119 = 0, $param_wasRead = 0, $ret$06 = 0, $ret$09 = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer18 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $__p) { + $this = $this | 0; + $__p = $__p | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 256 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer18 = sp + 232 | 0; - $vararg_buffer15 = sp + 224 | 0; - $vararg_buffer13 = sp + 216 | 0; - $vararg_buffer9 = sp + 208 | 0; - $vararg_buffer6 = sp + 200 | 0; - $vararg_buffer2 = sp + 192 | 0; - $vararg_buffer = sp + 184 | 0; - $ap = sp + 240 | 0; - $param_wasRead = sp; - do if (($filename | 0) != 0 & ($num | 0) > 0 & ($param | 0) != 0) { - $3 = _fopen($filename, 4854) | 0; - if (!$3) { - $5 = ___errno_location() | 0; - HEAP32[$vararg_buffer >> 2] = HEAP32[$5 >> 2]; - HEAP32[$vararg_buffer + 4 >> 2] = $filename; - _arLog(3, 4857, $vararg_buffer); - $8 = _strerror(HEAP32[$5 >> 2] | 0) | 0; - HEAP32[$vararg_buffer2 >> 2] = 13835; - HEAP32[$vararg_buffer2 + 4 >> 2] = $8; - _arLog(3, 5361, $vararg_buffer2); - $ret$06 = -1; + $$byval_copy = sp + 16 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = HEAP32[$__p >> 2] | 0; + $3 = HEAP32[$2 >> 2] | 0; + HEAP32[$1 >> 2] = $2; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($0, $this, $$byval_copy); + $4 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = 0; + if ($4) { + if (HEAP8[$0 + 8 >> 0] | 0) __ZN12arControllerD2Ev($4 + 16 | 0); + __ZdlPv($4); + } + STACKTOP = sp; + return $3 | 0; +} + +function __ZNKSt3__17codecvtIwc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_($this, $st, $to, $to_end, $to_nxt) { + $this = $this | 0; + $st = $st | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $$0 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $5 = 0, $n$02 = 0, $p$03 = 0, $tmp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $tmp = sp; + HEAP32[$to_nxt >> 2] = $to; + $2 = _uselocale(HEAP32[$this + 8 >> 2] | 0) | 0; + $3 = _wcrtomb($tmp, 0, $st) | 0; + if ($2) _uselocale($2) | 0; + switch ($3 | 0) { + case 0: + case -1: + { + $$0 = 2; break; } - _fseek($3, 0, 2) | 0; - L6 : do if (!(_ferror($3) | 0)) { - $15 = _ftell($3) | 0; - _rewind($3); - $i$0 = 0; - while (1) { - if (($i$0 | 0) >= 4) { - $i$0$lcssa = $i$0; - label = 9; - break; - } - $18 = HEAP32[2012 + ($i$0 << 3) + 4 >> 2] | 0; - $21 = $i$0 + 1 | 0; - if (!(($15 | 0) % ($18 | 0) | 0)) { - $23 = $18; - $dist_function_version$04 = $21; - break; - } else $i$0 = $21; - } - do if ((label | 0) == 9) if (($i$0$lcssa | 0) == 4) { - _arLog(3, 4971, $vararg_buffer13); - $ret$09 = -1; - break L6; - } else { - $23 = HEAP32[2012 + (0 << 3) + 4 >> 2] | 0; - $dist_function_version$04 = 0; - break; - } while (0); - if ((_fread($param_wasRead, $23, 1, $3) | 0) != 1) { - $26 = ___errno_location() | 0; - HEAP32[$vararg_buffer15 >> 2] = HEAP32[$26 >> 2]; - _arLog(3, 5051, $vararg_buffer15); - $29 = _strerror(HEAP32[$26 >> 2] | 0) | 0; - HEAP32[$vararg_buffer18 >> 2] = 13835; - HEAP32[$vararg_buffer18 + 4 >> 2] = $29; - _arLog(3, 5361, $vararg_buffer18); - $ret$09 = -1; - break; - } - $30 = $param_wasRead + 176 | 0; - HEAP32[$30 >> 2] = $dist_function_version$04; - _byteswap($param_wasRead); - $31 = ($dist_function_version$04 | 0) == 1; - $32 = $param_wasRead + 120 | 0; - if ($31) { - $33 = +HEAPF64[$32 >> 3]; - $34 = $param_wasRead + 128 | 0; - HEAPF64[$32 >> 3] = +HEAPF64[$34 >> 3]; - HEAPF64[$34 >> 3] = $33; - $$pre$phi14Z2D = $34; - } else $$pre$phi14Z2D = $param_wasRead + 128 | 0; - _memcpy($param | 0, $param_wasRead | 0, 184) | 0; - HEAP32[$ap >> 2] = $varargs; - $36 = $param + 176 | 0; - if (($num | 0) > 1) { - $i$119 = 1; + default: + { + $5 = $3 + -1 | 0; + if ($5 >>> 0 > ($to_end - (HEAP32[$to_nxt >> 2] | 0) | 0) >>> 0) $$0 = 1; else if (!$5) $$0 = 0; else { + $n$02 = $5; + $p$03 = $tmp; while (1) { - $43 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $44 = HEAP32[$43 >> 2] | 0; - HEAP32[$ap >> 2] = $43 + 4; - HEAP32[$44 + 176 >> 2] = HEAP32[$36 >> 2]; - if ((_fread($param_wasRead, HEAP32[2012 + ((HEAP32[$36 >> 2] | 0) + -1 << 3) + 4 >> 2] | 0, 1, $3) | 0) != 1) { - $ret$09 = -1; - break L6; - } - HEAP32[$30 >> 2] = $dist_function_version$04; - _byteswap($param_wasRead); - if ($31) { - $53 = +HEAPF64[$32 >> 3]; - HEAPF64[$32 >> 3] = +HEAPF64[$$pre$phi14Z2D >> 3]; - HEAPF64[$$pre$phi14Z2D >> 3] = $53; - } - _memcpy($44 | 0, $param_wasRead | 0, 184) | 0; - $i$119 = $i$119 + 1 | 0; - if (($i$119 | 0) >= ($num | 0)) { - $ret$09 = 0; + $13 = HEAP8[$p$03 >> 0] | 0; + $14 = HEAP32[$to_nxt >> 2] | 0; + HEAP32[$to_nxt >> 2] = $14 + 1; + HEAP8[$14 >> 0] = $13; + $n$02 = $n$02 + -1 | 0; + if (!$n$02) { + $$0 = 0; break; - } + } else $p$03 = $p$03 + 1 | 0; } - } else $ret$09 = 0; - } else { - $11 = ___errno_location() | 0; - HEAP32[$vararg_buffer6 >> 2] = HEAP32[$11 >> 2]; - _arLog(3, 4926, $vararg_buffer6); - $14 = _strerror(HEAP32[$11 >> 2] | 0) | 0; - HEAP32[$vararg_buffer9 >> 2] = 13835; - HEAP32[$vararg_buffer9 + 4 >> 2] = $14; - _arLog(3, 5361, $vararg_buffer9); - $ret$09 = -1; - } while (0); - _fclose($3) | 0; - $ret$06 = $ret$09; - } else $ret$06 = -1; while (0); + } + } + } STACKTOP = sp; - return $ret$06 | 0; + return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) { - $first = $first | 0; - $last = $last | 0; - $op = $op | 0; - $db = $db | 0; - var $$04 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $2 = 0, $25 = 0, $28 = 0, $3 = 0, $35 = 0, $37 = 0, $4 = 0, $40 = 0, $44 = 0, $47 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $69 = 0, $7 = 0, $72 = 0, $77 = 0, $8 = 0, sp = 0; +function __ZNSt3__127__num_get_unsigned_integralItEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $$0 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $__p2 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 36 | 0; - $1 = sp + 24 | 0; - $2 = sp + 12 | 0; - $3 = sp; - $4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($4 | 0) == ($first | 0)) $$04 = $first; else { - $7 = $db + 4 | 0; - $8 = HEAP32[$7 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($8 | 0)) $$04 = $first; else { - $10 = $8 + -24 | 0; - __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($2, $op, 12714); - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$7 >> 2] | 0) + -24 | 0); - $13 = HEAP8[$3 >> 0] | 0; - $15 = ($13 & 1) == 0; - $25 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $15 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $15 ? ($13 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0; - HEAP32[$1 >> 2] = HEAP32[$25 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$25 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$25 + 8 >> 2]; - HEAP32[$25 >> 2] = 0; - HEAP32[$25 + 4 >> 2] = 0; - HEAP32[$25 + 8 >> 2] = 0; - $28 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0; - HEAP32[$0 >> 2] = HEAP32[$28 >> 2]; - HEAP32[$0 + 4 >> 2] = HEAP32[$28 + 4 >> 2]; - HEAP32[$0 + 8 >> 2] = HEAP32[$28 + 8 >> 2]; - HEAP32[$28 >> 2] = 0; - HEAP32[$28 + 4 >> 2] = 0; - HEAP32[$28 + 8 >> 2] = 0; - do if (!(HEAP8[$10 >> 0] & 1)) { - HEAP8[$10 + 1 >> 0] = 0; - HEAP8[$10 >> 0] = 0; - } else { - $35 = $8 + -16 | 0; - HEAP8[HEAP32[$35 >> 2] >> 0] = 0; - $37 = $8 + -20 | 0; - HEAP32[$37 >> 2] = 0; - $$pre$i$i$i = HEAP8[$10 >> 0] | 0; - if (!($$pre$i$i$i & 1)) { - $44 = $$pre$i$i$i; - $53 = 10; - } else { - $40 = HEAP32[$10 >> 2] | 0; - $44 = $40 & 255; - $53 = ($40 & -2) + -1 | 0; - } - if (!($44 & 1)) { - $47 = ($44 & 255) >>> 1; - if (($44 & 255) < 22) { - $52 = 10; - $72 = $47; - $77 = 1; - } else { - $52 = ($47 + 16 & 240) + -1 | 0; - $72 = $47; - $77 = 1; - } - } else { - $52 = 10; - $72 = 0; - $77 = 0; - } - if (($52 | 0) != ($53 | 0)) { - if (($52 | 0) == 10) { - $59 = $10 + 1 | 0; - $60 = HEAP32[$35 >> 2] | 0; - if ($77) { - _memcpy($59 | 0, $60 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0; - _free($60); - } else { - HEAP8[$59 >> 0] = HEAP8[$60 >> 0] | 0; - _free($60); - } - HEAP8[$10 >> 0] = $72 << 1; - break; - } - $56 = $52 + 1 | 0; - $57 = _malloc($56) | 0; - if (!($52 >>> 0 <= $53 >>> 0 & ($57 | 0) == 0)) { - if ($77) _memcpy($57 | 0, $10 + 1 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0; else { - $69 = HEAP32[$35 >> 2] | 0; - HEAP8[$57 >> 0] = HEAP8[$69 >> 0] | 0; - _free($69); - } - HEAP32[$10 >> 2] = $56 | 1; - HEAP32[$37 >> 2] = $72; - HEAP32[$35 >> 2] = $57; - } - } - } while (0); - HEAP32[$10 >> 2] = HEAP32[$0 >> 2]; - HEAP32[$10 + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$10 + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - $$04 = $4; + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + } else { + if ((HEAP8[$__a >> 0] | 0) == 45) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + $3 = ___errno_location() | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$3 >> 2] = 0; + $6 = _strtoull_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $7 = tempRet0; + $8 = HEAP32[$3 >> 2] | 0; + if (!$8) HEAP32[$3 >> 2] = $4; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; } - } + if ($7 >>> 0 > 0 | ($7 | 0) == 0 & $6 >>> 0 > 65535 | ($8 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + $$0 = -1; + break; + } else { + $$0 = $6 & 65535; + break; + } + } while (0); STACKTOP = sp; - return $$04 | 0; + return $$0 | 0; } -function _icpPoint($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) { - $handle = $handle | 0; - $data = $data | 0; - $initMatXw2Xc = $initMatXw2Xc | 0; - $matXw2Xc = $matXw2Xc | 0; - $err = $err | 0; - var $$0 = 0, $$lcssa = 0, $$lcssa28 = 0, $$lcssa50 = 0.0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $28 = 0, $34 = 0, $38 = 0.0, $4 = 0, $42 = 0.0, $46 = 0.0, $47 = 0, $52 = 0, $55 = 0.0, $7 = 0, $9 = 0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$033 = 0.0, $i$1 = 0, $j$042 = 0, $j$134 = 0, $j$238 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; +function __ZNSt3__127__num_get_unsigned_integralImEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $$0 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $__p2 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 176 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 168 | 0; - $vararg_buffer = sp + 160 | 0; - $U = sp + 48 | 0; - $matXw2U = sp + 64 | 0; - $dS = sp; - $0 = $data + 8 | 0; - $1 = HEAP32[$0 >> 2] | 0; - do if (($1 | 0) < 3) $$0 = -1; else { - $4 = _malloc($1 * 96 | 0) | 0; - if (!$4) { - _arLog(3, 5109, $vararg_buffer); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + } else { + if ((HEAP8[$__a >> 0] | 0) == 45) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + $3 = ___errno_location() | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$3 >> 2] = 0; + $6 = _strtoull_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $7 = tempRet0; + $8 = HEAP32[$3 >> 2] | 0; + if (!$8) HEAP32[$3 >> 2] = $4; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + if ($7 >>> 0 > 0 | ($7 | 0) == 0 & $6 >>> 0 > 4294967295 | ($8 | 0) == 34) { + HEAP32[$__err >> 2] = 4; $$0 = -1; break; + } else { + $$0 = $6; + break; } - $7 = _malloc($1 << 4) | 0; - if (!$7) { - _arLog(3, 5109, $vararg_buffer1); - _free($4); + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__127__num_get_unsigned_integralIjEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $$0 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + } else { + if ((HEAP8[$__a >> 0] | 0) == 45) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + $3 = ___errno_location() | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$3 >> 2] = 0; + $6 = _strtoull_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $7 = tempRet0; + $8 = HEAP32[$3 >> 2] | 0; + if (!$8) HEAP32[$3 >> 2] = $4; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0; + break; + } + if ($7 >>> 0 > 0 | ($7 | 0) == 0 & $6 >>> 0 > 4294967295 | ($8 | 0) == 34) { + HEAP32[$__err >> 2] = 4; $$0 = -1; break; - } else $j$042 = 0; - do { - HEAPF64[$matXw2Xc + ($j$042 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) >> 3]; - HEAPF64[$matXw2Xc + ($j$042 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 8 >> 3]; - HEAPF64[$matXw2Xc + ($j$042 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 16 >> 3]; - HEAPF64[$matXw2Xc + ($j$042 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 24 >> 3]; - $j$042 = $j$042 + 1 | 0; - } while (($j$042 | 0) != 3); - $9 = $data + 4 | 0; - $10 = $U + 8 | 0; - $11 = $handle + 104 | 0; - $12 = $handle + 120 | 0; - $13 = $handle + 112 | 0; - $14 = $handle + 96 | 0; - $err0$0 = 0.0; - $i$1 = 0; - L11 : while (1) { - _arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0; - $28 = HEAP32[$0 >> 2] | 0; - if (($28 | 0) > 0) { - $err1$033 = 0.0; - $j$134 = 0; + } else { + $$0 = $6; + break; + } + } while (0); + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN6vision11ScopedTimerD2Ev($this) { + $this = $this | 0; + var $0 = 0, $16 = 0.0, $17 = 0, $7 = 0, $8 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = sp + 24 | 0; + __ZN6vision5Timer4stopEv($this); + __ZN6vision6Logger11getInstanceEv() | 0; + __ZN6vision15get_pretty_timeEv($0); + $7 = (HEAP8[$0 >> 0] & 1) == 0 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0; + $8 = $this + 16 | 0; + if (!(HEAP8[$8 >> 0] & 1)) $17 = $8 + 1 | 0; else $17 = HEAP32[$this + 24 >> 2] | 0; + $16 = +__ZNK6vision5Timer19duration_in_secondsEv($this) * 1.0e3; + HEAP32[$vararg_buffer >> 2] = 34431; + HEAP32[$vararg_buffer + 4 >> 2] = $7; + HEAP32[$vararg_buffer + 8 >> 2] = 34439; + HEAP32[$vararg_buffer + 12 >> 2] = $17; + HEAPF64[$vararg_buffer + 16 >> 3] = $16; + __ZN6vision6Logger5writeENS_19LoggerPriorityLevelEPKcz(4452, 8, 34404, $vararg_buffer); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($8); + STACKTOP = sp; + return; +} + +function _arMatrixTrans($dest, $source) { + $dest = $dest | 0; + $source = $source | 0; + var $$0 = 0, $1 = 0, $13 = 0, $6 = 0, $c$01 = 0, $p1$02 = 0, $p2$05 = 0, $p2$13 = 0, $r$04 = 0, $smax = 0; + $1 = HEAP32[$dest + 4 >> 2] | 0; + if (($1 | 0) == (HEAP32[$source + 8 >> 2] | 0)) { + $6 = HEAP32[$dest + 8 >> 2] | 0; + if (($6 | 0) == (HEAP32[$source + 4 >> 2] | 0)) { + $smax = ($6 | 0) > 0 ? $6 : 0; + if (($1 | 0) > 0) { + $13 = ($6 | 0) > 0; + $p2$05 = HEAP32[$dest >> 2] | 0; + $r$04 = 0; while (1) { - if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$9 >> 2] | 0) + ($j$134 * 24 | 0) | 0) | 0) < 0) { - label = 10; - break L11; + if ($13) { + $c$01 = 0; + $p1$02 = (HEAP32[$source >> 2] | 0) + ($r$04 << 3) | 0; + $p2$13 = $p2$05; + while (1) { + HEAPF64[$p2$13 >> 3] = +HEAPF64[$p1$02 >> 3]; + $c$01 = $c$01 + 1 | 0; + if (($c$01 | 0) >= ($6 | 0)) break; else { + $p1$02 = $p1$02 + ($1 << 3) | 0; + $p2$13 = $p2$13 + 8 | 0; + } + } } - $34 = HEAP32[$data >> 2] | 0; - $38 = +HEAPF64[$34 + ($j$134 << 4) >> 3] - +HEAPF64[$U >> 3]; - $42 = +HEAPF64[$34 + ($j$134 << 4) + 8 >> 3] - +HEAPF64[$10 >> 3]; - $46 = $err1$033 + ($38 * $38 + $42 * $42); - $47 = $j$134 << 1; - HEAPF64[$7 + ($47 << 3) >> 3] = $38; - HEAPF64[$7 + (($47 | 1) << 3) >> 3] = $42; - $j$134 = $j$134 + 1 | 0; - $52 = HEAP32[$0 >> 2] | 0; - if (($j$134 | 0) >= ($52 | 0)) { - $$lcssa = $52; - $err1$0$lcssa = $46; + $r$04 = $r$04 + 1 | 0; + if (($r$04 | 0) >= ($1 | 0)) { + $$0 = 0; break; - } else $err1$033 = $46; + } else $p2$05 = $p2$05 + ($smax << 3) | 0; } - } else { - $$lcssa = $28; - $err1$0$lcssa = 0.0; - } - $55 = $err1$0$lcssa / +($$lcssa | 0); - if ($55 < +HEAPF64[$11 >> 3]) { - $$lcssa50 = $55; - label = 24; - break; - } - if (($i$1 | 0) > 0) if ($55 < +HEAPF64[$12 >> 3]) if ($55 / $err0$0 > +HEAPF64[$13 >> 3]) { - $$lcssa50 = $55; - label = 24; - break; - } - if (($i$1 | 0) == (HEAP32[$14 >> 2] | 0)) { - $$lcssa50 = $55; - label = 24; - break; - } - if (($$lcssa | 0) > 0) { - $j$238 = 0; + } else $$0 = 0; + } else $$0 = -1; + } else $$0 = -1; + return $$0 | 0; +} + +function _kpmDeleteRefDataSet($refDataSetPtr) { + $refDataSetPtr = $refDataSetPtr | 0; + var $$0 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $15 = 0, $19 = 0, $3 = 0, $5 = 0, $9 = 0, $i$01 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + if (!$refDataSetPtr) { + _arLog(3, 20928, sp); + $$0 = -1; + } else { + $1 = HEAP32[$refDataSetPtr >> 2] | 0; + if (!$1) $$0 = 0; else { + $3 = HEAP32[$1 >> 2] | 0; + if ($3) _free($3); + $5 = HEAP32[$refDataSetPtr >> 2] | 0; + $9 = $5 + 8 | 0; + if ((HEAP32[$5 + 12 >> 2] | 0) > 0) { + $11 = $9; + $i$01 = 0; while (1) { - if ((_icpGetJ_U_S($4 + ($j$238 * 12 << 3) | 0, $handle, $matXw2Xc, (HEAP32[$9 >> 2] | 0) + ($j$238 * 24 | 0) | 0) | 0) < 0) { - label = 20; - break L11; - } - $j$238 = $j$238 + 1 | 0; - $$pre = HEAP32[$0 >> 2] | 0; - if (($j$238 | 0) >= ($$pre | 0)) { - $$lcssa28 = $$pre; + _free(HEAP32[(HEAP32[$11 >> 2] | 0) + ($i$01 * 12 | 0) >> 2] | 0); + $i$01 = $i$01 + 1 | 0; + $15 = HEAP32[$refDataSetPtr >> 2] | 0; + $19 = $15 + 8 | 0; + if (($i$01 | 0) >= (HEAP32[$15 + 12 >> 2] | 0)) { + $$lcssa = $19; break; - } + } else $11 = $19; } - } else $$lcssa28 = $$lcssa; - if ((_icpGetDeltaS($dS, $7, $4, $$lcssa28 << 1) | 0) < 0) { - label = 22; - break; - } - _icpUpdateMat($matXw2Xc, $dS) | 0; - $err0$0 = $55; - $i$1 = $i$1 + 1 | 0; + } else $$lcssa = $9; + _free(HEAP32[$$lcssa >> 2] | 0); + _free(HEAP32[$refDataSetPtr >> 2] | 0); + HEAP32[$refDataSetPtr >> 2] = 0; + $$0 = 0; } - if ((label | 0) == 10) { - _icpGetXw2XcCleanup($4, $7); - $$0 = -1; - break; - } else if ((label | 0) == 20) { - _icpGetXw2XcCleanup($4, $7); - $$0 = -1; - break; - } else if ((label | 0) == 22) { - _icpGetXw2XcCleanup($4, $7); - $$0 = -1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__127__num_get_unsigned_integralIyEET_PKcS3_Rji($__a, $__a_end, $__err, $__base) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + $__base = $__base | 0; + var $13 = 0, $14 = 0, $3 = 0, $4 = 0, $6 = 0, $8 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $13 = 0; + $14 = 0; + } else { + if ((HEAP8[$__a >> 0] | 0) == 45) { + HEAP32[$__err >> 2] = 4; + $13 = 0; + $14 = 0; break; - } else if ((label | 0) == 24) { - HEAPF64[$err >> 3] = $$lcssa50; - _free($4); - _free($7); - $$0 = 0; + } + $3 = ___errno_location() | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$3 >> 2] = 0; + $6 = _strtoull_l($__a, $__p2, $__base, __ZNSt3__16__clocEv() | 0) | 0; + $8 = HEAP32[$3 >> 2] | 0; + if (!$8) HEAP32[$3 >> 2] = $4; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $13 = 0; + $14 = 0; break; } + if (($8 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + $13 = -1; + $14 = -1; + } else { + $13 = tempRet0; + $14 = $6; + } } while (0); + tempRet0 = $13; STACKTOP = sp; + return $14 | 0; +} + +function _fflush($f) { + $f = $f | 0; + var $$0 = 0, $$012 = 0, $$014 = 0, $24 = 0, $27 = 0, $6 = 0, $phitmp = 0, $r$0$lcssa = 0, $r$03 = 0, $r$1 = 0; + do if (!$f) { + if (!(HEAP32[1610] | 0)) $27 = 0; else $27 = _fflush(HEAP32[1610] | 0) | 0; + ___lock(6208); + $$012 = HEAP32[1551] | 0; + if (!$$012) $r$0$lcssa = $27; else { + $$014 = $$012; + $r$03 = $27; + while (1) { + if ((HEAP32[$$014 + 76 >> 2] | 0) > -1) $24 = ___lockfile($$014) | 0; else $24 = 0; + if ((HEAP32[$$014 + 20 >> 2] | 0) >>> 0 > (HEAP32[$$014 + 28 >> 2] | 0) >>> 0) $r$1 = ___fflush_unlocked($$014) | 0 | $r$03; else $r$1 = $r$03; + if ($24) ___unlockfile($$014); + $$014 = HEAP32[$$014 + 56 >> 2] | 0; + if (!$$014) { + $r$0$lcssa = $r$1; + break; + } else $r$03 = $r$1; + } + } + ___unlock(6208); + $$0 = $r$0$lcssa; + } else { + if ((HEAP32[$f + 76 >> 2] | 0) <= -1) { + $$0 = ___fflush_unlocked($f) | 0; + break; + } + $phitmp = (___lockfile($f) | 0) == 0; + $6 = ___fflush_unlocked($f) | 0; + if ($phitmp) $$0 = $6; else { + ___unlockfile($f); + $$0 = $6; + } + } while (0); return $$0 | 0; } -function _arGetMarkerInfo($image, $xsize, $ysize, $pixelFormat, $markerInfo2, $marker2_num, $pattHandle, $imageProcMode, $pattDetectMode, $arParamLTf, $pattRatio, $markerInfo, $marker_num, $matrixCodeType) { - $image = $image | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $pixelFormat = $pixelFormat | 0; - $markerInfo2 = $markerInfo2 | 0; - $marker2_num = $marker2_num | 0; - $pattHandle = $pattHandle | 0; - $imageProcMode = $imageProcMode | 0; - $pattDetectMode = $pattDetectMode | 0; - $arParamLTf = $arParamLTf | 0; - $pattRatio = +$pattRatio; - $markerInfo = $markerInfo | 0; - $marker_num = $marker_num | 0; - $matrixCodeType = $matrixCodeType | 0; - var $0 = 0, $1 = 0, $26 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $i$03 = 0, $j$0$lcssa = 0, $j$02 = 0, $j$1 = 0, $pos0 = 0, $pos1 = 0, sp = 0; +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initIPKwEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$04 = 0, $0 = 0, $10 = 0, $12 = 0, $18 = 0, $2 = 0, $3 = 0, $__p$0$ph = 0, $__p$03 = 0; + $0 = $__first; + $2 = $__last - $0 | 0; + $3 = $2 >> 2; + if ($3 >>> 0 > 1073741807) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($3 >>> 0 < 2) { + HEAP8[$this >> 0] = $2 >>> 1; + $__p$0$ph = $this + 4 | 0; + } else { + $10 = $3 + 4 & -4; + $12 = __Znwj($10 << 2) | 0; + HEAP32[$this + 8 >> 2] = $12; + HEAP32[$this >> 2] = $10 | 1; + HEAP32[$this + 4 >> 2] = $3; + $__p$0$ph = $12; + } + $18 = ($__last - $0 | 0) >>> 2; + if (($__first | 0) != ($__last | 0)) { + $$04 = $__first; + $__p$03 = $__p$0$ph; + while (1) { + HEAP32[$__p$03 >> 2] = HEAP32[$$04 >> 2]; + $$04 = $$04 + 4 | 0; + if (($$04 | 0) == ($__last | 0)) break; else $__p$03 = $__p$03 + 4 | 0; + } + } + HEAP32[$__p$0$ph + ($18 << 2) >> 2] = 0; + return; +} + +function __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS8_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $$0$i1 = $$0$i1 + -12 | 0; + __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEC2ERKS7_((HEAP32[$3 >> 2] | 0) + -12 | 0, $$0$i1); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -12; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EEPi($this, $__v, $__p) { + $this = $this | 0; + $__v = $__v | 0; + $__p = $__p | 0; + var $0 = 0, $1 = 0, $11 = 0, $13 = 0, $18 = 0, $2 = 0, $20 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $5 = 0, $8 = 0, $9 = 0; + $0 = $__v + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $3 = $__p; + $5 = $3 - $2 | 0; + $8 = $1 + (0 - ($5 >> 2) << 2) | 0; + HEAP32[$0 >> 2] = $8; + _memcpy($8 | 0, $2 | 0, $5 | 0) | 0; + $9 = $this + 4 | 0; + $11 = $__v + 8 | 0; + $13 = (HEAP32[$9 >> 2] | 0) - $3 | 0; + _memcpy(HEAP32[$11 >> 2] | 0, $__p | 0, $13 | 0) | 0; + HEAP32[$11 >> 2] = (HEAP32[$11 >> 2] | 0) + ($13 >> 2 << 2); + $18 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$0 >> 2]; + HEAP32[$0 >> 2] = $18; + $20 = HEAP32[$9 >> 2] | 0; + HEAP32[$9 >> 2] = HEAP32[$11 >> 2]; + HEAP32[$11 >> 2] = $20; + $22 = $this + 8 | 0; + $23 = $__v + 12 | 0; + $24 = HEAP32[$22 >> 2] | 0; + HEAP32[$22 >> 2] = HEAP32[$23 >> 2]; + HEAP32[$23 >> 2] = $24; + HEAP32[$__v >> 2] = HEAP32[$0 >> 2]; + return $1 | 0; +} + +function __ZN6vision16Quadratic3PointsIfEEbRT_S2_S2_PKS1_S4_S4_($A, $B, $C, $p1, $p2, $p3) { + $A = $A | 0; + $B = $B | 0; + $C = $C | 0; + $p1 = $p1 | 0; + $p2 = $p2 | 0; + $p3 = $p3 | 0; + var $$0 = 0, $0 = 0.0, $1 = 0.0, $11 = 0.0, $15 = 0, $16 = 0.0, $19 = 0, $23 = 0.0, $3 = 0.0, $30 = 0.0, $4 = 0.0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $storemerge = 0.0; + $0 = +HEAPF32[$p3 >> 2]; + $1 = +HEAPF32[$p2 >> 2]; + $3 = +HEAPF32[$p1 >> 2]; + $4 = $0 - $3; + $5 = ($0 - $1) * $4; + $6 = $3 - $1; + $7 = $6 * $4; + if ($6 == 0.0 | ($5 == 0.0 | $7 == 0.0)) { + HEAPF32[$A >> 2] = 0.0; + HEAPF32[$B >> 2] = 0.0; + $$0 = 0; + $storemerge = 0.0; + } else { + $11 = $3 * $3; + $15 = $p2 + 4 | 0; + $16 = +HEAPF32[$15 >> 2]; + $19 = $p1 + 4 | 0; + $23 = (+HEAPF32[$p3 + 4 >> 2] - $16) / $5 - (+HEAPF32[$19 >> 2] - $16) / $7; + HEAPF32[$A >> 2] = $23; + $30 = (($1 * $1 - $11) * $23 + (+HEAPF32[$19 >> 2] - +HEAPF32[$15 >> 2])) / $6; + HEAPF32[$B >> 2] = $30; + $$0 = 1; + $storemerge = +HEAPF32[$19 >> 2] - $11 * +HEAPF32[$A >> 2] - $30 * +HEAPF32[$p1 >> 2]; + } + HEAPF32[$C >> 2] = $storemerge; + return $$0 | 0; +} + +function _jinit_phuff_decoder($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $11 = 0, $14 = 0, $3 = 0, $5 = 0, $ci$05 = 0, $coef_bit_ptr$04 = 0, $coef_bit_ptr$12 = 0, $i$13 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 64) | 0; + HEAP32[$cinfo + 444 >> 2] = $3; + HEAP32[$3 >> 2] = 128; + $5 = $3 + 44 | 0; + HEAP32[$5 >> 2] = 0; + HEAP32[$5 + 4 >> 2] = 0; + HEAP32[$5 + 8 >> 2] = 0; + HEAP32[$5 + 12 >> 2] = 0; + $11 = $cinfo + 36 | 0; + $14 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, HEAP32[$11 >> 2] << 8) | 0; + HEAP32[$cinfo + 160 >> 2] = $14; + if ((HEAP32[$11 >> 2] | 0) > 0) { + $ci$05 = 0; + $coef_bit_ptr$04 = $14; + while (1) { + $coef_bit_ptr$12 = $coef_bit_ptr$04; + $i$13 = 0; + while (1) { + HEAP32[$coef_bit_ptr$12 >> 2] = -1; + $i$13 = $i$13 + 1 | 0; + if (($i$13 | 0) == 64) break; else $coef_bit_ptr$12 = $coef_bit_ptr$12 + 4 | 0; + } + $ci$05 = $ci$05 + 1 | 0; + if (($ci$05 | 0) >= (HEAP32[$11 >> 2] | 0)) break; else $coef_bit_ptr$04 = $coef_bit_ptr$04 + 256 | 0; + } + } + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + var $10 = 0, $25 = 0, $6 = 0, $7 = 0, $9 = 0, $__s = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $pos0 = sp + 4 | 0; - $pos1 = sp; - $0 = $pattDetectMode >>> 0 < 2; - $1 = ($pattDetectMode | 0) == 2; - if (($marker2_num | 0) > 0) { - $i$03 = 0; - $j$02 = 0; + $__s = sp; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_($__s, $this); + L1 : do if (HEAP8[$__s >> 0] | 0) { + $6 = HEAP32[$this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + $7 = $6; + do if ($6) { + $9 = $7 + 24 | 0; + $10 = HEAP32[$9 >> 2] | 0; + if (($10 | 0) == (HEAP32[$7 + 28 >> 2] | 0)) if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$6 >> 2] | 0) + 52 >> 2] & 63]($7, $__c & 255) | 0) == -1) break; else break L1; else { + HEAP32[$9 >> 2] = $10 + 1; + HEAP8[$10 >> 0] = $__c; + break L1; + } + } while (0); + $25 = $this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$25 >> 2] = HEAP32[$25 >> 2] | 1; + } while (0); + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev($__s); + STACKTOP = sp; + return $this | 0; +} + +function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { + $this = $this | 0; + $info = $info | 0; + $adjustedPtr = $adjustedPtr | 0; + $path_below = $path_below | 0; + var $5 = 0, $6 = 0, $9 = 0, $p$0 = 0; + L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else { + $5 = HEAP32[$this + 12 >> 2] | 0; + $6 = $this + 16 + ($5 << 3) | 0; + __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this + 16 | 0, $info, $adjustedPtr, $path_below); + if (($5 | 0) > 1) { + $9 = $info + 54 | 0; + $p$0 = $this + 24 | 0; + do { + __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($p$0, $info, $adjustedPtr, $path_below); + if (HEAP8[$9 >> 0] | 0) break L1; + $p$0 = $p$0 + 8 | 0; + } while ($p$0 >>> 0 < $6 >>> 0); + } + } while (0); + return; +} + +function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $$0$i1 = $$0$i1 + -24 | 0; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_((HEAP32[$3 >> 2] | 0) + -24 | 0, $$0$i1); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -24; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZN6vision27OrthogonalizePivot8x9Basis6IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $10 = 0.0, $2 = 0, $3 = 0, $5 = 0.0, $6 = 0.0, $8 = 0, $ss = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ss = sp; + $0 = $Q + 216 | 0; + $1 = $Q + 180 | 0; + $2 = $A + 216 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $1, $2); + $3 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($3, $1, $A + 252 | 0); + $5 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + HEAPF32[$ss >> 2] = $5; + $6 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($3, $3); + HEAPF32[$ss + 4 >> 2] = $6; + $8 = $6 > $5; + $10 = +HEAPF32[$ss + (($8 & 1) << 2) >> 2]; + if ($10 == 0.0) $$0 = 0; else { + $$sum2 = $8 ? 63 : 54; + __ZN6vision5Swap9IfEEvPT_S2_($0, $Q + ($$sum2 << 2) | 0); + __ZN6vision5Swap9IfEEvPT_S2_($2, $A + ($$sum2 << 2) | 0); + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$10)); + $$0 = 1; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _strlen($s) { + $s = $s | 0; + var $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn15 = 0, $0 = 0, $18 = 0, $21 = 0, $5 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0; + $0 = $s; + L1 : do if (!($0 & 3)) { + $$01$lcssa = $s; + label = 4; + } else { + $$014 = $s; + $21 = $0; while (1) { - HEAP32[$markerInfo + ($j$02 << 8) >> 2] = HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) >> 2]; - if ((_arParamObserv2IdealLTf($arParamLTf, +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 8 >> 3], +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 16 >> 3], $pos0, $pos1) | 0) < 0) $j$1 = $j$02; else { - HEAPF64[$markerInfo + ($j$02 << 8) + 56 >> 3] = +HEAPF32[$pos0 >> 2]; - HEAPF64[$markerInfo + ($j$02 << 8) + 64 >> 3] = +HEAPF32[$pos1 >> 2]; - $26 = $markerInfo + ($j$02 << 8) + 168 | 0; - if ((_arGetLine($markerInfo2 + ($i$03 * 80048 | 0) + 28 | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 40028 | 0, HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) + 24 >> 2] | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 80028 | 0, $arParamLTf, $markerInfo + ($j$02 << 8) + 72 | 0, $26) | 0) < 0) $j$1 = $j$02; else { - $29 = $markerInfo + ($j$02 << 8) + 8 | 0; - $30 = $markerInfo + ($j$02 << 8) + 20 | 0; - $31 = $markerInfo + ($j$02 << 8) + 40 | 0; - $32 = $markerInfo + ($j$02 << 8) + 12 | 0; - $33 = $markerInfo + ($j$02 << 8) + 24 | 0; - $34 = $markerInfo + ($j$02 << 8) + 48 | 0; - switch (_arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $arParamLTf, $26, $pattRatio, $29, $30, $31, $32, $33, $34, $matrixCodeType, $markerInfo + ($j$02 << 8) + 240 | 0, $markerInfo + ($j$02 << 8) + 248 | 0) | 0) { - case 0: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 0; - break; - } - case -1: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 2; - break; - } - case -2: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 3; - break; - } - case -3: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 4; - break; - } - case -4: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 5; - break; - } - case -5: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 9; - break; - } - case -6: - { - HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 1; - break; - } - default: - {} - } - if ($0) { - HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$29 >> 2]; - HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$30 >> 2]; - HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$31 >> 3]; - } else if ($1) { - HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$32 >> 2]; - HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$33 >> 2]; - HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$34 >> 3]; - } - $j$1 = $j$02 + 1 | 0; - } + if (!(HEAP8[$$014 >> 0] | 0)) { + $$pn = $21; + break L1; } - $i$03 = $i$03 + 1 | 0; - if (($i$03 | 0) >= ($marker2_num | 0)) { - $j$0$lcssa = $j$1; + $5 = $$014 + 1 | 0; + $21 = $5; + if (!($21 & 3)) { + $$01$lcssa = $5; + label = 4; break; - } else $j$02 = $j$1; + } else $$014 = $5; } - } else $j$0$lcssa = 0; - HEAP32[$marker_num >> 2] = $j$0$lcssa; - STACKTOP = sp; - return 0; -} - -function _arImageProcLumaHistAndBoxFilterWithBias($ipi, $dataPtr, $boxSize, $bias) { - $ipi = $ipi | 0; - $dataPtr = $dataPtr | 0; - $boxSize = $boxSize | 0; - $bias = $bias | 0; - var $$0 = 0, $$lcssa = 0, $$pre$phi6Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $43 = 0, $5 = 0, $50 = 0, $57 = 0, $7 = 0, $count$0$lcssa = 0, $count$015 = 0, $count$110 = 0, $count$2 = 0, $count$3 = 0, $i$020 = 0, $i$18 = 0, $j$021 = 0, $kernel_i$011 = 0, $kernel_j$016 = 0, $val$0$lcssa = 0, $val$014 = 0, $val$19 = 0, $val$2 = 0, $val$3 = 0; - $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; - do if (($0 | 0) < 0) $$0 = $0; else { - $2 = $ipi + 4 | 0; - if (!(HEAP32[$2 >> 2] | 0)) { - $5 = $ipi + 8 | 0; - $7 = $ipi + 12 | 0; - $10 = _malloc(Math_imul(HEAP32[$7 >> 2] | 0, HEAP32[$5 >> 2] | 0) | 0) | 0; - HEAP32[$2 >> 2] = $10; - if (!$10) { - $$0 = -1; + } while (0); + if ((label | 0) == 4) { + $w$0 = $$01$lcssa; + while (1) { + $9 = HEAP32[$w$0 >> 2] | 0; + if (!(($9 & -2139062144 ^ -2139062144) & $9 + -16843009)) $w$0 = $w$0 + 4 | 0; else { + $$lcssa20 = $9; + $w$0$lcssa = $w$0; break; - } else { - $$pre$phi6Z2D = $5; - $$pre$phiZ2D = $7; } - } else { - $$pre$phi6Z2D = $ipi + 8 | 0; - $$pre$phiZ2D = $ipi + 12 | 0; } - $12 = $boxSize >> 1; - $13 = 0 - $12 | 0; - $14 = HEAP32[$$pre$phiZ2D >> 2] | 0; - if (($14 | 0) > 0) { - $16 = ($12 | 0) < ($13 | 0); - $17 = ($12 | 0) < ($13 | 0); - $j$021 = 0; - do { - $18 = HEAP32[$$pre$phi6Z2D >> 2] | 0; - if (($18 | 0) > 0) { - $25 = $18; - $i$020 = 0; - do { - if ($16) { - $count$0$lcssa = 0; - $val$0$lcssa = 0; - } else { - $count$015 = 0; - $kernel_j$016 = $13; - $val$014 = 0; - while (1) { - $20 = $kernel_j$016 + $j$021 | 0; - if (($20 | 0) < 0) { - $count$3 = $count$015; - $val$3 = $val$014; - } else if (($20 | 0) < (HEAP32[$$pre$phiZ2D >> 2] | 0)) { - $24 = Math_imul($25, $20) | 0; - if ($17) { - $count$3 = $count$015; - $val$3 = $val$014; - } else { - $count$110 = $count$015; - $kernel_i$011 = $13; - $val$19 = $val$014; - while (1) { - $26 = $kernel_i$011 + $i$020 | 0; - if (($26 | 0) > -1 & ($26 | 0) < ($25 | 0)) { - $count$2 = $count$110 + 1 | 0; - $val$2 = (HEAPU8[(HEAP32[$ipi >> 2] | 0) + ($24 + $26) >> 0] | 0) + $val$19 | 0; - } else { - $count$2 = $count$110; - $val$2 = $val$19; - } - if (($kernel_i$011 | 0) < ($12 | 0)) { - $count$110 = $count$2; - $kernel_i$011 = $kernel_i$011 + 1 | 0; - $val$19 = $val$2; - } else { - $count$3 = $count$2; - $val$3 = $val$2; - break; - } - } - } - } else { - $count$3 = $count$015; - $val$3 = $val$014; - } - if (($kernel_j$016 | 0) < ($12 | 0)) { - $count$015 = $count$3; - $kernel_j$016 = $kernel_j$016 + 1 | 0; - $val$014 = $val$3; - } else { - $count$0$lcssa = $count$3; - $val$0$lcssa = $val$3; - break; - } - } - } - $43 = (Math_imul($25, $j$021) | 0) + $i$020 | 0; - HEAP8[(HEAP32[$2 >> 2] | 0) + $43 >> 0] = ($val$0$lcssa | 0) / ($count$0$lcssa | 0) | 0; - $i$020 = $i$020 + 1 | 0; - $25 = HEAP32[$$pre$phi6Z2D >> 2] | 0; - } while (($i$020 | 0) < ($25 | 0)); - } - $j$021 = $j$021 + 1 | 0; - $50 = HEAP32[$$pre$phiZ2D >> 2] | 0; - } while (($j$021 | 0) < ($50 | 0)); - $$lcssa = $50; - } else $$lcssa = $14; - if (!$bias) $$0 = 0; else if ((Math_imul($$lcssa, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0) > 0) { - $i$18 = 0; - do { - $57 = (HEAP32[$2 >> 2] | 0) + $i$18 | 0; - HEAP8[$57 >> 0] = (HEAPU8[$57 >> 0] | 0) + $bias; - $i$18 = $i$18 + 1 | 0; - } while (($i$18 | 0) < (Math_imul(HEAP32[$$pre$phiZ2D >> 2] | 0, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0)); + if (!(($$lcssa20 & 255) << 24 >> 24)) $$1$lcssa = $w$0$lcssa; else { + $$pn15 = $w$0$lcssa; + while (1) { + $18 = $$pn15 + 1 | 0; + if (!(HEAP8[$18 >> 0] | 0)) { + $$1$lcssa = $18; + break; + } else $$pn15 = $18; + } + } + $$pn = $$1$lcssa; + } + return $$pn - $0 | 0; +} + +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS6_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; + do { + $$0$i1 = $$0$i1 + -12 | 0; + __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEEC2ERKS5_((HEAP32[$3 >> 2] | 0) + -12 | 0, $$0$i1); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -12; + } while (($$0$i1 | 0) != ($0 | 0)); + } + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _setMarkerInfoDir($id, $markerIndex, $dir) { + $id = $id | 0; + $markerIndex = $markerIndex | 0; + $dir = $dir | 0; + var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { + HEAP32[(($markerIndex | 0) < 0 ? 168 : $6 + 48 + ($markerIndex << 8) | 0) + 16 >> 2] = $dir; $$0 = 0; - } else $$0 = 0; + break; + } else { + $$0 = HEAP32[1466] | 0; + break; + } } while (0); + STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($this, $0) { +function __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($x, $e, $a) { + $x = $x | 0; + $e = $e | 0; + $a = $a | 0; + var $0 = 0.0, $14 = 0, $20 = 0, $26 = 0, $32 = 0, $38 = 0, $44 = 0, $50 = 0, $8 = 0; + $0 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($a, $e); + HEAPF32[$x >> 2] = +HEAPF32[$x >> 2] - $0 * +HEAPF32[$e >> 2]; + $8 = $x + 4 | 0; + HEAPF32[$8 >> 2] = +HEAPF32[$8 >> 2] - $0 * +HEAPF32[$e + 4 >> 2]; + $14 = $x + 8 | 0; + HEAPF32[$14 >> 2] = +HEAPF32[$14 >> 2] - $0 * +HEAPF32[$e + 8 >> 2]; + $20 = $x + 12 | 0; + HEAPF32[$20 >> 2] = +HEAPF32[$20 >> 2] - $0 * +HEAPF32[$e + 12 >> 2]; + $26 = $x + 16 | 0; + HEAPF32[$26 >> 2] = +HEAPF32[$26 >> 2] - $0 * +HEAPF32[$e + 16 >> 2]; + $32 = $x + 20 | 0; + HEAPF32[$32 >> 2] = +HEAPF32[$32 >> 2] - $0 * +HEAPF32[$e + 20 >> 2]; + $38 = $x + 24 | 0; + HEAPF32[$38 >> 2] = +HEAPF32[$38 >> 2] - $0 * +HEAPF32[$e + 24 >> 2]; + $44 = $x + 28 | 0; + HEAPF32[$44 >> 2] = +HEAPF32[$44 >> 2] - $0 * +HEAPF32[$e + 28 >> 2]; + $50 = $x + 32 | 0; + HEAPF32[$50 >> 2] = +HEAPF32[$50 >> 2] - $0 * +HEAPF32[$e + 32 >> 2]; + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_($this, $__first, $__last) { $this = $this | 0; - $0 = $0 | 0; - var $$pre$i$i$i = 0, $$pre$i$i$i2 = 0, $10 = 0, $14 = 0, $17 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $39 = 0, $42 = 0, $47 = 0, $48 = 0, $5 = 0, $53 = 0, $55 = 0, $58 = 0, $62 = 0, $65 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $87 = 0, $90 = 0, $95 = 0, $96 = 0; - do if (!(HEAP8[$this >> 0] & 1)) { - HEAP8[$this + 1 >> 0] = 0; - HEAP8[$this >> 0] = 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$04 = 0, $0 = 0, $10 = 0, $15 = 0, $2 = 0, $9 = 0, $__p$0$ph = 0, $__p$03 = 0; + $0 = $__first; + $2 = $__last - $0 | 0; + if ($2 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($2 >>> 0 < 11) { + HEAP8[$this >> 0] = $2 << 1; + $__p$0$ph = $this + 1 | 0; } else { - $5 = $this + 8 | 0; - HEAP8[HEAP32[$5 >> 2] >> 0] = 0; - $7 = $this + 4 | 0; - HEAP32[$7 >> 2] = 0; - $$pre$i$i$i = HEAP8[$this >> 0] | 0; - if (!($$pre$i$i$i & 1)) { - $14 = $$pre$i$i$i; - $23 = 10; - } else { - $10 = HEAP32[$this >> 2] | 0; - $14 = $10 & 255; - $23 = ($10 & -2) + -1 | 0; + $9 = $2 + 16 & -16; + $10 = __Znwj($9) | 0; + HEAP32[$this + 8 >> 2] = $10; + HEAP32[$this >> 2] = $9 | 1; + HEAP32[$this + 4 >> 2] = $2; + $__p$0$ph = $10; + } + $15 = $__last - $0 | 0; + if (($__first | 0) != ($__last | 0)) { + $$04 = $__first; + $__p$03 = $__p$0$ph; + while (1) { + HEAP8[$__p$03 >> 0] = HEAP8[$$04 >> 0] | 0; + $$04 = $$04 + 1 | 0; + if (($$04 | 0) == ($__last | 0)) break; else $__p$03 = $__p$03 + 1 | 0; } - if (!($14 & 1)) { - $17 = ($14 & 255) >>> 1; - if (($14 & 255) < 22) { - $22 = 10; - $42 = $17; - $95 = 1; - } else { - $22 = ($17 + 16 & 240) + -1 | 0; - $42 = $17; - $95 = 1; - } - } else { - $22 = 10; - $42 = 0; - $95 = 0; + } + HEAP8[$__p$0$ph + $15 >> 0] = 0; + return; +} + +function __ZNSt3__111__stdoutbufIwE4syncEv($this) { + $this = $this | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $__extbe = 0, $__extbuf = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 8 | 0; + $__extbe = sp; + $0 = $this + 36 | 0; + $1 = $this + 40 | 0; + $2 = $__extbuf + 8 | 0; + $3 = $__extbuf; + $4 = $this + 32 | 0; + L1 : while (1) { + $5 = HEAP32[$0 >> 2] | 0; + $10 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 31]($5, HEAP32[$1 >> 2] | 0, $__extbuf, $2, $__extbe) | 0; + $13 = (HEAP32[$__extbe >> 2] | 0) - $3 | 0; + if ((_fwrite($__extbuf, 1, $13, HEAP32[$4 >> 2] | 0) | 0) != ($13 | 0)) { + $$0 = -1; + break; } - if (($22 | 0) != ($23 | 0)) { - if (($22 | 0) == 10) { - $29 = $this + 1 | 0; - $30 = HEAP32[$5 >> 2] | 0; - if ($95) { - _memcpy($29 | 0, $30 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0; - _free($30); - } else { - HEAP8[$29 >> 0] = HEAP8[$30 >> 0] | 0; - _free($30); - } - HEAP8[$this >> 0] = $42 << 1; + switch ($10 | 0) { + case 1: + break; + case 2: + { + $$0 = -1; + break L1; break; } - $26 = $22 + 1 | 0; - $27 = _malloc($26) | 0; - if (!($22 >>> 0 <= $23 >>> 0 & ($27 | 0) == 0)) { - if ($95) _memcpy($27 | 0, $this + 1 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0; else { - $39 = HEAP32[$5 >> 2] | 0; - HEAP8[$27 >> 0] = HEAP8[$39 >> 0] | 0; - _free($39); - } - HEAP32[$this >> 2] = $26 | 1; - HEAP32[$7 >> 2] = $42; - HEAP32[$5 >> 2] = $27; + default: + { + label = 4; + break L1; } } - } while (0); - HEAP32[$this >> 2] = HEAP32[$0 >> 2]; - HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - $47 = $this + 12 | 0; - $48 = $0 + 12 | 0; - do if (!(HEAP8[$47 >> 0] & 1)) { - HEAP8[$47 + 1 >> 0] = 0; - HEAP8[$47 >> 0] = 0; - } else { - $53 = $this + 20 | 0; - HEAP8[HEAP32[$53 >> 2] >> 0] = 0; - $55 = $this + 16 | 0; - HEAP32[$55 >> 2] = 0; - $$pre$i$i$i2 = HEAP8[$47 >> 0] | 0; - if (!($$pre$i$i$i2 & 1)) { - $62 = $$pre$i$i$i2; - $71 = 10; - } else { - $58 = HEAP32[$47 >> 2] | 0; - $62 = $58 & 255; - $71 = ($58 & -2) + -1 | 0; - } - if (!($62 & 1)) { - $65 = ($62 & 255) >>> 1; - if (($62 & 255) < 22) { - $70 = 10; - $90 = $65; - $96 = 1; - } else { - $70 = ($65 + 16 & 240) + -1 | 0; - $90 = $65; - $96 = 1; - } - } else { - $70 = 10; - $90 = 0; - $96 = 0; + } + if ((label | 0) == 4) $$0 = ((_fflush(HEAP32[$4 >> 2] | 0) | 0) != 0) << 31 >> 31; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__111__stdoutbufIcE4syncEv($this) { + $this = $this | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $__extbe = 0, $__extbuf = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__extbuf = sp + 8 | 0; + $__extbe = sp; + $0 = $this + 36 | 0; + $1 = $this + 40 | 0; + $2 = $__extbuf + 8 | 0; + $3 = $__extbuf; + $4 = $this + 32 | 0; + L1 : while (1) { + $5 = HEAP32[$0 >> 2] | 0; + $10 = FUNCTION_TABLE_iiiiii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 31]($5, HEAP32[$1 >> 2] | 0, $__extbuf, $2, $__extbe) | 0; + $13 = (HEAP32[$__extbe >> 2] | 0) - $3 | 0; + if ((_fwrite($__extbuf, 1, $13, HEAP32[$4 >> 2] | 0) | 0) != ($13 | 0)) { + $$0 = -1; + break; } - if (($70 | 0) != ($71 | 0)) { - if (($70 | 0) == 10) { - $77 = $47 + 1 | 0; - $78 = HEAP32[$53 >> 2] | 0; - if ($96) { - _memcpy($77 | 0, $78 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0; - _free($78); - } else { - HEAP8[$77 >> 0] = HEAP8[$78 >> 0] | 0; - _free($78); - } - HEAP8[$47 >> 0] = $90 << 1; + switch ($10 | 0) { + case 1: + break; + case 2: + { + $$0 = -1; + break L1; break; } - $74 = $70 + 1 | 0; - $75 = _malloc($74) | 0; - if (!($70 >>> 0 <= $71 >>> 0 & ($75 | 0) == 0)) { - if ($96) _memcpy($75 | 0, $47 + 1 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0; else { - $87 = HEAP32[$53 >> 2] | 0; - HEAP8[$75 >> 0] = HEAP8[$87 >> 0] | 0; - _free($87); - } - HEAP32[$47 >> 2] = $74 | 1; - HEAP32[$55 >> 2] = $90; - HEAP32[$53 >> 2] = $75; + default: + { + label = 4; + break L1; } } - } while (0); - HEAP32[$47 >> 2] = HEAP32[$48 >> 2]; - HEAP32[$47 + 4 >> 2] = HEAP32[$48 + 4 >> 2]; - HEAP32[$47 + 8 >> 2] = HEAP32[$48 + 8 >> 2]; - HEAP32[$48 >> 2] = 0; - HEAP32[$48 + 4 >> 2] = 0; - HEAP32[$48 + 8 >> 2] = 0; - return; + } + if ((label | 0) == 4) $$0 = ((_fflush(HEAP32[$4 >> 2] | 0) | 0) != 0) << 31 >> 31; + STACKTOP = sp; + return $$0 | 0; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) { - $this = $this | 0; - $__nbc = $__nbc | 0; - var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0; - $0 = $this + 4 | 0; - L1 : do if (!$__nbc) { - $51 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = 0; - if ($51) __ZdlPv($51); - HEAP32[$0 >> 2] = 0; - } else { - $3 = __Znwj($__nbc << 2) | 0; - $4 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = $3; - if ($4) __ZdlPv($4); - HEAP32[$0 >> 2] = $__nbc; - if ($__nbc) { - $__i$039 = 0; - do { - HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0; - $__i$039 = $__i$039 + 1 | 0; - } while (($__i$039 | 0) != ($__nbc | 0)); - } - $9 = $this + 8 | 0; - $10 = HEAP32[$9 >> 2] | 0; - if ($10) { - $13 = HEAP32[$10 + 4 >> 2] | 0; - $14 = $__nbc + -1 | 0; - $16 = ($14 & $__nbc | 0) == 0; - if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0; - HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9; - $__cp$0252833 = HEAP32[$10 >> 2] | 0; - if ($__cp$0252833) { - $$in = $10; - $__cp$0$in2736 = $10; - $__cp$0252837 = $__cp$0252833; - $__phash$0$ph$ph35 = $21; +function _prescan_quantize($cinfo, $input_buf, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + var $23 = 0, $24 = 0, $25 = 0, $3 = 0, $5 = 0, $7 = 0, $col$01 = 0, $ptr$02 = 0, $row$03 = 0; + $3 = HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 24 >> 2] | 0; + $5 = HEAP32[$cinfo + 112 >> 2] | 0; + if (($num_rows | 0) > 0) { + $7 = ($5 | 0) == 0; + $row$03 = 0; + do { + if (!$7) { + $col$01 = $5; + $ptr$02 = HEAP32[$input_buf + ($row$03 << 2) >> 2] | 0; while (1) { - $$in41 = $$in; - $__cp$0$in30 = $__cp$0$in2736; - $__cp$02531 = $__cp$0252837; - L21 : while (1) { - $__cp$026 = $__cp$02531; - while (1) { - $25 = HEAP32[$__cp$026 + 4 >> 2] | 0; - if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0; - if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) { - $__cp$026$lcssa = $__cp$026; - break; - } - $31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0; - if (!(HEAP32[$31 >> 2] | 0)) { - $$in41$lcssa = $$in41; - $$lcssa56 = $29; - $$lcssa58 = $31; - $__cp$026$lcssa53 = $__cp$026; - break L21; - } - $34 = $__cp$026 + 8 | 0; - $__np$0 = $__cp$026; - while (1) { - $36 = HEAP32[$__np$0 >> 2] | 0; - if (!$36) { - $$lcssa = $36; - $__np$0$lcssa = $__np$0; - break; - } - if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else { - $$lcssa = $36; - $__np$0$lcssa = $__np$0; - break; - } - } - HEAP32[$$in41 >> 2] = $$lcssa; - HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2]; - HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026; - $__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0; - if (!$__cp$026) break L1; - } - $__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0; - if (!$__cp$025) break L1; else { - $$in41 = $__cp$026$lcssa; - $__cp$0$in30 = $__cp$026$lcssa; - $__cp$02531 = $__cp$025; - } - } - HEAP32[$$lcssa58 >> 2] = $$in41$lcssa; - $__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0; - if (!$__cp$02528) break; else { - $$in = $__cp$026$lcssa53; - $__cp$0$in2736 = $__cp$026$lcssa53; - $__cp$0252837 = $__cp$02528; - $__phash$0$ph$ph35 = $$lcssa56; - } + $23 = (HEAP32[$3 + ((HEAPU8[$ptr$02 >> 0] | 0) >>> 3 << 2) >> 2] | 0) + ((HEAPU8[$ptr$02 + 1 >> 0] | 0) >>> 2 << 6) + ((HEAPU8[$ptr$02 + 2 >> 0] | 0) >>> 3 << 1) | 0; + $24 = HEAP16[$23 >> 1] | 0; + $25 = $24 + 1 << 16 >> 16; + HEAP16[$23 >> 1] = $25 << 16 >> 16 == 0 ? $24 : $25; + $col$01 = $col$01 + -1 | 0; + if (!$col$01) break; else $ptr$02 = $ptr$02 + 3 | 0; } } + $row$03 = $row$03 + 1 | 0; + } while (($row$03 | 0) < ($num_rows | 0)); + } + return; +} + +function __ZNK6vision21HoughSimilarityVoting12mapVoteToBinERfS1_S1_S1_ffff($this, $fBinX, $fBinY, $fBinAngle, $fBinScale, $x, $y, $angle, $scale) { + $this = $this | 0; + $fBinX = $fBinX | 0; + $fBinY = $fBinY | 0; + $fBinAngle = $fBinAngle | 0; + $fBinScale = $fBinScale | 0; + $x = +$x; + $y = +$y; + $angle = +$angle; + $scale = +$scale; + var $17 = 0.0, $21 = 0.0, $38 = 0.0, $4 = 0.0, $42 = 0.0, $8 = 0.0; + $4 = +HEAPF32[$this + 20 >> 2]; + $8 = +HEAPF32[$this + 24 >> 2] - $4; + HEAPF32[$fBinX >> 2] = +(HEAP32[$this + 52 >> 2] | 0) * (($x - $4) / ($8 == 0.0 ? 1.0 : $8)); + $17 = +HEAPF32[$this + 28 >> 2]; + $21 = +HEAPF32[$this + 32 >> 2] - $17; + HEAPF32[$fBinY >> 2] = +(HEAP32[$this + 56 >> 2] | 0) * (($y - $17) / ($21 == 0.0 ? 1.0 : $21)); + HEAPF32[$fBinAngle >> 2] = ($angle + 3.141592653589793) * .15915494309189535 * +(HEAP32[$this + 60 >> 2] | 0); + $38 = +HEAPF32[$this + 36 >> 2]; + $42 = +HEAPF32[$this + 40 >> 2] - $38; + HEAPF32[$fBinScale >> 2] = +(HEAP32[$this + 64 >> 2] | 0) * (($scale - $38) / ($42 == 0.0 ? 1.0 : $42)); + return; +} + +function _detectNFTMarker($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $3 = 0, $4 = 0, $kpmResult = 0, $kpmResultNum = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 8 | 0; + $kpmResult = sp + 4 | 0; + $kpmResultNum = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + HEAP32[$kpmResult >> 2] = 0; + HEAP32[$kpmResultNum >> 2] = -1; + $4 = $3 + 228 | 0; + _kpmMatching(HEAP32[$4 >> 2] | 0, HEAP32[$3 + 196 >> 2] | 0) | 0; + _kpmGetResult(HEAP32[$4 >> 2] | 0, $kpmResult, $kpmResultNum) | 0; + $$0 = HEAP32[$kpmResultNum >> 2] | 0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $0 = 0, $10 = 0, $14 = 0, $27 = 0, $3 = 0, $7 = 0, $9 = 0; + $0 = HEAP8[$this >> 0] | 0; + if (!($0 & 1)) { + $7 = 10; + $9 = $0; + } else { + $3 = HEAP32[$this >> 2] | 0; + $7 = ($3 & -2) + -1 | 0; + $9 = $3 & 255; + } + $10 = ($9 & 1) == 0; + do if ($7 >>> 0 < $__n >>> 0) { + if ($10) $27 = ($9 & 255) >>> 1; else $27 = HEAP32[$this + 4 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $7, $__n - $7 | 0, $27, 0, $27, $__n, $__s); + } else { + if ($10) $14 = $this + 1 | 0; else $14 = HEAP32[$this + 8 >> 2] | 0; + _memmove($14 | 0, $__s | 0, $__n | 0) | 0; + HEAP8[$14 + $__n >> 0] = 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $__n << 1; + break; + } else { + HEAP32[$this + 4 >> 2] = $__n; + break; } } while (0); return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) { +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $__s, $__n) { $this = $this | 0; - $__nbc = $__nbc | 0; - var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0; - $0 = $this + 4 | 0; - L1 : do if (!$__nbc) { - $51 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = 0; - if ($51) __ZdlPv($51); - HEAP32[$0 >> 2] = 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $0 = 0, $14 = 0, $15 = 0, $24 = 0, $25 = 0, $3 = 0, $7 = 0; + $0 = HEAP8[$this >> 0] | 0; + if (!($0 & 1)) { + $14 = 10; + $7 = $0; } else { - $3 = __Znwj($__nbc << 2) | 0; - $4 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = $3; - if ($4) __ZdlPv($4); - HEAP32[$0 >> 2] = $__nbc; - if ($__nbc) { - $__i$039 = 0; - do { - HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0; - $__i$039 = $__i$039 + 1 | 0; - } while (($__i$039 | 0) != ($__nbc | 0)); + $3 = HEAP32[$this >> 2] | 0; + $14 = ($3 & -2) + -1 | 0; + $7 = $3 & 255; + } + if (!($7 & 1)) $15 = ($7 & 255) >>> 1; else $15 = HEAP32[$this + 4 >> 2] | 0; + if (($14 - $15 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $14, $__n - $14 + $15 | 0, $15, $15, 0, $__n, $__s); else if ($__n) { + if (!($7 & 1)) $24 = $this + 1 | 0; else $24 = HEAP32[$this + 8 >> 2] | 0; + _memcpy($24 + $15 | 0, $__s | 0, $__n | 0) | 0; + $25 = $15 + $__n | 0; + if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $25 << 1; else HEAP32[$this + 4 >> 2] = $25; + HEAP8[$24 + $25 >> 0] = 0; + } + return $this | 0; +} + +function __ZN6vision23AccumulateScaledVector9IfEEvPT_PKS1_S1_($dst, $src, $s) { + $dst = $dst | 0; + $src = $src | 0; + $s = +$s; + var $13 = 0, $19 = 0, $25 = 0, $31 = 0, $37 = 0, $43 = 0, $49 = 0, $7 = 0; + HEAPF32[$dst >> 2] = +HEAPF32[$dst >> 2] + +HEAPF32[$src >> 2] * $s; + $7 = $dst + 4 | 0; + HEAPF32[$7 >> 2] = +HEAPF32[$7 >> 2] + +HEAPF32[$src + 4 >> 2] * $s; + $13 = $dst + 8 | 0; + HEAPF32[$13 >> 2] = +HEAPF32[$13 >> 2] + +HEAPF32[$src + 8 >> 2] * $s; + $19 = $dst + 12 | 0; + HEAPF32[$19 >> 2] = +HEAPF32[$19 >> 2] + +HEAPF32[$src + 12 >> 2] * $s; + $25 = $dst + 16 | 0; + HEAPF32[$25 >> 2] = +HEAPF32[$25 >> 2] + +HEAPF32[$src + 16 >> 2] * $s; + $31 = $dst + 20 | 0; + HEAPF32[$31 >> 2] = +HEAPF32[$31 >> 2] + +HEAPF32[$src + 20 >> 2] * $s; + $37 = $dst + 24 | 0; + HEAPF32[$37 >> 2] = +HEAPF32[$37 >> 2] + +HEAPF32[$src + 24 >> 2] * $s; + $43 = $dst + 28 | 0; + HEAPF32[$43 >> 2] = +HEAPF32[$43 >> 2] + +HEAPF32[$src + 28 >> 2] * $s; + $49 = $dst + 32 | 0; + HEAPF32[$49 >> 2] = +HEAPF32[$49 >> 2] + +HEAPF32[$src + 32 >> 2] * $s; + return; +} + +function __ZN6vision40Homography4PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_S3_S3_($x1, $x2, $x3, $x4, $x1p, $x2p, $x3p, $x4p) { + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + $x1p = $x1p | 0; + $x2p = $x2p | 0; + $x3p = $x3p | 0; + $x4p = $x4p | 0; + var $$0 = 0, $1 = 0, $11 = 0, $16 = 0, $6 = 0; + $1 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x1, $x2, $x3) > 0.0; + if ($1 ^ +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x1p, $x2p, $x3p) > 0.0) $$0 = 0; else { + $6 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x2, $x3, $x4) > 0.0; + if ($6 ^ +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x2p, $x3p, $x4p) > 0.0) $$0 = 0; else { + $11 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x3, $x4, $x1) > 0.0; + if ($11 ^ +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x3p, $x4p, $x1p) > 0.0) $$0 = 0; else { + $16 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x4, $x1, $x2) > 0.0; + $$0 = $16 ^ +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x4p, $x1p, $x2p) > 0.0 ^ 1; + } } - $9 = $this + 8 | 0; - $10 = HEAP32[$9 >> 2] | 0; - if ($10) { - $13 = HEAP32[$10 + 4 >> 2] | 0; - $14 = $__nbc + -1 | 0; - $16 = ($14 & $__nbc | 0) == 0; - if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0; - HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9; - $__cp$0252833 = HEAP32[$10 >> 2] | 0; - if ($__cp$0252833) { - $$in = $10; - $__cp$0$in2736 = $10; - $__cp$0252837 = $__cp$0252833; - $__phash$0$ph$ph35 = $21; + } + return $$0 | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEjc($this, $__n, $__c) { + $this = $this | 0; + $__n = $__n | 0; + $__c = $__c | 0; + var $1 = 0, $15 = 0, $16 = 0, $21 = 0, $27 = 0, $28 = 0, $4 = 0, $8 = 0; + if ($__n) { + $1 = HEAP8[$this >> 0] | 0; + if (!($1 & 1)) { + $15 = 10; + $8 = $1; + } else { + $4 = HEAP32[$this >> 2] | 0; + $15 = ($4 & -2) + -1 | 0; + $8 = $4 & 255; + } + if (!($8 & 1)) $16 = ($8 & 255) >>> 1; else $16 = HEAP32[$this + 4 >> 2] | 0; + if (($15 - $16 | 0) >>> 0 < $__n >>> 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj($this, $15, $__n - $15 + $16 | 0, $16, $16, 0, 0); + $21 = HEAP8[$this >> 0] | 0; + } else $21 = $8; + if (!($21 & 1)) $27 = $this + 1 | 0; else $27 = HEAP32[$this + 8 >> 2] | 0; + _memset($27 + $16 | 0, $__c | 0, $__n | 0) | 0; + $28 = $16 + $__n | 0; + if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $28 << 1; else HEAP32[$this + 4 >> 2] = $28; + HEAP8[$27 + $28 >> 0] = 0; + } + return $this | 0; +} + +function __ZN6vision5Image11shallowCopyERKS0_($this, $image) { + $this = $this | 0; + $image = $image | 0; + var $0 = 0, $17 = 0, $19 = 0, $20 = 0, $22 = 0, $26 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$this >> 2] = HEAP32[$image >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$image + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$image + 8 >> 2]; + HEAP32[$this + 12 >> 2] = HEAP32[$image + 12 >> 2]; + HEAP32[$this + 16 >> 2] = HEAP32[$image + 16 >> 2]; + HEAP32[$this + 20 >> 2] = HEAP32[$image + 20 >> 2]; + $17 = $this + 24 | 0; + $19 = HEAP32[$image + 24 >> 2] | 0; + HEAP32[$0 >> 2] = $19; + $20 = $0 + 4 | 0; + $22 = HEAP32[$image + 28 >> 2] | 0; + HEAP32[$20 >> 2] = $22; + if ($22) __ZNSt3__119__shared_weak_count12__add_sharedEv($22); + HEAP32[$0 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $19; + $26 = $this + 28 | 0; + HEAP32[$20 >> 2] = HEAP32[$26 >> 2]; + HEAP32[$26 >> 2] = $22; + __ZNSt3__110shared_ptrIhED2Ev($0); + STACKTOP = sp; + return; +} + +function _pad($f, $c, $w, $l, $fl) { + $f = $f | 0; + $c = $c | 0; + $w = $w | 0; + $l = $l | 0; + $fl = $fl | 0; + var $$0$lcssa6 = 0, $$02 = 0, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $3 = 0, $7 = 0, $9 = 0, $pad = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $pad = sp; + do if (($w | 0) > ($l | 0) & ($fl & 73728 | 0) == 0) { + $3 = $w - $l | 0; + _memset($pad | 0, $c | 0, ($3 >>> 0 > 256 ? 256 : $3) | 0) | 0; + $7 = HEAP32[$f >> 2] | 0; + $9 = ($7 & 32 | 0) == 0; + if ($3 >>> 0 > 255) { + $10 = $w - $l | 0; + $$02 = $3; + $17 = $7; + $18 = $9; + while (1) { + if ($18) { + ___fwritex($pad, 256, $f) | 0; + $14 = HEAP32[$f >> 2] | 0; + } else $14 = $17; + $$02 = $$02 + -256 | 0; + $18 = ($14 & 32 | 0) == 0; + if ($$02 >>> 0 <= 255) break; else $17 = $14; + } + if ($18) $$0$lcssa6 = $10 & 255; else break; + } else if ($9) $$0$lcssa6 = $3; else break; + ___fwritex($pad, $$0$lcssa6, $f) | 0; + } while (0); + STACKTOP = sp; + return; +} + +function _h2v1_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + var $0 = 0, $1 = 0, $13 = 0, $2 = 0, $6 = 0, $7 = 0, $8 = 0, $inptr$02 = 0, $inrow$03 = 0, $outptr$01 = 0; + $0 = HEAP32[$output_data_ptr >> 2] | 0; + $1 = $cinfo + 312 | 0; + $2 = $cinfo + 112 | 0; + if ((HEAP32[$1 >> 2] | 0) > 0) { + $inrow$03 = 0; + do { + $6 = HEAP32[$0 + ($inrow$03 << 2) >> 2] | 0; + $7 = HEAP32[$2 >> 2] | 0; + $8 = $6 + $7 | 0; + if (($7 | 0) > 0) { + $inptr$02 = HEAP32[$input_data + ($inrow$03 << 2) >> 2] | 0; + $outptr$01 = $6; while (1) { - $$in41 = $$in; - $__cp$0$in30 = $__cp$0$in2736; - $__cp$02531 = $__cp$0252837; - L21 : while (1) { - $__cp$026 = $__cp$02531; - while (1) { - $25 = HEAP32[$__cp$026 + 4 >> 2] | 0; - if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0; - if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) { - $__cp$026$lcssa = $__cp$026; - break; - } - $31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0; - if (!(HEAP32[$31 >> 2] | 0)) { - $$in41$lcssa = $$in41; - $$lcssa56 = $29; - $$lcssa58 = $31; - $__cp$026$lcssa53 = $__cp$026; - break L21; - } - $34 = $__cp$026 + 8 | 0; - $__np$0 = $__cp$026; - while (1) { - $36 = HEAP32[$__np$0 >> 2] | 0; - if (!$36) { - $$lcssa = $36; - $__np$0$lcssa = $__np$0; - break; - } - if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else { - $$lcssa = $36; - $__np$0$lcssa = $__np$0; - break; - } - } - HEAP32[$$in41 >> 2] = $$lcssa; - HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2]; - HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026; - $__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0; - if (!$__cp$026) break L1; - } - $__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0; - if (!$__cp$025) break L1; else { - $$in41 = $__cp$026$lcssa; - $__cp$0$in30 = $__cp$026$lcssa; - $__cp$02531 = $__cp$025; - } - } - HEAP32[$$lcssa58 >> 2] = $$in41$lcssa; - $__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0; - if (!$__cp$02528) break; else { - $$in = $__cp$026$lcssa53; - $__cp$0$in2736 = $__cp$026$lcssa53; - $__cp$0252837 = $__cp$02528; - $__phash$0$ph$ph35 = $$lcssa56; - } + $13 = HEAP8[$inptr$02 >> 0] | 0; + HEAP8[$outptr$01 >> 0] = $13; + HEAP8[$outptr$01 + 1 >> 0] = $13; + $outptr$01 = $outptr$01 + 2 | 0; + if ($outptr$01 >>> 0 >= $8 >>> 0) break; else $inptr$02 = $inptr$02 + 1 | 0; } } + $inrow$03 = $inrow$03 + 1 | 0; + } while (($inrow$03 | 0) < (HEAP32[$1 >> 2] | 0)); + } + return; +} + +function __ZN6vision26SmoothOrientationHistogramIfEEvPT_PKS1_jS4_($y, $x, $n, $kernel) { + $y = $y | 0; + $x = $x | 0; + $n = $n | 0; + $kernel = $kernel | 0; + var $0 = 0.0, $1 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0, $7 = 0.0, $i$02 = 0, $prev$0$lcssa = 0.0, $prev$03 = 0.0, $i$02$looptemp = 0; + $0 = +HEAPF32[$x >> 2]; + $1 = $n + -1 | 0; + $2 = $x + ($1 << 2) | 0; + $3 = +HEAPF32[$2 >> 2]; + $4 = $kernel + 4 | 0; + $5 = $kernel + 8 | 0; + if (!$1) $prev$0$lcssa = $3; else { + $i$02 = 0; + $prev$03 = $3; + while (1) { + $7 = +HEAPF32[$x + ($i$02 << 2) >> 2]; + $i$02$looptemp = $i$02; + $i$02 = $i$02 + 1 | 0; + HEAPF32[$y + ($i$02$looptemp << 2) >> 2] = $prev$03 * +HEAPF32[$kernel >> 2] + $7 * +HEAPF32[$4 >> 2] + +HEAPF32[$5 >> 2] * +HEAPF32[$x + ($i$02 << 2) >> 2]; + if (($i$02 | 0) == ($1 | 0)) { + $prev$0$lcssa = $7; + break; + } else $prev$03 = $7; } - } while (0); + } + HEAPF32[$y + ($1 << 2) >> 2] = $prev$0$lcssa * +HEAPF32[$kernel >> 2] + +HEAPF32[$4 >> 2] * +HEAPF32[$2 >> 2] + $0 * +HEAPF32[$5 >> 2]; return; } -function _arglCameraFrustum($cparam, $focalmin, $focalmax, $m_projection) { - $cparam = $cparam | 0; - $focalmin = +$focalmin; - $focalmax = +$focalmax; - $m_projection = $m_projection | 0; - var $0 = 0, $11 = 0, $17 = 0, $2 = 0, $23 = 0, $29 = 0, $33 = 0.0, $50 = 0.0, $63 = 0, $7 = 0.0, $75 = 0, $77 = 0.0, $84 = 0, $88 = 0.0, $90 = 0.0, $92 = 0.0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0.0, $98 = 0.0, $i$111 = 0, $i$29 = 0, $icpara = 0, $j$18 = 0, $p = 0, $q = 0, $trans = 0, sp = 0; +function _loadCamera($cparam_name) { + $cparam_name = $cparam_name | 0; + var $$0 = 0, $15 = 0, $16 = 0, $6 = 0, $cameraID = 0, $param = 0, $vararg_buffer1 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 400 | 0; + STACKTOP = STACKTOP + 208 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $icpara = sp + 296 | 0; - $trans = sp + 200 | 0; - $p = sp + 128 | 0; - $q = sp; - $0 = HEAP32[$cparam >> 2] | 0; - $2 = HEAP32[$cparam + 4 >> 2] | 0; - if ((_arParamDecompMat($cparam + 8 | 0, $icpara, $trans) | 0) < 0) _arLog(3, 6024, sp + 392 | 0); else { - $7 = +($2 + -1 | 0); - $11 = $icpara + 32 | 0; - HEAPF64[$11 >> 3] = $7 * +HEAPF64[$icpara + 64 >> 3] - +HEAPF64[$11 >> 3]; - $17 = $icpara + 40 | 0; - HEAPF64[$17 >> 3] = $7 * +HEAPF64[$icpara + 72 >> 3] - +HEAPF64[$17 >> 3]; - $23 = $icpara + 48 | 0; - HEAPF64[$23 >> 3] = $7 * +HEAPF64[$icpara + 80 >> 3] - +HEAPF64[$23 >> 3]; - $29 = $icpara + 56 | 0; - HEAPF64[$29 >> 3] = $7 * +HEAPF64[$icpara + 88 >> 3] - +HEAPF64[$29 >> 3]; - $33 = +HEAPF64[$icpara + 80 >> 3]; - $i$111 = 0; - do { - HEAPF64[$p + ($i$111 * 24 | 0) >> 3] = +HEAPF64[$icpara + ($i$111 << 5) >> 3] / $33; - HEAPF64[$p + ($i$111 * 24 | 0) + 8 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 8 >> 3] / $33; - HEAPF64[$p + ($i$111 * 24 | 0) + 16 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 16 >> 3] / $33; - $i$111 = $i$111 + 1 | 0; - } while (($i$111 | 0) != 3); - $50 = +($0 + -1 | 0); - HEAPF64[$q >> 3] = +HEAPF64[$p >> 3] * 2.0 / $50; - HEAPF64[$q + 8 >> 3] = +HEAPF64[$p + 8 >> 3] * 2.0 / $50; - HEAPF64[$q + 16 >> 3] = +HEAPF64[$p + 16 >> 3] * 2.0 / $50 + -1.0; - $63 = $q + 24 | 0; - HEAP32[$63 >> 2] = 0; - HEAP32[$63 + 4 >> 2] = 0; - HEAP32[$63 + 8 >> 2] = 0; - HEAP32[$63 + 12 >> 2] = 0; - HEAPF64[$q + 40 >> 3] = +HEAPF64[$p + 32 >> 3] * 2.0 / $7; - HEAPF64[$q + 48 >> 3] = +HEAPF64[$p + 40 >> 3] * 2.0 / $7 + -1.0; - $75 = $q + 56 | 0; - $77 = $focalmax - $focalmin; - HEAP32[$75 >> 2] = 0; - HEAP32[$75 + 4 >> 2] = 0; - HEAP32[$75 + 8 >> 2] = 0; - HEAP32[$75 + 12 >> 2] = 0; - HEAP32[$75 + 16 >> 2] = 0; - HEAP32[$75 + 20 >> 2] = 0; - HEAPF64[$q + 80 >> 3] = ($focalmin + $focalmax) / $77; - HEAPF64[$q + 88 >> 3] = $focalmax * -2.0 * $focalmin / $77; - $84 = $q + 96 | 0; - HEAP32[$84 >> 2] = 0; - HEAP32[$84 + 4 >> 2] = 0; - HEAP32[$84 + 8 >> 2] = 0; - HEAP32[$84 + 12 >> 2] = 0; - HEAPF64[$q + 112 >> 3] = 1.0; - HEAPF64[$q + 120 >> 3] = 0.0; - $88 = +HEAPF64[$trans + 24 >> 3]; - $90 = +HEAPF64[$trans + 56 >> 3]; - $92 = +HEAPF64[$trans + 88 >> 3]; - $i$29 = 0; + $vararg_buffer1 = sp + 192 | 0; + $param = sp; + $cameraID = sp + 196 | 0; + if (!(HEAP8[$cparam_name >> 0] & 1)) $6 = $cparam_name + 1 | 0; else $6 = HEAP32[$cparam_name + 8 >> 2] | 0; + if ((_arParamLoad($6, 1, $param, sp + 184 | 0) | 0) < 0) { + if (!(HEAP8[$cparam_name >> 0] & 1)) $15 = $cparam_name + 1 | 0; else $15 = HEAP32[$cparam_name + 8 >> 2] | 0; + HEAP32[$vararg_buffer1 >> 2] = $15; + _arLog(3, 40902, $vararg_buffer1); + $$0 = -1; + } else { + $16 = HEAP32[1467] | 0; + HEAP32[1467] = $16 + 1; + HEAP32[$cameraID >> 2] = $16; + _memcpy(__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5840, $cameraID) | 0, $param | 0, 184) | 0; + $$0 = $16; + } + STACKTOP = sp; + return $$0 | 0; +} + +function _init_error_limit($cinfo) { + $cinfo = $cinfo | 0; + var $$lcssa = 0, $1 = 0, $12 = 0, $20 = 0, $6 = 0, $9 = 0, $in$05 = 0, $in$13 = 0, $in$22 = 0, $out$14 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $6 = (FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, 2044) | 0) + 1020 | 0; + HEAP32[$1 + 40 >> 2] = $6; + $in$05 = 0; + do { + HEAP32[$6 + ($in$05 << 2) >> 2] = $in$05; + $9 = 0 - $in$05 | 0; + HEAP32[$6 + ($9 << 2) >> 2] = $9; + $in$05 = $in$05 + 1 | 0; + } while (($in$05 | 0) != 16); + $in$13 = 16; + $out$14 = 16; + while (1) { + HEAP32[$6 + ($in$13 << 2) >> 2] = $out$14; + HEAP32[$6 + (0 - $in$13 << 2) >> 2] = 0 - $out$14; + $in$13 = $in$13 + 1 | 0; + $20 = ($in$13 & 1 ^ 1) + $out$14 | 0; + if (($in$13 | 0) >= 48) { + $$lcssa = $20; + break; + } else $out$14 = $20; + } + $12 = 0 - $$lcssa | 0; + $in$22 = 48; + do { + HEAP32[$6 + ($in$22 << 2) >> 2] = $$lcssa; + HEAP32[$6 + (0 - $in$22 << 2) >> 2] = $12; + $in$22 = $in$22 + 1 | 0; + } while (($in$22 | 0) < 256); + return; +} + +function __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $2 = HEAP32[$1 >> 2] | 0; + $3 = $__v + 4 | 0; + if (($2 | 0) != ($0 | 0)) { + $$0$i1 = $2; do { - $94 = +HEAPF64[$q + ($i$29 << 5) >> 3]; - $95 = $q + ($i$29 << 5) + 8 | 0; - $96 = $q + ($i$29 << 5) + 16 | 0; - $97 = +HEAPF64[$95 >> 3]; - $98 = +HEAPF64[$96 >> 3]; - $j$18 = 0; - do { - HEAPF64[$m_projection + (($j$18 << 2) + $i$29 << 3) >> 3] = $94 * +HEAPF64[$trans + ($j$18 << 3) >> 3] + $97 * +HEAPF64[$trans + 32 + ($j$18 << 3) >> 3] + $98 * +HEAPF64[$trans + 64 + ($j$18 << 3) >> 3]; - $j$18 = $j$18 + 1 | 0; - } while (($j$18 | 0) != 3); - HEAPF64[$m_projection + ($i$29 + 12 << 3) >> 3] = +HEAPF64[$q + ($i$29 << 5) + 24 >> 3] + ($94 * $88 + +HEAPF64[$95 >> 3] * $90 + +HEAPF64[$96 >> 3] * $92); - $i$29 = $i$29 + 1 | 0; - } while (($i$29 | 0) != 4); + $$0$i1 = $$0$i1 + -32 | 0; + __ZN6vision5ImageC2ERKS0_((HEAP32[$3 >> 2] | 0) + -32 | 0, $$0$i1); + HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -32; + } while (($$0$i1 | 0) != ($0 | 0)); } + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZN6vision29SolveNullVector8x9DestructiveIfEEbPT_S2_($x, $A) { + $x = $x | 0; + $A = $A | 0; + var $$0 = 0, $Q = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $Q = sp; + if (__ZN6vision27OrthogonalizePivot8x9Basis0IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis1IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis2IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis3IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis4IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis5IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis6IfEEbPT_S2_($Q, $A) | 0) if (__ZN6vision27OrthogonalizePivot8x9Basis7IfEEbPT_S2_($Q, $A) | 0) $$0 = __ZN6vision24OrthogonalizeIdentity8x9IfEEbPT_PKS1_($x, $Q) | 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; else $$0 = 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $5 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 4 >> 2] & 127]($1) | 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $11 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $5, $5 + 288 | 0, $__ct, $__err, 0) | 0) - $5 | 0; + if (($11 | 0) < 288) HEAP32[$__m >> 2] = (($11 | 0) / 12 | 0 | 0) % 12 | 0; STACKTOP = sp; return; } -function _arParamIdeal2Observ($dist_factor, $ix, $iy, $ox, $oy, $dist_function_version) { - $dist_factor = $dist_factor | 0; - $ix = +$ix; - $iy = +$iy; - $ox = $ox | 0; - $oy = $oy | 0; - $dist_function_version = $dist_function_version | 0; - var $$0 = 0, $10 = 0.0, $104 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0, $130 = 0.0, $14 = 0.0, $141 = 0.0, $16 = 0.0, $19 = 0.0, $22 = 0.0, $25 = 0.0, $30 = 0.0, $4 = 0.0, $55 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0, $63 = 0.0, $71 = 0.0, $8 = 0.0, $83 = 0.0, $90 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0, $98 = 0.0, $storemerge = 0.0, $storemerge6 = 0.0, $storemerge7 = 0.0; - switch ($dist_function_version | 0) { - case 4: - { - $4 = +HEAPF64[$dist_factor + 16 >> 3]; - $6 = +HEAPF64[$dist_factor + 24 >> 3]; - $8 = +HEAPF64[$dist_factor + 32 >> 3]; - $10 = +HEAPF64[$dist_factor + 40 >> 3]; - $12 = +HEAPF64[$dist_factor + 48 >> 3]; - $14 = +HEAPF64[$dist_factor + 56 >> 3]; - $16 = +HEAPF64[$dist_factor + 64 >> 3]; - $19 = ($ix - $12) * $16 / $8; - $22 = ($iy - $14) * $16 / $10; - $25 = $19 * $19 + $22 * $22; - $30 = +HEAPF64[$dist_factor >> 3] * $25 + 1.0 + $25 * (+HEAPF64[$dist_factor + 8 >> 3] * $25); - HEAPF64[$ox >> 3] = $12 + $8 * ($6 * ($19 * ($19 * 2.0) + $25) + ($4 * 2.0 * $19 * $22 + $19 * $30)); - HEAPF64[$oy >> 3] = $14 + $10 * ($6 * 2.0 * $19 * $22 + ($4 * ($25 + $22 * ($22 * 2.0)) + $22 * $30)); - $$0 = 0; - break; - } - case 3: - { - $55 = +HEAPF64[$dist_factor >> 3]; - $58 = +HEAPF64[$dist_factor + 16 >> 3]; - $59 = ($ix - $55) * $58; - $60 = $dist_factor + 8 | 0; - $63 = $58 * ($iy - +HEAPF64[$60 >> 3]); - if ($59 == 0.0 & $63 == 0.0) { - HEAPF64[$ox >> 3] = $55; - $storemerge7 = +HEAPF64[$60 >> 3]; - } else { - $71 = $59 * $59 + $63 * $63; - $83 = 1.0 - $71 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8) - $71 * ($71 * (+HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5)); - HEAPF64[$ox >> 3] = $55 + +HEAPF64[$dist_factor + 24 >> 3] * ($59 * $83); - $storemerge7 = +HEAPF64[$60 >> 3] + $63 * $83; - } - HEAPF64[$oy >> 3] = $storemerge7; - $$0 = 0; - break; +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $11 = 0, $5 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$1 >> 2] | 0) + 4 >> 2] & 127]($1) | 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $11 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $5, $5 + 288 | 0, $__ct, $__err, 0) | 0) - $5 | 0; + if (($11 | 0) < 288) HEAP32[$__m >> 2] = (($11 | 0) / 12 | 0 | 0) % 12 | 0; + STACKTOP = sp; + return; +} + +function _getMultiMarkerNum($id, $multiMarker_id) { + $id = $id | 0; + $multiMarker_id = $multiMarker_id | 0; + var $$0 = 0, $0 = 0, $3 = 0, $8 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if (($multiMarker_id | 0) < 0) $$0 = -1; else { + $8 = HEAP32[$3 + 280 >> 2] | 0; + if ((HEAP32[$3 + 284 >> 2] | 0) - $8 >> 3 >>> 0 > $multiMarker_id >>> 0) $$0 = HEAP32[(HEAP32[$8 + ($multiMarker_id << 3) + 4 >> 2] | 0) + 4 >> 2] | 0; else $$0 = -1; } - case 2: - { - $90 = +HEAPF64[$dist_factor >> 3]; - $93 = +HEAPF64[$dist_factor + 16 >> 3]; - $94 = ($ix - $90) * $93; - $95 = $dist_factor + 8 | 0; - $98 = $93 * ($iy - +HEAPF64[$95 >> 3]); - if ($94 == 0.0 & $98 == 0.0) { - HEAPF64[$ox >> 3] = $90; - $storemerge6 = +HEAPF64[$95 >> 3]; - } else { - $104 = $94 * $94 + $98 * $98; - $116 = 1.0 - $104 * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8) - $104 * ($104 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5)); - HEAPF64[$ox >> 3] = $90 + $94 * $116; - $storemerge6 = +HEAPF64[$95 >> 3] + $98 * $116; - } - HEAPF64[$oy >> 3] = $storemerge6; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNSt3__19__num_getIwE17__stage2_int_prepERNS_8ios_baseEPwRw($agg$result, $__iob, $__atoms, $__thousands_sep) { + $agg$result = $agg$result | 0; + $__iob = $__iob | 0; + $__atoms = $__atoms | 0; + $__thousands_sep = $__thousands_sep | 0; + var $0 = 0, $1 = 0, $5 = 0, $9 = 0, $__loc = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__loc = sp; + $0 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13672) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$1 >> 2] | 0) + 48 >> 2] & 15]($1, 55292, 55318, $__atoms) | 0; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13828) | 0; + $9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] & 127]($5) | 0; + HEAP32[$__thousands_sep >> 2] = $9; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 63]($agg$result, $5); + __ZNSt3__114__shared_count16__release_sharedEv($0) | 0; + STACKTOP = sp; + return; +} + +function __ZN6vision20SmallestTriangleAreaIfEET_PKS1_S3_S3_S3_($x1, $x2, $x3, $x4) { + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + var $0 = 0.0, $1 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $16 = 0.0, $17 = 0.0, $2 = 0.0, $26 = 0.0, $31 = 0.0, $36 = 0.0, $4 = 0.0, $41 = 0.0, $43 = 0.0, $45 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0; + $0 = +HEAPF32[$x2 >> 2]; + $1 = +HEAPF32[$x1 >> 2]; + $2 = $0 - $1; + $4 = +HEAPF32[$x2 + 4 >> 2]; + $6 = +HEAPF32[$x1 + 4 >> 2]; + $7 = $4 - $6; + $8 = +HEAPF32[$x3 >> 2]; + $9 = $8 - $1; + $11 = +HEAPF32[$x3 + 4 >> 2]; + $12 = $11 - $6; + $13 = +HEAPF32[$x4 >> 2]; + $14 = $13 - $1; + $16 = +HEAPF32[$x4 + 4 >> 2]; + $17 = $16 - $6; + $26 = +Math_abs(+($2 * $12 - $7 * $9)) * .5; + $31 = +Math_abs(+($9 * $17 - $12 * $14)) * .5; + $36 = +Math_abs(+($2 * $17 - $7 * $14)) * .5; + $41 = +Math_abs(+(($0 - $8) * ($16 - $11) - ($4 - $11) * ($13 - $8))) * .5; + $43 = $26 < $31 ? $26 : $31; + $45 = $43 < $36 ? $43 : $36; + return +($45 < $41 ? $45 : $41); +} + +function __ZNSt3__19__num_getIcE17__stage2_int_prepERNS_8ios_baseEPcRc($agg$result, $__iob, $__atoms, $__thousands_sep) { + $agg$result = $agg$result | 0; + $__iob = $__iob | 0; + $__atoms = $__atoms | 0; + $__thousands_sep = $__thousands_sep | 0; + var $0 = 0, $1 = 0, $5 = 0, $9 = 0, $__loc = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__loc = sp; + $0 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$__loc >> 2] = $0; + $1 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13680) | 0; + FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[$1 >> 2] | 0) + 32 >> 2] & 15]($1, 55292, 55318, $__atoms) | 0; + $5 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13820) | 0; + $9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$5 >> 2] | 0) + 16 >> 2] & 127]($5) | 0; + HEAP8[$__thousands_sep >> 0] = $9; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] & 63]($agg$result, $5); + __ZNSt3__114__shared_count16__release_sharedEv($0) | 0; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 16 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 24 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__get_monthnameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 16 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 24 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__w, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__w = $__w | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $4 = FUNCTION_TABLE_ii[HEAP32[HEAP32[$1 >> 2] >> 2] & 127]($1) | 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $10 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEPKNS_12basic_stringIwS3_NS_9allocatorIwEEEENS_5ctypeIwEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $4, $4 + 168 | 0, $__ct, $__err, 0) | 0) - $4 | 0; + if (($10 | 0) < 168) HEAP32[$__w >> 2] = (($10 | 0) / 12 | 0 | 0) % 7 | 0; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__get_weekdaynameERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__w, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__w = $__w | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + $1 = $this + 8 | 0; + $4 = FUNCTION_TABLE_ii[HEAP32[HEAP32[$1 >> 2] >> 2] & 127]($1) | 0; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $10 = (__ZNSt3__114__scan_keywordINS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEPKNS_12basic_stringIcS3_NS_9allocatorIcEEEENS_5ctypeIcEEEET0_RT_SE_SD_SD_RKT1_Rjb($__b, $$byval_copy, $4, $4 + 168 | 0, $__ct, $__err, 0) | 0) - $4 | 0; + if (($10 | 0) < 168) HEAP32[$__w >> 2] = (($10 | 0) / 12 | 0 | 0) % 7 | 0; + STACKTOP = sp; + return; +} + +function _tmpfile() { + var $$0 = 0, $$lcssa = 0, $$lcssa7 = 0, $2 = 0, $5 = 0, $7 = 0, $buf = 0, $try$02 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer = sp; + $buf = sp + 20 | 0; + $try$02 = 0; + while (1) { + $2 = _tmpnam($buf) | 0; + if (!$2) { $$0 = 0; break; } - case 1: - { - $122 = +HEAPF64[$dist_factor >> 3]; - $125 = +HEAPF64[$dist_factor + 16 >> 3]; - $126 = ($ix - $122) * $125; - $127 = $dist_factor + 8 | 0; - $130 = $125 * ($iy - +HEAPF64[$127 >> 3]); - if ($126 == 0.0 & $130 == 0.0) { - HEAPF64[$ox >> 3] = $122; - $storemerge = +HEAPF64[$127 >> 3]; - } else { - $141 = 1.0 - ($126 * $126 + $130 * $130) * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8); - HEAPF64[$ox >> 3] = $122 + $126 * $141; - $storemerge = +HEAPF64[$127 >> 3] + $130 * $141; - } - HEAPF64[$oy >> 3] = $storemerge; + HEAP32[$vararg_buffer >> 2] = $2; + HEAP32[$vararg_buffer + 4 >> 2] = 32962; + HEAP32[$vararg_buffer + 8 >> 2] = 384; + $5 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0; + $try$02 = $try$02 + 1 | 0; + if (($5 | 0) > -1) { + $$lcssa = $5; + $$lcssa7 = $2; + label = 5; + break; + } + if (($try$02 | 0) >= 100) { $$0 = 0; break; } - default: - $$0 = -1; } + if ((label | 0) == 5) { + $7 = ___fdopen($$lcssa, 52066) | 0; + HEAP32[$vararg_buffer3 >> 2] = $$lcssa7; + ___syscall10(10, $vararg_buffer3 | 0) | 0; + $$0 = $7; + } + STACKTOP = sp; return $$0 | 0; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) { - $agg$result = $agg$result | 0; +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKcj($this, $__s, $__n) { $this = $this | 0; - $__nd = $__nd | 0; - var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; - $1 = HEAP32[$__nd + 8 >> 2] | 0; - $2 = $__nd + 4 | 0; - HEAP32[$2 >> 2] = $1; - $3 = $this + 4 | 0; - $4 = HEAP32[$3 >> 2] | 0; - $5 = ($4 | 0) == 0; - L1 : do if ($5) { - $__chash$0 = 0; - label = 12; + $__s = $__s | 0; + $__n = $__n | 0; + var $0 = 0, $10 = 0, $14 = 0, $27 = 0, $3 = 0, $7 = 0, $9 = 0; + $0 = HEAP8[$this >> 0] | 0; + if (!($0 & 1)) { + $7 = 10; + $9 = $0; } else { - $6 = $4 + -1 | 0; - $8 = ($6 & $4 | 0) == 0; - if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; - $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; - if (!$14) { - $__chash$0 = $13; - label = 12; + $3 = HEAP32[$this >> 2] | 0; + $7 = ($3 & -2) + -1 | 0; + $9 = $3 & 255; + } + $10 = ($9 & 1) == 0; + do if ($7 >>> 0 < $__n >>> 0) { + if ($10) $27 = ($9 & 255) >>> 1; else $27 = HEAP32[$this + 4 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $7, $__n - $7 | 0, $27, 0, $27, $__n, $__s); + } else { + if ($10) $14 = $this + 1 | 0; else $14 = HEAP32[$this + 8 >> 2] | 0; + _memmove($14 | 0, $__s | 0, $__n | 0) | 0; + HEAP8[$14 + $__n >> 0] = 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $__n << 1; + break; } else { - $$pn = $14; - while (1) { - $__ndptr$0 = HEAP32[$$pn >> 2] | 0; - if (!$__ndptr$0) { - $__chash$0 = $13; - label = 12; - break L1; - } - $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; - if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; - if (($22 | 0) != ($13 | 0)) { - $__chash$0 = $13; - label = 12; + HEAP32[$this + 4 >> 2] = $__n; + break; + } + } while (0); + return $this | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13672) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__tm + 20 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + $2 = __ZNKSt3__18ios_base6getlocEv($__iob) | 0; + HEAP32[$0 >> 2] = $2; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($0, 13680) | 0; + __ZNSt3__114__shared_count16__release_sharedEv($2) | 0; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; + __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__tm + 20 | 0, $__b, $$byval_copy, $__err, $3); + STACKTOP = sp; + return HEAP32[$__b >> 2] | 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$01 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $3 = 0, $__i$0$lcssa = 0, $__i$02 = 0, $storemerge = 0; + $0 = $this + 12 | 0; + $1 = $this + 16 | 0; + L1 : do if (($__n | 0) > 0) { + $$01 = $__s; + $__i$02 = 0; + while (1) { + $3 = HEAP32[$0 >> 2] | 0; + if ($3 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $3 + 1; + $storemerge = HEAP8[$3 >> 0] | 0; + } else { + $11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 40 >> 2] & 127]($this) | 0; + if (($11 | 0) == -1) { + $__i$0$lcssa = $__i$02; break L1; } - if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { - $81 = 0; - $__ndptr$1 = $__ndptr$0; - break; - } else $$pn = $__ndptr$0; + $storemerge = $11 & 255; } - } - } while (0); - if ((label | 0) == 12) { - $26 = $this + 12 | 0; - $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); - $32 = +HEAPF32[$this + 16 >> 2]; - do if ($5 | $29 > +($4 >>> 0) * $32) { - if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; - $43 = ($41 & 1 | $4 << 1) ^ 1; - $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); - $49 = HEAP32[$3 >> 2] | 0; - $50 = HEAP32[$2 >> 2] | 0; - $51 = $49 + -1 | 0; - if (!($51 & $49)) { - $__bc$0 = $49; - $__chash$1 = $51 & $50; - break; + HEAP8[$$01 >> 0] = $storemerge; + $14 = $__i$02 + 1 | 0; + if (($14 | 0) < ($__n | 0)) { + $$01 = $$01 + 1 | 0; + $__i$02 = $14; } else { - $__bc$0 = $49; - $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + $__i$0$lcssa = $14; break; } - } else { - $__bc$0 = $4; - $__chash$1 = $__chash$0; - } while (0); - $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; - if (!$58) { - $60 = $this + 8 | 0; - HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; - HEAP32[$60 >> 2] = $__nd; - HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; - $64 = HEAP32[$__nd >> 2] | 0; - if ($64) { - $67 = HEAP32[$64 + 4 >> 2] | 0; - $68 = $__bc$0 + -1 | 0; - if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; - HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; - } - } else { - HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; - HEAP32[$58 >> 2] = $__nd; } - HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; - $81 = 1; - $__ndptr$1 = $__nd; - } - HEAP32[$agg$result >> 2] = $__ndptr$1; - HEAP8[$agg$result + 4 >> 0] = $81; - return; + } else $__i$0$lcssa = 0; while (0); + return $__i$0$lcssa | 0; } -function _scanexp($f, $pok) { - $f = $f | 0; - $pok = $pok | 0; - var $$lcssa22 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $20 = 0, $35 = 0, $36 = 0, $48 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $61 = 0, $62 = 0, $63 = 0, $78 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $c$0 = 0, $c$1$be = 0, $c$1$be$lcssa = 0, $c$112 = 0, $c$2$be = 0, $c$2$lcssa = 0, $c$27 = 0, $c$3$be = 0, $neg$0 = 0, $x$013 = 0; - $0 = $f + 4 | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = $f + 100 | 0; - if ($1 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $1 + 1; - $10 = HEAPU8[$1 >> 0] | 0; - } else $10 = ___shgetc($f) | 0; - switch ($10 | 0) { - case 43: - case 45: - { - $11 = ($10 | 0) == 45 & 1; - $12 = HEAP32[$0 >> 2] | 0; - if ($12 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $12 + 1; - $20 = HEAPU8[$12 >> 0] | 0; - } else $20 = ___shgetc($f) | 0; - if (($pok | 0) != 0 & ($20 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) { - $c$0 = $20; - $neg$0 = $11; - } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $c$0 = $20; - $neg$0 = $11; - } else { - $c$0 = $20; - $neg$0 = $11; - } - break; - } - default: - { - $c$0 = $10; - $neg$0 = 0; - } - } - if (($c$0 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) { - $98 = -2147483648; - $99 = 0; +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKwj($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $0 = 0, $10 = 0, $14 = 0, $27 = 0, $3 = 0, $7 = 0, $9 = 0; + $0 = HEAP8[$this >> 0] | 0; + if (!($0 & 1)) { + $7 = 1; + $9 = $0; } else { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $98 = -2147483648; - $99 = 0; + $3 = HEAP32[$this >> 2] | 0; + $7 = ($3 & -2) + -1 | 0; + $9 = $3 & 255; + } + $10 = ($9 & 1) == 0; + do if ($7 >>> 0 < $__n >>> 0) { + if ($10) $27 = ($9 & 255) >>> 1; else $27 = HEAP32[$this + 4 >> 2] | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE21__grow_by_and_replaceEjjjjjjPKw($this, $7, $__n - $7 | 0, $27, 0, $27, $__n, $__s); } else { - $c$112 = $c$0; - $x$013 = 0; + if ($10) $14 = $this + 4 | 0; else $14 = HEAP32[$this + 8 >> 2] | 0; + _wmemmove($14, $__s, $__n) | 0; + HEAP32[$14 + ($__n << 2) >> 2] = 0; + if (!(HEAP8[$this >> 0] & 1)) { + HEAP8[$this >> 0] = $__n << 1; + break; + } else { + HEAP32[$this + 4 >> 2] = $__n; + break; + } + } while (0); + return $this | 0; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsgetnEPwi($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$01 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $3 = 0, $__i$0$lcssa = 0, $__i$02 = 0, $storemerge = 0; + $0 = $this + 12 | 0; + $1 = $this + 16 | 0; + L1 : do if (($__n | 0) > 0) { + $$01 = $__s; + $__i$02 = 0; while (1) { - $35 = $c$112 + -48 + ($x$013 * 10 | 0) | 0; - $36 = HEAP32[$0 >> 2] | 0; - if ($36 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $36 + 1; - $c$1$be = HEAPU8[$36 >> 0] | 0; - } else $c$1$be = ___shgetc($f) | 0; - if (($c$1$be + -48 | 0) >>> 0 < 10 & ($35 | 0) < 214748364) { - $c$112 = $c$1$be; - $x$013 = $35; + $3 = HEAP32[$0 >> 2] | 0; + if ($3 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + HEAP32[$0 >> 2] = $3 + 4; + $storemerge = HEAP32[$3 >> 2] | 0; } else { - $$lcssa22 = $35; - $c$1$be$lcssa = $c$1$be; + $11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 40 >> 2] & 127]($this) | 0; + if (($11 | 0) == -1) { + $__i$0$lcssa = $__i$02; + break L1; + } else $storemerge = $11; + } + HEAP32[$$01 >> 2] = $storemerge; + $13 = $__i$02 + 1 | 0; + if (($13 | 0) < ($__n | 0)) { + $$01 = $$01 + 4 | 0; + $__i$02 = $13; + } else { + $__i$0$lcssa = $13; break; } } - $48 = (($$lcssa22 | 0) < 0) << 31 >> 31; - if (($c$1$be$lcssa + -48 | 0) >>> 0 < 10) { - $53 = $$lcssa22; - $54 = $48; - $c$27 = $c$1$be$lcssa; - while (1) { - $55 = ___muldi3($53 | 0, $54 | 0, 10, 0) | 0; - $56 = tempRet0; - $59 = _i64Add($c$27 | 0, (($c$27 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; - $61 = _i64Add($59 | 0, tempRet0 | 0, $55 | 0, $56 | 0) | 0; - $62 = tempRet0; - $63 = HEAP32[$0 >> 2] | 0; - if ($63 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $63 + 1; - $c$2$be = HEAPU8[$63 >> 0] | 0; - } else $c$2$be = ___shgetc($f) | 0; - if (($c$2$be + -48 | 0) >>> 0 < 10 & (($62 | 0) < 21474836 | ($62 | 0) == 21474836 & $61 >>> 0 < 2061584302)) { - $53 = $61; - $54 = $62; - $c$27 = $c$2$be; - } else { - $92 = $61; - $93 = $62; - $c$2$lcssa = $c$2$be; - break; - } - } - } else { - $92 = $$lcssa22; - $93 = $48; - $c$2$lcssa = $c$1$be$lcssa; + } else $__i$0$lcssa = 0; while (0); + return $__i$0$lcssa | 0; +} + +function __ZN6vision27AddHomographyPointContraintIfEEvPT_PKS1_S4_($A, $x, $xp) { + $A = $A | 0; + $x = $x | 0; + $xp = $xp | 0; + var $18 = 0, $2 = 0, $26 = 0, $7 = 0; + HEAPF32[$A >> 2] = -+HEAPF32[$x >> 2]; + $2 = $x + 4 | 0; + HEAPF32[$A + 4 >> 2] = -+HEAPF32[$2 >> 2]; + HEAPF32[$A + 8 >> 2] = -1.0; + $7 = $A + 12 | 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + HEAPF32[$A + 24 >> 2] = +HEAPF32[$xp >> 2] * +HEAPF32[$x >> 2]; + HEAPF32[$A + 28 >> 2] = +HEAPF32[$xp >> 2] * +HEAPF32[$2 >> 2]; + HEAP32[$A + 32 >> 2] = HEAP32[$xp >> 2]; + $18 = $A + 36 | 0; + HEAP32[$18 >> 2] = 0; + HEAP32[$18 + 4 >> 2] = 0; + HEAP32[$18 + 8 >> 2] = 0; + HEAPF32[$A + 48 >> 2] = -+HEAPF32[$x >> 2]; + HEAPF32[$A + 52 >> 2] = -+HEAPF32[$2 >> 2]; + HEAPF32[$A + 56 >> 2] = -1.0; + $26 = $xp + 4 | 0; + HEAPF32[$A + 60 >> 2] = +HEAPF32[$26 >> 2] * +HEAPF32[$x >> 2]; + HEAPF32[$A + 64 >> 2] = +HEAPF32[$26 >> 2] * +HEAPF32[$2 >> 2]; + HEAP32[$A + 68 >> 2] = HEAP32[$26 >> 2]; + return; +} + +function _process_data_simple_main34($cinfo, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + var $$pre$phiZ2D = 0, $1 = 0, $13 = 0, $18 = 0, $2 = 0, $9 = 0, label = 0; + $1 = HEAP32[$cinfo + 424 >> 2] | 0; + $2 = $1 + 48 | 0; + if (!(HEAP32[$2 >> 2] | 0)) { + $9 = $1 + 8 | 0; + if (FUNCTION_TABLE_iii[HEAP32[(HEAP32[$cinfo + 428 >> 2] | 0) + 12 >> 2] & 63]($cinfo, $9) | 0) { + HEAP32[$2 >> 2] = 1; + $$pre$phiZ2D = $9; + label = 5; } - if (($c$2$lcssa + -48 | 0) >>> 0 < 10) do { - $78 = HEAP32[$0 >> 2] | 0; - if ($78 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) { - HEAP32[$0 >> 2] = $78 + 1; - $c$3$be = HEAPU8[$78 >> 0] | 0; - } else $c$3$be = ___shgetc($f) | 0; - } while (($c$3$be + -48 | 0) >>> 0 < 10); - if (HEAP32[$2 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1; - $91 = ($neg$0 | 0) != 0; - $94 = _i64Subtract(0, 0, $92 | 0, $93 | 0) | 0; - $98 = $91 ? tempRet0 : $93; - $99 = $91 ? $94 : $92; + } else { + $$pre$phiZ2D = $1 + 8 | 0; + label = 5; } - tempRet0 = $98; - return $99 | 0; + if ((label | 0) == 5) { + $13 = HEAP32[$cinfo + 316 >> 2] | 0; + $18 = $1 + 52 | 0; + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 432 >> 2] | 0) + 4 >> 2] & 7]($cinfo, $$pre$phiZ2D, $18, $13, $output_buf, $out_row_ctr, $out_rows_avail); + if ((HEAP32[$18 >> 2] | 0) >>> 0 >= $13 >>> 0) { + HEAP32[$2 >> 2] = 0; + HEAP32[$18 >> 2] = 0; + } + } + return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) { - $agg$result = $agg$result | 0; + +function __ZNKSt3__17collateIcE10do_compareEPKcS3_S3_S3_($this, $__lo1, $__hi1, $__lo2, $__hi2) { $this = $this | 0; - $__nd = $__nd | 0; - var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0; - $1 = HEAP32[$__nd + 8 >> 2] | 0; - $2 = $__nd + 4 | 0; - HEAP32[$2 >> 2] = $1; - $3 = $this + 4 | 0; - $4 = HEAP32[$3 >> 2] | 0; - $5 = ($4 | 0) == 0; - L1 : do if ($5) { - $__chash$0 = 0; - label = 12; + $__lo1 = $__lo1 | 0; + $__hi1 = $__hi1 | 0; + $__lo2 = $__lo2 | 0; + $__hi2 = $__hi2 | 0; + var $$0 = 0, $$018 = 0, $$02$lcssa = 0, $$027 = 0, $2 = 0, $3 = 0, $6 = 0, label = 0; + L1 : do if (($__lo2 | 0) == ($__hi2 | 0)) { + $$02$lcssa = $__lo1; + label = 6; } else { - $6 = $4 + -1 | 0; - $8 = ($6 & $4 | 0) == 0; - if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0; - $14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0; - if (!$14) { - $__chash$0 = $13; - label = 12; - } else { - $$pn = $14; - while (1) { - $__ndptr$0 = HEAP32[$$pn >> 2] | 0; - if (!$__ndptr$0) { - $__chash$0 = $13; - label = 12; - break L1; - } - $18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0; - if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0; - if (($22 | 0) != ($13 | 0)) { - $__chash$0 = $13; - label = 12; - break L1; - } - if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) { - $81 = 0; - $__ndptr$1 = $__ndptr$0; - break; - } else $$pn = $__ndptr$0; + $$018 = $__lo2; + $$027 = $__lo1; + while (1) { + if (($$027 | 0) == ($__hi1 | 0)) { + $$0 = -1; + break L1; + } + $2 = HEAP8[$$027 >> 0] | 0; + $3 = HEAP8[$$018 >> 0] | 0; + if ($2 << 24 >> 24 < $3 << 24 >> 24) { + $$0 = -1; + break L1; } + if ($3 << 24 >> 24 < $2 << 24 >> 24) { + $$0 = 1; + break L1; + } + $6 = $$027 + 1 | 0; + $$018 = $$018 + 1 | 0; + if (($$018 | 0) == ($__hi2 | 0)) { + $$02$lcssa = $6; + label = 6; + break; + } else $$027 = $6; } } while (0); - if ((label | 0) == 12) { - $26 = $this + 12 | 0; - $29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0); - $32 = +HEAPF32[$this + 16 >> 2]; - do if ($5 | $29 > +($4 >>> 0) * $32) { - if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0; - $43 = ($41 & 1 | $4 << 1) ^ 1; - $46 = ~~+Math_ceil(+($29 / $32)) >>> 0; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43); - $49 = HEAP32[$3 >> 2] | 0; - $50 = HEAP32[$2 >> 2] | 0; - $51 = $49 + -1 | 0; - if (!($51 & $49)) { - $__bc$0 = $49; - $__chash$1 = $51 & $50; + if ((label | 0) == 6) $$0 = ($$02$lcssa | 0) != ($__hi1 | 0) & 1; + return $$0 | 0; +} + +function __ZN6vision6Logger5writeENS_19LoggerPriorityLevelEPKcz($this, $level, $fmt, $varargs) { + $this = $this | 0; + $level = $level | 0; + $fmt = $fmt | 0; + $varargs = $varargs | 0; + var $0 = 0, $1 = 0, $arg_list = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $arg_list = sp + 24 | 0; + $0 = sp + 12 | 0; + $1 = sp; + HEAP32[$arg_list >> 2] = $varargs; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($1, $fmt, _strlen($fmt) | 0); + __ZN6vision6detail23create_formatted_stringERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEPi($0, $1, $arg_list); + __ZN6vision6Logger5writeENS_19LoggerPriorityLevelERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE($this, $level, $0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($1); + STACKTOP = sp; + return; +} + +function _arImageProcInit($xsize, $ysize, $pixFormat, $alwaysCopy) { + $xsize = $xsize | 0; + $ysize = $ysize | 0; + $pixFormat = $pixFormat | 0; + $alwaysCopy = $alwaysCopy | 0; + var $$0 = 0, $0 = 0, $5 = 0, label = 0; + $0 = _malloc(2080) | 0; + L1 : do if (!$0) $$0 = $0; else { + HEAP32[$0 + 2068 >> 2] = $pixFormat; + L3 : do if (!$alwaysCopy) { + switch ($pixFormat | 0) { + case 5: + case 12: + case 13: + case 14: break; + default: + { + label = 4; + break L3; + } + } + HEAP32[$0 + 2076 >> 2] = 0; + } else label = 4; while (0); + do if ((label | 0) == 4) { + $5 = _malloc(Math_imul($ysize, $xsize) | 0) | 0; + HEAP32[$0 >> 2] = $5; + if (!$5) { + _free($0); + $$0 = 0; + break L1; } else { - $__bc$0 = $49; - $__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0; + HEAP32[$0 + 2076 >> 2] = 1; break; } - } else { - $__bc$0 = $4; - $__chash$1 = $__chash$0; } while (0); - $58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0; - if (!$58) { - $60 = $this + 8 | 0; - HEAP32[$__nd >> 2] = HEAP32[$60 >> 2]; - HEAP32[$60 >> 2] = $__nd; - HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60; - $64 = HEAP32[$__nd >> 2] | 0; - if ($64) { - $67 = HEAP32[$64 + 4 >> 2] | 0; - $68 = $__bc$0 + -1 | 0; - if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0; - HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd; + HEAP32[$0 + 2072 >> 2] = $alwaysCopy; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = $xsize; + HEAP32[$0 + 12 >> 2] = $ysize; + $$0 = $0; + } while (0); + return $$0 | 0; +} + +function _arUtilReplaceExt($filename, $n, $ext) { + $filename = $filename | 0; + $n = $n | 0; + $ext = $ext | 0; + var $$0 = 0, $$lcssa = 0, $0 = 0, $4 = 0, $i$0 = 0, $i$0$lcssa = 0, $j$0 = 0, $j$0$lcssa = 0, $j$1 = 0, $j$2 = 0, label = 0; + $i$0 = 0; + $j$0 = 0; + L1 : while (1) { + $0 = $filename + $i$0 | 0; + switch (HEAP8[$0 >> 0] | 0) { + case 0: + { + $$lcssa = $0; + $i$0$lcssa = $i$0; + $j$0$lcssa = $j$0; + break L1; + break; } - } else { - HEAP32[$__nd >> 2] = HEAP32[$58 >> 2]; - HEAP32[$58 >> 2] = $__nd; + case 46: + { + $j$1 = $i$0; + break; + } + default: + $j$1 = $j$0; } - HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1; - $81 = 1; - $__ndptr$1 = $__nd; + $i$0 = $i$0 + 1 | 0; + $j$0 = $j$1; } - HEAP32[$agg$result >> 2] = $__ndptr$1; - HEAP8[$agg$result + 4 >> 0] = $81; + $4 = _strlen($ext) | 0; + if (!$j$0$lcssa) if (($i$0$lcssa + 2 + $4 | 0) > ($n | 0)) $$0 = -1; else { + HEAP8[$$lcssa >> 0] = 46; + $j$2 = $i$0$lcssa; + label = 9; + } else if (($j$0$lcssa + 2 + $4 | 0) > ($n | 0)) $$0 = -1; else { + $j$2 = $j$0$lcssa; + label = 9; + } + if ((label | 0) == 9) { + HEAP8[$filename + ($j$2 + 1) >> 0] = 0; + _strcat($filename, $ext) | 0; + $$0 = 0; + } + return $$0 | 0; +} + +function __ZN6vision14FREAKExtractor7extractERNS_18BinaryFeatureStoreEPKNS_25GaussianScaleSpacePyramidERKNSt3__16vectorINS_12FeaturePointENS6_9allocatorIS8_EEEE($this, $store, $pyramid, $points) { + $this = $this | 0; + $store = $store | 0; + $pyramid = $pyramid | 0; + $points = $points | 0; + HEAP32[$store >> 2] = 96; + __ZN6vision18BinaryFeatureStore6resizeEj($store, ((HEAP32[$points + 4 >> 2] | 0) - (HEAP32[$points >> 2] | 0) | 0) / 20 | 0); + __ZN6vision14ExtractFREAK84ERNS_18BinaryFeatureStoreEPKNS_25GaussianScaleSpacePyramidERKNSt3__16vectorINS_12FeaturePointENS5_9allocatorIS7_EEEEPKfSE_SE_SE_SE_SE_ffffffff($store, $pyramid, $points, $this, $this + 48 | 0, $this + 96 | 0, $this + 144 | 0, $this + 192 | 0, $this + 240 | 0, +HEAPF32[$this + 288 >> 2], +HEAPF32[$this + 292 >> 2], +HEAPF32[$this + 296 >> 2], +HEAPF32[$this + 300 >> 2], +HEAPF32[$this + 304 >> 2], +HEAPF32[$this + 308 >> 2], +HEAPF32[$this + 312 >> 2], +HEAPF32[$this + 316 >> 2]); + return; +} + +function _setPattRatio($id, $ratio) { + $id = $id | 0; + $ratio = +$ratio; + var $0 = 0, $3 = 0, $6 = 0.0, $8 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = sp + 8 | 0; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if (!($ratio <= 0.0 | $ratio >= 1.0)) { + $6 = $ratio; + $8 = HEAP32[$3 + 212 >> 2] | 0; + if ($8) if (!(_arSetPattRatio($8, $6) | 0)) { + HEAPF64[$vararg_buffer >> 3] = $6; + _arLog(1, 41367, $vararg_buffer); + } + } + } + STACKTOP = sp; return; } -function _arGetLine($x_coord, $y_coord, $coord_num, $vertex, $paramLTf, $line, $v) { - $x_coord = $x_coord | 0; - $y_coord = $y_coord | 0; - $coord_num = $coord_num | 0; - $vertex = $vertex | 0; - $paramLTf = $paramLTf | 0; - $line = $line | 0; - $v = $v | 0; - var $$0 = 0, $0 = 0, $1 = 0, $12 = 0.0, $15 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $34 = 0, $35 = 0, $45 = 0, $47 = 0.0, $5 = 0, $50 = 0.0, $52 = 0, $63 = 0, $64 = 0, $67 = 0.0, $69 = 0, $7 = 0, $72 = 0.0, $74 = 0.0, $77 = 0, $80 = 0, $97 = 0, $i$011 = 0, $i$19 = 0, $j$010 = 0, $m0 = 0, $m1 = 0, label = 0, sp = 0, $i$011$looptemp = 0; +function _setDebugMode($id, $enable) { + $id = $id | 0; + $enable = $enable | 0; + var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $m0 = sp + 4 | 0; - $m1 = sp; - $0 = _arVecAlloc(2) | 0; - $1 = _arVecAlloc(2) | 0; - $2 = _arMatrixAlloc(2, 2) | 0; - $i$011 = 0; - L1 : while (1) { - $i$011$looptemp = $i$011; - $i$011 = $i$011 + 1 | 0; - $5 = HEAP32[$vertex + ($i$011 << 2) >> 2] | 0; - $7 = HEAP32[$vertex + ($i$011$looptemp << 2) >> 2] | 0; - $12 = +($5 + 1 - $7 | 0) * .05 + .5; - $15 = ~~(+($7 | 0) + $12); - $19 = ~~(+($5 | 0) - $12) - $15 | 0; - $20 = $19 + 1 | 0; - $21 = _arMatrixAlloc($20, 2) | 0; - if (($19 | 0) > -1) { - $j$010 = 0; - do { - $23 = $j$010 + $15 | 0; - if ((_arParamObserv2IdealLTf($paramLTf, +(HEAP32[$x_coord + ($23 << 2) >> 2] | 0), +(HEAP32[$y_coord + ($23 << 2) >> 2] | 0), $m0, $m1) | 0) < 0) { - $97 = $21; - label = 10; - break L1; - } - $34 = $j$010 << 1; - $35 = HEAP32[$21 >> 2] | 0; - HEAPF64[$35 + ($34 << 3) >> 3] = +HEAPF32[$m0 >> 2]; - HEAPF64[$35 + (($34 | 1) << 3) >> 3] = +HEAPF32[$m1 >> 2]; - $j$010 = $j$010 + 1 | 0; - } while (($j$010 | 0) < ($20 | 0)); - } - if ((_arMatrixPCA($21, $2, $0, $1) | 0) < 0) { - $97 = $21; - label = 10; - break; - } - $45 = HEAP32[$2 >> 2] | 0; - $47 = +HEAPF64[$45 + 8 >> 3]; - HEAPF64[$line + ($i$011$looptemp * 24 | 0) >> 3] = $47; - $50 = -+HEAPF64[$45 >> 3]; - HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 8 >> 3] = $50; - $52 = HEAP32[$1 >> 2] | 0; - HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 16 >> 3] = -($47 * +HEAPF64[$52 >> 3] + +HEAPF64[$52 + 8 >> 3] * $50); - _arMatrixFree($21) | 0; - if (($i$011 | 0) >= 4) { - label = 7; - break; - } + $vararg_buffer = sp; + $0 = sp + 4 | 0; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = 0; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $6 = ($enable | 0) != 0; + _arSetDebugMode(HEAP32[$4 >> 2] | 0, $6 & 1) | 0; + HEAP32[$vararg_buffer >> 2] = $6 ? 41470 : 41474; + _arLog(1, 41479, $vararg_buffer); + $$0 = $enable; } - L9 : do if ((label | 0) == 7) { - _arMatrixFree($2) | 0; - _arVecFree($1) | 0; - _arVecFree($0) | 0; - $i$19 = 0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZNKSt3__17collateIwE10do_compareEPKwS3_S3_S3_($this, $__lo1, $__hi1, $__lo2, $__hi2) { + $this = $this | 0; + $__lo1 = $__lo1 | 0; + $__hi1 = $__hi1 | 0; + $__lo2 = $__lo2 | 0; + $__hi2 = $__hi2 | 0; + var $$0 = 0, $$018 = 0, $$02$lcssa = 0, $$027 = 0, $2 = 0, $3 = 0, $6 = 0, label = 0; + L1 : do if (($__lo2 | 0) == ($__hi2 | 0)) { + $$02$lcssa = $__lo1; + label = 6; + } else { + $$018 = $__lo2; + $$027 = $__lo1; while (1) { - $63 = ($i$19 + 3 | 0) % 4 | 0; - $64 = $line + ($63 * 24 | 0) | 0; - $67 = +HEAPF64[$line + ($i$19 * 24 | 0) + 8 >> 3]; - $69 = $line + ($i$19 * 24 | 0) | 0; - $72 = +HEAPF64[$line + ($63 * 24 | 0) + 8 >> 3]; - $74 = +HEAPF64[$64 >> 3] * $67 - +HEAPF64[$69 >> 3] * $72; - if (+Math_abs(+$74) < .0001) { + if (($$027 | 0) == ($__hi1 | 0)) { $$0 = -1; - break L9; + break L1; } - $77 = $line + ($i$19 * 24 | 0) + 16 | 0; - $80 = $line + ($63 * 24 | 0) + 16 | 0; - HEAPF64[$v + ($i$19 << 4) >> 3] = ($72 * +HEAPF64[$77 >> 3] - $67 * +HEAPF64[$80 >> 3]) / $74; - HEAPF64[$v + ($i$19 << 4) + 8 >> 3] = (+HEAPF64[$69 >> 3] * +HEAPF64[$80 >> 3] - +HEAPF64[$64 >> 3] * +HEAPF64[$77 >> 3]) / $74; - $i$19 = $i$19 + 1 | 0; - if (($i$19 | 0) >= 4) { - $$0 = 0; - break; + $2 = HEAP32[$$027 >> 2] | 0; + $3 = HEAP32[$$018 >> 2] | 0; + if (($2 | 0) < ($3 | 0)) { + $$0 = -1; + break L1; + } + if (($3 | 0) < ($2 | 0)) { + $$0 = 1; + break L1; } + $6 = $$027 + 4 | 0; + $$018 = $$018 + 4 | 0; + if (($$018 | 0) == ($__hi2 | 0)) { + $$02$lcssa = $6; + label = 6; + break; + } else $$027 = $6; } - } else if ((label | 0) == 10) { - _arMatrixFree($97) | 0; - _arMatrixFree($2) | 0; - _arVecFree($1) | 0; - _arVecFree($0) | 0; - $$0 = -1; } while (0); + if ((label | 0) == 6) $$0 = ($$02$lcssa | 0) != ($__hi1 | 0) & 1; + return $$0 | 0; +} + +function __ZNKSt3__110__time_put8__do_putEPwRS1_PK2tmcc($this, $__wb, $__we, $__tm, $__fmt, $__mod) { + $this = $this | 0; + $__wb = $__wb | 0; + $__we = $__we | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $__mod = $__mod | 0; + var $1 = 0, $11 = 0, $12 = 0, $9 = 0, $__nar = 0, $__nb = 0, $__ne = 0, $mb = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 128 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__nar = sp + 16 | 0; + $__ne = sp + 12 | 0; + $mb = sp; + $__nb = sp + 8 | 0; + HEAP32[$__ne >> 2] = $__nar + 100; + __ZNKSt3__110__time_put8__do_putEPcRS1_PK2tmcc($this, $__nar, $__ne, $__tm, $__fmt, $__mod); + $1 = $mb; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$__nb >> 2] = $__nar; + $9 = (HEAP32[$__we >> 2] | 0) - $__wb >> 2; + $11 = _uselocale(HEAP32[$this >> 2] | 0) | 0; + $12 = _mbsrtowcs($__wb, $__nb, $9, $mb) | 0; + if ($11) _uselocale($11) | 0; + HEAP32[$__we >> 2] = $__wb + ($12 << 2); + STACKTOP = sp; + return; +} + +function ___remdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0; + __stackBase__ = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + $rem = __stackBase__ | 0; + $1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; + $1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; + $2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; + $2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; + $4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0; + $4$1 = tempRet0; + ___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, $rem) | 0; + $10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0, HEAP32[$rem + 4 >> 2] ^ $1$1, $1$0, $1$1) | 0; + $10$1 = tempRet0; + STACKTOP = __stackBase__; + return (tempRet0 = $10$1, $10$0) | 0; +} + +function _fopen($filename, $mode) { + $filename = $filename | 0; + $mode = $mode | 0; + var $$0 = 0, $3 = 0, $5 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer3 = sp + 16 | 0; + $vararg_buffer = sp; + if (!(_memchr(52062, HEAP8[$mode >> 0] | 0, 4) | 0)) { + $3 = ___errno_location() | 0; + HEAP32[$3 >> 2] = 22; + $$0 = 0; + } else { + $5 = ___fmodeflags($mode) | 0 | 32768; + HEAP32[$vararg_buffer >> 2] = $filename; + HEAP32[$vararg_buffer + 4 >> 2] = $5; + HEAP32[$vararg_buffer + 8 >> 2] = 438; + $7 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0; + if (($7 | 0) < 0) $$0 = 0; else { + $9 = ___fdopen($7, $mode) | 0; + if (!$9) { + HEAP32[$vararg_buffer3 >> 2] = $7; + ___syscall6(6, $vararg_buffer3 | 0) | 0; + $$0 = 0; + } else $$0 = $9; + } + } STACKTOP = sp; return $$0 | 0; } -function ___stpncpy($d, $s, $n) { - $d = $d | 0; - $s = $s | 0; - $n = $n | 0; - var $$0$lcssa = 0, $$0$lcssa60 = 0, $$031 = 0, $$04$lcssa = 0, $$04$lcssa61 = 0, $$0430 = 0, $$06$lcssa = 0, $$06$lcssa62 = 0, $$0629 = 0, $$1$lcssa = 0, $$117 = 0, $$15$ph = 0, $$1511 = 0, $$17$ph = 0, $$1710 = 0, $$2$ph = 0, $$212 = 0, $$28 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $16 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $35 = 0, $7 = 0, $8 = 0, $wd$0$lcssa = 0, $wd$018 = 0, $ws$0$lcssa = 0, $ws$019 = 0, label = 0; - $0 = $s; - do if (!(($0 ^ $d) & 3)) { - $7 = ($n | 0) != 0; - L3 : do if ($7 & ($0 & 3 | 0) != 0) { - $$031 = $n; - $$0430 = $s; - $$0629 = $d; - while (1) { - $8 = HEAP8[$$0430 >> 0] | 0; - HEAP8[$$0629 >> 0] = $8; - if (!($8 << 24 >> 24)) { - $$0$lcssa60 = $$031; - $$04$lcssa61 = $$0430; - $$06$lcssa62 = $$0629; - break L3; - } - $10 = $$031 + -1 | 0; - $11 = $$0430 + 1 | 0; - $12 = $$0629 + 1 | 0; - $16 = ($10 | 0) != 0; - if ($16 & ($11 & 3 | 0) != 0) { - $$031 = $10; - $$0430 = $11; - $$0629 = $12; - } else { - $$0$lcssa = $10; - $$04$lcssa = $11; - $$06$lcssa = $12; - $$lcssa = $16; - label = 5; - break; - } +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, 14248, 14280) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjP2tm($this, $__b, $__e, $__iob, $__err, $__tm) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__tm = $__tm | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKcSC_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__tm, 56701, 56709) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $9 = (HEAP32[$3 >> 2] | 0) + ((($6 | 0) / -36 | 0) * 36 | 0) | 0; + HEAP32[$3 >> 2] = $9; + _memcpy($9 | 0, $0 | 0, $6 | 0) | 0; + $10 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $10; + $12 = $__v + 8 | 0; + $13 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$12 >> 2] = $13; + $15 = $this + 8 | 0; + $16 = $__v + 12 | 0; + $17 = HEAP32[$15 >> 2] | 0; + HEAP32[$15 >> 2] = HEAP32[$16 >> 2]; + HEAP32[$16 >> 2] = $17; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _fputc($c, $f) { + $c = $c | 0; + $f = $f | 0; + var $$0 = 0, $10 = 0, $22 = 0, $23 = 0, $31 = 0, $9 = 0, label = 0; + if ((HEAP32[$f + 76 >> 2] | 0) < 0) label = 3; else if (!(___lockfile($f) | 0)) label = 3; else { + if ((HEAP8[$f + 75 >> 0] | 0) == ($c | 0)) label = 10; else { + $22 = $f + 20 | 0; + $23 = HEAP32[$22 >> 2] | 0; + if ($23 >>> 0 < (HEAP32[$f + 16 >> 2] | 0) >>> 0) { + HEAP32[$22 >> 2] = $23 + 1; + HEAP8[$23 >> 0] = $c; + $31 = $c & 255; + } else label = 10; + } + if ((label | 0) == 10) $31 = ___overflow($f, $c) | 0; + ___unlockfile($f); + $$0 = $31; + } + do if ((label | 0) == 3) { + if ((HEAP8[$f + 75 >> 0] | 0) != ($c | 0)) { + $9 = $f + 20 | 0; + $10 = HEAP32[$9 >> 2] | 0; + if ($10 >>> 0 < (HEAP32[$f + 16 >> 2] | 0) >>> 0) { + HEAP32[$9 >> 2] = $10 + 1; + HEAP8[$10 >> 0] = $c; + $$0 = $c & 255; + break; } - } else { - $$0$lcssa = $n; - $$04$lcssa = $s; - $$06$lcssa = $d; - $$lcssa = $7; - label = 5; - } while (0); - if ((label | 0) == 5) if ($$lcssa) { - $$0$lcssa60 = $$0$lcssa; - $$04$lcssa61 = $$04$lcssa; - $$06$lcssa62 = $$06$lcssa; - } else { - $$28 = $$06$lcssa; - $$3 = 0; - break; - } - if (!(HEAP8[$$04$lcssa61 >> 0] | 0)) { - $$28 = $$06$lcssa62; - $$3 = $$0$lcssa60; - } else { - L11 : do if ($$0$lcssa60 >>> 0 > 3) { - $$117 = $$0$lcssa60; - $wd$018 = $$06$lcssa62; - $ws$019 = $$04$lcssa61; - while (1) { - $20 = HEAP32[$ws$019 >> 2] | 0; - if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) { - $$1$lcssa = $$117; - $wd$0$lcssa = $wd$018; - $ws$0$lcssa = $ws$019; - break L11; - } - HEAP32[$wd$018 >> 2] = $20; - $26 = $$117 + -4 | 0; - $27 = $ws$019 + 4 | 0; - $28 = $wd$018 + 4 | 0; - if ($26 >>> 0 > 3) { - $$117 = $26; - $wd$018 = $28; - $ws$019 = $27; - } else { - $$1$lcssa = $26; - $wd$0$lcssa = $28; - $ws$0$lcssa = $27; - break; - } - } - } else { - $$1$lcssa = $$0$lcssa60; - $wd$0$lcssa = $$06$lcssa62; - $ws$0$lcssa = $$04$lcssa61; - } while (0); - $$15$ph = $ws$0$lcssa; - $$17$ph = $wd$0$lcssa; - $$2$ph = $$1$lcssa; - label = 11; } - } else { - $$15$ph = $s; - $$17$ph = $d; - $$2$ph = $n; - label = 11; + $$0 = ___overflow($f, $c) | 0; } while (0); - L16 : do if ((label | 0) == 11) if (!$$2$ph) { - $$28 = $$17$ph; - $$3 = 0; + return $$0 | 0; +} + +function _read_restart_marker($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $24 = 0, $5 = 0, $8 = 0, label = 0; + $0 = $cinfo + 416 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) if (!(_next_marker($cinfo) | 0)) $$0 = 0; else { + $11 = HEAP32[$0 >> 2] | 0; + label = 4; } else { - $$1511 = $$15$ph; - $$1710 = $$17$ph; - $$212 = $$2$ph; - while (1) { - $31 = HEAP8[$$1511 >> 0] | 0; - HEAP8[$$1710 >> 0] = $31; - if (!($31 << 24 >> 24)) { - $$28 = $$1710; - $$3 = $$212; - break L16; - } - $$212 = $$212 + -1 | 0; - $35 = $$1710 + 1 | 0; - if (!$$212) { - $$28 = $35; - $$3 = 0; - break; - } else { - $$1511 = $$1511 + 1 | 0; - $$1710 = $35; - } + $11 = $1; + label = 4; + } + do if ((label | 0) == 4) { + $5 = $cinfo + 440 | 0; + $8 = HEAP32[(HEAP32[$5 >> 2] | 0) + 20 >> 2] | 0; + if (($11 | 0) == ($8 + 208 | 0)) { + $12 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$12 + 20 >> 2] = 98; + HEAP32[$12 + 24 >> 2] = $8; + FUNCTION_TABLE_vii[HEAP32[$12 + 4 >> 2] & 63]($cinfo, 3); + HEAP32[$0 >> 2] = 0; + } else if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[$cinfo + 24 >> 2] | 0) + 20 >> 2] & 63]($cinfo, $8) | 0)) { + $$0 = 0; + break; } + $24 = (HEAP32[$5 >> 2] | 0) + 20 | 0; + HEAP32[$24 >> 2] = (HEAP32[$24 >> 2] | 0) + 1 & 7; + $$0 = 1; } while (0); - _memset($$28 | 0, 0, $$3 | 0) | 0; - return $$28 | 0; + return $$0 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRf($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRe($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRd($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRf($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIfEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRe($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIeEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRd($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE23__do_get_floating_pointIdEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__y, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__y = $__y | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $__t$0 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 4) | 0; + if (!(HEAP32[$__err >> 2] & 4)) { + if (($2 | 0) < 69) $__t$0 = $2 + 2e3 | 0; else $__t$0 = ($2 + -69 | 0) >>> 0 < 31 ? $2 + 1900 | 0 : $2; + HEAP32[$__y >> 2] = $__t$0 + -1900; + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_yearERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__y, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__y = $__y | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $__t$0 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 4) | 0; + if (!(HEAP32[$__err >> 2] & 4)) { + if (($2 | 0) < 69) $__t$0 = $2 + 2e3 | 0; else $__t$0 = ($2 + -69 | 0) >>> 0 < 31 ? $2 + 1900 | 0 : $2; + HEAP32[$__y >> 2] = $__t$0 + -1900; + } + STACKTOP = sp; + return; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIjEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNSt3__119__double_or_nothingIwEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__b, $__n, $__e) { + $__b = $__b | 0; + $__n = $__n | 0; + $__e = $__e | 0; + var $$ = 0, $$pr = 0, $0 = 0, $13 = 0, $15 = 0, $2 = 0, $23 = 0, $4 = 0, $6 = 0, $7 = 0; + $0 = $__b + 4 | 0; + $2 = (HEAP32[$0 >> 2] | 0) != 147; + $4 = HEAP32[$__b >> 2] | 0; + $6 = $4; + $7 = (HEAP32[$__e >> 2] | 0) - $6 | 0; + $$ = $7 >>> 0 < 2147483647 ? $7 << 1 : -1; + $13 = (HEAP32[$__n >> 2] | 0) - $6 >> 2; + $15 = _realloc($2 ? $4 : 0, $$) | 0; + if (!$15) __ZSt17__throw_bad_allocv(); + if ($2) { + HEAP32[$__b >> 2] = $15; + $23 = $15; + } else { + $$pr = HEAP32[$__b >> 2] | 0; + HEAP32[$__b >> 2] = $15; + if (!$$pr) $23 = $15; else { + FUNCTION_TABLE_vi[HEAP32[$0 >> 2] & 255]($$pr); + $23 = HEAP32[$__b >> 2] | 0; + } + } + HEAP32[$0 >> 2] = 158; + HEAP32[$__n >> 2] = $23 + ($13 << 2); + HEAP32[$__e >> 2] = (HEAP32[$__b >> 2] | 0) + ($$ >>> 2 << 2); + return; +} + +function __ZNSt3__119__double_or_nothingIjEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__b, $__n, $__e) { + $__b = $__b | 0; + $__n = $__n | 0; + $__e = $__e | 0; + var $$ = 0, $$pr = 0, $0 = 0, $13 = 0, $15 = 0, $2 = 0, $23 = 0, $4 = 0, $6 = 0, $7 = 0; + $0 = $__b + 4 | 0; + $2 = (HEAP32[$0 >> 2] | 0) != 147; + $4 = HEAP32[$__b >> 2] | 0; + $6 = $4; + $7 = (HEAP32[$__e >> 2] | 0) - $6 | 0; + $$ = $7 >>> 0 < 2147483647 ? $7 << 1 : -1; + $13 = (HEAP32[$__n >> 2] | 0) - $6 >> 2; + $15 = _realloc($2 ? $4 : 0, $$) | 0; + if (!$15) __ZSt17__throw_bad_allocv(); + if ($2) { + HEAP32[$__b >> 2] = $15; + $23 = $15; + } else { + $$pr = HEAP32[$__b >> 2] | 0; + HEAP32[$__b >> 2] = $15; + if (!$$pr) $23 = $15; else { + FUNCTION_TABLE_vi[HEAP32[$0 >> 2] & 255]($$pr); + $23 = HEAP32[$__b >> 2] | 0; + } + } + HEAP32[$0 >> 2] = 158; + HEAP32[$__n >> 2] = $23 + ($13 << 2); + HEAP32[$__e >> 2] = (HEAP32[$__b >> 2] | 0) + ($$ >>> 2 << 2); + return; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRy($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRt($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRm($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRy($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedIyEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; } -function ___stdio_write($f, $buf, $len) { - $f = $f | 0; - $buf = $buf | 0; - $len = $len | 0; - var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $3 = 0, $35 = 0, $37 = 0, $39 = 0, $50 = 0, $6 = 0, $cnt$0 = 0, $cnt$1 = 0, $iov$0 = 0, $iov$0$lcssa11 = 0, $iov$1 = 0, $iovcnt$0 = 0, $iovcnt$0$lcssa12 = 0, $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRm($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedImEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function _setThreshold($id, $threshold) { + $id = $id | 0; + $threshold = $threshold | 0; + var $0 = 0, $3 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer3 = sp + 16 | 0; $vararg_buffer = sp; - $iovs = sp + 32 | 0; - $0 = $f + 28 | 0; - $1 = HEAP32[$0 >> 2] | 0; - HEAP32[$iovs >> 2] = $1; - $3 = $f + 20 | 0; - $6 = (HEAP32[$3 >> 2] | 0) - $1 | 0; - HEAP32[$iovs + 4 >> 2] = $6; - HEAP32[$iovs + 8 >> 2] = $buf; - HEAP32[$iovs + 12 >> 2] = $len; - $10 = $f + 60 | 0; - $11 = $f + 44 | 0; - $iov$0 = $iovs; - $iovcnt$0 = 2; - $rem$0 = $6 + $len | 0; - while (1) { - if (!(HEAP32[597] | 0)) { - HEAP32[$vararg_buffer3 >> 2] = HEAP32[$10 >> 2]; - HEAP32[$vararg_buffer3 + 4 >> 2] = $iov$0; - HEAP32[$vararg_buffer3 + 8 >> 2] = $iovcnt$0; - $cnt$0 = ___syscall_ret(___syscall146(146, $vararg_buffer3 | 0) | 0) | 0; - } else { - _pthread_cleanup_push(14, $f | 0); - HEAP32[$vararg_buffer >> 2] = HEAP32[$10 >> 2]; - HEAP32[$vararg_buffer + 4 >> 2] = $iov$0; - HEAP32[$vararg_buffer + 8 >> 2] = $iovcnt$0; - $16 = ___syscall_ret(___syscall146(146, $vararg_buffer | 0) | 0) | 0; - _pthread_cleanup_pop(0); - $cnt$0 = $16; - } - if (($rem$0 | 0) == ($cnt$0 | 0)) { - label = 6; - break; - } - if (($cnt$0 | 0) < 0) { - $iov$0$lcssa11 = $iov$0; - $iovcnt$0$lcssa12 = $iovcnt$0; - label = 8; - break; - } - $35 = $rem$0 - $cnt$0 | 0; - $37 = HEAP32[$iov$0 + 4 >> 2] | 0; - if ($cnt$0 >>> 0 > $37 >>> 0) { - $39 = HEAP32[$11 >> 2] | 0; - HEAP32[$0 >> 2] = $39; - HEAP32[$3 >> 2] = $39; - $50 = HEAP32[$iov$0 + 12 >> 2] | 0; - $cnt$1 = $cnt$0 - $37 | 0; - $iov$1 = $iov$0 + 8 | 0; - $iovcnt$1 = $iovcnt$0 + -1 | 0; - } else if (($iovcnt$0 | 0) == 2) { - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + $cnt$0; - $50 = $37; - $cnt$1 = $cnt$0; - $iov$1 = $iov$0; - $iovcnt$1 = 2; - } else { - $50 = $37; - $cnt$1 = $cnt$0; - $iov$1 = $iov$0; - $iovcnt$1 = $iovcnt$0; + $0 = sp + 4 | 0; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + if ($threshold >>> 0 <= 255) if (!(_arSetLabelingThresh(HEAP32[$3 + 212 >> 2] | 0, $threshold) | 0)) { + HEAP32[$vararg_buffer >> 2] = $threshold; + _arLog(1, 41423, $vararg_buffer); } - HEAP32[$iov$1 >> 2] = (HEAP32[$iov$1 >> 2] | 0) + $cnt$1; - HEAP32[$iov$1 + 4 >> 2] = $50 - $cnt$1; - $iov$0 = $iov$1; - $iovcnt$0 = $iovcnt$1; - $rem$0 = $35; - } - if ((label | 0) == 6) { - $21 = HEAP32[$11 >> 2] | 0; - HEAP32[$f + 16 >> 2] = $21 + (HEAP32[$f + 48 >> 2] | 0); - $26 = $21; - HEAP32[$0 >> 2] = $26; - HEAP32[$3 >> 2] = $26; - $$0 = $len; - } else if ((label | 0) == 8) { - HEAP32[$f + 16 >> 2] = 0; - HEAP32[$0 >> 2] = 0; - HEAP32[$3 >> 2] = 0; - HEAP32[$f >> 2] = HEAP32[$f >> 2] | 32; - if (($iovcnt$0$lcssa12 | 0) == 2) $$0 = 0; else $$0 = $len - (HEAP32[$iov$0$lcssa11 + 4 >> 2] | 0) | 0; } STACKTOP = sp; - return $$0 | 0; + return; } -function _pop_arg($arg, $type, $ap) { - $arg = $arg | 0; - $type = $type | 0; - $ap = $ap | 0; - var $105 = 0, $106 = 0.0, $112 = 0, $113 = 0.0, $13 = 0, $14 = 0, $17 = 0, $26 = 0, $27 = 0, $28 = 0, $37 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $53 = 0, $54 = 0, $56 = 0, $59 = 0, $6 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $79 = 0, $80 = 0, $82 = 0, $85 = 0, $94 = 0, $95 = 0, $96 = 0; - L1 : do if ($type >>> 0 <= 20) do switch ($type | 0) { - case 9: - { - $6 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $7 = HEAP32[$6 >> 2] | 0; - HEAP32[$ap >> 2] = $6 + 4; - HEAP32[$arg >> 2] = $7; - break L1; - break; - } - case 10: - { - $13 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $14 = HEAP32[$13 >> 2] | 0; - HEAP32[$ap >> 2] = $13 + 4; - $17 = $arg; - HEAP32[$17 >> 2] = $14; - HEAP32[$17 + 4 >> 2] = (($14 | 0) < 0) << 31 >> 31; - break L1; - break; - } - case 11: - { - $26 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $27 = HEAP32[$26 >> 2] | 0; - HEAP32[$ap >> 2] = $26 + 4; - $28 = $arg; - HEAP32[$28 >> 2] = $27; - HEAP32[$28 + 4 >> 2] = 0; - break L1; - break; - } - case 12: - { - $37 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); - $38 = $37; - $40 = HEAP32[$38 >> 2] | 0; - $43 = HEAP32[$38 + 4 >> 2] | 0; - HEAP32[$ap >> 2] = $37 + 8; - $44 = $arg; - HEAP32[$44 >> 2] = $40; - HEAP32[$44 + 4 >> 2] = $43; - break L1; - break; - } - case 13: - { - $53 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $54 = HEAP32[$53 >> 2] | 0; - HEAP32[$ap >> 2] = $53 + 4; - $56 = ($54 & 65535) << 16 >> 16; - $59 = $arg; - HEAP32[$59 >> 2] = $56; - HEAP32[$59 + 4 >> 2] = (($56 | 0) < 0) << 31 >> 31; - break L1; - break; - } - case 14: - { - $68 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $69 = HEAP32[$68 >> 2] | 0; - HEAP32[$ap >> 2] = $68 + 4; - $70 = $arg; - HEAP32[$70 >> 2] = $69 & 65535; - HEAP32[$70 + 4 >> 2] = 0; - break L1; - break; - } - case 15: - { - $79 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $80 = HEAP32[$79 >> 2] | 0; - HEAP32[$ap >> 2] = $79 + 4; - $82 = ($80 & 255) << 24 >> 24; - $85 = $arg; - HEAP32[$85 >> 2] = $82; - HEAP32[$85 + 4 >> 2] = (($82 | 0) < 0) << 31 >> 31; - break L1; - break; - } - case 16: - { - $94 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1); - $95 = HEAP32[$94 >> 2] | 0; - HEAP32[$ap >> 2] = $94 + 4; - $96 = $arg; - HEAP32[$96 >> 2] = $95 & 255; - HEAP32[$96 + 4 >> 2] = 0; - break L1; - break; - } - case 17: - { - $105 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); - $106 = +HEAPF64[$105 >> 3]; - HEAP32[$ap >> 2] = $105 + 8; - HEAPF64[$arg >> 3] = $106; - break L1; - break; - } - case 18: - { - $112 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1); - $113 = +HEAPF64[$112 >> 3]; - HEAP32[$ap >> 2] = $112 + 8; - HEAPF64[$arg >> 3] = $113; - break L1; - break; +function _cycle($width, $ar, $n) { + $width = $width | 0; + $ar = $ar | 0; + $n = $n | 0; + var $$02 = 0, $1 = 0, $4 = 0, $6 = 0, $7 = 0, $i$01 = 0, $tmp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 256 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $tmp = sp; + L1 : do if (($n | 0) >= 2) { + $1 = $ar + ($n << 2) | 0; + HEAP32[$1 >> 2] = $tmp; + if ($width) { + $$02 = $width; + $6 = $tmp; + while (1) { + $4 = $$02 >>> 0 > 256 ? 256 : $$02; + _memcpy($6 | 0, HEAP32[$ar >> 2] | 0, $4 | 0) | 0; + $i$01 = 0; + do { + $7 = $ar + ($i$01 << 2) | 0; + $i$01 = $i$01 + 1 | 0; + _memcpy(HEAP32[$7 >> 2] | 0, HEAP32[$ar + ($i$01 << 2) >> 2] | 0, $4 | 0) | 0; + HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + $4; + } while (($i$01 | 0) != ($n | 0)); + if (($$02 | 0) == ($4 | 0)) break L1; + $$02 = $$02 - $4 | 0; + $6 = HEAP32[$1 >> 2] | 0; + } } - default: - break L1; - } while (0); while (0); + } while (0); + STACKTOP = sp; return; } +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRt($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE17__do_get_unsignedItEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} -function _arPattCreateHandle2($pattSize, $patternCountMax) { - $pattSize = $pattSize | 0; - $patternCountMax = $patternCountMax | 0; - var $$0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $32 = 0, $35 = 0, $7 = 0, $i$04 = 0, $j$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0; +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRx($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer13 = sp + 56 | 0; - $vararg_buffer11 = sp + 48 | 0; - $vararg_buffer9 = sp + 40 | 0; - $vararg_buffer7 = sp + 32 | 0; - $vararg_buffer5 = sp + 24 | 0; - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer1 = sp + 8 | 0; - $vararg_buffer = sp; - L1 : do if (($pattSize + -16 | 0) >>> 0 > 48 | ($patternCountMax | 0) < 1) $$0 = 0; else { - $2 = _malloc(32) | 0; - if (!$2) { - _arLog(3, 5471, $vararg_buffer); - _exit(1); - } - HEAP32[$2 >> 2] = 0; - HEAP32[$2 + 4 >> 2] = $patternCountMax; - HEAP32[$2 + 28 >> 2] = $pattSize; - $7 = _malloc($patternCountMax << 2) | 0; - HEAP32[$2 + 8 >> 2] = $7; - if (!$7) { - _arLog(3, 5471, $vararg_buffer1); - _exit(1); - } - $10 = $patternCountMax << 4; - $11 = _malloc($10) | 0; - HEAP32[$2 + 12 >> 2] = $11; - if (!$11) { - _arLog(3, 5471, $vararg_buffer3); - _exit(1); - } - $14 = _malloc($10) | 0; - $15 = $2 + 20 | 0; - HEAP32[$15 >> 2] = $14; - if (!$14) { - _arLog(3, 5471, $vararg_buffer5); - _exit(1); - } - $17 = $patternCountMax << 5; - $18 = _malloc($17) | 0; - HEAP32[$2 + 16 >> 2] = $18; - if (!$18) { - _arLog(3, 5471, $vararg_buffer7); - _exit(1); - } - $21 = _malloc($17) | 0; - HEAP32[$2 + 24 >> 2] = $21; - if (!$21) { - _arLog(3, 5471, $vararg_buffer9); - _exit(1); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRl($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRx($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIxEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRl($this, $__b, $__e, $__iob, $__err, $__v) { + $this = $this | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__iob = $__iob | 0; + $__err = $__err | 0; + $__v = $__v | 0; + var $$byval_copy = 0, $$byval_copy1 = 0, $0 = 0, $1 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy1 = sp + 12 | 0; + $$byval_copy = sp + 8 | 0; + $0 = sp + 4 | 0; + $1 = sp; + HEAP32[$0 >> 2] = HEAP32[$__b >> 2]; + HEAP32[$1 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + HEAP32[$$byval_copy1 >> 2] = HEAP32[$1 >> 2]; + $4 = __ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE15__do_get_signedIlEES4_S4_S4_RNS_8ios_baseERjRT_($this, $$byval_copy, $$byval_copy1, $__iob, $__err, $__v) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsputnEPKwi($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$02 = 0, $0 = 0, $1 = 0, $15 = 0, $3 = 0, $6 = 0, $__i$0$lcssa = 0, $__i$01 = 0; + $0 = $this + 24 | 0; + $1 = $this + 28 | 0; + L1 : do if (($__n | 0) > 0) { + $$02 = $__s; + $__i$01 = 0; + while (1) { + $3 = HEAP32[$0 >> 2] | 0; + if ($3 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + $6 = HEAP32[$$02 >> 2] | 0; + HEAP32[$0 >> 2] = $3 + 4; + HEAP32[$3 >> 2] = $6; + } else if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$this >> 2] | 0) + 52 >> 2] & 63]($this, HEAP32[$$02 >> 2] | 0) | 0) == -1) { + $__i$0$lcssa = $__i$01; + break L1; + } + $15 = $__i$01 + 1 | 0; + if (($15 | 0) < ($__n | 0)) { + $$02 = $$02 + 4 | 0; + $__i$01 = $15; + } else { + $__i$0$lcssa = $15; + break; + } } - $24 = Math_imul($pattSize, $pattSize) | 0; - $25 = $24 * 12 | 0; - $26 = $24 << 2; - if (($patternCountMax | 0) > 0) { - $i$04 = 0; - L21 : while (1) { - HEAP32[$7 + ($i$04 << 2) >> 2] = 0; - $29 = $i$04 << 2; - $j$0 = 0; - while (1) { - if (($j$0 | 0) >= 4) break; - $31 = _malloc($25) | 0; - $32 = $j$0 + $29 | 0; - HEAP32[$11 + ($32 << 2) >> 2] = $31; - if (!$31) { - label = 18; - break L21; - } - $35 = _malloc($26) | 0; - HEAP32[(HEAP32[$15 >> 2] | 0) + ($32 << 2) >> 2] = $35; - if (!$35) { - label = 20; - break L21; - } else $j$0 = $j$0 + 1 | 0; - } - $i$04 = $i$04 + 1 | 0; - if (($i$04 | 0) >= ($patternCountMax | 0)) { - $$0 = $2; - break L1; - } + } else $__i$0$lcssa = 0; while (0); + return $__i$0$lcssa | 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$02 = 0, $0 = 0, $1 = 0, $16 = 0, $3 = 0, $6 = 0, $__i$0$lcssa = 0, $__i$01 = 0; + $0 = $this + 24 | 0; + $1 = $this + 28 | 0; + L1 : do if (($__n | 0) > 0) { + $$02 = $__s; + $__i$01 = 0; + while (1) { + $3 = HEAP32[$0 >> 2] | 0; + if ($3 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) { + $6 = HEAP8[$$02 >> 0] | 0; + HEAP32[$0 >> 2] = $3 + 1; + HEAP8[$3 >> 0] = $6; + } else if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$this >> 2] | 0) + 52 >> 2] & 63]($this, HEAPU8[$$02 >> 0] | 0) | 0) == -1) { + $__i$0$lcssa = $__i$01; + break L1; } - if ((label | 0) == 18) { - _arLog(3, 5471, $vararg_buffer11); - _exit(1); - } else if ((label | 0) == 20) { - _arLog(3, 5471, $vararg_buffer13); - _exit(1); + $16 = $__i$01 + 1 | 0; + if (($16 | 0) < ($__n | 0)) { + $$02 = $$02 + 1 | 0; + $__i$01 = $16; + } else { + $__i$0$lcssa = $16; + break; } - } else $$0 = $2; + } + } else $__i$0$lcssa = 0; while (0); + return $__i$0$lcssa | 0; +} + +function ___overflow($f, $_c) { + $f = $f | 0; + $_c = $_c | 0; + var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $2 = 0, $6 = 0, $7 = 0, $9 = 0, $c = 0, label = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $c = sp; + $0 = $_c & 255; + HEAP8[$c >> 0] = $0; + $1 = $f + 16 | 0; + $2 = HEAP32[$1 >> 2] | 0; + if (!$2) if (!(___towrite($f) | 0)) { + $9 = HEAP32[$1 >> 2] | 0; + label = 4; + } else $$0 = -1; else { + $9 = $2; + label = 4; + } + do if ((label | 0) == 4) { + $6 = $f + 20 | 0; + $7 = HEAP32[$6 >> 2] | 0; + if ($7 >>> 0 < $9 >>> 0) { + $10 = $_c & 255; + if (($10 | 0) != (HEAP8[$f + 75 >> 0] | 0)) { + HEAP32[$6 >> 2] = $7 + 1; + HEAP8[$7 >> 0] = $0; + $$0 = $10; + break; + } + } + if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1; } while (0); STACKTOP = sp; return $$0 | 0; } -function _arParamChangeSize($source, $xsize, $ysize, $newparam) { - $source = $source | 0; - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $newparam = $newparam | 0; - var $$0 = 0, $23 = 0, $3 = 0.0, $8 = 0.0, $i$01 = 0, label = 0; - $3 = +($xsize | 0) / +(HEAP32[$source >> 2] | 0); - $8 = +($ysize | 0) / +(HEAP32[$source + 4 >> 2] | 0); - HEAP32[$newparam >> 2] = $xsize; - HEAP32[$newparam + 4 >> 2] = $ysize; - $i$01 = 0; - do { - HEAPF64[$newparam + 8 + ($i$01 << 3) >> 3] = $3 * +HEAPF64[$source + 8 + ($i$01 << 3) >> 3]; - HEAPF64[$newparam + 40 + ($i$01 << 3) >> 3] = $8 * +HEAPF64[$source + 40 + ($i$01 << 3) >> 3]; - HEAPF64[$newparam + 72 + ($i$01 << 3) >> 3] = +HEAPF64[$source + 72 + ($i$01 << 3) >> 3]; - $i$01 = $i$01 + 1 | 0; - } while (($i$01 | 0) != 4); - $23 = HEAP32[$source + 176 >> 2] | 0; - switch ($23 | 0) { - case 4: - { - HEAPF64[$newparam + 104 >> 3] = +HEAPF64[$source + 104 >> 3]; - HEAPF64[$newparam + 112 >> 3] = +HEAPF64[$source + 112 >> 3]; - HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; - HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3]; - HEAPF64[$newparam + 136 >> 3] = $3 * +HEAPF64[$source + 136 >> 3]; - HEAPF64[$newparam + 144 >> 3] = $8 * +HEAPF64[$source + 144 >> 3]; - HEAPF64[$newparam + 152 >> 3] = $3 * +HEAPF64[$source + 152 >> 3]; - HEAPF64[$newparam + 160 >> 3] = $8 * +HEAPF64[$source + 160 >> 3]; - HEAPF64[$newparam + 168 >> 3] = +HEAPF64[$source + 168 >> 3]; - label = 8; - break; +function _scalbn($x, $n) { + $x = +$x; + $n = $n | 0; + var $$0 = 0, $1 = 0.0, $12 = 0, $15 = 0, $16 = 0, $2 = 0, $5 = 0, $8 = 0.0, $9 = 0, $y$0 = 0.0; + if (($n | 0) > 1023) { + $1 = $x * 8988465674311579538646525.0e283; + $2 = $n + -1023 | 0; + if (($2 | 0) > 1023) { + $5 = $n + -2046 | 0; + $$0 = ($5 | 0) > 1023 ? 1023 : $5; + $y$0 = $1 * 8988465674311579538646525.0e283; + } else { + $$0 = $2; + $y$0 = $1; } - case 3: - { - HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; - HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; - HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; - HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3]; - HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($3 * $8); - HEAPF64[$newparam + 144 >> 3] = +HEAPF64[$source + 144 >> 3] / ($8 * ($3 * $3 * $8)); - label = 8; + } else if (($n | 0) < -1022) { + $8 = $x * 2.2250738585072014e-308; + $9 = $n + 1022 | 0; + if (($9 | 0) < -1022) { + $12 = $n + 2044 | 0; + $$0 = ($12 | 0) < -1022 ? -1022 : $12; + $y$0 = $8 * 2.2250738585072014e-308; + } else { + $$0 = $9; + $y$0 = $8; + } + } else { + $$0 = $n; + $y$0 = $x; + } + $15 = _bitshift64Shl($$0 + 1023 | 0, 0, 52) | 0; + $16 = tempRet0; + HEAP32[tempDoublePtr >> 2] = $15; + HEAP32[tempDoublePtr + 4 >> 2] = $16; + return +($y$0 * +HEAPF64[tempDoublePtr >> 3]); +} + +function _wcrtomb($s, $wc, $st) { + $s = $s | 0; + $wc = $wc | 0; + $st = $st | 0; + var $$0 = 0, $45 = 0; + do if (!$s) $$0 = 1; else { + if ($wc >>> 0 < 128) { + HEAP8[$s >> 0] = $wc; + $$0 = 1; break; } - case 2: - { - HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; - HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; - HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; - HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8); - HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($8 * ($3 * $3 * $8)); - label = 8; + if ($wc >>> 0 < 2048) { + HEAP8[$s >> 0] = $wc >>> 6 | 192; + HEAP8[$s + 1 >> 0] = $wc & 63 | 128; + $$0 = 2; break; } - case 1: - { - HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3]; - HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3]; - HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3]; - HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8); - label = 8; + if ($wc >>> 0 < 55296 | ($wc & -8192 | 0) == 57344) { + HEAP8[$s >> 0] = $wc >>> 12 | 224; + HEAP8[$s + 1 >> 0] = $wc >>> 6 & 63 | 128; + HEAP8[$s + 2 >> 0] = $wc & 63 | 128; + $$0 = 3; break; } - default: - $$0 = -1; + if (($wc + -65536 | 0) >>> 0 < 1048576) { + HEAP8[$s >> 0] = $wc >>> 18 | 240; + HEAP8[$s + 1 >> 0] = $wc >>> 12 & 63 | 128; + HEAP8[$s + 2 >> 0] = $wc >>> 6 & 63 | 128; + HEAP8[$s + 3 >> 0] = $wc & 63 | 128; + $$0 = 4; + break; + } else { + $45 = ___errno_location() | 0; + HEAP32[$45 >> 2] = 84; + $$0 = -1; + break; + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 2) << 2) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $9 = (HEAP32[$3 >> 2] | 0) + ((($6 | 0) / -12 | 0) * 12 | 0) | 0; + HEAP32[$3 >> 2] = $9; + _memcpy($9 | 0, $0 | 0, $6 | 0) | 0; + $10 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $10; + $12 = $__v + 8 | 0; + $13 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$12 >> 2] = $13; + $15 = $this + 8 | 0; + $16 = $__v + 12 | 0; + $17 = HEAP32[$15 >> 2] | 0; + HEAP32[$15 >> 2] = HEAP32[$16 >> 2]; + HEAP32[$16 >> 2] = $17; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 2) << 2) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__119__double_or_nothingIcEEvRNS_10unique_ptrIT_PFvPvEEERPS2_S9_($__b, $__n, $__e) { + $__b = $__b | 0; + $__n = $__n | 0; + $__e = $__e | 0; + var $$ = 0, $$pr = 0, $0 = 0, $12 = 0, $14 = 0, $2 = 0, $21 = 0, $4 = 0, $6 = 0, $7 = 0; + $0 = $__b + 4 | 0; + $2 = (HEAP32[$0 >> 2] | 0) != 147; + $4 = HEAP32[$__b >> 2] | 0; + $6 = $4; + $7 = (HEAP32[$__e >> 2] | 0) - $6 | 0; + $$ = $7 >>> 0 < 2147483647 ? $7 << 1 : -1; + $12 = (HEAP32[$__n >> 2] | 0) - $6 | 0; + $14 = _realloc($2 ? $4 : 0, $$) | 0; + if (!$14) __ZSt17__throw_bad_allocv(); + if ($2) { + HEAP32[$__b >> 2] = $14; + $21 = $14; + } else { + $$pr = HEAP32[$__b >> 2] | 0; + HEAP32[$__b >> 2] = $14; + if (!$$pr) $21 = $14; else { + FUNCTION_TABLE_vi[HEAP32[$0 >> 2] & 255]($$pr); + $21 = HEAP32[$__b >> 2] | 0; + } } - if ((label | 0) == 8) { - HEAP32[$newparam + 176 >> 2] = $23; - $$0 = 0; + HEAP32[$0 >> 2] = 158; + HEAP32[$__n >> 2] = $21 + $12; + HEAP32[$__e >> 2] = (HEAP32[$__b >> 2] | 0) + $$; + return; +} + +function __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS4_RS6_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 2) << 2) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE7reserveEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $4 = 0, $__v = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__v = sp; + $4 = HEAP32[$this >> 2] | 0; + if ((((HEAP32[$this + 8 >> 2] | 0) - $4 | 0) / 36 | 0) >>> 0 < $__n >>> 0) { + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEEC2EjjS6_($__v, $__n, ((HEAP32[$this + 4 >> 2] | 0) - $4 | 0) / 36 | 0, $this + 8 | 0); + __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEED2Ev($__v); } - return $$0 | 0; + STACKTOP = sp; + return; } -function _icpUpdateMat($matXw2Xc, $dS) { - $matXw2Xc = $matXw2Xc | 0; - $dS = $dS | 0; - var $$sink$i = 0.0, $$sink1$i = 0.0, $0 = 0.0, $11 = 0.0, $16 = 0.0, $18 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $25 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $35 = 0.0, $36 = 0.0, $47 = 0.0, $48 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $7 = 0.0, $82 = 0, $9 = 0.0, $i$08 = 0, $j$09 = 0, $j$17 = 0, $mat = 0, $mat2 = 0, sp = 0; +function _getThresholdMode($id) { + $id = $id | 0; + var $0 = 0, $4 = 0, $7 = 0, $thresholdMode = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 192 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $mat = sp + 96 | 0; - $mat2 = sp; - $0 = +HEAPF64[$dS >> 3]; - $3 = +HEAPF64[$dS + 8 >> 3]; - $7 = +HEAPF64[$dS + 16 >> 3]; - $9 = $0 * $0 + $3 * $3 + $7 * $7; - if ($9 == 0.0) { - $$sink$i = 0.0; - $$sink1$i = 0.0; - $25 = 1.0; - $29 = 0.0; + $0 = sp + 4 | 0; + $thresholdMode = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) { + STACKTOP = sp; + return -1; } else { - $11 = +Math_sqrt(+$9); - $$sink$i = $11; - $$sink1$i = $7 / $11; - $25 = $0 / $11; - $29 = $3 / $11; + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $7 = (_arGetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $thresholdMode) | 0) == 0; + STACKTOP = sp; + return ($7 ? HEAP32[$thresholdMode >> 2] | 0 : -1) | 0; } - $16 = +HEAPF64[$dS + 24 >> 3]; - $18 = +HEAPF64[$dS + 32 >> 3]; - $20 = +HEAPF64[$dS + 40 >> 3]; - $21 = +Math_cos(+$$sink$i); - $22 = 1.0 - $21; - $23 = +Math_sin(+$$sink$i); - HEAPF64[$mat >> 3] = $21 + $25 * $25 * $22; - $30 = $29 * $25 * $22; - $31 = $$sink1$i * $23; - HEAPF64[$mat + 8 >> 3] = $30 - $31; - $35 = $25 * $$sink1$i * $22; - $36 = $29 * $23; - HEAPF64[$mat + 16 >> 3] = $35 + $36; - HEAPF64[$mat + 24 >> 3] = $16; - HEAPF64[$mat + 32 >> 3] = $30 + $31; - HEAPF64[$mat + 40 >> 3] = $21 + $29 * $29 * $22; - $47 = $29 * $$sink1$i * $22; - $48 = $25 * $23; - HEAPF64[$mat + 48 >> 3] = $47 - $48; - HEAPF64[$mat + 56 >> 3] = $18; - HEAPF64[$mat + 64 >> 3] = $35 - $36; - HEAPF64[$mat + 72 >> 3] = $47 + $48; - HEAPF64[$mat + 80 >> 3] = $21 + $$sink1$i * $$sink1$i * $22; - HEAPF64[$mat + 88 >> 3] = $20; - $j$09 = 0; - do { - $64 = +HEAPF64[$matXw2Xc + ($j$09 << 5) >> 3]; - $65 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 8 >> 3]; - $66 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 16 >> 3]; - $i$08 = 0; - do { - HEAPF64[$mat2 + ($j$09 << 5) + ($i$08 << 3) >> 3] = $64 * +HEAPF64[$mat + ($i$08 << 3) >> 3] + $65 * +HEAPF64[$mat + 32 + ($i$08 << 3) >> 3] + $66 * +HEAPF64[$mat + 64 + ($i$08 << 3) >> 3]; - $i$08 = $i$08 + 1 | 0; - } while (($i$08 | 0) != 4); - $82 = $mat2 + ($j$09 << 5) + 24 | 0; - HEAPF64[$82 >> 3] = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 24 >> 3] + +HEAPF64[$82 >> 3]; - $j$09 = $j$09 + 1 | 0; - } while (($j$09 | 0) != 3); - $j$17 = 0; - do { - HEAPF64[$matXw2Xc + ($j$17 << 5) >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) >> 3]; - HEAPF64[$matXw2Xc + ($j$17 << 5) + 8 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 8 >> 3]; - HEAPF64[$matXw2Xc + ($j$17 << 5) + 16 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 16 >> 3]; - HEAPF64[$matXw2Xc + ($j$17 << 5) + 24 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 24 >> 3]; - $j$17 = $j$17 + 1 | 0; - } while (($j$17 | 0) != 3); - STACKTOP = sp; return 0; } -function _setCamera($id, $cameraID) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($this, $s) { + $this = $this | 0; + $s = $s | 0; + var $1 = 0, $10 = 0, $12 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + HEAP8[$this >> 0] = 16; + $1 = $s; + $2 = $1; + $3 = HEAPU8[$2 >> 0] | HEAPU8[$2 + 1 >> 0] << 8 | HEAPU8[$2 + 2 >> 0] << 16 | HEAPU8[$2 + 3 >> 0] << 24; + $5 = $1 + 4 | 0; + $6 = HEAPU8[$5 >> 0] | HEAPU8[$5 + 1 >> 0] << 8 | HEAPU8[$5 + 2 >> 0] << 16 | HEAPU8[$5 + 3 >> 0] << 24; + $7 = $this + 1 | 0; + $8 = $7; + HEAP8[$8 >> 0] = $3; + HEAP8[$8 + 1 >> 0] = $3 >> 8; + HEAP8[$8 + 2 >> 0] = $3 >> 16; + HEAP8[$8 + 3 >> 0] = $3 >> 24; + $10 = $7 + 4 | 0; + HEAP8[$10 >> 0] = $6; + HEAP8[$10 + 1 >> 0] = $6 >> 8; + HEAP8[$10 + 2 >> 0] = $6 >> 16; + HEAP8[$10 + 3 >> 0] = $6 >> 24; + HEAP8[$this + 9 >> 0] = 0; + $12 = $this + 12 | 0; + HEAP32[$12 >> 2] = 0; + HEAP32[$12 + 4 >> 2] = 0; + HEAP32[$12 + 8 >> 2] = 0; + return; +} + +function __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _getImageProcMode($id) { $id = $id | 0; - $cameraID = $cameraID | 0; - var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $14 = 0, $15 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $26 = 0, $4 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, sp = 0; + var $0 = 0, $4 = 0, $7 = 0, $imageProcMode = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $imageProcMode = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) { + STACKTOP = sp; + return -1; + } else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $7 = (_arGetImageProcMode(HEAP32[$4 >> 2] | 0, $imageProcMode) | 0) == 0; + STACKTOP = sp; + return ($7 ? HEAP32[$imageProcMode >> 2] | 0 : -1) | 0; + } + return 0; +} + +function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _setPatternDetectionMode($id, $mode) { + $id = $id | 0; + $mode = $mode | 0; + var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer6 = sp + 24 | 0; - $vararg_buffer4 = sp + 16 | 0; - $vararg_buffer2 = sp + 8 | 0; $vararg_buffer = sp; - $0 = sp + 32 | 0; - $1 = sp + 28 | 0; + $0 = sp + 4 | 0; HEAP32[$0 >> 2] = $id; - HEAP32[$1 >> 2] = $cameraID; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2064, $1) | 0)) $$0 = -1; else { - $7 = $4 + 8 | 0; - _memcpy($7 | 0, __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2064, $1) | 0, 184) | 0; - $9 = HEAP32[$7 >> 2] | 0; - $10 = $4 + 204 | 0; - $14 = HEAP32[$4 + 12 >> 2] | 0; - $15 = $4 + 208 | 0; - if (!(($9 | 0) == (HEAP32[$10 >> 2] | 0) ? ($14 | 0) == (HEAP32[$15 >> 2] | 0) : 0)) { - HEAP32[$vararg_buffer >> 2] = $9; - HEAP32[$vararg_buffer + 4 >> 2] = $14; - _arLog(2, 6151, $vararg_buffer); - _arParamChangeSize($7, HEAP32[$10 >> 2] | 0, HEAP32[$15 >> 2] | 0, $7) | 0; - } - _deleteHandle($4); - $20 = _arParamLTCreate($7, 15) | 0; - $21 = $4 + 192 | 0; - HEAP32[$21 >> 2] = $20; - if (!$20) { - _arLog(3, 6198, $vararg_buffer2); - $$0 = -1; - break; - } - $23 = _arCreateHandle($20) | 0; - $24 = $4 + 212 | 0; - HEAP32[$24 >> 2] = $23; - if (!$23) { - _arLog(3, 6236, $vararg_buffer4); - $$0 = -1; - break; - } - _arSetPixelFormat($23, 2) | 0; - $26 = _ar3DCreateHandle($7) | 0; - HEAP32[$4 + 224 >> 2] = $26; - if (!$26) { - _arLog(3, 6273, $vararg_buffer6); - $$0 = -1; - break; - } else { - _arPattAttach(HEAP32[$24 >> 2] | 0, HEAP32[$4 + 216 >> 2] | 0) | 0; - _arglCameraFrustum(HEAP32[$21 >> 2] | 0, +HEAPF64[$4 + 232 >> 3], +HEAPF64[$4 + 240 >> 3], $4 + 264 | 0); - $$0 = 0; - break; - } + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + if (!(_arSetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { + HEAP32[$vararg_buffer >> 2] = $mode; + _arLog(1, 41332, $vararg_buffer); } - } while (0); + } + STACKTOP = sp; + return; +} + +function _getLabelingMode($id) { + $id = $id | 0; + var $0 = 0, $4 = 0, $7 = 0, $labelingMode = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $labelingMode = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) { + STACKTOP = sp; + return -1; + } else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $7 = (_arGetLabelingMode(HEAP32[$4 >> 2] | 0, $labelingMode) | 0) == 0; + STACKTOP = sp; + return ($7 ? HEAP32[$labelingMode >> 2] | 0 : -1) | 0; + } + return 0; +} + +function _arMatrixDup($dest, $source) { + $dest = $dest | 0; + $source = $source | 0; + var $$0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $6 = 0, $c$02 = 0, $r$03 = 0; + $1 = HEAP32[$dest + 4 >> 2] | 0; + if (($1 | 0) == (HEAP32[$source + 4 >> 2] | 0)) { + $6 = HEAP32[$dest + 8 >> 2] | 0; + if (($6 | 0) == (HEAP32[$source + 8 >> 2] | 0)) if (($1 | 0) > 0) { + $11 = ($6 | 0) > 0; + $r$03 = 0; + do { + $12 = Math_imul($6, $r$03) | 0; + if ($11) { + $13 = HEAP32[$source >> 2] | 0; + $14 = HEAP32[$dest >> 2] | 0; + $c$02 = 0; + do { + $15 = $12 + $c$02 | 0; + HEAPF64[$14 + ($15 << 3) >> 3] = +HEAPF64[$13 + ($15 << 3) >> 3]; + $c$02 = $c$02 + 1 | 0; + } while (($c$02 | 0) < ($6 | 0)); + } + $r$03 = $r$03 + 1 | 0; + } while (($r$03 | 0) < ($1 | 0)); + $$0 = 0; + } else $$0 = 0; else $$0 = -1; + } else $$0 = -1; + return $$0 | 0; +} + +function __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEEC2ERKS5_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $$0$i1 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $19 = 0, $2 = 0, $20 = 0, $8 = 0; + HEAP32[$this >> 2] = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + $2 = $__x + 4 | 0; + $8 = (HEAP32[$2 >> 2] | 0) - (HEAP32[$__x >> 2] | 0) >> 3; + if ($8) { + __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE8allocateEj($this, $8); + $10 = HEAP32[$__x >> 2] | 0; + $11 = HEAP32[$2 >> 2] | 0; + if (($10 | 0) != ($11 | 0)) { + $$0$i1 = $10; + do { + $14 = $$0$i1; + $19 = HEAP32[$14 + 4 >> 2] | 0; + $20 = HEAP32[$0 >> 2] | 0; + HEAP32[$20 >> 2] = HEAP32[$14 >> 2]; + HEAP32[$20 + 4 >> 2] = $19; + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 8; + $$0$i1 = $$0$i1 + 8 | 0; + } while (($$0$i1 | 0) != ($11 | 0)); + } + } + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_12_hourERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 + -1 | 0) >>> 0 < 12 & ($3 & 4 | 0) == 0) HEAP32[$__h >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_12_hourERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 + -1 | 0) >>> 0 < 12 & ($3 & 4 | 0) == 0) HEAP32[$__h >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; STACKTOP = sp; - return $$0 | 0; + return; } -function _memchr($src, $c, $n) { - $src = $src | 0; - $c = $c | 0; - $n = $n | 0; - var $$0$lcssa = 0, $$0$lcssa44 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $17 = 0, $20 = 0, $26 = 0, $27 = 0, $32 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 0, $s$0$lcssa = 0, $s$0$lcssa43 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0; - $0 = $c & 255; - $4 = ($n | 0) != 0; - L1 : do if ($4 & ($src & 3 | 0) != 0) { - $5 = $c & 255; - $$019 = $n; - $s$020 = $src; - while (1) { - if ((HEAP8[$s$020 >> 0] | 0) == $5 << 24 >> 24) { - $$0$lcssa44 = $$019; - $s$0$lcssa43 = $s$020; - label = 6; - break L1; - } - $8 = $s$020 + 1 | 0; - $9 = $$019 + -1 | 0; - $13 = ($9 | 0) != 0; - if ($13 & ($8 & 3 | 0) != 0) { - $$019 = $9; - $s$020 = $8; - } else { - $$0$lcssa = $9; - $$lcssa = $13; - $s$0$lcssa = $8; - label = 5; - break; - } +function _setThresholdMode($id, $mode) { + $id = $id | 0; + $mode = $mode | 0; + var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $0 = sp + 4 | 0; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + if (!(_arSetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { + HEAP32[$vararg_buffer >> 2] = $mode; + _arLog(1, 41444, $vararg_buffer); } - } else { - $$0$lcssa = $n; - $$lcssa = $4; - $s$0$lcssa = $src; - label = 5; - } while (0); - if ((label | 0) == 5) if ($$lcssa) { - $$0$lcssa44 = $$0$lcssa; - $s$0$lcssa43 = $s$0$lcssa; - label = 6; - } else { - $$3 = 0; - $s$2 = $s$0$lcssa; } - L8 : do if ((label | 0) == 6) { - $15 = $c & 255; - if ((HEAP8[$s$0$lcssa43 >> 0] | 0) == $15 << 24 >> 24) { - $$3 = $$0$lcssa44; - $s$2 = $s$0$lcssa43; - } else { - $17 = Math_imul($0, 16843009) | 0; - L11 : do if ($$0$lcssa44 >>> 0 > 3) { - $$110 = $$0$lcssa44; - $w$011 = $s$0$lcssa43; - while (1) { - $20 = HEAP32[$w$011 >> 2] ^ $17; - if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) { - $$110$lcssa = $$110; - $w$011$lcssa = $w$011; - break; - } - $26 = $w$011 + 4 | 0; - $27 = $$110 + -4 | 0; - if ($27 >>> 0 > 3) { - $$110 = $27; - $w$011 = $26; - } else { - $$1$lcssa = $27; - $w$0$lcssa = $26; - label = 11; - break L11; - } - } - $$24 = $$110$lcssa; - $s$15 = $w$011$lcssa; - } else { - $$1$lcssa = $$0$lcssa44; - $w$0$lcssa = $s$0$lcssa43; - label = 11; - } while (0); - if ((label | 0) == 11) if (!$$1$lcssa) { - $$3 = 0; - $s$2 = $w$0$lcssa; - break; - } else { - $$24 = $$1$lcssa; - $s$15 = $w$0$lcssa; - } - while (1) { - if ((HEAP8[$s$15 >> 0] | 0) == $15 << 24 >> 24) { - $$3 = $$24; - $s$2 = $s$15; - break L8; - } - $32 = $s$15 + 1 | 0; - $$24 = $$24 + -1 | 0; - if (!$$24) { - $$3 = 0; - $s$2 = $32; - break; - } else $s$15 = $32; - } - } - } while (0); - return (($$3 | 0) != 0 ? $s$2 : 0) | 0; + STACKTOP = sp; + return; } -function _getMarkerInfo($id, $markerIndex) { +function _fill_input_buffer($cinfo) { + $cinfo = $cinfo | 0; + var $$pre$phi3Z2D = 0, $1 = 0, $11 = 0, $14 = 0, $2 = 0, $6 = 0, $8 = 0, $nbytes$0 = 0; + $1 = HEAP32[$cinfo + 24 >> 2] | 0; + $2 = $1 + 32 | 0; + $6 = _fread(HEAP32[$2 >> 2] | 0, 1, 4096, HEAP32[$1 + 28 >> 2] | 0) | 0; + $8 = $1 + 36 | 0; + if (!$6) { + if (!(HEAP32[$8 >> 2] | 0)) $$pre$phi3Z2D = $cinfo; else { + $11 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$11 + 20 >> 2] = 42; + FUNCTION_TABLE_vi[HEAP32[$11 >> 2] & 255]($cinfo); + $$pre$phi3Z2D = $cinfo; + } + $14 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$14 + 20 >> 2] = 120; + FUNCTION_TABLE_vii[HEAP32[$14 + 4 >> 2] & 63]($$pre$phi3Z2D, -1); + HEAP8[HEAP32[$2 >> 2] >> 0] = -1; + HEAP8[(HEAP32[$2 >> 2] | 0) + 1 >> 0] = -39; + $nbytes$0 = 2; + } else $nbytes$0 = $6; + HEAP32[$1 >> 2] = HEAP32[$2 >> 2]; + HEAP32[$1 + 4 >> 2] = $nbytes$0; + HEAP32[$8 >> 2] = 0; + return 1; +} + +function _jinit_marker_reader($cinfo) { + $cinfo = $cinfo | 0; + var $10 = 0, $15 = 0, $3 = 0, $4 = 0, $9 = 0, $i$01 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 0, 172) | 0; + $4 = $cinfo + 440 | 0; + HEAP32[$4 >> 2] = $3; + HEAP32[$3 >> 2] = 124; + HEAP32[$3 + 4 >> 2] = 70; + HEAP32[$3 + 8 >> 2] = 71; + HEAP32[$3 + 28 >> 2] = 72; + HEAP32[$3 + 96 >> 2] = 0; + $9 = $3 + 32 | 0; + $10 = $3 + 100 | 0; + $i$01 = 0; + do { + HEAP32[$9 + ($i$01 << 2) >> 2] = 72; + HEAP32[$10 + ($i$01 << 2) >> 2] = 0; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) != 16); + HEAP32[$9 >> 2] = 73; + HEAP32[$3 + 88 >> 2] = 73; + $15 = HEAP32[$4 >> 2] | 0; + HEAP32[$cinfo + 216 >> 2] = 0; + HEAP32[$cinfo + 144 >> 2] = 0; + HEAP32[$cinfo + 416 >> 2] = 0; + HEAP32[$15 + 12 >> 2] = 0; + HEAP32[$15 + 16 >> 2] = 0; + HEAP32[$15 + 24 >> 2] = 0; + HEAP32[$15 + 164 >> 2] = 0; + return; +} + +function _getPattRatio($id) { $id = $id | 0; - $markerIndex = $markerIndex | 0; - var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0; + var $0 = 0, $4 = 0, $5 = 0, $8 = 0, $pattRatio = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; + $0 = sp + 8 | 0; + $pattRatio = sp; HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { - $_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0; - _emscripten_asm_const_33(1, HEAP32[$_ZL11gMarkerInfo$ >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 4 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 8 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 12 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 16 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 20 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 24 >> 2] | 0, +(+HEAPF64[$_ZL11gMarkerInfo$ + 32 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 40 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 48 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 72 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 80 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 88 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 96 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 104 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 112 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 120 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 128 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 136 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 144 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 152 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 160 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3]), HEAP32[$_ZL11gMarkerInfo$ + 240 >> 2] | 0) | 0; - $$0 = 0; - break; - } else { - $$0 = HEAP32[523] | 0; - break; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $5 = HEAP32[$4 >> 2] | 0; + if ($5) { + $8 = (_arGetPattRatio($5, $pattRatio) | 0) == 0; + STACKTOP = sp; + return +($8 ? +HEAPF64[$pattRatio >> 3] : -1.0); } - } while (0); + } STACKTOP = sp; - return $$0 | 0; + return -1.0; } -function __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$03 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $27 = 0, $3 = 0, sp = 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE9__get_dayERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__d, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__d = $__d | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 40 | 0; - $1 = sp + 24 | 0; - $2 = sp + 12 | 0; - $3 = sp; - L1 : do if (($last - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 68) { - switch (HEAP8[$first + 1 >> 0] | 0) { - case 84: - case 116: - break; - default: - { - $$03 = $first; - break L1; - } - } - $13 = $first + 2 | 0; - $14 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($13, $last, $db) | 0; - if (($14 | 0) == ($13 | 0) | ($14 | 0) == ($last | 0)) $$03 = $first; else if ((HEAP8[$14 >> 0] | 0) == 69) { - $21 = HEAP32[$db + 4 >> 2] | 0; - if ((HEAP32[$db >> 2] | 0) == ($21 | 0)) $$03 = $first; else { - $23 = $21 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $23); - $24 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 12803) | 0; - HEAP32[$2 >> 2] = HEAP32[$24 >> 2]; - HEAP32[$2 + 4 >> 2] = HEAP32[$24 + 4 >> 2]; - HEAP32[$2 + 8 >> 2] = HEAP32[$24 + 8 >> 2]; - HEAP32[$24 >> 2] = 0; - HEAP32[$24 + 4 >> 2] = 0; - HEAP32[$24 + 8 >> 2] = 0; - $27 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0; - HEAP32[$1 >> 2] = HEAP32[$27 >> 2]; - HEAP32[$1 + 4 >> 2] = HEAP32[$27 + 4 >> 2]; - HEAP32[$1 + 8 >> 2] = HEAP32[$27 + 8 >> 2]; - HEAP32[$27 >> 2] = 0; - HEAP32[$27 + 4 >> 2] = 0; - HEAP32[$27 + 8 >> 2] = 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($23, $0); - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3); - $$03 = $14 + 1 | 0; - } - } else $$03 = $first; - } else $$03 = $first; else $$03 = $first; while (0); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 + -1 | 0) >>> 0 < 31 & ($3 & 4 | 0) == 0) HEAP32[$__d >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; STACKTOP = sp; - return $$03 | 0; + return; } -function ___fdopen($fd, $mode) { - $fd = $fd | 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE18__get_day_year_numERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__d, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__d = $__d | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 3) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 366 & ($3 & 4 | 0) == 0) HEAP32[$__d >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE9__get_dayERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__d, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__d = $__d | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 + -1 | 0) >>> 0 < 31 & ($3 & 4 | 0) == 0) HEAP32[$__d >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE18__get_day_year_numERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__d, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__d = $__d | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 3) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 366 & ($3 & 4 | 0) == 0) HEAP32[$__d >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function _setImageProcMode($id, $mode) { + $id = $id | 0; $mode = $mode | 0; - var $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $19 = 0, $24 = 0, $26 = 0, $3 = 0, $37 = 0, $4 = 0, $tio = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, dest = 0, sp = 0, stop = 0; + var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 112 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer12 = sp + 40 | 0; - $vararg_buffer7 = sp + 24 | 0; - $vararg_buffer3 = sp + 16 | 0; $vararg_buffer = sp; - $tio = sp + 52 | 0; - $0 = HEAP8[$mode >> 0] | 0; - if (!(_memchr(16759, $0 << 24 >> 24, 4) | 0)) { - $3 = ___errno_location() | 0; - HEAP32[$3 >> 2] = 22; - $$0 = 0; - } else { - $4 = _malloc(1144) | 0; - if (!$4) $$0 = 0; else { - dest = $4; - stop = dest + 112 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - if (!(_strchr($mode, 43) | 0)) HEAP32[$4 >> 2] = $0 << 24 >> 24 == 114 ? 8 : 4; - if (!(_strchr($mode, 101) | 0)) $13 = $0; else { - HEAP32[$vararg_buffer >> 2] = $fd; - HEAP32[$vararg_buffer + 4 >> 2] = 2; - HEAP32[$vararg_buffer + 8 >> 2] = 1; - ___syscall221(221, $vararg_buffer | 0) | 0; - $13 = HEAP8[$mode >> 0] | 0; - } - if ($13 << 24 >> 24 == 97) { - HEAP32[$vararg_buffer3 >> 2] = $fd; - HEAP32[$vararg_buffer3 + 4 >> 2] = 3; - $14 = ___syscall221(221, $vararg_buffer3 | 0) | 0; - if (!($14 & 1024)) { - HEAP32[$vararg_buffer7 >> 2] = $fd; - HEAP32[$vararg_buffer7 + 4 >> 2] = 4; - HEAP32[$vararg_buffer7 + 8 >> 2] = $14 | 1024; - ___syscall221(221, $vararg_buffer7 | 0) | 0; - } - $19 = HEAP32[$4 >> 2] | 128; - HEAP32[$4 >> 2] = $19; - $26 = $19; - } else $26 = HEAP32[$4 >> 2] | 0; - HEAP32[$4 + 60 >> 2] = $fd; - HEAP32[$4 + 44 >> 2] = $4 + 120; - HEAP32[$4 + 48 >> 2] = 1024; - $24 = $4 + 75 | 0; - HEAP8[$24 >> 0] = -1; - if (!($26 & 8)) { - HEAP32[$vararg_buffer12 >> 2] = $fd; - HEAP32[$vararg_buffer12 + 4 >> 2] = 21505; - HEAP32[$vararg_buffer12 + 8 >> 2] = $tio; - if (!(___syscall54(54, $vararg_buffer12 | 0) | 0)) HEAP8[$24 >> 0] = 10; - } - HEAP32[$4 + 32 >> 2] = 14; - HEAP32[$4 + 36 >> 2] = 4; - HEAP32[$4 + 40 >> 2] = 5; - HEAP32[$4 + 12 >> 2] = 2; - if (!(HEAP32[598] | 0)) HEAP32[$4 + 76 >> 2] = -1; - ___lock(2416); - $37 = HEAP32[603] | 0; - HEAP32[$4 + 56 >> 2] = $37; - if ($37) HEAP32[$37 + 52 >> 2] = $4; - HEAP32[603] = $4; - ___unlock(2416); - $$0 = $4; + $0 = sp + 4 | 0; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + if (!(_arSetImageProcMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { + HEAP32[$vararg_buffer >> 2] = $mode; + _arLog(1, 41501, $vararg_buffer); } } STACKTOP = sp; - return $$0 | 0; + return; } -function _addMultiMarker($id, $patt_name) { +function __ZNSt3__16vectorItNS_9allocatorItEEE26__swap_out_circular_bufferERNS_14__split_bufferItRS2_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 1) << 1) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE26__swap_out_circular_bufferERNS_14__split_bufferIiRS2_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 2) << 2) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function __ZNSt3__16vectorIfNS_9allocatorIfEEE26__swap_out_circular_bufferERNS_14__split_bufferIfRS2_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 2) << 2) | 0; + HEAP32[$3 >> 2] = $10; + _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; + $11 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $11; + $13 = $__v + 8 | 0; + $14 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $14; + $16 = $this + 8 | 0; + $17 = $__v + 12 | 0; + $18 = HEAP32[$16 >> 2] | 0; + HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; + HEAP32[$17 >> 2] = $18; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _setLabelingMode($id, $mode) { $id = $id | 0; - $patt_name = $patt_name | 0; - var $$0 = 0, $0 = 0, $11 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $21 = 0, $22 = 0, $23 = 0, $28 = 0, $29 = 0, $3 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $marker = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + $mode = $mode | 0; + var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 16 | 0; - $vararg_buffer = sp + 8 | 0; - $0 = sp + 20 | 0; - $marker = sp; + $vararg_buffer = sp; + $0 = sp + 4 | 0; HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if (!(HEAP8[$patt_name >> 0] & 1)) $15 = $patt_name + 1 | 0; else $15 = HEAP32[$patt_name + 8 >> 2] | 0; - $11 = HEAP32[$3 + 212 >> 2] | 0; - $12 = $3 + 216 | 0; - $13 = $3 + 220 | 0; - $16 = _arMultiReadConfigFile($15, HEAP32[$12 >> 2] | 0) | 0; - HEAP32[$13 >> 2] = $16; - if (!$16) { - _arLog(3, 6401, $vararg_buffer); - _arPattDeleteHandle(HEAP32[$12 >> 2] | 0) | 0; - _arLog(3, 6428, $vararg_buffer1); - $$0 = -1; - break; - } - switch (HEAP32[$16 + 108 >> 2] | 0) { - case 0: - { - _arSetPatternDetectionMode($11, 0) | 0; - break; - } - case 1: - { - _arSetPatternDetectionMode($11, 2) | 0; - break; - } - default: - _arSetPatternDetectionMode($11, 3) | 0; - } - $21 = $3 + 248 | 0; - $22 = $3 + 252 | 0; - $23 = HEAP32[$22 >> 2] | 0; - $28 = $23 - (HEAP32[$21 >> 2] | 0) >> 3; - $29 = $marker; - HEAP32[$29 >> 2] = 0; - HEAP32[$29 + 4 >> 2] = 0; - HEAP32[$marker >> 2] = $28; - HEAP32[$marker + 4 >> 2] = HEAP32[$13 >> 2]; - if (($23 | 0) == (HEAP32[$3 + 256 >> 2] | 0)) { - __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($21, $marker); - $$0 = $28; - break; - } else { - $38 = $marker; - $40 = HEAP32[$38 >> 2] | 0; - $43 = HEAP32[$38 + 4 >> 2] | 0; - $44 = $23; - HEAP32[$44 >> 2] = $40; - HEAP32[$44 + 4 >> 2] = $43; - HEAP32[$22 >> 2] = (HEAP32[$22 >> 2] | 0) + 8; - $$0 = $40; - break; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + if (!(_arSetLabelingMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { + HEAP32[$vararg_buffer >> 2] = $mode; + _arLog(1, 41398, $vararg_buffer); } - } while (0); + } STACKTOP = sp; - return $$0 | 0; + return; } -function _get_cpara($world, $vertex, $para) { - $world = $world | 0; - $vertex = $vertex | 0; - $para = $para | 0; - var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $3 = 0, $4 = 0, $49 = 0, $5 = 0, $62 = 0, $68 = 0, $7 = 0, $76 = 0, $86 = 0, $9 = 0, $i$03 = 0; - $0 = _arMatrixAlloc(8, 8) | 0; - $1 = _arMatrixAlloc(8, 1) | 0; - $2 = _arMatrixAlloc(8, 1) | 0; - $3 = HEAP32[$0 >> 2] | 0; - $4 = HEAP32[$1 >> 2] | 0; - $i$03 = 0; - do { - $5 = $world + ($i$03 << 4) | 0; - $7 = $i$03 << 4; - HEAPF64[$3 + ($7 << 3) >> 3] = +HEAPF64[$5 >> 3]; - $9 = $world + ($i$03 << 4) + 8 | 0; - HEAPF64[$3 + (($7 | 1) << 3) >> 3] = +HEAPF64[$9 >> 3]; - HEAPF64[$3 + (($7 | 2) << 3) >> 3] = 1.0; - HEAPF64[$3 + (($7 | 3) << 3) >> 3] = 0.0; - HEAPF64[$3 + (($7 | 4) << 3) >> 3] = 0.0; - HEAPF64[$3 + (($7 | 5) << 3) >> 3] = 0.0; - $22 = $vertex + ($i$03 << 4) | 0; - HEAPF64[$3 + (($7 | 6) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$22 >> 3]); - HEAPF64[$3 + (($7 | 7) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$22 >> 3]); - HEAPF64[$3 + (($7 | 8) << 3) >> 3] = 0.0; - HEAPF64[$3 + (($7 | 9) << 3) >> 3] = 0.0; - HEAPF64[$3 + (($7 | 10) << 3) >> 3] = 0.0; - HEAPF64[$3 + (($7 | 11) << 3) >> 3] = +HEAPF64[$5 >> 3]; - HEAPF64[$3 + (($7 | 12) << 3) >> 3] = +HEAPF64[$9 >> 3]; - HEAPF64[$3 + (($7 | 13) << 3) >> 3] = 1.0; - $49 = $vertex + ($i$03 << 4) + 8 | 0; - HEAPF64[$3 + (($7 | 14) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$49 >> 3]); - HEAPF64[$3 + (($7 | 15) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$49 >> 3]); - $62 = $i$03 << 1; - HEAPF64[$4 + ($62 << 3) >> 3] = +HEAPF64[$22 >> 3]; - HEAPF64[$4 + (($62 | 1) << 3) >> 3] = +HEAPF64[$49 >> 3]; - $i$03 = $i$03 + 1 | 0; - } while (($i$03 | 0) != 4); - _arMatrixSelfInv($0) | 0; - _arMatrixMul($2, $0, $1) | 0; - $68 = HEAP32[$2 >> 2] | 0; - HEAPF64[$para >> 3] = +HEAPF64[$68 >> 3]; - HEAPF64[$para + 8 >> 3] = +HEAPF64[$68 + 8 >> 3]; - HEAPF64[$para + 16 >> 3] = +HEAPF64[$68 + 16 >> 3]; - $76 = HEAP32[$2 >> 2] | 0; - HEAPF64[$para + 24 >> 3] = +HEAPF64[$76 + 24 >> 3]; - HEAPF64[$para + 32 >> 3] = +HEAPF64[$76 + 32 >> 3]; - HEAPF64[$para + 40 >> 3] = +HEAPF64[$76 + 40 >> 3]; - $86 = HEAP32[$2 >> 2] | 0; - HEAPF64[$para + 48 >> 3] = +HEAPF64[$86 + 48 >> 3]; - HEAPF64[$para + 56 >> 3] = +HEAPF64[$86 + 56 >> 3]; - HEAPF64[$para + 64 >> 3] = 1.0; - _arMatrixFree($0) | 0; - _arMatrixFree($1) | 0; - _arMatrixFree($2) | 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_monthERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 13 & ($3 & 4 | 0) == 0) HEAP32[$__m >> 2] = $2 + -1; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; return; } -function _arGetTransMatSquare($handle, $marker_info, $width, $conv) { - $handle = $handle | 0; - $marker_info = $marker_info | 0; - $width = +$width; - $conv = $conv | 0; - var $$0 = 0.0, $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $53 = 0, $data = 0, $err = 0, $initMatXw2Xc = 0, $screenCoord = 0, $worldCoord = 0, sp = 0; +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_monthERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 288 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $screenCoord = sp + 200 | 0; - $worldCoord = sp + 104 | 0; - $data = sp + 264 | 0; - $initMatXw2Xc = sp + 8 | 0; - $err = sp; - $1 = HEAP32[$marker_info + 16 >> 2] | 0; - $3 = (4 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3]; - HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3]; - $10 = (5 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3]; - HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3]; - $18 = (6 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3]; - HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3]; - $26 = (7 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3]; - HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3]; - $33 = $width * -.5; - HEAPF64[$worldCoord >> 3] = $33; - $34 = $width * .5; - HEAPF64[$worldCoord + 8 >> 3] = $34; - HEAPF64[$worldCoord + 16 >> 3] = 0.0; - HEAPF64[$worldCoord + 24 >> 3] = $34; - HEAPF64[$worldCoord + 32 >> 3] = $34; - HEAPF64[$worldCoord + 40 >> 3] = 0.0; - HEAPF64[$worldCoord + 48 >> 3] = $34; - HEAPF64[$worldCoord + 56 >> 3] = $33; - HEAPF64[$worldCoord + 64 >> 3] = 0.0; - HEAPF64[$worldCoord + 72 >> 3] = $33; - HEAPF64[$worldCoord + 80 >> 3] = $33; - HEAPF64[$worldCoord + 88 >> 3] = 0.0; - HEAP32[$data >> 2] = $screenCoord; - HEAP32[$data + 4 >> 2] = $worldCoord; - HEAP32[$data + 8 >> 2] = 4; - if ((_icpGetInitXw2Xc_from_PlanarData(HEAP32[$handle >> 2] | 0, $screenCoord, $worldCoord, 4, $initMatXw2Xc) | 0) < 0) $$0 = 1.0e8; else { - $53 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initMatXw2Xc, $conv, $err) | 0) < 0; - $$0 = $53 ? 1.0e8 : +HEAPF64[$err >> 3]; - } + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 13 & ($3 & 4 | 0) == 0) HEAP32[$__m >> 2] = $2 + -1; else HEAP32[$__err >> 2] = $3 | 4; STACKTOP = sp; - return +$$0; + return; } -function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { +function __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEED2Ev($this) { $this = $this | 0; - $info = $info | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $14 = 0, $20 = 0, $23 = 0, $24 = 0, $26 = 0, $33 = 0, $44 = 0, $6 = 0, $is_dst_type_derived_from_static_type$0$off01 = 0, label = 0; - L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { - if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { - $6 = $info + 28 | 0; - if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; - } - } else { - if (($this | 0) != (HEAP32[$info >> 2] | 0)) { - $44 = HEAP32[$this + 8 >> 2] | 0; - FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$44 >> 2] | 0) + 24 >> 2] & 3]($44, $info, $current_ptr, $path_below, $use_strcmp); - break; - } - if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { - $14 = $info + 20 | 0; - if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { - HEAP32[$info + 32 >> 2] = $path_below; - $20 = $info + 44 | 0; - if ((HEAP32[$20 >> 2] | 0) == 4) break; - $23 = $info + 52 | 0; - HEAP8[$23 >> 0] = 0; - $24 = $info + 53 | 0; - HEAP8[$24 >> 0] = 0; - $26 = HEAP32[$this + 8 >> 2] | 0; - FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$26 >> 2] | 0) + 20 >> 2] & 3]($26, $info, $current_ptr, $current_ptr, 1, $use_strcmp); - if (!(HEAP8[$24 >> 0] | 0)) { - $is_dst_type_derived_from_static_type$0$off01 = 0; - label = 13; - } else if (!(HEAP8[$23 >> 0] | 0)) { - $is_dst_type_derived_from_static_type$0$off01 = 1; - label = 13; - } - do if ((label | 0) == 13) { - HEAP32[$14 >> 2] = $current_ptr; - $33 = $info + 40 | 0; - HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1; - if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) { - HEAP8[$info + 54 >> 0] = 1; - if ($is_dst_type_derived_from_static_type$0$off01) break; - } else label = 16; else label = 16; - if ((label | 0) == 16) if ($is_dst_type_derived_from_static_type$0$off01) break; - HEAP32[$20 >> 2] = 4; - break L1; - } while (0); - HEAP32[$20 >> 2] = 3; - break; - } - } - if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; - } while (0); + __ZN6vision16RobustHomographyIfED2Ev($this + 788 | 0); + __ZN6vision21HoughSimilarityVotingD2Ev($this + 652 | 0); + __ZNSt3__113__vector_baseIN6vision7match_tENS_9allocatorIS2_EEED2Ev($this + 636 | 0); + __ZN6vision25DoGScaleInvariantDetectorD2Ev($this + 160 | 0); + __ZN6vision18BinomialPyramid32fD2Ev($this + 92 | 0); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEED2Ev($this + 72 | 0); + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($this + 64 | 0); + __ZNSt3__113__vector_baseIN6vision7match_tENS_9allocatorIS2_EEED2Ev($this + 12 | 0); return; } -function _fgets($s, $n, $f) { - $s = $s | 0; - $n = $n | 0; - $f = $f | 0; - var $$0 = 0, $$048 = 0, $$05 = 0, $$lcssa14 = 0, $$sum$pre$phiZZ2D = 0, $$sum6 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $6 = 0, $8 = 0, $p$0 = 0, $p$1 = 0, label = 0; - if ((HEAP32[$f + 76 >> 2] | 0) > -1) $13 = ___lockfile($f) | 0; else $13 = 0; - $4 = $n + -1 | 0; - if (($n | 0) < 2) { - $6 = $f + 74 | 0; - $8 = HEAP8[$6 >> 0] | 0; - HEAP8[$6 >> 0] = $8 + 255 | $8; - if ($13) ___unlockfile($f); - if (!$4) { - HEAP8[$s >> 0] = 0; - $$0 = $s; - } else $$0 = 0; +function _getThreshold($id) { + $id = $id | 0; + var $0 = 0, $4 = 0, $7 = 0, $threshold = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $threshold = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) { + STACKTOP = sp; + return -1; } else { - L11 : do if (!$4) { - $p$1 = $s; - label = 18; + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $7 = (_arGetLabelingThresh(HEAP32[$4 >> 2] | 0, $threshold) | 0) == 0; + STACKTOP = sp; + return ($7 ? HEAP32[$threshold >> 2] | 0 : -1) | 0; + } + return 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) { + $first = $first | 0; + $last = $last | 0; + $cv = $cv | 0; + var $$0 = 0, $$1 = 0, $$2 = 0, $1 = 0, $10 = 0, $12 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; + HEAP32[$cv >> 2] = 0; + if (($first | 0) == ($last | 0)) $$2 = $first; else { + $1 = HEAP8[$first >> 0] | 0; + if ($1 << 24 >> 24 == 114) { + HEAP32[$cv >> 2] = 4; + $3 = $first + 1 | 0; + $$0 = $3; + $5 = HEAP8[$3 >> 0] | 0; + $7 = 4; } else { - $15 = $f + 4 | 0; - $16 = $f + 8 | 0; - $$05 = $4; - $p$0 = $s; - while (1) { - $17 = HEAP32[$15 >> 2] | 0; - $20 = $17; - $21 = (HEAP32[$16 >> 2] | 0) - $20 | 0; - $22 = _memchr($17, 10, $21) | 0; - $23 = ($22 | 0) == 0; - $27 = $23 ? $21 : 1 - $20 + $22 | 0; - $28 = $27 >>> 0 < $$05 >>> 0; - $29 = $28 ? $27 : $$05; - _memcpy($p$0 | 0, $17 | 0, $29 | 0) | 0; - $30 = HEAP32[$15 >> 2] | 0; - $31 = $30 + $29 | 0; - HEAP32[$15 >> 2] = $31; - $32 = $p$0 + $29 | 0; - $33 = $$05 - $29 | 0; - if (!($23 & $28)) { - $p$1 = $32; - label = 18; - break L11; - } - if ($31 >>> 0 < (HEAP32[$16 >> 2] | 0) >>> 0) { - $$sum6 = $29 + 1 | 0; - HEAP32[$15 >> 2] = $30 + $$sum6; - $$sum$pre$phiZZ2D = $$sum6; - $47 = HEAPU8[$31 >> 0] | 0; - } else { - $39 = ___uflow($f) | 0; - if (($39 | 0) < 0) { - $$lcssa14 = $32; - break; - } - $$sum$pre$phiZZ2D = $29 + 1 | 0; - $47 = $39; - } - $$05 = $33 + -1 | 0; - $48 = $p$0 + $$sum$pre$phiZZ2D | 0; - HEAP8[$32 >> 0] = $47; - if (!(($$05 | 0) != 0 & ($47 & 255 | 0) != 10)) { - $p$1 = $48; - label = 18; - break L11; - } else $p$0 = $48; - } - if (($$lcssa14 | 0) == ($s | 0)) $$048 = 0; else if (!(HEAP32[$f >> 2] & 16)) $$048 = 0; else { - $p$1 = $$lcssa14; - label = 18; - } - } while (0); - if ((label | 0) == 18) if (!$s) $$048 = 0; else { - HEAP8[$p$1 >> 0] = 0; - $$048 = $s; + $$0 = $first; + $5 = $1; + $7 = 0; } - if (!$13) $$0 = $$048; else { - ___unlockfile($f); - $$0 = $$048; + if ($5 << 24 >> 24 == 86) { + $6 = $7 | 2; + HEAP32[$cv >> 2] = $6; + $8 = $$0 + 1 | 0; + $$1 = $8; + $10 = HEAP8[$8 >> 0] | 0; + $12 = $6; + } else { + $$1 = $$0; + $10 = $5; + $12 = $7; } + if ($10 << 24 >> 24 == 75) { + HEAP32[$cv >> 2] = $12 | 1; + $$2 = $$1 + 1 | 0; + } else $$2 = $$1; } - return $$0 | 0; + return $$2 | 0; } -function _mbrtowc($wc, $src, $n, $st) { - $wc = $wc | 0; - $src = $src | 0; - $n = $n | 0; - $st = $st | 0; - var $$0 = 0, $$024 = 0, $$1 = 0, $$lcssa = 0, $$lcssa35 = 0, $$st = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $19 = 0, $21 = 0, $30 = 0, $40 = 0, $7 = 0, $8 = 0, $c$05 = 0, $c$1 = 0, $c$2 = 0, $dummy = 0, $dummy$wc = 0, $s$06 = 0, $s$1 = 0, label = 0, sp = 0; +function _getPatternDetectionMode($id) { + $id = $id | 0; + var $0 = 0, $4 = 0, $7 = 0, $mode = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $dummy = sp; - $$st = ($st | 0) == 0 ? 2680 : $st; - $1 = HEAP32[$$st >> 2] | 0; - L1 : do if (!$src) if (!$1) $$0 = 0; else label = 15; else { - $dummy$wc = ($wc | 0) == 0 ? $dummy : $wc; - if (!$n) $$0 = -2; else { - if (!$1) { - $7 = HEAP8[$src >> 0] | 0; - $8 = $7 & 255; - if ($7 << 24 >> 24 > -1) { - HEAP32[$dummy$wc >> 2] = $8; - $$0 = $7 << 24 >> 24 != 0 & 1; - break; - } - $12 = $8 + -194 | 0; - if ($12 >>> 0 > 50) { - label = 15; - break; - } - $16 = HEAP32[2432 + ($12 << 2) >> 2] | 0; - $17 = $n + -1 | 0; - if (!$17) $c$2 = $16; else { - $$024 = $17; - $c$05 = $16; - $s$06 = $src + 1 | 0; - label = 9; - } - } else { - $$024 = $n; - $c$05 = $1; - $s$06 = $src; - label = 9; + $0 = sp + 4 | 0; + $mode = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) { + STACKTOP = sp; + return -1; + } else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $7 = (_arGetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0) == 0; + STACKTOP = sp; + return ($7 ? HEAP32[$mode >> 2] | 0 : -1) | 0; + } + return 0; +} + +function __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv($this) { + $this = $this | 0; + var $12 = 0, $21 = 0, $__s = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__s = sp; + if (HEAP32[$this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_($__s, $this); + if (HEAP8[$__s >> 0] | 0) { + $12 = HEAP32[$this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 24 >> 2] & 127]($12) | 0) == -1) { + $21 = $this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$21 >> 2] = HEAP32[$21 >> 2] | 1; } - L11 : do if ((label | 0) == 9) { - $19 = HEAP8[$s$06 >> 0] | 0; - $21 = ($19 & 255) >>> 3; - if (($21 + -16 | $21 + ($c$05 >> 26)) >>> 0 > 7) { - label = 15; - break L1; - } else { - $$1 = $$024; - $30 = $19; - $c$1 = $c$05; - $s$1 = $s$06; - } - while (1) { - $s$1 = $s$1 + 1 | 0; - $c$1 = ($30 & 255) + -128 | $c$1 << 6; - $$1 = $$1 + -1 | 0; - if (($c$1 | 0) >= 0) { - $$lcssa = $c$1; - $$lcssa35 = $$1; - break; - } - if (!$$1) { - $c$2 = $c$1; - break L11; - } - $30 = HEAP8[$s$1 >> 0] | 0; - if (($30 & -64) << 24 >> 24 != -128) { - label = 15; - break L1; - } - } - HEAP32[$$st >> 2] = 0; - HEAP32[$dummy$wc >> 2] = $$lcssa; - $$0 = $n - $$lcssa35 | 0; - break L1; - } while (0); - HEAP32[$$st >> 2] = $c$2; - $$0 = -2; } - } while (0); - if ((label | 0) == 15) { - HEAP32[$$st >> 2] = 0; - $40 = ___errno_location() | 0; - HEAP32[$40 >> 2] = 84; - $$0 = -1; + __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev($__s); } STACKTOP = sp; - return $$0 | 0; + return $this | 0; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($agg$result, $this, $__p) { - $agg$result = $agg$result | 0; +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($this) { $this = $this | 0; - $__p = $__p | 0; - var $$pre$phiZ2D = 0, $0 = 0, $11 = 0, $12 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $23 = 0, $24 = 0, $27 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $4 = 0, $40 = 0, $43 = 0, $44 = 0, $5 = 0, $7 = 0, $__pn$0 = 0, $__pn$0$lcssa = 0, label = 0; - $0 = HEAP32[$__p >> 2] | 0; - $2 = HEAP32[$this + 4 >> 2] | 0; - $4 = HEAP32[$0 + 4 >> 2] | 0; - $5 = $2 + -1 | 0; - $7 = ($5 & $2 | 0) == 0; - if ($7) $12 = $5 & $4; else $12 = ($4 >>> 0) % ($2 >>> 0) | 0; - $11 = (HEAP32[$this >> 2] | 0) + ($12 << 2) | 0; - $__pn$0 = HEAP32[$11 >> 2] | 0; - while (1) { - $14 = HEAP32[$__pn$0 >> 2] | 0; - if (($14 | 0) == ($0 | 0)) { - $__pn$0$lcssa = $__pn$0; - break; - } else $__pn$0 = $14; - } - $16 = $this + 8 | 0; - if (($__pn$0$lcssa | 0) == ($16 | 0)) label = 12; else { - $19 = HEAP32[$__pn$0$lcssa + 4 >> 2] | 0; - if ($7) $23 = $19 & $5; else $23 = ($19 >>> 0) % ($2 >>> 0) | 0; - if (($23 | 0) == ($12 | 0)) $$pre$phiZ2D = $0; else label = 12; - } - do if ((label | 0) == 12) { - $24 = HEAP32[$0 >> 2] | 0; - if ($24) { - $27 = HEAP32[$24 + 4 >> 2] | 0; - if ($7) $31 = $27 & $5; else $31 = ($27 >>> 0) % ($2 >>> 0) | 0; - if (($31 | 0) == ($12 | 0)) { - $$pre$phiZ2D = $0; - break; + var $12 = 0, $21 = 0, $__s = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__s = sp; + if (HEAP32[$this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_($__s, $this); + if (HEAP8[$__s >> 0] | 0) { + $12 = HEAP32[$this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$12 >> 2] | 0) + 24 >> 2] & 127]($12) | 0) == -1) { + $21 = $this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$21 >> 2] = HEAP32[$21 >> 2] | 1; } } - HEAP32[$11 >> 2] = 0; - $$pre$phiZ2D = $0; - } while (0); - $32 = HEAP32[$$pre$phiZ2D >> 2] | 0; - $34 = $32; - if (!$32) $43 = $34; else { - $36 = HEAP32[$32 + 4 >> 2] | 0; - if ($7) $40 = $36 & $5; else $40 = ($36 >>> 0) % ($2 >>> 0) | 0; - if (($40 | 0) == ($12 | 0)) $43 = $34; else { - HEAP32[(HEAP32[$this >> 2] | 0) + ($40 << 2) >> 2] = $__pn$0$lcssa; - $43 = HEAP32[$0 >> 2] | 0; - } + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev($__s); } - HEAP32[$__pn$0$lcssa >> 2] = $43; - HEAP32[$$pre$phiZ2D >> 2] = 0; - $44 = $this + 12 | 0; - HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + -1; - HEAP32[$agg$result >> 2] = $0; - HEAP32[$agg$result + 4 >> 2] = $16; - HEAP8[$agg$result + 8 >> 0] = 1; + STACKTOP = sp; + return $this | 0; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13__get_weekdayERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__w, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__w = $__w | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 1) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 7 & ($3 & 4 | 0) == 0) HEAP32[$__w >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; return; } -function _arParamLTCreate($param, $offset) { - $param = $param | 0; - $offset = $offset | 0; - var $0 = 0, $14 = 0, $15 = 0, $17 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $9 = 0, $i$04 = 0, $i2of$05 = 0, $i2of$12 = 0, $ix = 0, $iy = 0, $j$07 = 0, $o2if$06 = 0, $o2if$13 = 0, $ox = 0, $oy = 0, sp = 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE12__get_secondERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__s, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__s = $__s | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ix = sp + 24 | 0; - $iy = sp + 16 | 0; - $ox = sp + 8 | 0; - $oy = sp; - $0 = _malloc(208) | 0; - if (!$0) { - _arLog(3, 5471, sp + 32 | 0); - _exit(1); - } - _memcpy($0 | 0, $param | 0, 184) | 0; - $3 = $offset << 1; - $4 = (HEAP32[$param >> 2] | 0) + $3 | 0; - HEAP32[$0 + 192 >> 2] = $4; - $9 = (HEAP32[$param + 4 >> 2] | 0) + $3 | 0; - HEAP32[$0 + 196 >> 2] = $9; - HEAP32[$0 + 200 >> 2] = $offset; - HEAP32[$0 + 204 >> 2] = $offset; - $14 = Math_imul($4 << 3, $9) | 0; - $15 = _malloc($14) | 0; - HEAP32[$0 + 184 >> 2] = $15; - if (!$15) { - _arLog(3, 5471, sp + 40 | 0); - _exit(1); - } - $17 = _malloc($14) | 0; - HEAP32[$0 + 188 >> 2] = $17; - if (!$17) { - _arLog(3, 5471, sp + 48 | 0); - _exit(1); - } - $20 = $param + 104 | 0; - $22 = HEAP32[$param + 176 >> 2] | 0; - $24 = ($4 | 0) > 0 ? $4 << 1 : 0; - if (($9 | 0) > 0) { - $26 = ($4 | 0) > 0; - $i2of$05 = $15; - $j$07 = 0; - $o2if$06 = $17; - while (1) { - $29 = +($j$07 - $offset | 0); - if ($26) { - $i$04 = 0; - $i2of$12 = $i2of$05; - $o2if$13 = $o2if$06; - while (1) { - $32 = +($i$04 - $offset | 0); - _arParamIdeal2Observ($20, $32, $29, $ox, $oy, $22) | 0; - HEAPF32[$i2of$12 >> 2] = +HEAPF64[$ox >> 3]; - HEAPF32[$i2of$12 + 4 >> 2] = +HEAPF64[$oy >> 3]; - _arParamObserv2Ideal($20, $32, $29, $ix, $iy, $22) | 0; - HEAPF32[$o2if$13 >> 2] = +HEAPF64[$ix >> 3]; - HEAPF32[$o2if$13 + 4 >> 2] = +HEAPF64[$iy >> 3]; - $i$04 = $i$04 + 1 | 0; - if (($i$04 | 0) >= ($4 | 0)) break; else { - $i2of$12 = $i2of$12 + 8 | 0; - $o2if$13 = $o2if$13 + 8 | 0; - } - } - } - $o2if$06 = $o2if$06 + ($24 << 2) | 0; - $j$07 = $j$07 + 1 | 0; - if (($j$07 | 0) >= ($9 | 0)) break; else $i2of$05 = $i2of$05 + ($24 << 2) | 0; - } - } + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 61 & ($3 & 4 | 0) == 0) HEAP32[$__s >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE12__get_minuteERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 60 & ($3 & 4 | 0) == 0) HEAP32[$__m >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13__get_weekdayERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__w, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__w = $__w | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 1) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 7 & ($3 & 4 | 0) == 0) HEAP32[$__w >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE12__get_secondERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__s, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__s = $__s | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 61 & ($3 & 4 | 0) == 0) HEAP32[$__s >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE12__get_minuteERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__m, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__m = $__m | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 60 & ($3 & 4 | 0) == 0) HEAP32[$__m >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; STACKTOP = sp; - return $0 | 0; + return; } -function _arGetTransMatSquareCont($handle, $marker_info, $initConv, $width, $conv) { - $handle = $handle | 0; - $marker_info = $marker_info | 0; - $initConv = $initConv | 0; - $width = +$width; - $conv = $conv | 0; - var $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $50 = 0, $data = 0, $err = 0, $screenCoord = 0, $worldCoord = 0, sp = 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE10__get_hourERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 192 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $screenCoord = sp + 104 | 0; - $worldCoord = sp + 8 | 0; - $data = sp + 168 | 0; - $err = sp; - $1 = HEAP32[$marker_info + 16 >> 2] | 0; - $3 = (4 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3]; - HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3]; - $10 = (5 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3]; - HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3]; - $18 = (6 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3]; - HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3]; - $26 = (7 - $1 | 0) % 4 | 0; - HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3]; - HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3]; - $33 = $width * -.5; - HEAPF64[$worldCoord >> 3] = $33; - $34 = $width * .5; - HEAPF64[$worldCoord + 8 >> 3] = $34; - HEAPF64[$worldCoord + 16 >> 3] = 0.0; - HEAPF64[$worldCoord + 24 >> 3] = $34; - HEAPF64[$worldCoord + 32 >> 3] = $34; - HEAPF64[$worldCoord + 40 >> 3] = 0.0; - HEAPF64[$worldCoord + 48 >> 3] = $34; - HEAPF64[$worldCoord + 56 >> 3] = $33; - HEAPF64[$worldCoord + 64 >> 3] = 0.0; - HEAPF64[$worldCoord + 72 >> 3] = $33; - HEAPF64[$worldCoord + 80 >> 3] = $33; - HEAPF64[$worldCoord + 88 >> 3] = 0.0; - HEAP32[$data >> 2] = $screenCoord; - HEAP32[$data + 4 >> 2] = $worldCoord; - HEAP32[$data + 8 >> 2] = 4; - $50 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0; + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 24 & ($3 & 4 | 0) == 0) HEAP32[$__h >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; STACKTOP = sp; - return +($50 ? 1.0e8 : +HEAPF64[$err >> 3]); + return; } -function ___dynamic_cast($static_ptr, $static_type, $dst_type, $src2dst_offset) { - $static_ptr = $static_ptr | 0; - $static_type = $static_type | 0; - $dst_type = $dst_type | 0; - $src2dst_offset = $src2dst_offset | 0; - var $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $6 = 0, $dst_ptr$0 = 0, $info = 0, dest = 0, sp = 0, stop = 0; +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE10__get_hourERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__h, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__h = $__h | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $info = sp; - $0 = HEAP32[$static_ptr >> 2] | 0; - $4 = $static_ptr + (HEAP32[$0 + -8 >> 2] | 0) | 0; - $6 = HEAP32[$0 + -4 >> 2] | 0; - HEAP32[$info >> 2] = $dst_type; - HEAP32[$info + 4 >> 2] = $static_ptr; - HEAP32[$info + 8 >> 2] = $static_type; - HEAP32[$info + 12 >> 2] = $src2dst_offset; - $10 = $info + 16 | 0; - $11 = $info + 20 | 0; - $12 = $info + 24 | 0; - $13 = $info + 28 | 0; - $14 = $info + 32 | 0; - $15 = $info + 40 | 0; - $16 = ($6 | 0) == ($dst_type | 0); - dest = $10; - stop = dest + 36 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP16[$10 + 36 >> 1] = 0; - HEAP8[$10 + 38 >> 0] = 0; - L1 : do if ($16) { - HEAP32[$info + 48 >> 2] = 1; - FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$dst_type >> 2] | 0) + 20 >> 2] & 3]($dst_type, $info, $4, $4, 1, 0); - $dst_ptr$0 = (HEAP32[$12 >> 2] | 0) == 1 ? $4 : 0; - } else { - FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$6 >> 2] | 0) + 24 >> 2] & 3]($6, $info, $4, 1, 0); - switch (HEAP32[$info + 36 >> 2] | 0) { - case 0: - { - $dst_ptr$0 = (HEAP32[$15 >> 2] | 0) == 1 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1 ? HEAP32[$11 >> 2] | 0 : 0; - break L1; + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 2) | 0; + $3 = HEAP32[$__err >> 2] | 0; + if (($2 | 0) < 24 & ($3 & 4 | 0) == 0) HEAP32[$__h >> 2] = $2; else HEAP32[$__err >> 2] = $3 | 4; + STACKTOP = sp; + return; +} + +function _strerror($e) { + $e = $e | 0; + var $$lcssa = 0, $9 = 0, $i$03 = 0, $i$03$lcssa = 0, $i$12 = 0, $s$0$lcssa = 0, $s$01 = 0, $s$1 = 0, label = 0; + $i$03 = 0; + while (1) { + if ((HEAPU8[49889 + $i$03 >> 0] | 0) == ($e | 0)) { + $i$03$lcssa = $i$03; + label = 2; + break; + } + $i$03 = $i$03 + 1 | 0; + if (($i$03 | 0) == 87) { + $i$12 = 87; + $s$01 = 49977; + label = 5; + break; + } + } + if ((label | 0) == 2) if (!$i$03$lcssa) $s$0$lcssa = 49977; else { + $i$12 = $i$03$lcssa; + $s$01 = 49977; + label = 5; + } + if ((label | 0) == 5) while (1) { + label = 0; + $s$1 = $s$01; + while (1) { + $9 = $s$1 + 1 | 0; + if (!(HEAP8[$s$1 >> 0] | 0)) { + $$lcssa = $9; break; - } - case 1: + } else $s$1 = $9; + } + $i$12 = $i$12 + -1 | 0; + if (!$i$12) { + $s$0$lcssa = $$lcssa; break; - default: - { - $dst_ptr$0 = 0; - break L1; - } + } else { + $s$01 = $$lcssa; + label = 5; } - if ((HEAP32[$12 >> 2] | 0) != 1) if (!((HEAP32[$15 >> 2] | 0) == 0 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1)) { - $dst_ptr$0 = 0; + } + return $s$0$lcssa | 0; +} + +function _kpmFopen($filename, $ext, $mode) { + $filename = $filename | 0; + $ext = $ext | 0; + $mode = $mode | 0; + var $$0 = 0, $2 = 0, $6 = 0, $8 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer1 = sp + 8 | 0; + $vararg_buffer = sp; + do if (!$filename) $$0 = 0; else { + if (!$ext) { + $$0 = _fopen($filename, $mode) | 0; + break; + } + $2 = _strlen($filename) | 0; + $6 = _malloc($2 + 2 + (_strlen($ext) | 0) | 0) | 0; + if (!$6) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } else { + HEAP32[$vararg_buffer1 >> 2] = $filename; + HEAP32[$vararg_buffer1 + 4 >> 2] = $ext; + _sprintf($6, 21376, $vararg_buffer1) | 0; + $8 = _fopen($6, $mode) | 0; + _free($6); + $$0 = $8; break; } - $dst_ptr$0 = HEAP32[$10 >> 2] | 0; } while (0); STACKTOP = sp; - return $dst_ptr$0 | 0; + return $$0 | 0; } -function _arImageProcLumaHistAndOtsu($ipi, $dataPtr, $value_p) { - $ipi = $ipi | 0; - $dataPtr = $dataPtr | 0; - $value_p = $value_p | 0; - var $$0 = 0, $$lcssa = 0.0, $0 = 0, $12 = 0.0, $14 = 0, $18 = 0.0, $22 = 0.0, $27 = 0.0, $29 = 0.0, $6 = 0.0, $indvars$iv = 0, $indvars$iv1 = 0, $sum$0 = 0.0, $sumB$0 = 0.0, $sumB$1 = 0.0, $threshold$0 = 0, $threshold$1 = 0, $threshold$2 = 0, $varMax$0 = 0.0, $varMax$1 = 0.0, $wB$0 = 0.0; - $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; - if (($0 | 0) < 0) $$0 = $0; else { - $indvars$iv1 = 1; - $sum$0 = 0.0; +function __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_($__first, $__last, $__value_, $__comp) { + $__first = $__first | 0; + $__last = $__last | 0; + $__value_ = $__value_ | 0; + $__comp = $__comp | 0; + var $$0$ph = 0, $$0$ph$lcssa = 0, $$lcssa = 0, $4 = 0, $6 = 0, $__len$0 = 0, $__len$0$lcssa7 = 0, $__len$0$ph = 0; + $4 = HEAP32[$__value_ >> 2] | 0; + $$0$ph = $__first; + $__len$0$ph = $__last - $__first >> 2; + L1 : while (1) { + $__len$0 = $__len$0$ph; while (1) { - $6 = $sum$0 + +((Math_imul(HEAP32[$ipi + 16 + ($indvars$iv1 << 2) >> 2] | 0, $indvars$iv1) | 0) >>> 0); - $indvars$iv1 = $indvars$iv1 + 1 | 0; - if (($indvars$iv1 | 0) == 256) { + if (!$__len$0) { + $$0$ph$lcssa = $$0$ph; + break L1; + } + $6 = ($__len$0 | 0) / 2 | 0; + if ((HEAP32[$$0$ph + ($6 << 2) >> 2] | 0) >>> 0 < $4 >>> 0) { $$lcssa = $6; + $__len$0$lcssa7 = $__len$0; break; - } else $sum$0 = $6; + } else $__len$0 = $6; } - $12 = +(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0); - $indvars$iv = 0; - $sumB$0 = 0.0; - $threshold$0 = 0; - $varMax$0 = 0.0; - $wB$0 = 0.0; - while (1) { - $14 = HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0; - $wB$0 = $wB$0 + +($14 >>> 0); - if ($wB$0 != 0.0) { - $18 = $12 - $wB$0; - if ($18 == 0.0) { - $threshold$2 = $threshold$0; - break; - } - $22 = $sumB$0 + +((Math_imul($indvars$iv, $14) | 0) >>> 0); - $27 = $22 / $wB$0 - ($$lcssa - $22) / $18; - $29 = $27 * ($wB$0 * $18 * $27); - if ($29 > $varMax$0) { - $sumB$1 = $22; - $threshold$1 = $indvars$iv & 255; - $varMax$1 = $29; - } else { - $sumB$1 = $22; - $threshold$1 = $threshold$0; - $varMax$1 = $varMax$0; - } - } else { - $sumB$1 = $sumB$0; - $threshold$1 = $threshold$0; - $varMax$1 = $varMax$0; - } - if (($indvars$iv & 255) << 24 >> 24 == -1) { - $threshold$2 = $threshold$1; - break; + $$0$ph = $$0$ph + ($$lcssa + 1 << 2) | 0; + $__len$0$ph = $__len$0$lcssa7 + -1 - $$lcssa | 0; + } + return $$0$ph$lcssa | 0; +} + +function _request_virt_sarray($cinfo, $pool_id, $pre_zero, $samplesperrow, $numrows, $maxaccess) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $pre_zero = $pre_zero | 0; + $samplesperrow = $samplesperrow | 0; + $numrows = $numrows | 0; + $maxaccess = $maxaccess | 0; + var $1 = 0, $13 = 0, $3 = 0, $7 = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + if (($pool_id | 0) != 1) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 14; + HEAP32[$3 + 24 >> 2] = $pool_id; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = _alloc_small($cinfo, $pool_id, 128) | 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = $numrows; + HEAP32[$7 + 8 >> 2] = $samplesperrow; + HEAP32[$7 + 12 >> 2] = $maxaccess; + HEAP32[$7 + 32 >> 2] = $pre_zero; + HEAP32[$7 + 40 >> 2] = 0; + $13 = $1 + 68 | 0; + HEAP32[$7 + 44 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $7; + return $7 | 0; +} + +function _request_virt_barray($cinfo, $pool_id, $pre_zero, $blocksperrow, $numrows, $maxaccess) { + $cinfo = $cinfo | 0; + $pool_id = $pool_id | 0; + $pre_zero = $pre_zero | 0; + $blocksperrow = $blocksperrow | 0; + $numrows = $numrows | 0; + $maxaccess = $maxaccess | 0; + var $1 = 0, $13 = 0, $3 = 0, $7 = 0; + $1 = HEAP32[$cinfo + 4 >> 2] | 0; + if (($pool_id | 0) != 1) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 14; + HEAP32[$3 + 24 >> 2] = $pool_id; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = _alloc_small($cinfo, $pool_id, 128) | 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = $numrows; + HEAP32[$7 + 8 >> 2] = $blocksperrow; + HEAP32[$7 + 12 >> 2] = $maxaccess; + HEAP32[$7 + 32 >> 2] = $pre_zero; + HEAP32[$7 + 40 >> 2] = 0; + $13 = $1 + 72 | 0; + HEAP32[$7 + 44 >> 2] = HEAP32[$13 >> 2]; + HEAP32[$13 >> 2] = $7; + return $7 | 0; +} + +function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($agg$result, $__lhs, $__rhs) { + $agg$result = $agg$result | 0; + $__lhs = $__lhs | 0; + $__rhs = $__rhs | 0; + var $10 = 0, $2 = 0, $3 = 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + $2 = _strlen($__lhs) | 0; + $3 = HEAP8[$__rhs >> 0] | 0; + $10 = ($3 & 1) == 0 ? ($3 & 255) >>> 1 : HEAP32[$__rhs + 4 >> 2] | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $__lhs, $2, $10 + $2 | 0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, (HEAP8[$__rhs >> 0] & 1) == 0 ? $__rhs + 1 | 0 : HEAP32[$__rhs + 8 >> 2] | 0, $10) | 0; + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE26__swap_out_circular_bufferERNS_14__split_bufferIhRS2_EE($this, $__v) { + $this = $this | 0; + $__v = $__v | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $3 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = $this + 4 | 0; + $3 = $__v + 4 | 0; + $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; + $9 = (HEAP32[$3 >> 2] | 0) + (0 - $6) | 0; + HEAP32[$3 >> 2] = $9; + _memcpy($9 | 0, $0 | 0, $6 | 0) | 0; + $10 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $10; + $12 = $__v + 8 | 0; + $13 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = HEAP32[$12 >> 2]; + HEAP32[$12 >> 2] = $13; + $15 = $this + 8 | 0; + $16 = $__v + 12 | 0; + $17 = HEAP32[$15 >> 2] | 0; + HEAP32[$15 >> 2] = HEAP32[$16 >> 2]; + HEAP32[$16 >> 2] = $17; + HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + return; +} + +function _frexp($x, $e) { + $x = +$x; + $e = $e | 0; + var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, $7 = 0.0, $storemerge = 0; + HEAPF64[tempDoublePtr >> 3] = $x; + $0 = HEAP32[tempDoublePtr >> 2] | 0; + $1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; + $2 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0; + $4 = $2 & 2047; + switch ($4 | 0) { + case 0: + { + if ($x != 0.0) { + $7 = +_frexp($x * 18446744073709551616.0, $e); + $$01 = $7; + $storemerge = (HEAP32[$e >> 2] | 0) + -64 | 0; } else { - $indvars$iv = $indvars$iv + 1 | 0; - $sumB$0 = $sumB$1; - $threshold$0 = $threshold$1; - $varMax$0 = $varMax$1; + $$01 = $x; + $storemerge = 0; } + HEAP32[$e >> 2] = $storemerge; + $$0 = $$01; + break; + } + case 2047: + { + $$0 = $x; + break; + } + default: + { + HEAP32[$e >> 2] = $4 + -1022; + HEAP32[tempDoublePtr >> 2] = $0; + HEAP32[tempDoublePtr + 4 >> 2] = $1 & -2146435073 | 1071644672; + $$0 = +HEAPF64[tempDoublePtr >> 3]; + } + } + return +$$0; +} + +function ___fseeko_unlocked($f, $off, $whence) { + $f = $f | 0; + $off = $off | 0; + $whence = $whence | 0; + var $$0 = 0, $$01 = 0, $11 = 0, $9 = 0, label = 0; + if (($whence | 0) == 1) $$01 = $off - (HEAP32[$f + 8 >> 2] | 0) + (HEAP32[$f + 4 >> 2] | 0) | 0; else $$01 = $off; + $9 = $f + 20 | 0; + $11 = $f + 28 | 0; + if ((HEAP32[$9 >> 2] | 0) >>> 0 > (HEAP32[$11 >> 2] | 0) >>> 0) { + FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0; + if (!(HEAP32[$9 >> 2] | 0)) $$0 = -1; else label = 5; + } else label = 5; + if ((label | 0) == 5) { + HEAP32[$f + 16 >> 2] = 0; + HEAP32[$11 >> 2] = 0; + HEAP32[$9 >> 2] = 0; + if ((FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 63]($f, $$01, $whence) | 0) < 0) $$0 = -1; else { + HEAP32[$f + 8 >> 2] = 0; + HEAP32[$f + 4 >> 2] = 0; + HEAP32[$f >> 2] = HEAP32[$f >> 2] & -17; + $$0 = 0; } - HEAP8[$value_p >> 0] = $threshold$2; - $$0 = 0; } return $$0 | 0; } -function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($this) { +function __ZNSt3__115__num_get_floatIeEET_PKcS3_Rj($__a, $__a_end, $__err) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + var $$0 = 0.0, $1 = 0, $2 = 0, $4 = 0.0, $5 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + } else { + $1 = ___errno_location() | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = 0; + $4 = +_strtold_l($__a, $__p2, __ZNSt3__16__clocEv() | 0); + $5 = HEAP32[$1 >> 2] | 0; + if (!$5) HEAP32[$1 >> 2] = $2; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + break; + } + if (($5 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + $$0 = $4; + } else $$0 = $4; + } while (0); + STACKTOP = sp; + return +$$0; +} + +function __ZNSt3__115__num_get_floatIdEET_PKcS3_Rj($__a, $__a_end, $__err) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + var $$0 = 0.0, $1 = 0, $2 = 0, $4 = 0.0, $5 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + } else { + $1 = ___errno_location() | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = 0; + $4 = +_strtold_l($__a, $__p2, __ZNSt3__16__clocEv() | 0); + $5 = HEAP32[$1 >> 2] | 0; + if (!$5) HEAP32[$1 >> 2] = $2; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + break; + } + if (($5 | 0) == 34) { + HEAP32[$__err >> 2] = 4; + $$0 = $4; + } else $$0 = $4; + } while (0); + STACKTOP = sp; + return +$$0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE5clearEv($this) { $this = $this | 0; - __embind_register_void(624, 14202); - __embind_register_bool(632, 14207, 1, 1, 0); - __embind_register_integer(640, 13783, 1, -128, 127); - __embind_register_integer(656, 13788, 1, -128, 127); - __embind_register_integer(648, 13800, 1, 0, 255); - __embind_register_integer(664, 13814, 2, -32768, 32767); - __embind_register_integer(672, 13820, 2, 0, 65535); - __embind_register_integer(680, 14212, 4, -2147483648, 2147483647); - __embind_register_integer(688, 14216, 4, 0, -1); - __embind_register_integer(696, 14229, 4, -2147483648, 2147483647); - __embind_register_integer(704, 14234, 4, 0, -1); - __embind_register_float(712, 14277, 4); - __embind_register_float(720, 14283, 8); - __embind_register_std_string(360, 12846); - __embind_register_std_string(392, 10916); - __embind_register_std_wstring(416, 4, 10949); - __embind_register_emval(440, 10962); - __embind_register_memory_view(448, 0, 10978); - __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(11008); - __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(11045); - __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(11084); - __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(11115); - __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(11155); - __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(11184); - __embind_register_memory_view(456, 4, 11222); - __embind_register_memory_view(464, 5, 11252); - __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(11291); - __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(11323); - __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(11356); - __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(11389); - __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(11423); - __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(11456); - __embind_register_memory_view(472, 6, 11490); - __embind_register_memory_view(480, 7, 11521); - __embind_register_memory_view(488, 7, 11553); + var $0 = 0, $3 = 0, $6 = 0, $__i$03 = 0; + $0 = $this + 12 | 0; + if (HEAP32[$0 >> 2] | 0) { + $3 = $this + 8 | 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE12__deallocateEPNS_11__hash_nodeIS2_PvEE($this, HEAP32[$3 >> 2] | 0); + HEAP32[$3 >> 2] = 0; + $6 = HEAP32[$this + 4 >> 2] | 0; + if ($6) { + $__i$03 = 0; + do { + HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$03 << 2) >> 2] = 0; + $__i$03 = $__i$03 + 1 | 0; + } while (($__i$03 | 0) != ($6 | 0)); + } + HEAP32[$0 >> 2] = 0; + } return; } -function _arSetPixelFormat($handle, $pixFormat) { - $handle = $handle | 0; - $pixFormat = $pixFormat | 0; - var $$0 = 0, $1 = 0, $14 = 0, $16 = 0, $17 = 0, $4 = 0, $6 = 0, $7 = 0, $monoFormat$0 = 0, $vararg_buffer = 0, sp = 0; +function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($agg$result, $__lhs, $__rhs) { + $agg$result = $agg$result | 0; + $__lhs = $__lhs | 0; + $__rhs = $__rhs | 0; + var $10 = 0, $2 = 0, $4 = 0, $9 = 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + $2 = HEAP8[$__lhs >> 0] | 0; + $4 = ($2 & 1) == 0; + $9 = $4 ? ($2 & 255) >>> 1 : HEAP32[$__lhs + 4 >> 2] | 0; + $10 = _strlen($__rhs) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $4 ? $__lhs + 1 | 0 : HEAP32[$__lhs + 8 >> 2] | 0, $9, $9 + $10 | 0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, $__rhs, $10) | 0; + return; +} + +function __ZN6vision9MaxIndex9IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0, $index$2 = 0, $index$3 = 0, $index$4 = 0, $index$5 = 0, $index$6 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + $index$2 = +HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1; + $index$3 = +HEAPF32[$x + 16 >> 2] > +HEAPF32[$x + ($index$2 << 2) >> 2] ? 4 : $index$2; + $index$4 = +HEAPF32[$x + 20 >> 2] > +HEAPF32[$x + ($index$3 << 2) >> 2] ? 5 : $index$3; + $index$5 = +HEAPF32[$x + 24 >> 2] > +HEAPF32[$x + ($index$4 << 2) >> 2] ? 6 : $index$4; + $index$6 = +HEAPF32[$x + 28 >> 2] > +HEAPF32[$x + ($index$5 << 2) >> 2] ? 7 : $index$5; + return (+HEAPF32[$x + 32 >> 2] > +HEAPF32[$x + ($index$6 << 2) >> 2] ? 8 : $index$6) | 0; +} + +function _icpGetU_from_X_by_MatX2U($u, $matX2U, $coord3d) { + $u = $u | 0; + $matX2U = $matX2U | 0; + $coord3d = $coord3d | 0; + var $$0 = 0, $0 = 0.0, $18 = 0.0, $2 = 0.0, $33 = 0.0, $4 = 0.0; + $0 = +HEAPF64[$coord3d >> 3]; + $2 = +HEAPF64[$coord3d + 8 >> 3]; + $4 = +HEAPF64[$coord3d + 16 >> 3]; + $18 = +HEAPF64[$matX2U + 88 >> 3] + ($0 * +HEAPF64[$matX2U + 64 >> 3] + $2 * +HEAPF64[$matX2U + 72 >> 3] + $4 * +HEAPF64[$matX2U + 80 >> 3]); + if ($18 == 0.0) $$0 = -1; else { + $33 = +HEAPF64[$matX2U + 56 >> 3] + ($0 * +HEAPF64[$matX2U + 32 >> 3] + $2 * +HEAPF64[$matX2U + 40 >> 3] + $4 * +HEAPF64[$matX2U + 48 >> 3]); + HEAPF64[$u >> 3] = (+HEAPF64[$matX2U + 24 >> 3] + ($0 * +HEAPF64[$matX2U >> 3] + $2 * +HEAPF64[$matX2U + 8 >> 3] + $4 * +HEAPF64[$matX2U + 16 >> 3])) / $18; + HEAPF64[$u + 8 >> 3] = $33 / $18; + $$0 = 0; + } + return $$0 | 0; +} + +function __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPKhi($this, $features, $num_features) { + $this = $this | 0; + $features = $features | 0; + $num_features = $num_features | 0; + var $2 = 0, $6 = 0, $i$03 = 0, $indices = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - L1 : do if (!$handle) $$0 = -1; else { - $1 = $handle + 4 | 0; - if ((HEAP32[$1 >> 2] | 0) == ($pixFormat | 0)) $$0 = 0; else { - switch ($pixFormat | 0) { - case 11: - case 10: - case 9: - case 8: - case 7: - case 6: - case 4: - case 3: - case 2: - case 1: - case 0: - { - $monoFormat$0 = 0; - break; - } - case 14: - case 13: - case 12: - case 5: - { - $monoFormat$0 = 1; - break; - } - default: - { - HEAP32[$vararg_buffer >> 2] = $pixFormat; - _arLog(3, 3936, $vararg_buffer); - $$0 = -1; - break L1; - } - } - HEAP32[$1 >> 2] = $pixFormat; - $4 = _arUtilGetPixelSize($pixFormat) | 0; - HEAP32[$handle + 8 >> 2] = $4; - $6 = $handle + 7062408 | 0; - $7 = HEAP32[$6 >> 2] | 0; - if ($7) { - _arImageProcFinal($7); - $14 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$1 >> 2] | 0, 0) | 0; - HEAP32[$6 >> 2] = $14; - } - $16 = $handle + 24 | 0; - $17 = HEAP32[$16 >> 2] | 0; - if (!$monoFormat$0) switch ($17 | 0) { - case 1: - { - HEAP32[$16 >> 2] = 4; - $$0 = 0; - break L1; - break; - } - case 4: - { - HEAP32[$16 >> 2] = 3; - $$0 = 0; - break L1; - break; - } - default: - { - $$0 = 0; - break L1; - } - } else switch ($17 | 0) { - case 0: - { - HEAP32[$16 >> 2] = 1; - $$0 = 0; - break L1; - break; - } - case 3: - { - HEAP32[$16 >> 2] = 4; - $$0 = 0; - break L1; - break; - } - default: - { - $$0 = 0; - break L1; + $indices = sp; + __ZNSt3__16vectorIiNS_9allocatorIiEEEC2Ej($indices, $num_features); + $2 = HEAP32[$indices >> 2] | 0; + $6 = (HEAP32[$indices + 4 >> 2] | 0) - $2 >> 2; + if ($6) { + $i$03 = 0; + do { + HEAP32[$2 + ($i$03 << 2) >> 2] = $i$03; + $i$03 = $i$03 + 1 | 0; + } while (($i$03 | 0) != ($6 | 0)); + } + __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPKhiPKii($this, $features, $num_features, $2, $6); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($indices); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE6resizeEj($this, $__sz) { + $this = $this | 0; + $__sz = $__sz | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = ($1 - $2 | 0) / 12 | 0; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz * 12 | 0) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + do { + $12 = $13 + -12 | 0; + HEAP32[$0 >> 2] = $12; + __ZNSt3__113__vector_baseINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEED2Ev($12); + $13 = HEAP32[$0 >> 2] | 0; + } while (($13 | 0) != ($10 | 0)); + } + } + return; +} + +function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($this, $__x, $__a) { + $this = $this | 0; + $__x = $__x | 0; + $__a = $__a | 0; + var $0 = 0, $2 = 0, $5 = 0; + HEAP32[$this >> 2] = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = 0; + $2 = HEAP32[$__a >> 2] | 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = $2; + $5 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($2, 24) | 0; + HEAP32[$0 >> 2] = $5; + HEAP32[$this >> 2] = $5; + HEAP32[$this + 8 >> 2] = $5 + 24; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5, $__x); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5 + 12 | 0, $__x + 12 | 0); + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 24; + return; +} + +function _ar2FreeImageSet($imageSet) { + $imageSet = $imageSet | 0; + var $$0 = 0, $$lcssa = 0, $$pre = 0, $1 = 0, $7 = 0, $i$01 = 0; + if (!$imageSet) $$0 = -1; else { + $1 = HEAP32[$imageSet >> 2] | 0; + if (!$1) $$0 = -1; else { + if ((HEAP32[$1 + 4 >> 2] | 0) > 0) { + $7 = $1; + $i$01 = 0; + while (1) { + _free(HEAP32[HEAP32[(HEAP32[$7 >> 2] | 0) + ($i$01 << 2) >> 2] >> 2] | 0); + _free(HEAP32[(HEAP32[HEAP32[$imageSet >> 2] >> 2] | 0) + ($i$01 << 2) >> 2] | 0); + $i$01 = $i$01 + 1 | 0; + $$pre = HEAP32[$imageSet >> 2] | 0; + if (($i$01 | 0) >= (HEAP32[$$pre + 4 >> 2] | 0)) { + $$lcssa = $$pre; + break; + } else $7 = $$pre; } - } + } else $$lcssa = $1; + _free(HEAP32[$$lcssa >> 2] | 0); + _free(HEAP32[$imageSet >> 2] | 0); + HEAP32[$imageSet >> 2] = 0; + $$0 = 0; } - } while (0); - STACKTOP = sp; + } return $$0 | 0; } -function _confidenceCutoff($arHandle) { - $arHandle = $arHandle | 0; - var $11 = 0, $21 = 0, $3 = 0, $31 = 0, $37 = 0, $6 = 0, $9 = 0, $cfOK$0 = 0, $i$010 = 0, $i$112 = 0, $i$29 = 0; - switch (HEAP32[$arHandle + 24 >> 2] | 0) { +function _jpeg_read_header($cinfo, $require_image) { + $cinfo = $cinfo | 0; + $require_image = $require_image | 0; + var $$pre$phiZ2D = 0, $1 = 0, $3 = 0, $7 = 0, $9 = 0, $retcode$0 = 0; + $1 = HEAP32[$cinfo + 20 >> 2] | 0; + if (($1 & -2 | 0) != 200) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 20; + HEAP32[$3 + 24 >> 2] = $1; + FUNCTION_TABLE_vi[HEAP32[$3 >> 2] & 255]($cinfo); + } + $7 = _jpeg_consume_input($cinfo) | 0; + switch ($7 | 0) { case 1: - case 0: { - $6 = HEAP32[$arHandle + 44 >> 2] | 0; - if (($6 | 0) > 0) { - $i$010 = 0; - do { - $11 = $arHandle + 48 + ($i$010 << 8) + 4 | 0; - if ((HEAP32[$11 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$010 << 8) + 32 >> 3] < .5) { - HEAP32[$arHandle + 48 + ($i$010 << 8) + 8 >> 2] = -1; - HEAP32[$11 >> 2] = -1; - HEAP32[$arHandle + 48 + ($i$010 << 8) + 236 >> 2] = 6; - } - $i$010 = $i$010 + 1 | 0; - } while (($i$010 | 0) < ($6 | 0)); - } + $retcode$0 = 1; break; } case 2: { - $3 = HEAP32[$arHandle + 44 >> 2] | 0; - if (($3 | 0) > 0) { - $i$112 = 0; - do { - $21 = $arHandle + 48 + ($i$112 << 8) + 4 | 0; - if ((HEAP32[$21 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$112 << 8) + 32 >> 3] < .5) { - HEAP32[$arHandle + 48 + ($i$112 << 8) + 12 >> 2] = -1; - HEAP32[$21 >> 2] = -1; - HEAP32[$arHandle + 48 + ($i$112 << 8) + 236 >> 2] = 6; - } - $i$112 = $i$112 + 1 | 0; - } while (($i$112 | 0) < ($3 | 0)); - } + if (!$require_image) $$pre$phiZ2D = $cinfo; else { + $9 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$9 + 20 >> 2] = 51; + FUNCTION_TABLE_vi[HEAP32[$9 >> 2] & 255]($cinfo); + $$pre$phiZ2D = $cinfo; + } + _jpeg_abort($$pre$phiZ2D); + $retcode$0 = 2; break; } default: - { - $9 = HEAP32[$arHandle + 44 >> 2] | 0; - if (($9 | 0) > 0) { - $i$29 = 0; - do { - $31 = $arHandle + 48 + ($i$29 << 8) + 8 | 0; - if ((HEAP32[$31 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 40 >> 3] < .5) { - HEAP32[$31 >> 2] = -1; - $cfOK$0 = 0; - } else $cfOK$0 = 1; else $cfOK$0 = 1; - $37 = $arHandle + 48 + ($i$29 << 8) + 12 | 0; - if ((HEAP32[$37 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 48 >> 3] < .5) { - HEAP32[$37 >> 2] = -1; - if (!$cfOK$0) HEAP32[$arHandle + 48 + ($i$29 << 8) + 236 >> 2] = 6; - } - $i$29 = $i$29 + 1 | 0; - } while (($i$29 | 0) < ($9 | 0)); - } - } + $retcode$0 = $7; } - return; + return $retcode$0 | 0; } -function ___stpcpy($d, $s) { - $d = $d | 0; - $s = $s | 0; - var $$0$lcssa = 0, $$01$lcssa = 0, $$0115 = 0, $$016 = 0, $$03 = 0, $$1$ph = 0, $$12$ph = 0, $$128 = 0, $$19 = 0, $0 = 0, $10 = 0, $14 = 0, $20 = 0, $21 = 0, $22 = 0, $29 = 0, $32 = 0, $33 = 0, $7 = 0, $9 = 0, $wd$0$lcssa = 0, $wd$010 = 0, $ws$0$lcssa = 0, $ws$011 = 0, label = 0; - $0 = $s; - L1 : do if (!(($0 ^ $d) & 3)) { - if (!($0 & 3)) { - $$0$lcssa = $s; - $$01$lcssa = $d; - } else { - $$0115 = $d; - $$016 = $s; - while (1) { - $7 = HEAP8[$$016 >> 0] | 0; - HEAP8[$$0115 >> 0] = $7; - if (!($7 << 24 >> 24)) { - $$03 = $$0115; +function __ZNSt3__114__num_put_base18__identify_paddingEPcS1_RKNS_8ios_baseE($__nb, $__ne, $__iob) { + $__nb = $__nb | 0; + $__ne = $__ne | 0; + $__iob = $__iob | 0; + var $$0 = 0, $3 = 0, label = 0; + L1 : do switch (HEAP32[$__iob + 4 >> 2] & 176 | 0) { + case 16: + { + $3 = HEAP8[$__nb >> 0] | 0; + switch ($3 << 24 >> 24) { + case 43: + case 45: + { + $$0 = $__nb + 1 | 0; break L1; - } - $9 = $$016 + 1 | 0; - $10 = $$0115 + 1 | 0; - if (!($9 & 3)) { - $$0$lcssa = $9; - $$01$lcssa = $10; break; - } else { - $$0115 = $10; - $$016 = $9; } + default: + {} } - } - $14 = HEAP32[$$0$lcssa >> 2] | 0; - if (!(($14 & -2139062144 ^ -2139062144) & $14 + -16843009)) { - $22 = $14; - $wd$010 = $$01$lcssa; - $ws$011 = $$0$lcssa; - while (1) { - $20 = $ws$011 + 4 | 0; - $21 = $wd$010 + 4 | 0; - HEAP32[$wd$010 >> 2] = $22; - $22 = HEAP32[$20 >> 2] | 0; - if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) { - $wd$0$lcssa = $21; - $ws$0$lcssa = $20; + if (($__ne - $__nb | 0) > 1 & $3 << 24 >> 24 == 48) { + switch (HEAP8[$__nb + 1 >> 0] | 0) { + case 88: + case 120: break; - } else { - $wd$010 = $21; - $ws$011 = $20; + default: + { + label = 7; + break L1; + } } - } - } else { - $wd$0$lcssa = $$01$lcssa; - $ws$0$lcssa = $$0$lcssa; + $$0 = $__nb + 2 | 0; + } else label = 7; + break; } - $$1$ph = $ws$0$lcssa; - $$12$ph = $wd$0$lcssa; - label = 8; - } else { - $$1$ph = $s; - $$12$ph = $d; - label = 8; - } while (0); - if ((label | 0) == 8) { - $29 = HEAP8[$$1$ph >> 0] | 0; - HEAP8[$$12$ph >> 0] = $29; - if (!($29 << 24 >> 24)) $$03 = $$12$ph; else { - $$128 = $$12$ph; - $$19 = $$1$ph; - while (1) { - $$19 = $$19 + 1 | 0; - $32 = $$128 + 1 | 0; - $33 = HEAP8[$$19 >> 0] | 0; - HEAP8[$32 >> 0] = $33; - if (!($33 << 24 >> 24)) { - $$03 = $32; - break; - } else $$128 = $32; - } + case 32: + { + $$0 = $__ne; + break; } + default: + label = 7; + } while (0); + if ((label | 0) == 7) $$0 = $__nb; + return $$0 | 0; +} + +function _process_restart($cinfo) { + $cinfo = $cinfo | 0; + var $$0 = 0, $1 = 0, $14 = 0, $2 = 0, $6 = 0, $7 = 0, $ci$01 = 0; + $1 = HEAP32[$cinfo + 444 >> 2] | 0; + $2 = $1 + 16 | 0; + $6 = HEAP32[$cinfo + 440 >> 2] | 0; + $7 = $6 + 24 | 0; + HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + ((HEAP32[$2 >> 2] | 0) / 8 | 0); + HEAP32[$2 >> 2] = 0; + if (!(FUNCTION_TABLE_ii[HEAP32[$6 + 8 >> 2] & 127]($cinfo) | 0)) $$0 = 0; else { + $14 = $cinfo + 328 | 0; + if ((HEAP32[$14 >> 2] | 0) > 0) { + $ci$01 = 0; + do { + HEAP32[$1 + 24 + ($ci$01 << 2) >> 2] = 0; + $ci$01 = $ci$01 + 1 | 0; + } while (($ci$01 | 0) < (HEAP32[$14 >> 2] | 0)); + } + HEAP32[$1 + 20 >> 2] = 0; + HEAP32[$1 + 40 >> 2] = HEAP32[$cinfo + 276 >> 2]; + if (!(HEAP32[$cinfo + 416 >> 2] | 0)) { + HEAP32[$1 + 8 >> 2] = 0; + $$0 = 1; + } else $$0 = 1; } - return $$03 | 0; + return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { +function _getMatrixCodeType($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $4 = 0, $matrixType = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $matrixType = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + _arGetMatrixCodeType(HEAP32[$4 >> 2] | 0, $matrixType) | 0; + $$0 = HEAP32[$matrixType >> 2] | 0; + } + STACKTOP = sp; + return $$0 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) { $first = $first | 0; $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $10 = 0, $17 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $t$0 = 0, $t$0$lcssa = 0, $t$0$looptemp = 0; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else switch (HEAP8[$first >> 0] | 0) { - case 88: - { - $3 = $first + 1 | 0; - $4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($3, $last, $db) | 0; - if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) { - $$0 = $first; - break L1; + var $$0 = 0, $$1 = 0, $$first = 0, $5 = 0, $t$0$pn = 0; + L1 : do if (($first | 0) == ($last | 0)) $$1 = $first; else { + $$first = (HEAP8[$first >> 0] | 0) == 110 ? $first + 1 | 0 : $first; + if (($$first | 0) == ($last | 0)) $$1 = $first; else { + $5 = HEAP8[$$first >> 0] | 0; + if ($5 << 24 >> 24 == 48) { + $$1 = $$first + 1 | 0; + break; } - $$0 = (HEAP8[$4 >> 0] | 0) == 69 ? $4 + 1 | 0 : $first; - break L1; - break; - } - case 74: - { - $10 = $first + 1 | 0; - if (($10 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } else $t$0 = $10; - while (1) { - if ((HEAP8[$t$0 >> 0] | 0) == 69) { - $t$0$lcssa = $t$0; - break; - } - $t$0$looptemp = $t$0; - $t$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0; - if (($t$0 | 0) == ($t$0$looptemp | 0)) { - $$0 = $first; - break L1; + if (($5 + -49 & 255) < 9) { + $t$0$pn = $$first; + while (1) { + $$0 = $t$0$pn + 1 | 0; + if (($$0 | 0) == ($last | 0)) { + $$1 = $last; + break L1; + } + if (((HEAP8[$$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $t$0$pn = $$0; else { + $$1 = $$0; + break; + } } - } - $$0 = $t$0$lcssa + 1 | 0; - break L1; - break; + } else $$1 = $first; } - case 76: - { - $17 = $first + 1 | 0; - if (($17 | 0) != ($last | 0)) if ((HEAP8[$17 >> 0] | 0) == 90) { - $21 = $first + 2 | 0; - $22 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0; - if (($22 | 0) == ($21 | 0) | ($22 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - return ((HEAP8[$22 >> 0] | 0) == 69 ? $22 + 1 | 0 : $first) | 0; - } - $$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; - break; + } while (0); + return $$1 | 0; +} + +function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($this) { + $this = $this | 0; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($1 | 0)) { + $6 = $3; + do { + $5 = $6 + -16 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($1 | 0)); + } + $9 = HEAP32[$this >> 2] | 0; + if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); + return; +} + +function __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this) { + $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($0 | 0)) { + $6 = $3; + do { + $5 = $6 + -16 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($0 | 0)); } - default: - { - $$0 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - break L1; + $9 = HEAP32[$this >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); + } + return; +} + +function __ZNSt3__115__num_get_floatIfEET_PKcS3_Rj($__a, $__a_end, $__err) { + $__a = $__a | 0; + $__a_end = $__a_end | 0; + $__err = $__err | 0; + var $$0 = 0.0, $1 = 0, $2 = 0, $4 = 0.0, $5 = 0, $__p2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p2 = sp; + do if (($__a | 0) == ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + } else { + $1 = ___errno_location() | 0; + $2 = HEAP32[$1 >> 2] | 0; + HEAP32[$1 >> 2] = 0; + $4 = +_strtold_l($__a, $__p2, __ZNSt3__16__clocEv() | 0); + $5 = HEAP32[$1 >> 2] | 0; + if (!$5) HEAP32[$1 >> 2] = $2; + if ((HEAP32[$__p2 >> 2] | 0) != ($__a_end | 0)) { + HEAP32[$__err >> 2] = 4; + $$0 = 0.0; + break; } + if (($5 | 0) == 34) HEAP32[$__err >> 2] = 4; + $$0 = $4; } while (0); - return $$0 | 0; + STACKTOP = sp; + return +$$0; } -function _vfprintf($f, $fmt, $ap) { - $f = $f | 0; - $fmt = $fmt | 0; - $ap = $ap | 0; - var $$ = 0, $$0 = 0, $12 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $28 = 0, $33 = 0, $6 = 0, $7 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0, $ret$1 = 0, dest = 0, sp = 0, stop = 0; +function __ZNKSt3__17codecvtIDsc11__mbstate_tE6do_outERS1_PKDsS5_RS5_PcS7_RS7_($this, $0, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $1 = 0, $_frm_nxt = 0, $_to_nxt = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 224 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ap2 = sp + 80 | 0; - $nl_type = sp + 96 | 0; - $nl_arg = sp; - $internal_buf = sp + 136 | 0; - dest = $nl_type; - stop = dest + 40 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2]; - if ((_printf_core(0, $fmt, $ap2, $nl_arg, $nl_type) | 0) < 0) $$0 = -1; else { - if ((HEAP32[$f + 76 >> 2] | 0) > -1) $33 = ___lockfile($f) | 0; else $33 = 0; - $6 = HEAP32[$f >> 2] | 0; - $7 = $6 & 32; - if ((HEAP8[$f + 74 >> 0] | 0) < 1) HEAP32[$f >> 2] = $6 & -33; - $12 = $f + 48 | 0; - if (!(HEAP32[$12 >> 2] | 0)) { - $16 = $f + 44 | 0; - $17 = HEAP32[$16 >> 2] | 0; - HEAP32[$16 >> 2] = $internal_buf; - $18 = $f + 28 | 0; - HEAP32[$18 >> 2] = $internal_buf; - $19 = $f + 20 | 0; - HEAP32[$19 >> 2] = $internal_buf; - HEAP32[$12 >> 2] = 80; - $21 = $f + 16 | 0; - HEAP32[$21 >> 2] = $internal_buf + 80; - $22 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; - if (!$17) $ret$1 = $22; else { - FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0; - $$ = (HEAP32[$19 >> 2] | 0) == 0 ? -1 : $22; - HEAP32[$16 >> 2] = $17; - HEAP32[$12 >> 2] = 0; - HEAP32[$21 >> 2] = 0; - HEAP32[$18 >> 2] = 0; - HEAP32[$19 >> 2] = 0; - $ret$1 = $$; - } - } else $ret$1 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0; - $28 = HEAP32[$f >> 2] | 0; - HEAP32[$f >> 2] = $28 | $7; - if ($33) ___unlockfile($f); - $$0 = ($28 & 32 | 0) == 0 ? $ret$1 : -1; + $_frm_nxt = sp + 4 | 0; + $_to_nxt = sp; + HEAP32[$_frm_nxt >> 2] = $frm; + HEAP32[$_to_nxt >> 2] = $to; + $1 = __ZNSt3__1L13utf16_to_utf8EPKtS1_RS1_PhS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $_frm_nxt, $to, $to_end, $_to_nxt, 1114111, 0) | 0; + HEAP32[$frm_nxt >> 2] = HEAP32[$_frm_nxt >> 2]; + HEAP32[$to_nxt >> 2] = HEAP32[$_to_nxt >> 2]; + STACKTOP = sp; + return $1 | 0; +} + +function __ZNKSt3__17codecvtIDsc11__mbstate_tE5do_inERS1_PKcS5_RS5_PDsS7_RS7_($this, $0, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $1 = 0, $_frm_nxt = 0, $_to_nxt = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $_frm_nxt = sp + 4 | 0; + $_to_nxt = sp; + HEAP32[$_frm_nxt >> 2] = $frm; + HEAP32[$_to_nxt >> 2] = $to; + $1 = __ZNSt3__1L13utf8_to_utf16EPKhS1_RS1_PtS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $_frm_nxt, $to, $to_end, $_to_nxt, 1114111, 0) | 0; + HEAP32[$frm_nxt >> 2] = HEAP32[$_frm_nxt >> 2]; + HEAP32[$to_nxt >> 2] = HEAP32[$_to_nxt >> 2]; + STACKTOP = sp; + return $1 | 0; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE6do_outERS1_PKDiS5_RS5_PcS7_RS7_($this, $0, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $1 = 0, $_frm_nxt = 0, $_to_nxt = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $_frm_nxt = sp + 4 | 0; + $_to_nxt = sp; + HEAP32[$_frm_nxt >> 2] = $frm; + HEAP32[$_to_nxt >> 2] = $to; + $1 = __ZNSt3__1L12ucs4_to_utf8EPKjS1_RS1_PhS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $_frm_nxt, $to, $to_end, $_to_nxt, 1114111, 0) | 0; + HEAP32[$frm_nxt >> 2] = HEAP32[$_frm_nxt >> 2]; + HEAP32[$to_nxt >> 2] = HEAP32[$_to_nxt >> 2]; + STACKTOP = sp; + return $1 | 0; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE5do_inERS1_PKcS5_RS5_PDiS7_RS7_($this, $0, $frm, $frm_end, $frm_nxt, $to, $to_end, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $to_end = $to_end | 0; + $to_nxt = $to_nxt | 0; + var $1 = 0, $_frm_nxt = 0, $_to_nxt = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $_frm_nxt = sp + 4 | 0; + $_to_nxt = sp; + HEAP32[$_frm_nxt >> 2] = $frm; + HEAP32[$_to_nxt >> 2] = $to; + $1 = __ZNSt3__1L12utf8_to_ucs4EPKhS1_RS1_PjS3_RS3_mNS_12codecvt_modeE($frm, $frm_end, $_frm_nxt, $to, $to_end, $_to_nxt, 1114111, 0) | 0; + HEAP32[$frm_nxt >> 2] = HEAP32[$_frm_nxt >> 2]; + HEAP32[$to_nxt >> 2] = HEAP32[$_to_nxt >> 2]; + STACKTOP = sp; + return $1 | 0; +} + +function __ZNSt3__111__stdoutbufIwEC2EP8_IO_FILEP11__mbstate_t($this, $__fp, $__st) { + $this = $this | 0; + $__fp = $__fp | 0; + $__st = $__st | 0; + var $0 = 0, $1 = 0, $13 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $1 = sp; + __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev($this); + HEAP32[$this >> 2] = 11564; + HEAP32[$this + 32 >> 2] = $__fp; + __ZNSt3__16localeC2ERKS0_($0, $this + 4 | 0); + HEAP32[$1 >> 2] = HEAP32[$0 >> 2]; + $6 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13748) | 0; + __ZNSt3__16localeD2Ev($1); + HEAP32[$this + 36 >> 2] = $6; + HEAP32[$this + 40 >> 2] = $__st; + $13 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$6 >> 2] | 0) + 28 >> 2] & 127]($6) | 0) & 1; + HEAP8[$this + 44 >> 0] = $13; + STACKTOP = sp; + return; +} + +function __ZNSt3__111__stdoutbufIcEC2EP8_IO_FILEP11__mbstate_t($this, $__fp, $__st) { + $this = $this | 0; + $__fp = $__fp | 0; + $__st = $__st | 0; + var $0 = 0, $1 = 0, $13 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $1 = sp; + __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev($this); + HEAP32[$this >> 2] = 11692; + HEAP32[$this + 32 >> 2] = $__fp; + __ZNSt3__16localeC2ERKS0_($0, $this + 4 | 0); + HEAP32[$1 >> 2] = HEAP32[$0 >> 2]; + $6 = __ZNKSt3__16locale9use_facetERNS0_2idE($1, 13740) | 0; + __ZNSt3__16localeD2Ev($1); + HEAP32[$this + 36 >> 2] = $6; + HEAP32[$this + 40 >> 2] = $__st; + $13 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$6 >> 2] | 0) + 28 >> 2] & 127]($6) | 0) & 1; + HEAP8[$this + 44 >> 0] = $13; + STACKTOP = sp; + return; +} + +function _use_merged_upsample($cinfo) { + $cinfo = $cinfo | 0; + var $19 = 0, $39 = 0; + if (!(HEAP32[$cinfo + 76 >> 2] | 0)) if (!(HEAP32[$cinfo + 300 >> 2] | 0)) if ((HEAP32[$cinfo + 40 >> 2] | 0) == 3) if ((HEAP32[$cinfo + 36 >> 2] | 0) == 3) if ((HEAP32[$cinfo + 44 >> 2] | 0) == 2) if ((HEAP32[$cinfo + 120 >> 2] | 0) == 3) { + $19 = HEAP32[$cinfo + 216 >> 2] | 0; + if ((HEAP32[$19 + 8 >> 2] | 0) == 2) if ((HEAP32[$19 + 92 >> 2] | 0) == 1) if ((HEAP32[$19 + 176 >> 2] | 0) == 1) if ((HEAP32[$19 + 12 >> 2] | 0) <= 2) if ((HEAP32[$19 + 96 >> 2] | 0) == 1) if ((HEAP32[$19 + 180 >> 2] | 0) == 1) { + $39 = HEAP32[$19 + 36 >> 2] | 0; + if (($39 | 0) == (HEAP32[$cinfo + 316 >> 2] | 0)) if ((HEAP32[$19 + 120 >> 2] | 0) == ($39 | 0)) return (HEAP32[$19 + 204 >> 2] | 0) == ($39 | 0) | 0; + } + } + return 0; +} + +function _getDebugMode($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $4 = 0, $enable = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $enable = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = 0; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + _arGetDebugMode(HEAP32[$4 >> 2] | 0, $enable) | 0; + $$0 = HEAP32[$enable >> 2] | 0; } STACKTOP = sp; return $$0 | 0; } -function _get_vertex($x_coord, $y_coord, $st, $ed, $thresh, $vertex, $vnum) { - $x_coord = $x_coord | 0; - $y_coord = $y_coord | 0; - $st = $st | 0; - $ed = $ed | 0; - $thresh = +$thresh; - $vertex = $vertex | 0; - $vnum = $vnum | 0; - var $$0 = 0, $1 = 0, $11 = 0.0, $15 = 0.0, $16 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $39 = 0, $5 = 0.0, $7 = 0, $9 = 0, $dmax$0$lcssa = 0.0, $dmax$01 = 0.0, $dmax$1 = 0.0, $i$02 = 0, $v1$0$lcssa = 0, $v1$03 = 0, $v1$1 = 0, label = 0; - $1 = HEAP32[$y_coord + ($ed << 2) >> 2] | 0; - $3 = HEAP32[$y_coord + ($st << 2) >> 2] | 0; - $5 = +($1 - $3 | 0); - $7 = HEAP32[$x_coord + ($st << 2) >> 2] | 0; - $9 = HEAP32[$x_coord + ($ed << 2) >> 2] | 0; - $11 = +($7 - $9 | 0); - $15 = +((Math_imul($9, $3) | 0) - (Math_imul($7, $1) | 0) | 0); - $16 = $st + 1 | 0; - if (($16 | 0) < ($ed | 0)) { - $dmax$01 = 0.0; - $i$02 = $16; - $v1$03 = $16; - while (1) { - $27 = $15 + ($5 * +(HEAP32[$x_coord + ($i$02 << 2) >> 2] | 0) + $11 * +(HEAP32[$y_coord + ($i$02 << 2) >> 2] | 0)); - $28 = $27 * $27; - $29 = $28 > $dmax$01; - $dmax$1 = $29 ? $28 : $dmax$01; - $v1$1 = $29 ? $i$02 : $v1$03; - $i$02 = $i$02 + 1 | 0; - if (($i$02 | 0) >= ($ed | 0)) { - $dmax$0$lcssa = $dmax$1; - $v1$0$lcssa = $v1$1; +function _ungetc($c, $f) { + $c = $c | 0; + $f = $f | 0; + var $$0 = 0, $10 = 0, $11 = 0, $17 = 0, $19 = 0, label = 0; + do if (($c | 0) == -1) $$0 = -1; else { + if ((HEAP32[$f + 76 >> 2] | 0) > -1) $17 = ___lockfile($f) | 0; else $17 = 0; + if (!(HEAP32[$f + 8 >> 2] | 0)) { + if (!(___toread($f) | 0)) label = 6; + } else label = 6; + if ((label | 0) == 6) { + $10 = $f + 4 | 0; + $11 = HEAP32[$10 >> 2] | 0; + if ($11 >>> 0 > ((HEAP32[$f + 44 >> 2] | 0) + -8 | 0) >>> 0) { + $19 = $11 + -1 | 0; + HEAP32[$10 >> 2] = $19; + HEAP8[$19 >> 0] = $c; + HEAP32[$f >> 2] = HEAP32[$f >> 2] & -17; + if (!$17) { + $$0 = $c; + break; + } + ___unlockfile($f); + $$0 = $c; break; - } else { - $dmax$01 = $dmax$1; - $v1$03 = $v1$1; } } - } else { - $dmax$0$lcssa = 0.0; - $v1$0$lcssa = $16; + if (!$17) $$0 = -1; else { + ___unlockfile($f); + $$0 = -1; + } + } while (0); + return $$0 | 0; +} + +function _realloc($oldmem, $bytes) { + $oldmem = $oldmem | 0; + $bytes = $bytes | 0; + var $12 = 0, $15 = 0, $20 = 0, $3 = 0, $9 = 0, $mem$0 = 0; + if (!$oldmem) { + $mem$0 = _malloc($bytes) | 0; + return $mem$0 | 0; + } + if ($bytes >>> 0 > 4294967231) { + $3 = ___errno_location() | 0; + HEAP32[$3 >> 2] = 12; + $mem$0 = 0; + return $mem$0 | 0; + } + $9 = _try_realloc_chunk($oldmem + -8 | 0, $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8) | 0; + if ($9) { + $mem$0 = $9 + 8 | 0; + return $mem$0 | 0; + } + $12 = _malloc($bytes) | 0; + if (!$12) { + $mem$0 = 0; + return $mem$0 | 0; + } + $15 = HEAP32[$oldmem + -4 >> 2] | 0; + $20 = ($15 & -8) - (($15 & 3 | 0) == 0 ? 8 : 4) | 0; + _memcpy($12 | 0, $oldmem | 0, ($20 >>> 0 < $bytes >>> 0 ? $20 : $bytes) | 0) | 0; + _free($oldmem); + $mem$0 = $12; + return $mem$0 | 0; +} + +function __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryD2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $16 = 0, $21 = 0, $27 = 0, $31 = 0, $4 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $4 = HEAP32[(HEAP32[$1 >> 2] | 0) + -12 >> 2] | 0; + if (HEAP32[$1 + ($4 + 24) >> 2] | 0) if (!(HEAP32[$1 + ($4 + 16) >> 2] | 0)) if (HEAP32[$1 + ($4 + 4) >> 2] & 8192) if (!(__ZSt18uncaught_exceptionv() | 0)) { + $16 = HEAP32[$0 >> 2] | 0; + $21 = HEAP32[$16 + ((HEAP32[(HEAP32[$16 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$21 >> 2] | 0) + 24 >> 2] & 127]($21) | 0) == -1) { + $27 = HEAP32[$0 >> 2] | 0; + $31 = $27 + ((HEAP32[(HEAP32[$27 >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1; + } } - if ($dmax$0$lcssa / ($5 * $5 + $11 * $11) > $thresh) if ((_get_vertex($x_coord, $y_coord, $st, $v1$0$lcssa, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else { - $39 = HEAP32[$vnum >> 2] | 0; - if (($39 | 0) > 5) $$0 = -1; else { - HEAP32[$vertex + ($39 << 2) >> 2] = $v1$0$lcssa; - HEAP32[$vnum >> 2] = (HEAP32[$vnum >> 2] | 0) + 1; - if ((_get_vertex($x_coord, $y_coord, $v1$0$lcssa, $ed, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else label = 7; + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $16 = 0, $21 = 0, $27 = 0, $31 = 0, $4 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $4 = HEAP32[(HEAP32[$1 >> 2] | 0) + -12 >> 2] | 0; + if (HEAP32[$1 + ($4 + 24) >> 2] | 0) if (!(HEAP32[$1 + ($4 + 16) >> 2] | 0)) if (HEAP32[$1 + ($4 + 4) >> 2] & 8192) if (!(__ZSt18uncaught_exceptionv() | 0)) { + $16 = HEAP32[$0 >> 2] | 0; + $21 = HEAP32[$16 + ((HEAP32[(HEAP32[$16 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$21 >> 2] | 0) + 24 >> 2] & 127]($21) | 0) == -1) { + $27 = HEAP32[$0 >> 2] | 0; + $31 = $27 + ((HEAP32[(HEAP32[$27 >> 2] | 0) + -12 >> 2] | 0) + 16) | 0; + HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1; } - } else label = 7; - if ((label | 0) == 7) $$0 = 0; - return $$0 | 0; + } + return; } -function _setMarkerInfoVertex($id, $markerIndex) { - $id = $id | 0; - $markerIndex = $markerIndex | 0; - var $$0 = 0, $0 = 0, $13 = 0.0, $15 = 0.0, $17 = 0.0, $19 = 0.0, $21 = 0.0, $23 = 0.0, $25 = 0.0, $27 = 0.0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0; +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11__get_year4ERiRS4_S4_RjRKNS_5ctypeIwEE($this, $__y, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__y = $__y | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $$byval_copy = sp + 4 | 0; $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { - $_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0; - $13 = +HEAPF64[33]; - HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3] = $13; - $15 = +HEAPF64[34]; - HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3] = $15; - $17 = +HEAPF64[35]; - HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3] = $17; - $19 = +HEAPF64[36]; - HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3] = $19; - $21 = +HEAPF64[37]; - HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3] = $21; - $23 = +HEAPF64[38]; - HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3] = $23; - $25 = +HEAPF64[39]; - HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3] = $25; - $27 = +HEAPF64[40]; - HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3] = $27; - HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3] = ($13 + $17 + $21 + $25) * .25; - HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3] = ($15 + $19 + $23 + $27) * .25; - $$0 = 0; - break; - } else { - $$0 = HEAP32[523] | 0; - break; - } - } while (0); + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 4) | 0; + if (!(HEAP32[$__err >> 2] & 4)) HEAP32[$__y >> 2] = $2 + -1900; STACKTOP = sp; - return $$0 | 0; + return; } -function ___stdio_read($f, $buf, $len) { - $f = $f | 0; - $buf = $buf | 0; - $len = $len | 0; - var $$0 = 0, $0 = 0, $1 = 0, $15 = 0, $2 = 0, $27 = 0, $30 = 0, $31 = 0, $32 = 0, $7 = 0, $cnt$0 = 0, $iov = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0; +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11__get_year4ERiRS4_S4_RjRKNS_5ctypeIcEE($this, $__y, $__b, $__e, $__err, $__ct) { + $this = $this | 0; + $__y = $__y | 0; + $__b = $__b | 0; + $__e = $__e | 0; + $__err = $__err | 0; + $__ct = $__ct | 0; + var $$byval_copy = 0, $0 = 0, $2 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer = sp; - $iov = sp + 32 | 0; - HEAP32[$iov >> 2] = $buf; - $0 = $iov + 4 | 0; - $1 = $f + 48 | 0; - $2 = HEAP32[$1 >> 2] | 0; - HEAP32[$0 >> 2] = $len - (($2 | 0) != 0 & 1); - $7 = $f + 44 | 0; - HEAP32[$iov + 8 >> 2] = HEAP32[$7 >> 2]; - HEAP32[$iov + 12 >> 2] = $2; - if (!(HEAP32[597] | 0)) { - HEAP32[$vararg_buffer3 >> 2] = HEAP32[$f + 60 >> 2]; - HEAP32[$vararg_buffer3 + 4 >> 2] = $iov; - HEAP32[$vararg_buffer3 + 8 >> 2] = 2; - $cnt$0 = ___syscall_ret(___syscall145(145, $vararg_buffer3 | 0) | 0) | 0; - } else { - _pthread_cleanup_push(13, $f | 0); - HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; - HEAP32[$vararg_buffer + 4 >> 2] = $iov; - HEAP32[$vararg_buffer + 8 >> 2] = 2; - $15 = ___syscall_ret(___syscall145(145, $vararg_buffer | 0) | 0) | 0; - _pthread_cleanup_pop(0); - $cnt$0 = $15; - } - if (($cnt$0 | 0) < 1) { - HEAP32[$f >> 2] = HEAP32[$f >> 2] | $cnt$0 & 48 ^ 16; - HEAP32[$f + 8 >> 2] = 0; - HEAP32[$f + 4 >> 2] = 0; - $$0 = $cnt$0; - } else { - $27 = HEAP32[$0 >> 2] | 0; - if ($cnt$0 >>> 0 > $27 >>> 0) { - $30 = HEAP32[$7 >> 2] | 0; - $31 = $f + 4 | 0; - HEAP32[$31 >> 2] = $30; - $32 = $30; - HEAP32[$f + 8 >> 2] = $32 + ($cnt$0 - $27); - if (!(HEAP32[$1 >> 2] | 0)) $$0 = $len; else { - HEAP32[$31 >> 2] = $32 + 1; - HEAP8[$buf + ($len + -1) >> 0] = HEAP8[$32 >> 0] | 0; - $$0 = $len; - } - } else $$0 = $cnt$0; - } + $$byval_copy = sp + 4 | 0; + $0 = sp; + HEAP32[$0 >> 2] = HEAP32[$__e >> 2]; + HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; + $2 = __ZNSt3__120__get_up_to_n_digitsIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEiRT0_S5_RjRKNS_5ctypeIT_EEi($__b, $$byval_copy, $__err, $__ct, 4) | 0; + if (!(HEAP32[$__err >> 2] & 4)) HEAP32[$__y >> 2] = $2 + -1900; STACKTOP = sp; - return $$0 | 0; + return; } -function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE6resizeEj($this, $__sz) { $this = $this | 0; - $info = $info | 0; - $dst_ptr = $dst_ptr | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $10 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $p$0 = 0; - if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else { - $3 = $info + 52 | 0; - $4 = HEAP8[$3 >> 0] | 0; - $5 = $info + 53 | 0; - $6 = HEAP8[$5 >> 0] | 0; - $9 = HEAP32[$this + 12 >> 2] | 0; - $10 = $this + 16 + ($9 << 3) | 0; - HEAP8[$3 >> 0] = 0; - HEAP8[$5 >> 0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this + 16 | 0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); - L4 : do if (($9 | 0) > 1) { - $13 = $info + 24 | 0; - $14 = $this + 8 | 0; - $15 = $info + 54 | 0; - $p$0 = $this + 24 | 0; - do { - if (HEAP8[$15 >> 0] | 0) break L4; - if (!(HEAP8[$3 >> 0] | 0)) { - if (HEAP8[$5 >> 0] | 0) if (!(HEAP32[$14 >> 2] & 1)) break L4; - } else { - if ((HEAP32[$13 >> 2] | 0) == 1) break L4; - if (!(HEAP32[$14 >> 2] & 2)) break L4; - } - HEAP8[$3 >> 0] = 0; - HEAP8[$5 >> 0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); - $p$0 = $p$0 + 8 | 0; - } while ($p$0 >>> 0 < $10 >>> 0); - } while (0); - HEAP8[$3 >> 0] = $4; - HEAP8[$5 >> 0] = $6; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = ($1 - $2 | 0) / 36 | 0; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz * 36 | 0) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + while (1) { + $12 = $13 + -36 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; + break; + } else $13 = $12; + } + HEAP32[$0 >> 2] = $$lcssa; + } } return; } -function _teardown($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $13 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $i$02 = 0, sp = 0; +function __ZNKSt3__110__time_put8__do_putEPcRS1_PK2tmcc($this, $__nb, $__ne, $__tm, $__fmt, $__mod) { + $this = $this | 0; + $__nb = $__nb | 0; + $__ne = $__ne | 0; + $__tm = $__tm | 0; + $__fmt = $__fmt | 0; + $__mod = $__mod | 0; + var $0 = 0, $1 = 0, $10 = 0, $fmt = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $4 = $3 + 196 | 0; - $5 = HEAP32[$4 >> 2] | 0; - if ($5) { - _free($5); - HEAP32[$4 >> 2] = 0; - HEAP32[$3 + 200 >> 2] = 0; - } - _deleteHandle($3); - _arPattDeleteHandle(HEAP32[$3 + 216 >> 2] | 0) | 0; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_(2044, $0) | 0; - $10 = $3 + 248 | 0; - $11 = $3 + 252 | 0; - $13 = HEAP32[$10 >> 2] | 0; - if ((HEAP32[$11 >> 2] | 0) != ($13 | 0)) { - $16 = $13; - $i$02 = 0; - do { - _arMultiFreeConfig(HEAP32[$16 + ($i$02 << 3) + 4 >> 2] | 0) | 0; - $i$02 = $i$02 + 1 | 0; - $16 = HEAP32[$10 >> 2] | 0; - } while ($i$02 >>> 0 < (HEAP32[$11 >> 2] | 0) - $16 >> 3 >>> 0); - } - __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($10); - __ZdlPv($10); - __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($3 + 248 | 0); - __ZdlPv($3); - $$0 = 0; + $fmt = sp; + HEAP8[$fmt >> 0] = 37; + $0 = $fmt + 1 | 0; + HEAP8[$0 >> 0] = $__fmt; + $1 = $fmt + 2 | 0; + HEAP8[$1 >> 0] = $__mod; + HEAP8[$fmt + 3 >> 0] = 0; + if ($__mod << 24 >> 24) { + HEAP8[$0 >> 0] = $__mod; + HEAP8[$1 >> 0] = $__fmt; } + $10 = $__nb + (_strftime_l($__nb | 0, (HEAP32[$__ne >> 2] | 0) - $__nb | 0, $fmt | 0, $__tm | 0, HEAP32[$this >> 2] | 0) | 0) | 0; + HEAP32[$__ne >> 2] = $10; STACKTOP = sp; - return $$0 | 0; + return; } -function __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) { - $first = $first | 0; - $last = $last | 0; - $db = $db | 0; - var $$0 = 0, $1 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $22 = 0, $3 = 0, $5 = 0, $6 = 0, $args = 0, sp = 0; +function _arSetDebugMode($handle, $mode) { + $handle = $handle | 0; + $mode = $mode | 0; + var $$0 = 0, $11 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $args = sp; - if (($first | 0) == ($last | 0)) $$0 = $first; else { - $1 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0; - if (($1 | 0) == ($first | 0)) $$0 = $first; else { - $3 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1, $last, $db) | 0; - if (($3 | 0) == ($1 | 0)) $$0 = $1; else { - $5 = $db + 4 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if ((($6 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else { - __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $6 + -24 | 0); - $14 = HEAP32[$5 >> 2] | 0; - $15 = $14 + -24 | 0; - $17 = $14; - do { - $16 = $17 + -24 | 0; - HEAP32[$5 >> 2] = $16; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16); - $17 = HEAP32[$5 >> 2] | 0; - } while (($17 | 0) != ($15 | 0)); - $20 = HEAP8[$args >> 0] | 0; - $22 = ($20 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($14 + -48 | 0, $22 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $22 ? ($20 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args); - $$0 = $3; - } - } + $vararg_buffer = sp; + do if (!$handle) $$0 = -1; else if ((HEAP32[$handle >> 2] | 0) == ($mode | 0)) $$0 = 0; else { + HEAP32[$handle >> 2] = $mode; + if (!$mode) { + $4 = $handle + 4834148 | 0; + _free(HEAP32[$4 >> 2] | 0); + HEAP32[$4 >> 2] = 0; + $$0 = 0; + break; } - } + $11 = _malloc(Math_imul(HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 36 >> 2] | 0) | 0) | 0; + HEAP32[$handle + 4834148 >> 2] = $11; + if (!$11) { + _arLog(3, 21359, $vararg_buffer); + _exit(1); + } else $$0 = 0; + } while (0); STACKTOP = sp; return $$0 | 0; } -function _arMatrixMul($dest, $a, $b) { - $dest = $dest | 0; - $a = $a | 0; - $b = $b | 0; - var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $19 = 0, $20 = 0, $29 = 0.0, $6 = 0, $c$04 = 0, $i$01 = 0, $p1$02 = 0, $p2$03 = 0, $p3$09 = 0, $p3$15 = 0, $r$08 = 0, $smax = 0; - $1 = HEAP32[$a + 8 >> 2] | 0; - if (($1 | 0) == (HEAP32[$b + 4 >> 2] | 0)) { - $6 = HEAP32[$dest + 4 >> 2] | 0; - if (($6 | 0) == (HEAP32[$a + 4 >> 2] | 0)) { - $11 = HEAP32[$dest + 8 >> 2] | 0; - if (($11 | 0) == (HEAP32[$b + 8 >> 2] | 0)) { - $smax = ($11 | 0) > 0 ? $11 : 0; - if (($6 | 0) > 0) { - $18 = ($11 | 0) > 0; - $19 = ($1 | 0) > 0; - $p3$09 = HEAP32[$dest >> 2] | 0; - $r$08 = 0; - while (1) { - $20 = Math_imul($1, $r$08) | 0; - if ($18) { - $c$04 = 0; - $p3$15 = $p3$09; - while (1) { - HEAPF64[$p3$15 >> 3] = 0.0; - if ($19) { - $29 = 0.0; - $i$01 = 0; - $p1$02 = (HEAP32[$a >> 2] | 0) + ($20 << 3) | 0; - $p2$03 = (HEAP32[$b >> 2] | 0) + ($c$04 << 3) | 0; - while (1) { - $29 = $29 + +HEAPF64[$p1$02 >> 3] * +HEAPF64[$p2$03 >> 3]; - HEAPF64[$p3$15 >> 3] = $29; - $i$01 = $i$01 + 1 | 0; - if (($i$01 | 0) >= ($1 | 0)) break; else { - $p1$02 = $p1$02 + 8 | 0; - $p2$03 = $p2$03 + ($11 << 3) | 0; - } - } - } - $c$04 = $c$04 + 1 | 0; - if (($c$04 | 0) >= ($11 | 0)) break; else $p3$15 = $p3$15 + 8 | 0; - } - } - $r$08 = $r$08 + 1 | 0; - if (($r$08 | 0) >= ($6 | 0)) { - $$0 = 0; - break; - } else $p3$09 = $p3$09 + ($smax << 3) | 0; - } - } else $$0 = 0; - } else $$0 = -1; - } else $$0 = -1; - } else $$0 = -1; - return $$0 | 0; +function _skip_input_data($cinfo, $num_bytes) { + $cinfo = $cinfo | 0; + $num_bytes = $num_bytes | 0; + var $$0$lcssa = 0, $$01 = 0, $$lcssa = 0, $1 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0; + $1 = HEAP32[$cinfo + 24 >> 2] | 0; + if (($num_bytes | 0) > 0) { + $3 = $1 + 4 | 0; + $4 = HEAP32[$3 >> 2] | 0; + if (($4 | 0) < ($num_bytes | 0)) { + $$01 = $num_bytes; + $7 = $4; + while (1) { + $6 = $$01 - $7 | 0; + _fill_input_buffer($cinfo) | 0; + $8 = HEAP32[$3 >> 2] | 0; + if (($6 | 0) > ($8 | 0)) { + $$01 = $6; + $7 = $8; + } else { + $$0$lcssa = $6; + $$lcssa = $8; + break; + } + } + } else { + $$0$lcssa = $num_bytes; + $$lcssa = $4; + } + HEAP32[$1 >> 2] = (HEAP32[$1 >> 2] | 0) + $$0$lcssa; + HEAP32[$3 >> 2] = $$lcssa - $$0$lcssa; + } + return; } -function __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($this, $__v) { - $this = $this | 0; - $__v = $__v | 0; - var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0; - $0 = HEAP32[$this >> 2] | 0; - $1 = $this + 4 | 0; - $2 = HEAP32[$1 >> 2] | 0; - $3 = $__v + 4 | 0; - if (($2 | 0) != ($0 | 0)) { - $$0$i1 = $2; - do { - $5 = HEAP32[$3 >> 2] | 0; - $6 = $5 + -16 | 0; - $$0$i1$looptemp = $$0$i1; - $$0$i1 = $$0$i1 + -16 | 0; - HEAP32[$6 >> 2] = 0; - $9 = $5 + -12 | 0; - HEAP32[$9 >> 2] = 0; - $11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0; - HEAP32[$5 + -8 >> 2] = 0; - HEAP32[$5 + -4 >> 2] = $11; - HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2]; - $14 = $$0$i1$looptemp + -12 | 0; - HEAP32[$9 >> 2] = HEAP32[$14 >> 2]; - $16 = $$0$i1$looptemp + -8 | 0; - HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2]; - HEAP32[$16 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$$0$i1 >> 2] = 0; - HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16; - } while (($$0$i1 | 0) != ($0 | 0)); +function _jinit_inverse_dct($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $13 = 0, $3 = 0, $5 = 0, $6 = 0, $ci$01 = 0, $compptr$02 = 0; + $0 = $cinfo + 4 | 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 84) | 0; + HEAP32[$cinfo + 448 >> 2] = $3; + HEAP32[$3 >> 2] = 119; + $5 = $cinfo + 36 | 0; + $6 = $3 + 44 | 0; + if ((HEAP32[$5 >> 2] | 0) > 0) { + $ci$01 = 0; + $compptr$02 = HEAP32[$cinfo + 216 >> 2] | 0; + while (1) { + $13 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$0 >> 2] >> 2] & 63]($cinfo, 1, 256) | 0; + HEAP32[$compptr$02 + 80 >> 2] = $13; + _memset($13 | 0, 0, 256) | 0; + HEAP32[$6 + ($ci$01 << 2) >> 2] = -1; + $ci$01 = $ci$01 + 1 | 0; + if (($ci$01 | 0) >= (HEAP32[$5 >> 2] | 0)) break; else $compptr$02 = $compptr$02 + 84 | 0; + } } - $22 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = HEAP32[$3 >> 2]; - HEAP32[$3 >> 2] = $22; - $24 = $__v + 8 | 0; - $25 = HEAP32[$1 >> 2] | 0; - HEAP32[$1 >> 2] = HEAP32[$24 >> 2]; - HEAP32[$24 >> 2] = $25; - $27 = $this + 8 | 0; - $28 = $__v + 12 | 0; - $29 = HEAP32[$27 >> 2] | 0; - HEAP32[$27 >> 2] = HEAP32[$28 >> 2]; - HEAP32[$28 >> 2] = $29; - HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; return; } -function _strspn($s, $c) { +function _vasprintf($s, $fmt, $ap) { $s = $s | 0; - $c = $c | 0; - var $$0 = 0, $$028 = 0, $$03 = 0, $$03$lcssa = 0, $$1$lcssa = 0, $$16 = 0, $0 = 0, $11 = 0, $14 = 0, $18 = 0, $24 = 0, $33 = 0, $byteset = 0, sp = 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + var $$0 = 0, $0 = 0, $10 = 0, $2 = 0, $5 = 0, $9 = 0, $ap2 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $byteset = sp; - HEAP32[$byteset >> 2] = 0; - HEAP32[$byteset + 4 >> 2] = 0; - HEAP32[$byteset + 8 >> 2] = 0; - HEAP32[$byteset + 12 >> 2] = 0; - HEAP32[$byteset + 16 >> 2] = 0; - HEAP32[$byteset + 20 >> 2] = 0; - HEAP32[$byteset + 24 >> 2] = 0; - HEAP32[$byteset + 28 >> 2] = 0; - $0 = HEAP8[$c >> 0] | 0; - do if (!($0 << 24 >> 24)) $$0 = 0; else { - if (!(HEAP8[$c + 1 >> 0] | 0)) { - $$03 = $s; - while (1) if ((HEAP8[$$03 >> 0] | 0) == $0 << 24 >> 24) $$03 = $$03 + 1 | 0; else { - $$03$lcssa = $$03; - break; - } - $$0 = $$03$lcssa - $s | 0; + $ap2 = sp; + $0 = _malloc(240) | 0; + do if (!$0) $$0 = -1; else { + HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2]; + $2 = _vsnprintf($0, 240, $fmt, $ap2) | 0; + if ($2 >>> 0 < 240) { + $5 = _realloc($0, $2 + 1 | 0) | 0; + HEAP32[$s >> 2] = ($5 | 0) != 0 ? $5 : $0; + $$0 = $2; break; - } else { - $$028 = $c; - $14 = $0; } - do { - $18 = $byteset + ((($14 & 255) >>> 5 & 255) << 2) | 0; - HEAP32[$18 >> 2] = HEAP32[$18 >> 2] | 1 << ($14 & 31); - $$028 = $$028 + 1 | 0; - $14 = HEAP8[$$028 >> 0] | 0; - } while ($14 << 24 >> 24 != 0); - $11 = HEAP8[$s >> 0] | 0; - L10 : do if (!($11 << 24 >> 24)) $$1$lcssa = $s; else { - $$16 = $s; - $24 = $11; - while (1) { - if (!(HEAP32[$byteset + ((($24 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($24 & 31))) { - $$1$lcssa = $$16; - break L10; - } - $33 = $$16 + 1 | 0; - $24 = HEAP8[$33 >> 0] | 0; - if (!($24 << 24 >> 24)) { - $$1$lcssa = $33; - break; - } else $$16 = $33; - } - } while (0); - $$0 = $$1$lcssa - $s | 0; + _free($0); + if (($2 | 0) < 0) $$0 = -1; else { + $9 = $2 + 1 | 0; + $10 = _malloc($9) | 0; + HEAP32[$s >> 2] = $10; + if (!$10) $$0 = -1; else $$0 = _vsnprintf($10, $9, $fmt, $ap) | 0; + } } while (0); STACKTOP = sp; return $$0 | 0; } -function _arLog($logLevel, $format, $varargs) { - $logLevel = $logLevel | 0; - $format = $format | 0; - $varargs = $varargs | 0; - var $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $5 = 0, $7 = 0, $ap = 0, $buf = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $buf = sp + 16 | 0; - $ap = sp; - HEAP32[$buf >> 2] = 0; - if (($format | 0) != 0 & (HEAP32[496] | 0) <= ($logLevel | 0)) if (HEAP8[$format >> 0] | 0) { - HEAP32[$ap >> 2] = $varargs; - $5 = _vasprintf($buf, $format, $ap) | 0; - if (($5 | 0) > -1) { - $7 = HEAP32[497] | 0; - do if (!$7) _fputs(HEAP32[$buf >> 2] | 0, HEAP32[659] | 0) | 0; else { - if (!(HEAP32[498] | 0)) { - FUNCTION_TABLE_vi[$7 & 15](HEAP32[$buf >> 2] | 0); - break; - } - $12 = _pthread_self() | 0; - $15 = HEAP32[500] | 0; - if (($12 | 0) == (HEAP32[499] | 0)) { - if (($15 | 0) > 0) { - FUNCTION_TABLE_vi[$7 & 15](HEAP32[502] | 0); - HEAP32[500] = 0; - $29 = HEAP32[497] | 0; - } else $29 = $7; - FUNCTION_TABLE_vi[$29 & 15](HEAP32[$buf >> 2] | 0); - break; - } - $16 = HEAP32[501] | 0; - if (($15 | 0) < ($16 | 0)) { - $21 = (HEAP32[502] | 0) + $15 | 0; - if (($5 | 0) < (-3 - $15 + $16 | 0)) { - _strcpy($21, HEAP32[$buf >> 2] | 0) | 0; - HEAP32[500] = (HEAP32[500] | 0) + $5; - break; - } else { - HEAP8[$21 >> 0] = 46; - HEAP8[$21 + 1 >> 0] = 46; - HEAP8[$21 + 2 >> 0] = 46; - HEAP8[$21 + 3 >> 0] = 0; - HEAP32[500] = HEAP32[501]; - break; - } - } - } while (0); - _free(HEAP32[$buf >> 2] | 0); +function __ZNSt3__16vectorIiNS_9allocatorIiEEE12__move_rangeEPiS4_S4_($this, $__from_s, $__from_e, $__to) { + $this = $this | 0; + $__from_s = $__from_s | 0; + $__from_e = $__from_e | 0; + $__to = $__to | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $__i$01 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $4 = $1 - $__to | 0; + $5 = $4 >> 2; + $6 = $__from_s + ($5 << 2) | 0; + if ($6 >>> 0 < $__from_e >>> 0) { + $9 = $1; + $__i$01 = $6; + while (1) { + HEAP32[$9 >> 2] = HEAP32[$__i$01 >> 2]; + $__i$01 = $__i$01 + 4 | 0; + $11 = $9 + 4 | 0; + if ($__i$01 >>> 0 >= $__from_e >>> 0) { + $$lcssa = $11; + break; + } else $9 = $11; } + HEAP32[$0 >> 2] = $$lcssa; } - STACKTOP = sp; + _memmove($1 + (0 - $5 << 2) | 0, $__from_s | 0, $4 | 0) | 0; return; } -function __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($this, $__v) { +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE6resizeEj($this, $__sz) { $this = $this | 0; - $__v = $__v | 0; - var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0; - $0 = HEAP32[$this >> 2] | 0; - $1 = $this + 4 | 0; - $2 = HEAP32[$1 >> 2] | 0; - $3 = $__v + 4 | 0; - if (($2 | 0) != ($0 | 0)) { - $$0$i1 = $2; - do { - $5 = HEAP32[$3 >> 2] | 0; - $6 = $5 + -16 | 0; - $$0$i1$looptemp = $$0$i1; - $$0$i1 = $$0$i1 + -16 | 0; - HEAP32[$6 >> 2] = 0; - $9 = $5 + -12 | 0; - HEAP32[$9 >> 2] = 0; - $11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0; - HEAP32[$5 + -8 >> 2] = 0; - HEAP32[$5 + -4 >> 2] = $11; - HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2]; - $14 = $$0$i1$looptemp + -12 | 0; - HEAP32[$9 >> 2] = HEAP32[$14 >> 2]; - $16 = $$0$i1$looptemp + -8 | 0; - HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2]; - HEAP32[$16 >> 2] = 0; - HEAP32[$14 >> 2] = 0; - HEAP32[$$0$i1 >> 2] = 0; - HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16; - } while (($$0$i1 | 0) != ($0 | 0)); + $__sz = $__sz | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = ($1 - $2 | 0) / 12 | 0; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz * 12 | 0) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + do { + $12 = $13 + -12 | 0; + HEAP32[$0 >> 2] = $12; + __ZNSt3__113__vector_baseINS_4pairIfjEENS_9allocatorIS2_EEED2Ev($12); + $13 = HEAP32[$0 >> 2] | 0; + } while (($13 | 0) != ($10 | 0)); + } } - $22 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = HEAP32[$3 >> 2]; - HEAP32[$3 >> 2] = $22; - $24 = $__v + 8 | 0; - $25 = HEAP32[$1 >> 2] | 0; - HEAP32[$1 >> 2] = HEAP32[$24 >> 2]; - HEAP32[$24 >> 2] = $25; - $27 = $this + 8 | 0; - $28 = $__v + 12 | 0; - $29 = HEAP32[$27 >> 2] | 0; - HEAP32[$27 >> 2] = HEAP32[$28 >> 2]; - HEAP32[$28 >> 2] = $29; - HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; return; } -function _getMultiEachMarkerInfo($id, $multiMarkerId, $markerIndex) { +function _setupAR2($id) { $id = $id | 0; - $multiMarkerId = $multiMarkerId | 0; - $markerIndex = $markerIndex | 0; - var $$0 = 0, $0 = 0, $17 = 0, $23 = 0, $4 = 0, $8 = 0, sp = 0; + var $$0 = 0, $0 = 0, $3 = 0, $6 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $0 = sp; HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $8 = HEAP32[$4 + 248 >> 2] | 0; - if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { - $$0 = HEAP32[524] | 0; - break; - } - $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; - if (($markerIndex | 0) < 0 ? 1 : (HEAP32[$17 + 4 >> 2] | 0) <= ($markerIndex | 0)) { - $$0 = HEAP32[523] | 0; - break; - } else { - $23 = HEAP32[$17 >> 2] | 0; - _matrixCopy($23 + ($markerIndex * 320 | 0) + 16 | 0, 264); - _emscripten_asm_const_4(0, HEAP32[$23 + ($markerIndex * 320 | 0) + 304 >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) + 4 >> 2] | 0, +(+HEAPF64[$23 + ($markerIndex * 320 | 0) + 8 >> 3])) | 0; - $$0 = 0; - break; - } - } while (0); + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $6 = _kpmCreateHandle(HEAP32[$3 + 192 >> 2] | 0, 2) | 0; + HEAP32[$3 + 228 >> 2] = $6; + $$0 = 0; + } STACKTOP = sp; return $$0 | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_($this, $__first, $__last) { +function _icpCreateHandle($matXc2U) { + $matXc2U = $matXc2U | 0; + var $$0 = 0, $0 = 0, $j$04 = 0; + $0 = _malloc(136) | 0; + if (!$0) $$0 = 0; else { + $j$04 = 0; + do { + HEAPF64[$0 + ($j$04 << 5) >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) >> 3]; + HEAPF64[$0 + ($j$04 << 5) + 8 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 8 >> 3]; + HEAPF64[$0 + ($j$04 << 5) + 16 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 16 >> 3]; + HEAPF64[$0 + ($j$04 << 5) + 24 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 24 >> 3]; + $j$04 = $j$04 + 1 | 0; + } while (($j$04 | 0) != 3); + HEAP32[$0 + 96 >> 2] = 10; + HEAPF64[$0 + 104 >> 3] = .10000000149011612; + HEAPF64[$0 + 112 >> 3] = .9900000095367432; + HEAPF64[$0 + 120 >> 3] = 4.0; + HEAPF64[$0 + 128 >> 3] = .5; + $$0 = $0; + } + return $$0 | 0; +} + +function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($this) { $this = $this | 0; - $__first = $__first | 0; - $__last = $__last | 0; - var $$03 = 0, $0 = 0, $1 = 0, $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $34 = 0, $41 = 0, $8 = 0, $__p$04 = 0, $scevgep1 = 0; - $0 = $__first; - $1 = HEAP8[$this >> 0] | 0; - if (!($1 & 1)) { - $15 = 10; - $16 = ($1 & 255) >>> 1; - $41 = $1; - } else { - $8 = HEAP32[$this >> 2] | 0; - $15 = ($8 & -2) + -1 | 0; - $16 = HEAP32[$this + 4 >> 2] | 0; - $41 = $8 & 255; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($1 | 0)) { + $6 = $3; + do { + $5 = $6 + -16 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($1 | 0)); } - $12 = $__last - $0 | 0; - do if (($__last | 0) != ($__first | 0)) { - if (($15 - $16 | 0) >>> 0 < $12 >>> 0) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $15, $16 + $12 - $15 | 0, $16, $16, 0); - $21 = HEAP8[$this >> 0] | 0; - } else $21 = $41; - if (!($21 & 1)) $29 = $this + 1 | 0; else $29 = HEAP32[$this + 8 >> 2] | 0; - $scevgep1 = $__last + ($16 - $0) | 0; - if (($__first | 0) != ($__last | 0)) { - $$03 = $__first; - $__p$04 = $29 + $16 | 0; - while (1) { - HEAP8[$__p$04 >> 0] = HEAP8[$$03 >> 0] | 0; - $$03 = $$03 + 1 | 0; - if (($$03 | 0) == ($__last | 0)) break; else $__p$04 = $__p$04 + 1 | 0; - } - } - HEAP8[$29 + $scevgep1 >> 0] = 0; - $34 = $16 + $12 | 0; - if (!(HEAP8[$this >> 0] & 1)) { - HEAP8[$this >> 0] = $34 << 1; - break; - } else { - HEAP32[$this + 4 >> 2] = $34; - break; - } - } while (0); + $9 = HEAP32[$this >> 2] | 0; + if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); return; } -function _fread($destv, $size, $nmemb, $f) { - $destv = $destv | 0; - $size = $size | 0; - $nmemb = $nmemb | 0; - $f = $f | 0; - var $$ = 0, $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $28 = 0, $32 = 0, $5 = 0, $7 = 0, $dest$0$ph = 0, $dest$02 = 0, $l$0$ph = 0, $l$03 = 0, $l$03$lcssa = 0, label = 0; - $0 = Math_imul($nmemb, $size) | 0; - if ((HEAP32[$f + 76 >> 2] | 0) > -1) $32 = ___lockfile($f) | 0; else $32 = 0; - $5 = $f + 74 | 0; - $7 = HEAP8[$5 >> 0] | 0; - HEAP8[$5 >> 0] = $7 + 255 | $7; - $13 = $f + 4 | 0; - $14 = HEAP32[$13 >> 2] | 0; - $17 = (HEAP32[$f + 8 >> 2] | 0) - $14 | 0; - if (($17 | 0) > 0) { - $$ = $17 >>> 0 < $0 >>> 0 ? $17 : $0; - _memcpy($destv | 0, $14 | 0, $$ | 0) | 0; - HEAP32[$13 >> 2] = $14 + $$; - $dest$0$ph = $destv + $$ | 0; - $l$0$ph = $0 - $$ | 0; - } else { - $dest$0$ph = $destv; - $l$0$ph = $0; - } - L7 : do if (!$l$0$ph) label = 13; else { - $24 = $f + 32 | 0; - $dest$02 = $dest$0$ph; - $l$03 = $l$0$ph; - while (1) { - if (___toread($f) | 0) { - $l$03$lcssa = $l$03; - break; - } - $28 = FUNCTION_TABLE_iiii[HEAP32[$24 >> 2] & 15]($f, $dest$02, $l$03) | 0; - if (($28 + 1 | 0) >>> 0 < 2) { - $l$03$lcssa = $l$03; - break; - } - if (($l$03 | 0) == ($28 | 0)) { - label = 13; - break L7; - } else { - $dest$02 = $dest$02 + $28 | 0; - $l$03 = $l$03 - $28 | 0; - } +function __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this) { + $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($0 | 0)) { + $6 = $3; + do { + $5 = $6 + -16 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($0 | 0)); } - if ($32) ___unlockfile($f); - $$0 = (($0 - $l$03$lcssa | 0) >>> 0) / ($size >>> 0) | 0; - } while (0); - if ((label | 0) == 13) if (!$32) $$0 = $nmemb; else { - ___unlockfile($f); - $$0 = $nmemb; + $9 = HEAP32[$this >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); } - return $$0 | 0; + return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($this, $__pos, $__s, $__n) { +function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { $this = $this | 0; - $__pos = $__pos | 0; - $__s = $__s | 0; - $__n = $__n | 0; - var $$1 = 0, $$pre$phiZ2D = 0, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $23 = 0, $25 = 0, $31 = 0, $8 = 0, $9 = 0; - $0 = HEAP8[$this >> 0] | 0; - $2 = ($0 & 1) == 0; - if ($2) $8 = ($0 & 255) >>> 1; else $8 = HEAP32[$this + 4 >> 2] | 0; - if ($8 >>> 0 < $__pos >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv($this); - if ($2) { - $13 = 10; - $17 = $0; - } else { - $9 = HEAP32[$this >> 2] | 0; - $13 = ($9 & -2) + -1 | 0; - $17 = $9 & 255; + $info = $info | 0; + $dst_ptr = $dst_ptr | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $1 >> 8; + if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0; + $8 = HEAP32[$this >> 2] | 0; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 20 >> 2] & 7]($8, $info, $dst_ptr, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp); + return; +} + +function _setProjectionNearPlane($id, $projectionNearPlane) { + $id = $id | 0; + $projectionNearPlane = +$projectionNearPlane; + var $0 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 264 | 0; + HEAPF64[$4 >> 3] = $projectionNearPlane; } - if (($13 - $8 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $13, $8 + $__n - $13 | 0, $8, $__pos, 0, $__n, $__s); else if ($__n) { - if (!($17 & 1)) $23 = $this + 1 | 0; else $23 = HEAP32[$this + 8 >> 2] | 0; - if (($8 | 0) == ($__pos | 0)) { - $$1 = $__s; - $$pre$phiZ2D = $23 + $__pos | 0; - } else { - $25 = $23 + $__pos | 0; - _memmove($23 + ($__n + $__pos) | 0, $25 | 0, $8 - $__pos | 0) | 0; - $$1 = $25 >>> 0 <= $__s >>> 0 & ($23 + $8 | 0) >>> 0 > $__s >>> 0 ? $__s + $__n | 0 : $__s; - $$pre$phiZ2D = $25; + STACKTOP = sp; + return; +} + +function __ZNK6vision21HoughSimilarityVoting23getMaximumNumberOfVotesERfRi($this, $maxVotes, $maxIndex) { + $this = $this | 0; + $maxVotes = $maxVotes | 0; + $maxIndex = $maxIndex | 0; + var $1 = 0, $13 = 0.0, $14 = 0, $15 = 0, $18 = 0.0, $4 = 0, $5 = 0, $9 = 0.0; + HEAPF32[$maxVotes >> 2] = 0.0; + HEAP32[$maxIndex >> 2] = -1; + $1 = HEAP32[$this + 100 >> 2] | 0; + if ($1) { + $14 = $1; + $5 = $1; + $9 = 0.0; + while (1) { + $4 = $5 + 12 | 0; + if (+((HEAP32[$4 >> 2] | 0) >>> 0) > $9) { + HEAP32[$maxIndex >> 2] = HEAP32[$5 + 8 >> 2]; + $13 = +((HEAP32[$4 >> 2] | 0) >>> 0); + HEAPF32[$maxVotes >> 2] = $13; + $18 = $13; + } else $18 = $9; + $15 = HEAP32[$14 >> 2] | 0; + if (!$15) break; else { + $14 = $15; + $5 = $15; + $9 = $18; + } } - _memmove($$pre$phiZ2D | 0, $$1 | 0, $__n | 0) | 0; - $31 = $8 + $__n | 0; - if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $31 << 1; else HEAP32[$this + 4 >> 2] = $31; - HEAP8[$23 + $31 >> 0] = 0; } - return $this | 0; + return; } -function _arUtilMatInv($s, $d) { - $s = $s | 0; - $d = $d | 0; - var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $j$08 = 0, $j$16 = 0; - $0 = _arMatrixAlloc(4, 4) | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = HEAP32[$0 >> 2] | 0; - $3 = HEAP32[$0 >> 2] | 0; - $4 = HEAP32[$0 >> 2] | 0; - $j$08 = 0; - do { - $5 = $j$08 << 2; - HEAPF64[$1 + ($5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) >> 3]; - HEAPF64[$2 + (1 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 8 >> 3]; - HEAPF64[$3 + (2 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 16 >> 3]; - HEAPF64[$4 + (3 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 24 >> 3]; - $j$08 = $j$08 + 1 | 0; - } while (($j$08 | 0) != 3); - $22 = HEAP32[$0 >> 2] | 0; - $23 = $22 + 96 | 0; - HEAP32[$23 >> 2] = 0; - HEAP32[$23 + 4 >> 2] = 0; - HEAP32[$23 + 8 >> 2] = 0; - HEAP32[$23 + 12 >> 2] = 0; - HEAP32[$23 + 16 >> 2] = 0; - HEAP32[$23 + 20 >> 2] = 0; - HEAPF64[$22 + 120 >> 3] = 1.0; - _arMatrixSelfInv($0) | 0; - $25 = HEAP32[$0 >> 2] | 0; - $26 = HEAP32[$0 >> 2] | 0; - $27 = HEAP32[$0 >> 2] | 0; - $28 = HEAP32[$0 >> 2] | 0; - $j$16 = 0; - do { - $29 = $j$16 << 2; - HEAPF64[$d + ($j$16 << 5) >> 3] = +HEAPF64[$25 + ($29 << 3) >> 3]; - HEAPF64[$d + ($j$16 << 5) + 8 >> 3] = +HEAPF64[$26 + (1 + $29 << 3) >> 3]; - HEAPF64[$d + ($j$16 << 5) + 16 >> 3] = +HEAPF64[$27 + (2 + $29 << 3) >> 3]; - HEAPF64[$d + ($j$16 << 5) + 24 >> 3] = +HEAPF64[$28 + (3 + $29 << 3) >> 3]; - $j$16 = $j$16 + 1 | 0; - } while (($j$16 | 0) != 3); - _arMatrixFree($0) | 0; - return 0; +function _detectMarker($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = HEAP32[1465] | 0; else { + $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $$0 = _arDetectMarker(HEAP32[$4 + 212 >> 2] | 0, HEAP32[$4 + 196 >> 2] | 0) | 0; + } + STACKTOP = sp; + return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($first, $last) { - $first = $first | 0; - $last = $last | 0; - var $$0 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $3 = 0, $5 = 0, $9 = 0, $first$pn = 0, $t1$016 = 0, $t1$016$lcssa = 0, $t11$0 = 0; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { - $1 = HEAP8[$first >> 0] | 0; - if ($1 << 24 >> 24 != 95) { - if ((($1 << 24 >> 24) + -48 | 0) >>> 0 < 10) $first$pn = $first; else { - $$0 = $first; - break; - } - while (1) { - $t11$0 = $first$pn + 1 | 0; - if (($t11$0 | 0) == ($last | 0)) { - $$0 = $last; - break L1; - } - if (((HEAP8[$t11$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $first$pn = $t11$0; else { - $$0 = $t11$0; - break L1; - } - } - } - $3 = $first + 1 | 0; - if (($3 | 0) == ($last | 0)) $$0 = $first; else { - $5 = HEAP8[$3 >> 0] | 0; - if ((($5 << 24 >> 24) + -48 | 0) >>> 0 < 10) { - $$0 = $first + 2 | 0; - break; - } - if ($5 << 24 >> 24 == 95) { - $9 = $first + 2 | 0; - if (($9 | 0) == ($last | 0)) $$0 = $first; else { - $t1$016 = $9; - while (1) { - $11 = HEAP8[$t1$016 >> 0] | 0; - if ((($11 << 24 >> 24) + -48 | 0) >>> 0 >= 10) { - $$lcssa = $11; - $t1$016$lcssa = $t1$016; - break; - } - $t1$016 = $t1$016 + 1 | 0; - if (($t1$016 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - } - return ($$lcssa << 24 >> 24 == 95 ? $t1$016$lcssa + 1 | 0 : $first) | 0; - } - } else $$0 = $first; +function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { + $this = $this | 0; + $info = $info | 0; + $adjustedPtr = $adjustedPtr | 0; + $path_below = $path_below | 0; + var $0 = 0, $1 = 0, $6 = 0, $9 = 0; + $0 = $info + 16 | 0; + $1 = HEAP32[$0 >> 2] | 0; + do if (!$1) { + HEAP32[$0 >> 2] = $adjustedPtr; + HEAP32[$info + 24 >> 2] = $path_below; + HEAP32[$info + 36 >> 2] = 1; + } else { + if (($1 | 0) != ($adjustedPtr | 0)) { + $9 = $info + 36 | 0; + HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 1; + HEAP32[$info + 24 >> 2] = 2; + HEAP8[$info + 54 >> 0] = 1; + break; } + $6 = $info + 24 | 0; + if ((HEAP32[$6 >> 2] | 0) == 2) HEAP32[$6 >> 2] = $path_below; } while (0); - return $$0 | 0; + return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add, $__p_new_stuff) { +function __ZN6vision16RobustHomographyIfE4findEPfPKfS4_iS4_i($this, $H, $p, $q, $num_points, $test_points, $num_test_points) { $this = $this | 0; - $__old_cap = $__old_cap | 0; - $__delta_cap = $__delta_cap | 0; - $__old_sz = $__old_sz | 0; - $__n_copy = $__n_copy | 0; - $__n_del = $__n_del | 0; - $__n_add = $__n_add | 0; - $__p_new_stuff = $__p_new_stuff | 0; - var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $23 = 0, $31 = 0, $9 = 0; - if ((-18 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); - if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; - if ($__old_cap >>> 0 < 2147483623) { - $9 = $__delta_cap + $__old_cap | 0; - $10 = $__old_cap << 1; - $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; - $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; - } else $17 = -17; - $18 = _malloc($17) | 0; - if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; - if ($__n_add) _memcpy($18 + $__n_copy | 0, $__p_new_stuff | 0, $__n_add | 0) | 0; - $23 = $__old_sz - $__n_del | 0; - if (($23 | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + ($__n_del + $__n_copy) | 0, $23 - $__n_copy | 0) | 0; - if (($__old_cap | 0) != 10) _free($20); - HEAP32[$this + 8 >> 2] = $18; - HEAP32[$this >> 2] = $17 | 1; - $31 = $23 + $__n_add | 0; - HEAP32[$this + 4 >> 2] = $31; - HEAP8[$18 + $31 >> 0] = 0; - return; + $H = $H | 0; + $p = $p | 0; + $q = $q | 0; + $num_points = $num_points | 0; + $test_points = $test_points | 0; + $num_test_points = $num_test_points | 0; + var $0 = 0; + $0 = $this + 12 | 0; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($0, $num_points); + return __ZN6vision26PreemptiveRobustHomographyIfEEbPT_PKS1_S4_iS4_iRNSt3__16vectorIS1_NS5_9allocatorIS1_EEEERNS6_IiNS7_IiEEEERNS6_INS5_4pairIS1_iEENS7_ISF_EEEES1_iii($H, $p, $q, $num_points, $test_points, $num_test_points, $this, $0, $this + 24 | 0, +HEAPF32[$this + 36 >> 2], HEAP32[$this + 40 >> 2] | 0, HEAP32[$this + 44 >> 2] | 0, HEAP32[$this + 48 >> 2] | 0) | 0; } -function _strcspn($s, $c) { - $s = $s | 0; - $c = $c | 0; - var $$0 = 0, $$027 = 0, $$03$lcssa = 0, $$035 = 0, $0 = 0, $10 = 0, $13 = 0, $17 = 0, $23 = 0, $32 = 0, $byteset = 0, label = 0, sp = 0; +function _setProjectionFarPlane($id, $projectionFarPlane) { + $id = $id | 0; + $projectionFarPlane = +$projectionFarPlane; + var $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $byteset = sp; - $0 = HEAP8[$c >> 0] | 0; - if (!($0 << 24 >> 24)) label = 3; else if (!(HEAP8[$c + 1 >> 0] | 0)) label = 3; else { - HEAP32[$byteset >> 2] = 0; - HEAP32[$byteset + 4 >> 2] = 0; - HEAP32[$byteset + 8 >> 2] = 0; - HEAP32[$byteset + 12 >> 2] = 0; - HEAP32[$byteset + 16 >> 2] = 0; - HEAP32[$byteset + 20 >> 2] = 0; - HEAP32[$byteset + 24 >> 2] = 0; - HEAP32[$byteset + 28 >> 2] = 0; - $$027 = $c; - $13 = $0; - do { - $17 = $byteset + ((($13 & 255) >>> 5 & 255) << 2) | 0; - HEAP32[$17 >> 2] = HEAP32[$17 >> 2] | 1 << ($13 & 31); - $$027 = $$027 + 1 | 0; - $13 = HEAP8[$$027 >> 0] | 0; - } while ($13 << 24 >> 24 != 0); - $10 = HEAP8[$s >> 0] | 0; - L7 : do if (!($10 << 24 >> 24)) $$03$lcssa = $s; else { - $$035 = $s; - $23 = $10; - while (1) { - if (HEAP32[$byteset + ((($23 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($23 & 31)) { - $$03$lcssa = $$035; - break L7; - } - $32 = $$035 + 1 | 0; - $23 = HEAP8[$32 >> 0] | 0; - if (!($23 << 24 >> 24)) { - $$03$lcssa = $32; - break; - } else $$035 = $32; - } - } while (0); - $$0 = $$03$lcssa - $s | 0; + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 272 | 0; + HEAPF64[$4 >> 3] = $projectionFarPlane; } - if ((label | 0) == 3) $$0 = (___strchrnul($s, $0 << 24 >> 24) | 0) - $s | 0; STACKTOP = sp; - return $$0 | 0; + return; } -function ___strchrnul($s, $c) { - $s = $s | 0; - $c = $c | 0; - var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $11 = 0, $15 = 0, $16 = 0, $22 = 0, $23 = 0, $29 = 0, $36 = 0, $37 = 0, $5 = 0, $8 = 0, $w$0$lcssa = 0, $w$08 = 0; - $0 = $c & 255; - L1 : do if (!$0) $$0 = $s + (_strlen($s) | 0) | 0; else { - if (!($s & 3)) $$02$lcssa = $s; else { - $5 = $c & 255; - $$0211 = $s; - while (1) { - $8 = HEAP8[$$0211 >> 0] | 0; - if ($8 << 24 >> 24 == 0 ? 1 : $8 << 24 >> 24 == $5 << 24 >> 24) { - $$0 = $$0211; - break L1; - } - $11 = $$0211 + 1 | 0; - if (!($11 & 3)) { - $$02$lcssa = $11; - break; - } else $$0211 = $11; - } - } - $15 = Math_imul($0, 16843009) | 0; - $16 = HEAP32[$$02$lcssa >> 2] | 0; - L10 : do if (!(($16 & -2139062144 ^ -2139062144) & $16 + -16843009)) { - $23 = $16; - $w$08 = $$02$lcssa; - while (1) { - $22 = $23 ^ $15; - if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) { - $w$0$lcssa = $w$08; - break L10; - } - $29 = $w$08 + 4 | 0; - $23 = HEAP32[$29 >> 2] | 0; - if (($23 & -2139062144 ^ -2139062144) & $23 + -16843009) { - $w$0$lcssa = $29; - break; - } else $w$08 = $29; - } - } else $w$0$lcssa = $$02$lcssa; while (0); - $36 = $c & 255; - $$1 = $w$0$lcssa; - while (1) { - $37 = HEAP8[$$1 >> 0] | 0; - if ($37 << 24 >> 24 == 0 ? 1 : $37 << 24 >> 24 == $36 << 24 >> 24) { - $$0 = $$1; - break; - } else $$1 = $$1 + 1 | 0; - } - } while (0); +function _arParamObserv2IdealLTf($paramLTf, $ox, $oy, $ix, $iy) { + $paramLTf = $paramLTf | 0; + $ox = +$ox; + $oy = +$oy; + $ix = $ix | 0; + $iy = $iy | 0; + var $$0 = 0, $12 = 0, $19 = 0, $22 = 0, $4 = 0, $9 = 0; + $4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ox + .5) | 0; + $9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($oy + .5) | 0; + if (($4 | 0) < 0) $$0 = -1; else { + $12 = HEAP32[$paramLTf + 8 >> 2] | 0; + if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) { + $19 = HEAP32[$paramLTf + 4 >> 2] | 0; + $22 = (Math_imul($12, $9) | 0) + $4 << 1; + HEAP32[$ix >> 2] = HEAP32[$19 + ($22 << 2) >> 2]; + HEAP32[$iy >> 2] = HEAP32[$19 + (($22 | 1) << 2) >> 2]; + $$0 = 0; + } else $$0 = -1; + } return $$0 | 0; } -function _arGetTransMatRobust($handle, $initConv, $pos2d, $pos3d, $num, $conv) { - $handle = $handle | 0; - $initConv = $initConv | 0; - $pos2d = $pos2d | 0; - $pos3d = $pos3d | 0; - $num = $num | 0; - $conv = $conv | 0; - var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0; +function __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE7reserveEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $4 = 0, $__v = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $data = sp + 20 | 0; - $err = sp; - $1 = _malloc($num << 4) | 0; - HEAP32[$data >> 2] = $1; - if (!$1) { - _arLog(3, 5471, sp + 8 | 0); - _exit(1); + $__v = sp; + $4 = HEAP32[$this >> 2] | 0; + if ((HEAP32[$this + 8 >> 2] | 0) - $4 >> 2 >>> 0 < $__n >>> 0) { + __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEEC2EjjS7_($__v, $__n, (HEAP32[$this + 4 >> 2] | 0) - $4 >> 2, $this + 8 | 0); + __ZNSt3__16vectorIPN6vision4NodeILi96EEENS_9allocatorIS4_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS4_RS6_EE($this, $__v); + __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEED2Ev($__v); } - $4 = _malloc($num * 24 | 0) | 0; - $5 = $data + 4 | 0; - HEAP32[$5 >> 2] = $4; - if (!$4) { - _arLog(3, 5471, sp + 16 | 0); - _exit(1); + STACKTOP = sp; + return; +} + +function __ZN6vision34SolveHomography4PointsInhomogenousIfEEbPT_PKS1_S4_S4_S4_S4_S4_S4_S4_($H, $x1, $x2, $x3, $x4, $xp1, $xp2, $xp3, $xp4) { + $H = $H | 0; + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + $xp1 = $xp1 | 0; + $xp2 = $xp2 | 0; + $xp3 = $xp3 | 0; + $xp4 = $xp4 | 0; + var $$0 = 0, $A = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 288 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $A = sp; + __ZN6vision40Homography4PointsInhomogeneousConstraintIfEEvPT_PKS1_S4_S4_S4_S4_S4_S4_S4_($A, $x1, $x2, $x3, $x4, $xp1, $xp2, $xp3, $xp4); + if (__ZN6vision29SolveNullVector8x9DestructiveIfEEbPT_S2_($H, $A) | 0) $$0 = !(+Math_abs(+(+__ZN6vision14Determinant3x3IfEET_PKS1_($H))) < 1.0e-05); else $$0 = 0; + STACKTOP = sp; + return $$0 | 0; +} + +function _strtox($s, $p, $prec) { + $s = $s | 0; + $p = $p | 0; + $prec = $prec | 0; + var $0 = 0, $1 = 0, $12 = 0, $4 = 0.0, $f = 0, dest = 0, sp = 0, stop = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $f = sp; + dest = $f; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $0 = $f + 4 | 0; + HEAP32[$0 >> 2] = $s; + $1 = $f + 8 | 0; + HEAP32[$1 >> 2] = -1; + HEAP32[$f + 44 >> 2] = $s; + HEAP32[$f + 76 >> 2] = -1; + ___shlim($f, 0); + $4 = +___floatscan($f, $prec, 1); + $12 = (HEAP32[$0 >> 2] | 0) - (HEAP32[$1 >> 2] | 0) + (HEAP32[$f + 108 >> 2] | 0) | 0; + if ($p) HEAP32[$p >> 2] = ($12 | 0) != 0 ? $s + $12 | 0 : $s; + STACKTOP = sp; + return +$4; +} + +function _arParamIdeal2ObservLTf($paramLTf, $ix, $iy, $ox, $oy) { + $paramLTf = $paramLTf | 0; + $ix = +$ix; + $iy = +$iy; + $ox = $ox | 0; + $oy = $oy | 0; + var $$0 = 0, $12 = 0, $18 = 0, $21 = 0, $4 = 0, $9 = 0; + $4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ix + .5) | 0; + $9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($iy + .5) | 0; + if (($4 | 0) < 0) $$0 = -1; else { + $12 = HEAP32[$paramLTf + 8 >> 2] | 0; + if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) { + $18 = HEAP32[$paramLTf >> 2] | 0; + $21 = (Math_imul($12, $9) | 0) + $4 << 1; + HEAP32[$ox >> 2] = HEAP32[$18 + ($21 << 2) >> 2]; + HEAP32[$oy >> 2] = HEAP32[$18 + (($21 | 1) << 2) >> 2]; + $$0 = 0; + } else $$0 = -1; } - if (($num | 0) > 0) { - $i$01 = 0; + return $$0 | 0; +} + +function _arUtilMatMul($s1, $s2, $d) { + $s1 = $s1 | 0; + $s2 = $s2 | 0; + $d = $d | 0; + var $0 = 0, $1 = 0, $2 = 0, $21 = 0, $i$02 = 0, $j$03 = 0; + $j$03 = 0; + do { + $0 = $s1 + ($j$03 << 5) | 0; + $1 = $s1 + ($j$03 << 5) + 8 | 0; + $2 = $s1 + ($j$03 << 5) + 16 | 0; + $i$02 = 0; do { - HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3]; - HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3]; - $i$01 = $i$01 + 1 | 0; - } while (($i$01 | 0) < ($num | 0)); + HEAPF64[$d + ($j$03 << 5) + ($i$02 << 3) >> 3] = +HEAPF64[$0 >> 3] * +HEAPF64[$s2 + ($i$02 << 3) >> 3] + +HEAPF64[$1 >> 3] * +HEAPF64[$s2 + 32 + ($i$02 << 3) >> 3] + +HEAPF64[$2 >> 3] * +HEAPF64[$s2 + 64 + ($i$02 << 3) >> 3]; + $i$02 = $i$02 + 1 | 0; + } while (($i$02 | 0) != 4); + $21 = $d + ($j$03 << 5) + 24 | 0; + HEAPF64[$21 >> 3] = +HEAPF64[$s1 + ($j$03 << 5) + 24 >> 3] + +HEAPF64[$21 >> 3]; + $j$03 = $j$03 + 1 | 0; + } while (($j$03 | 0) != 3); + return 0; +} + +function _getMultiMarkerCount($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1; else { + $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0; + $$0 = (HEAP32[$3 + 284 >> 2] | 0) - (HEAP32[$3 + 280 >> 2] | 0) >> 3; } - HEAP32[$data + 8 >> 2] = $num; - if ((_icpPointRobust(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8; - _free(HEAP32[$data >> 2] | 0); - _free(HEAP32[$5 >> 2] | 0); STACKTOP = sp; - return +(+HEAPF64[$err >> 3]); + return $$0 | 0; } -function _arGetTransMat($handle, $initConv, $pos2d, $pos3d, $num, $conv) { - $handle = $handle | 0; - $initConv = $initConv | 0; - $pos2d = $pos2d | 0; - $pos3d = $pos3d | 0; - $num = $num | 0; - $conv = $conv | 0; - var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0; +function _getMarkerNum($id) { + $id = $id | 0; + var $$0$in = 0, $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $data = sp + 20 | 0; - $err = sp; - $1 = _malloc($num << 4) | 0; - HEAP32[$data >> 2] = $1; - if (!$1) { - _arLog(3, 5471, sp + 8 | 0); - _exit(1); - } - $4 = _malloc($num * 24 | 0) | 0; - $5 = $data + 4 | 0; - HEAP32[$5 >> 2] = $4; - if (!$4) { - _arLog(3, 5471, sp + 16 | 0); - _exit(1); - } - if (($num | 0) > 0) { - $i$01 = 0; - do { - HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3]; - HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3]; - HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3]; - $i$01 = $i$01 + 1 | 0; - } while (($i$01 | 0) < ($num | 0)); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0$in = 5860; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $$0$in = (HEAP32[$4 >> 2] | 0) + 44 | 0; } - HEAP32[$data + 8 >> 2] = $num; - if ((_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8; - _free(HEAP32[$data >> 2] | 0); - _free(HEAP32[$5 >> 2] | 0); STACKTOP = sp; - return +(+HEAPF64[$err >> 3]); + return HEAP32[$$0$in >> 2] | 0; } -function ___fwritex($s, $l, $f) { - $s = $s | 0; - $l = $l | 0; - $f = $f | 0; - var $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $19 = 0, $29 = 0, $5 = 0, $6 = 0, $8 = 0, $i$0 = 0, $i$0$lcssa10 = 0, $i$1 = 0, label = 0; - $0 = $f + 16 | 0; - $1 = HEAP32[$0 >> 2] | 0; - if (!$1) if (!(___towrite($f) | 0)) { - $8 = HEAP32[$0 >> 2] | 0; - label = 4; - } else $$0 = 0; else { - $8 = $1; - label = 4; +function _getProcessingImage($id) { + $id = $id | 0; + var $$0 = 0, $0 = 0, $4 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = 0; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + $$0 = HEAP32[(HEAP32[$4 >> 2] | 0) + 4834148 >> 2] | 0; } - L4 : do if ((label | 0) == 4) { - $5 = $f + 20 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if (($8 - $6 | 0) >>> 0 < $l >>> 0) { - $$0 = FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, $s, $l) | 0; - break; - } - L9 : do if ((HEAP8[$f + 75 >> 0] | 0) > -1) { - $i$0 = $l; - while (1) { - if (!$i$0) { - $$01 = $l; - $$02 = $s; - $29 = $6; - $i$1 = 0; - break L9; - } - $19 = $i$0 + -1 | 0; - if ((HEAP8[$s + $19 >> 0] | 0) == 10) { - $i$0$lcssa10 = $i$0; - break; - } else $i$0 = $19; - } - if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, $s, $i$0$lcssa10) | 0) >>> 0 < $i$0$lcssa10 >>> 0) { - $$0 = $i$0$lcssa10; - break L4; - } - $$01 = $l - $i$0$lcssa10 | 0; - $$02 = $s + $i$0$lcssa10 | 0; - $29 = HEAP32[$5 >> 2] | 0; - $i$1 = $i$0$lcssa10; - } else { - $$01 = $l; - $$02 = $s; - $29 = $6; - $i$1 = 0; - } while (0); - _memcpy($29 | 0, $$02 | 0, $$01 | 0) | 0; - HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + $$01; - $$0 = $i$1 + $$01 | 0; - } while (0); + STACKTOP = sp; return $$0 | 0; } -function ___shgetc($f) { +function __ZNKSt3__120__time_get_c_storageIwE7__am_pmEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2816] | 0)) if (___cxa_guard_acquire(2816) | 0) { + if (!(HEAP8[2824] | 0)) if (___cxa_guard_acquire(2824) | 0) { + $8 = 16580; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 16868); + ___cxa_atexit(155, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2824); + } + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(16580, 16868) | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw(16592, 16880) | 0; + HEAP32[4223] = 16580; + ___cxa_guard_release(2816); + } + return HEAP32[4223] | 0; +} + +function __ZNKSt3__120__time_get_c_storageIcE7__am_pmEv($this) { + $this = $this | 0; + var $8 = 0; + if (!(HEAP8[2800] | 0)) if (___cxa_guard_acquire(2800) | 0) { + if (!(HEAP8[2808] | 0)) if (___cxa_guard_acquire(2808) | 0) { + $8 = 16288; + do { + HEAP32[$8 >> 2] = 0; + HEAP32[$8 + 4 >> 2] = 0; + HEAP32[$8 + 8 >> 2] = 0; + $8 = $8 + 12 | 0; + } while (($8 | 0) != 16576); + ___cxa_atexit(154, 0, ___dso_handle | 0) | 0; + ___cxa_guard_release(2808); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(16288, 57007) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc(16300, 57010) | 0; + HEAP32[4144] = 16288; + ___cxa_guard_release(2800); + } + return HEAP32[4144] | 0; +} + +function ___fflush_unlocked($f) { $f = $f | 0; - var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre4 = 0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $21 = 0, $26 = 0, $28 = 0, $31 = 0, $36 = 0, $41 = 0, $6 = 0, $9 = 0, label = 0; - $0 = $f + 104 | 0; - $1 = HEAP32[$0 >> 2] | 0; - if (!$1) label = 3; else if ((HEAP32[$f + 108 >> 2] | 0) < ($1 | 0)) label = 3; else label = 4; + var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $9 = 0, label = 0; + $0 = $f + 20 | 0; + $2 = $f + 28 | 0; + if ((HEAP32[$0 >> 2] | 0) >>> 0 > (HEAP32[$2 >> 2] | 0) >>> 0) { + FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0; + if (!(HEAP32[$0 >> 2] | 0)) $$0 = -1; else label = 3; + } else label = 3; if ((label | 0) == 3) { - $6 = ___uflow($f) | 0; - if (($6 | 0) < 0) label = 4; else { - $9 = HEAP32[$0 >> 2] | 0; - $$phi$trans$insert = $f + 8 | 0; - if (!$9) { - $$pre = HEAP32[$$phi$trans$insert >> 2] | 0; - $26 = $$pre; - $41 = $$pre; - label = 9; - } else { - $12 = HEAP32[$$phi$trans$insert >> 2] | 0; - $14 = HEAP32[$f + 4 >> 2] | 0; - $15 = $12; - $21 = $9 - (HEAP32[$f + 108 >> 2] | 0) + -1 | 0; - if (($15 - $14 | 0) > ($21 | 0)) { - HEAP32[$f + 100 >> 2] = $14 + $21; - $28 = $12; - } else { - $26 = $15; - $41 = $12; - label = 9; - } - } - if ((label | 0) == 9) { - HEAP32[$f + 100 >> 2] = $26; - $28 = $41; - } - $$pre4 = HEAP32[$f + 4 >> 2] | 0; - if ($28) { - $31 = $f + 108 | 0; - HEAP32[$31 >> 2] = $28 + 1 - $$pre4 + (HEAP32[$31 >> 2] | 0); - } - $36 = $$pre4 + -1 | 0; - if ((HEAPU8[$36 >> 0] | 0 | 0) == ($6 | 0)) $$0 = $6; else { - HEAP8[$36 >> 0] = $6; - $$0 = $6; - } - } - } - if ((label | 0) == 4) { - HEAP32[$f + 100 >> 2] = 0; - $$0 = -1; + $9 = $f + 4 | 0; + $10 = HEAP32[$9 >> 2] | 0; + $11 = $f + 8 | 0; + $12 = HEAP32[$11 >> 2] | 0; + if ($10 >>> 0 < $12 >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 63]($f, $10 - $12 | 0, 1) | 0; + HEAP32[$f + 16 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$11 >> 2] = 0; + HEAP32[$9 >> 2] = 0; + $$0 = 0; } return $$0 | 0; } -function _arSetLabelingThreshMode($handle, $mode) { - $handle = $handle | 0; - $mode = $mode | 0; - var $$0 = 0, $1 = 0, $13 = 0, $4 = 0, $5 = 0, $mode1$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; +function __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE7reserveEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $4 = 0, $__v = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 8 | 0; - $vararg_buffer = sp; - if (!$handle) $$0 = -1; else { - $1 = $handle + 7062388 | 0; - if ((HEAP32[$1 >> 2] | 0) == ($mode | 0)) $$0 = 0; else { - $4 = $handle + 7062408 | 0; - $5 = HEAP32[$4 >> 2] | 0; - if ($5) { - _arImageProcFinal($5); - HEAP32[$4 >> 2] = 0; - } - switch ($mode | 0) { - case 3: - case 2: - case 1: - { - $13 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 4 >> 2] | 0, 0) | 0; - HEAP32[$4 >> 2] = $13; - $mode1$0 = $mode; - break; - } - case 4: - { - HEAP32[$handle + 7062404 >> 2] = 1; - HEAP32[$handle + 7062400 >> 2] = 1; - $mode1$0 = 4; - break; - } - case 0: - { - $mode1$0 = 0; + $__v = sp; + $4 = HEAP32[$this >> 2] | 0; + if ((HEAP32[$this + 8 >> 2] | 0) - $4 >> 3 >>> 0 < $__n >>> 0) { + __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEEC2EjjS5_($__v, $__n, (HEAP32[$this + 4 >> 2] | 0) - $4 >> 3, $this + 8 | 0); + __ZNSt3__16vectorIN6vision7match_tENS_9allocatorIS2_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS2_RS4_EE($this, $__v); + __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEED2Ev($__v); + } + STACKTOP = sp; + return; +} + +function ___divdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $7$0 = 0, $7$1 = 0; + $1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; + $1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; + $2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; + $2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; + $4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0; + $4$1 = tempRet0; + $7$0 = $2$0 ^ $1$0; + $7$1 = $2$1 ^ $1$1; + return _i64Subtract((___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, 0) | 0) ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0; +} + +function __ZN6vision9MaxIndex8IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0, $index$2 = 0, $index$3 = 0, $index$4 = 0, $index$5 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + $index$2 = +HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1; + $index$3 = +HEAPF32[$x + 16 >> 2] > +HEAPF32[$x + ($index$2 << 2) >> 2] ? 4 : $index$2; + $index$4 = +HEAPF32[$x + 20 >> 2] > +HEAPF32[$x + ($index$3 << 2) >> 2] ? 5 : $index$3; + $index$5 = +HEAPF32[$x + 24 >> 2] > +HEAPF32[$x + ($index$4 << 2) >> 2] ? 6 : $index$4; + return (+HEAPF32[$x + 28 >> 2] > +HEAPF32[$x + ($index$5 << 2) >> 2] ? 7 : $index$5) | 0; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE6resizeEj($this, $__sz) { + $this = $this | 0; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = ($1 - $2 | 0) / 20 | 0; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz * 20 | 0) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + while (1) { + $12 = $13 + -20 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; break; - } - default: - { - _arLog(3, 3985, $vararg_buffer); - $mode1$0 = 0; - } + } else $13 = $12; } - HEAP32[$1 >> 2] = $mode1$0; - if ((HEAP32[$handle >> 2] | 0) == 1) { - HEAP32[$vararg_buffer1 >> 2] = HEAP32[760 + ($mode1$0 << 2) >> 2]; - _arLog(3, 4059, $vararg_buffer1); - $$0 = 0; - } else $$0 = 0; + HEAP32[$0 >> 2] = $$lcssa; } } - STACKTOP = sp; - return $$0 | 0; + return; } -function _sift($head, $width, $cmp, $pshift, $lp) { - $head = $head | 0; - $width = $width | 0; - $cmp = $cmp | 0; - $pshift = $pshift | 0; - $lp = $lp | 0; - var $$0$be = 0, $$01$be = 0, $$012 = 0, $$03 = 0, $1 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $6 = 0, $7 = 0, $ar = 0, $i$0$lcssa = 0, $i$04 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 240 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ar = sp; - HEAP32[$ar >> 2] = $head; - L1 : do if (($pshift | 0) > 1) { - $1 = 0 - $width | 0; - $$012 = $pshift; - $$03 = $head; - $7 = $head; - $i$04 = 1; - while (1) { - $2 = $$03 + $1 | 0; - $3 = $$012 + -2 | 0; - $6 = $$03 + (0 - ((HEAP32[$lp + ($3 << 2) >> 2] | 0) + $width)) | 0; - if ((FUNCTION_TABLE_iii[$cmp & 15]($7, $6) | 0) > -1) if ((FUNCTION_TABLE_iii[$cmp & 15]($7, $2) | 0) > -1) { - $i$0$lcssa = $i$04; - break L1; - } - $14 = $i$04 + 1 | 0; - $15 = $ar + ($i$04 << 2) | 0; - if ((FUNCTION_TABLE_iii[$cmp & 15]($6, $2) | 0) > -1) { - HEAP32[$15 >> 2] = $6; - $$0$be = $6; - $$01$be = $$012 + -1 | 0; - } else { - HEAP32[$15 >> 2] = $2; - $$0$be = $2; - $$01$be = $3; - } - if (($$01$be | 0) <= 1) { - $i$0$lcssa = $14; - break L1; +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE6resizeEj($this, $__sz) { + $this = $this | 0; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 2; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 2) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + while (1) { + $12 = $13 + -4 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; + break; + } else $13 = $12; } - $$012 = $$01$be; - $$03 = $$0$be; - $7 = HEAP32[$ar >> 2] | 0; - $i$04 = $14; + HEAP32[$0 >> 2] = $$lcssa; } - } else $i$0$lcssa = 1; while (0); - _cycle($width, $ar, $i$0$lcssa); - STACKTOP = sp; + } return; } -function _arCreateHandle($paramLT) { - $paramLT = $paramLT | 0; - var $0 = 0, $15 = 0, $18 = 0, $26 = 0, sp = 0; +function _setMatrixCodeType($id, $type) { + $id = $id | 0; + $type = $type | 0; + var $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = _malloc(7062432) | 0; - if (!$0) { - _arLog(3, 5471, sp); - _exit(1); + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0) { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 212 | 0; + _arSetMatrixCodeType(HEAP32[$4 >> 2] | 0, $type) | 0; } - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4834148 >> 2] = 0; - HEAP32[$0 + 7062408 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = -1; - HEAP32[$0 + 8 >> 2] = 0; - HEAP32[$0 + 12 >> 2] = 1; - HEAP32[$0 + 16 >> 2] = 100; - HEAP32[$0 + 20 >> 2] = 0; - HEAP32[$0 + 24 >> 2] = 0; - HEAP32[$0 + 28 >> 2] = 2; - HEAPF64[$0 + 7062416 >> 3] = .5; - HEAP32[$0 + 7062424 >> 2] = 3; - HEAP32[$0 + 32 >> 2] = $paramLT; - $15 = HEAP32[$paramLT >> 2] | 0; - HEAP32[$0 + 36 >> 2] = $15; - $18 = HEAP32[$paramLT + 4 >> 2] | 0; - HEAP32[$0 + 40 >> 2] = $18; - HEAP32[$0 + 44 >> 2] = 0; - HEAP32[$0 + 15408 >> 2] = 0; - HEAP32[$0 + 4834152 >> 2] = 0; - HEAP32[$0 + 4818296 >> 2] = 0; - $26 = _malloc(Math_imul($15 << 1, $18) | 0) | 0; - HEAP32[$0 + 4834144 >> 2] = $26; - if (!$26) { - _arLog(3, 5471, sp + 8 | 0); - _exit(1); - } else { - HEAP32[$0 + 7062384 >> 2] = 0; - _arSetPixelFormat($0, 2) | 0; - _arSetDebugMode($0, 0) | 0; - HEAP32[$0 + 7062388 >> 2] = -1; - _arSetLabelingThreshMode($0, 0) | 0; - HEAP32[$0 + 7062392 >> 2] = 7; - HEAP32[$0 + 7062396 >> 2] = 0; - STACKTOP = sp; - return $0 | 0; + STACKTOP = sp; + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($this, $__s, $__sz, $__reserve) { + $this = $this | 0; + $__s = $__s | 0; + $__sz = $__sz | 0; + $__reserve = $__reserve | 0; + var $6 = 0, $7 = 0, $__p$0 = 0; + if ($__reserve >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__reserve >>> 0 < 11) { + HEAP8[$this >> 0] = $__sz << 1; + $__p$0 = $this + 1 | 0; + } else { + $6 = $__reserve + 16 & -16; + $7 = _malloc($6) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__sz; + $__p$0 = $7; } - return 0; + _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; + HEAP8[$__p$0 + $__sz >> 0] = 0; + return; } -function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($this, $__x) { - $this = $this | 0; - $__x = $__x | 0; - var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__v = sp; - $1 = $this + 4 | 0; - $3 = HEAP32[$this >> 2] | 0; - $8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0; - if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); - $13 = $3; - $14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0; - if ($14 >> 3 >>> 0 < 268435455) { - $17 = $14 >> 2; - $$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17; - } else $$0$i = 536870911; - __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0); - $24 = $__v + 8 | 0; - $25 = HEAP32[$24 >> 2] | 0; - $26 = $__x; - $31 = HEAP32[$26 + 4 >> 2] | 0; - $32 = $25; - HEAP32[$32 >> 2] = HEAP32[$26 >> 2]; - HEAP32[$32 + 4 >> 2] = $31; - HEAP32[$24 >> 2] = $25 + 8; - __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v); - __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($__v); - STACKTOP = sp; +function __ZN6vision19NormalizeHomographyIfEEvPT_($H) { + $H = $H | 0; + var $0 = 0, $11 = 0, $14 = 0, $17 = 0, $2 = 0.0, $20 = 0, $23 = 0, $5 = 0, $8 = 0; + $0 = $H + 32 | 0; + $2 = 1.0 / +HEAPF32[$0 >> 2]; + HEAPF32[$H >> 2] = $2 * +HEAPF32[$H >> 2]; + $5 = $H + 4 | 0; + HEAPF32[$5 >> 2] = $2 * +HEAPF32[$5 >> 2]; + $8 = $H + 8 | 0; + HEAPF32[$8 >> 2] = $2 * +HEAPF32[$8 >> 2]; + $11 = $H + 12 | 0; + HEAPF32[$11 >> 2] = $2 * +HEAPF32[$11 >> 2]; + $14 = $H + 16 | 0; + HEAPF32[$14 >> 2] = $2 * +HEAPF32[$14 >> 2]; + $17 = $H + 20 | 0; + HEAPF32[$17 >> 2] = $2 * +HEAPF32[$17 >> 2]; + $20 = $H + 24 | 0; + HEAPF32[$20 >> 2] = $2 * +HEAPF32[$20 >> 2]; + $23 = $H + 28 | 0; + HEAPF32[$23 >> 2] = $2 * +HEAPF32[$23 >> 2]; + HEAPF32[$0 >> 2] = 1.0; return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) { +function _jpeg_stdio_src($cinfo, $infile) { + $cinfo = $cinfo | 0; + $infile = $infile | 0; + var $0 = 0, $1 = 0, $12 = 0, $3 = 0, $6 = 0, $9 = 0; + $0 = $cinfo + 24 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (!$1) { + $3 = $cinfo + 4 | 0; + $6 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$3 >> 2] >> 2] & 63]($cinfo, 0, 40) | 0; + HEAP32[$0 >> 2] = $6; + $9 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$3 >> 2] >> 2] & 63]($cinfo, 0, 4096) | 0; + HEAP32[$6 + 32 >> 2] = $9; + $12 = HEAP32[$0 >> 2] | 0; + } else $12 = $1; + HEAP32[$12 + 8 >> 2] = 114; + HEAP32[$12 + 12 >> 2] = 66; + HEAP32[$12 + 16 >> 2] = 40; + HEAP32[$12 + 20 >> 2] = 20; + HEAP32[$12 + 24 >> 2] = 115; + HEAP32[$12 + 28 >> 2] = $infile; + HEAP32[$12 + 4 >> 2] = 0; + HEAP32[$12 >> 2] = 0; + return; +} + +function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { $this = $this | 0; - $__n = $__n | 0; - var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; - if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; - $6 = HEAP32[$this + 4 >> 2] | 0; - if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { - if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; - $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; - if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; - $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; - if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28); + $info = $info | 0; + $dst_ptr = $dst_ptr | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $4 = 0; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else { + $4 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 20 >> 2] & 7]($4, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); } return; } -function _vsnprintf($s, $n, $fmt, $ap) { +function _strtok($s, $sep) { $s = $s | 0; - $n = $n | 0; - $fmt = $fmt | 0; - $ap = $ap | 0; - var $$$02 = 0, $$0 = 0, $$01 = 0, $$02 = 0, $10 = 0, $11 = 0, $13 = 0, $15 = 0, $3 = 0, $5 = 0, $8 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $b = sp + 112 | 0; - $f = sp; - dest = $f; - src = 2684; - stop = dest + 112 | 0; - do { - HEAP32[dest >> 2] = HEAP32[src >> 2]; - dest = dest + 4 | 0; - src = src + 4 | 0; - } while ((dest | 0) < (stop | 0)); - if (($n + -1 | 0) >>> 0 > 2147483646) if (!$n) { - $$01 = $b; - $$02 = 1; - label = 4; - } else { - $3 = ___errno_location() | 0; - HEAP32[$3 >> 2] = 75; - $$0 = -1; + $sep = $sep | 0; + var $$0 = 0, $$01 = 0, $$sum = 0, $1 = 0, $3 = 0, $4 = 0, $8 = 0, label = 0; + if (!$s) { + $1 = HEAP32[1654] | 0; + if (!$1) $$0 = 0; else { + $$01 = $1; + label = 3; + } } else { $$01 = $s; - $$02 = $n; - label = 4; + label = 3; } - if ((label | 0) == 4) { - $5 = -2 - $$01 | 0; - $$$02 = $$02 >>> 0 > $5 >>> 0 ? $5 : $$02; - HEAP32[$f + 48 >> 2] = $$$02; - $8 = $f + 20 | 0; - HEAP32[$8 >> 2] = $$01; - HEAP32[$f + 44 >> 2] = $$01; - $10 = $$01 + $$$02 | 0; - $11 = $f + 16 | 0; - HEAP32[$11 >> 2] = $10; - HEAP32[$f + 28 >> 2] = $10; - $13 = _vfprintf($f, $fmt, $ap) | 0; - if (!$$$02) $$0 = $13; else { - $15 = HEAP32[$8 >> 2] | 0; - HEAP8[$15 + ((($15 | 0) == (HEAP32[$11 >> 2] | 0)) << 31 >> 31) >> 0] = 0; - $$0 = $13; + do if ((label | 0) == 3) { + $3 = _strspn($$01, $sep) | 0; + $4 = $$01 + $3 | 0; + if (!(HEAP8[$4 >> 0] | 0)) { + HEAP32[1654] = 0; + $$0 = 0; + break; } - } - STACKTOP = sp; + $$sum = (_strcspn($4, $sep) | 0) + $3 | 0; + $8 = $$01 + $$sum | 0; + HEAP32[1654] = $8; + if (!(HEAP8[$8 >> 0] | 0)) { + HEAP32[1654] = 0; + $$0 = $4; + break; + } else { + HEAP32[1654] = $$01 + ($$sum + 1); + HEAP8[$8 >> 0] = 0; + $$0 = $4; + break; + } + } while (0); return $$0 | 0; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) { +function _merged_1v_upsample($cinfo, $input_buf, $in_row_group_ctr, $in_row_groups_avail, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $in_row_group_ctr = $in_row_group_ctr | 0; + $in_row_groups_avail = $in_row_groups_avail | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$cinfo + 452 >> 2] | 0) + 12 >> 2] & 31]($cinfo, $input_buf, HEAP32[$in_row_group_ctr >> 2] | 0, $output_buf + (HEAP32[$out_row_ctr >> 2] << 2) | 0); + HEAP32[$out_row_ctr >> 2] = (HEAP32[$out_row_ctr >> 2] | 0) + 1; + HEAP32[$in_row_group_ctr >> 2] = (HEAP32[$in_row_group_ctr >> 2] | 0) + 1; + return; +} + +function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { $this = $this | 0; - $__n = $__n | 0; - var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0; - if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0; - $6 = HEAP32[$this + 4 >> 2] | 0; - if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) { - if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0; - $20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0; - if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0; - $28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1; - if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28); - } + $info = $info | 0; + $current_ptr = $current_ptr | 0; + $path_below = $path_below | 0; + $use_strcmp = $use_strcmp | 0; + var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $1 >> 8; + if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0; + $8 = HEAP32[$this >> 2] | 0; + FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 24 >> 2] & 31]($8, $info, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp); return; } -function _addMarker($id, $patt_name) { +function _getProjectionNearPlane($id) { $id = $id | 0; - $patt_name = $patt_name | 0; - var $$0 = 0, $0 = 0, $11 = 0, $13 = 0, $14 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0; + var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 8 | 0; - $vararg_buffer = sp; - $0 = sp + 12 | 0; + $0 = sp; HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if (!(HEAP8[$patt_name >> 0] & 1)) $13 = $patt_name + 1 | 0; else $13 = HEAP32[$patt_name + 8 >> 2] | 0; - $11 = $3 + 216 | 0; - $14 = _arPattLoad(HEAP32[$11 >> 2] | 0, $13) | 0; - HEAP32[$3 + 260 >> 2] = $14; - if (($14 | 0) < 0) { - HEAP32[$vararg_buffer >> 2] = $13; - _arLog(3, 6311, $vararg_buffer); - _arPattDeleteHandle(HEAP32[$11 >> 2] | 0) | 0; - _arLog(3, 6357, $vararg_buffer1); - $$0 = -1; - } else $$0 = $14; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1.0; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 264 | 0; + $$0 = +HEAPF64[$4 >> 3]; } STACKTOP = sp; - return $$0 | 0; + return +$$0; } -function _icpGetDeltaS($S, $dU, $J_U_S, $n) { - $S = $S | 0; - $dU = $dU | 0; - $J_U_S = $J_U_S | 0; - $n = $n | 0; - var $$0 = 0, $10 = 0, $6 = 0, $8 = 0, $matJ = 0, $matS = 0, $matU = 0, sp = 0; +function _getProjectionFarPlane($id) { + $id = $id | 0; + var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 48 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $matS = sp + 24 | 0; - $matU = sp + 12 | 0; - $matJ = sp; - HEAP32[$matS + 4 >> 2] = 6; - HEAP32[$matS + 8 >> 2] = 1; - HEAP32[$matS >> 2] = $S; - HEAP32[$matU + 4 >> 2] = $n; - HEAP32[$matU + 8 >> 2] = 1; - HEAP32[$matU >> 2] = $dU; - HEAP32[$matJ + 4 >> 2] = $n; - HEAP32[$matJ + 8 >> 2] = 6; - HEAP32[$matJ >> 2] = $J_U_S; - $6 = _arMatrixAllocTrans($matJ) | 0; - do if (!$6) $$0 = -1; else { - $8 = _arMatrixAllocMul($6, $matJ) | 0; - if (!$8) { - _arMatrixFree($6) | 0; - $$0 = -1; - break; - } - $10 = _arMatrixAllocMul($6, $matU) | 0; - if (!$10) { - _arMatrixFree($6) | 0; - _arMatrixFree($8) | 0; - $$0 = -1; - break; + $0 = sp; + HEAP32[$0 >> 2] = $id; + if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(5820, $0) | 0)) $$0 = -1.0; else { + $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(5820, $0) | 0) + 272 | 0; + $$0 = +HEAPF64[$4 >> 3]; + } + STACKTOP = sp; + return +$$0; +} + +function __ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $10 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } - if ((_arMatrixSelfInv($8) | 0) < 0) { - _arMatrixFree($6) | 0; - _arMatrixFree($8) | 0; - _arMatrixFree($10) | 0; - $$0 = -1; + HEAP32[$2 >> 2] = $$lcssa; + } + $7 = HEAP32[$this >> 2] | 0; + do if ($7) { + $10 = HEAP32[$this + 16 >> 2] | 0; + if (($10 | 0) == ($7 | 0)) { + HEAP8[$10 + 112 >> 0] = 0; break; } else { - _arMatrixMul($matS, $8, $10) | 0; - _arMatrixFree($6) | 0; - _arMatrixFree($8) | 0; - _arMatrixFree($10) | 0; - $$0 = 0; + __ZdlPv($7); break; } } while (0); + return; +} + +function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($agg$result, $this, $__k) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__k = $__k | 0; + var $1 = 0, $12 = 0, $9 = 0; + $1 = __Znwj(440) | 0; + HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; + _memset($1 + 16 | 0, 0, 424) | 0; + HEAPF32[$1 + 272 >> 2] = 1.0; + HEAPF64[$1 + 280 >> 3] = .0001; + HEAPF64[$1 + 288 >> 3] = 1.0e3; + $9 = $1 + 296 | 0; + HEAP32[$9 >> 2] = 0; + HEAP32[$9 + 4 >> 2] = 0; + HEAP32[$9 + 8 >> 2] = 0; + HEAP32[$9 + 12 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $12 = $agg$result + 4 | 0; + HEAP32[$12 >> 2] = $this + 8; + HEAP32[$12 + 4 >> 2] = 257; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE16__construct_nodeERKS2_j($agg$result, $this, $__v, $__hash) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__v = $__v | 0; + $__hash = $__hash | 0; + var $1 = 0, $10 = 0, $17 = 0, $4 = 0, $9 = 0; + $1 = __Znwj(16) | 0; + $4 = $__v; + $9 = HEAP32[$4 + 4 >> 2] | 0; + $10 = $1 + 8 | 0; + HEAP32[$10 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$10 + 4 >> 2] = $9; + HEAP32[$1 + 4 >> 2] = $__hash; + HEAP32[$1 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $17 = $agg$result + 4 | 0; + HEAP32[$17 >> 2] = $this + 8; + HEAP32[$17 + 4 >> 2] = 1; + return; +} + +function _jcopy_sample_rows($input_array, $source_row, $output_array, $dest_row, $num_rows, $num_cols) { + $input_array = $input_array | 0; + $source_row = $source_row | 0; + $output_array = $output_array | 0; + $dest_row = $dest_row | 0; + $num_rows = $num_rows | 0; + $num_cols = $num_cols | 0; + var $$012 = 0, $$03 = 0, $row$04 = 0; + if (($num_rows | 0) > 0) { + $$012 = $output_array + ($dest_row << 2) | 0; + $$03 = $input_array + ($source_row << 2) | 0; + $row$04 = $num_rows; + while (1) { + _memcpy(HEAP32[$$012 >> 2] | 0, HEAP32[$$03 >> 2] | 0, $num_cols | 0) | 0; + if (($row$04 | 0) > 1) { + $$012 = $$012 + 4 | 0; + $$03 = $$03 + 4 | 0; + $row$04 = $row$04 + -1 | 0; + } else break; + } + } + return; +} + +function __ZNSt3__110__stdinbufIwEC2EP8_IO_FILEP11__mbstate_t($this, $__fp, $__st) { + $this = $this | 0; + $__fp = $__fp | 0; + $__st = $__st | 0; + var $0 = 0, $1 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp + 4 | 0; + $1 = sp; + __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev($this); + HEAP32[$this >> 2] = 11628; + HEAP32[$this + 32 >> 2] = $__fp; + HEAP32[$this + 40 >> 2] = $__st; + HEAP32[$this + 48 >> 2] = -1; + HEAP8[$this + 52 >> 0] = 0; + __ZNSt3__16localeC2ERKS0_($0, $this + 4 | 0); + HEAP32[$1 >> 2] = HEAP32[$0 >> 2]; + __ZNSt3__110__stdinbufIwE5imbueERKNS_6localeE($this, $1); + __ZNSt3__16localeD2Ev($1); STACKTOP = sp; - return $$0 | 0; + return; } -function _getTransMatMultiSquareRobust($id, $multiMarkerId) { - $id = $id | 0; - $multiMarkerId = $multiMarkerId | 0; - var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0; +function __ZNSt3__110__stdinbufIcEC2EP8_IO_FILEP11__mbstate_t($this, $__fp, $__st) { + $this = $this | 0; + $__fp = $__fp | 0; + $__st = $__st | 0; + var $0 = 0, $1 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $8 = HEAP32[$4 + 248 >> 2] | 0; - if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { - $$0 = HEAP32[524] | 0; + $0 = sp + 4 | 0; + $1 = sp; + __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev($this); + HEAP32[$this >> 2] = 11756; + HEAP32[$this + 32 >> 2] = $__fp; + HEAP32[$this + 40 >> 2] = $__st; + HEAP32[$this + 48 >> 2] = -1; + HEAP8[$this + 52 >> 0] = 0; + __ZNSt3__16localeC2ERKS0_($0, $this + 4 | 0); + HEAP32[$1 >> 2] = HEAP32[$0 >> 2]; + __ZNSt3__110__stdinbufIcE5imbueERKNS_6localeE($this, $1); + __ZNSt3__16localeD2Ev($1); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEjRKi($this, $__sz, $__x) { + $this = $this | 0; + $__sz = $__sz | 0; + $__x = $__x | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 2; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIiNS_9allocatorIiEEE8__appendEjRKi($this, $__sz - $6 | 0, $__x); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 2) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + while (1) { + $12 = $13 + -4 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; + break; + } else $13 = $12; + } + HEAP32[$0 >> 2] = $$lcssa; + } + } + return; +} +function __ZNSt3__16locale5__impD2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0, $3 = 0, $6 = 0, $7 = 0, $i$01 = 0; + HEAP32[$this >> 2] = 13656; + $0 = $this + 8 | 0; + $1 = $this + 12 | 0; + $3 = HEAP32[$0 >> 2] | 0; + if ((HEAP32[$1 >> 2] | 0) != ($3 | 0)) { + $6 = $3; + $i$01 = 0; + do { + $7 = HEAP32[$6 + ($i$01 << 2) >> 2] | 0; + if ($7) __ZNSt3__114__shared_count16__release_sharedEv($7) | 0; + $i$01 = $i$01 + 1 | 0; + $6 = HEAP32[$0 >> 2] | 0; + } while ($i$01 >>> 0 < (HEAP32[$1 >> 2] | 0) - $6 >> 2 >>> 0); + } + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this + 144 | 0); + __ZNSt3__113__vector_baseIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEED2Ev($0); + return; +} + +function __ZNSt3__114__split_bufferIPNS_6locale5facetERNS_15__sso_allocatorIS3_Lj28EEEEC2EjjS6_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $3 = 0, $8 = 0, $9 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + do if (!$__cap) $8 = 0; else { + $3 = $__a + 112 | 0; + if ($__cap >>> 0 < 29 & (HEAP8[$3 >> 0] | 0) == 0) { + HEAP8[$3 >> 0] = 1; + $8 = $__a; break; } else { - $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; - $21 = HEAP32[$4 + 212 >> 2] | 0; - +_arGetTransMatMultiSquareRobust(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17); - _matrixCopy($17 + 8 | 0, 264); - $$0 = 0; + $8 = __Znwj($__cap << 2) | 0; break; } } while (0); - STACKTOP = sp; - return $$0 | 0; + HEAP32[$this >> 2] = $8; + $9 = $8 + ($__start << 2) | 0; + HEAP32[$this + 8 >> 2] = $9; + HEAP32[$this + 4 >> 2] = $9; + HEAP32[$this + 12 >> 2] = $8 + ($__cap << 2); + return; } -function _arImageProcLumaHistAndCDFAndPercentile($ipi, $dataPtr, $percentile, $value_p) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + var $0 = 0, $1 = 0, $13 = 0, $3 = 0; + $0 = $this + 12 | 0; + $1 = HEAP8[$0 >> 0] | 0; + $3 = ($1 & 1) == 0; + $13 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $3 ? $0 + 1 | 0 : HEAP32[$this + 20 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$this + 16 >> 2] | 0) | 0; + HEAP32[$agg$result >> 2] = HEAP32[$13 >> 2]; + HEAP32[$agg$result + 4 >> 2] = HEAP32[$13 + 4 >> 2]; + HEAP32[$agg$result + 8 >> 2] = HEAP32[$13 + 8 >> 2]; + HEAP32[$13 >> 2] = 0; + HEAP32[$13 + 4 >> 2] = 0; + HEAP32[$13 + 8 >> 2] = 0; + return; +} + +function _arImageProcLumaHist($ipi, $dataPtr) { $ipi = $ipi | 0; $dataPtr = $dataPtr | 0; - $percentile = +$percentile; - $value_p = $value_p | 0; - var $$0 = 0, $$in = 0, $$lcssa10 = 0, $$lcssa9 = 0, $11 = 0, $12 = 0, $14 = 0, $18 = 0, $2 = 0, $i$0 = 0, $i$0$lcssa = 0, $j$0$lcssa = 0; - if ($percentile < 0.0 | $percentile > 1.0) $$0 = -1; else { - $2 = _arImageProcLumaHistAndCDF($ipi, $dataPtr) | 0; - if (($2 | 0) < 0) $$0 = $2; else { - $11 = ~~(+(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) * $percentile) >>> 0; - $i$0 = 0; + var $$0 = 0, $13 = 0, $5 = 0, $8 = 0, $9 = 0, $p$03 = 0; + if (($ipi | 0) != 0 & ($dataPtr | 0) != 0) if ((_arImageProcLuma($ipi, $dataPtr) | 0) < 0) $$0 = -1; else { + _memset($ipi + 16 | 0, 0, 1024) | 0; + $5 = HEAP32[$ipi >> 2] | 0; + $8 = Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0; + $9 = $5 + $8 | 0; + if (($8 | 0) > 0) { + $p$03 = $5; + do { + $13 = $ipi + 16 + ((HEAPU8[$p$03 >> 0] | 0) << 2) | 0; + HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 1; + $p$03 = $p$03 + 1 | 0; + } while ($p$03 >>> 0 < $9 >>> 0); + $$0 = 0; + } else $$0 = 0; + } else $$0 = -1; + return $$0 | 0; +} + +function __ZNSt3__111__stdoutbufIwE6xsputnEPKwi($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$0 = 0, $$012 = 0, $13 = 0, $__i$03 = 0; + L1 : do if (!(HEAP8[$this + 44 >> 0] | 0)) if (($__n | 0) > 0) { + $$012 = $__s; + $__i$03 = 0; + while (1) { + if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$this >> 2] | 0) + 52 >> 2] & 63]($this, HEAP32[$$012 >> 2] | 0) | 0) == -1) { + $$0 = $__i$03; + break L1; + } + $13 = $__i$03 + 1 | 0; + if (($13 | 0) < ($__n | 0)) { + $$012 = $$012 + 4 | 0; + $__i$03 = $13; + } else { + $$0 = $13; + break; + } + } + } else $$0 = 0; else $$0 = _fwrite($__s, 4, $__n, HEAP32[$this + 32 >> 2] | 0) | 0; while (0); + return $$0 | 0; +} + +function __ZNSt3__111__stdoutbufIcE6xsputnEPKci($this, $__s, $__n) { + $this = $this | 0; + $__s = $__s | 0; + $__n = $__n | 0; + var $$0 = 0, $$012 = 0, $14 = 0, $__i$03 = 0; + L1 : do if (!(HEAP8[$this + 44 >> 0] | 0)) if (($__n | 0) > 0) { + $$012 = $__s; + $__i$03 = 0; + while (1) { + if ((FUNCTION_TABLE_iii[HEAP32[(HEAP32[$this >> 2] | 0) + 52 >> 2] & 63]($this, HEAPU8[$$012 >> 0] | 0) | 0) == -1) { + $$0 = $__i$03; + break L1; + } + $14 = $__i$03 + 1 | 0; + if (($14 | 0) < ($__n | 0)) { + $$012 = $$012 + 1 | 0; + $__i$03 = $14; + } else { + $$0 = $14; + break; + } + } + } else $$0 = 0; else $$0 = _fwrite($__s, 1, $__n, HEAP32[$this + 32 >> 2] | 0) | 0; while (0); + return $$0 | 0; +} + +function __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE6resizeEj($this, $__sz) { + $this = $this | 0; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 3; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 3) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; while (1) { - $12 = $i$0 & 255; - $14 = HEAP32[$ipi + 1040 + ($12 << 2) >> 2] | 0; - if ($14 >>> 0 < $11 >>> 0) $i$0 = $i$0 + 1 << 24 >> 24; else { - $$lcssa10 = $14; - $$lcssa9 = $12; - $i$0$lcssa = $i$0; + $12 = $13 + -8 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; break; - } + } else $13 = $12; } - if (($$lcssa10 | 0) == ($11 | 0)) { - $$in = $i$0$lcssa; - while (1) { - $18 = $$in + 1 << 24 >> 24; - if ((HEAP32[$ipi + 1040 + (($18 & 255) << 2) >> 2] | 0) == ($11 | 0)) $$in = $18; else { - $j$0$lcssa = $18; - break; - } - } - } else $j$0$lcssa = $i$0$lcssa; - HEAP8[$value_p >> 0] = (($j$0$lcssa & 255) + $$lcssa9 | 0) >>> 1; - $$0 = 0; + HEAP32[$0 >> 2] = $$lcssa; + } + } + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE6resizeEjRKh($this, $__sz, $__x) { + $this = $this | 0; + $__sz = $__sz | 0; + $__x = $__x | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $2 = 0, $5 = 0, $9 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $5 = $1 - $2 | 0; + if ($5 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIhNS_9allocatorIhEEE8__appendEjRKh($this, $__sz - $5 | 0, $__x); else if ($5 >>> 0 > $__sz >>> 0) { + $9 = $2 + $__sz | 0; + if (($1 | 0) != ($9 | 0)) { + $12 = $1; + while (1) { + $11 = $12 + -1 | 0; + if (($11 | 0) == ($9 | 0)) { + $$lcssa = $11; + break; + } else $12 = $11; + } + HEAP32[$0 >> 2] = $$lcssa; } } + return; +} + +function _ar2FreeFeatureSet($featureSet) { + $featureSet = $featureSet | 0; + var $$0 = 0, $$lcssa = 0, $$pre = 0, $0 = 0, $6 = 0, $i$01 = 0; + $0 = HEAP32[$featureSet >> 2] | 0; + if (!$0) $$0 = -1; else { + if ((HEAP32[$0 + 4 >> 2] | 0) > 0) { + $6 = $0; + $i$01 = 0; + while (1) { + _free(HEAP32[(HEAP32[$6 >> 2] | 0) + ($i$01 * 20 | 0) >> 2] | 0); + $i$01 = $i$01 + 1 | 0; + $$pre = HEAP32[$featureSet >> 2] | 0; + if (($i$01 | 0) >= (HEAP32[$$pre + 4 >> 2] | 0)) { + $$lcssa = $$pre; + break; + } else $6 = $$pre; + } + } else $$lcssa = $0; + _free(HEAP32[$$lcssa >> 2] | 0); + _free(HEAP32[$featureSet >> 2] | 0); + HEAP32[$featureSet >> 2] = 0; + $$0 = 0; + } return $$0 | 0; } -function _getTransMatMultiSquare($id, $multiMarkerId) { - $id = $id | 0; - $multiMarkerId = $multiMarkerId | 0; - var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $8 = HEAP32[$4 + 248 >> 2] | 0; - if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) { - $$0 = HEAP32[524] | 0; +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEC2ERKS7_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $2 = 0, $3 = 0, $4 = 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + $2 = $__x + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + $4 = HEAP32[$__x >> 2] | 0; + if (($3 | 0) != ($4 | 0)) { + __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE8allocateEj($this, ($3 - $4 | 0) / 12 | 0); + __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE18__construct_at_endIPS5_EENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESB_SB_($this, HEAP32[$__x >> 2] | 0, HEAP32[$2 >> 2] | 0); + } + return; +} + +function _memcpy(dest, src, num) { + dest = dest | 0; + src = src | 0; + num = num | 0; + var ret = 0; + if ((num | 0) >= 4096) return _emscripten_memcpy_big(dest | 0, src | 0, num | 0) | 0; + ret = dest | 0; + if ((dest & 3) == (src & 3)) { + while (dest & 3) { + if (!num) return ret | 0; + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + num = num - 1 | 0; + } + while ((num | 0) >= 4) { + HEAP32[dest >> 2] = HEAP32[src >> 2]; + dest = dest + 4 | 0; + src = src + 4 | 0; + num = num - 4 | 0; + } + } + while ((num | 0) > 0) { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + num = num - 1 | 0; + } + return ret | 0; +} + +function _getc($f) { + $f = $f | 0; + var $$0 = 0, $14 = 0, $15 = 0, $23 = 0, $5 = 0, $6 = 0, label = 0; + if ((HEAP32[$f + 76 >> 2] | 0) < 0) label = 3; else if (!(___lockfile($f) | 0)) label = 3; else { + $14 = $f + 4 | 0; + $15 = HEAP32[$14 >> 2] | 0; + if ($15 >>> 0 < (HEAP32[$f + 8 >> 2] | 0) >>> 0) { + HEAP32[$14 >> 2] = $15 + 1; + $23 = HEAPU8[$15 >> 0] | 0; + } else $23 = ___uflow($f) | 0; + $$0 = $23; + } + do if ((label | 0) == 3) { + $5 = $f + 4 | 0; + $6 = HEAP32[$5 >> 2] | 0; + if ($6 >>> 0 < (HEAP32[$f + 8 >> 2] | 0) >>> 0) { + HEAP32[$5 >> 2] = $6 + 1; + $$0 = HEAPU8[$6 >> 0] | 0; break; } else { - $17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0; - $21 = HEAP32[$4 + 212 >> 2] | 0; - +_arGetTransMatMultiSquare(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17); - _matrixCopy($17 + 8 | 0, 264); - $$0 = 0; + $$0 = ___uflow($f) | 0; break; } } while (0); - STACKTOP = sp; return $$0 | 0; } -function _arPattDeleteHandle($pattHandle) { - $pattHandle = $pattHandle | 0; - var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $25 = 0, $3 = 0, $32 = 0, $4 = 0, $i$03 = 0; - if (!$pattHandle) $$0 = -1; else { - $1 = $pattHandle + 4 | 0; - $2 = $pattHandle + 8 | 0; - $3 = $pattHandle + 12 | 0; - $4 = $pattHandle + 20 | 0; - if ((HEAP32[$1 >> 2] | 0) > 0) { - $i$03 = 0; +function __ZN6vision18BinomialPyramid32f18apply_filter_twiceERNS_5ImageERKS1_($this, $dst, $src) { + $this = $this | 0; + $dst = $dst | 0; + $src = $src | 0; + var $tmp = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 32 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $tmp = sp; + __ZN6vision5ImageC2EPhNS_9ImageTypeEjjij($tmp, HEAP32[$this + 56 >> 2] | 0, HEAP32[$src >> 2] | 0, HEAP32[$src + 4 >> 2] | 0, HEAP32[$src + 8 >> 2] | 0, HEAP32[$src + 12 >> 2] | 0, 1); + __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $tmp, $src); + __ZN6vision18BinomialPyramid32f12apply_filterERNS_5ImageERKS1_($this, $dst, $tmp); + __ZN6vision5ImageD2Ev($tmp); + STACKTOP = sp; + return; +} + +function __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE6resizeEj($this, $__sz) { + $this = $this | 0; + $__sz = $__sz | 0; + var $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 5; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 5) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; do { - if (HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$03 << 2) >> 2] | 0) _arPattFree($pattHandle, $i$03) | 0; - $11 = $i$03 << 2; - _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($11 << 2) >> 2] | 0); - _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($11 << 2) >> 2] | 0); - $18 = 1 + $11 | 0; - _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($18 << 2) >> 2] | 0); - _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($18 << 2) >> 2] | 0); - $25 = 2 + $11 | 0; - _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($25 << 2) >> 2] | 0); - _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($25 << 2) >> 2] | 0); - $32 = 3 + $11 | 0; - _free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($32 << 2) >> 2] | 0); - _free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($32 << 2) >> 2] | 0); - $i$03 = $i$03 + 1 | 0; - } while (($i$03 | 0) < (HEAP32[$1 >> 2] | 0)); + $12 = $13 + -32 | 0; + HEAP32[$0 >> 2] = $12; + __ZN6vision5ImageD2Ev($12); + $13 = HEAP32[$0 >> 2] | 0; + } while (($13 | 0) != ($10 | 0)); } - _free($pattHandle); - $$0 = 0; } - return $$0 | 0; + return; } -function _atoi($s) { - $s = $s | 0; - var $$0 = 0, $$0$lcssa = 0, $$1$ph = 0, $$13 = 0, $$lcssa9 = 0, $11 = 0, $4 = 0, $5 = 0, $8 = 0, $isdigittmp1 = 0, $isdigittmp5 = 0, $n$0$lcssa = 0, $n$04 = 0, $neg$0 = 0, $neg$1$ph = 0, label = 0; - $$0 = $s; - while (1) { - $4 = $$0 + 1 | 0; - if (!(_isspace(HEAP8[$$0 >> 0] | 0) | 0)) { - $$0$lcssa = $$0; - $$lcssa9 = $4; - break; - } else $$0 = $4; - } - $5 = HEAP8[$$0$lcssa >> 0] | 0; - switch ($5 << 24 >> 24 | 0) { - case 45: - { - $neg$0 = 1; - label = 5; - break; - } - case 43: - { - $neg$0 = 0; - label = 5; - break; - } - default: - { - $$1$ph = $$0$lcssa; - $8 = $5; - $neg$1$ph = 0; - } +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($this) { + $this = $this | 0; + var $$pre1 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $16 = 0; + $0 = HEAP8[$this >> 0] | 0; + if (!($0 & 1)) { + $10 = ($0 & 255) >>> 1; + $14 = $this + 1 | 0; + } else { + $10 = HEAP32[$this + 4 >> 2] | 0; + $14 = HEAP32[$this + 8 >> 2] | 0; } - if ((label | 0) == 5) { - $$1$ph = $$lcssa9; - $8 = HEAP8[$$lcssa9 >> 0] | 0; - $neg$1$ph = $neg$0; + $11 = ($10 | 0) != 0 & 1; + $$pre1 = $10 - $11 | 0; + if (($10 | 0) == ($11 | 0)) $16 = $0; else { + _memmove($14 | 0, $14 + $11 | 0, $$pre1 | 0) | 0; + $16 = HEAP8[$this >> 0] | 0; } - $isdigittmp1 = ($8 << 24 >> 24) + -48 | 0; - if ($isdigittmp1 >>> 0 < 10) { - $$13 = $$1$ph; - $isdigittmp5 = $isdigittmp1; - $n$04 = 0; - while (1) { - $$13 = $$13 + 1 | 0; - $11 = ($n$04 * 10 | 0) - $isdigittmp5 | 0; - $isdigittmp5 = (HEAP8[$$13 >> 0] | 0) + -48 | 0; - if ($isdigittmp5 >>> 0 >= 10) { - $n$0$lcssa = $11; - break; - } else $n$04 = $11; - } - } else $n$0$lcssa = 0; - return (($neg$1$ph | 0) != 0 ? $n$0$lcssa : 0 - $n$0$lcssa | 0) | 0; + if (!($16 & 1)) HEAP8[$this >> 0] = $$pre1 << 1; else HEAP32[$this + 4 >> 2] = $$pre1; + HEAP8[$14 + $$pre1 >> 0] = 0; + return; } -function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) { - $this = $this | 0; - $__k = $__k | 0; - var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0; +function ___stdio_seek($f, $off, $whence) { + $f = $f | 0; + $off = $off | 0; + $whence = $whence | 0; + var $5 = 0, $ret = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__h = sp + 8 | 0; - $0 = sp; - $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; - if (!$1) { - __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k); - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0); - $5 = HEAP32[$0 >> 2] | 0; - HEAP32[$__h >> 2] = 0; - $$pn3 = $5; - } else $$pn3 = $1; + $vararg_buffer = sp; + $ret = sp + 20 | 0; + HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; + HEAP32[$vararg_buffer + 4 >> 2] = 0; + HEAP32[$vararg_buffer + 8 >> 2] = $off; + HEAP32[$vararg_buffer + 12 >> 2] = $ret; + HEAP32[$vararg_buffer + 16 >> 2] = $whence; + if ((___syscall_ret(___syscall140(140, $vararg_buffer | 0) | 0) | 0) < 0) { + HEAP32[$ret >> 2] = -1; + $5 = -1; + } else $5 = HEAP32[$ret >> 2] | 0; STACKTOP = sp; - return $$pn3 + 16 | 0; + return $5 | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($this, $__c) { +function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($this) { $this = $this | 0; - $__c = $__c | 0; - var $$pn = 0, $0 = 0, $19 = 0, $2 = 0, $20 = 0, $__cap$0 = 0, $__p$0$sum$pre$phiZZZ2D = 0, $__sz$0 = 0, label = 0; - $0 = HEAP8[$this >> 0] | 0; - $2 = ($0 & 1) != 0; - if ($2) { - $__cap$0 = (HEAP32[$this >> 2] & -2) + -1 | 0; - $__sz$0 = HEAP32[$this + 4 >> 2] | 0; - } else { - $__cap$0 = 10; - $__sz$0 = ($0 & 255) >>> 1; - } - if (($__sz$0 | 0) == ($__cap$0 | 0)) { - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__cap$0, 1, $__cap$0, $__cap$0, 0); - if (!(HEAP8[$this >> 0] & 1)) label = 7; else label = 8; - } else if ($2) label = 8; else label = 7; - if ((label | 0) == 7) { - HEAP8[$this >> 0] = ($__sz$0 << 1) + 2; - $$pn = $this + 1 | 0; - $__p$0$sum$pre$phiZZZ2D = $__sz$0 + 1 | 0; - } else if ((label | 0) == 8) { - $19 = HEAP32[$this + 8 >> 2] | 0; - $20 = $__sz$0 + 1 | 0; - HEAP32[$this + 4 >> 2] = $20; - $$pn = $19; - $__p$0$sum$pre$phiZZZ2D = $20; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($1 | 0)) { + $6 = $3; + do { + $5 = $6 + -24 | 0; + HEAP32[$2 >> 2] = $5; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($1 | 0)); } - HEAP8[$$pn + $__sz$0 >> 0] = $__c; - HEAP8[$$pn + $__p$0$sum$pre$phiZZZ2D >> 0] = 0; + $9 = HEAP32[$this >> 2] | 0; + if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); return; } -function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($this, $info, $dst_ptr, $current_ptr, $path_below) { +function __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this) { $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($0 | 0)) { + $6 = $3; + do { + $5 = $6 + -24 | 0; + HEAP32[$2 >> 2] = $5; + __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($0 | 0)); + } + $9 = HEAP32[$this >> 2] | 0; + __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); + } + return; +} + +function _write_backing_store($cinfo, $info, $buffer_address, $file_offset, $byte_count) { + $cinfo = $cinfo | 0; $info = $info | 0; - $dst_ptr = $dst_ptr | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - var $16 = 0, $17 = 0, $23 = 0, $25 = 0, $5 = 0, $6 = 0; - HEAP8[$info + 53 >> 0] = 1; - do if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { - HEAP8[$info + 52 >> 0] = 1; - $5 = $info + 16 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if (!$6) { - HEAP32[$5 >> 2] = $dst_ptr; - HEAP32[$info + 24 >> 2] = $path_below; - HEAP32[$info + 36 >> 2] = 1; - if (!(($path_below | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0)) break; - HEAP8[$info + 54 >> 0] = 1; + $buffer_address = $buffer_address | 0; + $file_offset = $file_offset | 0; + $byte_count = $byte_count | 0; + var $0 = 0, $10 = 0, $4 = 0; + $0 = $info + 12 | 0; + if (_fseek(HEAP32[$0 >> 2] | 0, $file_offset, 0) | 0) { + $4 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$4 + 20 >> 2] = 65; + FUNCTION_TABLE_vi[HEAP32[$4 >> 2] & 255]($cinfo); + } + if ((_fwrite($buffer_address, 1, $byte_count, HEAP32[$0 >> 2] | 0) | 0) != ($byte_count | 0)) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 66; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + return; +} + +function _read_backing_store($cinfo, $info, $buffer_address, $file_offset, $byte_count) { + $cinfo = $cinfo | 0; + $info = $info | 0; + $buffer_address = $buffer_address | 0; + $file_offset = $file_offset | 0; + $byte_count = $byte_count | 0; + var $0 = 0, $10 = 0, $4 = 0; + $0 = $info + 12 | 0; + if (_fseek(HEAP32[$0 >> 2] | 0, $file_offset, 0) | 0) { + $4 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$4 + 20 >> 2] = 65; + FUNCTION_TABLE_vi[HEAP32[$4 >> 2] & 255]($cinfo); + } + if ((_fread($buffer_address, 1, $byte_count, HEAP32[$0 >> 2] | 0) | 0) != ($byte_count | 0)) { + $10 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$10 + 20 >> 2] = 64; + FUNCTION_TABLE_vi[HEAP32[$10 >> 2] & 255]($cinfo); + } + return; +} + +function __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, $id) { + $this = $this | 0; + $f = $f | 0; + $id = $id | 0; + var $0 = 0, $11 = 0, $12 = 0, $15 = 0, $3 = 0; + __ZNSt3__114__shared_count12__add_sharedEv($f); + $0 = $this + 8 | 0; + $3 = HEAP32[$0 >> 2] | 0; + if ((HEAP32[$this + 12 >> 2] | 0) - $3 >> 2 >>> 0 > $id >>> 0) $11 = $3; else { + __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE6resizeEj($0, $id + 1 | 0); + $11 = HEAP32[$0 >> 2] | 0; + } + $12 = HEAP32[$11 + ($id << 2) >> 2] | 0; + if (!$12) $15 = $11; else { + __ZNSt3__114__shared_count16__release_sharedEv($12) | 0; + $15 = HEAP32[$0 >> 2] | 0; + } + HEAP32[$15 + ($id << 2) >> 2] = $f; + return; +} + +function _arVecHousehold($x) { + $x = $x | 0; + var $1 = 0.0, $10 = 0.0, $12 = 0, $14 = 0, $3 = 0, $4 = 0.0, $7 = 0.0, $i$01 = 0, $s$0 = 0.0, $s$1 = 0.0; + $1 = +Math_sqrt(+(+_arVecInnerproduct($x, $x))); + if ($1 != 0.0) { + $3 = HEAP32[$x >> 2] | 0; + $4 = +HEAPF64[$3 >> 3]; + $s$0 = $4 < 0.0 ? -$1 : $1; + $7 = $4 + $s$0; + HEAPF64[$3 >> 3] = $7; + $10 = 1.0 / +Math_sqrt(+($7 * $s$0)); + $12 = HEAP32[$x + 4 >> 2] | 0; + if (($12 | 0) > 0) { + $i$01 = 0; + do { + $14 = $3 + ($i$01 << 3) | 0; + HEAPF64[$14 >> 3] = $10 * +HEAPF64[$14 >> 3]; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) < ($12 | 0)); + $s$1 = $s$0; + } else $s$1 = $s$0; + } else $s$1 = $1; + return +-$s$1; +} + +function __ZN6vision5Image19calculate_unit_sizeENS_9ImageTypeE($type) { + $type = $type | 0; + var $0 = 0, $1 = 0, $size$0 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + switch ($type | 0) { + case 1: + { + $size$0 = 1; break; } - if (($6 | 0) != ($dst_ptr | 0)) { - $25 = $info + 36 | 0; - HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 1; - HEAP8[$info + 54 >> 0] = 1; + case 2: + { + $size$0 = 4; break; } - $16 = $info + 24 | 0; - $17 = HEAP32[$16 >> 2] | 0; - if (($17 | 0) == 2) { - HEAP32[$16 >> 2] = $path_below; - $23 = $path_below; - } else $23 = $17; - if (($23 | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0) HEAP8[$info + 54 >> 0] = 1; - } while (0); + default: + { + $1 = ___cxa_allocate_exception(16) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($0, 33939, 18); + __ZN6vision9ExceptionC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE($1, $0); + ___cxa_throw($1 | 0, 32, 5); + } + } + STACKTOP = sp; + return $size$0 | 0; +} + +function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $6 = 0, $7 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0; + HEAP32[$this >> 2] = $6; + $7 = $6 + ($__start << 4) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this + 4 >> 2] = $7; + HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4); return; } -function __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($first, $last) { - $first = $first | 0; - $last = $last | 0; - var $$0 = 0, $10 = 0, $11 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0; - L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else { - switch (HEAP8[$first >> 0] | 0) { - case 104: - { - $3 = $first + 1 | 0; - $4 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($3, $last) | 0; - if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) { - $$0 = $first; - break L1; - } - $$0 = (HEAP8[$4 >> 0] | 0) == 95 ? $4 + 1 | 0 : $first; - break L1; - break; - } - case 118: - break; - default: - { - $$0 = $first; - break L1; +function _memset(ptr, value, num) { + ptr = ptr | 0; + value = value | 0; + num = num | 0; + var stop = 0, value4 = 0, stop4 = 0, unaligned = 0; + stop = ptr + num | 0; + if ((num | 0) >= 20) { + value = value & 255; + unaligned = ptr & 3; + value4 = value | value << 8 | value << 16 | value << 24; + stop4 = stop & ~3; + if (unaligned) { + unaligned = ptr + 4 - unaligned | 0; + while ((ptr | 0) < (unaligned | 0)) { + HEAP8[ptr >> 0] = value; + ptr = ptr + 1 | 0; } } - $10 = $first + 1 | 0; - $11 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($10, $last) | 0; - if (($11 | 0) == ($10 | 0) | ($11 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$11 >> 0] | 0) == 95) { - $16 = $11 + 1 | 0; - $17 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($16, $last) | 0; - if (($17 | 0) == ($16 | 0) | ($17 | 0) == ($last | 0)) $$0 = $first; else return ((HEAP8[$17 >> 0] | 0) == 95 ? $17 + 1 | 0 : $first) | 0; - } else $$0 = $first; - } while (0); - return $$0 | 0; + while ((ptr | 0) < (stop4 | 0)) { + HEAP32[ptr >> 2] = value4; + ptr = ptr + 4 | 0; + } + } + while ((ptr | 0) < (stop | 0)) { + HEAP8[ptr >> 0] = value; + ptr = ptr + 1 | 0; + } + return ptr - num | 0; } -function _setup($width, $height, $cameraID) { - $width = $width | 0; - $height = $height | 0; - $cameraID = $cameraID | 0; - var $0 = 0, $10 = 0, $2 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $id = 0, $vararg_buffer1 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 8 | 0; - $id = sp + 12 | 0; - $0 = HEAP32[525] | 0; - HEAP32[525] = $0 + 1; - HEAP32[$id >> 2] = $0; - $2 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $id) | 0; - HEAP32[$2 >> 2] = $0; - HEAP32[$2 + 204 >> 2] = $width; - HEAP32[$2 + 208 >> 2] = $height; - $6 = Math_imul($width << 2, $height) | 0; - $7 = $2 + 200 | 0; - HEAP32[$7 >> 2] = $6; - $8 = _malloc($6) | 0; - $9 = $2 + 196 | 0; - HEAP32[$9 >> 2] = $8; - $10 = _arPattCreateHandle() | 0; - HEAP32[$2 + 216 >> 2] = $10; - if (!$10) _arLog(3, 8284, sp); - _setCamera($0, $cameraID) | 0; - HEAP32[$vararg_buffer1 >> 2] = HEAP32[$7 >> 2]; - _arLog(1, 8321, $vararg_buffer1); - _emscripten_asm_const_5(2, HEAP32[$2 >> 2] | 0, HEAP32[$9 >> 2] | 0, HEAP32[$7 >> 2] | 0, $2 + 264 | 0, 264) | 0; - STACKTOP = sp; - return HEAP32[$2 >> 2] | 0; +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $__s, $__sz) { + $this = $this | 0; + $__s = $__s | 0; + $__sz = $__sz | 0; + var $6 = 0, $7 = 0, $__p$0 = 0; + if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__sz >>> 0 < 11) { + HEAP8[$this >> 0] = $__sz << 1; + $__p$0 = $this + 1 | 0; + } else { + $6 = $__sz + 16 & -16; + $7 = _malloc($6) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__sz; + $__p$0 = $7; + } + _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; + HEAP8[$__p$0 + $__sz >> 0] = 0; + return; } -function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) { +function __ZNKSt3__15ctypeIwE11do_scan_notEtPKwS3_($this, $m, $low, $high) { $this = $this | 0; - $__k = $__k | 0; - var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $__h = sp + 8 | 0; - $0 = sp; - $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; - if (!$1) { - __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k); - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0); - $5 = HEAP32[$0 >> 2] | 0; - HEAP32[$__h >> 2] = 0; - $$pn3 = $5; - } else $$pn3 = $1; - STACKTOP = sp; - return $$pn3 + 16 | 0; + $m = $m | 0; + $low = $low | 0; + $high = $high | 0; + var $$0$lcssa = 0, $$01 = 0, $1 = 0, $2 = 0; + L1 : do if (($low | 0) == ($high | 0)) $$0$lcssa = $high; else { + $$01 = $low; + while (1) { + $1 = HEAP32[$$01 >> 2] | 0; + if ($1 >>> 0 >= 128) { + $$0$lcssa = $$01; + break L1; + } + $2 = ___ctype_b_loc() | 0; + if (!((HEAP16[(HEAP32[$2 >> 2] | 0) + ($1 << 1) >> 1] & $m) << 16 >> 16)) { + $$0$lcssa = $$01; + break L1; + } + $$01 = $$01 + 4 | 0; + if (($$01 | 0) == ($high | 0)) { + $$0$lcssa = $high; + break; + } + } + } while (0); + return $$0$lcssa | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_add) { +function __ZNSt3__16vectorItNS_9allocatorItEEE6resizeEj($this, $__sz) { $this = $this | 0; - $__old_cap = $__old_cap | 0; - $__delta_cap = $__delta_cap | 0; - $__old_sz = $__old_sz | 0; - $__n_copy = $__n_copy | 0; - $__n_add = $__n_add | 0; - var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $9 = 0; - if ((-17 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); - if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0; - if ($__old_cap >>> 0 < 2147483623) { - $9 = $__delta_cap + $__old_cap | 0; - $10 = $__old_cap << 1; - $12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9; - $17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16; - } else $17 = -17; - $18 = _malloc($17) | 0; - if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0; - if (($__old_sz | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + $__n_copy | 0, $__old_sz - $__n_copy | 0) | 0; - if (($__old_cap | 0) != 10) _free($20); - HEAP32[$this + 8 >> 2] = $18; - HEAP32[$this >> 2] = $17 | 1; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 1; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorItNS_9allocatorItEEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 1) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; + while (1) { + $12 = $13 + -2 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; + break; + } else $13 = $12; + } + HEAP32[$0 >> 2] = $$lcssa; + } + } return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) { +function __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($this, $__sz) { $this = $this | 0; - $__k = $__k | 0; - var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; - $0 = HEAP32[$__k >> 2] | 0; - $2 = HEAP32[$this + 4 >> 2] | 0; - L1 : do if (!$2) $24 = 0; else { - $4 = $2 + -1 | 0; - $6 = ($4 & $2 | 0) == 0; - if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; - $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; - if (!$12) $24 = 0; else { - $$pn = $12; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 2; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIiNS_9allocatorIiEEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 2) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; while (1) { - $__nd$0 = HEAP32[$$pn >> 2] | 0; - if (!$__nd$0) { - $24 = 0; - break L1; - } - $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; - if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; - if (($20 | 0) != ($11 | 0)) { - $24 = 0; - break L1; - } - if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { - $24 = $__nd$0; + $12 = $13 + -4 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; break; - } else $$pn = $__nd$0; + } else $13 = $12; } + HEAP32[$0 >> 2] = $$lcssa; } - } while (0); - return $24 | 0; + } + return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) { +function __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($this, $__sz) { $this = $this | 0; - $__k = $__k | 0; - var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0; - $0 = HEAP32[$__k >> 2] | 0; - $2 = HEAP32[$this + 4 >> 2] | 0; - L1 : do if (!$2) $24 = 0; else { - $4 = $2 + -1 | 0; - $6 = ($4 & $2 | 0) == 0; - if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0; - $12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0; - if (!$12) $24 = 0; else { - $$pn = $12; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $12 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $6 = $1 - $2 >> 2; + if ($6 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIfNS_9allocatorIfEEE8__appendEj($this, $__sz - $6 | 0); else if ($6 >>> 0 > $__sz >>> 0) { + $10 = $2 + ($__sz << 2) | 0; + if (($1 | 0) != ($10 | 0)) { + $13 = $1; while (1) { - $__nd$0 = HEAP32[$$pn >> 2] | 0; - if (!$__nd$0) { - $24 = 0; - break L1; - } - $16 = HEAP32[$__nd$0 + 4 >> 2] | 0; - if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0; - if (($20 | 0) != ($11 | 0)) { - $24 = 0; - break L1; - } - if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) { - $24 = $__nd$0; + $12 = $13 + -4 | 0; + if (($12 | 0) == ($10 | 0)) { + $$lcssa = $12; break; - } else $$pn = $__nd$0; + } else $13 = $12; } + HEAP32[$0 >> 2] = $$lcssa; } - } while (0); - return $24 | 0; + } + return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_($this, $__k) { +function _strtox530($s, $p, $base, $0, $1) { + $s = $s | 0; + $p = $p | 0; + $base = $base | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $6 = 0, $8 = 0, $f = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 112 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $f = sp; + HEAP32[$f >> 2] = 0; + $2 = $f + 4 | 0; + HEAP32[$2 >> 2] = $s; + HEAP32[$f + 44 >> 2] = $s; + $6 = $f + 8 | 0; + HEAP32[$6 >> 2] = ($s | 0) < 0 ? -1 : $s + 2147483647 | 0; + HEAP32[$f + 76 >> 2] = -1; + ___shlim($f, 0); + $8 = ___intscan($f, $base, 1, $0, $1) | 0; + if ($p) HEAP32[$p >> 2] = $s + ((HEAP32[$2 >> 2] | 0) + (HEAP32[$f + 108 >> 2] | 0) - (HEAP32[$6 >> 2] | 0)); + STACKTOP = sp; + return $8 | 0; +} + +function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { $this = $this | 0; - $__k = $__k | 0; - var $$0 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, sp = 0; + $info = $info | 0; + $adjustedPtr = $adjustedPtr | 0; + $path_below = $path_below | 0; + var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $1 >> 8; + if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$adjustedPtr >> 2] | 0) + $2 >> 2] | 0; + $8 = HEAP32[$this >> 2] | 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 28 >> 2] & 31]($8, $info, $adjustedPtr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2); + return; +} + +function __ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E($fn, $args, $args1) { + $fn = $fn | 0; + $args = $args | 0; + $args1 = $args1 | 0; + var $0 = 0, $1 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $$byval_copy = sp + 4 | 0; $0 = sp; - $1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0; - if (!$1) $$0 = 0; else { - HEAP32[$0 >> 2] = $1; - HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2]; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $$byval_copy) | 0; - $$0 = 1; - } + __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args1); + $1 = FUNCTION_TABLE_iii[$fn & 63]($args, $0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); STACKTOP = sp; - return $$0 | 0; + return $1 | 0; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $__p) { +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEjc($this, $__n, $__c) { $this = $this | 0; - $__p = $__p | 0; - var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $$byval_copy = sp + 16 | 0; - $0 = sp + 4 | 0; - $1 = sp; - $2 = HEAP32[$__p >> 2] | 0; - $3 = HEAP32[$2 >> 2] | 0; - HEAP32[$1 >> 2] = $2; - HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2]; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($0, $this, $$byval_copy); - $4 = HEAP32[$0 >> 2] | 0; - HEAP32[$0 >> 2] = 0; - if ($4) { - if (HEAP8[$0 + 8 >> 0] | 0) __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($4 + 264 | 0); - __ZdlPv($4); + $__n = $__n | 0; + $__c = $__c | 0; + var $0 = 0, $2 = 0, $8 = 0; + $0 = HEAP8[$this >> 0] | 0; + $2 = ($0 & 1) == 0; + if ($2) $8 = ($0 & 255) >>> 1; else $8 = HEAP32[$this + 4 >> 2] | 0; + do if ($8 >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEjc($this, $__n - $8 | 0, $__c) | 0; else if ($2) { + HEAP8[$this + 1 + $__n >> 0] = 0; + HEAP8[$this >> 0] = $__n << 1; + break; + } else { + HEAP8[(HEAP32[$this + 8 >> 2] | 0) + $__n >> 0] = 0; + HEAP32[$this + 4 >> 2] = $__n; + break; + } while (0); + return; +} + +function ___toread($f) { + $f = $f | 0; + var $$0 = 0, $0 = 0, $15 = 0, $2 = 0, $21 = 0, $6 = 0, $8 = 0; + $0 = $f + 74 | 0; + $2 = HEAP8[$0 >> 0] | 0; + HEAP8[$0 >> 0] = $2 + 255 | $2; + $6 = $f + 20 | 0; + $8 = $f + 44 | 0; + if ((HEAP32[$6 >> 2] | 0) >>> 0 > (HEAP32[$8 >> 2] | 0) >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 63]($f, 0, 0) | 0; + HEAP32[$f + 16 >> 2] = 0; + HEAP32[$f + 28 >> 2] = 0; + HEAP32[$6 >> 2] = 0; + $15 = HEAP32[$f >> 2] | 0; + if (!($15 & 20)) { + $21 = HEAP32[$8 >> 2] | 0; + HEAP32[$f + 8 >> 2] = $21; + HEAP32[$f + 4 >> 2] = $21; + $$0 = 0; + } else if (!($15 & 4)) $$0 = -1; else { + HEAP32[$f >> 2] = $15 | 32; + $$0 = -1; } - STACKTOP = sp; - return $3 | 0; + return $$0 | 0; } -function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($this, $thrown_type, $adjustedPtr) { +function __ZNSt3__16vectorIhNS_9allocatorIhEEE6resizeEj($this, $__sz) { $this = $this | 0; - $thrown_type = $thrown_type | 0; - $adjustedPtr = $adjustedPtr | 0; - var $$0 = 0, $$1 = 0, $2 = 0, $info = 0, dest = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $info = sp; - if (($this | 0) == ($thrown_type | 0)) $$1 = 1; else if (!$thrown_type) $$1 = 0; else { - $2 = ___dynamic_cast($thrown_type, 576, 592, 0) | 0; - if (!$2) $$1 = 0; else { - dest = $info; - stop = dest + 56 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP32[$info >> 2] = $2; - HEAP32[$info + 8 >> 2] = $this; - HEAP32[$info + 12 >> 2] = -1; - HEAP32[$info + 48 >> 2] = 1; - FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$2 >> 2] | 0) + 28 >> 2] & 3]($2, $info, HEAP32[$adjustedPtr >> 2] | 0, 1); - if ((HEAP32[$info + 24 >> 2] | 0) == 1) { - HEAP32[$adjustedPtr >> 2] = HEAP32[$info + 16 >> 2]; - $$0 = 1; - } else $$0 = 0; - $$1 = $$0; + $__sz = $__sz | 0; + var $$lcssa = 0, $0 = 0, $1 = 0, $11 = 0, $12 = 0, $2 = 0, $5 = 0, $9 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = HEAP32[$this >> 2] | 0; + $5 = $1 - $2 | 0; + if ($5 >>> 0 < $__sz >>> 0) __ZNSt3__16vectorIhNS_9allocatorIhEEE8__appendEj($this, $__sz - $5 | 0); else if ($5 >>> 0 > $__sz >>> 0) { + $9 = $2 + $__sz | 0; + if (($1 | 0) != ($9 | 0)) { + $12 = $1; + while (1) { + $11 = $12 + -1 | 0; + if (($11 | 0) == ($9 | 0)) { + $$lcssa = $11; + break; + } else $12 = $11; + } + HEAP32[$0 >> 2] = $$lcssa; } } - STACKTOP = sp; - return $$1 | 0; + return; } -function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { +function __ZN6vision4NodeILi96EED2Ev($this) { $this = $this | 0; - $info = $info | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $14 = 0, $20 = 0, $6 = 0; - do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) { - if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) { - $6 = $info + 28 | 0; - if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below; - } - } else if (($this | 0) == (HEAP32[$info >> 2] | 0)) { - if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) { - $14 = $info + 20 | 0; - if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) { - HEAP32[$info + 32 >> 2] = $path_below; - HEAP32[$14 >> 2] = $current_ptr; - $20 = $info + 40 | 0; - HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 1; - if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) HEAP8[$info + 54 >> 0] = 1; - HEAP32[$info + 44 >> 2] = 4; - break; + var $0 = 0, $1 = 0, $3 = 0, $6 = 0, $7 = 0, $i$04 = 0; + $0 = $this + 104 | 0; + $1 = $this + 108 | 0; + $3 = HEAP32[$0 >> 2] | 0; + if ((HEAP32[$1 >> 2] | 0) != ($3 | 0)) { + $6 = $3; + $i$04 = 0; + do { + $7 = HEAP32[$6 + ($i$04 << 2) >> 2] | 0; + if ($7) { + __ZN6vision4NodeILi96EED2Ev($7); + __ZdlPv($7); } - } - if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1; - } while (0); + $i$04 = $i$04 + 1 | 0; + $6 = HEAP32[$0 >> 2] | 0; + } while ($i$04 >>> 0 < (HEAP32[$1 >> 2] | 0) - $6 >> 2 >>> 0); + } + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 116 | 0); + __ZNSt3__113__vector_baseIPN6vision4NodeILi96EEENS_9allocatorIS4_EEED2Ev($0); return; } -function _getTransMatSquareCont($id, $markerIndex, $markerWidth) { - $id = $id | 0; - $markerIndex = $markerIndex | 0; - $markerWidth = $markerWidth | 0; - var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0; +function __ZN6vision32CauchyProjectiveReprojectionCostIfEET_PKS1_S3_S3_S1_($H, $p, $q, $one_over_scale2) { + $H = $H | 0; + $p = $p | 0; + $q = $q | 0; + $one_over_scale2 = +$one_over_scale2; + var $0 = 0, $11 = 0.0, $pp = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $6 = HEAP32[$4 + 212 >> 2] | 0; - if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { - +_arGetTransMatSquareCont(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0, 264, +($markerWidth | 0), 264); - $$0 = 0; - break; - } else { - $$0 = HEAP32[523] | 0; - break; - } - } while (0); + $pp = sp; + $0 = $pp + 4 | 0; + __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvRT_S2_PKS1_S1_S1_($pp, $0, $H, +HEAPF32[$p >> 2], +HEAPF32[$p + 4 >> 2]); + $11 = +__ZN6vision10CauchyCostIfEET_S1_S1_S1_(+HEAPF32[$pp >> 2] - +HEAPF32[$q >> 2], +HEAPF32[$0 >> 2] - +HEAPF32[$q + 4 >> 2], $one_over_scale2); STACKTOP = sp; - return $$0 | 0; + return +$11; } -function _arPattLoad($pattHandle, $filename) { - $pattHandle = $pattHandle | 0; - $filename = $filename | 0; - var $$0 = 0, $0 = 0, $2 = 0, $4 = 0, $6 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, sp = 0; +function __ZN6vision20VisualDatabaseFacade5queryEPhjj($this, $grayImage, $width, $height) { + $this = $this | 0; + $grayImage = $grayImage | 0; + $width = $width | 0; + $height = $height | 0; + var $2 = 0, $img = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer3 = sp + 16 | 0; - $vararg_buffer1 = sp + 8 | 0; - $vararg_buffer = sp; - $0 = _fopen($filename, 4854) | 0; - do if (!$0) { - HEAP32[$vararg_buffer >> 2] = $filename; - _arLog(3, 4774, $vararg_buffer); - $$0 = -1; - } else { - _fseek($0, 0, 2) | 0; - $2 = _ftell($0) | 0; - _fseek($0, 0, 0) | 0; - $4 = _malloc($2 + 1 | 0) | 0; - if (!$4) { - _arLog(3, 5471, $vararg_buffer1); - _fclose($0) | 0; - $$0 = -1; - break; - } - $6 = _fread($4, $2, 1, $0) | 0; - _fclose($0) | 0; - if (!$6) { - HEAP32[$vararg_buffer3 >> 2] = $filename; - _arLog(3, 4820, $vararg_buffer3); - _free($4); - $$0 = -1; - break; - } else { - HEAP8[$4 + $2 >> 0] = 0; - $9 = _arPattLoadFromBuffer($pattHandle, $4) | 0; - _free($4); - $$0 = $9; - break; - } - } while (0); + $img = sp; + __ZN6vision5ImageC2EPhNS_9ImageTypeEjjij($img, $grayImage, 1, $width, $height, $width, 1); + $2 = __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE5queryERKNS_5ImageE(HEAP32[HEAP32[$this >> 2] >> 2] | 0, $img) | 0; + __ZN6vision5ImageD2Ev($img); STACKTOP = sp; - return $$0 | 0; + return $2 | 0; } -function _fmt_u($0, $1, $s) { - $0 = $0 | 0; - $1 = $1 | 0; - $s = $s | 0; - var $$0$lcssa = 0, $$01$lcssa$off0 = 0, $$05 = 0, $$1$lcssa = 0, $$12 = 0, $$lcssa20 = 0, $13 = 0, $14 = 0, $25 = 0, $28 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0; - if ($1 >>> 0 > 0 | ($1 | 0) == 0 & $0 >>> 0 > 4294967295) { - $$05 = $s; - $7 = $0; - $8 = $1; - while (1) { - $9 = ___uremdi3($7 | 0, $8 | 0, 10, 0) | 0; - $13 = $$05 + -1 | 0; - HEAP8[$13 >> 0] = $9 | 48; - $14 = ___udivdi3($7 | 0, $8 | 0, 10, 0) | 0; - if ($8 >>> 0 > 9 | ($8 | 0) == 9 & $7 >>> 0 > 4294967295) { - $$05 = $13; - $7 = $14; - $8 = tempRet0; - } else { - $$lcssa20 = $13; - $28 = $14; - break; - } - } - $$0$lcssa = $$lcssa20; - $$01$lcssa$off0 = $28; +function __ZN6vision25DoGScaleInvariantDetectorD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this + 144 | 0); + __ZN6vision21OrientationAssignmentD2Ev($this + 92 | 0); + __ZNSt3__113__vector_baseIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEED2Ev($this + 72 | 0); + __ZNSt3__113__vector_baseIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEED2Ev($this + 60 | 0); + __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this + 32 | 0); + __ZNSt3__113__vector_baseINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEENS4_IS8_EEED2Ev($this + 16 | 0); + return; +} + +function _saveSetjmp(env, label, table, size) { + env = env | 0; + label = label | 0; + table = table | 0; + size = size | 0; + var i = 0; + setjmpId = setjmpId + 1 | 0; + HEAP32[env >> 2] = setjmpId; + while ((i | 0) < (size | 0)) { + if (!(HEAP32[table + (i << 3) >> 2] | 0)) { + HEAP32[table + (i << 3) >> 2] = setjmpId; + HEAP32[table + ((i << 3) + 4) >> 2] = label; + HEAP32[table + ((i << 3) + 8) >> 2] = 0; + tempRet0 = size; + return table | 0; + } + i = i + 1 | 0; + } + size = size * 2 | 0; + table = _realloc(table | 0, 8 * (size + 1 | 0) | 0) | 0; + table = _saveSetjmp(env | 0, label | 0, table | 0, size | 0) | 0; + tempRet0 = size; + return table | 0; +} + +function _fclose($f) { + $f = $f | 0; + var $$pre = 0, $12 = 0, $18 = 0, $22 = 0, $24 = 0, $5 = 0, $7 = 0; + if ((HEAP32[$f + 76 >> 2] | 0) > -1) {} + $5 = (HEAP32[$f >> 2] & 1 | 0) != 0; + if (!$5) { + ___lock(6208); + $7 = HEAP32[$f + 52 >> 2] | 0; + $$pre = $f + 56 | 0; + if ($7) HEAP32[$7 + 56 >> 2] = HEAP32[$$pre >> 2]; + $12 = HEAP32[$$pre >> 2] | 0; + if ($12) HEAP32[$12 + 52 >> 2] = $7; + if ((HEAP32[1551] | 0) == ($f | 0)) HEAP32[1551] = $12; + ___unlock(6208); + } + $18 = _fflush($f) | 0; + $22 = FUNCTION_TABLE_ii[HEAP32[$f + 12 >> 2] & 127]($f) | 0 | $18; + $24 = HEAP32[$f + 92 >> 2] | 0; + if ($24) _free($24); + if (!$5) _free($f); + return $22 | 0; +} + +function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $6 = 0, $7 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0; + HEAP32[$this >> 2] = $6; + $7 = $6 + ($__start << 4) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this + 4 >> 2] = $7; + HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE12__deallocateEPNS_11__hash_nodeIS9_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE12__deallocateEPNS_11__hash_nodeIS7_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); + return; +} + +function __ZN6vision12ArrayShuffleIiEEvPT_iiRi($v, $pop_size, $sample_size, $seed) { + $v = $v | 0; + $pop_size = $pop_size | 0; + $sample_size = $sample_size | 0; + $seed = $seed | 0; + var $3 = 0, $7 = 0, $8 = 0, $9 = 0, $i$01 = 0; + if (($sample_size | 0) > 0) { + $i$01 = 0; + do { + $3 = ((HEAP32[$seed >> 2] | 0) * 214013 | 0) + 2531011 | 0; + HEAP32[$seed >> 2] = $3; + $7 = $v + ($i$01 << 2) | 0; + $8 = $v + ((($3 >>> 16 & 32767 | 0) % ($pop_size | 0) | 0) << 2) | 0; + $9 = HEAP32[$7 >> 2] | 0; + HEAP32[$7 >> 2] = HEAP32[$8 >> 2]; + HEAP32[$8 >> 2] = $9; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) < ($sample_size | 0)); + } + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this, $__s, $__sz) { + $this = $this | 0; + $__s = $__s | 0; + $__sz = $__sz | 0; + var $6 = 0, $7 = 0, $__p$0 = 0; + if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__sz >>> 0 < 11) { + HEAP8[$this >> 0] = $__sz << 1; + $__p$0 = $this + 1 | 0; } else { - $$0$lcssa = $s; - $$01$lcssa$off0 = $0; + $6 = $__sz + 16 & -16; + $7 = __Znwj($6) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__sz; + $__p$0 = $7; } - if (!$$01$lcssa$off0) $$1$lcssa = $$0$lcssa; else { - $$12 = $$0$lcssa; - $y$03 = $$01$lcssa$off0; + _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; + HEAP8[$__p$0 + $__sz >> 0] = 0; + return; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj($this, $__s, $__sz) { + $this = $this | 0; + $__s = $__s | 0; + $__sz = $__sz | 0; + var $6 = 0, $8 = 0, $__p$0 = 0; + if ($__sz >>> 0 > 1073741807) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__sz >>> 0 < 2) { + HEAP8[$this >> 0] = $__sz << 1; + $__p$0 = $this + 4 | 0; + } else { + $6 = $__sz + 4 & -4; + $8 = __Znwj($6 << 2) | 0; + HEAP32[$this + 8 >> 2] = $8; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__sz; + $__p$0 = $8; + } + _wmemcpy($__p$0, $__s, $__sz) | 0; + HEAP32[$__p$0 + ($__sz << 2) >> 2] = 0; + return; +} + +function __ZNKSt3__15ctypeIwE5do_isEPKwS3_Pt($this, $low, $high, $vec) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + $vec = $vec | 0; + var $$015 = 0, $$06 = 0, $11 = 0, $2 = 0, $4 = 0, $5 = 0; + $2 = ($high - $low | 0) >>> 2; + if (($low | 0) != ($high | 0)) { + $$015 = $low; + $$06 = $vec; while (1) { - $25 = $$12 + -1 | 0; - HEAP8[$25 >> 0] = ($y$03 >>> 0) % 10 | 0 | 48; - if ($y$03 >>> 0 < 10) { - $$1$lcssa = $25; - break; - } else { - $$12 = $25; - $y$03 = ($y$03 >>> 0) / 10 | 0; - } + $4 = HEAP32[$$015 >> 2] | 0; + if ($4 >>> 0 < 128) { + $5 = ___ctype_b_loc() | 0; + $11 = HEAPU16[(HEAP32[$5 >> 2] | 0) + ($4 << 1) >> 1] | 0; + } else $11 = 0; + HEAP16[$$06 >> 1] = $11; + $$015 = $$015 + 4 | 0; + if (($$015 | 0) == ($high | 0)) break; else $$06 = $$06 + 2 | 0; } } - return $$1$lcssa | 0; + return $low + ($2 << 2) | 0; } -function _byteswap($param) { - $param = $param | 0; - var $$lcssa = 0, $15 = 0, $2 = 0, $i$13 = 0, $j$05 = 0, $wparam = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $wparam = sp; - _byteSwapInt($param, $wparam); - _byteSwapInt($param + 4 | 0, $wparam + 4 | 0); - $j$05 = 0; - do { - _byteSwapDouble($param + 8 + ($j$05 << 5) | 0, $wparam + 8 + ($j$05 << 5) | 0); - _byteSwapDouble($param + 8 + ($j$05 << 5) + 8 | 0, $wparam + 8 + ($j$05 << 5) + 8 | 0); - _byteSwapDouble($param + 8 + ($j$05 << 5) + 16 | 0, $wparam + 8 + ($j$05 << 5) + 16 | 0); - _byteSwapDouble($param + 8 + ($j$05 << 5) + 24 | 0, $wparam + 8 + ($j$05 << 5) + 24 | 0); - $j$05 = $j$05 + 1 | 0; - } while (($j$05 | 0) != 3); - $2 = $param + 176 | 0; - $i$13 = 0; - do { - _byteSwapDouble($param + 104 + ($i$13 << 3) | 0, $wparam + 104 + ($i$13 << 3) | 0); - $i$13 = $i$13 + 1 | 0; - $15 = HEAP32[$2 >> 2] | 0; - } while (($i$13 | 0) < (HEAP32[2012 + ($15 + -1 << 3) >> 2] | 0)); - $$lcssa = $15; - HEAP32[$wparam + 176 >> 2] = $$lcssa; - _memcpy($param | 0, $wparam | 0, 184) | 0; - STACKTOP = sp; +function __ZN6vision6Logger5writeENS_19LoggerPriorityLevelERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE($this, $level, $str) { + $this = $this | 0; + $level = $level | 0; + $str = $str | 0; + var $0 = 0, $2 = 0, $5 = 0, $6 = 0, $i$01 = 0; + $0 = $this + 4 | 0; + $2 = HEAP32[$this >> 2] | 0; + if ((HEAP32[$0 >> 2] | 0) != ($2 | 0)) { + $5 = $2; + $i$01 = 0; + do { + $6 = HEAP32[$5 + ($i$01 << 3) >> 2] | 0; + FUNCTION_TABLE_viii[HEAP32[(HEAP32[$6 >> 2] | 0) + 8 >> 2] & 3]($6, $level, $str); + $i$01 = $i$01 + 1 | 0; + $5 = HEAP32[$this >> 2] | 0; + } while ($i$01 >>> 0 < (HEAP32[$0 >> 2] | 0) - $5 >> 3 >>> 0); + } return; } -function _getTransMatSquare($id, $markerIndex, $markerWidth) { - $id = $id | 0; - $markerIndex = $markerIndex | 0; - $markerWidth = $markerWidth | 0; - var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $6 = HEAP32[$4 + 212 >> 2] | 0; - if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { - +_arGetTransMatSquare(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0, +($markerWidth | 0), 264); - $$0 = 0; - break; - } else { - $$0 = HEAP32[523] | 0; - break; +function _arVecInnerproduct($x, $y) { + $x = $x | 0; + $y = $y | 0; + var $1 = 0, $13 = 0.0, $6 = 0, $7 = 0, $i$02 = 0, $result$0$lcssa = 0.0, $result$01 = 0.0; + $1 = HEAP32[$x + 4 >> 2] | 0; + if (($1 | 0) != (HEAP32[$y + 4 >> 2] | 0)) _exit(0); + if (($1 | 0) > 0) { + $6 = HEAP32[$x >> 2] | 0; + $7 = HEAP32[$y >> 2] | 0; + $i$02 = 0; + $result$01 = 0.0; + while (1) { + $13 = $result$01 + +HEAPF64[$6 + ($i$02 << 3) >> 3] * +HEAPF64[$7 + ($i$02 << 3) >> 3]; + $i$02 = $i$02 + 1 | 0; + if (($i$02 | 0) >= ($1 | 0)) { + $result$0$lcssa = $13; + break; + } else $result$01 = $13; } - } while (0); - STACKTOP = sp; - return $$0 | 0; + } else $result$0$lcssa = 0.0; + return +$result$0$lcssa; } -function _arMatrixTrans($dest, $source) { - $dest = $dest | 0; - $source = $source | 0; - var $$0 = 0, $1 = 0, $13 = 0, $6 = 0, $c$01 = 0, $p1$02 = 0, $p2$05 = 0, $p2$13 = 0, $r$04 = 0, $smax = 0; - $1 = HEAP32[$dest + 4 >> 2] | 0; - if (($1 | 0) == (HEAP32[$source + 8 >> 2] | 0)) { - $6 = HEAP32[$dest + 8 >> 2] | 0; - if (($6 | 0) == (HEAP32[$source + 4 >> 2] | 0)) { - $smax = ($6 | 0) > 0 ? $6 : 0; - if (($1 | 0) > 0) { - $13 = ($6 | 0) > 0; - $p2$05 = HEAP32[$dest >> 2] | 0; - $r$04 = 0; - while (1) { - if ($13) { - $c$01 = 0; - $p1$02 = (HEAP32[$source >> 2] | 0) + ($r$04 << 3) | 0; - $p2$13 = $p2$05; - while (1) { - HEAPF64[$p2$13 >> 3] = +HEAPF64[$p1$02 >> 3]; - $c$01 = $c$01 + 1 | 0; - if (($c$01 | 0) >= ($6 | 0)) break; else { - $p1$02 = $p1$02 + ($1 << 3) | 0; - $p2$13 = $p2$13 + 8 | 0; - } - } - } - $r$04 = $r$04 + 1 | 0; - if (($r$04 | 0) >= ($1 | 0)) { - $$0 = 0; - break; - } else $p2$05 = $p2$05 + ($smax << 3) | 0; - } - } else $$0 = 0; - } else $$0 = -1; - } else $$0 = -1; - return $$0 | 0; +function __ZN6vision16Multiply_3x3_3x1IfEEvPT_PKS1_S4_($y, $A, $x) { + $y = $y | 0; + $A = $A | 0; + $x = $x | 0; + var $11 = 0, $5 = 0; + $5 = $x + 4 | 0; + $11 = $x + 8 | 0; + HEAPF32[$y >> 2] = +HEAPF32[$A >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$A + 4 >> 2] * +HEAPF32[$5 >> 2] + +HEAPF32[$A + 8 >> 2] * +HEAPF32[$11 >> 2]; + HEAPF32[$y + 4 >> 2] = +HEAPF32[$A + 12 >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$A + 16 >> 2] * +HEAPF32[$5 >> 2] + +HEAPF32[$A + 20 >> 2] * +HEAPF32[$11 >> 2]; + HEAPF32[$y + 8 >> 2] = +HEAPF32[$A + 24 >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$A + 28 >> 2] * +HEAPF32[$5 >> 2] + +HEAPF32[$A + 32 >> 2] * +HEAPF32[$11 >> 2]; + return; } -function _fflush($f) { - $f = $f | 0; - var $$0 = 0, $$012 = 0, $$014 = 0, $24 = 0, $27 = 0, $6 = 0, $phitmp = 0, $r$0$lcssa = 0, $r$03 = 0, $r$1 = 0; - do if (!$f) { - if (!(HEAP32[660] | 0)) $27 = 0; else $27 = _fflush(HEAP32[660] | 0) | 0; - ___lock(2416); - $$012 = HEAP32[603] | 0; - if (!$$012) $r$0$lcssa = $27; else { - $$014 = $$012; - $r$03 = $27; +function __ZNSt3__113__vector_baseIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + do if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; while (1) { - if ((HEAP32[$$014 + 76 >> 2] | 0) > -1) $24 = ___lockfile($$014) | 0; else $24 = 0; - if ((HEAP32[$$014 + 20 >> 2] | 0) >>> 0 > (HEAP32[$$014 + 28 >> 2] | 0) >>> 0) $r$1 = ___fflush_unlocked($$014) | 0 | $r$03; else $r$1 = $r$03; - if ($24) ___unlockfile($$014); - $$014 = HEAP32[$$014 + 56 >> 2] | 0; - if (!$$014) { - $r$0$lcssa = $r$1; + $4 = $5 + -4 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; break; - } else $r$03 = $r$1; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - ___unlock(2416); - $$0 = $r$0$lcssa; - } else { - if ((HEAP32[$f + 76 >> 2] | 0) <= -1) { - $$0 = ___fflush_unlocked($f) | 0; + if (($this + 16 | 0) == ($0 | 0)) { + HEAP8[$this + 128 >> 0] = 0; + break; + } else { + __ZdlPv($0); break; - } - $phitmp = (___lockfile($f) | 0) == 0; - $6 = ___fflush_unlocked($f) | 0; - if ($phitmp) $$0 = $6; else { - ___unlockfile($f); - $$0 = $6; - } - } while (0); - return $$0 | 0; -} - -function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { - $this = $this | 0; - $info = $info | 0; - $adjustedPtr = $adjustedPtr | 0; - $path_below = $path_below | 0; - var $5 = 0, $6 = 0, $9 = 0, $p$0 = 0; - L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else { - $5 = HEAP32[$this + 12 >> 2] | 0; - $6 = $this + 16 + ($5 << 3) | 0; - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this + 16 | 0, $info, $adjustedPtr, $path_below); - if (($5 | 0) > 1) { - $9 = $info + 54 | 0; - $p$0 = $this + 24 | 0; - do { - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($p$0, $info, $adjustedPtr, $path_below); - if (HEAP8[$9 >> 0] | 0) break L1; - $p$0 = $p$0 + 8 | 0; - } while ($p$0 >>> 0 < $6 >>> 0); } } while (0); return; } -function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) { - $this = $this | 0; - $__v = $__v | 0; - var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0; - $0 = HEAP32[$this >> 2] | 0; - $1 = $this + 4 | 0; - $2 = HEAP32[$1 >> 2] | 0; - $3 = $__v + 4 | 0; - if (($2 | 0) != ($0 | 0)) { - $$0$i1 = $2; - do { - $$0$i1 = $$0$i1 + -24 | 0; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_((HEAP32[$3 >> 2] | 0) + -24 | 0, $$0$i1); - HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -24; - } while (($$0$i1 | 0) != ($0 | 0)); - } - $11 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = HEAP32[$3 >> 2]; - HEAP32[$3 >> 2] = $11; - $13 = $__v + 8 | 0; - $14 = HEAP32[$1 >> 2] | 0; - HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; - HEAP32[$13 >> 2] = $14; - $16 = $this + 8 | 0; - $17 = $__v + 12 | 0; - $18 = HEAP32[$16 >> 2] | 0; - HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; - HEAP32[$17 >> 2] = $18; - HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; - return; -} - -function _strlen($s) { - $s = $s | 0; - var $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn15 = 0, $0 = 0, $18 = 0, $21 = 0, $5 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0; - $0 = $s; - L1 : do if (!($0 & 3)) { - $$01$lcssa = $s; - label = 4; - } else { - $$014 = $s; - $21 = $0; +function _memcmp($vl, $vr, $n) { + $vl = $vl | 0; + $vr = $vr | 0; + $n = $n | 0; + var $$03 = 0, $$lcssa = 0, $$lcssa19 = 0, $1 = 0, $11 = 0, $2 = 0, $l$04 = 0, $r$05 = 0; + L1 : do if (!$n) $11 = 0; else { + $$03 = $n; + $l$04 = $vl; + $r$05 = $vr; while (1) { - if (!(HEAP8[$$014 >> 0] | 0)) { - $$pn = $21; + $1 = HEAP8[$l$04 >> 0] | 0; + $2 = HEAP8[$r$05 >> 0] | 0; + if ($1 << 24 >> 24 != $2 << 24 >> 24) { + $$lcssa = $1; + $$lcssa19 = $2; + break; + } + $$03 = $$03 + -1 | 0; + if (!$$03) { + $11 = 0; break L1; + } else { + $l$04 = $l$04 + 1 | 0; + $r$05 = $r$05 + 1 | 0; } - $5 = $$014 + 1 | 0; - $21 = $5; - if (!($21 & 3)) { - $$01$lcssa = $5; - label = 4; - break; - } else $$014 = $5; } + $11 = ($$lcssa & 255) - ($$lcssa19 & 255) | 0; } while (0); - if ((label | 0) == 4) { - $w$0 = $$01$lcssa; + return $11 | 0; +} + +function __ZNKSt3__15ctypeIwE10do_scan_isEtPKwS3_($this, $m, $low, $high) { + $this = $this | 0; + $m = $m | 0; + $low = $low | 0; + $high = $high | 0; + var $$0$lcssa = 0, $$01 = 0, $1 = 0, $2 = 0; + L1 : do if (($low | 0) == ($high | 0)) $$0$lcssa = $high; else { + $$01 = $low; while (1) { - $9 = HEAP32[$w$0 >> 2] | 0; - if (!(($9 & -2139062144 ^ -2139062144) & $9 + -16843009)) $w$0 = $w$0 + 4 | 0; else { - $$lcssa20 = $9; - $w$0$lcssa = $w$0; - break; + $1 = HEAP32[$$01 >> 2] | 0; + if ($1 >>> 0 < 128) { + $2 = ___ctype_b_loc() | 0; + if ((HEAP16[(HEAP32[$2 >> 2] | 0) + ($1 << 1) >> 1] & $m) << 16 >> 16) { + $$0$lcssa = $$01; + break L1; + } } - } - if (!(($$lcssa20 & 255) << 24 >> 24)) $$1$lcssa = $w$0$lcssa; else { - $$pn15 = $w$0$lcssa; - while (1) { - $18 = $$pn15 + 1 | 0; - if (!(HEAP8[$18 >> 0] | 0)) { - $$1$lcssa = $18; - break; - } else $$pn15 = $18; + $$01 = $$01 + 4 | 0; + if (($$01 | 0) == ($high | 0)) { + $$0$lcssa = $high; + break; } } - $$pn = $$1$lcssa; - } - return $$pn - $0 | 0; + } while (0); + return $$0$lcssa | 0; } -function _setMarkerInfoDir($id, $markerIndex, $dir) { - $id = $id | 0; - $markerIndex = $markerIndex | 0; - $dir = $dir | 0; - var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $6 = HEAP32[$5 >> 2] | 0; - if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) { - HEAP32[(($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0) + 16 >> 2] = $dir; - $$0 = 0; - break; - } else { - $$0 = HEAP32[523] | 0; - break; - } - } while (0); - STACKTOP = sp; - return $$0 | 0; +function __ZN6vision9MaxIndex7IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0, $index$2 = 0, $index$3 = 0, $index$4 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + $index$2 = +HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1; + $index$3 = +HEAPF32[$x + 16 >> 2] > +HEAPF32[$x + ($index$2 << 2) >> 2] ? 4 : $index$2; + $index$4 = +HEAPF32[$x + 20 >> 2] > +HEAPF32[$x + ($index$3 << 2) >> 2] ? 5 : $index$3; + return (+HEAPF32[$x + 24 >> 2] > +HEAPF32[$x + ($index$4 << 2) >> 2] ? 6 : $index$4) | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $__s, $__n) { +function ___fmodeflags($mode) { + $mode = $mode | 0; + var $1 = 0, $2 = 0, $4 = 0, $7 = 0, $flags$0 = 0, $flags$0$ = 0, $flags$2 = 0, $flags$2$ = 0, $flags$4 = 0; + $1 = (_strchr($mode, 43) | 0) == 0; + $2 = HEAP8[$mode >> 0] | 0; + $flags$0 = $1 ? $2 << 24 >> 24 != 114 & 1 : 2; + $4 = (_strchr($mode, 120) | 0) == 0; + $flags$0$ = $4 ? $flags$0 : $flags$0 | 128; + $7 = (_strchr($mode, 101) | 0) == 0; + $flags$2 = $7 ? $flags$0$ : $flags$0$ | 524288; + $flags$2$ = $2 << 24 >> 24 == 114 ? $flags$2 : $flags$2 | 64; + $flags$4 = $2 << 24 >> 24 == 119 ? $flags$2$ | 512 : $flags$2$; + return ($2 << 24 >> 24 == 97 ? $flags$4 | 1024 : $flags$4) | 0; +} + +function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $6 = 0, $7 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap * 24 | 0) | 0; + HEAP32[$this >> 2] = $6; + $7 = $6 + ($__start * 24 | 0) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this + 4 >> 2] = $7; + HEAP32[$this + 12 >> 2] = $6 + ($__cap * 24 | 0); + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc($this, $__n, $__c) { $this = $this | 0; - $__s = $__s | 0; $__n = $__n | 0; - var $0 = 0, $10 = 0, $14 = 0, $27 = 0, $3 = 0, $7 = 0, $9 = 0; - $0 = HEAP8[$this >> 0] | 0; - if (!($0 & 1)) { - $7 = 10; - $9 = $0; + $__c = $__c | 0; + var $6 = 0, $7 = 0, $__p$0 = 0; + if ($__n >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__n >>> 0 < 11) { + HEAP8[$this >> 0] = $__n << 1; + $__p$0 = $this + 1 | 0; } else { - $3 = HEAP32[$this >> 2] | 0; - $7 = ($3 & -2) + -1 | 0; - $9 = $3 & 255; + $6 = $__n + 16 & -16; + $7 = __Znwj($6) | 0; + HEAP32[$this + 8 >> 2] = $7; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__n; + $__p$0 = $7; } - $10 = ($9 & 1) == 0; - do if ($7 >>> 0 < $__n >>> 0) { - if ($10) $27 = ($9 & 255) >>> 1; else $27 = HEAP32[$this + 4 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $7, $__n - $7 | 0, $27, 0, $27, $__n, $__s); - } else { - if ($10) $14 = $this + 1 | 0; else $14 = HEAP32[$this + 8 >> 2] | 0; - _memmove($14 | 0, $__s | 0, $__n | 0) | 0; - HEAP8[$14 + $__n >> 0] = 0; - if (!(HEAP8[$this >> 0] & 1)) { - HEAP8[$this >> 0] = $__n << 1; - break; - } else { - HEAP32[$this + 4 >> 2] = $__n; - break; - } - } while (0); + _memset($__p$0 | 0, $__c | 0, $__n | 0) | 0; + HEAP8[$__p$0 + $__n >> 0] = 0; return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $__s, $__n) { +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEjw($this, $__n, $__c) { $this = $this | 0; - $__s = $__s | 0; $__n = $__n | 0; - var $0 = 0, $14 = 0, $15 = 0, $24 = 0, $25 = 0, $3 = 0, $7 = 0; - $0 = HEAP8[$this >> 0] | 0; - if (!($0 & 1)) { - $14 = 10; - $7 = $0; + $__c = $__c | 0; + var $6 = 0, $8 = 0, $__p$0 = 0; + if ($__n >>> 0 > 1073741807) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); + if ($__n >>> 0 < 2) { + HEAP8[$this >> 0] = $__n << 1; + $__p$0 = $this + 4 | 0; } else { - $3 = HEAP32[$this >> 2] | 0; - $14 = ($3 & -2) + -1 | 0; - $7 = $3 & 255; + $6 = $__n + 4 & -4; + $8 = __Znwj($6 << 2) | 0; + HEAP32[$this + 8 >> 2] = $8; + HEAP32[$this >> 2] = $6 | 1; + HEAP32[$this + 4 >> 2] = $__n; + $__p$0 = $8; } - if (!($7 & 1)) $15 = ($7 & 255) >>> 1; else $15 = HEAP32[$this + 4 >> 2] | 0; - if (($14 - $15 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $14, $__n - $14 + $15 | 0, $15, $15, 0, $__n, $__s); else if ($__n) { - if (!($7 & 1)) $24 = $this + 1 | 0; else $24 = HEAP32[$this + 8 >> 2] | 0; - _memcpy($24 + $15 | 0, $__s | 0, $__n | 0) | 0; - $25 = $15 + $__n | 0; - if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $25 << 1; else HEAP32[$this + 4 >> 2] = $25; - HEAP8[$24 + $25 >> 0] = 0; + _wmemset($__p$0, $__c, $__n) | 0; + HEAP32[$__p$0 + ($__n << 2) >> 2] = 0; + return; +} + +function __ZN6vision28BinaryHierarchicalClusteringILi96EEC2Ev($this) { + $this = $this | 0; + var $3 = 0, $6 = 0, dest = 0, stop = 0; + HEAP32[$this >> 2] = 1234; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = $this; + $3 = $this + 16 | 0; + HEAP32[$this + 100 >> 2] = 0; + HEAP32[$this + 104 >> 2] = 0; + $6 = $this + 108 | 0; + dest = $3; + stop = dest + 80 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$6 >> 2] = 16; + HEAP32[$3 >> 2] = 8; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($this + 24 | 0, 8); + HEAP32[$this + 20 >> 2] = 1; + return; +} + +function _jpeg_open_backing_store($cinfo, $info, $total_bytes_needed) { + $cinfo = $cinfo | 0; + $info = $info | 0; + $total_bytes_needed = $total_bytes_needed | 0; + var $0 = 0, $3 = 0, dest = 0, stop = 0; + $0 = _tmpfile() | 0; + HEAP32[$info + 12 >> 2] = $0; + if (!$0) { + $3 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$3 + 20 >> 2] = 63; + dest = $3 + 24 | 0; + stop = dest + 80 | 0; + do { + HEAP8[dest >> 0] = 0; + dest = dest + 1 | 0; + } while ((dest | 0) < (stop | 0)); + FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo >> 2] >> 2] & 255]($cinfo); } - return $this | 0; + HEAP32[$info >> 2] = 9; + HEAP32[$info + 4 >> 2] = 10; + HEAP32[$info + 8 >> 2] = 48; + return; } -function _pad($f, $c, $w, $l, $fl) { - $f = $f | 0; - $c = $c | 0; - $w = $w | 0; - $l = $l | 0; - $fl = $fl | 0; - var $$0$lcssa6 = 0, $$02 = 0, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $3 = 0, $7 = 0, $9 = 0, $pad = 0, sp = 0; +function __ZN6vision6detail23create_formatted_stringERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEPi($agg$result, $fmt, $arg_list) { + $agg$result = $agg$result | 0; + $fmt = $fmt | 0; + $arg_list = $arg_list | 0; + var $buffer = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 256 | 0; + STACKTOP = STACKTOP + 2048 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $pad = sp; - do if (($w | 0) > ($l | 0) & ($fl & 73728 | 0) == 0) { - $3 = $w - $l | 0; - _memset($pad | 0, $c | 0, ($3 >>> 0 > 256 ? 256 : $3) | 0) | 0; - $7 = HEAP32[$f >> 2] | 0; - $9 = ($7 & 32 | 0) == 0; - if ($3 >>> 0 > 255) { - $10 = $w - $l | 0; - $$02 = $3; - $17 = $7; - $18 = $9; - while (1) { - if ($18) { - ___fwritex($pad, 256, $f) | 0; - $14 = HEAP32[$f >> 2] | 0; - } else $14 = $17; - $$02 = $$02 + -256 | 0; - $18 = ($14 & 32 | 0) == 0; - if ($$02 >>> 0 <= 255) break; else $17 = $14; - } - if ($18) $$0$lcssa6 = $10 & 255; else break; - } else if ($9) $$0$lcssa6 = $3; else break; - ___fwritex($pad, $$0$lcssa6, $f) | 0; - } while (0); + $buffer = sp; + _vsnprintf($buffer, 2048, (HEAP8[$fmt >> 0] & 1) == 0 ? $fmt + 1 | 0 : HEAP32[$fmt + 8 >> 2] | 0, $arg_list) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($agg$result, $buffer, _strlen($buffer) | 0); STACKTOP = sp; return; } -function _loadCamera($cparam_name) { - $cparam_name = $cparam_name | 0; - var $$0 = 0, $15 = 0, $16 = 0, $6 = 0, $cameraID = 0, $param = 0, $vararg_buffer1 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer1 = sp + 192 | 0; - $param = sp; - $cameraID = sp + 196 | 0; - if (!(HEAP8[$cparam_name >> 0] & 1)) $6 = $cparam_name + 1 | 0; else $6 = HEAP32[$cparam_name + 8 >> 2] | 0; - if ((_arParamLoad($6, 1, $param, sp + 184 | 0) | 0) < 0) { - if (!(HEAP8[$cparam_name >> 0] & 1)) $15 = $cparam_name + 1 | 0; else $15 = HEAP32[$cparam_name + 8 >> 2] | 0; - HEAP32[$vararg_buffer1 >> 2] = $15; - _arLog(3, 6092, $vararg_buffer1); - $$0 = -1; - } else { - $16 = HEAP32[521] | 0; - HEAP32[521] = $16 + 1; - HEAP32[$cameraID >> 2] = $16; - _memcpy(__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2064, $cameraID) | 0, $param | 0, 184) | 0; - $$0 = $16; - } - STACKTOP = sp; - return $$0 | 0; +function __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($dst, $src, $s) { + $dst = $dst | 0; + $src = $src | 0; + $s = +$s; + HEAPF32[$dst >> 2] = +HEAPF32[$src >> 2] * $s; + HEAPF32[$dst + 4 >> 2] = +HEAPF32[$src + 4 >> 2] * $s; + HEAPF32[$dst + 8 >> 2] = +HEAPF32[$src + 8 >> 2] * $s; + HEAPF32[$dst + 12 >> 2] = +HEAPF32[$src + 12 >> 2] * $s; + HEAPF32[$dst + 16 >> 2] = +HEAPF32[$src + 16 >> 2] * $s; + HEAPF32[$dst + 20 >> 2] = +HEAPF32[$src + 20 >> 2] * $s; + HEAPF32[$dst + 24 >> 2] = +HEAPF32[$src + 24 >> 2] * $s; + HEAPF32[$dst + 28 >> 2] = +HEAPF32[$src + 28 >> 2] * $s; + HEAPF32[$dst + 32 >> 2] = +HEAPF32[$src + 32 >> 2] * $s; + return; } -function _getMultiMarkerNum($id, $multiMarker_id) { - $id = $id | 0; - $multiMarker_id = $multiMarker_id | 0; - var $$0 = 0, $0 = 0, $3 = 0, $8 = 0, sp = 0; +function __ZN6vision21HoughSimilarityVotingC2Ev($this) { + $this = $this | 0; + var $2 = 0, $3 = 0, dest = 0, stop = 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP8[$this + 16 >> 0] = 1; + $2 = $this + 108 | 0; + dest = $this + 20 | 0; + stop = dest + 88 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAPF32[$2 >> 2] = 1.0; + $3 = $this + 112 | 0; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + HEAP32[$3 + 12 >> 2] = 0; + HEAP32[$3 + 16 >> 2] = 0; + HEAP32[$3 + 20 >> 2] = 0; + return; +} + +function __ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E($fn, $args) { + $fn = $fn | 0; + $args = $args | 0; + var $0 = 0, $1 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if (($multiMarker_id | 0) < 0) $$0 = -1; else { - $8 = HEAP32[$3 + 248 >> 2] | 0; - if ((HEAP32[$3 + 252 >> 2] | 0) - $8 >> 3 >>> 0 > $multiMarker_id >>> 0) $$0 = HEAP32[(HEAP32[$8 + ($multiMarker_id << 3) + 4 >> 2] | 0) + 4 >> 2] | 0; else $$0 = -1; - } - } + __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args); + $1 = FUNCTION_TABLE_ii[$fn & 127]($0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); STACKTOP = sp; - return $$0 | 0; + return $1 | 0; } -function _arImageProcInit($xsize, $ysize, $pixFormat, $alwaysCopy) { - $xsize = $xsize | 0; - $ysize = $ysize | 0; - $pixFormat = $pixFormat | 0; - $alwaysCopy = $alwaysCopy | 0; - var $$0 = 0, $0 = 0, $5 = 0, label = 0; - $0 = _malloc(2080) | 0; - L1 : do if (!$0) $$0 = $0; else { - HEAP32[$0 + 2068 >> 2] = $pixFormat; - L3 : do if (!$alwaysCopy) { - switch ($pixFormat | 0) { - case 5: - case 12: - case 13: - case 14: - break; - default: - { - label = 4; - break L3; - } - } - HEAP32[$0 + 2076 >> 2] = 0; - } else label = 4; while (0); - do if ((label | 0) == 4) { - $5 = _malloc(Math_imul($ysize, $xsize) | 0) | 0; - HEAP32[$0 >> 2] = $5; - if (!$5) { - _free($0); - $$0 = 0; +function __ZN6vision40Homography4PointsInhomogeneousConstraintIfEEvPT_PKS1_S4_S4_S4_S4_S4_S4_S4_($A, $x1, $x2, $x3, $x4, $xp1, $xp2, $xp3, $xp4) { + $A = $A | 0; + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + $xp1 = $xp1 | 0; + $xp2 = $xp2 | 0; + $xp3 = $xp3 | 0; + $xp4 = $xp4 | 0; + __ZN6vision27AddHomographyPointContraintIfEEvPT_PKS1_S4_($A, $x1, $xp1); + __ZN6vision27AddHomographyPointContraintIfEEvPT_PKS1_S4_($A + 72 | 0, $x2, $xp2); + __ZN6vision27AddHomographyPointContraintIfEEvPT_PKS1_S4_($A + 144 | 0, $x3, $xp3); + __ZN6vision27AddHomographyPointContraintIfEEvPT_PKS1_S4_($A + 216 | 0, $x4, $xp4); + return; +} + +function __ZN6vision16RobustHomographyIfE4initEfiii($this, $cauchyScale, $maxNumHypotheses, $maxTrials, $chunkSize) { + $this = $this | 0; + $cauchyScale = +$cauchyScale; + $maxNumHypotheses = $maxNumHypotheses | 0; + $maxTrials = $maxTrials | 0; + $chunkSize = $chunkSize | 0; + __ZNSt3__16vectorIfNS_9allocatorIfEEE6resizeEj($this, $maxNumHypotheses * 9 | 0); + __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE6resizeEj($this + 24 | 0, $maxNumHypotheses); + HEAPF32[$this + 36 >> 2] = $cauchyScale; + HEAP32[$this + 40 >> 2] = $maxNumHypotheses; + HEAP32[$this + 44 >> 2] = $maxTrials; + HEAP32[$this + 48 >> 2] = $chunkSize; + return; +} + +function _strncat($d, $s, $n) { + $d = $d | 0; + $s = $s | 0; + $n = $n | 0; + var $$0$lcssa = 0, $$014 = 0, $$023 = 0, $$05 = 0, $1 = 0, $3 = 0, $7 = 0; + $1 = $d + (_strlen($d) | 0) | 0; + L1 : do if (!$n) $$0$lcssa = $1; else { + $$014 = $n; + $$023 = $s; + $$05 = $1; + while (1) { + $3 = HEAP8[$$023 >> 0] | 0; + if (!($3 << 24 >> 24)) { + $$0$lcssa = $$05; break L1; - } else { - HEAP32[$0 + 2076 >> 2] = 1; + } + $$014 = $$014 + -1 | 0; + $7 = $$05 + 1 | 0; + HEAP8[$$05 >> 0] = $3; + if (!$$014) { + $$0$lcssa = $7; break; + } else { + $$023 = $$023 + 1 | 0; + $$05 = $7; + } + } + } while (0); + HEAP8[$$0$lcssa >> 0] = 0; + return $d | 0; +} + +function __ZN6vision18VisualDatabaseImplC2Ev($this) { + $this = $this | 0; + var $1 = 0, $2 = 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = 0; + HEAPF32[$this + 20 >> 2] = 1.0; + $1 = __Znwj(840) | 0; + __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEEC2Ev($1); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $1; + if ($2) { + __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEED2Ev($2); + __ZdlPv($2); + } + return; +} + +function __ZN6vision19QuadrilateralConvexIfEEbPKT_S3_S3_S3_($x1, $x2, $x3, $x4) { + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x4 = $x4 | 0; + var $1 = 0, $12 = 0, $14 = 0, $4 = 0, $8 = 0; + $1 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x1, $x2, $x3) > 0.0; + $4 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x2, $x3, $x4) > 0.0; + $8 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x3, $x4, $x1) > 0.0; + $12 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x4, $x1, $x2) > 0.0; + $14 = ($4 ? 1 : -1) + ($1 ? 1 : -1) + ($8 ? 1 : -1) + ($12 ? 1 : -1) | 0; + return ((($14 | 0) > -1 ? $14 : 0 - $14 | 0) | 0) == 4 | 0; +} + +function _get_buff($buf, $fp) { + $buf = $buf | 0; + $fp = $fp | 0; + var $2 = 0, $5 = 0, $l$01 = 0; + L1 : do if (_fgets($buf, 256, $fp) | 0) while (1) { + $2 = _strlen($buf) | 0; + L4 : do if ($2) { + $l$01 = $2; + while (1) { + $l$01 = $l$01 + -1 | 0; + $5 = $buf + $l$01 | 0; + switch (HEAP8[$5 >> 0] | 0) { + case 13: + case 10: + break; + default: + break L4; + } + HEAP8[$5 >> 0] = 0; + if (!$l$01) break L4; } } while (0); - HEAP32[$0 + 2072 >> 2] = $alwaysCopy; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = $xsize; - HEAP32[$0 + 12 >> 2] = $ysize; - $$0 = $0; + switch (HEAP8[$buf >> 0] | 0) { + case 0: + case 35: + break; + default: + break L1; + } + if (!(_fgets($buf, 256, $fp) | 0)) break L1; } while (0); - return $$0 | 0; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEE12__deallocateEPNS_11__hash_nodeIS9_PvEE($this, $__np) { + $this = $this | 0; + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZNSt3__113__vector_baseIN6vision7Point3dIfEENS_9allocatorIS3_EEED2Ev($$01$looptemp + 12 | 0); + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); + } + return; +} + +function _emit_message($cinfo, $msg_level) { + $cinfo = $cinfo | 0; + $msg_level = $msg_level | 0; + var $0 = 0, $11 = 0, $2 = 0, $3 = 0, label = 0; + $0 = HEAP32[$cinfo >> 2] | 0; + if (($msg_level | 0) < 0) { + $2 = $0 + 108 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (!$3) label = 4; else if ((HEAP32[$0 + 104 >> 2] | 0) > 2) label = 4; else $11 = $3; + if ((label | 0) == 4) { + FUNCTION_TABLE_vi[HEAP32[$0 + 8 >> 2] & 255]($cinfo); + $11 = HEAP32[$2 >> 2] | 0; + } + HEAP32[$2 >> 2] = $11 + 1; + } else if ((HEAP32[$0 + 104 >> 2] | 0) >= ($msg_level | 0)) FUNCTION_TABLE_vi[HEAP32[$0 + 8 >> 2] & 255]($cinfo); + return; +} + +function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { + $this = $this | 0; + $info = $info | 0; + $adjustedPtr = $adjustedPtr | 0; + $path_below = $path_below | 0; + var $4 = 0; + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else { + $4 = HEAP32[$this + 8 >> 2] | 0; + FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 31]($4, $info, $adjustedPtr, $path_below); + } + return; } -function _setPattRatio($id, $ratio) { - $id = $id | 0; - $ratio = +$ratio; - var $0 = 0, $3 = 0, $6 = 0.0, $8 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 8 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if (!($ratio <= 0.0 | $ratio >= 1.0)) { - $6 = $ratio; - $8 = HEAP32[$3 + 212 >> 2] | 0; - if ($8) if (!(_arSetPattRatio($8, $6) | 0)) { - HEAPF64[$vararg_buffer >> 3] = $6; - _arLog(1, 6512, $vararg_buffer); +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE12__deallocateEPNS_11__hash_nodeIS6_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); + return; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE10deallocateEv($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -20 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } + __ZdlPv($0); + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$this >> 2] = 0; } - STACKTOP = sp; return; } -function _setDebugMode($id, $enable) { - $id = $id | 0; - $enable = $enable | 0; - var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $6 = ($enable | 0) != 0; - _arSetDebugMode(HEAP32[$4 >> 2] | 0, $6 & 1) | 0; - HEAP32[$vararg_buffer >> 2] = $6 ? 6615 : 6619; - _arLog(1, 6624, $vararg_buffer); - $$0 = $enable; +function _strcmp($l, $r) { + $l = $l | 0; + $r = $r | 0; + var $$014 = 0, $$05 = 0, $$lcssa = 0, $$lcssa2 = 0, $0 = 0, $1 = 0, $6 = 0, $7 = 0; + $0 = HEAP8[$l >> 0] | 0; + $1 = HEAP8[$r >> 0] | 0; + if ($0 << 24 >> 24 == 0 ? 1 : $0 << 24 >> 24 != $1 << 24 >> 24) { + $$lcssa = $0; + $$lcssa2 = $1; + } else { + $$014 = $l; + $$05 = $r; + do { + $$014 = $$014 + 1 | 0; + $$05 = $$05 + 1 | 0; + $6 = HEAP8[$$014 >> 0] | 0; + $7 = HEAP8[$$05 >> 0] | 0; + } while (!($6 << 24 >> 24 == 0 ? 1 : $6 << 24 >> 24 != $7 << 24 >> 24)); + $$lcssa = $6; + $$lcssa2 = $7; } - STACKTOP = sp; - return $$0 | 0; -} - -function ___remdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0; - __stackBase__ = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - $rem = __stackBase__ | 0; - $1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; - $1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; - $2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; - $2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; - $4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0; - $4$1 = tempRet0; - ___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, $rem) | 0; - $10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0, HEAP32[$rem + 4 >> 2] ^ $1$1, $1$0, $1$1) | 0; - $10$1 = tempRet0; - STACKTOP = __stackBase__; - return (tempRet0 = $10$1, $10$0) | 0; + return ($$lcssa & 255) - ($$lcssa2 & 255) | 0; } -function _fopen($filename, $mode) { - $filename = $filename | 0; - $mode = $mode | 0; - var $$0 = 0, $3 = 0, $5 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0; +function ___stdout_write($f, $buf, $len) { + $f = $f | 0; + $buf = $buf | 0; + $len = $len | 0; + var $9 = 0, $vararg_buffer = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 80 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer3 = sp + 16 | 0; $vararg_buffer = sp; - if (!(_memchr(16759, HEAP8[$mode >> 0] | 0, 4) | 0)) { - $3 = ___errno_location() | 0; - HEAP32[$3 >> 2] = 22; - $$0 = 0; - } else { - $5 = ___fmodeflags($mode) | 0 | 32768; - HEAP32[$vararg_buffer >> 2] = $filename; - HEAP32[$vararg_buffer + 4 >> 2] = $5; - HEAP32[$vararg_buffer + 8 >> 2] = 438; - $7 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0; - if (($7 | 0) < 0) $$0 = 0; else { - $9 = ___fdopen($7, $mode) | 0; - if (!$9) { - HEAP32[$vararg_buffer3 >> 2] = $7; - ___syscall6(6, $vararg_buffer3 | 0) | 0; - $$0 = 0; - } else $$0 = $9; - } + HEAP32[$f + 36 >> 2] = 4; + if (!(HEAP32[$f >> 2] & 64)) { + HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; + HEAP32[$vararg_buffer + 4 >> 2] = 21505; + HEAP32[$vararg_buffer + 8 >> 2] = sp + 12; + if (___syscall54(54, $vararg_buffer | 0) | 0) HEAP8[$f + 75 >> 0] = -1; } + $9 = ___stdio_write($f, $buf, $len) | 0; STACKTOP = sp; - return $$0 | 0; + return $9 | 0; } -function _cycle($width, $ar, $n) { - $width = $width | 0; - $ar = $ar | 0; - $n = $n | 0; - var $$02 = 0, $1 = 0, $4 = 0, $6 = 0, $7 = 0, $i$01 = 0, $tmp = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $tmp = sp; - L1 : do if (($n | 0) >= 2) { - $1 = $ar + ($n << 2) | 0; - HEAP32[$1 >> 2] = $tmp; - if ($width) { - $$02 = $width; - $6 = $tmp; +function __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE10deallocateEv($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i$i; while (1) { - $4 = $$02 >>> 0 > 256 ? 256 : $$02; - _memcpy($6 | 0, HEAP32[$ar >> 2] | 0, $4 | 0) | 0; - $i$01 = 0; - do { - $7 = $ar + ($i$01 << 2) | 0; - $i$01 = $i$01 + 1 | 0; - _memcpy(HEAP32[$7 >> 2] | 0, HEAP32[$ar + ($i$01 << 2) >> 2] | 0, $4 | 0) | 0; - HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + $4; - } while (($i$01 | 0) != ($n | 0)); - if (($$02 | 0) == ($4 | 0)) break L1; - $$02 = $$02 - $4 | 0; - $6 = HEAP32[$1 >> 2] | 0; + $4 = $5 + -12 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - } while (0); - STACKTOP = sp; + __ZdlPv($0); + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$this >> 2] = 0; + } return; } -function _setThreshold($id, $threshold) { - $id = $id | 0; - $threshold = $threshold | 0; - var $0 = 0, $3 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - if ($threshold >>> 0 <= 255) if (!(_arSetLabelingThresh(HEAP32[$3 + 212 >> 2] | 0, $threshold) | 0)) { - HEAP32[$vararg_buffer >> 2] = $threshold; - _arLog(1, 6568, $vararg_buffer); - } - } - STACKTOP = sp; +function __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvPT_PKS1_S4_($xp, $H, $x) { + $xp = $xp | 0; + $H = $H | 0; + $x = $x | 0; + var $12 = 0.0, $2 = 0.0, $6 = 0, $7 = 0.0; + $2 = +HEAPF32[$x >> 2]; + $6 = $x + 4 | 0; + $7 = +HEAPF32[$6 >> 2]; + $12 = +HEAPF32[$H + 32 >> 2] + (+HEAPF32[$H + 24 >> 2] * $2 + +HEAPF32[$H + 28 >> 2] * $7); + HEAPF32[$xp >> 2] = (+HEAPF32[$H + 8 >> 2] + ($2 * +HEAPF32[$H >> 2] + $7 * +HEAPF32[$H + 4 >> 2])) / $12; + HEAPF32[$xp + 4 >> 2] = (+HEAPF32[$H + 20 >> 2] + (+HEAPF32[$H + 12 >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$H + 16 >> 2] * +HEAPF32[$6 >> 2])) / $12; return; } -function _scalbn($x, $n) { - $x = +$x; - $n = $n | 0; - var $$0 = 0, $1 = 0.0, $12 = 0, $15 = 0, $16 = 0, $2 = 0, $5 = 0, $8 = 0.0, $9 = 0, $y$0 = 0.0; - if (($n | 0) > 1023) { - $1 = $x * 8988465674311579538646525.0e283; - $2 = $n + -1023 | 0; - if (($2 | 0) > 1023) { - $5 = $n + -2046 | 0; - $$0 = ($5 | 0) > 1023 ? 1023 : $5; - $y$0 = $1 * 8988465674311579538646525.0e283; - } else { - $$0 = $2; - $y$0 = $1; - } - } else if (($n | 0) < -1022) { - $8 = $x * 2.2250738585072014e-308; - $9 = $n + 1022 | 0; - if (($9 | 0) < -1022) { - $12 = $n + 2044 | 0; - $$0 = ($12 | 0) < -1022 ? -1022 : $12; - $y$0 = $8 * 2.2250738585072014e-308; - } else { - $$0 = $9; - $y$0 = $8; - } - } else { - $$0 = $n; - $y$0 = $x; +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE12__deallocateEPNS_11__hash_nodeIS4_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEEEENS_22__unordered_map_hasherIiS7_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS7_NS_8equal_toIiEELb1EEENS_9allocatorIS7_EEE12__deallocateEPNS_11__hash_nodeIS7_PvEE($this, $__np) { + $this = $this | 0; + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($$01$looptemp + 12 | 0); + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); } - $15 = _bitshift64Shl($$0 + 1023 | 0, 0, 52) | 0; - $16 = tempRet0; - HEAP32[tempDoublePtr >> 2] = $15; - HEAP32[tempDoublePtr + 4 >> 2] = $16; - return +($y$0 * +HEAPF64[tempDoublePtr >> 3]); + return; } -function _wcrtomb($s, $wc, $st) { +function _wmemmove($d, $s, $n) { + $d = $d | 0; $s = $s | 0; - $wc = $wc | 0; - $st = $st | 0; - var $$0 = 0, $45 = 0; - do if (!$s) $$0 = 1; else { - if ($wc >>> 0 < 128) { - HEAP8[$s >> 0] = $wc; - $$0 = 1; - break; - } - if ($wc >>> 0 < 2048) { - HEAP8[$s >> 0] = $wc >>> 6 | 192; - HEAP8[$s + 1 >> 0] = $wc & 63 | 128; - $$0 = 2; - break; - } - if ($wc >>> 0 < 55296 | ($wc & -8192 | 0) == 57344) { - HEAP8[$s >> 0] = $wc >>> 12 | 224; - HEAP8[$s + 1 >> 0] = $wc >>> 6 & 63 | 128; - HEAP8[$s + 2 >> 0] = $wc & 63 | 128; - $$0 = 3; - break; - } - if (($wc + -65536 | 0) >>> 0 < 1048576) { - HEAP8[$s >> 0] = $wc >>> 18 | 240; - HEAP8[$s + 1 >> 0] = $wc >>> 12 & 63 | 128; - HEAP8[$s + 2 >> 0] = $wc >>> 6 & 63 | 128; - HEAP8[$s + 3 >> 0] = $wc & 63 | 128; - $$0 = 4; - break; - } else { - $45 = ___errno_location() | 0; - HEAP32[$45 >> 2] = 84; - $$0 = -1; - break; + $n = $n | 0; + var $$025 = 0, $$07 = 0, $$16 = 0, $$in = 0, $5 = 0; + $5 = ($n | 0) == 0; + if ($d - $s >> 2 >>> 0 < $n >>> 0) { + if (!$5) { + $$in = $n; + do { + $$in = $$in + -1 | 0; + HEAP32[$d + ($$in << 2) >> 2] = HEAP32[$s + ($$in << 2) >> 2]; + } while (($$in | 0) != 0); + } + } else if (!$5) { + $$025 = $s; + $$07 = $d; + $$16 = $n; + while (1) { + $$16 = $$16 + -1 | 0; + HEAP32[$$07 >> 2] = HEAP32[$$025 >> 2]; + if (!$$16) break; else { + $$025 = $$025 + 4 | 0; + $$07 = $$07 + 4 | 0; + } } - } while (0); - return $$0 | 0; + } + return $d | 0; } -function _getThresholdMode($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $7 = 0, $thresholdMode = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $thresholdMode = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) { - STACKTOP = sp; - return -1; - } else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $7 = (_arGetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $thresholdMode) | 0) == 0; - STACKTOP = sp; - return ($7 ? HEAP32[$thresholdMode >> 2] | 0 : -1) | 0; +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE18__construct_at_endIPS5_EENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESB_SB_($this, $__first, $__last) { + $this = $this | 0; + $__first = $__first | 0; + $__last = $__last | 0; + var $$01 = 0, $0 = 0; + $0 = $this + 4 | 0; + if (($__first | 0) != ($__last | 0)) { + $$01 = $__first; + do { + __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEEC2ERKS5_(HEAP32[$0 >> 2] | 0, $$01); + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 12; + $$01 = $$01 + 12 | 0; + } while (($$01 | 0) != ($__last | 0)); } - return 0; + return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($this, $s) { - $this = $this | 0; - $s = $s | 0; - var $1 = 0, $10 = 0, $12 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - HEAP8[$this >> 0] = 16; - $1 = $s; - $2 = $1; - $3 = HEAPU8[$2 >> 0] | HEAPU8[$2 + 1 >> 0] << 8 | HEAPU8[$2 + 2 >> 0] << 16 | HEAPU8[$2 + 3 >> 0] << 24; - $5 = $1 + 4 | 0; - $6 = HEAPU8[$5 >> 0] | HEAPU8[$5 + 1 >> 0] << 8 | HEAPU8[$5 + 2 >> 0] << 16 | HEAPU8[$5 + 3 >> 0] << 24; - $7 = $this + 1 | 0; - $8 = $7; - HEAP8[$8 >> 0] = $3; - HEAP8[$8 + 1 >> 0] = $3 >> 8; - HEAP8[$8 + 2 >> 0] = $3 >> 16; - HEAP8[$8 + 3 >> 0] = $3 >> 24; - $10 = $7 + 4 | 0; - HEAP8[$10 >> 0] = $6; - HEAP8[$10 + 1 >> 0] = $6 >> 8; - HEAP8[$10 + 2 >> 0] = $6 >> 16; - HEAP8[$10 + 3 >> 0] = $6 >> 24; - HEAP8[$this + 9 >> 0] = 0; - $12 = $this + 12 | 0; - HEAP32[$12 >> 2] = 0; - HEAP32[$12 + 4 >> 2] = 0; - HEAP32[$12 + 8 >> 2] = 0; +function __ZNSt3__111__call_onceERVmPvPFvS2_E($flag, $arg, $func) { + $flag = $flag | 0; + $arg = $arg | 0; + $func = $func | 0; + _pthread_mutex_lock(12196) | 0; + if ((HEAP32[$flag >> 2] | 0) == 1) do _pthread_cond_wait(12224, 12196) | 0; while ((HEAP32[$flag >> 2] | 0) == 1); + if (!(HEAP32[$flag >> 2] | 0)) { + HEAP32[$flag >> 2] = 1; + _pthread_mutex_unlock(12196) | 0; + FUNCTION_TABLE_vi[$func & 255]($arg); + _pthread_mutex_lock(12196) | 0; + HEAP32[$flag >> 2] = -1; + _pthread_mutex_unlock(12196) | 0; + _pthread_cond_broadcast(12224) | 0; + } else _pthread_mutex_unlock(12196) | 0; return; } -function _getImageProcMode($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $7 = 0, $imageProcMode = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $imageProcMode = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) { - STACKTOP = sp; - return -1; - } else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $7 = (_arGetImageProcMode(HEAP32[$4 >> 2] | 0, $imageProcMode) | 0) == 0; - STACKTOP = sp; - return ($7 ? HEAP32[$imageProcMode >> 2] | 0 : -1) | 0; - } - return 0; +function _arUtilGetDirectoryNameFromPath($dir, $path, $n, $addSeparator) { + $dir = $dir | 0; + $path = $path | 0; + $n = $n | 0; + $addSeparator = $addSeparator | 0; + var $$0 = 0, $10 = 0, $3 = 0; + do if (($dir | 0) != 0 & ($path | 0) != 0 & ($n | 0) != 0) { + $3 = _strrchr($path, 47) | 0; + if (!$3) { + HEAP8[$dir >> 0] = 0; + $$0 = $dir; + break; + } + $10 = $3 + (($addSeparator | 0) != 0 & 1) - $path | 0; + if (($10 + 1 | 0) >>> 0 > $n >>> 0) $$0 = 0; else { + _strncpy($dir, $path, $10) | 0; + HEAP8[$dir + $10 >> 0] = 0; + $$0 = $dir; + } + } else $$0 = 0; while (0); + return $$0 | 0; } -function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v) { +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) { $this = $this | 0; - $__v = $__v | 0; - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0; - $0 = HEAP32[$this >> 2] | 0; - $1 = $this + 4 | 0; - $3 = $__v + 4 | 0; - $6 = (HEAP32[$1 >> 2] | 0) - $0 | 0; - $10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0; - HEAP32[$3 >> 2] = $10; - _memcpy($10 | 0, $0 | 0, $6 | 0) | 0; - $11 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = HEAP32[$3 >> 2]; - HEAP32[$3 >> 2] = $11; - $13 = $__v + 8 | 0; - $14 = HEAP32[$1 >> 2] | 0; - HEAP32[$1 >> 2] = HEAP32[$13 >> 2]; - HEAP32[$13 >> 2] = $14; - $16 = $this + 8 | 0; - $17 = $__v + 12 | 0; - $18 = HEAP32[$16 >> 2] | 0; - HEAP32[$16 >> 2] = HEAP32[$17 >> 2]; - HEAP32[$17 >> 2] = $18; - HEAP32[$__v >> 2] = HEAP32[$3 >> 2]; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); return; } -function _setPatternDetectionMode($id, $mode) { - $id = $id | 0; - $mode = $mode | 0; - var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - if (!(_arSetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { - HEAP32[$vararg_buffer >> 2] = $mode; - _arLog(1, 6477, $vararg_buffer); - } +function __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEED2Ev($this) { + $this = $this | 0; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($1 | 0)) { + $6 = $3; + do { + $5 = $6 + -12 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($1 | 0)); } - STACKTOP = sp; + $9 = HEAP32[$this >> 2] | 0; + if ($9) __ZdlPv($9); return; } -function _getLabelingMode($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $7 = 0, $labelingMode = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $labelingMode = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) { - STACKTOP = sp; - return -1; - } else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $7 = (_arGetLabelingMode(HEAP32[$4 >> 2] | 0, $labelingMode) | 0) == 0; - STACKTOP = sp; - return ($7 ? HEAP32[$labelingMode >> 2] | 0 : -1) | 0; - } - return 0; -} - -function _arMatrixDup($dest, $source) { - $dest = $dest | 0; - $source = $source | 0; - var $$0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $6 = 0, $c$02 = 0, $r$03 = 0; - $1 = HEAP32[$dest + 4 >> 2] | 0; - if (($1 | 0) == (HEAP32[$source + 4 >> 2] | 0)) { - $6 = HEAP32[$dest + 8 >> 2] | 0; - if (($6 | 0) == (HEAP32[$source + 8 >> 2] | 0)) if (($1 | 0) > 0) { - $11 = ($6 | 0) > 0; - $r$03 = 0; - do { - $12 = Math_imul($6, $r$03) | 0; - if ($11) { - $13 = HEAP32[$source >> 2] | 0; - $14 = HEAP32[$dest >> 2] | 0; - $c$02 = 0; - do { - $15 = $12 + $c$02 | 0; - HEAPF64[$14 + ($15 << 3) >> 3] = +HEAPF64[$13 + ($15 << 3) >> 3]; - $c$02 = $c$02 + 1 | 0; - } while (($c$02 | 0) < ($6 | 0)); - } - $r$03 = $r$03 + 1 | 0; - } while (($r$03 | 0) < ($1 | 0)); - $$0 = 0; - } else $$0 = 0; else $$0 = -1; - } else $$0 = -1; - return $$0 | 0; +function __ZNSt3__110__stdinbufIwE5imbueERKNS_6localeE($this, $__loc) { + $this = $this | 0; + $__loc = $__loc | 0; + var $0 = 0, $1 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13748) | 0; + $1 = $this + 36 | 0; + HEAP32[$1 >> 2] = $0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 24 >> 2] & 127]($0) | 0; + $6 = $this + 44 | 0; + HEAP32[$6 >> 2] = $5; + $7 = HEAP32[$1 >> 2] | 0; + $13 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$7 >> 2] | 0) + 28 >> 2] & 127]($7) | 0) & 1; + HEAP8[$this + 53 >> 0] = $13; + if ((HEAP32[$6 >> 2] | 0) > 8) {} + return; } -function _setThresholdMode($id, $mode) { - $id = $id | 0; - $mode = $mode | 0; - var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - if (!(_arSetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { - HEAP32[$vararg_buffer >> 2] = $mode; - _arLog(1, 6589, $vararg_buffer); - } - } - STACKTOP = sp; +function __ZNSt3__110__stdinbufIcE5imbueERKNS_6localeE($this, $__loc) { + $this = $this | 0; + $__loc = $__loc | 0; + var $0 = 0, $1 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0; + $0 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13740) | 0; + $1 = $this + 36 | 0; + HEAP32[$1 >> 2] = $0; + $5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[$0 >> 2] | 0) + 24 >> 2] & 127]($0) | 0; + $6 = $this + 44 | 0; + HEAP32[$6 >> 2] = $5; + $7 = HEAP32[$1 >> 2] | 0; + $13 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$7 >> 2] | 0) + 28 >> 2] & 127]($7) | 0) & 1; + HEAP8[$this + 53 >> 0] = $13; + if ((HEAP32[$6 >> 2] | 0) > 8) {} return; } -function _getPattRatio($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $5 = 0, $8 = 0, $pattRatio = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 8 | 0; - $pattRatio = sp; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $5 = HEAP32[$4 >> 2] | 0; - if ($5) { - $8 = (_arGetPattRatio($5, $pattRatio) | 0) == 0; - STACKTOP = sp; - return +($8 ? +HEAPF64[$pattRatio >> 3] : -1.0); +function __ZNSt3__113__vector_baseINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEENS4_IS8_EEED2Ev($this) { + $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($0 | 0)) { + $6 = $3; + do { + $5 = $6 + -12 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($0 | 0)); } + __ZdlPv(HEAP32[$this >> 2] | 0); } - STACKTOP = sp; - return -1.0; + return; } -function _setImageProcMode($id, $mode) { - $id = $id | 0; - $mode = $mode | 0; - var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - if (!(_arSetImageProcMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { - HEAP32[$vararg_buffer >> 2] = $mode; - _arLog(1, 6646, $vararg_buffer); +function _roundf($x) { + $x = +$x; + var $$0 = 0.0, $$x = 0.0, $0 = 0, $10 = 0.0, $15 = 0.0, $2 = 0, $4 = 0, $y$0 = 0.0; + $0 = (HEAPF32[tempDoublePtr >> 2] = $x, HEAP32[tempDoublePtr >> 2] | 0); + $2 = $0 >>> 23 & 255; + do if ($2 >>> 0 > 149) $$0 = $x; else { + $4 = ($0 | 0) < 0; + $$x = $4 ? -$x : $x; + if ($2 >>> 0 < 126) { + $$0 = $x * 0.0; + break; } - } - STACKTOP = sp; + $10 = $$x + 8388608.0 + -8388608.0 - $$x; + if ($10 > .5) $y$0 = $$x + $10 + -1.0; else { + $15 = $$x + $10; + if (!($10 <= -.5)) $y$0 = $15; else $y$0 = $15 + 1.0; + } + $$0 = $4 ? -$y$0 : $y$0; + } while (0); + return +$$0; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); return; } -function _setLabelingMode($id, $mode) { - $id = $id | 0; - $mode = $mode | 0; - var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $0 = sp + 4 | 0; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - if (!(_arSetLabelingMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) { - HEAP32[$vararg_buffer >> 2] = $mode; - _arLog(1, 6543, $vararg_buffer); - } - } - STACKTOP = sp; +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + var $3 = 0, $4 = 0; + HEAP32[$this >> 2] = HEAP32[$0 >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2]; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + $3 = $this + 12 | 0; + $4 = $0 + 12 | 0; + HEAP32[$3 >> 2] = HEAP32[$4 >> 2]; + HEAP32[$3 + 4 >> 2] = HEAP32[$4 + 4 >> 2]; + HEAP32[$3 + 8 >> 2] = HEAP32[$4 + 8 >> 2]; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; return; } -function _getThreshold($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $7 = 0, $threshold = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $threshold = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) { - STACKTOP = sp; - return -1; - } else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $7 = (_arGetLabelingThresh(HEAP32[$4 >> 2] | 0, $threshold) | 0) == 0; - STACKTOP = sp; - return ($7 ? HEAP32[$threshold >> 2] | 0 : -1) | 0; +function __ZNSt3__16vectorIhNS_9allocatorIhEEE10deallocateEv($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -1 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$this >> 2] = 0; } - return 0; + return; } -function __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) { - $first = $first | 0; - $last = $last | 0; - $cv = $cv | 0; - var $$0 = 0, $$1 = 0, $$2 = 0, $1 = 0, $10 = 0, $12 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - HEAP32[$cv >> 2] = 0; - if (($first | 0) == ($last | 0)) $$2 = $first; else { - $1 = HEAP8[$first >> 0] | 0; - if ($1 << 24 >> 24 == 114) { - HEAP32[$cv >> 2] = 4; - $3 = $first + 1 | 0; - $$0 = $3; - $5 = HEAP8[$3 >> 0] | 0; - $7 = 4; - } else { - $$0 = $first; - $5 = $1; - $7 = 0; - } - if ($5 << 24 >> 24 == 86) { - $6 = $7 | 2; - HEAP32[$cv >> 2] = $6; - $8 = $$0 + 1 | 0; - $$1 = $8; - $10 = HEAP8[$8 >> 0] | 0; - $12 = $6; - } else { - $$1 = $$0; - $10 = $5; - $12 = $7; +function __ZNKSt3__17collateIwE7do_hashEPKwS3_($this, $__lo, $__hi) { + $this = $this | 0; + $__lo = $__lo | 0; + $__hi = $__hi | 0; + var $3 = 0, $4 = 0, $7 = 0, $__h$0$lcssa = 0, $__h$02 = 0, $__p$01 = 0; + if (($__lo | 0) == ($__hi | 0)) $__h$0$lcssa = 0; else { + $__h$02 = 0; + $__p$01 = $__lo; + while (1) { + $3 = (HEAP32[$__p$01 >> 2] | 0) + ($__h$02 << 4) | 0; + $4 = $3 & -268435456; + $7 = ($4 >>> 24 | $4) ^ $3; + $__p$01 = $__p$01 + 4 | 0; + if (($__p$01 | 0) == ($__hi | 0)) { + $__h$0$lcssa = $7; + break; + } else $__h$02 = $7; } - if ($10 << 24 >> 24 == 75) { - HEAP32[$cv >> 2] = $12 | 1; - $$2 = $$1 + 1 | 0; - } else $$2 = $$1; } - return $$2 | 0; + return $__h$0$lcssa | 0; } -function _getPatternDetectionMode($id) { - $id = $id | 0; - var $0 = 0, $4 = 0, $7 = 0, $mode = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $mode = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) { - STACKTOP = sp; - return -1; - } else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $7 = (_arGetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0) == 0; - STACKTOP = sp; - return ($7 ? HEAP32[$mode >> 2] | 0 : -1) | 0; - } - return 0; +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE4swapERS6_($this, $__x) { + $this = $this | 0; + $__x = $__x | 0; + var $0 = 0, $2 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0; + $0 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$__x >> 2]; + HEAP32[$__x >> 2] = $0; + $2 = $this + 4 | 0; + $3 = $__x + 4 | 0; + $4 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $4; + $6 = $this + 8 | 0; + $7 = $__x + 8 | 0; + $8 = HEAP32[$6 >> 2] | 0; + HEAP32[$6 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$7 >> 2] = $8; + return; } -function _strerror($e) { - $e = $e | 0; - var $$lcssa = 0, $9 = 0, $i$03 = 0, $i$03$lcssa = 0, $i$12 = 0, $s$0$lcssa = 0, $s$01 = 0, $s$1 = 0, label = 0; - $i$03 = 0; - while (1) { - if ((HEAPU8[14592 + $i$03 >> 0] | 0) == ($e | 0)) { - $i$03$lcssa = $i$03; - label = 2; - break; - } - $i$03 = $i$03 + 1 | 0; - if (($i$03 | 0) == 87) { - $i$12 = 87; - $s$01 = 14680; - label = 5; - break; - } - } - if ((label | 0) == 2) if (!$i$03$lcssa) $s$0$lcssa = 14680; else { - $i$12 = $i$03$lcssa; - $s$01 = 14680; - label = 5; - } - if ((label | 0) == 5) while (1) { - label = 0; - $s$1 = $s$01; +function __ZNKSt3__17collateIcE7do_hashEPKcS3_($this, $__lo, $__hi) { + $this = $this | 0; + $__lo = $__lo | 0; + $__hi = $__hi | 0; + var $4 = 0, $5 = 0, $8 = 0, $__h$0$lcssa = 0, $__h$02 = 0, $__p$01 = 0; + if (($__lo | 0) == ($__hi | 0)) $__h$0$lcssa = 0; else { + $__h$02 = 0; + $__p$01 = $__lo; while (1) { - $9 = $s$1 + 1 | 0; - if (!(HEAP8[$s$1 >> 0] | 0)) { - $$lcssa = $9; + $4 = (HEAP8[$__p$01 >> 0] | 0) + ($__h$02 << 4) | 0; + $5 = $4 & -268435456; + $8 = ($5 >>> 24 | $5) ^ $4; + $__p$01 = $__p$01 + 1 | 0; + if (($__p$01 | 0) == ($__hi | 0)) { + $__h$0$lcssa = $8; break; - } else $s$1 = $9; - } - $i$12 = $i$12 + -1 | 0; - if (!$i$12) { - $s$0$lcssa = $$lcssa; - break; - } else { - $s$01 = $$lcssa; - label = 5; + } else $__h$02 = $8; } } - return $s$0$lcssa | 0; + return $__h$0$lcssa | 0; } -function __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_($__first, $__last, $__value_, $__comp) { - $__first = $__first | 0; - $__last = $__last | 0; - $__value_ = $__value_ | 0; - $__comp = $__comp | 0; - var $$0$ph = 0, $$0$ph$lcssa = 0, $$lcssa = 0, $4 = 0, $6 = 0, $__len$0 = 0, $__len$0$lcssa7 = 0, $__len$0$ph = 0; - $4 = HEAP32[$__value_ >> 2] | 0; - $$0$ph = $__first; - $__len$0$ph = $__last - $__first >> 2; - L1 : while (1) { - $__len$0 = $__len$0$ph; +function __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; while (1) { - if (!$__len$0) { - $$0$ph$lcssa = $$0$ph; - break L1; - } - $6 = ($__len$0 | 0) / 2 | 0; - if ((HEAP32[$$0$ph + ($6 << 2) >> 2] | 0) >>> 0 < $4 >>> 0) { - $$lcssa = $6; - $__len$0$lcssa7 = $__len$0; + $4 = $5 + -36 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; break; - } else $__len$0 = $6; + } else $5 = $4; } - $$0$ph = $$0$ph + ($$lcssa + 1 << 2) | 0; - $__len$0$ph = $__len$0$lcssa7 + -1 - $$lcssa | 0; + HEAP32[$2 >> 2] = $$lcssa; } - return $$0$ph$lcssa | 0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($agg$result, $__lhs, $__rhs) { +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIiNS_9allocatorIiEEEEEENS_22__unordered_map_hasherIiS6_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS6_NS_8equal_toIiEELb1EEENS3_IS6_EEE12__deallocateEPNS_11__hash_nodeIS6_PvEE($this, $__np) { + $this = $this | 0; + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($$01$looptemp + 12 | 0); + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); + } + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $2 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE12__deallocateEPNS_11__hash_nodeIS2_PvEE($this, HEAP32[$this + 8 >> 2] | 0); + $2 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($2) __ZdlPv($2); + return; +} + +function __ZNSt3__113unordered_mapIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS4_EEEENS_4hashIiEENS_8equal_toIiEENS5_INS_4pairIKiS7_EEEEE25__construct_node_with_keyERSD_($agg$result, $this, $__k) { $agg$result = $agg$result | 0; - $__lhs = $__lhs | 0; - $__rhs = $__rhs | 0; - var $10 = 0, $2 = 0, $3 = 0; - HEAP32[$agg$result >> 2] = 0; - HEAP32[$agg$result + 4 >> 2] = 0; - HEAP32[$agg$result + 8 >> 2] = 0; - $2 = _strlen($__lhs) | 0; - $3 = HEAP8[$__rhs >> 0] | 0; - $10 = ($3 & 1) == 0 ? ($3 & 255) >>> 1 : HEAP32[$__rhs + 4 >> 2] | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $__lhs, $2, $10 + $2 | 0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, (HEAP8[$__rhs >> 0] & 1) == 0 ? $__rhs + 1 | 0 : HEAP32[$__rhs + 8 >> 2] | 0, $10) | 0; + $this = $this | 0; + $__k = $__k | 0; + var $1 = 0, $10 = 0; + $1 = __Znwj(24) | 0; + HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $10 = $agg$result + 4 | 0; + HEAP32[$10 >> 2] = $this + 8; + HEAP32[$10 + 4 >> 2] = 257; return; } -function _frexp($x, $e) { - $x = +$x; - $e = $e | 0; - var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, $7 = 0.0, $storemerge = 0; - HEAPF64[tempDoublePtr >> 3] = $x; - $0 = HEAP32[tempDoublePtr >> 2] | 0; - $1 = HEAP32[tempDoublePtr + 4 >> 2] | 0; - $2 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0; - $4 = $2 & 2047; - switch ($4 | 0) { - case 0: - { - if ($x != 0.0) { - $7 = +_frexp($x * 18446744073709551616.0, $e); - $$01 = $7; - $storemerge = (HEAP32[$e >> 2] | 0) + -64 | 0; - } else { - $$01 = $x; - $storemerge = 0; - } - HEAP32[$e >> 2] = $storemerge; - $$0 = $$01; - break; - } - case 2047: - { - $$0 = $x; - break; - } - default: - { - HEAP32[$e >> 2] = $4 + -1022; - HEAP32[tempDoublePtr >> 2] = $0; - HEAP32[tempDoublePtr + 4 >> 2] = $1 & -2146435073 | 1071644672; - $$0 = +HEAPF64[tempDoublePtr >> 3]; +function __ZNKSt3__15ctypeIwE9do_narrowEPKwS3_cPc($this, $low, $high, $dfault, $dest) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + $dfault = $dfault | 0; + $dest = $dest | 0; + var $$015 = 0, $$06 = 0, $2 = 0, $4 = 0; + $2 = ($high - $low | 0) >>> 2; + if (($low | 0) != ($high | 0)) { + $$015 = $low; + $$06 = $dest; + while (1) { + $4 = HEAP32[$$015 >> 2] | 0; + HEAP8[$$06 >> 0] = $4 >>> 0 < 128 ? $4 & 255 : $dfault; + $$015 = $$015 + 4 | 0; + if (($$015 | 0) == ($high | 0)) break; else $$06 = $$06 + 1 | 0; } } - return +$$0; + return $low + ($2 << 2) | 0; } -function ___fseeko_unlocked($f, $off, $whence) { - $f = $f | 0; - $off = $off | 0; - $whence = $whence | 0; - var $$0 = 0, $$01 = 0, $11 = 0, $9 = 0, label = 0; - if (($whence | 0) == 1) $$01 = $off - (HEAP32[$f + 8 >> 2] | 0) + (HEAP32[$f + 4 >> 2] | 0) | 0; else $$01 = $off; - $9 = $f + 20 | 0; - $11 = $f + 28 | 0; - if ((HEAP32[$9 >> 2] | 0) >>> 0 > (HEAP32[$11 >> 2] | 0) >>> 0) { - FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0; - if (!(HEAP32[$9 >> 2] | 0)) $$0 = -1; else label = 5; - } else label = 5; - if ((label | 0) == 5) { - HEAP32[$f + 16 >> 2] = 0; - HEAP32[$11 >> 2] = 0; - HEAP32[$9 >> 2] = 0; - if ((FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, $$01, $whence) | 0) < 0) $$0 = -1; else { - HEAP32[$f + 8 >> 2] = 0; - HEAP32[$f + 4 >> 2] = 0; - HEAP32[$f >> 2] = HEAP32[$f >> 2] & -17; - $$0 = 0; +function __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEEC2EjjSA_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap * 12 | 0) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start * 12 | 0) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap * 12 | 0); + return; +} + +function __ZNSt3__114__split_bufferIN6vision25DoGScaleInvariantDetector12FeaturePointERNS_9allocatorIS3_EEEC2EjjS6_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap * 36 | 0) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start * 36 | 0) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap * 36 | 0); + return; +} + +function __ZNSt3__114__split_bufferIN6vision17PriorityQueueItemILi96EEERNS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - return $$0 | 0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($agg$result, $__lhs, $__rhs) { - $agg$result = $agg$result | 0; - $__lhs = $__lhs | 0; - $__rhs = $__rhs | 0; - var $10 = 0, $2 = 0, $4 = 0, $9 = 0; - HEAP32[$agg$result >> 2] = 0; - HEAP32[$agg$result + 4 >> 2] = 0; - HEAP32[$agg$result + 8 >> 2] = 0; - $2 = HEAP8[$__lhs >> 0] | 0; - $4 = ($2 & 1) == 0; - $9 = $4 ? ($2 & 255) >>> 1 : HEAP32[$__lhs + 4 >> 2] | 0; - $10 = _strlen($__rhs) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $4 ? $__lhs + 1 | 0 : HEAP32[$__lhs + 8 >> 2] | 0, $9, $9 + $10 | 0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, $__rhs, $10) | 0; +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0$i$i = 0, $1 = 0; + if ($__n >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); + $1 = $this + 128 | 0; + if ($__n >>> 0 < 29 & (HEAP8[$1 >> 0] | 0) == 0) { + HEAP8[$1 >> 0] = 1; + $$0$i$i = $this + 16 | 0; + } else $$0$i$i = __Znwj($__n << 2) | 0; + HEAP32[$this + 4 >> 2] = $$0$i$i; + HEAP32[$this >> 2] = $$0$i$i; + HEAP32[$this + 8 >> 2] = $$0$i$i + ($__n << 2); return; } -function _icpGetU_from_X_by_MatX2U($u, $matX2U, $coord3d) { - $u = $u | 0; - $matX2U = $matX2U | 0; - $coord3d = $coord3d | 0; - var $$0 = 0, $0 = 0.0, $18 = 0.0, $2 = 0.0, $33 = 0.0, $4 = 0.0; - $0 = +HEAPF64[$coord3d >> 3]; - $2 = +HEAPF64[$coord3d + 8 >> 3]; - $4 = +HEAPF64[$coord3d + 16 >> 3]; - $18 = +HEAPF64[$matX2U + 88 >> 3] + ($0 * +HEAPF64[$matX2U + 64 >> 3] + $2 * +HEAPF64[$matX2U + 72 >> 3] + $4 * +HEAPF64[$matX2U + 80 >> 3]); - if ($18 == 0.0) $$0 = -1; else { - $33 = +HEAPF64[$matX2U + 56 >> 3] + ($0 * +HEAPF64[$matX2U + 32 >> 3] + $2 * +HEAPF64[$matX2U + 40 >> 3] + $4 * +HEAPF64[$matX2U + 48 >> 3]); - HEAPF64[$u >> 3] = (+HEAPF64[$matX2U + 24 >> 3] + ($0 * +HEAPF64[$matX2U >> 3] + $2 * +HEAPF64[$matX2U + 8 >> 3] + $4 * +HEAPF64[$matX2U + 16 >> 3])) / $18; - HEAPF64[$u + 8 >> 3] = $33 / $18; - $$0 = 0; +function __ZNKSt3__15ctypeIwE10do_toupperEPwPKw($this, $low, $high) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + var $$04 = 0, $2 = 0, $4 = 0, $5 = 0, $9 = 0; + $2 = ($high - $low | 0) >>> 2; + if (($low | 0) != ($high | 0)) { + $$04 = $low; + do { + $4 = HEAP32[$$04 >> 2] | 0; + if ($4 >>> 0 < 128) { + $5 = ___ctype_toupper_loc() | 0; + $9 = HEAP32[(HEAP32[$5 >> 2] | 0) + ($4 << 2) >> 2] | 0; + } else $9 = $4; + HEAP32[$$04 >> 2] = $9; + $$04 = $$04 + 4 | 0; + } while (($$04 | 0) != ($high | 0)); } - return $$0 | 0; + return $low + ($2 << 2) | 0; } -function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($this, $__x, $__a) { +function __ZNKSt3__15ctypeIwE10do_tolowerEPwPKw($this, $low, $high) { $this = $this | 0; - $__x = $__x | 0; - $__a = $__a | 0; - var $0 = 0, $2 = 0, $5 = 0; - HEAP32[$this >> 2] = 0; - $0 = $this + 4 | 0; - HEAP32[$0 >> 2] = 0; - $2 = HEAP32[$__a >> 2] | 0; - HEAP32[$this + 8 >> 2] = 0; - HEAP32[$this + 12 >> 2] = $2; - $5 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($2, 24) | 0; - HEAP32[$0 >> 2] = $5; - HEAP32[$this >> 2] = $5; - HEAP32[$this + 8 >> 2] = $5 + 24; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5, $__x); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5 + 12 | 0, $__x + 12 | 0); - HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 24; + $low = $low | 0; + $high = $high | 0; + var $$04 = 0, $2 = 0, $4 = 0, $5 = 0, $9 = 0; + $2 = ($high - $low | 0) >>> 2; + if (($low | 0) != ($high | 0)) { + $$04 = $low; + do { + $4 = HEAP32[$$04 >> 2] | 0; + if ($4 >>> 0 < 128) { + $5 = ___ctype_tolower_loc() | 0; + $9 = HEAP32[(HEAP32[$5 >> 2] | 0) + ($4 << 2) >> 2] | 0; + } else $9 = $4; + HEAP32[$$04 >> 2] = $9; + $$04 = $$04 + 4 | 0; + } while (($$04 | 0) != ($high | 0)); + } + return $low + ($2 << 2) | 0; +} + +function __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEED2Ev($this) { + $this = $this | 0; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($1 | 0)) { + $6 = $3; + do { + $5 = $6 + -12 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__113__vector_baseINS_4pairIfjEENS_9allocatorIS2_EEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($1 | 0)); + } + $9 = HEAP32[$this >> 2] | 0; + if ($9) __ZdlPv($9); return; } -function _getMatrixCodeType($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $4 = 0, $matrixType = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $matrixType = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - _arGetMatrixCodeType(HEAP32[$4 >> 2] | 0, $matrixType) | 0; - $$0 = HEAP32[$matrixType >> 2] | 0; +function __ZNSt3__113__vector_baseINS_10shared_ptrIN6vision18FrontendSinkFilterEEENS_9allocatorIS4_EEED2Ev($this) { + $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) != ($0 | 0)) { + $6 = $3; + do { + $5 = $6 + -8 | 0; + HEAP32[$2 >> 2] = $5; + __ZNSt3__110shared_ptrIN6vision18FrontendSinkFilterEED2Ev($5); + $6 = HEAP32[$2 >> 2] | 0; + } while (($6 | 0) != ($0 | 0)); + } + __ZdlPv(HEAP32[$this >> 2] | 0); + } + return; +} + +function _arImageProcLumaHistAndCDF($ipi, $dataPtr) { + $ipi = $ipi | 0; + $dataPtr = $dataPtr | 0; + var $$0 = 0, $0 = 0, $cdfCurrent$0 = 0, $indvars$iv = 0; + $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; + if (($0 | 0) < 0) $$0 = $0; else { + $cdfCurrent$0 = 0; + $indvars$iv = 0; + do { + $cdfCurrent$0 = (HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0) + $cdfCurrent$0 | 0; + HEAP32[$ipi + 1040 + ($indvars$iv << 2) >> 2] = $cdfCurrent$0; + $indvars$iv = $indvars$iv + 1 | 0; + } while (($indvars$iv | 0) != 256); + $$0 = 0; } - STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) { - $first = $first | 0; - $last = $last | 0; - var $$0 = 0, $$1 = 0, $$first = 0, $5 = 0, $t$0$pn = 0; - L1 : do if (($first | 0) == ($last | 0)) $$1 = $first; else { - $$first = (HEAP8[$first >> 0] | 0) == 110 ? $first + 1 | 0 : $first; - if (($$first | 0) == ($last | 0)) $$1 = $first; else { - $5 = HEAP8[$$first >> 0] | 0; - if ($5 << 24 >> 24 == 48) { - $$1 = $$first + 1 | 0; - break; - } - if (($5 + -49 & 255) < 9) { - $t$0$pn = $$first; - while (1) { - $$0 = $t$0$pn + 1 | 0; - if (($$0 | 0) == ($last | 0)) { - $$1 = $last; - break L1; - } - if (((HEAP8[$$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $t$0$pn = $$0; else { - $$1 = $$0; - break; - } - } - } else $$1 = $first; +function __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -20 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } - } while (0); - return $$1 | 0; + HEAP32[$2 >> 2] = $$lcssa; + } + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($this) { +function __ZNSt3__114__split_bufferIPKN6vision4NodeILi96EEERNS_9allocatorIS5_EEED2Ev($this) { $this = $this | 0; - var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; $1 = HEAP32[$this + 4 >> 2] | 0; $2 = $this + 8 | 0; - $3 = HEAP32[$2 >> 2] | 0; - if (($3 | 0) != ($1 | 0)) { - $6 = $3; - do { - $5 = $6 + -16 | 0; - HEAP32[$2 >> 2] = $5; - __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5); - $6 = HEAP32[$2 >> 2] | 0; - } while (($6 | 0) != ($1 | 0)); + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - $9 = HEAP32[$this >> 2] | 0; - if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); return; } -function __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this) { +function __ZNSt3__113__vector_baseINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEED2Ev($this) { $this = $this | 0; - var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0; $0 = HEAP32[$this >> 2] | 0; if ($0) { $2 = $this + 4 | 0; @@ -70553,1323 +120282,1454 @@ function __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111 if (($3 | 0) != ($0 | 0)) { $6 = $3; do { - $5 = $6 + -16 | 0; + $5 = $6 + -12 | 0; HEAP32[$2 >> 2] = $5; - __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5); + __ZNSt3__113__vector_baseINS_4pairIfjEENS_9allocatorIS2_EEED2Ev($5); $6 = HEAP32[$2 >> 2] | 0; } while (($6 | 0) != ($0 | 0)); } - $9 = HEAP32[$this >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); + __ZdlPv(HEAP32[$this >> 2] | 0); } return; } -function _getDebugMode($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $4 = 0, $enable = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp + 4 | 0; - $enable = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - _arGetDebugMode(HEAP32[$4 >> 2] | 0, $enable) | 0; - $$0 = HEAP32[$enable >> 2] | 0; +function __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - STACKTOP = sp; - return $$0 | 0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function _realloc($oldmem, $bytes) { - $oldmem = $oldmem | 0; - $bytes = $bytes | 0; - var $12 = 0, $15 = 0, $20 = 0, $3 = 0, $9 = 0, $mem$0 = 0; - if (!$oldmem) { - $mem$0 = _malloc($bytes) | 0; - return $mem$0 | 0; - } - if ($bytes >>> 0 > 4294967231) { - $3 = ___errno_location() | 0; - HEAP32[$3 >> 2] = 12; - $mem$0 = 0; - return $mem$0 | 0; - } - $9 = _try_realloc_chunk($oldmem + -8 | 0, $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8) | 0; - if ($9) { - $mem$0 = $9 + 8 | 0; - return $mem$0 | 0; +function __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEEC2EjjS8_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap * 12 | 0) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start * 12 | 0) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap * 12 | 0); + return; +} + +function __ZNSt3__114__split_bufferIN6vision7Point3dIfEERNS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -12 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - $12 = _malloc($bytes) | 0; - if (!$12) { - $mem$0 = 0; - return $mem$0 | 0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; +} + +function __ZNSt3__113unordered_mapIiNS_6vectorIiNS_9allocatorIiEEEENS_4hashIiEENS_8equal_toIiEENS2_INS_4pairIKiS4_EEEEE25__construct_node_with_keyERSA_($agg$result, $this, $__k) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__k = $__k | 0; + var $1 = 0, $10 = 0; + $1 = __Znwj(24) | 0; + HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $10 = $agg$result + 4 | 0; + HEAP32[$10 >> 2] = $this + 8; + HEAP32[$10 + 4 >> 2] = 257; + return; +} + +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($this, $s) { + $this = $this | 0; + $s = $s | 0; + var $0 = 0, $1 = 0, $3 = 0; + HEAP8[$this >> 0] = 8; + $0 = $this + 1 | 0; + $1 = HEAPU8[$s >> 0] | HEAPU8[$s + 1 >> 0] << 8 | HEAPU8[$s + 2 >> 0] << 16 | HEAPU8[$s + 3 >> 0] << 24; + HEAP8[$0 >> 0] = $1; + HEAP8[$0 + 1 >> 0] = $1 >> 8; + HEAP8[$0 + 2 >> 0] = $1 >> 16; + HEAP8[$0 + 3 >> 0] = $1 >> 24; + HEAP8[$this + 5 >> 0] = 0; + $3 = $this + 12 | 0; + HEAP32[$3 >> 2] = 0; + HEAP32[$3 + 4 >> 2] = 0; + HEAP32[$3 + 8 >> 2] = 0; + return; +} + +function __ZNSt3__113__vector_baseIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -36 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } - $15 = HEAP32[$oldmem + -4 >> 2] | 0; - $20 = ($15 & -8) - (($15 & 3 | 0) == 0 ? 8 : 4) | 0; - _memcpy($12 | 0, $oldmem | 0, ($20 >>> 0 < $bytes >>> 0 ? $20 : $bytes) | 0) | 0; - _free($oldmem); - $mem$0 = $12; - return $mem$0 | 0; + return; } -function _arSetDebugMode($handle, $mode) { - $handle = $handle | 0; - $mode = $mode | 0; - var $$0 = 0, $11 = 0, $4 = 0, $vararg_buffer = 0, sp = 0; +function __ZN6vision18BinaryFeatureStore6resizeEj($this, $numFeatures) { + $this = $this | 0; + $numFeatures = $numFeatures | 0; + var $0 = 0, $3 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - do if (!$handle) $$0 = -1; else if ((HEAP32[$handle >> 2] | 0) == ($mode | 0)) $$0 = 0; else { - HEAP32[$handle >> 2] = $mode; - if (!$mode) { - $4 = $handle + 4834148 | 0; - _free(HEAP32[$4 >> 2] | 0); - HEAP32[$4 >> 2] = 0; - $$0 = 0; - break; - } - $11 = _malloc(Math_imul(HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 36 >> 2] | 0) | 0) | 0; - HEAP32[$handle + 4834148 >> 2] = $11; - if (!$11) { - _arLog(3, 5471, $vararg_buffer); - _exit(1); - } else $$0 = 0; - } while (0); + $0 = sp; + $3 = Math_imul(HEAP32[$this >> 2] | 0, $numFeatures) | 0; + HEAP8[$0 >> 0] = 0; + __ZNSt3__16vectorIhNS_9allocatorIhEEE6resizeEjRKh($this + 4 | 0, $3, $0); + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE6resizeEj($this + 16 | 0, $numFeatures); STACKTOP = sp; - return $$0 | 0; + return; } -function _vasprintf($s, $fmt, $ap) { +function _vsscanf($s, $fmt, $ap) { $s = $s | 0; $fmt = $fmt | 0; $ap = $ap | 0; - var $$0 = 0, $0 = 0, $10 = 0, $2 = 0, $5 = 0, $9 = 0, $ap2 = 0, sp = 0; + var $4 = 0, $f = 0, dest = 0, sp = 0, stop = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; + STACKTOP = STACKTOP + 112 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $ap2 = sp; - $0 = _malloc(240) | 0; - do if (!$0) $$0 = -1; else { - HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2]; - $2 = _vsnprintf($0, 240, $fmt, $ap2) | 0; - if ($2 >>> 0 < 240) { - $5 = _realloc($0, $2 + 1 | 0) | 0; - HEAP32[$s >> 2] = ($5 | 0) != 0 ? $5 : $0; - $$0 = $2; + $f = sp; + dest = $f; + stop = dest + 112 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP32[$f + 32 >> 2] = 37; + HEAP32[$f + 44 >> 2] = $s; + HEAP32[$f + 76 >> 2] = -1; + HEAP32[$f + 84 >> 2] = $s; + $4 = _vfscanf($f, $fmt, $ap) | 0; + STACKTOP = sp; + return $4 | 0; +} + +function _start_iMCU_row27($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $13 = 0; + $1 = HEAP32[$cinfo + 428 >> 2] | 0; + do if ((HEAP32[$cinfo + 328 >> 2] | 0) > 1) HEAP32[$1 + 28 >> 2] = 1; else { + $13 = HEAP32[$cinfo + 332 >> 2] | 0; + if ((HEAP32[$cinfo + 148 >> 2] | 0) >>> 0 < ((HEAP32[$cinfo + 320 >> 2] | 0) + -1 | 0) >>> 0) { + HEAP32[$1 + 28 >> 2] = HEAP32[$13 + 12 >> 2]; + break; + } else { + HEAP32[$1 + 28 >> 2] = HEAP32[$13 + 72 >> 2]; break; - } - _free($0); - if (($2 | 0) < 0) $$0 = -1; else { - $9 = $2 + 1 | 0; - $10 = _malloc($9) | 0; - HEAP32[$s >> 2] = $10; - if (!$10) $$0 = -1; else $$0 = _vsnprintf($10, $9, $fmt, $ap) | 0; } } while (0); - STACKTOP = sp; - return $$0 | 0; + HEAP32[$1 + 20 >> 2] = 0; + HEAP32[$1 + 24 >> 2] = 0; + return; } -function _icpCreateHandle($matXc2U) { - $matXc2U = $matXc2U | 0; - var $$0 = 0, $0 = 0, $j$04 = 0; - $0 = _malloc(136) | 0; - if (!$0) $$0 = 0; else { - $j$04 = 0; +function __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; +} + +function __ZNSt3__16vectorIN6vision25DoGScaleInvariantDetector12FeaturePointENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $1 = 0, dest = 0, stop = 0; + $0 = $this + 4 | 0; + $$0 = $__n; + $1 = HEAP32[$0 >> 2] | 0; + do { + dest = $1; + stop = dest + 36 | 0; do { - HEAPF64[$0 + ($j$04 << 5) >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) >> 3]; - HEAPF64[$0 + ($j$04 << 5) + 8 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 8 >> 3]; - HEAPF64[$0 + ($j$04 << 5) + 16 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 16 >> 3]; - HEAPF64[$0 + ($j$04 << 5) + 24 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 24 >> 3]; - $j$04 = $j$04 + 1 | 0; - } while (($j$04 | 0) != 3); - HEAP32[$0 + 96 >> 2] = 10; - HEAPF64[$0 + 104 >> 3] = .10000000149011612; - HEAPF64[$0 + 112 >> 3] = .9900000095367432; - HEAPF64[$0 + 120 >> 3] = 4.0; - HEAPF64[$0 + 128 >> 3] = .5; - $$0 = $0; + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + $1 = (HEAP32[$0 >> 2] | 0) + 36 | 0; + HEAP32[$0 >> 2] = $1; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, $__np) { + $this = $this | 0; + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZN12arControllerD2Ev($$01$looptemp + 16 | 0); + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); } - return $$0 | 0; + return; } -function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($this) { +function __ZN6vision16RobustHomographyIfEC2Efiii($this, $cauchyScale, $maxNumHypotheses, $maxTrials, $chunkSize) { $this = $this | 0; - var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + $cauchyScale = +$cauchyScale; + $maxNumHypotheses = $maxNumHypotheses | 0; + $maxTrials = $maxTrials | 0; + $chunkSize = $chunkSize | 0; + var dest = 0, stop = 0; + dest = $this; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + __ZN6vision16RobustHomographyIfE4initEfiii($this, $cauchyScale, $maxNumHypotheses, $maxTrials, $chunkSize); + return; +} + +function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; $1 = HEAP32[$this + 4 >> 2] | 0; $2 = $this + 8 | 0; - $3 = HEAP32[$2 >> 2] | 0; - if (($3 | 0) != ($1 | 0)) { - $6 = $3; - do { - $5 = $6 + -16 | 0; - HEAP32[$2 >> 2] = $5; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5); - $6 = HEAP32[$2 >> 2] | 0; - } while (($6 | 0) != ($1 | 0)); + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - $9 = HEAP32[$this >> 2] | 0; - if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); return; } -function __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this) { +function __ZNSt3__114__split_bufferINS_4pairIfjEERNS_9allocatorIS2_EEED2Ev($this) { $this = $this | 0; - var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; - $0 = HEAP32[$this >> 2] | 0; - if ($0) { - $2 = $this + 4 | 0; - $3 = HEAP32[$2 >> 2] | 0; - if (($3 | 0) != ($0 | 0)) { - $6 = $3; - do { - $5 = $6 + -16 | 0; - HEAP32[$2 >> 2] = $5; - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5); - $6 = HEAP32[$2 >> 2] | 0; - } while (($6 | 0) != ($0 | 0)); + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } - $9 = HEAP32[$this >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); + HEAP32[$2 >> 2] = $$lcssa; } + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); return; } -function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { +function __ZNSt3__114__split_bufferINS_4pairIfiEERNS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($this, $__str) { + $this = $this | 0; + $__str = $__str | 0; + if (!(HEAP8[$__str >> 0] & 1)) { + HEAP32[$this >> 2] = HEAP32[$__str >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$__str + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$__str + 8 >> 2]; + } else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, HEAP32[$__str + 8 >> 2] | 0, HEAP32[$__str + 4 >> 2] | 0); + return; +} + +function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { $this = $this | 0; $info = $info | 0; $dst_ptr = $dst_ptr | 0; $current_ptr = $current_ptr | 0; $path_below = $path_below | 0; $use_strcmp = $use_strcmp | 0; - var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; - $1 = HEAP32[$this + 4 >> 2] | 0; - $2 = $1 >> 8; - if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0; - $8 = HEAP32[$this >> 2] | 0; - FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 20 >> 2] & 3]($8, $info, $dst_ptr, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp); + if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); return; } -function _setProjectionNearPlane($id, $projectionNearPlane) { - $id = $id | 0; - $projectionNearPlane = +$projectionNearPlane; - var $0 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 232 | 0; - HEAPF64[$4 >> 3] = $projectionNearPlane; - } - STACKTOP = sp; +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($this, $s) { + $this = $this | 0; + $s = $s | 0; + var $0 = 0, $2 = 0; + HEAP8[$this >> 0] = 10; + $0 = $this + 1 | 0; + HEAP8[$0 >> 0] = HEAP8[$s >> 0] | 0; + HEAP8[$0 + 1 >> 0] = HEAP8[$s + 1 >> 0] | 0; + HEAP8[$0 + 2 >> 0] = HEAP8[$s + 2 >> 0] | 0; + HEAP8[$0 + 3 >> 0] = HEAP8[$s + 3 >> 0] | 0; + HEAP8[$0 + 4 >> 0] = HEAP8[$s + 4 >> 0] | 0; + HEAP8[$this + 6 >> 0] = 0; + $2 = $this + 12 | 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; return; } -function _detectMarker($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else { - $4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $$0 = _arDetectMarker(HEAP32[$4 + 212 >> 2] | 0, HEAP32[$4 + 196 >> 2] | 0) | 0; +function __ZN6vision9MaxIndex6IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0, $index$2 = 0, $index$3 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + $index$2 = +HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1; + $index$3 = +HEAPF32[$x + 16 >> 2] > +HEAPF32[$x + ($index$2 << 2) >> 2] ? 4 : $index$2; + return (+HEAPF32[$x + 20 >> 2] > +HEAPF32[$x + ($index$3 << 2) >> 2] ? 5 : $index$3) | 0; +} + +function __ZN6vision18VisualDatabaseImplD2Ev($this) { + $this = $this | 0; + var $1 = 0; + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS5_EEEEEENS_22__unordered_map_hasherIiS9_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS9_NS_8equal_toIiEELb1EEENS6_IS9_EEED2Ev($this + 4 | 0); + $1 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = 0; + if ($1) { + __ZN6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEED2Ev($1); + __ZdlPv($1); } - STACKTOP = sp; - return $$0 | 0; + return; +} + +function __ZNSt3__113unordered_mapIiNS_10shared_ptrIN6vision8KeyframeILi96EEEEENS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS5_EEEEE25__construct_node_with_keyERSC_($agg$result, $this, $__k) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__k = $__k | 0; + var $1 = 0, $9 = 0; + $1 = __Znwj(20) | 0; + HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $9 = $agg$result + 4 | 0; + HEAP32[$9 >> 2] = $this + 8; + HEAP32[$9 + 4 >> 2] = 257; + return; +} + +function _fwrite($src, $size, $nmemb, $f) { + $src = $src | 0; + $size = $size | 0; + $nmemb = $nmemb | 0; + $f = $f | 0; + var $0 = 0, $10 = 0, $6 = 0, $8 = 0, $phitmp = 0; + $0 = Math_imul($nmemb, $size) | 0; + if ((HEAP32[$f + 76 >> 2] | 0) > -1) { + $phitmp = (___lockfile($f) | 0) == 0; + $6 = ___fwritex($src, $0, $f) | 0; + if ($phitmp) $8 = $6; else { + ___unlockfile($f); + $8 = $6; + } + } else $8 = ___fwritex($src, $0, $f) | 0; + if (($8 | 0) == ($0 | 0)) $10 = $nmemb; else $10 = ($8 >>> 0) / ($size >>> 0) | 0; + return $10 | 0; +} + +function __ZNSt3__114__split_bufferIN6vision17PriorityQueueItemILi96EEERNS_9allocatorIS3_EEEC2EjjS6_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 3) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); + return; +} + +function __ZNSt3__114__split_bufferIN6vision12FeaturePointERNS_9allocatorIS2_EEEC2EjjS5_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap * 20 | 0) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start * 20 | 0) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap * 20 | 0); + return; } -function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { - $this = $this | 0; - $info = $info | 0; - $adjustedPtr = $adjustedPtr | 0; - $path_below = $path_below | 0; - var $0 = 0, $1 = 0, $6 = 0, $9 = 0; - $0 = $info + 16 | 0; - $1 = HEAP32[$0 >> 2] | 0; - do if (!$1) { - HEAP32[$0 >> 2] = $adjustedPtr; - HEAP32[$info + 24 >> 2] = $path_below; - HEAP32[$info + 36 >> 2] = 1; - } else { - if (($1 | 0) != ($adjustedPtr | 0)) { - $9 = $info + 36 | 0; - HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 1; - HEAP32[$info + 24 >> 2] = 2; - HEAP8[$info + 54 >> 0] = 1; - break; +function __Znwj($size) { + $size = $size | 0; + var $$lcssa = 0, $$size = 0, $1 = 0, $3 = 0, $5 = 0, $7 = 0; + $$size = ($size | 0) == 0 ? 1 : $size; + $1 = _malloc($$size) | 0; + L1 : do if (!$1) { + while (1) { + $3 = __ZSt15get_new_handlerv() | 0; + if (!$3) break; + FUNCTION_TABLE_v[$3 & 3](); + $5 = _malloc($$size) | 0; + if ($5) { + $$lcssa = $5; + break L1; + } } - $6 = $info + 24 | 0; - if ((HEAP32[$6 >> 2] | 0) == 2) HEAP32[$6 >> 2] = $path_below; - } while (0); - return; + $7 = ___cxa_allocate_exception(4) | 0; + HEAP32[$7 >> 2] = 6004; + ___cxa_throw($7 | 0, 704, 17); + } else $$lcssa = $1; while (0); + return $$lcssa | 0; } -function _setProjectionFarPlane($id, $projectionFarPlane) { - $id = $id | 0; - $projectionFarPlane = +$projectionFarPlane; - var $0 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 240 | 0; - HEAPF64[$4 >> 3] = $projectionFarPlane; +function __ZNSt3__114__split_bufferINS_6vectorINS1_INS_4pairIfjEENS_9allocatorIS3_EEEENS4_IS6_EEEERNS4_IS8_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 8 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 12 | 0; } - STACKTOP = sp; + HEAP32[$0 >> 2] = $$promoted + ($__n * 12 | 0); return; } -function _arParamObserv2IdealLTf($paramLTf, $ox, $oy, $ix, $iy) { - $paramLTf = $paramLTf | 0; - $ox = +$ox; - $oy = +$oy; - $ix = $ix | 0; - $iy = $iy | 0; - var $$0 = 0, $12 = 0, $19 = 0, $22 = 0, $4 = 0, $9 = 0; - $4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ox + .5) | 0; - $9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($oy + .5) | 0; - if (($4 | 0) < 0) $$0 = -1; else { - $12 = HEAP32[$paramLTf + 8 >> 2] | 0; - if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) { - $19 = HEAP32[$paramLTf + 4 >> 2] | 0; - $22 = (Math_imul($12, $9) | 0) + $4 << 1; - HEAP32[$ix >> 2] = HEAP32[$19 + ($22 << 2) >> 2]; - HEAP32[$iy >> 2] = HEAP32[$19 + (($22 | 1) << 2) >> 2]; - $$0 = 0; - } else $$0 = -1; - } - return $$0 | 0; +function ___string_read($f, $buf, $len) { + $f = $f | 0; + $buf = $buf | 0; + $len = $len | 0; + var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $3 = 0, $k$0 = 0, $k$0$len = 0; + $0 = $f + 84 | 0; + $1 = HEAP32[$0 >> 2] | 0; + $2 = $len + 256 | 0; + $3 = _memchr($1, 0, $2) | 0; + $k$0 = ($3 | 0) == 0 ? $2 : $3 - $1 | 0; + $k$0$len = $k$0 >>> 0 < $len >>> 0 ? $k$0 : $len; + _memcpy($buf | 0, $1 | 0, $k$0$len | 0) | 0; + HEAP32[$f + 4 >> 2] = $1 + $k$0$len; + $11 = $1 + $k$0 | 0; + HEAP32[$f + 8 >> 2] = $11; + HEAP32[$0 >> 2] = $11; + return $k$0$len | 0; } -function _arParamIdeal2ObservLTf($paramLTf, $ix, $iy, $ox, $oy) { - $paramLTf = $paramLTf | 0; - $ix = +$ix; - $iy = +$iy; - $ox = $ox | 0; - $oy = $oy | 0; - var $$0 = 0, $12 = 0, $18 = 0, $21 = 0, $4 = 0, $9 = 0; - $4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ix + .5) | 0; - $9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($iy + .5) | 0; - if (($4 | 0) < 0) $$0 = -1; else { - $12 = HEAP32[$paramLTf + 8 >> 2] | 0; - if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) { - $18 = HEAP32[$paramLTf >> 2] | 0; - $21 = (Math_imul($12, $9) | 0) + $4 << 1; - HEAP32[$ox >> 2] = HEAP32[$18 + ($21 << 2) >> 2]; - HEAP32[$oy >> 2] = HEAP32[$18 + (($21 | 1) << 2) >> 2]; - $$0 = 0; - } else $$0 = -1; - } - return $$0 | 0; +function __ZN6vision22SampleReceptorBilinearERKNS_5ImageEff($image, $x, $y) { + $image = $image | 0; + $x = +$x; + $y = +$y; + var $$0$i = 0.0, $$0$i1 = 0.0, $3 = 0.0, $9 = 0.0; + $3 = +(((HEAP32[$image + 4 >> 2] | 0) + -2 | 0) >>> 0); + if ($x < 0.0) $$0$i = 0.0; else if ($3 < $x) $$0$i = $3; else $$0$i = $x; + $9 = +(((HEAP32[$image + 8 >> 2] | 0) + -2 | 0) >>> 0); + if ($y < 0.0) $$0$i1 = 0.0; else if ($9 < $y) $$0$i1 = $9; else $$0$i1 = $y; + return +(+__ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($image, $$0$i, $$0$i1)); } -function _arUtilMatMul($s1, $s2, $d) { - $s1 = $s1 | 0; - $s2 = $s2 | 0; - $d = $d | 0; - var $0 = 0, $1 = 0, $2 = 0, $21 = 0, $i$02 = 0, $j$03 = 0; - $j$03 = 0; - do { - $0 = $s1 + ($j$03 << 5) | 0; - $1 = $s1 + ($j$03 << 5) + 8 | 0; - $2 = $s1 + ($j$03 << 5) + 16 | 0; - $i$02 = 0; - do { - HEAPF64[$d + ($j$03 << 5) + ($i$02 << 3) >> 3] = +HEAPF64[$0 >> 3] * +HEAPF64[$s2 + ($i$02 << 3) >> 3] + +HEAPF64[$1 >> 3] * +HEAPF64[$s2 + 32 + ($i$02 << 3) >> 3] + +HEAPF64[$2 >> 3] * +HEAPF64[$s2 + 64 + ($i$02 << 3) >> 3]; - $i$02 = $i$02 + 1 | 0; - } while (($i$02 | 0) != 4); - $21 = $d + ($j$03 << 5) + 24 | 0; - HEAPF64[$21 >> 3] = +HEAPF64[$s1 + ($j$03 << 5) + 24 >> 3] + +HEAPF64[$21 >> 3]; - $j$03 = $j$03 + 1 | 0; - } while (($j$03 | 0) != 3); - return 0; +function __ZNSt3__114__split_bufferIN6vision7Point3dIfEERNS_9allocatorIS3_EEEC2EjjS6_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap * 12 | 0) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start * 12 | 0) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap * 12 | 0); + return; } -function _getMultiMarkerCount($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $3 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else { - $3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0; - $$0 = (HEAP32[$3 + 252 >> 2] | 0) - (HEAP32[$3 + 248 >> 2] | 0) >> 3; - } - STACKTOP = sp; - return $$0 | 0; +function __ZN6vision11DotProduct9IfEET_PKS1_S3_($a, $b) { + $a = $a | 0; + $b = $b | 0; + return +(+HEAPF32[$a >> 2] * +HEAPF32[$b >> 2] + +HEAPF32[$a + 4 >> 2] * +HEAPF32[$b + 4 >> 2] + +HEAPF32[$a + 8 >> 2] * +HEAPF32[$b + 8 >> 2] + +HEAPF32[$a + 12 >> 2] * +HEAPF32[$b + 12 >> 2] + +HEAPF32[$a + 16 >> 2] * +HEAPF32[$b + 16 >> 2] + +HEAPF32[$a + 20 >> 2] * +HEAPF32[$b + 20 >> 2] + +HEAPF32[$a + 24 >> 2] * +HEAPF32[$b + 24 >> 2] + +HEAPF32[$a + 28 >> 2] * +HEAPF32[$b + 28 >> 2] + +HEAPF32[$a + 32 >> 2] * +HEAPF32[$b + 32 >> 2]); } -function _getMarkerNum($id) { - $id = $id | 0; - var $$0$in = 0, $0 = 0, $4 = 0, sp = 0; +function __ZNSt3__112__snprintf_lEPcjP15__locale_structPKcz($__s, $__n, $__l, $__format, $varargs) { + $__s = $__s | 0; + $__n = $__n | 0; + $__l = $__l | 0; + $__format = $__format | 0; + $varargs = $varargs | 0; + var $0 = 0, $1 = 0, $__va = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0$in = 2088; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $$0$in = (HEAP32[$4 >> 2] | 0) + 44 | 0; - } + $__va = sp; + HEAP32[$__va >> 2] = $varargs; + $0 = _uselocale($__l) | 0; + $1 = _vsnprintf($__s, $__n, $__format, $__va) | 0; + if ($0) _uselocale($0) | 0; STACKTOP = sp; - return HEAP32[$$0$in >> 2] | 0; + return $1 | 0; } -function _getProcessingImage($id) { - $id = $id | 0; - var $$0 = 0, $0 = 0, $4 = 0, sp = 0; +function __ZNK6vision20VisualDatabaseFacade21getQueryFeaturePointsEv($this) { + $this = $this | 0; + var $0 = 0, $4 = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - $$0 = HEAP32[(HEAP32[$4 >> 2] | 0) + 4834148 >> 2] | 0; - } + __ZNK6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE13queryKeyframeEv($0, HEAP32[HEAP32[$this >> 2] >> 2] | 0); + $4 = (HEAP32[$0 >> 2] | 0) + 24 | 0; + __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($0); STACKTOP = sp; - return $$0 | 0; + return $4 | 0; } -function ___fflush_unlocked($f) { - $f = $f | 0; - var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $9 = 0, label = 0; - $0 = $f + 20 | 0; - $2 = $f + 28 | 0; - if ((HEAP32[$0 >> 2] | 0) >>> 0 > (HEAP32[$2 >> 2] | 0) >>> 0) { - FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0; - if (!(HEAP32[$0 >> 2] | 0)) $$0 = -1; else label = 3; - } else label = 3; - if ((label | 0) == 3) { - $9 = $f + 4 | 0; - $10 = HEAP32[$9 >> 2] | 0; - $11 = $f + 8 | 0; - $12 = HEAP32[$11 >> 2] | 0; - if ($10 >>> 0 < $12 >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, $10 - $12 | 0, 1) | 0; - HEAP32[$f + 16 >> 2] = 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$0 >> 2] = 0; - HEAP32[$11 >> 2] = 0; - HEAP32[$9 >> 2] = 0; - $$0 = 0; +function _calloc($n_elements, $elem_size) { + $n_elements = $n_elements | 0; + $elem_size = $elem_size | 0; + var $1 = 0, $6 = 0, $req$0 = 0; + if (!$n_elements) $req$0 = 0; else { + $1 = Math_imul($elem_size, $n_elements) | 0; + if (($elem_size | $n_elements) >>> 0 > 65535) $req$0 = (($1 >>> 0) / ($n_elements >>> 0) | 0 | 0) == ($elem_size | 0) ? $1 : -1; else $req$0 = $1; } - return $$0 | 0; + $6 = _malloc($req$0) | 0; + if (!$6) return $6 | 0; + if (!(HEAP32[$6 + -4 >> 2] & 3)) return $6 | 0; + _memset($6 | 0, 0, $req$0 | 0) | 0; + return $6 | 0; } -function ___divdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $7$0 = 0, $7$1 = 0; - $1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; - $1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1; - $2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; - $2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1; - $4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0; - $4$1 = tempRet0; - $7$0 = $2$0 ^ $1$0; - $7$1 = $2$1 ^ $1$1; - return _i64Subtract((___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, 0) | 0) ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0; +function _alloc_fs_workspace($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $13 = 0, $5 = 0, $6 = 0, $7 = 0, $i$01 = 0; + $1 = HEAP32[$cinfo + 460 >> 2] | 0; + $5 = (HEAP32[$cinfo + 112 >> 2] << 1) + 4 | 0; + $6 = $cinfo + 120 | 0; + $7 = $cinfo + 4 | 0; + if ((HEAP32[$6 >> 2] | 0) > 0) { + $i$01 = 0; + do { + $13 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$7 >> 2] | 0) + 4 >> 2] & 63]($cinfo, 1, $5) | 0; + HEAP32[$1 + 68 + ($i$01 << 2) >> 2] = $13; + $i$01 = $i$01 + 1 | 0; + } while (($i$01 | 0) < (HEAP32[$6 >> 2] | 0)); + } + return; } -function _setMatrixCodeType($id, $type) { - $id = $id | 0; - $type = $type | 0; - var $0 = 0, $4 = 0, sp = 0; +function ___cxa_can_catch($catchType, $excpType, $thrown) { + $catchType = $catchType | 0; + $excpType = $excpType | 0; + $thrown = $thrown | 0; + var $4 = 0, $temp = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0; - _arSetMatrixCodeType(HEAP32[$4 >> 2] | 0, $type) | 0; - } + $temp = sp; + HEAP32[$temp >> 2] = HEAP32[$thrown >> 2]; + $4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$catchType >> 2] | 0) + 16 >> 2] & 63]($catchType, $excpType, $temp) | 0; + if ($4) HEAP32[$thrown >> 2] = HEAP32[$temp >> 2]; STACKTOP = sp; - return; + return $4 & 1 | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($this, $__s, $__sz, $__reserve) { +function __ZNSt3__16vectorIiNS_9allocatorIiEEE4swapERS3_($this, $__x) { $this = $this | 0; - $__s = $__s | 0; - $__sz = $__sz | 0; - $__reserve = $__reserve | 0; - var $6 = 0, $7 = 0, $__p$0 = 0; - if ($__reserve >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); - if ($__reserve >>> 0 < 11) { - HEAP8[$this >> 0] = $__sz << 1; - $__p$0 = $this + 1 | 0; - } else { - $6 = $__reserve + 16 & -16; - $7 = _malloc($6) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this >> 2] = $6 | 1; - HEAP32[$this + 4 >> 2] = $__sz; - $__p$0 = $7; - } - _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; - HEAP8[$__p$0 + $__sz >> 0] = 0; + $__x = $__x | 0; + var $0 = 0, $2 = 0, $3 = 0, $4 = 0, $6 = 0, $7 = 0, $8 = 0; + $0 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = HEAP32[$__x >> 2]; + HEAP32[$__x >> 2] = $0; + $2 = $this + 4 | 0; + $3 = $__x + 4 | 0; + $4 = HEAP32[$2 >> 2] | 0; + HEAP32[$2 >> 2] = HEAP32[$3 >> 2]; + HEAP32[$3 >> 2] = $4; + $6 = $this + 8 | 0; + $7 = $__x + 8 | 0; + $8 = HEAP32[$6 >> 2] | 0; + HEAP32[$6 >> 2] = HEAP32[$7 >> 2]; + HEAP32[$7 >> 2] = $8; return; } -function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { +function __ZNSt3__113__vector_baseIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEED2Ev($this) { $this = $this | 0; - $info = $info | 0; - $dst_ptr = $dst_ptr | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $4 = 0; - if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else { - $4 = HEAP32[$this + 8 >> 2] | 0; - FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 20 >> 2] & 3]($4, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp); + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } return; } -function _strtok($s, $sep) { - $s = $s | 0; - $sep = $sep | 0; - var $$0 = 0, $$01 = 0, $$sum = 0, $1 = 0, $3 = 0, $4 = 0, $8 = 0, label = 0; - if (!$s) { - $1 = HEAP32[699] | 0; - if (!$1) $$0 = 0; else { - $$01 = $1; - label = 3; - } - } else { - $$01 = $s; - label = 3; - } - do if ((label | 0) == 3) { - $3 = _strspn($$01, $sep) | 0; - $4 = $$01 + $3 | 0; - if (!(HEAP8[$4 >> 0] | 0)) { - HEAP32[699] = 0; - $$0 = 0; - break; - } - $$sum = (_strcspn($4, $sep) | 0) + $3 | 0; - $8 = $$01 + $$sum | 0; - HEAP32[699] = $8; - if (!(HEAP8[$8 >> 0] | 0)) { - HEAP32[699] = 0; - $$0 = $4; - break; - } else { - HEAP32[699] = $$01 + ($$sum + 1); - HEAP8[$8 >> 0] = 0; - $$0 = $4; - break; - } - } while (0); - return $$0 | 0; +function ___muldi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0; + $x_sroa_0_0_extract_trunc = $a$0; + $y_sroa_0_0_extract_trunc = $b$0; + $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; + $1$1 = tempRet0; + return (tempRet0 = (Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0) + (Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $1$1 | $1$1 & 0, $1$0 | 0 | 0) | 0; } -function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) { +function __ZNSt3__114__split_bufferItRNS_9allocatorItEEED2Ev($this) { $this = $this | 0; - $info = $info | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; $1 = HEAP32[$this + 4 >> 2] | 0; - $2 = $1 >> 8; - if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0; - $8 = HEAP32[$this >> 2] | 0; - FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 24 >> 2] & 3]($8, $info, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp); - return; -} - -function _getProjectionNearPlane($id) { - $id = $id | 0; - var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1.0; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 232 | 0; - $$0 = +HEAPF64[$4 >> 3]; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -2 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - STACKTOP = sp; - return +$$0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function _getProjectionFarPlane($id) { - $id = $id | 0; - var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - HEAP32[$0 >> 2] = $id; - if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1.0; else { - $4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 240 | 0; - $$0 = +HEAPF64[$4 >> 3]; +function __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - STACKTOP = sp; - return +$$0; + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); + return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($agg$result, $this) { - $agg$result = $agg$result | 0; +function __ZNSt3__114__split_bufferIfRNS_9allocatorIfEEED2Ev($this) { $this = $this | 0; - var $0 = 0, $1 = 0, $13 = 0, $3 = 0; - $0 = $this + 12 | 0; - $1 = HEAP8[$0 >> 0] | 0; - $3 = ($1 & 1) == 0; - $13 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $3 ? $0 + 1 | 0 : HEAP32[$this + 20 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$this + 16 >> 2] | 0) | 0; - HEAP32[$agg$result >> 2] = HEAP32[$13 >> 2]; - HEAP32[$agg$result + 4 >> 2] = HEAP32[$13 + 4 >> 2]; - HEAP32[$agg$result + 8 >> 2] = HEAP32[$13 + 8 >> 2]; - HEAP32[$13 >> 2] = 0; - HEAP32[$13 + 4 >> 2] = 0; - HEAP32[$13 + 8 >> 2] = 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + $$pre$i$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i$i | 0) != ($1 | 0)) { + $5 = $$pre$i$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($1 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + $7 = HEAP32[$this >> 2] | 0; + if ($7) __ZdlPv($7); return; } -function _arImageProcLumaHist($ipi, $dataPtr) { - $ipi = $ipi | 0; - $dataPtr = $dataPtr | 0; - var $$0 = 0, $13 = 0, $5 = 0, $8 = 0, $9 = 0, $p$03 = 0; - if (($ipi | 0) != 0 & ($dataPtr | 0) != 0) if ((_arImageProcLuma($ipi, $dataPtr) | 0) < 0) $$0 = -1; else { - _memset($ipi + 16 | 0, 0, 1024) | 0; - $5 = HEAP32[$ipi >> 2] | 0; - $8 = Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0; - $9 = $5 + $8 | 0; - if (($8 | 0) > 0) { - $p$03 = $5; - do { - $13 = $ipi + 16 + ((HEAPU8[$p$03 >> 0] | 0) << 2) | 0; - HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 1; - $p$03 = $p$03 + 1 | 0; - } while ($p$03 >>> 0 < $9 >>> 0); - $$0 = 0; - } else $$0 = 0; - } else $$0 = -1; - return $$0 | 0; +function __ZNKSt3__15ctypeIcE10do_toupperEPcPKc($this, $low, $high) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + var $$02 = 0, $1 = 0, $3 = 0, $8 = 0; + if (($low | 0) != ($high | 0)) { + $$02 = $low; + do { + $1 = HEAP8[$$02 >> 0] | 0; + if ($1 << 24 >> 24 > -1) { + $3 = ___ctype_toupper_loc() | 0; + $8 = HEAP32[(HEAP32[$3 >> 2] | 0) + ($1 << 24 >> 24 << 2) >> 2] & 255; + } else $8 = $1; + HEAP8[$$02 >> 0] = $8; + $$02 = $$02 + 1 | 0; + } while (($$02 | 0) != ($high | 0)); + } + return $high | 0; } -function _memcpy(dest, src, num) { - dest = dest | 0; - src = src | 0; - num = num | 0; - var ret = 0; - if ((num | 0) >= 4096) return _emscripten_memcpy_big(dest | 0, src | 0, num | 0) | 0; - ret = dest | 0; - if ((dest & 3) == (src & 3)) { - while (dest & 3) { - if (!num) return ret | 0; - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - num = num - 1 | 0; - } - while ((num | 0) >= 4) { - HEAP32[dest >> 2] = HEAP32[src >> 2]; - dest = dest + 4 | 0; - src = src + 4 | 0; - num = num - 4 | 0; - } - } - while ((num | 0) > 0) { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - num = num - 1 | 0; +function __ZNKSt3__15ctypeIcE10do_tolowerEPcPKc($this, $low, $high) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + var $$02 = 0, $1 = 0, $3 = 0, $8 = 0; + if (($low | 0) != ($high | 0)) { + $$02 = $low; + do { + $1 = HEAP8[$$02 >> 0] | 0; + if ($1 << 24 >> 24 > -1) { + $3 = ___ctype_tolower_loc() | 0; + $8 = HEAP32[(HEAP32[$3 >> 2] | 0) + ($1 << 24 >> 24 << 2) >> 2] & 255; + } else $8 = $1; + HEAP8[$$02 >> 0] = $8; + $$02 = $$02 + 1 | 0; + } while (($$02 | 0) != ($high | 0)); } - return ret | 0; + return $high | 0; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($this) { +function __ZNSt3__114__split_bufferIPKN6vision4NodeILi96EEERNS_9allocatorIS5_EEEC2EjjS8_($this, $__cap, $__start, $__a) { $this = $this | 0; - var $$pre1 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $16 = 0; - $0 = HEAP8[$this >> 0] | 0; - if (!($0 & 1)) { - $10 = ($0 & 255) >>> 1; - $14 = $this + 1 | 0; - } else { - $10 = HEAP32[$this + 4 >> 2] | 0; - $14 = HEAP32[$this + 8 >> 2] | 0; - } - $11 = ($10 | 0) != 0 & 1; - $$pre1 = $10 - $11 | 0; - if (($10 | 0) == ($11 | 0)) $16 = $0; else { - _memmove($14 | 0, $14 + $11 | 0, $$pre1 | 0) | 0; - $16 = HEAP8[$this >> 0] | 0; - } - if (!($16 & 1)) HEAP8[$this >> 0] = $$pre1 << 1; else HEAP32[$this + 4 >> 2] = $$pre1; - HEAP8[$14 + $$pre1 >> 0] = 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 2) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 2) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 2); + return; +} + +function __ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this + 32 | 0); + __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this + 16 | 0); + __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this); return; } -function ___stdio_seek($f, $off, $whence) { - $f = $f | 0; - $off = $off | 0; - $whence = $whence | 0; - var $5 = 0, $ret = 0, $vararg_buffer = 0, sp = 0; +function __ZNSt3__114__split_bufferIPN6vision4NodeILi96EEERNS_9allocatorIS4_EEEC2EjjS7_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 2) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 2) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 2); + return; +} + +function __ZNK6vision20VisualDatabaseFacade18get3DFeaturePointsEi($this, $image_id) { + $this = $this | 0; + $image_id = $image_id | 0; + var $0 = 0, $3 = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 32 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - $ret = sp + 20 | 0; - HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; - HEAP32[$vararg_buffer + 4 >> 2] = 0; - HEAP32[$vararg_buffer + 8 >> 2] = $off; - HEAP32[$vararg_buffer + 12 >> 2] = $ret; - HEAP32[$vararg_buffer + 16 >> 2] = $whence; - if ((___syscall_ret(___syscall140(140, $vararg_buffer | 0) | 0) | 0) < 0) { - HEAP32[$ret >> 2] = -1; - $5 = -1; - } else $5 = HEAP32[$ret >> 2] | 0; + $0 = sp; + HEAP32[$0 >> 2] = $image_id; + $3 = __ZNSt3__113unordered_mapIiNS_6vectorIN6vision7Point3dIfEENS_9allocatorIS4_EEEENS_4hashIiEENS_8equal_toIiEENS5_INS_4pairIKiS7_EEEEEixERSD_((HEAP32[$this >> 2] | 0) + 4 | 0, $0) | 0; STACKTOP = sp; - return $5 | 0; + return $3 | 0; } -function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($this) { +function __ZNSt3__16vectorINS0_INS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEEENS3_IS7_EEE18__construct_at_endEj($this, $__n) { $this = $this | 0; - var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; - $1 = HEAP32[$this + 4 >> 2] | 0; - $2 = $this + 8 | 0; - $3 = HEAP32[$2 >> 2] | 0; - if (($3 | 0) != ($1 | 0)) { - $6 = $3; - do { - $5 = $6 + -24 | 0; - HEAP32[$2 >> 2] = $5; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $6 = HEAP32[$2 >> 2] | 0; - } while (($6 | 0) != ($1 | 0)); + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 12 | 0; } - $9 = HEAP32[$this >> 2] | 0; - if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0); + HEAP32[$0 >> 2] = $$promoted + ($__n * 12 | 0); return; } -function __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this) { +function __ZNSt3__113__vector_baseIN6vision12FeaturePointENS_9allocatorIS2_EEED2Ev($this) { $this = $this | 0; - var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; $0 = HEAP32[$this >> 2] | 0; if ($0) { $2 = $this + 4 | 0; - $3 = HEAP32[$2 >> 2] | 0; - if (($3 | 0) != ($0 | 0)) { - $6 = $3; - do { - $5 = $6 + -24 | 0; - HEAP32[$2 >> 2] = $5; - __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5); - $6 = HEAP32[$2 >> 2] | 0; - } while (($6 | 0) != ($0 | 0)); + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -20 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - $9 = HEAP32[$this >> 2] | 0; - __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0); + __ZdlPv($0); } return; } -function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($agg$result, $this, $__k) { - $agg$result = $agg$result | 0; +function __ZNSt3__114__split_bufferINS_6vectorINS_4pairIfjEENS_9allocatorIS3_EEEERNS4_IS6_EEE18__construct_at_endEj($this, $__n) { $this = $this | 0; - $__k = $__k | 0; - var $1 = 0, $11 = 0, $8 = 0; - $1 = __Znwj(408) | 0; - HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; - _memset($1 + 16 | 0, 0, 392) | 0; - HEAPF64[$1 + 248 >> 3] = .0001; - HEAPF64[$1 + 256 >> 3] = 1.0e3; - $8 = $1 + 264 | 0; - HEAP32[$8 >> 2] = 0; - HEAP32[$8 + 4 >> 2] = 0; - HEAP32[$8 + 8 >> 2] = 0; - HEAP32[$8 + 12 >> 2] = 0; - HEAP32[$agg$result >> 2] = $1; - $11 = $agg$result + 4 | 0; - HEAP32[$11 >> 2] = $this + 8; - HEAP32[$11 + 4 >> 2] = 257; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 8 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 12 | 0; + } + HEAP32[$0 >> 2] = $$promoted + ($__n * 12 | 0); return; } -function _arVecHousehold($x) { - $x = $x | 0; - var $1 = 0.0, $10 = 0.0, $12 = 0, $14 = 0, $3 = 0, $4 = 0.0, $7 = 0.0, $i$01 = 0, $s$0 = 0.0, $s$1 = 0.0; - $1 = +Math_sqrt(+(+_arVecInnerproduct($x, $x))); - if ($1 != 0.0) { - $3 = HEAP32[$x >> 2] | 0; - $4 = +HEAPF64[$3 >> 3]; - $s$0 = $4 < 0.0 ? -$1 : $1; - $7 = $4 + $s$0; - HEAPF64[$3 >> 3] = $7; - $10 = 1.0 / +Math_sqrt(+($7 * $s$0)); - $12 = HEAP32[$x + 4 >> 2] | 0; - if (($12 | 0) > 0) { - $i$01 = 0; - do { - $14 = $3 + ($i$01 << 3) | 0; - HEAPF64[$14 >> 3] = $10 * +HEAPF64[$14 >> 3]; - $i$01 = $i$01 + 1 | 0; - } while (($i$01 | 0) < ($12 | 0)); - $s$1 = $s$0; - } else $s$1 = $s$0; - } else $s$1 = $1; - return +-$s$1; -} - -function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($this, $__cap, $__start, $__a) { +function __ZNSt3__114__split_bufferIN6vision7match_tERNS_9allocatorIS2_EEEC2EjjS5_($this, $__cap, $__start, $__a) { $this = $this | 0; $__cap = $__cap | 0; $__start = $__start | 0; $__a = $__a | 0; - var $6 = 0, $7 = 0; + var $5 = 0, $6 = 0; HEAP32[$this + 12 >> 2] = 0; HEAP32[$this + 16 >> 2] = $__a; - if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0; - HEAP32[$this >> 2] = $6; - $7 = $6 + ($__start << 4) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this + 4 >> 2] = $7; - HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4); + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 3) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); return; } -function _memset(ptr, value, num) { - ptr = ptr | 0; - value = value | 0; - num = num | 0; - var stop = 0, value4 = 0, stop4 = 0, unaligned = 0; - stop = ptr + num | 0; - if ((num | 0) >= 20) { - value = value & 255; - unaligned = ptr & 3; - value4 = value | value << 8 | value << 16 | value << 24; - stop4 = stop & ~3; - if (unaligned) { - unaligned = ptr + 4 - unaligned | 0; - while ((ptr | 0) < (unaligned | 0)) { - HEAP8[ptr >> 0] = value; - ptr = ptr + 1 | 0; +function __ZNSt3__113__vector_baseIPKN6vision4NodeILi96EEENS_9allocatorIS5_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - while ((ptr | 0) < (stop4 | 0)) { - HEAP32[ptr >> 2] = value4; - ptr = ptr + 4 | 0; - } - } - while ((ptr | 0) < (stop | 0)) { - HEAP8[ptr >> 0] = value; - ptr = ptr + 1 | 0; - } - return ptr - num | 0; -} - -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $__s, $__sz) { - $this = $this | 0; - $__s = $__s | 0; - $__sz = $__sz | 0; - var $6 = 0, $7 = 0, $__p$0 = 0; - if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); - if ($__sz >>> 0 < 11) { - HEAP8[$this >> 0] = $__sz << 1; - $__p$0 = $this + 1 | 0; - } else { - $6 = $__sz + 16 & -16; - $7 = _malloc($6) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this >> 2] = $6 | 1; - HEAP32[$this + 4 >> 2] = $__sz; - $__p$0 = $7; + __ZdlPv($0); } - _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; - HEAP8[$__p$0 + $__sz >> 0] = 0; return; } -function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { +function __ZNSt3__18ios_base4initEPv($this, $sb) { $this = $this | 0; - $info = $info | 0; - $adjustedPtr = $adjustedPtr | 0; - $path_below = $path_below | 0; - var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0; - $1 = HEAP32[$this + 4 >> 2] | 0; - $2 = $1 >> 8; - if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$adjustedPtr >> 2] | 0) + $2 >> 2] | 0; - $8 = HEAP32[$this >> 2] | 0; - FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 28 >> 2] & 3]($8, $info, $adjustedPtr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2); + $sb = $sb | 0; + var $8 = 0, dest = 0, stop = 0; + HEAP32[$this + 24 >> 2] = $sb; + HEAP32[$this + 16 >> 2] = ($sb | 0) == 0 & 1; + HEAP32[$this + 20 >> 2] = 0; + HEAP32[$this + 4 >> 2] = 4098; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 6; + $8 = $this + 28 | 0; + dest = $this + 32 | 0; + stop = dest + 40 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + __ZNSt3__16localeC2Ev($8); return; } -function __ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E($fn, $args, $args1) { - $fn = $fn | 0; - $args = $args | 0; - $args1 = $args1 | 0; - var $0 = 0, $1 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args1); - $1 = FUNCTION_TABLE_iii[$fn & 15]($args, $0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); - STACKTOP = sp; - return $1 | 0; -} - -function ___toread($f) { - $f = $f | 0; - var $$0 = 0, $0 = 0, $15 = 0, $2 = 0, $21 = 0, $6 = 0, $8 = 0; - $0 = $f + 74 | 0; - $2 = HEAP8[$0 >> 0] | 0; - HEAP8[$0 >> 0] = $2 + 255 | $2; - $6 = $f + 20 | 0; - $8 = $f + 44 | 0; - if ((HEAP32[$6 >> 2] | 0) >>> 0 > (HEAP32[$8 >> 2] | 0) >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0; - HEAP32[$f + 16 >> 2] = 0; - HEAP32[$f + 28 >> 2] = 0; - HEAP32[$6 >> 2] = 0; - $15 = HEAP32[$f >> 2] | 0; - if (!($15 & 20)) { - $21 = HEAP32[$8 >> 2] | 0; - HEAP32[$f + 8 >> 2] = $21; - HEAP32[$f + 4 >> 2] = $21; - $$0 = 0; - } else if (!($15 & 4)) $$0 = -1; else { - HEAP32[$f >> 2] = $15 | 32; - $$0 = -1; - } - return $$0 | 0; -} - -function _fclose($f) { - $f = $f | 0; - var $$pre = 0, $12 = 0, $18 = 0, $22 = 0, $24 = 0, $5 = 0, $7 = 0; - if ((HEAP32[$f + 76 >> 2] | 0) > -1) {} - $5 = (HEAP32[$f >> 2] & 1 | 0) != 0; - if (!$5) { - ___lock(2416); - $7 = HEAP32[$f + 52 >> 2] | 0; - $$pre = $f + 56 | 0; - if ($7) HEAP32[$7 + 56 >> 2] = HEAP32[$$pre >> 2]; - $12 = HEAP32[$$pre >> 2] | 0; - if ($12) HEAP32[$12 + 52 >> 2] = $7; - if ((HEAP32[603] | 0) == ($f | 0)) HEAP32[603] = $12; - ___unlock(2416); +function __ZNSt3__113__vector_baseIPN6vision4NodeILi96EEENS_9allocatorIS4_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } - $18 = _fflush($f) | 0; - $22 = FUNCTION_TABLE_ii[HEAP32[$f + 12 >> 2] & 31]($f) | 0 | $18; - $24 = HEAP32[$f + 92 >> 2] | 0; - if ($24) _free($24); - if (!$5) _free($f); - return $22 | 0; + return; } -function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($this, $__cap, $__start, $__a) { +function __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEEC2EjjS5_($this, $__cap, $__start, $__a) { $this = $this | 0; $__cap = $__cap | 0; $__start = $__start | 0; $__a = $__a | 0; - var $6 = 0, $7 = 0; + var $5 = 0, $6 = 0; HEAP32[$this + 12 >> 2] = 0; HEAP32[$this + 16 >> 2] = $__a; - if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0; - HEAP32[$this >> 2] = $6; - $7 = $6 + ($__start << 4) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this + 4 >> 2] = $7; - HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4); + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 5) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 5) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 5); return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this, $__s, $__sz) { +function __ZNSt3__113__vector_baseIN6vision7Point3dIfEENS_9allocatorIS3_EEED2Ev($this) { $this = $this | 0; - $__s = $__s | 0; - $__sz = $__sz | 0; - var $6 = 0, $7 = 0, $__p$0 = 0; - if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this); - if ($__sz >>> 0 < 11) { - HEAP8[$this >> 0] = $__sz << 1; - $__p$0 = $this + 1 | 0; - } else { - $6 = $__sz + 16 & -16; - $7 = __Znwj($6) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this >> 2] = $6 | 1; - HEAP32[$this + 4 >> 2] = $__sz; - $__p$0 = $7; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -12 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } - _memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0; - HEAP8[$__p$0 + $__sz >> 0] = 0; return; } -function _arVecInnerproduct($x, $y) { - $x = $x | 0; - $y = $y | 0; - var $1 = 0, $13 = 0.0, $6 = 0, $7 = 0, $i$02 = 0, $result$0$lcssa = 0.0, $result$01 = 0.0; - $1 = HEAP32[$x + 4 >> 2] | 0; - if (($1 | 0) != (HEAP32[$y + 4 >> 2] | 0)) _exit(0); - if (($1 | 0) > 0) { - $6 = HEAP32[$x >> 2] | 0; - $7 = HEAP32[$y >> 2] | 0; - $i$02 = 0; - $result$01 = 0.0; - while (1) { - $13 = $result$01 + +HEAPF64[$6 + ($i$02 << 3) >> 3] * +HEAPF64[$7 + ($i$02 << 3) >> 3]; - $i$02 = $i$02 + 1 | 0; - if (($i$02 | 0) >= ($1 | 0)) { - $result$0$lcssa = $13; - break; - } else $result$01 = $13; - } - } else $result$0$lcssa = 0.0; - return +$result$0$lcssa; +function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 3) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); + return; } -function _memcmp($vl, $vr, $n) { - $vl = $vl | 0; - $vr = $vr | 0; - $n = $n | 0; - var $$03 = 0, $$lcssa = 0, $$lcssa19 = 0, $1 = 0, $11 = 0, $2 = 0, $l$04 = 0, $r$05 = 0; - L1 : do if (!$n) $11 = 0; else { - $$03 = $n; - $l$04 = $vl; - $r$05 = $vr; - while (1) { - $1 = HEAP8[$l$04 >> 0] | 0; - $2 = HEAP8[$r$05 >> 0] | 0; - if ($1 << 24 >> 24 != $2 << 24 >> 24) { - $$lcssa = $1; - $$lcssa19 = $2; - break; - } - $$03 = $$03 + -1 | 0; - if (!$$03) { - $11 = 0; - break L1; - } else { - $l$04 = $l$04 + 1 | 0; - $r$05 = $r$05 + 1 | 0; +function __ZNSt3__113__vector_baseIN6vision7Point2dIfEENS_9allocatorIS3_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; } + HEAP32[$2 >> 2] = $$lcssa; } - $11 = ($$lcssa & 255) - ($$lcssa19 & 255) | 0; - } while (0); - return $11 | 0; + __ZdlPv($0); + } + return; } -function ___fmodeflags($mode) { - $mode = $mode | 0; - var $1 = 0, $2 = 0, $4 = 0, $7 = 0, $flags$0 = 0, $flags$0$ = 0, $flags$2 = 0, $flags$2$ = 0, $flags$4 = 0; - $1 = (_strchr($mode, 43) | 0) == 0; - $2 = HEAP8[$mode >> 0] | 0; - $flags$0 = $1 ? $2 << 24 >> 24 != 114 & 1 : 2; - $4 = (_strchr($mode, 120) | 0) == 0; - $flags$0$ = $4 ? $flags$0 : $flags$0 | 128; - $7 = (_strchr($mode, 101) | 0) == 0; - $flags$2 = $7 ? $flags$0$ : $flags$0$ | 524288; - $flags$2$ = $2 << 24 >> 24 == 114 ? $flags$2 : $flags$2 | 64; - $flags$4 = $2 << 24 >> 24 == 119 ? $flags$2$ | 512 : $flags$2$; - return ($2 << 24 >> 24 == 97 ? $flags$4 | 1024 : $flags$4) | 0; +function _jinit_huff_decoder($cinfo) { + $cinfo = $cinfo | 0; + var $3 = 0, $6 = 0, $7 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 1, 232) | 0; + HEAP32[$cinfo + 444 >> 2] = $3; + HEAP32[$3 >> 2] = 120; + HEAP32[$3 + 4 >> 2] = 23; + $6 = $3 + 56 | 0; + $7 = $3 + 40 | 0; + HEAP32[$6 >> 2] = 0; + HEAP32[$7 >> 2] = 0; + HEAP32[$6 + 4 >> 2] = 0; + HEAP32[$7 + 4 >> 2] = 0; + HEAP32[$6 + 8 >> 2] = 0; + HEAP32[$7 + 8 >> 2] = 0; + HEAP32[$6 + 12 >> 2] = 0; + HEAP32[$7 + 12 >> 2] = 0; + return; } -function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($this, $__cap, $__start, $__a) { +function __ZNSt3__114__split_bufferINS_4pairIfjEERNS_9allocatorIS2_EEEC2EjjS5_($this, $__cap, $__start, $__a) { $this = $this | 0; $__cap = $__cap | 0; $__start = $__start | 0; $__a = $__a | 0; - var $6 = 0, $7 = 0; + var $5 = 0, $6 = 0; HEAP32[$this + 12 >> 2] = 0; HEAP32[$this + 16 >> 2] = $__a; - if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap * 24 | 0) | 0; - HEAP32[$this >> 2] = $6; - $7 = $6 + ($__start * 24 | 0) | 0; - HEAP32[$this + 8 >> 2] = $7; - HEAP32[$this + 4 >> 2] = $7; - HEAP32[$this + 12 >> 2] = $6 + ($__cap * 24 | 0); + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 3) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); return; } -function __ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E($fn, $args) { - $fn = $fn | 0; - $args = $args | 0; - var $0 = 0, $1 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = sp; - __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args); - $1 = FUNCTION_TABLE_ii[$fn & 31]($0) | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0); - STACKTOP = sp; - return $1 | 0; +function __ZNSt3__114__split_bufferINS_4pairIfiEERNS_9allocatorIS2_EEEC2EjjS5_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 3) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); + return; } -function _strncat($d, $s, $n) { - $d = $d | 0; - $s = $s | 0; - $n = $n | 0; - var $$0$lcssa = 0, $$014 = 0, $$023 = 0, $$05 = 0, $1 = 0, $3 = 0, $7 = 0; - $1 = $d + (_strlen($d) | 0) | 0; - L1 : do if (!$n) $$0$lcssa = $1; else { - $$014 = $n; - $$023 = $s; - $$05 = $1; +function __ZNKSt3__15ctypeIcE9do_narrowEPKcS3_cPc($this, $low, $high, $dfault, $dest) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + $dfault = $dfault | 0; + $dest = $dest | 0; + var $$013 = 0, $$04 = 0, $1 = 0; + if (($low | 0) != ($high | 0)) { + $$013 = $low; + $$04 = $dest; while (1) { - $3 = HEAP8[$$023 >> 0] | 0; - if (!($3 << 24 >> 24)) { - $$0$lcssa = $$05; - break L1; - } - $$014 = $$014 + -1 | 0; - $7 = $$05 + 1 | 0; - HEAP8[$$05 >> 0] = $3; - if (!$$014) { - $$0$lcssa = $7; - break; - } else { - $$023 = $$023 + 1 | 0; - $$05 = $7; - } + $1 = HEAP8[$$013 >> 0] | 0; + HEAP8[$$04 >> 0] = $1 << 24 >> 24 > -1 ? $1 : $dfault; + $$013 = $$013 + 1 | 0; + if (($$013 | 0) == ($high | 0)) break; else $$04 = $$04 + 1 | 0; } - } while (0); - HEAP8[$$0$lcssa >> 0] = 0; - return $d | 0; + } + return $high | 0; } -function _get_buff($buf, $fp) { - $buf = $buf | 0; - $fp = $fp | 0; - var $2 = 0, $5 = 0, $l$01 = 0; - L1 : do if (_fgets($buf, 256, $fp) | 0) while (1) { - $2 = _strlen($buf) | 0; - L4 : do if ($2) { - $l$01 = $2; +function __ZN6vision25GaussianScaleSpacePyramid9configureEii($this, $num_octaves, $num_scales_per_octaves) { + $this = $this | 0; + $num_octaves = $num_octaves | 0; + $num_scales_per_octaves = $num_scales_per_octaves | 0; + var $7 = 0.0, $exp2f = 0.0; + HEAP32[$this + 16 >> 2] = $num_octaves; + HEAP32[$this + 20 >> 2] = $num_scales_per_octaves; + $exp2f = +_exp2f(1.0 / +($num_scales_per_octaves + -1 | 0)); + HEAPF32[$this + 24 >> 2] = $exp2f; + $7 = 1.0 / +Math_log(+$exp2f); + HEAPF32[$this + 28 >> 2] = $7; + return; +} + +function __ZNSt3__113__vector_baseIN6vision7match_tENS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; while (1) { - $l$01 = $l$01 + -1 | 0; - $5 = $buf + $l$01 | 0; - switch (HEAP8[$5 >> 0] | 0) { - case 13: - case 10: + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; break; - default: - break L4; - } - HEAP8[$5 >> 0] = 0; - if (!$l$01) break L4; + } else $5 = $4; } - } while (0); - switch (HEAP8[$buf >> 0] | 0) { - case 0: - case 35: - break; - default: - break L1; + HEAP32[$2 >> 2] = $$lcssa; } - if (!(_fgets($buf, 256, $fp) | 0)) break L1; - } while (0); + __ZdlPv($0); + } return; } -function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($this, $__str) { $this = $this | 0; - $info = $info | 0; - $adjustedPtr = $adjustedPtr | 0; - $path_below = $path_below | 0; - var $4 = 0; - if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else { - $4 = HEAP32[$this + 8 >> 2] | 0; - FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 3]($4, $info, $adjustedPtr, $path_below); + $__str = $__str | 0; + var $1 = 0, $3 = 0; + if (($this | 0) != ($__str | 0)) { + $1 = HEAP8[$__str >> 0] | 0; + $3 = ($1 & 1) == 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $3 ? $__str + 1 | 0 : HEAP32[$__str + 8 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$__str + 4 >> 2] | 0); } return; } -function ___stdout_write($f, $buf, $len) { - $f = $f | 0; - $buf = $buf | 0; - $len = $len | 0; - var $9 = 0, $vararg_buffer = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $vararg_buffer = sp; - HEAP32[$f + 36 >> 2] = 4; - if (!(HEAP32[$f >> 2] & 64)) { - HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2]; - HEAP32[$vararg_buffer + 4 >> 2] = 21505; - HEAP32[$vararg_buffer + 8 >> 2] = sp + 12; - if (___syscall54(54, $vararg_buffer | 0) | 0) HEAP8[$f + 75 >> 0] = -1; - } - $9 = ___stdio_write($f, $buf, $len) | 0; - STACKTOP = sp; - return $9 | 0; +function __ZN6vision35MultiplyPointHomographyInhomogenousIfEEvRT_S2_PKS1_S1_S1_($xp, $yp, $H, $x, $y) { + $xp = $xp | 0; + $yp = $yp | 0; + $H = $H | 0; + $x = +$x; + $y = +$y; + var $9 = 0.0; + $9 = +HEAPF32[$H + 32 >> 2] + (+HEAPF32[$H + 24 >> 2] * $x + +HEAPF32[$H + 28 >> 2] * $y); + HEAPF32[$xp >> 2] = (+HEAPF32[$H + 8 >> 2] + (+HEAPF32[$H >> 2] * $x + +HEAPF32[$H + 4 >> 2] * $y)) / $9; + HEAPF32[$yp >> 2] = (+HEAPF32[$H + 20 >> 2] + (+HEAPF32[$H + 12 >> 2] * $x + +HEAPF32[$H + 16 >> 2] * $y)) / $9; + return; } -function _arUtilGetDirectoryNameFromPath($dir, $path, $n, $addSeparator) { - $dir = $dir | 0; - $path = $path | 0; - $n = $n | 0; - $addSeparator = $addSeparator | 0; - var $$0 = 0, $10 = 0, $3 = 0; - do if (($dir | 0) != 0 & ($path | 0) != 0 & ($n | 0) != 0) { - $3 = _strrchr($path, 47) | 0; - if (!$3) { - HEAP8[$dir >> 0] = 0; - $$0 = $dir; - break; - } - $10 = $3 + (($addSeparator | 0) != 0 & 1) - $path | 0; - if (($10 + 1 | 0) >>> 0 > $n >>> 0) $$0 = 0; else { - _strncpy($dir, $path, $10) | 0; - HEAP8[$dir + $10 >> 0] = 0; - $$0 = $dir; +function __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; } - } else $$0 = 0; while (0); - return $$0 | 0; + __ZdlPv($0); + } + return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) { +function __ZNSt3__113__vector_baseINS_4pairIfjEENS_9allocatorIS2_EEED2Ev($this) { $this = $this | 0; - var $2 = 0; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0); - $2 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = 0; - if ($2) __ZdlPv($2); + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); + } return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, $__np) { +function __ZNSt3__113__vector_baseINS_4pairIfiEENS_9allocatorIS2_EEED2Ev($this) { $this = $this | 0; - $__np = $__np | 0; - var $$01 = 0, $$01$looptemp = 0; - if ($__np) { - $$01 = $__np; - do { - $$01$looptemp = $$01; - $$01 = HEAP32[$$01 >> 2] | 0; - __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($$01$looptemp + 264 | 0); - __ZdlPv($$01$looptemp); - } while (($$01 | 0) != 0); + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -8 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } return; } -function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($this, $s) { $this = $this | 0; - var $2 = 0; - __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0); - $2 = HEAP32[$this >> 2] | 0; - HEAP32[$this >> 2] = 0; - if ($2) __ZdlPv($2); + $s = $s | 0; + var $2 = 0, dest = 0, src = 0, stop = 0; + HEAP8[$this >> 0] = 20; + dest = $this + 1 | 0; + src = $s; + stop = dest + 10 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$this + 11 >> 0] = 0; + $2 = $this + 12 | 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($this, $0) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($this, $s) { $this = $this | 0; - $0 = $0 | 0; - var $3 = 0, $4 = 0; - HEAP32[$this >> 2] = HEAP32[$0 >> 2]; - HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2]; - HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2]; - HEAP32[$0 >> 2] = 0; - HEAP32[$0 + 4 >> 2] = 0; - HEAP32[$0 + 8 >> 2] = 0; - $3 = $this + 12 | 0; - $4 = $0 + 12 | 0; - HEAP32[$3 >> 2] = HEAP32[$4 >> 2]; - HEAP32[$3 + 4 >> 2] = HEAP32[$4 + 4 >> 2]; - HEAP32[$3 + 8 >> 2] = HEAP32[$4 + 8 >> 2]; - HEAP32[$4 >> 2] = 0; - HEAP32[$4 + 4 >> 2] = 0; - HEAP32[$4 + 8 >> 2] = 0; + $s = $s | 0; + var $2 = 0, dest = 0, src = 0, stop = 0; + HEAP8[$this >> 0] = 18; + dest = $this + 1 | 0; + src = $s; + stop = dest + 9 | 0; + do { + HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; + dest = dest + 1 | 0; + src = src + 1 | 0; + } while ((dest | 0) < (stop | 0)); + HEAP8[$this + 10 >> 0] = 0; + $2 = $this + 12 | 0; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; return; } -function _arImageProcLumaHistAndCDF($ipi, $dataPtr) { - $ipi = $ipi | 0; - $dataPtr = $dataPtr | 0; - var $$0 = 0, $0 = 0, $cdfCurrent$0 = 0, $indvars$iv = 0; - $0 = _arImageProcLumaHist($ipi, $dataPtr) | 0; - if (($0 | 0) < 0) $$0 = $0; else { - $cdfCurrent$0 = 0; - $indvars$iv = 0; - do { - $cdfCurrent$0 = (HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0) + $cdfCurrent$0 | 0; - HEAP32[$ipi + 1040 + ($indvars$iv << 2) >> 2] = $cdfCurrent$0; - $indvars$iv = $indvars$iv + 1 | 0; - } while (($indvars$iv | 0) != 256); - $$0 = 0; - } - return $$0 | 0; +function _jpeg_idct_1x1($cinfo, $compptr, $coef_block, $output_buf, $output_col) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $coef_block = $coef_block | 0; + $output_buf = $output_buf | 0; + $output_col = $output_col | 0; + var $11 = 0; + $11 = (HEAP32[$cinfo + 324 >> 2] | 0) + ((((Math_imul(HEAP16[$coef_block >> 1] | 0, HEAP32[HEAP32[$compptr + 80 >> 2] >> 2] | 0) | 0) + 4 | 0) >>> 3 & 1023) + 128) | 0; + HEAP8[(HEAP32[$output_buf >> 2] | 0) + $output_col >> 0] = HEAP8[$11 >> 0] | 0; + return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($this, $s) { +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE18__construct_at_endEj($this, $__n) { $this = $this | 0; - $s = $s | 0; - var $0 = 0, $1 = 0, $3 = 0; - HEAP8[$this >> 0] = 8; - $0 = $this + 1 | 0; - $1 = HEAPU8[$s >> 0] | HEAPU8[$s + 1 >> 0] << 8 | HEAPU8[$s + 2 >> 0] << 16 | HEAPU8[$s + 3 >> 0] << 24; - HEAP8[$0 >> 0] = $1; - HEAP8[$0 + 1 >> 0] = $1 >> 8; - HEAP8[$0 + 2 >> 0] = $1 >> 16; - HEAP8[$0 + 3 >> 0] = $1 >> 24; - HEAP8[$this + 5 >> 0] = 0; - $3 = $this + 12 | 0; - HEAP32[$3 >> 2] = 0; - HEAP32[$3 + 4 >> 2] = 0; - HEAP32[$3 + 8 >> 2] = 0; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 12 | 0; + } + HEAP32[$0 >> 2] = $$promoted + ($__n * 12 | 0); return; } -function _vsscanf($s, $fmt, $ap) { - $s = $s | 0; - $fmt = $fmt | 0; - $ap = $ap | 0; - var $4 = 0, $f = 0, dest = 0, sp = 0, stop = 0; +function __ZNSt3__112__asprintf_lEPPcP15__locale_structPKcz($__s, $__l, $__format, $varargs) { + $__s = $__s | 0; + $__l = $__l | 0; + $__format = $__format | 0; + $varargs = $varargs | 0; + var $0 = 0, $1 = 0, $__va = 0, sp = 0; sp = STACKTOP; - STACKTOP = STACKTOP + 112 | 0; + STACKTOP = STACKTOP + 16 | 0; if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $f = sp; - dest = $f; - stop = dest + 112 | 0; - do { - HEAP32[dest >> 2] = 0; - dest = dest + 4 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP32[$f + 32 >> 2] = 15; - HEAP32[$f + 44 >> 2] = $s; - HEAP32[$f + 76 >> 2] = -1; - HEAP32[$f + 84 >> 2] = $s; - $4 = _vfscanf($f, $fmt, $ap) | 0; + $__va = sp; + HEAP32[$__va >> 2] = $varargs; + $0 = _uselocale($__l) | 0; + $1 = _vasprintf($__s, $__format, $__va) | 0; + if ($0) _uselocale($0) | 0; STACKTOP = sp; - return $4 | 0; + return $1 | 0; } -function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($this) { +function ___towrite($f) { + $f = $f | 0; + var $$0 = 0, $0 = 0, $13 = 0, $2 = 0, $6 = 0; + $0 = $f + 74 | 0; + $2 = HEAP8[$0 >> 0] | 0; + HEAP8[$0 >> 0] = $2 + 255 | $2; + $6 = HEAP32[$f >> 2] | 0; + if (!($6 & 8)) { + HEAP32[$f + 8 >> 2] = 0; + HEAP32[$f + 4 >> 2] = 0; + $13 = HEAP32[$f + 44 >> 2] | 0; + HEAP32[$f + 28 >> 2] = $13; + HEAP32[$f + 20 >> 2] = $13; + HEAP32[$f + 16 >> 2] = $13 + (HEAP32[$f + 48 >> 2] | 0); + $$0 = 0; + } else { + HEAP32[$f >> 2] = $6 | 32; + $$0 = -1; + } + return $$0 | 0; +} + +function __ZNSt3__114__split_bufferItRNS_9allocatorItEEEC2EjjS3_($this, $__cap, $__start, $__a) { $this = $this | 0; - var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 1) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 1) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 1); + return; +} + +function __ZNSt3__114__split_bufferIiRNS_9allocatorIiEEEC2EjjS3_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 2) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 2) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 2); + return; +} + +function __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEED2Ev($this) { + $this = $this | 0; + var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0; $1 = HEAP32[$this + 4 >> 2] | 0; $2 = $this + 8 | 0; $$pre$i$i$i = HEAP32[$2 >> 2] | 0; if (($$pre$i$i$i | 0) != ($1 | 0)) { $5 = $$pre$i$i$i; while (1) { - $4 = $5 + -8 | 0; + $4 = $5 + -1 | 0; if (($4 | 0) == ($1 | 0)) { $$lcssa = $4; break; @@ -71877,45 +121737,75 @@ function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($thi } HEAP32[$2 >> 2] = $$lcssa; } - $7 = HEAP32[$this >> 2] | 0; - if ($7) __ZdlPv($7); + __ZdlPv(HEAP32[$this >> 2] | 0); return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($this, $__str) { +function __ZNSt3__114__split_bufferIfRNS_9allocatorIfEEEC2EjjS3_($this, $__cap, $__start, $__a) { $this = $this | 0; - $__str = $__str | 0; - if (!(HEAP8[$__str >> 0] & 1)) { - HEAP32[$this >> 2] = HEAP32[$__str >> 2]; - HEAP32[$this + 4 >> 2] = HEAP32[$__str + 4 >> 2]; - HEAP32[$this + 8 >> 2] = HEAP32[$__str + 8 >> 2]; - } else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, HEAP32[$__str + 8 >> 2] | 0, HEAP32[$__str + 4 >> 2] | 0); + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $5 = 0, $6 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 2) | 0; + HEAP32[$this >> 2] = $5; + $6 = $5 + ($__start << 2) | 0; + HEAP32[$this + 8 >> 2] = $6; + HEAP32[$this + 4 >> 2] = $6; + HEAP32[$this + 12 >> 2] = $5 + ($__cap << 2); return; } -function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) { +function __ZNSt3__110__sscanf_lEPKcP15__locale_structS1_z($__s, $__l, $__format, $varargs) { + $__s = $__s | 0; + $__l = $__l | 0; + $__format = $__format | 0; + $varargs = $varargs | 0; + var $0 = 0, $1 = 0, $__va = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__va = sp; + HEAP32[$__va >> 2] = $varargs; + $0 = _uselocale($__l) | 0; + $1 = _vsscanf($__s, $__format, $__va) | 0; + if ($0) _uselocale($0) | 0; + STACKTOP = sp; + return $1 | 0; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n) { $this = $this | 0; - $info = $info | 0; - $dst_ptr = $dst_ptr | 0; - $current_ptr = $current_ptr | 0; - $path_below = $path_below | 0; - $use_strcmp = $use_strcmp | 0; - if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $2 = 0; + $0 = $this + 4 | 0; + $$0 = $__n; + $2 = HEAP32[$0 >> 2] | 0; + do { + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + HEAP32[$2 + 8 >> 2] = 0; + HEAP32[$2 + 12 >> 2] = 0; + HEAP8[$2 + 16 >> 0] = 1; + $2 = (HEAP32[$0 >> 2] | 0) + 20 | 0; + HEAP32[$0 >> 2] = $2; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($this, $s) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($this, $f) { $this = $this | 0; - $s = $s | 0; - var $0 = 0, $2 = 0; - HEAP8[$this >> 0] = 10; - $0 = $this + 1 | 0; - HEAP8[$0 >> 0] = HEAP8[$s >> 0] | 0; - HEAP8[$0 + 1 >> 0] = HEAP8[$s + 1 >> 0] | 0; - HEAP8[$0 + 2 >> 0] = HEAP8[$s + 2 >> 0] | 0; - HEAP8[$0 + 3 >> 0] = HEAP8[$s + 3 >> 0] | 0; - HEAP8[$0 + 4 >> 0] = HEAP8[$s + 4 >> 0] | 0; - HEAP8[$this + 6 >> 0] = 0; + $f = $f | 0; + var $2 = 0; + HEAP32[$this >> 2] = HEAP32[$f >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$f + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$f + 8 >> 2]; + HEAP32[$f >> 2] = 0; + HEAP32[$f + 4 >> 2] = 0; + HEAP32[$f + 8 >> 2] = 0; $2 = $this + 12 | 0; HEAP32[$2 >> 2] = 0; HEAP32[$2 + 4 >> 2] = 0; @@ -71923,133 +121813,45 @@ function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($this, $s) return; } -function _fwrite($src, $size, $nmemb, $f) { - $src = $src | 0; - $size = $size | 0; - $nmemb = $nmemb | 0; - $f = $f | 0; - var $0 = 0, $10 = 0, $6 = 0, $8 = 0, $phitmp = 0; - $0 = Math_imul($nmemb, $size) | 0; - if ((HEAP32[$f + 76 >> 2] | 0) > -1) { - $phitmp = (___lockfile($f) | 0) == 0; - $6 = ___fwritex($src, $0, $f) | 0; - if ($phitmp) $8 = $6; else { - ___unlockfile($f); - $8 = $6; - } - } else $8 = ___fwritex($src, $0, $f) | 0; - if (($8 | 0) == ($0 | 0)) $10 = $nmemb; else $10 = ($8 >>> 0) / ($size >>> 0) | 0; - return $10 | 0; -} - -function ___string_read($f, $buf, $len) { - $f = $f | 0; - $buf = $buf | 0; - $len = $len | 0; - var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $3 = 0, $k$0 = 0, $k$0$len = 0; - $0 = $f + 84 | 0; - $1 = HEAP32[$0 >> 2] | 0; - $2 = $len + 256 | 0; - $3 = _memchr($1, 0, $2) | 0; - $k$0 = ($3 | 0) == 0 ? $2 : $3 - $1 | 0; - $k$0$len = $k$0 >>> 0 < $len >>> 0 ? $k$0 : $len; - _memcpy($buf | 0, $1 | 0, $k$0$len | 0) | 0; - HEAP32[$f + 4 >> 2] = $1 + $k$0$len; - $11 = $1 + $k$0 | 0; - HEAP32[$f + 8 >> 2] = $11; - HEAP32[$0 >> 2] = $11; - return $k$0$len | 0; -} - -function __Znwj($size) { - $size = $size | 0; - var $$lcssa = 0, $$size = 0, $1 = 0, $3 = 0, $5 = 0, $7 = 0; - $$size = ($size | 0) == 0 ? 1 : $size; - $1 = _malloc($$size) | 0; - L1 : do if (!$1) { - while (1) { - $3 = __ZSt15get_new_handlerv() | 0; - if (!$3) break; - FUNCTION_TABLE_v[$3 & 0](); - $5 = _malloc($$size) | 0; - if ($5) { - $$lcssa = $5; - break L1; - } - } - $7 = ___cxa_allocate_exception(4) | 0; - HEAP32[$7 >> 2] = 2224; - ___cxa_throw($7 | 0, 544, 1); - } else $$lcssa = $1; while (0); - return $$lcssa | 0; -} - -function _calloc($n_elements, $elem_size) { - $n_elements = $n_elements | 0; - $elem_size = $elem_size | 0; - var $1 = 0, $6 = 0, $req$0 = 0; - if (!$n_elements) $req$0 = 0; else { - $1 = Math_imul($elem_size, $n_elements) | 0; - if (($elem_size | $n_elements) >>> 0 > 65535) $req$0 = (($1 >>> 0) / ($n_elements >>> 0) | 0 | 0) == ($elem_size | 0) ? $1 : -1; else $req$0 = $1; - } - $6 = _malloc($req$0) | 0; - if (!$6) return $6 | 0; - if (!(HEAP32[$6 + -4 >> 2] & 3)) return $6 | 0; - _memset($6 | 0, 0, $req$0 | 0) | 0; - return $6 | 0; -} - -function ___muldi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0; - $x_sroa_0_0_extract_trunc = $a$0; - $y_sroa_0_0_extract_trunc = $b$0; - $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; - $1$1 = tempRet0; - return (tempRet0 = (Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0) + (Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $1$1 | $1$1 & 0, $1$0 | 0 | 0) | 0; -} - -function __ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($this) { - $this = $this | 0; - __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this + 32 | 0); - __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this + 16 | 0); - __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this); - return; -} - -function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($this, $__cap, $__start, $__a) { +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEE12__deallocateEPNS_11__hash_nodeIS4_PvEE($this, $__np) { $this = $this | 0; - $__cap = $__cap | 0; - $__start = $__start | 0; - $__a = $__a | 0; - var $5 = 0, $6 = 0; - HEAP32[$this + 12 >> 2] = 0; - HEAP32[$this + 16 >> 2] = $__a; - if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0; - HEAP32[$this >> 2] = $5; - $6 = $5 + ($__start << 3) | 0; - HEAP32[$this + 8 >> 2] = $6; - HEAP32[$this + 4 >> 2] = $6; - HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3); + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); + } return; } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($this, $__str) { +function __ZNSt3__113__vector_baseItNS_9allocatorItEEED2Ev($this) { $this = $this | 0; - $__str = $__str | 0; - var $1 = 0, $3 = 0; - if (($this | 0) != ($__str | 0)) { - $1 = HEAP8[$__str >> 0] | 0; - $3 = ($1 & 1) == 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $3 ? $__str + 1 | 0 : HEAP32[$__str + 8 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$__str + 4 >> 2] | 0); + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -2 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); } return; } -function __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this) { +function __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this) { $this = $this | 0; var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; $0 = HEAP32[$this >> 2] | 0; @@ -72059,7 +121861,7 @@ function __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this) if (($$pre$i$i | 0) != ($0 | 0)) { $5 = $$pre$i$i; while (1) { - $4 = $5 + -8 | 0; + $4 = $5 + -4 | 0; if (($4 | 0) == ($0 | 0)) { $$lcssa = $4; break; @@ -72072,87 +121874,69 @@ function __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this) return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($this, $s) { +function __ZNSt3__113__vector_baseIhNS_9allocatorIhEEED2Ev($this) { $this = $this | 0; - $s = $s | 0; - var $2 = 0, dest = 0, src = 0, stop = 0; - HEAP8[$this >> 0] = 20; - dest = $this + 1 | 0; - src = $s; - stop = dest + 10 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$this + 11 >> 0] = 0; - $2 = $this + 12 | 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$2 + 4 >> 2] = 0; - HEAP32[$2 + 8 >> 2] = 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -1 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); + } return; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($this, $s) { +function __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this) { $this = $this | 0; - $s = $s | 0; - var $2 = 0, dest = 0, src = 0, stop = 0; - HEAP8[$this >> 0] = 18; - dest = $this + 1 | 0; - src = $s; - stop = dest + 9 | 0; - do { - HEAP8[dest >> 0] = HEAP8[src >> 0] | 0; - dest = dest + 1 | 0; - src = src + 1 | 0; - } while ((dest | 0) < (stop | 0)); - HEAP8[$this + 10 >> 0] = 0; - $2 = $this + 12 | 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$2 + 4 >> 2] = 0; - HEAP32[$2 + 8 >> 2] = 0; + var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + $$pre$i$i = HEAP32[$2 >> 2] | 0; + if (($$pre$i$i | 0) != ($0 | 0)) { + $5 = $$pre$i$i; + while (1) { + $4 = $5 + -4 | 0; + if (($4 | 0) == ($0 | 0)) { + $$lcssa = $4; + break; + } else $5 = $4; + } + HEAP32[$2 >> 2] = $$lcssa; + } + __ZdlPv($0); + } return; } -function ___towrite($f) { - $f = $f | 0; - var $$0 = 0, $0 = 0, $13 = 0, $2 = 0, $6 = 0; - $0 = $f + 74 | 0; - $2 = HEAP8[$0 >> 0] | 0; - HEAP8[$0 >> 0] = $2 + 255 | $2; - $6 = HEAP32[$f >> 2] | 0; - if (!($6 & 8)) { - HEAP32[$f + 8 >> 2] = 0; - HEAP32[$f + 4 >> 2] = 0; - $13 = HEAP32[$f + 44 >> 2] | 0; - HEAP32[$f + 28 >> 2] = $13; - HEAP32[$f + 20 >> 2] = $13; - HEAP32[$f + 16 >> 2] = $13 + (HEAP32[$f + 48 >> 2] | 0); - $$0 = 0; - } else { - HEAP32[$f >> 2] = $6 | 32; - $$0 = -1; - } +function __ZN6vision29SolveSymmetricLinearSystem3x3IfEEbPT_PKS1_S4_($x, $A, $b) { + $x = $x | 0; + $A = $A | 0; + $b = $b | 0; + var $$0 = 0, $Ainv = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 48 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $Ainv = sp; + if (__ZN6vision25MatrixInverseSymmetric3x3IfEEbPT_PKS1_S1_($Ainv, $A, 1.1920928955078125e-07) | 0) { + __ZN6vision16Multiply_3x3_3x1IfEEvPT_PKS1_S4_($x, $Ainv, $b); + $$0 = 1; + } else $$0 = 0; + STACKTOP = sp; return $$0 | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($this, $f) { - $this = $this | 0; - $f = $f | 0; - var $2 = 0; - HEAP32[$this >> 2] = HEAP32[$f >> 2]; - HEAP32[$this + 4 >> 2] = HEAP32[$f + 4 >> 2]; - HEAP32[$this + 8 >> 2] = HEAP32[$f + 8 >> 2]; - HEAP32[$f >> 2] = 0; - HEAP32[$f + 4 >> 2] = 0; - HEAP32[$f + 8 >> 2] = 0; - $2 = $this + 12 | 0; - HEAP32[$2 >> 2] = 0; - HEAP32[$2 + 4 >> 2] = 0; - HEAP32[$2 + 8 >> 2] = 0; - return; -} - function _matrixCopy($src, $dst) { $src = $src | 0; $dst = $dst | 0; @@ -72183,6 +121967,58 @@ function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unord return; } +function __ZN6vision28BinaryHierarchicalClusteringILi96EED2Ev($this) { + $this = $this | 0; + var $3 = 0, $4 = 0; + __ZNSt3__113__vector_baseIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEED2Ev($this + 84 | 0); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 72 | 0); + __ZN6vision14BinarykMedoidsILi96EED2Ev($this + 12 | 0); + $3 = $this + 8 | 0; + $4 = HEAP32[$3 >> 2] | 0; + HEAP32[$3 >> 2] = 0; + if ($4) { + __ZN6vision4NodeILi96EED2Ev($4); + __ZdlPv($4); + } + return; +} + +function __ZN6vision18BinomialPyramid32fC2Ev($this) { + $this = $this | 0; + var $0 = 0, dest = 0, stop = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$0 + 4 >> 2] = 0; + HEAP32[$0 + 8 >> 2] = 0; + HEAP32[$0 + 12 >> 2] = 0; + HEAP32[$0 + 16 >> 2] = 0; + HEAP32[$0 + 20 >> 2] = 0; + HEAP32[$0 + 24 >> 2] = 0; + HEAP32[$this >> 2] = 4396; + dest = $this + 32 | 0; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + return; +} + +function __ZNSt3__113unordered_mapIiP14AR2SurfaceSetTNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS2_EEEEE25__construct_node_with_keyERS9_($agg$result, $this, $__k) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__k = $__k | 0; + var $1 = 0, $8 = 0; + $1 = __Znwj(16) | 0; + HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2]; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$agg$result >> 2] = $1; + $8 = $agg$result + 4 | 0; + HEAP32[$8 >> 2] = $this + 8; + HEAP32[$8 + 4 >> 2] = 257; + return; +} + function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($agg$result, $this, $__k) { $agg$result = $agg$result | 0; $this = $this | 0; @@ -72198,6 +122034,49 @@ function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allo return; } +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_($this, $__str) { + $this = $this | 0; + $__str = $__str | 0; + if (!(HEAP8[$__str >> 0] & 1)) { + HEAP32[$this >> 2] = HEAP32[$__str >> 2]; + HEAP32[$this + 4 >> 2] = HEAP32[$__str + 4 >> 2]; + HEAP32[$this + 8 >> 2] = HEAP32[$__str + 8 >> 2]; + } else __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this, HEAP32[$__str + 8 >> 2] | 0, HEAP32[$__str + 4 >> 2] | 0); + return; +} + +function __ZNSt3__114__split_bufferIhRNS_9allocatorIhEEEC2EjjS3_($this, $__cap, $__start, $__a) { + $this = $this | 0; + $__cap = $__cap | 0; + $__start = $__start | 0; + $__a = $__a | 0; + var $4 = 0, $5 = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = $__a; + if (!$__cap) $4 = 0; else $4 = __Znwj($__cap) | 0; + HEAP32[$this >> 2] = $4; + $5 = $4 + $__start | 0; + HEAP32[$this + 8 >> 2] = $5; + HEAP32[$this + 4 >> 2] = $5; + HEAP32[$this + 12 >> 2] = $4 + $__cap; + return; +} + +function __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEE12__deallocateEPNS_11__hash_nodeIS2_PvEE($this, $__np) { + $this = $this | 0; + $__np = $__np | 0; + var $$01 = 0, $$01$looptemp = 0; + if ($__np) { + $$01 = $__np; + do { + $$01$looptemp = $$01; + $$01 = HEAP32[$$01 >> 2] | 0; + __ZdlPv($$01$looptemp); + } while (($$01 | 0) != 0); + } + return; +} + function _byteSwapDouble($from, $to) { $from = $from | 0; $to = $to | 0; @@ -72212,6 +122091,99 @@ function _byteSwapDouble($from, $to) { return; } +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP8[$this + 128 >> 0] = 0; + if ($__n) { + __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE8allocateEj($this, $__n); + __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE18__construct_at_endEj($this, $__n); + } + return; +} + +function __ZNSt3__18ios_base16__call_callbacksENS0_5eventE($this, $ev) { + $this = $this | 0; + $ev = $ev | 0; + var $1 = 0, $2 = 0, $3 = 0, $i$01 = 0; + $1 = HEAP32[$this + 40 >> 2] | 0; + $2 = $this + 32 | 0; + $3 = $this + 36 | 0; + if ($1) { + $i$01 = $1; + do { + $i$01 = $i$01 + -1 | 0; + FUNCTION_TABLE_viii[HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$01 << 2) >> 2] & 3]($ev, $this, HEAP32[(HEAP32[$3 >> 2] | 0) + ($i$01 << 2) >> 2] | 0); + } while (($i$01 | 0) != 0); + } + return; +} + +function _arUtilRemoveExt($filename) { + $filename = $filename | 0; + var $i$0 = 0, $j$0 = 0, $j$0$lcssa = 0, $j$1 = 0; + $i$0 = 0; + $j$0 = -1; + L1 : while (1) { + switch (HEAP8[$filename + $i$0 >> 0] | 0) { + case 0: + { + $j$0$lcssa = $j$0; + break L1; + break; + } + case 46: + { + $j$1 = $i$0; + break; + } + default: + $j$1 = $j$0; + } + $i$0 = $i$0 + 1 | 0; + $j$0 = $j$1; + } + if (($j$0$lcssa | 0) != -1) HEAP8[$filename + $j$0$lcssa >> 0] = 0; + return 0; +} + +function __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 8 | 0; + } + HEAP32[$0 >> 2] = $$promoted + ($__n << 3); + return; +} + +function _output_message($cinfo) { + $cinfo = $cinfo | 0; + var $3 = 0, $buffer = 0, $vararg_buffer = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 208 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $vararg_buffer = sp; + $buffer = sp + 8 | 0; + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$cinfo >> 2] | 0) + 12 >> 2] & 63]($cinfo, $buffer); + $3 = HEAP32[1607] | 0; + HEAP32[$vararg_buffer >> 2] = $buffer; + _fprintf($3, 39311, $vararg_buffer) | 0; + STACKTOP = sp; + return; +} + function copyTempDouble(ptr) { ptr = ptr | 0; HEAP8[tempDoublePtr >> 0] = HEAP8[ptr >> 0]; @@ -72224,15 +122196,215 @@ function copyTempDouble(ptr) { HEAP8[tempDoublePtr + 7 >> 0] = HEAP8[ptr + 7 >> 0]; } +function __ZNKSt3__17codecvtIwc11__mbstate_tE11do_encodingEv($this) { + $this = $this | 0; + var $$0 = 0, $0 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0; + $0 = $this + 8 | 0; + $2 = _uselocale(HEAP32[$0 >> 2] | 0) | 0; + $3 = _mbtowc(0, 0, 4) | 0; + if ($2) _uselocale($2) | 0; + if (!$3) { + $6 = HEAP32[$0 >> 2] | 0; + if (!$6) $$0 = 1; else { + $8 = _uselocale($6) | 0; + if (!$8) $$0 = 0; else { + _uselocale($8) | 0; + $$0 = 0; + } + } + } else $$0 = -1; + return $$0 | 0; +} + +function __ZN6vision15get_pretty_timeEv($agg$result) { + $agg$result = $agg$result | 0; + var $str = 0, $t = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 272 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $t = sp; + $str = sp + 8 | 0; + _time($t | 0) | 0; + _strftime($str | 0, 256, 33497, _localtime($t | 0) | 0) | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($agg$result, $str, _strlen($str) | 0); + STACKTOP = sp; + return; +} + +function __ZN6vision8KeyframeILi96EE10buildIndexEv($this) { + $this = $this | 0; + HEAP32[$this + 56 >> 2] = 128; + HEAP32[$this + 52 >> 2] = 8; + __ZNSt3__16vectorIiNS_9allocatorIiEEE6resizeEj($this + 60 | 0, 8); + HEAP32[$this + 140 >> 2] = 8; + HEAP32[$this + 144 >> 2] = 16; + __ZN6vision28BinaryHierarchicalClusteringILi96EE5buildEPKhi($this + 36 | 0, HEAP32[$this + 12 >> 2] | 0, ((HEAP32[$this + 28 >> 2] | 0) - (HEAP32[$this + 24 >> 2] | 0) | 0) / 20 | 0); + return; +} + +function __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAPF32[$1 >> 2] = 0.0; + HEAPF32[$1 + 4 >> 2] = 0.0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 8 | 0; + } + HEAP32[$0 >> 2] = $$promoted + ($__n << 3); + return; +} + +function __ZN6vision14Determinant3x3IfEET_PKS1_($A) { + $A = $A | 0; + var $1 = 0.0, $12 = 0.0, $14 = 0.0, $3 = 0.0, $5 = 0.0, $7 = 0.0; + $1 = +HEAPF32[$A + 16 >> 2]; + $3 = +HEAPF32[$A + 20 >> 2]; + $5 = +HEAPF32[$A + 28 >> 2]; + $7 = +HEAPF32[$A + 32 >> 2]; + $12 = +HEAPF32[$A + 12 >> 2]; + $14 = +HEAPF32[$A + 24 >> 2]; + return +(($1 * $7 - $3 * $5) * +HEAPF32[$A >> 2] - +HEAPF32[$A + 4 >> 2] * ($7 * $12 - $3 * $14) + ($5 * $12 - $1 * $14) * +HEAPF32[$A + 8 >> 2]); +} + +function __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE6sentryC2ERS3_($this, $__os) { + $this = $this | 0; + $__os = $__os | 0; + var $3 = 0, $8 = 0; + HEAP8[$this >> 0] = 0; + HEAP32[$this + 4 >> 2] = $__os; + $3 = HEAP32[(HEAP32[$__os >> 2] | 0) + -12 >> 2] | 0; + if (!(HEAP32[$__os + ($3 + 16) >> 2] | 0)) { + $8 = HEAP32[$__os + ($3 + 72) >> 2] | 0; + if ($8) __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv($8) | 0; + HEAP8[$this >> 0] = 1; + } + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC2ERS3_($this, $__os) { + $this = $this | 0; + $__os = $__os | 0; + var $3 = 0, $8 = 0; + HEAP8[$this >> 0] = 0; + HEAP32[$this + 4 >> 2] = $__os; + $3 = HEAP32[(HEAP32[$__os >> 2] | 0) + -12 >> 2] | 0; + if (!(HEAP32[$__os + ($3 + 16) >> 2] | 0)) { + $8 = HEAP32[$__os + ($3 + 72) >> 2] | 0; + if ($8) __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv($8) | 0; + HEAP8[$this >> 0] = 1; + } + return; +} + +function __ZNSt3__16locale2id5__getEv($this) { + $this = $this | 0; + var $__p$i = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $__p$i = sp; + if ((HEAP32[$this >> 2] | 0) != -1) { + HEAP32[$__p$i >> 2] = $this; + HEAP32[$__p$i + 4 >> 2] = 148; + HEAP32[$__p$i + 8 >> 2] = 0; + __ZNSt3__111__call_onceERVmPvPFvS2_E($this, $__p$i, 149); + } + STACKTOP = sp; + return (HEAP32[$this + 4 >> 2] | 0) + -1 | 0; +} + +function __ZNSt3__117__call_once_proxyINS_5tupleIJNS_12_GLOBAL__N_111__fake_bindEEEEEEvPv($__vp) { + $__vp = $__vp | 0; + var $$field = 0, $$field2 = 0, $0 = 0, $10 = 0, $3 = 0; + $0 = $__vp + 4 | 0; + $$field = HEAP32[$0 >> 2] | 0; + $$field2 = HEAP32[$0 + 4 >> 2] | 0; + $3 = (HEAP32[$__vp >> 2] | 0) + ($$field2 >> 1) | 0; + if (!($$field2 & 1)) $10 = $$field; else $10 = HEAP32[(HEAP32[$3 >> 2] | 0) + $$field >> 2] | 0; + FUNCTION_TABLE_vi[$10 & 255]($3); + return; +} + function ___ftello_unlocked($f) { $f = $f | 0; var $$0 = 0, $10 = 0, $11 = 0; if (!(HEAP32[$f >> 2] & 128)) $10 = 1; else $10 = (HEAP32[$f + 20 >> 2] | 0) >>> 0 > (HEAP32[$f + 28 >> 2] | 0) >>> 0 ? 2 : 1; - $11 = FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, 0, $10) | 0; + $11 = FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 63]($f, 0, $10) | 0; if (($11 | 0) < 0) $$0 = $11; else $$0 = $11 - (HEAP32[$f + 8 >> 2] | 0) + (HEAP32[$f + 4 >> 2] | 0) + (HEAP32[$f + 20 >> 2] | 0) - (HEAP32[$f + 28 >> 2] | 0) | 0; return $$0 | 0; } +function __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + if ($__n) { + __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE8allocateEj($this, $__n); + __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n); + } + return; +} + +function _jpeg_std_error($err) { + $err = $err | 0; + HEAP32[$err >> 2] = 130; + HEAP32[$err + 4 >> 2] = 43; + HEAP32[$err + 8 >> 2] = 131; + HEAP32[$err + 12 >> 2] = 44; + HEAP32[$err + 16 >> 2] = 132; + HEAP32[$err + 104 >> 2] = 0; + HEAP32[$err + 108 >> 2] = 0; + HEAP32[$err + 20 >> 2] = 0; + HEAP32[$err + 112 >> 2] = 4844; + HEAP32[$err + 116 >> 2] = 123; + HEAP32[$err + 120 >> 2] = 0; + HEAP32[$err + 124 >> 2] = 0; + HEAP32[$err + 128 >> 2] = 0; + return $err | 0; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$promoted$i = 0, $0 = 0; + HEAP32[$this >> 2] = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + if ($__n) { + __ZNSt3__16vectorIiNS_9allocatorIiEEE8allocateEj($this, $__n); + $$promoted$i = HEAP32[$0 >> 2] | 0; + _memset($$promoted$i | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$0 >> 2] = $$promoted$i + ($__n << 2); + } + return; +} + +function __ZNSt3__16vectorIfNS_9allocatorIfEEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$promoted$i = 0, $0 = 0; + HEAP32[$this >> 2] = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + if ($__n) { + __ZNSt3__16vectorIfNS_9allocatorIfEEE8allocateEj($this, $__n); + $$promoted$i = HEAP32[$0 >> 2] | 0; + _memset($$promoted$i | 0, 0, $__n << 2 | 0) | 0; + HEAP32[$0 >> 2] = $$promoted$i + ($__n << 2); + } + return; +} + function ___uflow($f) { $f = $f | 0; var $$0 = 0, $c = 0, label = 0, sp = 0; @@ -72241,7 +122413,7 @@ function ___uflow($f) { if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); $c = sp; if (!(HEAP32[$f + 8 >> 2] | 0)) if (!(___toread($f) | 0)) label = 3; else $$0 = -1; else label = 3; - if ((label | 0) == 3) if ((FUNCTION_TABLE_iiii[HEAP32[$f + 32 >> 2] & 15]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1; + if ((label | 0) == 3) if ((FUNCTION_TABLE_iiii[HEAP32[$f + 32 >> 2] & 63]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1; STACKTOP = sp; return $$0 | 0; } @@ -72269,6 +122441,36 @@ function _deleteHandle($arc) { return; } +function __ZN6vision14SampleReceptorEPKNS_25GaussianScaleSpacePyramidEffii($pyramid, $x, $y, $octave, $scale) { + $pyramid = $pyramid | 0; + $x = +$x; + $y = +$y; + $octave = $octave | 0; + $scale = $scale | 0; + var $3 = 0.0, $5 = 0.0; + $3 = 1.0 / +(1 << $octave | 0); + $5 = $3 * .5 + -.5; + return +(+__ZN6vision22SampleReceptorBilinearERKNS_5ImageEff(__ZNK6vision25GaussianScaleSpacePyramid3getEjj($pyramid, $octave, $scale) | 0, $3 * $x + $5, $3 * $y + $5)); +} + +function __ZNSt3__16vectorINS_4pairIfiEENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $$promoted = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$promoted = HEAP32[$0 >> 2] | 0; + $$0 = $__n; + $1 = $$promoted; + while (1) { + HEAPF32[$1 >> 2] = 0.0; + HEAP32[$1 + 4 >> 2] = 0; + $$0 = $$0 + -1 | 0; + if (!$$0) break; else $1 = $1 + 8 | 0; + } + HEAP32[$0 >> 2] = $$promoted + ($__n << 3); + return; +} + function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($this, $s) { $this = $this | 0; $s = $s | 0; @@ -72286,6 +122488,27 @@ function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($this, $s) return; } +function _ar2ReadJpegImage2($fp) { + $fp = $fp | 0; + var $$0 = 0, $0 = 0, $6 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = _malloc(20) | 0; + if (!$0) { + _arLog(3, 21359, sp); + _exit(1); + } + $6 = _jpgread($fp, $0 + 8 | 0, $0 + 12 | 0, $0 + 4 | 0, $0 + 16 | 0) | 0; + HEAP32[$0 >> 2] = $6; + if (!$6) { + _free($0); + $$0 = 0; + } else $$0 = $0; + STACKTOP = sp; + return $$0 | 0; +} + function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) { $this = $this | 0; $info = $info | 0; @@ -72295,6 +122518,41 @@ function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_1 return; } +function __ZN6vision35MultiplyPointSimilarityInhomogenousIfEEvPT_PKS1_S4_($xp, $H, $x) { + $xp = $xp | 0; + $H = $H | 0; + $x = $x | 0; + var $5 = 0; + $5 = $x + 4 | 0; + HEAPF32[$xp >> 2] = +HEAPF32[$H + 8 >> 2] + (+HEAPF32[$H >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$H + 4 >> 2] * +HEAPF32[$5 >> 2]); + HEAPF32[$xp + 4 >> 2] = +HEAPF32[$H + 20 >> 2] + (+HEAPF32[$H + 12 >> 2] * +HEAPF32[$x >> 2] + +HEAPF32[$H + 16 >> 2] * +HEAPF32[$5 >> 2]); + return; +} + +function __ZNSt3__111__stdoutbufIwE5imbueERKNS_6localeE($this, $__loc) { + $this = $this | 0; + $__loc = $__loc | 0; + var $10 = 0, $3 = 0; + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 24 >> 2] & 127]($this) | 0; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13748) | 0; + HEAP32[$this + 36 >> 2] = $3; + $10 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$3 >> 2] | 0) + 28 >> 2] & 127]($3) | 0) & 1; + HEAP8[$this + 44 >> 0] = $10; + return; +} + +function __ZNSt3__111__stdoutbufIcE5imbueERKNS_6localeE($this, $__loc) { + $this = $this | 0; + $__loc = $__loc | 0; + var $10 = 0, $3 = 0; + FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 24 >> 2] & 127]($this) | 0; + $3 = __ZNKSt3__16locale9use_facetERNS0_2idE($__loc, 13740) | 0; + HEAP32[$this + 36 >> 2] = $3; + $10 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[$3 >> 2] | 0) + 28 >> 2] & 127]($3) | 0) & 1; + HEAP8[$this + 44 >> 0] = $10; + return; +} + function ___muldsi3($a, $b) { $a = $a | 0; $b = $b | 0; @@ -72309,6 +122567,78 @@ function ___muldsi3($a, $b) { return (tempRet0 = ($8 >>> 16) + (Math_imul($11, $6) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, $8 + $12 << 16 | $3 & 65535 | 0) | 0; } +function _get_buff413($buf, $fp) { + $buf = $buf | 0; + $fp = $fp | 0; + var $$0 = 0, $0 = 0, $5 = 0; + $0 = _fgets($buf, 256, $fp) | 0; + L1 : do if (!$0) $$0 = 0; else { + $5 = $0; + while (1) { + switch (HEAP8[$buf >> 0] | 0) { + case 35: + case 10: + break; + default: + { + $$0 = $5; + break L1; + } + } + $5 = _fgets($buf, 256, $fp) | 0; + if (!$5) { + $$0 = 0; + break L1; + } + } + } while (0); + return $$0 | 0; +} + +function _get_buff377($buf, $fp) { + $buf = $buf | 0; + $fp = $fp | 0; + var $$0 = 0, $0 = 0, $5 = 0; + $0 = _fgets($buf, 256, $fp) | 0; + L1 : do if (!$0) $$0 = 0; else { + $5 = $0; + while (1) { + switch (HEAP8[$buf >> 0] | 0) { + case 35: + case 10: + break; + default: + { + $$0 = $5; + break L1; + } + } + $5 = _fgets($buf, 256, $fp) | 0; + if (!$5) { + $$0 = 0; + break L1; + } + } + } while (0); + return $$0 | 0; +} + +function __ZNSt3__110shared_ptrIhEC2Ih16NullArrayDeleterIhEEEPT_T0_NS_9enable_ifIXsr14is_convertibleIS6_PhEE5valueENS1_5__natEE4typeE($this, $__p, $__d, $0) { + $this = $this | 0; + $__p = $__p | 0; + $__d = $__d | 0; + $0 = $0 | 0; + var $1 = 0; + HEAP32[$this >> 2] = $__p; + $1 = __Znwj(16) | 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 >> 2] = 4796; + HEAP32[$1 + 12 >> 2] = $__p; + HEAP32[$this + 4 >> 2] = $1; + return; +} + function _memmove(dest, src, num) { dest = dest | 0; src = src | 0; @@ -72329,6 +122659,15 @@ function _memmove(dest, src, num) { return dest | 0; } +function __ZN6vision9MaxIndex5IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0, $index$2 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + $index$2 = +HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1; + return (+HEAPF32[$x + 16 >> 2] > +HEAPF32[$x + ($index$2 << 2) >> 2] ? 4 : $index$2) | 0; +} + function _arUtilGetPixelSize($arPixelFormat) { $arPixelFormat = $arPixelFormat | 0; var $$0 = 0; @@ -72370,6 +122709,215 @@ function _arUtilGetPixelSize($arPixelFormat) { return $$0 | 0; } +function __ZN6vision27OrthogonalizePivot8x9Basis7IfEEbPT_S2_($Q, $A) { + $Q = $Q | 0; + $A = $A | 0; + var $$0 = 0, $0 = 0, $3 = 0.0; + $0 = $Q + 252 | 0; + __ZN6vision21AccumulateProjection9IfEEvPT_PKS1_S4_($0, $Q + 216 | 0, $A + 252 | 0); + $3 = +__ZN6vision11DotProduct9IfEET_PKS1_S3_($0, $0); + if ($3 == 0.0) $$0 = 0; else { + __ZN6vision12ScaleVector9IfEEvPT_PKS1_S1_($0, $0, 1.0 / +Math_sqrt(+$3)); + $$0 = 1; + } + return $$0 | 0; +} + +function __ZNKSt3__15ctypeIcE8do_widenEPKcS3_Pc($this, $low, $high, $dest) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + $dest = $dest | 0; + var $$012 = 0, $$03 = 0; + if (($low | 0) != ($high | 0)) { + $$012 = $low; + $$03 = $dest; + while (1) { + HEAP8[$$03 >> 0] = HEAP8[$$012 >> 0] | 0; + $$012 = $$012 + 1 | 0; + if (($$012 | 0) == ($high | 0)) break; else $$03 = $$03 + 1 | 0; + } + } + return $high | 0; +} + +function __ZN6vision18BinomialPyramid32fD2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 4396; + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this + 56 | 0); + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this + 44 | 0); + __ZNSt3__113__vector_baseItNS_9allocatorItEEED2Ev($this + 32 | 0); + HEAP32[$this >> 2] = 4412; + __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this + 4 | 0); + return; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + if ($__n) { + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE8allocateEj($this, $__n); + __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n); + } + return; +} + +function __ZNKSt3__15ctypeIwE8do_widenEPKcS3_Pw($this, $low, $high, $dest) { + $this = $this | 0; + $low = $low | 0; + $high = $high | 0; + $dest = $dest | 0; + var $$012 = 0, $$03 = 0; + if (($low | 0) != ($high | 0)) { + $$012 = $low; + $$03 = $dest; + while (1) { + HEAP32[$$03 >> 2] = HEAP8[$$012 >> 0]; + $$012 = $$012 + 1 | 0; + if (($$012 | 0) == ($high | 0)) break; else $$03 = $$03 + 4 | 0; + } + } + return $high | 0; +} + +function __ZN6vision23DeterminantSymmetric3x3IfEET_PKS1_($A) { + $A = $A | 0; + var $1 = 0.0, $11 = 0.0, $14 = 0.0, $17 = 0.0, $3 = 0.0, $8 = 0.0; + $1 = +HEAPF32[$A + 32 >> 2]; + $3 = +HEAPF32[$A + 4 >> 2]; + $8 = +HEAPF32[$A + 8 >> 2]; + $11 = +HEAPF32[$A + 20 >> 2]; + $14 = +HEAPF32[$A + 16 >> 2]; + $17 = +HEAPF32[$A >> 2]; + return +($3 * 2.0 * $8 * $11 - $1 * ($3 * $3) - $8 * $8 * $14 - $11 * $11 * $17 + $1 * ($14 * $17)); +} + +function __ZN6vision21HoughSimilarityVotingD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 124 | 0); + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this + 112 | 0); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIjjEENS_22__unordered_map_hasherIjS2_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS2_NS_8equal_toIjEELb1EEENS_9allocatorIS2_EEED2Ev($this + 92 | 0); + return; +} + +function __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + $2 = $this + 8 | 0; + while (1) { + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) == ($1 | 0)) break; + $5 = $3 + -32 | 0; + HEAP32[$2 >> 2] = $5; + __ZN6vision5ImageD2Ev($5); + } + $6 = HEAP32[$this >> 2] | 0; + if ($6) __ZdlPv($6); + return; +} + +function __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($this, $__p, $0) { + $this = $this | 0; + $__p = $__p | 0; + $0 = $0 | 0; + var $1 = 0; + HEAP32[$this >> 2] = $__p; + $1 = __Znwj(16) | 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 >> 2] = 4480; + HEAP32[$1 + 12 >> 2] = $__p; + HEAP32[$this + 4 >> 2] = $1; + return; +} + +function __ZNSt3__16vectorINS0_INS_4pairIfjEENS_9allocatorIS2_EEEENS3_IS5_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n * 12 | 0) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n * 12 | 0); + return; + } +} + +function __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEEC2Ej($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + if ($__n) { + __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEE8allocateEj($this, $__n); + __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEE18__construct_at_endEj($this, $__n); + } + return; +} + +function __ZNK6vision14VisualDatabaseINS_14FREAKExtractorENS_18BinaryFeatureStoreENS_20BinaryFeatureMatcherILi96EEEE13queryKeyframeEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + var $4 = 0; + HEAP32[$agg$result >> 2] = HEAP32[$this + 64 >> 2]; + $4 = HEAP32[$this + 68 >> 2] | 0; + HEAP32[$agg$result + 4 >> 2] = $4; + if ($4) __ZNSt3__119__shared_weak_count12__add_sharedEv($4); + return; +} + +function _jpeg_abort($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $9 = 0; + $0 = $cinfo + 4 | 0; + do if (HEAP32[$0 >> 2] | 0) { + FUNCTION_TABLE_vii[HEAP32[(HEAP32[$0 >> 2] | 0) + 36 >> 2] & 63]($cinfo, 1); + $9 = $cinfo + 20 | 0; + if (!(HEAP32[$cinfo + 16 >> 2] | 0)) { + HEAP32[$9 >> 2] = 100; + break; + } else { + HEAP32[$9 >> 2] = 200; + HEAP32[$cinfo + 304 >> 2] = 0; + break; + } + } while (0); + return; +} + +function __ZNSt3__16vectorIN6vision17PriorityQueueItemILi96EEENS_9allocatorIS3_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n << 3) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n << 3); + return; + } +} + +function _reset_input_controller($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0; + $1 = HEAP32[$cinfo + 436 >> 2] | 0; + HEAP32[$1 >> 2] = 69; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; + HEAP32[$1 + 24 >> 2] = 1; + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo >> 2] | 0) + 16 >> 2] & 255]($cinfo); + FUNCTION_TABLE_vi[HEAP32[HEAP32[$cinfo + 440 >> 2] >> 2] & 255]($cinfo); + HEAP32[$cinfo + 160 >> 2] = 0; + return; +} + function _copysign($x, $y) { $x = +$x; $y = +$y; @@ -72384,6 +122932,42 @@ function _copysign($x, $y) { return +(+HEAPF64[tempDoublePtr >> 3]); } +function _ar3DCreateHandle2($cpara) { + $cpara = $cpara | 0; + var $$0 = 0, $0 = 0, $2 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = _malloc(4) | 0; + if (!$0) { + _arLog(3, 21359, sp); + _exit(1); + } + $2 = _icpCreateHandle($cpara) | 0; + HEAP32[$0 >> 2] = $2; + if (!$2) { + _free($0); + $$0 = 0; + } else $$0 = $0; + STACKTOP = sp; + return $$0 | 0; +} + +function __ZSt9terminatev() { + var $0 = 0, $17 = 0, $2 = 0, $5 = 0; + $0 = ___cxa_get_globals_fast() | 0; + if ($0) { + $2 = HEAP32[$0 >> 2] | 0; + if ($2) { + $5 = $2 + 48 | 0; + if ((HEAP32[$5 >> 2] & -256 | 0) == 1126902528 ? (HEAP32[$5 + 4 >> 2] | 0) == 1129074247 : 0) __ZSt11__terminatePFvvE(HEAP32[$2 + 12 >> 2] | 0); + } + } + $17 = HEAP32[1498] | 0; + HEAP32[1498] = $17 + 0; + __ZSt11__terminatePFvvE($17); +} + function _arMatrixAlloc($row, $clm) { $row = $row | 0; $clm = $clm | 0; @@ -72406,25 +122990,117 @@ function _arMatrixAlloc($row, $clm) { return $$0 | 0; } -function _ar3DCreateHandle2($cpara) { - $cpara = $cpara | 0; - var $$0 = 0, $0 = 0, $2 = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16 | 0; - if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); - $0 = _malloc(4) | 0; - if (!$0) { - _arLog(3, 5471, sp); - _exit(1); +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekoffExNS_8ios_base7seekdirEj($agg$result, $this, $0, $1, $2, $3) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, $9 = 0; + $4 = $agg$result; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + $9 = $agg$result + 8 | 0; + HEAP32[$9 >> 2] = -1; + HEAP32[$9 + 4 >> 2] = -1; + return; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj($agg$result, $this, $0, $1, $2, $3) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + $2 = $2 | 0; + $3 = $3 | 0; + var $4 = 0, $9 = 0; + $4 = $agg$result; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + $9 = $agg$result + 8 | 0; + HEAP32[$9 >> 2] = -1; + HEAP32[$9 + 4 >> 2] = -1; + return; +} + +function __GLOBAL__sub_I_ARToolKitJS_cpp() { + HEAP32[1455] = 0; + HEAP32[1456] = 0; + HEAP32[1457] = 0; + HEAP32[1458] = 0; + HEAPF32[1459] = 1.0; + ___cxa_atexit(141, 5820, ___dso_handle | 0) | 0; + HEAP32[1460] = 0; + HEAP32[1461] = 0; + HEAP32[1462] = 0; + HEAP32[1463] = 0; + HEAPF32[1464] = 1.0; + ___cxa_atexit(142, 5840, ___dso_handle | 0) | 0; + __ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev(0); + return; +} + +function __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this) { + $this = $this | 0; + var $0 = 0, $2 = 0, $3 = 0, $5 = 0; + $0 = HEAP32[$this >> 2] | 0; + if ($0) { + $2 = $this + 4 | 0; + while (1) { + $3 = HEAP32[$2 >> 2] | 0; + if (($3 | 0) == ($0 | 0)) break; + $5 = $3 + -32 | 0; + HEAP32[$2 >> 2] = $5; + __ZN6vision5ImageD2Ev($5); + } + __ZdlPv(HEAP32[$this >> 2] | 0); + } + return; +} + +function __ZNSt3__16vectorIN6vision12FeaturePointENS_9allocatorIS2_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 214748364) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n * 20 | 0) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n * 20 | 0); + return; } - $2 = _icpCreateHandle($cpara) | 0; - HEAP32[$0 >> 2] = $2; - if (!$2) { - _free($0); - $$0 = 0; - } else $$0 = $0; - STACKTOP = sp; - return $$0 | 0; +} + +function __ZNSt3__16vectorIN6vision7Point3dIfEENS_9allocatorIS3_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 357913941) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n * 12 | 0) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n * 12 | 0); + return; + } +} + +function __ZNSt3__15ctypeIcEC2EPKtbj($this, $tab, $del, $refs) { + $this = $this | 0; + $tab = $tab | 0; + $del = $del | 0; + $refs = $refs | 0; + var $2 = 0, $6 = 0; + HEAP32[$this + 4 >> 2] = $refs + -1; + HEAP32[$this >> 2] = 13696; + $2 = $this + 8 | 0; + HEAP32[$2 >> 2] = $tab; + HEAP8[$this + 12 >> 0] = $del & 1; + if (!$tab) { + $6 = ___ctype_b_loc() | 0; + HEAP32[$2 >> 2] = HEAP32[$6 >> 2]; + } + return; } function ___fseeko($f, $off, $whence) { @@ -72443,20 +123119,43 @@ function ___fseeko($f, $off, $whence) { return $6 | 0; } -function __GLOBAL__sub_I_ARToolKitJS_cpp() { - HEAP32[511] = 0; - HEAP32[512] = 0; - HEAP32[513] = 0; - HEAP32[514] = 0; - HEAPF32[515] = 1.0; - ___cxa_atexit(11, 2044, ___dso_handle | 0) | 0; - HEAP32[516] = 0; - HEAP32[517] = 0; - HEAP32[518] = 0; - HEAP32[519] = 0; - HEAPF32[520] = 1.0; - ___cxa_atexit(12, 2064, ___dso_handle | 0) | 0; - __ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev(0); +function __ZN6vision40Homography3PointsGeometricallyConsistentIfEEbPKT_S3_S3_S3_S3_S3_($x1, $x2, $x3, $x1p, $x2p, $x3p) { + $x1 = $x1 | 0; + $x2 = $x2 | 0; + $x3 = $x3 | 0; + $x1p = $x1p | 0; + $x2p = $x2p | 0; + $x3p = $x3p | 0; + var $1 = 0; + $1 = +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x1, $x2, $x3) > 0.0; + return $1 ^ +__ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($x1p, $x2p, $x3p) > 0.0 ^ 1 | 0; +} + +function __ZNSt3__16vectorIN6vision7Point2dIfEENS_9allocatorIS3_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n << 3) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n << 3); + return; + } +} + +function _jinit_input_controller($cinfo) { + $cinfo = $cinfo | 0; + var $3 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 0, 28) | 0; + HEAP32[$cinfo + 436 >> 2] = $3; + HEAP32[$3 >> 2] = 69; + HEAP32[$3 + 4 >> 2] = 121; + HEAP32[$3 + 8 >> 2] = 122; + HEAP32[$3 + 12 >> 2] = 123; + HEAP32[$3 + 16 >> 2] = 0; + HEAP32[$3 + 20 >> 2] = 0; + HEAP32[$3 + 24 >> 2] = 1; return; } @@ -72476,6 +123175,81 @@ function _arParamLTFree($paramLT_p) { return $$0 | 0; } +function __ZNSt3__114__split_bufferIN6vision5ImageERNS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $1 = 0; + $0 = $this + 8 | 0; + $$0 = $__n; + $1 = HEAP32[$0 >> 2] | 0; + do { + __ZN6vision5ImageC2Ev($1); + $1 = (HEAP32[$0 >> 2] | 0) + 32 | 0; + HEAP32[$0 >> 2] = $1; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); + return; +} + +function __ZNSt3__16vectorIPNS_6locale5facetENS_15__sso_allocatorIS3_Lj28EEEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$0 = $__n; + $1 = HEAP32[$0 >> 2] | 0; + do { + HEAP32[$1 >> 2] = 0; + $1 = (HEAP32[$0 >> 2] | 0) + 4 | 0; + HEAP32[$0 >> 2] = $1; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); + return; +} + +function __ZNSt3__16vectorINS_4pairIfjEENS_9allocatorIS2_EEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n << 3) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n << 3); + return; + } +} + +function __ZNSt3__110shared_ptrIhEC2IhEEPT_NS_9enable_ifIXsr14is_convertibleIS4_PhEE5valueENS1_5__natEE4typeE($this, $__p, $0) { + $this = $this | 0; + $__p = $__p | 0; + $0 = $0 | 0; + var $1 = 0; + HEAP32[$this >> 2] = $__p; + $1 = __Znwj(16) | 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 >> 2] = 4824; + HEAP32[$1 + 12 >> 2] = $__p; + HEAP32[$this + 4 >> 2] = $1; + return; +} + +function __ZN6vision5ImageC2ERKS0_($this, $image) { + $this = $this | 0; + $image = $image | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = 0; + HEAP32[$this + 20 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + HEAP32[$this + 28 >> 2] = 0; + __ZN6vision5Image11shallowCopyERKS0_($this, $image); + return; +} + function ___uremdi3($a$0, $a$1, $b$0, $b$1) { $a$0 = $a$0 | 0; $a$1 = $a$1 | 0; @@ -72490,6 +123264,22 @@ function ___uremdi3($a$0, $a$1, $b$0, $b$1) { return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0; } +function __ZN6vision16ComputeEdgeScoreERfPKf($score, $H) { + $score = $score | 0; + $H = $H | 0; + var $$0 = 0, $2 = 0.0, $3 = 0.0, $5 = 0.0, $7 = 0.0, $9 = 0.0; + $2 = +HEAPF32[$H >> 2]; + $3 = +HEAPF32[$H + 16 >> 2]; + $5 = +HEAPF32[$H + 4 >> 2]; + $7 = $2 * $3 - $5 * $5; + if ($7 == 0.0) $$0 = 0; else { + $9 = $2 + $3; + HEAPF32[$score >> 2] = $9 * $9 / $7; + $$0 = 1; + } + return $$0 | 0; +} + function _arDeleteHandle($handle) { $handle = $handle | 0; var $$0 = 0, $1 = 0, $2 = 0; @@ -72508,6 +123298,108 @@ function _arDeleteHandle($handle) { return $$0 | 0; } +function __ZNSt3__16vectorIN6vision5ImageENS_9allocatorIS2_EEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$0 = $__n; + $1 = HEAP32[$0 >> 2] | 0; + do { + __ZN6vision5ImageC2Ev($1); + $1 = (HEAP32[$0 >> 2] | 0) + 32 | 0; + HEAP32[$0 >> 2] = $1; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); + return; +} + +function _newlocale($mask, $name, $base) { + $mask = $mask | 0; + $name = $name | 0; + $base = $base | 0; + var $$01 = 0, label = 0; + if (!(HEAP8[$name >> 0] | 0)) label = 4; else if (!(_strcmp($name, 56679) | 0)) label = 4; else if (!(_strcmp($name, 52056) | 0)) label = 4; else $$01 = 0; + if ((label | 0) == 4) if (!$base) $$01 = _calloc(1, 4) | 0; else $$01 = $base; + return $$01 | 0; +} + +function __ZN6vision16SequentialVectorIiEEvPT_iS1_($x, $n, $x0) { + $x = $x | 0; + $n = $n | 0; + $x0 = $x0 | 0; + var $2 = 0, $i$02 = 0; + if (($n | 0) >= 1) { + HEAP32[$x >> 2] = $x0; + if (($n | 0) != 1) { + $2 = $x0; + $i$02 = 1; + do { + $2 = $2 + 1 | 0; + HEAP32[$x + ($i$02 << 2) >> 2] = $2; + $i$02 = $i$02 + 1 | 0; + } while (($i$02 | 0) != ($n | 0)); + } + } + return; +} + +function __ZNSt3__16vectorIiNS_9allocatorIiEEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n << 2) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n << 2); + return; + } +} + +function __ZNSt3__16vectorIfNS_9allocatorIfEEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $2 = 0; + if ($__n >>> 0 > 1073741823) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $2 = __Znwj($__n << 2) | 0; + HEAP32[$this + 4 >> 2] = $2; + HEAP32[$this >> 2] = $2; + HEAP32[$this + 8 >> 2] = $2 + ($__n << 2); + return; + } +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekposENS_4fposI11__mbstate_tEEj($agg$result, $this, $0, $1) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $7 = 0; + $2 = $agg$result; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + $7 = $agg$result + 8 | 0; + HEAP32[$7 >> 2] = -1; + HEAP32[$7 + 4 >> 2] = -1; + return; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekposENS_4fposI11__mbstate_tEEj($agg$result, $this, $0, $1) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + var $2 = 0, $7 = 0; + $2 = $agg$result; + HEAP32[$2 >> 2] = 0; + HEAP32[$2 + 4 >> 2] = 0; + $7 = $agg$result + 8 | 0; + HEAP32[$7 >> 2] = -1; + HEAP32[$7 + 4 >> 2] = -1; + return; +} + function _llvm_cttz_i32(x) { x = x | 0; var ret = 0; @@ -72520,6 +123412,80 @@ function _llvm_cttz_i32(x) { return (HEAP8[cttz_i8 + (x >>> 24) >> 0] | 0) + 24 | 0; } +function __ZN12arControllerD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this + 280 | 0); + __ZNSt3__112__hash_tableINS_17__hash_value_typeIiP14AR2SurfaceSetTEENS_22__unordered_map_hasherIiS4_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS4_NS_8equal_toIiEELb1EEENS_9allocatorIS4_EEED2Ev($this + 240 | 0); + return; +} + +function _process_data_crank_post($cinfo, $output_buf, $out_row_ctr, $out_rows_avail) { + $cinfo = $cinfo | 0; + $output_buf = $output_buf | 0; + $out_row_ctr = $out_row_ctr | 0; + $out_rows_avail = $out_rows_avail | 0; + FUNCTION_TABLE_viiiiiii[HEAP32[(HEAP32[$cinfo + 432 >> 2] | 0) + 4 >> 2] & 7]($cinfo, 0, 0, 0, $output_buf, $out_row_ctr, $out_rows_avail); + return; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5uflowEv($this) { + $this = $this | 0; + var $$0 = 0, $5 = 0, $6 = 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 36 >> 2] & 127]($this) | 0) == -1) $$0 = -1; else { + $5 = $this + 12 | 0; + $6 = HEAP32[$5 >> 2] | 0; + HEAP32[$5 >> 2] = $6 + 4; + $$0 = HEAP32[$6 >> 2] | 0; + } + return $$0 | 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv($this) { + $this = $this | 0; + var $$0 = 0, $5 = 0, $6 = 0; + if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[$this >> 2] | 0) + 36 >> 2] & 127]($this) | 0) == -1) $$0 = -1; else { + $5 = $this + 12 | 0; + $6 = HEAP32[$5 >> 2] | 0; + HEAP32[$5 >> 2] = $6 + 1; + $$0 = HEAPU8[$6 >> 0] | 0; + } + return $$0 | 0; +} + +function __ZNKSt3__17collateIwE12do_transformEPKwS3_($agg$result, $this, $__lo, $__hi) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__lo = $__lo | 0; + $__hi = $__hi | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initIPKwEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_($agg$result, $__lo, $__hi); + return; +} + +function __ZNKSt3__17collateIcE12do_transformEPKcS3_($agg$result, $this, $__lo, $__hi) { + $agg$result = $agg$result | 0; + $this = $this | 0; + $__lo = $__lo | 0; + $__hi = $__hi | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESA_SA_($agg$result, $__lo, $__hi); + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE18__construct_at_endEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $$0 = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $$0 = $__n; + $1 = HEAP32[$0 >> 2] | 0; + do { + HEAP8[$1 >> 0] = 0; + $1 = (HEAP32[$0 >> 2] | 0) + 1 | 0; + HEAP32[$0 >> 2] = $1; + $$0 = $$0 + -1 | 0; + } while (($$0 | 0) != 0); + return; +} + function __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($this, $n) { $this = $this | 0; $n = $n | 0; @@ -72534,6 +123500,123 @@ function __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($this, $n) { return $$0 | 0; } +function _abort_message($format, $varargs) { + $format = $format | 0; + $varargs = $varargs | 0; + var $0 = 0, $list = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $list = sp; + HEAP32[$list >> 2] = $varargs; + $0 = HEAP32[1607] | 0; + _vfprintf($0, $format, $list) | 0; + _fputc(10, $0) | 0; + _abort(); +} + +function _grayscale_convert28($cinfo, $input_buf, $input_row, $output_buf, $num_rows) { + $cinfo = $cinfo | 0; + $input_buf = $input_buf | 0; + $input_row = $input_row | 0; + $output_buf = $output_buf | 0; + $num_rows = $num_rows | 0; + _jcopy_sample_rows(HEAP32[$input_buf >> 2] | 0, $input_row, $output_buf, 0, $num_rows, HEAP32[$cinfo + 112 >> 2] | 0); + return; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEEC2Ev($this) { + $this = $this | 0; + var $1 = 0; + HEAP32[$this >> 2] = 12344; + __ZNSt3__16localeC2Ev($this + 4 | 0); + $1 = $this + 8 | 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; + return; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev($this) { + $this = $this | 0; + var $1 = 0; + HEAP32[$this >> 2] = 12280; + __ZNSt3__16localeC2Ev($this + 4 | 0); + $1 = $this + 8 | 0; + HEAP32[$1 >> 2] = 0; + HEAP32[$1 + 4 >> 2] = 0; + HEAP32[$1 + 8 >> 2] = 0; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 20 >> 2] = 0; + return; +} + +function __ZNSt3__16vectorIhNS_9allocatorIhEEE8allocateEj($this, $__n) { + $this = $this | 0; + $__n = $__n | 0; + var $1 = 0; + if (($__n | 0) < 0) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this); else { + $1 = __Znwj($__n) | 0; + HEAP32[$this + 4 >> 2] = $1; + HEAP32[$this >> 2] = $1; + HEAP32[$this + 8 >> 2] = $1 + $__n; + return; + } +} + +function __ZNKSt3__120__time_get_c_storageIwE3__xEv($this) { + $this = $this | 0; + if (!(HEAP8[2840] | 0)) if (___cxa_guard_acquire(2840) | 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj(16944, 16908, _wcslen(16908) | 0); + ___cxa_atexit(157, 16944, ___dso_handle | 0) | 0; + ___cxa_guard_release(2840); + } + return 16944; +} + +function __ZNKSt3__120__time_get_c_storageIwE3__rEv($this) { + $this = $this | 0; + if (!(HEAP8[2888] | 0)) if (___cxa_guard_acquire(2888) | 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj(17184, 17136, _wcslen(17136) | 0); + ___cxa_atexit(157, 17184, ___dso_handle | 0) | 0; + ___cxa_guard_release(2888); + } + return 17184; +} + +function __ZNKSt3__120__time_get_c_storageIwE3__cEv($this) { + $this = $this | 0; + if (!(HEAP8[2872] | 0)) if (___cxa_guard_acquire(2872) | 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj(17112, 17028, _wcslen(17028) | 0); + ___cxa_atexit(157, 17112, ___dso_handle | 0) | 0; + ___cxa_guard_release(2872); + } + return 17112; +} + +function __ZNKSt3__120__time_get_c_storageIwE3__XEv($this) { + $this = $this | 0; + if (!(HEAP8[2856] | 0)) if (___cxa_guard_acquire(2856) | 0) { + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj(17004, 16968, _wcslen(16968) | 0); + ___cxa_atexit(157, 17004, ___dso_handle | 0) | 0; + ___cxa_guard_release(2856); + } + return 17004; +} + +function __ZN6vision14BinarykMedoidsILi96EED2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 48 | 0); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 36 | 0); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 24 | 0); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 12 | 0); + return; +} + function _snprintf($s, $n, $fmt, $varargs) { $s = $s | 0; $n = $n | 0; @@ -72610,6 +123693,36 @@ function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($this, $s) return; } +function _wmemcpy($d, $s, $n) { + $d = $d | 0; + $s = $s | 0; + $n = $n | 0; + var $$014 = 0, $$023 = 0, $$05 = 0; + if ($n) { + $$014 = $n; + $$023 = $s; + $$05 = $d; + while (1) { + $$014 = $$014 + -1 | 0; + HEAP32[$$05 >> 2] = HEAP32[$$023 >> 2]; + if (!$$014) break; else { + $$023 = $$023 + 4 | 0; + $$05 = $$05 + 4 | 0; + } + } + } + return $d | 0; +} + +function __ZNSt3__18ios_base4InitD2Ev($this) { + $this = $this | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(10612) | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(10780) | 0; + __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv(10952) | 0; + __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEE5flushEv(11120) | 0; + return; +} + function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev($this) { $this = $this | 0; __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this); @@ -72676,6 +123789,18 @@ function _rewind($f) { return; } +function __ZNSt3__18ios_baseD2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 12568; + __ZNSt3__18ios_base16__call_callbacksENS0_5eventE($this, 0); + __ZNSt3__16localeD2Ev($this + 28 | 0); + _free(HEAP32[$this + 32 >> 2] | 0); + _free(HEAP32[$this + 36 >> 2] | 0); + _free(HEAP32[$this + 48 >> 2] | 0); + _free(HEAP32[$this + 60 >> 2] | 0); + return; +} + function _arPattFree($pattHandle, $patno) { $pattHandle = $pattHandle | 0; $patno = $patno | 0; @@ -72689,12 +123814,58 @@ function _arPattFree($pattHandle, $patno) { return $$0 | 0; } +function __ZNKSt3__18messagesIwE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE($this, $__nm, $0) { + $this = $this | 0; + $__nm = $__nm | 0; + $0 = $0 | 0; + var $8 = 0; + $8 = _catopen((HEAP8[$__nm >> 0] & 1) == 0 ? $__nm + 1 | 0 : HEAP32[$__nm + 8 >> 2] | 0, 1) | 0; + return $8 >>> (($8 | 0) != (-1 | 0) & 1) | 0; +} + +function __ZNKSt3__18messagesIcE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE($this, $__nm, $0) { + $this = $this | 0; + $__nm = $__nm | 0; + $0 = $0 | 0; + var $8 = 0; + $8 = _catopen((HEAP8[$__nm >> 0] & 1) == 0 ? $__nm + 1 | 0 : HEAP32[$__nm + 8 >> 2] | 0, 1) | 0; + return $8 >>> (($8 | 0) != (-1 | 0) & 1) | 0; +} + +function __ZNKSt3__17codecvtIcc11__mbstate_tE6do_outERS1_PKcS5_RS5_PcS7_RS7_($this, $0, $frm, $1, $frm_nxt, $to, $2, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $1 = $1 | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $2 = $2 | 0; + $to_nxt = $to_nxt | 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + return 3; +} + function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev($this) { $this = $this | 0; __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this); return; } +function __ZNKSt3__17codecvtIcc11__mbstate_tE5do_inERS1_PKcS5_RS5_PcS7_RS7_($this, $0, $frm, $1, $frm_nxt, $to, $2, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $1 = $1 | 0; + $frm_nxt = $frm_nxt | 0; + $to = $to | 0; + $2 = $2 | 0; + $to_nxt = $to_nxt | 0; + HEAP32[$frm_nxt >> 2] = $frm; + HEAP32[$to_nxt >> 2] = $to; + return 3; +} + function _sn_write($f, $s, $l) { $f = $f | 0; $s = $s | 0; @@ -72709,6 +123880,34 @@ function _sn_write($f, $s, $l) { return $l | 0; } +function __ZNKSt3__120__time_get_c_storageIcE3__rEv($this) { + $this = $this | 0; + if (!(HEAP8[2880] | 0)) if (___cxa_guard_acquire(2880) | 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj(17124, 57052, 11); + ___cxa_atexit(156, 17124, ___dso_handle | 0) | 0; + ___cxa_guard_release(2880); + } + return 17124; +} + +function __ZNKSt3__120__time_get_c_storageIcE3__cEv($this) { + $this = $this | 0; + if (!(HEAP8[2864] | 0)) if (___cxa_guard_acquire(2864) | 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj(17016, 57031, 20); + ___cxa_atexit(156, 17016, ___dso_handle | 0) | 0; + ___cxa_guard_release(2864); + } + return 17016; +} + +function _jpeg_mem_available($cinfo, $min_bytes_needed, $max_bytes_needed, $already_allocated) { + $cinfo = $cinfo | 0; + $min_bytes_needed = $min_bytes_needed | 0; + $max_bytes_needed = $max_bytes_needed | 0; + $already_allocated = $already_allocated | 0; + return (HEAP32[(HEAP32[$cinfo + 4 >> 2] | 0) + 44 >> 2] | 0) - $already_allocated | 0; +} + function _ferror($f) { $f = $f | 0; var $$lobit = 0, $$lobit2 = 0, $phitmp = 0; @@ -72720,6 +123919,26 @@ function _ferror($f) { return $$lobit2 | 0; } +function __ZNKSt3__120__time_get_c_storageIcE3__xEv($this) { + $this = $this | 0; + if (!(HEAP8[2832] | 0)) if (___cxa_guard_acquire(2832) | 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj(16896, 57013, 8); + ___cxa_atexit(156, 16896, ___dso_handle | 0) | 0; + ___cxa_guard_release(2832); + } + return 16896; +} + +function __ZNKSt3__120__time_get_c_storageIcE3__XEv($this) { + $this = $this | 0; + if (!(HEAP8[2848] | 0)) if (___cxa_guard_acquire(2848) | 0) { + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj(16956, 57022, 8); + ___cxa_atexit(156, 16956, ___dso_handle | 0) | 0; + ___cxa_guard_release(2848); + } + return 16956; +} + function ___memrchr($m, $c, $n) { $m = $m | 0; $c = $c | 0; @@ -72742,6 +123961,35 @@ function ___memrchr($m, $c, $n) { return $$0 | 0; } +function __ZNSt3__18numpunctIwEC2Ej($this, $refs) { + $this = $this | 0; + $refs = $refs | 0; + var $4 = 0; + HEAP32[$this + 4 >> 2] = $refs + -1; + HEAP32[$this >> 2] = 13884; + HEAP32[$this + 8 >> 2] = 46; + HEAP32[$this + 12 >> 2] = 44; + $4 = $this + 16 | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + return; +} + +function __ZN6vision23bilinear_upsample_pointERfS0_ffi($xp, $yp, $x, $y, $octave) { + $xp = $xp | 0; + $yp = $yp | 0; + $x = +$x; + $y = +$y; + $octave = $octave | 0; + var $3 = 0.0, $5 = 0.0; + $3 = +_ldexp(1.0, $octave + -1 | 0) + -.5; + $5 = +(1 << $octave | 0); + HEAPF32[$xp >> 2] = $5 * $x + $3; + HEAPF32[$yp >> 2] = $5 * $y + $3; + return; +} + function __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($agg$result, $v) { $agg$result = $agg$result | 0; $v = $v | 0; @@ -72749,6 +123997,77 @@ function __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11cha return; } +function _kpmGetResult($kpmHandle, $result, $resultNum) { + $kpmHandle = $kpmHandle | 0; + $result = $result | 0; + $resultNum = $resultNum | 0; + var $$0 = 0; + if (!$kpmHandle) $$0 = -1; else { + HEAP32[$result >> 2] = HEAP32[$kpmHandle + 56 >> 2]; + HEAP32[$resultNum >> 2] = HEAP32[$kpmHandle + 60 >> 2]; + $$0 = 0; + } + return $$0 | 0; +} + +function __ZNSt3__18numpunctIcEC2Ej($this, $refs) { + $this = $this | 0; + $refs = $refs | 0; + var $4 = 0; + HEAP32[$this + 4 >> 2] = $refs + -1; + HEAP32[$this >> 2] = 13844; + HEAP8[$this + 8 >> 0] = 46; + HEAP8[$this + 9 >> 0] = 44; + $4 = $this + 12 | 0; + HEAP32[$4 >> 2] = 0; + HEAP32[$4 + 4 >> 2] = 0; + HEAP32[$4 + 8 >> 2] = 0; + return; +} + +function _sprintf($s, $fmt, $varargs) { + $s = $s | 0; + $fmt = $fmt | 0; + $varargs = $varargs | 0; + var $0 = 0, $ap = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ap = sp; + HEAP32[$ap >> 2] = $varargs; + $0 = _vsprintf($s, $fmt, $ap) | 0; + STACKTOP = sp; + return $0 | 0; +} + +function _fprintf($f, $fmt, $varargs) { + $f = $f | 0; + $fmt = $fmt | 0; + $varargs = $varargs | 0; + var $0 = 0, $ap = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $ap = sp; + HEAP32[$ap >> 2] = $varargs; + $0 = _vfprintf($f, $fmt, $ap) | 0; + STACKTOP = sp; + return $0 | 0; +} + +function __ZN6vision5Timer5startEv($this) { + $this = $this | 0; + var $t = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $t = sp; + _gettimeofday($t | 0, 0) | 0; + HEAPF64[$this >> 3] = +(HEAP32[$t >> 2] | 0) + +(HEAP32[$t + 4 >> 2] | 0) * 1.0e-06; + STACKTOP = sp; + return; +} + function _arVecAlloc($clm) { $clm = $clm | 0; var $$0 = 0, $0 = 0, $3 = 0; @@ -72784,6 +124103,69 @@ function _sscanf($s, $fmt, $varargs) { return $0 | 0; } +function __ZN6vision9MaxIndex4IfEEiPKT_($x) { + $x = $x | 0; + var $index$0 = 0, $index$1 = 0; + $index$0 = +HEAPF32[$x + 4 >> 2] > +HEAPF32[$x >> 2] & 1; + $index$1 = +HEAPF32[$x + 8 >> 2] > +HEAPF32[$x + ($index$0 << 2) >> 2] ? 2 : $index$0; + return (+HEAPF32[$x + 12 >> 2] > +HEAPF32[$x + ($index$1 << 2) >> 2] ? 3 : $index$1) | 0; +} + +function _reset_marker_reader($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0; + $1 = HEAP32[$cinfo + 440 >> 2] | 0; + HEAP32[$cinfo + 216 >> 2] = 0; + HEAP32[$cinfo + 144 >> 2] = 0; + HEAP32[$cinfo + 416 >> 2] = 0; + HEAP32[$1 + 12 >> 2] = 0; + HEAP32[$1 + 16 >> 2] = 0; + HEAP32[$1 + 24 >> 2] = 0; + HEAP32[$1 + 164 >> 2] = 0; + return; +} + +function __ZNSt3__114__shared_count16__release_sharedEv($this) { + $this = $this | 0; + var $$0 = 0, $0 = 0, $1 = 0; + $0 = $this + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $1 + -1; + if (!$1) { + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 8 >> 2] & 255]($this); + $$0 = 1; + } else $$0 = 0; + return $$0 | 0; +} + +function ___cxa_get_globals_fast() { + var $3 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + if (!(_pthread_once(6172, 2) | 0)) { + $3 = _pthread_getspecific(HEAP32[1542] | 0) | 0; + STACKTOP = sp; + return $3 | 0; + } else _abort_message(47578, sp); + return 0; +} + +function __ZN6vision20VisualDatabaseFacadeC2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0; + HEAP32[$this >> 2] = 0; + $0 = __Znwj(24) | 0; + __ZN6vision18VisualDatabaseImplC2Ev($0); + $1 = HEAP32[$this >> 2] | 0; + HEAP32[$this >> 2] = $0; + if ($1) { + __ZN6vision18VisualDatabaseImplD2Ev($1); + __ZdlPv($1); + } + return; +} + function _arPattAttach($arHandle, $arPattHandle) { $arHandle = $arHandle | 0; $arPattHandle = $arPattHandle | 0; @@ -72798,51 +124180,230 @@ function _arPattAttach($arHandle, $arPattHandle) { return $$0 | 0; } +function __ZN6vision8KeyframeILi96EEC2Ev($this) { + $this = $this | 0; + var $0 = 0, dest = 0, stop = 0; + $0 = $this + 36 | 0; + dest = $this; + stop = dest + 36 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); + __ZN6vision28BinaryHierarchicalClusteringILi96EEC2Ev($0); + return; +} + +function _testSetjmp(id, table, size) { + id = id | 0; + table = table | 0; + size = size | 0; + var i = 0, curr = 0; + while ((i | 0) < (size | 0)) { + curr = HEAP32[table + (i << 3) >> 2] | 0; + if (!curr) break; + if ((curr | 0) == (id | 0)) return HEAP32[table + ((i << 3) + 4) >> 2] | 0; + i = i + 1 | 0; + } + return 0; +} + +function __ZN6vision11ScopedTimerC2EPKc($this, $str) { + $this = $this | 0; + $str = $str | 0; + HEAPF64[$this >> 3] = -1.0; + HEAPF64[$this + 8 >> 3] = -1.0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this + 16 | 0, $str, _strlen($str) | 0); + __ZN6vision5Timer5startEv($this); + return; +} + function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($this, $__s) { $this = $this | 0; $__s = $__s | 0; return __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $__s, _strlen($__s) | 0) | 0; } -function __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($this) { +function __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($this) { + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this + 12 | 0); + __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this); + return; +} + +function dynCall_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + a6 = a6 | 0; + a7 = a7 | 0; + a8 = a8 | 0; + return FUNCTION_TABLE_iiiiiiiii[index & 15](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0, a7 | 0, a8 | 0) | 0; +} + +function __ZN6vision13LinePointSideIfEET_PKS1_S3_S3_($A, $B, $C) { + $A = $A | 0; + $B = $B | 0; + $C = $C | 0; + var $1 = 0.0, $6 = 0.0; + $1 = +HEAPF32[$A >> 2]; + $6 = +HEAPF32[$A + 4 >> 2]; + return +((+HEAPF32[$B >> 2] - $1) * (+HEAPF32[$C + 4 >> 2] - $6) - (+HEAPF32[$B + 4 >> 2] - $6) * (+HEAPF32[$C >> 2] - $1)); +} + +function __ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv($p) { + $p = $p | 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + _free($p); + if (!(_pthread_setspecific(HEAP32[1542] | 0, 0) | 0)) { + STACKTOP = sp; + return; + } else _abort_message(47732, sp); +} + +function _arMatrixAllocTrans($source) { + $source = $source | 0; + var $$0 = 0, $4 = 0; + $4 = _arMatrixAlloc(HEAP32[$source + 8 >> 2] | 0, HEAP32[$source + 4 >> 2] | 0) | 0; + if (!$4) $$0 = 0; else if ((_arMatrixTrans($4, $source) | 0) < 0) { + _arMatrixFree($4) | 0; + $$0 = 0; + } else $$0 = $4; + return $$0 | 0; +} + +function _finish_output_pass($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0, $9 = 0; + $1 = HEAP32[$cinfo + 420 >> 2] | 0; + if (HEAP32[$cinfo + 84 >> 2] | 0) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 8 >> 2] & 255]($cinfo); + $9 = $1 + 12 | 0; + HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 1; + return; +} + +function _arMatrixAllocDup($source) { + $source = $source | 0; + var $$0 = 0, $4 = 0; + $4 = _arMatrixAlloc(HEAP32[$source + 4 >> 2] | 0, HEAP32[$source + 8 >> 2] | 0) | 0; + if (!$4) $$0 = 0; else if ((_arMatrixDup($4, $source) | 0) < 0) { + _arMatrixFree($4) | 0; + $$0 = 0; + } else $$0 = $4; + return $$0 | 0; +} + +function __ZNSt3__114__num_get_base10__get_baseERNS_8ios_baseE($iob) { + $iob = $iob | 0; + var $$0 = 0; + switch (HEAP32[$iob + 4 >> 2] & 74 | 0) { + case 64: + { + $$0 = 8; + break; + } + case 8: + { + $$0 = 16; + break; + } + case 0: + { + $$0 = 0; + break; + } + default: + $$0 = 10; + } + return $$0 | 0; +} + +function __ZNKSt3__17codecvtIDsc11__mbstate_tE9do_lengthERS1_PKcS5_j($this, $0, $frm, $frm_end, $mx) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $mx = $mx | 0; + return __ZNSt3__1L20utf8_to_utf16_lengthEPKhS1_jmNS_12codecvt_modeE($frm, $frm_end, $mx, 1114111, 0) | 0; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE9do_lengthERS1_PKcS5_j($this, $0, $frm, $frm_end, $mx) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $frm_end = $frm_end | 0; + $mx = $mx | 0; + return __ZNSt3__1L19utf8_to_ucs4_lengthEPKhS1_jmNS_12codecvt_modeE($frm, $frm_end, $mx, 1114111, 0) | 0; +} + +function __ZN6vision5ImageC2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + HEAP32[$this + 12 >> 2] = 0; + HEAP32[$this + 16 >> 2] = 0; + HEAP32[$this + 20 >> 2] = 0; + HEAP32[$this + 24 >> 2] = 0; + HEAP32[$this + 28 >> 2] = 0; + return; +} + +function __ZN6vision21OrientationAssignmentC2Ev($this) { $this = $this | 0; - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this + 12 | 0); - __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this); + var dest = 0, stop = 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + dest = $this + 12 | 0; + stop = dest + 40 | 0; + do { + HEAP32[dest >> 2] = 0; + dest = dest + 4 | 0; + } while ((dest | 0) < (stop | 0)); return; } -function _arMatrixAllocTrans($source) { - $source = $source | 0; +function _arMatrixAllocMul($a, $b) { + $a = $a | 0; + $b = $b | 0; var $$0 = 0, $4 = 0; - $4 = _arMatrixAlloc(HEAP32[$source + 8 >> 2] | 0, HEAP32[$source + 4 >> 2] | 0) | 0; - if (!$4) $$0 = 0; else if ((_arMatrixTrans($4, $source) | 0) < 0) { + $4 = _arMatrixAlloc(HEAP32[$a + 4 >> 2] | 0, HEAP32[$b + 8 >> 2] | 0) | 0; + if (!$4) $$0 = 0; else if ((_arMatrixMul($4, $a, $b) | 0) < 0) { _arMatrixFree($4) | 0; $$0 = 0; } else $$0 = $4; return $$0 | 0; } -function _arMatrixAllocDup($source) { - $source = $source | 0; - var $$0 = 0, $4 = 0; - $4 = _arMatrixAlloc(HEAP32[$source + 4 >> 2] | 0, HEAP32[$source + 8 >> 2] | 0) | 0; - if (!$4) $$0 = 0; else if ((_arMatrixDup($4, $source) | 0) < 0) { - _arMatrixFree($4) | 0; - $$0 = 0; - } else $$0 = $4; - return $$0 | 0; +function __ZN6vision22bilinear_interpolationIfEET_RKNS_5ImageEff($im, $x, $y) { + $im = $im | 0; + $x = +$x; + $y = +$y; + return +(+__ZN6vision22bilinear_interpolationIffEET0_PKT_jjjff(HEAP32[$im + 24 >> 2] | 0, HEAP32[$im + 4 >> 2] | 0, HEAP32[$im + 8 >> 2] | 0, HEAP32[$im + 12 >> 2] | 0, $x, $y)); } -function _arMatrixAllocMul($a, $b) { +function __ZN6vision17HammingDistance32Ejj($a, $b) { $a = $a | 0; $b = $b | 0; - var $$0 = 0, $4 = 0; - $4 = _arMatrixAlloc(HEAP32[$a + 4 >> 2] | 0, HEAP32[$b + 8 >> 2] | 0) | 0; - if (!$4) $$0 = 0; else if ((_arMatrixMul($4, $a, $b) | 0) < 0) { - _arMatrixFree($4) | 0; - $$0 = 0; - } else $$0 = $4; - return $$0 | 0; + var $0 = 0, $3 = 0, $7 = 0; + $0 = $b ^ $a; + $3 = $0 - ($0 >>> 1 & 1431655765) | 0; + $7 = ($3 >>> 2 & 858993459) + ($3 & 858993459) | 0; + return (Math_imul(($7 >>> 4) + $7 & 252645135, 16843009) | 0) >>> 24 | 0; +} + +function __ZN6vision16RobustHomographyIfED2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseINS_4pairIfiEENS_9allocatorIS2_EEED2Ev($this + 24 | 0); + __ZNSt3__113__vector_baseIiNS_9allocatorIiEEED2Ev($this + 12 | 0); + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this); + return; } function _arGetTransMatMultiSquareRobust($handle, $marker_info, $marker_num, $config) { @@ -72853,6 +124414,75 @@ function _arGetTransMatMultiSquareRobust($handle, $marker_info, $marker_num, $co return +(+_arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, 1)); } +function __ZNKSt3__17codecvtIwc11__mbstate_tE13do_max_lengthEv($this) { + $this = $this | 0; + var $1 = 0, $3 = 0, $5 = 0; + $1 = HEAP32[$this + 8 >> 2] | 0; + if (!$1) $5 = 1; else { + $3 = _uselocale($1) | 0; + if (!$3) $5 = 4; else { + _uselocale($3) | 0; + $5 = 4; + } + } + return $5 | 0; +} + +function __ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv($this) { + $this = $this | 0; + var $1 = 0; + $1 = HEAP32[$this + 12 >> 2] | 0; + if ($1) { + __ZN6vision8KeyframeILi96EED2Ev($1); + __ZdlPv($1); + } + return; +} + +function __ZNKSt3__18ios_base6getlocEv($this) { + $this = $this | 0; + var $0 = 0, sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + $0 = sp; + __ZNSt3__16localeC2ERKS0_($0, $this + 28 | 0); + STACKTOP = sp; + return HEAP32[$0 >> 2] | 0; +} + +function __ZNKSt3__15ctypeIwE5do_isEtw($this, $m, $c) { + $this = $this | 0; + $m = $m | 0; + $c = $c | 0; + var $0 = 0, $6 = 0; + if ($c >>> 0 < 128) { + $0 = ___ctype_b_loc() | 0; + $6 = (HEAP16[(HEAP32[$0 >> 2] | 0) + ($c << 1) >> 1] & $m) << 16 >> 16 != 0; + } else $6 = 0; + return $6 | 0; +} + +function __ZN6vision9ExceptionC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE($this, $str) { + $this = $this | 0; + $str = $str | 0; + HEAP32[$this >> 2] = 4428; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_($this + 4 | 0, $str); + return; +} + +function dynCall_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + a6 = a6 | 0; + a7 = a7 | 0; + return FUNCTION_TABLE_iiiiiiii[index & 7](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0, a7 | 0) | 0; +} + function _arGetTransMatMultiSquare($handle, $marker_info, $marker_num, $config) { $handle = $handle | 0; $marker_info = $marker_info | 0; @@ -72895,6 +124525,92 @@ function _bitshift64Ashr(low, high, bits) { return high >> bits - 32 | 0; } +function __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc($__os, $__str) { + $__os = $__os | 0; + $__str = $__str | 0; + return __ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_j($__os, $__str, _strlen($__str) | 0) | 0; +} + +function __ZNKSt3__15ctypeIcE10do_tolowerEc($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $1 = 0, $6 = 0; + if ($c << 24 >> 24 > -1) { + $1 = ___ctype_tolower_loc() | 0; + $6 = HEAP32[(HEAP32[$1 >> 2] | 0) + ($c << 24 >> 24 << 2) >> 2] & 255; + } else $6 = $c; + return $6 | 0; +} + +function __ZNSt3__119__shared_weak_count14__release_weakEv($this) { + $this = $this | 0; + var $0 = 0, $1 = 0; + $0 = $this + 8 | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$0 >> 2] = $1 + -1; + if (!$1) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 16 >> 2] & 255]($this); + return; +} + +function _wmemset($d, $c, $n) { + $d = $d | 0; + $c = $c | 0; + $n = $n | 0; + var $$012 = 0, $$03 = 0; + if ($n) { + $$012 = $n; + $$03 = $d; + while (1) { + $$012 = $$012 + -1 | 0; + HEAP32[$$03 >> 2] = $c; + if (!$$012) break; else $$03 = $$03 + 4 | 0; + } + } + return $d | 0; +} + +function __ZNKSt3__15ctypeIcE10do_toupperEc($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $1 = 0, $6 = 0; + if ($c << 24 >> 24 > -1) { + $1 = ___ctype_toupper_loc() | 0; + $6 = HEAP32[(HEAP32[$1 >> 2] | 0) + (($c & 255) << 2) >> 2] & 255; + } else $6 = $c; + return $6 | 0; +} + +function __ZN10__cxxabiv112_GLOBAL__N_110construct_Ev() { + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + if (!(_pthread_key_create(6168, 143) | 0)) { + STACKTOP = sp; + return; + } else _abort_message(47682, sp); +} + +function dynCall_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + a6 = a6 | 0; + a7 = a7 | 0; + FUNCTION_TABLE_viiiiiii[index & 7](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0, a7 | 0); +} + +function __ZN6vision10FastMedianIfiEENSt3__14pairIT_T0_EEPS5_i($agg$result, $a, $n) { + $agg$result = $agg$result | 0; + $a = $a | 0; + $n = $n | 0; + __ZN6vision11PartialSortIfiEENSt3__14pairIT_T0_EEPS5_ii($agg$result, $a, $n, ($n & 1) + -1 + (($n | 0) / 2 | 0) | 0); + return; +} + function _byteSwapInt($from, $to) { $from = $from | 0; $to = $to | 0; @@ -72905,6 +124621,148 @@ function _byteSwapInt($from, $to) { return; } +function __ZNKSt3__110moneypunctIwLb1EE13do_pos_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIwLb1EE13do_neg_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE13do_pos_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE13do_neg_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE13do_pos_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE13do_neg_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE13do_pos_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE13do_neg_formatEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP8[$agg$result >> 0] = 2; + HEAP8[$agg$result + 1 >> 0] = 3; + HEAP8[$agg$result + 2 >> 0] = 0; + HEAP8[$agg$result + 3 >> 0] = 4; + return; +} + +function __ZNKSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info($this, $__t) { + $this = $this | 0; + $__t = $__t | 0; + return ((HEAP32[$__t + 4 >> 2] | 0) == 31030 ? $this + 12 | 0 : 0) | 0; +} + +function __ZNSt3__16locale5__imp7installINS_9money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13560) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_9money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13524) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_9money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13488) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_9money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13452) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13160) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13128) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13096) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13004) | 0); + return; +} + function _arGetLabelingThreshMode($handle, $mode_p) { $handle = $handle | 0; $mode_p = $mode_p | 0; @@ -72916,6 +124774,51 @@ function _arGetLabelingThreshMode($handle, $mode_p) { return $$0 | 0; } +function __ZNSt3__16locale5__imp7installINS_7num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12912) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12852) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12792) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12720) | 0); + return; +} + +function __ZNKSt3__17codecvtIcc11__mbstate_tE9do_lengthERS1_PKcS5_j($this, $0, $frm, $end, $mx) { + $this = $this | 0; + $0 = $0 | 0; + $frm = $frm | 0; + $end = $end | 0; + $mx = $mx | 0; + var $3 = 0; + $3 = $end - $frm | 0; + return ($3 >>> 0 < $mx >>> 0 ? $3 : $mx) | 0; +} + +function _kpmCreateHandle($cparamLT, $pixFormat) { + $cparamLT = $cparamLT | 0; + $pixFormat = $pixFormat | 0; + return __ZL19kpmCreateHandleCoreP9ARParamLTiii15AR_PIXEL_FORMAT($cparamLT, HEAP32[$cparamLT >> 2] | 0, HEAP32[$cparamLT + 4 >> 2] | 0, 1, $pixFormat) | 0; +} + function _bitshift64Shl(low, high, bits) { low = low | 0; high = high | 0; @@ -72941,6 +124844,16 @@ function _ar3DDeleteHandle($handle) { return $$0 | 0; } +function __ZNSt3__17codecvtIwc11__mbstate_tED2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0; + HEAP32[$this >> 2] = 13764; + $0 = $this + 8 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if (($1 | 0) != (__ZNSt3__16__clocEv() | 0)) _freelocale(HEAP32[$0 >> 2] | 0); + return; +} + function _arGetMatrixCodeType($handle, $type_p) { $handle = $handle | 0; $type_p = $type_p | 0; @@ -72952,6 +124865,28 @@ function _arGetMatrixCodeType($handle, $type_p) { return $$0 | 0; } +function __ZNKSt3__15ctypeIwE10do_toupperEw($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $0 = 0, $4 = 0; + if ($c >>> 0 < 128) { + $0 = ___ctype_toupper_loc() | 0; + $4 = HEAP32[(HEAP32[$0 >> 2] | 0) + ($c << 2) >> 2] | 0; + } else $4 = $c; + return $4 | 0; +} + +function __ZNKSt3__15ctypeIwE10do_tolowerEw($this, $c) { + $this = $this | 0; + $c = $c | 0; + var $0 = 0, $4 = 0; + if ($c >>> 0 < 128) { + $0 = ___ctype_tolower_loc() | 0; + $4 = HEAP32[(HEAP32[$0 >> 2] | 0) + ($c << 2) >> 2] | 0; + } else $4 = $c; + return $4 | 0; +} + function _bitshift64Lshr(low, high, bits) { low = low | 0; high = high | 0; @@ -72964,6 +124899,18 @@ function _bitshift64Lshr(low, high, bits) { return high >>> bits - 32 | 0; } +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKw($this, $__s) { + $this = $this | 0; + $__s = $__s | 0; + return __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6assignEPKwj($this, $__s, _wcslen($__s) | 0) | 0; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc($this, $__s) { + $this = $this | 0; + $__s = $__s | 0; + return __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKcj($this, $__s, _strlen($__s) | 0) | 0; +} + function _arPattDetach($arHandle) { $arHandle = $arHandle | 0; var $$0 = 0, $1 = 0; @@ -72977,6 +124924,17 @@ function _arPattDetach($arHandle) { return $$0 | 0; } +function dynCall_iiiiiii(index, a1, a2, a3, a4, a5, a6) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + a6 = a6 | 0; + return FUNCTION_TABLE_iiiiiii[index & 63](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0) | 0; +} + function _arGetLabelingThresh($handle, $thresh) { $handle = $handle | 0; $thresh = $thresh | 0; @@ -72988,10 +124946,19 @@ function _arGetLabelingThresh($handle, $thresh) { return $$0 | 0; } +function _fullsize_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + HEAP32[$output_data_ptr >> 2] = $input_data; + return; +} + function __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { $name = $name | 0; $fn = $fn | 0; - __embind_register_function($name | 0, 3, 2180, 10905, 12, $fn | 0); + __embind_register_function($name | 0, 3, 5956, 45812, 35, $fn | 0); return; } @@ -73003,10 +124970,67 @@ function copyTempFloat(ptr) { HEAP8[tempDoublePtr + 3 >> 0] = HEAP8[ptr + 3 >> 0]; } +function __ZNKSt3__16locale9use_facetERNS0_2idE($this, $x) { + $this = $this | 0; + $x = $x | 0; + var $0 = 0, $1 = 0; + $0 = HEAP32[$this >> 2] | 0; + $1 = __ZNSt3__16locale2id5__getEv($x) | 0; + return HEAP32[(HEAP32[$0 + 8 >> 2] | 0) + ($1 << 2) >> 2] | 0; +} + function __ZN10emscripten8functionIiJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { $name = $name | 0; $fn = $fn | 0; - __embind_register_function($name | 0, 2, 2160, 10800, 11, $fn | 0); + __embind_register_function($name | 0, 2, 5936, 45707, 40, $fn | 0); + return; +} + +function dynCall_iiiiiid(index, a1, a2, a3, a4, a5, a6) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + a6 = +a6; + return FUNCTION_TABLE_iiiiiid[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, +a6) | 0; +} + +function _jpeg_destroy($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0, $1 = 0; + $0 = $cinfo + 4 | 0; + $1 = HEAP32[$0 >> 2] | 0; + if ($1) FUNCTION_TABLE_vi[HEAP32[$1 + 40 >> 2] & 255]($cinfo); + HEAP32[$0 >> 2] = 0; + HEAP32[$cinfo + 20 >> 2] = 0; + return; +} + +function __ZNKSt3__18numpunctIwE12do_falsenameEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj($agg$result, 14476, _wcslen(14476) | 0); + return; +} + +function __ZNKSt3__18numpunctIwE11do_truenameEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEPKwj($agg$result, 14456, _wcslen(14456) | 0); + return; +} + +function _self_destruct($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0; + _free_pool($cinfo, 1); + _free_pool($cinfo, 0); + $0 = $cinfo + 4 | 0; + _jpeg_free_small($cinfo, HEAP32[$0 >> 2] | 0, 84); + HEAP32[$0 >> 2] = 0; + _jpeg_mem_term($cinfo); return; } @@ -73018,7 +125042,7 @@ function dynCall_viiiiii(index, a1, a2, a3, a4, a5, a6) { a4 = a4 | 0; a5 = a5 | 0; a6 = a6 | 0; - FUNCTION_TABLE_viiiiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0); + FUNCTION_TABLE_viiiiii[index & 7](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0); } function _arSetLabelingThresh($handle, $thresh) { @@ -73043,45 +125067,306 @@ function _arGetLabelingMode($handle, $mode) { return $$0 | 0; } -function __ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii($fn, $args, $args1, $args2) { - $fn = $fn | 0; - $args = $args | 0; - $args1 = $args1 | 0; - $args2 = $args2 | 0; - return FUNCTION_TABLE_iiii[$fn & 15]($args, $args1, $args2) | 0; +function __ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii($fn, $args, $args1, $args2) { + $fn = $fn | 0; + $args = $args | 0; + $args1 = $args1 | 0; + $args2 = $args2 | 0; + return FUNCTION_TABLE_iiii[$fn & 63]($args, $args1, $args2) | 0; +} + +function __ZNKSt3__110moneypunctIwLb1EE16do_positive_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE16do_positive_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE16do_positive_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE16do_positive_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE13__get_deleterERKSt9type_info($this, $__t) { + $this = $this | 0; + $__t = $__t | 0; + return ((HEAP32[$__t + 4 >> 2] | 0) == 34053 ? $this + 12 | 0 : 0) | 0; +} + +function _noop_upsample($cinfo, $compptr, $input_data, $output_data_ptr) { + $cinfo = $cinfo | 0; + $compptr = $compptr | 0; + $input_data = $input_data | 0; + $output_data_ptr = $output_data_ptr | 0; + HEAP32[$output_data_ptr >> 2] = 0; + return; +} + +function _arGetPattRatio($handle, $pattRatio) { + $handle = $handle | 0; + $pattRatio = $pattRatio | 0; + var $$0 = 0; + if (!$handle) $$0 = -1; else { + HEAPF64[$pattRatio >> 3] = +HEAPF64[$handle + 7062416 >> 3]; + $$0 = 0; + } + return $$0 | 0; +} + +function __ZNKSt3__110moneypunctIwLb1EE14do_curr_symbolEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE14do_curr_symbolEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE14do_curr_symbolEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE14do_curr_symbolEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZN6vision18BinaryFeatureStoreD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseIN6vision12FeaturePointENS_9allocatorIS2_EEED2Ev($this + 16 | 0); + __ZNSt3__113__vector_baseIhNS_9allocatorIhEEED2Ev($this + 4 | 0); + return; +} + +function __ZNKSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE13__get_deleterERKSt9type_info($this, $__t) { + $this = $this | 0; + $__t = $__t | 0; + return ((HEAP32[$__t + 4 >> 2] | 0) == 33958 ? $this + 12 | 0 : 0) | 0; +} + +function _arSetPatternDetectionMode($handle, $mode) { + $handle = $handle | 0; + $mode = $mode | 0; + var $$0 = 0; + if (($handle | 0) != 0 & $mode >>> 0 < 5) { + HEAP32[$handle + 24 >> 2] = $mode; + $$0 = 0; + } else $$0 = -1; + return $$0 | 0; +} + +function __ZNKSt3__110moneypunctIwLb1EE16do_negative_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEjw($agg$result, 1, 45); + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE16do_negative_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEE6__initEjw($agg$result, 1, 45); + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE16do_negative_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc($agg$result, 1, 45); + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE16do_negative_signEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc($agg$result, 1, 45); + return; +} + +function __ZNKSt3__110moneypunctIwLb1EE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIwLb0EE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb1EE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function __ZNKSt3__110moneypunctIcLb0EE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + HEAP32[$agg$result >> 2] = 0; + HEAP32[$agg$result + 4 >> 2] = 0; + HEAP32[$agg$result + 8 >> 2] = 0; + return; +} + +function _jcopy_block_row($input_row, $output_row, $num_blocks) { + $input_row = $input_row | 0; + $output_row = $output_row | 0; + $num_blocks = $num_blocks | 0; + _memcpy($output_row | 0, $input_row | 0, $num_blocks << 7 | 0) | 0; + return; +} + +function _arGetDebugMode($handle, $mode) { + $handle = $handle | 0; + $mode = $mode | 0; + var $$0 = 0; + if (($handle | 0) != 0 & ($mode | 0) != 0) { + HEAP32[$mode >> 2] = HEAP32[$handle >> 2]; + $$0 = 0; + } else $$0 = -1; + return $$0 | 0; +} + +function __ZN6vision21OrientationAssignmentD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this + 40 | 0); + __ZNSt3__113__vector_baseIfNS_9allocatorIfEEED2Ev($this + 28 | 0); + return; +} + +function __ZNSt3__16locale8__globalEv() { + if (!(HEAP8[2728] | 0)) if (___cxa_guard_acquire(2728) | 0) { + __ZNSt3__16locale5__imp11make_globalEv() | 0; + HEAP32[3613] = 14448; + ___cxa_guard_release(2728); + } + return HEAP32[3613] | 0; +} + +function __ZNSt3__16locale7classicEv() { + if (!(HEAP8[2560] | 0)) if (___cxa_guard_acquire(2560) | 0) { + __ZNSt3__16locale5__imp12make_classicEv() | 0; + HEAP32[3611] = 14440; + ___cxa_guard_release(2560); + } + return HEAP32[3611] | 0; +} + +function __ZNKSt3__18numpunctIwE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_($agg$result, $this + 16 | 0); + return; +} + +function __ZNKSt3__18numpunctIcE11do_groupingEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_($agg$result, $this + 12 | 0); + return; +} + +function __ZNSt3__16localeC2Ev($this) { + $this = $this | 0; + var $0 = 0, $1 = 0; + $0 = __ZNSt3__16locale8__globalEv() | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[$this >> 2] = $1; + __ZNSt3__114__shared_count12__add_sharedEv($1); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7codecvtIDsc11__mbstate_tEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13804) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7codecvtIDic11__mbstate_tEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13812) | 0); + return; } -function _arGetPattRatio($handle, $pattRatio) { - $handle = $handle | 0; - $pattRatio = $pattRatio | 0; - var $$0 = 0; - if (!$handle) $$0 = -1; else { - HEAPF64[$pattRatio >> 3] = +HEAPF64[$handle + 7062416 >> 3]; - $$0 = 0; +function __ZNSt3__16__clocEv() { + var $4 = 0; + if (!(HEAP8[2240] | 0)) if (___cxa_guard_acquire(2240) | 0) { + $4 = _newlocale(2147483647, 56679, 0) | 0; + HEAP32[3561] = $4; + ___cxa_guard_release(2240); } - return $$0 | 0; + return HEAP32[3561] | 0; } -function _arSetPatternDetectionMode($handle, $mode) { - $handle = $handle | 0; - $mode = $mode | 0; - var $$0 = 0; - if (($handle | 0) != 0 & $mode >>> 0 < 5) { - HEAP32[$handle + 24 >> 2] = $mode; - $$0 = 0; - } else $$0 = -1; - return $$0 | 0; +function __ZNKSt3__18numpunctIcE12do_falsenameEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($agg$result, 56786, 5); + return; } -function _arGetDebugMode($handle, $mode) { - $handle = $handle | 0; - $mode = $mode | 0; - var $$0 = 0; - if (($handle | 0) != 0 & ($mode | 0) != 0) { - HEAP32[$mode >> 2] = HEAP32[$handle >> 2]; - $$0 = 0; - } else $$0 = -1; - return $$0 | 0; +function __ZN6vision6Logger11getInstanceEv() { + if (!(HEAP8[48] | 0)) if (___cxa_guard_acquire(48) | 0) { + __ZN6vision6LoggerC2Ev(4452); + ___cxa_atexit(113, 4452, ___dso_handle | 0) | 0; + ___cxa_guard_release(48); + } + return 4452; } function _icpSetInlierProbability($handle, $inlierProb) { @@ -73106,6 +125391,27 @@ function _arSetImageProcMode($handle, $mode) { return $$0 | 0; } +function __ZNSt3__16locale5__imp7installINS_7codecvtIwc11__mbstate_tEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13748) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7codecvtIcc11__mbstate_tEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13740) | 0); + return; +} + +function __ZNKSt3__18numpunctIcE11do_truenameEv($agg$result, $this) { + $agg$result = $agg$result | 0; + $this = $this | 0; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($agg$result, 56781, 4); + return; +} + function _arSetLabelingMode($handle, $mode) { $handle = $handle | 0; $mode = $mode | 0; @@ -73117,6 +125423,26 @@ function _arSetLabelingMode($handle, $mode) { return $$0 | 0; } +function __ZNKSt3__17codecvtIDsc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_($this, $0, $to, $1, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $to = $to | 0; + $1 = $1 | 0; + $to_nxt = $to_nxt | 0; + HEAP32[$to_nxt >> 2] = $to; + return 3; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE10do_unshiftERS1_PcS4_RS4_($this, $0, $to, $1, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $to = $to | 0; + $1 = $1 | 0; + $to_nxt = $to_nxt | 0; + HEAP32[$to_nxt >> 2] = $to; + return 3; +} + function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv($this, $thrown_type, $0) { $this = $this | 0; $thrown_type = $thrown_type | 0; @@ -73124,6 +125450,36 @@ function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type return ($this | 0) == ($thrown_type | 0) | 0; } +function __ZSt11__terminatePFvvE($func) { + $func = $func | 0; + var sp = 0; + sp = STACKTOP; + STACKTOP = STACKTOP + 16 | 0; + if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort(); + FUNCTION_TABLE_v[$func & 3](); + _abort_message(47642, sp); +} + +function __ZNKSt3__17codecvtIcc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_($this, $0, $to, $1, $to_nxt) { + $this = $this | 0; + $0 = $0 | 0; + $to = $to | 0; + $1 = $1 | 0; + $to_nxt = $to_nxt | 0; + HEAP32[$to_nxt >> 2] = $to; + return 3; +} + +function dynCall_iiiiii(index, a1, a2, a3, a4, a5) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = a5 | 0; + return FUNCTION_TABLE_iiiiii[index & 31](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0) | 0; +} + function runPostSets() {} function _i64Subtract(a, b, c, d) { a = a | 0; @@ -73136,6 +125492,34 @@ function _i64Subtract(a, b, c, d) { return (tempRet0 = h, a - c >>> 0 | 0) | 0; } +function __ZNSt3__16locale5__imp7installINS_10moneypunctIwLb1EEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13416) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_10moneypunctIwLb0EEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13352) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_10moneypunctIcLb1EEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13288) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_10moneypunctIcLb0EEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13224) | 0); + return; +} + function _arImageProcLumaHistAndCDFAndMedian($ipi, $dataPtr, $value_p) { $ipi = $ipi | 0; $dataPtr = $dataPtr | 0; @@ -73143,6 +125527,30 @@ function _arImageProcLumaHistAndCDFAndMedian($ipi, $dataPtr, $value_p) { return _arImageProcLumaHistAndCDFAndPercentile($ipi, $dataPtr, .5, $value_p) | 0; } +function __ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev($this + (HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev($this + (HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev($this + (HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev($this + (HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) | 0); + return; +} + function _arGetPatternDetectionMode($handle, $mode) { $handle = $handle | 0; $mode = $mode | 0; @@ -73154,6 +125562,34 @@ function _arGetPatternDetectionMode($handle, $mode) { return $$0 | 0; } +function __ZNSt3__16locale5__imp11make_globalEv() { + var $0 = 0, $1 = 0; + $0 = __ZNSt3__16locale7classicEv() | 0; + $1 = HEAP32[$0 >> 2] | 0; + HEAP32[3612] = $1; + __ZNSt3__114__shared_count12__add_sharedEv($1); + return 14448; +} + +function dynCall_iiiiid(index, a1, a2, a3, a4, a5) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + a5 = +a5; + return FUNCTION_TABLE_iiiiid[index & 7](a1 | 0, a2 | 0, a3 | 0, a4 | 0, +a5) | 0; +} + +function _start_pass_upsample($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + HEAP32[$1 + 92 >> 2] = HEAP32[$cinfo + 312 >> 2]; + HEAP32[$1 + 96 >> 2] = HEAP32[$cinfo + 116 >> 2]; + return; +} + function ___strdup($s) { $s = $s | 0; var $$0 = 0, $1 = 0, $2 = 0; @@ -73166,6 +125602,40 @@ function ___strdup($s) { return $$0 | 0; } +function __ZNSt3__119__shared_weak_count16__release_sharedEv($this) { + $this = $this | 0; + if (__ZNSt3__114__shared_count16__release_sharedEv($this) | 0) __ZNSt3__119__shared_weak_count14__release_weakEv($this); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8numpunctIwEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13828) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8numpunctIcEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13820) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8messagesIwEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13640) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_8messagesIcEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13600) | 0); + return; +} + function dynCall_viiiii(index, a1, a2, a3, a4, a5) { index = index | 0; a1 = a1 | 0; @@ -73173,7 +125643,21 @@ function dynCall_viiiii(index, a1, a2, a3, a4, a5) { a3 = a3 | 0; a4 = a4 | 0; a5 = a5 | 0; - FUNCTION_TABLE_viiiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0); + FUNCTION_TABLE_viiiii[index & 31](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0); +} + +function __ZNSt3__16locale5__imp7installINS_7collateIwEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12648) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_7collateIcEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(12608) | 0); + return; } function _arGetImageProcMode($handle, $mode) { @@ -73187,6 +125671,43 @@ function _arGetImageProcMode($handle, $mode) { return $$0 | 0; } +function __ZNSt3__110shared_ptrIN6vision18FrontendSinkFilterEED2Ev($this) { + $this = $this | 0; + var $1 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + if ($1) __ZNSt3__119__shared_weak_count16__release_sharedEv($1); + return; +} + +function __ZN6vision25GaussianScaleSpacePyramidD0Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 4412; + __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this + 4 | 0); + __ZdlPv($this); + return; +} + +function __ZN6vision10CauchyCostIfEET_S1_S1_S1_($x0, $x1, $one_over_scale2) { + $x0 = +$x0; + $x1 = +$x1; + $one_over_scale2 = +$one_over_scale2; + return +(+Math_log(+(($x0 * $x0 + $x1 * $x1) * $one_over_scale2 + 1.0))); +} + +function __ZNSt3__16locale5__imp7installINS_5ctypeIwEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13672) | 0); + return; +} + +function __ZNSt3__16locale5__imp7installINS_5ctypeIcEEEEvPT_($this, $f) { + $this = $this | 0; + $f = $f | 0; + __ZNSt3__16locale5__imp7installEPNS0_5facetEl($this, $f, __ZNSt3__16locale2id5__getEv(13680) | 0); + return; +} + function _icpDeleteHandle($handle) { $handle = $handle | 0; var $$0 = 0, $0 = 0; @@ -73199,6 +125720,37 @@ function _icpDeleteHandle($handle) { return $$0 | 0; } +function __ZNSt3__110shared_ptrIN6vision8KeyframeILi96EEEED2Ev($this) { + $this = $this | 0; + var $1 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + if ($1) __ZNSt3__119__shared_weak_count16__release_sharedEv($1); + return; +} + +function __ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev($this) { + $this = $this | 0; + __ZNSt3__114__shared_countD2Ev($this); + __ZdlPv($this); + return; +} + +function _jpeg_alloc_quant_table($cinfo) { + $cinfo = $cinfo | 0; + var $3 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 0, 132) | 0; + HEAP32[$3 + 128 >> 2] = 0; + return $3 | 0; +} + +function _jpeg_alloc_huff_table($cinfo) { + $cinfo = $cinfo | 0; + var $3 = 0; + $3 = FUNCTION_TABLE_iiii[HEAP32[HEAP32[$cinfo + 4 >> 2] >> 2] & 63]($cinfo, 0, 280) | 0; + HEAP32[$3 + 276 >> 2] = 0; + return $3 | 0; +} + function _arSetMatrixCodeType($handle, $type) { $handle = $handle | 0; $type = $type | 0; @@ -73209,6 +125761,14 @@ function _arSetMatrixCodeType($handle, $type) { } return $$0 | 0; } + +function __ZNK6vision9Exception4whatEv($this) { + $this = $this | 0; + var $0 = 0, $7 = 0; + $0 = $this + 4 | 0; + if (!(HEAP8[$0 >> 0] & 1)) $7 = $0 + 1 | 0; else $7 = HEAP32[$this + 12 >> 2] | 0; + return $7 | 0; +} function stackAlloc(size) { size = size | 0; var ret = 0; @@ -73219,12 +125779,42 @@ function stackAlloc(size) { return ret | 0; } +function _wcslen($s) { + $s = $s | 0; + var $$0 = 0, $$0$lcssa = 0; + $$0 = $s; + while (1) if (!(HEAP32[$$0 >> 2] | 0)) { + $$0$lcssa = $$0; + break; + } else $$0 = $$0 + 4 | 0; + return $$0$lcssa - $s >> 2 | 0; +} + function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this) { $this = $this | 0; if (HEAP8[$this >> 0] & 1) _free(HEAP32[$this + 8 >> 2] | 0); return; } +function _start_pass_merged_upsample($cinfo) { + $cinfo = $cinfo | 0; + var $1 = 0; + $1 = HEAP32[$cinfo + 452 >> 2] | 0; + HEAP32[$1 + 36 >> 2] = 0; + HEAP32[$1 + 44 >> 2] = HEAP32[$cinfo + 116 >> 2]; + return; +} + +function __ZNSt3__16localeC2ERKS0_($this, $l) { + $this = $this | 0; + $l = $l | 0; + var $0 = 0; + $0 = HEAP32[$l >> 2] | 0; + HEAP32[$this >> 2] = $0; + __ZNSt3__114__shared_count12__add_sharedEv($0); + return; +} + function ___syscall_ret($r) { $r = $r | 0; var $$0 = 0, $2 = 0; @@ -73236,11 +125826,42 @@ function ___syscall_ret($r) { return $$0 | 0; } +function __ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; +} + +function __ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + ((HEAP32[(HEAP32[$this >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; +} + +function __ZN6vision8KeyframeILi96EED2Ev($this) { + $this = $this | 0; + __ZN6vision28BinaryHierarchicalClusteringILi96EED2Ev($this + 36 | 0); + __ZN6vision18BinaryFeatureStoreD2Ev($this + 8 | 0); + return; +} + function __ZN10emscripten8internal7InvokerIiJiiEE6invokeEPFiiiEii($fn, $args, $args1) { $fn = $fn | 0; $args = $args | 0; $args1 = $args1 | 0; - return FUNCTION_TABLE_iii[$fn & 15]($args, $args1) | 0; + return FUNCTION_TABLE_iii[$fn & 63]($args, $args1) | 0; } function dynCall_iiiii(index, a1, a2, a3, a4) { @@ -73249,14 +125870,38 @@ function dynCall_iiiii(index, a1, a2, a3, a4) { a2 = a2 | 0; a3 = a3 | 0; a4 = a4 | 0; - return FUNCTION_TABLE_iiiii[index & 1](a1 | 0, a2 | 0, a3 | 0, a4 | 0) | 0; + return FUNCTION_TABLE_iiiii[index & 15](a1 | 0, a2 | 0, a3 | 0, a4 | 0) | 0; +} + +function __ZNSt3__15ctypeIcED2Ev($this) { + $this = $this | 0; + var $1 = 0; + HEAP32[$this >> 2] = 13696; + $1 = HEAP32[$this + 8 >> 2] | 0; + if ($1) if (HEAP8[$this + 12 >> 0] | 0) __ZdaPv($1); + return; +} + +function __ZN6vision25GaussianScaleSpacePyramidD2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 4412; + __ZNSt3__113__vector_baseIN6vision5ImageENS_9allocatorIS2_EEED2Ev($this + 4 | 0); + return; } function __ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii($fn, $args, $args1) { $fn = $fn | 0; $args = $args | 0; $args1 = $args1 | 0; - FUNCTION_TABLE_vii[$fn & 7]($args, $args1); + FUNCTION_TABLE_vii[$fn & 63]($args, $args1); + return; +} + +function __ZNSt3__110__time_putD2Ev($this) { + $this = $this | 0; + var $0 = 0; + $0 = HEAP32[$this >> 2] | 0; + if (($0 | 0) != (__ZNSt3__16__clocEv() | 0)) _freelocale(HEAP32[$this >> 2] | 0); return; } @@ -73276,190 +125921,555 @@ function __ZN10emscripten8internal7InvokerIvJidEE6invokeEPFvidEid($fn, $args, $a return; } -function _arImageProcFinal($ipi) { - $ipi = $ipi | 0; - if ($ipi) { - if (HEAP32[$ipi + 2076 >> 2] | 0) _free(HEAP32[$ipi >> 2] | 0); - _free(HEAP32[$ipi + 4 >> 2] | 0); - _free($ipi); - } - return; +function _new_color_map_1_quant($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0; + $0 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$0 + 20 >> 2] = 46; + FUNCTION_TABLE_vi[HEAP32[$0 >> 2] & 255]($cinfo); + return; +} + +function b12(p0, p1, p2, p3, p4, p5, p6, p7) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + p5 = p5 | 0; + p6 = p6 | 0; + p7 = p7 | 0; + nullFunc_iiiiiiiii(12); + return 0; +} + +function _arImageProcFinal($ipi) { + $ipi = $ipi | 0; + if ($ipi) { + if (HEAP32[$ipi + 2076 >> 2] | 0) _free(HEAP32[$ipi >> 2] | 0); + _free(HEAP32[$ipi + 4 >> 2] | 0); + _free($ipi); + } + return; +} + +function __ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 4, 5976, 45817, 8, $fn | 0); + return; +} + +function __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 3, 5944, 45812, 36, $fn | 0); + return; +} + +function dynCall_viiii(index, a1, a2, a3, a4) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + a4 = a4 | 0; + FUNCTION_TABLE_viiii[index & 31](a1 | 0, a2 | 0, a3 | 0, a4 | 0); +} + +function __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 3, 5892, 45686, 3, $fn | 0); + return; +} + +function __ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 3, 5880, 45681, 2, $fn | 0); + return; +} + +function __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 3, 5912, 45695, 1, $fn | 0); + return; +} + +function __ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 2, 5928, 45703, 55, $fn | 0); + return; +} + +function __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 2, 5968, 45707, 39, $fn | 0); + return; +} + +function __ZNSt3__18numpunctIwED2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 13884; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this + 16 | 0); + return; +} + +function __ZNSt3__18numpunctIcED2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 13844; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this + 12 | 0); + return; +} + +function __ZNSt3__110shared_ptrIhED2Ev($this) { + $this = $this | 0; + var $1 = 0; + $1 = HEAP32[$this + 4 >> 2] | 0; + if ($1) __ZNSt3__119__shared_weak_count16__release_sharedEv($1); + return; +} + +function __ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 1, 5924, 45700, 89, $fn | 0); + return; +} + +function __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { + $name = $name | 0; + $fn = $fn | 0; + __embind_register_function($name | 0, 2, 5904, 45691, 1, $fn | 0); + return; +} + +function _icpGetXw2XcCleanup295($J_U_S, $dU, $E, $E2) { + $J_U_S = $J_U_S | 0; + $dU = $dU | 0; + $E = $E | 0; + $E2 = $E2 | 0; + _free($J_U_S); + _free($dU); + _free($E); + _free($E2); + return; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED0Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 12344; + __ZNSt3__16localeD2Ev($this + 4 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED0Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 12280; + __ZNSt3__16localeD2Ev($this + 4 | 0); + __ZdlPv($this); + return; +} + +function __ZN6vision9ExceptionD2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 4428; + __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this + 4 | 0); + return; +} + +function ___errno_location() { + var $$0 = 0, $3 = 0; + if (!(HEAP32[1545] | 0)) $$0 = 6456; else { + $3 = (_pthread_self() | 0) + 60 | 0; + $$0 = HEAP32[$3 >> 2] | 0; + } + return $$0 | 0; +} + +function __ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__114__shared_countD2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__110__time_putD2Ev($this + 8 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__110__time_putD2Ev($this + 8 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE16__on_zero_sharedEv($this) { + $this = $this | 0; + __ZdlPv(HEAP32[$this + 12 >> 2] | 0); + return; +} + +function __ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__114__shared_countD2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev($this) { + $this = $this | 0; + if (HEAP8[$this >> 0] & 1) __ZdlPv(HEAP32[$this + 8 >> 2] | 0); + return; +} + +function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this) { + $this = $this | 0; + if (HEAP8[$this >> 0] & 1) __ZdlPv(HEAP32[$this + 8 >> 2] | 0); + return; +} + +function _i64Add(a, b, c, d) { + a = a | 0; + b = b | 0; + c = c | 0; + d = d | 0; + var l = 0; + l = a + c >>> 0; + return (tempRet0 = b + d + (l >>> 0 < a >>> 0 | 0) >>> 0, l | 0) | 0; +} + +function __ZN6vision10FastMedianIfEET_PS1_i($a, $n) { + $a = $a | 0; + $n = $n | 0; + return +(+__ZN6vision11PartialSortIfEET_PS1_ii($a, $n, ($n & 1) + -1 + (($n | 0) / 2 | 0) | 0)); +} + +function __ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv($this) { + $this = $this | 0; + var $0 = 0; + $0 = $this + 16 | 0; + HEAP32[$0 >> 2] = HEAP32[$0 >> 2] | 1; + return; +} + +function __ZN10emscripten8constantIdEEvPKcRKT_($name, $v) { + $name = $name | 0; + $v = $v | 0; + __embind_register_constant($name | 0, 912, ~~+HEAPF64[$v >> 3] >>> 0 | 0); + return; +} + +function __ZNSt3__16locale5facet16__on_zero_sharedEv($this) { + $this = $this | 0; + if ($this) FUNCTION_TABLE_vi[HEAP32[(HEAP32[$this >> 2] | 0) + 4 >> 2] & 255]($this); + return; +} + +function __ZNSt3__18ios_base5clearEj($this, $state) { + $this = $this | 0; + $state = $state | 0; + HEAP32[$this + 16 >> 2] = (HEAP32[$this + 24 >> 2] | 0) == 0 | $state; + return; +} + +function __ZN6vision6LoggerD2Ev($this) { + $this = $this | 0; + __ZNSt3__113__vector_baseINS_10shared_ptrIN6vision18FrontendSinkFilterEEENS_9allocatorIS4_EEED2Ev($this); + return; +} + +function _strtoull_l($s, $p, $base, $loc) { + $s = $s | 0; + $p = $p | 0; + $base = $base | 0; + $loc = $loc | 0; + var $0 = 0; + $0 = _strtoull($s, $p, $base) | 0; + return $0 | 0; +} + +function __ZNSt3__119__shared_weak_count12__add_sharedEv($this) { + $this = $this | 0; + var $0 = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 1; + return; +} + +function dynCall_iiii(index, a1, a2, a3) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + a3 = a3 | 0; + return FUNCTION_TABLE_iiii[index & 63](a1 | 0, a2 | 0, a3 | 0) | 0; +} + +function b0(p0, p1, p2, p3, p4, p5, p6) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + p5 = p5 | 0; + p6 = p6 | 0; + nullFunc_iiiiiiii(0); + return 0; +} + +function _uselocale($l) { + $l = $l | 0; + var $1 = 0, $2 = 0; + $1 = (_pthread_self() | 0) + 176 | 0; + $2 = HEAP32[$1 >> 2] | 0; + if ($l) HEAP32[$1 >> 2] = $l; + return $2 | 0; +} + +function __ZNKSt3__15ctypeIwE9do_narrowEwc($this, $c, $dfault) { + $this = $this | 0; + $c = $c | 0; + $dfault = $dfault | 0; + return ($c >>> 0 < 128 ? $c & 255 : $dfault) | 0; +} + +function _strtoll_l($s, $p, $base, $loc) { + $s = $s | 0; + $p = $p | 0; + $base = $base | 0; + $loc = $loc | 0; + var $0 = 0; + $0 = _strtoll($s, $p, $base) | 0; + return $0 | 0; +} + +function ___cxa_is_pointer_type($type) { + $type = $type | 0; + var $3 = 0; + if (!$type) $3 = 0; else $3 = (___dynamic_cast($type, 736, 784, 0) | 0) != 0; + return $3 & 1 | 0; } -function __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 4, 2200, 10910, 1, $fn | 0); - return; +function __ZNKSt3__15ctypeIcE9do_narrowEcc($this, $c, $dfault) { + $this = $this | 0; + $c = $c | 0; + $dfault = $dfault | 0; + return ($c << 24 >> 24 > -1 ? $c : $dfault) | 0; } -function __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 3, 2168, 10905, 13, $fn | 0); - return; +function ___udivdi3($a$0, $a$1, $b$0, $b$1) { + $a$0 = $a$0 | 0; + $a$1 = $a$1 | 0; + $b$0 = $b$0 | 0; + $b$1 = $b$1 | 0; + return ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; } -function __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 3, 2116, 10779, 1, $fn | 0); +function __ZNSt3__16locale2id6__initEv($this) { + $this = $this | 0; + var $0 = 0; + $0 = HEAP32[3417] | 0; + HEAP32[3417] = $0 + 1; + HEAP32[$this + 4 >> 2] = $0 + 1; return; } -function __ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 3, 2104, 10774, 2, $fn | 0); - return; +function _strchr($s, $c) { + $s = $s | 0; + $c = $c | 0; + var $0 = 0; + $0 = ___strchrnul($s, $c) | 0; + return ((HEAP8[$0 >> 0] | 0) == ($c & 255) << 24 >> 24 ? $0 : 0) | 0; } -function __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 3, 2136, 10788, 1, $fn | 0); +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 12344; + __ZNSt3__16localeD2Ev($this + 4 | 0); return; } -function __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 2, 2192, 10800, 10, $fn | 0); +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 12280; + __ZNSt3__16localeD2Ev($this + 4 | 0); return; } -function dynCall_viiii(index, a1, a2, a3, a4) { - index = index | 0; - a1 = a1 | 0; - a2 = a2 | 0; - a3 = a3 | 0; - a4 = a4 | 0; - FUNCTION_TABLE_viiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0); +function __ZNSt3__114__shared_count12__add_sharedEv($this) { + $this = $this | 0; + var $0 = 0; + $0 = $this + 4 | 0; + HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 1; + return; } -function __ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { +function __ZN10emscripten8constantIiEEvPKcRKT_($name, $v) { $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 2, 2152, 10796, 7, $fn | 0); + $v = $v | 0; + __embind_register_constant($name | 0, 872, HEAP32[$v >> 2] | 0); return; } -function __ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 1, 2148, 10793, 16, $fn | 0); +function _jpeg_free_small($cinfo, $object, $sizeofobject) { + $cinfo = $cinfo | 0; + $object = $object | 0; + $sizeofobject = $sizeofobject | 0; + _free($object); return; } -function __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) { - $name = $name | 0; - $fn = $fn | 0; - __embind_register_function($name | 0, 2, 2128, 10784, 1, $fn | 0); +function _jpeg_free_large($cinfo, $object, $sizeofobject) { + $cinfo = $cinfo | 0; + $object = $object | 0; + $sizeofobject = $sizeofobject | 0; + _free($object); return; } -function _icpGetXw2XcCleanup295($J_U_S, $dU, $E, $E2) { - $J_U_S = $J_U_S | 0; - $dU = $dU | 0; - $E = $E | 0; - $E2 = $E2 | 0; - _free($J_U_S); - _free($dU); - _free($E); - _free($E2); +function __ZN6vision8fastexp6IfEET_S1_($x) { + $x = +$x; + return +((((((($x + 6.0) * $x + 30.0) * $x + 120.0) * $x + 360.0) * $x + 720.0) * $x + 720.0) * .0013888888); +} + +function _reset_error_mgr($cinfo) { + $cinfo = $cinfo | 0; + var $0 = 0; + $0 = HEAP32[$cinfo >> 2] | 0; + HEAP32[$0 + 108 >> 2] = 0; + HEAP32[$0 + 20 >> 2] = 0; return; } -function ___errno_location() { - var $$0 = 0, $3 = 0; - if (!(HEAP32[597] | 0)) $$0 = 2644; else { - $3 = (_pthread_self() | 0) + 60 | 0; - $$0 = HEAP32[$3 >> 2] | 0; - } - return $$0 | 0; +function _error_exit($cinfo) { + $cinfo = $cinfo | 0; + FUNCTION_TABLE_vi[HEAP32[(HEAP32[$cinfo >> 2] | 0) + 8 >> 2] & 255]($cinfo); + _jpeg_destroy($cinfo); + _exit(1); } -function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this) { +function __ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { $this = $this | 0; - if (HEAP8[$this >> 0] & 1) __ZdlPv(HEAP32[$this + 8 >> 2] | 0); + __ZNSt3__110__time_putD2Ev($this + 8 | 0); return; } -function _i64Add(a, b, c, d) { - a = a | 0; - b = b | 0; - c = c | 0; - d = d | 0; - var l = 0; - l = a + c >>> 0; - return (tempRet0 = b + d + (l >>> 0 < a >>> 0 | 0) >>> 0, l | 0) | 0; -} - -function __ZN10emscripten8constantIdEEvPKcRKT_($name, $v) { - $name = $name | 0; - $v = $v | 0; - __embind_register_constant($name | 0, 720, ~~+HEAPF64[$v >> 3] >>> 0 | 0); +function __ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + __ZNSt3__110__time_putD2Ev($this + 8 | 0); return; } -function dynCall_iiii(index, a1, a2, a3) { - index = index | 0; - a1 = a1 | 0; - a2 = a2 | 0; - a3 = a3 | 0; - return FUNCTION_TABLE_iiii[index & 15](a1 | 0, a2 | 0, a3 | 0) | 0; +function __ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE21__on_zero_shared_weakEv($this) { + $this = $this | 0; + __ZdlPv($this); + return; } -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - return ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; +function b13(p0, p1, p2, p3, p4, p5, p6) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + p5 = p5 | 0; + p6 = p6 | 0; + nullFunc_viiiiiii(13); } -function _strchr($s, $c) { +function _strtoll($s, $p, $base) { $s = $s | 0; - $c = $c | 0; + $p = $p | 0; + $base = $base | 0; var $0 = 0; - $0 = ___strchrnul($s, $c) | 0; - return ((HEAP8[$0 >> 0] | 0) == ($c & 255) << 24 >> 24 ? $0 : 0) | 0; + $0 = _strtox530($s, $p, $base, 0, -2147483648) | 0; + return $0 | 0; } -function __ZN10emscripten8constantIiEEvPKcRKT_($name, $v) { - $name = $name | 0; - $v = $v | 0; - __embind_register_constant($name | 0, 680, HEAP32[$v >> 2] | 0); +function __ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE21__on_zero_shared_weakEv($this) { + $this = $this | 0; + __ZdlPv($this); return; } +function _ar2UtilReplaceExt($filename, $n, $ext) { + $filename = $filename | 0; + $n = $n | 0; + $ext = $ext | 0; + return _arUtilReplaceExt($filename, $n, $ext) | 0; +} + function dynCall_viii(index, a1, a2, a3) { index = index | 0; a1 = a1 | 0; a2 = a2 | 0; a3 = a3 | 0; - FUNCTION_TABLE_viii[index & 1](a1 | 0, a2 | 0, a3 | 0); + FUNCTION_TABLE_viii[index & 3](a1 | 0, a2 | 0, a3 | 0); } function __ZN10emscripten8internal7InvokerIiJiEE6invokeEPFiiEi($fn, $args) { $fn = $fn | 0; $args = $args | 0; - return FUNCTION_TABLE_ii[$fn & 31]($args) | 0; + return FUNCTION_TABLE_ii[$fn & 127]($args) | 0; } -function __ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi($fn, $args) { +function _jzero_far($target, $bytestozero) { + $target = $target | 0; + $bytestozero = $bytestozero | 0; + _memset($target | 0, 0, $bytestozero | 0) | 0; + return; +} + +function __ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi($fn, $args) { $fn = $fn | 0; $args = $args | 0; - return +(+FUNCTION_TABLE_di[$fn & 3]($args)); + FUNCTION_TABLE_vi[$fn & 255]($args); + return; } -function __ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi($fn, $args) { +function __ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi($fn, $args) { $fn = $fn | 0; $args = $args | 0; - FUNCTION_TABLE_vi[$fn & 15]($args); + return +(+FUNCTION_TABLE_di[$fn & 3]($args)); +} + +function __ZNSt3__111__stdoutbufIwED0Ev($this) { + $this = $this | 0; + __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__111__stdoutbufIcED0Ev($this) { + $this = $this | 0; + __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev($this); + __ZdlPv($this); return; } +function _strtoull($s, $p, $base) { + $s = $s | 0; + $p = $p | 0; + $base = $base | 0; + var $0 = 0; + $0 = _strtox530($s, $p, $base, -1, -1) | 0; + return $0 | 0; +} + function _compE($a, $b) { $a = $a | 0; $b = $b | 0; @@ -73468,6 +126478,48 @@ function _compE($a, $b) { return ($2 < 0.0 ? -1 : $2 > 0.0 & 1) | 0; } +function __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 4 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 4 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 8 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 8 | 0); + __ZdlPv($this); + return; +} + +function __ZNSt3__110__stdinbufIwED0Ev($this) { + $this = $this | 0; + __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__110__stdinbufIcED0Ev($this) { + $this = $this | 0; + __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev($this); + __ZdlPv($this); + return; +} + function dynCall_viid(index, a1, a2, a3) { index = index | 0; a1 = a1 | 0; @@ -73476,6 +126528,17 @@ function dynCall_viid(index, a1, a2, a3) { FUNCTION_TABLE_viid[index & 3](a1 | 0, a2 | 0, +a3); } +function b6(p0, p1, p2, p3, p4, p5) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + p5 = p5 | 0; + nullFunc_iiiiiii(6); + return 0; +} + function _isxdigit($c) { $c = $c | 0; var $4 = 0; @@ -73483,6 +126546,40 @@ function _isxdigit($c) { return $4 & 1 | 0; } +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6setbufEPwi($this, $0, $1) { + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + return $this | 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6setbufEPci($this, $0, $1) { + $this = $this | 0; + $0 = $0 | 0; + $1 = $1 | 0; + return $this | 0; +} + +function __ZNSt3__17codecvtIwc11__mbstate_tED0Ev($this) { + $this = $this | 0; + __ZNSt3__17codecvtIwc11__mbstate_tED2Ev($this); + __ZdlPv($this); + return; +} + +function __ZN6vision6LoggerC2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 0; + HEAP32[$this + 4 >> 2] = 0; + HEAP32[$this + 8 >> 2] = 0; + return; +} + +function __ZN6vision20VisualDatabaseFacade9matchedIdEv($this) { + $this = $this | 0; + return HEAP32[(HEAP32[HEAP32[$this >> 2] >> 2] | 0) + 24 >> 2] | 0; +} + function establishStackSpace(stackBase, stackMax) { stackBase = stackBase | 0; stackMax = stackMax | 0; @@ -73490,67 +126587,99 @@ function establishStackSpace(stackBase, stackMax) { STACK_MAX = stackMax; } +function b3(p0, p1, p2, p3, p4, p5) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + p5 = +p5; + nullFunc_iiiiiid(3); + return 0; +} + +function __ZSt17__throw_bad_allocv() { + var $0 = 0; + $0 = ___cxa_allocate_exception(4) | 0; + __ZNSt9bad_allocC2Ev($0); + ___cxa_throw($0 | 0, 704, 17); +} + function __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(512, 3, $name | 0); + __embind_register_memory_view(672, 3, $name | 0); return; } function __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(520, 2, $name | 0); + __embind_register_memory_view(680, 2, $name | 0); return; } function __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(496, 5, $name | 0); + __embind_register_memory_view(656, 5, $name | 0); return; } function __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(504, 4, $name | 0); + __embind_register_memory_view(664, 4, $name | 0); return; } function __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(528, 1, $name | 0); + __embind_register_memory_view(688, 1, $name | 0); return; } function __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc($name) { $name = $name | 0; - __embind_register_memory_view(536, 0, $name | 0); + __embind_register_memory_view(696, 0, $name | 0); return; } +function _catgets($catd, $set_id, $msg_id, $s) { + $catd = $catd | 0; + $set_id = $set_id | 0; + $msg_id = $msg_id | 0; + $s = $s | 0; + return $s | 0; +} + function __ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv($this) { $this = $this | 0; - ___assert_fail(14152, 12528, 1175, 14181); + ___assert_fail(49304, 47358, 1175, 49333); } function __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this) { $this = $this | 0; - ___assert_fail(12499, 12528, 1164, 12463); + ___assert_fail(47329, 47358, 1164, 47446); } function dynCall_iii(index, a1, a2) { index = index | 0; a1 = a1 | 0; a2 = a2 | 0; - return FUNCTION_TABLE_iii[index & 15](a1 | 0, a2 | 0) | 0; + return FUNCTION_TABLE_iii[index & 63](a1 | 0, a2 | 0) | 0; } -function b13(p0, p1, p2, p3, p4, p5) { +function b10(p0, p1, p2, p3, p4, p5) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; p3 = p3 | 0; p4 = p4 | 0; p5 = p5 | 0; - nullFunc_viiiiii(13); + nullFunc_viiiiii(10); +} + +function __ZNSt3__16localeD2Ev($this) { + $this = $this | 0; + __ZNSt3__114__shared_count16__release_sharedEv(HEAP32[$this >> 2] | 0) | 0; + return; } function _wctomb($s, $wc) { @@ -73563,7 +126692,33 @@ function _wctomb($s, $wc) { function __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this) { $this = $this | 0; - ___assert_fail(12352, 12375, 303, 12463); + ___assert_fail(47467, 47490, 303, 47446); +} + +function __ZN6vision18BinomialPyramid32fD0Ev($this) { + $this = $this | 0; + __ZN6vision18BinomialPyramid32fD2Ev($this); + __ZdlPv($this); + return; +} + +function _jpeg_get_small($cinfo, $sizeofobject) { + $cinfo = $cinfo | 0; + $sizeofobject = $sizeofobject | 0; + return _malloc($sizeofobject) | 0; +} + +function _jpeg_get_large($cinfo, $sizeofobject) { + $cinfo = $cinfo | 0; + $sizeofobject = $sizeofobject | 0; + return _malloc($sizeofobject) | 0; +} + +function _strcat($dest, $src) { + $dest = $dest | 0; + $src = $src | 0; + _strcpy($dest + (_strlen($dest) | 0) | 0, $src) | 0; + return $dest | 0; } function dynCall_dii(index, a1, a2) { @@ -73573,6 +126728,66 @@ function dynCall_dii(index, a1, a2) { return +FUNCTION_TABLE_dii[index & 1](a1 | 0, a2 | 0); } +function __ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE16__on_zero_sharedEv($this) { + $this = $this | 0; + return; +} + +function _close_backing_store($cinfo, $info) { + $cinfo = $cinfo | 0; + $info = $info | 0; + _fclose(HEAP32[$info + 12 >> 2] | 0) | 0; + return; +} + +function __ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 4 | 0); + return; +} + +function __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 4 | 0); + return; +} + +function __ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 8 | 0); + return; +} + +function __ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this + 8 | 0); + return; +} + +function __ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + function setThrew(threw, value) { threw = threw | 0; value = value | 0; @@ -73582,6 +126797,128 @@ function setThrew(threw, value) { } } +function _jround_up($a, $b) { + $a = $a | 0; + $b = $b | 0; + var $1 = 0; + $1 = $a + -1 + $b | 0; + return $1 - (($1 | 0) % ($b | 0) | 0) | 0; +} + +function __ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNK6vision20VisualDatabaseFacade7inliersEv($this) { + $this = $this | 0; + return (HEAP32[HEAP32[$this >> 2] >> 2] | 0) + 12 | 0; +} + +function _mbrlen($s, $n, $st) { + $s = $s | 0; + $n = $n | 0; + $st = $st | 0; + return _mbrtowc(0, $s, $n, ($st | 0) != 0 ? $st : 6492) | 0; +} + +function __ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13do_date_orderEv($this) { + $this = $this | 0; + return 2; +} + +function __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13do_date_orderEv($this) { + $this = $this | 0; + return 2; +} + +function __ZNSt3__110__stdinbufIwE9underflowEv($this) { + $this = $this | 0; + return __ZNSt3__110__stdinbufIwE9__getcharEb($this, 0) | 0; +} + +function __ZNSt3__110__stdinbufIcE9underflowEv($this) { + $this = $this | 0; + return __ZNSt3__110__stdinbufIcE9__getcharEb($this, 0) | 0; +} + +function b8(p0, p1, p2, p3, p4) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + nullFunc_iiiiii(8); + return 0; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5imbueERKNS_6localeE($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return; +} + +function dynCall_vii(index, a1, a2) { + index = index | 0; + a1 = a1 | 0; + a2 = a2 | 0; + FUNCTION_TABLE_vii[index & 63](a1 | 0, a2 | 0); +} + +function b21(p0, p1, p2, p3, p4) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = +p4; + nullFunc_iiiiid(21); + return 0; +} + +function _vsprintf($s, $fmt, $ap) { + $s = $s | 0; + $fmt = $fmt | 0; + $ap = $ap | 0; + return _vsnprintf($s, 2147483647, $fmt, $ap) | 0; +} + function _fseek($f, $off, $whence) { $f = $f | 0; $off = $off | 0; @@ -73589,11 +126926,14 @@ function _fseek($f, $off, $whence) { return ___fseeko($f, $off, $whence) | 0; } -function dynCall_vii(index, a1, a2) { - index = index | 0; - a1 = a1 | 0; - a2 = a2 | 0; - FUNCTION_TABLE_vii[index & 7](a1 | 0, a2 | 0); +function __ZNSt3__110__stdinbufIwE5uflowEv($this) { + $this = $this | 0; + return __ZNSt3__110__stdinbufIwE9__getcharEb($this, 1) | 0; +} + +function __ZNSt3__110__stdinbufIcE5uflowEv($this) { + $this = $this | 0; + return __ZNSt3__110__stdinbufIcE9__getcharEb($this, 1) | 0; } function _mbsinit($st) { @@ -73603,6 +126943,18 @@ function _mbsinit($st) { return $4 & 1 | 0; } +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9pbackfailEj($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return -1; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9pbackfailEi($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return -1; +} + function _do_read($f, $buf, $len) { $f = $f | 0; $buf = $buf | 0; @@ -73610,32 +126962,161 @@ function _do_read($f, $buf, $len) { return ___string_read($f, $buf, $len) | 0; } -function dynCall_vid(index, a1, a2) { - index = index | 0; - a1 = a1 | 0; - a2 = +a2; - FUNCTION_TABLE_vid[index & 3](a1 | 0, +a2); +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE8overflowEj($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return -1; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE8overflowEi($this, $0) { + $this = $this | 0; + $0 = $0 | 0; + return -1; +} + +function _new_color_map_2_quant($cinfo) { + $cinfo = $cinfo | 0; + HEAP32[(HEAP32[$cinfo + 460 >> 2] | 0) + 28 >> 2] = 1; + return; +} + +function __ZNSt3__16locale5__impD0Ev($this) { + $this = $this | 0; + __ZNSt3__16locale5__impD2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__16locale5__imp12make_classicEv() { + __ZNSt3__16locale5__impC2Ej(2568, 1); + HEAP32[3610] = 2568; + return 14440; +} + +function dynCall_vid(index, a1, a2) { + index = index | 0; + a1 = a1 | 0; + a2 = +a2; + FUNCTION_TABLE_vid[index & 3](a1 | 0, +a2); +} + +function _start_input_pass($cinfo) { + $cinfo = $cinfo | 0; + HEAP32[$cinfo + 148 >> 2] = 0; + _start_iMCU_row27($cinfo); + return; +} + +function __ZNSt3__18numpunctIwED0Ev($this) { + $this = $this | 0; + __ZNSt3__18numpunctIwED2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__18numpunctIcED0Ev($this) { + $this = $this | 0; + __ZNSt3__18numpunctIcED2Ev($this); + __ZdlPv($this); + return; +} + +function __GLOBAL__I_000101() { + __ZNSt3__18ios_base4InitC2Ev(0); + ___cxa_atexit(146, 54712, ___dso_handle | 0) | 0; + return; +} + +function b1(p0, p1, p2, p3, p4) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = p2 | 0; + p3 = p3 | 0; + p4 = p4 | 0; + nullFunc_viiiii(1); +} + +function _arMultiFreeConfig($config) { + $config = $config | 0; + _free(HEAP32[$config >> 2] | 0); + _free($config); + return 0; +} + +function __ZN6vision9ExceptionD0Ev($this) { + $this = $this | 0; + __ZN6vision9ExceptionD2Ev($this); + __ZdlPv($this); + return; +} + +function __ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE($fn) { + $fn = $fn | 0; + return FUNCTION_TABLE_i[$fn & 1]() | 0; +} + +function __ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__18ios_baseD0Ev($this) { + $this = $this | 0; + __ZNSt3__18ios_baseD2Ev($this); + __ZdlPv($this); + return; +} + +function __ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + return; } -function b1(p0, p1, p2, p3, p4) { - p0 = p0 | 0; - p1 = p1 | 0; - p2 = p2 | 0; - p3 = p3 | 0; - p4 = p4 | 0; - nullFunc_viiiii(1); +function __ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev($this) { + $this = $this | 0; + return; } -function _arMultiFreeConfig($config) { - $config = $config | 0; - _free(HEAP32[$config >> 2] | 0); - _free($config); - return 0; +function __ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev($this) { + $this = $this | 0; + return; } -function __ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE($fn) { - $fn = $fn | 0; - return FUNCTION_TABLE_i[$fn & 1]() | 0; +function __ZNSt3__15ctypeIcED0Ev($this) { + $this = $this | 0; + __ZNSt3__15ctypeIcED2Ev($this); + __ZdlPv($this); + return; } function _icpGetXw2XcCleanup($J_U_S, $dU) { @@ -73646,12 +127127,18 @@ function _icpGetXw2XcCleanup($J_U_S, $dU) { return; } -function b12(p0, p1, p2, p3) { +function dynCall_ii(index, a1) { + index = index | 0; + a1 = a1 | 0; + return FUNCTION_TABLE_ii[index & 127](a1 | 0) | 0; +} + +function b17(p0, p1, p2, p3) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; p3 = p3 | 0; - nullFunc_iiiii(12); + nullFunc_iiiii(17); return 0; } @@ -73663,10 +127150,9 @@ function _strncpy($d, $s, $n) { return $d | 0; } -function dynCall_ii(index, a1) { - index = index | 0; - a1 = a1 | 0; - return FUNCTION_TABLE_ii[index & 31](a1 | 0) | 0; +function __ZNKSt3__18numpunctIwE16do_thousands_sepEv($this) { + $this = $this | 0; + return HEAP32[$this + 12 >> 2] | 0; } function _strcpy($dest, $src) { @@ -73676,6 +127162,39 @@ function _strcpy($dest, $src) { return $dest | 0; } +function _init_source($cinfo) { + $cinfo = $cinfo | 0; + HEAP32[(HEAP32[$cinfo + 24 >> 2] | 0) + 36 >> 2] = 1; + return; +} + +function __ZNKSt3__18numpunctIwE16do_decimal_pointEv($this) { + $this = $this | 0; + return HEAP32[$this + 8 >> 2] | 0; +} + +function __ZNKSt3__18numpunctIcE16do_thousands_sepEv($this) { + $this = $this | 0; + return HEAP8[$this + 9 >> 0] | 0; +} + +function __ZNKSt3__18numpunctIcE16do_decimal_pointEv($this) { + $this = $this | 0; + return HEAP8[$this + 8 >> 0] | 0; +} + +function __ZN6vision5ImageD2Ev($this) { + $this = $this | 0; + __ZNSt3__110shared_ptrIhED2Ev($this + 24 | 0); + return; +} + +function __ZNKSt3__15ctypeIwE8do_widenEc($this, $c) { + $this = $this | 0; + $c = $c | 0; + return $c << 24 >> 24 | 0; +} + function __GLOBAL__sub_I_bind_cpp() { __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev(0); return; @@ -73687,6 +127206,12 @@ function _strrchr($s, $c) { return ___memrchr($s, $c, (_strlen($s) | 0) + 1 | 0) | 0; } +function _finish_input_pass($cinfo) { + $cinfo = $cinfo | 0; + HEAP32[HEAP32[$cinfo + 436 >> 2] >> 2] = 69; + return; +} + function _ar3DCreateHandle($arParam) { $arParam = $arParam | 0; return _ar3DCreateHandle2($arParam + 8 | 0) | 0; @@ -73706,11 +127231,31 @@ function _fputs($s, $f) { function __ZSt15get_new_handlerv() { var $0 = 0; - $0 = HEAP32[559] | 0; - HEAP32[559] = $0 + 0; + $0 = HEAP32[1504] | 0; + HEAP32[1504] = $0 + 0; return $0 | 0; } +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9underflowEv($this) { + $this = $this | 0; + return -1; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9underflowEv($this) { + $this = $this | 0; + return -1; +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9showmanycEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv($this) { + $this = $this | 0; + return 0; +} + function _arMatrixFree($m) { $m = $m | 0; if ($m) { @@ -73726,12 +127271,56 @@ function __ZN10__cxxabiv123__fundamental_type_infoD0Ev($this) { return; } -function b15(p0, p1, p2, p3) { +function _jdiv_round_up($a, $b) { + $a = $a | 0; + $b = $b | 0; + return ($a + -1 + $b | 0) / ($b | 0) | 0 | 0; +} + +function _ar2UtilRemoveExt($filename) { + $filename = $filename | 0; + return _arUtilRemoveExt($filename) | 0; +} + +function __ZNKSt3__110moneypunctIwLb1EE16do_thousands_sepEv($this) { + $this = $this | 0; + return 2147483647; +} + +function __ZNKSt3__110moneypunctIwLb1EE16do_decimal_pointEv($this) { + $this = $this | 0; + return 2147483647; +} + +function __ZNKSt3__110moneypunctIwLb0EE16do_thousands_sepEv($this) { + $this = $this | 0; + return 2147483647; +} + +function __ZNKSt3__110moneypunctIwLb0EE16do_decimal_pointEv($this) { + $this = $this | 0; + return 2147483647; +} + +function dynCall_vi(index, a1) { + index = index | 0; + a1 = a1 | 0; + FUNCTION_TABLE_vi[index & 255](a1 | 0); +} + +function b22(p0, p1, p2, p3) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; p3 = p3 | 0; - nullFunc_viiii(15); + nullFunc_viiii(22); +} + +function _strtold_l($s, $p, $l) { + $s = $s | 0; + $p = $p | 0; + $l = $l | 0; + return +(+_strtox($s, $p, 2)); } function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($this) { @@ -73740,10 +127329,35 @@ function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($this) { return; } -function dynCall_vi(index, a1) { - index = index | 0; - a1 = a1 | 0; - FUNCTION_TABLE_vi[index & 15](a1 | 0); +function _my_error_exit($cinfo) { + $cinfo = $cinfo | 0; + _longjmp((HEAP32[$cinfo >> 2] | 0) + 132 | 0, 1); +} + +function ___clang_call_terminate($0) { + $0 = $0 | 0; + ___cxa_begin_catch($0 | 0) | 0; + __ZSt9terminatev(); +} + +function __ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE4syncEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__17codecvtIDsc11__mbstate_tE16do_always_noconvEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE16do_always_noconvEv($this) { + $this = $this | 0; + return 0; } function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this) { @@ -73752,6 +127366,74 @@ function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this) { return; } +function __ZNKSt3__18messagesIwE8do_closeEi($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + return; +} + +function __ZNKSt3__18messagesIcE8do_closeEi($this, $__c) { + $this = $this | 0; + $__c = $__c | 0; + return; +} + +function __ZNKSt3__17codecvtIwc11__mbstate_tE16do_always_noconvEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__17codecvtIcc11__mbstate_tE16do_always_noconvEv($this) { + $this = $this | 0; + return 1; +} + +function __ZNSt3__17codecvtIDsc11__mbstate_tED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17codecvtIDic11__mbstate_tED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__117__widen_from_utf8ILj32EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17codecvtIcc11__mbstate_tED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__116__narrow_to_utf8ILj32EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNKSt3__17codecvtIDsc11__mbstate_tE13do_max_lengthEv($this) { + $this = $this | 0; + return 4; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE13do_max_lengthEv($this) { + $this = $this | 0; + return 4; +} + +function __ZNKSt3__15ctypeIcE8do_widenEc($this, $c) { + $this = $this | 0; + $c = $c | 0; + return $c | 0; +} + function __ZN10__cxxabiv117__class_type_infoD0Ev($this) { $this = $this | 0; __ZdlPv($this); @@ -73770,11 +127452,57 @@ function _cleanup387($p) { return; } -function b0(p0, p1, p2) { +function __ZNKSt3__17codecvtIcc11__mbstate_tE13do_max_lengthEv($this) { + $this = $this | 0; + return 1; +} + +function __ZNKSt3__17codecvtIDsc11__mbstate_tE11do_encodingEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__17codecvtIDic11__mbstate_tE11do_encodingEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__110moneypunctIcLb1EE16do_thousands_sepEv($this) { + $this = $this | 0; + return 127; +} + +function __ZNKSt3__110moneypunctIcLb1EE16do_decimal_pointEv($this) { + $this = $this | 0; + return 127; +} + +function __ZNKSt3__110moneypunctIcLb0EE16do_thousands_sepEv($this) { + $this = $this | 0; + return 127; +} + +function __ZNKSt3__110moneypunctIcLb0EE16do_decimal_pointEv($this) { + $this = $this | 0; + return 127; +} + +function __ZNKSt3__17codecvtIcc11__mbstate_tE11do_encodingEv($this) { + $this = $this | 0; + return 1; +} + +function _jpeg_destroy_decompress($cinfo) { + $cinfo = $cinfo | 0; + _jpeg_destroy($cinfo); + return; +} + +function b9(p0, p1, p2) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; - nullFunc_iiii(0); + nullFunc_iiii(9); return 0; } @@ -73783,11 +127511,78 @@ function _isspace($c) { return (($c | 0) == 32 | ($c + -9 | 0) >>> 0 < 5) & 1 | 0; } +function __ZNSt3__110moneypunctIwLb1EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__110moneypunctIwLb0EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__110moneypunctIcLb1EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__110moneypunctIcLb0EED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNKSt3__110moneypunctIwLb1EE14do_frac_digitsEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__110moneypunctIwLb0EE14do_frac_digitsEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__110moneypunctIcLb1EE14do_frac_digitsEv($this) { + $this = $this | 0; + return 0; +} + +function __ZNKSt3__110moneypunctIcLb0EE14do_frac_digitsEv($this) { + $this = $this | 0; + return 0; +} + +function _isdigit_l($c, $l) { + $c = $c | 0; + $l = $l | 0; + return ($c + -48 | 0) >>> 0 < 10 | 0; +} + function ___getTypeName($ti) { $ti = $ti | 0; return ___strdup(HEAP32[$ti + 4 >> 2] | 0) | 0; } +function __ZNSt9bad_allocC2Ev($this) { + $this = $this | 0; + HEAP32[$this >> 2] = 6004; + return; +} + +function __ZN6vision4log2IfEET_S1_($x) { + $x = +$x; + return +(+Math_log(+$x) / +Math_log(2.0)); +} + +function _catopen($name, $oflag) { + $name = $name | 0; + $oflag = $oflag | 0; + return -1 | 0; +} + function _arVecFree($v) { $v = $v | 0; _free(HEAP32[$v >> 2] | 0); @@ -73795,11 +127590,29 @@ function _arVecFree($v) { return 0; } +function __ZNSt3__16locale5facetD0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + function dynCall_i(index) { index = index | 0; return FUNCTION_TABLE_i[index & 1]() | 0; } +function __ZNSt3__18messagesIwED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__18messagesIcED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($this) { $this = $this | 0; return; @@ -73810,26 +127623,50 @@ function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($this) { return; } -function b9(p0, p1, p2) { +function __ZNSt3__17collateIwED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function __ZNSt3__17collateIcED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; +} + +function b18(p0, p1, p2) { p0 = p0 | 0; p1 = p1 | 0; p2 = p2 | 0; - nullFunc_viii(9); + nullFunc_viii(18); } -function b11(p0, p1, p2) { - p0 = p0 | 0; - p1 = p1 | 0; - p2 = +p2; - nullFunc_viid(11); +function __ZNSt3__15ctypeIwED0Ev($this) { + $this = $this | 0; + __ZdlPv($this); + return; } function _setLogLevel($level) { $level = $level | 0; - HEAP32[496] = $level; + HEAP32[1082] = $level; return; } +function b20(p0, p1, p2) { + p0 = p0 | 0; + p1 = p1 | 0; + p2 = +p2; + nullFunc_viid(20); +} + +function _isxdigit_l($c, $l) { + $c = $c | 0; + $l = $l | 0; + return _isxdigit($c) | 0; +} + function __ZN10__cxxabiv116__shim_type_infoD2Ev($this) { $this = $this | 0; return; @@ -73841,6 +127678,13 @@ function __ZNSt9bad_allocD0Ev($this) { return; } +function b15(p0, p1) { + p0 = p0 | 0; + p1 = p1 | 0; + nullFunc_dii(15); + return 0.0; +} + function _copysignl($x, $y) { $x = +$x; $y = +$y; @@ -73853,11 +127697,9 @@ function _scalbnl($x, $n) { return +(+_scalbn($x, $n)); } -function b2(p0, p1) { - p0 = p0 | 0; - p1 = p1 | 0; - nullFunc_dii(2); - return 0.0; +function __ZNSt3__121__throw_runtime_errorEPKc($msg) { + $msg = $msg | 0; + return; } function b14(p0, p1) { @@ -73867,9 +127709,35 @@ function b14(p0, p1) { return 0; } +function __ZNSt3__110moneypunctIwLb1EED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__110moneypunctIwLb0EED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__110moneypunctIcLb1EED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__110moneypunctIcLb0EED2Ev($this) { + $this = $this | 0; + return; +} + function dynCall_v(index) { index = index | 0; - FUNCTION_TABLE_v[index & 0](); + FUNCTION_TABLE_v[index & 3](); +} + +function _ldexp($x, $n) { + $x = +$x; + $n = $n | 0; + return +(+_scalbn($x, $n)); } function _frexpl($x, $e) { @@ -73878,9 +127746,14 @@ function _frexpl($x, $e) { return +(+_frexp($x, $e)); } +function __ZNSt3__114__shared_countD2Ev($this) { + $this = $this | 0; + return; +} + function __ZNKSt9bad_alloc4whatEv($this) { $this = $this | 0; - return 12484; + return 47627; } function _isupper($c) { @@ -73898,15 +127771,71 @@ function _arPattCreateHandle() { return _arPattCreateHandle2(16, 50) | 0; } +function __ZNSt3__16locale5facetD2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__18messagesIwED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__18messagesIcED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__17collateIwED2Ev($this) { + $this = $this | 0; + return; +} + +function __ZNSt3__17collateIcED2Ev($this) { + $this = $this | 0; + return; +} + +function _dummy_consume_data($cinfo) { + $cinfo = $cinfo | 0; + return 0; +} + +function __Znaj($size) { + $size = $size | 0; + return __Znwj($size) | 0; +} + +function _finish_pass_1_quant($cinfo) { + $cinfo = $cinfo | 0; + return; +} + function setTempRet0(value) { value = value | 0; tempRet0 = value; } -function b7(p0, p1) { +function _start_pass_dcolor($cinfo) { + $cinfo = $cinfo | 0; + return; +} + +function _jpeg_mem_init($cinfo) { + $cinfo = $cinfo | 0; + return 1e6; +} + +function b5(p0, p1) { p0 = p0 | 0; p1 = p1 | 0; - nullFunc_vii(7); + nullFunc_vii(5); +} + +function __ZdaPv($ptr) { + $ptr = $ptr | 0; + __ZdlPv($ptr); + return; } function __ZNSt9type_infoD2Ev($this) { @@ -73930,10 +127859,41 @@ function __ZdlPv($ptr) { return; } -function b3(p0, p1) { +function __ZNSt3__112__do_nothingEPv($0) { + $0 = $0 | 0; + return; +} + +function b2(p0, p1) { p0 = p0 | 0; p1 = +p1; - nullFunc_vid(3); + nullFunc_vid(2); +} + +function _jpeg_mem_term($cinfo) { + $cinfo = $cinfo | 0; + return; +} + +function b11(p0) { + p0 = p0 | 0; + nullFunc_di(11); + return 0.0; +} + +function _finish_pass2($cinfo) { + $cinfo = $cinfo | 0; + return; +} + +function _term_source($cinfo) { + $cinfo = $cinfo | 0; + return; +} + +function _lroundf($x) { + $x = +$x; + return ~~+_roundf($x) | 0; } function _ftell($f) { @@ -73946,18 +127906,27 @@ function stackRestore(top) { STACKTOP = top; } -function b4(p0) { - p0 = p0 | 0; - nullFunc_di(4); - return 0.0; +function _freelocale($l) { + $l = $l | 0; + _free($l); + return; } -function b8(p0) { +function b7(p0) { p0 = p0 | 0; - nullFunc_ii(8); + nullFunc_ii(7); + return 0; +} + +function _catclose($catd) { + $catd = $catd | 0; return 0; } +function _getLogLevel() { + return HEAP32[1082] | 0; +} + function ___unlockfile($f) { $f = $f | 0; return; @@ -73968,13 +127937,21 @@ function ___lockfile($f) { return 0; } -function _getLogLevel() { - return HEAP32[496] | 0; +function __GLOBAL__sub_I_iostream_cpp() { + return; } -function b6(p0) { +function b4(p0) { p0 = p0 | 0; - nullFunc_vi(6); + nullFunc_vi(4); +} + +function ___ctype_toupper_loc() { + return 6452; +} + +function ___ctype_tolower_loc() { + return 6448; } function getTempRet0() { @@ -73985,54 +127962,87 @@ function stackSave() { return STACKTOP | 0; } -function b5() { - nullFunc_i(5); +function b16() { + nullFunc_i(16); return 0; } -function b10() { - nullFunc_v(10); +function ___ctype_b_loc() { + return 6444; +} + +function b19() { + nullFunc_v(19); } // EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_iiii = [b0,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,_sn_write,___stdio_write,___stdio_seek,___stdout_write,_setup,_setMarkerInfoDir,_getTransMatSquare,_getTransMatSquareCont,_getMultiEachMarkerInfo,__ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E,__ZN10emscripten8internal7InvokerIiJiiEE6invokeEPFiiiEii,___stdio_read,_do_read]; -var FUNCTION_TABLE_viiiii = [b1,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib]; -var FUNCTION_TABLE_dii = [b2,__ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi]; -var FUNCTION_TABLE_vid = [b3,_setProjectionNearPlane,_setProjectionFarPlane,_setPattRatio]; -var FUNCTION_TABLE_di = [b4,_getProjectionNearPlane,_getProjectionFarPlane,_getPattRatio]; -var FUNCTION_TABLE_i = [b5,_getLogLevel]; -var FUNCTION_TABLE_vi = [b6,__ZNSt9bad_allocD2Ev,__ZNSt9bad_allocD0Ev,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZN10__cxxabiv120__si_class_type_infoD0Ev,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,_setLogLevel,__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,_cleanup387,_cleanup392,b6]; -var FUNCTION_TABLE_vii = [b7,_setThresholdMode,_setThreshold,_setPatternDetectionMode,_setMatrixCodeType,_setLabelingMode,_setImageProcMode,__ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi]; -var FUNCTION_TABLE_ii = [b8,__ZNKSt9bad_alloc4whatEv,___stdio_close,_teardown,_getMultiMarkerCount,_loadCamera,_detectMarker,_getMarkerNum,_getDebugMode,_getProcessingImage,_getThresholdMode,_getThreshold,_getPatternDetectionMode,_getMatrixCodeType,_getLabelingMode,_getImageProcMode,__ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 +var FUNCTION_TABLE_iiiiiiii = [b0,__ZNKSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPK2tmcc,__ZNKSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPK2tmcc,__ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe,__ZNKSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIcS3_NS_9allocatorIcEEEE,__ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRe,__ZNKSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERjRNS_12basic_stringIwS3_NS_9allocatorIwEEEE,b0]; +var FUNCTION_TABLE_viiiii = [b1,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,_grayscale_convert28,_ycc_rgb_convert,_gray_rgb_convert,_null_convert29,_ycck_cmyk_convert,_read_backing_store,_write_backing_store,_jpeg_idct_1x1,_jpeg_idct_2x2,_jpeg_idct_4x4,_jpeg_idct_islow,_jpeg_idct_ifast,_jpeg_idct_float,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 +,b1,b1,b1]; +var FUNCTION_TABLE_vid = [b2,_setProjectionNearPlane,_setProjectionFarPlane,_setPattRatio]; +var FUNCTION_TABLE_iiiiiid = [b3,__ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEce,__ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwe,b3]; +var FUNCTION_TABLE_vi = [b4,__ZN6vision18BinomialPyramid32fD2Ev,__ZN6vision18BinomialPyramid32fD0Ev,__ZN6vision25GaussianScaleSpacePyramidD2Ev,__ZN6vision25GaussianScaleSpacePyramidD0Ev,__ZN6vision9ExceptionD2Ev,__ZN6vision9ExceptionD0Ev,__ZNSt3__114__shared_countD2Ev,__ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev,__ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv,__ZNSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv,__ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEED0Ev,__ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE16__on_zero_sharedEv,__ZNSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE21__on_zero_shared_weakEv,__ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEED0Ev,__ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE16__on_zero_sharedEv,__ZNSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE21__on_zero_shared_weakEv,__ZNSt9bad_allocD2Ev,__ZNSt9bad_allocD0Ev,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZN10__cxxabiv120__si_class_type_infoD0Ev,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED2Ev,__ZNSt3__111__stdoutbufIwED0Ev,__ZNSt3__110__stdinbufIwED0Ev +,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev,__ZNSt3__111__stdoutbufIcED0Ev,__ZNSt3__110__stdinbufIcED0Ev,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED0Ev,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEED0Ev,__ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev,__ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev,__ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev,__ZTv0_n12_NSt3__113basic_istreamIcNS_11char_traitsIcEEED0Ev,__ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev,__ZNSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev,__ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED1Ev,__ZTv0_n12_NSt3__113basic_istreamIwNS_11char_traitsIwEEED0Ev,__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev,__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev,__ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev,__ZTv0_n12_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED0Ev,__ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev,__ZNSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev,__ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED1Ev,__ZTv0_n12_NSt3__113basic_ostreamIwNS_11char_traitsIwEEED0Ev,__ZNSt3__18ios_baseD2Ev,__ZNSt3__18ios_baseD0Ev,__ZNSt3__17collateIcED2Ev,__ZNSt3__17collateIcED0Ev,__ZNSt3__16locale5facet16__on_zero_sharedEv,__ZNSt3__17collateIwED2Ev,__ZNSt3__17collateIwED0Ev,__ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev +,__ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev,__ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev,__ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev,__ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev,__ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev,__ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__18time_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev,__ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__18time_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev,__ZNSt3__110moneypunctIcLb0EED2Ev,__ZNSt3__110moneypunctIcLb0EED0Ev,__ZNSt3__110moneypunctIcLb1EED2Ev,__ZNSt3__110moneypunctIcLb1EED0Ev,__ZNSt3__110moneypunctIwLb0EED2Ev,__ZNSt3__110moneypunctIwLb0EED0Ev,__ZNSt3__110moneypunctIwLb1EED2Ev,__ZNSt3__110moneypunctIwLb1EED0Ev,__ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev,__ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev,__ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED2Ev,__ZNSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEED0Ev,__ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED2Ev,__ZNSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEED0Ev +,__ZNSt3__18messagesIcED2Ev,__ZNSt3__18messagesIcED0Ev,__ZNSt3__18messagesIwED2Ev,__ZNSt3__18messagesIwED0Ev,__ZNSt3__16locale5__impD2Ev,__ZNSt3__16locale5__impD0Ev,__ZNSt3__15ctypeIcED2Ev,__ZNSt3__15ctypeIcED0Ev,__ZNSt3__17codecvtIwc11__mbstate_tED2Ev,__ZNSt3__17codecvtIwc11__mbstate_tED0Ev,__ZNSt3__18numpunctIcED2Ev,__ZNSt3__18numpunctIcED0Ev,__ZNSt3__18numpunctIwED2Ev,__ZNSt3__18numpunctIwED0Ev,__ZNSt3__16locale5facetD2Ev,__ZNSt3__16locale5facetD0Ev,__ZNSt3__15ctypeIwED0Ev,__ZNSt3__17codecvtIcc11__mbstate_tED0Ev,__ZNSt3__17codecvtIDsc11__mbstate_tED0Ev,__ZNSt3__17codecvtIDic11__mbstate_tED0Ev,__ZNSt3__116__narrow_to_utf8ILj32EED0Ev,__ZNSt3__117__widen_from_utf8ILj32EED0Ev,_my_error_exit,_jpeg_destroy_decompress,__ZN6vision6LoggerD2Ev,_init_source,_term_source,_start_input_pass,_start_output_pass,_start_pass_dcolor +,_start_pass,_start_pass_huff_decoder,_reset_input_controller,_start_input_pass32,_finish_input_pass,_reset_marker_reader,_prepare_for_output_pass,_finish_output_pass,_start_pass_merged_upsample,_start_pass_phuff_decoder,_start_pass_upsample,_error_exit,_output_message,_reset_error_mgr,_finish_pass_1_quant,_new_color_map_1_quant,_new_color_map_2_quant,_realize_virt_arrays,_self_destruct,_finish_pass1,_finish_pass2,_setLogLevel,__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,__ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv,_cleanup387,_cleanup392,__ZNSt3__18ios_base4InitD2Ev,__ZNSt3__112__do_nothingEPv,__ZNSt3__16locale2id6__initEv +,__ZNSt3__117__call_once_proxyINS_5tupleIJNS_12_GLOBAL__N_111__fake_bindEEEEEEvPv,___cxx_global_array_dtor,___cxx_global_array_dtor46,___cxx_global_array_dtor61,___cxx_global_array_dtor85,___cxx_global_array_dtor109,___cxx_global_array_dtor112,__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev,__ZNSt3__112basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev,_free,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 +,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4]; +var FUNCTION_TABLE_vii = [b5,__ZNSt3__111__stdoutbufIwE5imbueERKNS_6localeE,__ZNSt3__110__stdinbufIwE5imbueERKNS_6localeE,__ZNSt3__111__stdoutbufIcE5imbueERKNS_6localeE,__ZNSt3__110__stdinbufIcE5imbueERKNS_6localeE,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5imbueERKNS_6localeE,__ZNKSt3__110moneypunctIcLb0EE11do_groupingEv,__ZNKSt3__110moneypunctIcLb0EE14do_curr_symbolEv,__ZNKSt3__110moneypunctIcLb0EE16do_positive_signEv,__ZNKSt3__110moneypunctIcLb0EE16do_negative_signEv,__ZNKSt3__110moneypunctIcLb0EE13do_pos_formatEv,__ZNKSt3__110moneypunctIcLb0EE13do_neg_formatEv,__ZNKSt3__110moneypunctIcLb1EE11do_groupingEv,__ZNKSt3__110moneypunctIcLb1EE14do_curr_symbolEv,__ZNKSt3__110moneypunctIcLb1EE16do_positive_signEv,__ZNKSt3__110moneypunctIcLb1EE16do_negative_signEv,__ZNKSt3__110moneypunctIcLb1EE13do_pos_formatEv,__ZNKSt3__110moneypunctIcLb1EE13do_neg_formatEv,__ZNKSt3__110moneypunctIwLb0EE11do_groupingEv,__ZNKSt3__110moneypunctIwLb0EE14do_curr_symbolEv,__ZNKSt3__110moneypunctIwLb0EE16do_positive_signEv,__ZNKSt3__110moneypunctIwLb0EE16do_negative_signEv,__ZNKSt3__110moneypunctIwLb0EE13do_pos_formatEv,__ZNKSt3__110moneypunctIwLb0EE13do_neg_formatEv,__ZNKSt3__110moneypunctIwLb1EE11do_groupingEv,__ZNKSt3__110moneypunctIwLb1EE14do_curr_symbolEv,__ZNKSt3__110moneypunctIwLb1EE16do_positive_signEv,__ZNKSt3__110moneypunctIwLb1EE16do_negative_signEv +,__ZNKSt3__110moneypunctIwLb1EE13do_pos_formatEv,__ZNKSt3__110moneypunctIwLb1EE13do_neg_formatEv,__ZNKSt3__18messagesIcE8do_closeEi,__ZNKSt3__18messagesIwE8do_closeEi,__ZNKSt3__18numpunctIcE11do_groupingEv,__ZNKSt3__18numpunctIcE11do_truenameEv,__ZNKSt3__18numpunctIcE12do_falsenameEv,__ZNKSt3__18numpunctIwE11do_groupingEv,__ZNKSt3__18numpunctIwE11do_truenameEv,__ZNKSt3__18numpunctIwE12do_falsenameEv,_jpeg_stdio_src,_skip_input_data,_start_pass_main33,_start_pass_dpost,_emit_message,_format_message,_start_pass_1_quant,_start_pass_2_quant,_free_pool,_close_backing_store,_setThresholdMode,_setThreshold,_setPatternDetectionMode,_setMatrixCodeType,_setLabelingMode,_setImageProcMode,__ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi,b5,b5,b5 +,b5,b5,b5,b5,b5]; +var FUNCTION_TABLE_iiiiiii = [b6,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRb,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRl,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRx,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRt,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRm,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRy,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRf,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRd,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRe,__ZNKSt3__17num_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRb,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRl,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRx,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRt,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjS8_,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRm,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRy,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRf,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRd,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRe,__ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcx,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcy,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwx,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwy,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjP2tm +,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_timeES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_dateES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE14do_get_weekdayES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE16do_get_monthnameES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE11do_get_yearES4_S4_RNS_8ios_baseERjP2tm,__ZNKSt3__19money_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_bRNS_8ios_baseEcRKNS_12basic_stringIcS3_NS_9allocatorIcEEEE,__ZNKSt3__19money_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_bRNS_8ios_baseEwRKNS_12basic_stringIwS3_NS_9allocatorIwEEEE,_request_virt_sarray,_request_virt_barray,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 +,b6,b6,b6,b6,b6]; +var FUNCTION_TABLE_ii = [b7,__ZNK6vision9Exception4whatEv,__ZNKSt9bad_alloc4whatEv,___stdio_close,__ZNSt3__111__stdoutbufIwE4syncEv,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9showmanycEv,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9underflowEv,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE5uflowEv,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE4syncEv,__ZNSt3__110__stdinbufIwE9underflowEv,__ZNSt3__110__stdinbufIwE5uflowEv,__ZNSt3__111__stdoutbufIcE4syncEv,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9underflowEv,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv,__ZNSt3__110__stdinbufIcE9underflowEv,__ZNSt3__110__stdinbufIcE5uflowEv,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE13do_date_orderEv,__ZNKSt3__120__time_get_c_storageIcE7__weeksEv,__ZNKSt3__120__time_get_c_storageIcE8__monthsEv,__ZNKSt3__120__time_get_c_storageIcE7__am_pmEv,__ZNKSt3__120__time_get_c_storageIcE3__cEv,__ZNKSt3__120__time_get_c_storageIcE3__rEv,__ZNKSt3__120__time_get_c_storageIcE3__xEv,__ZNKSt3__120__time_get_c_storageIcE3__XEv,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE13do_date_orderEv,__ZNKSt3__120__time_get_c_storageIwE7__weeksEv,__ZNKSt3__120__time_get_c_storageIwE8__monthsEv +,__ZNKSt3__120__time_get_c_storageIwE7__am_pmEv,__ZNKSt3__120__time_get_c_storageIwE3__cEv,__ZNKSt3__120__time_get_c_storageIwE3__rEv,__ZNKSt3__120__time_get_c_storageIwE3__xEv,__ZNKSt3__120__time_get_c_storageIwE3__XEv,__ZNKSt3__110moneypunctIcLb0EE16do_decimal_pointEv,__ZNKSt3__110moneypunctIcLb0EE16do_thousands_sepEv,__ZNKSt3__110moneypunctIcLb0EE14do_frac_digitsEv,__ZNKSt3__110moneypunctIcLb1EE16do_decimal_pointEv,__ZNKSt3__110moneypunctIcLb1EE16do_thousands_sepEv,__ZNKSt3__110moneypunctIcLb1EE14do_frac_digitsEv,__ZNKSt3__110moneypunctIwLb0EE16do_decimal_pointEv,__ZNKSt3__110moneypunctIwLb0EE16do_thousands_sepEv,__ZNKSt3__110moneypunctIwLb0EE14do_frac_digitsEv,__ZNKSt3__110moneypunctIwLb1EE16do_decimal_pointEv,__ZNKSt3__110moneypunctIwLb1EE16do_thousands_sepEv,__ZNKSt3__110moneypunctIwLb1EE14do_frac_digitsEv,__ZNKSt3__17codecvtIwc11__mbstate_tE11do_encodingEv,__ZNKSt3__17codecvtIwc11__mbstate_tE16do_always_noconvEv,__ZNKSt3__17codecvtIwc11__mbstate_tE13do_max_lengthEv,__ZNKSt3__18numpunctIcE16do_decimal_pointEv,__ZNKSt3__18numpunctIcE16do_thousands_sepEv,__ZNKSt3__18numpunctIwE16do_decimal_pointEv,__ZNKSt3__18numpunctIwE16do_thousands_sepEv,__ZNKSt3__17codecvtIcc11__mbstate_tE11do_encodingEv,__ZNKSt3__17codecvtIcc11__mbstate_tE16do_always_noconvEv,__ZNKSt3__17codecvtIcc11__mbstate_tE13do_max_lengthEv,__ZNKSt3__17codecvtIDsc11__mbstate_tE11do_encodingEv,__ZNKSt3__17codecvtIDsc11__mbstate_tE16do_always_noconvEv,__ZNKSt3__17codecvtIDsc11__mbstate_tE13do_max_lengthEv +,__ZNKSt3__17codecvtIDic11__mbstate_tE11do_encodingEv,__ZNKSt3__17codecvtIDic11__mbstate_tE16do_always_noconvEv,__ZNKSt3__17codecvtIDic11__mbstate_tE13do_max_lengthEv,_jpeg_std_error,_jpeg_start_decompress,_malloc,_jpeg_finish_decompress,_fill_input_buffer,_consume_data,_dummy_consume_data,_consume_markers,_read_markers,_read_restart_marker,_skip_variable,_get_interesting_appn,_teardown,_setupAR2,_getMultiMarkerCount,_loadCamera,_detectMarker,_getMarkerNum,_detectNFTMarker,_getDebugMode,_getProcessingImage,_getThresholdMode,_getThreshold,_getPatternDetectionMode,_getMatrixCodeType,_getLabelingMode,_getImageProcMode +,__ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 +,b7,b7,b7,b7,b7,b7,b7,b7,b7]; +var FUNCTION_TABLE_iiiiii = [b8,__ZNKSt3__17collateIcE10do_compareEPKcS3_S3_S3_,__ZNKSt3__17collateIwE10do_compareEPKwS3_S3_S3_,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcb,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcl,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcm,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcPKv,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwb,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwl,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwm,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwPKv,__ZNKSt3__15ctypeIcE9do_narrowEPKcS3_cPc,__ZNKSt3__17codecvtIwc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_,__ZNKSt3__17codecvtIwc11__mbstate_tE9do_lengthERS1_PKcS5_j,__ZNKSt3__15ctypeIwE9do_narrowEPKwS3_cPc,__ZNKSt3__17codecvtIcc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_,__ZNKSt3__17codecvtIcc11__mbstate_tE9do_lengthERS1_PKcS5_j,__ZNKSt3__17codecvtIDsc11__mbstate_tE10do_unshiftERS1_PcS4_RS4_,__ZNKSt3__17codecvtIDsc11__mbstate_tE9do_lengthERS1_PKcS5_j,__ZNKSt3__17codecvtIDic11__mbstate_tE10do_unshiftERS1_PcS4_RS4_,__ZNKSt3__17codecvtIDic11__mbstate_tE9do_lengthERS1_PKcS5_j,_access_virt_sarray,_access_virt_barray,b8,b8,b8,b8,b8,b8 ,b8,b8,b8]; -var FUNCTION_TABLE_viii = [b9,__ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii]; -var FUNCTION_TABLE_v = [b10]; -var FUNCTION_TABLE_viid = [b11,__ZN10emscripten8internal7InvokerIvJidEE6invokeEPFvidEid,__ZN10emscripten8internal7InvokerIvJifEE6invokeEPFvifEif,b11]; -var FUNCTION_TABLE_iiiii = [b12,__ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii]; -var FUNCTION_TABLE_viiiiii = [b13,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib]; -var FUNCTION_TABLE_iii = [b14,_compE,_addMarker,_addMultiMarker,_getMultiMarkerNum,_setMarkerInfoVertex,_getTransMatMultiSquare,_getTransMatMultiSquareRobust,_getMarkerInfo,_setDebugMode,__ZN10emscripten8internal7InvokerIiJiEE6invokeEPFiiEi,__ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E,b14,b14,b14,b14]; -var FUNCTION_TABLE_viiii = [b15,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi]; - - return { _malloc: _malloc, _i64Subtract: _i64Subtract, _fflush: _fflush, _i64Add: _i64Add, _memmove: _memmove, _memset: _memset, ___cxa_demangle: ___cxa_demangle, _memcpy: _memcpy, ___getTypeName: ___getTypeName, _bitshift64Lshr: _bitshift64Lshr, _free: _free, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, __GLOBAL__sub_I_ARToolKitJS_cpp: __GLOBAL__sub_I_ARToolKitJS_cpp, __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, runPostSets: runPostSets, _emscripten_replace_memory: _emscripten_replace_memory, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiii: dynCall_iiii, dynCall_viiiii: dynCall_viiiii, dynCall_dii: dynCall_dii, dynCall_vid: dynCall_vid, dynCall_di: dynCall_di, dynCall_i: dynCall_i, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viii: dynCall_viii, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_iiiii: dynCall_iiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii }; +var FUNCTION_TABLE_iiii = [b9,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,_sn_write,___stdio_write,___stdio_seek,___stdio_read,___stdout_write,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6setbufEPwi,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsgetnEPwi,__ZNSt3__111__stdoutbufIwE6xsputnEPKwi,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE6xsputnEPKwi,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6setbufEPci,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci,__ZNSt3__111__stdoutbufIcE6xsputnEPKci,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci,__ZNKSt3__17collateIcE7do_hashEPKcS3_,__ZNKSt3__17collateIwE7do_hashEPKwS3_,__ZNKSt3__18messagesIcE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE,__ZNKSt3__18messagesIwE7do_openERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERKNS_6localeE,__ZNKSt3__15ctypeIcE10do_toupperEPcPKc,__ZNKSt3__15ctypeIcE10do_tolowerEPcPKc,__ZNKSt3__15ctypeIcE9do_narrowEcc,__ZNKSt3__15ctypeIwE5do_isEtw,__ZNKSt3__15ctypeIwE10do_toupperEPwPKw,__ZNKSt3__15ctypeIwE10do_tolowerEPwPKw,__ZNKSt3__15ctypeIwE9do_narrowEwc,_jpeg_read_scanlines,_alloc_small +,_alloc_large,_setup,_setMarkerInfoDir,_getTransMatSquare,_getTransMatSquareCont,_getMultiEachMarkerInfo,__ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E,__ZN10emscripten8internal7InvokerIiJiiEE6invokeEPFiiiEii,_do_read,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 +,b9,b9,b9,b9,b9]; +var FUNCTION_TABLE_viiiiii = [b10,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekoffExNS_8ios_base7seekdirEj,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekoffExNS_8ios_base7seekdirEj,__ZNKSt3__18messagesIcE6do_getEiiiRKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE,__ZNKSt3__18messagesIwE6do_getEiiiRKNS_12basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE]; +var FUNCTION_TABLE_di = [b11,_getProjectionNearPlane,_getProjectionFarPlane,_getPattRatio]; +var FUNCTION_TABLE_iiiiiiiii = [b12,__ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc,__ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc,__ZNKSt3__17codecvtIwc11__mbstate_tE6do_outERS1_PKwS5_RS5_PcS7_RS7_,__ZNKSt3__17codecvtIwc11__mbstate_tE5do_inERS1_PKcS5_RS5_PwS7_RS7_,__ZNKSt3__17codecvtIcc11__mbstate_tE6do_outERS1_PKcS5_RS5_PcS7_RS7_,__ZNKSt3__17codecvtIcc11__mbstate_tE5do_inERS1_PKcS5_RS5_PcS7_RS7_,__ZNKSt3__17codecvtIDsc11__mbstate_tE6do_outERS1_PKDsS5_RS5_PcS7_RS7_,__ZNKSt3__17codecvtIDsc11__mbstate_tE5do_inERS1_PKcS5_RS5_PDsS7_RS7_,__ZNKSt3__17codecvtIDic11__mbstate_tE6do_outERS1_PKDiS5_RS5_PcS7_RS7_,__ZNKSt3__17codecvtIDic11__mbstate_tE5do_inERS1_PKcS5_RS5_PDiS7_RS7_,b12,b12,b12,b12,b12]; +var FUNCTION_TABLE_viiiiiii = [b13,_merged_2v_upsample,_merged_1v_upsample,_sep_upsample,_post_process_1pass,_post_process_prepass,_post_process_2pass,b13]; +var FUNCTION_TABLE_iii = [b14,__ZNKSt3__120__shared_ptr_pointerIPN6vision8KeyframeILi96EEENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info,__ZNKSt3__120__shared_ptr_pointerIPh16NullArrayDeleterIhENS_9allocatorIhEEE13__get_deleterERKSt9type_info,__ZNKSt3__120__shared_ptr_pointerIPhNS_14default_deleteIhEENS_9allocatorIhEEE13__get_deleterERKSt9type_info,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE9pbackfailEj,__ZNSt3__111__stdoutbufIwE8overflowEj,__ZNSt3__110__stdinbufIwE9pbackfailEj,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE8overflowEj,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9pbackfailEi,__ZNSt3__111__stdoutbufIcE8overflowEi,__ZNSt3__110__stdinbufIcE9pbackfailEi,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE8overflowEi,__ZNKSt3__15ctypeIcE10do_toupperEc,__ZNKSt3__15ctypeIcE10do_tolowerEc,__ZNKSt3__15ctypeIcE8do_widenEc,__ZNKSt3__15ctypeIwE10do_toupperEw,__ZNKSt3__15ctypeIwE10do_tolowerEw,__ZNKSt3__15ctypeIwE8do_widenEc,_compE,_jpeg_read_header,_jpeg_resync_to_restart,_decompress_data,_decompress_onepass,_decode_mcu,_decompress_smooth_data,_decode_mcu_DC_first,_decode_mcu_AC_first,_decode_mcu_DC_refine,_decode_mcu_AC_refine +,_addMarker,_addMultiMarker,_addNFTMarker,_getMultiMarkerNum,_setMarkerInfoVertex,_getTransMatMultiSquare,_getTransMatMultiSquareRobust,_getMarkerInfo,_getNFTMarkerInfo,_setDebugMode,__ZN10emscripten8internal7InvokerIiJiEE6invokeEPFiiEi,__ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14 +,b14,b14,b14,b14,b14]; +var FUNCTION_TABLE_dii = [b15,__ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi]; +var FUNCTION_TABLE_i = [b16,_getLogLevel]; +var FUNCTION_TABLE_iiiii = [b17,__ZNKSt3__15ctypeIcE8do_widenEPKcS3_Pc,__ZNKSt3__15ctypeIwE5do_isEPKwS3_Pt,__ZNKSt3__15ctypeIwE10do_scan_isEtPKwS3_,__ZNKSt3__15ctypeIwE11do_scan_notEtPKwS3_,__ZNKSt3__15ctypeIwE8do_widenEPKcS3_Pw,_alloc_sarray,_alloc_barray,__ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii,b17,b17,b17,b17,b17,b17,b17]; +var FUNCTION_TABLE_viii = [b18,_arLog,_jpeg_CreateDecompress,__ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii]; +var FUNCTION_TABLE_v = [b19,__ZL25default_terminate_handlerv,__ZN10__cxxabiv112_GLOBAL__N_110construct_Ev,b19]; +var FUNCTION_TABLE_viid = [b20,__ZN10emscripten8internal7InvokerIvJidEE6invokeEPFvidEid,__ZN10emscripten8internal7InvokerIvJifEE6invokeEPFvifEif,b20]; +var FUNCTION_TABLE_iiiiid = [b21,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEcd,__ZNKSt3__17num_putIcNS_19ostreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_putES4_RNS_8ios_baseEce,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwd,__ZNKSt3__17num_putIwNS_19ostreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_putES4_RNS_8ios_baseEwe,b21,b21,b21]; +var FUNCTION_TABLE_viiii = [b22,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNSt3__115basic_streambufIwNS_11char_traitsIwEEE7seekposENS_4fposI11__mbstate_tEEj,__ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE7seekposENS_4fposI11__mbstate_tEEj,__ZNKSt3__17collateIcE12do_transformEPKcS3_,__ZNKSt3__17collateIwE12do_transformEPKwS3_,_h2v2_merged_upsample,_h2v1_merged_upsample,_noop_upsample,_fullsize_upsample,_h2v1_fancy_upsample,_h2v1_upsample,_h2v2_fancy_upsample,_h2v2_upsample,_int_upsample,_process_data_context_main,_process_data_simple_main34,_process_data_crank_post,_color_quantize3,_color_quantize,_quantize3_ord_dither,_quantize_ord_dither,_quantize_fs_dither,_prescan_quantize,_pass2_fs_dither,_pass2_no_dither,b22 +,b22,b22,b22]; + + return { _malloc: _malloc, ___cxa_can_catch: ___cxa_can_catch, _fflush: _fflush, ___cxa_is_pointer_type: ___cxa_is_pointer_type, _i64Add: _i64Add, _memmove: _memmove, _realloc: _realloc, _i64Subtract: _i64Subtract, _memset: _memset, ___cxa_demangle: ___cxa_demangle, _saveSetjmp: _saveSetjmp, _memcpy: _memcpy, ___getTypeName: ___getTypeName, _bitshift64Lshr: _bitshift64Lshr, _free: _free, _bitshift64Shl: _bitshift64Shl, ___errno_location: ___errno_location, _testSetjmp: _testSetjmp, __GLOBAL__I_000101: __GLOBAL__I_000101, __GLOBAL__sub_I_ARToolKitJS_cpp: __GLOBAL__sub_I_ARToolKitJS_cpp, __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, __GLOBAL__sub_I_iostream_cpp: __GLOBAL__sub_I_iostream_cpp, runPostSets: runPostSets, _emscripten_replace_memory: _emscripten_replace_memory, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiiiiiii: dynCall_iiiiiiii, dynCall_viiiii: dynCall_viiiii, dynCall_vid: dynCall_vid, dynCall_iiiiiid: dynCall_iiiiiid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_iiiiiii: dynCall_iiiiiii, dynCall_ii: dynCall_ii, dynCall_iiiiii: dynCall_iiiiii, dynCall_iiii: dynCall_iiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_di: dynCall_di, dynCall_iiiiiiiii: dynCall_iiiiiiiii, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_iii: dynCall_iii, dynCall_dii: dynCall_dii, dynCall_i: dynCall_i, dynCall_iiiii: dynCall_iiiii, dynCall_viii: dynCall_viii, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_iiiiid: dynCall_iiiiid, dynCall_viiii: dynCall_viiii }; }) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg, Module.asmLibraryArg, buffer); -var real____cxa_demangle = asm["___cxa_demangle"]; asm["___cxa_demangle"] = function() { +var real___GLOBAL__sub_I_ARToolKitJS_cpp = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"]; asm["__GLOBAL__sub_I_ARToolKitJS_cpp"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real____cxa_demangle.apply(null, arguments); +return real___GLOBAL__sub_I_ARToolKitJS_cpp.apply(null, arguments); }; -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real__i64Subtract.apply(null, arguments); +return real__bitshift64Lshr.apply(null, arguments); }; -var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() { +var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments); +return real__bitshift64Shl.apply(null, arguments); }; var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { @@ -74041,10 +128051,34 @@ assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it a return real__fflush.apply(null, arguments); }; -var real___GLOBAL__sub_I_ARToolKitJS_cpp = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"]; asm["__GLOBAL__sub_I_ARToolKitJS_cpp"] = function() { +var real____cxa_is_pointer_type = asm["___cxa_is_pointer_type"]; asm["___cxa_is_pointer_type"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real___GLOBAL__sub_I_ARToolKitJS_cpp.apply(null, arguments); +return real____cxa_is_pointer_type.apply(null, arguments); +}; + +var real____cxa_demangle = asm["___cxa_demangle"]; asm["___cxa_demangle"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____cxa_demangle.apply(null, arguments); +}; + +var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__i64Subtract.apply(null, arguments); +}; + +var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments); +}; + +var real__realloc = asm["_realloc"]; asm["_realloc"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__realloc.apply(null, arguments); }; var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { @@ -74053,16 +128087,16 @@ assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it a return real__i64Add.apply(null, arguments); }; -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { +var real__saveSetjmp = asm["_saveSetjmp"]; asm["_saveSetjmp"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real__memmove.apply(null, arguments); +return real__saveSetjmp.apply(null, arguments); }; -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { +var real___GLOBAL__I_000101 = asm["__GLOBAL__I_000101"]; asm["__GLOBAL__I_000101"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real__malloc.apply(null, arguments); +return real___GLOBAL__I_000101.apply(null, arguments); }; var real____getTypeName = asm["___getTypeName"]; asm["___getTypeName"] = function() { @@ -74071,10 +128105,28 @@ assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it a return real____getTypeName.apply(null, arguments); }; -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { +var real___GLOBAL__sub_I_iostream_cpp = asm["__GLOBAL__sub_I_iostream_cpp"]; asm["__GLOBAL__sub_I_iostream_cpp"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real__bitshift64Lshr.apply(null, arguments); +return real___GLOBAL__sub_I_iostream_cpp.apply(null, arguments); +}; + +var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____errno_location.apply(null, arguments); +}; + +var real__testSetjmp = asm["_testSetjmp"]; asm["_testSetjmp"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real__testSetjmp.apply(null, arguments); +}; + +var real____cxa_can_catch = asm["___cxa_can_catch"]; asm["___cxa_can_catch"] = function() { +assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); +assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); +return real____cxa_can_catch.apply(null, arguments); }; var real__free = asm["_free"]; asm["_free"] = function() { @@ -74083,49 +128135,63 @@ assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it a return real__free.apply(null, arguments); }; -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { +var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real____errno_location.apply(null, arguments); +return real__memmove.apply(null, arguments); }; -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { +var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); -return real__bitshift64Shl.apply(null, arguments); +return real__malloc.apply(null, arguments); }; +var __GLOBAL__sub_I_ARToolKitJS_cpp = Module["__GLOBAL__sub_I_ARToolKitJS_cpp"] = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"]; +var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; +var _fflush = Module["_fflush"] = asm["_fflush"]; +var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; +var _memset = Module["_memset"] = asm["_memset"]; var ___cxa_demangle = Module["___cxa_demangle"] = asm["___cxa_demangle"]; +var _memcpy = Module["_memcpy"] = asm["_memcpy"]; var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; var __GLOBAL__sub_I_bind_cpp = Module["__GLOBAL__sub_I_bind_cpp"] = asm["__GLOBAL__sub_I_bind_cpp"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var __GLOBAL__sub_I_ARToolKitJS_cpp = Module["__GLOBAL__sub_I_ARToolKitJS_cpp"] = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"]; +var _realloc = Module["_realloc"] = asm["_realloc"]; var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _memset = Module["_memset"] = asm["_memset"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; +var _saveSetjmp = Module["_saveSetjmp"] = asm["_saveSetjmp"]; +var __GLOBAL__I_000101 = Module["__GLOBAL__I_000101"] = asm["__GLOBAL__I_000101"]; var ___getTypeName = Module["___getTypeName"] = asm["___getTypeName"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; +var __GLOBAL__sub_I_iostream_cpp = Module["__GLOBAL__sub_I_iostream_cpp"] = asm["__GLOBAL__sub_I_iostream_cpp"]; +var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; +var _testSetjmp = Module["_testSetjmp"] = asm["_testSetjmp"]; +var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; var _free = Module["_free"] = asm["_free"]; +var runPostSets = Module["runPostSets"] = asm["runPostSets"]; +var _memmove = Module["_memmove"] = asm["_memmove"]; +var _malloc = Module["_malloc"] = asm["_malloc"]; var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"]; var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_dii = Module["dynCall_dii"] = asm["dynCall_dii"]; var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"]; -var dynCall_di = Module["dynCall_di"] = asm["dynCall_di"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_iiiiiid = Module["dynCall_iiiiiid"] = asm["dynCall_iiiiiid"]; var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; +var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"]; var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; +var dynCall_iiiiii = Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]; +var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; +var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; +var dynCall_di = Module["dynCall_di"] = asm["dynCall_di"]; +var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = asm["dynCall_iiiiiiiii"]; +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; +var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_dii = Module["dynCall_dii"] = asm["dynCall_dii"]; +var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; +var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"]; -var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; +var dynCall_iiiiid = Module["dynCall_iiiiid"] = asm["dynCall_iiiiid"]; var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; ; diff --git a/build/artoolkit.min.js b/build/artoolkit.min.js index bccdc547..6a59462a 100644 --- a/build/artoolkit.min.js +++ b/build/artoolkit.min.js @@ -1,21 +1,26 @@ -((function(){"use strict";var ARController=(function(width,height,camera){var id;var w=width,h=height;this.orientation="landscape";this.listeners={};if(typeof width!=="number"){var image=width;camera=height;w=image.videoWidth||image.width;h=image.videoHeight||image.height;this.image=image}this.defaultMarkerWidth=1;this.patternMarkers={};this.barcodeMarkers={};this.transform_mat=new Float32Array(16);this.canvas=document.createElement("canvas");this.canvas.width=w;this.canvas.height=h;this.ctx=this.canvas.getContext("2d");this.videoWidth=w;this.videoHeight=h;if(typeof camera==="string"){var self=this;this.cameraParam=new ARCameraParam(camera,(function(){self._initialize()}),(function(err){console.error("ARController: Failed to load ARCameraParam",err)}))}else{this.cameraParam=camera;this._initialize()}});ARController.prototype.dispose=(function(){artoolkit.teardown(this.id);for(var t in this){this[t]=null}});ARController.prototype.process=(function(image){this.detectMarker(image);var markerNum=this.getMarkerNum();var k,o;for(k in this.patternMarkers){o=this.patternMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(k in this.barcodeMarkers){o=this.barcodeMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(var i=0;i-1&&(markerInfo.id===markerInfo.idPatt||markerInfo.idMatrix===-1)){visible=this.trackPatternMarkerId(markerInfo.idPatt);markerType=artoolkit.PATTERN_MARKER;if(markerInfo.dir!==markerInfo.dirPatt){this.setMarkerInfoDir(i,markerInfo.dirPatt)}}else if(markerInfo.idMatrix>-1){visible=this.trackBarcodeMarkerId(markerInfo.idMatrix);markerType=artoolkit.BARCODE_MARKER;if(markerInfo.dir!==markerInfo.dirMatrix){this.setMarkerInfoDir(i,markerInfo.dirMatrix)}}if(markerType!==artoolkit.UNKNOWN_MARKER&&visible.inPrevious){this.getTransMatSquareCont(i,visible.markerWidth,visible.matrix,visible.matrix)}else{this.getTransMatSquare(i,visible.markerWidth,visible.matrix)}visible.inCurrent=true;this.transMatToGLMat(visible.matrix,this.transform_mat);this.dispatchEvent({name:"getMarker",target:this,data:{index:i,type:markerType,marker:markerInfo,matrix:this.transform_mat}})}var multiMarkerCount=this.getMultiMarkerCount();for(var i=0;i=0){visible=true;this.dispatchEvent({name:"getMultiMarker",target:this,data:{multiMarkerId:i,matrix:this.transform_mat}});break}}if(visible){for(var j=0;j-1){this.listeners[name].splice(index,1)}}});ARController.prototype.dispatchEvent=(function(event){var listeners=this.listeners[event.name];if(listeners){for(var i=0;i-1){writeStringToFS(filename,url,writeCallback)}else{ajax(url,filename,writeCallback)}}function writeStringToFS(target,string,callback){var byteArray=new Uint8Array(string.length);for(var i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||268435456;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[(function($0,$1,$2,$3){{if(!artoolkit["multiEachMarkerInfo"]){artoolkit["multiEachMarkerInfo"]={}}var multiEachMarker=artoolkit["multiEachMarkerInfo"];multiEachMarker["visible"]=$0;multiEachMarker["pattId"]=$1;multiEachMarker["pattType"]=$2;multiEachMarker["width"]=$3}}),(function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32){{var $a=arguments;var i=12;if(!artoolkit["markerInfo"]){artoolkit["markerInfo"]={pos:[0,0],line:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],vertex:[[0,0],[0,0],[0,0],[0,0]]}}var markerInfo=artoolkit["markerInfo"];markerInfo["area"]=$0;markerInfo["id"]=$1;markerInfo["idPatt"]=$2;markerInfo["idMatrix"]=$3;markerInfo["dir"]=$4;markerInfo["dirPatt"]=$5;markerInfo["dirMatrix"]=$6;markerInfo["cf"]=$7;markerInfo["cfPatt"]=$8;markerInfo["cfMatrix"]=$9;markerInfo["pos"][0]=$10;markerInfo["pos"][1]=$11;markerInfo["line"][0][0]=$a[i++];markerInfo["line"][0][1]=$a[i++];markerInfo["line"][0][2]=$a[i++];markerInfo["line"][1][0]=$a[i++];markerInfo["line"][1][1]=$a[i++];markerInfo["line"][1][2]=$a[i++];markerInfo["line"][2][0]=$a[i++];markerInfo["line"][2][1]=$a[i++];markerInfo["line"][2][2]=$a[i++];markerInfo["line"][3][0]=$a[i++];markerInfo["line"][3][1]=$a[i++];markerInfo["line"][3][2]=$a[i++];markerInfo["vertex"][0][0]=$a[i++];markerInfo["vertex"][0][1]=$a[i++];markerInfo["vertex"][1][0]=$a[i++];markerInfo["vertex"][1][1]=$a[i++];markerInfo["vertex"][2][0]=$a[i++];markerInfo["vertex"][2][1]=$a[i++];markerInfo["vertex"][3][0]=$a[i++];markerInfo["vertex"][3][1]=$a[i++];markerInfo["errorCorrected"]=$a[i++]}}),(function($0,$1,$2,$3,$4){{if(!artoolkit["frameMalloc"]){artoolkit["frameMalloc"]={}}var frameMalloc=artoolkit["frameMalloc"];frameMalloc["framepointer"]=$1;frameMalloc["framesize"]=$2;frameMalloc["camera"]=$3;frameMalloc["transform"]=$4}})];function _emscripten_asm_const_33(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)}function _emscripten_asm_const_4(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_5(code,a0,a1,a2,a3,a4){return ASM_CONSTS[code](a0,a1,a2,a3,a4)}STATIC_BASE=8;STATICTOP=STATIC_BASE+16496;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_ARToolKitJS_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,9,0,0,53,42,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,116,42,0,0,52,9,0,0,136,47,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,52,9,0,0,73,47,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,54,47,0,0,228,8,0,0,23,47,0,0,228,8,0,0,62,46,0,0,228,8,0,0,31,46,0,0,228,8,0,0,0,46,0,0,228,8,0,0,225,45,0,0,228,8,0,0,194,45,0,0,228,8,0,0,93,46,0,0,228,8,0,0,124,46,0,0,228,8,0,0,155,46,0,0,228,8,0,0,186,46,0,0,228,8,0,0,217,46,0,0,228,8,0,0,248,46,0,0,12,9,0,0,199,47,0,0,48,2,0,0,0,0,0,0,228,8,0,0,212,47,0,0,228,8,0,0,225,47,0,0,12,9,0,0,238,47,0,0,56,2,0,0,0,0,0,0,12,9,0,0,15,48,0,0,64,2,0,0,0,0,0,0,12,9,0,0,49,48,0,0,64,2,0,0,0,0,0,0,200,8,0,0,89,48,0,0,200,8,0,0,91,48,0,0,200,8,0,0,93,48,0,0,200,8,0,0,95,48,0,0,200,8,0,0,97,48,0,0,200,8,0,0,99,48,0,0,200,8,0,0,101,48,0,0,200,8,0,0,103,48,0,0,200,8,0,0,105,48,0,0,200,8,0,0,107,48,0,0,200,8,0,0,109,48,0,0,200,8,0,0,111,48,0,0,200,8,0,0,113,48,0,0,12,9,0,0,115,48,0,0,80,2,0,0,0,0,0,0,12,9,0,0,152,48,0,0,80,2,0,0,0,0,0,0,255,15,0,0,6,16,0,0,18,16,0,0,28,16,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,11,0,0,0,5,0,0,0,10,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,13,0,0,0,9,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0,0,67,0,0,0,5,0,0,0,10,0,0,0,20,0,0,0,40,0,0,0,80,0,0,0,35,0,0,0,70,0,0,0,15,0,0,0,30,0,0,0,60,0,0,0,120,0,0,0,115,0,0,0,101,0,0,0,73,0,0,0,17,0,0,0,34,0,0,0,68,0,0,0,11,0,0,0,22,0,0,0,44,0,0,0,88,0,0,0,51,0,0,0,102,0,0,0,79,0,0,0,29,0,0,0,58,0,0,0,116,0,0,0,107,0,0,0,85,0,0,0,41,0,0,0,82,0,0,0,39,0,0,0,78,0,0,0,31,0,0,0,62,0,0,0,124,0,0,0,123,0,0,0,117,0,0,0,105,0,0,0,81,0,0,0,33,0,0,0,66,0,0,0,7,0,0,0,14,0,0,0,28,0,0,0,56,0,0,0,112,0,0,0,99,0,0,0,69,0,0,0,9,0,0,0,18,0,0,0,36,0,0,0,72,0,0,0,19,0,0,0,38,0,0,0,76,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,91,0,0,0,53,0,0,0,106,0,0,0,87,0,0,0,45,0,0,0,90,0,0,0,55,0,0,0,110,0,0,0,95,0,0,0,61,0,0,0,122,0,0,0,119,0,0,0,109,0,0,0,89,0,0,0,49,0,0,0,98,0,0,0,71,0,0,0,13,0,0,0,26,0,0,0,52,0,0,0,104,0,0,0,83,0,0,0,37,0,0,0,74,0,0,0,23,0,0,0,46,0,0,0,92,0,0,0,59,0,0,0,118,0,0,0,111,0,0,0,93,0,0,0,57,0,0,0,114,0,0,0,103,0,0,0,77,0,0,0,25,0,0,0,50,0,0,0,100,0,0,0,75,0,0,0,21,0,0,0,42,0,0,0,84,0,0,0,43,0,0,0,86,0,0,0,47,0,0,0,94,0,0,0,63,0,0,0,126,0,0,0,127,0,0,0,125,0,0,0,121,0,0,0,113,0,0,0,97,0,0,0,65,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,14,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,14,0,0,0,8,0,0,0,56,0,0,0,3,0,0,0,63,0,0,0,15,0,0,0,31,0,0,0,9,0,0,0,90,0,0,0,57,0,0,0,21,0,0,0,4,0,0,0,28,0,0,0,64,0,0,0,67,0,0,0,16,0,0,0,112,0,0,0,32,0,0,0,97,0,0,0,10,0,0,0,108,0,0,0,91,0,0,0,70,0,0,0,58,0,0,0,38,0,0,0,22,0,0,0,47,0,0,0,5,0,0,0,54,0,0,0,29,0,0,0,19,0,0,0,65,0,0,0,95,0,0,0,68,0,0,0,45,0,0,0,17,0,0,0,43,0,0,0,113,0,0,0,115,0,0,0,33,0,0,0,77,0,0,0,98,0,0,0,117,0,0,0,11,0,0,0,87,0,0,0,109,0,0,0,35,0,0,0,92,0,0,0,74,0,0,0,71,0,0,0,79,0,0,0,59,0,0,0,104,0,0,0,39,0,0,0,100,0,0,0,23,0,0,0,82,0,0,0,48,0,0,0,119,0,0,0,6,0,0,0,126,0,0,0,55,0,0,0,13,0,0,0,30,0,0,0,62,0,0,0,20,0,0,0,89,0,0,0,66,0,0,0,27,0,0,0,96,0,0,0,111,0,0,0,69,0,0,0,107,0,0,0,46,0,0,0,37,0,0,0,18,0,0,0,53,0,0,0,44,0,0,0,94,0,0,0,114,0,0,0,42,0,0,0,116,0,0,0,76,0,0,0,34,0,0,0,86,0,0,0,78,0,0,0,73,0,0,0,99,0,0,0,103,0,0,0,118,0,0,0,81,0,0,0,12,0,0,0,125,0,0,0,88,0,0,0,61,0,0,0,110,0,0,0,26,0,0,0,36,0,0,0,106,0,0,0,93,0,0,0,52,0,0,0,75,0,0,0,41,0,0,0,72,0,0,0,85,0,0,0,80,0,0,0,102,0,0,0,60,0,0,0,124,0,0,0,105,0,0,0,25,0,0,0,40,0,0,0,51,0,0,0,101,0,0,0,84,0,0,0,24,0,0,0,123,0,0,0,83,0,0,0,50,0,0,0,49,0,0,0,122,0,0,0,120,0,0,0,121,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,136,0,0,0,5,0,0,0,144,0,0,0,6,0,0,0,152,0,0,0,9,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,253,255,255,255,254,255,255,255,0,0,0,0,112,2,0,0,168,2,0,0,200,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,0,0,0,0,32,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,96,2,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,0,0,0,0,80,2,0,0,3,0,0,0,7,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,216,2,0,0,3,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,2,0,0,3,0,0,0,9,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,240,10,0,0,96,11,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,81,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,73,58,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,211,0,0,0,1,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,121,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,143,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,169,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,187,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,209,0,0,0,69,114,114,111,114,58,32,108,97,98,101,108,105,110,103,32,119,111,114,107,32,111,118,101,114,102,108,111,119,46,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,40,37,100,41,32,114,101,113,117,101,115,116,101,100,46,10,0,85,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,108,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,114,101,113,117,101,115,116,101,100,46,32,83,101,116,32,116,111,32,109,97,110,117,97,108,46,10,0,76,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,46,10,0,77,65,78,85,65,76,0,65,85,84,79,95,77,69,68,73,65,78,0,65,85,84,79,95,79,84,83,85,0,65,85,84,79,95,65,68,65,80,84,73,86,69,65,85,84,79,95,66,82,65,67,75,69,84,73,78,71,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,109,97,114,107,101,114,32,99,111,117,110,116,115,32,45,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,43,46,10,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,109,101,100,105,97,110,0,79,116,115,117,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,37,115,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,63,63,63,32,49,10,0,63,63,63,32,50,10,0,63,63,63,32,51,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,112,97,115,115,101,100,32,116,111,32,97,114,73,109,97,103,101,80,114,111,99,72,105,115,116,40,41,46,10,0,0,0,0,1,0,1,1,1,0,2,4,255,255,5,3,1,0,2,255,6,7,255,3,1,2,2,3,2,3,2,3,3,0,255,4,6,7,5,255,1,4,5,4,4,5,5,4,5,7,6,6,6,7,7,7,6,255,2,4,6,7,5,3,255,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,255,255,3,255,5,6,255,255,9,10,255,12,255,255,15,255,17,18,255,20,255,255,23,24,255,255,27,255,29,30,255,255,1,2,255,4,255,255,7,8,255,255,11,255,13,14,255,16,255,255,19,255,21,22,255,255,25,26,255,28,255,255,31,69,114,114,111,114,58,32,117,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,58,32,78,85,76,76,32,112,97,116,116,72,97,110,100,108,101,46,10,0,69,114,114,111,114,58,32,99,97,110,39,116,32,108,111,97,100,32,112,97,116,116,101,114,110,32,102,114,111,109,32,78,85,76,76,32,98,117,102,102,101,114,46,10,0,69,114,114,111,114,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,46,10,0,32,9,10,13,0,80,97,116,116,101,114,110,32,68,97,116,97,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,46,10,0,114,98,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,115,32,102,105,108,101,32,34,37,115,34,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,102,105,108,101,32,108,101,110,103,116,104,46,0,69,114,114,111,114,58,32,115,117,112,112,108,105,101,100,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,97,112,112,101,97,114,32,116,111,32,98,101,32,97,110,32,65,82,84,111,111,108,75,105,116,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,114,101,97,100,32,102,114,111,109,32,102,105,108,101,46,0,69,114,114,111,114,58,32,105,99,112,71,101,116,74,95,85,95,88,99,0,69,114,114,111,114,58,32,109,97,108,108,111,99,10,0,69,114,114,111,114,32,49,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,50,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,51,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,52,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,53,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,54,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,55,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,114,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,46,10,0,37,115,37,115,10,0,0,37,100,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,110,117,109,98,101,114,32,111,102,32,109,97,114,107,101,114,32,99,111,110,102,105,103,115,32,116,111,32,114,101,97,100,46,10,0,79,117,116,32,111,102,32,109,101,109,111,114,121,33,33,10,0,37,108,108,117,37,99,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,112,97,116,116,101,114,110,32,39,37,115,39,32,115,112,101,99,105,102,105,101,100,32,105,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,104,105,108,101,32,105,110,32,98,97,114,99,111,100,101,45,111,110,108,121,32,109,111,100,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,100,105,114,101,99,116,111,114,121,32,110,97,109,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,108,111,97,100,32,112,97,116,116,101,114,110,32,39,37,115,39,46,10,0,37,108,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,112,97,116,116,101,114,110,32,119,105,100,116,104,46,10,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,37,102,32,37,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,76,105,110,101,115,32,50,32,45,32,52,32,109,117,115,116,32,98,101,32,109,97,114,107,101,114,32,116,114,97,110,115,102,111,114,109,46,10,0,97,114,103,108,67,97,109,101,114,97,70,114,117,115,116,117,109,40,41,58,32,97,114,80,97,114,97,109,68,101,99,111,109,112,77,97,116,40,41,32,105,110,100,105,99,97,116,101,100,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,46,10,0,108,111,97,100,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,32,37,115,32,102,111,114,32,99,97,109,101,114,97,46,10,0,42,42,42,32,67,97,109,101,114,97,32,80,97,114,97,109,101,116,101,114,32,114,101,115,105,122,101,100,32,102,114,111,109,32,37,100,44,32,37,100,46,32,42,42,42,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,114,97,109,76,84,67,114,101,97,116,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,99,114,101,97,116,105,110,103,32,51,68,32,104,97,110,100,108,101,0,108,111,97,100,77,97,114,107,101,114,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,37,115,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,97,114,107,101,114,46,10,0,99,111,110,102,105,103,32,100,97,116,97,32,108,111,97,100,32,101,114,114,111,114,32,33,33,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,117,108,116,105,109,97,114,107,101,114,46,10,0,80,97,116,116,101,114,110,32,100,101,116,101,99,116,105,111,110,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,80,97,116,116,101,114,110,32,114,97,116,105,111,32,115,105,122,101,32,115,101,116,32,116,111,32,37,102,46,10,0,76,97,98,101,108,105,110,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,111,110,46,0,111,102,102,46,0,68,101,98,117,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,10,0,73,109,97,103,101,32,112,114,111,99,46,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,118,105,115,105,98,108,101,39,93,32,61,32,36,48,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,73,100,39,93,32,61,32,36,49,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,84,121,112,101,39,93,32,61,32,36,50,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,119,105,100,116,104,39,93,32,61,32,36,51,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,49,50,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,112,111,115,58,32,91,48,44,48,93,44,32,108,105,110,101,58,32,91,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,93,44,32,118,101,114,116,101,120,58,32,91,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,97,114,101,97,34,93,32,61,32,36,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,80,97,116,116,34,93,32,61,32,36,50,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,77,97,116,114,105,120,34,93,32,61,32,36,51,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,34,93,32,61,32,36,52,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,80,97,116,116,34,93,32,61,32,36,53,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,77,97,116,114,105,120,34,93,32,61,32,36,54,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,34,93,32,61,32,36,55,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,80,97,116,116,34,93,32,61,32,36,56,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,77,97,116,114,105,120,34,93,32,61,32,36,57,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,48,93,32,61,32,36,49,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,49,93,32,61,32,36,49,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,67,111,114,114,101,99,116,101,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,115,101,116,117,112,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,116,116,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,65,108,108,111,99,97,116,101,100,32,118,105,100,101,111,70,114,97,109,101,83,105,122,101,32,37,100,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,102,114,97,109,101,77,97,108,108,111,99,32,61,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,112,111,105,110,116,101,114,34,93,32,61,32,36,49,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,115,105,122,101,34,93,32,61,32,36,50,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,99,97,109,101,114,97,34,93,32,61,32,36,51,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,116,114,97,110,115,102,111,114,109,34,93,32,61,32,36,52,59,32,125,0,115,101,116,117,112,0,116,101,97,114,100,111,119,110,0,95,97,100,100,77,97,114,107,101,114,0,95,97,100,100,77,117,108,116,105,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,67,111,117,110,116,0,95,108,111,97,100,67,97,109,101,114,97,0,115,101,116,77,97,114,107,101,114,73,110,102,111,68,105,114,0,115,101,116,77,97,114,107,101,114,73,110,102,111,86,101,114,116,101,120,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,67,111,110,116,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,82,111,98,117,115,116,0,100,101,116,101,99,116,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,69,97,99,104,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,0,115,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,80,114,111,99,101,115,115,105,110,103,73,109,97,103,101,0,115,101,116,76,111,103,76,101,118,101,108,0,103,101,116,76,111,103,76,101,118,101,108,0,115,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,115,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,115,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,103,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,115,101,116,84,104,114,101,115,104,111,108,100,0,103,101,116,84,104,114,101,115,104,111,108,100,0,115,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,103,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,115,101,116,80,97,116,116,82,97,116,105,111,0,103,101,116,80,97,116,116,82,97,116,105,111,0,115,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,103,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,115,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,103,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,115,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,103,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,69,82,82,79,82,95,65,82,67,79,78,84,82,79,76,76,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,85,76,84,73,77,65,82,75,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,65,82,75,69,82,95,73,78,68,69,88,95,79,85,84,95,79,70,95,66,79,85,78,68,83,0,65,82,95,68,69,66,85,71,95,68,73,83,65,66,76,69,0,65,82,95,68,69,66,85,71,95,69,78,65,66,76,69,0,65,82,95,68,69,70,65,85,76,84,95,68,69,66,85,71,95,77,79,68,69,0,65,82,95,76,65,66,69,76,73,78,71,95,87,72,73,84,69,95,82,69,71,73,79,78,0,65,82,95,76,65,66,69,76,73,78,71,95,66,76,65,67,75,95,82,69,71,73,79,78,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,77,79,68,69,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,82,65,77,69,95,73,77,65,71,69,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,73,69,76,68,95,73,77,65,71,69,0,65,82,95,68,69,70,65,85,76,84,95,73,77,65,71,69,95,80,82,79,67,95,77,79,68,69,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,68,69,84,69,67,84,73,79,78,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,68,69,70,65,85,76,84,95,80,65,84,84,69,82,78,95,68,69,84,69,67,84,73,79,78,95,77,79,68,69,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,78,79,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,95,86,50,0,65,82,95,68,69,70,65,85,76,84,95,77,65,82,75,69,82,95,69,88,84,82,65,67,84,73,79,78,95,77,79,68,69,0,65,82,95,77,65,88,95,76,79,79,80,95,67,79,85,78,84,0,65,82,95,76,79,79,80,95,66,82,69,65,75,95,84,72,82,69,83,72,0,65,82,95,76,79,71,95,76,69,86,69,76,95,68,69,66,85,71,0,65,82,95,76,79,71,95,76,69,86,69,76,95,73,78,70,79,0,65,82,95,76,79,71,95,76,69,86,69,76,95,87,65,82,78,0,65,82,95,76,79,71,95,76,69,86,69,76,95,69,82,82,79,82,0,65,82,95,76,79,71,95,76,69,86,69,76,95,82,69,76,95,73,78,70,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,72,65,77,77,73,78,71,54,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,80,65,82,73,84,89,54,53,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,57,95,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,53,95,53,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,77,65,78,85,65,76,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,77,69,68,73,65,78,0,65,82,95,76,65],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,79,84,83,85,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,65,68,65,80,84,73,86,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,78,79,78,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,65,84,84,69,82,78,95,69,88,84,82,65,67,84,73,79,78,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,71,69,78,69,82,73,67,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,84,82,65,83,84,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,78,79,84,95,70,79,85,78,68,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,69,68,67,95,70,65,73,76,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,70,73,68,69,78,67,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,95,77,85,76,84,73,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,72,69,85,82,73,83,84,73,67,95,84,82,79,85,66,76,69,83,79,77,69,95,77,65,84,82,73,88,95,67,79,68,69,83,0,118,105,105,102,0,118,105,105,105,0,100,105,105,0,118,105,105,100,0,105,105,0,118,105,105,0,105,105,105,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,105,105,105,105,0,105,105,105,105,105,0,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,115,116,100,58,58,119,115,116,114,105,110,103,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,108,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,114,119,97],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+15945);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;var _BDtoILow=true;function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i>2]=length;for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_bitshift64Lshr"]=_bitshift64Lshr;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}var _llvm_ctlz_i32=true;function floatReadValueFromPointer(name,shift){switch(shift){case 2:return(function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value}}function requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _cos=Math_cos;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}var _BItoD=true;function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _ceilf=Math_ceil;function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC);embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE-1&&(markerInfo.id===markerInfo.idPatt||markerInfo.idMatrix===-1)){visible=this.trackPatternMarkerId(markerInfo.idPatt);markerType=artoolkit.PATTERN_MARKER;if(markerInfo.dir!==markerInfo.dirPatt){this.setMarkerInfoDir(i,markerInfo.dirPatt)}}else if(markerInfo.idMatrix>-1){visible=this.trackBarcodeMarkerId(markerInfo.idMatrix);markerType=artoolkit.BARCODE_MARKER;if(markerInfo.dir!==markerInfo.dirMatrix){this.setMarkerInfoDir(i,markerInfo.dirMatrix)}}if(markerType!==artoolkit.UNKNOWN_MARKER&&visible.inPrevious){this.getTransMatSquareCont(i,visible.markerWidth,visible.matrix,visible.matrix)}else{this.getTransMatSquare(i,visible.markerWidth,visible.matrix)}visible.inCurrent=true;this.transMatToGLMat(visible.matrix,this.transform_mat);this.dispatchEvent({name:"getMarker",target:this,data:{index:i,type:markerType,marker:markerInfo,matrix:this.transform_mat}})}var nftMarkerCount=this.nftMarkerCount;artoolkit.detectNFTMarker(this.id);for(var i=0;i=0){visible=true;this.dispatchEvent({name:"getMultiMarker",target:this,data:{multiMarkerId:i,matrix:this.transform_mat}});break}}if(visible){for(var j=0;j-1){this.listeners[name].splice(index,1)}}});ARController.prototype.dispatchEvent=(function(event){var listeners=this.listeners[event.name];if(listeners){for(var i=0;i-1){writeStringToFS(filename,url,writeCallback)}else{ajax(url,filename,writeCallback)}}function writeStringToFS(target,string,callback){var byteArray=new Uint8Array(string.length);for(var i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||268435456;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[(function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13){{var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=$a[i++];markerInfo["found"]=1;markerInfo["pose"][0]=$a[i++];markerInfo["pose"][1]=$a[i++];markerInfo["pose"][2]=$a[i++];markerInfo["pose"][3]=$a[i++];markerInfo["pose"][4]=$a[i++];markerInfo["pose"][5]=$a[i++];markerInfo["pose"][6]=$a[i++];markerInfo["pose"][7]=$a[i++];markerInfo["pose"][8]=$a[i++];markerInfo["pose"][9]=$a[i++];markerInfo["pose"][10]=$a[i++];markerInfo["pose"][11]=$a[i++]}}),(function($0){{var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=-1;markerInfo["found"]=0;markerInfo["pose"][0]=0;markerInfo["pose"][1]=0;markerInfo["pose"][2]=0;markerInfo["pose"][3]=0;markerInfo["pose"][4]=0;markerInfo["pose"][5]=0;markerInfo["pose"][6]=0;markerInfo["pose"][7]=0;markerInfo["pose"][8]=0;markerInfo["pose"][9]=0;markerInfo["pose"][10]=0;markerInfo["pose"][11]=0}}),(function($0,$1,$2,$3){{if(!artoolkit["multiEachMarkerInfo"]){artoolkit["multiEachMarkerInfo"]={}}var multiEachMarker=artoolkit["multiEachMarkerInfo"];multiEachMarker["visible"]=$0;multiEachMarker["pattId"]=$1;multiEachMarker["pattType"]=$2;multiEachMarker["width"]=$3}}),(function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32){{var $a=arguments;var i=12;if(!artoolkit["markerInfo"]){artoolkit["markerInfo"]={pos:[0,0],line:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],vertex:[[0,0],[0,0],[0,0],[0,0]]}}var markerInfo=artoolkit["markerInfo"];markerInfo["area"]=$0;markerInfo["id"]=$1;markerInfo["idPatt"]=$2;markerInfo["idMatrix"]=$3;markerInfo["dir"]=$4;markerInfo["dirPatt"]=$5;markerInfo["dirMatrix"]=$6;markerInfo["cf"]=$7;markerInfo["cfPatt"]=$8;markerInfo["cfMatrix"]=$9;markerInfo["pos"][0]=$10;markerInfo["pos"][1]=$11;markerInfo["line"][0][0]=$a[i++];markerInfo["line"][0][1]=$a[i++];markerInfo["line"][0][2]=$a[i++];markerInfo["line"][1][0]=$a[i++];markerInfo["line"][1][1]=$a[i++];markerInfo["line"][1][2]=$a[i++];markerInfo["line"][2][0]=$a[i++];markerInfo["line"][2][1]=$a[i++];markerInfo["line"][2][2]=$a[i++];markerInfo["line"][3][0]=$a[i++];markerInfo["line"][3][1]=$a[i++];markerInfo["line"][3][2]=$a[i++];markerInfo["vertex"][0][0]=$a[i++];markerInfo["vertex"][0][1]=$a[i++];markerInfo["vertex"][1][0]=$a[i++];markerInfo["vertex"][1][1]=$a[i++];markerInfo["vertex"][2][0]=$a[i++];markerInfo["vertex"][2][1]=$a[i++];markerInfo["vertex"][3][0]=$a[i++];markerInfo["vertex"][3][1]=$a[i++];markerInfo["errorCorrected"]=$a[i++]}}),(function($0,$1,$2,$3,$4){{if(!artoolkit["frameMalloc"]){artoolkit["frameMalloc"]={}}var frameMalloc=artoolkit["frameMalloc"];frameMalloc["framepointer"]=$1;frameMalloc["framesize"]=$2;frameMalloc["camera"]=$3;frameMalloc["transform"]=$4}})];function _emscripten_asm_const_1(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_4(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_5(code,a0,a1,a2,a3,a4){return ASM_CONSTS[code](a0,a1,a2,a3,a4)}function _emscripten_asm_const_14(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}function _emscripten_asm_const_33(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)}STATIC_BASE=8;STATICTOP=STATIC_BASE+55664;__ATINIT__.push({func:(function(){__GLOBAL__I_000101()})},{func:(function(){__GLOBAL__sub_I_ARToolKitJS_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})},{func:(function(){__GLOBAL__sub_I_iostream_cpp()})});allocate([168,23,0,0,133,100,0,0,208,23,0,0,209,100,0,0,8,0,0,0,0,0,0,0,208,23,0,0,222,103,0,0,208,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,23,0,0,106,121,0,0,128,4,0,0,0,0,0,0,208,23,0,0,188,132,0,0,128,4,0,0,0,0,0,0,208,23,0,0,33,133,0,0,128,4,0,0,0,0,0,0,0,0,0,0,0,0,240,63,239,97,72,177,80,49,246,63,202,111,77,145,174,231,244,63,170,17,108,239,98,208,242,63,0,0,0,0,0,0,240,63,59,191,167,192,105,36,233,63,187,32,199,123,122,81,225,63,93,171,114,222,85,168,209,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,23,0,0,143,178,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,168,23,0,0,206,178,0,0,248,23,0,0,226,183,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,248,23,0,0,163,183,0,0,0,0,0,0,1,0,0,0,32,2,0,0,0,0,0,0,168,23,0,0,144,183,0,0,168,23,0,0,113,183,0,0,168,23,0,0,152,182,0,0,168,23,0,0,121,182,0,0,168,23,0,0,90,182,0,0,168,23,0,0,59,182,0,0,168,23,0,0,28,182,0,0,168,23,0,0,183,182,0,0,168,23,0,0,214,182,0,0,168,23,0,0,245,182,0,0,168,23,0,0,20,183,0,0,168,23,0,0,51,183,0,0,168,23,0,0,82,183,0,0,208,23,0,0,33,184,0,0,208,2,0,0,0,0,0,0,168,23,0,0,46,184,0,0,168,23,0,0,59,184,0,0,208,23,0,0,72,184,0,0,216,2,0,0,0,0,0,0,208,23,0,0,105,184,0,0,224,2,0,0,0,0,0,0,208,23,0,0,175,184,0,0,224,2,0,0,0,0,0,0,208,23,0,0,139,184,0,0,0,3,0,0,0,0,0,0,208,23,0,0,209,184,0,0,224,2,0,0,0,0,0,0,140,23,0,0,249,184,0,0,140,23,0,0,251,184,0,0,140,23,0,0,253,184,0,0,140,23,0,0,255,184,0,0,140,23,0,0,1,185,0,0,140,23,0,0,3,185,0,0,140,23,0,0,5,185,0,0,140,23,0,0,7,185,0,0,140,23,0,0,9,185,0,0,140,23,0,0,67,214,0,0,140,23,0,0,11,185,0,0,140,23,0,0,13,185,0,0,140,23,0,0,15,185,0,0,208,23,0,0,17,185,0,0,240,2,0,0,0,0,0,0,208,23,0,0,54,185,0,0,240,2,0,0,0,0,0,0,205,59,127,102,158,160,230,63,135,1,235,115,20,161,231,63,219,160,42,66,229,172,232,63,144,240,163,130,145,196,233,63,173,211,90,153,159,232,234,63,156,82,133,221,155,25,236,63,135,164,251,220,24,88,237,63,218,144,164,162,175,164,238,63,0,0,0,0,0,0,240,63,15,137,249,108,88,181,240,63,123,81,125,60,184,114,241,63,56,98,117,110,122,56,242,63,21,183,49,10,254,6,243,63,34,52,18,76,166,222,243,63,39,42,54,213,218,191,244,63,41,84,72,221,7,171,245,63,208,23,0,0,141,206,0,0,200,4,0,0,0,0,0,0,208,23,0,0,204,206,0,0,200,4,0,0,0,0,0,0,208,23,0,0,228,206,0,0,192,4,0,0,0,0,0,0,208,23,0,0,253,206,0,0,192,4,0,0,0,0,0,0,168,23,0,0,21,207,0,0,248,23,0,0,46,207,0,0,0,0,0,0,1,0,0,0,120,4,0,0,0,0,0,0,168,23,0,0,76,207,0,0,208,23,0,0,94,207,0,0,152,4,0,0,0,0,0,0,208,23,0,0,136,207,0,0,152,4,0,0,0,0,0,0,168,23,0,0,178,207,0,0,168,23,0,0,227,207,0,0,248,23,0,0,20,208,0,0,0,0,0,0,1,0,0,0,160,4,0,0,3,244,255,255,248,23,0,0,67,208,0,0,0,0,0,0,1,0,0,0,176,4,0,0,3,244,255,255,248,23,0,0,114,208,0,0,0,0,0,0,1,0,0,0,160,4,0,0,3,244,255,255,248,23,0,0,161,208,0,0,0,0,0,0,1,0,0,0,176,4,0,0,3,244,255,255,208,23,0,0,241,208,0,0,120,4,0,0,0,0,0,0,248,23,0,0,7,209,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,80,11,0,0,2,0,0,0,248,23,0,0,25,209,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,248,23,0,0,59,209,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,248,23,0,0,94,209,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,208,23,0,0,129,209,0,0,160,5,0,0,0,0,0,0,208,23,0,0,163,209,0,0,160,5,0,0,0,0,0,0,248,23,0,0,198,209,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,88,11,0,0,2,0,0,0,208,23,0,0,232,209,0,0,48,5,0,0,0,0,0,0,208,23,0,0,254,209,0,0,48,5,0,0,0,0,0,0,208,23,0,0,18,210,0,0,48,5,0,0,0,0,0,0,248,23,0,0,38,210,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,80,11,0,0,2,0,0,0,208,23,0,0,56,210,0,0,48,5,0,0,0,0,0,0,208,23,0,0,77,210,0,0,48,5,0,0,0,0,0,0,248,23,0,0,98,210,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,96,11,0,0,0,0,0,0,248,23,0,0,166,210,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,120,11,0,0,0,0,0,0,248,23,0,0,234,210,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,144,11,0,0,0,0,0,0,248,23,0,0,46,211,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,168,11,0,0,0,0,0,0,248,23,0,0,114,211,0,0,0,0,0,0,3,0,0,0,48,5,0,0,2,0,0,0,192,11,0,0,2,0,0,0,200,11,0,0,0,8,0,0,248,23,0,0,183,211,0,0,0,0,0,0,3,0,0,0,48,5,0,0,2,0,0,0,192,11,0,0,2,0,0,0,208,11,0,0,0,8,0,0,248,23,0,0,252,211,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,216,11,0,0,0,8,0,0,248,23,0,0,65,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,216,11,0,0,0,8,0,0,248,23,0,0,134,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,162,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,190,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,218,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,224,11,0,0,2,0,0,0,248,23,0,0,246,212,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,232,11,0,0,0,0,0,0,248,23,0,0,60,213,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,240,11,0,0,0,0,0,0,248,23,0,0,130,213,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,248,11,0,0,0,0,0,0,248,23,0,0,200,213,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,0,12,0,0,0,0,0,0,248,23,0,0,14,214,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,8,12,0,0,2,0,0,0,248,23,0,0,35,214,0,0,0,0,0,0,2,0,0,0,48,5,0,0,2,0,0,0,8,12,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,23,0,0,90,217,0,0,168,23,0,0,67,217,0,0,248,23,0,0,45,217,0,0,0,0,0,0,1,0,0,0,24,12,0,0,0,0,0,0,248,23,0,0,254,216,0,0,0,0,0,0,1,0,0,0,24,12,0,0,0,0,0,0,248,23,0,0,232,216,0,0,0,0,0,0,1,0,0,0,16,12,0,0,0,0,0,0,248,23,0,0,185,216,0,0,0,0,0,0,1,0,0,0,16,12,0,0,0,0,0,0,168,23,0,0,166,216,0,0,168,23,0,0,132,216,0,0,168,23,0,0,98,216,0,0,168,23,0,0,77,216,0,0,168,23,0,0,56,216,0,0,168,23,0,0,31,216,0,0,168,23,0,0,6,216,0,0,168,23,0,0,237,215,0,0,168,23,0,0,212,215,0,0,168,23,0,0,188,215,0,0,168,23,0,0,207,216,0,0,168,23,0,0,20,217,0,0,107,71,0,0,114,71,0,0,126,71,0,0,136,71,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,11,0,0,0,5,0,0,0,10,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,13,0,0,0,9,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0,0,67,0,0,0,5,0,0,0,10,0,0,0,20,0,0,0,40,0,0,0,80,0,0,0,35,0,0,0,70,0,0,0,15,0,0,0,30,0,0,0,60,0,0,0,120,0,0,0,115,0,0,0,101,0,0,0,73,0,0,0,17,0,0,0,34,0,0,0,68,0,0,0,11,0,0,0,22,0,0,0,44,0,0,0,88,0,0,0,51,0,0,0,102,0,0,0,79,0,0,0,29,0,0,0,58,0,0,0,116,0,0,0,107,0,0,0,85,0,0,0,41,0,0,0,82,0,0,0,39,0,0,0,78,0,0,0,31,0,0,0,62,0,0,0,124,0,0,0,123,0,0,0,117,0,0,0,105,0,0,0,81,0,0,0,33,0,0,0,66,0,0,0,7,0,0,0,14,0,0,0,28,0,0,0,56,0,0,0,112,0,0,0,99,0,0,0,69,0,0,0,9,0,0,0,18,0,0,0,36,0,0,0,72,0,0,0,19,0,0,0,38,0,0,0,76,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,91,0,0,0,53,0,0,0,106,0,0,0,87,0,0,0,45,0,0,0,90,0,0,0,55,0,0,0,110,0,0,0,95,0,0,0,61,0,0,0,122,0,0,0,119,0,0,0,109,0,0,0,89,0,0,0,49,0,0,0,98,0,0,0,71,0,0,0,13,0,0,0,26,0,0,0,52,0,0,0,104,0,0,0,83,0,0,0,37,0,0,0,74,0,0,0,23,0,0,0,46,0,0,0,92,0,0,0,59,0,0,0,118,0,0,0,111,0,0,0,93,0,0,0,57,0,0,0,114,0,0,0,103,0,0,0,77,0,0,0,25,0,0,0,50,0,0,0,100,0,0,0,75,0,0,0,21,0,0,0,42,0,0,0,84,0,0,0,43,0,0,0,86,0,0,0,47,0,0,0,94,0,0,0,63,0,0,0,126,0,0,0,127,0,0,0,125,0,0,0,121,0,0,0,113,0,0,0,97,0,0,0,65,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,14,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,14,0,0,0,8,0,0,0,56,0,0,0,3,0,0,0,63,0,0,0,15,0,0,0,31,0,0,0,9,0,0,0,90,0,0,0,57,0,0,0,21,0,0,0,4,0,0,0,28,0,0,0,64,0,0,0,67,0,0,0,16,0,0,0,112,0,0,0,32,0,0,0,97,0,0,0,10,0,0,0,108,0,0,0,91,0,0,0,70,0,0,0,58,0,0,0,38,0,0,0,22,0,0,0,47,0,0,0,5,0,0,0,54,0,0,0,29,0,0,0,19,0,0,0,65,0,0,0,95,0,0,0,68,0,0,0,45,0,0,0,17,0,0,0,43,0,0,0,113,0,0,0,115,0,0,0,33,0,0,0,77,0,0,0,98,0,0,0,117,0,0,0,11,0,0,0,87,0,0,0,109,0,0,0,35,0,0,0,92,0,0,0,74,0,0,0,71,0,0,0,79,0,0,0,59,0,0,0,104,0,0,0,39,0,0,0,100,0,0,0,23,0,0,0,82,0,0,0,48,0,0,0,119,0,0,0,6,0,0,0,126,0,0,0,55,0,0,0,13,0,0,0,30,0,0,0,62,0,0,0,20,0,0,0,89,0,0,0,66,0,0,0,27,0,0,0,96,0,0,0,111,0,0,0,69,0,0,0,107,0,0,0,46,0,0,0,37,0,0,0,18,0,0,0,53,0,0,0,44,0,0,0,94,0,0,0,114,0,0,0,42,0,0,0,116,0,0,0,76,0,0,0,34,0,0,0,86,0,0,0,78,0,0,0,73,0,0,0,99,0,0,0,103,0,0,0,118,0,0,0,81,0,0,0,12,0,0,0,125,0,0,0,88,0,0,0,61,0,0,0,110,0,0,0,26,0,0,0,36,0,0,0,106,0,0,0,93,0,0,0,52,0,0,0,75,0,0,0,41,0,0,0,72,0,0,0,85,0,0,0,80,0,0,0,102,0,0,0,60,0,0,0,124,0,0,0,105,0,0,0,25,0,0,0,40,0,0,0,51,0,0,0,101,0,0,0,84,0,0,0,24,0,0,0,123,0,0,0,83,0,0,0,50,0,0,0,49,0,0,0,122,0,0,0,120,0,0,0,121,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,136,0,0,0,5,0,0,0,144,0,0,0,6,0,0,0,152,0,0,0,9,0,0,0,176,0,0,0,0,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,32,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,185,82,140,62,142,90,231,62,185,82,140,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,178,190,185,62,18,220,160,190,144,190,57,62,18,220,160,190,144,190,57,190,0,0,0,128,178,190,185,190,18,220,160,62,144,190,57,190,18,220,160,62,144,190,57,62,210,114,24,191,0,0,0,0,210,114,152,190,58,6,4,191,210,114,152,62,58,6,4,191,210,114,24,63,0,0,0,128,210,114,152,62,58,6,4,63,210,114,152,190,58,6,4,63,0,0,0,128,86,184,61,191,102,77,36,63,86,184,189,190,102,77,36,63,86,184,189,62,0,0,0,0,86,184,61,63,102,77,36,191,86,184,189,62,102,77,36,191,86,184,189,190,12,233,88,63,0,0,0,128,12,233,216,62,153,217,59,63,12,233,216,190,153,217,59,63,12,233,88,191,0,0,0,0,12,233,216,190,153,217,59,191,12,233,216,62,153,217,59,191,0,0,0,0,252,83,110,63,241,101,78,191,13,84,238,62,241,101,78,191,13,84,238,190,0,0,0,128,252,83,110,191,241,101,78,63,13,84,238,190,241,101,78,63,13,84,238,62,0,0,128,191,0,0,0,0,0,0,0,191,208,179,93,191,0,0,0,63,208,179,93,191,0,0,128,63,0,0,0,128,0,0,0,63,208,179,93,63,0,0,0,191,208,179,93,63,0,0,0,0,72,0,0,0,7,0,0,0,11,0,0,0,12,0,0,0,2,0,0,0,13,0,0,0,0,0,0,0,88,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,3,0,0,0,16,0,0,0,185,134,0,0,207,134,0,0,8,135,0,0,40,135,0,0,77,135,0,0,103,135,0,0,134,135,0,0,163,135,0,0,203,135,0,0,234,135,0,0,1,136,0,0,23,136,0,0,43,136,0,0,104,136,0,0,152,136,0,0,180,136,0,0,215,136,0,0,14,137,0,0,69,137,0,0,92,137,0,0,124,137,0,0,166,137,0,0,243,137,0,0,14,138,0,0,57,138,0,0,85,138,0,0,122,138,0,0,160,138,0,0,197,138,0,0,216,138,0,0,237,138,0,0,0,139,0,0,19,139,0,0,56,139,0,0,77,139,0,0,97,139,0,0,130,139,0,0,152,139,0,0,199,139,0,0,239,139,0,0,16,140,0,0,49,140,0,0,96,140,0,0,113,140,0,0,141,140,0,0,203,140,0,0,242,140,0,0,25,141,0,0,45,141,0,0,91,141,0,0,119,141,0,0,156,141,0,0,190,141,0,0,232,141,0,0,19,142,0,0,49,142,0,0,95,142,0,0,135,142,0,0,174,142,0,0,219,142,0,0,11,143,0,0,53,143,0,0,98,143,0,0,142,143,0,0,177,143,0,0,207,143,0,0,237,143,0,0,35,144,0,0,77,144,0,0,108,144,0,0,143,144,0,0,182,144,0,0,203,144,0,0,223,144,0,0,2,145,0,0,18,145,0,0,80,145,0,0,146,145,0,0,188,145,0,0,232,145,0,0,15,146,0,0,43,146,0,0,86,146,0,0,113,146,0,0,133,146,0,0,156,146,0,0,169,146,0,0,209,146,0,0,6,147,0,0,66,147,0,0,112,147,0,0,145,147,0,0,184,147,0,0,209,147,0,0,249,147,0,0,28,148,0,0,52,148,0,0,88,148,0,0,125,148,0,0,131,148,0,0,188,148,0,0,246,148,0,0,21,149,0,0,36,149,0,0,65,149,0,0,95,149,0,0,124,149,0,0,149,149,0,0,174,149,0,0,240,149,0,0,42,150,0,0,96,150,0,0,148,150,0,0,168,150,0,0,191,150,0,0,229,150,0,0,39,151,0,0,99,151,0,0,148,151,0,0,184,151,0,0,230,151,0,0,1,152,0,0,57,152,0,0,100,152,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,16,0,0,0,9,0,0,0,2,0,0,0,3,0,0,0,10,0,0,0,17,0,0,0,24,0,0,0,32,0,0,0,25,0,0,0,18,0,0,0,11,0,0,0,4,0,0,0,5,0,0,0,12,0,0,0,19,0,0,0,26,0,0,0,33,0,0,0,40,0,0,0,48,0,0,0,41,0,0,0,34,0,0,0,27,0,0,0,20,0,0,0,13,0,0,0,6,0,0,0,7,0,0,0,14,0,0,0,21,0,0,0,28,0,0,0,35,0,0,0,42,0,0,0,49,0,0,0,56,0,0,0,57,0,0,0,50,0,0,0,43,0,0,0,36,0,0,0,29,0,0,0,22,0,0,0,15,0,0,0,23,0,0,0,30,0,0,0,37,0,0,0,44,0,0,0,51,0,0,0,58,0,0,0,59,0,0,0,52,0,0,0,45,0,0,0,38,0,0,0,31,0,0,0,39,0,0,0,46,0,0,0,53,0,0,0,60,0,0,0,61,0,0,0,54,0,0,0,47,0,0,0,55,0,0,0,62,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,64,6,0,0,128,62,0,0,0,0,0,0,136,19,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,0,0,0,255,255,255,255,253,255,255,255,249,255,255,255,241,255,255,255,225,255,255,255,193,255,255,255,129,255,255,255,1,255,255,255,1,254,255,255,1,252,255,255,1,248,255,255,1,240,255,255,1,224,255,255,1,192,255,255,1,128,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,253,255,255,255,0,0,0,0,254,255,255,255,0,0,0,0,48,3,0,0,104,3,0,0,136,3,0,0,48,3,0,0,104,3,0,0,104,3,0,0,144,3,0,0,104,3,0,0,48,3,0,0,104,3,0,0,144,3,0,0,104,3,0,0,48,3,0,0,104,3,0,0,104,3,0,0,8,2,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,8,2,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,104,3,0,0,1,0,0,0,0,0,0,0,192,2,0,0,17,0,0,0,18,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,32,3,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,1,0,0,0,0,0,0,0,240,2,0,0,19,0,0,0,23,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,152,3,0,0,19,0,0,0,24,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,168,3,0,0,19,0,0,0,25,0,0,0,21,0,0,0,22,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,172,187,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,220,25,0,0,76,26,0,0,188,26,0,0,188,26,0,0,172,68,0,0,44,35,0,0,44,29,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,118,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,5,0,0,0,110,200,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,5,0,0,0,102,196,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+9e3);allocate([56,4,0,0,26,0,0,0,27,0,0,0,1,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,9,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,10,0,0,0,5,0,0,0,0,0,0,0,72,4,0,0,26,0,0,0,28,0,0,0,2,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,9,0,0,0,10,0,0,0,6,0,0,0,11,0,0,0,7,0,0,0,0,0,0,0,88,4,0,0,29,0,0,0,30,0,0,0,3,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,14,0,0,0,9,0,0,0,0,0,0,0,104,4,0,0,29,0,0,0,31,0,0,0,4,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,15,0,0,0,12,0,0,0,13,0,0,0,16,0,0,0,17,0,0,0,10,0,0,0,15,0,0,0,11,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,211,0,0,0,1,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,121,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,143,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,169,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,187,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,4,0,0,29,0,0,0,32,0,0,0,5,0,0,0,12,0,0,0,5,0,0,0,5,0,0,0,15,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,15,0,0,0,11,0,0,0,0,0,0,0,200,4,0,0,26,0,0,0,33,0,0,0,6,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,5,0,0,0,9,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,11,0,0,0,7,0,0,0,8,0,0,0,0,0,0,0,208,4,0,0,34,0,0,0,35,0,0,0,248,255,255,255,248,255,255,255,208,4,0,0,36,0,0,0,37,0,0,0,8,0,0,0,0,0,0,0,232,4,0,0,38,0,0,0,39,0,0,0,248,255,255,255,248,255,255,255,232,4,0,0,40,0,0,0,41,0,0,0,4,0,0,0,0,0,0,0,0,5,0,0,42,0,0,0,43,0,0,0,252,255,255,255,252,255,255,255,0,5,0,0,44,0,0,0,45,0,0,0,4,0,0,0,0,0,0,0,24,5,0,0,46,0,0,0,47,0,0,0,252,255,255,255,252,255,255,255,24,5,0,0,48,0,0,0,49,0,0,0,0,0,0,0,152,4,0,0,50,0,0,0,51,0,0,0,0,0,0,0,16,6,0,0,52,0,0,0,53,0,0,0,54,0,0,0,1,0,0,0,6,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,6,0,0,55,0,0,0,56,0,0,0,54,0,0,0,2,0,0,0,7,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,57,0,0,0,58,0,0,0,54,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,59,0,0,0,60,0,0,0,54,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,61,0,0,0,62,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,63,0,0,0,64,0,0,0,54,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,65,0,0,0,66,0,0,0,54,0,0,0,18,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,240,6,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,7,0,0,67,0,0,0,68,0,0,0,54,0,0,0,26,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,24,7,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,7,0,0,69,0,0,0,70,0,0,0,54,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,7,0,0,71,0,0,0,72,0,0,0,54,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,73,0,0,0,74,0,0,0,54,0,0,0,34,0,0,0,35,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,36,0,0,0,11,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,7,0,0,75,0,0,0,76,0,0,0,54,0,0,0,37,0,0,0,38,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,39,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,7,0,0,77,0,0,0,78,0,0,0,54,0,0,0,40,0,0,0,41,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,42,0,0,0,23,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,7,0,0,79,0,0,0,80,0,0,0,54,0,0,0,43,0,0,0,44,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,45,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,81,0,0,0,82,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,83,0,0,0,84,0,0,0,54,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,8,0,0,85,0,0,0,86,0,0,0,54,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,8,0,0,87,0,0,0,88,0,0,0,54,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,8,0,0,89,0,0,0,90,0,0,0,54,0,0,0,18,0,0,0,6,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,8,0,0,91,0,0,0,92,0,0,0,54,0,0,0,19,0,0,0,7,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,93,0,0,0,94,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,95,0,0,0,96,0,0,0,54,0,0,0,12,0,0,0,20,0,0,0,13,0,0,0,21,0,0,0,14,0,0,0,1,0,0,0,22,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,97,0,0,0,98,0,0,0,54,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,46,0,0,0,47,0,0,0,13,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,99,0,0,0,100,0,0,0,54,0,0,0,49,0,0,0,50,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,0,0,0,0,96,6,0,0,101,0,0,0,102,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,0,0,0,0,48,5,0,0,103,0,0,0,104,0,0,0,54,0,0,0,0,0,0,0,64,5,0,0,103,0,0,0,105,0,0,0,54,0,0,0,23,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,15,0,0,0,24,0,0,0,16,0,0,0,25,0,0,0,17,0,0,0,5,0,0,0,26,0,0,0,14,0,0,0,0,0,0,0,96,5,0,0,103,0,0,0,106,0,0,0,54,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,53,0,0,0,54,0,0,0,16,0,0,0,55,0,0,0,0,0,0,0,128,5,0,0,103,0,0,0,107,0,0,0,54,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,56,0,0,0,57,0,0,0,18,0,0,0,58,0,0,0,0,0,0,0,160,5,0,0,103,0,0,0,108,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,192,5,0,0,103,0,0,0,109,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,208,5,0,0,103,0,0,0,110,0,0,0,54,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,59,0,0,0,60,0,0,0,20,0,0,0,61,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,197,88,159,83,66,75,0,64,73,50,163,34,168,17,197,88,33,123,252,115,98,104,197,88,191,69,11,48,126,24,159,83,252,115,65,109,84,98,159,83,179,65,65,45,18,23,66,75,98,104,84,98,126,88,66,75,33,59,186,40,195,20,0,64,197,88,159,83,66,75,0,64,73,50,163,34,168,17,73,50,191,69,179,65,33,59,73,50,130,39,55,27,224,13,163,34,11,48,65,45,186,40,163,34,55,27,191,18,142,9,168,17,126,24,18,23,195,20,168,17,224,13,142,9,223,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,114,114,111,114,58,32,108,97,98,101,108,105,110,103,32,119,111,114,107,32,111,118,101,114,102,108,111,119,46,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,40,37,100,41,32,114,101,113,117,101,115,116,101,100,46,10,0,85,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,108,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,114,101,113,117,101,115,116,101,100,46,32,83,101,116,32,116,111,32,109,97,110,117,97,108,46,10,0,76,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,46,10,0,77,65,78,85,65,76,0,65,85,84,79,95,77,69,68,73,65,78,0,65,85,84,79,95,79,84,83,85,0,65,85,84,79,95,65,68,65,80,84,73,86,69,65,85,84,79,95,66,82,65,67,75,69,84,73,78,71,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,109,97,114,107,101,114,32,99,111,117,110,116,115,32,45,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,43,46,10,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,109,101,100,105,97,110,0,79,116,115,117,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,37,115,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,63,63,63,32,49,10,0,63,63,63,32,50,10,0,63,63,63,32,51,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,112,97,115,115,101,100,32,116,111,32,97,114,73,109,97,103,101,80,114,111,99,72,105,115,116,40,41,46,10,0,0,0,0,1,0,1,1,1,0,2,4,255,255,5,3,1,0,2,255,6,7,255,3,1,2,2,3,2,3,2,3,3,0,255,4,6,7,5,255,1,4,5,4,4,5,5,4,5,7,6,6,6,7,7,7,6,255,2,4,6,7,5,3,255,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,255,255,3,255,5,6,255,255,9,10,255,12,255,255,15,255,17,18,255,20,255,255,23,24,255,255,27,255,29,30,255,255,1,2,255,4,255,255,7,8,255,255,11,255,13,14,255,16,255,255,19,255,21,22,255,255,25,26,255,28,255,255,31,69,114,114,111,114,58,32,117,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,58,32,78,85,76,76,32,112,97,116,116,72,97,110,100,108,101,46,10,0,69,114,114,111,114,58,32,99,97,110,39,116,32,108,111,97,100,32,112,97,116,116,101,114,110,32,102,114,111,109,32,78,85,76,76,32,98,117,102,102,101,114,46,10,0,69,114,114,111,114,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,46,10,0,32,9,10,13,0,80,97,116,116,101,114,110,32,68,97,116,97,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,115,32,102,105,108,101,32,34,37,115,34,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,102,105,108,101,32,108,101,110,103,116,104,46,0,69,114,114,111,114,58,32,115,117,112,112,108,105,101,100,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,97,112,112,101,97,114,32,116,111,32,98,101,32,97,110,32,65,82,84,111,111,108,75,105,116,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,114,101,97,100,32,102,114,111,109,32,102,105,108,101,46,0,69,114,114,111,114,58,32,105,99,112,71,101,116,74,95,85,95,88,99,0,69,114,114,111,114,58,32,109,97,108,108,111,99,10,0,69,114,114,111,114,32,49,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,50,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,51,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,52,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,53,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,54,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,55,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,110,117,109,98,101,114,32,111,102,32,109,97,114,107,101,114,32,99,111,110,102,105,103,115,32,116,111,32,114,101,97,100,46,10,0,37,108,108,117,37,99,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,112,97,116,116,101,114,110,32,39,37,115,39,32,115,112,101,99,105,102,105,101,100,32,105,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,104,105,108,101,32,105,110,32,98,97,114,99,111,100,101,45,111,110,108,121,32,109,111,100,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,100,105,114,101,99,116,111,114,121,32,110,97,109,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,108,111,97,100,32,112,97,116,116,101,114,110,32,39,37,115,39,46,10,0,37,108,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,112,97,116,116,101,114,110,32,119,105,100,116,104,46,10,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,37,102,32,37,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,76,105,110,101,115,32,50,32,45,32,52,32,109,117,115,116,32,98,101,32,109,97,114,107,101,114,32,116,114,97,110,115,102,111,114,109,46,10,0,97,114,103,108,67,97,109,101,114,97,70,114,117,115,116,117,109,40,41,58,32,97,114,80,97,114,97,109,68,101,99,111,109,112,77,97,116,40,41,32,105,110,100,105,99,97,116,101,100,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,46,10,0,37,115,37,115,0,46,105,115,101,116,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,102,105,108,101,32,39,37,115,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,105,109,97,103,101,83,101,116,46,10,0,73,109,97,103,101,115,101,116,32,99,111,110,116,97,105,110,115,32,37,100,32,105,109,97,103,101,115,46,10,0,70,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,114,101,97,100,105,110,103,32,39,37,115,37,115,39,32,105,110,32,65,82,84,111,111,108,75,105,116,32,118,52,46,120,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,74,80,69,71,32,102,105,108,101,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,74,80,69,71,32,102,105,108,101,32,104,101,97,100,101,114,46,10,0,37,102,0,70,105,108,101,32,111,112,101,110,32,101,114,114,111,114,46,32,37,115,10,0,82,101,97,100,32,101,114,114,111,114,33,33,10,0,114,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,39,58,32,0,37,115,37,115,10,0,37,100,0,10,35,35,35,32,83,117,114,102,97,99,101,32,78,111,46,37,100,32,35,35,35,10,0,37,115,0,32,32,82,101,97,100,32,73,109,97,103,101,83,101,116,46,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,105,115,101,116,39,46,10,0,32,32,32,32,101,110,100,46,10,0,32,32,82,101,97,100,32,70,101,97,116,117,114,101,83,101,116,46,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,102,115,101,116,39,46,10,0,32,32,82,101,97,100,32,77,97,114,107,101,114,83,101,116,46,10,0,109,114,107,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,102,105,108,101,32,39,37,115,46,109,114,107,39,46,10,0,37,102,32,37,102,32,37,102,32,37,102,0,84,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,106,112,103,0,80,101,114,102,111,114,109,97,110,99,101,32,119,97,114,110,105,110,103,58,32,75,80,77,32,112,114,111,99,101,115,115,105,110,103,32,105,115,32,110,111,116,32,117,115,105,110,103,32,97,32,109,111,110,111,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,107,112,109,68,101,108,101,116,101,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,80,116,114,49,47,114,101,102,68,97,116,97,83,101,116,80,116,114,50,46,10,0,107,112,109,68,101,108,101,116,101,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,80,116,114,46,10,0,114,98,0,107,112,109,76,111,97,100,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,102,105,108,101,110,97,109,101,47,114,101,102,68,97,116,97,83,101,116,80,116,114,46,10,0,69,114,114,111,114,32,108,111,97,100,105,110,103,32,75,80,77,32,100,97,116,97,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,102,105,108,101,32,39,37,115,37,115,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,108,111,97,100,105,110,103,32,75,80,77,32,100,97,116,97,58,32,101,114,114,111,114,32,114,101,97,100,105,110,103,32,100,97,116,97,46,10,0,107,112,109,67,104,97,110,103,101,80,97,103,101,78,111,79,102,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,114,101,102,68,97,116,97,83,101,116,46,10,0,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,40,41,58,32,78,85,76,76,32,107,112,109,72,97,110,100,108,101,47,114,101,102,68,97,116,97,83,101,116,46,10,0,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,40,41,58,32,114,101,102,68,97,116,97,83,101,116,46,10,0,112,111,105,110,116,115,45,37,100,10,0,107,112,109,77,97,116,99,104,105,110,103,40,41,58,32,78,85,76,76,32,107,112,109,72,97,110,100,108,101,47,105,110,73,109,97,103,101,46,10,0,80,97,103,101,91,37,100,93,32,32,112,114,101,58,37,51,100,44,32,97,102,116,58,37,51,100,44,32,101,114,114,111,114,32,61,32,37,102,10,0,79,117,116,32,111,102,32,109,101,109,111,114,121,33,33,10,0,37,115,46,37,115,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,68,111,71,95,115,99,97,108,101,95,105,110,118,97,114,105,97,110,116,95,100,101,116,101,99,116,111,114,46,99,112,112,0,80,121,114,97,109,105,100,32,105,115,32,110,111,116,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,73,109,97,103,101,115,46,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,76,97,112,108,97,99,105,97,110,32,112,121,114,97,109,105,100,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,110,117,109,79,99,116,97,118,101,115,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,100,111,101,115,32,110,111,116,32,99,111,110,116,97,105,110,32,97,110,121,32,108,101,118,101,108,115,0,65,115,115,101,114,116,105,111,110,32,96,100,121,110,97,109,105,99,95,99,97,115,116,60,99,111,110,115,116,32,66,105,110,111,109,105,97,108,80,121,114,97,109,105,100,51,50,102,42,62,40,112,121],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+11552);allocate([114,97,109,105,100,41,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,98,105,110,111,109,105,97,108,32,112,121,114,97,109,105,100,32,105,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,100,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,70,51,50,32,105,109,97,103,101,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,50,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,79,110,108,121,32,115,105,110,103,108,101,32,99,104,97,110,110,101,108,32,105,109,97,103,101,115,32,115,117,112,112,111,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,50,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,46,119,105,100,116,104,40,41,32,61,61,32,105,109,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,100,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,104,101,105,103,104,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,119,105,100,116,104,40,41,32,61,61,32,105,109,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,49,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,68,111,71,32,80,121,114,97,109,105,100,0,78,111,110,45,109,97,120,32,115,117,112,112,114,101,115,115,105,111,110,0,83,117,98,112,105,120,101,108,0,112,114,117,110,101,70,101,97,116,117,114,101,115,0,70,105,110,100,32,79,114,105,101,110,116,97,116,105,111,110,115,0,65,115,115,101,114,116,105,111,110,32,96,105,109,48,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,72,101,105,103,104,116,32,105,115,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,48,46,104,101,105,103,104,116,40,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,49,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,109,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,105,109,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,107,112,46,115,99,97,108,101,32,60,32,109,76,97,112,108,97,99,105,97,110,80,121,114,97,109,105,100,46,110,117,109,83,99,97,108,101,80,101,114,79,99,116,97,118,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,70,101,97,116,117,114,101,32,112,111,105,110,116,32,115,99,97,108,101,32,105,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,107,112,46,115,99,111,114,101,32,61,61,32,108,97,112,49,46,103,101,116,60,102,108,111,97,116,62,40,121,41,91,120,93,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,111,114,101,32,105,115,32,110,111,116,32,99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,32,116,104,101,32,68,111,71,32,105,109,97,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,66,117,99,107,101,116,115,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,66,117,99,107,101,116,115,88,96,32,102,97,105,108,101,100,32,105,110,32,0,66,117,99,107,101,116,115,32,97,114,101,32,110,111,116,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,66,117,99,107,101,116,115,91,48,93,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,66,117,99,107,101,116,115,89,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,109,70,101,97,116,117,114,101,80,111,105,110,116,115,46,115,105,122,101,40,41,32,60,61,32,109,77,97,120,78,117,109,70,101,97,116,117,114,101,80,111,105,110,116,115,96,32,102,97,105,108,101,100,32,105,110,32,0,84,111,111,32,109,97,110,121,32,102,101,97,116,117,114,101,32,112,111,105,110,116,115,0,65,115,115,101,114,116,105,111,110,32,96,98,117,99,107,101,116,91,48,93,46,102,105,114,115,116,32,62,61,32,98,117,99,107,101,116,91,110,93,46,102,105,114,115,116,96,32,102,97,105,108,101,100,32,105,110,32,0,110,116,104,95,101,108,101,109,101,110,116,32,102,97,105,108,101,100,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,68,111,71,95,115,99,97,108,101,95,105,110,118,97,114,105,97,110,116,95,100,101,116,101,99,116,111,114,46,104,0,87,105,100,116,104,47,104,101,105,103,104,116,32,97,114,101,32,110,111,116,32,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,41,32,38,38,32,40,40,108,97,112,49,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,115,105,122,101,115,32,97,114,101,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,120,45,49,41,32,62,61,32,48,32,38,38,32,40,120,43,49,41,32,60,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,40,121,45,49,41,32,62,61,32,48,32,38,38,32,40,121,43,49,41,32,60,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,119,105,100,116,104,40,41,62,62,49,41,32,61,61,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,100,105,109,101,110,115,105,111,110,115,32,105,110,99,111,110,115,105,115,116,101,110,116,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,119,105,100,116,104,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,108,97,112,48,46,104,101,105,103,104,116,40,41,62,62,49,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,120,45,49,41,32,62,61,32,48,32,38,38,32,40,120,43,49,41,32,60,32,105,109,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,121,45,49,41,32,62,61,32,48,32,38,38,32,40,121,43,49,41,32,60,32,105,109,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,119,105,100,116,104,40,41,32,61,61,32,108,97,112,49,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,49,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,120,95,100,105,118,95,50,45,48,46,53,102,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,120,95,100,105,118,95,50,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,102,111,114,32,105,110,116,101,114,112,111,108,97,116,105,111,110,0,65,115,115,101,114,116,105,111,110,32,96,121,95,100,105,118,95,50,45,48,46,53,102,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,121,95,100,105,118,95,50,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,111,117,116,32,111,102,32,98,111,117,110,100,115,32,102,111,114,32,105,110,116,101,114,112,111,108,97,116,105,111,110,0,65,115,115,101,114,116,105,111,110,32,96,120,95,100,105,118,95,50,43,48,46,53,102,32,60,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,95,100,105,118,95,50,43,48,46,53,102,32,60,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,119,105,100,116,104,40,41,32,61,61,32,108,97,112,50,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,108,97,112,48,46,104,101,105,103,104,116,40,41,32,61,61,32,108,97,112,50,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,105,110,116,41,115,116,100,58,58,102,108,111,111,114,40,120,41,32,61,61,32,40,105,110,116,41,120,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,105,110,116,101,114,112,111,108,97,116,101,46,104,0,102,108,111,111,114,40,41,32,97,110,100,32,99,97,115,116,32,110,111,116,32,116,104,101,32,115,97,109,101,0,65,115,115,101,114,116,105,111,110,32,96,40,105,110,116,41,115,116,100,58,58,102,108,111,111,114,40,121,41,32,61,61,32,40,105,110,116,41,121,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,112,32,62,61,32,48,32,38,38,32,121,112,32,60,32,104,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,121,112,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,121,112,95,112,108,117,115,95,49,32,62,61,32,48,32,38,38,32,121,112,95,112,108,117,115,95,49,32,60,32,104,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,121,112,95,112,108,117,115,95,49,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,120,112,32,62,61,32,48,32,38,38,32,120,112,32,60,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,120,112,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,120,112,95,112,108,117,115,95,49,32,62,61,32,48,32,38,38,32,120,112,95,112,108,117,115,95,49,32,60,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,120,112,95,112,108,117,115,95,49,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,65,115,115,101,114,116,105,111,110,32,96,119,48,32,62,61,32,48,32,38,38,32,119,48,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,79,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,119,49,32,62,61,32,48,32,38,38,32,119,49,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,119,50,32,62,61,32,48,32,38,38,32,119,50,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,119,51,32,62,61,32,48,32,38,38,32,119,51,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,40,119,48,43,119,49,43,119,50,43,119,51,41,32,60,61,32,49,46,48,48,48,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,60,32,109,73,109,97,103,101,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,110,100,101,120,32,105,115,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,114,111,119,32,60,32,109,72,101,105,103,104,116,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,105,109,97,103,101,46,104,0,114,111,119,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,78,54,118,105,115,105,111,110,50,53,71,97,117,115,115,105,97,110,83,99,97,108,101,83,112,97,99,101,80,121,114,97,109,105,100,69,0,79,99,116,97,118,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,83,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,78,54,118,105,115,105,111,110,49,56,66,105,110,111,109,105,97,108,80,121,114,97,109,105,100,51,50,102,69,0,65,115,115,101,114,116,105,111,110,32,96,119,105,100,116,104,32,62,61,32,53,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,103,97,117,115,115,105,97,110,95,115,99,97,108,101,95,115,112,97,99,101,95,112,121,114,97,109,105,100,46,99,112,112,0,73,109,97,103,101,32,105,115,32,116,111,111,32,115,109,97,108,108,0,65,115,115,101,114,116,105,111,110,32,96,104,101,105,103,104,116,32,62,61,32,53,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,85,73,78,84,56,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,109,117,115,116,32,98,101,32,103,114,97,121,115,99,97,108,101,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,49,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,109,117,115,116,32,104,97,118,101,32,49,32,99,104,97,110,110,101,108,0,65,115,115,101,114,116,105,111,110,32,96,109,80,121,114,97,109,105,100,46,115,105,122,101,40,41,32,61,61,32,109,78,117,109,79,99,116,97,118,101,115,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,32,121,101,116,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,119,105,100,116,104,40,41,32,61,61,32,109,80,121,114,97,109,105,100,91,48,93,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,109,97,103,101,32,111,102,32,119,114,111,110,103,32,115,105,122,101,32,102,111,114,32,112,121,114,97,109,105,100,0,65,115,115,101,114,116,105,111,110,32,96,105,109,97,103,101,46,104,101,105,103,104,116,40,41,32,61,61,32,109,80,121,114,97,109,105,100,91,48,93,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,100,115,116,46,116,121,112,101,40,41,32,61,61,32,73,77,65,71,69,95,70,51,50,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,115,116,105,110,97,116,105,111,110,32,105,109,97,103,101,32,115,104,111,117,108,100,32,98,101,32,97,32,102,108,111,97,116,0,85,110,107,110,111,119,110,32,105,109,97,103,101,32,116,121,112,101,0,85,110,115,117,112,112,111,114,116,101,100,32,105,109,97,103,101,32,116,121,112,101,0,78,54,118,105,115,105,111,110,57,69,120,99,101,112,116,105,111,110,69,0,65,115,115,101,114,116,105,111,110,32,96,105,109,46,119,105,100,116,104,40,41,32,61,61,32,105,109,46,115,116,101,112,40,41,47,115,105,122,101,111,102,40,102,108,111,97,116,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,111,114,105,101,110,116,97,116,105,111,110,95,97,115,115,105,103,110,109,101,110,116,46,99,112,112,0,83,116,101,112,32,115,105,122,101,32,109,117,115,116,32,98,101,32,101,113,117,97,108,32,116,111,32,119,105,100,116,104,32,102,111,114,32,110,111,119,0,65,115,115,101,114,116,105,111,110,32,96,120,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,60,32,109,71,114,97,100,105,101,110,116,115,91,111,99,116,97,118,101,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,43,115,99,97,108,101,93,46,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,116,104,101,32,105,109,97,103,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,121,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,121,32,60,32,109,71,114,97,100,105,101,110,116,115,91,111,99,116,97,118,101,42,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,43,115,99,97,108,101,93,46,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,116,104,101,32,105,109,97,103,101,32,104,101,105,103,104,116,0,65,115,115,101,114,116,105,111,110,32,96,103,46,99,104,97,110,110,101,108,115,40,41,32,61,61,32,50,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,99,104,97,110,110,101,108,115,32,115,104,111,117,108,100,32,98,101,32,50,0,65,115,115,101,114,116,105,111,110,32,96,109,97,120,95,104,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,77,97,120,105,109,117,109,32,98,105,110,32,115,104,111,117,108,100,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,104,105,115,116,32,33,61,32,78,85,76,76,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,111,114,105,101,110,116,97,116,105,111,110,95,97,115,115,105,103,110,109,101,110,116,46,104,0,72,105,115,116,111,103,114,97,109,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,40,102,98,105,110,43,48,46,53,102,41,32,62,32,48,32,38,38,32,40,102,98,105,110,45,48,46,53,102,41,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,99,105,109,97,108,32,98,105,110,32,112,111,115,105,116,105,111,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,97,103,110,105,116,117,100,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,77,97,103,110,105,116,117,100,101,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,98,105,110,115,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,98,105,110,115,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,119,49,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,49,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,119,50,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,50,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,98,49,32,62,61,32,48,32,38,38,32,98,49,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,98,49,32,98,105,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,50,32,62,61,32,48,32,38,38,32,98,50,32,60,32,110,117,109,95,98,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,98,50,32,98,105,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,66,117,105,108,100,32,80,121,114,97,109,105,100,0,69,120,116,114,97,99,116,32,70,101,97,116,117,114,101,115,0,91,37,115,93,32,91,37,115,93,32,91,37,115,93,32,58,32,70,111,117,110,100,32,37,100,32,102,101,97,116,117,114,101,115,32,105,110,32,113,117,101,114,121,0,98,111,111,108,32,118,105,115,105,111,110,58,58,86,105,115,117,97,108,68,97,116,97,98,97,115,101,60,118,105,115,105,111,110,58,58,70,82,69,65,75,69,120,116,114,97,99,116,111,114,44,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,83,116,111,114,101,44,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,77,97,116,99,104,101,114,60,57,54,62,32,62,58,58,113,117,101,114,121,40,99,111,110,115,116,32,118,105,115,105,111,110,58,58,71,97,117,115,115,105,97,110,83,99,97,108,101,83,112,97,99,101,80,121,114,97,109,105,100,32,42,41,32,91,70,69,65,84,85,82,69,95,69,88,84,82,65,67,84,79,82,32,61,32,118,105,115,105,111,110,58,58,70,82,69,65,75,69,120,116,114,97,99,116,111,114,44,32,83,84,79,82,69,32,61,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,83,116,111,114,101,44,32,77,65,84,67,72,69,82,32,61,32,118,105,115,105,111,110,58,58,66,105,110,97,114,121,70,101,97,116,117,114,101,77,97,116,99,104,101,114,60,57,54,62,93,0,70,105,110,100,32,77,97,116,99,104,101,115,32,40,49,41,0,72,111,117,103,104,32,86,111,116,105,110,103,32,40,49,41,0,70,105,110,100,32,72,111,117,103,104,32,77,97,116,99,104,101,115,32,40,49,41,0,69,115,116,105,109,97,116,101,32,72,111,109,111,103,114,97,112,104,121,32,40,49,41,0,70,105,110,100,32,73,110,108,105,101,114,115,32,40,49,41,0,70,105,110,100,32,77,97,116,99,104,101,115,32,40,50,41,0,72,111,117,103,104,32,86,111,116,105,110,103,32,40,50,41,0,70,105,110,100,32,72,111,117,103,104,32,77,97,116,99,104,101,115,32,40,50,41,0,69,115,116,105,109,97,116,101,32,72,111,109,111,103,114,97,112,104,121,32,40,50,41,0,70,105,110,100,32,73,110,108,105,101,114,115,32,40,50,41,0,65,115,115,101,114,116,105,111,110,32,96,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,102,101,97,116,117,114,101,95,109,97,116,99,104,101,114,45,105,110,108,105,110,101,46,104,0,70,97,105,108,101,100,32,116,111,32,99,111,109,112,117,116,101,32,109,97,116,114,105,120,32,105,110,118,101,114,115,101,0,65,115,115,101,114,116,105,111,110,32,96,98,101,115,116,95,105,110,100,101,120,32,33,61,32,115,116,100,58,58,110,117,109,101,114,105,99,95,108,105,109,105,116,115,60,115,105,122,101,95,116,62,58,58,109,97,120,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,83,111,109,101,116,104,105,110,103,32,115,116,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,109,77,97,116,99,104,101,115,46,115,105,122,101,40,41,32,60,61,32,102,101,97,116,117,114,101,115,49,45,62,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,109,97,116,99,104,101,115,32,115,104,111,117,108,100,32,98,101,32,108,111,119,101,114,0,65,115,115,101,114,116,105,111,110,32,96,104,121,112,46,115,105,122,101,40,41,32,62,61,32,57,42,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,104,111,109,111,103,114,97,112,104,121,95,101,115,116,105,109,97,116,105,111,110,47,114,111,98,117,115,116,95,104,111,109,111,103,114,97,112,104,121,46,104,0,104,121,112,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,57,42,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,0,65,115,115,101,114,116,105,111,110,32,96,116,109,112,95,105,46,115,105,122,101,40,41,32,62,61,32,110,117,109,95,112,111,105,110,116,115,96,32,102,97,105,108,101,100,32,105,110,32,0,116,109,112,95,105,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,110,117,109,95,112,111,105,110,116,115,0,65,115,115,101,114,116,105,111,110,32,96,104,121,112,95,99,111,115,116,115,46,115,105,122,101,40,41,32,62,61,32,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,104,121,112,95,99,111,115,116,115,32,118,101,99,116,111,114,32,115,104,111,117,108,100,32,98,101,32,111,102,32,115,105,122,101,32,109,97,120,95,110,117,109,95,104,121,112,111,116,104,101,115,101,115,0,65,115,115,101,114,116,105,111,110,32,96,110,32,60,61,32,105,110,95,109,97,116,99,104,101,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,118,105,115,117,97,108,95,100,97,116,97,98,97,115,101,46,104,0,83,104,111,117,108,100,32,98,101,32,116,104,101,32,115,97,109,101,0,65,115,115,101,114,116,105,111,110,32,96,100,105,115,116,66,105,110,65,110,103,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,100,105,115,116,66,105,110,65,110,103,108,101,32,109,117,115,116,32,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,111,111,116,46,103,101,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,98,105,110,97,114,121,95,104,105,101,114,97,114,99,104,105,99,97,108,95,99,108,117,115,116,101,114,105,110,103,46,104,0,82,111,111,116,32,99,97,110,110,111,116,32,98,101,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,109,105,110,105,32,33,61,32,45,49,96,32,102,97,105,108,101,100,32,105,110,32,0,77,105,110,105,109,117,109,32,105,110,100,101,120,32,110,111,116,32,115,101,116,0,65,115,115,101,114,116,105,111,110,32,96,100,101,116,101,99,116,111,114,96,32,102,97,105,108,101,100,32,105,110,32,0,68,101,116,101,99,116,111,114,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,46,115,105,122,101,40,41,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,105,115,32,101,109,112,116,121,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,91,48,93,46,119,105,100,116,104,40,41,32,61,61,32,100,101,116,101,99,116,111,114,45,62,119,105,100,116,104,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,80,121,114,97,109,105,100,32,97,110,100,32,100,101,116,101,99,116,111,114,32,115,105,122,101,32,109,105,115,109,97,116,99,104,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,45,62,105,109,97,103,101,115,40,41,91,48,93,46,104,101,105,103,104,116,40,41,32,61,61,32,100,101,116,101,99,116,111,114,45,62,104,101,105,103,104,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,73,68,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,46,115,105,122,101,40,41,32,61,61,32,110,117,109,95,105,110,100,105,99,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,115,105,122,101,32,119,114,111,110,103,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,91,105,93,32,33,61,32,45,49,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,105,115,32,105,110,118,97,108,105,100,0,65,115,115,101,114,116,105,111,110,32,96,97,115,115,105,103,110,109,101,110,116,91,105,93,32,60,32,110,117,109,95,105,110,100,105,99,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,105,103,110,109,101,110,116,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,105,99,101,115,91,97,115,115,105,103,110,109,101,110,116,91,105,93,93,32,60,32,110,117,109,95,102,101,97,116,117,114,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,116,45,62,115,101,99,111,110,100,46,115,105,122,101,40,41,32,33,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,67,108,117,115,116,101,114,32,109,117,115,116,32,104,97,118,101,32,97,116,108,101,97,115,101,116,32,49,32,102,101,97,116,117,114,101,0,65,115,115,101,114,116,105,111,110,32,96,109,75,32,61,61,32,109,67,101,110,116,101,114,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,107,109,101,100,111,105,100,115,46,104,0,107,32,115,104,111,117,108,100,32,109,97,116,99,104,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,99,108,117,115,116,101,114,32,99,101,110,116,101,114,115,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,102,101,97,116,117,114,101,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,102,101,97,116,117,114,101,115,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,105,110,100,105,99,101,115,32,60,61,32,110,117,109,95,102,101,97,116,117,114,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,77,111,114,101,32,105,110,100,105,99,101,115,32,116,104,97,110,32,102,101,97,116,117,114,101,115,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,105,110,100,105,99,101,115,32,62,61,32,109,75,96,32,102,97,105,108,101,100,32,105,110,32,0,78,111,116,32,101,110,111,117,103,104,32,102,101,97,116,117,114,101,115,0,65,115,115,105,103,110,109,101,110,116,32,115,105,122,101,32,105,115,32,105,110,99,111,114,114,101,99,116,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,99,101,110,116,101,114,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,84,104,101,114,101,32,109,117,115,116,32,98,101,32,97,116,32,108,101,97,115,116,32,49,32,99,101,110,116,101,114,0,78,83,116,51,95,95,49,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,78,54,118,105,115,105,111,110,56,75,101,121,102,114,97,109,101,73,76,105,57,54,69,69,69,69,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,78,54,118,105,115,105,111,110,56,75,101,121,102,114,97,109,101,73,76,105,57,54,69,69,69,78,83,95,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,83,51,95,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,83,51,95,69,69,69,69,0,65,115,115,101,114,116,105,111,110,32,96,115,105,122,101,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,104,111,117,103,104,95,115,105,109,105,108,97,114,105,116,121,95,118,111,116,105,110,103,46,99,112,112,0,115,105,122,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,101,102,73,109,97,103,101,87,105,100,116,104,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,109,82,101,102,73,109,97,103,101,72,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,104,101,105,103,104,116,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,62,61,32,109,77,105,110,88,96,32,102,97,105,108,101,100,32,105,110,32,0,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,120,32,60,32,109,77,97,120,88,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,121,32,62,61,32,109,77,105,110,89,96,32,102,97,105,108,101,100,32,105,110,32,0,121,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,121,32,60,32,109,77,97,120,89,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,97,110,103,108,101,32,62,32,45,80,73,96,32,102,97,105,108,101,100,32,105,110,32,0,97,110,103,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,97,110,103,108,101,32,60,61,32,80,73,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,62,61,32,109,77,105,110,83,99,97,108,101,96,32,102,97,105,108,101,100,32,105,110,32,0,115,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,60,32,109,77,97,120,83,99,97,108,101,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,110,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,117,116,105,108,115,47,112,97,114,116,105,97,108,95,115,111,114,116,46,104,0,110,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,107,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,107,32,109,117,115,116,32],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+21792);allocate([98,101,32,112,111,115,105,116,105,118,101,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,104,111,117,103,104,95,115,105,109,105,108,97,114,105,116,121,95,118,111,116,105,110,103,46,104,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,88,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,88,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,88,32,60,32,109,78,117,109,88,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,89,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,89,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,89,32,60,32,109,78,117,109,89,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,65,110,103,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,65,110,103,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,65,110,103,108,101,32,60,32,109,78,117,109,65,110,103,108,101,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,83,99,97,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,98,105,110,83,99,97,108,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,65,115,115,101,114,116,105,111,110,32,96,98,105,110,83,99,97,108,101,32,60,32,109,78,117,109,83,99,97,108,101,66,105,110,115,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,105,110,100,101,120,32,60,61,32,40,98,105,110,88,32,43,32,98,105,110,89,42,109,78,117,109,88,66,105,110,115,32,43,32,98,105,110,65,110,103,108,101,42,109,78,117,109,88,66,105,110,115,42,109,78,117,109,89,66,105,110,115,32,43,32,98,105,110,83,99,97,108,101,42,109,78,117,109,88,66,105,110,115,42,109,78,117,109,89,66,105,110,115,42,109,78,117,109,65,110,103,108,101,66,105,110,115,41,96,32,102,97,105,108,101,100,32,105,110,32,0,65,115,115,101,114,116,105,111,110,32,96,112,121,114,97,109,105,100,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,109,97,116,99,104,101,114,115,47,102,114,101,97,107,46,104,0,80,121,114,97,109,105,100,32,105,115,32,78,85,76,76,0,65,115,115,101,114,116,105,111,110,32,96,115,116,111,114,101,46,115,105,122,101,40,41,32,61,61,32,112,111,105,110,116,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,70,101,97,116,117,114,101,32,115,116,111,114,101,32,104,97,115,32,110,111,116,32,98,101,101,110,32,97,108,108,111,99,97,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,110,117,109,95,112,111,105,110,116,115,32,61,61,32,112,111,105,110,116,115,46,115,105,122,101,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,83,104,111,117,108,100,32,98,101,32,115,97,109,101,32,115,105,122,101,0,65,115,115,101,114,116,105,111,110,32,96,111,99,116,97,118,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,100,101,116,101,99,116,111,114,115,47,103,97,117,115,115,105,97,110,95,115,99,97,108,101,95,115,112,97,99,101,95,112,121,114,97,109,105,100,46,104,0,79,99,116,97,118,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,111,99,116,97,118,101,32,60,32,109,78,117,109,79,99,116,97,118,101,115,96,32,102,97,105,108,101,100,32,105,110,32,0,79,99,116,97,118,101,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,110,117,109,98,101,114,32,111,102,32,111,99,116,97,118,101,115,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,97,108,101,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,65,115,115,101,114,116,105,111,110,32,96,115,99,97,108,101,32,60,32,109,78,117,109,83,99,97,108,101,115,80,101,114,79,99,116,97,118,101,96,32,102,97,105,108,101,100,32,105,110,32,0,83,99,97,108,101,32,109,117,115,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,110,117,109,98,101,114,32,111,102,32,115,99,97,108,101,32,112,101,114,32,111,99,116,97,118,101,0,37,109,45,37,100,45,37,89,45,37,72,45,37,77,45,37,83,0,65,115,115,101,114,116,105,111,110,32,96,119,105,100,116,104,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,105,109,97,103,101,46,99,112,112,0,87,105,100,116,104,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,104,101,105,103,104,116,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,72,101,105,103,104,116,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,115,116,101,112,32,62,61,32,119,105,100,116,104,96,32,102,97,105,108,101,100,32,105,110,32,0,83,116,101,112,32,109,117,115,116,32,98,101,32,103,114,101,97,116,101,114,32,116,104,97,110,32,111,114,32,101,113,117,97,108,32,116,104,101,32,119,105,100,116,104,0,65,115,115,101,114,116,105,111,110,32,96,99,104,97,110,110,101,108,115,32,62,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,78,117,109,98,101,114,32,111,102,32,99,104,97,110,110,101,108,115,32,99,97,110,110,111,116,32,98,101,32,122,101,114,111,0,65,115,115,101,114,116,105,111,110,32,96,109,68,97,116,97,46,103,101,116,40,41,96,32,102,97,105,108,101,100,32,105,110,32,0,68,97,116,97,32,112,111,105,110,116,101,114,32,105,115,32,78,85,76,76,0,73,110,118,97,108,105,100,32,105,109,97,103,101,32,116,121,112,101,0,49,54,78,117,108,108,65,114,114,97,121,68,101,108,101,116,101,114,73,104,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,104,49,54,78,117,108,108,65,114,114,97,121,68,101,108,101,116,101,114,73,104,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,78,83,116,51,95,95,49,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,104,69,69,0,78,83,116,51,95,95,49,50,48,95,95,115,104,97,114,101,100,95,112,116,114,95,112,111,105,110,116,101,114,73,80,104,78,83,95,49,52,100,101,102,97,117,108,116,95,100,101,108,101,116,101,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,65,115,115,101,114,116,105,111,110,32,96,109,83,116,97,114,116,84,105,109,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,106,115,97,114,116,111,111,108,107,105,116,53,47,101,109,115,99,114,105,112,116,101,110,47,97,114,116,111,111,108,107,105,116,53,47,108,105,98,47,83,82,67,47,75,80,77,47,70,114,101,97,107,77,97,116,99,104,101,114,47,102,114,97,109,101,119,111,114,107,47,116,105,109,101,114,115,46,99,112,112,0,32,108,105,110,101,32,0,58,32,0,67,108,111,99,107,32,104,97,115,32,110,111,116,32,98,101,101,110,32,115,116,97,114,116,101,100,0,65,115,115,101,114,116,105,111,110,32,96,109,83,116,111,112,84,105,109,101,32,62,61,32,48,96,32,102,97,105,108,101,100,32,105,110,32,0,67,108,111,99,107,32,104,97,115,32,110,111,116,32,98,101,101,110,32,115,116,111,112,112,101,100,0,91,37,115,93,32,91,37,115,93,32,91,37,115,93,32,58,32,37,115,58,32,37,102,32,109,115,0,32,73,78,70,79,32,32,0,118,105,115,105,111,110,58,58,83,99,111,112,101,100,84,105,109,101,114,58,58,126,83,99,111,112,101,100,84,105,109,101,114,40,41,0,74,80,69,71,77,69,77,0,37,108,100,37,99,0,66,111,103,117,115,32,109,101,115,115,97,103,101,32,99,111,100,101,32,37,100,0,83,111,114,114,121,44,32,116,104,101,114,101,32,97,114,101,32,108,101,103,97,108,32,114,101,115,116,114,105,99,116,105,111,110,115,32,111,110,32,97,114,105,116,104,109,101,116,105,99,32,99,111,100,105,110,103,0,65,76,73,71,78,95,84,89,80,69,32,105,115,32,119,114,111,110,103,44,32,112,108,101,97,115,101,32,102,105,120,0,77,65,88,95,65,76,76,79,67,95,67,72,85,78,75,32,105,115,32,119,114,111,110,103,44,32,112,108,101,97,115,101,32,102,105,120,0,66,111,103,117,115,32,98,117,102,102,101,114,32,99,111,110,116,114,111,108,32,109,111,100,101,0,73,110,118,97,108,105,100,32,99,111,109,112,111,110,101,110,116,32,73,68,32,37,100,32,105,110,32,83,79,83,0,68,67,84,32,99,111,101,102,102,105,99,105,101,110,116,32,111,117,116,32,111,102,32,114,97,110,103,101,0,73,68,67,84,32,111,117,116,112,117,116,32,98,108,111,99,107,32,115,105,122,101,32,37,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,66,111,103,117,115,32,72,117,102,102,109,97,110,32,116,97,98,108,101,32,100,101,102,105,110,105,116,105,111,110,0,66,111,103,117,115,32,105,110,112,117,116,32,99,111,108,111,114,115,112,97,99,101,0,66,111,103,117,115,32,74,80,69,71,32,99,111,108,111,114,115,112,97,99,101,0,66,111,103,117,115,32,109,97,114,107,101,114,32,108,101,110,103,116,104,0,87,114,111,110,103,32,74,80,69,71,32,108,105,98,114,97,114,121,32,118,101,114,115,105,111,110,58,32,108,105,98,114,97,114,121,32,105,115,32,37,100,44,32,99,97,108,108,101,114,32,101,120,112,101,99,116,115,32,37,100,0,83,97,109,112,108,105,110,103,32,102,97,99,116,111,114,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,105,110,116,101,114,108,101,97,118,101,100,32,115,99,97,110,0,73,110,118,97,108,105,100,32,109,101,109,111,114,121,32,112,111,111,108,32,99,111,100,101,32,37,100,0,85,110,115,117,112,112,111,114,116,101,100,32,74,80,69,71,32,100,97,116,97,32,112,114,101,99,105,115,105,111,110,32,37,100,0,73,110,118,97,108,105,100,32,112,114,111,103,114,101,115,115,105,118,101,32,112,97,114,97,109,101,116,101,114,115,32,83,115,61,37,100,32,83,101,61,37,100,32,65,104,61,37,100,32,65,108,61,37,100,0,73,110,118,97,108,105,100,32,112,114,111,103,114,101,115,115,105,118,101,32,112,97,114,97,109,101,116,101,114,115,32,97,116,32,115,99,97,110,32,115,99,114,105,112,116,32,101,110,116,114,121,32,37,100,0,66,111,103,117,115,32,115,97,109,112,108,105,110,103,32,102,97,99,116,111,114,115,0,73,110,118,97,108,105,100,32,115,99,97,110,32,115,99,114,105,112,116,32,97,116,32,101,110,116,114,121,32,37,100,0,73,109,112,114,111,112,101,114,32,99,97,108,108,32,116,111,32,74,80,69,71,32,108,105,98,114,97,114,121,32,105,110,32,115,116,97,116,101,32,37,100,0,74,80,69,71,32,112,97,114,97,109,101,116,101,114,32,115,116,114,117,99,116,32,109,105,115,109,97,116,99,104,58,32,108,105,98,114,97,114,121,32,116,104,105,110,107,115,32,115,105,122,101,32,105,115,32,37,117,44,32,99,97,108,108,101,114,32,101,120,112,101,99,116,115,32,37,117,0,66,111,103,117,115,32,118,105,114,116,117,97,108,32,97,114,114,97,121,32,97,99,99,101,115,115,0,66,117,102,102,101,114,32,112,97,115,115,101,100,32,116,111,32,74,80,69,71,32,108,105,98,114,97,114,121,32,105,115,32,116,111,111,32,115,109,97,108,108,0,83,117,115,112,101,110,115,105,111,110,32,110,111,116,32,97,108,108,111,119,101,100,32,104,101,114,101,0,67,67,73,82,54,48,49,32,115,97,109,112,108,105,110,103,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,84,111,111,32,109,97,110,121,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,58,32,37,100,44,32,109,97,120,32,37,100,0,85,110,115,117,112,112,111,114,116,101,100,32,99,111,108,111,114,32,99,111,110,118,101,114,115,105,111,110,32,114,101,113,117,101,115,116,0,66,111,103,117,115,32,68,65,67,32,105,110,100,101,120,32,37,100,0,66,111,103,117,115,32,68,65,67,32,118,97,108,117,101,32,48,120,37,120,0,66,111,103,117,115,32,68,72,84,32,105,110,100,101,120,32,37,100,0,66,111,103,117,115,32,68,81,84,32,105,110,100,101,120,32,37,100,0,69,109,112,116,121,32,74,80,69,71,32,105,109,97,103,101,32,40,68,78,76,32,110,111,116,32,115,117,112,112,111,114,116,101,100,41,0,82,101,97,100,32,102,114,111,109,32,69,77,83,32,102,97,105,108,101,100,0,87,114,105,116,101,32,116,111,32,69,77,83,32,102,97,105,108,101,100,0,68,105,100,110,39,116,32,101,120,112,101,99,116,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,115,99,97,110,0,73,110,112,117,116,32,102,105,108,101,32,114,101,97,100,32,101,114,114,111,114,0,79,117,116,112,117,116,32,102,105,108,101,32,119,114,105,116,101,32,101,114,114,111,114,32,45,45,45,32,111,117,116,32,111,102,32,100,105,115,107,32,115,112,97,99,101,63,0,70,114,97,99,116,105,111,110,97,108,32,115,97,109,112,108,105,110,103,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,72,117,102,102,109,97,110,32,99,111,100,101,32,115,105,122,101,32,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,77,105,115,115,105,110,103,32,72,117,102,102,109,97,110,32,99,111,100,101,32,116,97,98,108,101,32,101,110,116,114,121,0,77,97,120,105,109,117,109,32,115,117,112,112,111,114,116,101,100,32,105,109,97,103,101,32,100,105,109,101,110,115,105,111,110,32,105,115,32,37,117,32,112,105,120,101,108,115,0,69,109,112,116,121,32,105,110,112,117,116,32,102,105,108,101,0,80,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,105,110,112,117,116,32,102,105,108,101,0,67,97,110,110,111,116,32,116,114,97,110,115,99,111,100,101,32,100,117,101,32,116,111,32,109,117,108,116,105,112,108,101,32,117,115,101,32,111,102,32,113,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,32,37,100,0,83,99,97,110,32,115,99,114,105,112,116,32,100,111,101,115,32,110,111,116,32,116,114,97,110,115,109,105,116,32,97,108,108,32,100,97,116,97,0,73,110,118,97,108,105,100,32,99,111,108,111,114,32,113,117,97,110,116,105,122,97,116,105,111,110,32,109,111,100,101,32,99,104,97,110,103,101,0,78,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,0,82,101,113,117,101,115,116,101,100,32,102,101,97,116,117,114,101,32,119,97,115,32,111,109,105,116,116,101,100,32,97,116,32,99,111,109,112,105,108,101,32,116,105,109,101,0,66,97,99,107,105,110,103,32,115,116,111,114,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,72,117,102,102,109,97,110,32,116,97,98,108,101,32,48,120,37,48,50,120,32,119,97,115,32,110,111,116,32,100,101,102,105,110,101,100,0,74,80,69,71,32,100,97,116,97,115,116,114,101,97,109,32,99,111,110,116,97,105,110,115,32,110,111,32,105,109,97,103,101,0,81,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,32,48,120,37,48,50,120,32,119,97,115,32,110,111,116,32,100,101,102,105,110,101,100,0,78,111,116,32,97,32,74,80,69,71,32,102,105,108,101,58,32,115,116,97,114,116,115,32,119,105,116,104,32,48,120,37,48,50,120,32,48,120,37,48,50,120,0,73,110,115,117,102,102,105,99,105,101,110,116,32,109,101,109,111,114,121,32,40,99,97,115,101,32,37,100,41,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,109,111,114,101,32,116,104,97,110,32,37,100,32,99,111,108,111,114,32,99,111,109,112,111,110,101,110,116,115,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,116,111,32,102,101,119,101,114,32,116,104,97,110,32,37,100,32,99,111,108,111,114,115,0,67,97,110,110,111,116,32,113,117,97,110,116,105,122,101,32,116,111,32,109,111,114,101,32,116,104,97,110,32,37,100,32,99,111,108,111,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,116,119,111,32,83,79,70,32,109,97,114,107,101,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,109,105,115,115,105,110,103,32,83,79,83,32,109,97,114,107,101,114,0,85,110,115,117,112,112,111,114,116,101,100,32,74,80,69,71,32,112,114,111,99,101,115,115,58,32,83,79,70,32,116,121,112,101,32,48,120,37,48,50,120,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,116,119,111,32,83,79,73,32,109,97,114,107,101,114,115,0,73,110,118,97,108,105,100,32,74,80,69,71,32,102,105,108,101,32,115,116,114,117,99,116,117,114,101,58,32,83,79,83,32,98,101,102,111,114,101,32,83,79,70,0,70,97,105,108,101,100,32,116,111,32,99,114,101,97,116,101,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,82,101,97,100,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,0,83,101,101,107,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,0,87,114,105,116,101,32,102,97,105,108,101,100,32,111,110,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,45,45,45,32,111,117,116,32,111,102,32,100,105,115,107,32,115,112,97,99,101,63,0,65,112,112,108,105,99,97,116,105,111,110,32,116,114,97,110,115,102,101,114,114,101,100,32,116,111,111,32,102,101,119,32,115,99,97,110,108,105,110,101,115,0,85,110,115,117,112,112,111,114,116,101,100,32,109,97,114,107,101,114,32,116,121,112,101,32,48,120,37,48,50,120,0,86,105,114,116,117,97,108,32,97,114,114,97,121,32,99,111,110,116,114,111,108,108,101,114,32,109,101,115,115,101,100,32,117,112,0,73,109,97,103,101,32,116,111,111,32,119,105,100,101,32,102,111,114,32,116,104,105,115,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,0,82,101,97,100,32,102,114,111,109,32,88,77,83,32,102,97,105,108,101,100,0,87,114,105,116,101,32,116,111,32,88,77,83,32,102,97,105,108,101,100,0,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,56,44,32,84,104,111,109,97,115,32,71,46,32,76,97,110,101,0,54,98,32,32,50,55,45,77,97,114,45,49,57,57,56,0,67,97,117,116,105,111,110,58,32,113,117,97,110,116,105,122,97,116,105,111,110,32,116,97,98,108,101,115,32,97,114,101,32,116,111,111,32,99,111,97,114,115,101,32,102,111,114,32,98,97,115,101,108,105,110,101,32,74,80,69,71,0,65,100,111,98,101,32,65,80,80,49,52,32,109,97,114,107,101,114,58,32,118,101,114,115,105,111,110,32,37,100,44,32,102,108,97,103,115,32,48,120,37,48,52,120,32,48,120,37,48,52,120,44,32,116,114,97,110,115,102,111,114,109,32,37,100,0,85,110,107,110,111,119,110,32,65,80,80,48,32,109,97,114,107,101,114,32,40,110,111,116,32,74,70,73,70,41,44,32,108,101,110,103,116,104,32,37,117,0,85,110,107,110,111,119,110,32,65,80,80,49,52,32,109,97,114,107,101,114,32,40,110,111,116,32,65,100,111,98,101,41,44,32,108,101,110,103,116,104,32,37,117,0,68,101,102,105,110,101,32,65,114,105,116,104,109,101,116,105,99,32,84,97,98,108,101,32,48,120,37,48,50,120,58,32,48,120,37,48,50,120,0,68,101,102,105,110,101,32,72,117,102,102,109,97,110,32,84,97,98,108,101,32,48,120,37,48,50,120,0,68,101,102,105,110,101,32,81,117,97,110,116,105,122,97,116,105,111,110,32,84,97,98,108,101,32,37,100,32,32,112,114,101,99,105,115,105,111,110,32,37,100,0,68,101,102,105,110,101,32,82,101,115,116,97,114,116,32,73,110,116,101,114,118,97,108,32,37,117,0,70,114,101,101,100,32,69,77,83,32,104,97,110,100,108,101,32,37,117,0,79,98,116,97,105,110,101,100,32,69,77,83,32,104,97,110,100,108,101,32,37,117,0,69,110,100,32,79,102,32,73,109,97,103,101,0,32,32,32,32,32,32,32,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,32,37,51,100,0,74,70,73,70,32,65,80,80,48,32,109,97,114,107,101,114,58,32,118,101,114,115,105,111,110,32,37,100,46,37,48,50,100,44,32,100,101,110,115,105,116,121,32,37,100,120,37,100,32,32,37,100,0,87,97,114,110,105,110,103,58,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,100,97,116,97,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,116,121,112,101,32,48,120,37,48,50,120,44,32,108,101,110,103,116,104,32,37,117,0,32,32,32,32,119,105,116,104,32,37,100,32,120,32,37,100,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,0,77,105,115,99,101,108,108,97,110,101,111,117,115,32,109,97,114,107,101,114,32,48,120,37,48,50,120,44,32,108,101,110,103,116,104,32,37,117,0,85,110,101,120,112,101,99,116,101,100,32,109,97,114,107,101,114,32,48,120,37,48,50,120,0,32,32,32,32,32,32,32,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,32,37,52,117,0,81,117,97,110,116,105,122,105,110,103,32,116,111,32,37,100,32,61,32,37,100,42,37,100,42,37,100,32,99,111,108,111,114,115,0,81,117,97,110,116,105,122,105,110,103,32,116,111,32,37,100,32,99,111,108,111,114,115,0,83,101,108,101,99,116,101,100,32,37,100,32,99,111,108,111,114,115,32,102,111,114,32,113,117,97,110,116,105,122,97,116,105,111,110,0,65,116,32,109,97,114,107,101,114,32,48,120,37,48,50,120,44,32,114,101,99,111,118,101,114,121,32,97,99,116,105,111,110,32,37,100,0,82,83,84,37,100,0,83,109,111,111,116,104,105,110,103,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,119,105,116,104,32,110,111,110,115,116,97,110,100,97,114,100,32,115,97,109,112,108,105,110,103,32,114,97,116,105,111,115,0,83,116,97,114,116,32,79,102,32,70,114,97,109,101,32,48,120,37,48,50,120,58,32,119,105,100,116,104,61,37,117,44,32,104,101,105,103,104,116,61,37,117,44,32,99,111,109,112,111,110,101,110,116,115,61,37,100,0,32,32,32,32,67,111,109,112,111,110,101,110,116,32,37,100,58,32,37,100,104,120,37,100,118,32,113,61,37,100,0,83,116,97,114,116,32,111,102,32,73,109,97,103,101,0,83,116,97,114,116,32,79,102,32,83,99,97,110,58,32,37,100,32,99,111,109,112,111,110,101,110,116,115,0,32,32,32,32,67,111,109,112,111,110,101,110,116,32,37,100,58,32,100,99,61,37,100,32,97,99,61,37,100,0,32,32,83,115,61,37,100,44,32,83,101,61,37,100,44,32,65,104,61,37,100,44,32,65,108,61,37,100,0,67,108,111,115,101,100,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,79,112,101,110,101,100,32,116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,37,115,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,74,80,69,71,45,99,111,109,112,114,101,115,115,101,100,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,112,97,108,101,116,116,101,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,74,70,73,70,32,101,120,116,101,110,115,105,111,110,32,109,97,114,107,101,114,58,32,82,71,66,32,116,104,117,109,98,110,97,105,108,32,105,109,97,103,101,44,32,108,101,110,103,116,104,32,37,117,0,85,110,114,101,99,111,103,110,105,122,101,100,32,99,111,109,112,111,110,101,110,116,32,73,68,115,32,37,100,32,37,100,32,37,100,44,32,97,115,115,117,109,105,110,103,32,89,67,98,67,114,0,70,114,101,101,100,32,88,77,83,32,104,97,110,100,108,101,32,37,117,0,79,98,116,97,105,110,101,100,32,88,77,83,32,104,97,110,100,108,101,32,37,117,0,85,110,107,110,111,119,110,32,65,100,111,98,101,32,99,111,108,111,114,32,116,114,97,110,115,102,111,114,109,32,99,111,100,101,32,37,100,0,73,110,99,111,110,115,105,115,116,101,110,116,32,112,114,111,103,114,101,115,115,105,111,110,32,115,101,113,117,101,110,99,101,32,102,111,114,32,99,111,109,112,111,110,101,110,116,32,37,100,32,99,111,101,102,102,105,99,105,101,110,116,32,37,100,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,37,117,32,101,120,116,114,97,110,101,111,117,115,32,98,121,116,101,115,32,98,101,102,111,114,101,32,109,97,114,107,101,114,32,48,120,37,48,50,120,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,112,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,100,97,116,97,32,115,101,103,109,101,110,116,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,98,97,100,32,72,117,102,102,109,97,110,32,99,111,100,101,0,87,97,114,110,105,110,103,58,32,117,110,107,110,111,119,110,32,74,70,73,70,32,114,101,118,105,115,105,111,110,32,110,117,109,98,101,114,32,37,100,46,37,48,50,100,0,80,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,74,80,69,71,32,102,105,108,101,0,67,111,114,114,117,112,116,32,74,80,69,71,32,100,97,116,97,58,32,102,111,117,110,100,32,109,97,114,107,101,114,32,48,120,37,48,50,120,32,105,110,115,116,101,97,100,32,111,102,32,82,83,84,37,100,0,73,110,118,97,108,105,100,32,83,79,83,32,112,97,114,97,109,101,116,101,114,115,32,102,111,114,32,115,101,113,117,101,110,116,105,97,108,32,74,80,69,71,0,65,112,112,108,105,99,97,116,105,111,110,32,116,114,97,110,115,102,101,114,114,101,100,32,116,111,111,32,109,97,110,121,32,115,99,97,110,108,105,110,101,115,0,0,192,48,240,12,204,60,252,3,195,51,243,15,207,63,255,128,64,176,112,140,76,188,124,131,67,179,115,143,79,191,127,32,224,16,208,44,236,28,220,35,227,19,211,47,239,31,223,160,96,144,80,172,108,156,92,163,99,147,83,175,111,159,95,8,200,56,248,4,196,52,244,11,203,59,251,7,199,55,247,136,72,184,120,132,68,180,116,139,75,187,123,135,71,183,119,40,232,24,216,36,228,20,212,43,235,27,219,39,231,23,215,168,104,152,88,164,100,148,84,171,107,155,91,167,103,151,87,2,194,50,242,14,206,62,254,1,193,49,241,13,205,61,253,130,66,178,114,142,78,190,126,129,65,177,113,141,77,189,125,34,226,18,210,46,238,30,222,33,225,17,209,45,237,29,221,162,98,146,82,174,110,158,94,161,97,145,81,173,109,157,93,10,202,58,250,6,198,54,246,9,201,57,249,5,197,53,245,138,74,186,122,134,70,182,118,137,73,185,121,133,69,181,117,42,234,26,218,38,230,22,214,41,233,25,217,37,229,21,213,170,106,154,90,166,102,150,86,169,105,153,89,165,101,149,85,37,115,10,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,48,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,105,100,58,32,48,44,32,101,114,114,111,114,58,32,45,49,44,32,102,111,117,110,100,58,32,48,44,32,112,111,115,101,58,32,91,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,102,111,117,110,100,34,93,32,61,32,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,51,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,52,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,53,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,54,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,55,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,56,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,57,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,49,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,48,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,105,100,58,32,48,44,32,101,114,114,111,114,58,32,45,49,44,32,102,111,117,110,100,58,32,48,44,32,112,111,115,101,58,32,91,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,44,32,48,44,48,44,48,44,48,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,78,70,84,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,34,93,32,61,32,45,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,102,111,117,110,100,34,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,48,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,50,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,51,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,52,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,53,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,54,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,55,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,56,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,57,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,48,93,32,61,32,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,101,34,93,91,49,49,93,32,61,32,48,59,32,125,0,82,101,97,100,105,110,103,32,37,115,46,102,115,101,116,51,10,0,102,115,101,116,51,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,75,80,77,32,100,97,116,97,32,102,114,111,109,32,37,115,46,102,115,101,116,51,10,0,32,32,65,115,115,105,103,110,101,100,32,112,97,103,101,32,110,111,46,32,37,100,46,10,0,69,114,114,111,114,58,32,107,112,109,67,104,97,110,103,101,80,97,103,101,78,111,79,102,82,101,102,68,97,116,97,83,101,116,10,0,69,114,114,111,114,58,32,107,112,109,77,101,114,103,101,82,101,102,68,97,116,97,83,101,116,10,0,32,32,68,111,110,101,46,10,0,82,101,97,100,105,110,103,32,37,115,46,102,115,101,116,10,0,102,115,101,116,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,100,97,116,97,32,102,114,111,109,32,37,115,46,102,115,101,116,10,0,69,114,114,111,114,58,32,107,112,109,83,101,116,82,101,102,68,97,116,97,83,101,116,10,0,76,111,97,100,105,110,103,32,111,102,32,78,70,84,32,100,97,116,97,32,99,111,109,112,108,101,116,101,46,10,0,108,111,97,100,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,32,37,115,32,102,111,114,32,99,97,109,101,114,97,46,10,0,42,42,42,32,67,97,109,101,114,97,32,80,97,114,97,109,101,116,101,114,32,114,101,115,105,122,101,100,32,102,114,111,109,32,37,100,44,32,37,100,46,32,42,42,42,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,114,97,109,76,84,67,114,101,97,116,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,99,114,101,97,116,105,110,103,32,51,68,32,104,97,110,100,108,101,0,108,111,97,100,77,97,114,107,101,114,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,37,115,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,97,114,107,101,114,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,78,70,84,32,109,97,114,107,101,114,46,10,0,99,111,110,102,105,103,32,100,97,116,97,32,108,111,97,100,32,101,114,114,111,114,32,33,33,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,117,108,116,105,109,97,114,107,101,114,46,10,0,80,97,116,116,101,114,110,32,100,101,116,101,99,116,105,111,110,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,80,97,116,116,101,114,110,32,114,97,116,105,111,32,115,105,122,101,32,115,101,116,32,116,111,32,37,102,46,10,0,76,97,98,101,108,105,110,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,111,110,46,0,111,102,102,46,0,68,101,98,117,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,10,0,73,109,97,103,101,32,112,114,111,99,46,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,118,105,115,105,98,108,101,39,93,32,61,32,36,48,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,73,100,39,93,32,61,32,36,49,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,84,121,112,101,39,93,32,61,32,36,50,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,119,105,100,116,104,39,93,32,61,32,36,51,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,49,50,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,112,111,115,58,32,91,48,44,48,93,44,32,108,105,110,101,58,32,91,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,93,44,32,118,101,114,116,101,120,58,32,91,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,97,114,101,97,34,93,32,61,32,36,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,80,97,116,116,34,93,32,61,32,36,50,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,77,97,116,114,105,120,34,93,32,61,32,36,51,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,34,93,32,61,32,36,52,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,80,97,116,116,34,93,32,61,32,36,53,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,77,97,116,114,105,120,34,93,32,61,32,36,54,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,34,93,32,61,32,36,55,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,80,97,116,116,34,93,32,61,32,36,56,59,32,109,97,114,107],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+32032);allocate([101,114,73,110,102,111,91,34,99,102,77,97,116,114,105,120,34,93,32,61,32,36,57,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,48,93,32,61,32,36,49,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,49,93,32,61,32,36,49,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,67,111,114,114,101,99,116,101,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,115,101,116,117,112,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,116,116,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,65,108,108,111,99,97,116,101,100,32,118,105,100,101,111,70,114,97,109,101,83,105,122,101,32,37,100,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,102,114,97,109,101,77,97,108,108,111,99,32,61,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,112,111,105,110,116,101,114,34,93,32,61,32,36,49,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,115,105,122,101,34,93,32,61,32,36,50,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,99,97,109,101,114,97,34,93,32,61,32,36,51,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,116,114,97,110,115,102,111,114,109,34,93,32,61,32,36,52,59,32,125,0,115,101,116,117,112,0,116,101,97,114,100,111,119,110,0,115,101,116,117,112,65,82,50,0,95,97,100,100,77,97,114,107,101,114,0,95,97,100,100,77,117,108,116,105,77,97,114,107,101,114,0,95,97,100,100,78,70,84,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,67,111,117,110,116,0,95,108,111,97,100,67,97,109,101,114,97,0,115,101,116,77,97,114,107,101,114,73,110,102,111,68,105,114,0,115,101,116,77,97,114,107,101,114,73,110,102,111,86,101,114,116,101,120,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,67,111,110,116,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,82,111,98,117,115,116,0,100,101,116,101,99,116,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,78,117,109,0,100,101,116,101,99,116,78,70,84,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,69,97,99,104,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,0,103,101,116,78,70,84,77,97,114,107,101,114,0,115,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,80,114,111,99,101,115,115,105,110,103,73,109,97,103,101,0,115,101,116,76,111,103,76,101,118,101,108,0,103,101,116,76,111,103,76,101,118,101,108,0,115,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,115,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,115,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,103,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,115,101,116,84,104,114,101,115,104,111,108,100,0,103,101,116,84,104,114,101,115,104,111,108,100,0,115,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,103,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,115,101,116,80,97,116,116,82,97,116,105,111,0,103,101,116,80,97,116,116,82,97,116,105,111,0,115,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,103,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,115,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,103,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,115,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,103,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,69,82,82,79,82,95,65,82,67,79,78,84,82,79,76,76,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,85,76,84,73,77,65,82,75,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,65,82,75,69,82,95,73,78,68,69,88,95,79,85,84,95,79,70,95,66,79,85,78,68,83,0,65,82,95,68,69,66,85,71,95,68,73,83,65,66,76,69,0,65,82,95,68,69,66,85,71,95,69,78,65,66,76,69,0,65,82,95,68,69,70,65,85,76,84,95,68,69,66,85,71,95,77,79,68,69,0,65,82,95,76,65,66,69,76,73,78,71,95,87,72,73,84,69,95,82,69,71,73,79,78,0,65,82,95,76,65,66,69,76,73,78,71,95,66,76,65,67,75,95,82,69,71,73,79,78,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,77,79,68,69,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,82,65,77,69,95,73,77,65,71,69,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,73,69,76,68,95,73,77,65,71,69,0,65,82,95,68,69,70,65,85,76,84,95,73,77,65,71,69,95,80,82,79,67,95,77,79,68,69,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,68,69,84,69,67,84,73,79,78,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,68,69,70,65,85,76,84,95,80,65,84,84,69,82,78,95,68,69,84,69,67,84,73,79,78,95,77,79,68,69,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,78,79,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,95,86,50,0,65,82,95,68,69,70,65,85,76,84,95,77,65,82,75,69,82,95,69,88,84,82,65,67,84,73,79,78,95,77,79,68,69,0,65,82,95,77,65,88,95,76,79,79,80,95,67,79,85,78,84,0,65,82,95,76,79,79,80,95,66,82,69,65,75,95,84,72,82,69,83,72,0,65,82,95,76,79,71,95,76,69,86,69,76,95,68,69,66,85,71,0,65,82,95,76,79,71,95,76,69,86,69,76,95,73,78,70,79,0,65,82,95,76,79,71,95,76,69,86,69,76,95,87,65,82,78,0,65,82,95,76,79,71,95,76,69,86,69,76,95,69,82,82,79,82,0,65,82,95,76,79,71,95,76,69,86,69,76,95,82,69,76,95,73,78,70,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,72,65,77,77,73,78,71,54,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,80,65,82,73,84,89,54,53,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,57,95,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,53,95,53,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,77,65,78,85,65,76,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,77,69,68,73,65,78,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,79,84,83,85,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,65,68,65,80,84,73,86,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,78,79,78,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,65,84,84,69,82,78,95,69,88,84,82,65,67,84,73,79,78,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,71,69,78,69,82,73,67,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,84,82,65,83,84,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,78,79,84,95,70,79,85,78,68,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,69,68,67,95,70,65,73,76,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,70,73,68,69,78,67,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,95,77,85,76,84,73,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,72,69,85,82,73,83,84,73,67,95,84,82,79,85,66,76,69,83,79,77,69,95,77,65,84,82,73,88,95,67,79,68,69,83,0,118,105,105,102,0,118,105,105,105,0,100,105,105,0,118,105,105,100,0,105,105,0,118,105,105,0,105,105,105,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,105,105,105,105,0,105,105,105,105,105,0,118,111,105,100,0,98,111,111,108,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,115,116,100,58,58,119,115,116,114,105,110,103,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,109,0,102,0,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88,0,114,119,97,0,119,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,116,109,112,0,47,116,109,112,47,116,37,120,45,37,120],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42272);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,57,95,95,115,104,97,114,101,100,95,119,101,97,107,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52334);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;var _fabsf=Math_abs;Module["_i64Add"]=_i64Add;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _pthread_mutex_lock(){}function _free(){}Module["_free"]=_free;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i>2]=length;for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;i>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var _llvm_pow_f32=Math_pow;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___tm_current=allocate(44,"i8",ALLOC_STATIC);var ___tm_timezone=allocate(intArrayFromString("GMT"),"i8",ALLOC_STATIC);var _tzname=allocate(8,"i32*",ALLOC_STATIC);var _daylight=allocate(1,"i32*",ALLOC_STATIC);var _timezone=allocate(1,"i32*",ALLOC_STATIC);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[_timezone>>2]=-(new Date).getTimezoneOffset()*60;var winter=new Date(2e3,0,1);var summer=new Date(2e3,6,1);HEAP32[_daylight>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[_tzname+4>>2]=summerNamePtr}else{HEAP32[_tzname>>2]=summerNamePtr;HEAP32[_tzname+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=(new Date(2e3,6,1)).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=date.getTimezoneOffset()==Math.min(winterOffset,summerOffset)|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[_tzname+(dst?Runtime.QUANTUM_SIZE:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_bitshift64Lshr"]=_bitshift64Lshr;var _emscripten_prep_setjmp=true;var _emscripten_get_longjmp_result=true;var _emscripten_setjmp=true;function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}Module["_testSetjmp"]=_testSetjmp;function _longjmp(env,value){asm["setThrew"](env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}var _environ=allocate(1,"i32*",ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>0&&date.tm_hour<13){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}var _emscripten_asm_const_int=true;function _pthread_mutex_unlock(){}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_memmove"]=_memmove;function ___cxa_allocate_exception(size){return _malloc(size)}var _emscripten_preinvoke=true;var _BItoD=true;function _pthread_cond_wait(){return 0}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function ___cxa_guard_release(){}var _cosf=Math_cos;function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}var _emscripten_cleanup_setjmp=true;function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":(function(){return undefined}),"toWireType":(function(destructors,o){return undefined})})}Module["_memset"]=_memset;var _BDtoILow=true;var _logf=Math_log;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var _fabs=Math_abs;var _sqrt=Math_sqrt;var _sqrtf=Math_sqrt;function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}var _atan2f=Math_atan2;var _sin=Math_sin;var _ceilf=Math_ceil;var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value}}function requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall265(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC);embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=f+4|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<1)+2)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+2|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ed(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r+1>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function fd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function gd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l*3|0)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+3|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+6|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function hd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+10+(p<<5&224)+(q>>>3&28)+(q<<3&248)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function id(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function jd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){q=d[s>>0]|0;do if(((q&240)+24+(q<<4&240)+((d[s+1>>0]|0)&240)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function kd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+12+(p<<5&224)+(q>>>3&24)+(q<<2&248)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ld(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+2>>0]|0)+(d[s+1>>0]|0)+(d[s+3>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function md(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+l|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+2|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function nd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t+1>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function od(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function pd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;m=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;l=(c[k+4>>2]|0)+m|0;z=1;e=e+m|0;o=o+(m<<1)|0;j=j+m|0;m=0;b:while(1){if(y){u=1;t=e;s=m;while(1){do if((d[t>>0]|0)>(d[j>>0]|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+1|0;j=j+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}z=z+1|0;if((z|0)>=(B|0)){p=m;D=52;break a}else{l=l+2|0;e=e+2|0;o=o+4|0;j=j+2|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((p|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(p|0)){e=e+1|0;n=n+4|0}else break}}j=k+8|0;l=m+-1|0;c[j>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[j>>2]|0))}if((p|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(p|0))}if((c[j>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[j>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function qd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f*3|0)+12|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f*6|0)+6)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+6|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function rd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+10+(f<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function sd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function td(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){o=d[q>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[q+1>>0]|0)&240)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ud(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+12+(f<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function vd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+2>>0]|0)+(d[q+1>>0]|0)+(d[q+3>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function wd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=f+4|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<1)+2)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+2|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function xd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r+1>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function yd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Me(3,3904,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0} -function ec(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function fc(){return i|0}function gc(a){a=a|0;i=a}function hc(a,b){a=a|0;b=b|0;i=a;j=b}function ic(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function jc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function kc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function lc(a){a=a|0;D=a}function mc(){return D|0}function nc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e*3|0)+12|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e*6|0)+6)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+6|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function oc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+10+(a<<5&224)+(e>>>3&28)+(e<<3&248)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function pc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function qc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){e=d[g>>0]|0;do if(((e&240)+24+(e<<4&240)+((d[g+1>>0]|0)&240)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function rc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+12+(a<<5&224)+(e>>>3&24)+(e<<2&248)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function sc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function tc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=e+4|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<1)+2)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+2|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function uc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function vc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function wc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k*3|0)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+3|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+6|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function xc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+10+(n<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function yc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function zc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){o=d[g>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[g+1>>0]|0)&240)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Ac(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+12+(n<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Bc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Cc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+1|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+2|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Dc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}a=b[r+-2>>1]|0;if(a<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+((a<<16>>16)+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Ec(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Fc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;n=g+k|0;k=0;b:while(1){if(w){s=1;r=l;q=k;while(1){do if((d[r>>0]|0)>(d[n>>0]|0)){b[a>>1]=0;k=q}else{k=b[a+(v<<1)>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}g=b[a+(t<<1)>>1]|0;o=g<<16>>16;k=b[a+(u<<1)>>1]|0;p=k<<16>>16;l=k<<16>>16>0;if(g<<16>>16<=0){if(l){b[a>>1]=k;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[a>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(l){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[a>>1]=o;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}else{b[a>>1]=k;if((k|0)<(o|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16<=0){b[a>>1]=g;k=o*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[a>>1]=k;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}else{b[a>>1]=o;if((o|0)<(k|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=r+1|0;n=n+1|0;a=a+2|0;if((s|0)>=(y|0))break;else{r=l;q=k}}}x=x+1|0;if((x|0)>=(z|0)){o=k;B=52;break a}else{l=l+2|0;a=a+4|0;n=n+2|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((o|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(o|0)){a=a+1|0;m=m+4|0}else break}}g=j+8|0;k=l+-1|0;c[g>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[g>>2]|0))}if((o|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(o|0))}if((c[g>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[g>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Gc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e*3|0)+12|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e*6|0)+6)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+6|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Hc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+10+(a<<5&224)+(e>>>3&28)+(e<<3&248)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Ic(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0} -function Jc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){e=d[g>>0]|0;do if(((e&240)+24+(e<<4&240)+((d[g+1>>0]|0)&240)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Kc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+12+(a<<5&224)+(e>>>3&24)+(e<<2&248)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Lc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Me(3,3904,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){ek(f|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Mc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=e+4|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<1)+2)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+2|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Nc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Oc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Me(3,3904,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Pc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k*3|0)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+3|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+6|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Qc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+10+(n<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Rc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Sc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){o=d[g>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[g+1>>0]|0)&240)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Tc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+12+(n<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Uc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){ek(a|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Vc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+1|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+2|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Wc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}a=b[r+-2>>1]|0;if(a<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+((a<<16>>16)+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Xc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Me(3,3904,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Yc(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;n=g+k|0;k=0;b:while(1){if(w){s=1;r=l;q=k;while(1){do if((d[r>>0]|0)>(d[n>>0]|0)){k=b[a+(v<<1)>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}g=b[a+(t<<1)>>1]|0;o=g<<16>>16;k=b[a+(u<<1)>>1]|0;p=k<<16>>16;l=k<<16>>16>0;if(g<<16>>16<=0){if(l){b[a>>1]=k;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[a>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(l){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[a>>1]=o;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}else{b[a>>1]=k;if((k|0)<(o|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16<=0){b[a>>1]=g;k=o*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[a>>1]=k;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}else{b[a>>1]=o;if((o|0)<(k|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[a>>1]=0;k=q}while(0);s=s+1|0;l=r+1|0;n=n+1|0;a=a+2|0;if((s|0)>=(y|0))break;else{r=l;q=k}}}x=x+1|0;if((x|0)>=(z|0)){o=k;B=52;break a}else{l=l+2|0;a=a+4|0;n=n+2|0}}Me(3,3904,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((o|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(o|0)){a=a+1|0;m=m+4|0}else break}}g=j+8|0;k=l+-1|0;c[g>>2]=k;if(k){ek(n|0,0,k<<2|0)|0;ek(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[g>>2]|0))}if((o|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(o|0))}if((c[g>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[g>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Zc(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f*3|0)+12|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f*6|0)+6)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+6|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function _c(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+10+(f<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function $c(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ad(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){o=d[q>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[q+1>>0]|0)&240)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function bd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+12+(f<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function cd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+2>>0]|0)+(d[q+1>>0]|0)+(d[q+3>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Me(3,3904,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){ek(g|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0} -function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=_j(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=_j(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)th(a,b)}}else th(a,b);return}function th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+4|0;a:do if(b){m=Kh(b<<2)|0;d=c[a>>2]|0;c[a>>2]=m;if(d)Lh(d);c[e>>2]=b;if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d)Lh(d);c[e>>2]=0}while(0);return}function uh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;h=g+16|0;f=g+4|0;j=g;d=c[d>>2]|0;e=c[d>>2]|0;c[j>>2]=d;c[h>>2]=c[j>>2];vh(f,b,h);d=c[f>>2]|0;c[f>>2]=0;if(d){if(a[f+8>>0]|0)Fg(d+264|0);Lh(d)}i=g;return e|0}function vh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[e>>2]|0;l=c[d+4>>2]|0;e=c[o+4>>2]|0;m=l+-1|0;n=(m&l|0)==0;if(n)k=m&e;else k=(e>>>0)%(l>>>0)|0;g=(c[d>>2]|0)+(k<<2)|0;f=c[g>>2]|0;while(1){e=c[f>>2]|0;if((e|0)==(o|0)){j=f;break}else f=e}i=d+8|0;if((j|0)!=(i|0)){e=c[j+4>>2]|0;if(n)e=e&m;else e=(e>>>0)%(l>>>0)|0;if((e|0)==(k|0))g=o;else h=12}else h=12;do if((h|0)==12){e=c[o>>2]|0;if(e){e=c[e+4>>2]|0;if(n)e=e&m;else e=(e>>>0)%(l>>>0)|0;if((e|0)==(k|0)){g=o;break}}c[g>>2]=0;g=o}while(0);f=c[g>>2]|0;e=f;if(f){f=c[f+4>>2]|0;if(n)f=f&m;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(k|0)){c[(c[d>>2]|0)+(f<<2)>>2]=j;e=c[o>>2]|0}}c[j>>2]=e;c[g>>2]=0;d=d+12|0;c[d>>2]=(c[d>>2]|0)+-1;c[b>>2]=o;c[b+4>>2]=i;a[b+8>>0]=1;return}function wh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Kh(408)|0;c[e+8>>2]=c[d>>2];ek(e+16|0,0,392)|0;h[e+248>>3]=.0001;h[e+256>>3]=1.0e3;d=e+264|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function xh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;yh(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function yh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=_j(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=_j(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)zh(a,b)}}else zh(a,b);return}function zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+4|0;a:do if(b){m=Kh(b<<2)|0;d=c[a>>2]|0;c[a>>2]=m;if(d)Lh(d);c[e>>2]=b;if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d)Lh(d);c[e>>2]=0}while(0);return}function Ah(a){a=a|0;return Aj(c[a+4>>2]|0)|0}function Bh(a){a=a|0;Ka(624,10917);Ya(632,10922,1,1,0);Ga(640,10927,1,-128,127);Ga(656,10932,1,-128,127);Ga(648,10944,1,0,255);Ga(664,10958,2,-32768,32767);Ga(672,10964,2,0,65535);Ga(680,10979,4,-2147483648,2147483647);Ga(688,10983,4,0,-1);Ga(696,10996,4,-2147483648,2147483647);Ga(704,11001,4,0,-1);kb(712,11015,4);kb(720,11021,8);sb(360,11028);sb(392,11040);bb(416,4,11073);db(440,11086);Aa(448,0,11102);Dh(11132);Eh(11169);Fh(11208);Gh(11239);Hh(11279);Ih(11308);Aa(456,4,11346);Aa(464,5,11376);Dh(11415);Eh(11447);Fh(11480);Gh(11513);Hh(11547);Ih(11580);Aa(472,6,11614);Aa(480,7,11645);Aa(488,7,11677);return}function Ch(){Bh(0);return}function Dh(a){a=a|0;Aa(536,0,a|0);return}function Eh(a){a=a|0;Aa(528,1,a|0);return}function Fh(a){a=a|0;Aa(520,2,a|0);return}function Gh(a){a=a|0;Aa(512,3,a|0);return}function Hh(a){a=a|0;Aa(504,4,a|0);return}function Ih(a){a=a|0;Aa(496,5,a|0);return}function Jh(a){a=a|0;Ia(12478,12501,303,12589)}function Kh(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=Uj(b)|0;a:do if(!a){while(1){a=Ph()|0;if(!a)break;_b[a&0]();a=Uj(b)|0;if(a)break a}b=Wa(4)|0;c[b>>2]=2224;wb(b|0,544,1)}while(0);return a|0}function Lh(a){a=a|0;Vj(a);return}function Mh(a){a=a|0;return}function Nh(a){a=a|0;Lh(a);return}function Oh(a){a=a|0;return 12610}function Ph(){var a=0;a=c[559]|0;c[559]=a+0;return a|0}function Qh(a){a=a|0;return}function Rh(a){a=a|0;return}function Sh(a){a=a|0;return}function Th(a){a=a|0;return}function Uh(a){a=a|0;return}function Vh(a){a=a|0;Lh(a);return}function Wh(a){a=a|0;Lh(a);return}function Xh(a){a=a|0;Lh(a);return}function Yh(a){a=a|0;Lh(a);return}function Zh(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function _h(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h;if((a|0)!=(b|0))if((b|0)!=0?(f=ei(b,576,592,0)|0,(f|0)!=0):0){b=g;e=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));c[g>>2]=f;c[g+8>>2]=a;c[g+12>>2]=-1;c[g+48>>2]=1;dc[c[(c[f>>2]|0)+28>>2]&3](f,g,c[d>>2]|0,1);if((c[g+24>>2]|0)==1){c[d>>2]=c[g+16>>2];b=1}else b=0}else b=0;else b=1;i=h;return b|0}function $h(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function ai(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))$h(0,b,d,e);return}function bi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))$h(0,b,d,e);else{a=c[a+8>>2]|0;dc[c[(c[a>>2]|0)+28>>2]&3](a,b,d,e)}return}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;f=g>>8;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0;a=c[a>>2]|0;dc[c[(c[a>>2]|0)+28>>2]&3](a,b,d+f|0,(g&2|0)!=0?e:2);return}function di(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if((b|0)!=(c[d+8>>2]|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;ci(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{ci(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else $h(0,d,e,f);while(0);return}function ei(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r;p=c[d>>2]|0;o=d+(c[p+-8>>2]|0)|0;p=c[p+-4>>2]|0;c[q>>2]=f;c[q+4>>2]=d;c[q+8>>2]=e;c[q+12>>2]=g;g=q+16|0;d=q+20|0;e=q+24|0;h=q+28|0;j=q+32|0;k=q+40|0;l=(p|0)==(f|0);m=g;n=m+36|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(l){c[q+48>>2]=1;bc[c[(c[f>>2]|0)+20>>2]&3](f,q,o,o,1,0);g=(c[e>>2]|0)==1?o:0}else{Rb[c[(c[p>>2]|0)+24>>2]&3](p,q,o,1,0);switch(c[q+36>>2]|0){case 0:{g=(c[k>>2]|0)==1&(c[h>>2]|0)==1&(c[j>>2]|0)==1?c[d>>2]|0:0;break a}case 1:break;default:{g=0;break a}}if((c[e>>2]|0)!=1?!((c[k>>2]|0)==0&(c[h>>2]|0)==1&(c[j>>2]|0)==1):0){g=0;break}g=c[g>>2]|0}while(0);i=r;return g|0}function fi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;f=d+16|0;b=c[f>>2]|0;if(!b){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((b|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}b=d+24|0;f=c[b>>2]|0;if((f|0)==2){c[b>>2]=g;f=g}if((f|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function gi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){q=c[b+12>>2]|0;j=b+16+(q<<3)|0;ii(b+16|0,d,e,f,g);h=b+24|0;if((q|0)<=1)break;i=c[b+8>>2]|0;if((i&2|0)==0?(k=d+36|0,(c[k>>2]|0)!=1):0){if(!(i&1)){i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[k>>2]|0)==1)break a;ii(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}i=d+24|0;b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[k>>2]|0)==1?(c[i>>2]|0)==1:0)break a;ii(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}i=d+54|0;while(1){if(a[i>>0]|0)break a;ii(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[d+32>>2]=f;m=d+44|0;if((c[m>>2]|0)==4)break;i=c[b+12>>2]|0;j=b+16+(i<<3)|0;k=d+52|0;f=d+53|0;n=d+54|0;l=b+8|0;o=d+24|0;b:do if((i|0)>0){i=0;h=0;b=b+16|0;while(1){a[k>>0]=0;a[f>>0]=0;hi(b,d,e,e,1,g);if(a[n>>0]|0){q=20;break b}do if(a[f>>0]|0){if(!(a[k>>0]|0))if(!(c[l>>2]&1)){h=1;q=20;break b}else{h=1;break}if((c[o>>2]|0)==1)break b;if(!(c[l>>2]&2))break b;else{i=1;h=1}}while(0);b=b+8|0;if(b>>>0>=j>>>0){q=20;break}}}else{i=0;h=0;q=20}while(0);do if((q|0)==20){if((!i?(c[p>>2]=e,e=d+40|0,c[e>>2]=(c[e>>2]|0)+1,(c[d+36>>2]|0)==1):0)?(c[o>>2]|0)==2:0){a[n>>0]=1;if(h)break}else q=24;if((q|0)==24?h:0)break;c[m>>2]=4;break a}while(0);c[m>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function hi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=i>>8;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;bc[c[(c[a>>2]|0)+20>>2]&3](a,b,d,e+h|0,(i&2|0)!=0?f:2,g);return}function ii(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4>>2]|0;g=h>>8;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Rb[c[(c[a>>2]|0)+24>>2]&3](a,b,d+g|0,(h&2|0)!=0?e:2,f);return}function ji(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){j=c[b+8>>2]|0;Rb[c[(c[j>>2]|0)+24>>2]&3](j,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;f=d+44|0;if((c[f>>2]|0)==4)break;h=d+52|0;a[h>>0]=0;k=d+53|0;a[k>>0]=0;b=c[b+8>>2]|0;bc[c[(c[b>>2]|0)+20>>2]&3](b,d,e,e,1,g);if(a[k>>0]|0){if(!(a[h>>0]|0)){h=1;j=13}}else{h=0;j=13}do if((j|0)==13){c[i>>2]=e;k=d+40|0;c[k>>2]=(c[k>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(h)break}else j=16;if((j|0)==16?h:0)break;c[f>>2]=4;break a}while(0);c[f>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function ki(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(i=d+28|0,(c[i>>2]|0)!=1):0)c[i>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function li(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((b|0)==(c[d+8>>2]|0))fi(0,d,e,f,g);else{m=d+52|0;n=a[m>>0]|0;o=d+53|0;p=a[o>>0]|0;l=c[b+12>>2]|0;i=b+16+(l<<3)|0;a[m>>0]=0;a[o>>0]=0;hi(b+16|0,d,e,f,g,h);a:do if((l|0)>1){j=d+24|0;k=b+8|0;l=d+54|0;b=b+24|0;do{if(a[l>>0]|0)break a;if(!(a[m>>0]|0)){if((a[o>>0]|0)!=0?(c[k>>2]&1|0)==0:0)break a}else{if((c[j>>2]|0)==1)break a;if(!(c[k>>2]&2))break a}a[m>>0]=0;a[o>>0]=0;hi(b,d,e,f,g,h);b=b+8|0}while(b>>>0>>0)}while(0);a[m>>0]=n;a[o>>0]=p}return}function mi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))fi(0,b,d,e,f);else{a=c[a+8>>2]|0;bc[c[(c[a>>2]|0)+20>>2]&3](a,b,d,e,f,g)}return}function ni(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))fi(0,b,d,e,f);return}function oi(a){a=a|0;Ia(12625,12654,1164,12589)}function pi(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function qi(){var a=0;if(!(c[597]|0))a=2644;else a=c[(gb()|0)+60>>2]|0;return a|0}function ri(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[12742+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=12830;e=5;break}}if((e|0)==2)if(!c)b=12830;else{b=12830;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function si(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+512|0;H=L;switch(e|0){case 0:{K=24;J=-149;A=4;break}case 1:{K=53;J=-1074;A=4;break}case 2:{K=53;J=-1074;A=4;break}default:g=0.0}a:do if((A|0)==4){E=b+4|0;C=b+100|0;do{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0}while((pi(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;I=h;break b}else{e=vi(b)|0;I=h;break b}}default:I=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[14634+e>>0]|0))break;do if(e>>>0<7){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=vi(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{A=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{A=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[16477+e>>0]|0))break d;do if(e>>>0<2){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=vi(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;if((e|0)==40)e=1;else{if(!(c[C>>2]|0)){g=s;break a}c[E>>2]=(c[E>>2]|0)+-1;g=s;break a}while(1){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0}else h=vi(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=s;break a}h=(c[C>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!k){c[(qi()|0)>>2]=22;ui(b,0);g=0.0;break a}if(!e){g=s;break a}while(1){e=e+-1|0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!e){g=s;break a}}}case 0:{do if((h|0)==48){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;if((e|32|0)!=120){if(!(c[C>>2]|0)){e=48;break}c[E>>2]=(c[E>>2]|0)+-1;e=48;break}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=0}else{e=vi(b)|0;k=0}e:while(1){switch(e|0){case 46:{A=74;break e}case 48:break;default:{y=0;l=0;x=0;h=0;n=k;o=0;w=0;m=1.0;k=0;g=0.0;break e}}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=vi(b)|0;k=1;continue}}if((A|0)==74){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;if((e|0)==48){k=0;h=0;do{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;k=gk(k|0,h|0,-1,-1)|0;h=D}while((e|0)==48);y=0;l=0;x=k;n=1;o=1;w=0;m=1.0;k=0;g=0.0}else{y=0;l=0;x=0;h=0;n=k;o=1;w=0;m=1.0;k=0;g=0.0}}while(1){u=e+-48|0;p=e|32;if(u>>>0>=10){v=(e|0)==46;if(!(v|(p+-97|0)>>>0<6)){p=x;u=y;break}if(v)if(!o){v=l;h=y;u=y;o=1;p=w;j=m}else{p=x;u=y;e=46;break}else A=86}else A=86;if((A|0)==86){A=0;e=(e|0)>57?p+-87|0:u;do if(!((y|0)<0|(y|0)==0&l>>>0<8)){if((y|0)<0|(y|0)==0&l>>>0<14){r=m*.0625;p=w;j=r;g=g+r*+(e|0);break}if((w|0)!=0|(e|0)==0){p=w;j=m}else{p=1;j=m;g=g+m*.5}}else{p=w;j=m;k=e+(k<<4)|0}while(0);l=gk(l|0,y|0,1,0)|0;v=x;u=D;n=1}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;y=u;x=v;e=d[e>>0]|0;w=p;m=j;continue}else{y=u;x=v;e=vi(b)|0;w=p;m=j;continue}}if(!n){e=(c[C>>2]|0)==0;if(!e)c[E>>2]=(c[E>>2]|0)+-1;if(f){if(!e?(z=c[E>>2]|0,c[E>>2]=z+-1,(o|0)!=0):0)c[E>>2]=z+-2}else ui(b,0);g=+(I|0)*0.0;break a}n=(o|0)==0;o=n?l:p;n=n?u:h;if((u|0)<0|(u|0)==0&l>>>0<8){h=u;do{k=k<<4;l=gk(l|0,h|0,1,0)|0;h=D}while((h|0)<0|(h|0)==0&l>>>0<8)}if((e|32|0)==112){h=Hj(b,f)|0;e=D;if((h|0)==0&(e|0)==-2147483648){if(!f){ui(b,0);g=0.0;break a}if(!(c[C>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}}}else if(!(c[C>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}H=fk(o|0,n|0,2)|0;H=gk(H|0,D|0,-32,-1)|0;e=gk(H|0,D|0,h|0,e|0)|0;h=D;if(!k){g=+(I|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-J|0)>>>0){c[(qi()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}H=J+-106|0;G=((H|0)<0)<<31>>31;if((h|0)<(G|0)|(h|0)==(G|0)&e>>>0>>0){c[(qi()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((k|0)>-1){do{G=!(g>=.5);H=G&1|k<<1;k=H^1;g=g+(G?g:g+-1.0);e=gk(e|0,h|0,-1,-1)|0;h=D}while((H|0)>-1);l=e;m=g}else{l=e;m=g}e=dk(32,0,J|0,((J|0)<0)<<31>>31|0)|0;e=gk(l|0,h|0,e|0,D|0)|0;J=D;if(0>(J|0)|0==(J|0)&K>>>0>e>>>0)if((e|0)<0){e=0;A=127}else A=125;else{e=K;A=125}if((A|0)==125)if((e|0)<53)A=127;else{h=e;j=+(I|0);g=0.0}if((A|0)==127){g=+(I|0);h=e;j=g;g=+yi(+Di(1.0,84-e|0),g)}K=(k&1|0)==0&(m!=0.0&(h|0)<32);g=j*(K?0.0:m)+(g+j*+(((K&1)+k|0)>>>0))-g;if(!(g!=0.0))c[(qi()|0)>>2]=34;g=+Ei(g,l);break a}else e=h;while(0);F=J+K|0;G=0-F|0;k=0;f:while(1){switch(e|0){case 46:{A=138;break f}case 48:break;default:{h=0;p=0;o=0;break f}}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=vi(b)|0;k=1;continue}}if((A|0)==138){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;if((e|0)==48){h=0;e=0;while(1){h=gk(h|0,e|0,-1,-1)|0;k=D;e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;if((e|0)==48)e=k;else{p=k;k=1;o=1;break}}}else{h=0;p=0;o=1}}c[H>>2]=0;n=e+-48|0;l=(e|0)==46;g:do if(l|n>>>0<10){B=H+496|0;y=0;v=0;w=l;A=p;u=k;z=o;k=0;l=0;o=0;h:while(1){do if(w)if(!z){h=y;p=v;z=1}else{p=A;e=y;n=v;break h}else{w=gk(y|0,v|0,1,0)|0;v=D;x=(e|0)!=48;if((l|0)>=125){if(!x){p=A;y=w;break}c[B>>2]=c[B>>2]|1;p=A;y=w;break}p=H+(l<<2)|0;if(k)n=e+-48+((c[p>>2]|0)*10|0)|0;c[p>>2]=n;k=k+1|0;n=(k|0)==9;p=A;y=w;u=1;k=n?0:k;l=(n&1)+l|0;o=x?w:o}while(0);e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=vi(b)|0;n=e+-48|0;w=(e|0)==46;if(!(w|n>>>0<10)){n=z;A=161;break g}else A=p}u=(u|0)!=0;A=169}else{y=0;v=0;u=k;n=o;k=0;l=0;o=0;A=161}while(0);do if((A|0)==161){B=(n|0)==0;h=B?y:h;p=B?v:p;u=(u|0)!=0;if(!((e|32|0)==101&u))if((e|0)>-1){e=y;n=v;A=169;break}else{e=y;n=v;A=171;break}n=Hj(b,f)|0;e=D;if((n|0)==0&(e|0)==-2147483648){if(!f){ui(b,0);g=0.0;break}if(!(c[C>>2]|0)){n=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;n=0;e=0}}h=gk(n|0,e|0,h|0,p|0)|0;u=y;p=D;n=v;A=173}while(0);if((A|0)==169)if(c[C>>2]|0){c[E>>2]=(c[E>>2]|0)+-1;if(u){u=e;A=173}else A=172}else A=171;if((A|0)==171)if(u){u=e;A=173}else A=172;do if((A|0)==172){c[(qi()|0)>>2]=22;ui(b,0);g=0.0}else if((A|0)==173){e=c[H>>2]|0;if(!e){g=+(I|0)*0.0;break}if(((n|0)<0|(n|0)==0&u>>>0<10)&((h|0)==(u|0)&(p|0)==(n|0))?K>>>0>30|(e>>>K|0)==0:0){g=+(I|0)*+(e>>>0);break}b=(J|0)/-2|0;E=((b|0)<0)<<31>>31;if((p|0)>(E|0)|(p|0)==(E|0)&h>>>0>b>>>0){c[(qi()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=J+-106|0;E=((b|0)<0)<<31>>31;if((p|0)<(E|0)|(p|0)==(E|0)&h>>>0>>0){c[(qi()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(k){if((k|0)<9){n=H+(l<<2)|0;e=c[n>>2]|0;do{e=e*10|0;k=k+1|0}while((k|0)!=9);c[n>>2]=e}l=l+1|0}if((o|0)<9?(o|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(I|0)*+((c[H>>2]|0)>>>0);break}if((h|0)<9){g=+(I|0)*+((c[H>>2]|0)>>>0)/+(c[2648+(8-h<<2)>>2]|0);break}b=K+27+($(h,-3)|0)|0;e=c[H>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(I|0)*+(e>>>0)*+(c[2648+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){k=0;e=0}else{u=(h|0)>-1?e:e+9|0;n=c[2648+(8-u<<2)>>2]|0;if(l){o=1e9/(n|0)|0;k=0;e=0;p=0;do{C=H+(p<<2)|0;E=c[C>>2]|0;b=((E>>>0)/(n>>>0)|0)+e|0;c[C>>2]=b;e=$((E>>>0)%(n>>>0)|0,o)|0;b=(p|0)==(k|0)&(b|0)==0;p=p+1|0;h=b?h+-9|0:h;k=b?p&127:k}while((p|0)!=(l|0));if(e){c[H+(l<<2)>>2]=e;l=l+1|0}}else{k=0;l=0}e=0;h=9-u+h|0}i:while(1){v=(h|0)<18;w=(h|0)==18;x=H+(k<<2)|0;do{if(!v){if(!w)break i;if((c[x>>2]|0)>>>0>=9007199){h=18;break i}}n=0;o=l+127|0;while(1){u=o&127;p=H+(u<<2)|0;o=fk(c[p>>2]|0,0,29)|0;o=gk(o|0,D|0,n|0,0)|0;n=D;if(n>>>0>0|(n|0)==0&o>>>0>1e9){b=pk(o|0,n|0,1e9,0)|0;o=qk(o|0,n|0,1e9,0)|0;n=b}else n=0;c[p>>2]=o;b=(u|0)==(k|0);l=(u|0)!=(l+127&127|0)|b?l:(o|0)==0?u:l;if(b)break;else o=u+-1|0}e=e+-29|0}while((n|0)==0);k=k+127&127;if((k|0)==(l|0)){b=l+127&127;l=H+((l+126&127)<<2)|0;c[l>>2]=c[l>>2]|c[H+(b<<2)>>2];l=b}c[H+(k<<2)>>2]=n;h=h+9|0}j:while(1){y=l+1&127;x=H+((l+127&127)<<2)|0;while(1){v=(h|0)==18;w=(h|0)>27?9:1;u=v^1;while(1){o=k&127;p=(o|0)==(l|0);do if(!p){n=c[H+(o<<2)>>2]|0;if(n>>>0<9007199){A=219;break}if(n>>>0>9007199)break;n=k+1&127;if((n|0)==(l|0)){A=219;break}n=c[H+(n<<2)>>2]|0;if(n>>>0<254740991){A=219;break}if(!(n>>>0>254740991|u)){h=o;break j}}else A=219;while(0);if((A|0)==219?(A=0,v):0){A=220;break j}e=e+w|0;if((k|0)==(l|0))k=l;else break}u=(1<>>w;o=k;n=0;p=k;while(1){E=H+(p<<2)|0;b=c[E>>2]|0;k=(b>>>w)+n|0;c[E>>2]=k;n=$(b&u,v)|0;k=(p|0)==(o|0)&(k|0)==0;p=p+1&127;h=k?h+-9|0:h;k=k?p:o;if((p|0)==(l|0))break;else o=k}if(!n)continue;if((y|0)!=(k|0))break;c[x>>2]=c[x>>2]|1}c[H+(l<<2)>>2]=n;l=y}if((A|0)==220)if(p){c[H+(y+-1<<2)>>2]=0;h=l;l=y}else h=o;g=+((c[H+(h<<2)>>2]|0)>>>0);h=k+1&127;if((h|0)==(l|0)){l=k+2&127;c[H+(l+-1<<2)>>2]=0}r=+(I|0);j=r*(g*1.0e9+ +((c[H+(h<<2)>>2]|0)>>>0));v=e+53|0;p=v-J|0;u=(p|0)<(K|0);h=u&1;o=u?((p|0)<0?0:p):K;if((o|0)<53){M=+yi(+Di(1.0,105-o|0),j);m=+Ai(j,+Di(1.0,53-o|0));q=M;g=m;m=M+(j-m)}else{q=0.0;g=0.0;m=j}n=k+2&127;do if((n|0)==(l|0))j=g;else{n=c[H+(n<<2)>>2]|0;do if(n>>>0>=5e8){if(n>>>0>5e8){g=r*.75+g;break}if((k+3&127|0)==(l|0)){g=r*.5+g;break}else{g=r*.75+g;break}}else{if((n|0)==0?(k+3&127|0)==(l|0):0)break;g=r*.25+g}while(0);if((53-o|0)<=1){j=g;break}if(+Ai(g,1.0)!=0.0){j=g;break}j=g+1.0}while(0);g=m+j-q;do if((v&2147483647|0)>(-2-F|0)){if(+O(+g)>=9007199254740992.0){h=u&(o|0)==(p|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(G|0)?!(j!=0.0&(h|0)!=0):0)break;c[(qi()|0)>>2]=34}while(0);g=+Ei(g,e)}while(0);break a}default:{if(c[C>>2]|0)c[E>>2]=(c[E>>2]|0)+-1;c[(qi()|0)>>2]=22;ui(b,0);g=0.0;break a}}}}while(0);if((A|0)==23){h=(c[C>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[E>>2]=(c[E>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(I|0)*t}while(0);i=L;return +g}function ti(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(qi()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0}while((pi(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=vi(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e&-17|0)==0&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=vi(b)|0;if((d[14643+(i+1)>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){ui(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[14643+(i+1)>>0]|0)>>>0>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;ui(b,0);c[(qi()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=vi(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=ok(e|0,j|0,10,0)|0;l=D;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=gk(k|0,l|0,f|0,m|0)|0;j=D;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[14900+((e*23|0)>>>5&7)>>0]|0;j=a[14643+(i+1)>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f|i<>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;j=a[14643+(i+1)>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0>>0))break;else i=k}f=0}else{f=0;k=0}l=hk(-1,-1,n|0)|0;m=D;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=fk(k|0,i|0,n|0)|0;f=D;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;j=a[14643+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[14643+(i+1)>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f+($(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;j=a[14643+(i+1)>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0>>0){n=pk(-1,-1,e|0,0)|0;o=D;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=ok(k|0,m|0,e|0,0)|0;l=D;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=gk(j|0,0,f|0,l|0)|0;f=D;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0;j=a[14643+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[14643+(i+1)>>0]|0)>>>0>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=vi(b)|0}while((d[14643+(i+1)>>0]|0)>>>0>>0);c[(qi()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0>>0|(j|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(qi()|0)>>2]=34;g=gk(g|0,h|0,-1,-1)|0;h=D;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(qi()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=dk(i^e|0,j^g|0,e|0,g|0)|0;h=D}while(0);D=h;return g|0}function ui(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=d+b;else c[a+100>>2]=e;return}function vi(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=Vi(b)|0;if((e|0)>=0){h=c[f>>2]|0;f=b+8|0;if(h){g=c[f>>2]|0;i=c[b+4>>2]|0;f=g;h=h-(c[b+108>>2]|0)+-1|0;if((f-i|0)>(h|0))c[b+100>>2]=i+h;else j=9}else{g=c[f>>2]|0;f=g;j=9}if((j|0)==9)c[b+100>>2]=f;f=c[b+4>>2]|0;if(g){b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function wi(a){a=a|0;if(a>>>0>4294963200){c[(qi()|0)>>2]=0-a;a=-1}return a|0}function xi(a,b){a=+a;b=+b;var d=0,e=0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;h[k>>3]=b;d=c[k+4>>2]&-2147483648|d&2147483647;c[k>>2]=e;c[k+4>>2]=d;return +(+h[k>>3])}function yi(a,b){a=+a;b=+b;return +(+xi(a,b))}function zi(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=hk(d|0,m|0,52)|0;e=e&2047;j=hk(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=fk(n|0,o|0,1)|0;l=D;a:do if(!((i|0)==0&(l|0)==0)?(g=o&2147483647,!(g>>>0>2146435072|(g|0)==2146435072&n>>>0>0|(e|0)==2047)):0){f=fk(d|0,m|0,1)|0;g=D;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=fk(d|0,m|0,12)|0;f=D;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=fk(g|0,f|0,1)|0;f=D}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=fk(d|0,m|0,1-e|0)|0;f=D}else f=m&1048575|1048576;if(!j){g=fk(n|0,o|0,12)|0;i=D;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=fk(g|0,i|0,1)|0;i=D}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=fk(n|0,o|0,1-j|0)|0;m=D}else m=o&1048575|1048576;l=dk(d|0,f|0,n|0,m|0)|0;i=D;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=fk(d|0,f|0,1)|0;f=D;e=e+-1|0;l=dk(d|0,f|0,n|0,m|0)|0;i=D;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=fk(d|0,f|0,1)|0;f=D;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=gk(d|0,f|0,0,-1048576)|0;d=D;e=fk(e|0,0,52)|0;d=d|D;e=o|e}else{e=hk(d|0,f|0,1-e|0)|0;d=D}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function Ai(a,b){a=+a;b=+b;return +(+zi(a,b))}function Bi(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=hk(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+Bi(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function Ci(a,b){a=+a;b=b|0;return +(+Bi(a,b))}function Di(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=fk(d+1023|0,0,52)|0;b=D;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function Ei(a,b){a=+a;b=b|0;return +(+Di(a,b))}function Fi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;g=l;j=(f|0)==0?2680:f;f=c[j>>2]|0;a:do if(!d)if(!f)f=0;else k=15;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;g=f&255;if(f<<24>>24>-1){c[h>>2]=g;f=f<<24>>24!=0&1;break}f=g+-194|0;if(f>>>0>50){k=15;break}f=c[2432+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;k=9}}else{g=e;k=9}b:do if((k|0)==9){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){k=15;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){k=15;break a}}c[j>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[j>>2]=f;f=-2}}while(0);if((k|0)==15){c[j>>2]=0;c[(qi()|0)>>2]=84;f=-1}i=l;return f|0}function Gi(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}function Hi(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(qi()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Ii(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Hi(a,b,0)|0;return a|0}function Ji(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(sj(14909,f<<24>>24,4)|0){e=Uj(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!(wj(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(wj(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;va(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=va(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;va(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(mb(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=14;c[e+36>>2]=4;c[e+40>>2]=5;c[e+12>>2]=2;if(!(c[598]|0))c[e+76>>2]=-1;yb(2416);f=c[603]|0;c[e+56>>2]=f;if(f)c[f+52>>2]=e;c[603]=e;nb(2416)}}else{c[(qi()|0)>>2]=22;e=0}i=o;return e|0}function Ki(b){b=b|0;var c=0,d=0,e=0;d=(wj(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(wj(b,120)|0)==0;d=e?d:d|128;b=(wj(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function Li(a){a=a|0;return 0}function Mi(a){a=a|0;return}function Ni(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=wi(zb(6,d|0)|0)|0;i=b;return a|0}function Oi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[597]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=wi(Nb(145,h|0)|0)|0}else{Fa(13,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=wi(Nb(145,g|0)|0)|0;pb(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){h=c[k>>2]|0;g=b+4|0;c[g>>2]=h;c[b+8>>2]=h+(f-j);if(!(c[l>>2]|0))f=e;else{c[g>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function Pi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((wi(Ib(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function Qi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[597]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=wi(Ob(146,n|0)|0)|0}else{Fa(14,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=wi(Ob(146,m|0)|0)|0;pb(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function Ri(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(mb(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=Qi(b,d,e)|0;i=g;return f|0}function Si(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=sj(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;ik(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function Ti(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)Qb[c[b+36>>2]&15](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function Ui(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Vi(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;if((c[a+8>>2]|0)==0?(Ti(a)|0)!=0:0)b=-1;else if((Qb[c[a+32>>2]&15](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function Wi(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){yb(2416);d=c[a+52>>2]|0;b=a+56|0;if(d)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b)c[b+52>>2]=d;if((c[603]|0)==(a|0))c[603]=b;nb(2416)}b=Yi(a)|0;b=Yb[c[a+12>>2]&31](a)|0|b;d=c[a+92>>2]|0;if(d)Vj(d);if(!e)Vj(a);return b|0}function Xi(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Li(a)|0)==0;a=(c[a>>2]|0)>>>5&1}else a=(c[a>>2]|0)>>>5&1;return a|0}function Yi(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Kj(a)|0;break}d=(Li(a)|0)==0;b=Kj(a)|0;if(!d)Mi(a)}else{if(!(c[660]|0))b=0;else b=Yi(c[660]|0)|0;yb(2416);a=c[603]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Li(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Kj(a)|0|b;if(d)Mi(a);a=c[a+56>>2]|0}while((a|0)!=0);nb(2416)}while(0);return b|0}function Zi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c[f+76>>2]|0)>-1)o=Li(f)|0;else o=0;g=e+-1|0;if((e|0)<2){p=f+74|0;n=a[p>>0]|0;a[p>>0]=n+255|n;if(o)Mi(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){m=f+4|0;n=f+8|0;h=b;while(1){i=c[m>>2]|0;q=i;k=(c[n>>2]|0)-q|0;j=sj(i,10,k)|0;r=(j|0)==0;j=r?k:1-q+j|0;q=j>>>0>>0;j=q?j:g;ik(h|0,i|0,j|0)|0;i=c[m>>2]|0;k=i+j|0;c[m>>2]=k;e=h+j|0;l=g-j|0;if(!(r&q)){p=18;break a}if(k>>>0<(c[n>>2]|0)>>>0){j=j+1|0;c[m>>2]=i+j;i=d[k>>0]|0}else{g=Vi(f)|0;if((g|0)<0)break;j=j+1|0;i=g}g=l+-1|0;h=h+j|0;a[e>>0]=i;if(!((g|0)!=0&(i&255|0)!=10)){e=h;p=18;break a}}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)p=18;else b=0}else{e=b;p=18}while(0);if((p|0)==18)if(!b)b=0;else a[e>>0]=0;if(o)Mi(f)}return b|0}function _i(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(sj(14909,a[d>>0]|0,4)|0){h=Ki(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=wi(Ab(5,e|0)|0)|0;if((e|0)>=0){b=Ji(e,d)|0;if(!b){c[f>>2]=e;zb(6,f|0)|0;b=0}}else b=0}else{c[(qi()|0)>>2]=22;b=0}i=g;return b|0}function $i(a,b){a=a|0;b=b|0;return (ij(a,Bj(a)|0,1,b)|0)+-1|0}function aj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=$(e,d)|0;if((c[f+76>>2]|0)>-1)k=Li(f)|0;else k=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0>>0?i:j;ik(b|0,h|0,i|0)|0;c[g>>2]=h+i;b=b+i|0;g=j-i|0}else g=j;a:do if(!g)l=13;else{i=f+32|0;h=g;while(1){if(Ti(f)|0){e=h;break}g=Qb[c[i>>2]&15](f,b,h)|0;if((g+1|0)>>>0<2){e=h;break}if((h|0)==(g|0)){l=13;break a}else{b=b+g|0;h=h-g|0}}if(k)Mi(f);e=((j-e|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(k)Mi(f);return e|0}function bj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;f=a+20|0;e=a+28|0;if((c[f>>2]|0)>>>0>(c[e>>2]|0)>>>0?(Qb[c[a+36>>2]&15](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[e>>2]=0;c[f>>2]=0;if((Qb[c[a+40>>2]&15](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function cj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(Li(a)|0)==0;b=bj(a,b,d)|0;if(!e)Mi(a)}else b=bj(a,b,d)|0;return b|0}function dj(a,b,c){a=a|0;b=b|0;c=c|0;return cj(a,b,c)|0}function ej(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Qb[c[a+40>>2]&15](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function fj(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Li(a)|0)==0;a=ej(a)|0}else a=ej(a)|0;return a|0}function gj(a){a=a|0;return fj(a)|0}function hj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Ui(e)|0)){g=c[f>>2]|0;h=4}else f=0;else h=4;a:do if((h|0)==4){i=e+20|0;h=c[i>>2]|0;if((g-h|0)>>>0>>0){f=Qb[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((Qb[c[e+36>>2]&15](e,b,f)|0)>>>0>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);ik(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function ij(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=$(d,b)|0;if((c[e+76>>2]|0)>-1){g=(Li(e)|0)==0;a=hj(a,f,e)|0;if(!g)Mi(e)}else a=hj(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function jj(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Li(a)|0)==0;bj(a,0,0)|0;c[a>>2]=c[a>>2]&-33;if(!b)Mi(a)}else{bj(a,0,0)|0;c[a>>2]=c[a>>2]&-33}return}function kj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=pj(a,b,f)|0;i=e;return d|0}function lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j;f=Uj(240)|0;do if(f){c[e>>2]=c[d>>2];e=oj(f,240,b,e)|0;if(e>>>0<240){b=Xj(f,e+1|0)|0;c[a>>2]=(b|0)!=0?b:f;break}Vj(f);if((e|0)>=0?(h=e+1|0,g=Uj(h)|0,c[a>>2]=g,(g|0)!=0):0)e=oj(g,h,b,d)|0;else e=-1}else e=-1;while(0);i=j;return e|0}function mj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+224|0;o=s+80|0;r=s+96|0;q=s;p=s+136|0;f=r;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((Lj(0,d,o,q,r)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)m=Li(b)|0;else m=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=p;j=b+28|0;c[j>>2]=p;k=b+20|0;c[k>>2]=p;c[e>>2]=80;l=b+16|0;c[l>>2]=p+80;f=Lj(b,d,o,q,r)|0;if(h){Qb[c[b+36>>2]&15](b,0,0)|0;f=(c[k>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[k>>2]=0}}else f=Lj(b,d,o,q,r)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(m)Mi(b);e=(e&32|0)==0?f:-1}i=s;return e|0}function nj(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;P=i;i=i+304|0;H=P+16|0;J=P+8|0;I=P+33|0;K=P;y=P+32|0;if((c[e+76>>2]|0)>-1)O=Li(e)|0;else O=0;k=a[f>>0]|0;a:do if(k<<24>>24){L=e+4|0;M=e+100|0;G=e+108|0;z=e+8|0;A=I+10|0;B=I+33|0;C=J+4|0;E=I+46|0;F=I+94|0;m=k;k=0;n=f;s=0;l=0;f=0;b:while(1){c:do if(!(pi(m&255)|0)){m=(a[n>>0]|0)==37;d:do if(m){q=n+1|0;o=a[q>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{x=0;o=n+2|0;break}default:{o=(o&255)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[H>>2]=c[j>>2];while(1){x=(c[H>>2]|0)+(4-1)&~(4-1);m=c[x>>2]|0;c[H>>2]=x+4;if(o>>>0>1)o=o+-1|0;else break}x=m;o=n+3|0;break e}o=(c[j>>2]|0)+(4-1)&~(4-1);x=c[o>>2]|0;c[j>>2]=o+4;o=q}}while(0);m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0<10){m=0;while(1){q=(m*10|0)+-48+n|0;o=o+1|0;m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0>=10)break;else m=q}}else q=0;if(m<<24>>24==109){o=o+1|0;r=a[o>>0]|0;m=(x|0)!=0&1;l=0;f=0}else{r=m;m=0}n=o+1|0;switch(r&255|0){case 104:{w=(a[n>>0]|0)==104;n=w?o+2|0:n;o=w?-2:-1;break}case 108:{w=(a[n>>0]|0)==108;n=w?o+2|0:n;o=w?3:1;break}case 106:{o=3;break}case 116:case 122:{o=1;break}case 76:{o=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=o;o=0;break}default:{N=152;break b}}r=d[n>>0]|0;t=(r&47|0)==3;r=t?r|32:r;t=t?1:o;switch(r|0){case 99:{w=s;v=(q|0)<1?1:q;break}case 91:{w=s;v=q;break}case 110:{if(!x){o=s;break c}switch(t|0){case -2:{a[x>>0]=s;o=s;break c}case -1:{b[x>>1]=s;o=s;break c}case 0:{c[x>>2]=s;o=s;break c}case 1:{c[x>>2]=s;o=s;break c}case 3:{o=x;c[o>>2]=s;c[o+4>>2]=((s|0)<0)<<31>>31;o=s;break c}default:{o=s;break c}}}default:{ui(e,0);do{o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=vi(e)|0}while((pi(o)|0)!=0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}w=(c[G>>2]|0)+s+o-(c[z>>2]|0)|0;v=q}}ui(e,v);o=c[L>>2]|0;q=c[M>>2]|0;if(o>>>0>>0)c[L>>2]=o+1;else{if((vi(e)|0)<0){N=152;break b}q=c[M>>2]|0}if(q)c[L>>2]=(c[L>>2]|0)+-1;f:do switch(r|0){case 91:case 99:case 115:{u=(r|0)==99;g:do if((r&239|0)==99){ek(I|0,-1,257)|0;a[I>>0]=0;if((r|0)==115){a[B>>0]=0;a[A>>0]=0;a[A+1>>0]=0;a[A+2>>0]=0;a[A+3>>0]=0;a[A+4>>0]=0}}else{Q=n+1|0;s=(a[Q>>0]|0)==94;o=s&1;r=s?Q:n;n=s?n+2|0:Q;ek(I|0,s&1|0,257)|0;a[I>>0]=0;switch(a[n>>0]|0){case 45:{s=(o^1)&255;a[E>>0]=s;n=r+2|0;break}case 93:{s=(o^1)&255;a[F>>0]=s;n=r+2|0;break}default:s=(o^1)&255}while(1){o=a[n>>0]|0;h:do switch(o<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{r=n+1|0;o=a[r>>0]|0;switch(o<<24>>24){case 93:case 0:{o=45;break h}default:{}}n=a[n+-1>>0]|0;if((n&255)<(o&255)){n=n&255;do{n=n+1|0;a[I+n>>0]=s;o=a[r>>0]|0}while((n|0)<(o&255|0));n=r}else n=r;break}default:{}}while(0);a[I+((o&255)+1)>>0]=s;n=n+1|0}}while(0);r=u?v+1|0:31;s=(t|0)==1;t=(m|0)!=0;i:do if(s){if(t){f=Uj(r<<2)|0;if(!f){l=0;N=152;break b}}else f=x;c[J>>2]=0;c[C>>2]=0;l=0;j:while(1){q=(f|0)==0;do{k:while(1){o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=vi(e)|0;if(!(a[I+(o+1)>>0]|0))break j;a[y>>0]=o;switch(Fi(K,y,1,J)|0){case -1:{l=0;N=152;break b}case -2:break;default:break k}}if(!q){c[f+(l<<2)>>2]=c[K>>2];l=l+1|0}}while(!(t&(l|0)==(r|0)));l=r<<1|1;o=Xj(f,l<<2)|0;if(!o){l=0;N=152;break b}Q=r;r=l;f=o;l=Q}if(!(Gi(J)|0)){l=0;N=152;break b}else{q=l;l=0}}else{if(t){l=Uj(r)|0;if(!l){l=0;f=0;N=152;break b}else o=0;while(1){do{f=c[L>>2]|0;if(f>>>0<(c[M>>2]|0)>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=vi(e)|0;if(!(a[I+(f+1)>>0]|0)){q=o;f=0;break i}a[l+o>>0]=f;o=o+1|0}while((o|0)!=(r|0));f=r<<1|1;o=Xj(l,f)|0;if(!o){f=0;N=152;break b}else{Q=r;r=f;l=o;o=Q}}}if(!x){l=q;while(1){f=c[L>>2]|0;if(f>>>0>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=vi(e)|0;if(!(a[I+(f+1)>>0]|0)){q=0;l=0;f=0;break i}l=c[M>>2]|0}}else{l=0;while(1){f=c[L>>2]|0;if(f>>>0>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=vi(e)|0;if(!(a[I+(f+1)>>0]|0)){q=l;l=x;f=0;break i}a[x+l>>0]=f;q=c[M>>2]|0;l=l+1|0}}}while(0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}o=o-(c[z>>2]|0)+(c[G>>2]|0)|0;if(!o)break b;if(!((o|0)==(v|0)|u^1))break b;do if(t)if(s){c[x>>2]=f;break}else{c[x>>2]=l;break}while(0);if(!u){if(f)c[f+(q<<2)>>2]=0;if(!l){l=0;break f}a[l+q>>0]=0}break}case 120:case 88:case 112:{o=16;N=134;break}case 111:{o=8;N=134;break}case 117:case 100:{o=10;N=134;break}case 105:{o=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+si(e,t,0);if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if(x)switch(t|0){case 0:{g[x>>2]=p;break f}case 1:{h[x>>3]=p;break f}case 2:{h[x>>3]=p;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;o=ti(e,o,0,-1,-1)|0;if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if((x|0)!=0&(r|0)==112){c[x>>2]=o;break}if(x)switch(t|0){case -2:{a[x>>0]=o;break l}case -1:{b[x>>1]=o;break l}case 0:{c[x>>2]=o;break l}case 1:{c[x>>2]=o;break l}case 3:{Q=x;c[Q>>2]=o;c[Q+4>>2]=D;break l}default:break l}}while(0);k=((x|0)!=0&1)+k|0;o=(c[G>>2]|0)+w+(c[L>>2]|0)-(c[z>>2]|0)|0;break c}while(0);n=n+(m&1)|0;ui(e,0);m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=vi(e)|0;if((m|0)!=(d[n>>0]|0)){N=21;break b}o=s+1|0}else{while(1){m=n+1|0;if(!(pi(d[m>>0]|0)|0))break;else n=m}ui(e,0);do{m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=vi(e)|0}while((pi(m)|0)!=0);m=c[L>>2]|0;if(c[M>>2]|0){m=m+-1|0;c[L>>2]=m}o=(c[G>>2]|0)+s+m-(c[z>>2]|0)|0}while(0);n=n+1|0;m=a[n>>0]|0;if(!(m<<24>>24))break a;else s=o}if((N|0)==21){if(c[M>>2]|0)c[L>>2]=(c[L>>2]|0)+-1;if((k|0)!=0|(m|0)>-1)break;else{k=0;N=153}}else if((N|0)==152)if(!k){k=m;N=153}if((N|0)==153){m=k;k=-1}if(m){Vj(l);Vj(f)}}else k=0;while(0);if(O)Mi(e);i=P;return k|0}function oj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=2684;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(qi()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=mj(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;f=e;h=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=15;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=nj(e,b,d)|0;i=g;return h|0}function qj(b){b=b|0;var c=0,d=0,e=0,f=0;while(1){c=b+1|0;if(!(pi(a[b>>0]|0)|0))break;else b=c}d=a[b>>0]|0;switch(d<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:e=0}if((f|0)==5){b=c;d=a[c>>0]|0}c=(d<<24>>24)+-48|0;if(c>>>0<10){d=b;b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return ((e|0)!=0?b:0-b|0)|0}function rj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;o=r+8|0;p=r;f=$(d,b)|0;n=p;c[n>>2]=1;c[n+4>>2]=0;if(f){j=f-d|0;c[o+4>>2]=d;c[o>>2]=d;g=d;b=d;h=2;while(1){b=b+d+g|0;c[o+(h<<2)>>2]=b;if(b>>>0>>0){n=g;g=b;h=h+1|0;b=n}else break}n=0-d|0;k=a+j|0;m=p+4|0;if((j|0)>0){j=k;f=1;h=1;while(1){do if((f&3|0)==3){Nj(a,d,e,h,o);l=c[m>>2]|0;b=l<<30|(c[p>>2]|0)>>>2;c[p>>2]=b;c[m>>2]=l>>>2;h=h+2|0}else{b=h+-1|0;if((c[o+(b<<2)>>2]|0)>>>0<(j-a|0)>>>0)Nj(a,d,e,h,o);else Oj(a,d,e,p,h,0,o);if((h|0)==1){b=c[p>>2]|0;c[m>>2]=b>>>31|c[m>>2]<<1;b=b<<1;c[p>>2]=b;h=0;break}if(b>>>0>31){f=c[p>>2]|0;c[m>>2]=f;c[p>>2]=0;b=h+-33|0;g=0}else{f=c[m>>2]|0;g=c[p>>2]|0}c[m>>2]=g>>>(32-b|0)|f<>2]=b;h=1}while(0);f=b|1;c[p>>2]=f;b=a+d|0;if(b>>>0>=k>>>0){f=b;break}else a=b}}else{f=a;h=1}Oj(f,d,e,p,h,0,o);l=p+4|0;b=c[p>>2]|0;if(!((h|0)==1&(b|0)==1&(c[l>>2]|0)==0)){g=f;while(1){if((h|0)<2){f=b+-1|0;do if(f){if(!(f&1)){j=f;f=0;do{f=f+1|0;j=j>>>1}while((j&1|0)==0);if(!f)q=24}else q=24;if((q|0)==24){q=0;k=c[m>>2]|0;if(!k){f=64;q=30;break}if(!(k&1)){j=k;f=0}else{a=0;j=k;f=0;break}while(1){a=f+1|0;j=j>>>1;if(j&1){j=a;break}else f=a}if(!j){a=0;j=k;f=0;break}else f=f+33|0}if(f>>>0>31)q=30;else{a=f;j=c[m>>2]|0}}else{f=32;q=30}while(0);if((q|0)==30){q=0;b=c[m>>2]|0;c[p>>2]=b;c[m>>2]=0;a=f+-32|0;j=0}c[p>>2]=j<<32-a|b>>>a;c[m>>2]=j>>>a;g=g+n|0;f=f+h|0}else{a=b>>>30;k=a|c[m>>2]<<2;f=h+-2|0;c[p>>2]=(b<<1&2147483646|a<<31)^3;c[m>>2]=k>>>1;Oj(g+(0-((c[o+(f<<2)>>2]|0)+d))|0,d,e,p,h+-1|0,1,o);k=c[p>>2]|0;c[m>>2]=k>>>31|c[m>>2]<<1;c[p>>2]=k<<1|1;g=g+n|0;Oj(g,d,e,p,f,1,o)}b=c[p>>2]|0;if((f|0)==1&(b|0)==1&(c[l>>2]|0)==0)break;else h=f}}}i=r;return}function sj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=$(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return ((e|0)!=0?b:0)|0}function tj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function uj(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function vj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);ek(b|0,0,e|0)|0;return b|0}function wj(b,c){b=b|0;c=c|0;b=xj(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function xj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(Bj(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=$(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009)break b;b=b+4|0;e=c[b>>2]|0}while(((e&-2139062144^-2139062144)&e+-16843009|0)==0);while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function yj(a,b){a=a|0;b=b|0;uj(a,b)|0;return a|0}function zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;e=a[d>>0]|0;if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;a:do if(!(d<<24>>24))e=b;else{e=b;do{if(c[f+(((d&255)>>>5&255)<<2)>>2]&1<<(d&31))break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}while(0);e=e-b|0}else e=(xj(b,e<<24>>24)|0)-b|0;i=g;return e|0}function Aj(a){a=a|0;var b=0,c=0;c=(Bj(a)|0)+1|0;b=Uj(c)|0;if(!b)b=0;else ik(b|0,a|0,c|0)|0;return b|0}function Bj(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function Cj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=b+(Bj(b)|0)|0;a:do if(d)while(1){f=a[c>>0]|0;if(!(f<<24>>24))break a;d=d+-1|0;g=e+1|0;a[e>>0]=f;if(!d){e=g;break}else{c=c+1|0;e=g}}while(0);a[e>>0]=0;return b|0}function Dj(a,b,c){a=a|0;b=b|0;c=c|0;vj(a,b,c)|0;return a|0}function Ej(a,b){a=a|0;b=b|0;return tj(a,b,(Bj(a)|0)+1|0)|0}function Fj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;f=a[d>>0]|0;do if(!(f<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==f<<24>>24)d=d+1|0;else break;d=d-b|0;break}else{e=d;d=f}do{f=g+(((d&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(d&31);e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[g+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);i=h;return d|0}function Gj(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b){b=c[699]|0;if(!b)b=0;else{f=b;e=3}}else{f=b;e=3}do if((e|0)==3){e=Fj(f,d)|0;b=f+e|0;if(!(a[b>>0]|0)){c[699]=0;b=0;break}e=(zj(b,d)|0)+e|0;d=f+e|0;c[699]=d;if(!(a[d>>0]|0)){c[699]=0;break}else{c[699]=f+(e+1);a[d>>0]=0;break}}while(0);return b|0}function Hj(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=vi(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=vi(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=vi(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=ok(f|0,b|0,10,0)|0;f=D;e=gk(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=gk(e|0,D|0,b|0,f|0)|0;b=D;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=vi(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=vi(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=dk(0,0,g|0,b|0)|0;f=a?D:b;e=a?e:g}D=f;return e|0}function Ij(a){a=a|0;if(!(c[a+68>>2]|0))Mi(a);return}function Jj(a){a=a|0;if(!(c[a+68>>2]|0))Mi(a);return}function Kj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Qb[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>>0)Qb[c[a+40>>2]&15](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Lj(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+624|0;ca=ha+24|0;ea=ha+16|0;da=ha+588|0;Y=ha+576|0;ba=ha;V=ha+536|0;ga=ha+8|0;fa=ha+528|0;M=(e|0)!=0;N=V+40|0;U=N;V=V+39|0;W=ga+4|0;X=Y+12|0;Y=Y+11|0;Z=da;_=X;aa=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ca+288|0;R=da+9|0;S=R;T=da+8|0;m=0;w=f;n=0;f=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(qi()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[w>>0]|0;if(!(n<<24>>24)){L=245;break}else o=w;b:while(1){switch(n<<24>>24){case 37:{n=o;L=9;break b}case 0:{n=o;break b}default:{}}K=o+1|0;n=a[K>>0]|0;o=K}c:do if((L|0)==9)while(1){L=0;if((a[n+1>>0]|0)!=37)break c;o=o+1|0;n=n+2|0;if((a[n>>0]|0)==37)L=9;else break}while(0);y=o-w|0;if(M?(c[e>>2]&32|0)==0:0)hj(w,y,e)|0;if((o|0)!=(w|0)){w=n;n=y;continue}r=n+1|0;o=a[r>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10){K=(a[n+2>>0]|0)==36;r=K?n+3|0:r;o=a[r>>0]|0;u=K?p:-1;f=K?1:f}else u=-1;n=o<<24>>24;d:do if((n&-32|0)==32){p=0;while(1){if(!(1<>24)+-32|p;r=r+1|0;o=a[r>>0]|0;n=o<<24>>24;if((n&-32|0)!=32){s=p;n=r;break}}}else{s=0;n=r}while(0);do if(o<<24>>24==42){p=n+1|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[l+(o<<2)>>2]=10;f=1;n=n+3|0;o=c[j+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(f){m=-1;break a}if(!M){x=s;n=p;f=0;K=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);o=c[f>>2]|0;c[g>>2]=f+4;f=0;n=p}if((o|0)<0){x=s|8192;K=0-o|0}else{x=s;K=o}}else{p=(o<<24>>24)+-48|0;if(p>>>0<10){o=0;do{o=(o*10|0)+p|0;n=n+1|0;p=(a[n>>0]|0)+-48|0}while(p>>>0<10);if((o|0)<0){m=-1;break a}else{x=s;K=o}}else{x=s;K=0}}while(0);e:do if((a[n>>0]|0)==46){p=n+1|0;o=a[p>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10){n=p;o=0}else{n=p;r=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){r=o;break e}}}p=n+2|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+3>>0]|0)==36:0){c[l+(o<<2)>>2]=10;n=n+4|0;r=c[j+((a[p>>0]|0)+-48<<3)>>2]|0;break}if(f){m=-1;break a}if(M){n=(c[g>>2]|0)+(4-1)&~(4-1);r=c[n>>2]|0;c[g>>2]=n+4;n=p}else{n=p;r=0}}else r=-1;while(0);t=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}p=n+1|0;o=a[15953+(t*58|0)+o>>0]|0;s=o&255;if((s+-1|0)>>>0<8){n=p;t=s}else{J=p;break}}if(!(o<<24>>24)){m=-1;break}p=(u|0)>-1;do if(o<<24>>24==19)if(p){m=-1;break a}else L=52;else{if(p){c[l+(u<<2)>>2]=s;H=j+(u<<3)|0;I=c[H+4>>2]|0;L=ba;c[L>>2]=c[H>>2];c[L+4>>2]=I;L=52;break}if(!M){m=0;break a}Rj(ba,s,g)}while(0);if((L|0)==52?(L=0,!M):0){w=J;n=y;continue}u=a[n>>0]|0;u=(t|0)!=0&(u&15|0)==3?u&-33:u;p=x&-65537;I=(x&8192|0)==0?x:p;f:do switch(u|0){case 110:switch(t|0){case 0:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 1:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 2:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}case 3:{b[c[ba>>2]>>1]=m;w=J;n=y;continue a}case 4:{a[c[ba>>2]>>0]=m;w=J;n=y;continue a}case 6:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 7:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}default:{w=J;n=y;continue a}}case 112:{t=I|8;r=r>>>0>8?r:8;u=120;L=64;break}case 88:case 120:{t=I;L=64;break}case 111:{p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)n=N;else{n=N;do{n=n+-1|0;a[n>>0]=o&7|48;o=hk(o|0,p|0,3)|0;p=D}while(!((o|0)==0&(p|0)==0))}if(!(I&8)){o=I;t=0;s=16433;L=77}else{t=U-n+1|0;o=I;r=(r|0)<(t|0)?t:r;t=0;s=16433;L=77}break}case 105:case 100:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;if((o|0)<0){n=dk(0,0,n|0,o|0)|0;o=D;p=ba;c[p>>2]=n;c[p+4>>2]=o;p=1;s=16433;L=76;break f}if(!(I&2048)){s=I&1;p=s;s=(s|0)==0?16433:16435;L=76}else{p=1;s=16434;L=76}break}case 117:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;p=0;s=16433;L=76;break}case 99:{a[V>>0]=c[ba>>2];w=V;o=1;t=0;u=16433;n=N;break}case 109:{n=ri(c[(qi()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ba>>2]|0;n=(n|0)!=0?n:16443;L=82;break}case 67:{c[ga>>2]=c[ba>>2];c[W>>2]=0;c[ba>>2]=ga;r=-1;L=86;break}case 83:{if(!r){Tj(e,32,K,0,I);n=0;L=98}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ba>>3];c[ea>>2]=0;h[k>>3]=q;if((c[k+4>>2]|0)>=0)if(!(I&2048)){H=I&1;G=H;H=(H|0)==0?16451:16456}else{G=1;H=16453}else{q=-q;G=1;H=16450}h[k>>3]=q;F=c[k+4>>2]&2146435072;do if(F>>>0<2146435072|(F|0)==2146435072&0<0){v=+Ci(q,ea)*2.0;o=v!=0.0;if(o)c[ea>>2]=(c[ea>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?H:H+9|0;x=G|2;n=12-r|0;do if(!(r>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[y>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);o=c[ea>>2]|0;n=(o|0)<0?0-o|0:o;n=Sj(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(o>>31&2)+43;t=n+-2|0;a[t>>0]=u+15;s=(r|0)<1;p=(I&8|0)==0;o=da;while(1){H=~~q;n=o+1|0;a[o>>0]=d[16417+H>>0]|w;q=(q-+(H|0))*16.0;do if((n-Z|0)==1){if(p&(s&q==0.0))break;a[n>>0]=46;n=o+2|0}while(0);if(!(q!=0.0))break;else o=n}r=(r|0)!=0&(O+n|0)<(r|0)?P+r-t|0:aa-t+n|0;p=r+x|0;Tj(e,32,K,p,I);if(!(c[e>>2]&32))hj(y,x,e)|0;Tj(e,48,K,p,I^65536);n=n-Z|0;if(!(c[e>>2]&32))hj(da,n,e)|0;o=_-t|0;Tj(e,48,r-(n+o)|0,0,0);if(!(c[e>>2]&32))hj(t,o,e)|0;Tj(e,32,K,p,I^8192);n=(p|0)<(K|0)?K:p;break}n=(r|0)<0?6:r;if(o){o=(c[ea>>2]|0)+-28|0;c[ea>>2]=o;q=v*268435456.0}else{q=v;o=c[ea>>2]|0}F=(o|0)<0?ca:Q;E=F;o=F;do{B=~~q>>>0;c[o>>2]=B;o=o+4|0;q=(q-+(B>>>0))*1.0e9}while(q!=0.0);p=o;o=c[ea>>2]|0;if((o|0)>0){s=F;while(1){t=(o|0)>29?29:o;r=p+-4|0;do if(r>>>0>>0)r=s;else{o=0;do{B=fk(c[r>>2]|0,0,t|0)|0;B=gk(B|0,D|0,o|0,0)|0;o=D;A=qk(B|0,o|0,1e9,0)|0;c[r>>2]=A;o=pk(B|0,o|0,1e9,0)|0;r=r+-4|0}while(r>>>0>=s>>>0);if(!o){r=s;break}r=s+-4|0;c[r>>2]=o}while(0);while(1){if(p>>>0<=r>>>0)break;o=p+-4|0;if(!(c[o>>2]|0))p=o;else break}o=(c[ea>>2]|0)-t|0;c[ea>>2]=o;if((o|0)>0)s=r;else break}}else r=F;if((o|0)<0){y=((n+25|0)/9|0)+1|0;z=(C|0)==102;w=r;while(1){x=0-o|0;x=(x|0)>9?9:x;do if(w>>>0

>>0){o=(1<>>x;r=0;t=w;do{B=c[t>>2]|0;c[t>>2]=(B>>>x)+r;r=$(B&o,s)|0;t=t+4|0}while(t>>>0

>>0);o=(c[w>>2]|0)==0?w+4|0:w;if(!r){r=o;break}c[p>>2]=r;r=o;p=p+4|0}else r=(c[w>>2]|0)==0?w+4|0:w;while(0);o=z?F:r;p=(p-o>>2|0)>(y|0)?o+(y<<2)|0:p;o=(c[ea>>2]|0)+x|0;c[ea>>2]=o;if((o|0)>=0){w=r;break}else w=r}}else w=r;do if(w>>>0

>>0){o=(E-w>>2)*9|0;s=c[w>>2]|0;if(s>>>0<10)break;else r=10;do{r=r*10|0;o=o+1|0}while(s>>>0>=r>>>0)}else o=0;while(0);A=(C|0)==103;B=(n|0)!=0;r=n-((C|0)!=102?o:0)+((B&A)<<31>>31)|0;if((r|0)<(((p-E>>2)*9|0)+-9|0)){t=r+9216|0;z=(t|0)/9|0;r=F+(z+-1023<<2)|0;t=((t|0)%9|0)+1|0;if((t|0)<9){s=10;do{s=s*10|0;t=t+1|0}while((t|0)!=9)}else s=10;x=c[r>>2]|0;y=(x>>>0)%(s>>>0)|0;if((y|0)==0?(F+(z+-1022<<2)|0)==(p|0):0)s=w;else L=163;do if((L|0)==163){L=0;v=(((x>>>0)/(s>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;t=(s|0)/2|0;do if(y>>>0>>0)q=.5;else{if((y|0)==(t|0)?(F+(z+-1022<<2)|0)==(p|0):0){q=1.0;break}q=1.5}while(0);do if(G){if((a[H>>0]|0)!=45)break;v=-v;q=-q}while(0);t=x-y|0;c[r>>2]=t;if(!(v+q!=v)){s=w;break}C=t+s|0;c[r>>2]=C;if(C>>>0>999999999){o=w;while(1){s=r+-4|0;c[r>>2]=0;if(s>>>0>>0){o=o+-4|0;c[o>>2]=0}C=(c[s>>2]|0)+1|0;c[s>>2]=C;if(C>>>0>999999999)r=s;else{w=o;r=s;break}}}o=(E-w>>2)*9|0;t=c[w>>2]|0;if(t>>>0<10){s=w;break}else s=10;do{s=s*10|0;o=o+1|0}while(t>>>0>=s>>>0);s=w}while(0);C=r+4|0;w=s;p=p>>>0>C>>>0?C:p}y=0-o|0;while(1){if(p>>>0<=w>>>0){z=0;C=p;break}r=p+-4|0;if(!(c[r>>2]|0))p=r;else{z=1;C=p;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(o|0)&(o|0)>-5){u=u+-1|0;n=n+-1-o|0}else{u=u+-2|0;n=n+-1|0}p=I&8;if(p)break;do if(z){p=c[C+-4>>2]|0;if(!p){r=9;break}if(!((p>>>0)%10|0)){s=10;r=0}else{r=0;break}do{s=s*10|0;r=r+1|0}while(((p>>>0)%(s>>>0)|0|0)==0)}else r=9;while(0);p=((C-E>>2)*9|0)+-9|0;if((u|32|0)==102){p=p-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}else{p=p+o-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}}else p=I&8;while(0);x=n|p;s=(x|0)!=0&1;t=(u|32|0)==102;if(t){o=(o|0)>0?o:0;u=0}else{r=(o|0)<0?y:o;r=Sj(r,((r|0)<0)<<31>>31,X)|0;if((_-r|0)<2)do{r=r+-1|0;a[r>>0]=48}while((_-r|0)<2);a[r+-1>>0]=(o>>31&2)+43;E=r+-2|0;a[E>>0]=u;o=_-E|0;u=E}y=G+1+n+s+o|0;Tj(e,32,K,y,I);if(!(c[e>>2]&32))hj(H,G,e)|0;Tj(e,48,K,y,I^65536);do if(t){r=w>>>0>F>>>0?F:w;o=r;do{p=Sj(c[o>>2]|0,0,R)|0;do if((o|0)==(r|0)){if((p|0)!=(R|0))break;a[T>>0]=48;p=T}else{if(p>>>0<=da>>>0)break;do{p=p+-1|0;a[p>>0]=48}while(p>>>0>da>>>0)}while(0);if(!(c[e>>2]&32))hj(p,S-p|0,e)|0;o=o+4|0}while(o>>>0<=F>>>0);do if(x){if(c[e>>2]&32)break;hj(16485,1,e)|0}while(0);if((n|0)>0&o>>>0>>0){p=o;while(1){o=Sj(c[p>>2]|0,0,R)|0;if(o>>>0>da>>>0)do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0);if(!(c[e>>2]&32))hj(o,(n|0)>9?9:n,e)|0;p=p+4|0;o=n+-9|0;if(!((n|0)>9&p>>>0>>0)){n=o;break}else n=o}}Tj(e,48,n+9|0,9,0)}else{t=z?C:w+4|0;if((n|0)>-1){s=(p|0)==0;r=w;do{o=Sj(c[r>>2]|0,0,R)|0;if((o|0)==(R|0)){a[T>>0]=48;o=T}do if((r|0)==(w|0)){p=o+1|0;if(!(c[e>>2]&32))hj(o,1,e)|0;if(s&(n|0)<1){o=p;break}if(c[e>>2]&32){o=p;break}hj(16485,1,e)|0;o=p}else{if(o>>>0<=da>>>0)break;do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0)}while(0);p=S-o|0;if(!(c[e>>2]&32))hj(o,(n|0)>(p|0)?p:n,e)|0;n=n-p|0;r=r+4|0}while(r>>>0>>0&(n|0)>-1)}Tj(e,48,n+18|0,18,0);if(c[e>>2]&32)break;hj(u,_-u|0,e)|0}while(0);Tj(e,32,K,y,I^8192);n=(y|0)<(K|0)?K:y}else{t=(u&32|0)!=0;s=q!=q|0.0!=0.0;o=s?0:G;r=o+3|0;Tj(e,32,K,r,p);n=c[e>>2]|0;if(!(n&32)){hj(H,o,e)|0;n=c[e>>2]|0}if(!(n&32))hj(s?(t?16477:16481):t?16469:16473,3,e)|0;Tj(e,32,K,r,I^8192);n=(r|0)<(K|0)?K:r}while(0);w=J;continue a}default:{p=I;o=r;t=0;u=16433;n=N}}while(0);g:do if((L|0)==64){p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;s=u&32;if(!((o|0)==0&(p|0)==0)){n=N;do{n=n+-1|0;a[n>>0]=d[16417+(o&15)>>0]|s;o=hk(o|0,p|0,4)|0;p=D}while(!((o|0)==0&(p|0)==0));L=ba;if((t&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){o=t;t=0;s=16433;L=77}else{o=t;t=2;s=16433+(u>>4)|0;L=77}}else{n=N;o=t;t=0;s=16433;L=77}}else if((L|0)==76){n=Sj(n,o,N)|0;o=I;t=p;L=77}else if((L|0)==82){L=0;I=sj(n,0,r)|0;H=(I|0)==0;w=n;o=H?r:I-n|0;t=0;u=16433;n=H?n+r|0:I}else if((L|0)==86){L=0;o=0;n=0;s=c[ba>>2]|0;while(1){p=c[s>>2]|0;if(!p)break;n=Ii(fa,p)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}Tj(e,32,K,o,I);if(!o){n=0;L=98}else{p=0;r=c[ba>>2]|0;while(1){n=c[r>>2]|0;if(!n){n=o;L=98;break g}n=Ii(fa,n)|0;p=n+p|0;if((p|0)>(o|0)){n=o;L=98;break g}if(!(c[e>>2]&32))hj(fa,n,e)|0;if(p>>>0>=o>>>0){n=o;L=98;break}else r=r+4|0}}}while(0);if((L|0)==98){L=0;Tj(e,32,K,n,I^8192);w=J;n=(K|0)>(n|0)?K:n;continue}if((L|0)==77){L=0;p=(r|0)>-1?o&-65537:o;o=ba;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((r|0)!=0|o){o=(o&1^1)+(U-n)|0;w=n;o=(r|0)>(o|0)?r:o;u=s;n=N}else{w=N;o=0;u=s;n=N}}s=n-w|0;o=(o|0)<(s|0)?s:o;r=t+o|0;n=(K|0)<(r|0)?r:K;Tj(e,32,n,r,p);if(!(c[e>>2]&32))hj(u,t,e)|0;Tj(e,48,n,r,p^65536);Tj(e,48,o,s,0);if(!(c[e>>2]&32))hj(w,s,e)|0;Tj(e,32,n,r,p^8192);w=J}h:do if((L|0)==245)if(!e)if(f){m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f)break;Rj(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}if((m|0)<10)while(1){if(c[l+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}else m=1}else m=0;while(0);i=ha;return m|0}function Mj(a,b,c){a=a|0;b=b|0;c=c|0;return Si(a,b,c)|0}function Nj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;o=p;c[o>>2]=a;a:do if((e|0)>1){n=0-b|0;g=e;h=a;k=a;l=1;while(1){a=h+n|0;m=g+-2|0;j=h+(0-((c[f+(m<<2)>>2]|0)+b))|0;if((cc[d&15](k,j)|0)>-1?(cc[d&15](k,a)|0)>-1:0){e=l;break a}e=l+1|0;h=o+(l<<2)|0;if((cc[d&15](j,a)|0)>-1){c[h>>2]=j;a=j;g=g+-1|0}else{c[h>>2]=a;g=m}if((g|0)<=1)break a;h=a;k=c[o>>2]|0;l=e}}else e=1;while(0);Pj(b,o,e);i=p;return}function Oj(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+240|0;p=r;k=c[e>>2]|0;e=c[e+4>>2]|0;c[p>>2]=a;o=0-b|0;a:do if((e|0)!=0|(k|0)!=1?(j=a+(0-(c[h+(f<<2)>>2]|0))|0,(cc[d&15](j,a)|0)>=1):0){g=(g|0)==0;n=j;l=k;m=e;j=1;while(1){if(g&(f|0)>1){e=c[h+(f+-2<<2)>>2]|0;if((cc[d&15](a+o|0,n)|0)>-1){g=f;e=j;q=20;break a}if((cc[d&15](a+(0-(e+b))|0,n)|0)>-1){g=f;e=j;q=20;break a}}e=j+1|0;c[p+(j<<2)>>2]=n;g=l+-1|0;do if(g){if(!(g&1)){a=g;g=0;do{g=g+1|0;a=a>>>1}while((a&1|0)==0);if(!g)q=11}else q=11;if((q|0)==11){q=0;if(!m){g=64;q=16;break}if(!(m&1)){a=m;g=0}else{k=0;a=l;j=m;g=0;break}while(1){j=g+1|0;a=a>>>1;if(a&1){a=j;break}else g=j}if(!a){k=0;a=l;j=m;g=0;break}else g=g+33|0}if(g>>>0>31)q=16;else{k=g;a=l;j=m}}else{g=32;q=16}while(0);if((q|0)==16){q=0;k=g+-32|0;a=m;j=0}l=j<<32-k|a>>>k;m=j>>>k;g=g+f|0;if(!((m|0)!=0|(l|0)!=1)){a=n;q=20;break a}a=n+(0-(c[h+(g<<2)>>2]|0))|0;if((cc[d&15](a,c[p>>2]|0)|0)<1){a=n;f=g;g=0;q=19;break}else{k=n;f=g;g=1;n=a;j=e;a=k}}}else{e=1;q=19}while(0);if((q|0)==19?(g|0)==0:0){g=f;q=20}if((q|0)==20){Pj(b,p,e);Nj(a,b,d,g,h)}i=r;return}function Pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,(a|0)!=0):0)while(1){f=a>>>0>256?256:a;ik(e|0,c[b>>2]|0,f|0)|0;e=0;do{j=b+(e<<2)|0;e=e+1|0;ik(c[j>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[j>>2]=(c[j>>2]|0)+f}while((e|0)!=(d|0));if((a|0)==(f|0))break a;a=a-f|0;e=c[g>>2]|0}while(0);i=h;return}function Qj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;ik(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function Sj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=qk(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=pk(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=D}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function Tj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+256|0;h=j;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;ek(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){hj(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;hj(h,f,a)|0}while(0);i=j;return}function Uj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[756]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=3064+(e<<2)|0;e=3064+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[760]|0)>>>0)Da();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Da()}else c[756]=i&~(1<>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[758]|0;if(o>>>0>h>>>0){if(d){e=2<>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=3064+(e<<2)|0;e=3064+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[760]|0)>>>0)Da();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[758]|0;break}else Da()}else{c[756]=i&~(1<>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[761]|0;d=k>>>3;b=d<<1;e=3064+(b<<2)|0;a=c[756]|0;d=1<>2]|0;if(b>>>0<(c[760]|0)>>>0)Da();else{l=a;m=b}}else{c[756]=a|d;l=3064+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[758]=h;c[761]=i;M=j;return M|0}a=c[757]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[3328+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0>>0;d=M?a:d;a=b;e=M?b:e}g=c[760]|0;if(e>>>0>>0)Da();i=e+o|0;if(e>>>0>=i>>>0)Da();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0>>0)Da();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0>>0)Da();b=f+12|0;if((c[b>>2]|0)!=(e|0))Da();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else Da()}while(0);do if(h){b=c[e+28>>2]|0;a=3328+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[760]|0;if(n>>>0>>0)Da();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0>>0)Da();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[760]|0)>>>0)Da();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[758]|0;if(b){g=c[761]|0;d=b>>>3;b=d<<1;f=3064+(b<<2)|0;a=c[756]|0;d=1<>2]|0;if(a>>>0<(c[760]|0)>>>0)Da();else{p=b;q=a}}else{c[756]=a|d;p=3064+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[758]=j;c[761]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[757]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;k=14-(p|q|k)+(v<>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[3328+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[3328+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[758]|0)-m|0)>>>0:0){f=c[760]|0;if(j>>>0>>0)Da();h=j+m|0;if(j>>>0>=h>>>0)Da();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)Da();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)Da();b=e+12|0;if((c[b>>2]|0)!=(j|0))Da();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else Da()}while(0);do if(g){b=c[j+28>>2]|0;a=3328+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[760]|0;if(o>>>0>>0)Da();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0>>0)Da();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[760]|0)>>>0)Da();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=3064+(a<<2)|0;d=c[756]|0;b=1<>2]|0;if(a>>>0<(c[760]|0)>>>0)Da();else{s=b;t=a}}else{c[756]=d|b;s=3064+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=3328+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[757]|0;d=1<>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[760]|0)>>>0)Da();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[760]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else Da()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[758]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[761]|0;if(b>>>0>15){c[761]=a+q;c[758]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[758]=0;c[761]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[759]|0;if(a>>>0>q>>>0){L=a-q|0;c[759]=L;M=c[762]|0;c[762]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[874]|0)){a=$a(30)|0;if(!(a+-1&a)){c[876]=a;c[875]=a;c[877]=-1;c[878]=-1;c[879]=0;c[867]=0;c[874]=(Db(0)|0)&-16^1431655768;break}else Da()}while(0);j=q+48|0;i=c[876]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[866]|0;if((a|0)!=0?(t=c[864]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[867]&4)){a=c[762]|0;e:do if(a){f=3472;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[759]|0)&i;if(d>>>0<2147483647){f=Ua(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=Ua(0)|0;if((g|0)!=(-1|0)){a=g;d=c[875]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[864]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[866]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=Ua(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[876]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((Ua(u|0)|0)==(-1|0)){Ua(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[867]=c[867]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Ua(l|0)|0,x=Ua(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[864]|0)+p|0;c[864]=a;if(a>>>0>(c[865]|0)>>>0)c[865]=a;h=c[762]|0;g:do if(h){g=3472;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[759]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[762]=h+L;c[759]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[763]=c[878];break}a=c[760]|0;if(w>>>0>>0){c[760]=w;a=w}d=w+p|0;g=3472;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=3472;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[761]|0)){M=(c[758]|0)+l|0;c[758]=M;c[761]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Da();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0>>0)Da();a=f+12|0;if((c[a>>2]|0)!=(b|0))Da();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else Da()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=3328+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[760]|0)>>>0)Da();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[757]=c[757]&~(1<>>0>>0)Da();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Da();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[760]|0)>>>0)Da();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=3064+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0>>0)Da();if((c[e+12>>2]|0)==(b|0))break;Da()}while(0);if((f|0)==(e|0)){c[756]=c[756]&~(1<>>0>>0)Da();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Da()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=3064+(a<<2)|0;d=c[756]|0;b=1<>2]|0;if(a>>>0>=(c[760]|0)>>>0){K=b;L=a;break}Da()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;e=14-(J|K|e)+(L<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=3328+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[757]|0;d=1<>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[760]|0)>>>0)Da();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[760]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else Da()}else{M=(c[759]|0)+l|0;c[759]=M;c[762]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=3472;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[762]=w+d;c[759]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[763]=c[878];d=a+4|0;c[d>>2]=27;c[b>>2]=c[868];c[b+4>>2]=c[869];c[b+8>>2]=c[870];c[b+12>>2]=c[871];c[868]=w;c[869]=p;c[871]=0;c[870]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=3064+(a<<2)|0;d=c[756]|0;b=1<>2]|0;if(a>>>0<(c[760]|0)>>>0)Da();else{G=b;H=a}}else{c[756]=d|b;G=3064+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=3328+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[757]|0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[760]|0)>>>0)Da();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[760]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else Da()}}else{M=c[760]|0;if((M|0)==0|w>>>0>>0)c[760]=w;c[868]=w;c[869]=p;c[871]=0;c[765]=c[874];c[764]=-1;b=0;do{M=b<<1;L=3064+(M<<2)|0;c[3064+(M+3<<2)>>2]=L;c[3064+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[762]=w+M;c[759]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[763]=c[878]}while(0);b=c[759]|0;if(b>>>0>q>>>0){L=b-q|0;c[759]=L;M=c[762]|0;c[762]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(qi()|0)>>2]=12;M=0;return M|0}function Vj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;i=c[760]|0;if(b>>>0>>0)Da();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)Da();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0>>0)Da();if((l|0)==(c[761]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[758]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=3064+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0>>0)Da();if((c[e+12>>2]|0)!=(l|0))Da()}if((d|0)==(e|0)){c[756]=c[756]&~(1<>>0>>0)Da();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else Da()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0>>0)Da();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0>>0)Da();b=f+12|0;if((c[b>>2]|0)!=(l|0))Da();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else Da()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=3328+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[760]|0;if(k>>>0>>0)Da();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0>>0)Da();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[760]|0)>>>0)Da();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)Da();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))Da();if(!(d&2)){if((q|0)==(c[762]|0)){t=(c[759]|0)+g|0;c[759]=t;c[762]=u;c[u+4>>2]=t|1;if((u|0)!=(c[761]|0))return;c[761]=0;c[758]=0;return}if((q|0)==(c[761]|0)){t=(c[758]|0)+g|0;c[758]=t;c[761]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[760]|0)>>>0)Da();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[760]|0)>>>0)Da();e=d+12|0;if((c[e>>2]|0)!=(q|0))Da();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else Da()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=3328+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[760]|0;if(p>>>0>>0)Da();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Da();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[760]|0)>>>0)Da();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=3064+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[760]|0)>>>0)Da();if((c[e+12>>2]|0)!=(q|0))Da()}if((d|0)==(e|0)){c[756]=c[756]&~(1<>>0<(c[760]|0)>>>0)Da();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else Da()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[761]|0)){c[758]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=3064+(d<<2)|0;e=c[756]|0;b=1<>2]|0;if(d>>>0<(c[760]|0)>>>0)Da();else{r=b;s=d}}else{c[756]=e|b;r=3064+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=3328+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[757]|0;e=1<>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[760]|0)>>>0)Da();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[760]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else Da()}else{c[757]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[764]|0)+-1|0;c[764]=u;if(!u)b=3480;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[764]=-1;return}function Wj(a,b){a=a|0;b=b|0;var d=0;if(a){d=$(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=Uj(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;ek(b|0,0,d|0)|0;return b|0}function Xj(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=Uj(b)|0;return a|0}if(b>>>0>4294967231){c[(qi()|0)>>2]=12;a=0;return a|0}d=Yj(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=Uj(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;ik(d|0,a|0,(e>>>0>>0?e:b)|0)|0;Vj(a);a=d;return a|0}function Yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=c[o>>2]|0;j=p&-8;l=a+j|0;i=c[760]|0;d=p&3;if(!((d|0)!=1&a>>>0>=i>>>0&a>>>0>>0))Da();e=a+(j|4)|0;f=c[e>>2]|0;if(!(f&1))Da();if(!d){if(b>>>0<256){a=0;return a|0}if(j>>>0>=(b+4|0)>>>0?(j-b|0)>>>0<=c[876]<<1>>>0:0)return a|0;a=0;return a|0}if(j>>>0>=b>>>0){d=j-b|0;if(d>>>0<=15)return a|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|3;c[e>>2]=c[e>>2]|1;Zj(a+b|0,d);return a|0}if((l|0)==(c[762]|0)){d=(c[759]|0)+j|0;if(d>>>0<=b>>>0){a=0;return a|0}n=d-b|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|1;c[762]=a+b;c[759]=n;return a|0}if((l|0)==(c[761]|0)){e=(c[758]|0)+j|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|1;c[a+e>>2]=d;e=a+(e+4)|0;c[e>>2]=c[e>>2]&-2;e=a+b|0}else{c[o>>2]=p&1|e|2;e=a+(e+4)|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[758]=d;c[761]=e;return a|0}if(f&2){a=0;return a|0}m=(f&-8)+j|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;g=f>>>3;do if(f>>>0>=256){h=c[a+(j+24)>>2]|0;g=c[a+(j+12)>>2]|0;do if((g|0)==(l|0)){e=a+(j+20)|0;d=c[e>>2]|0;if(!d){e=a+(j+16)|0;d=c[e>>2]|0;if(!d){k=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Da();else{c[e>>2]=0;k=d;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0>>0)Da();d=f+12|0;if((c[d>>2]|0)!=(l|0))Da();e=g+8|0;if((c[e>>2]|0)==(l|0)){c[d>>2]=g;c[e>>2]=f;k=g;break}else Da()}while(0);if(h){d=c[a+(j+28)>>2]|0;e=3328+(d<<2)|0;if((l|0)==(c[e>>2]|0)){c[e>>2]=k;if(!k){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();d=h+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=k;else c[h+20>>2]=k;if(!k)break}e=c[760]|0;if(k>>>0>>0)Da();c[k+24>>2]=h;d=c[a+(j+16)>>2]|0;do if(d)if(d>>>0>>0)Da();else{c[k+16>>2]=d;c[d+24>>2]=k;break}while(0);d=c[a+(j+20)>>2]|0;if(d)if(d>>>0<(c[760]|0)>>>0)Da();else{c[k+20>>2]=d;c[d+24>>2]=k;break}}}else{f=c[a+(j+8)>>2]|0;e=c[a+(j+12)>>2]|0;d=3064+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Da();if((c[f+12>>2]|0)!=(l|0))Da()}if((e|0)==(f|0)){c[756]=c[756]&~(1<>>0>>0)Da();d=e+8|0;if((c[d>>2]|0)==(l|0))h=d;else Da()}else h=e+8|0;c[f+12>>2]=e;c[h>>2]=f}while(0);if(n>>>0<16){c[o>>2]=m|p&1|2;b=a+(m|4)|0;c[b>>2]=c[b>>2]|1;return a|0}else{c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|3;p=a+(m|4)|0;c[p>>2]=c[p>>2]|1;Zj(a+b|0,n);return a|0}return 0}function Zj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){k=c[a>>2]|0;if(!(d&3))return;n=a+(0-k)|0;m=k+b|0;j=c[760]|0;if(n>>>0>>0)Da();if((n|0)==(c[761]|0)){e=a+(b+4)|0;d=c[e>>2]|0;if((d&3|0)!=3){t=n;h=m;break}c[758]=m;c[e>>2]=d&-2;c[a+(4-k)>>2]=m|1;c[q>>2]=m;return}g=k>>>3;if(k>>>0<256){f=c[a+(8-k)>>2]|0;e=c[a+(12-k)>>2]|0;d=3064+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Da();if((c[f+12>>2]|0)!=(n|0))Da()}if((e|0)==(f|0)){c[756]=c[756]&~(1<>>0>>0)Da();d=e+8|0;if((c[d>>2]|0)==(n|0))i=d;else Da()}else i=e+8|0;c[f+12>>2]=e;c[i>>2]=f;t=n;h=m;break}i=c[a+(24-k)>>2]|0;f=c[a+(12-k)>>2]|0;do if((f|0)==(n|0)){f=16-k|0;e=a+(f+4)|0;d=c[e>>2]|0;if(!d){e=a+f|0;d=c[e>>2]|0;if(!d){l=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Da();else{c[e>>2]=0;l=d;break}}else{g=c[a+(8-k)>>2]|0;if(g>>>0>>0)Da();d=g+12|0;if((c[d>>2]|0)!=(n|0))Da();e=f+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=f;c[e>>2]=g;l=f;break}else Da()}while(0);if(i){d=c[a+(28-k)>>2]|0;e=3328+(d<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=l;if(!l){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();d=i+16|0;if((c[d>>2]|0)==(n|0))c[d>>2]=l;else c[i+20>>2]=l;if(!l){t=n;h=m;break}}f=c[760]|0;if(l>>>0>>0)Da();c[l+24>>2]=i;d=16-k|0;e=c[a+d>>2]|0;do if(e)if(e>>>0>>0)Da();else{c[l+16>>2]=e;c[e+24>>2]=l;break}while(0);d=c[a+(d+4)>>2]|0;if(d)if(d>>>0<(c[760]|0)>>>0)Da();else{c[l+20>>2]=d;c[d+24>>2]=l;t=n;h=m;break}else{t=n;h=m}}else{t=n;h=m}}else{t=a;h=b}while(0);j=c[760]|0;if(q>>>0>>0)Da();d=a+(b+4)|0;e=c[d>>2]|0;if(!(e&2)){if((q|0)==(c[762]|0)){s=(c[759]|0)+h|0;c[759]=s;c[762]=t;c[t+4>>2]=s|1;if((t|0)!=(c[761]|0))return;c[761]=0;c[758]=0;return}if((q|0)==(c[761]|0)){s=(c[758]|0)+h|0;c[758]=s;c[761]=t;c[t+4>>2]=s|1;c[t+s>>2]=s;return}h=(e&-8)+h|0;g=e>>>3;do if(e>>>0>=256){i=c[a+(b+24)>>2]|0;f=c[a+(b+12)>>2]|0;do if((f|0)==(q|0)){e=a+(b+20)|0;d=c[e>>2]|0;if(!d){e=a+(b+16)|0;d=c[e>>2]|0;if(!d){p=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Da();else{c[e>>2]=0;p=d;break}}else{g=c[a+(b+8)>>2]|0;if(g>>>0>>0)Da();d=g+12|0;if((c[d>>2]|0)!=(q|0))Da();e=f+8|0;if((c[e>>2]|0)==(q|0)){c[d>>2]=f;c[e>>2]=g;p=f;break}else Da()}while(0);if(i){d=c[a+(b+28)>>2]|0;e=3328+(d<<2)|0;if((q|0)==(c[e>>2]|0)){c[e>>2]=p;if(!p){c[757]=c[757]&~(1<>>0<(c[760]|0)>>>0)Da();d=i+16|0;if((c[d>>2]|0)==(q|0))c[d>>2]=p;else c[i+20>>2]=p;if(!p)break}e=c[760]|0;if(p>>>0>>0)Da();c[p+24>>2]=i;d=c[a+(b+16)>>2]|0;do if(d)if(d>>>0>>0)Da();else{c[p+16>>2]=d;c[d+24>>2]=p;break}while(0);d=c[a+(b+20)>>2]|0;if(d)if(d>>>0<(c[760]|0)>>>0)Da();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{f=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;d=3064+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Da();if((c[f+12>>2]|0)!=(q|0))Da()}if((e|0)==(f|0)){c[756]=c[756]&~(1<>>0>>0)Da();d=e+8|0;if((c[d>>2]|0)==(q|0))o=d;else Da()}else o=e+8|0;c[f+12>>2]=e;c[o>>2]=f}while(0);c[t+4>>2]=h|1;c[t+h>>2]=h;if((t|0)==(c[761]|0)){c[758]=h;return}}else{c[d>>2]=e&-2;c[t+4>>2]=h|1;c[t+h>>2]=h}d=h>>>3;if(h>>>0<256){e=d<<1;g=3064+(e<<2)|0;f=c[756]|0;d=1<>2]|0;if(e>>>0<(c[760]|0)>>>0)Da();else{r=d;s=e}}else{c[756]=f|d;r=3064+(e+2<<2)|0;s=g}c[r>>2]=t;c[s+12>>2]=t;c[t+8>>2]=s;c[t+12>>2]=g;return}d=h>>>8;if(d)if(h>>>0>16777215)g=31;else{r=(d+1048320|0)>>>16&8;s=d<>>16&4;s=s<>>16&2;g=14-(q|r|g)+(s<>>15)|0;g=h>>>(g+7|0)&1|g<<1}else g=0;d=3328+(g<<2)|0;c[t+28>>2]=g;c[t+20>>2]=0;c[t+16>>2]=0;e=c[757]|0;f=1<>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}d=c[d>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(h|0)){g=h<<((g|0)==31?0:25-(g>>>1)|0);while(1){e=d+16+(g>>>31<<2)|0;f=c[e>>2]|0;if(!f)break;if((c[f+4>>2]&-8|0)==(h|0)){d=f;break a}else{g=g<<1;d=f}}if(e>>>0<(c[760]|0)>>>0)Da();c[e>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}while(0);e=d+8|0;f=c[e>>2]|0;s=c[760]|0;if(!(f>>>0>=s>>>0&d>>>0>=s>>>0))Da();c[f+12>>2]=t;c[e>>2]=t;c[t+8>>2]=f;c[t+12>>2]=d;c[t+24>>2]=0;return} -function Ee(b,e,f,j,k,l,m,n,o,p,q,r){b=b|0;e=e|0;f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=+q;r=r|0;var s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0;T=i;i=i+240|0;x=T+224|0;w=T+216|0;C=T+208|0;B=T+200|0;s=T+136|0;N=T+72|0;P=T;Q=T+232|0;R=T+228|0;h[s>>3]=100.0;h[s+8>>3]=100.0;h[s+16>>3]=110.0;h[s+24>>3]=100.0;h[s+32>>3]=110.0;h[s+40>>3]=110.0;h[s+48>>3]=100.0;h[s+56>>3]=110.0;h[N>>3]=+h[p>>3];h[N+8>>3]=+h[p+8>>3];h[N+16>>3]=+h[p+16>>3];h[N+24>>3]=+h[p+24>>3];h[N+32>>3]=+h[p+32>>3];h[N+40>>3]=+h[p+40>>3];h[N+48>>3]=+h[p+48>>3];h[N+56>>3]=+h[p+56>>3];He(s,N,P);A=+h[N>>3];V=+h[N+16>>3];y=A-V;J=+h[N+8>>3];U=+h[N+24>>3];u=J-U;s=~~(y*y+u*u);u=+h[N+32>>3];y=+h[N+48>>3];X=u-y;v=+h[N+40>>3];z=+h[N+56>>3];W=v-z;N=~~(X*X+W*W);u=V-u;v=U-v;t=~~(u*u+v*v);A=y-A;J=z-J;O=~~(A*A+J*J);s=~~(+(((N|0)>(s|0)?N:s)|0)*q*q);t=~~(+(((O|0)>(t|0)?O:t)|0)*q*q);if(!b){p=f;while(1)if((p|0)<(j|0)&($(p,p)|0)<(s|0))p=p<<1;else break;s=f;while(1)if((s|0)<(j|0)&($(s,s)|0)<(t|0))s=s<<1;else break}else{p=f;while(1)if((p|0)<(j|0)&($(p<<2,p)|0)<(s|0))p=p<<1;else break;s=f;while(1)if((s|0)<(j|0)&($(s<<2,s)|0)<(t|0))s=s<<1;else break}O=(p|0)>(j|0)?j:p;M=(s|0)>(j|0)?j:s;L=(O|0)/(f|0)|0;K=(M|0)/(f|0)|0;u=(1.0-q)*.5*10.0;J=q*10.0;N=$(f,f)|0;a:do if(!e){I=N*3|0;p=Wj(I,4)|0;if(!p){Me(3,5472,B);rb(1)}do switch(n|0){case 0:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=(($(t,l)|0)+s|0)*3|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+2)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+t>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 1:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=(($(t,l)|0)+s|0)*3|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+t>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t+2)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 2:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+t>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 3:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+t>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|2)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 4:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|3)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 5:case 12:case 13:case 14:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=d[k+(($(t,l)|0)+s)>>0]|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+t;s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+t;b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+t}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 6:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|3)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|1)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 7:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Z=$(t,l)|0;Y=(s&65534)+Z<<1;V=+((d[k+Y>>0]|0)+-128|0);X=+((d[k+(Y+2)>>0]|0)+-128|0);W=+((d[k+(Z+s<<1|1)>>0]|0)+-16|0)*298.0820007324219;Z=~~(V*516.4110107421875+W)>>8;Y=~~(W-V*100.29100036621094-X*208.1199951171875)>>8;t=~~(W+X*408.5830078125)>>8;Z=(Z|0)>0?Z:0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=((Z|0)<255?Z:255)+(c[s>>2]|0);Y=(Y|0)>0?Y:0;s=p+(b+1<<2)|0;c[s>>2]=((Y|0)<255?Y:255)+(c[s>>2]|0);t=(t|0)>0?t:0;b=p+(b+2<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 8:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=$(t,l)|0;Y=(s&65534)+t<<1;V=+((d[k+(Y|1)>>0]|0)+-128|0);X=+((d[k+(Y+3)>>0]|0)+-128|0);W=+((d[k+(t+s<<1)>>0]|0)+-16|0)*298.0820007324219;s=~~(W+V*516.4110107421875)>>8;t=~~(W-V*100.29100036621094-X*208.1199951171875)>>8;Y=~~(W+X*408.5830078125)>>8;s=(s|0)>0?s:0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=((s|0)<255?s:255)+(c[b>>2]|0);t=(t|0)>0?t:0;b=p+(Z+1<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0);Y=(Y|0)>0?Y:0;Z=p+(Z+2<<2)|0;c[Z>>2]=((Y|0)<255?Y:255)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 9:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;t=d[k+(Y|1)>>0]|0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(t<<3&248|4)+(c[b>>2]|0);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<5&224|t>>>3&28|2)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&248|4)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 10:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;t=d[k+(Y|1)>>0]|0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(t<<2&248|4)+(c[b>>2]|0);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<5&224|t>>>3&24|4)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&248|4)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 11:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(c[b>>2]|0)+((d[k+(Y|1)>>0]|0)&240|8);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<4&240|8)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&240|8)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}default:{Me(3,4615,C);S=278;break a}}while(0);t=$(K,L)|0;if(N){s=0;do{a[r+s>>0]=((c[p+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}while((s|0)<(I|0))}Vj(p);p=0}else{p=Wj(N,4)|0;if(!p){Me(3,5472,w);rb(1)}b:do if(n>>>0<2){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=(($(t,l)|0)+s|0)*3|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y+1)>>0]|0)+(d[k+Y>>0]|0)+(d[k+(Y+2)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}}else{if((n&-2|0)==2){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break;e=(O|0)>0;x=0;while(1){v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<2;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y|1)>>0]|0)+(d[k+Y>>0]|0)+(d[k+(Y|2)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0;if((x|0)>=(M|0))break b}}if((n&-3|0)==4){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break;e=(O|0)>0;x=0;while(1){v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<2;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y|2)>>0]|0)+(d[k+(Y|1)>>0]|0)+(d[k+(Y|3)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0;if((x|0)>=(M|0))break b}}switch(n|0){case 5:case 12:case 13:case 14:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 7:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s<<1|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 8:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s<<1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 9:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Y=d[k+(Y|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((Y<<3&248|4)+(I&248|4)+(I<<5&224|Y>>>3&28|2)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 10:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Y=d[k+(Y|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((Y<<2&248|4)+(I&248|4)+(I<<5&224|Y>>>3&24|4)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 11:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lf(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((I<<4&240|8)+(I&240|8)+((d[k+(Y|1)>>0]|0)&240|8)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}default:{Me(3,4615,x);S=278;break a}}}while(0);s=$(K,L)|0;if(N){t=0;do{a[r+t>>0]=((c[p+(t<<2)>>2]|0)>>>0)/(s>>>0)|0;t=t+1|0}while((t|0)<(N|0))}Vj(p);p=0}while(0);if((S|0)==278){Vj(p);p=-1}i=T;return p|0}function Fe(b,e,f,g,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+32|0;p=v+24|0;o=v+8|0;u=v;a:do if((e+-3|0)>>>0>5){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-1}else{c[o>>2]=0;t=e+-1|0;c[o+4>>2]=$(t,e)|0;r=$(e,e)|0;c[o+8>>2]=r+-1;c[o+12>>2]=t;n=a[b+(c[o>>2]|0)>>0]|0;m=(n&255)>0?n:0;n=(n&255)<255?n:-1;s=a[b+(c[o+4>>2]|0)>>0]|0;m=(s&255)>(m&255)?s:m;n=(s&255)<(n&255)?s:n;s=a[b+(c[o+8>>2]|0)>>0]|0;m=(s&255)>(m&255)?s:m;n=(s&255)<(n&255)?s:n;s=a[b+(c[o+12>>2]|0)>>0]|0;m=((s&255)>(m&255)?s:m)&255;n=((s&255)<(n&255)?s:n)&255;if((m-n|0)<30){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-2;break}q=(m+n|0)>>>1;a[p>>0]=(d[b+(c[o>>2]|0)>>0]|0)>>>0>>0&1;a[p+1>>0]=(d[b+(c[o+4>>2]|0)>>0]|0)>>>0>>0&1;a[p+2>>0]=(d[b+(c[o+8>>2]|0)>>0]|0)>>>0>>0&1;a[p+3>>0]=(d[b+(c[o+12>>2]|0)>>0]|0)>>>0>>0&1;n=0;while(1){m=n+1|0;if(((a[p+n>>0]|0)==1?(a[p+((m|0)%4|0)>>0]|0)==1:0)?(a[p+((n+2|0)%4|0)>>0]|0)==0:0){m=n;n=10;break}if((m|0)<4)n=m;else{n=12;break}}if((n|0)==10)c[g>>2]=m;else if((n|0)==12?(m|0)==4:0){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-3;break}if(!r)s=255;else{m=255;n=0;do{s=b+n|0;p=d[s>>0]|0;o=p-q|0;o=(o|0)<0?0-o|0:o;m=(o|0)<(m|0)?o:m;a[s>>0]=p>>>0>>0&1;n=n+1|0}while((n|0)<(r|0));s=m}switch(c[g>>2]|0){case 0:{if((e|0)>0){r=(e|0)==0;n=0;m=0;g=0;do{p=(g|0)==(t|0);q=$(g,e)|0;if(!r){o=0;do{if((o|g|0)!=0?!(p&((o|0)==0|(o|0)==(t|0))):0){n=fk(n|0,m|0,1)|0;n=(a[b+(o+q)>>0]|0)!=0|n;m=D}o=o+1|0}while((o|0)!=(e|0))}g=g+1|0}while((g|0)<(e|0))}else{n=0;m=0}break}case 1:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=0;do{p=(g|0)==0;q=(g|0)==(t|0);if(r){o=t;while(1){w=(o|0)==(t|0);if(!(p&w)?!(q&(w|(o|0)==0)):0){n=fk(n|0,m|0,1)|0;n=(a[b+(($(o,e)|0)+g)>>0]|0)!=0|n;m=D}if((o|0)>0)o=o+-1|0;else break}}g=g+1|0}while((g|0)<(e|0))}else{n=0;m=0}break}case 2:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=t;while(1){q=(g|0)==(t|0)|(g|0)==0;p=$(g,e)|0;if(r){o=t;while(1){if(!(q&(o|0)==(t|0)|(o|g|0)==0)){n=fk(n|0,m|0,1)|0;n=(a[b+(o+p)>>0]|0)!=0|n;m=D}if((o|0)>0)o=o+-1|0;else break}}if((g|0)>0)g=g+-1|0;else break}}else{n=0;m=0}break}case 3:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=t;while(1){p=(g|0)==(t|0);q=(g|0)==0;if(r){o=0;do{if(!(p&(o|0)==0|(o|g|0)==0|q&(o|0)==(t|0))){n=fk(n|0,m|0,1)|0;n=(a[b+(($(o,e)|0)+g)>>0]|0)!=0|n;m=D}o=o+1|0}while((o|0)<(e|0))}if((g|0)>0)g=g+-1|0;else break}}else{n=0;m=0}break}default:{n=0;m=0}}h[j>>3]=(s|0)>30?1.0:+(s|0)/30.0;switch(k|0){case 259:{w=a[4551+n>>0]|0;k=w<<24>>24;l=u;c[l>>2]=k;c[l+4>>2]=((k|0)<0)<<31>>31;if(w<<24>>24<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}break}case 515:{m=a[4423+n>>0]|0;k=m<<24>>24;w=u;c[w>>2]=k;c[w+4>>2]=((k|0)<0)<<31>>31;if(l)c[l>>2]=d[4487+n>>0];if(m<<24>>24<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}break}case 772:case 1028:{m=Ie(k,n,m,0,u)|0;if((m|0)<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}if((l|0)!=0&(m|0)>0)c[l>>2]=m;break}default:{w=u;c[w>>2]=n;c[w+4>>2]=m}}c[f>>2]=c[u>>2];m=0}while(0);i=v;return m|0}function Ge(a,b,e,f,g,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0;C=i;i=i+16|0;l=C+8|0;n=C;a:do if(!a){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;b=-1}else switch(b|0){case 0:{o=$(f,f)|0;z=o*3|0;A=Uj(o*12|0)|0;if(!A){Me(3,5472,n);rb(1)}if(!o)b=0;else{b=0;l=0;do{b=((d[e+l>>0]|0)^255)+b|0;l=l+1|0}while((l|0)<(z|0))}l=(b|0)/(z|0)|0;if(!o)m=0.0;else{n=0;b=0;do{x=((d[e+n>>0]|0)^255)-l|0;c[A+(n<<2)>>2]=x;b=($(x,x)|0)+b|0;n=n+1|0}while((n|0)<(z|0));m=+(b|0)}y=+P(+m);if(y/(+(f|0)*1.7320508)<15.0){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;Vj(A);b=-2;break a}v=c[a>>2]|0;w=a+12|0;x=a+16|0;if((v|0)>0){u=c[a+8>>2]|0;s=(o|0)==0;n=-1;t=0;m=0.0;l=-1;b=-1;do{b:while(1){n=n+1|0;switch(c[u+(n<<2)>>2]|0){case 0:break;case 2:break b;default:{B=17;break b}}}if((B|0)==17){B=0;p=n<<2;q=c[x>>2]|0;r=0;do{a=r+p|0;if(s)o=0;else{e=c[(c[w>>2]|0)+(a<<2)>>2]|0;f=0;o=0;do{o=($(c[e+(f<<2)>>2]|0,c[A+(f<<2)>>2]|0)|0)+o|0;f=f+1|0}while((f|0)<(z|0))}D=+(o|0)/+h[q+(a<<3)>>3]/y;a=D>m;l=a?r:l;b=a?n:b;m=a?D:m;r=r+1|0}while((r|0)!=4)}t=t+1|0}while((t|0)<(v|0))}else{m=0.0;l=-1;b=-1}c[j>>2]=l;c[g>>2]=b;h[k>>3]=m;Vj(A);b=0;break a}case 1:{z=$(f,f)|0;A=Uj(z<<2)|0;if(!A){Me(3,5472,l);rb(1)}if(!z)b=0;else{b=0;l=0;do{b=((d[e+l>>0]|0)^255)+b|0;l=l+1|0}while((l|0)<(z|0))}l=(b|0)/(z|0)|0;if(!z)m=0.0;else{n=0;b=0;do{x=((d[e+n>>0]|0)^255)-l|0;c[A+(n<<2)>>2]=x;b=($(x,x)|0)+b|0;n=n+1|0}while((n|0)<(z|0));m=+(b|0)}y=+P(+m);if(y/+(f|0)<15.0){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;Vj(A);b=-2;break a}v=c[a>>2]|0;w=a+20|0;x=a+24|0;if((v|0)>0){s=c[a+8>>2]|0;t=(z|0)==0;n=-1;u=0;m=0.0;l=-1;b=-1;do{c:while(1){n=n+1|0;switch(c[s+(n<<2)>>2]|0){case 0:break;case 2:break c;default:{B=37;break c}}}if((B|0)==37){B=0;p=n<<2;q=c[x>>2]|0;r=0;do{a=r+p|0;if(t)o=0;else{e=c[(c[w>>2]|0)+(a<<2)>>2]|0;f=0;o=0;do{o=($(c[e+(f<<2)>>2]|0,c[A+(f<<2)>>2]|0)|0)+o|0;f=f+1|0}while((f|0)<(z|0))}D=+(o|0)/+h[q+(a<<3)>>3]/y;a=D>m;l=a?r:l;b=a?n:b;m=a?D:m;r=r+1|0}while((r|0)!=4)}u=u+1|0}while((u|0)<(v|0))}else{m=0.0;l=-1;b=-1}c[j>>2]=l;c[g>>2]=b;h[k>>3]=m;Vj(A);b=0;break a}default:{b=-1;break a}}while(0);i=C;return b|0}function He(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=Re(8,8)|0;f=Re(8,1)|0;g=Re(8,1)|0;i=c[e>>2]|0;j=c[f>>2]|0;k=0;do{p=a+(k<<4)|0;l=k<<4;h[i+(l<<3)>>3]=+h[p>>3];o=a+(k<<4)+8|0;h[i+((l|1)<<3)>>3]=+h[o>>3];h[i+((l|2)<<3)>>3]=1.0;h[i+((l|3)<<3)>>3]=0.0;h[i+((l|4)<<3)>>3]=0.0;h[i+((l|5)<<3)>>3]=0.0;n=b+(k<<4)|0;h[i+((l|6)<<3)>>3]=-(+h[p>>3]*+h[n>>3]);h[i+((l|7)<<3)>>3]=-(+h[o>>3]*+h[n>>3]);h[i+((l|8)<<3)>>3]=0.0;h[i+((l|9)<<3)>>3]=0.0;h[i+((l|10)<<3)>>3]=0.0;h[i+((l|11)<<3)>>3]=+h[p>>3];h[i+((l|12)<<3)>>3]=+h[o>>3];h[i+((l|13)<<3)>>3]=1.0;m=b+(k<<4)+8|0;h[i+((l|14)<<3)>>3]=-(+h[p>>3]*+h[m>>3]);h[i+((l|15)<<3)>>3]=-(+h[o>>3]*+h[m>>3]);l=k<<1;h[j+(l<<3)>>3]=+h[n>>3];h[j+((l|1)<<3)>>3]=+h[m>>3];k=k+1|0}while((k|0)!=4);_e(e)|0;Xe(g,e,f)|0;p=c[g>>2]|0;h[d>>3]=+h[p>>3];h[d+8>>3]=+h[p+8>>3];h[d+16>>3]=+h[p+16>>3];p=c[g>>2]|0;h[d+24>>3]=+h[p+24>>3];h[d+32>>3]=+h[p+32>>3];h[d+40>>3]=+h[p+40>>3];p=c[g>>2]|0;h[d+48>>3]=+h[p+48>>3];h[d+56>>3]=+h[p+56>>3];h[d+64>>3]=1.0;We(e)|0;We(f)|0;We(g)|0;return}function Ie(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+2320|0;k=I+2304|0;y=I+864|0;u=I+784|0;H=I+704|0;w=I+624|0;v=I+548|0;G=I+40|0;E=I;switch(b|0){case 772:{g=9;j=1;l=3;break}case 1028:{g=5;j=2;l=3;break}case 2830:{A=900;s=1472;C=64;F=120;z=127;B=g;j=9;l=6;break}default:f=-1}if((l|0)==3){b=0;while(1){a[k+b>>0]=e&1;e=hk(e|0,f|0,1)|0;b=b+1|0;if((b|0)==13)break;else f=D}A=840;s=1408;C=g;F=13;z=15;B=k;l=6}do if((l|0)==6){r=j<<1;k=1;f=0;while(1){g=v+(k<<2)|0;c[g>>2]=0;b=0;e=0;do{if(a[B+e>>0]|0){b=b^c[A+((($(e,k)|0)%(z|0)|0)<<2)>>2];c[g>>2]=b}e=e+1|0}while((e|0)<(F|0));f=(b|0)==0?f:1;c[g>>2]=c[s+(b<<2)>>2];if((k|0)<(r|0))k=k+1|0;else break}x=(f|0)!=0;if(x){c[u>>2]=0;f=c[v+4>>2]|0;c[u+4>>2]=f;c[y>>2]=0;c[y+72>>2]=1;if((r|0)>1){b=1;do{c[y+(b<<2)>>2]=-1;c[y+72+(b<<2)>>2]=0;b=b+1|0}while((b|0)<(r|0))}c[H>>2]=0;c[H+4>>2]=0;c[w>>2]=-1;c[w+4>>2]=0;p=0;q=0;while(1){g=q;q=q+1|0;o=u+(q<<2)|0;if((f|0)==-1){k=g+2|0;c[H+(k<<2)>>2]=p;if((p|0)<0)n=p;else{f=0;while(1){o=y+(q*72|0)+(f<<2)|0;n=c[o>>2]|0;c[y+(k*72|0)+(f<<2)>>2]=n;c[o>>2]=c[s+(n<<2)>>2];if((f|0)<(p|0))f=f+1|0;else{n=p;break}}}}else{b=g;while(1){f=(b|0)>0;if(f&(c[u+(b<<2)>>2]|0)==-1)b=b+-1|0;else break}if(f){e=b;do{f=e;e=e+-1|0;if((c[u+(e<<2)>>2]|0)!=-1)b=(c[w+(b<<2)>>2]|0)<(c[w+(e<<2)>>2]|0)?e:b}while((f|0)>1)}e=H+(b<<2)|0;m=q-b|0;n=m+(c[e>>2]|0)|0;k=g+2|0;n=(p|0)>(n|0)?p:n;c[H+(k<<2)>>2]=n;f=0;do{c[y+(k*72|0)+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(r|0));f=c[e>>2]|0;e=u+(b<<2)|0;if((f|0)>=0){l=0;while(1){g=c[y+(b*72|0)+(l<<2)>>2]|0;if((g|0)!=-1)c[y+(k*72|0)+(m+l<<2)>>2]=c[A+(((g+z+(c[o>>2]|0)-(c[e>>2]|0)|0)%(z|0)|0)<<2)>>2];if((l|0)<(f|0))l=l+1|0;else break}}if((p|0)>=0){f=0;while(1){o=y+(q*72|0)+(f<<2)|0;m=c[o>>2]|0;l=y+(k*72|0)+(f<<2)|0;c[l>>2]=c[l>>2]^m;c[o>>2]=c[s+(m<<2)>>2];if((f|0)<(p|0))f=f+1|0;else break}}}c[w+(k<<2)>>2]=q-n;if((q|0)>=(r|0))break;f=c[v+(k<<2)>>2]|0;if((f|0)==-1)f=0;else f=c[A+(f<<2)>>2]|0;g=u+(k<<2)|0;c[g>>2]=f;if((n|0)>=1){e=1;while(1){b=c[v+(k-e<<2)>>2]|0;if((b|0)!=-1?(t=c[y+(k*72|0)+(e<<2)>>2]|0,(t|0)!=0):0){f=f^c[A+((((c[s+(t<<2)>>2]|0)+b|0)%(z|0)|0)<<2)>>2];c[g>>2]=f}if((e|0)<(n|0))e=e+1|0;else break}}f=c[s+(f<<2)>>2]|0;c[g>>2]=f;if((n|0)>(j|0))break;else p=n}if((n|0)>(j|0)){f=-1;break}if((n|0)>=0){f=0;while(1){w=y+(k*72|0)+(f<<2)|0;c[w>>2]=c[s+(c[w>>2]<<2)>>2];if((f|0)<(n|0))f=f+1|0;else break}}if((n|0)>=1){f=1;while(1){c[E+(f<<2)>>2]=c[y+(k*72|0)+(f<<2)>>2];if((f|0)<(n|0))f=f+1|0;else break}}l=(n|0)<1;f=0;m=1;do{if(l)b=1;else{j=1;b=1;while(1){e=E+(j<<2)|0;g=c[e>>2]|0;if((g|0)!=-1){y=(g+j|0)%(z|0)|0;c[e>>2]=y;b=c[A+(y<<2)>>2]^b}if((j|0)<(n|0))j=j+1|0;else break}}if(!b){c[G+(f<<2)>>2]=z-m;f=f+1|0}m=m+1|0}while((z|0)>=(m|0));if((f|0)!=(n|0)){f=-1;break}if((n|0)>0){f=0;do{E=B+(c[G+(f<<2)>>2]|0)|0;a[E>>0]=d[E>>0]^1;f=f+1|0}while((f|0)<(n|0))}}else k=0;b=h;c[b>>2]=0;c[b+4>>2]=0;b=1;e=0;g=0;j=0;f=F-C|0;while(1){G=ok(d[B+f>>0]|0,0,b|0,e|0)|0;g=gk(G|0,D|0,g|0,j|0)|0;j=D;G=h;c[G>>2]=g;c[G+4>>2]=j;b=fk(b|0,e|0,1)|0;f=f+1|0;if((f|0)>=(F|0))break;else e=D}if(x)f=c[H+(k<<2)>>2]|0;else f=0}while(0);i=I;return f|0}function Je(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=i;i=i+32|0;z=A+24|0;g=A+16|0;d=A+8|0;do if(a){if(!b){Me(3,4674,d);d=-1;break}y=a+8|0;f=c[a+4>>2]|0;a:do if((f|0)>0){e=c[y>>2]|0;d=0;do{if(!(c[e+(d<<2)>>2]|0))break a;d=d+1|0}while((d|0)<(f|0))}else d=0;while(0);if((d|0)!=(f|0)){x=Aj(b)|0;if(!x){Me(3,4719,g);d=-1;break}r=a+28|0;s=d<<2;t=a+12|0;u=a+20|0;v=a+16|0;w=a+24|0;f=Gj(x,4742)|0;e=0;b:while(1){q=e+s|0;p=0;b=0;do{n=(p|0)==0;o=(p|0)==2;g=c[r>>2]|0;if((g|0)>0){m=0;do{if((g|0)>0){l=0;do{if(!f){e=17;break b}g=qj(f)|0;f=Gj(0,4742)|0;g=255-g|0;k=((($(c[r>>2]|0,m)|0)+l|0)*3|0)+p|0;c[(c[(c[t>>2]|0)+(q<<2)>>2]|0)+(k<<2)>>2]=g;k=($(c[r>>2]|0,m)|0)+l|0;j=c[(c[u>>2]|0)+(q<<2)>>2]|0;k=j+(k<<2)|0;if(!n){c[k>>2]=(c[k>>2]|0)+g;if(o){k=j+(($(c[r>>2]|0,m)|0)+l<<2)|0;c[k>>2]=(c[k>>2]|0)/3|0}}else c[k>>2]=g;b=g+b|0;l=l+1|0;g=c[r>>2]|0}while((l|0)<(g|0))}m=m+1|0}while((m|0)<(g|0))}p=p+1|0}while((p|0)<3);g=c[r>>2]|0;l=(b|0)/($(g*3|0,g)|0)|0;if(($(g*3|0,g)|0)>0){j=c[(c[t>>2]|0)+(q<<2)>>2]|0;k=0;b=0;do{p=j+(k<<2)|0;g=(c[p>>2]|0)-l|0;c[p>>2]=g;b=($(g,g)|0)+b|0;k=k+1|0;g=c[r>>2]|0}while((k|0)<($(g*3|0,g)|0))}else b=0;B=+P(+(+(b|0)));h[(c[v>>2]|0)+(q<<3)>>3]=B==0.0?1.0e-07:B;if(!($(g,g)|0))b=0;else{g=c[(c[u>>2]|0)+(q<<2)>>2]|0;j=0;b=0;do{o=g+(j<<2)|0;p=(c[o>>2]|0)-l|0;c[o>>2]=p;b=($(p,p)|0)+b|0;j=j+1|0;p=c[r>>2]|0}while((j|0)<($(p,p)|0))}B=+P(+(+(b|0)));h[(c[w>>2]|0)+(q<<3)>>3]=B==0.0?1.0e-07:B;e=e+1|0;if((e|0)>=4){e=32;break}}if((e|0)==17){Me(3,4747,z);Vj(x);d=-1;break}else if((e|0)==32){Vj(x);c[(c[y>>2]|0)+(d<<2)>>2]=1;c[a>>2]=(c[a>>2]|0)+1;break}}else d=-1}else{Me(3,4649,A);d=-1}while(0);i=A;return d|0}function Ke(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k+8|0;e=k;g=_i(d,4854)|0;do if(g){dj(g,0,2)|0;e=gj(g)|0;dj(g,0,0)|0;f=Uj(e+1|0)|0;if(!f){Me(3,5472,h);Wi(g)|0;e=-1;break}h=aj(f,e,1,g)|0;Wi(g)|0;if(!h){c[j>>2]=d;Me(3,4820,j);Vj(f);e=-1;break}else{a[f+e>>0]=0;e=Je(b,f)|0;Vj(f);break}}else{c[e>>2]=d;Me(3,4774,e);e=-1}while(0);i=k;return e|0}function Le(a,b){a=a|0;b=b|0;b=(c[a+8>>2]|0)+(b<<2)|0;if(!(c[b>>2]|0))b=-1;else{c[b>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;b=1}return b|0}function Me(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+16|0;f=j;c[h>>2]=0;if(((d|0)!=0&(c[496]|0)<=(b|0)?(a[d>>0]|0)!=0:0)?(c[f>>2]=e,g=lj(h,d,f)|0,(g|0)>-1):0){f=c[497]|0;do if(f){if(!(c[498]|0)){Wb[f&15](c[h>>2]|0);break}e=gb()|0;b=c[500]|0;if((e|0)==(c[499]|0)){if((b|0)>0){Wb[f&15](c[502]|0);c[500]=0;f=c[497]|0}Wb[f&15](c[h>>2]|0);break}f=c[501]|0;if((b|0)<(f|0)){d=(c[502]|0)+b|0;if((g|0)<(-3-b+f|0)){yj(d,c[h>>2]|0)|0;c[500]=(c[500]|0)+g;break}else{a[d>>0]=46;a[d+1>>0]=46;a[d+2>>0]=46;a[d+3>>0]=0;c[500]=c[501];break}}}else $i(c[h>>2]|0,c[659]|0)|0;while(0);Vj(c[h>>2]|0)}i=j;return}function Ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0;i=0;do{d=a+(i<<5)|0;e=a+(i<<5)+8|0;f=a+(i<<5)+16|0;g=0;do{h[c+(i<<5)+(g<<3)>>3]=+h[d>>3]*+h[b+(g<<3)>>3]+ +h[e>>3]*+h[b+32+(g<<3)>>3]+ +h[f>>3]*+h[b+64+(g<<3)>>3];g=g+1|0}while((g|0)!=4);g=c+(i<<5)+24|0;h[g>>3]=+h[a+(i<<5)+24>>3]+ +h[g>>3];i=i+1|0}while((i|0)!=3);return 0}function Oe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Re(4,4)|0;d=c[j>>2]|0;e=c[j>>2]|0;f=c[j>>2]|0;g=c[j>>2]|0;i=0;do{k=i<<2;h[d+(k<<3)>>3]=+h[a+(i<<5)>>3];h[e+(1+k<<3)>>3]=+h[a+(i<<5)+8>>3];h[f+(2+k<<3)>>3]=+h[a+(i<<5)+16>>3];h[g+(3+k<<3)>>3]=+h[a+(i<<5)+24>>3];i=i+1|0}while((i|0)!=3);d=c[j>>2]|0;e=d+96|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[d+120>>3]=1.0;_e(j)|0;d=c[j>>2]|0;e=c[j>>2]|0;f=c[j>>2]|0;g=c[j>>2]|0;i=0;do{k=i<<2;h[b+(i<<5)>>3]=+h[d+(k<<3)>>3];h[b+(i<<5)+8>>3]=+h[e+(1+k<<3)>>3];h[b+(i<<5)+16>>3]=+h[f+(2+k<<3)>>3];h[b+(i<<5)+24>>3]=+h[g+(3+k<<3)>>3];i=i+1|0}while((i|0)!=3);We(j)|0;return 0}function Pe(a){a=a|0;switch(a|0){case 1:case 0:{a=3;break}case 6:case 4:case 3:case 2:{a=4;break}case 14:case 13:case 12:case 5:{a=1;break}case 11:case 10:case 9:case 8:case 7:{a=2;break}default:a=0}return a|0}function Qe(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;do if((b|0)!=0&(c|0)!=0&(d|0)!=0){f=Ej(c,47)|0;if(!f){a[b>>0]=0;break}f=f+((e|0)!=0&1)-c|0;if((f+1|0)>>>0<=d>>>0){Dj(b,c,f)|0;a[b+f>>0]=0}else b=0}else b=0;while(0);return b|0}function Re(a,b){a=a|0;b=b|0;var d=0,e=0;d=Uj(12)|0;do if(d){e=Uj($(a<<3,b)|0)|0;c[d>>2]=e;if(!e){Vj(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Se(a){a=a|0;var b=0;b=Re(c[a+4>>2]|0,c[a+8>>2]|0)|0;if(b){if((Ve(b,a)|0)<0){We(b)|0;b=0}}else b=0;return b|0}function Te(a,b){a=a|0;b=b|0;var d=0;d=Re(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Xe(d,a,b)|0)<0){We(d)|0;d=0}}else d=0;return d|0}function Ue(a){a=a|0;var b=0;b=Re(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if(($e(b,a)|0)<0){We(b)|0;b=0}}else b=0;return b|0}function Ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;d=c[a+4>>2]|0;if((d|0)==(c[b+4>>2]|0)?(j=c[a+8>>2]|0,(j|0)==(c[b+8>>2]|0)):0)if((d|0)>0){e=(j|0)>0;l=0;do{f=$(j,l)|0;if(e){g=c[b>>2]|0;i=c[a>>2]|0;k=0;do{m=f+k|0;h[i+(m<<3)>>3]=+h[g+(m<<3)>>3];k=k+1|0}while((k|0)<(j|0))}l=l+1|0}while((l|0)<(d|0));d=0}else d=0;else d=-1;return d|0}function We(a){a=a|0;if(a){Vj(c[a>>2]|0);Vj(a)}return 0}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=c[b+8>>2]|0;if(((n|0)==(c[d+4>>2]|0)?(r=c[a+4>>2]|0,(r|0)==(c[b+4>>2]|0)):0)?(o=c[a+8>>2]|0,(o|0)==(c[d+8>>2]|0)):0){s=(o|0)>0?o:0;if((r|0)>0){p=(o|0)>0;q=(n|0)>0;k=c[a>>2]|0;m=0;while(1){a=$(n,m)|0;if(p){f=0;l=k;while(1){h[l>>3]=0.0;if(q){e=0.0;g=0;i=(c[b>>2]|0)+(a<<3)|0;j=(c[d>>2]|0)+(f<<3)|0;while(1){e=e+ +h[i>>3]*+h[j>>3];h[l>>3]=e;g=g+1|0;if((g|0)>=(n|0))break;else{i=i+8|0;j=j+(o<<3)|0}}}f=f+1|0;if((f|0)>=(o|0))break;else l=l+8|0}}m=m+1|0;if((m|0)>=(r|0)){a=0;break}else k=k+(s<<3)|0}}else a=0}else a=-1;return a|0}function Ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0;q=c[a+4>>2]|0;s=c[a+8>>2]|0;f=(q|0)<(s|0)?q:s;a:do if(((((!((q|0)<2|(s|0)<2)?(c[b+8>>2]|0)==(s|0):0)?(c[b+4>>2]|0)==(f|0):0)?(t=d+4|0,(c[t>>2]|0)==(f|0)):0)?(g=e+4|0,(c[g>>2]|0)==(s|0)):0)?(u=Se(a)|0,(u|0)!=0):0){r=+P(+(+(q|0)));o=c[u+4>>2]|0;p=c[u+8>>2]|0;if(!((o|0)<1|(p|0)<1)?(c[g>>2]|0)==(p|0):0){if(p){f=c[e>>2]|0;a=0;do{h[f+(a<<3)>>3]=0.0;a=a+1|0}while((a|0)!=(p|0))}n=c[u>>2]|0;if(o){f=(p|0)==0;a=0;j=n;while(1){if(!f){g=0;k=j;l=c[e>>2]|0;while(1){h[l>>3]=+h[k>>3]+ +h[l>>3];g=g+1|0;if((g|0)==(p|0))break;else{k=k+8|0;l=l+8|0}}}a=a+1|0;if((a|0)==(o|0))break;else j=j+(p<<3)|0}}i=+(o|0);if(p){f=c[e>>2]|0;a=0;do{m=f+(a<<3)|0;h[m>>3]=+h[m>>3]/i;a=a+1|0}while((a|0)!=(p|0))}l=(p|0)>0?p:0;if((o|0)>0){f=(p|0)>0;a=0;j=n;while(1){if(f){g=0;k=j;m=c[e>>2]|0;while(1){h[k>>3]=+h[k>>3]-+h[m>>3];g=g+1|0;if((g|0)>=(p|0))break;else{k=k+8|0;m=m+8|0}}}a=a+1|0;if((a|0)>=(o|0))break;else j=j+(l<<3)|0}}f=$(s,q)|0;if((f|0)>0){a=0;do{e=n+(a<<3)|0;h[e>>3]=+h[e>>3]/r;a=a+1|0}while((a|0)<(f|0))}f=Ze(u,b,d)|0;We(u)|0;j=c[t>>2]|0;if((j|0)>0){a=c[d>>2]|0;g=0;i=0.0;do{i=i+ +h[a+(g<<3)>>3];g=g+1|0}while((g|0)<(j|0))}else i=0.0;if((j|0)<=0)break;a=c[d>>2]|0;g=0;while(1){d=a+(g<<3)|0;h[d>>3]=+h[d>>3]/i;g=g+1|0;if((g|0)>=(j|0))break a}}We(u)|0;f=-1}else f=-1;while(0);return f|0}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0.0,X=0.0,Y=0,Z=0;U=i;i=i+16|0;w=U;F=a+4|0;I=c[F>>2]|0;J=a+8|0;K=c[J>>2]|0;S=(K|0)<(I|0)?K:I;a:do if(((!((I|0)<2|(K|0)<2)?(R=b+8|0,(c[R>>2]|0)==(K|0)):0)?(L=b+4|0,(c[L>>2]|0)==(S|0)):0)?(M=d+4|0,(c[M>>2]|0)==(S|0)):0){T=Re(S,S)|0;N=T+4|0;if((c[N>>2]|0)==(S|0)?(Q=T+8|0,(c[Q>>2]|0)==(S|0)):0){G=(I|0)<(K|0);s=c[F>>2]|0;t=c[J>>2]|0;if(G){if((S|0)!=(s|0)){We(T)|0;e=-1;break}g=c[T>>2]|0;if((S|0)>0){m=(S|0)==0;j=(t|0)>0;n=0;r=g;while(1){l=$(n,t)|0;if(!m){p=0;s=r;while(1){if((p|0)>=(n|0)){e=c[a>>2]|0;h[s>>3]=0.0;if(j){k=0.0;o=e+(l<<3)|0;e=e+(($(p,t)|0)<<3)|0;f=0;while(1){k=k+ +h[o>>3]*+h[e>>3];h[s>>3]=k;f=f+1|0;if((f|0)>=(t|0))break;else{o=o+8|0;e=e+8|0}}}}else h[s>>3]=+h[g+(($(p,S)|0)+n<<3)>>3];p=p+1|0;if((p|0)==(S|0))break;else s=s+8|0}}n=n+1|0;if((n|0)>=(S|0))break;else r=r+(S<<3)|0}}}else{if((S|0)!=(t|0)){We(T)|0;e=-1;break}g=c[T>>2]|0;if((S|0)>0){l=(S|0)==0;j=(s|0)>0;m=0;p=g;while(1){if(!l){o=0;r=p;while(1){if((o|0)>=(m|0)){e=c[a>>2]|0;h[r>>3]=0.0;if(j){k=0.0;n=e+(m<<3)|0;e=e+(o<<3)|0;f=0;while(1){k=k+ +h[n>>3]*+h[e>>3];h[r>>3]=k;f=f+1|0;if((f|0)>=(s|0))break;else{n=n+(S<<3)|0;e=e+(S<<3)|0}}}}else h[r>>3]=+h[g+(($(o,S)|0)+m<<3)>>3];o=o+1|0;if((o|0)==(S|0))break;else r=r+8|0}}m=m+1|0;if((m|0)>=(S|0))break;else p=p+(S<<3)|0}}}do if(((S|0)>=2?(c[M>>2]|0)==(S|0):0)?(H=nf(S)|0,(H|0)!=0):0){E=S+-1|0;c[w+4>>2]=E;c[w>>2]=(c[H>>2]|0)+8;if((rf(T,d,w)|0)<0){of(H)|0;break}B=c[H>>2]|0;h[B>>3]=0.0;if((E|0)>0){C=(S|0)==0;D=E;do{f=D;while(1){if((f|0)<=0)break;v=+O(+(+h[B+(f<<3)>>3]));e=f+-1|0;A=c[d>>2]|0;x=+O(+(+h[A+(e<<3)>>3]));if(v>(x+ +O(+(+h[A+(f<<3)>>3])))*1.0e-06)f=e;else break}y=D;D=D+-1|0;b:do if((f|0)!=(y|0)){o=B+(y<<3)|0;p=B+(f+1<<3)|0;r=(f|0)<(y|0);z=0;do{if((z|0)>99)break b;z=z+1|0;s=c[d>>2]|0;t=s+(D<<3)|0;w=s+(y<<3)|0;k=+h[w>>3];q=(+h[t>>3]-k)*.5;u=+h[o>>3];u=u*u;v=+P(+(u+q*q));if(r){A=f;q=+h[s+(f<<3)>>3]-k+u/(q+(q<0.0?-v:v));u=+h[p>>3];while(1){k=+O(+q);do if(!(k>=+O(+u))){v=-q/u;x=1.0/+P(+(v*v+1.0));v=v*x}else{if(!(k>1.0e-16)){v=1.0;x=0.0;break}k=-u/q;x=1.0/+P(+(k*k+1.0));v=x;x=k*x}while(0);j=s+(A<<3)|0;X=+h[j>>3];n=A;A=A+1|0;l=s+(A<<3)|0;W=+h[l>>3];k=X-W;m=B+(A<<3)|0;V=x*(x*k+v*2.0*+h[m>>3]);h[j>>3]=X-V;h[l>>3]=W+V;if((n|0)>(f|0)){l=B+(n<<3)|0;h[l>>3]=v*+h[l>>3]-u*x}X=+h[m>>3];h[m>>3]=X+x*(v*k-x*2.0*X);j=$(n,S)|0;l=$(A,S)|0;if(C)k=u;else{e=c[T>>2]|0;g=0;do{Z=e+(g+j<<3)|0;q=+h[Z>>3];Y=e+(g+l<<3)|0;k=+h[Y>>3];h[Z>>3]=v*q-x*k;h[Y>>3]=x*q+v*k;g=g+1|0}while((g|0)!=(S|0))}if((n|0)<(D|0)){q=+h[m>>3];Z=B+(n+2<<3)|0;k=+h[Z>>3];h[Z>>3]=v*k;k=-(x*k)}if((A|0)>=(y|0))break;else u=k}}W=+O(+(+h[o>>3]));X=+O(+(+h[t>>3]))}while(W>(X+ +O(+(+h[w>>3])))*1.0e-06)}while(0)}while((y|0)>1)}if(E){l=c[d>>2]|0;m=c[T>>2]|0;n=(S|0)==0;o=0;do{g=l+(o<<3)|0;q=+h[g>>3];j=o;o=o+1|0;if((o|0)<(S|0)){e=j;f=o;k=q;do{X=+h[l+(f<<3)>>3];Z=X>k;k=Z?X:k;e=Z?f:e;f=f+1|0}while((f|0)<(S|0))}else{e=j;k=q}h[l+(e<<3)>>3]=q;h[g>>3]=k;if(!n){g=0;f=m+(($(e,S)|0)<<3)|0;e=m+(($(j,S)|0)<<3)|0;while(1){X=+h[f>>3];h[f>>3]=+h[e>>3];h[e>>3]=X;g=g+1|0;if((g|0)==(S|0))break;else{f=f+8|0;e=e+8|0}}}}while((o|0)!=(E|0))}of(H)|0;c:do if(!G){g=c[b>>2]|0;p=(I|0)>(K|0)?K:I;d:do if((S|0)>0){m=c[d>>2]|0;n=(p|0)==0;e=0;o=c[T>>2]|0;do{if(+h[m+(e<<3)>>3]<1.0e-16)break d;if(!n){f=0;j=o;l=g;while(1){h[l>>3]=+h[j>>3];f=f+1|0;if((f|0)==(p|0))break;else{j=j+8|0;l=l+8|0}}}o=o+(p<<3)|0;g=g+(p<<3)|0;e=e+1|0}while((e|0)<(S|0))}else e=0;while(0);n=(p|0)>0?p:0;if((e|0)<(S|0)){l=c[d>>2]|0;m=(S|0)>0;while(1){h[l+(e<<3)>>3]=0.0;if(m){f=0;j=g;while(1){h[j>>3]=0.0;f=f+1|0;if((f|0)>=(S|0))break;else j=j+8|0}}e=e+1|0;if((e|0)>=(S|0))break;else g=g+(n<<3)|0}}}else{w=c[F>>2]|0;t=c[J>>2]|0;do if(!((w|0)<1|(t|0)<1)){if((c[N>>2]|0)!=(w|0))break;if((c[Q>>2]|0)!=(w|0))break;if((c[L>>2]|0)!=(w|0))break;if((c[R>>2]|0)!=(t|0))break;if((c[M>>2]|0)!=(w|0))break;f=c[b>>2]|0;e:do if((w|0)>0){p=c[d>>2]|0;s=(t|0)==0;r=(w|0)==0;e=0;do{k=+h[p+(e<<3)>>3];if(k<1.0e-16)break e;q=1.0/+P(+(+O(+k)));m=$(e,w)|0;if(!s){n=0;o=f;while(1){if(r)k=0.0;else{g=0;j=(c[T>>2]|0)+(m<<3)|0;l=(c[a>>2]|0)+(n<<3)|0;k=0.0;while(1){k=k+ +h[j>>3]*+h[l>>3];g=g+1|0;if((g|0)==(w|0))break;else{j=j+8|0;l=l+(t<<3)|0}}}h[o>>3]=q*k;n=n+1|0;if((n|0)==(t|0))break;else o=o+8|0}}f=f+(t<<3)|0;e=e+1|0}while((e|0)<(w|0))}else e=0;while(0);n=(t|0)>0?t:0;if((e|0)>=(w|0))break c;l=c[d>>2]|0;m=(t|0)>0;g=f;while(1){h[l+(e<<3)>>3]=0.0;if(m){f=0;j=g;while(1){h[j>>3]=0.0;f=f+1|0;if((f|0)>=(t|0))break;else j=j+8|0}}e=e+1|0;if((e|0)>=(w|0))break c;else g=g+(n<<3)|0}}while(0);We(T)|0;e=-1;break a}while(0);We(T)|0;e=0;break a}while(0);We(T)|0;e=-1;break}We(T)|0;e=-1}else e=-1;while(0);i=U;return e|0}function _e(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0;v=i;i=i+2e3|0;u=v;b=c[a>>2]|0;t=c[a+4>>2]|0;a:do if((t|0)<=500){switch(t|0){case 0:{b=0;break a}case 1:{h[b>>3]=1.0/+h[b>>3];break a}default:{}}if((t|0)>0){a=0;do{c[u+(a<<2)>>2]=a;a=a+1|0}while((a|0)<(t|0))}s=b+(t+-1<<3)|0;if((t|0)>0){m=(t|0)==0;p=(t|0)==1;o=(t|0)==0;n=(t|0)==1;q=s;a=0;r=0;while(1){l=b+(($(r,t)|0)<<3)|0;if((r|0)<(t|0)){e=r;f=0.0;d=l;while(1){w=+O(+(+h[d>>3]));k=f=(t|0))break;else d=d+(t<<3)|0}}else f=0.0;if(f<=1.0e-10){b=0;break a}g=u+(a<<2)|0;j=c[g>>2]|0;k=u+(r<<2)|0;c[g>>2]=c[k>>2];c[k>>2]=j;if(!m){d=0;e=b+(($(a,t)|0)<<3)|0;g=l;while(1){w=+h[e>>3];h[e>>3]=+h[g>>3];h[g>>3]=w;d=d+1|0;if((d|0)==(t|0))break;else{e=e+8|0;g=g+8|0}}}f=+h[l>>3];if(!p){d=1;e=l;do{k=e;e=e+8|0;h[k>>3]=+h[e>>3]/f;d=d+1|0}while((d|0)!=(t|0))}h[q>>3]=1.0/f;if(!o){g=0;j=s;while(1){if((g|0)!=(r|0)){d=b+(($(g,t)|0)<<3)|0;f=+h[d>>3];if(!n){k=1;e=l;while(1){x=d;d=d+8|0;h[x>>3]=+h[d>>3]-f*+h[e>>3];k=k+1|0;if((k|0)==(t|0))break;else e=e+8|0}}h[j>>3]=-(f*+h[q>>3])}g=g+1|0;if((g|0)==(t|0))break;else j=j+(t<<3)|0}}r=r+1|0;if((r|0)>=(t|0))break;else q=q+(t<<3)|0}}if((t|0)>0){g=(t|0)>0;j=0;do{a=u+(j<<2)|0;b:do if((j|0)<(t|0)){d=j;do{if((c[a>>2]|0)==(j|0))break b;d=d+1|0;a=u+(d<<2)|0}while((d|0)<(t|0))}else d=j;while(0);c[a>>2]=c[u+(j<<2)>>2];if(g){e=0;a=b+(d<<3)|0;d=b+(j<<3)|0;while(1){w=+h[a>>3];h[a>>3]=+h[d>>3];h[d>>3]=w;e=e+1|0;if((e|0)>=(t|0))break;else{a=a+(t<<3)|0;d=d+(t<<3)|0}}}j=j+1|0}while((j|0)<(t|0))}}else b=0;while(0);i=v;return ((b|0)==0)<<31>>31|0}function $e(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;i=c[a+4>>2]|0;if((i|0)==(c[b+8>>2]|0)?(k=c[a+8>>2]|0,(k|0)==(c[b+4>>2]|0)):0){l=(k|0)>0?k:0;if((i|0)>0){j=(k|0)>0;e=c[a>>2]|0;g=0;while(1){if(j){a=0;d=(c[b>>2]|0)+(g<<3)|0;f=e;while(1){h[f>>3]=+h[d>>3];a=a+1|0;if((a|0)>=(k|0))break;else{d=d+(i<<3)|0;f=f+8|0}}}g=g+1|0;if((g|0)>=(i|0)){a=0;break}else e=e+(l<<3)|0}}else a=0}else a=-1;return a|0}function af(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0;f=+(b|0)/+(c[a>>2]|0);g=+(d|0)/+(c[a+4>>2]|0);c[e>>2]=b;c[e+4>>2]=d;b=0;do{h[e+8+(b<<3)>>3]=f*+h[a+8+(b<<3)>>3];h[e+40+(b<<3)>>3]=g*+h[a+40+(b<<3)>>3];h[e+72+(b<<3)>>3]=+h[a+72+(b<<3)>>3];b=b+1|0}while((b|0)!=4);b=c[a+176>>2]|0;switch(b|0){case 4:{h[e+104>>3]=+h[a+104>>3];h[e+112>>3]=+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3];h[e+136>>3]=f*+h[a+136>>3];h[e+144>>3]=g*+h[a+144>>3];h[e+152>>3]=f*+h[a+152>>3];h[e+160>>3]=g*+h[a+160>>3];h[e+168>>3]=+h[a+168>>3];i=8;break}case 3:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3];h[e+136>>3]=+h[a+136>>3]/(f*g);h[e+144>>3]=+h[a+144>>3]/(g*(f*f*g));i=8;break}case 2:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3]/(f*g);h[e+136>>3]=+h[a+136>>3]/(g*(f*f*g));i=8;break}case 1:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3]/(f*g);i=8;break}default:b=-1}if((i|0)==8){c[e+176>>2]=b;b=0}return b|0}function bf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0.0;f=i;i=i+96|0;e=f;if(!(+h[a+88>>3]>=0.0)){d=0;do{h[e+(d<<5)>>3]=-+h[a+(d<<5)>>3];h[e+(d<<5)+8>>3]=-+h[a+(d<<5)+8>>3];h[e+(d<<5)+16>>3]=-+h[a+(d<<5)+16>>3];h[e+(d<<5)+24>>3]=-+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3)}else{d=0;do{h[e+(d<<5)>>3]=+h[a+(d<<5)>>3];h[e+(d<<5)+8>>3]=+h[a+(d<<5)+8>>3];h[e+(d<<5)+16>>3]=+h[a+(d<<5)+16>>3];h[e+(d<<5)+24>>3]=+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3)}h[b>>3]=0.0;h[b+8>>3]=0.0;h[b+16>>3]=0.0;h[b+24>>3]=0.0;h[b+32>>3]=0.0;h[b+40>>3]=0.0;h[b+48>>3]=0.0;h[b+56>>3]=0.0;h[b+64>>3]=0.0;h[b+72>>3]=0.0;h[b+80>>3]=0.0;h[b+88>>3]=0.0;g=+h[e+64>>3];o=+h[e+72>>3];p=+h[e+80>>3];x=+P(+(g*g+o*o+p*p));a=b+80|0;h[a>>3]=x;x=g/x;v=c+64|0;h[v>>3]=x;o=o/+h[a>>3];t=c+72|0;h[t>>3]=o;p=p/+h[a>>3];q=c+80|0;h[q>>3]=p;n=c+88|0;h[n>>3]=+h[e+88>>3]/+h[a>>3];g=+h[e+32>>3];k=+h[e+40>>3];s=+h[e+48>>3];p=x*g+o*k+p*s;m=b+48|0;h[m>>3]=p;g=g-p*+h[v>>3];k=k-p*+h[t>>3];p=s-p*+h[q>>3];s=+P(+(g*g+k*k+p*p));l=b+40|0;h[l>>3]=s;w=c+32|0;h[w>>3]=g/s;u=c+40|0;h[u>>3]=k/+h[l>>3];r=c+48|0;h[r>>3]=p/+h[l>>3];p=+h[e>>3];k=+h[e+8>>3];s=+h[e+16>>3];g=+h[v>>3]*p+ +h[t>>3]*k+ +h[q>>3]*s;d=b+16|0;h[d>>3]=g;o=+h[w>>3]*p+ +h[u>>3]*k+ +h[r>>3]*s;j=b+8|0;h[j>>3]=o;p=p-o*+h[w>>3]-g*+h[v>>3];k=k-o*+h[u>>3]-g*+h[t>>3];g=s-o*+h[r>>3]-g*+h[q>>3];o=+P(+(p*p+k*k+g*g));h[b>>3]=o;h[c>>3]=p/o;h[c+8>>3]=k/+h[b>>3];h[c+16>>3]=g/+h[b>>3];g=+h[n>>3];k=(+h[e+56>>3]-+h[m>>3]*g)/+h[l>>3];h[c+56>>3]=k;h[c+24>>3]=(+h[e+24>>3]-k*+h[j>>3]-+h[d>>3]*g)/+h[b>>3];d=0;do{w=b+(d<<5)|0;h[w>>3]=+h[w>>3]/+h[a>>3];w=b+(d<<5)+8|0;h[w>>3]=+h[w>>3]/+h[a>>3];w=b+(d<<5)+16|0;h[w>>3]=+h[w>>3]/+h[a>>3];d=d+1|0}while((d|0)!=3);i=f;return 0}function cf(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;switch(f|0){case 4:{q=+h[a>>3];r=+h[a+8>>3];s=+h[a+16>>3];t=+h[a+24>>3];y=+h[a+32>>3];v=+h[a+40>>3];w=+h[a+48>>3];x=+h[a+56>>3];u=+h[a+64>>3];p=(b-w)/y;j=(c-x)/v;c=p*p;i=j*j;k=s*2.0;l=t*6.0;m=t*2.0;n=s*6.0;a:do if(i!=0.0|c!=0.0){f=1;g=p;b=j;while(1){C=i+c;B=q*C+1.0+C*(r*C);z=c*3.0;A=i*z;g=g-(t*(C+c*2.0)+(b*(k*g)+g*B)-p)/(l*g+(k*b+(q*(i+z)+1.0+r*(i*i+(c*(c*5.0)+A)))));z=m*g;b=b-(s*(i*2.0+C)+b*B+b*z-j)/(n*b+(q*(c+i*3.0)+1.0+r*(i*(i*5.0)+(c*c+A)))+z);if((f|0)==4)break a;c=g*g;i=b*b;if(!(i!=0.0|c!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);h[d>>3]=w+y*g/u;h[e>>3]=x+v*b/u;f=0;break}case 3:{p=+h[a>>3];g=(b-p)/+h[a+24>>3];o=a+8|0;b=c-+h[o>>3];j=+h[a+32>>3]/1.0e8;k=+h[a+40>>3]/1.0e8/1.0e5;c=g*g+b*b;l=+P(+c);m=j*3.0;n=k*5.0;b:do if(l!=0.0){f=1;i=l;while(1){C=i-(i*(1.0-j*c-c*(k*c))-l)/(1.0-m*c-c*(n*c));g=g*C/i;b=b*C/i;if((f|0)==3)break b;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+p;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}case 2:{p=+h[a>>3];g=b-p;o=a+8|0;b=c-+h[o>>3];j=+h[a+24>>3]/1.0e8;k=+h[a+32>>3]/1.0e8/1.0e5;c=g*g+b*b;l=+P(+c);m=j*3.0;n=k*5.0;c:do if(l!=0.0){f=1;i=l;while(1){C=i-(i*(1.0-j*c-c*(k*c))-l)/(1.0-m*c-c*(n*c));g=g*C/i;b=b*C/i;if((f|0)==3)break c;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+p;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}case 1:{m=+h[a>>3];g=b-m;o=a+8|0;b=c-+h[o>>3];j=+h[a+24>>3]/1.0e8;c=g*g+b*b;k=+P(+c);l=j*3.0;d:do if(k!=0.0){f=1;i=k;while(1){C=i-(i*(1.0-j*c)-k)/(1.0-l*c);g=g*C/i;b=b*C/i;if((f|0)==3)break d;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+m;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}default:f=-1}return f|0}function df(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;switch(f|0){case 4:{j=+h[a+16>>3];k=+h[a+24>>3];n=+h[a+32>>3];l=+h[a+40>>3];o=+h[a+48>>3];m=+h[a+56>>3];i=+h[a+64>>3];b=(b-o)*i/n;i=(c-m)*i/l;g=b*b+i*i;c=+h[a>>3]*g+1.0+g*(+h[a+8>>3]*g);h[d>>3]=o+n*(k*(b*(b*2.0)+g)+(j*2.0*b*i+b*c));h[e>>3]=m+l*(k*2.0*b*i+(j*(g+i*(i*2.0))+i*c));f=0;break}case 3:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=g*g+b*b;o=1.0-o*(+h[a+32>>3]/1.0e8)-o*(o*(+h[a+40>>3]/1.0e8/1.0e5));h[d>>3]=i+ +h[a+24>>3]*(g*o);b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}case 2:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=g*g+b*b;o=1.0-o*(+h[a+24>>3]/1.0e8)-o*(o*(+h[a+32>>3]/1.0e8/1.0e5));h[d>>3]=i+g*o;b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}case 1:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=1.0-(g*g+b*b)*(+h[a+24>>3]/1.0e8);h[d>>3]=i+g*o;b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}default:f=-1}return f|0}function ef(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+256|0;n=s+232|0;m=s+224|0;l=s+216|0;k=s+208|0;j=s+200|0;g=s+192|0;f=s+184|0;p=s+240|0;q=s;do if((a|0)!=0&(b|0)>0&(d|0)!=0){r=_i(a,4854)|0;if(!r){r=qi()|0;c[f>>2]=c[r>>2];c[f+4>>2]=a;Me(3,4857,f);a=ri(c[r>>2]|0)|0;c[g>>2]=5367;c[g+4>>2]=a;Me(3,5361,g);a=-1;break}dj(r,0,2)|0;a:do if(!(Xi(r)|0)){g=gj(r)|0;jj(r);a=0;do{if((a|0)>=4){o=9;break}f=c[2012+(a<<3)+4>>2]|0;a=a+1|0}while(((g|0)%(f|0)|0|0)!=0);do if((o|0)==9)if((a|0)==4){Me(3,4971,l);a=-1;break a}else{f=c[2012+(0<<3)+4>>2]|0;a=0;break}while(0);if((aj(q,f,1,r)|0)!=1){a=qi()|0;c[m>>2]=c[a>>2];Me(3,5051,m);a=ri(c[a>>2]|0)|0;c[n>>2]=5367;c[n+4>>2]=a;Me(3,5361,n);a=-1;break}l=q+176|0;c[l>>2]=a;ff(q);m=(a|0)==1;n=q+120|0;if(m){t=+h[n>>3];k=q+128|0;h[n>>3]=+h[k>>3];h[k>>3]=t}else k=q+128|0;ik(d|0,q|0,184)|0;c[p>>2]=e;f=d+176|0;if((b|0)>1){j=1;while(1){e=(c[p>>2]|0)+(4-1)&~(4-1);g=c[e>>2]|0;c[p>>2]=e+4;c[g+176>>2]=c[f>>2];if((aj(q,c[2012+((c[f>>2]|0)+-1<<3)+4>>2]|0,1,r)|0)!=1){a=-1;break a}c[l>>2]=a;ff(q);if(m){t=+h[n>>3];h[n>>3]=+h[k>>3];h[k>>3]=t}ik(g|0,q|0,184)|0;j=j+1|0;if((j|0)>=(b|0)){a=0;break}}}else a=0}else{a=qi()|0;c[j>>2]=c[a>>2];Me(3,4926,j);a=ri(c[a>>2]|0)|0;c[k>>2]=5367;c[k+4>>2]=a;Me(3,5361,k);a=-1}while(0);Wi(r)|0}else a=-1;while(0);i=s;return a|0}function ff(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+192|0;f=g;hf(a,f);hf(a+4|0,f+4|0);b=0;do{gf(a+8+(b<<5)|0,f+8+(b<<5)|0);gf(a+8+(b<<5)+8|0,f+8+(b<<5)+8|0);gf(a+8+(b<<5)+16|0,f+8+(b<<5)+16|0);gf(a+8+(b<<5)+24|0,f+8+(b<<5)+24|0);b=b+1|0}while((b|0)!=3);d=a+176|0;e=0;do{gf(a+104+(e<<3)|0,f+104+(e<<3)|0);e=e+1|0;b=c[d>>2]|0}while((e|0)<(c[2012+(b+-1<<3)>>2]|0));c[f+176>>2]=b;ik(a|0,f|0,184)|0;i=g;return}function gf(b,c){b=b|0;c=c|0;a[c>>0]=a[b+7>>0]|0;a[c+1>>0]=a[b+6>>0]|0;a[c+2>>0]=a[b+5>>0]|0;a[c+3>>0]=a[b+4>>0]|0;a[c+4>>0]=a[b+3>>0]|0;a[c+5>>0]=a[b+2>>0]|0;a[c+6>>0]=a[b+1>>0]|0;a[c+7>>0]=a[b>>0]|0;return}function hf(b,c){b=b|0;c=c|0;a[c>>0]=a[b+3>>0]|0;a[c+1>>0]=a[b+2>>0]|0;a[c+2>>0]=a[b+1>>0]|0;a[c+3>>0]=a[b>>0]|0;return}function jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=i;i=i+64|0;t=x+24|0;u=x+16|0;v=x+8|0;w=x;q=Uj(208)|0;if(!q){Me(3,5472,x+32|0);rb(1)}ik(q|0,a|0,184)|0;s=b<<1;r=(c[a>>2]|0)+s|0;c[q+192>>2]=r;s=(c[a+4>>2]|0)+s|0;c[q+196>>2]=s;c[q+200>>2]=b;c[q+204>>2]=b;d=$(r<<3,s)|0;e=Uj(d)|0;c[q+184>>2]=e;if(!e){Me(3,5472,x+40|0);rb(1)}d=Uj(d)|0;c[q+188>>2]=d;if(!d){Me(3,5472,x+48|0);rb(1)}p=a+104|0;m=c[a+176>>2]|0;n=(r|0)>0?r<<1:0;if((s|0)>0){o=(r|0)>0;l=0;while(1){f=+(l-b|0);if(o){a=0;j=e;k=d;while(1){y=+(a-b|0);df(p,y,f,v,w,m)|0;g[j>>2]=+h[v>>3];g[j+4>>2]=+h[w>>3];cf(p,y,f,t,u,m)|0;g[k>>2]=+h[t>>3];g[k+4>>2]=+h[u>>3];a=a+1|0;if((a|0)>=(r|0))break;else{j=j+8|0;k=k+8|0}}}d=d+(n<<2)|0;l=l+1|0;if((l|0)>=(s|0))break;else e=e+(n<<2)|0}}i=x;return q|0}function kf(a){a=a|0;var b=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){Vj(c[b+184>>2]|0);Vj(c[(c[a>>2]|0)+188>>2]|0);Vj(c[a>>2]|0);c[a>>2]=0;b=0}else b=-1;return b|0}function lf(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){a=c[a>>2]|0;g=($(i,g)|0)+h<<1;c[e>>2]=c[a+(g<<2)>>2];c[f>>2]=c[a+((g|1)<<2)>>2];g=0}else g=-1;return g|0}function mf(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){a=c[a+4>>2]|0;g=($(i,g)|0)+h<<1;c[e>>2]=c[a+(g<<2)>>2];c[f>>2]=c[a+((g|1)<<2)>>2];g=0}else g=-1;return g|0}function nf(a){a=a|0;var b=0,d=0;b=Uj(8)|0;do if(b){d=Uj(a<<3)|0;c[b>>2]=d;if(!d){Vj(b);b=0;break}else{c[b+4>>2]=a;break}}else b=0;while(0);return b|0}function of(a){a=a|0;Vj(c[a>>2]|0);Vj(a);return 0}function pf(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0;b=+P(+(+qf(a,a)));if(b!=0.0){f=c[a>>2]|0;e=+h[f>>3];b=e<0.0?-b:b;e=e+b;h[f>>3]=e;e=1.0/+P(+(e*b));a=c[a+4>>2]|0;if((a|0)>0){d=0;do{g=f+(d<<3)|0;h[g>>3]=e*+h[g>>3];d=d+1|0}while((d|0)<(a|0))}}return +-b}function qf(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=c[a+4>>2]|0;if((f|0)!=(c[b+4>>2]|0))rb(0);if((f|0)>0){e=c[a>>2]|0;a=c[b>>2]|0;b=0;d=0.0;do{d=d+ +h[e+(b<<3)>>3]*+h[a+(b<<3)>>3];b=b+1|0}while((b|0)<(f|0))}else d=0.0;return +d}function rf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E+8|0;D=E;w=c[a+8>>2]|0;if(((w|0)==(c[a+4>>2]|0)?(w|0)==(c[b+4>>2]|0):0)?(w|0)==((c[d+4>>2]|0)+1|0):0){z=w+-2|0;A=C+4|0;B=D+4|0;if((w|0)>2){s=w+-1|0;t=0;do{o=$(t,w)|0;p=c[a>>2]|0;h[(c[b>>2]|0)+(t<<3)>>3]=+h[p+(o+t<<3)>>3];k=w-t+-1|0;c[A>>2]=k;u=t;t=t+1|0;l=p+(o+t<<3)|0;c[C>>2]=l;r=+pf(C);h[(c[d>>2]|0)+(u<<3)>>3]=r;if(!(r==0.0)){if((t|0)<(w|0)){m=c[b>>2]|0;n=t;do{if((t|0)<(n|0)){e=c[a>>2]|0;f=t;j=0.0;do{r=+h[e+(($(f,w)|0)+n<<3)>>3];j=j+r*+h[p+(f+o<<3)>>3];f=f+1|0}while((f|0)<(n|0))}else j=0.0;e=$(n,w)|0;if((n|0)<(w|0)){f=c[a>>2]|0;g=n;do{j=j+ +h[f+(g+e<<3)>>3]*+h[p+(g+o<<3)>>3];g=g+1|0}while((g|0)<(w|0))}h[m+(n<<3)>>3]=j;n=n+1|0}while((n|0)<(w|0))}c[B>>2]=k;c[A>>2]=k;c[C>>2]=l;c[D>>2]=(c[b>>2]|0)+(t<<3);j=+qf(C,D)*.5;if((s|0)>(u|0)){e=c[b>>2]|0;k=s;do{q=+h[p+(k+o<<3)>>3];f=e+(k<<3)|0;r=+h[f>>3]-j*q;h[f>>3]=r;f=$(k,w)|0;if((k|0)<(w|0)){g=c[a>>2]|0;l=k;do{n=g+(l+f<<3)|0;h[n>>3]=+h[n>>3]-(q*+h[e+(l<<3)>>3]+r*+h[p+(l+o<<3)>>3]);l=l+1|0}while((l|0)<(w|0))}k=k+-1|0}while((k|0)>(u|0))}}}while((t|0)<(z|0))}if((w|0)<=1){if((w|0)>0){f=0;g=c[a>>2]|0;e=c[b>>2]|0;v=27}}else{v=$(z,w)|0;g=c[a>>2]|0;e=c[b>>2]|0;h[e+(z<<3)>>3]=+h[g+(v+z<<3)>>3];f=w+-1|0;h[(c[d>>2]|0)+(z<<3)>>3]=+h[g+(f+v<<3)>>3];v=27}if((v|0)==27)h[e+(f<<3)>>3]=+h[g+(($(f,w)|0)+f<<3)>>3];if((w|0)>0){m=(w|0)>0;p=w;do{d=p;p=p+-1|0;n=$(p,w)|0;o=c[a>>2]|0;if((d|0)<=(z|0)?(x=w-p+-1|0,y=o+(n+d<<3)|0,(d|0)<(w|0)):0){e=(d|0)<(w|0);k=d;do{c[B>>2]=x;c[A>>2]=x;c[C>>2]=y;f=$(k,w)|0;c[D>>2]=(c[a>>2]|0)+(f+d<<3);j=+qf(C,D);if(e){g=c[a>>2]|0;l=d;do{v=g+(l+f<<3)|0;h[v>>3]=+h[v>>3]-j*+h[o+(l+n<<3)>>3];l=l+1|0}while((l|0)<(w|0))}k=k+1|0}while((k|0)<(w|0))}if(m){e=0;do{h[o+(e+n<<3)>>3]=0.0;e=e+1|0}while((e|0)<(w|0))}h[o+(n+p<<3)>>3]=1.0}while((d|0)>1);e=0}else e=0}else e=-1;i=E;return e|0}function sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;f=+h[c>>3];g=+h[c+8>>3];e=+h[c+16>>3];d=+h[b+88>>3]+(f*+h[b+64>>3]+g*+h[b+72>>3]+e*+h[b+80>>3]);if(d==0.0)c=-1;else{i=+h[b+56>>3]+(f*+h[b+32>>3]+g*+h[b+40>>3]+e*+h[b+48>>3]);h[a>>3]=(+h[b+24>>3]+(f*+h[b>>3]+g*+h[b+8>>3]+e*+h[b+16>>3]))/d;h[a+8>>3]=i/d;c=0}return c|0}function tf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;B=i;i=i+1072|0;y=B+1056|0;x=B+768|0;w=B+192|0;A=B+48|0;z=B;K=+h[d>>3];F=+h[e>>3];s=K*F;J=+h[d+8>>3];t=e+8|0;E=+h[t>>3];v=J*E;j=+h[d+16>>3];G=+h[e+16>>3];l=j*G;m=+h[d+24>>3];I=+h[d+32>>3];H=+h[d+40>>3];n=E*H;k=+h[d+48>>3];o=G*k;p=+h[d+56>>3];D=+h[d+64>>3];C=+h[d+72>>3];q=E*C;f=+h[d+80>>3];r=G*f;g=+h[d+88>>3];h[x>>3]=s;h[x+8>>3]=K*E;h[x+16>>3]=K*G;h[x+24>>3]=F*J;h[x+32>>3]=v;h[x+40>>3]=G*J;h[x+48>>3]=F*j;h[x+56>>3]=E*j;h[x+64>>3]=l;h[x+72>>3]=K;h[x+80>>3]=J;h[x+88>>3]=j;j=F*I;h[x+96>>3]=j;h[x+104>>3]=E*I;h[x+112>>3]=G*I;h[x+120>>3]=F*H;h[x+128>>3]=n;h[x+136>>3]=G*H;h[x+144>>3]=F*k;h[x+152>>3]=E*k;h[x+160>>3]=o;h[x+168>>3]=I;h[x+176>>3]=H;h[x+184>>3]=k;k=D*F;h[x+192>>3]=k;h[x+200>>3]=E*D;h[x+208>>3]=G*D;h[x+216>>3]=F*C;E=+h[t>>3];h[x+224>>3]=C*E;h[x+232>>3]=G*C;h[x+240>>3]=F*f;h[x+248>>3]=E*f;h[x+256>>3]=r;h[x+264>>3]=D;h[x+272>>3]=C;h[x+280>>3]=f;e=w+64|0;d=w;t=d+64|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+72|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;h[w+104>>3]=1.0;e=w+160|0;d=w+112|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+240|0;d=w+168|0;t=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+296|0;d=w+248|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+304|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;h[w+336>>3]=1.0;e=w+456|0;d=w+344|0;t=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+512|0;d=w+464|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+568|0;d=w+520|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;u=0;do{t=0;do{d=A+(u*48|0)+(t<<3)|0;h[d>>3]=0.0;f=0.0;e=0;do{f=f+ +h[x+(u*96|0)+(e<<3)>>3]*+h[w+(e*48|0)+(t<<3)>>3];e=e+1|0}while((e|0)!=12);h[d>>3]=f;t=t+1|0}while((t|0)!=6);u=u+1|0}while((u|0)!=3);J=m+(s+v+l);K=p+(j+n+o);f=g+(k+q+r);g=+h[b>>3];j=+h[b+8>>3];k=+h[b+16>>3];l=+h[b+24>>3]+(J*g+K*j+f*k);m=+h[b+32>>3];n=+h[b+40>>3];o=+h[b+48>>3];p=+h[b+56>>3]+(J*m+K*n+f*o);q=+h[b+64>>3];r=+h[b+72>>3];s=+h[b+80>>3];f=+h[b+88>>3]+(J*q+K*r+f*s);if(f==0.0){Me(3,5089,y);e=-1}else{K=f*f;h[z>>3]=(g*f-l*q)/K;h[z+8>>3]=(f*j-l*r)/K;h[z+16>>3]=(f*k-l*s)/K;h[z+24>>3]=(f*m-p*q)/K;h[z+32>>3]=(f*n-p*r)/K;h[z+40>>3]=(f*o-p*s)/K;d=0;do{f=+h[z+(d*24|0)>>3];g=+h[z+(d*24|0)+8>>3];j=+h[z+(d*24|0)+16>>3];e=0;do{y=a+(d*48|0)+(e<<3)|0;h[y>>3]=0.0;K=f*+h[A+(e<<3)>>3]+0.0;h[y>>3]=K;K=K+g*+h[A+48+(e<<3)>>3];h[y>>3]=K;h[y>>3]=K+j*+h[A+96+(e<<3)>>3];e=e+1|0}while((e|0)!=6);d=d+1|0}while((d|0)!=2);e=0}i=B;return e|0}function uf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+48|0;h=j+24|0;g=j+12|0;f=j;c[h+4>>2]=6;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=6;c[f>>2]=d;b=Ue(f)|0;do if(b){a=Te(b,f)|0;if(!a){We(b)|0;d=-1;break}d=Te(b,g)|0;if(!d){We(b)|0;We(a)|0;d=-1;break}if((_e(a)|0)<0){We(b)|0;We(a)|0;We(d)|0;d=-1;break}else{Xe(h,a,d)|0;We(b)|0;We(a)|0;We(d)|0;d=0;break}}else d=-1;while(0);i=j;return d|0}function vf(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;n=i;i=i+192|0;l=n+96|0;m=n;g=+h[b>>3];k=+h[b+8>>3];d=+h[b+16>>3];c=g*g+k*k+d*d;if(c==0.0){j=0.0;e=0.0;d=1.0;c=0.0}else{c=+P(+c);j=c;e=d/c;d=g/c;c=k/c}u=+h[b+24>>3];r=+h[b+32>>3];k=+h[b+40>>3];o=+R(+j);g=1.0-o;j=+S(+j);h[l>>3]=o+d*d*g;t=c*d*g;s=e*j;h[l+8>>3]=t-s;q=d*e*g;p=c*j;h[l+16>>3]=q+p;h[l+24>>3]=u;h[l+32>>3]=t+s;h[l+40>>3]=o+c*c*g;c=c*e*g;j=d*j;h[l+48>>3]=c-j;h[l+56>>3]=r;h[l+64>>3]=q-p;h[l+72>>3]=c+j;h[l+80>>3]=o+e*e*g;h[l+88>>3]=k;f=0;do{c=+h[a+(f<<5)>>3];d=+h[a+(f<<5)+8>>3];e=+h[a+(f<<5)+16>>3];b=0;do{h[m+(f<<5)+(b<<3)>>3]=c*+h[l+(b<<3)>>3]+d*+h[l+32+(b<<3)>>3]+e*+h[l+64+(b<<3)>>3];b=b+1|0}while((b|0)!=4);b=m+(f<<5)+24|0;h[b>>3]=+h[a+(f<<5)+24>>3]+ +h[b>>3];f=f+1|0}while((f|0)!=3);b=0;do{h[a+(b<<5)>>3]=+h[m+(b<<5)>>3];h[a+(b<<5)+8>>3]=+h[m+(b<<5)+8>>3];h[a+(b<<5)+16>>3]=+h[m+(b<<5)+16>>3];h[a+(b<<5)+24>>3]=+h[m+(b<<5)+24>>3];b=b+1|0}while((b|0)!=3);i=n;return 0}function wf(a){a=a|0;var b=0,d=0;b=Uj(136)|0;if(!b)b=0;else{d=0;do{h[b+(d<<5)>>3]=+h[a+(d<<5)>>3];h[b+(d<<5)+8>>3]=+h[a+(d<<5)+8>>3];h[b+(d<<5)+16>>3]=+h[a+(d<<5)+16>>3];h[b+(d<<5)+24>>3]=+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3);c[b+96>>2]=10;h[b+104>>3]=.10000000149011612;h[b+112>>3]=.9900000095367432;h[b+120>>3]=4.0;h[b+128>>3]=.5}return b|0}function xf(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)b=-1;else{Vj(b);c[a>>2]=0;b=0}return b|0}function yf(a,b){a=a|0;b=+b;if(!a)a=-1;else{h[a+128>>3]=b;a=0}return a|0}function zf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;y=i;i=i+176|0;l=y+168|0;k=y+160|0;u=y+48|0;w=y+64|0;v=y;s=b+8|0;g=c[s>>2]|0;do if((g|0)>=3){x=Uj(g*96|0)|0;if(!x){Me(3,5109,k);g=-1;break}t=Uj(g<<4)|0;if(!t){Me(3,5109,l);Vj(x);g=-1;break}else g=0;do{h[e+(g<<5)>>3]=+h[d+(g<<5)>>3];h[e+(g<<5)+8>>3]=+h[d+(g<<5)+8>>3];h[e+(g<<5)+16>>3]=+h[d+(g<<5)+16>>3];h[e+(g<<5)+24>>3]=+h[d+(g<<5)+24>>3];g=g+1|0}while((g|0)!=3);q=b+4|0;l=u+8|0;d=a+104|0;n=a+120|0;o=a+112|0;p=a+96|0;m=0.0;r=0;a:while(1){Ne(a,e,w)|0;g=c[s>>2]|0;if((g|0)>0){j=0.0;k=0;do{if((sf(u,w,(c[q>>2]|0)+(k*24|0)|0)|0)<0){k=10;break a}g=c[b>>2]|0;A=+h[g+(k<<4)>>3]-+h[u>>3];z=+h[g+(k<<4)+8>>3]-+h[l>>3];j=j+(A*A+z*z);g=k<<1;h[t+(g<<3)>>3]=A;h[t+((g|1)<<3)>>3]=z;k=k+1|0;g=c[s>>2]|0}while((k|0)<(g|0))}else j=0.0;j=j/+(g|0);if(j<+h[d>>3]){k=24;break}if(((r|0)>0?j<+h[n>>3]:0)?j/m>+h[o>>3]:0){k=24;break}if((r|0)==(c[p>>2]|0)){k=24;break}if((g|0)>0){k=0;do{if((tf(x+(k*12<<3)|0,a,e,(c[q>>2]|0)+(k*24|0)|0)|0)<0){k=20;break a}k=k+1|0;g=c[s>>2]|0}while((k|0)<(g|0))}if((uf(v,t,x,g<<1)|0)<0){k=22;break}vf(e,v)|0;m=j;r=r+1|0}if((k|0)==10){Af(x,t);g=-1;break}else if((k|0)==20){Af(x,t);g=-1;break}else if((k|0)==22){Af(x,t);g=-1;break}else if((k|0)==24){h[f>>3]=j;Vj(x);Vj(t);g=0;break}}else g=-1;while(0);i=y;return g|0}function Af(a,b){a=a|0;b=b|0;Vj(a);Vj(b);return}function Bf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+192|0;n=G+184|0;m=G+176|0;l=G+168|0;g=G+160|0;B=G+48|0;D=G+64|0;C=G;A=b+8|0;k=c[A>>2]|0;do if((k|0)>=4){o=~~(+(k|0)*+h[a+128>>3])+-1|0;o=(o|0)<3?3:o;F=Uj(k*96|0)|0;if(!F){Me(3,5109,g);g=-1;break}E=Uj(k<<4)|0;if(!E){Me(3,5109,l);Vj(F);g=-1;break}g=k<<3;z=Uj(g)|0;if(!z){Me(3,5109,m);Vj(F);Vj(E);g=-1;break}y=Uj(g)|0;if(!y){Me(3,5109,n);Vj(F);Vj(E);Vj(z);g=-1;break}else g=0;do{h[e+(g<<5)>>3]=+h[d+(g<<5)>>3];h[e+(g<<5)+8>>3]=+h[d+(g<<5)+8>>3];h[e+(g<<5)+16>>3]=+h[d+(g<<5)+16>>3];h[e+(g<<5)+24>>3]=+h[d+(g<<5)+24>>3];g=g+1|0}while((g|0)!=3);w=b+4|0;x=B+8|0;n=y+(o<<3)|0;d=a+104|0;o=a+120|0;t=a+112|0;u=a+96|0;r=0.0;v=0;a:while(1){Ne(a,e,D)|0;g=c[A>>2]|0;if((g|0)>0){k=0;do{if((sf(B,D,(c[w>>2]|0)+(k*24|0)|0)|0)<0){k=14;break a}g=c[b>>2]|0;q=+h[g+(k<<4)>>3]-+h[B>>3];s=+h[g+(k<<4)+8>>3]-+h[x>>3];g=k<<1;h[E+(g<<3)>>3]=q;h[E+((g|1)<<3)>>3]=s;s=q*q+s*s;h[y+(k<<3)>>3]=s;h[z+(k<<3)>>3]=s;k=k+1|0;g=c[A>>2]|0}while((k|0)<(g|0))}rj(y,g,8,1);s=+h[n>>3]*4.0;s=s<16.0?16.0:s;k=c[A>>2]|0;q=s/6.0;if((k|0)>0){j=0.0;g=0;do{p=+h[y+(g<<3)>>3];if(p>s)p=q;else{p=1.0-p/s;p=q*(1.0-p*(p*p))}j=j+p;g=g+1|0}while((g|0)<(k|0))}else j=0.0;j=j/+(k|0);if(j<+h[d>>3]){k=36;break}if(((v|0)>0?j<+h[o>>3]:0)?j/r>+h[t>>3]:0){k=36;break}if((v|0)==(c[u>>2]|0)){k=36;break}if((k|0)>0){m=0;g=0;do{p=+h[z+(m<<3)>>3];if(p<=s){k=g*6|0;l=F+(k<<3)|0;if((tf(l,a,e,(c[w>>2]|0)+(m*24|0)|0)|0)<0){k=28;break a}r=1.0-p/s;r=r*r;h[l>>3]=+h[l>>3]*r;l=F+((k|1)<<3)|0;h[l>>3]=+h[l>>3]*r;l=F+(k+2<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+3<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+4<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+5<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+6<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+7<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+8<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+9<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+10<<3)|0;h[l>>3]=r*+h[l>>3];k=F+(k+11<<3)|0;h[k>>3]=r*+h[k>>3];k=m<<1;h[E+(g<<3)>>3]=r*+h[E+(k<<3)>>3];h[E+(g+1<<3)>>3]=r*+h[E+((k|1)<<3)>>3];k=c[A>>2]|0;g=g+2|0}m=m+1|0}while((m|0)<(k|0))}else g=0;if((g|0)<6){k=32;break}if((uf(C,E,F,g)|0)<0){k=34;break}vf(e,C)|0;r=j;v=v+1|0}if((k|0)==14){Cf(F,E,z,y);g=-1;break}else if((k|0)==28){Cf(F,E,z,y);g=-1;break}else if((k|0)==32){Cf(F,E,z,y);g=-1;break}else if((k|0)==34){Cf(F,E,z,y);g=-1;break}else if((k|0)==36){h[f>>3]=j;Vj(F);Vj(E);Vj(z);Vj(y);g=0;break}}else g=-1;while(0);i=G;return g|0}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Vj(a);Vj(b);Vj(c);Vj(d);return}function Df(a,b){a=a|0;b=b|0;var c=0.0;c=+h[a>>3]-+h[b>>3];return (c<0.0?-1:c>0.0&1)|0}function Ef(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0;U=i;i=i+64|0;D=U+48|0;z=U+40|0;y=U+32|0;x=U+24|0;u=U+16|0;o=U+8|0;l=U;a:do if((e|0)>=4){g=0;while(1){if((g|0)>=(e|0))break;if(+h[d+(g*24|0)+16>>3]!=0.0){g=-1;break a}else g=g+1|0}if((((((((!(+h[a>>3]==0.0)?!(+h[a+32>>3]!=0.0):0)?(B=a+40|0,!(+h[B>>3]==0.0)):0)?!(+h[a+64>>3]!=0.0):0)?!(+h[a+72>>3]!=0.0):0)?!(+h[a+80>>3]!=1.0):0)?!(+h[a+24>>3]!=0.0):0)?!(+h[a+56>>3]!=0.0):0)?!(+h[a+88>>3]!=0.0):0){g=e<<1;C=Re(g,8)|0;if(!C){Me(3,5124,l);g=-1;break}w=Re(g,1)|0;if(!w){We(C)|0;Me(3,5150,o);g=-1;break}if(e){g=c[C>>2]|0;l=c[w>>2]|0;o=0;do{Z=d+(o*24|0)|0;V=o<<4;h[g+(V<<3)>>3]=+h[Z>>3];Y=d+(o*24|0)+8|0;h[g+((V|1)<<3)>>3]=+h[Y>>3];h[g+((V|2)<<3)>>3]=1.0;h[g+((V|3)<<3)>>3]=0.0;h[g+((V|4)<<3)>>3]=0.0;h[g+((V|5)<<3)>>3]=0.0;X=b+(o<<4)|0;h[g+((V|6)<<3)>>3]=-(+h[Z>>3]*+h[X>>3]);h[g+((V|7)<<3)>>3]=-(+h[Y>>3]*+h[X>>3]);h[g+((V|8)<<3)>>3]=0.0;h[g+((V|9)<<3)>>3]=0.0;h[g+((V|10)<<3)>>3]=0.0;h[g+((V|11)<<3)>>3]=+h[Z>>3];h[g+((V|12)<<3)>>3]=+h[Y>>3];h[g+((V|13)<<3)>>3]=1.0;W=b+(o<<4)+8|0;h[g+((V|14)<<3)>>3]=-(+h[Z>>3]*+h[W>>3]);h[g+((V|15)<<3)>>3]=-(+h[Y>>3]*+h[W>>3]);V=o<<1;h[l+(V<<3)>>3]=+h[X>>3];h[l+((V|1)<<3)>>3]=+h[W>>3];o=o+1|0}while((o|0)!=(e|0))}e=Ue(C)|0;if(!e){We(C)|0;We(w)|0;Me(3,5176,u);g=-1;break}o=Te(e,C)|0;if(!o){We(C)|0;We(w)|0;We(e)|0;Me(3,5202,x);g=-1;break}l=Te(e,w)|0;if(!l){We(C)|0;We(w)|0;We(e)|0;We(o)|0;Me(3,5228,y);g=-1;break}if((_e(o)|0)<0){We(C)|0;We(w)|0;We(e)|0;We(o)|0;We(l)|0;Me(3,5254,z);g=-1;break}g=Te(o,l)|0;if(!g){We(C)|0;We(w)|0;We(e)|0;We(o)|0;We(l)|0;Me(3,5280,D);g=-1;break}Z=c[g>>2]|0;p=+h[Z+48>>3];S=+h[a+48>>3];t=+h[B>>3];j=(+h[Z+24>>3]-p*S)/t;s=+h[a+16>>3];T=+h[a+8>>3];r=+h[a>>3];q=(+h[Z>>3]-p*s-j*T)/r;k=+h[Z+56>>3];m=(+h[Z+32>>3]-S*k)/t;n=(+h[Z+8>>3]-s*k-T*m)/r;t=(+h[Z+40>>3]-S)/t;r=(+h[Z+16>>3]-s-T*t)/r;We(C)|0;We(w)|0;We(e)|0;We(o)|0;We(l)|0;We(g)|0;T=+P(+(p*p+(j*j+q*q)));s=+P(+(k*k+(m*m+n*n)));q=q/T;j=j/T;p=p/T;n=n/s;m=m/s;k=k/s;s=(T+s)*.5;r=r/s;T=1.0/s;if(T<0.0){O=-j;k=-k;m=-m;p=-p;n=-n;Q=-q;S=-r;R=-T}else{O=j;Q=q;S=r;R=t/s}j=k*O-m*p;q=n*p-k*Q;r=m*Q-n*O;s=+P(+(r*r+(j*j+q*q)));do if(!(s==0.0)){t=j/s;q=q/s;j=r/s;N=k*p+(m*O+n*Q);N=N<0.0?-N:N;N=(+P(+(N+1.0))+ +P(+(1.0-N)))*.5;if(Q*q-O*t!=0.0){g=0;E=Q;v=O;F=p;I=t;H=q}else{Z=Q*j-p*t!=0.0;g=Z?1:2;E=Z?Q:p;v=Z?p:O;F=Z?O:Q;I=Z?t:j;H=Z?j:q;j=Z?q:t}r=E*H;s=v*I;q=r-s;if(q==0.0){q=O;j=Q;break}G=(v*j-F*H)/q;A=N*H/q;r=s-r;q=(E*j-F*I)/r;r=N*I/r;s=G*G+q*q+1.0;t=G*A+q*r;v=t*t-s*(A*A+r*r+-1.0);if(v<0.0){q=O;j=Q;break}M=+P(+v);L=(M-t)/s;F=A+G*L;K=r+q*L;M=(-t-M)/s;G=A+G*M;r=r+q*M;Z=(g|0)==1;q=Z?H:j;s=Z?j:H;J=Z?L:K;L=Z?K:L;K=Z?M:r;H=Z?r:M;Z=(g|0)==2&(Z^1);r=Z?I:q;q=Z?q:I;M=Z?L:F;L=Z?F:L;j=Z?H:G;I=Z?G:H;if(n*s-m*q!=0.0){g=0;E=n;v=m;F=k;H=q;A=s}else{Z=n*r-k*q!=0.0;g=Z?1:2;E=Z?n:k;v=Z?k:m;F=Z?m:n;H=Z?q:r;A=Z?r:s;r=Z?s:q}s=E*A;t=v*H;q=s-t;if(q==0.0){q=O;j=Q;break}G=(v*r-F*A)/q;A=N*A/q;q=t-s;v=(E*r-F*H)/q;q=N*H/q;r=G*G+v*v+1.0;s=G*A+v*q;t=s*s-r*(A*A+q*q+-1.0);if(t<0.0){q=O;j=Q;break}t=+P(+t);k=(t-s)/r;Q=A+G*k;O=q+v*k;t=(-s-t)/r;p=A+G*t;n=q+v*t;Z=(g|0)==1;m=Z?k:O;k=Z?O:k;v=Z?t:n;t=Z?n:t;Z=(g|0)==2&(Z^1);n=Z?k:Q;k=Z?Q:k;A=Z?t:p;t=Z?p:t;p=L*k+(J*m+M*n);p=p<0.0?-p:p;q=L*t+(J*v+M*A);q=q<0.0?-q:q;r=I*k+(K*m+j*n);r=r<0.0?-r:r;s=I*t+(K*v+j*A);s=s<0.0?-s:s;if(p>3]=j;h[f+32>>3]=q;h[f+64>>3]=p;h[f+8>>3]=n;h[f+40>>3]=m;h[f+72>>3]=k;h[f+16>>3]=M/Q;h[f+48>>3]=N/Q;h[f+80>>3]=O/Q;h[f+24>>3]=S;h[f+56>>3]=R;h[f+88>>3]=T;g=0}else g=-1}else g=-1;while(0);i=U;return g|0}function Ff(a){a=a|0;Vj(c[a>>2]|0);Vj(a);return 0}function Gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+If(a,b,c,d,0))}function Hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+If(a,b,c,d,1))}function If(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+208|0;z=F+200|0;y=F+192|0;A=F+96|0;B=F;C=e+4|0;p=c[C>>2]|0;q=e+112|0;r=e+120|0;if((p|0)>0){u=c[e>>2]|0;v=(d|0)>0;w=(d|0)>0;x=0;do{if(!(c[u+(x*320|0)+4>>2]|0)){if(v){k=c[u+(x*320|0)>>2]|0;l=0;j=-1;do{if((c[b+(l<<8)+8>>2]|0)==(k|0)?(n=+h[b+(l<<8)+40>>3],!(n<+h[q>>3])):0)if(!((j|0)!=-1?!(+h[b+(j<<8)+40>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+20>>2]}else{l=u+(x*320|0)+312|0;m=u+(x*320|0)|0;if(w){o=0;j=-1;do{k=c[b+(o<<8)+12>>2]|0;if((k|0)==0?(t=b+(o<<8)+248|0,s=c[t>>2]|0,t=c[t+4>>2]|0,!((s|0)==0&(t|0)==0)):0){k=l;if((s|0)==(c[k>>2]|0)?(t|0)==(c[k+4>>2]|0):0)E=20}else if((k|0)==(c[m>>2]|0))E=20;if((E|0)==20){E=0;g=+h[b+(o<<8)+48>>3];if(!(g<+h[r>>3]))if(!((j|0)!=-1?!(+h[b+(j<<8)+48>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+24>>2]}x=x+1|0}while((x|0)<(p|0))}if((p|0)>0){q=0;j=0;p=0;k=0;while(1){l=c[e>>2]|0;m=c[l+(q*320|0)+304>>2]|0;do if((m|0)<0)l=p;else{o=b+(m<<8)|0;if(+ke(a,o,+h[l+(q*320|0)+8>>3],B)>4.0){c[(c[e>>2]|0)+(q*320|0)+304>>2]=-1;l=b+(m<<8)+236|0;if(c[l>>2]|0){l=p;break}c[l>>2]=7;l=p;break}l=c[o>>2]|0;if((k|0)==0|(p|0)<(l|0)){j=0;do{h[A+(j<<5)>>3]=+h[B+(j<<5)>>3];h[A+(j<<5)+8>>3]=+h[B+(j<<5)+8>>3];h[A+(j<<5)+16>>3]=+h[B+(j<<5)+16>>3];h[A+(j<<5)+24>>3]=+h[B+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3);j=q}else l=p;k=k+1|0}while(0);q=q+1|0;if((q|0)>=(c[C>>2]|0))break;else p=l}}else{j=0;k=0}do if((k|0)!=0?(k|0)>=(c[e+128>>2]|0):0){Ne(A,(c[e>>2]|0)+(j*320|0)+112|0,B)|0;p=k<<2;r=Uj(k<<6)|0;if(!r){Me(3,5472,y);rb(1)}q=Uj(k*96|0)|0;if(!q){Me(3,5472,z);rb(1)}l=c[C>>2]|0;if((l|0)>0){m=c[e>>2]|0;o=0;j=0;do{k=c[m+(o*320|0)+304>>2]|0;if((k|0)>=0){y=c[b+(k<<8)+16>>2]|0;d=(4-y|0)%4|0;z=j<<3;h[r+(z<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|1)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];d=(5-y|0)%4|0;h[r+((z|2)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|3)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];d=(6-y|0)%4|0;h[r+((z|4)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|5)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];y=(7-y|0)%4|0;h[r+((z|6)<<3)>>3]=+h[b+(k<<8)+168+(y<<4)>>3];h[r+((z|7)<<3)>>3]=+h[b+(k<<8)+168+(y<<4)+8>>3];z=j*12|0;h[q+(z<<3)>>3]=+h[m+(o*320|0)+208>>3];h[q+((z|1)<<3)>>3]=+h[m+(o*320|0)+216>>3];h[q+((z|2)<<3)>>3]=+h[m+(o*320|0)+224>>3];h[q+((z|3)<<3)>>3]=+h[m+(o*320|0)+232>>3];h[q+(z+4<<3)>>3]=+h[m+(o*320|0)+240>>3];h[q+(z+5<<3)>>3]=+h[m+(o*320|0)+248>>3];h[q+(z+6<<3)>>3]=+h[m+(o*320|0)+256>>3];h[q+(z+7<<3)>>3]=+h[m+(o*320|0)+264>>3];h[q+(z+8<<3)>>3]=+h[m+(o*320|0)+272>>3];h[q+(z+9<<3)>>3]=+h[m+(o*320|0)+280>>3];y=c[e>>2]|0;h[q+(z+10<<3)>>3]=+h[y+(o*320|0)+288>>3];h[q+(z+11<<3)>>3]=+h[y+(o*320|0)+296>>3];j=j+1|0}o=o+1|0}while((o|0)<(l|0))}m=e+104|0;k=(f|0)!=0;if(!(c[m>>2]|0)){j=e+8|0;g=+me(a,B,r,q,p,j);if(k&g>=20.0){yf(c[a>>2]|0,.8)|0;g=+ne(a,B,r,q,p,j);if(g>=20.0){yf(c[a>>2]|0,.6)|0;g=+ne(a,B,r,q,p,j);if(g>=20.0){yf(c[a>>2]|0,.4)|0;g=+ne(a,B,r,q,p,j);if(g>=20.0){yf(c[a>>2]|0,0.0)|0;g=+ne(a,B,r,q,p,j)}}}}Vj(q);Vj(r)}else{g=+me(a,B,r,q,p,A);l=e+8|0;n=+me(a,l,r,q,p,l);j=g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yf(c[a>>2]|0,.8)|0;g=+ne(a,B,r,q,p,A);n=+ne(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yf(c[a>>2]|0,.6)|0;g=+ne(a,B,r,q,p,A);n=+ne(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yf(c[a>>2]|0,.4)|0;g=+ne(a,B,r,q,p,A);n=+ne(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yf(c[a>>2]|0,0.0)|0;g=+ne(a,B,r,q,p,A);n=+ne(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}}}}}else if(j){j=0;do{h[e+8+(j<<5)>>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;while(0);Vj(q);Vj(r)}if(g<20.0){c[m>>2]=1;break}c[m>>2]=0;m=c[C>>2]|0;if((m|0)>0){j=c[e>>2]|0;l=0;do{k=c[j+(l*320|0)+304>>2]|0;if((k|0)>=0?(D=b+(k<<8)+236|0,(c[D>>2]|0)==0):0)c[D>>2]=8;l=l+1|0}while((l|0)<(m|0))}}else E=38;while(0);if((E|0)==38){c[e+104>>2]=0;g=-1.0}i=F;return +g}function Jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0.0;U=i;i=i+2544|0;S=U+208|0;R=U+200|0;G=U+184|0;Q=U+176|0;F=U+168|0;E=U+152|0;P=U+144|0;D=U+136|0;M=U+128|0;L=U+120|0;K=U+112|0;C=U+104|0;j=U+96|0;g=U+88|0;f=U+80|0;e=U+72|0;d=U+64|0;H=U;I=U+2280|0;J=U+232|0;z=U+224|0;O=U+220|0;A=U+216|0;B=U+212|0;T=_i(a,5306)|0;a:do if(!T){c[d>>2]=a;Me(3,5308,d);d=ri(c[(qi()|0)>>2]|0)|0;c[e>>2]=5367;c[e+4>>2]=d;Me(3,5361,e);d=0}else{Kf(I,T);c[f>>2]=O;if((kj(I,5368,f)|0)!=1){c[g>>2]=a;Me(3,5371,g);Wi(T)|0;d=0;break}d=c[O>>2]|0;N=Uj(d*320|0)|0;if(!N){Me(3,5472,j);rb(1)}r=H+8|0;s=H+16|0;t=H+24|0;u=H+32|0;v=H+40|0;w=H+48|0;x=H+56|0;y=(b|0)==0;b:do if((d|0)>0){d=0;f=0;c:while(1){Kf(I,T);e=N+(d*320|0)|0;g=N+(d*320|0)+312|0;c[C>>2]=g;c[C+4>>2]=z;if((kj(I,5489,C)|0)==1){q=c[g>>2]|0;c[e>>2]=(q&-32768|0)==0&0==0?q&32767:0;c[N+(d*320|0)+4>>2]=1;f=f|2}else{if(y){e=10;break}if(!(Qe(J,a,2048,1)|0)){e=12;break}Cj(J,I,2047-(Bj(J)|0)|0)|0;q=Ke(b,J)|0;c[e>>2]=q;if((q|0)<0){e=14;break}c[N+(d*320|0)+4>>2]=0;f=f|1}Kf(I,T);e=N+(d*320|0)+8|0;c[D>>2]=e;if((kj(I,5785,D)|0)!=1){e=18;break}Kf(I,T);o=N+(d*320|0)+16|0;p=N+(d*320|0)+24|0;q=N+(d*320|0)+40|0;c[E>>2]=o;c[E+4>>2]=p;c[E+8>>2]=N+(d*320|0)+32;c[E+12>>2]=q;if((kj(I,5894,E)|0)!=4){c[F>>2]=A;c[F+4>>2]=B;if((kj(I,5910,F)|0)==2)g=0;else{e=21;break}}else g=1;do{Kf(I,T);c[G>>2]=N+(d*320|0)+16+(g<<5);c[G+4>>2]=N+(d*320|0)+16+(g<<5)+8;c[G+8>>2]=N+(d*320|0)+16+(g<<5)+16;c[G+12>>2]=N+(d*320|0)+16+(g<<5)+24;if((kj(I,5894,G)|0)!=4){e=23;break c}g=g+1|0}while((g|0)<3);Oe(o,N+(d*320|0)+112|0)|0;W=+h[e>>3];V=W*-.5;h[H>>3]=V;W=W*.5;h[r>>3]=W;h[s>>3]=W;h[t>>3]=W;h[u>>3]=W;h[v>>3]=V;h[w>>3]=V;h[x>>3]=V;e=N+(d*320|0)+48|0;g=N+(d*320|0)+56|0;j=N+(d*320|0)+72|0;k=N+(d*320|0)+80|0;l=N+(d*320|0)+88|0;m=N+(d*320|0)+104|0;n=0;do{V=+h[H+(n<<4)>>3];W=+h[H+(n<<4)+8>>3];h[N+(d*320|0)+208+(n*24|0)>>3]=+h[q>>3]+(+h[o>>3]*V+ +h[p>>3]*W);h[N+(d*320|0)+208+(n*24|0)+8>>3]=+h[j>>3]+(+h[e>>3]*V+ +h[g>>3]*W);h[N+(d*320|0)+208+(n*24|0)+16>>3]=+h[m>>3]+(+h[k>>3]*V+ +h[l>>3]*W);n=n+1|0}while((n|0)!=4);d=d+1|0;if((d|0)>=(c[O>>2]|0))break b}if((e|0)==10){c[K>>2]=a;c[K+4>>2]=I;Me(3,5496,K)}else if((e|0)==12){c[L>>2]=a;Me(3,5624,L)}else if((e|0)==14){c[M>>2]=a;c[M+4>>2]=J;Me(3,5708,M)}else if((e|0)==18){c[P>>2]=a;c[P+4>>2]=d+1;Me(3,5789,P)}else if((e|0)==21){c[Q>>2]=a;c[Q+4>>2]=d+1;Me(3,5916,Q)}else if((e|0)==23){c[R>>2]=a;c[R+4>>2]=d+1;Me(3,5916,R)}Wi(T)|0;Vj(N);d=0;break a}else f=0;while(0);Wi(T)|0;d=Uj(136)|0;if(!d){Me(3,5472,S);rb(1)}c[d>>2]=N;c[d+4>>2]=c[O>>2];c[d+104>>2]=0;do if((f&3|0)!=3){e=d+108|0;if(!(f&1)){c[e>>2]=1;break}else{c[e>>2]=0;break}}else c[d+108>>2]=2;while(0);h[d+112>>3]=.5;h[d+120>>3]=.5}while(0);i=U;return d|0}function Kf(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if(Zi(b,256,c)|0)while(1){d=Bj(b)|0;b:do if(d)while(1){d=d+-1|0;e=b+d|0;switch(a[e>>0]|0){case 13:case 10:break;default:break b}a[e>>0]=0;if(!d)break b}while(0);switch(a[b>>0]|0){case 0:case 35:break;default:break a}if(!(Zi(b,256,c)|0))break a}while(0);return}function Lf(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,g=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+400|0;n=r+296|0;q=r+200|0;o=r+128|0;p=r;k=c[a>>2]|0;f=c[a+4>>2]|0;if((bf(a+8|0,n,q)|0)<0)Me(3,6025,r+392|0);else{j=+(f+-1|0);f=n+32|0;h[f>>3]=j*+h[n+64>>3]-+h[f>>3];f=n+40|0;h[f>>3]=j*+h[n+72>>3]-+h[f>>3];f=n+48|0;h[f>>3]=j*+h[n+80>>3]-+h[f>>3];f=n+56|0;h[f>>3]=j*+h[n+88>>3]-+h[f>>3];g=+h[n+80>>3];f=0;do{h[o+(f*24|0)>>3]=+h[n+(f<<5)>>3]/g;h[o+(f*24|0)+8>>3]=+h[n+(f<<5)+8>>3]/g;h[o+(f*24|0)+16>>3]=+h[n+(f<<5)+16>>3]/g;f=f+1|0}while((f|0)!=3);g=+(k+-1|0);h[p>>3]=+h[o>>3]*2.0/g;h[p+8>>3]=+h[o+8>>3]*2.0/g;h[p+16>>3]=+h[o+16>>3]*2.0/g+-1.0;k=p+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;h[p+40>>3]=+h[o+32>>3]*2.0/j;h[p+48>>3]=+h[o+40>>3]*2.0/j+-1.0;k=p+56|0;g=d-b;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;h[p+80>>3]=(b+d)/g;h[p+88>>3]=d*-2.0*b/g;k=p+96|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;h[p+112>>3]=1.0;h[p+120>>3]=0.0;g=+h[q+24>>3];j=+h[q+56>>3];d=+h[q+88>>3];k=0;do{b=+h[p+(k<<5)>>3];f=p+(k<<5)+8|0;a=p+(k<<5)+16|0;l=+h[f>>3];m=+h[a>>3];n=0;do{h[e+((n<<2)+k<<3)>>3]=b*+h[q+(n<<3)>>3]+l*+h[q+32+(n<<3)>>3]+m*+h[q+64+(n<<3)>>3];n=n+1|0}while((n|0)!=3);h[e+(k+12<<3)>>3]=+h[p+(k<<5)+24>>3]+(b*g+ +h[f>>3]*j+ +h[a>>3]*d);k=k+1|0}while((k|0)!=4)}i=r;return}function Mf(a){a=a|0;c[496]=a;return}function Nf(){return c[496]|0}function Of(a){a=a|0;var b=0,d=0;b=a+212|0;d=c[b>>2]|0;if(d){ze(d)|0;Qd(c[b>>2]|0)|0;c[b>>2]=0}b=a+224|0;if(c[b>>2]|0){Ld(b)|0;c[b>>2]=0}b=a+192|0;if(c[b>>2]|0){kf(b)|0;c[b>>2]=0}return}function Pf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;c[d>>2]=a;if(!(Cg(2044,d)|0))a=-1;else{f=Dg(2044,d)|0;a=f+196|0;b=c[a>>2]|0;if(b){Vj(b);c[a>>2]=0;c[f+200>>2]=0}Of(f);Ce(c[f+216>>2]|0)|0;Eg(2044,d)|0;d=f+248|0;e=f+252|0;a=c[d>>2]|0;if((c[e>>2]|0)!=(a|0)){b=0;do{Ff(c[a+(b<<3)+4>>2]|0)|0;b=b+1|0;a=c[d>>2]|0}while(b>>>0<(c[e>>2]|0)-a>>3>>>0)}Fg(d);Lh(d);Fg(f+248|0);Lh(f);a=0}i=g;return a|0}function Qf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+208|0;g=h+192|0;f=h;e=h+196|0;if(!(a[b>>0]&1))d=b+1|0;else d=c[b+8>>2]|0;if((ef(d,1,f,h+184|0)|0)<0){if(!(a[b>>0]&1))d=b+1|0;else d=c[b+8>>2]|0;c[g>>2]=d;Me(3,6093,g);d=-1}else{d=c[521]|0;c[521]=d+1;c[e>>2]=d;ik(Gg(2064,e)|0,f|0,184)|0}i=h;return d|0}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;m=n+24|0;l=n+16|0;j=n+8|0;f=n;d=n+32|0;e=n+28|0;c[d>>2]=a;c[e>>2]=b;do if((Cg(2044,d)|0)!=0?(k=Dg(2044,d)|0,(Hg(2064,e)|0)!=0):0){g=k+8|0;ik(g|0,Gg(2064,e)|0,184)|0;e=c[g>>2]|0;d=k+204|0;b=c[k+12>>2]|0;a=k+208|0;if(!((e|0)==(c[d>>2]|0)?(b|0)==(c[a>>2]|0):0)){c[f>>2]=e;c[f+4>>2]=b;Me(2,6152,f);af(g,c[d>>2]|0,c[a>>2]|0,g)|0}Of(k);d=jf(g,15)|0;a=k+192|0;c[a>>2]=d;if(!d){Me(3,6199,j);d=-1;break}d=Md(d)|0;b=k+212|0;c[b>>2]=d;if(!d){Me(3,6237,l);d=-1;break}Nd(d,2)|0;l=Jd(g)|0;c[k+224>>2]=l;if(!l){Me(3,6274,m);d=-1;break}else{ye(c[b>>2]|0,c[k+216>>2]|0)|0;Lf(c[a>>2]|0,+h[k+232>>3],+h[k+240>>3],k+264|0);d=0;break}}else d=-1;while(0);i=n;return d|0}function Sf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;g=j;e=j+12|0;c[e>>2]=b;if(Cg(2044,e)|0){f=Dg(2044,e)|0;if(!(a[d>>0]&1))d=d+1|0;else d=c[d+8>>2]|0;b=f+216|0;e=Ke(c[b>>2]|0,d)|0;c[f+260>>2]=e;if((e|0)<0){c[g>>2]=d;Me(3,6312,g);Ce(c[b>>2]|0)|0;Me(3,6358,h);e=-1}}else e=-1;i=j;return e|0}function Tf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;f=l+8|0;e=l+20|0;k=l;c[e>>2]=b;do if(Cg(2044,e)|0){j=Dg(2044,e)|0;if(!(a[d>>0]&1))e=d+1|0;else e=c[d+8>>2]|0;b=c[j+212>>2]|0;d=j+216|0;h=j+220|0;e=Jf(e,c[d>>2]|0)|0;c[h>>2]=e;if(!e){Me(3,6402,f);Ce(c[d>>2]|0)|0;Me(3,6429,g);e=-1;break}switch(c[e+108>>2]|0){case 0:{Zd(b,0)|0;break}case 1:{Zd(b,2)|0;break}default:Zd(b,3)|0}b=j+248|0;d=j+252|0;f=c[d>>2]|0;e=f-(c[b>>2]|0)>>3;g=k;c[g>>2]=0;c[g+4>>2]=0;c[k>>2]=e;c[k+4>>2]=c[h>>2];if((f|0)==(c[j+256>>2]|0)){Ig(b,k);break}else{j=k;e=c[j>>2]|0;j=c[j+4>>2]|0;k=f;c[k>>2]=e;c[k+4>>2]=j;c[d>>2]=(c[d>>2]|0)+8;break}}else e=-1;while(0);i=l;return e|0}function Uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;c[d>>2]=a;if(((Cg(2044,d)|0)!=0?(e=Dg(2044,d)|0,(b|0)>=0):0)?(f=c[e+248>>2]|0,(c[e+252>>2]|0)-f>>3>>>0>b>>>0):0)d=c[(c[f+(b<<3)+4>>2]|0)+4>>2]|0;else d=-1;i=g;return d|0}function Vf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(Cg(2044,b)|0))b=-1;else{b=Dg(2044,b)|0;b=(c[b+252>>2]|0)-(c[b+248>>2]|0)>>3}i=d;return b|0}function Wf(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(Cg(2044,d)|0)h[(Dg(2044,d)|0)+232>>3]=b;i=e;return}function Xf(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(!(Cg(2044,d)|0))b=-1.0;else b=+h[(Dg(2044,d)|0)+232>>3];i=e;return +b}function Yf(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(Cg(2044,d)|0)h[(Dg(2044,d)|0)+240>>3]=b;i=e;return}function Zf(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(!(Cg(2044,d)|0))b=-1.0;else b=+h[(Dg(2044,d)|0)+240>>3];i=e;return +b}function _f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((Cg(2044,d)|0)!=0?(Zd(c[(Dg(2044,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Me(1,6478,e)}i=f;return}function $f(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0)){i=e;return -1}else{a=(ae(c[(Dg(2044,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function ag(a,b){a=a|0;b=+b;var d=0,e=0,f=0.0,g=0,j=0,k=0;k=i;i=i+16|0;j=k;d=k+8|0;c[d>>2]=a;if((((Cg(2044,d)|0)!=0?(e=Dg(2044,d)|0,!(b<=0.0|b>=1.0)):0)?(f=b,g=c[e+212>>2]|0,(g|0)!=0):0)?(be(g,f)|0)==0:0){h[j>>3]=f;Me(1,6513,j)}i=k;return}function bg(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f;c[b>>2]=a;if((Cg(2044,b)|0)!=0?(d=c[(Dg(2044,b)|0)+212>>2]|0,(d|0)!=0):0){a=(ce(d,e)|0)==0;i=f;return +(a?+h[e>>3]:-1.0)}i=f;return -1.0}function cg(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(Cg(2044,d)|0)_d(c[(Dg(2044,d)|0)+212>>2]|0,b)|0;i=e;return}function dg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0))b=-1;else{$d(c[(Dg(2044,b)|0)+212>>2]|0,d)|0;b=c[d>>2]|0}i=e;return b|0}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((Cg(2044,d)|0)!=0?(Sd(c[(Dg(2044,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Me(1,6544,e)}i=f;return}function fg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0)){i=e;return -1}else{a=(Td(c[(Dg(2044,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;d=g+4|0;c[d>>2]=a;if(((Cg(2044,d)|0)!=0?(e=Dg(2044,d)|0,b>>>0<=255):0)?(Ud(c[e+212>>2]|0,b)|0)==0:0){c[f>>2]=b;Me(1,6569,f)}i=g;return}function hg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0)){i=e;return -1}else{a=(Vd(c[(Dg(2044,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((Cg(2044,d)|0)!=0?(Pd(c[(Dg(2044,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Me(1,6590,e)}i=f;return}function jg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0)){i=e;return -1}else{a=(Wd(c[(Dg(2044,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if(!(Cg(2044,d)|0))b=0;else{a=(b|0)!=0;Od(c[(Dg(2044,d)|0)+212>>2]|0,a&1)|0;c[e>>2]=a?6616:6620;Me(1,6625,e)}i=f;return b|0}function lg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(Cg(2044,b)|0))b=0;else b=c[(c[(Dg(2044,b)|0)+212>>2]|0)+4834148>>2]|0;i=d;return b|0}function mg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0))b=0;else{Rd(c[(Dg(2044,b)|0)+212>>2]|0,d)|0;b=c[d>>2]|0}i=e;return b|0}function ng(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((Cg(2044,d)|0)!=0?(Xd(c[(Dg(2044,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Me(1,6647,e)}i=f;return}function og(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(Cg(2044,b)|0)){i=e;return -1}else{a=(Yd(c[(Dg(2044,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function pg(a,b){a=a|0;b=b|0;var c=0;c=0;do{h[b+(c<<5)>>3]=+h[a+(c<<5)>>3];h[b+(c<<5)+8>>3]=+h[a+(c<<5)+8>>3];h[b+(c<<5)+16>>3]=+h[a+(c<<5)+16>>3];h[b+(c<<5)+24>>3]=+h[a+(c<<5)+24>>3];c=c+1|0}while((c|0)!=3);return}function qg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(Cg(2044,e)|0){e=Dg(2044,e)|0;a=c[e+212>>2]|0;if((c[a+44>>2]|0)>(b|0)){+ke(c[e+224>>2]|0,(b|0)<0?8:a+48+(b<<8)|0,+(d|0),264);e=0;break}else{e=c[523]|0;break}}else e=c[522]|0;while(0);i=f;return e|0}function rg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(Cg(2044,e)|0){e=Dg(2044,e)|0;a=c[e+212>>2]|0;if((c[a+44>>2]|0)>(b|0)){+le(c[e+224>>2]|0,(b|0)<0?8:a+48+(b<<8)|0,264,+(d|0),264);e=0;break}else{e=c[523]|0;break}}else e=c[522]|0;while(0);i=f;return e|0}function sg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(Cg(2044,e)|0){e=c[(Dg(2044,e)|0)+212>>2]|0;if((c[e+44>>2]|0)>(b|0)){c[((b|0)<0?8:e+48+(b<<8)|0)+16>>2]=d;e=0;break}else{e=c[523]|0;break}}else e=c[522]|0;while(0);i=f;return e|0}function tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(Cg(2044,d)|0){d=c[(Dg(2044,d)|0)+212>>2]|0;if((c[d+44>>2]|0)>(b|0)){d=(b|0)<0?8:d+48+(b<<8)|0;o=+h[33];h[d+168>>3]=o;k=+h[34];h[d+176>>3]=k;n=+h[35];h[d+184>>3]=n;j=+h[36];h[d+192>>3]=j;m=+h[37];h[d+200>>3]=m;g=+h[38];h[d+208>>3]=g;l=+h[39];h[d+216>>3]=l;f=+h[40];h[d+224>>3]=f;h[d+56>>3]=(o+n+m+l)*.25;h[d+64>>3]=(k+j+g+f)*.25;d=0;break}else{d=c[523]|0;break}}else d=c[522]|0;while(0);i=e;return d|0}function ug(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(Cg(2044,d)|0){d=Dg(2044,d)|0;a=c[d+248>>2]|0;if((b|0)<0?1:(c[d+252>>2]|0)-a>>3>>>0<=b>>>0){d=c[524]|0;break}else{b=c[a+(b<<3)+4>>2]|0;a=c[d+212>>2]|0;+Hf(c[d+224>>2]|0,a+48|0,c[a+44>>2]|0,b);pg(b+8|0,264);d=0;break}}else d=c[522]|0;while(0);i=e;return d|0}function vg(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(Cg(2044,d)|0){d=Dg(2044,d)|0;a=c[d+248>>2]|0;if((b|0)<0?1:(c[d+252>>2]|0)-a>>3>>>0<=b>>>0){d=c[524]|0;break}else{b=c[a+(b<<3)+4>>2]|0;a=c[d+212>>2]|0;+Gf(c[d+224>>2]|0,a+48|0,c[a+44>>2]|0,b);pg(b+8|0,264);d=0;break}}else d=c[522]|0;while(0);i=e;return d|0}function wg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(Cg(2044,b)|0))b=c[522]|0;else{b=Dg(2044,b)|0;b=de(c[b+212>>2]|0,c[b+196>>2]|0)|0}i=d;return b|0}function xg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(Cg(2044,b)|0))b=2088;else b=(c[(Dg(2044,b)|0)+212>>2]|0)+44|0;i=d;return c[b>>2]|0}function yg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(Cg(2044,e)|0){a=Dg(2044,e)|0;e=c[a+248>>2]|0;if((b|0)<0?1:(c[a+252>>2]|0)-e>>3>>>0<=b>>>0){e=c[524]|0;break}e=c[e+(b<<3)+4>>2]|0;if((d|0)<0?1:(c[e+4>>2]|0)<=(d|0)){e=c[523]|0;break}else{e=c[e>>2]|0;pg(e+(d*320|0)+16|0,264);Lb(0,c[e+(d*320|0)+304>>2]|0,c[e+(d*320|0)>>2]|0,c[e+(d*320|0)+4>>2]|0,+(+h[e+(d*320|0)+8>>3]))|0;e=0;break}}else e=c[522]|0;while(0);i=f;return e|0}function zg(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(Cg(2044,d)|0){d=c[(Dg(2044,d)|0)+212>>2]|0;if((c[d+44>>2]|0)>(b|0)){d=(b|0)<0?8:d+48+(b<<8)|0;Qa(1,c[d>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0,c[d+12>>2]|0,c[d+16>>2]|0,c[d+20>>2]|0,c[d+24>>2]|0,+(+h[d+32>>3]),+(+h[d+40>>3]),+(+h[d+48>>3]),+(+h[d+56>>3]),+(+h[d+64>>3]),+(+h[d+72>>3]),+(+h[d+80>>3]),+(+h[d+88>>3]),+(+h[d+96>>3]),+(+h[d+104>>3]),+(+h[d+112>>3]),+(+h[d+120>>3]),+(+h[d+128>>3]),+(+h[d+136>>3]),+(+h[d+144>>3]),+(+h[d+152>>3]),+(+h[d+160>>3]),+(+h[d+168>>3]),+(+h[d+176>>3]),+(+h[d+184>>3]),+(+h[d+192>>3]),+(+h[d+200>>3]),+(+h[d+208>>3]),+(+h[d+216>>3]),+(+h[d+224>>3]),c[d+240>>2]|0)|0;d=0;break}else{d=c[523]|0;break}}else d=c[522]|0;while(0);i=e;return d|0}function Ag(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h+8|0;f=h+12|0;e=c[525]|0;c[525]=e+1;c[f>>2]=e;f=Dg(2044,f)|0;c[f>>2]=e;c[f+204>>2]=a;c[f+208>>2]=b;j=$(a<<2,b)|0;b=f+200|0;c[b>>2]=j;a=f+196|0;c[a>>2]=Uj(j)|0;j=Ae()|0;c[f+216>>2]=j;if(!j)Me(3,8285,h);Rf(e,d)|0;c[g>>2]=c[b>>2];Me(1,8322,g);Kb(2,c[f>>2]|0,c[a>>2]|0,c[b>>2]|0,f+264|0,264)|0;i=h;return c[f>>2]|0}function Bg(a){a=a|0;var b=0;a=i;i=i+16|0;b=a;Jg(8591,7);Kg(8597,3);Lg(8606,2);Lg(8617,3);Mg(8633,4);Kg(8651,4);Ng(8671,5);Jg(8683,8);Mg(8700,5);Jg(8720,9);Jg(8738,10);Mg(8760,6);Mg(8783,7);Kg(8812,6);Kg(8825,7);Jg(8838,11);Mg(8857,8);Mg(8867,9);Kg(8880,8);Kg(8893,9);Og(8912,10);Pg(8924,1);Qg(8936,1);Rg(8959,1);Qg(8982,2);Rg(9004,2);Sg(9026,1);Kg(9043,10);Sg(9060,2);Kg(9073,11);Sg(9086,3);Kg(9110,12);Tg(9134,3);Rg(9147,3);Sg(9160,4);Kg(9178,13);Sg(9196,5);Kg(9212,14);Sg(9228,6);Kg(9245,15);Ug(9262,2088);Ug(9291,2096);Ug(9319,2092);Cb(9352,680,0);Cb(9369,680,1);Cb(9385,680,0);Cb(9407,680,0);Cb(9432,680,1);Cb(9457,680,1);Cb(9482,680,100);Cb(9509,680,0);Cb(9535,680,1);Cb(9561,680,0);Cb(9588,680,0);Cb(9615,680,1);Cb(9641,680,2);Cb(9666,680,3);Cb(9704,680,4);Cb(9741,680,0);Cb(9775,680,0);Cb(9799,680,1);Cb(9825,680,2);Cb(9852,680,2);Cb(9886,680,5);h[b>>3]=.5;Vg(9904,b);Cb(9925,680,0);Cb(9944,680,1);Cb(9962,680,2);Cb(9980,680,3);Cb(9999,680,4);Cb(10021,680,3);Cb(10040,680,515);Cb(10069,680,259);Cb(10097,680,4);Cb(10116,680,772);Cb(10146,680,1028);Cb(10176,680,0);Cb(10207,680,1);Cb(10243,680,2);Cb(10277,680,3);Cb(10315,680,0);Cb(10348,680,1);Cb(10395,680,2);Cb(10437,680,3);Cb(10480,680,4);Cb(10532,680,5);Cb(10583,680,6);Cb(10628,680,7);Cb(10667,680,8);Cb(10712,680,9);i=a;return}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function Dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;d=Cg(a,b)|0;if(!d){wh(f,a,b);xh(e,a,c[f>>2]|0);d=c[e>>2]|0;c[f>>2]=0}i=g;return d+16|0}function Eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;b=Cg(a,b)|0;if(!b)b=0;else{c[e>>2]=b;c[d>>2]=c[e>>2];uh(a,d)|0;b=1}i=f;return b|0}function Fg(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Lh(d)}return}function Gg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;d=Hg(a,b)|0;if(!d){qh(f,a,b);rh(e,a,c[f>>2]|0);d=c[e>>2]|0;c[f>>2]=0}i=g;return d+16|0}function Hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function Ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>3)+1|0;if(f>>>0>536870911)Jh(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?f:d}else d=536870911;nh(h,d,(c[g>>2]|0)-e>>3,a+8|0);g=h+8|0;f=c[g>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[g>>2]=f+8;oh(a,h);ph(h);i=j;return}function Jg(a,b){a=a|0;b=b|0;Oa(a|0,4,2200,10911,1,b|0);return}function Kg(a,b){a=a|0;b=b|0;Oa(a|0,2,2192,10801,10,b|0);return}function Lg(a,b){a=a|0;b=b|0;Oa(a|0,3,2180,10906,12,b|0);return}function Mg(a,b){a=a|0;b=b|0;Oa(a|0,3,2168,10906,13,b|0);return}function Ng(a,b){a=a|0;b=b|0;Oa(a|0,2,2160,10801,11,b|0);return}function Og(a,b){a=a|0;b=b|0;Oa(a|0,2,2152,10797,7,b|0);return}function Pg(a,b){a=a|0;b=b|0;Oa(a|0,1,2148,10794,16,b|0);return}function Qg(a,b){a=a|0;b=b|0;Oa(a|0,3,2136,10789,1,b|0);return}function Rg(a,b){a=a|0;b=b|0;Oa(a|0,2,2128,10785,1,b|0);return}function Sg(a,b){a=a|0;b=b|0;Oa(a|0,3,2116,10780,1,b|0);return}function Tg(a,b){a=a|0;b=b|0;Oa(a|0,3,2104,10775,2,b|0);return}function Ug(a,b){a=a|0;b=b|0;Cb(a|0,680,c[b>>2]|0);return}function Vg(a,b){a=a|0;b=b|0;Cb(a|0,720,~~+h[b>>3]>>>0|0);return}function Wg(){c[511]=0;c[512]=0;c[513]=0;c[514]=0;g[515]=1.0;ub(11,2044,n|0)|0;c[516]=0;c[517]=0;c[518]=0;c[519]=0;g[520]=1.0;ub(12,2064,n|0)|0;Bg(0);return}function Xg(a){a=a|0;$g(a);return}function Yg(a){a=a|0;Zg(a);return}function Zg(a){a=a|0;var b=0;_g(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Lh(b);return}function _g(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Lh(a)}while((b|0)!=0);return}function $g(a){a=a|0;var b=0;ah(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Lh(b);return}function ah(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Fg(a+264|0);Lh(a)}while((b|0)!=0);return}function bh(a,b,c){a=a|0;b=b|0;c=+c;Tb[a&3](b,c);return}function ch(a,b,c){a=a|0;b=b|0;c=c|0;Xb[a&7](b,c);return}function dh(a,b){a=a|0;b=b|0;return +(+Ub[a&3](b))}function eh(a,b,c){a=a|0;b=b|0;c=+c;Tb[a&3](b,c);return}function fh(a){a=a|0;return Vb[a&1]()|0}function gh(a,b){a=a|0;b=b|0;Wb[a&15](b);return}function hh(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;i=i+16|0;d=c;ih(d,b);a=Yb[a&31](d)|0;bk(d);i=c;return a|0}function ih(a,b){a=a|0;b=b|0;ak(a,b+4|0,c[b>>2]|0);return}function jh(a,b,c){a=a|0;b=b|0;c=c|0;return cc[a&15](b,c)|0}function kh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;ih(e,c);a=cc[a&15](b,e)|0;bk(e);i=d;return a|0}function lh(a,b){a=a|0;b=b|0;return Yb[a&31](b)|0}function mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&15](b,c,d)|0}function nh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Kh(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function oh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>3)<<3)|0;c[d>>2]=h;ik(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function ph(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Lh(b);return}function qh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Kh(200)|0;c[e+8>>2]=c[d>>2];ek(e+16|0,0,184)|0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function rh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;sh(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return} -function zd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l*3|0)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+3|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+6|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ad(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+10+(p<<5&224)+(q>>>3&28)+(q<<3&248)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Bd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Cd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){q=d[s>>0]|0;do if(((q&240)+24+(q<<4&240)+((d[s+1>>0]|0)&240)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Dd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+12+(p<<5&224)+(q>>>3&24)+(q<<2&248)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ed(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+2>>0]|0)+(d[s+1>>0]|0)+(d[s+3>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){ek(e|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Fd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+l|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+2|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Gd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t+1>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Hd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Me(3,3904,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Id(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;m=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;l=(c[k+4>>2]|0)+m|0;z=1;e=e+m|0;o=o+(m<<1)|0;j=j+m|0;m=0;b:while(1){if(y){u=1;t=e;s=m;while(1){do if((d[t>>0]|0)>(d[j>>0]|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+1|0;j=j+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}z=z+1|0;if((z|0)>=(B|0)){p=m;D=52;break a}else{l=l+2|0;e=e+2|0;o=o+4|0;j=j+2|0}}Me(3,3904,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((p|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(p|0)){e=e+1|0;n=n+4|0}else break}}j=k+8|0;l=m+-1|0;c[j>>2]=l;if(l){ek(o|0,0,l<<2|0)|0;ek(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[j>>2]|0))}if((p|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(p|0))}if((c[j>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[j>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Jd(a){a=a|0;return Kd(a+8|0)|0}function Kd(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=Uj(4)|0;if(!b){Me(3,5472,d);rb(1)}a=wf(a)|0;c[b>>2]=a;if(!a){Vj(b);b=0}i=d;return b|0}function Ld(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)b=-1;else{xf(b)|0;Vj(c[a>>2]|0);c[a>>2]=0;b=0}return b|0}function Md(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=Uj(7062432)|0;if(!b){Me(3,5472,d);rb(1)}c[b>>2]=0;c[b+4834148>>2]=0;c[b+7062408>>2]=0;c[b+4>>2]=-1;c[b+8>>2]=0;c[b+12>>2]=1;c[b+16>>2]=100;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=2;h[b+7062416>>3]=.5;c[b+7062424>>2]=3;c[b+32>>2]=a;e=c[a>>2]|0;c[b+36>>2]=e;a=c[a+4>>2]|0;c[b+40>>2]=a;c[b+44>>2]=0;c[b+15408>>2]=0;c[b+4834152>>2]=0;c[b+4818296>>2]=0;a=Uj($(e<<1,a)|0)|0;c[b+4834144>>2]=a;if(!a){Me(3,5472,d+8|0);rb(1)}else{c[b+7062384>>2]=0;Nd(b,2)|0;Od(b,0)|0;c[b+7062388>>2]=-1;Pd(b,0)|0;c[b+7062392>>2]=7;c[b+7062396>>2]=0;i=d;return b|0}return 0}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;a:do if(a){e=a+4|0;if((c[e>>2]|0)!=(b|0)){switch(b|0){case 11:case 10:case 9:case 8:case 7:case 6:case 4:case 3:case 2:case 1:case 0:{f=0;break}case 14:case 13:case 12:case 5:{f=1;break}default:{c[d>>2]=b;Me(3,3936,d);d=-1;break a}}c[e>>2]=b;c[a+8>>2]=Pe(b)|0;d=a+7062408|0;b=c[d>>2]|0;if(b){pe(b);c[d>>2]=oe(c[a+36>>2]|0,c[a+40>>2]|0,c[e>>2]|0,0)|0}d=a+24|0;b=c[d>>2]|0;if(!f)switch(b|0){case 1:{c[d>>2]=4;d=0;break a}case 4:{c[d>>2]=3;d=0;break a}default:{d=0;break a}}else switch(b|0){case 0:{c[d>>2]=1;d=0;break a}case 3:{c[d>>2]=4;d=0;break a}default:{d=0;break a}}}else d=0}else d=-1;while(0);i=g;return d|0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;do if(a)if((c[a>>2]|0)!=(b|0)){c[a>>2]=b;if(!b){d=a+4834148|0;Vj(c[d>>2]|0);c[d>>2]=0;d=0;break}b=Uj($(c[a+40>>2]|0,c[a+36>>2]|0)|0)|0;c[a+4834148>>2]=b;if(!b){Me(3,5472,e);rb(1)}else d=0}else d=0;else d=-1;while(0);i=f;return d|0}function Pd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;f=j;if(a){g=a+7062388|0;if((c[g>>2]|0)!=(b|0)){d=a+7062408|0;e=c[d>>2]|0;if(e){pe(e);c[d>>2]=0}switch(b|0){case 3:case 2:case 1:{c[d>>2]=oe(c[a+36>>2]|0,c[a+40>>2]|0,c[a+4>>2]|0,0)|0;break}case 4:{c[a+7062404>>2]=1;c[a+7062400>>2]=1;b=4;break}case 0:{b=0;break}default:{Me(3,3985,f);b=0}}c[g>>2]=b;if((c[a>>2]|0)==1){c[h>>2]=c[760+(b<<2)>>2];Me(3,4059,h);b=0}else b=0}else b=0}else b=-1;i=j;return b|0}function Qd(a){a=a|0;var b=0,d=0;if(!a)b=-1;else{b=a+7062408|0;d=c[b>>2]|0;if(d){pe(d);c[b>>2]=0}Vj(c[a+4834144>>2]|0);Vj(c[a+4834148>>2]|0);Vj(a);b=0}return b|0}function Rd(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a>>2];a=0}else a=-1;return a|0}function Sd(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+12>>2]=b;a=0}else a=-1;return a|0}function Td(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+12>>2];a=0}else a=-1;return a|0}function Ud(a,b){a=a|0;b=b|0;if((a|0)==0|b>>>0>255)a=-1;else{c[a+16>>2]=b;a=0}return a|0}function Vd(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+16>>2];a=0}else a=-1;return a|0}function Wd(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062388>>2];a=0}else a=-1;return a|0}function Xd(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+20>>2]=b;a=0}else a=-1;return a|0}function Yd(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+20>>2];a=0}return a|0}function Zd(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<5){c[a+24>>2]=b;a=0}else a=-1;return a|0}function _d(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062424>>2]=b;a=0}return a|0}function $d(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062424>>2];a=0}else a=-1;return a|0}function ae(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+24>>2];a=0}return a|0}function be(a,b){a=a|0;b=+b;if((a|0)!=0?!(b<=0.0|b>=1.0):0){h[a+7062416>>3]=b;a=0}else a=-1;return a|0}function ce(a,b){a=a|0;b=b|0;if(!a)a=-1;else{h[b>>3]=+h[a+7062416>>3];a=0}return a|0}function de(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0.0,S=0.0;Q=i;i=i+80|0;M=Q+32|0;G=Q+24|0;z=Q;y=Q+52|0;D=Q+40|0;L=Q+64|0;P=a+44|0;c[P>>2]=0;J=a+7062388|0;f=c[J>>2]|0;a:do if((f|0)==4){I=a+7062396|0;e=c[I>>2]|0;do if((e|0)>0){f=4;e=e+-1|0}else{C=a+16|0;F=c[C>>2]|0;E=a+7062400|0;A=(c[E>>2]|0)+F|0;A=(A|0)>255?255:A;c[y>>2]=A;H=a+7062404|0;B=F-(c[H>>2]|0)|0;B=(B|0)<0?0:B;c[y+4>>2]=B;c[y+8>>2]=F;e=a+36|0;f=a+40|0;g=a+4|0;k=a+12|0;l=a+20|0;m=a+4834144|0;p=a+15416|0;q=a+15408|0;r=a+7062384|0;s=a+24|0;t=a+32|0;u=a+7062416|0;v=a+48|0;w=a+7062424|0;x=0;do{if((xe(b,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,c[a>>2]|0,c[k>>2]|0,c[y+(x<<2)>>2]|0,c[l>>2]|0,m,0)|0)<0){e=-1;break a}if((fe(c[e>>2]|0,c[f>>2]|0,m,c[l>>2]|0,1e6,70,1.0,p,q)|0)<0){e=-1;break a}if((je(b,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,p,c[q>>2]|0,c[r>>2]|0,c[l>>2]|0,c[s>>2]|0,(c[t>>2]|0)+184|0,+h[u>>3],v,P,c[w>>2]|0)|0)<0){e=-1;break a}c[D+(x<<2)>>2]=c[P>>2];x=x+1|0}while((x|0)<3);if((c[a>>2]|0)==1){N=c[D+4>>2]|0;g=c[D+8>>2]|0;f=c[D>>2]|0;c[z>>2]=B;c[z+4>>2]=N;c[z+8>>2]=F;c[z+12>>2]=g;c[z+16>>2]=A;c[z+20>>2]=f;Me(3,4153,z)}else{f=c[D>>2]|0;g=c[D+8>>2]|0}e=c[D+4>>2]|0;if((f|0)>(g|0)|(e|0)>(g|0)){f=(f|0)>=(e|0)?A:B;c[C>>2]=f;e=f-F|0;if((e|0)>0){c[E>>2]=e;e=1}else{c[E>>2]=1;e=0-e|0}c[H>>2]=e;if((c[a>>2]|0)==1){c[G>>2]=f;Me(3,4229,G)}f=c[J>>2]|0;e=c[a+7062392>>2]|0;break}e=c[E>>2]|0;f=c[H>>2]|0;do if((e|0)>=(f|0))if((e|0)>(f|0)){c[H>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e;c[H>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e}while(0);if((e+F|0)>254){c[E>>2]=1;e=1}if((F|0)<=(e|0))c[H>>2]=1;c[I>>2]=c[a+7062392>>2];N=47;break a}while(0);c[I>>2]=e;N=30}else N=30;while(0);b:do if((N|0)==30){c:do switch(f|0){case 3:{f=a+7062408|0;e=we(c[f>>2]|0,b,9,-7)|0;if((e|0)<0)break b;e=c[f>>2]|0;f=a+4834144|0;e=xe(c[e>>2]|0,c[e+8>>2]|0,c[e+12>>2]|0,5,c[a>>2]|0,c[a+12>>2]|0,0,0,f,c[e+4>>2]|0)|0;if((e|0)<0)break b;e=a+36|0;g=a+40|0;k=a+20|0;break}case 2:case 1:{g=a+7062396|0;e=c[g>>2]|0;if((e|0)>0){c[g>>2]=e+-1;N=44;break c}e=c[a+7062408>>2]|0;if((f|0)==1)e=ue(e,b,L)|0;else e=ve(e,b,L)|0;if((e|0)<0)break b;e=a+16|0;if((c[a>>2]|0)==1?(K=d[L>>0]|0,(c[e>>2]|0)!=(K|0)):0){c[M>>2]=(c[J>>2]|0)==1?4281:4288;c[M+4>>2]=K;Me(3,4293,M)}c[e>>2]=d[L>>0];c[g>>2]=c[a+7062392>>2];N=44;break}default:N=44}while(0);if((N|0)==44){e=a+36|0;g=a+40|0;k=a+20|0;f=a+4834144|0;if((xe(b,c[e>>2]|0,c[g>>2]|0,c[a+4>>2]|0,c[a>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[k>>2]|0,f,0)|0)<0){e=-1;break}}l=a+15416|0;m=a+15408|0;if((fe(c[e>>2]|0,c[g>>2]|0,f,c[k>>2]|0,1e6,70,1.0,l,m)|0)>=0?(je(b,c[e>>2]|0,c[g>>2]|0,c[a+4>>2]|0,l,c[m>>2]|0,c[a+7062384>>2]|0,c[k>>2]|0,c[a+24>>2]|0,(c[a+32>>2]|0)+184|0,+h[a+7062416>>3],a+48|0,P,c[a+7062424>>2]|0)|0)>=0:0)N=47;else e=-1}while(0);d:do if((N|0)==47){t=a+28|0;if((c[t>>2]|0)==1){ee(a);e=0;break}u=a+4818296|0;r=a+24|0;q=c[u>>2]|0;if((q|0)>0){s=0;do{f=c[P>>2]|0;g=a+4818304+(s*264|0)+56|0;k=a+4818304+(s*264|0)+64|0;if((f|0)>0){o=+(c[a+4818304+(s*264|0)>>2]|0);e=-1;l=0;n=.5;while(1){j=+(c[a+48+(l<<8)>>2]|0);R=o/j;if(!(R<.7|R>1.43)?(R=+h[a+48+(l<<8)+56>>3]-+h[g>>3],O=+h[a+48+(l<<8)+64>>3]-+h[k>>3],O=(R*R+O*O)/j,O=(f|0)){p=e;break}else n=j}}else p=-1;e:do if((p|0)>-1){m=c[r>>2]|0;switch(m|0){case 2:case 1:case 0:break;case 4:case 3:{g=a+48+(p<<8)+40|0;j=+h[a+4818304+(s*264|0)+40>>3];if(!(+h[g>>3]>3]<+h[f>>3]))break e}else{f=a+4818304+(s*264|0)+48|0;e=a+48+(p<<8)+48|0}h[g>>3]=j;c[a+48+(p<<8)+8>>2]=c[a+4818304+(s*264|0)+8>>2];h[e>>3]=+h[f>>3];c[a+48+(p<<8)+12>>2]=c[a+4818304+(s*264|0)+12>>2];e=-1;n=1.0e8;g=0;while(1){j=0.0;f=0;do{b=(f+g|0)%4|0;o=+h[a+4818304+(s*264|0)+168+(f<<4)>>3]-+h[a+48+(p<<8)+168+(b<<4)>>3];R=+h[a+4818304+(s*264|0)+168+(f<<4)+8>>3]-+h[a+48+(p<<8)+168+(b<<4)+8>>3];j=j+(o*o+R*R);f=f+1|0}while((f|0)!=4);f=j>2]=(b+(c[a+4818304+(s*264|0)+20>>2]|0)|0)%4|0;c[a+48+(p<<8)+24>>2]=(b+(c[a+4818304+(s*264|0)+24>>2]|0)|0)%4|0;break e}default:{e=-1;break d}}e=a+48+(p<<8)+32|0;o=+h[a+4818304+(s*264|0)+32>>3];if(+h[e>>3]>3]=o;l=c[a+4818304+(s*264|0)+4>>2]|0;c[a+48+(p<<8)+4>>2]=l;g=a+4818304+(s*264|0)+16|0;e=-1;n=1.0e8;k=0;while(1){j=0.0;f=0;do{b=(f+k|0)%4|0;S=+h[a+4818304+(s*264|0)+168+(f<<4)>>3]-+h[a+48+(p<<8)+168+(b<<4)>>3];R=+h[a+4818304+(s*264|0)+168+(f<<4)+8>>3]-+h[a+48+(p<<8)+168+(b<<4)+8>>3];j=j+(S*S+R*R);f=f+1|0}while((f|0)!=4);if(j>2]|0)|0)%4|0;else j=n;k=k+1|0;if((k|0)==4)break;else n=j}c[a+48+(p<<8)+16>>2]=e;if(m>>>0<2){c[a+48+(p<<8)+8>>2]=l;h[a+48+(p<<8)+40>>3]=o;c[a+48+(p<<8)+20>>2]=e;break}else{c[a+48+(p<<8)+12>>2]=l;h[a+48+(p<<8)+48>>3]=o;c[a+48+(p<<8)+24>>2]=e;break}}}while(0);s=s+1|0}while((s|0)<(q|0))}ee(a);if((c[u>>2]|0)>0){g=0;e=0;do{f=a+4818304+(g*264|0)|0;N=a+4818304+(g*264|0)+256|0;b=(c[N>>2]|0)+1|0;c[N>>2]=b;if((b|0)<4){if((g|0)!=(e|0))ik(a+4818304+(e*264|0)|0,f|0,264)|0;e=e+1|0}g=g+1|0}while((g|0)<(c[u>>2]|0))}else e=0;c[u>>2]=e;e=c[P>>2]|0;f:do if((e|0)>0){m=0;do{k=a+48+(m<<8)|0;g=c[a+48+(m<<8)+4>>2]|0;if((g|0)>=0){l=c[u>>2]|0;g:do if((l|0)>0){f=0;do{if((c[a+4818304+(f*264|0)+4>>2]|0)==(g|0))break g;f=f+1|0}while((f|0)<(l|0))}else f=0;while(0);if((f|0)==(l|0)){if((l|0)==60)break f;c[u>>2]=l+1}ik(a+4818304+(f*264|0)|0,k|0,256)|0;c[a+4818304+(f*264|0)+256>>2]=1}m=m+1|0;e=c[P>>2]|0}while((m|0)<(e|0))}while(0);if((c[t>>2]|0)!=2?(c[u>>2]|0)>0:0){l=0;while(1){g=a+4818304+(l*264|0)+56|0;k=a+4818304+(l*264|0)+64|0;h:do if((e|0)>0){n=+(c[a+4818304+(l*264|0)>>2]|0);f=0;do{j=+(c[a+48+(f<<8)>>2]|0);S=n/j;if(!(S<.7|S>1.43)?(R=+h[a+48+(f<<8)+56>>3]-+h[g>>3],S=+h[a+48+(f<<8)+64>>3]-+h[k>>3],(R*R+S*S)/j<.5):0)break h;f=f+1|0}while((f|0)<(e|0))}else f=0;while(0);if((f|0)==(e|0)){ik(a+48+(e<<8)|0,a+4818304+(l*264|0)|0,256)|0;e=(c[P>>2]|0)+1|0;c[P>>2]=e}l=l+1|0;if((l|0)>=(c[u>>2]|0)){e=0;break}}}else e=0}while(0);i=Q;return e|0}function ee(a){a=a|0;var b=0,d=0,e=0,f=0;switch(c[a+24>>2]|0){case 1:case 0:{d=c[a+44>>2]|0;if((d|0)>0){e=0;do{b=a+48+(e<<8)+4|0;if((c[b>>2]|0)>-1?+h[a+48+(e<<8)+32>>3]<.5:0){c[a+48+(e<<8)+8>>2]=-1;c[b>>2]=-1;c[a+48+(e<<8)+236>>2]=6}e=e+1|0}while((e|0)<(d|0))}break}case 2:{d=c[a+44>>2]|0;if((d|0)>0){e=0;do{b=a+48+(e<<8)+4|0;if((c[b>>2]|0)>-1?+h[a+48+(e<<8)+32>>3]<.5:0){c[a+48+(e<<8)+12>>2]=-1;c[b>>2]=-1;c[a+48+(e<<8)+236>>2]=6}e=e+1|0}while((e|0)<(d|0))}break}default:{e=c[a+44>>2]|0;if((e|0)>0){f=0;do{b=a+48+(f<<8)+8|0;if((c[b>>2]|0)>-1?+h[a+48+(f<<8)+40>>3]<.5:0){c[b>>2]=-1;d=0}else d=1;b=a+48+(f<<8)+12|0;if(((c[b>>2]|0)>-1?+h[a+48+(f<<8)+48>>3]<.5:0)?(c[b>>2]=-1,(d|0)==0):0)c[a+48+(f<<8)+236>>2]=6;f=f+1|0}while((f|0)<(e|0))}}}return}function fe(a,b,d,e,f,g,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;k=k|0;l=l|0;var m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+96|0;F=L+56|0;H=L+48|0;G=L+8|0;I=L;K=(e|0)==1;if(K){a=(a|0)/2|0;b=(b|0)/2|0;f=(f|0)/4|0;g=(g|0)/4|0}c[l>>2]=0;C=d+8|0;D=a+-2|0;z=b+-2|0;A=d+1179664|0;a:do if((c[C>>2]|0)>0){B=0;while(1){w=d+12+(B<<2)|0;y=c[w>>2]|0;b:do if(((((!((y|0)<(g|0)|(y|0)>(f|0))?(E=d+131084+(B<<4)|0,(c[E>>2]|0)!=1):0)?(c[d+131084+(B<<4)+4>>2]|0)!=(D|0):0)?(c[d+131084+(B<<4)+8>>2]|0)!=1:0)?(c[d+131084+(B<<4)+12>>2]|0)!=(z|0):0)?(ge(c[d>>2]|0,a,0,A,B+1|0,E,k+((c[l>>2]|0)*80048|0)|0)|0)>=0:0){t=c[w>>2]|0;x=c[l>>2]|0;u=k+(x*80048|0)+28|0;b=c[u>>2]|0;v=k+(x*80048|0)+40028|0;n=c[v>>2]|0;y=k+(x*80048|0)+24|0;o=(c[y>>2]|0)+-1|0;if((o|0)>1){r=0;s=1;e=0;while(1){p=(c[k+(x*80048|0)+28+(s<<2)>>2]|0)-b|0;p=$(p,p)|0;q=(c[k+(x*80048|0)+40028+(s<<2)>>2]|0)-n|0;p=($(q,q)|0)+p|0;q=(p|0)>(r|0);e=q?s:e;s=s+1|0;if((s|0)>=(o|0))break;else r=q?p:r}}else e=0;m=+(t|0)/.75*.01*j;c[H>>2]=0;c[I>>2]=0;c:do if((he(u,v,0,e,m,F,H)|0)>=0?(he(u,v,e,(c[y>>2]|0)+-1|0,m,G,I)|0)>=0:0){b=c[H>>2]|0;n=c[I>>2]|0;do if((b|0)==1&(n|0)==1){b=c[G>>2]|0;n=c[F>>2]|0}else{if((b|0)>1&(n|0)==0){b=(e|0)/2|0;c[I>>2]=0;c[H>>2]=0;if((he(u,v,0,b,m,F,H)|0)<0)break c;if((he(u,v,b,e,m,G,I)|0)<0)break c;if(!((c[H>>2]|0)==1&(c[I>>2]|0)==1))break c;b=e;n=c[F>>2]|0;e=c[G>>2]|0;break}if(!((b|0)==0&(n|0)>1))break c;b=(e+-1+(c[y>>2]|0)|0)/2|0;c[I>>2]=0;c[H>>2]=0;if((he(u,v,e,b,m,F,H)|0)<0)break c;if((he(u,v,b,(c[y>>2]|0)+-1|0,m,G,I)|0)<0)break c;if(!((c[H>>2]|0)==1&(c[I>>2]|0)==1))break c;b=c[G>>2]|0;n=e;e=c[F>>2]|0}while(0);c[k+(x*80048|0)+80028>>2]=0;c[k+(x*80048|0)+80032>>2]=n;c[k+(x*80048|0)+80036>>2]=e;c[k+(x*80048|0)+80040>>2]=b;c[k+(x*80048|0)+80044>>2]=(c[y>>2]|0)+-1;c[k+((c[l>>2]|0)*80048|0)>>2]=c[w>>2];y=c[l>>2]|0;h[k+(y*80048|0)+8>>3]=+h[d+655376+(B<<4)>>3];h[k+(y*80048|0)+16>>3]=+h[d+655376+(B<<4)+8>>3];y=y+1|0;c[l>>2]=y;if((y|0)==60){e=60;break a}else break b}while(0)}while(0);B=B+1|0;if((B|0)>=(c[C>>2]|0)){J=4;break}}}else J=4;while(0);if((J|0)==4)e=c[l>>2]|0;if((e|0)>0){o=0;do{a=o;o=o+1|0;g=k+(a*80048|0)+16|0;n=k+(a*80048|0)|0;if((o|0)<(e|0)){j=+h[k+(a*80048|0)+8>>3];f=o;do{M=j-+h[k+(f*80048|0)+8>>3];m=+h[g>>3]-+h[k+(f*80048|0)+16>>3];m=M*M+m*m;e=c[n>>2]|0;a=k+(f*80048|0)|0;b=c[a>>2]|0;if((e|0)>(b|0)){if(m<+((e|0)/4|0|0))c[a>>2]=0}else if(m<+((b|0)/4|0|0))c[n>>2]=0;f=f+1|0;e=c[l>>2]|0}while((f|0)<(e|0))}}while((o|0)<(e|0))}if((e|0)>0){f=0;do{if(!(c[k+(f*80048|0)>>2]|0)){a=f+1|0;if((a|0)<(e|0)){e=f;b=a;while(1){ik(k+(e*80048|0)|0,k+(b*80048|0)|0,80048)|0;e=c[l>>2]|0;a=b+1|0;if((a|0)<(e|0)){e=b;b=a}else break}}e=e+-1|0;c[l>>2]=e}f=f+1|0}while((f|0)<(e|0))}if(K&(e|0)>0){b=0;while(1){c[k>>2]=c[k>>2]<<2;e=k+8|0;h[e>>3]=+h[e>>3]*2.0;e=k+16|0;h[e>>3]=+h[e>>3]*2.0;e=k+24|0;if((c[e>>2]|0)>0){a=0;do{K=k+28+(a<<2)|0;c[K>>2]=c[K>>2]<<1;K=k+40028+(a<<2)|0;c[K>>2]=c[K>>2]<<1;a=a+1|0}while((a|0)<(c[e>>2]|0))}b=b+1|0;if((b|0)>=(c[l>>2]|0))break;else k=k+80048|0}}i=L;return 0}function ge(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+80032|0;p=w+16|0;o=w+8|0;l=w;u=w+40024|0;v=w+24|0;t=c[h+8>>2]|0;e=c[h>>2]|0;h=c[h+4>>2]|0;a:do if((e|0)<=(h|0)){k=e;e=a+(($(t,d)|0)+e<<1)|0;while(1){s=b[e>>1]|0;if(s<<16>>16>0?(c[f+((s<<16>>16)+-1<<2)>>2]|0)==(g|0):0){n=k;break}if((k|0)<(h|0)){k=k+1|0;e=e+2|0}else{x=6;break a}}q=j+24|0;c[q>>2]=1;r=j+28|0;c[r>>2]=n;s=j+40028|0;c[s>>2]=t;f=t;m=n;k=1;e=5;while(1){h=(e+5|0)%8|0;e=0;while(1){g=c[776+(h<<2)>>2]|0;l=c[808+(h<<2)>>2]|0;if((b[a+(l+m+($(g+f|0,d)|0)<<1)>>1]|0)>0){e=g;g=h;break}e=e+1|0;h=(h+1|0)%8|0;if((e|0)>=8){x=11;break}}if((x|0)==11){x=0;if((e|0)==8){x=13;break}l=c[808+(h<<2)>>2]|0;e=c[776+(h<<2)>>2]|0;g=h}c[j+28+(k<<2)>>2]=l+m;h=c[q>>2]|0;c[j+40028+(h<<2)>>2]=e+(c[j+40028+(h+-1<<2)>>2]|0);e=c[q>>2]|0;h=j+28+(e<<2)|0;if((c[h>>2]|0)==(n|0)?(c[j+40028+(e<<2)>>2]|0)==(t|0):0){f=e;x=16;break}k=e+1|0;c[q>>2]=k;if((k|0)==9999){x=19;break}f=c[j+40028+(e<<2)>>2]|0;m=c[h>>2]|0;e=g}if((x|0)==13){Me(3,4347,o);e=-1;break}else if((x|0)==16){if((f|0)>1){l=0;g=1;h=0;while(1){e=(c[j+28+(g<<2)>>2]|0)-n|0;e=$(e,e)|0;k=(c[j+40028+(g<<2)>>2]|0)-t|0;e=($(k,k)|0)+e|0;k=(e|0)>(l|0);h=k?g:h;g=g+1|0;if((g|0)>=(f|0))break;else l=k?e:l}}else h=0;if((h|0)>0){e=0;do{c[u+(e<<2)>>2]=c[j+28+(e<<2)>>2];c[v+(e<<2)>>2]=c[j+40028+(e<<2)>>2];e=e+1|0}while((e|0)<(h|0))}if((h|0)<(f|0)){e=h;do{t=e-h|0;c[j+28+(t<<2)>>2]=c[j+28+(e<<2)>>2];c[j+40028+(t<<2)>>2]=c[j+40028+(e<<2)>>2];e=e+1|0}while((e|0)<(c[q>>2]|0))}if((h|0)>0){e=0;do{t=e-h|0;c[j+28+((c[q>>2]|0)+t<<2)>>2]=c[u+(e<<2)>>2];c[j+40028+((c[q>>2]|0)+t<<2)>>2]=c[v+(e<<2)>>2];e=e+1|0}while((e|0)<(h|0))}c[j+28+(c[q>>2]<<2)>>2]=c[r>>2];c[j+40028+(c[q>>2]<<2)>>2]=c[s>>2];c[q>>2]=(c[q>>2]|0)+1;e=0;break}else if((x|0)==19){Me(3,4354,p);e=-1;break}}else x=6;while(0);if((x|0)==6){Me(3,4340,l);e=-1}i=w;return e|0}function he(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=g|0;h=h|0;var i=0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0.0;i=c[b+(e<<2)>>2]|0;q=c[b+(d<<2)>>2]|0;o=+(i-q|0);l=c[a+(d<<2)>>2]|0;r=c[a+(e<<2)>>2]|0;m=+(l-r|0);k=+(($(r,q)|0)-($(l,i)|0)|0);i=d+1|0;if((i|0)<(e|0)){j=0.0;l=i;do{s=k+(o*+(c[a+(l<<2)>>2]|0)+m*+(c[b+(l<<2)>>2]|0));s=s*s;r=s>j;j=r?s:j;i=r?l:i;l=l+1|0}while((l|0)<(e|0))}else j=0.0;if(j/(o*o+m*m)>f)if(((he(a,b,d,i,f,g,h)|0)>=0?(n=c[h>>2]|0,(n|0)<=5):0)?(c[g+(n<<2)>>2]=i,c[h>>2]=(c[h>>2]|0)+1,(he(a,b,i,e,f,g,h)|0)>=0):0)p=7;else i=-1;else p=7;if((p|0)==7)i=0;return i|0}function ie(a,b,d,e,f,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+16|0;t=y+4|0;u=y;v=nf(2)|0;w=nf(2)|0;x=Re(2,2)|0;q=0;a:while(1){r=q;q=q+1|0;s=c[e+(q<<2)>>2]|0;l=c[e+(r<<2)>>2]|0;p=+(s+1-l|0)*.05+.5;l=~~(+(l|0)+p);s=~~(+(s|0)-p)-l|0;n=s+1|0;d=Re(n,2)|0;if((s|0)>-1){s=0;do{z=s+l|0;if((mf(f,+(c[a+(z<<2)>>2]|0),+(c[b+(z<<2)>>2]|0),t,u)|0)<0){l=10;break a}z=s<<1;A=c[d>>2]|0;h[A+(z<<3)>>3]=+g[t>>2];h[A+((z|1)<<3)>>3]=+g[u>>2];s=s+1|0}while((s|0)<(n|0))}if((Ye(d,x,v,w)|0)<0){l=10;break}A=c[x>>2]|0;o=+h[A+8>>3];h[j+(r*24|0)>>3]=o;p=-+h[A>>3];h[j+(r*24|0)+8>>3]=p;A=c[w>>2]|0;h[j+(r*24|0)+16>>3]=-(o*+h[A>>3]+ +h[A+8>>3]*p);We(d)|0;if((q|0)>=4){l=7;break}}b:do if((l|0)==7){We(x)|0;of(w)|0;of(v)|0;q=0;while(1){d=(q+3|0)%4|0;l=j+(d*24|0)|0;m=+h[j+(q*24|0)+8>>3];n=j+(q*24|0)|0;o=+h[j+(d*24|0)+8>>3];p=+h[l>>3]*m-+h[n>>3]*o;if(+O(+p)<.0001){d=-1;break b}A=j+(q*24|0)+16|0;z=j+(d*24|0)+16|0;h[k+(q<<4)>>3]=(o*+h[A>>3]-m*+h[z>>3])/p;h[k+(q<<4)+8>>3]=(+h[n>>3]*+h[z>>3]-+h[l>>3]*+h[A>>3])/p;q=q+1|0;if((q|0)>=4){d=0;break}}}else if((l|0)==10){We(d)|0;We(x)|0;of(w)|0;of(v)|0;d=-1}while(0);i=y;return d|0}function je(a,b,d,e,f,j,k,l,m,n,o,p,q,r){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;D=F+4|0;E=F;z=m>>>0<2;A=(m|0)==2;if((j|0)>0){C=0;s=0;do{c[p+(s<<8)>>2]=c[f+(C*80048|0)>>2];if((mf(n,+h[f+(C*80048|0)+8>>3],+h[f+(C*80048|0)+16>>3],D,E)|0)>=0?(h[p+(s<<8)+56>>3]=+g[D>>2],h[p+(s<<8)+64>>3]=+g[E>>2],B=p+(s<<8)+168|0,(ie(f+(C*80048|0)+28|0,f+(C*80048|0)+40028|0,c[f+(C*80048|0)+24>>2]|0,f+(C*80048|0)+80028|0,n,p+(s<<8)+72|0,B)|0)>=0):0){t=p+(s<<8)+8|0;u=p+(s<<8)+20|0;v=p+(s<<8)+40|0;w=p+(s<<8)+12|0;x=p+(s<<8)+24|0;y=p+(s<<8)+48|0;switch(De(k,l,m,a,b,d,e,n,B,o,t,u,v,w,x,y,r,p+(s<<8)+240|0,p+(s<<8)+248|0)|0){case 0:{c[p+(s<<8)+236>>2]=0;break}case -1:{c[p+(s<<8)+236>>2]=2;break}case -2:{c[p+(s<<8)+236>>2]=3;break}case -3:{c[p+(s<<8)+236>>2]=4;break}case -4:{c[p+(s<<8)+236>>2]=5;break}case -5:{c[p+(s<<8)+236>>2]=9;break}case -6:{c[p+(s<<8)+236>>2]=1;break}default:{}}if(!z){if(A){c[p+(s<<8)+4>>2]=c[w>>2];c[p+(s<<8)+16>>2]=c[x>>2];h[p+(s<<8)+32>>3]=+h[y>>3]}}else{c[p+(s<<8)+4>>2]=c[t>>2];c[p+(s<<8)+16>>2]=c[u>>2];h[p+(s<<8)+32>>3]=+h[v>>3]}s=s+1|0}C=C+1|0}while((C|0)<(j|0))}else s=0;c[q>>2]=s;i=F;return 0}function ke(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0;k=i;i=i+288|0;m=k+200|0;l=k+104|0;f=k+264|0;j=k+8|0;g=k;o=c[b+16>>2]|0;p=(4-o|0)%4|0;h[m>>3]=+h[b+168+(p<<4)>>3];h[m+8>>3]=+h[b+168+(p<<4)+8>>3];p=(5-o|0)%4|0;h[m+16>>3]=+h[b+168+(p<<4)>>3];h[m+24>>3]=+h[b+168+(p<<4)+8>>3];p=(6-o|0)%4|0;h[m+32>>3]=+h[b+168+(p<<4)>>3];h[m+40>>3]=+h[b+168+(p<<4)+8>>3];o=(7-o|0)%4|0;h[m+48>>3]=+h[b+168+(o<<4)>>3];h[m+56>>3]=+h[b+168+(o<<4)+8>>3];n=d*-.5;h[l>>3]=n;d=d*.5;h[l+8>>3]=d;h[l+16>>3]=0.0;h[l+24>>3]=d;h[l+32>>3]=d;h[l+40>>3]=0.0;h[l+48>>3]=d;h[l+56>>3]=n;h[l+64>>3]=0.0;h[l+72>>3]=n;h[l+80>>3]=n;h[l+88>>3]=0.0;c[f>>2]=m;c[f+4>>2]=l;c[f+8>>2]=4;if((Ef(c[a>>2]|0,m,l,4,j)|0)<0)d=1.0e8;else{p=(zf(c[a>>2]|0,f,j,e,g)|0)<0;d=p?1.0e8:+h[g>>3]}i=k;return +d}function le(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0;j=i;i=i+192|0;m=j+104|0;l=j+8|0;k=j+168|0;g=j;o=c[b+16>>2]|0;p=(4-o|0)%4|0;h[m>>3]=+h[b+168+(p<<4)>>3];h[m+8>>3]=+h[b+168+(p<<4)+8>>3];p=(5-o|0)%4|0;h[m+16>>3]=+h[b+168+(p<<4)>>3];h[m+24>>3]=+h[b+168+(p<<4)+8>>3];p=(6-o|0)%4|0;h[m+32>>3]=+h[b+168+(p<<4)>>3];h[m+40>>3]=+h[b+168+(p<<4)+8>>3];o=(7-o|0)%4|0;h[m+48>>3]=+h[b+168+(o<<4)>>3];h[m+56>>3]=+h[b+168+(o<<4)+8>>3];n=e*-.5;h[l>>3]=n;e=e*.5;h[l+8>>3]=e;h[l+16>>3]=0.0;h[l+24>>3]=e;h[l+32>>3]=e;h[l+40>>3]=0.0;h[l+48>>3]=e;h[l+56>>3]=n;h[l+64>>3]=0.0;h[l+72>>3]=n;h[l+80>>3]=n;h[l+88>>3]=0.0;c[k>>2]=m;c[k+4>>2]=l;c[k+8>>2]=4;b=(zf(c[a>>2]|0,k,d,f,g)|0)<0;i=j;return +(b?1.0e8:+h[g>>3])}function me(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+20|0;n=p;j=Uj(f<<4)|0;c[m>>2]=j;if(!j){Me(3,5472,p+8|0);rb(1)}k=Uj(f*24|0)|0;l=m+4|0;c[l>>2]=k;if(!k){Me(3,5472,p+16|0);rb(1)}if((f|0)>0){o=0;do{h[j+(o<<4)>>3]=+h[d+(o<<4)>>3];h[j+(o<<4)+8>>3]=+h[d+(o<<4)+8>>3];h[k+(o*24|0)>>3]=+h[e+(o*24|0)>>3];h[k+(o*24|0)+8>>3]=+h[e+(o*24|0)+8>>3];h[k+(o*24|0)+16>>3]=+h[e+(o*24|0)+16>>3];o=o+1|0}while((o|0)<(f|0))}c[m+8>>2]=f;if((zf(c[a>>2]|0,m,b,g,n)|0)<0)h[n>>3]=1.0e8;Vj(c[m>>2]|0);Vj(c[l>>2]|0);i=p;return +(+h[n>>3])}function ne(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+20|0;n=p;j=Uj(f<<4)|0;c[m>>2]=j;if(!j){Me(3,5472,p+8|0);rb(1)}k=Uj(f*24|0)|0;l=m+4|0;c[l>>2]=k;if(!k){Me(3,5472,p+16|0);rb(1)}if((f|0)>0){o=0;do{h[j+(o<<4)>>3]=+h[d+(o<<4)>>3];h[j+(o<<4)+8>>3]=+h[d+(o<<4)+8>>3];h[k+(o*24|0)>>3]=+h[e+(o*24|0)>>3];h[k+(o*24|0)+8>>3]=+h[e+(o*24|0)+8>>3];h[k+(o*24|0)+16>>3]=+h[e+(o*24|0)+16>>3];o=o+1|0}while((o|0)<(f|0))}c[m+8>>2]=f;if((Bf(c[a>>2]|0,m,b,g,n)|0)<0)h[n>>3]=1.0e8;Vj(c[m>>2]|0);Vj(c[l>>2]|0);i=p;return +(+h[n>>3])}function oe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Uj(2080)|0;a:do if(f){c[f+2068>>2]=d;b:do if(!e){switch(d|0){case 5:case 12:case 13:case 14:break;default:{g=4;break b}}c[f+2076>>2]=0}else g=4;while(0);do if((g|0)==4){g=Uj($(b,a)|0)|0;c[f>>2]=g;if(!g){Vj(f);f=0;break a}else{c[f+2076>>2]=1;break}}while(0);c[f+2072>>2]=e;c[f+4>>2]=0;c[f+8>>2]=a;c[f+12>>2]=b}while(0);return f|0}function pe(a){a=a|0;if(a){if(c[a+2076>>2]|0)Vj(c[a>>2]|0);Vj(c[a+4>>2]|0);Vj(a)}return}function qe(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+16|0;g=k;f=c[b+2068>>2]|0;a:do switch(f|0){case 5:case 12:case 13:case 14:if(!(c[b+2072>>2]|0)){c[b>>2]=e;f=0;break a}else{ik(c[b>>2]|0,e|0,$(c[b+12>>2]|0,c[b+8>>2]|0)|0)|0;f=0;break a}default:{if((f&-2|0)==2){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j|1)>>0]|0)+(d[e+j>>0]|0)+(d[e+(j|2)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+4|0}}if((f&-3|0)==4){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j|2)>>0]|0)+(d[e+(j|1)>>0]|0)+(d[e+(j|3)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+4|0}}if(f>>>0<2){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j+1)>>0]|0)+(d[e+j>>0]|0)+(d[e+(j+2)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+3|0}}switch(f|0){case 8:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=a[e+j>>0]|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 7:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=a[e+(j|1)>>0]|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 9:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){m=d[e+j>>0]|0;l=d[e+(j|1)>>0]|0;a[(c[b>>2]|0)+h>>0]=(((m&248)+10+(m<<5&224)+(l>>>3&28)+(l<<3&248)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 10:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){l=d[e+j>>0]|0;m=d[e+(j|1)>>0]|0;a[(c[b>>2]|0)+h>>0]=(((l&248)+12+(l<<5&224)+(m>>>3&24)+(m<<2&248)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 11:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){m=d[e+j>>0]|0;a[(c[b>>2]|0)+h>>0]=(((m&240)+24+(m<<4&240)+((d[e+(j|1)>>0]|0)&240)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}default:{Me(3,4361,g);f=-1;break a}}}}while(0);i=k;return f|0}function re(a,b){a=a|0;b=b|0;var e=0,f=0;if((a|0)!=0&(b|0)!=0?(qe(a,b)|0)>=0:0){ek(a+16|0,0,1024)|0;b=c[a>>2]|0;f=$(c[a+12>>2]|0,c[a+8>>2]|0)|0;e=b+f|0;if((f|0)>0){do{f=a+16+((d[b>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;b=b+1|0}while(b>>>0>>0);b=0}else b=0}else b=-1;return b|0}function se(a,b){a=a|0;b=b|0;var d=0;b=re(a,b)|0;if((b|0)>=0){b=0;d=0;do{b=(c[a+16+(d<<2)>>2]|0)+b|0;c[a+1040+(d<<2)>>2]=b;d=d+1|0}while((d|0)!=256);b=0}return b|0}function te(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0;if(!(e<0.0|e>1.0)){d=se(b,d)|0;if((d|0)>=0){i=~~(+($(c[b+12>>2]|0,c[b+8>>2]|0)|0)*e)>>>0;d=0;while(1){h=d&255;g=c[b+1040+(h<<2)>>2]|0;if(g>>>0>>0)d=d+1<<24>>24;else break}if((g|0)==(i|0))do d=d+1<<24>>24;while((c[b+1040+((d&255)<<2)>>2]|0)==(i|0));a[f>>0]=((d&255)+h|0)>>>1;d=0}}else d=-1;return d|0}function ue(a,b,c){a=a|0;b=b|0;c=c|0;return te(a,b,.5,c)|0}function ve(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0;d=re(b,d)|0;if((d|0)>=0){d=1;f=0.0;do{f=f+ +(($(c[b+16+(d<<2)>>2]|0,d)|0)>>>0);d=d+1|0}while((d|0)!=256);k=+($(c[b+12>>2]|0,c[b+8>>2]|0)|0);l=0;h=0.0;d=0;j=0.0;m=0.0;while(1){g=c[b+16+(l<<2)>>2]|0;m=m+ +(g>>>0);if(m!=0.0){i=k-m;if(i==0.0)break;h=h+ +(($(l,g)|0)>>>0);n=h/m-(f-h)/i;i=n*(m*i*n);if(i>j)d=l&255;else i=j}else i=j;if((l&255)<<24>>24==-1)break;else{l=l+1|0;j=i}}a[e>>0]=d;d=0}return d|0}function we(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=re(b,e)|0;do if((e|0)>=0){t=b+4|0;if(!(c[t>>2]|0)){e=b+8|0;h=b+12|0;s=Uj($(c[h>>2]|0,c[e>>2]|0)|0)|0;c[t>>2]=s;if(!s){e=-1;break}else s=e}else{s=b+8|0;h=b+12|0}q=f>>1;r=0-q|0;e=c[h>>2]|0;if((e|0)>0){n=(q|0)<(r|0);o=(q|0)<(r|0);p=0;do{e=c[s>>2]|0;if((e|0)>0){m=0;do{if(n){i=0;f=0}else{i=0;l=r;f=0;while(1){j=l+p|0;if(((j|0)>=0?(j|0)<(c[h>>2]|0):0)?(u=$(e,j)|0,!o):0){k=r;while(1){j=k+m|0;if((j|0)>-1&(j|0)<(e|0)){i=i+1|0;f=(d[(c[b>>2]|0)+(u+j)>>0]|0)+f|0}if((k|0)<(q|0))k=k+1|0;else break}}if((l|0)<(q|0))l=l+1|0;else break}}l=($(e,p)|0)+m|0;a[(c[t>>2]|0)+l>>0]=(f|0)/(i|0)|0;m=m+1|0;e=c[s>>2]|0}while((m|0)<(e|0))}p=p+1|0;e=c[h>>2]|0}while((p|0)<(e|0))}if((g|0)!=0?($(e,c[s>>2]|0)|0)>0:0){e=0;do{b=(c[t>>2]|0)+e|0;a[b>>0]=(d[b>>0]|0)+g;e=e+1|0}while((e|0)<($(c[h>>2]|0,c[s>>2]|0)|0));e=0}else e=0}while(0);return e|0}function xe(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0;a:do switch(e|0){case 0:{switch(f|0){case 1:{if(j){k=Fc(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=wc(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=yc(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Bc(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Cc(a,b,c,g,i)|0;break a}case 8:{k=Ec(a,b,c,g,i)|0;break a}case 7:{k=Dc(a,b,c,g,i)|0;break a}case 9:{k=xc(a,b,c,g,i)|0;break a}case 10:{k=Ac(a,b,c,g,i)|0;break a}case 11:{k=zc(a,b,c,g,i)|0;break a}default:rb(0)}break}case 1:{if(d>>>0<2){k=nc(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=pc(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=sc(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=tc(a,b,c,g,i)|0;break a}case 8:{k=vc(a,b,c,g,i)|0;break a}case 7:{k=uc(a,b,c,g,i)|0;break a}case 9:{k=oc(a,b,c,g,i)|0;break a}case 10:{k=rc(a,b,c,g,i)|0;break a}case 11:{k=qc(a,b,c,g,i)|0;break a}default:rb(0)}break}default:rb(0)}break}case 0:{if(j){k=Yc(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=Pc(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Rc(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Uc(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Vc(a,b,c,g,i)|0;break a}case 8:{k=Xc(a,b,c,g,i)|0;break a}case 7:{k=Wc(a,b,c,g,i)|0;break a}case 9:{k=Qc(a,b,c,g,i)|0;break a}case 10:{k=Tc(a,b,c,g,i)|0;break a}case 11:{k=Sc(a,b,c,g,i)|0;break a}default:rb(0)}break}case 1:{if(d>>>0<2){k=Gc(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Ic(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Lc(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Mc(a,b,c,g,i)|0;break a}case 8:{k=Oc(a,b,c,g,i)|0;break a}case 7:{k=Nc(a,b,c,g,i)|0;break a}case 9:{k=Hc(a,b,c,g,i)|0;break a}case 10:{k=Kc(a,b,c,g,i)|0;break a}case 11:{k=Jc(a,b,c,g,i)|0;break a}default:rb(0)}break}default:rb(0)}break}default:rb(0)}break}case 1:{switch(f|0){case 1:{if(j){k=pd(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=gd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=id(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=ld(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=md(a,b,c,g,i)|0;break a}case 8:{k=od(a,b,c,g,i)|0;break a}case 7:{k=nd(a,b,c,g,i)|0;break a}case 9:{k=hd(a,b,c,g,i)|0;break a}case 10:{k=kd(a,b,c,g,i)|0;break a}case 11:{k=jd(a,b,c,g,i)|0;break a}default:rb(0)}break}case 1:{if(d>>>0<2){k=Zc(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=$c(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=cd(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=dd(a,b,c,g,i)|0;break a}case 8:{k=fd(a,b,c,g,i)|0;break a}case 7:{k=ed(a,b,c,g,i)|0;break a}case 9:{k=_c(a,b,c,g,i)|0;break a}case 10:{k=bd(a,b,c,g,i)|0;break a}case 11:{k=ad(a,b,c,g,i)|0;break a}default:rb(0)}break}default:rb(0)}break}case 0:{if(j){k=Id(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=zd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Bd(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Ed(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Fd(a,b,c,g,i)|0;break a}case 8:{k=Hd(a,b,c,g,i)|0;break a}case 7:{k=Gd(a,b,c,g,i)|0;break a}case 9:{k=Ad(a,b,c,g,i)|0;break a}case 10:{k=Dd(a,b,c,g,i)|0;break a}case 11:{k=Cd(a,b,c,g,i)|0;break a}default:rb(0)}break}case 1:{if(d>>>0<2){k=qd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=sd(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=vd(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=wd(a,b,c,g,i)|0;break a}case 8:{k=yd(a,b,c,g,i)|0;break a}case 7:{k=xd(a,b,c,g,i)|0;break a}case 9:{k=rd(a,b,c,g,i)|0;break a}case 10:{k=ud(a,b,c,g,i)|0;break a}case 11:{k=td(a,b,c,g,i)|0;break a}default:rb(0)}break}default:rb(0)}break}default:rb(0)}break}default:rb(0)}while(0);return k|0}function ye(a,b){a=a|0;b=b|0;var d=0;if((a|0)!=0?(d=a+7062384|0,(c[d>>2]|0)==0):0){c[d>>2]=b;d=0}else d=-1;return d|0}function ze(a){a=a|0;var b=0;if((a|0)!=0?(b=a+7062384|0,(c[b>>2]|0)!=0):0){c[b>>2]=0;b=0}else b=-1;return b|0}function Ae(){return Be(16,50)|0}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+56|0;p=r+48|0;j=r+40|0;h=r+32|0;g=r+24|0;f=r+16|0;e=r+8|0;d=r;a:do if(!((a+-16|0)>>>0>48|(b|0)<1)){n=Uj(32)|0;if(!n){Me(3,5472,d);rb(1)}c[n>>2]=0;c[n+4>>2]=b;c[n+28>>2]=a;m=Uj(b<<2)|0;c[n+8>>2]=m;if(!m){Me(3,5472,e);rb(1)}d=b<<4;l=Uj(d)|0;c[n+12>>2]=l;if(!l){Me(3,5472,f);rb(1)}f=Uj(d)|0;k=n+20|0;c[k>>2]=f;if(!f){Me(3,5472,g);rb(1)}d=b<<5;g=Uj(d)|0;c[n+16>>2]=g;if(!g){Me(3,5472,h);rb(1)}h=Uj(d)|0;c[n+24>>2]=h;if(!h){Me(3,5472,j);rb(1)}e=$(a,a)|0;d=e*12|0;e=e<<2;if((b|0)>0){a=0;b:while(1){c[m+(a<<2)>>2]=0;f=a<<2;h=0;while(1){if((h|0)>=4)break;j=Uj(d)|0;g=h+f|0;c[l+(g<<2)>>2]=j;if(!j){d=18;break b}j=Uj(e)|0;c[(c[k>>2]|0)+(g<<2)>>2]=j;if(!j){d=20;break b}else h=h+1|0}a=a+1|0;if((a|0)>=(b|0)){o=n;break a}}if((d|0)==18){Me(3,5472,p);rb(1)}else if((d|0)==20){Me(3,5472,q);rb(1)}}else o=n}else o=0;while(0);i=r;return o|0}function Ce(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!a)b=-1;else{b=a+4|0;d=a+8|0;e=a+12|0;f=a+20|0;if((c[b>>2]|0)>0){g=0;do{if(c[(c[d>>2]|0)+(g<<2)>>2]|0)Le(a,g)|0;h=g<<2;Vj(c[(c[e>>2]|0)+(h<<2)>>2]|0);Vj(c[(c[f>>2]|0)+(h<<2)>>2]|0);i=1+h|0;Vj(c[(c[e>>2]|0)+(i<<2)>>2]|0);Vj(c[(c[f>>2]|0)+(i<<2)>>2]|0);i=2+h|0;Vj(c[(c[e>>2]|0)+(i<<2)>>2]|0);Vj(c[(c[f>>2]|0)+(i<<2)>>2]|0);h=3+h|0;Vj(c[(c[e>>2]|0)+(h<<2)>>2]|0);Vj(c[(c[f>>2]|0)+(h<<2)>>2]|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}Vj(a);b=0}return b|0}function De(b,e,f,g,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+12448|0;A=L+12440|0;z=L+8|0;J=L;I=L+12312|0;K=L+24|0;do if((f+-2|0)>>>0<3){if((v|0)!=2830){y=v&255;if((Ee(e,2,y,y*3|0,g,j,k,l,m,n,o,K)|0)<0){c[s>>2]=-1;y=-6;break}y=Fe(K,y,s,t,u,v,w)|0;if(!x)break;c[x>>2]=0;c[x+4>>2]=0;break}if((Ee(e,2,14,42,g,j,k,l,m,n,.875,K)|0)<0){c[s>>2]=-1;y=-6;break}c[z>>2]=0;c[z+4>>2]=182;c[z+8>>2]=195;c[z+12>>2]=13;v=a[K+(c[z>>2]|0)>>0]|0;y=(v&255)>0?v:0;v=(v&255)<255?v:-1;H=a[K+(c[z+4>>2]|0)>>0]|0;y=(H&255)>(y&255)?H:y;v=(H&255)<(v&255)?H:v;H=a[K+(c[z+8>>2]|0)>>0]|0;y=(H&255)>(y&255)?H:y;v=(H&255)<(v&255)?H:v;H=a[K+(c[z+12>>2]|0)>>0]|0;y=((H&255)>(y&255)?H:y)&255;v=((H&255)<(v&255)?H:v)&255;a:do if((y-v|0)>=30){H=(y+v|0)>>>1;a[A>>0]=(d[K+(c[z>>2]|0)>>0]|0)>>>0>>0&1;a[A+1>>0]=(d[K+(c[z+4>>2]|0)>>0]|0)>>>0>>0&1;a[A+2>>0]=(d[K+(c[z+8>>2]|0)>>0]|0)>>>0>>0&1;a[A+3>>0]=(d[K+(c[z+12>>2]|0)>>0]|0)>>>0>>0&1;v=0;while(1){y=v+1|0;if(((a[A+v>>0]|0)==1?(a[A+((y|0)%4|0)>>0]|0)==1:0)?(a[A+((v+2|0)%4|0)>>0]|0)==0:0){G=v;break}if((y|0)<4)v=y;else{G=y;break}}switch(G|0){case 4:{c[t>>2]=0;h[u>>3]=-1.0;y=-3;v=0;z=0;break a}case 0:{z=119;y=255;v=0;do{D=v+-3|0;B=(v&-2|0)==12;C=v*14|0;A=0;do{if(((A+-3|D)>>>0>=8?(F=A&-2,(A|v)>>>0>=2):0)?!(B&((F|0)==0|(F|0)==12)):0){E=(d[K+(A+C)>>0]|0)-H|0;a[I+z>>0]=E>>>31;E=(E|0)>-1?E:0-E|0;z=z+-1|0;y=(E|0)<(y|0)?E:y}A=A+1|0}while((A|0)!=14);v=v+1|0}while((v|0)!=14);break}case 1:{z=119;y=255;v=0;do{D=v+-3|0;C=v&-2;B=(C|0)==0;C=(C|0)==12;A=13;while(1){if(((A+-3|D)>>>0>=8?(E=(A&-2|0)==12,!(B&E)):0)?!(C&(A>>>0<2|E)):0){F=(d[K+((A*14|0)+v)>>0]|0)-H|0;a[I+z>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;z=z+-1|0;y=(F|0)<(y|0)?F:y}if((A|0)>0)A=A+-1|0;else break}v=v+1|0}while((v|0)!=14);break}case 2:{v=119;y=255;D=13;while(1){B=D+-3|0;C=D>>>0<2|(D&-2|0)==12;A=D*14|0;z=13;while(1){if((z+-3|B)>>>0>=8?!((z|D)>>>0<2|C&(z&-2|0)==12):0){F=(d[K+(z+A)>>0]|0)-H|0;a[I+v>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;v=v+-1|0;y=(F|0)<(y|0)?F:y}if((z|0)>0)z=z+-1|0;else break}if((D|0)>0)D=D+-1|0;else break}break}case 3:{v=119;y=255;D=13;while(1){C=D+-3|0;B=D&-2;A=(B|0)==12;B=(B|0)==0;z=0;do{if(((z+-3|C)>>>0>=8?!(A&z>>>0<2|(z|D)>>>0<2):0)?!(B&(z&-2|0)==12):0){F=(d[K+((z*14|0)+D)>>0]|0)-H|0;a[I+v>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;v=v+-1|0;y=(F|0)<(y|0)?F:y}z=z+1|0}while((z|0)!=14);if((D|0)>0)D=D+-1|0;else break}break}default:y=255}c[t>>2]=G;h[u>>3]=(y|0)>30?1.0:+(y|0)/30.0;y=Ie(2830,0,0,I,J)|0;if((y|0)<0){y=-4;v=0;z=0}else{if(w)c[w>>2]=y;z=J;y=0;v=c[z>>2]|0;z=c[z+4>>2]|0}}else{c[t>>2]=0;h[u>>3]=-1.0;y=-2;v=0;z=0}while(0);if((y|0)<0){c[s>>2]=-1;break}if((v|0)==-1&(z|0)==-1){c[s>>2]=-1;y=-5;break}c[s>>2]=(v&-32768|0)==0&0==0?v&32767:0;if(!x)y=0;else{y=x;c[y>>2]=v;c[y+4>>2]=z;y=0}}else y=1;while(0);b:do switch(f|0){case 0:case 1:case 3:case 4:{if(!b){c[p>>2]=-1;v=-1;break b}v=b+28|0;z=c[v>>2]|0;A=z<<2;switch(f|0){case 0:case 3:if((Ee(e,0,z,A,g,j,k,l,m,n,o,K)|0)<0){c[p>>2]=-1;v=-6;break b}else{v=Ge(b,0,K,c[v>>2]|0,p,q,r)|0;break b}default:if((Ee(e,1,z,A,g,j,k,l,m,n,o,K)|0)<0){c[p>>2]=-1;v=-6;break b}else{v=Ge(b,1,K,c[v>>2]|0,p,q,r)|0;break b}}}default:v=1}while(0);if((y|0)!=1){if((v|0)!=1)y=(v&y|0)<0?v:0}else y=v;i=L;return y|0} -function _j(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;b=k+8|0;h=k+4|0;d=k;c[h>>2]=a;do if(a>>>0>=212){g=(a>>>0)/210|0;e=g*210|0;c[d>>2]=a-e;b=($j(3712,3904,d,b)|0)-3712>>2;f=b;b=(c[3712+(b<<2)>>2]|0)+e|0;a:while(1){e=5;while(1){if(e>>>0>=47){e=211;j=8;break}d=c[3520+(e<<2)>>2]|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=106;break a}if((b|0)==($(a,d)|0))break;else e=e+1|0}b:do if((j|0)==8)while(1){j=0;d=(b>>>0)/(e>>>0)|0;if(d>>>0>>0){j=105;break a}if((b|0)==($(d,e)|0))break b;d=e+10|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+12|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+16|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+18|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+22|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+28|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+30|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+36|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+40|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+42|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+46|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+52|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+58|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+60|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+66|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+70|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+72|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+78|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+82|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+88|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+96|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+100|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+102|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+106|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+108|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+112|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+120|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+126|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+130|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+136|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+138|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+142|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+148|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+150|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+156|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+162|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+166|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+168|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+172|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+178|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+180|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+186|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+190|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+192|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+196|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+198|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+208|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break;else{e=e+210|0;j=8}}while(0);e=f+1|0;b=(e|0)==48;e=b?0:e;b=(b&1)+g|0;f=e;g=b;b=(c[3712+(e<<2)>>2]|0)+(b*210|0)|0}if((j|0)==105){c[h>>2]=b;break}else if((j|0)==106){c[h>>2]=b;break}}else b=c[($j(3520,3712,h,b)|0)>>2]|0;while(0);i=k;return b|0}function $j(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[d>>2]|0;e=a;d=b-a>>2;a:while(1){while(1){if(!d)break a;a=(d|0)/2|0;if((c[e+(a<<2)>>2]|0)>>>0>>0)break;else d=a}e=e+(a+1<<2)|0;d=d+-1-a|0}return e|0}function ak(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)oi(b);if(e>>>0<11){a[b>>0]=e<<1;b=b+1|0}else{g=e+16&-16;f=Kh(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f}ik(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function bk(b){b=b|0;if(a[b>>0]&1)Lh(c[b+8>>2]|0);return}function ck(){}function dk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D=d,a-c>>>0|0)|0}function ek(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function fk(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>>0;return (D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function hk(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function ik(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Xa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function kk(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function lk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=$(e,f)|0;d=a>>>16;a=(c>>>16)+($(e,d)|0)|0;e=b>>>16;b=$(e,f)|0;return (D=(a>>>16)+($(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function mk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=dk(j^a,i^b,j,i)|0;g=D;a=f^j;b=e^i;return dk((rk(h,g,dk(f^c,e^d,f,e)|0,D,0)|0)^a,D^b,a,b)|0}function nk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=dk(h^a,g^b,h,g)|0;b=D;rk(a,b,dk(l^d,k^e,l,k)|0,D,j)|0;e=dk(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=D;i=f;return (D=d,e)|0}function ok(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=lk(e,f)|0;a=D;return (D=($(b,f)|0)+($(d,e)|0)+a|a&0,c|0|0)|0}function pk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rk(a,b,c,d,0)|0}function qk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;rk(a,b,d,e,f)|0;i=g;return (D=c[f+4>>2]|0,c[f>>2]|0)|0}function rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D=n,f)|0}else{if(!g){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(ba(i|0)|0)-(ba(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D=n,f)|0}g=h-1|0;if(g&h){i=(ba(h|0)|0)+33-(ba(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D=o,p)|0}else{p=kk(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((kk(i|0)|0)>>>0);return (D=o,p)|0}g=(ba(i|0)|0)-(ba(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=gk(m|0,l|0,-1,-1)|0;d=D;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;dk(k,d,e,n)|0;p=D;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=dk(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=D;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D=o,p)|0}function sk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&15](b|0,c|0,d|0)|0}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Rb[a&3](b|0,c|0,d|0,e|0,f|0)}function uk(a,b,c){a=a|0;b=b|0;c=c|0;return +Sb[a&1](b|0,c|0)}function vk(a,b,c){a=a|0;b=b|0;c=+c;Tb[a&3](b|0,+c)}function wk(a,b){a=a|0;b=b|0;return +Ub[a&3](b|0)}function xk(a){a=a|0;return Vb[a&1]()|0}function yk(a,b){a=a|0;b=b|0;Wb[a&15](b|0)}function zk(a,b,c){a=a|0;b=b|0;c=c|0;Xb[a&7](b|0,c|0)}function Ak(a,b){a=a|0;b=b|0;return Yb[a&31](b|0)|0}function Bk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Zb[a&1](b|0,c|0,d|0)}function Ck(a){a=a|0;_b[a&0]()}function Dk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;$b[a&3](b|0,c|0,+d)}function Ek(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return ac[a&1](b|0,c|0,d|0,e|0)|0}function Fk(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;bc[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Gk(a,b,c){a=a|0;b=b|0;c=c|0;return cc[a&15](b|0,c|0)|0}function Hk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;dc[a&3](b|0,c|0,d|0,e|0)}function Ik(a,b,c){a=a|0;b=b|0;c=c|0;ca(0);return 0}function Jk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ca(1)}function Kk(a,b){a=a|0;b=b|0;ca(2);return 0.0}function Lk(a,b){a=a|0;b=+b;ca(3)}function Mk(a){a=a|0;ca(4);return 0.0}function Nk(){ca(5);return 0}function Ok(a){a=a|0;ca(6)}function Pk(a,b){a=a|0;b=b|0;ca(7)}function Qk(a){a=a|0;ca(8);return 0}function Rk(a,b,c){a=a|0;b=b|0;c=c|0;ca(9)}function Sk(){ca(10)}function Tk(a,b,c){a=a|0;b=b|0;c=+c;ca(11)}function Uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(12);return 0}function Vk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ca(13)}function Wk(a,b){a=a|0;b=b|0;ca(14);return 0}function Xk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(15)} +function hA(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+320|0;v=y;o=y+208|0;x=y+32|0;s=y+28|0;w=y+16|0;u=y+12|0;q=y+48|0;r=y+8|0;p=y+4|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;t=ty(f)|0;c[s>>2]=t;s=GD(s,13672)|0;Xc[c[(c[s>>2]|0)+48>>2]&15](s,53456,53482,o)|0;Ox(t)|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;if(!(a[w>>0]&1))b=10;else b=(c[w>>2]&-2)+-1|0;$x(w,b,0);s=w+8|0;t=w+1|0;b=(a[w>>0]&1)==0?t:c[s>>2]|0;c[u>>2]=b;c[r>>2]=q;c[p>>2]=0;n=w+4|0;j=c[d>>2]|0;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=c[f>>2]|0;if((f|0)==-1){c[d>>2]=0;f=0;l=1}else{f=j;l=0}}else{f=0;l=1}j=c[e>>2]|0;do if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=c[k>>2]|0;if((k|0)!=-1)if(l)break;else break a;else{c[e>>2]=0;z=16;break}}else z=16;while(0);if((z|0)==16){z=0;if(l){j=0;break}else j=0}k=a[w>>0]|0;k=(k&1)==0?(k&255)>>>1:c[n>>2]|0;if((c[u>>2]|0)==(b+k|0)){$x(w,k<<1,0);if(!(a[w>>0]&1))b=10;else b=(c[w>>2]&-2)+-1|0;$x(w,b,0);b=(a[w>>0]&1)==0?t:c[s>>2]|0;c[u>>2]=b+k}l=f+12|0;k=c[l>>2]|0;m=f+16|0;if((k|0)==(c[m>>2]|0))k=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else k=c[k>>2]|0;if(iA(k,16,b,u,p,0,x,q,r,o)|0)break;j=c[l>>2]|0;if((j|0)==(c[m>>2]|0)){Nc[c[(c[f>>2]|0)+40>>2]&127](f)|0;j=f;continue}else{c[l>>2]=j+4;j=f;continue}}$x(w,(c[u>>2]|0)-b|0,0);t=(a[w>>0]&1)==0?t:c[s>>2]|0;u=Wz()|0;c[v>>2]=h;if((CF(t,u,54840,v)|0)!=1)c[g>>2]=4;if(f){b=c[f+12>>2]|0;if((b|0)==(c[f+16>>2]|0))b=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{z=45;break}else{c[e>>2]=0;z=43;break}}else z=43;while(0);if((z|0)==43?f:0)z=45;if((z|0)==45)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;Yx(w);Yx(x);i=y;return z|0}function iA(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(c[l+96>>2]|0)==(b|0);if(!m?(c[l+100>>2]|0)!=(b|0):0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i>>0]|0;if((b|0)==(h|0)?(((n&1)==0?(n&255)>>>1:c[i+4>>2]|0)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}d=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=d;c[g>>2]=0;m=0;break}i=l+104|0;m=l;while(1){if((c[m>>2]|0)==(b|0))break;m=m+4|0;if((m|0)==(i|0)){m=i;break}}m=m-l|0;i=m>>2;if((m|0)>92)m=-1;else{switch(d|0){case 10:case 8:{if((i|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[53456+i>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[53456+i>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function jA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;d=ty(d)|0;c[h>>2]=d;j=GD(h,13680)|0;Xc[c[(c[j>>2]|0)+32>>2]&15](j,53456,53482,e)|0;e=GD(h,13820)|0;a[f>>0]=Nc[c[(c[e>>2]|0)+16>>2]&127](e)|0;Lc[c[(c[e>>2]|0)+20>>2]&63](b,e);Ox(d)|0;i=g;return}function kA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h;d=ty(d)|0;c[j>>2]=d;k=GD(j,13680)|0;Xc[c[(c[k>>2]|0)+32>>2]&15](k,53456,53488,e)|0;e=GD(j,13820)|0;a[f>>0]=Nc[c[(c[e>>2]|0)+12>>2]&127](e)|0;a[g>>0]=Nc[c[(c[e>>2]|0)+16>>2]&127](e)|0;Lc[c[(c[e>>2]|0)+20>>2]&63](b,e);Ox(d)|0;i=h;return}function lA(b,e,f,g,h,i,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if(b<<24>>24==i<<24>>24)if(a[e>>0]|0){a[e>>0]=0;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=46;f=a[k>>0]|0;if((((f&1)==0?(f&255)>>>1:c[k+4>>2]|0)|0)!=0?(p=c[m>>2]|0,(p-l|0)<160):0){l=c[n>>2]|0;c[m>>2]=p+4;c[p>>2]=l;p=0}else p=0}else p=-1;else{if(b<<24>>24==j<<24>>24?(j=a[k>>0]|0,(((j&1)==0?(j&255)>>>1:c[k+4>>2]|0)|0)!=0):0){if(!(a[e>>0]|0)){p=-1;break}p=c[m>>2]|0;if((p-l|0)>=160){p=0;break}l=c[n>>2]|0;c[m>>2]=p+4;c[p>>2]=l;c[n>>2]=0;p=0;break}i=o+32|0;p=o;while(1){if((a[p>>0]|0)==b<<24>>24)break;p=p+1|0;if((p|0)==(i|0)){p=i;break}}i=p-o|0;if((i|0)>31)p=-1;else{j=a[53456+i>>0]|0;switch(i|0){case 24:case 25:{p=c[h>>2]|0;if((p|0)!=(g|0)?(d[p+-1>>0]&95|0)!=(d[f>>0]&127|0):0){p=-1;break a}c[h>>2]=p+1;a[p>>0]=j;p=0;break a}case 23:case 22:{a[f>>0]=80;p=c[h>>2]|0;c[h>>2]=p+1;a[p>>0]=j;p=0;break a}default:{p=j&95;if((((p|0)==(a[f>>0]|0)?(a[f>>0]=p|128,(a[e>>0]|0)!=0):0)?(a[e>>0]=0,f=a[k>>0]|0,(((f&1)==0?(f&255)>>>1:c[k+4>>2]|0)|0)!=0):0)?(q=c[m>>2]|0,(q-l|0)<160):0){l=c[n>>2]|0;c[m>>2]=q+4;c[q>>2]=l}m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=j;if((i|0)>21){p=0;break a}c[n>>2]=(c[n>>2]|0)+1;p=0;break a}}}}while(0);return p|0}function mA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;b=ty(b)|0;c[g>>2]=b;h=GD(g,13672)|0;Xc[c[(c[h>>2]|0)+48>>2]&15](h,53456,53482,d)|0;d=GD(g,13828)|0;c[e>>2]=Nc[c[(c[d>>2]|0)+16>>2]&127](d)|0;Lc[c[(c[d>>2]|0)+20>>2]&63](a,d);Ox(b)|0;i=f;return}function nA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;b=ty(b)|0;c[h>>2]=b;j=GD(h,13672)|0;Xc[c[(c[j>>2]|0)+48>>2]&15](j,53456,53488,d)|0;d=GD(h,13828)|0;c[e>>2]=Nc[c[(c[d>>2]|0)+12>>2]&127](d)|0;c[f>>2]=Nc[c[(c[d>>2]|0)+16>>2]&127](d)|0;Lc[c[(c[d>>2]|0)+20>>2]&63](a,d);Ox(b)|0;i=g;return}function oA(b,e,f,g,h,i,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if((b|0)==(i|0))if(a[e>>0]|0){a[e>>0]=0;f=c[h>>2]|0;c[h>>2]=f+1;a[f>>0]=46;f=a[k>>0]|0;if((((f&1)==0?(f&255)>>>1:c[k+4>>2]|0)|0)!=0?(p=c[m>>2]|0,(p-l|0)<160):0){l=c[n>>2]|0;c[m>>2]=p+4;c[p>>2]=l;p=0}else p=0}else p=-1;else{if((b|0)==(j|0)?(j=a[k>>0]|0,(((j&1)==0?(j&255)>>>1:c[k+4>>2]|0)|0)!=0):0){if(!(a[e>>0]|0)){p=-1;break}p=c[m>>2]|0;if((p-l|0)>=160){p=0;break}l=c[n>>2]|0;c[m>>2]=p+4;c[p>>2]=l;c[n>>2]=0;p=0;break}i=o+128|0;p=o;while(1){if((c[p>>2]|0)==(b|0))break;p=p+4|0;if((p|0)==(i|0)){p=i;break}}i=p-o|0;p=i>>2;if((i|0)<=124){j=a[53456+p>>0]|0;switch(p|0){case 24:case 25:{p=c[h>>2]|0;if((p|0)!=(g|0)?(d[p+-1>>0]&95|0)!=(d[f>>0]&127|0):0){p=-1;break a}c[h>>2]=p+1;a[p>>0]=j;p=0;break a}case 23:case 22:{a[f>>0]=80;break}default:{p=j&95;if((((p|0)==(a[f>>0]|0)?(a[f>>0]=p|128,(a[e>>0]|0)!=0):0)?(a[e>>0]=0,f=a[k>>0]|0,(((f&1)==0?(f&255)>>>1:c[k+4>>2]|0)|0)!=0):0)?(q=c[m>>2]|0,(q-l|0)<160):0){l=c[n>>2]|0;c[m>>2]=q+4;c[q>>2]=l}}}m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=j;if((i|0)>84)p=0;else{c[n>>2]=(c[n>>2]|0)+1;p=0}}else p=-1}while(0);return p|0}function pA(a){a=a|0;return}function qA(a){a=a|0;Vt(a);return}function rA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+20|0;j=n+16|0;k=n+12|0;m=n;if(!(c[e+4>>2]&1)){m=c[(c[b>>2]|0)+24>>2]|0;c[j>>2]=c[d>>2];c[h>>2]=c[j>>2];h=Oc[m&31](b,h,e,f,g&1)|0}else{j=ty(e)|0;c[k>>2]=j;h=GD(k,13820)|0;Ox(j)|0;j=c[h>>2]|0;if(g)Lc[c[j+24>>2]&63](m,h);else Lc[c[j+28>>2]&63](m,h);e=a[m>>0]|0;l=(e&1)==0;h=m+1|0;g=m+8|0;b=l?h:m+1|0;h=l?h:c[m+8>>2]|0;l=m+4|0;f=(e&1)==0;if((h|0)!=((f?b:c[g>>2]|0)+(f?(e&255)>>>1:c[l>>2]|0)|0))do{j=a[h>>0]|0;k=c[d>>2]|0;do if(k){f=k+24|0;e=c[f>>2]|0;if((e|0)!=(c[k+28>>2]|0)){c[f>>2]=e+1;a[e>>0]=j;break}if((Uc[c[(c[k>>2]|0)+52>>2]&63](k,j&255)|0)==-1)c[d>>2]=0}while(0);h=h+1|0;e=a[m>>0]|0;f=(e&1)==0}while((h|0)!=((f?b:c[g>>2]|0)+(f?(e&255)>>>1:c[l>>2]|0)|0));h=c[d>>2]|0;Yx(m)}i=n;return h|0}function sA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+64|0;k=h;o=h+56|0;q=h+44|0;j=h+20|0;m=h+16|0;b=h+12|0;n=h+8|0;l=h+4|0;a[o>>0]=a[54845]|0;a[o+1>>0]=a[54846]|0;a[o+2>>0]=a[54847]|0;a[o+3>>0]=a[54848]|0;a[o+4>>0]=a[54849]|0;a[o+5>>0]=a[54850]|0;tA(o+1|0,54851,1,c[e+4>>2]|0);p=Wz()|0;c[k>>2]=g;o=q+(NF(q,12,p,o,k)|0)|0;p=uA(q,o,e)|0;g=ty(e)|0;c[n>>2]=g;vA(q,p,o,j,m,b,n);Ox(g)|0;c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=zh(k,j,g,b,e,f)|0;i=h;return b|0}function tA(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if(e&2048){a[b>>0]=43;b=b+1|0}if(e&512){a[b>>0]=35;b=b+1|0}f=a[c>>0]|0;if(f<<24>>24){g=c;while(1){g=g+1|0;c=b+1|0;a[b>>0]=f;f=a[g>>0]|0;if(!(f<<24>>24)){b=c;break}else b=c}}a:do switch(e&74|0){case 64:{a[b>>0]=111;break}case 8:if(!(e&16384)){a[b>>0]=120;break a}else{a[b>>0]=88;break a}default:if(d){a[b>>0]=100;break a}else{a[b>>0]=117;break a}}while(0);return}function uA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;a:do switch(c[e+4>>2]&176|0){case 16:{e=a[b>>0]|0;switch(e<<24>>24){case 43:case 45:{b=b+1|0;break a}default:{}}if((d-b|0)>1&e<<24>>24==48){switch(a[b+1>>0]|0){case 88:case 120:break;default:{f=7;break a}}b=b+2|0}else f=7;break}case 32:{b=d;break}default:f=7}while(0);return b|0}function vA(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+16|0;s=t;r=GD(j,13680)|0;m=GD(j,13820)|0;Lc[c[(c[m>>2]|0)+20>>2]&63](s,m);p=a[s>>0]|0;q=s+4|0;if(((p&1)==0?(p&255)>>>1:c[q>>2]|0)|0){c[h>>2]=f;j=a[b>>0]|0;switch(j<<24>>24){case 43:case 45:{p=Uc[c[(c[r>>2]|0)+28>>2]&63](r,j)|0;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=p;k=b+1|0;break}default:k=b}a:do if((e-k|0)>1?(a[k>>0]|0)==48:0){j=k+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}p=Uc[c[(c[r>>2]|0)+28>>2]&63](r,48)|0;o=c[h>>2]|0;c[h>>2]=o+1;a[o>>0]=p;o=Uc[c[(c[r>>2]|0)+28>>2]&63](r,a[j>>0]|0)|0;p=c[h>>2]|0;c[h>>2]=p+1;a[p>>0]=o;k=k+2|0}while(0);if((k|0)!=(e|0)?(n=e+-1|0,k>>>0>>0):0){l=k;j=n;do{p=a[l>>0]|0;a[l>>0]=a[j>>0]|0;a[j>>0]=p;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}m=Nc[c[(c[m>>2]|0)+16>>2]&127](m)|0;n=s+8|0;o=s+1|0;if(k>>>0>>0){j=0;l=0;p=k;while(1){u=a[((a[s>>0]&1)==0?o:c[n>>2]|0)+l>>0]|0;if(u<<24>>24!=0&(j|0)==(u<<24>>24|0)){u=c[h>>2]|0;c[h>>2]=u+1;a[u>>0]=m;u=a[s>>0]|0;j=0;l=(l>>>0<(((u&1)==0?(u&255)>>>1:c[q>>2]|0)+-1|0)>>>0&1)+l|0}v=Uc[c[(c[r>>2]|0)+28>>2]&63](r,a[p>>0]|0)|0;u=c[h>>2]|0;c[h>>2]=u+1;a[u>>0]=v;p=p+1|0;if(p>>>0>=e>>>0)break;else j=j+1|0}}j=f+(k-b)|0;k=c[h>>2]|0;if((j|0)!=(k|0)){k=k+-1|0;if(j>>>0>>0)do{v=a[j>>0]|0;a[j>>0]=a[k>>0]|0;a[k>>0]=v;j=j+1|0;k=k+-1|0}while(j>>>0>>0);j=c[h>>2]|0}}else{Xc[c[(c[r>>2]|0)+32>>2]&15](r,b,e,f)|0;j=f+(e-b)|0;c[h>>2]=j}c[g>>2]=(d|0)==(e|0)?j:f+(d-b)|0;Yx(s);i=t;return}function wA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+96|0;k=h+8|0;o=h;p=h+74|0;j=h+32|0;m=h+28|0;a=h+24|0;n=h+20|0;l=h+16|0;q=o;c[q>>2]=37;c[q+4>>2]=0;tA(o+1|0,54853,1,c[d+4>>2]|0);q=Wz()|0;r=k;c[r>>2]=f;c[r+4>>2]=g;f=p+(NF(p,22,q,o,k)|0)|0;o=uA(p,f,d)|0;g=ty(d)|0;c[n>>2]=g;vA(p,o,f,j,m,a,n);Ox(g)|0;c[l>>2]=c[b>>2];b=c[m>>2]|0;a=c[a>>2]|0;c[k>>2]=c[l>>2];a=zh(k,j,b,a,d,e)|0;i=h;return a|0}function xA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+64|0;k=h;o=h+56|0;q=h+44|0;j=h+20|0;m=h+16|0;b=h+12|0;n=h+8|0;l=h+4|0;a[o>>0]=a[54845]|0;a[o+1>>0]=a[54846]|0;a[o+2>>0]=a[54847]|0;a[o+3>>0]=a[54848]|0;a[o+4>>0]=a[54849]|0;a[o+5>>0]=a[54850]|0;tA(o+1|0,54851,0,c[e+4>>2]|0);p=Wz()|0;c[k>>2]=g;o=q+(NF(q,12,p,o,k)|0)|0;p=uA(q,o,e)|0;g=ty(e)|0;c[n>>2]=g;vA(q,p,o,j,m,b,n);Ox(g)|0;c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=zh(k,j,g,b,e,f)|0;i=h;return b|0}function yA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+112|0;k=h+8|0;o=h;p=h+75|0;j=h+32|0;m=h+28|0;a=h+24|0;n=h+20|0;l=h+16|0;q=o;c[q>>2]=37;c[q+4>>2]=0;tA(o+1|0,54853,0,c[d+4>>2]|0);q=Wz()|0;r=k;c[r>>2]=f;c[r+4>>2]=g;f=p+(NF(p,23,q,o,k)|0)|0;o=uA(p,f,d)|0;g=ty(d)|0;c[n>>2]=g;vA(p,o,f,j,m,a,n);Ox(g)|0;c[l>>2]=c[b>>2];b=c[m>>2]|0;a=c[a>>2]|0;c[k>>2]=c[l>>2];a=zh(k,j,b,a,d,e)|0;i=h;return a|0}function zA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;v=i;i=i+160|0;p=v+68|0;l=v+32|0;j=v+24|0;g=v+8|0;k=v;n=v+72|0;m=v+64|0;o=v+102|0;u=v+60|0;t=v+56|0;q=v+52|0;r=v+48|0;B=k;c[B>>2]=37;c[B+4>>2]=0;B=AA(k+1|0,54856,c[d+4>>2]|0)|0;c[m>>2]=n;a=Wz()|0;if(B){c[g>>2]=c[d+8>>2];h[g+8>>3]=f;a=NF(n,30,a,k,g)|0}else{h[j>>3]=f;a=NF(n,30,a,k,j)|0}if((a|0)>29){g=Wz()|0;c[l>>2]=c[d+8>>2];h[l+8>>3]=f;g=OF(m,g,k,l)|0;a=c[m>>2]|0;if(!a)Eu();else{w=a;z=a;s=g}}else{w=c[m>>2]|0;z=0;s=a}g=w+s|0;j=uA(w,g,d)|0;if((w|0)!=(n|0)){a=cx(s<<1)|0;if(!a)Eu();else{x=w;y=a;A=a}}else{x=n;y=0;A=o}B=ty(d)|0;c[q>>2]=B;BA(x,j,g,A,u,t,q);Ox(B)|0;c[r>>2]=c[b>>2];b=c[u>>2]|0;B=c[t>>2]|0;c[p>>2]=c[r>>2];B=zh(p,A,b,B,d,e)|0;dx(y);dx(z);i=v;return B|0}function AA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(d&2048){a[b>>0]=43;b=b+1|0}if(d&1024){a[b>>0]=35;b=b+1|0}h=d&260;f=d>>>14;i=(h|0)==260;if(i)g=0;else{a[b>>0]=46;a[b+1>>0]=42;b=b+2|0;g=1}d=a[c>>0]|0;if(d<<24>>24){e=b;while(1){c=c+1|0;b=e+1|0;a[e>>0]=d;d=a[c>>0]|0;if(!(d<<24>>24))break;else e=b}}a:do switch(h|0){case 4:if(!(f&1)){a[b>>0]=102;break a}else{a[b>>0]=70;break a}case 256:if(!(f&1)){a[b>>0]=101;break a}else{a[b>>0]=69;break a}default:{d=(f&1|0)!=0;if(i)if(d){a[b>>0]=65;break a}else{a[b>>0]=97;break a}else if(d){a[b>>0]=71;break a}else{a[b>>0]=103;break a}}}while(0);return g|0}function BA(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=i;i=i+16|0;w=x;v=GD(j,13680)|0;t=GD(j,13820)|0;Lc[c[(c[t>>2]|0)+20>>2]&63](w,t);c[h>>2]=f;j=a[b>>0]|0;switch(j<<24>>24){case 43:case 45:{u=Uc[c[(c[v>>2]|0)+28>>2]&63](v,j)|0;m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=u;m=b+1|0;break}default:m=b}u=e;a:do if((u-m|0)>1?(a[m>>0]|0)==48:0){j=m+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:{n=4;break a}}s=Uc[c[(c[v>>2]|0)+28>>2]&63](v,48)|0;r=c[h>>2]|0;c[h>>2]=r+1;a[r>>0]=s;m=m+2|0;r=Uc[c[(c[v>>2]|0)+28>>2]&63](v,a[j>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+1;a[s>>0]=r;if(m>>>0>>0){j=m;while(1){s=a[j>>0]|0;if(!($u(s,Wz()|0)|0)){s=m;break a}j=j+1|0;if(j>>>0>=e>>>0){s=m;break}}}else{s=m;j=m}}else n=4;while(0);b:do if((n|0)==4)if(m>>>0>>0){j=m;while(1){s=a[j>>0]|0;if(!(_u(s,Wz()|0)|0)){s=m;break b}j=j+1|0;if(j>>>0>=e>>>0){s=m;break}}}else{s=m;j=m}while(0);q=a[w>>0]|0;r=w+4|0;if(((q&1)==0?(q&255)>>>1:c[r>>2]|0)|0){if((s|0)!=(j|0)?(l=j+-1|0,s>>>0>>0):0){m=s;do{q=a[m>>0]|0;a[m>>0]=a[l>>0]|0;a[l>>0]=q;m=m+1|0;l=l+-1|0}while(m>>>0>>0)}n=Nc[c[(c[t>>2]|0)+16>>2]&127](t)|0;o=w+8|0;p=w+1|0;if(s>>>0>>0){l=0;m=0;q=s;while(1){y=a[((a[w>>0]&1)==0?p:c[o>>2]|0)+m>>0]|0;if(y<<24>>24>0&(l|0)==(y<<24>>24|0)){y=c[h>>2]|0;c[h>>2]=y+1;a[y>>0]=n;y=a[w>>0]|0;l=0;m=(m>>>0<(((y&1)==0?(y&255)>>>1:c[r>>2]|0)+-1|0)>>>0&1)+m|0}z=Uc[c[(c[v>>2]|0)+28>>2]&63](v,a[q>>0]|0)|0;y=c[h>>2]|0;c[h>>2]=y+1;a[y>>0]=z;q=q+1|0;if(q>>>0>=j>>>0)break;else l=l+1|0}}l=f+(s-b)|0;m=c[h>>2]|0;if((l|0)!=(m|0)?(k=m+-1|0,l>>>0>>0):0){do{z=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=z;l=l+1|0;k=k+-1|0}while(l>>>0>>0);l=v}else l=v}else{Xc[c[(c[v>>2]|0)+32>>2]&15](v,s,j,c[h>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(j-s);l=v}c:do if(j>>>0>>0){while(1){k=a[j>>0]|0;if(k<<24>>24==46)break;y=Uc[c[(c[l>>2]|0)+28>>2]&63](v,k)|0;z=c[h>>2]|0;c[h>>2]=z+1;a[z>>0]=y;j=j+1|0;if(j>>>0>=e>>>0)break c}y=Nc[c[(c[t>>2]|0)+12>>2]&127](t)|0;z=c[h>>2]|0;c[h>>2]=z+1;a[z>>0]=y;j=j+1|0}while(0);Xc[c[(c[v>>2]|0)+32>>2]&15](v,j,e,c[h>>2]|0)|0;z=(c[h>>2]|0)+(u-j)|0;c[h>>2]=z;c[g>>2]=(d|0)==(e|0)?z:f+(d-b)|0;Yx(w);i=x;return}function CA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;x=i;i=i+176|0;r=x+76|0;n=x+48|0;m=x+32|0;j=x+24|0;g=x+8|0;l=x;p=x+80|0;o=x+72|0;q=x+110|0;w=x+68|0;v=x+64|0;s=x+60|0;t=x+56|0;k=l;c[k>>2]=37;c[k+4>>2]=0;k=AA(l+1|0,54857,c[d+4>>2]|0)|0;c[o>>2]=p;a=Wz()|0;if(k){c[g>>2]=c[d+8>>2];h[g+8>>3]=f;a=NF(p,30,a,l,g)|0}else{h[j>>3]=f;a=NF(p,30,a,l,j)|0}if((a|0)>29){a=Wz()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;g=OF(o,a,l,m)|0}else{h[n>>3]=f;g=OF(o,a,l,n)|0}a=c[o>>2]|0;if(!a)Eu();else{y=a;B=a;u=g}}else{y=c[o>>2]|0;B=0;u=a}g=y+u|0;j=uA(y,g,d)|0;if((y|0)!=(p|0)){a=cx(u<<1)|0;if(!a)Eu();else{z=y;A=a;C=a}}else{z=p;A=0;C=q}y=ty(d)|0;c[s>>2]=y;BA(z,j,g,C,w,v,s);Ox(y)|0;c[t>>2]=c[b>>2];z=c[w>>2]|0;b=c[v>>2]|0;c[r>>2]=c[t>>2];b=zh(r,C,z,b,d,e)|0;dx(A);dx(B);i=x;return b|0}function DA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+80|0;m=h;b=h+70|0;j=h+12|0;k=h+32|0;o=h+8|0;n=h+4|0;a[b>>0]=a[54859]|0;a[b+1>>0]=a[54860]|0;a[b+2>>0]=a[54861]|0;a[b+3>>0]=a[54862]|0;a[b+4>>0]=a[54863]|0;a[b+5>>0]=a[54864]|0;l=Wz()|0;c[m>>2]=g;b=NF(j,20,l,b,m)|0;l=j+b|0;g=uA(j,l,e)|0;p=ty(e)|0;c[o>>2]=p;o=GD(o,13680)|0;Ox(p)|0;Xc[c[(c[o>>2]|0)+32>>2]&15](o,j,l,k)|0;b=k+b|0;c[n>>2]=c[d>>2];c[m>>2]=c[n>>2];b=zh(m,k,(g|0)==(l|0)?b:k+(g-j)|0,b,e,f)|0;i=h;return b|0}function EA(a){a=a|0;return}function FA(a){a=a|0;Vt(a);return}function GA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+20|0;j=m+16|0;k=m+12|0;l=m;if(!(c[e+4>>2]&1)){l=c[(c[b>>2]|0)+24>>2]|0;c[j>>2]=c[d>>2];c[h>>2]=c[j>>2];h=Oc[l&31](b,h,e,f,g&1)|0}else{j=ty(e)|0;c[k>>2]=j;h=GD(k,13828)|0;Ox(j)|0;j=c[h>>2]|0;if(g)Lc[c[j+24>>2]&63](l,h);else Lc[c[j+28>>2]&63](l,h);e=a[l>>0]|0;f=(e&1)==0;h=l+4|0;g=l+8|0;b=f?h:l+4|0;h=f?h:c[l+8>>2]|0;f=(e&1)==0;if((h|0)!=((f?b:c[g>>2]|0)+((f?(e&255)>>>1:c[b>>2]|0)<<2)|0))do{j=c[h>>2]|0;k=c[d>>2]|0;if(k){f=k+24|0;e=c[f>>2]|0;if((e|0)==(c[k+28>>2]|0))j=Uc[c[(c[k>>2]|0)+52>>2]&63](k,j)|0;else{c[f>>2]=e+4;c[e>>2]=j}if((j|0)==-1)c[d>>2]=0}h=h+4|0;e=a[l>>0]|0;f=(e&1)==0}while((h|0)!=((f?b:c[g>>2]|0)+((f?(e&255)>>>1:c[b>>2]|0)<<2)|0));h=c[d>>2]|0;hy(l)}i=m;return h|0}function HA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+128|0;k=h;o=h+116|0;q=h+104|0;j=h+20|0;m=h+16|0;b=h+12|0;n=h+8|0;l=h+4|0;a[o>>0]=a[54845]|0;a[o+1>>0]=a[54846]|0;a[o+2>>0]=a[54847]|0;a[o+3>>0]=a[54848]|0;a[o+4>>0]=a[54849]|0;a[o+5>>0]=a[54850]|0;tA(o+1|0,54851,1,c[e+4>>2]|0);p=Wz()|0;c[k>>2]=g;o=q+(NF(q,12,p,o,k)|0)|0;p=uA(q,o,e)|0;g=ty(e)|0;c[n>>2]=g;IA(q,p,o,j,m,b,n);Ox(g)|0;c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=PF(k,j,g,b,e,f)|0;i=h;return b|0}function IA(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+16|0;s=t;r=GD(j,13672)|0;m=GD(j,13828)|0;Lc[c[(c[m>>2]|0)+20>>2]&63](s,m);p=a[s>>0]|0;q=s+4|0;if(((p&1)==0?(p&255)>>>1:c[q>>2]|0)|0){c[h>>2]=f;j=a[b>>0]|0;switch(j<<24>>24){case 43:case 45:{p=Uc[c[(c[r>>2]|0)+44>>2]&63](r,j)|0;k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=p;k=b+1|0;break}default:k=b}a:do if((e-k|0)>1?(a[k>>0]|0)==48:0){j=k+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}p=Uc[c[(c[r>>2]|0)+44>>2]&63](r,48)|0;o=c[h>>2]|0;c[h>>2]=o+4;c[o>>2]=p;o=Uc[c[(c[r>>2]|0)+44>>2]&63](r,a[j>>0]|0)|0;p=c[h>>2]|0;c[h>>2]=p+4;c[p>>2]=o;k=k+2|0}while(0);if((k|0)!=(e|0)?(n=e+-1|0,k>>>0>>0):0){l=k;j=n;do{p=a[l>>0]|0;a[l>>0]=a[j>>0]|0;a[j>>0]=p;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}m=Nc[c[(c[m>>2]|0)+16>>2]&127](m)|0;n=s+8|0;o=s+1|0;if(k>>>0>>0){j=0;l=0;p=k;while(1){u=a[((a[s>>0]&1)==0?o:c[n>>2]|0)+l>>0]|0;if(u<<24>>24!=0&(j|0)==(u<<24>>24|0)){u=c[h>>2]|0;c[h>>2]=u+4;c[u>>2]=m;u=a[s>>0]|0;j=0;l=(l>>>0<(((u&1)==0?(u&255)>>>1:c[q>>2]|0)+-1|0)>>>0&1)+l|0}v=Uc[c[(c[r>>2]|0)+44>>2]&63](r,a[p>>0]|0)|0;u=c[h>>2]|0;c[h>>2]=u+4;c[u>>2]=v;p=p+1|0;if(p>>>0>=e>>>0)break;else j=j+1|0}}j=f+(k-b<<2)|0;l=c[h>>2]|0;if((j|0)!=(l|0)){k=l+-4|0;if(j>>>0>>0){do{v=c[j>>2]|0;c[j>>2]=c[k>>2];c[k>>2]=v;j=j+4|0;k=k+-4|0}while(j>>>0>>0);j=l}else j=l}}else{Xc[c[(c[r>>2]|0)+48>>2]&15](r,b,e,f)|0;j=f+(e-b<<2)|0;c[h>>2]=j}c[g>>2]=(d|0)==(e|0)?j:f+(d-b<<2)|0;Yx(s);i=t;return}function JA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+224|0;k=h+8|0;o=h;p=h+196|0;j=h+32|0;m=h+28|0;a=h+24|0;n=h+20|0;l=h+16|0;q=o;c[q>>2]=37;c[q+4>>2]=0;tA(o+1|0,54853,1,c[d+4>>2]|0);q=Wz()|0;r=k;c[r>>2]=f;c[r+4>>2]=g;f=p+(NF(p,22,q,o,k)|0)|0;o=uA(p,f,d)|0;g=ty(d)|0;c[n>>2]=g;IA(p,o,f,j,m,a,n);Ox(g)|0;c[l>>2]=c[b>>2];b=c[m>>2]|0;a=c[a>>2]|0;c[k>>2]=c[l>>2];a=PF(k,j,b,a,d,e)|0;i=h;return a|0}function KA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;i=i+128|0;k=h;o=h+116|0;q=h+104|0;j=h+20|0;m=h+16|0;b=h+12|0;n=h+8|0;l=h+4|0;a[o>>0]=a[54845]|0;a[o+1>>0]=a[54846]|0;a[o+2>>0]=a[54847]|0;a[o+3>>0]=a[54848]|0;a[o+4>>0]=a[54849]|0;a[o+5>>0]=a[54850]|0;tA(o+1|0,54851,0,c[e+4>>2]|0);p=Wz()|0;c[k>>2]=g;o=q+(NF(q,12,p,o,k)|0)|0;p=uA(q,o,e)|0;g=ty(e)|0;c[n>>2]=g;IA(q,p,o,j,m,b,n);Ox(g)|0;c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=PF(k,j,g,b,e,f)|0;i=h;return b|0}function LA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+240|0;k=h+8|0;o=h;p=h+204|0;j=h+32|0;m=h+28|0;a=h+24|0;n=h+20|0;l=h+16|0;q=o;c[q>>2]=37;c[q+4>>2]=0;tA(o+1|0,54853,0,c[d+4>>2]|0);q=Wz()|0;r=k;c[r>>2]=f;c[r+4>>2]=g;f=p+(NF(p,23,q,o,k)|0)|0;o=uA(p,f,d)|0;g=ty(d)|0;c[n>>2]=g;IA(p,o,f,j,m,a,n);Ox(g)|0;c[l>>2]=c[b>>2];b=c[m>>2]|0;a=c[a>>2]|0;c[k>>2]=c[l>>2];a=PF(k,j,b,a,d,e)|0;i=h;return a|0}function MA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;y=i;i=i+336|0;p=y+296|0;l=y+32|0;j=y+24|0;g=y+8|0;k=y;n=y+300|0;m=y+64|0;o=y+68|0;u=y+60|0;t=y+56|0;q=y+52|0;r=y+48|0;B=k;c[B>>2]=37;c[B+4>>2]=0;B=AA(k+1|0,54856,c[d+4>>2]|0)|0;c[m>>2]=n;a=Wz()|0;if(B){c[g>>2]=c[d+8>>2];h[g+8>>3]=f;a=NF(n,30,a,k,g)|0}else{h[j>>3]=f;a=NF(n,30,a,k,j)|0}if((a|0)>29){g=Wz()|0;c[l>>2]=c[d+8>>2];h[l+8>>3]=f;g=OF(m,g,k,l)|0;a=c[m>>2]|0;if(!a)Eu();else{v=a;A=a;s=g}}else{v=c[m>>2]|0;A=0;s=a}g=v+s|0;j=uA(v,g,d)|0;if((v|0)!=(n|0)){a=cx(s<<3)|0;if(!a)Eu();else{w=v;z=a;x=a}}else{w=n;z=0;x=o}B=ty(d)|0;c[q>>2]=B;NA(w,j,g,x,u,t,q);Ox(B)|0;c[r>>2]=c[b>>2];B=c[u>>2]|0;a=c[t>>2]|0;c[p>>2]=c[r>>2];a=PF(p,x,B,a,d,e)|0;c[b>>2]=a;if(z)dx(z);dx(A);i=y;return a|0}function NA(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=i;i=i+16|0;v=w;u=GD(j,13672)|0;s=GD(j,13828)|0;Lc[c[(c[s>>2]|0)+20>>2]&63](v,s);c[h>>2]=f;j=a[b>>0]|0;switch(j<<24>>24){case 43:case 45:{t=Uc[c[(c[u>>2]|0)+44>>2]&63](u,j)|0;l=c[h>>2]|0;c[h>>2]=l+4;c[l>>2]=t;l=b+1|0;break}default:l=b}t=e;a:do if((t-l|0)>1?(a[l>>0]|0)==48:0){j=l+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:{m=4;break a}}r=Uc[c[(c[u>>2]|0)+44>>2]&63](u,48)|0;q=c[h>>2]|0;c[h>>2]=q+4;c[q>>2]=r;l=l+2|0;q=Uc[c[(c[u>>2]|0)+44>>2]&63](u,a[j>>0]|0)|0;r=c[h>>2]|0;c[h>>2]=r+4;c[r>>2]=q;if(l>>>0>>0){j=l;while(1){r=a[j>>0]|0;if(!($u(r,Wz()|0)|0)){r=l;break a}j=j+1|0;if(j>>>0>=e>>>0){r=l;break}}}else{r=l;j=l}}else m=4;while(0);b:do if((m|0)==4)if(l>>>0>>0){j=l;while(1){r=a[j>>0]|0;if(!(_u(r,Wz()|0)|0)){r=l;break b}j=j+1|0;if(j>>>0>=e>>>0){r=l;break}}}else{r=l;j=l}while(0);p=a[v>>0]|0;q=v+4|0;if(((p&1)==0?(p&255)>>>1:c[q>>2]|0)|0){if((r|0)!=(j|0)?(k=j+-1|0,r>>>0>>0):0){l=r;do{p=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=p;l=l+1|0;k=k+-1|0}while(l>>>0>>0)}m=Nc[c[(c[s>>2]|0)+16>>2]&127](s)|0;n=v+8|0;o=v+1|0;if(r>>>0>>0){k=0;l=0;p=r;while(1){x=a[((a[v>>0]&1)==0?o:c[n>>2]|0)+l>>0]|0;if(x<<24>>24>0&(k|0)==(x<<24>>24|0)){x=c[h>>2]|0;c[h>>2]=x+4;c[x>>2]=m;x=a[v>>0]|0;k=0;l=(l>>>0<(((x&1)==0?(x&255)>>>1:c[q>>2]|0)+-1|0)>>>0&1)+l|0}y=Uc[c[(c[u>>2]|0)+44>>2]&63](u,a[p>>0]|0)|0;x=c[h>>2]|0;c[h>>2]=x+4;c[x>>2]=y;p=p+1|0;if(p>>>0>=j>>>0)break;else k=k+1|0}}k=f+(r-b<<2)|0;m=c[h>>2]|0;if((k|0)!=(m|0)){l=m+-4|0;if(k>>>0>>0){do{y=c[k>>2]|0;c[k>>2]=c[l>>2];c[l>>2]=y;k=k+4|0;l=l+-4|0}while(k>>>0>>0);l=u;k=m}else{l=u;k=m}}else l=u}else{Xc[c[(c[u>>2]|0)+48>>2]&15](u,r,j,c[h>>2]|0)|0;k=(c[h>>2]|0)+(j-r<<2)|0;c[h>>2]=k;l=u}c:do if(j>>>0>>0){while(1){k=a[j>>0]|0;if(k<<24>>24==46)break;x=Uc[c[(c[l>>2]|0)+44>>2]&63](u,k)|0;y=c[h>>2]|0;k=y+4|0;c[h>>2]=k;c[y>>2]=x;j=j+1|0;if(j>>>0>=e>>>0)break c}x=Nc[c[(c[s>>2]|0)+12>>2]&127](s)|0;y=c[h>>2]|0;k=y+4|0;c[h>>2]=k;c[y>>2]=x;j=j+1|0}while(0);Xc[c[(c[u>>2]|0)+48>>2]&15](u,j,e,k)|0;y=(c[h>>2]|0)+(t-j<<2)|0;c[h>>2]=y;c[g>>2]=(d|0)==(e|0)?y:f+(d-b<<2)|0;Yx(v);i=w;return}function OA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=i;i=i+352|0;r=A+304|0;n=A+48|0;m=A+32|0;j=A+24|0;g=A+8|0;l=A;p=A+308|0;o=A+72|0;q=A+76|0;w=A+68|0;v=A+64|0;s=A+60|0;t=A+56|0;k=l;c[k>>2]=37;c[k+4>>2]=0;k=AA(l+1|0,54857,c[d+4>>2]|0)|0;c[o>>2]=p;a=Wz()|0;if(k){c[g>>2]=c[d+8>>2];h[g+8>>3]=f;a=NF(p,30,a,l,g)|0}else{h[j>>3]=f;a=NF(p,30,a,l,j)|0}if((a|0)>29){a=Wz()|0;if(k){c[m>>2]=c[d+8>>2];h[m+8>>3]=f;g=OF(o,a,l,m)|0}else{h[n>>3]=f;g=OF(o,a,l,n)|0}a=c[o>>2]|0;if(!a)Eu();else{x=a;C=a;u=g}}else{x=c[o>>2]|0;C=0;u=a}g=x+u|0;j=uA(x,g,d)|0;if((x|0)!=(p|0)){a=cx(u<<3)|0;if(!a)Eu();else{y=x;B=a;z=a}}else{y=p;B=0;z=q}a=ty(d)|0;c[s>>2]=a;NA(y,j,g,z,w,v,s);Ox(a)|0;c[t>>2]=c[b>>2];y=c[w>>2]|0;a=c[v>>2]|0;c[r>>2]=c[t>>2];a=PF(r,z,y,a,d,e)|0;c[b>>2]=a;if(B)dx(B);dx(C);i=A;return a|0}function PA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+192|0;m=h;b=h+180|0;j=h+160|0;k=h+12|0;o=h+8|0;n=h+4|0;a[b>>0]=a[54859]|0;a[b+1>>0]=a[54860]|0;a[b+2>>0]=a[54861]|0;a[b+3>>0]=a[54862]|0;a[b+4>>0]=a[54863]|0;a[b+5>>0]=a[54864]|0;l=Wz()|0;c[m>>2]=g;b=NF(j,20,l,b,m)|0;l=j+b|0;g=uA(j,l,e)|0;p=ty(e)|0;c[o>>2]=p;o=GD(o,13672)|0;Ox(p)|0;Xc[c[(c[o>>2]|0)+48>>2]&15](o,j,l,k)|0;b=k+(b<<2)|0;c[n>>2]=c[d>>2];c[m>>2]=c[n>>2];b=PF(m,k,(g|0)==(l|0)?b:k+(g-j<<2)|0,b,e,f)|0;i=h;return b|0}function QA(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;u=B+16|0;t=B+12|0;x=B+8|0;v=B+4|0;w=B;y=ty(h)|0;c[x>>2]=y;x=GD(x,13680)|0;Ox(y)|0;c[j>>2]=0;y=x+8|0;n=c[f>>2]|0;a:do if((l|0)!=(m|0)){b:while(1){o=n;if(n){if((c[n+12>>2]|0)==(c[n+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0)==-1:0){c[f>>2]=0;n=0;o=0}}else n=0;r=(n|0)==0;q=c[g>>2]|0;p=q;do if(q){if((c[q+12>>2]|0)==(c[q+16>>2]|0)?(Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0)==-1:0){c[g>>2]=0;p=0;A=11;break}if(!r){A=12;break b}}else A=11;while(0);if((A|0)==11){A=0;if(r){A=12;break}else q=0}c:do if((Pc[c[(c[x>>2]|0)+36>>2]&63](x,a[l>>0]|0,0)|0)<<24>>24==37){q=l+1|0;if((q|0)==(m|0)){A=15;break b}s=Pc[c[(c[x>>2]|0)+36>>2]&63](x,a[q>>0]|0,0)|0;switch(s<<24>>24){case 48:case 69:{r=l+2|0;if((r|0)==(m|0)){A=18;break b}l=q;q=Pc[c[(c[x>>2]|0)+36>>2]&63](x,a[r>>0]|0,0)|0;n=s;break}default:{q=s;n=0}}s=c[(c[e>>2]|0)+36>>2]|0;c[v>>2]=o;c[w>>2]=p;c[t>>2]=c[v>>2];c[u>>2]=c[w>>2];c[f>>2]=Sc[s&15](e,t,u,h,j,k,q,n)|0;l=l+2|0}else{o=a[l>>0]|0;if(o<<24>>24>-1?(z=c[y>>2]|0,(b[z+(o<<24>>24<<1)>>1]&8192)!=0):0){do{l=l+1|0;if((l|0)==(m|0)){l=m;break}o=a[l>>0]|0;if(o<<24>>24<=-1)break}while((b[z+(o<<24>>24<<1)>>1]&8192)!=0);o=q;while(1){if(n){if((c[n+12>>2]|0)==(c[n+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0)==-1:0){c[f>>2]=0;n=0}}else n=0;p=(n|0)==0;do if(q){if((c[q+12>>2]|0)!=(c[q+16>>2]|0))if(p){s=o;break}else break c;if((Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0)!=-1)if(p^(o|0)==0){s=o;q=o;break}else break c;else{c[g>>2]=0;o=0;A=37;break}}else A=37;while(0);if((A|0)==37){A=0;if(p)break c;else{s=o;q=0}}p=n+12|0;o=c[p>>2]|0;r=n+16|0;if((o|0)==(c[r>>2]|0))o=Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0;else o=d[o>>0]|0;if((o&255)<<24>>24<=-1)break c;if(!(b[(c[y>>2]|0)+(o<<24>>24<<1)>>1]&8192))break c;o=c[p>>2]|0;if((o|0)==(c[r>>2]|0)){Nc[c[(c[n>>2]|0)+40>>2]&127](n)|0;o=s;continue}else{c[p>>2]=o+1;o=s;continue}}}p=n+12|0;o=c[p>>2]|0;q=n+16|0;if((o|0)==(c[q>>2]|0))o=Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0;else o=d[o>>0]|0;s=Uc[c[(c[x>>2]|0)+12>>2]&63](x,o&255)|0;if(s<<24>>24!=(Uc[c[(c[x>>2]|0)+12>>2]&63](x,a[l>>0]|0)|0)<<24>>24){A=55;break b}o=c[p>>2]|0;if((o|0)==(c[q>>2]|0))Nc[c[(c[n>>2]|0)+40>>2]&127](n)|0;else c[p>>2]=o+1;l=l+1|0}while(0);n=c[f>>2]|0;if(!((l|0)!=(m|0)&(c[j>>2]|0)==0))break a}if((A|0)==12){c[j>>2]=4;break}else if((A|0)==15){c[j>>2]=4;break}else if((A|0)==18){c[j>>2]=4;break}else if((A|0)==55){c[j>>2]=4;n=c[f>>2]|0;break}}while(0);if(n){if((c[n+12>>2]|0)==(c[n+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0)==-1:0){c[f>>2]=0;n=0}}else n=0;l=(n|0)==0;o=c[g>>2]|0;do if(o){if((c[o+12>>2]|0)==(c[o+16>>2]|0)?(Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0)==-1:0){c[g>>2]=0;A=65;break}if(!l)A=66}else A=65;while(0);if((A|0)==65?l:0)A=66;if((A|0)==66)c[j>>2]=c[j>>2]|2;i=B;return n|0}function RA(a){a=a|0;return}function SA(a){a=a|0;Vt(a);return}function TA(a){a=a|0;return 2}function UA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=QA(a,k,j,e,f,g,54865,54873)|0;i=h;return a|0}function VA(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;i=i+16|0;k=j+12|0;l=j+8|0;n=j+4|0;m=j;o=b+8|0;o=Nc[c[(c[o>>2]|0)+20>>2]&127](o)|0;c[n>>2]=c[d>>2];c[m>>2]=c[e>>2];e=a[o>>0]|0;p=(e&1)==0;d=p?o+1|0:c[o+8>>2]|0;e=d+(p?(e&255)>>>1:c[o+4>>2]|0)|0;c[l>>2]=c[n>>2];c[k>>2]=c[m>>2];b=QA(b,l,k,f,g,h,d,e)|0;i=j;return b|0}function WA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13680)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];XA(a,g+24|0,b,j,f,e);i=h;return c[b>>2]|0}function XA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h+4|0;k=h;a=a+8|0;a=Nc[c[c[a>>2]>>2]&127](a)|0;c[k>>2]=c[e>>2];c[j>>2]=c[k>>2];d=(sF(d,j,a,a+168|0,g,f,0)|0)-a|0;if((d|0)<168)c[b>>2]=((d|0)/12|0|0)%7|0;i=h;return}function YA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13680)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];ZA(a,g+16|0,b,j,f,e);i=h;return c[b>>2]|0}function ZA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h+4|0;k=h;a=a+8|0;a=Nc[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[k>>2]=c[e>>2];c[j>>2]=c[k>>2];d=(sF(d,j,a,a+288|0,g,f,0)|0)-a|0;if((d|0)<288)c[b>>2]=((d|0)/12|0|0)%12|0;i=h;return}function _A(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13680)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];$A(a,g+20|0,b,j,f,e);i=h;return c[b>>2]|0}function $A(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;c[b>>2]=a+-1900}i=h;return}function aB(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;S=i;i=i+144|0;l=S+132|0;k=S+116|0;L=S+128|0;w=S+124|0;H=S+120|0;M=S+112|0;N=S+108|0;O=S+104|0;P=S+100|0;Q=S+96|0;R=S+92|0;m=S+88|0;n=S+84|0;o=S+80|0;p=S+76|0;q=S+72|0;r=S+68|0;s=S+64|0;t=S+60|0;u=S+56|0;v=S+52|0;x=S+48|0;y=S+44|0;z=S+40|0;A=S+36|0;B=S+32|0;C=S+28|0;D=S+24|0;E=S+20|0;F=S+16|0;G=S+12|0;I=S+8|0;J=S+4|0;K=S;c[g>>2]=0;U=ty(f)|0;c[L>>2]=U;L=GD(L,13680)|0;Ox(U)|0;do switch(j<<24>>24|0){case 65:case 97:{c[w>>2]=c[e>>2];c[l>>2]=c[w>>2];XA(b,h+24|0,d,l,g,L);T=26;break}case 104:case 66:case 98:{c[H>>2]=c[e>>2];c[l>>2]=c[H>>2];ZA(b,h+16|0,d,l,g,L);T=26;break}case 99:{T=b+8|0;T=Nc[c[(c[T>>2]|0)+12>>2]&127](T)|0;c[M>>2]=c[d>>2];c[N>>2]=c[e>>2];j=a[T>>0]|0;e=(j&1)==0;U=e?T+1|0:c[T+8>>2]|0;T=U+(e?(j&255)>>>1:c[T+4>>2]|0)|0;c[k>>2]=c[M>>2];c[l>>2]=c[N>>2];c[d>>2]=QA(b,k,l,f,g,h,U,T)|0;T=26;break}case 101:case 100:{c[O>>2]=c[e>>2];c[l>>2]=c[O>>2];bB(b,h+12|0,d,l,g,L);T=26;break}case 68:{c[P>>2]=c[d>>2];c[Q>>2]=c[e>>2];c[k>>2]=c[P>>2];c[l>>2]=c[Q>>2];c[d>>2]=QA(b,k,l,f,g,h,54873,54881)|0;T=26;break}case 70:{c[R>>2]=c[d>>2];c[m>>2]=c[e>>2];c[k>>2]=c[R>>2];c[l>>2]=c[m>>2];c[d>>2]=QA(b,k,l,f,g,h,54881,54889)|0;T=26;break}case 72:{c[n>>2]=c[e>>2];c[l>>2]=c[n>>2];cB(b,h+8|0,d,l,g,L);T=26;break}case 73:{c[o>>2]=c[e>>2];c[l>>2]=c[o>>2];dB(b,h+8|0,d,l,g,L);T=26;break}case 106:{c[p>>2]=c[e>>2];c[l>>2]=c[p>>2];eB(b,h+28|0,d,l,g,L);T=26;break}case 109:{c[q>>2]=c[e>>2];c[l>>2]=c[q>>2];fB(b,h+16|0,d,l,g,L);T=26;break}case 77:{c[r>>2]=c[e>>2];c[l>>2]=c[r>>2];gB(b,h+4|0,d,l,g,L);T=26;break}case 116:case 110:{c[s>>2]=c[e>>2];c[l>>2]=c[s>>2];hB(b,d,l,g,L);T=26;break}case 112:{c[t>>2]=c[e>>2];c[l>>2]=c[t>>2];iB(b,h+8|0,d,l,g,L);T=26;break}case 114:{c[u>>2]=c[d>>2];c[v>>2]=c[e>>2];c[k>>2]=c[u>>2];c[l>>2]=c[v>>2];c[d>>2]=QA(b,k,l,f,g,h,54889,54900)|0;T=26;break}case 82:{c[x>>2]=c[d>>2];c[y>>2]=c[e>>2];c[k>>2]=c[x>>2];c[l>>2]=c[y>>2];c[d>>2]=QA(b,k,l,f,g,h,54900,54905)|0;T=26;break}case 83:{c[z>>2]=c[e>>2];c[l>>2]=c[z>>2];jB(b,h,d,l,g,L);T=26;break}case 84:{c[A>>2]=c[d>>2];c[B>>2]=c[e>>2];c[k>>2]=c[A>>2];c[l>>2]=c[B>>2];c[d>>2]=QA(b,k,l,f,g,h,54905,54913)|0;T=26;break}case 119:{c[C>>2]=c[e>>2];c[l>>2]=c[C>>2];kB(b,h+24|0,d,l,g,L);T=26;break}case 120:{U=c[(c[b>>2]|0)+20>>2]|0;c[D>>2]=c[d>>2];c[E>>2]=c[e>>2];c[k>>2]=c[D>>2];c[l>>2]=c[E>>2];k=Mc[U&63](b,k,l,f,g,h)|0;break}case 88:{T=b+8|0;T=Nc[c[(c[T>>2]|0)+24>>2]&127](T)|0;c[F>>2]=c[d>>2];c[G>>2]=c[e>>2];j=a[T>>0]|0;e=(j&1)==0;U=e?T+1|0:c[T+8>>2]|0;T=U+(e?(j&255)>>>1:c[T+4>>2]|0)|0;c[k>>2]=c[F>>2];c[l>>2]=c[G>>2];c[d>>2]=QA(b,k,l,f,g,h,U,T)|0;T=26;break}case 121:{c[I>>2]=c[e>>2];c[l>>2]=c[I>>2];$A(b,h+20|0,d,l,g,L);T=26;break}case 89:{c[J>>2]=c[e>>2];c[l>>2]=c[J>>2];lB(b,h+20|0,d,l,g,L);T=26;break}case 37:{c[K>>2]=c[e>>2];c[l>>2]=c[K>>2];mB(b,d,l,g,L);T=26;break}default:{c[g>>2]=c[g>>2]|4;T=26}}while(0);if((T|0)==26)k=c[d>>2]|0;i=S;return k|0}function bB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function cB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function dB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function eB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function fB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;i=h;return}function gB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function hB(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=h+8|0;a:while(1){h=c[e>>2]|0;do if(h){if((c[h+12>>2]|0)==(c[h+16>>2]|0))if((Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0)==-1){c[e>>2]=0;h=0;break}else{h=c[e>>2]|0;break}}else h=0;while(0);h=(h|0)==0;a=c[f>>2]|0;do if(a){if((c[a+12>>2]|0)!=(c[a+16>>2]|0))if(h)break;else break a;if((Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)!=-1)if(h)break;else break a;else{c[f>>2]=0;k=12;break}}else k=12;while(0);if((k|0)==12){k=0;if(h){a=0;break}else a=0}h=c[e>>2]|0;i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0))h=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=d[i>>0]|0;if((h&255)<<24>>24<=-1)break;if(!(b[(c[j>>2]|0)+(h<<24>>24<<1)>>1]&8192))break;h=c[e>>2]|0;a=h+12|0;i=c[a>>2]|0;if((i|0)==(c[h+16>>2]|0)){Nc[c[(c[h>>2]|0)+40>>2]&127](h)|0;continue}else{c[a>>2]=i+1;continue}}h=c[e>>2]|0;do if(h){if((c[h+12>>2]|0)==(c[h+16>>2]|0))if((Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0)==-1){c[e>>2]=0;h=0;break}else{h=c[e>>2]|0;break}}else h=0;while(0);h=(h|0)==0;do if(a){if((c[a+12>>2]|0)==(c[a+16>>2]|0)?(Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1:0){c[f>>2]=0;k=32;break}if(!h)k=33}else k=32;while(0);if((k|0)==32?h:0)k=33;if((k|0)==33)c[g>>2]=c[g>>2]|2;return}function iB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;k=n+4|0;l=n;m=b+8|0;m=Nc[c[(c[m>>2]|0)+8>>2]&127](m)|0;b=a[m>>0]|0;if(!(b&1))j=(b&255)>>>1;else j=c[m+4>>2]|0;b=a[m+12>>0]|0;if(!(b&1))b=(b&255)>>>1;else b=c[m+16>>2]|0;do if((j|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=sF(e,k,m,m+24|0,h,g,0)|0;j=c[d>>2]|0;if((b|0)==(m|0)&(j|0)==12){c[d>>2]=0;break}if((j|0)<12&(b-m|0)==12)c[d>>2]=j+12}else c[g>>2]=c[g>>2]|4;while(0);i=n;return}function jB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function kB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function lB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=QF(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;i=h;return}function mB(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a=c[b>>2]|0;do if(a){if((c[a+12>>2]|0)==(c[a+16>>2]|0))if((Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1){c[b>>2]=0;a=0;break}else{a=c[b>>2]|0;break}}else a=0;while(0);h=(a|0)==0;a=c[e>>2]|0;do if(a){if((c[a+12>>2]|0)==(c[a+16>>2]|0)?(Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1:0){c[e>>2]=0;j=11;break}if(h){i=a;j=13}else j=12}else j=11;while(0);if((j|0)==11)if(h)j=12;else{i=0;j=13}a:do if((j|0)==12)c[f>>2]=c[f>>2]|6;else if((j|0)==13){a=c[b>>2]|0;h=c[a+12>>2]|0;if((h|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=d[h>>0]|0;if((Pc[c[(c[g>>2]|0)+36>>2]&63](g,a&255,0)|0)<<24>>24!=37){c[f>>2]=c[f>>2]|4;break}a=c[b>>2]|0;h=a+12|0;g=c[h>>2]|0;if((g|0)==(c[a+16>>2]|0)){Nc[c[(c[a>>2]|0)+40>>2]&127](a)|0;a=c[b>>2]|0;if(!a)a=0;else j=21}else{c[h>>2]=g+1;j=21}do if((j|0)==21)if((c[a+12>>2]|0)==(c[a+16>>2]|0))if((Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1){c[b>>2]=0;a=0;break}else{a=c[b>>2]|0;break}while(0);a=(a|0)==0;do if(i){if((c[i+12>>2]|0)==(c[i+16>>2]|0)?(Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0)==-1:0){c[e>>2]=0;j=30;break}if(a)break a}else j=30;while(0);if((j|0)==30?!a:0)break;c[f>>2]=c[f>>2]|2}while(0);return}function nB(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+32|0;r=w+16|0;q=w+12|0;u=w+8|0;s=w+4|0;t=w;k=ty(e)|0;c[u>>2]=k;u=GD(u,13672)|0;Ox(k)|0;c[f>>2]=0;k=c[b>>2]|0;a:do if((h|0)!=(j|0)){b:while(1){m=k;if(k){l=c[k+12>>2]|0;if((l|0)==(c[k+16>>2]|0))l=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else l=c[l>>2]|0;if((l|0)==-1){c[b>>2]=0;k=0;o=1;p=0}else{o=0;p=m}}else{k=0;o=1;p=m}n=c[d>>2]|0;l=n;do if(n){m=c[n+12>>2]|0;if((m|0)==(c[n+16>>2]|0))m=Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0;else m=c[m>>2]|0;if((m|0)!=-1)if(o)break;else{v=16;break b}else{c[d>>2]=0;l=0;v=14;break}}else v=14;while(0);if((v|0)==14){v=0;if(o){v=16;break}else n=0}c:do if((Pc[c[(c[u>>2]|0)+52>>2]&63](u,c[h>>2]|0,0)|0)<<24>>24==37){m=h+4|0;if((m|0)==(j|0)){v=19;break b}o=Pc[c[(c[u>>2]|0)+52>>2]&63](u,c[m>>2]|0,0)|0;switch(o<<24>>24){case 48:case 69:{n=h+8|0;if((n|0)==(j|0)){v=22;break b}h=m;m=Pc[c[(c[u>>2]|0)+52>>2]&63](u,c[n>>2]|0,0)|0;k=o;break}default:{m=o;k=0}}o=c[(c[a>>2]|0)+36>>2]|0;c[s>>2]=p;c[t>>2]=l;c[q>>2]=c[s>>2];c[r>>2]=c[t>>2];c[b>>2]=Sc[o&15](a,q,r,e,f,g,m,k)|0;h=h+8|0}else{if(!(Pc[c[(c[u>>2]|0)+12>>2]&63](u,8192,c[h>>2]|0)|0)){m=k+12|0;l=c[m>>2]|0;n=k+16|0;if((l|0)==(c[n>>2]|0))l=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else l=c[l>>2]|0;p=Uc[c[(c[u>>2]|0)+28>>2]&63](u,l)|0;if((p|0)!=(Uc[c[(c[u>>2]|0)+28>>2]&63](u,c[h>>2]|0)|0)){v=59;break b}l=c[m>>2]|0;if((l|0)==(c[n>>2]|0))Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;else c[m>>2]=l+4;h=h+4|0;break}do{h=h+4|0;if((h|0)==(j|0)){h=j;break}}while(Pc[c[(c[u>>2]|0)+12>>2]&63](u,8192,c[h>>2]|0)|0);l=n;o=n;while(1){if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0))m=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else m=c[m>>2]|0;if((m|0)==-1){c[b>>2]=0;n=1;k=0}else n=0}else{n=1;k=0}do if(o){m=c[o+12>>2]|0;if((m|0)==(c[o+16>>2]|0))m=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else m=c[m>>2]|0;if((m|0)!=-1)if(n^(l|0)==0){p=l;o=l;break}else break c;else{c[d>>2]=0;l=0;v=42;break}}else v=42;while(0);if((v|0)==42){v=0;if(n)break c;else{p=l;o=0}}m=k+12|0;l=c[m>>2]|0;n=k+16|0;if((l|0)==(c[n>>2]|0))l=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else l=c[l>>2]|0;if(!(Pc[c[(c[u>>2]|0)+12>>2]&63](u,8192,l)|0))break c;l=c[m>>2]|0;if((l|0)==(c[n>>2]|0)){Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;l=p;continue}else{c[m>>2]=l+4;l=p;continue}}}while(0);k=c[b>>2]|0;if(!((h|0)!=(j|0)&(c[f>>2]|0)==0))break a}if((v|0)==16){c[f>>2]=4;break}else if((v|0)==19){c[f>>2]=4;break}else if((v|0)==22){c[f>>2]=4;break}else if((v|0)==59){c[f>>2]=4;k=c[b>>2]|0;break}}while(0);if(k){h=c[k+12>>2]|0;if((h|0)==(c[k+16>>2]|0))h=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else h=c[h>>2]|0;if((h|0)==-1){c[b>>2]=0;k=0;m=1}else m=0}else{k=0;m=1}h=c[d>>2]|0;do if(h){l=c[h+12>>2]|0;if((l|0)==(c[h+16>>2]|0))h=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=c[l>>2]|0;if((h|0)!=-1)if(m)break;else{v=74;break}else{c[d>>2]=0;v=72;break}}else v=72;while(0);if((v|0)==72?m:0)v=74;if((v|0)==74)c[f>>2]=c[f>>2]|2;i=w;return k|0}function oB(a){a=a|0;return}function pB(a){a=a|0;Vt(a);return}function qB(a){a=a|0;return 2}function rB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=nB(a,k,j,e,f,g,14248,14280)|0;i=h;return a|0}function sB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;i=i+16|0;k=j+12|0;l=j+8|0;n=j+4|0;m=j;q=b+8|0;q=Nc[c[(c[q>>2]|0)+20>>2]&127](q)|0;c[n>>2]=c[d>>2];c[m>>2]=c[e>>2];o=a[q>>0]|0;p=(o&1)==0;e=q+4|0;d=p?e:c[q+8>>2]|0;e=d+((p?(o&255)>>>1:c[e>>2]|0)<<2)|0;c[l>>2]=c[n>>2];c[k>>2]=c[m>>2];b=nB(b,l,k,f,g,h,d,e)|0;i=j;return b|0}function tB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13672)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];uB(a,g+24|0,b,j,f,e);i=h;return c[b>>2]|0}function uB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h+4|0;k=h;a=a+8|0;a=Nc[c[c[a>>2]>>2]&127](a)|0;c[k>>2]=c[e>>2];c[j>>2]=c[k>>2];d=(DF(d,j,a,a+168|0,g,f,0)|0)-a|0;if((d|0)<168)c[b>>2]=((d|0)/12|0|0)%7|0;i=h;return}function vB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13672)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];wB(a,g+16|0,b,j,f,e);i=h;return c[b>>2]|0}function wB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;i=i+16|0;j=h+4|0;k=h;a=a+8|0;a=Nc[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[k>>2]=c[e>>2];c[j>>2]=c[k>>2];d=(DF(d,j,a,a+288|0,g,f,0)|0)-a|0;if((d|0)<288)c[b>>2]=((d|0)/12|0|0)%12|0;i=h;return}function xB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+8|0;m=h+4|0;k=h;l=ty(e)|0;c[m>>2]=l;e=GD(m,13672)|0;Ox(l)|0;c[k>>2]=c[d>>2];c[j>>2]=c[k>>2];yB(a,g+20|0,b,j,f,e);i=h;return c[b>>2]|0}function yB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;c[b>>2]=a+-1900}i=h;return}function zB(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;S=i;i=i+144|0;l=S+132|0;k=S+116|0;L=S+128|0;w=S+124|0;H=S+120|0;M=S+112|0;N=S+108|0;O=S+104|0;P=S+100|0;Q=S+96|0;R=S+92|0;m=S+88|0;n=S+84|0;o=S+80|0;p=S+76|0;q=S+72|0;r=S+68|0;s=S+64|0;t=S+60|0;u=S+56|0;v=S+52|0;x=S+48|0;y=S+44|0;z=S+40|0;A=S+36|0;B=S+32|0;C=S+28|0;D=S+24|0;E=S+20|0;F=S+16|0;G=S+12|0;I=S+8|0;J=S+4|0;K=S;c[g>>2]=0;U=ty(f)|0;c[L>>2]=U;L=GD(L,13672)|0;Ox(U)|0;do switch(j<<24>>24|0){case 65:case 97:{c[w>>2]=c[e>>2];c[l>>2]=c[w>>2];uB(b,h+24|0,d,l,g,L);T=26;break}case 104:case 66:case 98:{c[H>>2]=c[e>>2];c[l>>2]=c[H>>2];wB(b,h+16|0,d,l,g,L);T=26;break}case 99:{U=b+8|0;U=Nc[c[(c[U>>2]|0)+12>>2]&127](U)|0;c[M>>2]=c[d>>2];c[N>>2]=c[e>>2];j=a[U>>0]|0;e=(j&1)==0;T=U+4|0;U=e?T:c[U+8>>2]|0;T=U+((e?(j&255)>>>1:c[T>>2]|0)<<2)|0;c[k>>2]=c[M>>2];c[l>>2]=c[N>>2];c[d>>2]=nB(b,k,l,f,g,h,U,T)|0;T=26;break}case 101:case 100:{c[O>>2]=c[e>>2];c[l>>2]=c[O>>2];AB(b,h+12|0,d,l,g,L);T=26;break}case 68:{c[P>>2]=c[d>>2];c[Q>>2]=c[e>>2];c[k>>2]=c[P>>2];c[l>>2]=c[Q>>2];c[d>>2]=nB(b,k,l,f,g,h,14280,14312)|0;T=26;break}case 70:{c[R>>2]=c[d>>2];c[m>>2]=c[e>>2];c[k>>2]=c[R>>2];c[l>>2]=c[m>>2];c[d>>2]=nB(b,k,l,f,g,h,14312,14344)|0;T=26;break}case 72:{c[n>>2]=c[e>>2];c[l>>2]=c[n>>2];BB(b,h+8|0,d,l,g,L);T=26;break}case 73:{c[o>>2]=c[e>>2];c[l>>2]=c[o>>2];CB(b,h+8|0,d,l,g,L);T=26;break}case 106:{c[p>>2]=c[e>>2];c[l>>2]=c[p>>2];DB(b,h+28|0,d,l,g,L);T=26;break}case 109:{c[q>>2]=c[e>>2];c[l>>2]=c[q>>2];EB(b,h+16|0,d,l,g,L);T=26;break}case 77:{c[r>>2]=c[e>>2];c[l>>2]=c[r>>2];FB(b,h+4|0,d,l,g,L);T=26;break}case 116:case 110:{c[s>>2]=c[e>>2];c[l>>2]=c[s>>2];GB(b,d,l,g,L);T=26;break}case 112:{c[t>>2]=c[e>>2];c[l>>2]=c[t>>2];HB(b,h+8|0,d,l,g,L);T=26;break}case 114:{c[u>>2]=c[d>>2];c[v>>2]=c[e>>2];c[k>>2]=c[u>>2];c[l>>2]=c[v>>2];c[d>>2]=nB(b,k,l,f,g,h,14344,14388)|0;T=26;break}case 82:{c[x>>2]=c[d>>2];c[y>>2]=c[e>>2];c[k>>2]=c[x>>2];c[l>>2]=c[y>>2];c[d>>2]=nB(b,k,l,f,g,h,14388,14408)|0;T=26;break}case 83:{c[z>>2]=c[e>>2];c[l>>2]=c[z>>2];IB(b,h,d,l,g,L);T=26;break}case 84:{c[A>>2]=c[d>>2];c[B>>2]=c[e>>2];c[k>>2]=c[A>>2];c[l>>2]=c[B>>2];c[d>>2]=nB(b,k,l,f,g,h,14408,14440)|0;T=26;break}case 119:{c[C>>2]=c[e>>2];c[l>>2]=c[C>>2];JB(b,h+24|0,d,l,g,L);T=26;break}case 120:{U=c[(c[b>>2]|0)+20>>2]|0;c[D>>2]=c[d>>2];c[E>>2]=c[e>>2];c[k>>2]=c[D>>2];c[l>>2]=c[E>>2];k=Mc[U&63](b,k,l,f,g,h)|0;break}case 88:{U=b+8|0;U=Nc[c[(c[U>>2]|0)+24>>2]&127](U)|0;c[F>>2]=c[d>>2];c[G>>2]=c[e>>2];j=a[U>>0]|0;e=(j&1)==0;T=U+4|0;U=e?T:c[U+8>>2]|0;T=U+((e?(j&255)>>>1:c[T>>2]|0)<<2)|0;c[k>>2]=c[F>>2];c[l>>2]=c[G>>2];c[d>>2]=nB(b,k,l,f,g,h,U,T)|0;T=26;break}case 121:{c[I>>2]=c[e>>2];c[l>>2]=c[I>>2];yB(b,h+20|0,d,l,g,L);T=26;break}case 89:{c[J>>2]=c[e>>2];c[l>>2]=c[J>>2];KB(b,h+20|0,d,l,g,L);T=26;break}case 37:{c[K>>2]=c[e>>2];c[l>>2]=c[K>>2];LB(b,d,l,g,L);T=26;break}default:{c[g>>2]=c[g>>2]|4;T=26}}while(0);if((T|0)==26)k=c[d>>2]|0;i=S;return k|0}function AB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function BB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function CB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function DB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function EB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;i=h;return}function FB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function GB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:while(1){a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if((a|0)==-1){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=c[a>>2]|0;if((a|0)!=-1)if(h){h=g;break}else{h=g;break a}else{c[d>>2]=0;i=15;break}}else i=15;while(0);if((i|0)==15){i=0;if(h){h=0;break}else h=0}a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if(!(Pc[c[(c[f>>2]|0)+12>>2]&63](f,8192,a)|0))break;a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0)){Nc[c[(c[a>>2]|0)+40>>2]&127](a)|0;continue}else{c[g>>2]=h+4;continue}}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if((a|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){a=c[h+12>>2]|0;if((a|0)==(c[h+16>>2]|0))a=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else a=c[a>>2]|0;if((a|0)!=-1)if(g)break;else{i=39;break}else{c[d>>2]=0;i=37;break}}else i=37;while(0);if((i|0)==37?g:0)i=39;if((i|0)==39)c[e>>2]=c[e>>2]|2;return}function HB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;k=n+4|0;l=n;m=b+8|0;m=Nc[c[(c[m>>2]|0)+8>>2]&127](m)|0;b=a[m>>0]|0;if(!(b&1))j=(b&255)>>>1;else j=c[m+4>>2]|0;b=a[m+12>>0]|0;if(!(b&1))b=(b&255)>>>1;else b=c[m+16>>2]|0;do if((j|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=DF(e,k,m,m+24|0,h,g,0)|0;j=c[d>>2]|0;if((b|0)==(m|0)&(j|0)==12){c[d>>2]=0;break}if((j|0)<12&(b-m|0)==12)c[d>>2]=j+12}else c[g>>2]=c[g>>2]|4;while(0);i=n;return}function IB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function JB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;i=h;return}function KB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;i=i+16|0;a=h+4|0;j=h;c[j>>2]=c[e>>2];c[a>>2]=c[j>>2];a=RF(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;i=h;return}function LB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if((a|0)==-1){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=c[a>>2]|0;if((a|0)!=-1)if(h){i=g;j=17;break}else{j=16;break}else{c[d>>2]=0;j=14;break}}else j=14;while(0);if((j|0)==14)if(h)j=16;else{i=0;j=17}a:do if((j|0)==16)c[e>>2]=c[e>>2]|6;else if((j|0)==17){a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if((Pc[c[(c[f>>2]|0)+52>>2]&63](f,a,0)|0)<<24>>24!=37){c[e>>2]=c[e>>2]|4;break}a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0)){Nc[c[(c[a>>2]|0)+40>>2]&127](a)|0;a=c[b>>2]|0;if(!a)g=1;else j=25}else{c[g>>2]=h+4;j=25}do if((j|0)==25){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=c[g>>2]|0;if((a|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}while(0);do if(i){a=c[i+12>>2]|0;if((a|0)==(c[i+16>>2]|0))a=Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0;else a=c[a>>2]|0;if((a|0)!=-1)if(g)break a;else break;else{c[d>>2]=0;j=37;break}}else j=37;while(0);if((j|0)==37?!g:0)break;c[e>>2]=c[e>>2]|2}while(0);return}function MB(a){a=a|0;NB(a+8|0);return}function NB(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)!=(Wz()|0))Zu(c[a>>2]|0);return}function OB(a){a=a|0;NB(a+8|0);Vt(a);return}function PB(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;l=i;i=i+112|0;k=l+4|0;e=l;c[e>>2]=k+100;QB(b+8|0,k,e,g,h,j);g=c[e>>2]|0;e=c[d>>2]|0;if((k|0)!=(g|0))do{j=a[k>>0]|0;do if(e){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){d=(Uc[c[(c[e>>2]|0)+52>>2]&63](e,j&255)|0)==-1;e=d?0:e;break}else{c[f>>2]=h+1;a[h>>0]=j;break}}else e=0;while(0);k=k+1|0}while((k|0)!=(g|0));i=l;return e|0}function QB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;a[l>>0]=37;j=l+1|0;a[j>>0]=g;k=l+2|0;a[k>>0]=h;a[l+3>>0]=0;if(h<<24>>24){a[j>>0]=h;a[k>>0]=g}c[e>>2]=d+(kc(d|0,(c[e>>2]|0)-d|0,l|0,f|0,c[b>>2]|0)|0);i=m;return}function RB(a){a=a|0;NB(a+8|0);return}function SB(a){a=a|0;NB(a+8|0);Vt(a);return}function TB(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0;j=i;i=i+416|0;e=j+8|0;d=j;c[d>>2]=e+400;UB(a+8|0,e,d,f,g,h);a=c[d>>2]|0;d=c[b>>2]|0;if((e|0)!=(a|0)){f=e;do{e=c[f>>2]|0;if(!d)d=0;else{g=d+24|0;h=c[g>>2]|0;if((h|0)==(c[d+28>>2]|0))e=Uc[c[(c[d>>2]|0)+52>>2]&63](d,e)|0;else{c[g>>2]=h+4;c[h>>2]=e}d=(e|0)==-1?0:d}f=f+4|0}while((f|0)!=(a|0))}i=j;return d|0}function UB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+128|0;l=h+16|0;m=h+12|0;j=h;k=h+8|0;c[m>>2]=l+100;QB(a,l,m,e,f,g);g=j;c[g>>2]=0;c[g+4>>2]=0;c[k>>2]=l;g=(c[d>>2]|0)-b>>2;f=bv(c[a>>2]|0)|0;g=sv(b,k,g,j)|0;if(f)bv(f)|0;c[d>>2]=b+(g<<2);i=h;return}function VB(a){a=a|0;return}function WB(a){a=a|0;Vt(a);return}function XB(a){a=a|0;return 127}function YB(a){a=a|0;return 127}function ZB(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function _B(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function $B(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function aC(a,b){a=a|0;b=b|0;Xx(a,1,45);return}function bC(a){a=a|0;return 0}function cC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function dC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function eC(a){a=a|0;return}function fC(a){a=a|0;Vt(a);return}function gC(a){a=a|0;return 127}function hC(a){a=a|0;return 127}function iC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function jC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function kC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function lC(a,b){a=a|0;b=b|0;Xx(a,1,45);return}function mC(a){a=a|0;return 0}function nC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function oC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function pC(a){a=a|0;return}function qC(a){a=a|0;Vt(a);return}function rC(a){a=a|0;return 2147483647}function sC(a){a=a|0;return 2147483647}function tC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function uC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function vC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function wC(a,b){a=a|0;b=b|0;gy(a,1,45);return}function xC(a){a=a|0;return 0}function yC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function zC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function AC(a){a=a|0;return}function BC(a){a=a|0;Vt(a);return}function CC(a){a=a|0;return 2147483647}function DC(a){a=a|0;return 2147483647}function EC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function FC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function GC(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function HC(a,b){a=a|0;b=b|0;gy(a,1,45);return}function IC(a){a=a|0;return 0}function JC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function KC(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function LC(a){a=a|0;return}function MC(a){a=a|0;Vt(a);return}function NC(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+240|0;x=E+24|0;y=E;u=E+136|0;D=E+16|0;w=E+12|0;A=E+8|0;k=E+134|0;s=E+4|0;v=E+124|0;c[D>>2]=u;C=D+4|0;c[C>>2]=147;c[A>>2]=ty(g)|0;b=GD(A,13680)|0;a[k>>0]=0;c[s>>2]=c[e>>2];t=c[g+4>>2]|0;c[x>>2]=c[s>>2];if(PC(d,x,f,A,t,h,k,b,D,w,u+100|0)|0){Xc[c[(c[b>>2]|0)+32>>2]&15](b,54913,54923,v)|0;f=c[w>>2]|0;g=c[D>>2]|0;b=f-g|0;if((b|0)>98){b=cx(b+2|0)|0;if(!b)Eu();else{z=b;l=b}}else{z=0;l=x}if(!(a[k>>0]|0))b=l;else{a[l>>0]=45;b=l+1|0}t=v+10|0;u=v;if(g>>>0>>0){k=v+1|0;l=k+1|0;m=l+1|0;n=m+1|0;o=n+1|0;p=o+1|0;q=p+1|0;r=q+1|0;s=r+1|0;do{f=a[g>>0]|0;if((a[v>>0]|0)!=f<<24>>24)if((a[k>>0]|0)!=f<<24>>24)if((a[l>>0]|0)!=f<<24>>24)if((a[m>>0]|0)!=f<<24>>24)if((a[n>>0]|0)!=f<<24>>24)if((a[o>>0]|0)!=f<<24>>24)if((a[p>>0]|0)!=f<<24>>24)if((a[q>>0]|0)!=f<<24>>24)if((a[r>>0]|0)==f<<24>>24)f=r;else f=(a[s>>0]|0)==f<<24>>24?s:t;else f=q;else f=p;else f=o;else f=n;else f=m;else f=l;else f=k;else f=v;a[b>>0]=a[54913+(f-u)>>0]|0;g=g+1|0;b=b+1|0}while(g>>>0<(c[w>>2]|0)>>>0)}a[b>>0]=0;c[y>>2]=j;fw(x,54924,y)|0;if(z)dx(z)}b=c[d>>2]|0;do if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0))if((Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1){c[d>>2]=0;b=0;break}else{b=c[d>>2]|0;break}}else b=0;while(0);b=(b|0)==0;f=c[e>>2]|0;do if(f){if((c[f+12>>2]|0)==(c[f+16>>2]|0)?(Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0)==-1:0){c[e>>2]=0;B=25;break}if(!b)B=26}else B=25;while(0);if((B|0)==25?b:0)B=26;if((B|0)==26)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;Ox(c[A>>2]|0)|0;b=c[D>>2]|0;c[D>>2]=0;if(b)Kc[c[C>>2]&255](b);i=E;return f|0}function OC(a){a=a|0;return}function PC(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ca=i;i=i+512|0;O=ca+88|0;t=ca+96|0;ba=ca+80|0;S=ca+72|0;R=ca+68|0;T=ca+500|0;P=ca+497|0;U=ca+496|0;Y=ca+56|0;aa=ca+44|0;_=ca+32|0;Z=ca+20|0;$=ca+8|0;Q=ca+4|0;W=ca;c[O>>2]=p;c[ba>>2]=t;X=ba+4|0;c[X>>2]=147;c[S>>2]=t;c[R>>2]=t+400;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[aa>>2]=0;c[aa+4>>2]=0;c[aa+8>>2]=0;c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;c[Z>>2]=0;c[Z+4>>2]=0;c[Z+8>>2]=0;c[$>>2]=0;c[$+4>>2]=0;c[$+8>>2]=0;SC(g,h,T,P,U,Y,aa,_,Z,Q);c[o>>2]=c[n>>2];H=m+8|0;I=_+4|0;J=Z+4|0;K=Z+8|0;L=Z+1|0;M=_+8|0;N=_+1|0;x=(j&512|0)!=0;y=aa+8|0;z=aa+1|0;A=aa+4|0;B=$+4|0;C=$+8|0;D=$+1|0;E=T+3|0;F=Y+4|0;G=0;s=0;a:while(1){p=c[e>>2]|0;do if(p){if((c[p+12>>2]|0)==(c[p+16>>2]|0))if((Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0)==-1){c[e>>2]=0;p=0;break}else{p=c[e>>2]|0;break}}else p=0;while(0);p=(p|0)==0;m=c[f>>2]|0;do if(m){if((c[m+12>>2]|0)!=(c[m+16>>2]|0))if(p)break;else{V=202;break a}if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)!=-1)if(p)break;else{V=202;break a}else{c[f>>2]=0;V=12;break}}else V=12;while(0);if((V|0)==12){V=0;if(p){V=202;break}else m=0}b:do switch(a[T+G>>0]|0){case 1:{if((G|0)!=3){p=c[e>>2]|0;g=c[p+12>>2]|0;if((g|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0;else p=d[g>>0]|0;if((p&255)<<24>>24<=-1){V=26;break a}if(!(b[(c[H>>2]|0)+(p<<24>>24<<1)>>1]&8192)){V=26;break a}p=c[e>>2]|0;g=p+12|0;h=c[g>>2]|0;if((h|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else{c[g>>2]=h+1;p=d[h>>0]|0}cy($,p&255);p=m;g=m;V=28}break}case 0:{if((G|0)!=3){p=m;g=m;V=28}break}case 3:{h=a[_>>0]|0;p=(h&1)==0?(h&255)>>>1:c[I>>2]|0;g=a[Z>>0]|0;g=(g&1)==0?(g&255)>>>1:c[J>>2]|0;if((p|0)!=(0-g|0)){j=(p|0)==0;q=c[e>>2]|0;r=c[q+12>>2]|0;p=c[q+16>>2]|0;m=(r|0)==(p|0);if(j|(g|0)==0){if(m)p=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;else p=d[r>>0]|0;p=p&255;if(j){if(p<<24>>24!=(a[((a[Z>>0]&1)==0?L:c[K>>2]|0)>>0]|0))break b;p=c[e>>2]|0;m=p+12|0;g=c[m>>2]|0;if((g|0)==(c[p+16>>2]|0))Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else c[m>>2]=g+1;a[l>>0]=1;w=a[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:c[J>>2]|0)>>>0>1?Z:s;break b}if(p<<24>>24!=(a[((a[_>>0]&1)==0?N:c[M>>2]|0)>>0]|0)){a[l>>0]=1;break b}p=c[e>>2]|0;m=p+12|0;g=c[m>>2]|0;if((g|0)==(c[p+16>>2]|0))Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else c[m>>2]=g+1;w=a[_>>0]|0;s=((w&1)==0?(w&255)>>>1:c[I>>2]|0)>>>0>1?_:s;break b}if(m){j=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;p=c[e>>2]|0;h=a[_>>0]|0;q=p;g=c[p+12>>2]|0;p=c[p+16>>2]|0}else{j=d[r>>0]|0;g=r}m=q+12|0;p=(g|0)==(p|0);if((j&255)<<24>>24==(a[((h&1)==0?N:c[M>>2]|0)>>0]|0)){if(p)Nc[c[(c[q>>2]|0)+40>>2]&127](q)|0;else c[m>>2]=g+1;w=a[_>>0]|0;s=((w&1)==0?(w&255)>>>1:c[I>>2]|0)>>>0>1?_:s;break b}if(p)p=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;else p=d[g>>0]|0;if((p&255)<<24>>24!=(a[((a[Z>>0]&1)==0?L:c[K>>2]|0)>>0]|0)){V=82;break a}p=c[e>>2]|0;m=p+12|0;g=c[m>>2]|0;if((g|0)==(c[p+16>>2]|0))Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else c[m>>2]=g+1;a[l>>0]=1;w=a[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:c[J>>2]|0)>>>0>1?Z:s}break}case 2:{if(!(G>>>0<2|(s|0)!=0)?!(x|(G|0)==2&(a[E>>0]|0)!=0):0){s=0;break b}v=a[aa>>0]|0;p=(v&1)==0;w=c[y>>2]|0;h=p?z:w;u=h;c:do if((G|0)!=0?(d[T+(G+-1)>>0]|0)<2:0){r=p?(v&255)>>>1:c[A>>2]|0;j=h+r|0;q=c[H>>2]|0;d:do if(!r)g=u;else{r=h;g=u;do{p=a[r>>0]|0;if(p<<24>>24<=-1)break d;if(!(b[q+(p<<24>>24<<1)>>1]&8192))break d;r=r+1|0;g=r}while((r|0)!=(j|0))}while(0);j=g-u|0;q=a[$>>0]|0;p=(q&1)==0;q=p?(q&255)>>>1:c[B>>2]|0;if(q>>>0>=j>>>0){p=p?D:c[C>>2]|0;r=p+q|0;if((g|0)!=(u|0)){p=p+(q-j)|0;while(1){if((a[p>>0]|0)!=(a[h>>0]|0)){g=u;break c}p=p+1|0;if((p|0)==(r|0))break;else h=h+1|0}}}else g=u}else g=u;while(0);p=(v&1)==0;p=(p?z:w)+(p?(v&255)>>>1:c[A>>2]|0)|0;e:do if((g|0)!=(p|0)){j=m;h=m;p=g;while(1){m=c[e>>2]|0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0))if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1){c[e>>2]=0;m=0;break}else{m=c[e>>2]|0;break}}else m=0;while(0);g=(m|0)==0;do if(h){if((c[h+12>>2]|0)!=(c[h+16>>2]|0))if(g){m=j;q=h;break}else break e;if((Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0)!=-1)if(g^(j|0)==0){m=j;q=j;break}else break e;else{c[f>>2]=0;m=0;V=107;break}}else{m=j;V=107}while(0);if((V|0)==107){V=0;if(g)break e;else q=0}g=c[e>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=d[h>>0]|0;if((g&255)<<24>>24!=(a[p>>0]|0))break e;g=c[e>>2]|0;h=g+12|0;j=c[h>>2]|0;if((j|0)==(c[g+16>>2]|0))Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;else c[h>>2]=j+1;p=p+1|0;g=a[aa>>0]|0;w=(g&1)==0;g=(w?z:c[y>>2]|0)+(w?(g&255)>>>1:c[A>>2]|0)|0;if((p|0)==(g|0)){p=g;break}else{j=m;h=q}}}while(0);if(x?(w=a[aa>>0]|0,v=(w&1)==0,(p|0)!=((v?z:c[y>>2]|0)+(v?(w&255)>>>1:c[A>>2]|0)|0)):0){V=119;break a}break}case 4:{r=a[U>>0]|0;j=m;h=m;p=0;f:while(1){m=c[e>>2]|0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0))if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1){c[e>>2]=0;m=0;break}else{m=c[e>>2]|0;break}}else m=0;while(0);g=(m|0)==0;do if(h){if((c[h+12>>2]|0)!=(c[h+16>>2]|0))if(g){m=j;q=h;break}else{m=j;break f}if((Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0)!=-1)if(g^(j|0)==0){m=j;q=j;break}else{m=j;break f}else{c[f>>2]=0;m=0;V=130;break}}else{m=j;V=130}while(0);if((V|0)==130){V=0;if(g)break;else q=0}g=c[e>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=d[h>>0]|0;h=g&255;if(h<<24>>24>-1?(b[(c[H>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0:0){g=c[o>>2]|0;if((g|0)==(c[O>>2]|0)){SF(n,o,O);g=c[o>>2]|0}c[o>>2]=g+1;a[g>>0]=h;p=p+1|0}else{w=a[Y>>0]|0;if(!(h<<24>>24==r<<24>>24&((p|0)!=0?(((w&1)==0?(w&255)>>>1:c[F>>2]|0)|0)!=0:0)))break;if((t|0)==(c[R>>2]|0)){TF(ba,S,R);t=c[S>>2]|0}w=t+4|0;c[S>>2]=w;c[t>>2]=p;t=w;p=0}g=c[e>>2]|0;h=g+12|0;j=c[h>>2]|0;if((j|0)==(c[g+16>>2]|0)){Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;j=m;h=q;continue}else{c[h>>2]=j+1;j=m;h=q;continue}}if((p|0)!=0?(c[ba>>2]|0)!=(t|0):0){if((t|0)==(c[R>>2]|0)){TF(ba,S,R);t=c[S>>2]|0}w=t+4|0;c[S>>2]=w;c[t>>2]=p;t=w}q=c[Q>>2]|0;if((q|0)>0){p=c[e>>2]|0;do if(p){if((c[p+12>>2]|0)==(c[p+16>>2]|0))if((Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0)==-1){c[e>>2]=0;p=0;break}else{p=c[e>>2]|0;break}}else p=0;while(0);p=(p|0)==0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[f>>2]=0;V=162;break}if(p)h=m;else{V=167;break a}}else V=162;while(0);if((V|0)==162){V=0;if(p){V=167;break a}else h=0}p=c[e>>2]|0;m=c[p+12>>2]|0;if((m|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0;else p=d[m>>0]|0;if((p&255)<<24>>24!=(a[P>>0]|0)){V=167;break a}p=c[e>>2]|0;m=p+12|0;g=c[m>>2]|0;if((g|0)==(c[p+16>>2]|0))Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else c[m>>2]=g+1;if((q|0)>0){j=h;g=h;while(1){p=c[e>>2]|0;do if(p){if((c[p+12>>2]|0)==(c[p+16>>2]|0))if((Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0)==-1){c[e>>2]=0;p=0;break}else{p=c[e>>2]|0;break}}else p=0;while(0);m=(p|0)==0;do if(g){if((c[g+12>>2]|0)!=(c[g+16>>2]|0))if(m){p=j;r=g;break}else{V=189;break a}if((Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0)!=-1)if(m^(j|0)==0){p=j;r=j;break}else{V=189;break a}else{c[f>>2]=0;p=0;V=182;break}}else{p=j;V=182}while(0);if((V|0)==182){V=0;if(m){V=189;break a}else r=0}m=c[e>>2]|0;g=c[m+12>>2]|0;if((g|0)==(c[m+16>>2]|0))m=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else m=d[g>>0]|0;if((m&255)<<24>>24<=-1){V=189;break a}if(!(b[(c[H>>2]|0)+(m<<24>>24<<1)>>1]&2048)){V=189;break a}if((c[o>>2]|0)==(c[O>>2]|0))SF(n,o,O);m=c[e>>2]|0;g=c[m+12>>2]|0;if((g|0)==(c[m+16>>2]|0))m=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else m=d[g>>0]|0;g=c[o>>2]|0;c[o>>2]=g+1;a[g>>0]=m;m=q;q=q+-1|0;c[Q>>2]=q;g=c[e>>2]|0;h=g+12|0;j=c[h>>2]|0;if((j|0)==(c[g+16>>2]|0))Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;else c[h>>2]=j+1;if((m|0)<=1)break;else{j=p;g=r}}}}if((c[o>>2]|0)==(c[n>>2]|0)){V=200;break a}break}default:{}}while(0);g:do if((V|0)==28)while(1){V=0;m=c[e>>2]|0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0))if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1){c[e>>2]=0;m=0;break}else{m=c[e>>2]|0;break}}else m=0;while(0);m=(m|0)==0;do if(g){if((c[g+12>>2]|0)!=(c[g+16>>2]|0))if(m){j=p;h=g;break}else break g;if((Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0)!=-1)if(m^(p|0)==0){j=p;h=p;break}else break g;else{c[f>>2]=0;p=0;V=38;break}}else V=38;while(0);if((V|0)==38){V=0;if(m)break g;else{j=p;h=0}}p=c[e>>2]|0;m=c[p+12>>2]|0;if((m|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0;else p=d[m>>0]|0;if((p&255)<<24>>24<=-1)break g;if(!(b[(c[H>>2]|0)+(p<<24>>24<<1)>>1]&8192))break g;p=c[e>>2]|0;m=p+12|0;g=c[m>>2]|0;if((g|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+40>>2]&127](p)|0;else{c[m>>2]=g+1;p=d[g>>0]|0}cy($,p&255);p=j;g=h;V=28}while(0);G=G+1|0;if(G>>>0>=4){V=202;break}}h:do if((V|0)==26){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==82){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==119){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==167){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==189){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==200){c[k>>2]=c[k>>2]|4;m=0}else if((V|0)==202){i:do if(s){j=s+1|0;q=s+8|0;r=s+4|0;g=1;j:while(1){p=a[s>>0]|0;if(!(p&1))p=(p&255)>>>1;else p=c[r>>2]|0;if(g>>>0>=p>>>0)break i;p=c[e>>2]|0;do if(p){if((c[p+12>>2]|0)==(c[p+16>>2]|0))if((Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0)==-1){c[e>>2]=0;p=0;break}else{p=c[e>>2]|0;break}}else p=0;while(0);p=(p|0)==0;m=c[f>>2]|0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[f>>2]=0;V=218;break}if(!p)break j}else V=218;while(0);if((V|0)==218?(V=0,p):0)break;p=c[e>>2]|0;m=c[p+12>>2]|0;if((m|0)==(c[p+16>>2]|0))p=Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0;else p=d[m>>0]|0;if(!(a[s>>0]&1))m=j;else m=c[q>>2]|0;if((p&255)<<24>>24!=(a[m+g>>0]|0))break;p=g+1|0;m=c[e>>2]|0;g=m+12|0;h=c[g>>2]|0;if((h|0)==(c[m+16>>2]|0)){Nc[c[(c[m>>2]|0)+40>>2]&127](m)|0;g=p;continue}else{c[g>>2]=h+1;g=p;continue}}c[k>>2]=c[k>>2]|4;m=0;break h}while(0);p=c[ba>>2]|0;if((p|0)!=(t|0)?(c[W>>2]=0,TC(Y,p,t,W),(c[W>>2]|0)!=0):0){c[k>>2]=c[k>>2]|4;m=0}else m=1}while(0);Yx($);Yx(Z);Yx(_);Yx(aa);Yx(Y);p=c[ba>>2]|0;c[ba>>2]=0;if(p)Kc[c[X>>2]&255](p);i=ca;return m|0}function QC(a){a=a|0;return}function RC(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=i;i=i+144|0;v=s+24|0;t=s+32|0;r=s+16|0;l=s+8|0;u=s+4|0;k=s+28|0;m=s;c[r>>2]=t;q=r+4|0;c[q>>2]=147;o=ty(g)|0;c[u>>2]=o;b=GD(u,13680)|0;a[k>>0]=0;n=c[e>>2]|0;c[m>>2]=n;g=c[g+4>>2]|0;c[v>>2]=c[m>>2];m=n;if(PC(d,v,f,u,g,h,k,b,r,l,t+100|0)|0){if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}if(a[k>>0]|0)cy(j,Uc[c[(c[b>>2]|0)+28>>2]&63](b,45)|0);k=Uc[c[(c[b>>2]|0)+28>>2]&63](b,48)|0;b=c[r>>2]|0;f=c[l>>2]|0;g=f+-1|0;a:do if(b>>>0>>0)do{if((a[b>>0]|0)!=k<<24>>24)break a;b=b+1|0}while(b>>>0>>0);while(0);UF(j,b,f)|0}b=c[d>>2]|0;do if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0))if((Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1){c[d>>2]=0;b=0;break}else{b=c[d>>2]|0;break}}else b=0;while(0);b=(b|0)==0;do if(n){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](m)|0)==-1:0){c[e>>2]=0;p=21;break}if(!b)p=22}else p=21;while(0);if((p|0)==21?b:0)p=22;if((p|0)==22)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;Ox(o)|0;b=c[r>>2]|0;c[r>>2]=0;if(b)Kc[c[q>>2]&255](b);i=s;return g|0}function SC(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+112|0;n=x+100|0;o=x+88|0;p=x+76|0;q=x+64|0;r=x+52|0;s=x+48|0;t=x+36|0;u=x+24|0;v=x+12|0;w=x;if(b){b=GD(d,13288)|0;Lc[c[(c[b>>2]|0)+44>>2]&63](n,b);w=c[n>>2]|0;a[e>>0]=w;a[e+1>>0]=w>>8;a[e+2>>0]=w>>16;a[e+3>>0]=w>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](o,b);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;Yx(o);Lc[c[(c[b>>2]|0)+28>>2]&63](p,b);if(!(a[k>>0]&1)){a[k+1>>0]=0;a[k>>0]=0}else{a[c[k+8>>2]>>0]=0;c[k+4>>2]=0}by(k,0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;Yx(p);a[f>>0]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;a[g>>0]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](q,b);if(!(a[h>>0]&1)){a[h+1>>0]=0;a[h>>0]=0}else{a[c[h+8>>2]>>0]=0;c[h+4>>2]=0}by(h,0);c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;Yx(q);Lc[c[(c[b>>2]|0)+24>>2]&63](r,b);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;Yx(r);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}else{b=GD(d,13224)|0;Lc[c[(c[b>>2]|0)+44>>2]&63](s,b);s=c[s>>2]|0;a[e>>0]=s;a[e+1>>0]=s>>8;a[e+2>>0]=s>>16;a[e+3>>0]=s>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](t,b);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;Yx(t);Lc[c[(c[b>>2]|0)+28>>2]&63](u,b);if(!(a[k>>0]&1)){a[k+1>>0]=0;a[k>>0]=0}else{a[c[k+8>>2]>>0]=0;c[k+4>>2]=0}by(k,0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;Yx(u);a[f>>0]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;a[g>>0]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](v,b);if(!(a[h>>0]&1)){a[h+1>>0]=0;a[h>>0]=0}else{a[c[h+8>>2]>>0]=0;c[h+4>>2]=0}by(h,0);c[h>>2]=c[v>>2];c[h+4>>2]=c[v+4>>2];c[h+8>>2]=c[v+8>>2];c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;Yx(v);Lc[c[(c[b>>2]|0)+24>>2]&63](w,b);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[w>>2];c[j+4>>2]=c[w+4>>2];c[j+8>>2]=c[w+8>>2];c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;Yx(w);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}c[m>>2]=b;i=x;return}function TC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=a[b>>0]|0;i=b+4|0;h=c[i>>2]|0;a:do if(((g&1)==0?(g&255)>>>1:h)|0){if((d|0)!=(e|0)){g=e+-4|0;if(g>>>0>d>>>0){h=d;do{j=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=j;h=h+4|0;g=g+-4|0}while(h>>>0>>0)}g=a[b>>0]|0;h=c[i>>2]|0}j=(g&1)==0;i=j?b+1|0:c[b+8>>2]|0;e=e+-4|0;b=i+(j?(g&255)>>>1:h)|0;h=a[i>>0]|0;g=h<<24>>24<1|h<<24>>24==127;b:do if(e>>>0>d>>>0){while(1){if(!g?(h<<24>>24|0)!=(c[d>>2]|0):0)break;i=(b-i|0)>1?i+1|0:i;d=d+4|0;h=a[i>>0]|0;g=h<<24>>24<1|h<<24>>24==127;if(d>>>0>=e>>>0)break b}c[f>>2]=4;break a}while(0);if(!g?((c[e>>2]|0)+-1|0)>>>0>=h<<24>>24>>>0:0)c[f>>2]=4}while(0);return}function UC(a){a=a|0;return}function VC(a){a=a|0;Vt(a);return}function WC(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+576|0;v=E+424|0;y=E;u=E+24|0;D=E+16|0;w=E+12|0;A=E+8|0;k=E+464|0;s=E+4|0;x=E+468|0;c[D>>2]=u;C=D+4|0;c[C>>2]=147;c[A>>2]=ty(g)|0;b=GD(A,13672)|0;a[k>>0]=0;c[s>>2]=c[e>>2];t=c[g+4>>2]|0;c[v>>2]=c[s>>2];if(XC(d,v,f,A,t,h,k,b,D,w,u+400|0)|0){Xc[c[(c[b>>2]|0)+48>>2]&15](b,54928,54938,v)|0;f=c[w>>2]|0;g=c[D>>2]|0;b=f-g|0;if((b|0)>392){b=cx((b>>2)+2|0)|0;if(!b)Eu();else{z=b;l=b}}else{z=0;l=x}if(!(a[k>>0]|0))b=l;else{a[l>>0]=45;b=l+1|0}t=v+40|0;u=v;if(g>>>0>>0){k=v+4|0;l=k+4|0;m=l+4|0;n=m+4|0;o=n+4|0;p=o+4|0;q=p+4|0;r=q+4|0;s=r+4|0;do{f=c[g>>2]|0;if((c[v>>2]|0)!=(f|0))if((c[k>>2]|0)!=(f|0))if((c[l>>2]|0)!=(f|0))if((c[m>>2]|0)!=(f|0))if((c[n>>2]|0)!=(f|0))if((c[o>>2]|0)!=(f|0))if((c[p>>2]|0)!=(f|0))if((c[q>>2]|0)!=(f|0))if((c[r>>2]|0)==(f|0))f=r;else f=(c[s>>2]|0)==(f|0)?s:t;else f=q;else f=p;else f=o;else f=n;else f=m;else f=l;else f=k;else f=v;a[b>>0]=a[54928+(f-u>>2)>>0]|0;g=g+4|0;b=b+1|0}while(g>>>0<(c[w>>2]|0)>>>0)}a[b>>0]=0;c[y>>2]=j;fw(x,54924,y)|0;if(z)dx(z)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=c[f>>2]|0;if((b|0)==-1){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=c[f>>2]|0;if((b|0)!=-1)if(g)break;else{B=30;break}else{c[e>>2]=0;B=28;break}}else B=28;while(0);if((B|0)==28?g:0)B=30;if((B|0)==30)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;Ox(c[A>>2]|0)|0;b=c[D>>2]|0;c[D>>2]=0;if(b)Kc[c[C>>2]&255](b);i=E;return f|0}function XC(b,e,f,g,h,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Z=i;i=i+512|0;J=Z+96|0;s=Z+104|0;Y=Z+88|0;N=Z+80|0;M=Z+76|0;O=Z+504|0;K=Z+72|0;P=Z+68|0;T=Z+56|0;X=Z+44|0;V=Z+32|0;U=Z+20|0;W=Z+8|0;L=Z+4|0;R=Z;c[J>>2]=o;c[Y>>2]=s;S=Y+4|0;c[S>>2]=147;c[N>>2]=s;c[M>>2]=s+400;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;ZC(f,g,O,K,P,T,X,V,U,L);c[n>>2]=c[m>>2];F=V+4|0;G=U+4|0;H=U+8|0;I=V+8|0;x=(h&512|0)!=0;y=X+8|0;z=X+4|0;A=W+4|0;B=W+8|0;C=O+3|0;D=T+4|0;E=0;r=0;a:while(1){o=c[b>>2]|0;do if(o){f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);f=c[e>>2]|0;do if(f){o=c[f+12>>2]|0;if((o|0)==(c[f+16>>2]|0))o=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else o=c[o>>2]|0;if((o|0)!=-1)if(g){w=f;break}else{Q=217;break a}else{c[e>>2]=0;Q=15;break}}else Q=15;while(0);if((Q|0)==15){Q=0;if(g){Q=217;break}else w=0}b:do switch(a[O+E>>0]|0){case 1:{if((E|0)!=3){o=c[b>>2]|0;f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if(!(Pc[c[(c[l>>2]|0)+12>>2]&63](l,8192,o)|0)){Q=28;break a}o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[f>>2]=g+4;o=c[g>>2]|0}ly(W,o);o=w;h=w;Q=30}break}case 0:{if((E|0)!=3){o=w;h=w;Q=30}break}case 3:{p=a[V>>0]|0;o=(p&1)==0?(p&255)>>>1:c[F>>2]|0;g=a[U>>0]|0;g=(g&1)==0?(g&255)>>>1:c[G>>2]|0;if((o|0)!=(0-g|0)){h=(o|0)==0;q=c[b>>2]|0;t=c[q+12>>2]|0;o=c[q+16>>2]|0;f=(t|0)==(o|0);if(h|(g|0)==0){if(f)o=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;else o=c[t>>2]|0;if(h){if((o|0)!=(c[((a[U>>0]&1)==0?G:c[H>>2]|0)>>2]|0))break b;o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else c[f>>2]=g+4;a[k>>0]=1;w=a[U>>0]|0;r=((w&1)==0?(w&255)>>>1:c[G>>2]|0)>>>0>1?U:r;break b}if((o|0)!=(c[((a[V>>0]&1)==0?F:c[I>>2]|0)>>2]|0)){a[k>>0]=1;break b}o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else c[f>>2]=g+4;w=a[V>>0]|0;r=((w&1)==0?(w&255)>>>1:c[F>>2]|0)>>>0>1?V:r;break b}if(f){h=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;o=c[b>>2]|0;p=a[V>>0]|0;q=o;g=c[o+12>>2]|0;o=c[o+16>>2]|0}else{h=c[t>>2]|0;g=t}f=q+12|0;o=(g|0)==(o|0);if((h|0)==(c[((p&1)==0?F:c[I>>2]|0)>>2]|0)){if(o)Nc[c[(c[q>>2]|0)+40>>2]&127](q)|0;else c[f>>2]=g+4;w=a[V>>0]|0;r=((w&1)==0?(w&255)>>>1:c[F>>2]|0)>>>0>1?V:r;break b}if(o)o=Nc[c[(c[q>>2]|0)+36>>2]&127](q)|0;else o=c[g>>2]|0;if((o|0)!=(c[((a[U>>0]&1)==0?G:c[H>>2]|0)>>2]|0)){Q=86;break a}o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else c[f>>2]=g+4;a[k>>0]=1;w=a[U>>0]|0;r=((w&1)==0?(w&255)>>>1:c[G>>2]|0)>>>0>1?U:r}break}case 2:{if(!(E>>>0<2|(r|0)!=0)?!(x|(E|0)==2&(a[C>>0]|0)!=0):0){r=0;break b}h=a[X>>0]|0;g=c[y>>2]|0;f=(h&1)==0?z:g;o=f;c:do if((E|0)!=0?(d[O+(E+-1)>>0]|0)<2:0){v=(h&1)==0;d:do if((f|0)!=((v?z:g)+((v?(h&255)>>>1:c[z>>2]|0)<<2)|0)){h=f;while(1){if(!(Pc[c[(c[l>>2]|0)+12>>2]&63](l,8192,c[h>>2]|0)|0))break;h=h+4|0;o=h;f=a[X>>0]|0;g=c[y>>2]|0;v=(f&1)==0;if((h|0)==((v?z:g)+((v?(f&255)>>>1:c[z>>2]|0)<<2)|0)){h=f;break d}}h=a[X>>0]|0;g=c[y>>2]|0}while(0);q=(h&1)==0?z:g;f=q;t=o-f>>2;u=a[W>>0]|0;p=(u&1)==0;u=p?(u&255)>>>1:c[A>>2]|0;if(u>>>0>=t>>>0){p=p?A:c[B>>2]|0;v=p+(u<<2)|0;if(!t)f=o;else{p=p+(u-t<<2)|0;while(1){if((c[p>>2]|0)!=(c[q>>2]|0))break c;p=p+4|0;if((p|0)==(v|0)){f=o;break}else q=q+4|0}}}}else f=o;while(0);o=(h&1)==0;o=(o?z:g)+((o?(h&255)>>>1:c[z>>2]|0)<<2)|0;e:do if((f|0)!=(o|0)){p=w;h=w;o=f;while(1){f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=c[g>>2]|0;if((f|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else f=c[f>>2]|0;if((f|0)!=-1)if(g^(p|0)==0){f=p;q=p;break}else break e;else{c[e>>2]=0;f=0;Q=114;break}}else{f=p;Q=114}while(0);if((Q|0)==114){Q=0;if(g)break e;else q=0}g=c[b>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=c[h>>2]|0;if((g|0)!=(c[o>>2]|0))break e;g=c[b>>2]|0;h=g+12|0;p=c[h>>2]|0;if((p|0)==(c[g+16>>2]|0))Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;else c[h>>2]=p+4;o=o+4|0;g=a[X>>0]|0;w=(g&1)==0;g=(w?z:c[y>>2]|0)+((w?(g&255)>>>1:c[z>>2]|0)<<2)|0;if((o|0)==(g|0)){o=g;break}else{p=f;h=q}}}while(0);if(x?(w=a[X>>0]|0,v=(w&1)==0,(o|0)!=((v?z:c[y>>2]|0)+((v?(w&255)>>>1:c[z>>2]|0)<<2)|0)):0){Q=126;break a}break}case 4:{t=c[P>>2]|0;h=w;p=w;o=0;f:while(1){f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=c[g>>2]|0;if((f|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(p){f=c[p+12>>2]|0;if((f|0)==(c[p+16>>2]|0))f=Nc[c[(c[p>>2]|0)+36>>2]&127](p)|0;else f=c[f>>2]|0;if((f|0)!=-1)if(g^(h|0)==0){f=h;q=h;break}else break f;else{c[e>>2]=0;f=0;Q=140;break}}else{f=h;Q=140}while(0);if((Q|0)==140){Q=0;if(g){h=f;break}else q=0}g=c[b>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))h=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else h=c[h>>2]|0;if(Pc[c[(c[l>>2]|0)+12>>2]&63](l,2048,h)|0){g=c[n>>2]|0;if((g|0)==(c[J>>2]|0)){VF(m,n,J);g=c[n>>2]|0}c[n>>2]=g+4;c[g>>2]=h;o=o+1|0}else{w=a[T>>0]|0;if(!((h|0)==(t|0)&((o|0)!=0?(((w&1)==0?(w&255)>>>1:c[D>>2]|0)|0)!=0:0))){h=f;break}if((s|0)==(c[M>>2]|0)){TF(Y,N,M);s=c[N>>2]|0}w=s+4|0;c[N>>2]=w;c[s>>2]=o;s=w;o=0}g=c[b>>2]|0;h=g+12|0;p=c[h>>2]|0;if((p|0)==(c[g+16>>2]|0)){Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;h=f;p=q;continue}else{c[h>>2]=p+4;h=f;p=q;continue}}if((o|0)!=0?(c[Y>>2]|0)!=(s|0):0){if((s|0)==(c[M>>2]|0)){TF(Y,N,M);s=c[N>>2]|0}w=s+4|0;c[N>>2]=w;c[s>>2]=o;s=w}q=c[L>>2]|0;if((q|0)>0){o=c[b>>2]|0;do if(o){f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)==-1){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=c[o>>2]|0;if((o|0)!=-1)if(f)break;else{Q=180;break a}else{c[e>>2]=0;Q=174;break}}else Q=174;while(0);if((Q|0)==174){Q=0;if(f){Q=180;break a}else h=0}o=c[b>>2]|0;f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)!=(c[K>>2]|0)){Q=180;break a}o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else c[f>>2]=g+4;if((q|0)>0){p=h;g=h;t=q;while(1){o=c[b>>2]|0;do if(o){f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)==-1){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=c[o>>2]|0;if((o|0)!=-1)if(f^(p|0)==0){o=p;q=p;break}else{Q=204;break a}else{c[e>>2]=0;o=0;Q=198;break}}else{o=p;Q=198}while(0);if((Q|0)==198){Q=0;if(f){Q=204;break a}else q=0}f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=c[g>>2]|0;if(!(Pc[c[(c[l>>2]|0)+12>>2]&63](l,2048,f)|0)){Q=204;break a}if((c[n>>2]|0)==(c[J>>2]|0))VF(m,n,J);f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=c[g>>2]|0;g=c[n>>2]|0;c[n>>2]=g+4;c[g>>2]=f;f=t;t=t+-1|0;c[L>>2]=t;g=c[b>>2]|0;h=g+12|0;p=c[h>>2]|0;if((p|0)==(c[g+16>>2]|0))Nc[c[(c[g>>2]|0)+40>>2]&127](g)|0;else c[h>>2]=p+4;if((f|0)<=1)break;else{p=o;g=q}}}}if((c[n>>2]|0)==(c[m>>2]|0)){Q=215;break a}break}default:{}}while(0);g:do if((Q|0)==30)while(1){Q=0;f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Nc[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=c[g>>2]|0;if((f|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else f=c[f>>2]|0;if((f|0)!=-1)if(g^(o|0)==0){p=o;h=o;break}else break g;else{c[e>>2]=0;o=0;Q=43;break}}else Q=43;while(0);if((Q|0)==43){Q=0;if(g)break g;else{p=o;h=0}}o=c[b>>2]|0;f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if(!(Pc[c[(c[l>>2]|0)+12>>2]&63](l,8192,o)|0))break g;o=c[b>>2]|0;f=o+12|0;g=c[f>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[f>>2]=g+4;o=c[g>>2]|0}ly(W,o);o=p;Q=30}while(0);E=E+1|0;if(E>>>0>=4){Q=217;break}}h:do if((Q|0)==28){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==86){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==126){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==180){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==204){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==215){c[j>>2]=c[j>>2]|4;f=0}else if((Q|0)==217){i:do if(r){p=r+4|0;q=r+8|0;h=1;j:while(1){o=a[r>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=c[p>>2]|0;if(h>>>0>=o>>>0)break i;o=c[b>>2]|0;do if(o){f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)==-1){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);o=c[e>>2]|0;do if(o){f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if((o|0)!=-1)if(g)break;else break j;else{c[e>>2]=0;Q=236;break}}else Q=236;while(0);if((Q|0)==236?(Q=0,g):0)break;o=c[b>>2]|0;f=c[o+12>>2]|0;if((f|0)==(c[o+16>>2]|0))o=Nc[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=c[f>>2]|0;if(!(a[r>>0]&1))f=p;else f=c[q>>2]|0;if((o|0)!=(c[f+(h<<2)>>2]|0))break;o=h+1|0;f=c[b>>2]|0;g=f+12|0;h=c[g>>2]|0;if((h|0)==(c[f+16>>2]|0)){Nc[c[(c[f>>2]|0)+40>>2]&127](f)|0;h=o;continue}else{c[g>>2]=h+4;h=o;continue}}c[j>>2]=c[j>>2]|4;f=0;break h}while(0);o=c[Y>>2]|0;if((o|0)!=(s|0)?(c[R>>2]=0,TC(T,o,s,R),(c[R>>2]|0)!=0):0){c[j>>2]=c[j>>2]|4;f=0}else f=1}while(0);hy(W);hy(U);hy(V);hy(X);Yx(T);o=c[Y>>2]|0;c[Y>>2]=0;if(o)Kc[c[S>>2]&255](o);i=Z;return f|0}function YC(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=i;i=i+432|0;v=s+424|0;t=s+24|0;r=s+16|0;l=s+8|0;u=s+4|0;k=s+428|0;m=s;c[r>>2]=t;q=r+4|0;c[q>>2]=147;o=ty(g)|0;c[u>>2]=o;b=GD(u,13672)|0;a[k>>0]=0;n=c[e>>2]|0;c[m>>2]=n;g=c[g+4>>2]|0;c[v>>2]=c[m>>2];m=n;if(XC(d,v,f,u,g,h,k,b,r,l,t+400|0)|0){if(!(a[j>>0]&1))a[j>>0]=0;else c[c[j+8>>2]>>2]=0;c[j+4>>2]=0;if(a[k>>0]|0)ly(j,Uc[c[(c[b>>2]|0)+44>>2]&63](b,45)|0);k=Uc[c[(c[b>>2]|0)+44>>2]&63](b,48)|0;b=c[r>>2]|0;f=c[l>>2]|0;g=f+-4|0;a:do if(b>>>0>>0)do{if((c[b>>2]|0)!=(k|0))break a;b=b+4|0}while(b>>>0>>0);while(0);WF(j,b,f)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=c[g>>2]|0;if((b|0)==-1){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(n){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=Nc[c[(c[n>>2]|0)+36>>2]&127](m)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(g)break;else{p=26;break}else{c[e>>2]=0;p=24;break}}else p=24;while(0);if((p|0)==24?g:0)p=26;if((p|0)==26)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;Ox(o)|0;b=c[r>>2]|0;c[r>>2]=0;if(b)Kc[c[q>>2]&255](b);i=s;return g|0}function ZC(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+112|0;n=x+100|0;o=x+88|0;p=x+76|0;q=x+64|0;r=x+52|0;s=x+48|0;t=x+36|0;u=x+24|0;v=x+12|0;w=x;if(b){b=GD(d,13416)|0;Lc[c[(c[b>>2]|0)+44>>2]&63](n,b);w=c[n>>2]|0;a[e>>0]=w;a[e+1>>0]=w>>8;a[e+2>>0]=w>>16;a[e+3>>0]=w>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](o,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;hy(o);Lc[c[(c[b>>2]|0)+28>>2]&63](p,b);if(!(a[k>>0]&1))a[k>>0]=0;else c[c[k+8>>2]>>2]=0;c[k+4>>2]=0;ky(k,0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;hy(p);c[f>>2]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[g>>2]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](q,b);if(!(a[h>>0]&1)){a[h+1>>0]=0;a[h>>0]=0}else{a[c[h+8>>2]>>0]=0;c[h+4>>2]=0}by(h,0);c[h>>2]=c[q>>2];c[h+4>>2]=c[q+4>>2];c[h+8>>2]=c[q+8>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;Yx(q);Lc[c[(c[b>>2]|0)+24>>2]&63](r,b);if(!(a[j>>0]&1))a[j>>0]=0;else c[c[j+8>>2]>>2]=0;c[j+4>>2]=0;ky(j,0);c[j>>2]=c[r>>2];c[j+4>>2]=c[r+4>>2];c[j+8>>2]=c[r+8>>2];c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;hy(r);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}else{b=GD(d,13352)|0;Lc[c[(c[b>>2]|0)+44>>2]&63](s,b);s=c[s>>2]|0;a[e>>0]=s;a[e+1>>0]=s>>8;a[e+2>>0]=s>>16;a[e+3>>0]=s>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](t,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;hy(t);Lc[c[(c[b>>2]|0)+28>>2]&63](u,b);if(!(a[k>>0]&1))a[k>>0]=0;else c[c[k+8>>2]>>2]=0;c[k+4>>2]=0;ky(k,0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;hy(u);c[f>>2]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[g>>2]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](v,b);if(!(a[h>>0]&1)){a[h+1>>0]=0;a[h>>0]=0}else{a[c[h+8>>2]>>0]=0;c[h+4>>2]=0}by(h,0);c[h>>2]=c[v>>2];c[h+4>>2]=c[v+4>>2];c[h+8>>2]=c[v+8>>2];c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;Yx(v);Lc[c[(c[b>>2]|0)+24>>2]&63](w,b);if(!(a[j>>0]&1))a[j>>0]=0;else c[c[j+8>>2]>>2]=0;c[j+4>>2]=0;ky(j,0);c[j>>2]=c[w>>2];c[j+4>>2]=c[w+4>>2];c[j+8>>2]=c[w+8>>2];c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;hy(w);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}c[m>>2]=b;i=x;return}function _C(a){a=a|0;return}function $C(a){a=a|0;Vt(a);return}function aD(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+384|0;q=F+8|0;l=F;b=F+284|0;m=F+72|0;k=F+184|0;y=F+68|0;v=F+80|0;s=F+77|0;w=F+76|0;C=F+56|0;E=F+44|0;D=F+32|0;o=F+28|0;p=F+84|0;u=F+24|0;t=F+20|0;r=F+16|0;c[m>>2]=b;h[q>>3]=j;b=dw(b,100,54939,q)|0;if(b>>>0>99){b=Wz()|0;h[l>>3]=j;b=OF(m,b,54939,l)|0;k=c[m>>2]|0;if(!k)Eu();l=cx(b)|0;if(!l)Eu();else{G=l;H=k;x=l;A=b}}else{G=0;H=0;x=k;A=b}b=ty(f)|0;c[y>>2]=b;n=GD(y,13680)|0;l=c[m>>2]|0;Xc[c[(c[n>>2]|0)+32>>2]&15](n,l,l+A|0,x)|0;if(!A)m=0;else m=(a[c[m>>2]>>0]|0)==45;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;bD(e,m,y,v,s,w,C,E,D,o);l=c[o>>2]|0;if((A|0)>(l|0)){e=a[D>>0]|0;k=a[E>>0]|0;k=(A-l<<1|1)+l+((e&1)==0?(e&255)>>>1:c[D+4>>2]|0)+((k&1)==0?(k&255)>>>1:c[E+4>>2]|0)|0}else{e=a[D>>0]|0;k=a[E>>0]|0;k=l+2+((e&1)==0?(e&255)>>>1:c[D+4>>2]|0)+((k&1)==0?(k&255)>>>1:c[E+4>>2]|0)|0}if(k>>>0>100){k=cx(k)|0;if(!k)Eu();else{B=k;z=k}}else{B=0;z=p}cD(z,u,t,c[f+4>>2]|0,x,x+A|0,n,m,v,a[s>>0]|0,a[w>>0]|0,C,E,D,l);c[r>>2]=c[d>>2];d=c[u>>2]|0;k=c[t>>2]|0;c[q>>2]=c[r>>2];k=zh(q,z,d,k,f,g)|0;if(B){dx(B);b=c[y>>2]|0}Yx(D);Yx(E);Yx(C);Ox(b)|0;if(G)dx(G);if(H)dx(H);i=F;return k|0}function bD(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+112|0;n=z+108|0;o=z+96|0;p=z+92|0;q=z+80|0;x=z+68|0;y=z+56|0;r=z+52|0;s=z+40|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;if(b){e=GD(e,13288)|0;b=c[e>>2]|0;if(d){Lc[c[b+44>>2]&63](n,e);d=c[n>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[e>>2]|0)+32>>2]&63](o,e);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;Yx(o);b=e}else{Lc[c[b+40>>2]&63](p,e);d=c[p>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[e>>2]|0)+28>>2]&63](q,e);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[q>>2];c[l+4>>2]=c[q+4>>2];c[l+8>>2]=c[q+8>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;Yx(q);b=e}a[g>>0]=Nc[c[(c[e>>2]|0)+12>>2]&127](e)|0;a[h>>0]=Nc[c[(c[e>>2]|0)+16>>2]&127](e)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](x,e);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[x>>2];c[j+4>>2]=c[x+4>>2];c[j+8>>2]=c[x+8>>2];c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;Yx(x);Lc[c[(c[b>>2]|0)+24>>2]&63](y,e);if(!(a[k>>0]&1)){a[k+1>>0]=0;a[k>>0]=0}else{a[c[k+8>>2]>>0]=0;c[k+4>>2]=0}by(k,0);c[k>>2]=c[y>>2];c[k+4>>2]=c[y+4>>2];c[k+8>>2]=c[y+8>>2];c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;Yx(y);b=Nc[c[(c[e>>2]|0)+36>>2]&127](e)|0}else{e=GD(e,13224)|0;b=c[e>>2]|0;if(d){Lc[c[b+44>>2]&63](r,e);d=c[r>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[e>>2]|0)+32>>2]&63](s,e);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;Yx(s);b=e}else{Lc[c[b+40>>2]&63](t,e);d=c[t>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[e>>2]|0)+28>>2]&63](u,e);if(!(a[l>>0]&1)){a[l+1>>0]=0;a[l>>0]=0}else{a[c[l+8>>2]>>0]=0;c[l+4>>2]=0}by(l,0);c[l>>2]=c[u>>2];c[l+4>>2]=c[u+4>>2];c[l+8>>2]=c[u+8>>2];c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;Yx(u);b=e}a[g>>0]=Nc[c[(c[e>>2]|0)+12>>2]&127](e)|0;a[h>>0]=Nc[c[(c[e>>2]|0)+16>>2]&127](e)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](v,e);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[v>>2];c[j+4>>2]=c[v+4>>2];c[j+8>>2]=c[v+8>>2];c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;Yx(v);Lc[c[(c[b>>2]|0)+24>>2]&63](w,e);if(!(a[k>>0]&1)){a[k+1>>0]=0;a[k>>0]=0}else{a[c[k+8>>2]>>0]=0;c[k+4>>2]=0}by(k,0);c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];c[k+8>>2]=c[w+8>>2];c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;Yx(w);b=Nc[c[(c[e>>2]|0)+36>>2]&127](e)|0}c[m>>2]=b;i=z;return}function cD(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;c[f>>2]=d;N=q+4|0;O=q+8|0;P=q+1|0;H=p+4|0;I=(g&512|0)==0;J=p+8|0;K=p+1|0;L=j+8|0;M=(r|0)>0;A=o+4|0;B=o+8|0;C=o+1|0;D=r+1|0;F=-2-r-((r|0)<0?~r:-1)|0;G=(r|0)>0;z=0;do{switch(a[l+z>>0]|0){case 0:{c[e>>2]=c[f>>2];break}case 1:{c[e>>2]=c[f>>2];x=Uc[c[(c[j>>2]|0)+28>>2]&63](j,32)|0;y=c[f>>2]|0;c[f>>2]=y+1;a[y>>0]=x;break}case 3:{y=a[q>>0]|0;s=(y&1)==0;if((s?(y&255)>>>1:c[N>>2]|0)|0){x=a[(s?P:c[O>>2]|0)>>0]|0;y=c[f>>2]|0;c[f>>2]=y+1;a[y>>0]=x}break}case 2:{u=a[p>>0]|0;s=(u&1)==0;u=s?(u&255)>>>1:c[H>>2]|0;if(!(I|(u|0)==0)){t=s?K:c[J>>2]|0;v=t+u|0;s=c[f>>2]|0;if(u)do{a[s>>0]=a[t>>0]|0;t=t+1|0;s=s+1|0}while((t|0)!=(v|0));c[f>>2]=s}break}case 4:{s=c[f>>2]|0;h=k?h+1|0:h;w=h;v=c[L>>2]|0;a:do if(h>>>0>>0){t=h;do{u=a[t>>0]|0;if(u<<24>>24<=-1)break a;if(!(b[v+(u<<24>>24<<1)>>1]&2048))break a;t=t+1|0}while(t>>>0>>0)}else t=h;while(0);u=t;if(M){x=-2-u-~(u>>>0>w>>>0?w:u)|0;x=F>>>0>x>>>0?F:x;if(t>>>0>h>>>0&G){u=t;w=r;while(1){u=u+-1|0;y=a[u>>0]|0;v=c[f>>2]|0;c[f>>2]=v+1;a[v>>0]=y;v=(w|0)>1;if(!(u>>>0>h>>>0&v))break;else w=w+-1|0}}else v=G;y=D+x|0;u=t+(x+1)|0;if(v)w=Uc[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;else w=0;t=c[f>>2]|0;c[f>>2]=t+1;if((y|0)>0){v=y;while(1){a[t>>0]=w;t=c[f>>2]|0;c[f>>2]=t+1;if((v|0)>1)v=v+-1|0;else break}}a[t>>0]=m}else u=t;if((u|0)!=(h|0)){y=a[o>>0]|0;t=(y&1)==0;if(!((t?(y&255)>>>1:c[A>>2]|0)|0))t=-1;else t=a[(t?C:c[B>>2]|0)>>0]|0;if((u|0)!=(h|0)){v=0;w=0;while(1){if((w|0)==(t|0)){y=c[f>>2]|0;c[f>>2]=y+1;a[y>>0]=n;v=v+1|0;y=a[o>>0]|0;t=(y&1)==0;if(v>>>0<(t?(y&255)>>>1:c[A>>2]|0)>>>0){t=a[(t?C:c[B>>2]|0)+v>>0]|0;t=t<<24>>24==127?-1:t<<24>>24;w=0}else{t=w;w=0}}u=u+-1|0;x=a[u>>0]|0;y=c[f>>2]|0;c[f>>2]=y+1;a[y>>0]=x;if((u|0)==(h|0))break;else w=w+1|0}}}else{x=Uc[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;y=c[f>>2]|0;c[f>>2]=y+1;a[y>>0]=x}t=c[f>>2]|0;if((s|0)!=(t|0)?(E=t+-1|0,s>>>0>>0):0){t=E;do{y=a[s>>0]|0;a[s>>0]=a[t>>0]|0;a[t>>0]=y;s=s+1|0;t=t+-1|0}while(s>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);t=a[q>>0]|0;h=(t&1)==0;t=h?(t&255)>>>1:c[N>>2]|0;if(t>>>0>1){s=h?P:c[O>>2]|0;u=s+t|0;h=c[f>>2]|0;if((t|0)!=1){s=s+1|0;do{a[h>>0]=a[s>>0]|0;h=h+1|0;s=s+1|0}while((s|0)!=(u|0))}c[f>>2]=h}switch(g&176|0){case 32:{c[e>>2]=c[f>>2];break}case 16:break;default:c[e>>2]=d}return}function dD(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+176|0;p=D+56|0;x=D+52|0;v=D+64|0;s=D+61|0;w=D+60|0;A=D+40|0;C=D+28|0;B=D+16|0;l=D+12|0;o=D+68|0;u=D+8|0;t=D+4|0;q=D;b=ty(f)|0;c[x>>2]=b;r=GD(x,13680)|0;n=a[h>>0]|0;j=(n&1)==0;k=h+4|0;if(!((j?(n&255)>>>1:c[k>>2]|0)|0))n=0;else{n=a[(j?h+1|0:c[h+8>>2]|0)>>0]|0;n=n<<24>>24==(Uc[c[(c[r>>2]|0)+28>>2]&63](r,45)|0)<<24>>24}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;bD(e,n,x,v,s,w,A,C,B,l);m=a[h>>0]|0;e=c[k>>2]|0;j=(m&1)==0?(m&255)>>>1:e;k=c[l>>2]|0;if((j|0)>(k|0)){E=a[B>>0]|0;l=a[C>>0]|0;j=(j-k<<1|1)+k+((E&1)==0?(E&255)>>>1:c[B+4>>2]|0)+((l&1)==0?(l&255)>>>1:c[C+4>>2]|0)|0}else{E=a[B>>0]|0;j=a[C>>0]|0;j=k+2+((E&1)==0?(E&255)>>>1:c[B+4>>2]|0)+((j&1)==0?(j&255)>>>1:c[C+4>>2]|0)|0}if(j>>>0>100){j=cx(j)|0;if(!j)Eu();else{z=j;y=j}}else{z=0;y=o}E=(m&1)==0;j=E?h+1|0:c[h+8>>2]|0;cD(y,u,t,c[f+4>>2]|0,j,j+(E?(m&255)>>>1:e)|0,r,n,v,a[s>>0]|0,a[w>>0]|0,A,C,B,k);c[q>>2]=c[d>>2];E=c[u>>2]|0;j=c[t>>2]|0;c[p>>2]=c[q>>2];j=zh(p,y,E,j,f,g)|0;if(z){dx(z);b=c[x>>2]|0}Yx(B);Yx(C);Yx(A);Ox(b)|0;i=D;return j|0}function eD(a){a=a|0;return}function fD(a){a=a|0;Vt(a);return}function gD(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+992|0;q=F+8|0;l=F;b=F+888|0;m=F+880|0;k=F+480|0;y=F+76|0;v=F+884|0;s=F+72|0;w=F+68|0;C=F+56|0;E=F+44|0;D=F+32|0;o=F+28|0;p=F+80|0;u=F+24|0;t=F+20|0;r=F+16|0;c[m>>2]=b;h[q>>3]=j;b=dw(b,100,54939,q)|0;if(b>>>0>99){b=Wz()|0;h[l>>3]=j;b=OF(m,b,54939,l)|0;k=c[m>>2]|0;if(!k)Eu();l=cx(b<<2)|0;if(!l)Eu();else{G=l;H=k;x=l;A=b}}else{G=0;H=0;x=k;A=b}b=ty(f)|0;c[y>>2]=b;n=GD(y,13672)|0;l=c[m>>2]|0;Xc[c[(c[n>>2]|0)+48>>2]&15](n,l,l+A|0,x)|0;if(!A)m=0;else m=(a[c[m>>2]>>0]|0)==45;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;hD(e,m,y,v,s,w,C,E,D,o);l=c[o>>2]|0;if((A|0)>(l|0)){e=a[D>>0]|0;k=a[E>>0]|0;k=(A-l<<1|1)+l+((e&1)==0?(e&255)>>>1:c[D+4>>2]|0)+((k&1)==0?(k&255)>>>1:c[E+4>>2]|0)|0}else{e=a[D>>0]|0;k=a[E>>0]|0;k=l+2+((e&1)==0?(e&255)>>>1:c[D+4>>2]|0)+((k&1)==0?(k&255)>>>1:c[E+4>>2]|0)|0}if(k>>>0>100){k=cx(k<<2)|0;if(!k)Eu();else{B=k;z=k}}else{B=0;z=p}iD(z,u,t,c[f+4>>2]|0,x,x+(A<<2)|0,n,m,v,c[s>>2]|0,c[w>>2]|0,C,E,D,l);c[r>>2]=c[d>>2];d=c[u>>2]|0;k=c[t>>2]|0;c[q>>2]=c[r>>2];k=PF(q,z,d,k,f,g)|0;if(B){dx(B);b=c[y>>2]|0}hy(D);hy(E);Yx(C);Ox(b)|0;if(G)dx(G);if(H)dx(H);i=F;return k|0}function hD(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+112|0;n=z+108|0;o=z+96|0;r=z+92|0;s=z+80|0;t=z+68|0;u=z+56|0;v=z+52|0;w=z+40|0;x=z+36|0;y=z+24|0;p=z+12|0;q=z;if(b){b=GD(e,13416)|0;e=c[b>>2]|0;if(d){Lc[c[e+44>>2]&63](n,b);d=c[n>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](o,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;hy(o)}else{Lc[c[e+40>>2]&63](r,b);d=c[r>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[b>>2]|0)+28>>2]&63](s,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;hy(s)}c[g>>2]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[h>>2]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](t,b);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[j+8>>2]=c[t+8>>2];c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;Yx(t);Lc[c[(c[b>>2]|0)+24>>2]&63](u,b);if(!(a[k>>0]&1))a[k>>0]=0;else c[c[k+8>>2]>>2]=0;c[k+4>>2]=0;ky(k,0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;hy(u);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}else{b=GD(e,13352)|0;e=c[b>>2]|0;if(d){Lc[c[e+44>>2]&63](v,b);d=c[v>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[b>>2]|0)+32>>2]&63](w,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[w>>2];c[l+4>>2]=c[w+4>>2];c[l+8>>2]=c[w+8>>2];c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;hy(w)}else{Lc[c[e+40>>2]&63](x,b);d=c[x>>2]|0;a[f>>0]=d;a[f+1>>0]=d>>8;a[f+2>>0]=d>>16;a[f+3>>0]=d>>24;Lc[c[(c[b>>2]|0)+28>>2]&63](y,b);if(!(a[l>>0]&1))a[l>>0]=0;else c[c[l+8>>2]>>2]=0;c[l+4>>2]=0;ky(l,0);c[l>>2]=c[y>>2];c[l+4>>2]=c[y+4>>2];c[l+8>>2]=c[y+8>>2];c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;hy(y)}c[g>>2]=Nc[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[h>>2]=Nc[c[(c[b>>2]|0)+16>>2]&127](b)|0;Lc[c[(c[b>>2]|0)+20>>2]&63](p,b);if(!(a[j>>0]&1)){a[j+1>>0]=0;a[j>>0]=0}else{a[c[j+8>>2]>>0]=0;c[j+4>>2]=0}by(j,0);c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;Yx(p);Lc[c[(c[b>>2]|0)+24>>2]&63](q,b);if(!(a[k>>0]&1))a[k>>0]=0;else c[c[k+8>>2]>>2]=0;c[k+4>>2]=0;ky(k,0);c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;hy(q);b=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0}c[m>>2]=b;i=z;return}function iD(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;c[e>>2]=b;J=p+4|0;K=p+8|0;C=o+4|0;D=(f&512|0)==0;E=o+8|0;F=(q|0)>0;G=n+4|0;H=n+8|0;I=n+1|0;A=(q|0)>0;z=0;do{switch(a[k+z>>0]|0){case 0:{c[d>>2]=c[e>>2];break}case 1:{c[d>>2]=c[e>>2];x=Uc[c[(c[i>>2]|0)+44>>2]&63](i,32)|0;y=c[e>>2]|0;c[e>>2]=y+4;c[y>>2]=x;break}case 3:{y=a[p>>0]|0;r=(y&1)==0;if((r?(y&255)>>>1:c[J>>2]|0)|0){x=c[(r?J:c[K>>2]|0)>>2]|0;y=c[e>>2]|0;c[e>>2]=y+4;c[y>>2]=x}break}case 2:{v=a[o>>0]|0;r=(v&1)==0;v=r?(v&255)>>>1:c[C>>2]|0;if(!(D|(v|0)==0)){r=r?C:c[E>>2]|0;t=r+(v<<2)|0;u=c[e>>2]|0;if(v){s=u;while(1){c[s>>2]=c[r>>2];r=r+4|0;if((r|0)==(t|0))break;else s=s+4|0}}c[e>>2]=u+(v<<2)}break}case 4:{r=c[e>>2]|0;g=j?g+4|0:g;a:do if(g>>>0>>0){s=g;do{if(!(Pc[c[(c[i>>2]|0)+12>>2]&63](i,2048,c[s>>2]|0)|0))break a;s=s+4|0}while(s>>>0>>0)}else s=g;while(0);if(F){if(s>>>0>g>>>0&A){v=c[e>>2]|0;u=q;while(1){s=s+-4|0;t=v+4|0;c[v>>2]=c[s>>2];w=u+-1|0;u=(u|0)>1;if(s>>>0>g>>>0&u){v=t;u=w}else{v=w;break}}c[e>>2]=t;t=v}else{u=A;t=q}if(u)w=Uc[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;else w=0;x=c[e>>2]|0;u=t+((t|0)<0?~t:-1)|0;if((t|0)>0){v=x;while(1){c[v>>2]=w;if((t|0)>1){v=v+4|0;t=t+-1|0}else break}}c[e>>2]=x+(u+2<<2);c[x+(u+1<<2)>>2]=l}if((s|0)==(g|0)){x=Uc[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;y=c[e>>2]|0;s=y+4|0;c[e>>2]=s;c[y>>2]=x}else{x=a[n>>0]|0;t=(x&1)==0;y=c[G>>2]|0;if(!((t?(x&255)>>>1:y)|0))t=-1;else t=a[(t?I:c[H>>2]|0)>>0]|0;if((s|0)!=(g|0)){w=0;x=0;while(1){u=c[e>>2]|0;if((x|0)==(t|0)){v=u+4|0;c[e>>2]=v;c[u>>2]=m;w=w+1|0;u=a[n>>0]|0;t=(u&1)==0;if(w>>>0<(t?(u&255)>>>1:y)>>>0){t=a[(t?I:c[H>>2]|0)+w>>0]|0;u=v;t=t<<24>>24==127?-1:t<<24>>24;v=0}else{u=v;t=x;v=0}}else v=x;s=s+-4|0;x=c[s>>2]|0;c[e>>2]=u+4;c[u>>2]=x;if((s|0)==(g|0))break;else x=v+1|0}}s=c[e>>2]|0}if((r|0)!=(s|0)?(B=s+-4|0,r>>>0>>0):0){s=B;do{y=c[r>>2]|0;c[r>>2]=c[s>>2];c[s>>2]=y;r=r+4|0;s=s+-4|0}while(r>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);r=a[p>>0]|0;g=(r&1)==0;r=g?(r&255)>>>1:c[J>>2]|0;if(r>>>0>1){s=g?J:c[K>>2]|0;g=s+4|0;s=s+(r<<2)|0;t=c[e>>2]|0;u=s-g|0;if((r|0)!=1){r=t;while(1){c[r>>2]=c[g>>2];g=g+4|0;if((g|0)==(s|0))break;else r=r+4|0}}c[e>>2]=t+(u>>>2<<2)}switch(f&176|0){case 32:{c[d>>2]=c[e>>2];break}case 16:break;default:c[d>>2]=b}return}function jD(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+480|0;p=E+468|0;y=E+464|0;w=E+472|0;t=E+56|0;x=E+52|0;B=E+40|0;D=E+28|0;C=E+16|0;k=E+12|0;o=E+64|0;v=E+8|0;u=E+4|0;q=E;b=ty(f)|0;c[y>>2]=b;r=GD(y,13672)|0;n=a[h>>0]|0;j=(n&1)==0;s=h+4|0;if(!((j?(n&255)>>>1:c[s>>2]|0)|0))n=0;else{n=c[(j?s:c[h+8>>2]|0)>>2]|0;n=(n|0)==(Uc[c[(c[r>>2]|0)+44>>2]&63](r,45)|0)}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;hD(e,n,y,w,t,x,B,D,C,k);l=a[h>>0]|0;m=c[s>>2]|0;j=(l&1)==0?(l&255)>>>1:m;e=c[k>>2]|0;if((j|0)>(e|0)){F=a[C>>0]|0;k=a[D>>0]|0;j=(j-e<<1|1)+e+((F&1)==0?(F&255)>>>1:c[C+4>>2]|0)+((k&1)==0?(k&255)>>>1:c[D+4>>2]|0)|0}else{F=a[C>>0]|0;j=a[D>>0]|0;j=e+2+((F&1)==0?(F&255)>>>1:c[C+4>>2]|0)+((j&1)==0?(j&255)>>>1:c[D+4>>2]|0)|0}if(j>>>0>100){j=cx(j<<2)|0;if(!j)Eu();else{A=j;z=j}}else{A=0;z=o}F=(l&1)==0;j=F?s:c[h+8>>2]|0;iD(z,v,u,c[f+4>>2]|0,j,j+((F?(l&255)>>>1:m)<<2)|0,r,n,w,c[t>>2]|0,c[x>>2]|0,B,D,C,e);c[q>>2]=c[d>>2];F=c[v>>2]|0;j=c[u>>2]|0;c[p>>2]=c[q>>2];j=PF(p,z,F,j,f,g)|0;if(A){dx(A);b=c[y>>2]|0}hy(C);hy(D);Yx(B);Ox(b)|0;i=E;return j|0}function kD(a){a=a|0;return}function lD(a){a=a|0;Vt(a);return}function mD(b,d,e){b=b|0;d=d|0;e=e|0;b=Yu((a[d>>0]&1)==0?d+1|0:c[d+8>>2]|0,1)|0;return b>>>((b|0)!=(-1|0)&1)|0}function nD(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;k=i;i=i+16|0;j=k;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;l=a[h>>0]|0;m=(l&1)==0;d=m?h+1|0:c[h+8>>2]|0;l=m?(l&255)>>>1:c[h+4>>2]|0;h=d+l|0;if((l|0)>0)do{cy(j,a[d>>0]|0);d=d+1|0}while(d>>>0>>0);d=Xu((e|0)==-1?-1:e<<1,f,g,(a[j>>0]&1)==0?j+1|0:c[j+8>>2]|0)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;m=Fw(d)|0;h=d+m|0;if((m|0)>0)do{cy(b,a[d>>0]|0);d=d+1|0}while(d>>>0>>0);Yx(j);i=k;return}function oD(a,b){a=a|0;b=b|0;return}function pD(a){a=a|0;return}function qD(a){a=a|0;Vt(a);return}function rD(b,d,e){b=b|0;d=d|0;e=e|0;b=Yu((a[d>>0]&1)==0?d+1|0:c[d+8>>2]|0,1)|0;return b>>>((b|0)!=(-1|0)&1)|0}function sD(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+176|0;p=s+168|0;o=s+40|0;n=s+32|0;r=s+28|0;q=s+16|0;l=s+8|0;m=s;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[l+4>>2]=0;c[l>>2]=14156;k=a[h>>0]|0;t=(k&1)==0;j=h+4|0;d=t?j:c[h+8>>2]|0;h=t?(k&255)>>>1:c[j>>2]|0;j=d+(h<<2)|0;k=o+32|0;if((h|0)>0)do{c[r>>2]=d;h=Sc[c[(c[l>>2]|0)+12>>2]&15](l,p,d,j,r,o,k,n)|0;if(o>>>0<(c[n>>2]|0)>>>0){d=o;do{cy(q,a[d>>0]|0);d=d+1|0}while(d>>>0<(c[n>>2]|0)>>>0)}d=c[r>>2]|0}while((h|0)!=2&d>>>0>>0);d=Xu((e|0)==-1?-1:e<<1,f,g,(a[q>>0]&1)==0?q+1|0:c[q+8>>2]|0)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[m+4>>2]=0;c[m>>2]=14204;t=Fw(d)|0;j=d+t|0;k=j;l=o+128|0;if((t|0)>0)do{c[r>>2]=d;h=Sc[c[(c[m>>2]|0)+16>>2]&15](m,p,d,(k-d|0)>32?d+32|0:j,r,o,l,n)|0;if(o>>>0<(c[n>>2]|0)>>>0){d=o;do{ly(b,c[d>>2]|0);d=d+4|0}while(d>>>0<(c[n>>2]|0)>>>0)}d=c[r>>2]|0}while((h|0)!=2&d>>>0>>0);Yx(q);i=s;return}function tD(a,b){a=a|0;b=b|0;return}function uD(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+4>>2]=b+-1;c[a>>2]=13656;d=a+8|0;XF(d,28);Wx(a+144|0,54843,1);d=c[d>>2]|0;e=a+12|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-4|0;while((b|0)!=(d|0));c[e>>2]=b}c[563]=0;c[562]=12584;YF(a,2248);c[565]=0;c[564]=12624;ZF(a,2256);XD(2264,0,0,1);_F(a,2264);c[571]=0;c[570]=13944;$F(a,2280);c[573]=0;c[572]=14012;aG(a,2288);c[575]=0;c[574]=13764;c[576]=Wz()|0;bG(a,2296);c[579]=0;c[578]=14060;cG(a,2312);c[581]=0;c[580]=14108;dG(a,2320);OE(2328,1);eG(a,2328);PE(2352,1);fG(a,2352);c[597]=0;c[596]=12664;gG(a,2384);c[599]=0;c[598]=12736;hG(a,2392);c[601]=0;c[600]=12808;iG(a,2400);c[603]=0;c[602]=12868;jG(a,2408);c[605]=0;c[604]=13176;kG(a,2416);c[607]=0;c[606]=13240;lG(a,2424);c[609]=0;c[608]=13304;mG(a,2432);c[611]=0;c[610]=13368;nG(a,2440);c[613]=0;c[612]=13432;oG(a,2448);c[615]=0;c[614]=13468;pG(a,2456);c[617]=0;c[616]=13504;qG(a,2464);c[619]=0;c[618]=13540;rG(a,2472);c[621]=0;c[620]=12928;c[622]=12976;sG(a,2480);c[625]=0;c[624]=13020;c[626]=13068;tG(a,2496);c[629]=0;c[628]=13924;c[630]=Wz()|0;c[628]=13112;uG(a,2512);c[633]=0;c[632]=13924;c[634]=Wz()|0;c[632]=13144;vG(a,2528);c[637]=0;c[636]=13576;wG(a,2544);c[639]=0;c[638]=13616;xG(a,2552);return}function vD(){if((a[2560]|0)==0?(Ia(2560)|0)!=0:0){zD()|0;c[3611]=14440;db(2560)}return c[3611]|0}function wD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Nx(b);f=a+8|0;e=c[f>>2]|0;if((c[a+12>>2]|0)-e>>2>>>0<=d>>>0){yG(f,d+1|0);e=c[f>>2]|0}a=c[e+(d<<2)>>2]|0;if(a){Ox(a)|0;e=c[f>>2]|0}c[e+(d<<2)>>2]=b;return}function xD(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=13656;e=a+8|0;f=a+12|0;b=c[e>>2]|0;if((c[f>>2]|0)!=(b|0)){d=0;do{b=c[b+(d<<2)>>2]|0;if(b)Ox(b)|0;d=d+1|0;b=c[e>>2]|0}while(d>>>0<(c[f>>2]|0)-b>>2>>>0)}Yx(a+144|0);zG(e);return}function yD(a){a=a|0;xD(a);Vt(a);return}function zD(){uD(2568,1);c[3610]=2568;return 14440}function AD(){var a=0;a=c[(vD()|0)>>2]|0;c[3612]=a;Nx(a);return 14448}function BD(){if((a[2728]|0)==0?(Ia(2728)|0)!=0:0){AD()|0;c[3613]=14448;db(2728)}return c[3613]|0}function CD(a){a=a|0;var b=0;b=c[(BD()|0)>>2]|0;c[a>>2]=b;Nx(b);return}function DD(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;Nx(b);return}function ED(a){a=a|0;Ox(c[a>>2]|0)|0;return}function FD(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;if((c[a>>2]|0)!=-1){c[b>>2]=a;c[b+4>>2]=148;c[b+8>>2]=0;Ux(a,b,149)}i=d;return (c[a+4>>2]|0)+-1|0}function GD(a,b){a=a|0;b=b|0;a=c[a>>2]|0;b=FD(b)|0;return c[(c[a+8>>2]|0)+(b<<2)>>2]|0}function HD(a){a=a|0;Vt(a);return}function ID(a){a=a|0;if(a)Kc[c[(c[a>>2]|0)+4>>2]&255](a);return}function JD(a){a=a|0;var b=0;b=c[3417]|0;c[3417]=b+1;c[a+4>>2]=b+1;return}function KD(a){a=a|0;Vt(a);return}function LD(a,d,e){a=a|0;d=d|0;e=e|0;if(e>>>0<128)e=(b[(c[(Ku()|0)>>2]|0)+(e<<1)>>1]&d)<<16>>16!=0;else e=0;return e|0}function MD(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;i=(f-d|0)>>>2;if((d|0)!=(f|0)){h=d;while(1){a=c[h>>2]|0;if(a>>>0<128)a=e[(c[(Ku()|0)>>2]|0)+(a<<1)>>1]|0;else a=0;b[g>>1]=a;h=h+4|0;if((h|0)==(f|0))break;else g=g+2|0}}return d+(i<<2)|0}function ND(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;a:do if((e|0)==(f|0))e=f;else while(1){a=c[e>>2]|0;if(a>>>0<128?(b[(c[(Ku()|0)>>2]|0)+(a<<1)>>1]&d)<<16>>16!=0:0)break a;e=e+4|0;if((e|0)==(f|0)){e=f;break}}while(0);return e|0}function OD(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;a:do if((e|0)==(f|0))e=f;else while(1){a=c[e>>2]|0;if(a>>>0>=128)break a;if(!((b[(c[(Ku()|0)>>2]|0)+(a<<1)>>1]&d)<<16>>16))break a;e=e+4|0;if((e|0)==(f|0)){e=f;break}}while(0);return e|0}function PD(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(c[(Mu()|0)>>2]|0)+(b<<2)>>2]|0;return b|0}function QD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=(d-b|0)>>>2;if((b|0)!=(d|0)){e=b;do{a=c[e>>2]|0;if(a>>>0<128)a=c[(c[(Mu()|0)>>2]|0)+(a<<2)>>2]|0;c[e>>2]=a;e=e+4|0}while((e|0)!=(d|0))}return b+(f<<2)|0}function RD(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(c[(Lu()|0)>>2]|0)+(b<<2)>>2]|0;return b|0}function SD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=(d-b|0)>>>2;if((b|0)!=(d|0)){e=b;do{a=c[e>>2]|0;if(a>>>0<128)a=c[(c[(Lu()|0)>>2]|0)+(a<<2)>>2]|0;c[e>>2]=a;e=e+4|0}while((e|0)!=(d|0))}return b+(f<<2)|0}function TD(a,b){a=a|0;b=b|0;return b<<24>>24|0}function UD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;if((d|0)!=(e|0))while(1){c[f>>2]=a[d>>0];d=d+1|0;if((d|0)==(e|0))break;else f=f+4|0}return e|0}function VD(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function WD(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=(e-d|0)>>>2;if((d|0)!=(e|0)){h=d;b=g;while(1){g=c[h>>2]|0;a[b>>0]=g>>>0<128?g&255:f;h=h+4|0;if((h|0)==(e|0))break;else b=b+1|0}}return d+(i<<2)|0}function XD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b+4>>2]=f+-1;c[b>>2]=13696;f=b+8|0;c[f>>2]=d;a[b+12>>0]=e&1;if(!d)c[f>>2]=c[(Ku()|0)>>2];return}function YD(b){b=b|0;var d=0;c[b>>2]=13696;d=c[b+8>>2]|0;if((d|0)!=0?(a[b+12>>0]|0)!=0:0)Wt(d);return}function ZD(a){a=a|0;YD(a);Vt(a);return}function _D(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(c[(Mu()|0)>>2]|0)+((b&255)<<2)>>2]&255;return b|0}function $D(b,d,e){b=b|0;d=d|0;e=e|0;if((d|0)!=(e|0)){b=d;do{d=a[b>>0]|0;if(d<<24>>24>-1)d=c[(c[(Mu()|0)>>2]|0)+(d<<24>>24<<2)>>2]&255;a[b>>0]=d;b=b+1|0}while((b|0)!=(e|0))}return e|0}function aE(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(c[(Lu()|0)>>2]|0)+(b<<24>>24<<2)>>2]&255;return b|0}function bE(b,d,e){b=b|0;d=d|0;e=e|0;if((d|0)!=(e|0)){b=d;do{d=a[b>>0]|0;if(d<<24>>24>-1)d=c[(c[(Lu()|0)>>2]|0)+(d<<24>>24<<2)>>2]&255;a[b>>0]=d;b=b+1|0}while((b|0)!=(e|0))}return e|0}function cE(a,b){a=a|0;b=b|0;return b|0}function dE(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;if((c|0)!=(d|0))while(1){a[e>>0]=a[c>>0]|0;c=c+1|0;if((c|0)==(d|0))break;else e=e+1|0}return d|0}function eE(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function fE(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((c|0)!=(d|0))while(1){b=a[c>>0]|0;a[f>>0]=b<<24>>24>-1?b:e;c=c+1|0;if((c|0)==(d|0))break;else f=f+1|0}return d|0}function gE(a){a=a|0;Vt(a);return}function hE(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function iE(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function jE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function kE(a){a=a|0;return 1}function lE(a){a=a|0;return 1}function mE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return (a>>>0>>0?a:e)|0}function nE(a){a=a|0;return 1}function oE(a){a=a|0;rF(a);Vt(a);return}function pE(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+16|0;q=s;o=s+8|0;a:do if((e|0)==(f|0))l=f;else{l=e;while(1){if(!(c[l>>2]|0))break a;l=l+4|0;if((l|0)==(f|0)){l=f;break}}}while(0);c[k>>2]=h;c[g>>2]=e;n=j;p=b+8|0;b:do if((h|0)==(j|0)|(e|0)==(f|0))r=29;else{c:while(1){t=d;m=c[t+4>>2]|0;b=q;c[b>>2]=c[t>>2];c[b+4>>2]=m;b=bv(c[p>>2]|0)|0;m=vv(h,g,l-e>>2,n-h|0,d)|0;if(b)bv(b)|0;switch(m|0){case 0:{e=1;break b}case -1:break c;default:{}}h=(c[k>>2]|0)+m|0;c[k>>2]=h;if((h|0)==(j|0)){r=15;break}if((l|0)==(f|0)){e=c[g>>2]|0;l=f}else{e=bv(c[p>>2]|0)|0;h=uv(o,0,d)|0;if(e)bv(e)|0;if((h|0)==-1){e=2;break b}if(h>>>0>(n-(c[k>>2]|0)|0)>>>0){e=1;break b}if(h){e=o;while(1){m=a[e>>0]|0;t=c[k>>2]|0;c[k>>2]=t+1;a[t>>0]=m;h=h+-1|0;if(!h)break;else e=e+1|0}}e=(c[g>>2]|0)+4|0;c[g>>2]=e;d:do if((e|0)==(f|0))l=f;else{l=e;while(1){if(!(c[l>>2]|0))break d;l=l+4|0;if((l|0)==(f|0)){l=f;break}}}while(0);h=c[k>>2]|0}if((h|0)==(j|0)|(e|0)==(f|0)){r=29;break b}}if((r|0)==15){e=c[g>>2]|0;r=29;break}c[k>>2]=h;e:do if((e|0)!=(c[g>>2]|0))do{t=c[e>>2]|0;l=bv(c[p>>2]|0)|0;h=uv(h,t,q)|0;if(l)bv(l)|0;if((h|0)==-1)break e;h=(c[k>>2]|0)+h|0;c[k>>2]=h;e=e+4|0}while((e|0)!=(c[g>>2]|0));while(0);c[g>>2]=e;e=2}while(0);if((r|0)==29)e=(e|0)!=(f|0)&1;i=s;return e|0}function qE(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;q=s;a:do if((e|0)==(f|0))l=f;else{l=e;while(1){if(!(a[l>>0]|0))break a;l=l+1|0;if((l|0)==(f|0)){l=f;break}}}while(0);c[k>>2]=h;c[g>>2]=e;o=j;p=b+8|0;b:do if((h|0)==(j|0)|(e|0)==(f|0))r=29;else{c:while(1){n=d;m=c[n+4>>2]|0;b=q;c[b>>2]=c[n>>2];c[b+4>>2]=m;b=l;m=bv(c[p>>2]|0)|0;n=rv(h,g,b-e|0,o-h>>2,d)|0;if(m)bv(m)|0;switch(n|0){case 0:{e=2;break b}case -1:break c;default:{}}h=(c[k>>2]|0)+(n<<2)|0;c[k>>2]=h;if((h|0)==(j|0)){r=19;break}e=c[g>>2]|0;if((l|0)==(f|0))l=f;else{l=bv(c[p>>2]|0)|0;e=pv(h,e,1,d)|0;if(l)bv(l)|0;if(e){e=2;break b}c[k>>2]=(c[k>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;d:do if((e|0)==(f|0))l=f;else{l=e;while(1){if(!(a[l>>0]|0))break d;l=l+1|0;if((l|0)==(f|0)){l=f;break}}}while(0);h=c[k>>2]|0}if((h|0)==(j|0)|(e|0)==(f|0)){r=29;break b}}if((r|0)==19){e=c[g>>2]|0;r=29;break}c[k>>2]=h;e:do if((e|0)!=(c[g>>2]|0)){f:while(1){l=bv(c[p>>2]|0)|0;h=pv(h,e,b-e|0,q)|0;if(l)bv(l)|0;switch(h|0){case -1:{r=13;break f}case -2:{r=14;break f}case 0:{e=e+1|0;break}default:e=e+h|0}h=(c[k>>2]|0)+4|0;c[k>>2]=h;if((e|0)==(c[g>>2]|0))break e}if((r|0)==13){c[g>>2]=e;e=2;break b}else if((r|0)==14){c[g>>2]=e;e=1;break b}}while(0);c[g>>2]=e;e=(e|0)!=(f|0)&1}while(0);if((r|0)==29)e=(e|0)!=(f|0)&1;i=s;return e|0}function rE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=i;i=i+16|0;h=j;c[g>>2]=e;e=bv(c[b+8>>2]|0)|0;b=uv(h,0,d)|0;if(e)bv(e)|0;switch(b|0){case 0:case -1:{h=2;break}default:{b=b+-1|0;if(b>>>0<=(f-(c[g>>2]|0)|0)>>>0)if(!b)h=0;else while(1){d=a[h>>0]|0;f=c[g>>2]|0;c[g>>2]=f+1;a[f>>0]=d;b=b+-1|0;if(!b){h=0;break}else h=h+1|0}else h=1}}i=j;return h|0}function sE(a){a=a|0;var b=0,d=0;a=a+8|0;b=bv(c[a>>2]|0)|0;d=tv(0,0,4)|0;if(b)bv(b)|0;if(!d){a=c[a>>2]|0;if(a){a=bv(a)|0;if(!a)a=0;else{bv(a)|0;a=0}}else a=1}else a=-1;return a|0}function tE(a){a=a|0;return 0} +function Ev(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[1545]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=Vu(_a(145,h|0)|0)|0}else{Xa(144,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=Vu(_a(145,g|0)|0)|0;ab(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){h=c[k>>2]|0;g=b+4|0;c[g>>2]=h;c[b+8>>2]=h+(f-j);if(!(c[l>>2]|0))f=e;else{c[g>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function Fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((Vu(Za(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function Gv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[1545]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=Vu($a(146,n|0)|0)|0}else{Xa(145,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=Vu($a(146,m|0)|0)|0;ab(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function Hv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(tc(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=Gv(b,d,e)|0;i=g;return f|0}function Iv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=uw(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;gH(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function Jv(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)Pc[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function Kv(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Lv(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;if((c[a+8>>2]|0)==0?(Jv(a)|0)!=0:0)b=-1;else if((Pc[c[a+32>>2]&63](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function Mv(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){rb(6208);d=c[a+52>>2]|0;b=a+56|0;if(d)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b)c[b+52>>2]=d;if((c[1551]|0)==(a|0))c[1551]=b;uc(6208)}b=Ov(a)|0;b=Nc[c[a+12>>2]&127](a)|0|b;d=c[a+92>>2]|0;if(d)dx(d);if(!e)dx(a);return b|0}function Nv(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Av(a)|0)==0;a=(c[a>>2]|0)>>>5&1}else a=(c[a>>2]|0)>>>5&1;return a|0}function Ov(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Sw(a)|0;break}d=(Av(a)|0)==0;b=Sw(a)|0;if(!d)Bv(a)}else{if(!(c[1610]|0))b=0;else b=Ov(c[1610]|0)|0;rb(6208);a=c[1551]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Av(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Sw(a)|0|b;if(d)Bv(a);a=c[a+56>>2]|0}while((a|0)!=0);uc(6208)}while(0);return b|0}function Pv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c[f+76>>2]|0)>-1)o=Av(f)|0;else o=0;g=e+-1|0;if((e|0)<2){p=f+74|0;n=a[p>>0]|0;a[p>>0]=n+255|n;if(o)Bv(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){m=f+4|0;n=f+8|0;h=b;while(1){i=c[m>>2]|0;q=i;k=(c[n>>2]|0)-q|0;j=uw(i,10,k)|0;r=(j|0)==0;j=r?k:1-q+j|0;q=j>>>0>>0;j=q?j:g;gH(h|0,i|0,j|0)|0;i=c[m>>2]|0;k=i+j|0;c[m>>2]=k;e=h+j|0;l=g-j|0;if(!(r&q)){p=18;break a}if(k>>>0<(c[n>>2]|0)>>>0){j=j+1|0;c[m>>2]=i+j;i=d[k>>0]|0}else{g=Lv(f)|0;if((g|0)<0)break;j=j+1|0;i=g}g=l+-1|0;h=h+j|0;a[e>>0]=i;if(!((g|0)!=0&(i&255|0)!=10)){e=h;p=18;break a}}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)p=18;else b=0}else{e=b;p=18}while(0);if((p|0)==18)if(!b)b=0;else a[e>>0]=0;if(o)Bv(f)}return b|0}function Qv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(uw(50226,a[d>>0]|0,4)|0){h=zv(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=Vu(tb(5,e|0)|0)|0;if((e|0)>=0){b=yv(e,d)|0;if(!b){c[f>>2]=e;sb(6,f|0)|0;b=0}}else b=0}else{c[(Pu()|0)>>2]=22;b=0}i=g;return b|0}function Rv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=kw(a,b,f)|0;i=e;return d|0}function Sv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(Av(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(f=d+20|0,g=c[f>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[f>>2]=g+1;a[g>>0]=b;e=b&255}else e=Cv(d,b)|0;Bv(d)}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(h=d+20|0,e=c[h>>2]|0,e>>>0<(c[d+16>>2]|0)>>>0):0){c[h>>2]=e+1;a[e>>0]=b;e=b&255;break}e=Cv(d,b)|0}while(0);return e|0}function Tv(a,b){a=a|0;b=b|0;return (aw(a,Fw(a)|0,1,b)|0)+-1|0}function Uv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=$(e,d)|0;if((c[f+76>>2]|0)>-1)k=Av(f)|0;else k=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0>>0?i:j;gH(b|0,h|0,i|0)|0;c[g>>2]=h+i;b=b+i|0;g=j-i|0}else g=j;a:do if(!g)l=13;else{i=f+32|0;h=g;while(1){if(Jv(f)|0){e=h;break}g=Pc[c[i>>2]&63](f,b,h)|0;if((g+1|0)>>>0<2){e=h;break}if((h|0)==(g|0)){l=13;break a}else{b=b+g|0;h=h-g|0}}if(k)Bv(f);e=((j-e|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(k)Bv(f);return e|0}function Vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;f=a+20|0;e=a+28|0;if((c[f>>2]|0)>>>0>(c[e>>2]|0)>>>0?(Pc[c[a+36>>2]&63](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[e>>2]=0;c[f>>2]=0;if((Pc[c[a+40>>2]&63](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function Wv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(Av(a)|0)==0;b=Vv(a,b,d)|0;if(!e)Bv(a)}else b=Vv(a,b,d)|0;return b|0}function Xv(a,b,c){a=a|0;b=b|0;c=c|0;return Wv(a,b,c)|0}function Yv(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Pc[c[a+40>>2]&63](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function Zv(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Av(a)|0)==0;a=Yv(a)|0}else a=Yv(a)|0;return a|0}function _v(a){a=a|0;return Zv(a)|0}function $v(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Kv(e)|0)){g=c[f>>2]|0;h=4}else f=0;else h=4;a:do if((h|0)==4){i=e+20|0;h=c[i>>2]|0;if((g-h|0)>>>0>>0){f=Pc[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((Pc[c[e+36>>2]&63](e,b,f)|0)>>>0>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);gH(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function aw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=$(d,b)|0;if((c[e+76>>2]|0)>-1){g=(Av(e)|0)==0;a=$v(a,f,e)|0;if(!g)Bv(e)}else a=$v(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function bw(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(Av(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=Lv(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=Lv(a)|0;break}}while(0);return b|0}function cw(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Av(a)|0)==0;Vv(a,0,0)|0;c[a>>2]=c[a>>2]&-33;if(!b)Bv(a)}else{Vv(a,0,0)|0;c[a>>2]=c[a>>2]&-33}return}function dw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=mw(a,b,d,g)|0;i=f;return e|0}function ew(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=nw(a,b,f)|0;i=e;return d|0}function fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=ow(a,b,f)|0;i=e;return d|0}function gw(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+48|0;g=j+16|0;f=j;d=j+20|0;e=0;while(1){a=hw(d)|0;if(!a){a=0;break}c[f>>2]=a;c[f+4>>2]=32962;c[f+8>>2]=384;b=Vu(tb(5,f|0)|0)|0;e=e+1|0;if((b|0)>-1){h=5;break}if((e|0)>=100){a=0;break}}if((h|0)==5){h=yv(b,50230)|0;c[g>>2]=a;qb(10,g|0)|0;a=h}i=j;return a|0}function hw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+64|0;g=l+32|0;j=l+24|0;h=l+8|0;e=l;k=l+48|0;f=l+40|0;c[k>>2]=(a|0)==0?50233:a;c[e>>2]=50253;c[e+4>>2]=7;if(!(Vb(33,e|0)|0)){b=f+4|0;d=k;e=0;while(1){c[h>>2]=0;c[h+4>>2]=f;c[h+8>>2]=0;Db(265,h|0)|0;a=c[k>>2]|0;m=c[b>>2]^d^a;n=c[1625]|0;c[1625]=n+1;c[j>>2]=n;c[j+4>>2]=m;dw(a,20,50258,j)|0;c[g>>2]=c[k>>2];c[g+4>>2]=0;if(Vb(33,g|0)|0){a=e;break}a=e+1|0;if((e|0)<100)e=a;else break}a=(a|0)>99?0:c[k>>2]|0}else a=0;i=l;return a|0}function iw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;do if((b|0)!=-1){if((c[d+76>>2]|0)>-1)g=Av(d)|0;else g=0;if(!((c[d+8>>2]|0)==0?(Jv(d)|0)!=0:0))h=6;if((h|0)==6?(e=d+4|0,f=c[e>>2]|0,f>>>0>((c[d+44>>2]|0)+-8|0)>>>0):0){h=f+-1|0;c[e>>2]=h;a[h>>0]=b;c[d>>2]=c[d>>2]&-17;if(!g)break;Bv(d);break}if(g){Bv(d);b=-1}else b=-1}else b=-1;while(0);return b|0}function jw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j;f=cx(240)|0;do if(f){c[e>>2]=c[d>>2];e=mw(f,240,b,e)|0;if(e>>>0<240){b=fx(f,e+1|0)|0;c[a>>2]=(b|0)!=0?b:f;break}dx(f);if((e|0)>=0?(h=e+1|0,g=cx(h)|0,c[a>>2]=g,(g|0)!=0):0)e=mw(g,h,b,d)|0;else e=-1}else e=-1;while(0);i=j;return e|0}function kw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+224|0;o=s+80|0;r=s+96|0;q=s;p=s+136|0;f=r;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((Tw(0,d,o,q,r)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)m=Av(b)|0;else m=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=p;j=b+28|0;c[j>>2]=p;k=b+20|0;c[k>>2]=p;c[e>>2]=80;l=b+16|0;c[l>>2]=p+80;f=Tw(b,d,o,q,r)|0;if(h){Pc[c[b+36>>2]&63](b,0,0)|0;f=(c[k>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[k>>2]=0}}else f=Tw(b,d,o,q,r)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(m)Bv(b);e=(e&32|0)==0?f:-1}i=s;return e|0}function lw(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;P=i;i=i+304|0;H=P+16|0;J=P+8|0;I=P+33|0;K=P;y=P+32|0;if((c[e+76>>2]|0)>-1)O=Av(e)|0;else O=0;k=a[f>>0]|0;a:do if(k<<24>>24){L=e+4|0;M=e+100|0;G=e+108|0;z=e+8|0;A=I+10|0;B=I+33|0;C=J+4|0;E=I+46|0;F=I+94|0;m=k;k=0;n=f;s=0;l=0;f=0;b:while(1){c:do if(!(Nu(m&255)|0)){m=(a[n>>0]|0)==37;d:do if(m){q=n+1|0;o=a[q>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{x=0;o=n+2|0;break}default:{o=(o&255)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[H>>2]=c[j>>2];while(1){x=(c[H>>2]|0)+(4-1)&~(4-1);m=c[x>>2]|0;c[H>>2]=x+4;if(o>>>0>1)o=o+-1|0;else break}x=m;o=n+3|0;break e}o=(c[j>>2]|0)+(4-1)&~(4-1);x=c[o>>2]|0;c[j>>2]=o+4;o=q}}while(0);m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0<10){m=0;while(1){q=(m*10|0)+-48+n|0;o=o+1|0;m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0>=10)break;else m=q}}else q=0;if(m<<24>>24==109){o=o+1|0;r=a[o>>0]|0;m=(x|0)!=0&1;l=0;f=0}else{r=m;m=0}n=o+1|0;switch(r&255|0){case 104:{w=(a[n>>0]|0)==104;n=w?o+2|0:n;o=w?-2:-1;break}case 108:{w=(a[n>>0]|0)==108;n=w?o+2|0:n;o=w?3:1;break}case 106:{o=3;break}case 116:case 122:{o=1;break}case 76:{o=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=o;o=0;break}default:{N=152;break b}}r=d[n>>0]|0;t=(r&47|0)==3;r=t?r|32:r;t=t?1:o;switch(r|0){case 99:{w=s;v=(q|0)<1?1:q;break}case 91:{w=s;v=q;break}case 110:{if(!x){o=s;break c}switch(t|0){case -2:{a[x>>0]=s;o=s;break c}case -1:{b[x>>1]=s;o=s;break c}case 0:{c[x>>2]=s;o=s;break c}case 1:{c[x>>2]=s;o=s;break c}case 3:{o=x;c[o>>2]=s;c[o+4>>2]=((s|0)<0)<<31>>31;o=s;break c}default:{o=s;break c}}}default:{Tu(e,0);do{o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=Uu(e)|0}while((Nu(o)|0)!=0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}w=(c[G>>2]|0)+s+o-(c[z>>2]|0)|0;v=q}}Tu(e,v);o=c[L>>2]|0;q=c[M>>2]|0;if(o>>>0>>0)c[L>>2]=o+1;else{if((Uu(e)|0)<0){N=152;break b}q=c[M>>2]|0}if(q)c[L>>2]=(c[L>>2]|0)+-1;f:do switch(r|0){case 91:case 99:case 115:{u=(r|0)==99;g:do if((r&239|0)==99){iH(I|0,-1,257)|0;a[I>>0]=0;if((r|0)==115){a[B>>0]=0;a[A>>0]=0;a[A+1>>0]=0;a[A+2>>0]=0;a[A+3>>0]=0;a[A+4>>0]=0}}else{Q=n+1|0;s=(a[Q>>0]|0)==94;o=s&1;r=s?Q:n;n=s?n+2|0:Q;iH(I|0,s&1|0,257)|0;a[I>>0]=0;switch(a[n>>0]|0){case 45:{s=(o^1)&255;a[E>>0]=s;n=r+2|0;break}case 93:{s=(o^1)&255;a[F>>0]=s;n=r+2|0;break}default:s=(o^1)&255}while(1){o=a[n>>0]|0;h:do switch(o<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{r=n+1|0;o=a[r>>0]|0;switch(o<<24>>24){case 93:case 0:{o=45;break h}default:{}}n=a[n+-1>>0]|0;if((n&255)<(o&255)){n=n&255;do{n=n+1|0;a[I+n>>0]=s;o=a[r>>0]|0}while((n|0)<(o&255|0));n=r}else n=r;break}default:{}}while(0);a[I+((o&255)+1)>>0]=s;n=n+1|0}}while(0);r=u?v+1|0:31;s=(t|0)==1;t=(m|0)!=0;i:do if(s){if(t){f=cx(r<<2)|0;if(!f){l=0;N=152;break b}}else f=x;c[J>>2]=0;c[C>>2]=0;l=0;j:while(1){q=(f|0)==0;do{k:while(1){o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=Uu(e)|0;if(!(a[I+(o+1)>>0]|0))break j;a[y>>0]=o;switch(pv(K,y,1,J)|0){case -1:{l=0;N=152;break b}case -2:break;default:break k}}if(!q){c[f+(l<<2)>>2]=c[K>>2];l=l+1|0}}while(!(t&(l|0)==(r|0)));l=r<<1|1;o=fx(f,l<<2)|0;if(!o){l=0;N=152;break b}Q=r;r=l;f=o;l=Q}if(!(qv(J)|0)){l=0;N=152;break b}else{q=l;l=0}}else{if(t){l=cx(r)|0;if(!l){l=0;f=0;N=152;break b}else o=0;while(1){do{f=c[L>>2]|0;if(f>>>0<(c[M>>2]|0)>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=Uu(e)|0;if(!(a[I+(f+1)>>0]|0)){q=o;f=0;break i}a[l+o>>0]=f;o=o+1|0}while((o|0)!=(r|0));f=r<<1|1;o=fx(l,f)|0;if(!o){f=0;N=152;break b}else{Q=r;r=f;l=o;o=Q}}}if(!x){l=q;while(1){f=c[L>>2]|0;if(f>>>0>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=Uu(e)|0;if(!(a[I+(f+1)>>0]|0)){q=0;l=0;f=0;break i}l=c[M>>2]|0}}else{l=0;while(1){f=c[L>>2]|0;if(f>>>0>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=Uu(e)|0;if(!(a[I+(f+1)>>0]|0)){q=l;l=x;f=0;break i}a[x+l>>0]=f;q=c[M>>2]|0;l=l+1|0}}}while(0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}o=o-(c[z>>2]|0)+(c[G>>2]|0)|0;if(!o)break b;if(!((o|0)==(v|0)|u^1))break b;do if(t)if(s){c[x>>2]=f;break}else{c[x>>2]=l;break}while(0);if(!u){if(f)c[f+(q<<2)>>2]=0;if(!l){l=0;break f}a[l+q>>0]=0}break}case 120:case 88:case 112:{o=16;N=134;break}case 111:{o=8;N=134;break}case 117:case 100:{o=10;N=134;break}case 105:{o=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+Ru(e,t,0);if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if(x)switch(t|0){case 0:{g[x>>2]=p;break f}case 1:{h[x>>3]=p;break f}case 2:{h[x>>3]=p;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;o=Su(e,o,0,-1,-1)|0;if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if((x|0)!=0&(r|0)==112){c[x>>2]=o;break}if(x)switch(t|0){case -2:{a[x>>0]=o;break l}case -1:{b[x>>1]=o;break l}case 0:{c[x>>2]=o;break l}case 1:{c[x>>2]=o;break l}case 3:{Q=x;c[Q>>2]=o;c[Q+4>>2]=D;break l}default:break l}}while(0);k=((x|0)!=0&1)+k|0;o=(c[G>>2]|0)+w+(c[L>>2]|0)-(c[z>>2]|0)|0;break c}while(0);n=n+(m&1)|0;Tu(e,0);m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=Uu(e)|0;if((m|0)!=(d[n>>0]|0)){N=21;break b}o=s+1|0}else{while(1){m=n+1|0;if(!(Nu(d[m>>0]|0)|0))break;else n=m}Tu(e,0);do{m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=Uu(e)|0}while((Nu(m)|0)!=0);m=c[L>>2]|0;if(c[M>>2]|0){m=m+-1|0;c[L>>2]=m}o=(c[G>>2]|0)+s+m-(c[z>>2]|0)|0}while(0);n=n+1|0;m=a[n>>0]|0;if(!(m<<24>>24))break a;else s=o}if((N|0)==21){if(c[M>>2]|0)c[L>>2]=(c[L>>2]|0)+-1;if((k|0)!=0|(m|0)>-1)break;else{k=0;N=153}}else if((N|0)==152)if(!k){k=m;N=153}if((N|0)==153){m=k;k=-1}if(m){dx(l);dx(f)}}else k=0;while(0);if(O)Bv(e);i=P;return k|0}function mw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=6504;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(Pu()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=kw(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function nw(a,b,c){a=a|0;b=b|0;c=c|0;return mw(a,2147483647,b,c)|0}function ow(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;f=e;h=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=37;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=lw(e,b,d)|0;i=g;return h|0}function pw(b){b=b|0;var c=0,d=0,e=0,f=0;while(1){c=b+1|0;if(!(Nu(a[b>>0]|0)|0))break;else b=c}d=a[b>>0]|0;switch(d<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:e=0}if((f|0)==5){b=c;d=a[c>>0]|0}c=(d<<24>>24)+-48|0;if(c>>>0<10){d=b;b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return ((e|0)!=0?b:0-b|0)|0}function qw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;o=r+8|0;p=r;f=$(d,b)|0;n=p;c[n>>2]=1;c[n+4>>2]=0;if(f){j=f-d|0;c[o+4>>2]=d;c[o>>2]=d;g=d;b=d;h=2;while(1){b=b+d+g|0;c[o+(h<<2)>>2]=b;if(b>>>0>>0){n=g;g=b;h=h+1|0;b=n}else break}n=0-d|0;k=a+j|0;m=p+4|0;if((j|0)>0){j=k;f=1;h=1;while(1){do if((f&3|0)==3){Vw(a,d,e,h,o);l=c[m>>2]|0;b=l<<30|(c[p>>2]|0)>>>2;c[p>>2]=b;c[m>>2]=l>>>2;h=h+2|0}else{b=h+-1|0;if((c[o+(b<<2)>>2]|0)>>>0<(j-a|0)>>>0)Vw(a,d,e,h,o);else Ww(a,d,e,p,h,0,o);if((h|0)==1){b=c[p>>2]|0;c[m>>2]=b>>>31|c[m>>2]<<1;b=b<<1;c[p>>2]=b;h=0;break}if(b>>>0>31){f=c[p>>2]|0;c[m>>2]=f;c[p>>2]=0;b=h+-33|0;g=0}else{f=c[m>>2]|0;g=c[p>>2]|0}c[m>>2]=g>>>(32-b|0)|f<>2]=b;h=1}while(0);f=b|1;c[p>>2]=f;b=a+d|0;if(b>>>0>=k>>>0){f=b;break}else a=b}}else{f=a;h=1}Ww(f,d,e,p,h,0,o);l=p+4|0;b=c[p>>2]|0;if(!((h|0)==1&(b|0)==1&(c[l>>2]|0)==0)){g=f;while(1){if((h|0)<2){f=b+-1|0;do if(f){if(!(f&1)){j=f;f=0;do{f=f+1|0;j=j>>>1}while((j&1|0)==0);if(!f)q=24}else q=24;if((q|0)==24){q=0;k=c[m>>2]|0;if(!k){f=64;q=30;break}if(!(k&1)){j=k;f=0}else{a=0;j=k;f=0;break}while(1){a=f+1|0;j=j>>>1;if(j&1){j=a;break}else f=a}if(!j){a=0;j=k;f=0;break}else f=f+33|0}if(f>>>0>31)q=30;else{a=f;j=c[m>>2]|0}}else{f=32;q=30}while(0);if((q|0)==30){q=0;b=c[m>>2]|0;c[p>>2]=b;c[m>>2]=0;a=f+-32|0;j=0}c[p>>2]=j<<32-a|b>>>a;c[m>>2]=j>>>a;g=g+n|0;f=f+h|0}else{a=b>>>30;k=a|c[m>>2]<<2;f=h+-2|0;c[p>>2]=(b<<1&2147483646|a<<31)^3;c[m>>2]=k>>>1;Ww(g+(0-((c[o+(f<<2)>>2]|0)+d))|0,d,e,p,h+-1|0,1,o);k=c[p>>2]|0;c[m>>2]=k>>>31|c[m>>2]<<1;c[p>>2]=k<<1|1;g=g+n|0;Ww(g,d,e,p,f,1,o)}b=c[p>>2]|0;if((f|0)==1&(b|0)==1&(c[l>>2]|0)==0)break;else h=f}}}i=r;return}function rw(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Xw(a,b,2))}function sw(a,b,c){a=a|0;b=b|0;c=c|0;a=Yw(a,b,c,-1,-1)|0;return a|0}function tw(a,b,c){a=a|0;b=b|0;c=c|0;a=Yw(a,b,c,0,-2147483648)|0;return a|0}function uw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=$(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return ((e|0)!=0?b:0)|0}function vw(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function ww(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function xw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);iH(b|0,0,e|0)|0;return b|0}function yw(a,b){a=a|0;b=b|0;Cw(a+(Fw(a)|0)|0,b)|0;return a|0}function zw(b,c){b=b|0;c=c|0;b=Aw(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Aw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(Fw(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=$(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009)break b;b=b+4|0;e=c[b>>2]|0}while(((e&-2139062144^-2139062144)&e+-16843009|0)==0);while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function Bw(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function Cw(a,b){a=a|0;b=b|0;ww(a,b)|0;return a|0}function Dw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;e=a[d>>0]|0;if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;a:do if(!(d<<24>>24))e=b;else{e=b;do{if(c[f+(((d&255)>>>5&255)<<2)>>2]&1<<(d&31))break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}while(0);e=e-b|0}else e=(Aw(b,e<<24>>24)|0)-b|0;i=g;return e|0}function Ew(a){a=a|0;var b=0,c=0;c=(Fw(a)|0)+1|0;b=cx(c)|0;if(!b)b=0;else gH(b|0,a|0,c|0)|0;return b|0}function Fw(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function Gw(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=b+(Fw(b)|0)|0;a:do if(d)while(1){f=a[c>>0]|0;if(!(f<<24>>24))break a;d=d+-1|0;g=e+1|0;a[e>>0]=f;if(!d){e=g;break}else{c=c+1|0;e=g}}while(0);a[e>>0]=0;return b|0}function Hw(a,b,c){a=a|0;b=b|0;c=c|0;xw(a,b,c)|0;return a|0}function Iw(a,b){a=a|0;b=b|0;return vw(a,b,(Fw(a)|0)+1|0)|0}function Jw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;f=a[d>>0]|0;do if(!(f<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==f<<24>>24)d=d+1|0;else break;d=d-b|0;break}else{e=d;d=f}do{f=g+(((d&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(d&31);e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[g+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);i=h;return d|0}function Kw(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b){b=c[1654]|0;if(!b)b=0;else{f=b;e=3}}else{f=b;e=3}do if((e|0)==3){e=Jw(f,d)|0;b=f+e|0;if(!(a[b>>0]|0)){c[1654]=0;b=0;break}e=(Dw(b,d)|0)+e|0;d=f+e|0;c[1654]=d;if(!(a[d>>0]|0)){c[1654]=0;break}else{c[1654]=f+(e+1);a[d>>0]=0;break}}while(0);return b|0}function Lw(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Mw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}return a|0}function Nw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(d|0)==0;if(a-b>>2>>>0>>0){if(!e)do{d=d+-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2]}while((d|0)!=0)}else if(!e){e=b;b=a;while(1){d=d+-1|0;c[b>>2]=c[e>>2];if(!d)break;else{e=e+4|0;b=b+4|0}}}return a|0}function Ow(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d){e=a;while(1){d=d+-1|0;c[e>>2]=b;if(!d)break;else e=e+4|0}}return a|0}function Pw(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Uu(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Uu(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Uu(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=pH(f|0,b|0,10,0)|0;f=D;e=cH(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=cH(e|0,D|0,b|0,f|0)|0;b=D;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Uu(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Uu(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=bH(0,0,g|0,b|0)|0;f=a?D:b;e=a?e:g}D=f;return e|0}function Qw(a){a=a|0;if(!(c[a+68>>2]|0))Bv(a);return}function Rw(a){a=a|0;if(!(c[a+68>>2]|0))Bv(a);return}function Sw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Pc[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0>>0)Pc[c[a+40>>2]&63](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function Tw(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+624|0;ca=ha+24|0;ea=ha+16|0;da=ha+588|0;Y=ha+576|0;ba=ha;V=ha+536|0;ga=ha+8|0;fa=ha+528|0;M=(e|0)!=0;N=V+40|0;U=N;V=V+39|0;W=ga+4|0;X=Y+12|0;Y=Y+11|0;Z=da;_=X;aa=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ca+288|0;R=da+9|0;S=R;T=da+8|0;m=0;w=f;n=0;f=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(Pu()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[w>>0]|0;if(!(n<<24>>24)){L=245;break}else o=w;b:while(1){switch(n<<24>>24){case 37:{n=o;L=9;break b}case 0:{n=o;break b}default:{}}K=o+1|0;n=a[K>>0]|0;o=K}c:do if((L|0)==9)while(1){L=0;if((a[n+1>>0]|0)!=37)break c;o=o+1|0;n=n+2|0;if((a[n>>0]|0)==37)L=9;else break}while(0);y=o-w|0;if(M?(c[e>>2]&32|0)==0:0)$v(w,y,e)|0;if((o|0)!=(w|0)){w=n;n=y;continue}r=n+1|0;o=a[r>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10){K=(a[n+2>>0]|0)==36;r=K?n+3|0:r;o=a[r>>0]|0;u=K?p:-1;f=K?1:f}else u=-1;n=o<<24>>24;d:do if((n&-32|0)==32){p=0;while(1){if(!(1<>24)+-32|p;r=r+1|0;o=a[r>>0]|0;n=o<<24>>24;if((n&-32|0)!=32){s=p;n=r;break}}}else{s=0;n=r}while(0);do if(o<<24>>24==42){p=n+1|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[l+(o<<2)>>2]=10;f=1;n=n+3|0;o=c[j+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(f){m=-1;break a}if(!M){x=s;n=p;f=0;K=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);o=c[f>>2]|0;c[g>>2]=f+4;f=0;n=p}if((o|0)<0){x=s|8192;K=0-o|0}else{x=s;K=o}}else{p=(o<<24>>24)+-48|0;if(p>>>0<10){o=0;do{o=(o*10|0)+p|0;n=n+1|0;p=(a[n>>0]|0)+-48|0}while(p>>>0<10);if((o|0)<0){m=-1;break a}else{x=s;K=o}}else{x=s;K=0}}while(0);e:do if((a[n>>0]|0)==46){p=n+1|0;o=a[p>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10){n=p;o=0}else{n=p;r=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){r=o;break e}}}p=n+2|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+3>>0]|0)==36:0){c[l+(o<<2)>>2]=10;n=n+4|0;r=c[j+((a[p>>0]|0)+-48<<3)>>2]|0;break}if(f){m=-1;break a}if(M){n=(c[g>>2]|0)+(4-1)&~(4-1);r=c[n>>2]|0;c[g>>2]=n+4;n=p}else{n=p;r=0}}else r=-1;while(0);t=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}p=n+1|0;o=a[52342+(t*58|0)+o>>0]|0;s=o&255;if((s+-1|0)>>>0<8){n=p;t=s}else{J=p;break}}if(!(o<<24>>24)){m=-1;break}p=(u|0)>-1;do if(o<<24>>24==19)if(p){m=-1;break a}else L=52;else{if(p){c[l+(u<<2)>>2]=s;H=j+(u<<3)|0;I=c[H+4>>2]|0;L=ba;c[L>>2]=c[H>>2];c[L+4>>2]=I;L=52;break}if(!M){m=0;break a}$w(ba,s,g)}while(0);if((L|0)==52?(L=0,!M):0){w=J;n=y;continue}u=a[n>>0]|0;u=(t|0)!=0&(u&15|0)==3?u&-33:u;p=x&-65537;I=(x&8192|0)==0?x:p;f:do switch(u|0){case 110:switch(t|0){case 0:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 1:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 2:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}case 3:{b[c[ba>>2]>>1]=m;w=J;n=y;continue a}case 4:{a[c[ba>>2]>>0]=m;w=J;n=y;continue a}case 6:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 7:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}default:{w=J;n=y;continue a}}case 112:{t=I|8;r=r>>>0>8?r:8;u=120;L=64;break}case 88:case 120:{t=I;L=64;break}case 111:{p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)n=N;else{n=N;do{n=n+-1|0;a[n>>0]=o&7|48;o=eH(o|0,p|0,3)|0;p=D}while(!((o|0)==0&(p|0)==0))}if(!(I&8)){o=I;t=0;s=52822;L=77}else{t=U-n+1|0;o=I;r=(r|0)<(t|0)?t:r;t=0;s=52822;L=77}break}case 105:case 100:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;if((o|0)<0){n=bH(0,0,n|0,o|0)|0;o=D;p=ba;c[p>>2]=n;c[p+4>>2]=o;p=1;s=52822;L=76;break f}if(!(I&2048)){s=I&1;p=s;s=(s|0)==0?52822:52824;L=76}else{p=1;s=52823;L=76}break}case 117:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;p=0;s=52822;L=76;break}case 99:{a[V>>0]=c[ba>>2];w=V;o=1;t=0;u=52822;n=N;break}case 109:{n=Qu(c[(Pu()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ba>>2]|0;n=(n|0)!=0?n:52832;L=82;break}case 67:{c[ga>>2]=c[ba>>2];c[W>>2]=0;c[ba>>2]=ga;r=-1;L=86;break}case 83:{if(!r){bx(e,32,K,0,I);n=0;L=98}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ba>>3];c[ea>>2]=0;h[k>>3]=q;if((c[k+4>>2]|0)>=0)if(!(I&2048)){H=I&1;G=H;H=(H|0)==0?52840:52845}else{G=1;H=52842}else{q=-q;G=1;H=52839}h[k>>3]=q;F=c[k+4>>2]&2146435072;do if(F>>>0<2146435072|(F|0)==2146435072&0<0){v=+iv(q,ea)*2.0;o=v!=0.0;if(o)c[ea>>2]=(c[ea>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?H:H+9|0;x=G|2;n=12-r|0;do if(!(r>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[y>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);o=c[ea>>2]|0;n=(o|0)<0?0-o|0:o;n=ax(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(o>>31&2)+43;t=n+-2|0;a[t>>0]=u+15;s=(r|0)<1;p=(I&8|0)==0;o=da;while(1){H=~~q;n=o+1|0;a[o>>0]=d[52806+H>>0]|w;q=(q-+(H|0))*16.0;do if((n-Z|0)==1){if(p&(s&q==0.0))break;a[n>>0]=46;n=o+2|0}while(0);if(!(q!=0.0))break;else o=n}r=(r|0)!=0&(O+n|0)<(r|0)?P+r-t|0:aa-t+n|0;p=r+x|0;bx(e,32,K,p,I);if(!(c[e>>2]&32))$v(y,x,e)|0;bx(e,48,K,p,I^65536);n=n-Z|0;if(!(c[e>>2]&32))$v(da,n,e)|0;o=_-t|0;bx(e,48,r-(n+o)|0,0,0);if(!(c[e>>2]&32))$v(t,o,e)|0;bx(e,32,K,p,I^8192);n=(p|0)<(K|0)?K:p;break}n=(r|0)<0?6:r;if(o){o=(c[ea>>2]|0)+-28|0;c[ea>>2]=o;q=v*268435456.0}else{q=v;o=c[ea>>2]|0}F=(o|0)<0?ca:Q;E=F;o=F;do{B=~~q>>>0;c[o>>2]=B;o=o+4|0;q=(q-+(B>>>0))*1.0e9}while(q!=0.0);p=o;o=c[ea>>2]|0;if((o|0)>0){s=F;while(1){t=(o|0)>29?29:o;r=p+-4|0;do if(r>>>0>>0)r=s;else{o=0;do{B=jH(c[r>>2]|0,0,t|0)|0;B=cH(B|0,D|0,o|0,0)|0;o=D;A=rH(B|0,o|0,1e9,0)|0;c[r>>2]=A;o=qH(B|0,o|0,1e9,0)|0;r=r+-4|0}while(r>>>0>=s>>>0);if(!o){r=s;break}r=s+-4|0;c[r>>2]=o}while(0);while(1){if(p>>>0<=r>>>0)break;o=p+-4|0;if(!(c[o>>2]|0))p=o;else break}o=(c[ea>>2]|0)-t|0;c[ea>>2]=o;if((o|0)>0)s=r;else break}}else r=F;if((o|0)<0){y=((n+25|0)/9|0)+1|0;z=(C|0)==102;w=r;while(1){x=0-o|0;x=(x|0)>9?9:x;do if(w>>>0

>>0){o=(1<>>x;r=0;t=w;do{B=c[t>>2]|0;c[t>>2]=(B>>>x)+r;r=$(B&o,s)|0;t=t+4|0}while(t>>>0

>>0);o=(c[w>>2]|0)==0?w+4|0:w;if(!r){r=o;break}c[p>>2]=r;r=o;p=p+4|0}else r=(c[w>>2]|0)==0?w+4|0:w;while(0);o=z?F:r;p=(p-o>>2|0)>(y|0)?o+(y<<2)|0:p;o=(c[ea>>2]|0)+x|0;c[ea>>2]=o;if((o|0)>=0){w=r;break}else w=r}}else w=r;do if(w>>>0

>>0){o=(E-w>>2)*9|0;s=c[w>>2]|0;if(s>>>0<10)break;else r=10;do{r=r*10|0;o=o+1|0}while(s>>>0>=r>>>0)}else o=0;while(0);A=(C|0)==103;B=(n|0)!=0;r=n-((C|0)!=102?o:0)+((B&A)<<31>>31)|0;if((r|0)<(((p-E>>2)*9|0)+-9|0)){t=r+9216|0;z=(t|0)/9|0;r=F+(z+-1023<<2)|0;t=((t|0)%9|0)+1|0;if((t|0)<9){s=10;do{s=s*10|0;t=t+1|0}while((t|0)!=9)}else s=10;x=c[r>>2]|0;y=(x>>>0)%(s>>>0)|0;if((y|0)==0?(F+(z+-1022<<2)|0)==(p|0):0)s=w;else L=163;do if((L|0)==163){L=0;v=(((x>>>0)/(s>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;t=(s|0)/2|0;do if(y>>>0>>0)q=.5;else{if((y|0)==(t|0)?(F+(z+-1022<<2)|0)==(p|0):0){q=1.0;break}q=1.5}while(0);do if(G){if((a[H>>0]|0)!=45)break;v=-v;q=-q}while(0);t=x-y|0;c[r>>2]=t;if(!(v+q!=v)){s=w;break}C=t+s|0;c[r>>2]=C;if(C>>>0>999999999){o=w;while(1){s=r+-4|0;c[r>>2]=0;if(s>>>0>>0){o=o+-4|0;c[o>>2]=0}C=(c[s>>2]|0)+1|0;c[s>>2]=C;if(C>>>0>999999999)r=s;else{w=o;r=s;break}}}o=(E-w>>2)*9|0;t=c[w>>2]|0;if(t>>>0<10){s=w;break}else s=10;do{s=s*10|0;o=o+1|0}while(t>>>0>=s>>>0);s=w}while(0);C=r+4|0;w=s;p=p>>>0>C>>>0?C:p}y=0-o|0;while(1){if(p>>>0<=w>>>0){z=0;C=p;break}r=p+-4|0;if(!(c[r>>2]|0))p=r;else{z=1;C=p;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(o|0)&(o|0)>-5){u=u+-1|0;n=n+-1-o|0}else{u=u+-2|0;n=n+-1|0}p=I&8;if(p)break;do if(z){p=c[C+-4>>2]|0;if(!p){r=9;break}if(!((p>>>0)%10|0)){s=10;r=0}else{r=0;break}do{s=s*10|0;r=r+1|0}while(((p>>>0)%(s>>>0)|0|0)==0)}else r=9;while(0);p=((C-E>>2)*9|0)+-9|0;if((u|32|0)==102){p=p-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}else{p=p+o-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}}else p=I&8;while(0);x=n|p;s=(x|0)!=0&1;t=(u|32|0)==102;if(t){o=(o|0)>0?o:0;u=0}else{r=(o|0)<0?y:o;r=ax(r,((r|0)<0)<<31>>31,X)|0;if((_-r|0)<2)do{r=r+-1|0;a[r>>0]=48}while((_-r|0)<2);a[r+-1>>0]=(o>>31&2)+43;E=r+-2|0;a[E>>0]=u;o=_-E|0;u=E}y=G+1+n+s+o|0;bx(e,32,K,y,I);if(!(c[e>>2]&32))$v(H,G,e)|0;bx(e,48,K,y,I^65536);do if(t){r=w>>>0>F>>>0?F:w;o=r;do{p=ax(c[o>>2]|0,0,R)|0;do if((o|0)==(r|0)){if((p|0)!=(R|0))break;a[T>>0]=48;p=T}else{if(p>>>0<=da>>>0)break;do{p=p+-1|0;a[p>>0]=48}while(p>>>0>da>>>0)}while(0);if(!(c[e>>2]&32))$v(p,S-p|0,e)|0;o=o+4|0}while(o>>>0<=F>>>0);do if(x){if(c[e>>2]&32)break;$v(52874,1,e)|0}while(0);if((n|0)>0&o>>>0>>0){p=o;while(1){o=ax(c[p>>2]|0,0,R)|0;if(o>>>0>da>>>0)do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0);if(!(c[e>>2]&32))$v(o,(n|0)>9?9:n,e)|0;p=p+4|0;o=n+-9|0;if(!((n|0)>9&p>>>0>>0)){n=o;break}else n=o}}bx(e,48,n+9|0,9,0)}else{t=z?C:w+4|0;if((n|0)>-1){s=(p|0)==0;r=w;do{o=ax(c[r>>2]|0,0,R)|0;if((o|0)==(R|0)){a[T>>0]=48;o=T}do if((r|0)==(w|0)){p=o+1|0;if(!(c[e>>2]&32))$v(o,1,e)|0;if(s&(n|0)<1){o=p;break}if(c[e>>2]&32){o=p;break}$v(52874,1,e)|0;o=p}else{if(o>>>0<=da>>>0)break;do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0)}while(0);p=S-o|0;if(!(c[e>>2]&32))$v(o,(n|0)>(p|0)?p:n,e)|0;n=n-p|0;r=r+4|0}while(r>>>0>>0&(n|0)>-1)}bx(e,48,n+18|0,18,0);if(c[e>>2]&32)break;$v(u,_-u|0,e)|0}while(0);bx(e,32,K,y,I^8192);n=(y|0)<(K|0)?K:y}else{t=(u&32|0)!=0;s=q!=q|0.0!=0.0;o=s?0:G;r=o+3|0;bx(e,32,K,r,p);n=c[e>>2]|0;if(!(n&32)){$v(H,o,e)|0;n=c[e>>2]|0}if(!(n&32))$v(s?(t?52866:52870):t?52858:52862,3,e)|0;bx(e,32,K,r,I^8192);n=(r|0)<(K|0)?K:r}while(0);w=J;continue a}default:{p=I;o=r;t=0;u=52822;n=N}}while(0);g:do if((L|0)==64){p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;s=u&32;if(!((o|0)==0&(p|0)==0)){n=N;do{n=n+-1|0;a[n>>0]=d[52806+(o&15)>>0]|s;o=eH(o|0,p|0,4)|0;p=D}while(!((o|0)==0&(p|0)==0));L=ba;if((t&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){o=t;t=0;s=52822;L=77}else{o=t;t=2;s=52822+(u>>4)|0;L=77}}else{n=N;o=t;t=0;s=52822;L=77}}else if((L|0)==76){n=ax(n,o,N)|0;o=I;t=p;L=77}else if((L|0)==82){L=0;I=uw(n,0,r)|0;H=(I|0)==0;w=n;o=H?r:I-n|0;t=0;u=52822;n=H?n+r|0:I}else if((L|0)==86){L=0;o=0;n=0;s=c[ba>>2]|0;while(1){p=c[s>>2]|0;if(!p)break;n=xv(fa,p)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}bx(e,32,K,o,I);if(!o){n=0;L=98}else{p=0;r=c[ba>>2]|0;while(1){n=c[r>>2]|0;if(!n){n=o;L=98;break g}n=xv(fa,n)|0;p=n+p|0;if((p|0)>(o|0)){n=o;L=98;break g}if(!(c[e>>2]&32))$v(fa,n,e)|0;if(p>>>0>=o>>>0){n=o;L=98;break}else r=r+4|0}}}while(0);if((L|0)==98){L=0;bx(e,32,K,n,I^8192);w=J;n=(K|0)>(n|0)?K:n;continue}if((L|0)==77){L=0;p=(r|0)>-1?o&-65537:o;o=ba;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((r|0)!=0|o){o=(o&1^1)+(U-n)|0;w=n;o=(r|0)>(o|0)?r:o;u=s;n=N}else{w=N;o=0;u=s;n=N}}s=n-w|0;o=(o|0)<(s|0)?s:o;r=t+o|0;n=(K|0)<(r|0)?r:K;bx(e,32,n,r,p);if(!(c[e>>2]&32))$v(u,t,e)|0;bx(e,48,n,r,p^65536);bx(e,48,o,s,0);if(!(c[e>>2]&32))$v(w,s,e)|0;bx(e,32,n,r,p^8192);w=J}h:do if((L|0)==245)if(!e)if(f){m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f)break;$w(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}if((m|0)<10)while(1){if(c[l+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}else m=1}else m=0;while(0);i=ha;return m|0}function Uw(a,b,c){a=a|0;b=b|0;c=c|0;return Iv(a,b,c)|0}function Vw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;o=p;c[o>>2]=a;a:do if((e|0)>1){n=0-b|0;g=e;h=a;k=a;l=1;while(1){a=h+n|0;m=g+-2|0;j=h+(0-((c[f+(m<<2)>>2]|0)+b))|0;if((Uc[d&63](k,j)|0)>-1?(Uc[d&63](k,a)|0)>-1:0){e=l;break a}e=l+1|0;h=o+(l<<2)|0;if((Uc[d&63](j,a)|0)>-1){c[h>>2]=j;a=j;g=g+-1|0}else{c[h>>2]=a;g=m}if((g|0)<=1)break a;h=a;k=c[o>>2]|0;l=e}}else e=1;while(0);Zw(b,o,e);i=p;return}function Ww(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+240|0;p=r;k=c[e>>2]|0;e=c[e+4>>2]|0;c[p>>2]=a;o=0-b|0;a:do if((e|0)!=0|(k|0)!=1?(j=a+(0-(c[h+(f<<2)>>2]|0))|0,(Uc[d&63](j,a)|0)>=1):0){g=(g|0)==0;n=j;l=k;m=e;j=1;while(1){if(g&(f|0)>1){e=c[h+(f+-2<<2)>>2]|0;if((Uc[d&63](a+o|0,n)|0)>-1){g=f;e=j;q=20;break a}if((Uc[d&63](a+(0-(e+b))|0,n)|0)>-1){g=f;e=j;q=20;break a}}e=j+1|0;c[p+(j<<2)>>2]=n;g=l+-1|0;do if(g){if(!(g&1)){a=g;g=0;do{g=g+1|0;a=a>>>1}while((a&1|0)==0);if(!g)q=11}else q=11;if((q|0)==11){q=0;if(!m){g=64;q=16;break}if(!(m&1)){a=m;g=0}else{k=0;a=l;j=m;g=0;break}while(1){j=g+1|0;a=a>>>1;if(a&1){a=j;break}else g=j}if(!a){k=0;a=l;j=m;g=0;break}else g=g+33|0}if(g>>>0>31)q=16;else{k=g;a=l;j=m}}else{g=32;q=16}while(0);if((q|0)==16){q=0;k=g+-32|0;a=m;j=0}l=j<<32-k|a>>>k;m=j>>>k;g=g+f|0;if(!((m|0)!=0|(l|0)!=1)){a=n;q=20;break a}a=n+(0-(c[h+(g<<2)>>2]|0))|0;if((Uc[d&63](a,c[p>>2]|0)|0)<1){a=n;f=g;g=0;q=19;break}else{k=n;f=g;g=1;n=a;j=e;a=k}}}else{e=1;q=19}while(0);if((q|0)==19?(g|0)==0:0){g=f;q=20}if((q|0)==20){Zw(b,p,e);Vw(a,b,d,g,h)}i=r;return}function Xw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+112|0;h=j;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;Tu(h,0);e=+Ru(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b)c[b>>2]=(d|0)!=0?a+d|0:a;i=j;return +e}function Yw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+112|0;j=k;c[j>>2]=0;g=j+4|0;c[g>>2]=a;c[j+44>>2]=a;h=j+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[j+76>>2]=-1;Tu(j,0);e=Su(j,d,1,e,f)|0;if(b)c[b>>2]=a+((c[g>>2]|0)+(c[j+108>>2]|0)-(c[h>>2]|0));i=k;return e|0}function Zw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,(a|0)!=0):0)while(1){f=a>>>0>256?256:a;gH(e|0,c[b>>2]|0,f|0)|0;e=0;do{j=b+(e<<2)|0;e=e+1|0;gH(c[j>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[j>>2]=(c[j>>2]|0)+f}while((e|0)!=(d|0));if((a|0)==(f|0))break a;a=a-f|0;e=c[g>>2]|0}while(0);i=h;return}function _w(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;gH(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function $w(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function ax(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=rH(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=qH(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=D}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function bx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+256|0;h=j;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;iH(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){$v(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;$v(h,f,a)|0}while(0);i=j;return}function cx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[2507]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=10068+(e<<2)|0;e=10068+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[2511]|0)>>>0)Zb();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Zb()}else c[2507]=i&~(1<>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[2509]|0;if(o>>>0>h>>>0){if(d){e=2<>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=10068+(e<<2)|0;e=10068+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[2511]|0)>>>0)Zb();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[2509]|0;break}else Zb()}else{c[2507]=i&~(1<>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[2512]|0;d=k>>>3;b=d<<1;e=10068+(b<<2)|0;a=c[2507]|0;d=1<>2]|0;if(b>>>0<(c[2511]|0)>>>0)Zb();else{l=a;m=b}}else{c[2507]=a|d;l=10068+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[2509]=h;c[2512]=i;M=j;return M|0}a=c[2508]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[10332+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0>>0;d=M?a:d;a=b;e=M?b:e}g=c[2511]|0;if(e>>>0>>0)Zb();i=e+o|0;if(e>>>0>=i>>>0)Zb();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0>>0)Zb();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0>>0)Zb();b=f+12|0;if((c[b>>2]|0)!=(e|0))Zb();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else Zb()}while(0);do if(h){b=c[e+28>>2]|0;a=10332+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[2511]|0;if(n>>>0>>0)Zb();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0>>0)Zb();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[2511]|0)>>>0)Zb();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[2509]|0;if(b){g=c[2512]|0;d=b>>>3;b=d<<1;f=10068+(b<<2)|0;a=c[2507]|0;d=1<>2]|0;if(a>>>0<(c[2511]|0)>>>0)Zb();else{p=b;q=a}}else{c[2507]=a|d;p=10068+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[2509]=j;c[2512]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[2508]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;k=14-(p|q|k)+(v<>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[10332+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[10332+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[2509]|0)-m|0)>>>0:0){f=c[2511]|0;if(j>>>0>>0)Zb();h=j+m|0;if(j>>>0>=h>>>0)Zb();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)Zb();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)Zb();b=e+12|0;if((c[b>>2]|0)!=(j|0))Zb();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else Zb()}while(0);do if(g){b=c[j+28>>2]|0;a=10332+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[2511]|0;if(o>>>0>>0)Zb();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0>>0)Zb();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[2511]|0)>>>0)Zb();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=10068+(a<<2)|0;d=c[2507]|0;b=1<>2]|0;if(a>>>0<(c[2511]|0)>>>0)Zb();else{s=b;t=a}}else{c[2507]=d|b;s=10068+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=10332+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[2508]|0;d=1<>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[2511]|0)>>>0)Zb();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[2511]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else Zb()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[2509]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[2512]|0;if(b>>>0>15){c[2512]=a+q;c[2509]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[2509]=0;c[2512]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[2510]|0;if(a>>>0>q>>>0){L=a-q|0;c[2510]=L;M=c[2513]|0;c[2513]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[2625]|0)){a=Ra(30)|0;if(!(a+-1&a)){c[2627]=a;c[2626]=a;c[2628]=-1;c[2629]=-1;c[2630]=0;c[2618]=0;c[2625]=(vb(0)|0)&-16^1431655768;break}else Zb()}while(0);j=q+48|0;i=c[2627]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[2617]|0;if((a|0)!=0?(t=c[2615]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[2618]&4)){a=c[2513]|0;e:do if(a){f=10476;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[2510]|0)&i;if(d>>>0<2147483647){f=Oa(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=Oa(0)|0;if((g|0)!=(-1|0)){a=g;d=c[2626]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[2615]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[2617]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=Oa(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[2627]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((Oa(u|0)|0)==(-1|0)){Oa(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[2618]=c[2618]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Oa(l|0)|0,x=Oa(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[2615]|0)+p|0;c[2615]=a;if(a>>>0>(c[2616]|0)>>>0)c[2616]=a;h=c[2513]|0;g:do if(h){g=10476;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[2510]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[2513]=h+L;c[2510]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[2514]=c[2629];break}a=c[2511]|0;if(w>>>0>>0){c[2511]=w;a=w}d=w+p|0;g=10476;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=10476;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[2512]|0)){M=(c[2509]|0)+l|0;c[2509]=M;c[2512]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Zb();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0>>0)Zb();a=f+12|0;if((c[a>>2]|0)!=(b|0))Zb();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else Zb()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=10332+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[2511]|0)>>>0)Zb();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[2508]=c[2508]&~(1<>>0>>0)Zb();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Zb();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[2511]|0)>>>0)Zb();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=10068+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0>>0)Zb();if((c[e+12>>2]|0)==(b|0))break;Zb()}while(0);if((f|0)==(e|0)){c[2507]=c[2507]&~(1<>>0>>0)Zb();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Zb()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=10068+(a<<2)|0;d=c[2507]|0;b=1<>2]|0;if(a>>>0>=(c[2511]|0)>>>0){K=b;L=a;break}Zb()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;e=14-(J|K|e)+(L<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=10332+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[2508]|0;d=1<>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[2511]|0)>>>0)Zb();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[2511]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else Zb()}else{M=(c[2510]|0)+l|0;c[2510]=M;c[2513]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=10476;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[2513]=w+d;c[2510]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[2514]=c[2629];d=a+4|0;c[d>>2]=27;c[b>>2]=c[2619];c[b+4>>2]=c[2620];c[b+8>>2]=c[2621];c[b+12>>2]=c[2622];c[2619]=w;c[2620]=p;c[2622]=0;c[2621]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=10068+(a<<2)|0;d=c[2507]|0;b=1<>2]|0;if(a>>>0<(c[2511]|0)>>>0)Zb();else{G=b;H=a}}else{c[2507]=d|b;G=10068+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;e=14-(K|L|e)+(M<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=10332+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[2508]|0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[2511]|0)>>>0)Zb();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[2511]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else Zb()}}else{M=c[2511]|0;if((M|0)==0|w>>>0>>0)c[2511]=w;c[2619]=w;c[2620]=p;c[2622]=0;c[2516]=c[2625];c[2515]=-1;b=0;do{M=b<<1;L=10068+(M<<2)|0;c[10068+(M+3<<2)>>2]=L;c[10068+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[2513]=w+M;c[2510]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[2514]=c[2629]}while(0);b=c[2510]|0;if(b>>>0>q>>>0){L=b-q|0;c[2510]=L;M=c[2513]|0;c[2513]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(Pu()|0)>>2]=12;M=0;return M|0}function dx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;i=c[2511]|0;if(b>>>0>>0)Zb();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)Zb();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0>>0)Zb();if((l|0)==(c[2512]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[2509]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=10068+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0>>0)Zb();if((c[e+12>>2]|0)!=(l|0))Zb()}if((d|0)==(e|0)){c[2507]=c[2507]&~(1<>>0>>0)Zb();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else Zb()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0>>0)Zb();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0>>0)Zb();b=f+12|0;if((c[b>>2]|0)!=(l|0))Zb();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else Zb()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=10332+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[2511]|0;if(k>>>0>>0)Zb();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0>>0)Zb();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[2511]|0)>>>0)Zb();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)Zb();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))Zb();if(!(d&2)){if((q|0)==(c[2513]|0)){t=(c[2510]|0)+g|0;c[2510]=t;c[2513]=u;c[u+4>>2]=t|1;if((u|0)!=(c[2512]|0))return;c[2512]=0;c[2509]=0;return}if((q|0)==(c[2512]|0)){t=(c[2509]|0)+g|0;c[2509]=t;c[2512]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[2511]|0)>>>0)Zb();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[2511]|0)>>>0)Zb();e=d+12|0;if((c[e>>2]|0)!=(q|0))Zb();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else Zb()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=10332+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[2511]|0;if(p>>>0>>0)Zb();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Zb();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[2511]|0)>>>0)Zb();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=10068+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[2511]|0)>>>0)Zb();if((c[e+12>>2]|0)!=(q|0))Zb()}if((d|0)==(e|0)){c[2507]=c[2507]&~(1<>>0<(c[2511]|0)>>>0)Zb();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else Zb()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[2512]|0)){c[2509]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=10068+(d<<2)|0;e=c[2507]|0;b=1<>2]|0;if(d>>>0<(c[2511]|0)>>>0)Zb();else{r=b;s=d}}else{c[2507]=e|b;r=10068+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=10332+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[2508]|0;e=1<>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[2511]|0)>>>0)Zb();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[2511]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else Zb()}else{c[2508]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[2515]|0)+-1|0;c[2515]=u;if(!u)b=10484;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[2515]=-1;return}function ex(a,b){a=a|0;b=b|0;var d=0;if(a){d=$(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=cx(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;iH(b|0,0,d|0)|0;return b|0}function fx(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=cx(b)|0;return a|0}if(b>>>0>4294967231){c[(Pu()|0)>>2]=12;a=0;return a|0}d=gx(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=cx(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;gH(d|0,a|0,(e>>>0>>0?e:b)|0)|0;dx(a);a=d;return a|0}function gx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=c[o>>2]|0;j=p&-8;l=a+j|0;i=c[2511]|0;d=p&3;if(!((d|0)!=1&a>>>0>=i>>>0&a>>>0>>0))Zb();e=a+(j|4)|0;f=c[e>>2]|0;if(!(f&1))Zb();if(!d){if(b>>>0<256){a=0;return a|0}if(j>>>0>=(b+4|0)>>>0?(j-b|0)>>>0<=c[2627]<<1>>>0:0)return a|0;a=0;return a|0}if(j>>>0>=b>>>0){d=j-b|0;if(d>>>0<=15)return a|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|3;c[e>>2]=c[e>>2]|1;hx(a+b|0,d);return a|0}if((l|0)==(c[2513]|0)){d=(c[2510]|0)+j|0;if(d>>>0<=b>>>0){a=0;return a|0}n=d-b|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|1;c[2513]=a+b;c[2510]=n;return a|0}if((l|0)==(c[2512]|0)){e=(c[2509]|0)+j|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|1;c[a+e>>2]=d;e=a+(e+4)|0;c[e>>2]=c[e>>2]&-2;e=a+b|0}else{c[o>>2]=p&1|e|2;e=a+(e+4)|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[2509]=d;c[2512]=e;return a|0}if(f&2){a=0;return a|0}m=(f&-8)+j|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;g=f>>>3;do if(f>>>0>=256){h=c[a+(j+24)>>2]|0;g=c[a+(j+12)>>2]|0;do if((g|0)==(l|0)){e=a+(j+20)|0;d=c[e>>2]|0;if(!d){e=a+(j+16)|0;d=c[e>>2]|0;if(!d){k=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Zb();else{c[e>>2]=0;k=d;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0>>0)Zb();d=f+12|0;if((c[d>>2]|0)!=(l|0))Zb();e=g+8|0;if((c[e>>2]|0)==(l|0)){c[d>>2]=g;c[e>>2]=f;k=g;break}else Zb()}while(0);if(h){d=c[a+(j+28)>>2]|0;e=10332+(d<<2)|0;if((l|0)==(c[e>>2]|0)){c[e>>2]=k;if(!k){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();d=h+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=k;else c[h+20>>2]=k;if(!k)break}e=c[2511]|0;if(k>>>0>>0)Zb();c[k+24>>2]=h;d=c[a+(j+16)>>2]|0;do if(d)if(d>>>0>>0)Zb();else{c[k+16>>2]=d;c[d+24>>2]=k;break}while(0);d=c[a+(j+20)>>2]|0;if(d)if(d>>>0<(c[2511]|0)>>>0)Zb();else{c[k+20>>2]=d;c[d+24>>2]=k;break}}}else{f=c[a+(j+8)>>2]|0;e=c[a+(j+12)>>2]|0;d=10068+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Zb();if((c[f+12>>2]|0)!=(l|0))Zb()}if((e|0)==(f|0)){c[2507]=c[2507]&~(1<>>0>>0)Zb();d=e+8|0;if((c[d>>2]|0)==(l|0))h=d;else Zb()}else h=e+8|0;c[f+12>>2]=e;c[h>>2]=f}while(0);if(n>>>0<16){c[o>>2]=m|p&1|2;b=a+(m|4)|0;c[b>>2]=c[b>>2]|1;return a|0}else{c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|3;p=a+(m|4)|0;c[p>>2]=c[p>>2]|1;hx(a+b|0,n);return a|0}return 0}function hx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){k=c[a>>2]|0;if(!(d&3))return;n=a+(0-k)|0;m=k+b|0;j=c[2511]|0;if(n>>>0>>0)Zb();if((n|0)==(c[2512]|0)){e=a+(b+4)|0;d=c[e>>2]|0;if((d&3|0)!=3){t=n;h=m;break}c[2509]=m;c[e>>2]=d&-2;c[a+(4-k)>>2]=m|1;c[q>>2]=m;return}g=k>>>3;if(k>>>0<256){f=c[a+(8-k)>>2]|0;e=c[a+(12-k)>>2]|0;d=10068+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Zb();if((c[f+12>>2]|0)!=(n|0))Zb()}if((e|0)==(f|0)){c[2507]=c[2507]&~(1<>>0>>0)Zb();d=e+8|0;if((c[d>>2]|0)==(n|0))i=d;else Zb()}else i=e+8|0;c[f+12>>2]=e;c[i>>2]=f;t=n;h=m;break}i=c[a+(24-k)>>2]|0;f=c[a+(12-k)>>2]|0;do if((f|0)==(n|0)){f=16-k|0;e=a+(f+4)|0;d=c[e>>2]|0;if(!d){e=a+f|0;d=c[e>>2]|0;if(!d){l=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Zb();else{c[e>>2]=0;l=d;break}}else{g=c[a+(8-k)>>2]|0;if(g>>>0>>0)Zb();d=g+12|0;if((c[d>>2]|0)!=(n|0))Zb();e=f+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=f;c[e>>2]=g;l=f;break}else Zb()}while(0);if(i){d=c[a+(28-k)>>2]|0;e=10332+(d<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=l;if(!l){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();d=i+16|0;if((c[d>>2]|0)==(n|0))c[d>>2]=l;else c[i+20>>2]=l;if(!l){t=n;h=m;break}}f=c[2511]|0;if(l>>>0>>0)Zb();c[l+24>>2]=i;d=16-k|0;e=c[a+d>>2]|0;do if(e)if(e>>>0>>0)Zb();else{c[l+16>>2]=e;c[e+24>>2]=l;break}while(0);d=c[a+(d+4)>>2]|0;if(d)if(d>>>0<(c[2511]|0)>>>0)Zb();else{c[l+20>>2]=d;c[d+24>>2]=l;t=n;h=m;break}else{t=n;h=m}}else{t=n;h=m}}else{t=a;h=b}while(0);j=c[2511]|0;if(q>>>0>>0)Zb();d=a+(b+4)|0;e=c[d>>2]|0;if(!(e&2)){if((q|0)==(c[2513]|0)){s=(c[2510]|0)+h|0;c[2510]=s;c[2513]=t;c[t+4>>2]=s|1;if((t|0)!=(c[2512]|0))return;c[2512]=0;c[2509]=0;return}if((q|0)==(c[2512]|0)){s=(c[2509]|0)+h|0;c[2509]=s;c[2512]=t;c[t+4>>2]=s|1;c[t+s>>2]=s;return}h=(e&-8)+h|0;g=e>>>3;do if(e>>>0>=256){i=c[a+(b+24)>>2]|0;f=c[a+(b+12)>>2]|0;do if((f|0)==(q|0)){e=a+(b+20)|0;d=c[e>>2]|0;if(!d){e=a+(b+16)|0;d=c[e>>2]|0;if(!d){p=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0>>0)Zb();else{c[e>>2]=0;p=d;break}}else{g=c[a+(b+8)>>2]|0;if(g>>>0>>0)Zb();d=g+12|0;if((c[d>>2]|0)!=(q|0))Zb();e=f+8|0;if((c[e>>2]|0)==(q|0)){c[d>>2]=f;c[e>>2]=g;p=f;break}else Zb()}while(0);if(i){d=c[a+(b+28)>>2]|0;e=10332+(d<<2)|0;if((q|0)==(c[e>>2]|0)){c[e>>2]=p;if(!p){c[2508]=c[2508]&~(1<>>0<(c[2511]|0)>>>0)Zb();d=i+16|0;if((c[d>>2]|0)==(q|0))c[d>>2]=p;else c[i+20>>2]=p;if(!p)break}e=c[2511]|0;if(p>>>0>>0)Zb();c[p+24>>2]=i;d=c[a+(b+16)>>2]|0;do if(d)if(d>>>0>>0)Zb();else{c[p+16>>2]=d;c[d+24>>2]=p;break}while(0);d=c[a+(b+20)>>2]|0;if(d)if(d>>>0<(c[2511]|0)>>>0)Zb();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{f=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;d=10068+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0>>0)Zb();if((c[f+12>>2]|0)!=(q|0))Zb()}if((e|0)==(f|0)){c[2507]=c[2507]&~(1<>>0>>0)Zb();d=e+8|0;if((c[d>>2]|0)==(q|0))o=d;else Zb()}else o=e+8|0;c[f+12>>2]=e;c[o>>2]=f}while(0);c[t+4>>2]=h|1;c[t+h>>2]=h;if((t|0)==(c[2512]|0)){c[2509]=h;return}}else{c[d>>2]=e&-2;c[t+4>>2]=h|1;c[t+h>>2]=h}d=h>>>3;if(h>>>0<256){e=d<<1;g=10068+(e<<2)|0;f=c[2507]|0;d=1<>2]|0;if(e>>>0<(c[2511]|0)>>>0)Zb();else{r=d;s=e}}else{c[2507]=f|d;r=10068+(e+2<<2)|0;s=g}c[r>>2]=t;c[s+12>>2]=t;c[t+8>>2]=s;c[t+12>>2]=g;return}d=h>>>8;if(d)if(h>>>0>16777215)g=31;else{r=(d+1048320|0)>>>16&8;s=d<>>16&4;s=s<>>16&2;g=14-(q|r|g)+(s<>>15)|0;g=h>>>(g+7|0)&1|g<<1}else g=0;d=10332+(g<<2)|0;c[t+28>>2]=g;c[t+20>>2]=0;c[t+16>>2]=0;e=c[2508]|0;f=1<>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}d=c[d>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(h|0)){g=h<<((g|0)==31?0:25-(g>>>1)|0);while(1){e=d+16+(g>>>31<<2)|0;f=c[e>>2]|0;if(!f)break;if((c[f+4>>2]&-8|0)==(h|0)){d=f;break a}else{g=g<<1;d=f}}if(e>>>0<(c[2511]|0)>>>0)Zb();c[e>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}while(0);e=d+8|0;f=c[e>>2]|0;s=c[2511]|0;if(!(f>>>0>=s>>>0&d>>>0>=s>>>0))Zb();c[f+12>>2]=t;c[e>>2]=t;c[t+8>>2]=f;c[t+12>>2]=d;c[t+24>>2]=0;return}function ix(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[1608]|0;mx(11204,b,11260);c[2631]=12412;c[2633]=12432;c[2632]=0;e=c[3100]|0;uy(10524+e|0,11204);c[10524+(e+72)>>2]=0;c[10524+(e+76)>>2]=-1;e=c[1609]|0;nx(11308,e,11268);c[2653]=12492;c[2654]=12512;h=c[3120]|0;uy(10612+h|0,11308);f=h+72|0;c[10612+f>>2]=0;a=h+76|0;c[10612+a>>2]=-1;d=c[1607]|0;nx(11356,d,11276);c[2674]=12492;c[2675]=12512;uy(10696+h|0,11356);c[10696+f>>2]=0;c[10696+a>>2]=-1;g=c[10696+((c[(c[2674]|0)+-12>>2]|0)+24)>>2]|0;c[2695]=12492;c[2696]=12512;uy(10780+h|0,g);c[10780+f>>2]=0;c[10780+a>>2]=-1;c[10524+((c[(c[2631]|0)+-12>>2]|0)+72)>>2]=10612;a=10696+((c[(c[2674]|0)+-12>>2]|0)+4)|0;c[a>>2]=c[a>>2]|8192;c[10696+((c[(c[2674]|0)+-12>>2]|0)+72)>>2]=10612;ox(11404,b,11284);c[2716]=12452;c[2718]=12472;c[2717]=0;b=c[3110]|0;uy(10864+b|0,11404);c[10864+(b+72)>>2]=0;c[10864+(b+76)>>2]=-1;px(11460,e,11292);c[2738]=12532;c[2739]=12552;e=c[3130]|0;uy(10952+e|0,11460);b=e+72|0;c[10952+b>>2]=0;a=e+76|0;c[10952+a>>2]=-1;px(11508,d,11300);c[2759]=12532;c[2760]=12552;uy(11036+e|0,11508);c[11036+b>>2]=0;c[11036+a>>2]=-1;d=c[11036+((c[(c[2759]|0)+-12>>2]|0)+24)>>2]|0;c[2780]=12532;c[2781]=12552;uy(11120+e|0,d);c[11120+b>>2]=0;c[11120+a>>2]=-1;c[10864+((c[(c[2716]|0)+-12>>2]|0)+72)>>2]=10952;a=11036+((c[(c[2759]|0)+-12>>2]|0)+4)|0;c[a>>2]=c[a>>2]|8192;c[11036+((c[(c[2759]|0)+-12>>2]|0)+72)>>2]=10952;return}function jx(a){a=a|0;bz(10612)|0;bz(10780)|0;gz(10952)|0;gz(11120)|0;return}function kx(){ix(0);Wa(146,52876,n|0)|0;return}function lx(){return}function mx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;xy(b);c[b>>2]=11756;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=-1;a[b+52>>0]=0;DD(h,b+4|0);c[g>>2]=c[h>>2];Gx(b,g);ED(g);i=f;return}function nx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;xy(b);c[b>>2]=11692;c[b+32>>2]=d;DD(h,b+4|0);c[g>>2]=c[h>>2];d=GD(g,13740)|0;ED(g);c[b+36>>2]=d;c[b+40>>2]=e;a[b+44>>0]=(Nc[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;i=f;return}function ox(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;My(b);c[b>>2]=11628;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=-1;a[b+52>>0]=0;DD(h,b+4|0);c[g>>2]=c[h>>2];vx(b,g);ED(g);i=f;return}function px(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;My(b);c[b>>2]=11564;c[b+32>>2]=d;DD(h,b+4|0);c[g>>2]=c[h>>2];d=GD(g,13748)|0;ED(g);c[b+36>>2]=d;c[b+40>>2]=e;a[b+44>>0]=(Nc[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;i=f;return}function qx(a){a=a|0;Ky(a);Vt(a);return}function rx(b,d){b=b|0;d=d|0;Nc[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=GD(d,13748)|0;c[b+36>>2]=d;a[b+44>>0]=(Nc[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;return}function sx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;j=l+8|0;h=l;d=a+36|0;e=a+40|0;f=j+8|0;g=j;b=a+32|0;a:while(1){a=c[d>>2]|0;a=Oc[c[(c[a>>2]|0)+20>>2]&31](a,c[e>>2]|0,j,f,h)|0;m=(c[h>>2]|0)-g|0;if((aw(j,1,m,c[b>>2]|0)|0)!=(m|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{k=4;break a}}}if((k|0)==4)a=((Ov(c[b>>2]|0)|0)!=0)<<31>>31;i=l;return a|0}function tx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;a:do if(!(a[b+44>>0]|0))if((e|0)>0){f=d;d=0;while(1){if((Uc[c[(c[b>>2]|0)+52>>2]&63](b,c[f>>2]|0)|0)==-1)break a;d=d+1|0;if((d|0)<(e|0))f=f+4|0;else break}}else d=0;else d=aw(d,4,e,c[b+32>>2]|0)|0;while(0);return d|0}function ux(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;p=s+16|0;e=s+8|0;o=s+4|0;n=s;q=(d|0)==-1;a:do if(!q){c[e>>2]=d;if(a[b+44>>0]|0)if((aw(e,4,1,c[b+32>>2]|0)|0)==1){r=11;break}else{e=-1;break}c[o>>2]=p;l=e+4|0;m=b+36|0;g=b+40|0;h=p+8|0;j=p;k=b+32|0;while(1){b=c[m>>2]|0;b=Sc[c[(c[b>>2]|0)+12>>2]&15](b,c[g>>2]|0,e,l,n,p,h,o)|0;if((c[n>>2]|0)==(e|0)){e=-1;break a}if((b|0)==3)break;f=(b|0)==1;if(b>>>0>=2){e=-1;break a}b=(c[o>>2]|0)-j|0;if((aw(p,1,b,c[k>>2]|0)|0)!=(b|0)){e=-1;break a}if(f)e=f?c[n>>2]|0:e;else{r=11;break a}}if((aw(e,1,1,c[k>>2]|0)|0)!=1)e=-1;else r=11}else r=11;while(0);if((r|0)==11)e=q?0:d;i=s;return e|0}function vx(b,d){b=b|0;d=d|0;var e=0,f=0;f=GD(d,13748)|0;e=b+36|0;c[e>>2]=f;d=b+44|0;c[d>>2]=Nc[c[(c[f>>2]|0)+24>>2]&127](f)|0;e=c[e>>2]|0;a[b+53>>0]=(Nc[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;return}function wx(a){a=a|0;Ky(a);Vt(a);return}function xx(a){a=a|0;return Ax(a,0)|0}function yx(a){a=a|0;return Ax(a,1)|0}function zx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+16|0;k=m+8|0;f=m+4|0;g=m;h=b+52|0;e=(a[h>>0]|0)!=0;a:do if((d|0)==-1)if(e)d=-1;else{d=c[b+48>>2]|0;a[h>>0]=(d|0)!=-1&1}else{j=b+48|0;b:do if(e){c[f>>2]=c[j>>2];e=c[b+36>>2]|0;switch(Sc[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+4|0,g,l,l+8|0,k)|0){case 1:case 2:{d=-1;break a}case 3:{a[l>>0]=c[j>>2];c[k>>2]=l+1;break}default:{}}e=b+32|0;while(1){f=c[k>>2]|0;if(f>>>0<=l>>>0)break b;b=f+-1|0;c[k>>2]=b;if((iw(a[b>>0]|0,c[e>>2]|0)|0)==-1){d=-1;break a}}}while(0);c[j>>2]=d;a[h>>0]=1}while(0);i=m;return d|0}function Ax(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+32|0;q=r+16|0;p=r+8|0;m=r+4|0;n=r;g=b+52|0;a:do if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){c[f>>2]=-1;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;if((e|0)>0){g=0;do{f=bw(c[o>>2]|0)|0;if((f|0)==-1){e=-1;break a}a[q+g>>0]=f;g=g+1|0}while((g|0)<(e|0))}b:do if(!(a[b+53>>0]|0)){j=b+40|0;k=b+36|0;l=p+4|0;c:while(1){s=c[j>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[k>>2]|0;h=q+e|0;switch(Sc[c[(c[t>>2]|0)+16>>2]&15](t,s,q,h,m,p,l,n)|0){case 2:{e=-1;break a}case 3:break c;case 1:break;default:break b}t=c[j>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){e=-1;break a}f=bw(c[o>>2]|0)|0;if((f|0)==-1){e=-1;break a}a[h>>0]=f;e=e+1|0}c[p>>2]=a[q>>0]}else c[p>>2]=a[q>>0];while(0);if(d){e=c[p>>2]|0;c[b+48>>2]=e;break}while(1){if((e|0)<=0)break;e=e+-1|0;if((iw(a[q+e>>0]|0,c[o>>2]|0)|0)==-1){e=-1;break a}}e=c[p>>2]|0}while(0);i=r;return e|0}function Bx(a){a=a|0;vy(a);Vt(a);return}function Cx(b,d){b=b|0;d=d|0;Nc[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=GD(d,13740)|0;c[b+36>>2]=d;a[b+44>>0]=(Nc[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;return}function Dx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;j=l+8|0;h=l;d=a+36|0;e=a+40|0;f=j+8|0;g=j;b=a+32|0;a:while(1){a=c[d>>2]|0;a=Oc[c[(c[a>>2]|0)+20>>2]&31](a,c[e>>2]|0,j,f,h)|0;m=(c[h>>2]|0)-g|0;if((aw(j,1,m,c[b>>2]|0)|0)!=(m|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{k=4;break a}}}if((k|0)==4)a=((Ov(c[b>>2]|0)|0)!=0)<<31>>31;i=l;return a|0}function Ex(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;a:do if(!(a[b+44>>0]|0))if((f|0)>0){g=e;e=0;while(1){if((Uc[c[(c[b>>2]|0)+52>>2]&63](b,d[g>>0]|0)|0)==-1)break a;e=e+1|0;if((e|0)<(f|0))g=g+1|0;else break}}else e=0;else e=aw(e,1,f,c[b+32>>2]|0)|0;while(0);return e|0}function Fx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;p=s+16|0;e=s+8|0;o=s+4|0;n=s;q=(d|0)==-1;a:do if(!q){a[e>>0]=d;if(a[b+44>>0]|0)if((aw(e,1,1,c[b+32>>2]|0)|0)==1){r=11;break}else{e=-1;break}c[o>>2]=p;m=e+1|0;g=b+36|0;h=b+40|0;j=p+8|0;k=p;l=b+32|0;while(1){b=c[g>>2]|0;b=Sc[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,e,m,n,p,j,o)|0;if((c[n>>2]|0)==(e|0)){e=-1;break a}if((b|0)==3)break;f=(b|0)==1;if(b>>>0>=2){e=-1;break a}b=(c[o>>2]|0)-k|0;if((aw(p,1,b,c[l>>2]|0)|0)!=(b|0)){e=-1;break a}if(f)e=f?c[n>>2]|0:e;else{r=11;break a}}if((aw(e,1,1,c[l>>2]|0)|0)!=1)e=-1;else r=11}else r=11;while(0);if((r|0)==11)e=q?0:d;i=s;return e|0}function Gx(b,d){b=b|0;d=d|0;var e=0,f=0;f=GD(d,13740)|0;e=b+36|0;c[e>>2]=f;d=b+44|0;c[d>>2]=Nc[c[(c[f>>2]|0)+24>>2]&127](f)|0;e=c[e>>2]|0;a[b+53>>0]=(Nc[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;return}function Hx(a){a=a|0;vy(a);Vt(a);return}function Ix(a){a=a|0;return Lx(a,0)|0}function Jx(a){a=a|0;return Lx(a,1)|0}function Kx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+16|0;k=m+4|0;f=m+8|0;g=m;h=b+52|0;e=(a[h>>0]|0)!=0;a:do if((d|0)==-1)if(e)d=-1;else{d=c[b+48>>2]|0;a[h>>0]=(d|0)!=-1&1}else{j=b+48|0;b:do if(e){a[f>>0]=c[j>>2];e=c[b+36>>2]|0;switch(Sc[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+1|0,g,l,l+8|0,k)|0){case 1:case 2:{d=-1;break a}case 3:{a[l>>0]=c[j>>2];c[k>>2]=l+1;break}default:{}}e=b+32|0;while(1){f=c[k>>2]|0;if(f>>>0<=l>>>0)break b;b=f+-1|0;c[k>>2]=b;if((iw(a[b>>0]|0,c[e>>2]|0)|0)==-1){d=-1;break a}}}while(0);c[j>>2]=d;a[h>>0]=1}while(0);i=m;return d|0}function Lx(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+32|0;r=s+16|0;q=s+8|0;n=s+4|0;o=s;h=b+52|0;a:do if(a[h>>0]|0){g=b+48|0;f=c[g>>2]|0;if(e){c[g>>2]=-1;a[h>>0]=0}}else{f=c[b+44>>2]|0;f=(f|0)>1?f:1;p=b+32|0;if((f|0)>0){h=0;do{g=bw(c[p>>2]|0)|0;if((g|0)==-1){f=-1;break a}a[r+h>>0]=g;h=h+1|0}while((h|0)<(f|0))}b:do if(!(a[b+53>>0]|0)){k=b+40|0;l=b+36|0;m=q+1|0;c:while(1){t=c[k>>2]|0;h=t;g=c[h>>2]|0;h=c[h+4>>2]|0;u=c[l>>2]|0;j=r+f|0;switch(Sc[c[(c[u>>2]|0)+16>>2]&15](u,t,r,j,n,q,m,o)|0){case 2:{f=-1;break a}case 3:break c;case 1:break;default:break b}u=c[k>>2]|0;c[u>>2]=g;c[u+4>>2]=h;if((f|0)==8){f=-1;break a}g=bw(c[p>>2]|0)|0;if((g|0)==-1){f=-1;break a}a[j>>0]=g;f=f+1|0}a[q>>0]=a[r>>0]|0}else a[q>>0]=a[r>>0]|0;while(0);if(e){f=a[q>>0]|0;c[b+48>>2]=f&255}else{while(1){if((f|0)<=0)break;f=f+-1|0;if((iw(d[r+f>>0]|0,c[p>>2]|0)|0)==-1){f=-1;break a}}f=a[q>>0]|0}f=f&255}while(0);i=s;return f|0}function Mx(a){a=a|0;return}function Nx(a){a=a|0;a=a+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function Ox(a){a=a|0;var b=0,d=0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b){Kc[c[(c[a>>2]|0)+8>>2]&255](a);a=1}else a=0;return a|0}function Px(a){a=a|0;a=a+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function Qx(a){a=a|0;if(Ox(a)|0)Rx(a);return}function Rx(a){a=a|0;var b=0,d=0;d=a+8|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Kc[c[(c[a>>2]|0)+16>>2]&255](a);return}function Sx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;b=k+8|0;h=k+4|0;d=k;c[h>>2]=a;do if(a>>>0>=212){g=(a>>>0)/210|0;e=g*210|0;c[d>>2]=a-e;b=(Tx(12004,12196,d,b)|0)-12004>>2;f=b;b=(c[12004+(b<<2)>>2]|0)+e|0;a:while(1){e=5;while(1){if(e>>>0>=47){e=211;j=8;break}d=c[11812+(e<<2)>>2]|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=106;break a}if((b|0)==($(a,d)|0))break;else e=e+1|0}b:do if((j|0)==8)while(1){j=0;d=(b>>>0)/(e>>>0)|0;if(d>>>0>>0){j=105;break a}if((b|0)==($(d,e)|0))break b;d=e+10|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+12|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+16|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+18|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+22|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+28|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+30|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+36|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+40|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+42|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+46|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+52|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+58|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+60|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+66|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+70|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+72|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+78|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+82|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+88|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+96|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+100|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+102|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+106|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+108|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+112|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+120|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+126|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+130|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+136|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+138|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+142|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+148|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+150|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+156|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+162|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+166|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+168|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+172|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+178|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+180|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+186|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+190|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+192|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+196|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+198|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break b;d=e+208|0;a=(b>>>0)/(d>>>0)|0;if(a>>>0>>0){j=105;break a}if((b|0)==($(a,d)|0))break;else{e=e+210|0;j=8}}while(0);e=f+1|0;b=(e|0)==48;e=b?0:e;b=(b&1)+g|0;f=e;g=b;b=(c[12004+(e<<2)>>2]|0)+(b*210|0)|0}if((j|0)==105){c[h>>2]=b;break}else if((j|0)==106){c[h>>2]=b;break}}else b=c[(Tx(11812,12004,h,b)|0)>>2]|0;while(0);i=k;return b|0}function Tx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[d>>2]|0;e=a;d=b-a>>2;a:while(1){while(1){if(!d)break a;a=(d|0)/2|0;if((c[e+(a<<2)>>2]|0)>>>0>>0)break;else d=a}e=e+(a+1<<2)|0;d=d+-1-a|0}return e|0}function Ux(a,b,d){a=a|0;b=b|0;d=d|0;wb(12196)|0;if((c[a>>2]|0)==1)do cc(12224,12196)|0;while((c[a>>2]|0)==1);if(!(c[a>>2]|0)){c[a>>2]=1;rc(12196)|0;Kc[d&255](b);wb(12196)|0;c[a>>2]=-1;rc(12196)|0;Yb(12224)|0}else rc(12196)|0;return}function Vx(b,d){b=b|0;d=d|0;if(!(a[d>>0]&1)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}else Wx(b,c[d+8>>2]|0,c[d+4>>2]|0);return}function Wx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279)Qt(b);if(e>>>0<11){a[b>>0]=e<<1;b=b+1|0}else{g=e+16&-16;f=Tt(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f}gH(b|0,d|0,e|0)|0;a[b+e>>0]=0;return}function Xx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>4294967279)Qt(b);if(d>>>0<11){a[b>>0]=d<<1;b=b+1|0}else{g=d+16&-16;f=Tt(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=d;b=f}iH(b|0,e|0,d|0)|0;a[b+d>>0]=0;return}function Yx(b){b=b|0;if(a[b>>0]&1)Vt(c[b+8>>2]|0);return}function Zx(a,b){a=a|0;b=b|0;return _x(a,b,Fw(b)|0)|0}function _x(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))h=10;else{f=c[b>>2]|0;h=(f&-2)+-1|0;f=f&255}g=(f&1)==0;do if(h>>>0>=e>>>0){if(g)f=b+1|0;else f=c[b+8>>2]|0;hH(f|0,d|0,e|0)|0;a[f+e>>0]=0;if(!(a[b>>0]&1)){a[b>>0]=e<<1;break}else{c[b+4>>2]=e;break}}else{if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;dy(b,h,e-h|0,f,0,f,e,d)}while(0);return b|0}function $x(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a[b>>0]|0;g=(f&1)==0;if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;do if(f>>>0>=d>>>0)if(g){a[b+1+d>>0]=0;a[b>>0]=d<<1;break}else{a[(c[b+8>>2]|0)+d>>0]=0;c[b+4>>2]=d;break}else ay(b,d-f|0,e)|0;while(0);return}function ay(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(d){f=a[b>>0]|0;if(!(f&1))g=10;else{f=c[b>>2]|0;g=(f&-2)+-1|0;f=f&255}if(!(f&1))h=(f&255)>>>1;else h=c[b+4>>2]|0;if((g-h|0)>>>0>>0){ey(b,g,d-g+h|0,h,h,0,0);f=a[b>>0]|0}if(!(f&1))g=b+1|0;else g=c[b+8>>2]|0;iH(g+h|0,e|0,d|0)|0;f=h+d|0;if(!(a[b>>0]&1))a[b>>0]=f<<1;else c[b+4>>2]=f;a[g+f>>0]=0}return b|0}function by(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(d>>>0>4294967279)Qt(b);e=a[b>>0]|0;if(!(e&1))f=10;else{e=c[b>>2]|0;f=(e&-2)+-1|0;e=e&255}if(!(e&1))j=(e&255)>>>1;else j=c[b+4>>2]|0;d=j>>>0>d>>>0?j:d;if(d>>>0<11)i=10;else i=(d+16&-16)+-1|0;do if((i|0)!=(f|0)){do if((i|0)!=10){d=Tt(i+1|0)|0;if(!(e&1)){f=1;g=b+1|0;h=0;break}else{f=1;g=c[b+8>>2]|0;h=1;break}}else{d=b+1|0;f=0;g=c[b+8>>2]|0;h=1}while(0);if(!(e&1))e=(e&255)>>>1;else e=c[b+4>>2]|0;gH(d|0,g|0,e+1|0)|0;if(h)Vt(g);if(f){c[b>>2]=i+1|1;c[b+4>>2]=j;c[b+8>>2]=d;break}else{a[b>>0]=j<<1;break}}while(0);return}function cy(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a[b>>0]|0;f=(e&1)!=0;if(f){g=(c[b>>2]&-2)+-1|0;h=c[b+4>>2]|0}else{g=10;h=(e&255)>>>1}if((h|0)==(g|0)){ey(b,g,1,g,g,0,0);if(!(a[b>>0]&1))g=7;else g=8}else if(f)g=8;else g=7;if((g|0)==7){a[b>>0]=(h<<1)+2;e=b+1|0;f=h+1|0}else if((g|0)==8){e=c[b+8>>2]|0;f=h+1|0;c[b+4>>2]=f}a[e+h>>0]=d;a[e+f>>0]=0;return}function dy(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((-18-d|0)>>>0>>0)Qt(b);if(!(a[b>>0]&1))m=b+1|0;else m=c[b+8>>2]|0;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=Tt(k)|0;if(g)gH(l|0,m|0,g|0)|0;if(i)gH(l+g|0,j|0,i|0)|0;e=f-h|0;if((e|0)!=(g|0))gH(l+(i+g)|0,m+(h+g)|0,e-g|0)|0;if((d|0)!=10)Vt(m);c[b+8>>2]=l;c[b>>2]=k|1;d=e+i|0;c[b+4>>2]=d;a[l+d>>0]=0;return}function ey(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((-17-d|0)>>>0>>0)Qt(b);if(!(a[b>>0]&1))l=b+1|0;else l=c[b+8>>2]|0;if(d>>>0<2147483623){j=e+d|0;k=d<<1;j=j>>>0>>0?k:j;j=j>>>0<11?11:j+16&-16}else j=-17;k=Tt(j)|0;if(g)gH(k|0,l|0,g|0)|0;e=f-h|0;if((e|0)!=(g|0))gH(k+(i+g)|0,l+(h+g)|0,e-g|0)|0;if((d|0)!=10)Vt(l);c[b+8>>2]=k;c[b>>2]=j|1;return}function fy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>1073741807)Qt(b);if(e>>>0<2){a[b>>0]=e<<1;b=b+4|0}else{g=e+4&-4;f=Tt(g<<2)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f}Mw(b,d,e)|0;c[b+(e<<2)>>2]=0;return}function gy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>1073741807)Qt(b);if(d>>>0<2){a[b>>0]=d<<1;b=b+4|0}else{g=d+4&-4;f=Tt(g<<2)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=d;b=f}Ow(b,e,d)|0;c[b+(d<<2)>>2]=0;return}function hy(b){b=b|0;if(a[b>>0]&1)Vt(c[b+8>>2]|0);return}function iy(a,b){a=a|0;b=b|0;return jy(a,b,Lw(b)|0)|0}function jy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a[b>>0]|0;if(!(f&1))h=1;else{f=c[b>>2]|0;h=(f&-2)+-1|0;f=f&255}g=(f&1)==0;do if(h>>>0>=e>>>0){if(g)f=b+4|0;else f=c[b+8>>2]|0;Nw(f,d,e)|0;c[f+(e<<2)>>2]=0;if(!(a[b>>0]&1)){a[b>>0]=e<<1;break}else{c[b+4>>2]=e;break}}else{if(g)f=(f&255)>>>1;else f=c[b+4>>2]|0;my(b,h,e-h|0,f,0,f,e,d)}while(0);return b|0}function ky(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(d>>>0>1073741807)Qt(b);e=a[b>>0]|0;if(!(e&1))f=1;else{e=c[b>>2]|0;f=(e&-2)+-1|0;e=e&255}if(!(e&1))j=(e&255)>>>1;else j=c[b+4>>2]|0;d=j>>>0>d>>>0?j:d;if(d>>>0<2)i=1;else i=(d+4&-4)+-1|0;do if((i|0)!=(f|0)){do if((i|0)!=1){d=Tt((i<<2)+4|0)|0;if(!(e&1)){f=1;g=b+4|0;h=0;break}else{f=1;g=c[b+8>>2]|0;h=1;break}}else{d=b+4|0;f=0;g=c[b+8>>2]|0;h=1}while(0);if(!(e&1))e=(e&255)>>>1;else e=c[b+4>>2]|0;Mw(d,g,e+1|0)|0;if(h)Vt(g);if(f){c[b>>2]=i+1|1;c[b+4>>2]=j;c[b+8>>2]=d;break}else{a[b>>0]=j<<1;break}}while(0);return}function ly(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a[b>>0]|0;f=(e&1)!=0;if(f){g=(c[b>>2]&-2)+-1|0;h=c[b+4>>2]|0}else{g=1;h=(e&255)>>>1}if((h|0)==(g|0)){ny(b,g,1,g,g,0,0);if(!(a[b>>0]&1))g=7;else g=8}else if(f)g=8;else g=7;if((g|0)==7){a[b>>0]=(h<<1)+2;e=b+4|0;f=h+1|0}else if((g|0)==8){e=c[b+8>>2]|0;f=h+1|0;c[b+4>>2]=f}c[e+(h<<2)>>2]=d;c[e+(f<<2)>>2]=0;return}function my(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0;if((1073741806-d|0)>>>0>>0)Qt(b);if(!(a[b>>0]&1))m=b+4|0;else m=c[b+8>>2]|0;if(d>>>0<536870887){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<2?2:k+4&-4}else k=1073741807;l=Tt(k<<2)|0;if(g)Mw(l,m,g)|0;if(i)Mw(l+(g<<2)|0,j,i)|0;e=f-h|0;if((e|0)!=(g|0))Mw(l+(i+g<<2)|0,m+(h+g<<2)|0,e-g|0)|0;if((d|0)!=1)Vt(m);c[b+8>>2]=l;c[b>>2]=k|1;d=e+i|0;c[b+4>>2]=d;c[l+(d<<2)>>2]=0;return}function ny(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((1073741807-d|0)>>>0>>0)Qt(b);if(!(a[b>>0]&1))l=b+4|0;else l=c[b+8>>2]|0;if(d>>>0<536870887){j=e+d|0;k=d<<1;j=j>>>0>>0?k:j;j=j>>>0<2?2:j+4&-4}else j=1073741807;k=Tt(j<<2)|0;if(g)Mw(k,l,g)|0;e=f-h|0;if((e|0)!=(g|0))Mw(k+(i+g<<2)|0,l+(h+g<<2)|0,e-g|0)|0;if((d|0)!=1)Vt(l);c[b+8>>2]=k;c[b>>2]=j|1;return}function oy(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=d;f=e-g|0;if(f>>>0>4294967279)Qt(b);if(f>>>0<11){a[b>>0]=f<<1;h=b+1|0}else{i=f+16&-16;h=Tt(i)|0;c[b+8>>2]=h;c[b>>2]=i|1;c[b+4>>2]=f}b=e-g|0;if((d|0)!=(e|0)){f=h;while(1){a[f>>0]=a[d>>0]|0;d=d+1|0;if((d|0)==(e|0))break;else f=f+1|0}}a[h+b>>0]=0;return}function py(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d;f=e-h|0;g=f>>2;if(g>>>0>1073741807)Qt(b);if(g>>>0<2){a[b>>0]=f>>>1;b=b+4|0}else{i=g+4&-4;f=Tt(i<<2)|0;c[b+8>>2]=f;c[b>>2]=i|1;c[b+4>>2]=g;b=f}g=(e-h|0)>>>2;if((d|0)!=(e|0)){f=b;while(1){c[f>>2]=c[d>>2];d=d+4|0;if((d|0)==(e|0))break;else f=f+4|0}}c[b+(g<<2)>>2]=0;return}function qy(a,b){a=a|0;b=b|0;c[a+16>>2]=(c[a+24>>2]|0)==0|b;return}function ry(a){a=a|0;c[a>>2]=12568;sy(a,0);ED(a+28|0);dx(c[a+32>>2]|0);dx(c[a+36>>2]|0);dx(c[a+48>>2]|0);dx(c[a+60>>2]|0);return}function sy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+40>>2]|0;e=a+32|0;f=a+36|0;if(d)do{d=d+-1|0;Yc[c[(c[e>>2]|0)+(d<<2)>>2]&3](b,a,c[(c[f>>2]|0)+(d<<2)>>2]|0)}while((d|0)!=0);return}function ty(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;DD(b,a+28|0);i=d;return c[b>>2]|0}function uy(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;d=a+28|0;b=a+32|0;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));CD(d);return}function vy(a){a=a|0;c[a>>2]=12280;ED(a+4|0);return}function wy(a){a=a|0;c[a>>2]=12280;ED(a+4|0);Vt(a);return}function xy(a){a=a|0;c[a>>2]=12280;CD(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function yy(a,b){a=a|0;b=b|0;return}function zy(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Ay(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function By(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function Cy(a){a=a|0;return 0}function Dy(a){a=a|0;return 0}function Ey(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+12|0;i=b+16|0;a:do if((e|0)>0){g=d;d=0;while(1){f=c[h>>2]|0;if(f>>>0<(c[i>>2]|0)>>>0){c[h>>2]=f+1;f=a[f>>0]|0}else{f=Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;if((f|0)==-1)break a;f=f&255}a[g>>0]=f;d=d+1|0;if((d|0)<(e|0))g=g+1|0;else break}}else d=0;while(0);return d|0}function Fy(a){a=a|0;return -1}function Gy(a){a=a|0;var b=0;if((Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+1;a=d[a>>0]|0}return a|0}function Hy(a,b){a=a|0;b=b|0;return -1}function Iy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=b+24|0;j=b+28|0;a:do if((f|0)>0){h=e;e=0;while(1){g=c[i>>2]|0;if(g>>>0>=(c[j>>2]|0)>>>0){if((Uc[c[(c[b>>2]|0)+52>>2]&63](b,d[h>>0]|0)|0)==-1)break a}else{k=a[h>>0]|0;c[i>>2]=g+1;a[g>>0]=k}e=e+1|0;if((e|0)<(f|0))h=h+1|0;else break}}else e=0;while(0);return e|0}function Jy(a,b){a=a|0;b=b|0;return -1}function Ky(a){a=a|0;c[a>>2]=12344;ED(a+4|0);return}function Ly(a){a=a|0;c[a>>2]=12344;ED(a+4|0);Vt(a);return}function My(a){a=a|0;c[a>>2]=12344;CD(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function Ny(a,b){a=a|0;b=b|0;return}function Oy(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Py(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function Qy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function Ry(a){a=a|0;return 0}function Sy(a){a=a|0;return 0}function Ty(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=a+12|0;h=a+16|0;a:do if((d|0)>0){f=b;b=0;while(1){e=c[g>>2]|0;if(e>>>0>=(c[h>>2]|0)>>>0){e=Nc[c[(c[a>>2]|0)+40>>2]&127](a)|0;if((e|0)==-1)break a}else{c[g>>2]=e+4;e=c[e>>2]|0}c[f>>2]=e;b=b+1|0;if((b|0)<(d|0))f=f+4|0;else break}}else b=0;while(0);return b|0}function Uy(a){a=a|0;return -1}function Vy(a){a=a|0;var b=0;if((Nc[c[(c[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=c[a>>2]|0}return a|0}function Wy(a,b){a=a|0;b=b|0;return -1}function Xy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=a+24|0;h=a+28|0;a:do if((d|0)>0){f=b;b=0;while(1){e=c[g>>2]|0;if(e>>>0>=(c[h>>2]|0)>>>0){if((Uc[c[(c[a>>2]|0)+52>>2]&63](a,c[f>>2]|0)|0)==-1)break a}else{i=c[f>>2]|0;c[g>>2]=e+4;c[e>>2]=i}b=b+1|0;if((b|0)<(d|0))f=f+4|0;else break}}else b=0;while(0);return b|0}function Yy(a,b){a=a|0;b=b|0;return -1}function Zy(a){a=a|0;ry(a+8|0);return}function _y(a){a=a|0;ry(a+((c[(c[a>>2]|0)+-12>>2]|0)+8)|0);return}function $y(a){a=a|0;ry(a+8|0);Vt(a);return}function az(a){a=a|0;$y(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function bz(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e;if(c[b+((c[(c[b>>2]|0)+-12>>2]|0)+24)>>2]|0){lz(d,b);if((a[d>>0]|0)!=0?(f=c[b+((c[(c[b>>2]|0)+-12>>2]|0)+24)>>2]|0,(Nc[c[(c[f>>2]|0)+24>>2]&127](f)|0)==-1):0){f=b+((c[(c[b>>2]|0)+-12>>2]|0)+16)|0;c[f>>2]=c[f>>2]|1}mz(d)}i=e;return b|0}function cz(a){a=a|0;ry(a+8|0);return}function dz(a){a=a|0;ry(a+((c[(c[a>>2]|0)+-12>>2]|0)+8)|0);return}function ez(a){a=a|0;ry(a+8|0);Vt(a);return}function fz(a){a=a|0;ez(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function gz(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e;if(c[b+((c[(c[b>>2]|0)+-12>>2]|0)+24)>>2]|0){tz(d,b);if((a[d>>0]|0)!=0?(f=c[b+((c[(c[b>>2]|0)+-12>>2]|0)+24)>>2]|0,(Nc[c[(c[f>>2]|0)+24>>2]&127](f)|0)==-1):0){f=b+((c[(c[b>>2]|0)+-12>>2]|0)+16)|0;c[f>>2]=c[f>>2]|1}uz(d)}i=e;return b|0}function hz(a){a=a|0;ry(a+4|0);return}function iz(a){a=a|0;ry(a+((c[(c[a>>2]|0)+-12>>2]|0)+4)|0);return}function jz(a){a=a|0;ry(a+4|0);Vt(a);return}function kz(a){a=a|0;jz(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function lz(b,d){b=b|0;d=d|0;var e=0;a[b>>0]=0;c[b+4>>2]=d;e=c[(c[d>>2]|0)+-12>>2]|0;if(!(c[d+(e+16)>>2]|0)){e=c[d+(e+72)>>2]|0;if(e)bz(e)|0;a[b>>0]=1}return}function mz(a){a=a|0;var b=0,d=0;a=a+4|0;d=c[a>>2]|0;b=c[(c[d>>2]|0)+-12>>2]|0;if(((((c[d+(b+24)>>2]|0)!=0?(c[d+(b+16)>>2]|0)==0:0)?(c[d+(b+4)>>2]&8192|0)!=0:0)?!(Ka()|0):0)?(d=c[a>>2]|0,d=c[d+((c[(c[d>>2]|0)+-12>>2]|0)+24)>>2]|0,(Nc[c[(c[d>>2]|0)+24>>2]&127](d)|0)==-1):0){d=c[a>>2]|0;d=d+((c[(c[d>>2]|0)+-12>>2]|0)+16)|0;c[d>>2]=c[d>>2]|1}return}function nz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;j=n+16|0;k=n+4|0;m=n+8|0;e=n;lz(m,b);if(a[m>>0]|0){c[e>>2]=ty(b+(c[(c[b>>2]|0)+-12>>2]|0)|0)|0;l=GD(e,12852)|0;ED(e);f=c[(c[b>>2]|0)+-12>>2]|0;g=c[b+(f+24)>>2]|0;h=b+f|0;f=b+(f+76)|0;e=c[f>>2]|0;if((e|0)==-1){c[j>>2]=ty(h)|0;e=GD(j,13680)|0;e=Uc[c[(c[e>>2]|0)+28>>2]&63](e,32)|0;ED(j);e=e<<24>>24;c[f>>2]=e}f=c[(c[l>>2]|0)+16>>2]|0;c[k>>2]=g;c[j>>2]=c[k>>2];if(!(Oc[f&31](l,j,h,e&255,d)|0)){d=b+((c[(c[b>>2]|0)+-12>>2]|0)+16)|0;c[d>>2]=c[d>>2]|5}}mz(m);i=n;return b|0}function oz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;lz(j,b);a:do if(a[j>>0]|0){f=c[b+((c[(c[b>>2]|0)+-12>>2]|0)+24)>>2]|0;g=f;do if(f){h=g+24|0;e=c[h>>2]|0;if((e|0)==(c[g+28>>2]|0))if((Uc[c[(c[f>>2]|0)+52>>2]&63](g,d&255)|0)==-1)break;else break a;else{c[h>>2]=e+1;a[e>>0]=d;break a}}while(0);d=b+((c[(c[b>>2]|0)+-12>>2]|0)+16)|0;c[d>>2]=c[d>>2]|1}while(0);mz(j);i=k;return b|0}function pz(a){a=a|0;ry(a+4|0);return}function qz(a){a=a|0;ry(a+((c[(c[a>>2]|0)+-12>>2]|0)+4)|0);return}function rz(a){a=a|0;ry(a+4|0);Vt(a);return}function sz(a){a=a|0;rz(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function tz(b,d){b=b|0;d=d|0;var e=0;a[b>>0]=0;c[b+4>>2]=d;e=c[(c[d>>2]|0)+-12>>2]|0;if(!(c[d+(e+16)>>2]|0)){e=c[d+(e+72)>>2]|0;if(e)gz(e)|0;a[b>>0]=1}return}function uz(a){a=a|0;var b=0,d=0;a=a+4|0;d=c[a>>2]|0;b=c[(c[d>>2]|0)+-12>>2]|0;if(((((c[d+(b+24)>>2]|0)!=0?(c[d+(b+16)>>2]|0)==0:0)?(c[d+(b+4)>>2]&8192|0)!=0:0)?!(Ka()|0):0)?(d=c[a>>2]|0,d=c[d+((c[(c[d>>2]|0)+-12>>2]|0)+24)>>2]|0,(Nc[c[(c[d>>2]|0)+24>>2]&127](d)|0)==-1):0){d=c[a>>2]|0;d=d+((c[(c[d>>2]|0)+-12>>2]|0)+16)|0;c[d>>2]=c[d>>2]|1}return}function vz(a){a=a|0;ry(a);Vt(a);return}function wz(a){a=a|0;a=a+16|0;c[a>>2]=c[a>>2]|1;return}function xz(a){a=a|0;return}function yz(a){a=a|0;return}function zz(a){a=a|0;Vt(a);return}function Az(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if((e|0)==(f|0))h=6;else while(1){if((c|0)==(d|0)){c=-1;break a}b=a[c>>0]|0;g=a[e>>0]|0;if(b<<24>>24>24){c=-1;break a}if(g<<24>>24>24){c=1;break a}c=c+1|0;e=e+1|0;if((e|0)==(f|0)){h=6;break}}while(0);if((h|0)==6)c=(c|0)!=(d|0)&1;return c|0}function Bz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;oy(a,c,d);return}function Cz(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)==(d|0))b=0;else{b=0;do{b=(a[c>>0]|0)+(b<<4)|0;e=b&-268435456;b=(e>>>24|e)^b;c=c+1|0}while((c|0)!=(d|0))}return b|0}function Dz(a){a=a|0;return}function Ez(a){a=a|0;Vt(a);return}function Fz(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if((e|0)==(f|0))h=6;else while(1){if((b|0)==(d|0)){b=-1;break a}a=c[b>>2]|0;g=c[e>>2]|0;if((a|0)<(g|0)){b=-1;break a}if((g|0)<(a|0)){b=1;break a}b=b+4|0;e=e+4|0;if((e|0)==(f|0)){h=6;break}}while(0);if((h|0)==6)b=(b|0)!=(d|0)&1;return b|0}function Gz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;py(a,c,d);return}function Hz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0))a=0;else{a=0;do{a=(c[b>>2]|0)+(a<<4)|0;e=a&-268435456;a=(e>>>24|e)^a;b=b+4|0}while((b|0)!=(d|0))}return a|0}function Iz(a){a=a|0;return}function Jz(a){a=a|0;Vt(a);return}function Kz(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;k=s+56|0;j=s+52|0;r=s+48|0;l=s+44|0;m=s+40|0;n=s+36|0;o=s+32|0;q=s+8|0;p=s;a:do if(!(c[f+4>>2]&1)){c[r>>2]=-1;q=c[(c[b>>2]|0)+16>>2]|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];j=Mc[q&63](b,j,k,f,g,r)|0;c[d>>2]=j;switch(c[r>>2]|0){case 0:{a[h>>0]=0;break a}case 1:{a[h>>0]=1;break a}default:{a[h>>0]=1;c[g>>2]=4;break a}}}else{b=ty(f)|0;c[n>>2]=b;j=GD(n,13680)|0;Ox(b)|0;b=ty(f)|0;c[o>>2]=b;r=GD(o,13820)|0;Ox(b)|0;Lc[c[(c[r>>2]|0)+24>>2]&63](q,r);Lc[c[(c[r>>2]|0)+28>>2]&63](q+12|0,r);c[p>>2]=c[e>>2];c[k>>2]=c[p>>2];a[h>>0]=(sF(d,k,q,q+24|0,j,g,1)|0)==(q|0)&1;j=c[d>>2]|0;Yx(q+12|0);Yx(q)}while(0);i=s;return j|0}function Lz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=tF(a,k,j,e,f,g)|0;i=h;return a|0}function Mz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=uF(a,k,j,e,f,g)|0;i=h;return a|0}function Nz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=vF(a,k,j,e,f,g)|0;i=h;return a|0}function Oz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=wF(a,k,j,e,f,g)|0;i=h;return a|0}function Pz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=xF(a,k,j,e,f,g)|0;i=h;return a|0}function Qz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=yF(a,k,j,e,f,g)|0;i=h;return a|0}function Rz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=zF(a,k,j,e,f,g)|0;i=h;return a|0}function Sz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=AF(a,k,j,e,f,g)|0;i=h;return a|0}function Tz(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=BF(a,k,j,e,f,g)|0;i=h;return a|0}function Uz(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+240|0;w=z;p=z+208|0;y=z+32|0;t=z+28|0;x=z+16|0;v=z+12|0;r=z+48|0;s=z+8|0;q=z+4|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;u=ty(g)|0;c[t>>2]=u;t=GD(t,13680)|0;Xc[c[(c[t>>2]|0)+32>>2]&15](t,53456,53482,p)|0;Ox(u)|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);t=x+8|0;u=x+1|0;g=(a[x>>0]&1)==0?u:c[t>>2]|0;c[v>>2]=g;c[s>>2]=r;c[q>>2]=0;o=x+4|0;b=c[e>>2]|0;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;l=(b|0)==0;k=c[f>>2]|0;do if(k){if((c[k+12>>2]|0)!=(c[k+16>>2]|0))if(l)break;else break a;if((Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0)!=-1)if(l)break;else break a;else{c[f>>2]=0;A=13;break}}else A=13;while(0);if((A|0)==13){A=0;if(l){k=0;break}else k=0}l=a[x>>0]|0;l=(l&1)==0?(l&255)>>>1:c[o>>2]|0;if((c[v>>2]|0)==(g+l|0)){$x(x,l<<1,0);if(!(a[x>>0]&1))g=10;else g=(c[x>>2]&-2)+-1|0;$x(x,g,0);g=(a[x>>0]&1)==0?u:c[t>>2]|0;c[v>>2]=g+l}m=b+12|0;l=c[m>>2]|0;n=b+16|0;if((l|0)==(c[n>>2]|0))l=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else l=d[l>>0]|0;if(Vz(l&255,16,g,v,q,0,y,r,s,p)|0)break;k=c[m>>2]|0;if((k|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=k+1;continue}}$x(x,(c[v>>2]|0)-g|0,0);u=(a[x>>0]&1)==0?u:c[t>>2]|0;v=Wz()|0;c[w>>2]=j;if((CF(u,v,54840,w)|0)!=1)c[h>>2]=4;if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(k){if((c[k+12>>2]|0)==(c[k+16>>2]|0)?(Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0)==-1:0){c[f>>2]=0;A=37;break}if(!b)A=38}else A=37;while(0);if((A|0)==37?b:0)A=38;if((A|0)==38)c[h>>2]=c[h>>2]|2;A=c[e>>2]|0;Yx(x);Yx(y);i=z;return A|0}function Vz(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(a[l+24>>0]|0)==b<<24>>24;if(!m?(a[l+25>>0]|0)!=b<<24>>24:0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i>>0]|0;if(b<<24>>24==h<<24>>24?(((n&1)==0?(n&255)>>>1:c[i+4>>2]|0)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}d=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=d;c[g>>2]=0;m=0;break}i=l+26|0;m=l;while(1){if((a[m>>0]|0)==b<<24>>24)break;m=m+1|0;if((m|0)==(i|0)){m=i;break}}m=m-l|0;if((m|0)>23)m=-1;else{switch(d|0){case 10:case 8:{if((m|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[53456+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[53456+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function Wz(){if((a[2240]|0)==0?(Ia(2240)|0)!=0:0){c[3561]=av(2147483647,54843,0)|0;db(2240)}return c[3561]|0}function Xz(a){a=a|0;return}function Yz(a){a=a|0;Vt(a);return}function Zz(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;k=s+56|0;j=s+52|0;r=s+48|0;l=s+44|0;m=s+40|0;n=s+36|0;o=s+32|0;q=s+8|0;p=s;a:do if(!(c[f+4>>2]&1)){c[r>>2]=-1;q=c[(c[b>>2]|0)+16>>2]|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];j=Mc[q&63](b,j,k,f,g,r)|0;c[d>>2]=j;switch(c[r>>2]|0){case 0:{a[h>>0]=0;break a}case 1:{a[h>>0]=1;break a}default:{a[h>>0]=1;c[g>>2]=4;break a}}}else{b=ty(f)|0;c[n>>2]=b;j=GD(n,13672)|0;Ox(b)|0;b=ty(f)|0;c[o>>2]=b;r=GD(o,13828)|0;Ox(b)|0;Lc[c[(c[r>>2]|0)+24>>2]&63](q,r);Lc[c[(c[r>>2]|0)+28>>2]&63](q+12|0,r);c[p>>2]=c[e>>2];c[k>>2]=c[p>>2];a[h>>0]=(DF(d,k,q,q+24|0,j,g,1)|0)==(q|0)&1;j=c[d>>2]|0;hy(q+12|0);hy(q)}while(0);i=s;return j|0}function _z(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=EF(a,k,j,e,f,g)|0;i=h;return a|0}function $z(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=FF(a,k,j,e,f,g)|0;i=h;return a|0}function aA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=GF(a,k,j,e,f,g)|0;i=h;return a|0}function bA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=HF(a,k,j,e,f,g)|0;i=h;return a|0}function cA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=IF(a,k,j,e,f,g)|0;i=h;return a|0}function dA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=JF(a,k,j,e,f,g)|0;i=h;return a|0}function eA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=KF(a,k,j,e,f,g)|0;i=h;return a|0}function fA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=LF(a,k,j,e,f,g)|0;i=h;return a|0}function gA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;m=h+4|0;l=h;c[m>>2]=c[b>>2];c[l>>2]=c[d>>2];c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];a=MF(a,k,j,e,f,g)|0;i=h;return a|0} +function Dn(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0;x=i;i=i+16|0;h=x;q=+g[a+20>>2];if((((((!(q>b)?(s=+g[a+24>>2],!(s<=b)):0)?(t=+g[a+28>>2],!(t>d)):0)?(n=+g[a+32>>2],!(n<=d)):0)?(o=e,!(o<=-3.141592653589793|o>3.141592653589793)):0)?(p=+g[a+36>>2],!(p>f)):0)?(r=+g[a+40>>2],!(r<=f)):0){if(!(q<=b)){m=kh(kh(nz(kh(kh(kh(10696,31494)|0,32052)|0,34302)|0,360)|0,34309)|0,31528)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(s>b)){m=kh(kh(nz(kh(kh(kh(10696,31543)|0,32052)|0,34302)|0,361)|0,34309)|0,31528)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(t<=d)){m=kh(kh(nz(kh(kh(kh(10696,31576)|0,32052)|0,34302)|0,362)|0,34309)|0,31610)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(n>d)){m=kh(kh(nz(kh(kh(kh(10696,31625)|0,32052)|0,34302)|0,363)|0,34309)|0,31610)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(o>-3.141592653589793)){m=kh(kh(nz(kh(kh(kh(10696,31658)|0,32052)|0,34302)|0,364)|0,34309)|0,31693)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(o<=3.141592653589793)){m=kh(kh(nz(kh(kh(kh(10696,31712)|0,32052)|0,34302)|0,365)|0,34309)|0,31693)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(p<=f)){m=kh(kh(nz(kh(kh(kh(10696,31747)|0,32052)|0,34302)|0,366)|0,34309)|0,31789)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}if(!(r>f)){m=kh(kh(nz(kh(kh(kh(10696,31808)|0,32052)|0,34302)|0,367)|0,34309)|0,31789)|0;c[h>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(h,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(h);oz(m,l)|0;bz(m)|0;Zb()}h=a+68|0;j=a+72|0;m=a+76|0;k=a+80|0;Gn(a,h,j,m,k,b,d,e,f);h=~~+N(+(+g[h>>2]+-.5));j=~~+N(+(+g[j>>2]+-.5));m=~~+N(+(+g[m>>2]+-.5));k=~~+N(+(+g[k>>2]+-.5));l=c[a+60>>2]|0;m=(l+m|0)%(l|0)|0;if((((h|0)>=0?(u=h+1|0,!((j|0)<0?1:(u|0)>=(c[a+52>>2]|0))):0)?(v=j+1|0,!((k|0)<0?1:(v|0)>=(c[a+56>>2]|0))):0)?(w=k+1|0,(w|0)<(c[a+64>>2]|0)):0){l=(m+1|0)%(l|0)|0;In(a,Hn(a,h,j,m,k)|0,1);In(a,Hn(a,u,j,m,k)|0,1);In(a,Hn(a,u,v,m,k)|0,1);In(a,Hn(a,u,v,l,k)|0,1);In(a,Hn(a,u,v,l,w)|0,1);In(a,Hn(a,u,v,m,w)|0,1);In(a,Hn(a,u,j,l,k)|0,1);In(a,Hn(a,u,j,l,w)|0,1);In(a,Hn(a,u,j,m,w)|0,1);In(a,Hn(a,h,v,m,k)|0,1);In(a,Hn(a,h,v,l,k)|0,1);In(a,Hn(a,h,v,l,w)|0,1);In(a,Hn(a,h,v,m,w)|0,1);In(a,Hn(a,h,j,l,k)|0,1);In(a,Hn(a,h,j,l,w)|0,1);In(a,Hn(a,h,j,m,w)|0,1);h=1}else h=0}else h=0;i=x;return h|0}function En(a,b){a=a|0;b=b|0;return +(+Fn(a,b,(b&1)+-1+((b|0)/2|0)|0))}function Fn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;f=s;if((b|0)<=0){r=kh(kh(nz(kh(kh(kh(10696,31849)|0,31878)|0,34302)|0,53)|0,34309)|0,31985)|0;c[f>>2]=ty(r+(c[(c[r>>2]|0)+-12>>2]|0)|0)|0;q=GD(f,13680)|0;q=Uc[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;ED(f);oz(r,q)|0;bz(r)|0;Zb()}if((d|0)<=0){r=kh(kh(nz(kh(kh(kh(10696,32004)|0,31878)|0,34302)|0,54)|0,34309)|0,32033)|0;c[f>>2]=ty(r+(c[(c[r>>2]|0)+-12>>2]|0)|0)|0;q=GD(f,13680)|0;q=Uc[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;ED(f);oz(r,q)|0;bz(r)|0;Zb()}q=d+-1|0;r=a+(q<<2)|0;e=+g[r>>2];if((b|0)>1){p=0;o=b+-1|0;do{b=p;f=o;do{k=b;while(1){h=a+(k<<2)|0;j=+g[h>>2];b=k+1|0;if(j>2];f=m+-1|0;if(e(m|0)){b=n;f=m}else{g[h>>2]=l;g[k>>2]=j}}while((b|0)<=(f|0));p=(f|0)<(q|0)?b:p;o=(b|0)<(d|0)?o:f;e=+g[r>>2]}while((p|0)<(o|0))}i=s;return +e}function Gn(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;i=+i;j=+j;k=+k;var l=0.0,m=0.0;m=+g[a+20>>2];l=+g[a+24>>2]-m;g[b>>2]=+(c[a+52>>2]|0)*((h-m)/(l==0.0?1.0:l));l=+g[a+28>>2];h=+g[a+32>>2]-l;g[d>>2]=+(c[a+56>>2]|0)*((i-l)/(h==0.0?1.0:h));g[e>>2]=(j+3.141592653589793)*.15915494309189535*+(c[a+60>>2]|0);h=+g[a+36>>2];i=+g[a+40>>2]-h;g[f>>2]=+(c[a+64>>2]|0)*((k-h)/(i==0.0?1.0:i));return}function Hn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+16|0;g=l;if((b|0)<=-1){k=kh(kh(nz(kh(kh(kh(10696,32226)|0,32052)|0,34302)|0,165)|0,34309)|0,32259)|0;c[g>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;j=GD(g,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(g);oz(k,j)|0;bz(k)|0;Zb()}h=c[a+52>>2]|0;if((h|0)<=(b|0)){k=kh(kh(nz(kh(kh(kh(10696,32277)|0,32052)|0,34302)|0,166)|0,34309)|0,32259)|0;c[g>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;j=GD(g,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(g);oz(k,j)|0;bz(k)|0;Zb()}if((d|0)<=-1){k=kh(kh(nz(kh(kh(kh(10696,32317)|0,32052)|0,34302)|0,167)|0,34309)|0,32350)|0;c[g>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;j=GD(g,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(g);oz(k,j)|0;bz(k)|0;Zb()}j=c[a+56>>2]|0;if((j|0)<=(d|0)){k=kh(kh(nz(kh(kh(kh(10696,32368)|0,32052)|0,34302)|0,168)|0,34309)|0,32350)|0;c[g>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;m=GD(g,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(g);oz(k,m)|0;bz(k)|0;Zb()}if((e|0)<=-1){m=kh(kh(nz(kh(kh(kh(10696,32408)|0,32052)|0,34302)|0,169)|0,34309)|0,32445)|0;c[g>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;k=GD(g,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(g);oz(m,k)|0;bz(m)|0;Zb()}k=c[a+60>>2]|0;if((k|0)<=(e|0)){m=kh(kh(nz(kh(kh(kh(10696,32467)|0,32052)|0,34302)|0,170)|0,34309)|0,32445)|0;c[g>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;n=GD(g,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(g);oz(m,n)|0;bz(m)|0;Zb()}if((f|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,32515)|0,32052)|0,34302)|0,171)|0,34309)|0,32552)|0;c[g>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(g,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(g);oz(n,m)|0;bz(n)|0;Zb()}if((c[a+64>>2]|0)<=(f|0)){n=kh(kh(nz(kh(kh(kh(10696,32574)|0,32052)|0,34302)|0,172)|0,34309)|0,32552)|0;c[g>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(g,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(g);oz(n,m)|0;bz(n)|0;Zb()}n=($(h,d)|0)+b|0;b=($(c[a+84>>2]|0,e)|0)+n|0;b=b+($(c[a+88>>2]|0,f)|0)|0;if((b|0)>(($($(h,($(k,f)|0)+e|0)|0,j)|0)+n|0)){n=kh(kh(nz(kh(kh(kh(10696,32622)|0,32052)|0,34302)|0,176)|0,34309)|0,32207)|0;c[g>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(g,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(g);oz(n,m)|0;bz(n)|0;Zb()}else{i=l;return b|0}return 0}function In(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;g=j+16|0;h=j;e=j+8|0;if((b|0)<=-1){f=kh(kh(nz(kh(kh(kh(10696,32173)|0,32052)|0,34302)|0,290)|0,34309)|0,32207)|0;c[g>>2]=ty(f+(c[(c[f>>2]|0)+-12>>2]|0)|0)|0;k=GD(g,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(g);oz(f,k)|0;bz(f)|0;Zb()}c[e>>2]=b;f=a+92|0;a=Jn(f,e)|0;if(!a){k=h;c[k>>2]=b;c[k+4>>2]=d;Kn(g,f,h)}else{k=a+12|0;c[k>>2]=(c[k>>2]|0)+d}i=j;return}function Jn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function Kn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+16|0;p=u;t=c[e>>2]|0;s=d+4|0;m=c[s>>2]|0;r=(m|0)==0;a:do if(!r){n=m+-1|0;o=(n&m|0)==0;if(o)j=n&t;else j=(t>>>0)%(m>>>0)|0;f=c[(c[d>>2]|0)+(j<<2)>>2]|0;if(!f)q=12;else while(1){f=c[f>>2]|0;if(!f){q=12;break a}h=c[f+4>>2]|0;if(o)h=h&n;else h=(h>>>0)%(m>>>0)|0;if((h|0)!=(j|0)){q=12;break a}if((c[f+8>>2]|0)==(t|0)){h=0;break}}}else{j=0;q=12}while(0);if((q|0)==12){Ln(p,d,e,t);f=c[p>>2]|0;c[p>>2]=0;n=d+12|0;k=+(((c[n>>2]|0)+1|0)>>>0);l=+g[d+16>>2];do if(r|k>+(m>>>0)*l){if(m>>>0>2)h=(m+-1&m|0)==0;else h=0;h=(h&1|m<<1)^1;j=~~+_(+(k/l))>>>0;Mn(d,h>>>0>>0?j:h);h=c[s>>2]|0;j=h+-1|0;if(!(j&h)){m=h;j=j&t;break}else{m=h;j=(t>>>0)%(h>>>0)|0;break}}while(0);h=c[(c[d>>2]|0)+(j<<2)>>2]|0;if(!h){h=d+8|0;c[f>>2]=c[h>>2];c[h>>2]=f;c[(c[d>>2]|0)+(j<<2)>>2]=h;h=c[f>>2]|0;if(h){h=c[h+4>>2]|0;j=m+-1|0;if(!(j&m))h=h&j;else h=(h>>>0)%(m>>>0)|0;c[(c[d>>2]|0)+(h<<2)>>2]=f}}else{c[f>>2]=c[h>>2];c[h>>2]=f}c[n>>2]=(c[n>>2]|0)+1;h=1}c[b>>2]=f;a[b+4>>0]=h;i=u;return}function Ln(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Tt(16)|0;h=d;g=c[h+4>>2]|0;d=f+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[f+4>>2]=e;c[f>>2]=0;c[a>>2]=f;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=1;return}function Mn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Nn(a,b)}}else Nn(a,b);return}function Nn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=(b|0)!=0;if(d)f=Tt(b<<2)|0;else f=0;e=c[a>>2]|0;c[a>>2]=f;if(e)Vt(e);c[a+4>>2]=b;a:do if(d){if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}while(0);return}function On(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Vt(a)}while((b|0)!=0);return}function Pn(a){a=a|0;var b=0,d=0,e=0;b=a;d=4500;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=a+48|0;d=4548;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=a+96|0;d=4596;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=a+144|0;d=4644;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=a+192|0;d=4692;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=a+240|0;d=4740;e=b+48|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));g[a+288>>2]=.10000000149011612;g[a+292>>2]=.17499999701976776;g[a+296>>2]=.25;g[a+300>>2]=.32499998807907104;g[a+304>>2]=.4000000059604645;g[a+308>>2]=.4749999940395355;g[a+312>>2]=.550000011920929;g[a+316>>2]=7.0;return}function Qn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[b>>2]=96;Rn(b,((c[e+4>>2]|0)-(c[e>>2]|0)|0)/20|0);Sn(b,d,e,a,a+48|0,a+96|0,a+144|0,a+192|0,a+240|0,+g[a+288>>2],+g[a+292>>2],+g[a+296>>2],+g[a+300>>2],+g[a+304>>2],+g[a+308>>2],+g[a+312>>2],+g[a+316>>2]);return}function Rn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=$(c[b>>2]|0,d)|0;a[f>>0]=0;_n(b+4|0,g,f);Xj(b+16|0,d);i=e;return}function Sn(b,d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;var u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=i;i=i+16|0;A=B;if(!d){z=kh(kh(nz(kh(kh(kh(10696,32754)|0,32785)|0,34302)|0,537)|0,34309)|0,32888)|0;c[A>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(A,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(A);oz(z,y)|0;bz(z)|0;Zb()}x=b+16|0;y=e+4|0;u=c[y>>2]|0;v=c[e>>2]|0;if(((c[b+20>>2]|0)-(c[x>>2]|0)|0)!=(u-v|0)){z=kh(kh(nz(kh(kh(kh(10696,32904)|0,32785)|0,34302)|0,538)|0,34309)|0,32957)|0;c[A>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;w=GD(A,13680)|0;w=Uc[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;ED(A);oz(z,w)|0;bz(z)|0;Zb()}z=b+4|0;if((u|0)==(v|0)){v=(u-v|0)/20|0;u=0}else{w=v;u=0;do{v=$(c[b>>2]|0,u)|0;Tn((c[z>>2]|0)+v|0,d,w+(u*20|0)|0,f,g,h,j,k,l,m,n,o,p,q,r,s,t)|0;v=(c[x>>2]|0)+(u*20|0)|0;C=(c[e>>2]|0)+(u*20|0)|0;c[v>>2]=c[C>>2];c[v+4>>2]=c[C+4>>2];c[v+8>>2]=c[C+8>>2];c[v+12>>2]=c[C+12>>2];a[v+16>>0]=a[C+16>>0]|0;u=u+1|0;w=c[e>>2]|0;v=((c[y>>2]|0)-w|0)/20|0}while(u>>>0>>0)}if((u|0)==(v|0)){Rn(b,u);i=B;return}else{C=kh(kh(nz(kh(kh(kh(10696,32994)|0,32785)|0,34302)|0,617)|0,34309)|0,33045)|0;c[A>>2]=ty(C+(c[(c[C>>2]|0)+-12>>2]|0)|0)|0;B=GD(A,13680)|0;B=Uc[c[(c[B>>2]|0)+28>>2]&63](B,10)|0;ED(A);oz(C,B)|0;bz(C)|0;Zb()}}function Tn(a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;var s=0,t=0;s=i;i=i+160|0;t=s;Un(t,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q,r)|0;Vn(a,t);i=s;return 1}function Un(a,b,d,e,f,h,j,l,m,n,o,p,q,r,s,t,u){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;l=l|0;m=m|0;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;t=+t;u=+u;var v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;v=i;i=i+336|0;fa=v+296|0;A=v+248|0;F=v+200|0;K=v+152|0;P=v+104|0;W=v+56|0;$=v+8|0;x=v+4|0;w=v;z=+g[d+12>>2]*u;z=z<1.0?1.0:z;D=c[d>>2]|0;E=c[d+4>>2]|0;u=+g[d+8>>2];y=z*+R(+u);u=z*+S(+u);g[fa>>2]=y;g[fa+4>>2]=-u;c[fa+8>>2]=D;g[fa+12>>2]=u;g[fa+16>>2]=y;c[fa+20>>2]=E;g[fa+24>>2]=0.0;g[fa+28>>2]=0.0;g[fa+32>>2]=1.0;y=(c[k>>2]=D,+g[k>>2]);u=(c[k>>2]=E,+g[k>>2]);Wn(A,fa,e);E=A+8|0;Wn(E,fa,e+8|0);D=A+16|0;Wn(D,fa,e+16|0);C=A+24|0;Wn(C,fa,e+24|0);B=A+32|0;Wn(B,fa,e+32|0);d=A+40|0;Wn(d,fa,e+40|0);Wn(F,fa,f);J=F+8|0;Wn(J,fa,f+8|0);I=F+16|0;Wn(I,fa,f+16|0);H=F+24|0;Wn(H,fa,f+24|0);G=F+32|0;Wn(G,fa,f+32|0);e=F+40|0;Wn(e,fa,f+40|0);Wn(K,fa,h);O=K+8|0;Wn(O,fa,h+8|0);N=K+16|0;Wn(N,fa,h+16|0);M=K+24|0;Wn(M,fa,h+24|0);L=K+32|0;Wn(L,fa,h+32|0);f=K+40|0;Wn(f,fa,h+40|0);Wn(P,fa,j);V=P+8|0;Wn(V,fa,j+8|0);U=P+16|0;Wn(U,fa,j+16|0);T=P+24|0;Wn(T,fa,j+24|0);Q=P+32|0;Wn(Q,fa,j+32|0);h=P+40|0;Wn(h,fa,j+40|0);Wn(W,fa,l);_=W+8|0;Wn(_,fa,l+8|0);Z=W+16|0;Wn(Z,fa,l+16|0);Y=W+24|0;Wn(Y,fa,l+24|0);X=W+32|0;Wn(X,fa,l+32|0);j=W+40|0;Wn(j,fa,l+40|0);Wn($,fa,m);ea=$+8|0;Wn(ea,fa,m+8|0);da=$+16|0;Wn(da,fa,m+16|0);ca=$+24|0;Wn(ca,fa,m+24|0);ba=$+32|0;Wn(ba,fa,m+32|0);aa=$+40|0;Wn(aa,fa,m+40|0);Xn(b,x,w,z*t);m=c[x>>2]|0;l=c[w>>2]|0;g[a>>2]=+Yn(b,+g[$>>2],+g[$+4>>2],m,l);g[a+4>>2]=+Yn(b,+g[ea>>2],+g[$+12>>2],m,l);g[a+8>>2]=+Yn(b,+g[da>>2],+g[$+20>>2],m,l);g[a+12>>2]=+Yn(b,+g[ca>>2],+g[$+28>>2],m,l);g[a+16>>2]=+Yn(b,+g[ba>>2],+g[$+36>>2],m,l);g[a+20>>2]=+Yn(b,+g[aa>>2],+g[$+44>>2],m,l);Xn(b,x,w,z*s);l=c[x>>2]|0;m=c[w>>2]|0;g[a+24>>2]=+Yn(b,+g[W>>2],+g[W+4>>2],l,m);g[a+28>>2]=+Yn(b,+g[_>>2],+g[W+12>>2],l,m);g[a+32>>2]=+Yn(b,+g[Z>>2],+g[W+20>>2],l,m);g[a+36>>2]=+Yn(b,+g[Y>>2],+g[W+28>>2],l,m);g[a+40>>2]=+Yn(b,+g[X>>2],+g[W+36>>2],l,m);g[a+44>>2]=+Yn(b,+g[j>>2],+g[W+44>>2],l,m);Xn(b,x,w,z*r);m=c[x>>2]|0;l=c[w>>2]|0;g[a+48>>2]=+Yn(b,+g[P>>2],+g[P+4>>2],m,l);g[a+52>>2]=+Yn(b,+g[V>>2],+g[P+12>>2],m,l);g[a+56>>2]=+Yn(b,+g[U>>2],+g[P+20>>2],m,l);g[a+60>>2]=+Yn(b,+g[T>>2],+g[P+28>>2],m,l);g[a+64>>2]=+Yn(b,+g[Q>>2],+g[P+36>>2],m,l);g[a+68>>2]=+Yn(b,+g[h>>2],+g[P+44>>2],m,l);Xn(b,x,w,z*q);l=c[x>>2]|0;m=c[w>>2]|0;g[a+72>>2]=+Yn(b,+g[K>>2],+g[K+4>>2],l,m);g[a+76>>2]=+Yn(b,+g[O>>2],+g[K+12>>2],l,m);g[a+80>>2]=+Yn(b,+g[N>>2],+g[K+20>>2],l,m);g[a+84>>2]=+Yn(b,+g[M>>2],+g[K+28>>2],l,m);g[a+88>>2]=+Yn(b,+g[L>>2],+g[K+36>>2],l,m);g[a+92>>2]=+Yn(b,+g[f>>2],+g[K+44>>2],l,m);Xn(b,x,w,z*p);m=c[x>>2]|0;l=c[w>>2]|0;g[a+96>>2]=+Yn(b,+g[F>>2],+g[F+4>>2],m,l);g[a+100>>2]=+Yn(b,+g[J>>2],+g[F+12>>2],m,l);g[a+104>>2]=+Yn(b,+g[I>>2],+g[F+20>>2],m,l);g[a+108>>2]=+Yn(b,+g[H>>2],+g[F+28>>2],m,l);g[a+112>>2]=+Yn(b,+g[G>>2],+g[F+36>>2],m,l);g[a+116>>2]=+Yn(b,+g[e>>2],+g[F+44>>2],m,l);Xn(b,x,w,z*o);l=c[x>>2]|0;m=c[w>>2]|0;g[a+120>>2]=+Yn(b,+g[A>>2],+g[A+4>>2],l,m);g[a+124>>2]=+Yn(b,+g[E>>2],+g[A+12>>2],l,m);g[a+128>>2]=+Yn(b,+g[D>>2],+g[A+20>>2],l,m);g[a+132>>2]=+Yn(b,+g[C>>2],+g[A+28>>2],l,m);g[a+136>>2]=+Yn(b,+g[B>>2],+g[A+36>>2],l,m);g[a+140>>2]=+Yn(b,+g[d>>2],+g[A+44>>2],l,m);Xn(b,x,w,z*n);g[a+144>>2]=+Yn(b,y,u,c[x>>2]|0,c[w>>2]|0);i=v;return 1}function Vn(b,c){b=b|0;c=c|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=b;f=e+84|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));f=0;h=35;i=36;j=36;l=0;while(1){e=c+(f<<2)|0;f=f+1|0;if((l|0)!=(j|0)){k=f;m=l;while(1){n=b+((m|0)/8|0)|0;a[n>>0]=d[n>>0]|0|(+g[e>>2]<+g[c+(k<<2)>>2]&1)<<(m&7);m=m+1|0;if((m|0)==(j|0))break;else k=k+1|0}}l=l+i|0;j=j+h|0;if((f|0)==37)break;else{h=h+-1|0;i=i+-1|0}}return}function Wn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=c+4|0;g[a>>2]=+g[b+8>>2]+(+g[b>>2]*+g[c>>2]+ +g[b+4>>2]*+g[d>>2]);g[a+4>>2]=+g[b+20>>2]+(+g[b+12>>2]*+g[c>>2]+ +g[b+16>>2]*+g[d>>2]);return}function Xn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;f=~~+N(+(+Di(e)));c[b>>2]=f;e=+Z(+(e/+(1<>2]+.5));c[d>>2]=f;k=a+20|0;if((f|0)==((c[k>>2]|0)+-1|0)){c[b>>2]=(c[b>>2]|0)+1;c[d>>2]=0;f=0}h=c[b>>2]|0;if((h|0)>=0){j=c[a+16>>2]|0;if((h|0)<(j|0))h=f;else{c[b>>2]=j+-1;h=(c[k>>2]|0)+-1|0;c[d>>2]=h}}else{c[b>>2]=0;c[d>>2]=0;h=0}f=c[b>>2]|0;if((f|0)<=-1){b=kh(kh(nz(kh(kh(kh(10696,33065)|0,33100)|0,34302)|0,268)|0,34309)|0,33227)|0;c[l>>2]=ty(b+(c[(c[b>>2]|0)+-12>>2]|0)|0)|0;d=GD(l,13680)|0;d=Uc[c[(c[d>>2]|0)+28>>2]&63](d,10)|0;ED(l);oz(b,d)|0;bz(b)|0;Zb()}if((f|0)>=(c[a+16>>2]|0)){a=kh(kh(nz(kh(kh(kh(10696,33251)|0,33100)|0,34302)|0,269)|0,34309)|0,33295)|0;c[l>>2]=ty(a+(c[(c[a>>2]|0)+-12>>2]|0)|0)|0;b=GD(l,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(l);oz(a,b)|0;bz(a)|0;Zb()}if((h|0)<=-1){a=kh(kh(nz(kh(kh(kh(10696,33338)|0,33100)|0,34302)|0,270)|0,34309)|0,33372)|0;c[l>>2]=ty(a+(c[(c[a>>2]|0)+-12>>2]|0)|0)|0;b=GD(l,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(l);oz(a,b)|0;bz(a)|0;Zb()}if((h|0)<(c[k>>2]|0)){i=m;return}else{m=kh(kh(nz(kh(kh(kh(10696,33395)|0,33100)|0,34302)|0,271)|0,34309)|0,33446)|0;c[l>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;a=GD(l,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(l);oz(m,a)|0;bz(m)|0;Zb()}}function Yn(a,b,c,d,e){a=a|0;b=+b;c=+c;d=d|0;e=e|0;var f=0.0,g=0.0;g=1.0/+(1<>2]|0)+-2|0)>>>0);if(!(b<0.0)){if(e>2]|0)+-2|0)>>>0);if(!(d<0.0)){if(!(e>2]|0;f=c[a>>2]|0;g=e-f|0;if(g>>>0>=b>>>0){if(g>>>0>b>>>0?(h=f+b|0,(e|0)!=(h|0)):0){do e=e+-1|0;while((e|0)!=(h|0));c[i>>2]=e}}else $n(a,b-g|0,d);return}function $n(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m;j=c[b+8>>2]|0;k=b+4|0;f=c[k>>2]|0;g=f;if((j-g|0)>>>0>>0){f=c[b>>2]|0;g=g-f+d|0;if((g|0)<0)Rt(b);h=f;f=j-h|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0>>0?g:f}else f=2147483647;ph(l,f,(c[k>>2]|0)-h|0,b+8|0);h=l+8|0;g=c[h>>2]|0;f=d;j=g;while(1){a[j>>0]=a[e>>0]|0;f=f+-1|0;if(!f)break;else j=j+1|0}c[h>>2]=g+d;qh(b,l);rh(l)}else do{a[f>>0]=a[e>>0]|0;f=(c[k>>2]|0)+1|0;c[k>>2]=f;d=d+-1|0}while((d|0)!=0);i=m;return}function ao(a){a=a|0;var b=0,c=0,d=0;b=i;i=i+272|0;d=b;c=b+8|0;vb(d|0)|0;bc(c|0,256,33497,ac(d|0)|0)|0;Wx(a,c,Fw(c)|0);i=b;return}function bo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;return}function co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];e=a+24|0;f=c[b+24>>2]|0;c[d>>2]=f;g=d+4|0;b=c[b+28>>2]|0;c[g>>2]=b;if(b)Px(b);c[d>>2]=c[e>>2];c[e>>2]=f;a=a+28|0;c[g>>2]=c[a>>2];c[a>>2]=b;jo(d);i=h;return}function eo(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;co(a,b);return}function fo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+32|0;j=m+16|0;k=m+8|0;l=m;if(!d){h=kh(kh(nz(kh(kh(kh(10696,33515)|0,33548)|0,34302)|0,127)|0,34309)|0,33654)|0;c[j>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;n=GD(j,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(j);oz(h,n)|0;bz(h)|0;Zb()}if(!e){n=kh(kh(nz(kh(kh(kh(10696,33675)|0,33548)|0,34302)|0,128)|0,34309)|0,33709)|0;c[j>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;h=GD(j,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(j);oz(n,h)|0;bz(n)|0;Zb()}if(f>>>0>>0){n=kh(kh(nz(kh(kh(kh(10696,33731)|0,33548)|0,34302)|0,129)|0,34309)|0,33768)|0;c[j>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;h=GD(j,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(j);oz(n,h)|0;bz(n)|0;Zb()}if(!g){n=kh(kh(nz(kh(kh(kh(10696,33813)|0,33548)|0,34302)|0,130)|0,34309)|0,33849)|0;c[j>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;h=GD(j,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(j);oz(n,h)|0;bz(n)|0;Zb()}if((f|0)<0){f=$($(g,d)|0,ho(b)|0)|0;c[a+12>>2]=f}else c[a+12>>2]=f;f=$(f,e)|0;h=a+20|0;if((c[h>>2]|0)!=(f|0)?(n=a+24|0,p=Ut(f)|0,c[l>>2]=0,c[j>>2]=c[l>>2],ko(k,p,j),p=c[k>>2]|0,c[k>>2]=c[n>>2],c[n>>2]=p,p=k+4|0,l=a+28|0,o=c[p>>2]|0,c[p>>2]=c[l>>2],c[l>>2]=o,jo(k),(c[n>>2]|0)==0):0){p=kh(kh(nz(kh(kh(kh(10696,33883)|0,33548)|0,34302)|0,149)|0,34309)|0,33918)|0;c[j>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(j,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(j);oz(p,o)|0;bz(p)|0;Zb()}c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+16>>2]=g;c[h>>2]=f;i=m;return}function go(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;k=i;i=i+16|0;l=k+4|0;m=k+9|0;n=k;c[b>>2]=e;c[b+4>>2]=f;c[b+8>>2]=g;c[b+16>>2]=j;c[b+20>>2]=$(h,g)|0;c[n>>2]=0;a[m>>0]=a[k+8>>0]|0;c[l>>2]=c[n>>2];lo(b+24|0,d,m,l);if((h|0)<0)c[b+12>>2]=$($(j,f)|0,ho(e)|0)|0;else c[b+12>>2]=h;i=k;return}function ho(a){a=a|0;var b=0,c=0;c=i;i=i+16|0;b=c;switch(a|0){case 1:{b=1;break}case 2:{b=4;break}default:{c=Gb(16)|0;Wx(b,33939,18);sj(c,b);yc(c|0,32,5)}}i=c;return b|0}function io(a){a=a|0;jo(a+24|0);return}function jo(a){a=a|0;a=c[a+4>>2]|0;if(a)Qx(a);return}function ko(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;d=Tt(16)|0;c[d+4>>2]=0;c[d+8>>2]=0;c[d>>2]=4824;c[d+12>>2]=b;c[a+4>>2]=d;return}function lo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=b;d=Tt(16)|0;c[d+4>>2]=0;c[d+8>>2]=0;c[d>>2]=4796;c[d+12>>2]=b;c[a+4>>2]=d;return}function mo(a){a=a|0;Mx(a);Vt(a);return}function no(a){a=a|0;return}function oo(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==33958?a+12|0:0)|0}function po(a){a=a|0;Vt(a);return}function qo(a){a=a|0;Mx(a);Vt(a);return}function ro(a){a=a|0;Vt(c[a+12>>2]|0);return}function so(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==34053?a+12|0:0)|0}function to(a){a=a|0;Vt(a);return}function uo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function vo(a){a=a|0;yo(a);return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=a+4|0;e=c[a>>2]|0;if((c[g>>2]|0)!=(e|0)){f=0;do{h=c[e+(f<<3)>>2]|0;Yc[c[(c[h>>2]|0)+8>>2]&3](h,b,d);f=f+1|0;e=c[a>>2]|0}while(f>>>0<(c[g>>2]|0)-e>>3>>>0)}return}function xo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+48|0;j=f+24|0;h=f+12|0;g=f;c[j>>2]=e;Wx(g,d,Fw(d)|0);zo(h,g,j);wo(a,b,h);Yx(h);Yx(g);i=f;return}function yo(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0))do{f=b+-8|0;c[e>>2]=f;Ao(f);b=c[e>>2]|0}while((b|0)!=(d|0));Vt(c[a>>2]|0)}return}function zo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+2048|0;g=f;mw(g,2048,(a[d>>0]&1)==0?d+1|0:c[d+8>>2]|0,e)|0;Wx(b,g,Fw(g)|0);i=f;return}function Ao(a){a=a|0;a=c[a+4>>2]|0;if(a)Qx(a);return}function Bo(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;xb(d|0,0)|0;h[a>>3]=+(c[d>>2]|0)+ +(c[d+4>>2]|0)*1.0e-06;i=b;return}function Co(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+8|0;d=e;if(!(+h[a>>3]>=0.0)){e=kh(kh(nz(kh(kh(kh(10696,34156)|0,34195)|0,34302)|0,67)|0,34309)|0,34312)|0;c[b>>2]=ty(e+(c[(c[e>>2]|0)+-12>>2]|0)|0)|0;a=GD(b,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(b);oz(e,a)|0;bz(e)|0;Zb()}else{xb(d|0,0)|0;h[a+8>>3]=+(c[d>>2]|0)+ +(c[d+4>>2]|0)*1.0e-06;i=e;return}}function Do(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,j=0;f=i;i=i+16|0;d=f;e=+h[a>>3];if(!(e>=0.0)){g=kh(kh(nz(kh(kh(kh(10696,34156)|0,34195)|0,34302)|0,80)|0,34309)|0,34312)|0;c[d>>2]=ty(g+(c[(c[g>>2]|0)+-12>>2]|0)|0)|0;j=GD(d,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(d);oz(g,j)|0;bz(g)|0;Zb()}b=+h[a+8>>3];if(!(b>=0.0)){j=kh(kh(nz(kh(kh(kh(10696,34339)|0,34195)|0,34302)|0,81)|0,34309)|0,34377)|0;c[d>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(j,g)|0;bz(j)|0;Zb()}else{i=f;return +(b-e)}return +(0.0)}function Eo(a,b){a=a|0;b=b|0;h[a>>3]=-1.0;h[a+8>>3]=-1.0;Wx(a+16|0,b,Fw(b)|0);Bo(a);return}function Fo(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0.0;k=i;i=i+48|0;j=k;d=k+24|0;Co(b);lk()|0;ao(d);f=(a[d>>0]&1)==0?d+1|0:c[d+8>>2]|0;g=b+16|0;if(!(a[g>>0]&1))e=g+1|0;else e=c[b+24>>2]|0;l=+Do(b)*1.0e3;c[j>>2]=34431;c[j+4>>2]=f;c[j+8>>2]=34439;c[j+12>>2]=e;h[j+16>>3]=l;xo(4452,8,34404,j);Yx(d);Yx(g);i=k;return}function Go(a){a=a|0;var b=0;b=a+4|0;do if(c[b>>2]|0){Lc[c[(c[b>>2]|0)+36>>2]&63](a,1);b=a+20|0;if(!(c[a+16>>2]|0)){c[b>>2]=100;break}else{c[b>>2]=200;c[a+304>>2]=0;break}}while(0);return}function Ho(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d)Kc[c[d+40>>2]&255](a);c[b>>2]=0;c[a+20>>2]=0;return}function Io(a){a=a|0;a=Pc[c[c[a+4>>2]>>2]&63](a,0,132)|0;c[a+128>>2]=0;return a|0}function Jo(a){a=a|0;a=Pc[c[c[a+4>>2]>>2]&63](a,0,280)|0;c[a+276>>2]=0;return a|0}function Ko(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[a+4>>2]=0;if((b|0)!=62){e=c[a>>2]|0;c[e+20>>2]=12;c[e+24>>2]=62;c[e+28>>2]=b;Kc[c[e>>2]&255](a)}if((d|0)==464)d=a;else{e=c[a>>2]|0;c[e+20>>2]=21;c[e+24>>2]=464;c[e+28>>2]=d;Kc[c[e>>2]&255](a);d=a}f=c[a>>2]|0;e=a+12|0;b=c[e>>2]|0;iH(a|0,0,464)|0;c[a>>2]=f;c[e>>2]=b;c[a+16>>2]=1;vp(d);c[a+8>>2]=0;c[a+24>>2]=0;c[a+164>>2]=0;c[a+168>>2]=0;c[a+172>>2]=0;c[a+176>>2]=0;c[a+180>>2]=0;c[a+196>>2]=0;c[a+184>>2]=0;c[a+200>>2]=0;c[a+188>>2]=0;c[a+204>>2]=0;c[a+192>>2]=0;c[a+208>>2]=0;c[a+304>>2]=0;ap(a);Zo(a);c[a+20>>2]=200;return}function Lo(a){a=a|0;Ho(a);return}function Mo(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+20>>2]|0;if((d&-2|0)!=200){e=c[a>>2]|0;c[e+20>>2]=20;c[e+24>>2]=d;Kc[c[e>>2]&255](a)}d=No(a)|0;switch(d|0){case 1:{a=1;break}case 2:{if(b){e=c[a>>2]|0;c[e+20>>2]=51;Kc[c[e>>2]&255](a)}Go(a);a=2;break}default:a=d}return a|0}function No(a){a=a|0;var b=0,e=0,f=0,g=0,i=0;g=a+20|0;b=c[g>>2]|0;switch(b|0){case 200:{b=a+436|0;Kc[c[(c[b>>2]|0)+4>>2]&255](a);Kc[c[(c[a+24>>2]|0)+8>>2]&255](a);c[g>>2]=201;e=4;break}case 201:{b=a+436|0;e=4;break}case 202:{b=1;break}case 210:case 208:case 207:case 206:case 205:case 204:case 203:{b=Nc[c[c[a+436>>2]>>2]&127](a)|0;break}default:{g=c[a>>2]|0;c[g+20>>2]=20;c[g+24>>2]=b;Kc[c[g>>2]&255](a);b=0}}if((e|0)==4){b=Nc[c[c[b>>2]>>2]&127](a)|0;if((b|0)==1){switch(c[a+36>>2]|0){case 1:{c[a+40>>2]=1;c[a+44>>2]=1;break}case 3:{a:do if(!(c[a+280>>2]|0)){if(c[a+292>>2]|0){b=d[a+296>>0]|0;switch(b|0){case 0:{c[a+40>>2]=2;break a}case 1:{c[a+40>>2]=3;break a}default:{f=c[a>>2]|0;c[f+20>>2]=114;c[f+24>>2]=b;Lc[c[f+4>>2]&63](a,-1);c[a+40>>2]=3;break a}}}f=c[a+216>>2]|0;b=c[f>>2]|0;e=c[f+84>>2]|0;f=c[f+168>>2]|0;if((b|0)==1&(e|0)==2&(f|0)==3){c[a+40>>2]=3;break}if((b|0)==82&(e|0)==71&(f|0)==66){c[a+40>>2]=2;break}else{i=c[a>>2]|0;c[i+24>>2]=b;c[i+28>>2]=e;c[i+32>>2]=f;c[i+20>>2]=111;Lc[c[i+4>>2]&63](a,1);c[a+40>>2]=3;break}}else c[a+40>>2]=3;while(0);c[a+44>>2]=2;break}case 4:{b:do if(!(c[a+292>>2]|0))c[a+40>>2]=4;else{b=d[a+296>>0]|0;switch(b|0){case 0:{c[a+40>>2]=4;break b}case 2:{c[a+40>>2]=5;break b}default:{i=c[a>>2]|0;c[i+20>>2]=114;c[i+24>>2]=b;Lc[c[i+4>>2]&63](a,-1);c[a+40>>2]=5;break b}}}while(0);c[a+44>>2]=4;break}default:{c[a+40>>2]=0;c[a+44>>2]=0}}c[a+48>>2]=1;c[a+52>>2]=1;h[a+56>>3]=1.0;c[a+64>>2]=0;c[a+68>>2]=0;c[a+72>>2]=0;c[a+76>>2]=1;c[a+80>>2]=1;c[a+84>>2]=0;c[a+88>>2]=2;c[a+92>>2]=1;c[a+96>>2]=256;c[a+136>>2]=0;c[a+100>>2]=0;c[a+104>>2]=0;c[a+108>>2]=0;c[g>>2]=202;b=1}}return b|0}function Oo(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=c[b>>2]|0;if((d+-205|0)>>>0<2?(c[a+64>>2]|0)==0:0){if((c[a+140>>2]|0)>>>0<(c[a+116>>2]|0)>>>0){d=c[a>>2]|0;c[d+20>>2]=67;Kc[c[d>>2]&255](a)}Kc[c[(c[a+420>>2]|0)+4>>2]&255](a);c[b>>2]=210}else e=6;a:do if((e|0)==6)switch(d|0){case 210:break a;case 207:{c[b>>2]=210;break a}default:{b=c[a>>2]|0;c[b+20>>2]=20;c[b+24>>2]=d;Kc[c[b>>2]&255](a);break a}}while(0);b=a+436|0;while(1){d=c[b>>2]|0;if(c[d+20>>2]|0){e=12;break}if(!(Nc[c[d>>2]&127](a)|0)){b=0;break}}if((e|0)==12){Kc[c[(c[a+24>>2]|0)+24>>2]&255](a);Go(a);b=1}return b|0}function Po(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=a+20|0;d=c[b>>2]|0;a:do switch(d|0){case 202:{cp(a);if(!(c[a+64>>2]|0)){c[b>>2]=203;i=5;break a}else{c[b>>2]=207;b=1;break a}}case 203:{i=5;break}case 204:{i=15;break}default:{i=c[a>>2]|0;c[i+20>>2]=20;c[i+24>>2]=d;Kc[c[i>>2]&255](a);i=15}}while(0);b:do if((i|0)==5){h=a+436|0;c:do if(c[(c[h>>2]|0)+16>>2]|0){f=a+8|0;g=a+320|0;b=c[f>>2]|0;while(1){if(b)Kc[c[b>>2]&255](a);d=Nc[c[c[h>>2]>>2]&127](a)|0;switch(d|0){case 0:{b=0;break b}case 2:break c;default:{}}b=c[f>>2]|0;if(!((d&-3|0)==1&(b|0)!=0))continue;d=b+4|0;j=(c[d>>2]|0)+1|0;c[d>>2]=j;d=b+8|0;e=c[d>>2]|0;if((j|0)<(e|0))continue;c[d>>2]=(c[g>>2]|0)+e}}while(0);c[a+152>>2]=c[a+144>>2];i=15}while(0);if((i|0)==15)b=Ep(a)|0;return b|0}function Qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;e=c[a+20>>2]|0;if((e|0)!=205){h=c[a>>2]|0;c[h+20>>2]=20;c[h+24>>2]=e;Kc[c[h>>2]&255](a)}g=a+140|0;h=c[g>>2]|0;e=c[a+116>>2]|0;if(h>>>0>>0){f=c[a+8>>2]|0;if(f){c[f+4>>2]=h;c[f+8>>2]=e;Kc[c[f>>2]&255](a)}c[j>>2]=0;ad[c[(c[a+424>>2]|0)+4>>2]&31](a,b,j,d);e=c[j>>2]|0;c[g>>2]=(c[g>>2]|0)+e}else{e=c[a>>2]|0;c[e+20>>2]=123;Lc[c[e+4>>2]&63](a,-1);e=0}i=k;return e|0}function Ro(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+24|0;d=c[e>>2]|0;if(!d){f=a+4|0;d=Pc[c[c[f>>2]>>2]&63](a,0,40)|0;c[e>>2]=d;c[d+32>>2]=Pc[c[c[f>>2]>>2]&63](a,0,4096)|0;d=c[e>>2]|0}c[d+8>>2]=114;c[d+12>>2]=66;c[d+16>>2]=40;c[d+20>>2]=20;c[d+24>>2]=115;c[d+28>>2]=b;c[d+4>>2]=0;c[d>>2]=0;return}function So(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=a+4|0;i=Pc[c[c[h>>2]>>2]&63](a,1,116)|0;c[a+428>>2]=i;c[i>>2]=116;c[i+8>>2]=117;c[i+112>>2]=0;if(!b){h=Pc[c[(c[h>>2]|0)+4>>2]&63](a,1,1280)|0;a=i+32|0;c[a>>2]=h;c[a+4>>2]=h+128;c[a+8>>2]=h+256;c[a+12>>2]=h+384;c[a+16>>2]=h+512;c[a+20>>2]=h+640;c[a+24>>2]=h+768;c[a+28>>2]=h+896;c[a+32>>2]=h+1024;c[a+36>>2]=h+1152;c[i+4>>2]=68;c[i+12>>2]=22;c[i+16>>2]=0}else{d=a+36|0;e=a+220|0;b=i+72|0;if((c[d>>2]|0)>0){f=0;g=c[a+216>>2]|0;while(1){k=g+12|0;j=c[k>>2]|0;j=(c[e>>2]|0)==0?j:j*3|0;m=c[(c[h>>2]|0)+20>>2]|0;l=rp(c[g+28>>2]|0,c[g+8>>2]|0)|0;k=rp(c[g+32>>2]|0,c[k>>2]|0)|0;c[b+(f<<2)>>2]=Mc[m&63](a,1,1,l,k,j)|0;f=f+1|0;if((f|0)>=(c[d>>2]|0))break;else g=g+84|0}}c[i+4>>2]=67;c[i+12>>2]=21;c[i+16>>2]=b}return}function To(a){a=a|0;var b=0,d=0,e=0;b=Pc[c[c[a+4>>2]>>2]&63](a,1,24)|0;c[a+456>>2]=b;c[b>>2]=118;e=a+40|0;switch(c[e>>2]|0){case 1:{if((c[a+36>>2]|0)!=1){d=c[a>>2]|0;c[d+20>>2]=10;Kc[c[d>>2]&255](a)}break}case 3:case 2:{if((c[a+36>>2]|0)!=3){d=c[a>>2]|0;c[d+20>>2]=10;Kc[c[d>>2]&255](a)}break}case 5:case 4:{if((c[a+36>>2]|0)!=4){d=c[a>>2]|0;c[d+20>>2]=10;Kc[c[d>>2]&255](a)}break}default:if((c[a+36>>2]|0)<1){d=c[a>>2]|0;c[d+20>>2]=10;Kc[c[d>>2]&255](a)}}d=c[a+44>>2]|0;a:do switch(d|0){case 1:{c[a+120>>2]=1;switch(c[e>>2]|0){case 3:case 1:break;default:{e=c[a>>2]|0;c[e+20>>2]=27;Kc[c[e>>2]&255](a);break a}}c[b+4>>2]=4;b=c[a+36>>2]|0;if((b|0)>1){d=c[a+216>>2]|0;e=1;do{c[d+(e*84|0)+48>>2]=0;e=e+1|0}while((e|0)<(b|0))}break}case 2:{c[a+120>>2]=3;switch(c[e>>2]|0){case 3:{c[b+4>>2]=5;Sp(a);break a}case 1:{c[b+4>>2]=6;break a}case 2:{c[b+4>>2]=7;break a}default:{e=c[a>>2]|0;c[e+20>>2]=27;Kc[c[e>>2]&255](a);break a}}}case 4:{c[a+120>>2]=4;switch(c[e>>2]|0){case 5:{c[b+4>>2]=8;Sp(a);break a}case 4:{c[b+4>>2]=7;break a}default:{e=c[a>>2]|0;c[e+20>>2]=27;Kc[c[e>>2]&255](a);break a}}}default:if((d|0)==(c[e>>2]|0)){c[a+120>>2]=c[a+36>>2];c[b+4>>2]=7;break a}else{e=c[a>>2]|0;c[e+20>>2]=27;Kc[c[e>>2]&255](a);break a}}while(0);if(!(c[a+84>>2]|0))b=c[a+120>>2]|0;else b=1;c[a+124>>2]=b;return}function Uo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+4|0;e=Pc[c[c[b>>2]>>2]&63](a,1,84)|0;c[a+448>>2]=e;c[e>>2]=119;d=a+36|0;e=e+44|0;if((c[d>>2]|0)>0){f=0;g=c[a+216>>2]|0;while(1){h=Pc[c[c[b>>2]>>2]&63](a,1,256)|0;c[g+80>>2]=h;iH(h|0,0,256)|0;c[e+(f<<2)>>2]=-1;f=f+1|0;if((f|0)>=(c[d>>2]|0))break;else g=g+84|0}}return}function Vo(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+1296|0;m=v+1028|0;u=v;if(f>>>0>3){t=c[b>>2]|0;c[t+20>>2]=50;c[t+24>>2]=f;Kc[c[t>>2]&255](b)}s=(e|0)!=0;t=c[(s?b+180+(f<<2)|0:b+196+(f<<2)|0)>>2]|0;if(!t){r=c[b>>2]|0;c[r+20>>2]=50;c[r+24>>2]=f;Kc[c[r>>2]&255](b)}e=c[g>>2]|0;if(!e){e=Pc[c[c[b+4>>2]>>2]&63](b,1,1424)|0;c[g>>2]=e;r=b}else r=b;c[e+140>>2]=t;l=1;f=0;while(1){g=a[t+l>>0]|0;h=g&255;j=h+f|0;if((j|0)>256){q=c[b>>2]|0;c[q+20>>2]=8;Kc[c[q>>2]&255](r)}k=l&255;if(g<<24>>24)while(1){h=h+-1|0;a[m+f>>0]=k;if(!h)break;else f=f+1|0}l=l+1|0;if((l|0)==17){q=j;break}else f=j}a[m+q>>0]=0;g=a[m>>0]|0;if(!(g<<24>>24)){j=1;h=0}else{f=g;j=0;h=0;k=g<<24>>24;while(1){if((f<<24>>24|0)==(k|0)){g=j;f=h;while(1){h=f+1|0;c[u+(f<<2)>>2]=g;g=g+1|0;f=a[m+h>>0]|0;if((f<<24>>24|0)==(k|0))f=h;else break}}else g=j;if((g|0)>=(1<>2]|0;c[p+20>>2]=8;Kc[c[p>>2]&255](r)}if(!(f<<24>>24)){j=1;h=0;break}else{j=g<<1;k=k+1|0}}}while(1){f=t+j|0;if(!(a[f>>0]|0)){g=-1;f=h}else{c[e+72+(j<<2)>>2]=h-(c[u+(h<<2)>>2]|0);f=(d[f>>0]|0)+h|0;g=c[u+(f+-1<<2)>>2]|0}c[e+(j<<2)>>2]=g;j=j+1|0;if((j|0)==17)break;else h=f}c[e+68>>2]=1048575;iH(e+144|0,0,1024)|0;p=1;f=0;do{k=t+p|0;l=8-p|0;m=1<>0]|0){n=(l|0)==31;o=1;while(1){g=t+17+f|0;if(!n){h=m;j=c[u+(f<<2)>>2]<>2]=p;a[e+1168+j>>0]=a[g>>0]|0;if((h|0)>1){h=h+-1|0;j=j+1|0}else break}}f=f+1|0;if((o|0)<(d[k>>0]|0))o=o+1|0;else break}}p=p+1|0}while((p|0)!=9);if(s&(q|0)>0){e=0;do{if((d[t+17+e>>0]|0)>15){u=c[b>>2]|0;c[u+20>>2]=8;Kc[c[u>>2]&255](r)}e=e+1|0}while((e|0)<(q|0))}i=v;return}function Wo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[b>>2]|0;o=b+4|0;h=c[o>>2]|0;n=c[b+16>>2]|0;l=n+416|0;a:do if(!(c[l>>2]|0)){k=n+24|0;if((e|0)<25){b:while(1){if(!h){if(!(Nc[c[(c[k>>2]|0)+12>>2]&127](n)|0)){g=0;break a}g=c[k>>2]|0;h=c[g+4>>2]|0;g=c[g>>2]|0}h=h+-1|0;j=g+1|0;i=a[g>>0]|0;g=i&255;c:do if(i<<24>>24==-1){g=j;while(1){if(!h){if(!(Nc[c[(c[k>>2]|0)+12>>2]&127](n)|0)){g=0;break a}i=c[k>>2]|0;h=c[i+4>>2]|0;i=c[i>>2]|0}else i=g;j=h+-1|0;g=i+1|0;h=a[i>>0]|0;switch(h<<24>>24){case 0:{h=j;i=255;break c}case -1:{h=j;break}default:{i=j;break b}}}}else{i=g;g=j}while(0);d=i|d<<8;e=e+8|0;if((e|0)>=25){m=17;break a}}c[l>>2]=h&255;m=13}else m=17}else{i=h;m=13}while(0);if((m|0)==13)if((e|0)<(f|0)){h=n+444|0;if(!(c[(c[h>>2]|0)+8>>2]|0)){m=c[n>>2]|0;c[m+20>>2]=117;Lc[c[m+4>>2]&63](n,-1);c[(c[h>>2]|0)+8>>2]=1}d=d<<25-e;e=25;h=i;m=17}else{h=i;m=17}if((m|0)==17){c[b>>2]=g;c[o>>2]=h;c[b+8>>2]=d;c[b+12>>2]=e;g=1}return g|0}function Xo(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((e|0)<(g|0))if(!(Wo(a,b,e,g)|0))b=-1;else{j=a+8|0;i=a+12|0;b=c[j>>2]|0;e=c[i>>2]|0;h=5}else{i=a+12|0;j=a+8|0;h=5}a:do if((h|0)==5){e=e-g|0;h=b>>e&(1<(c[f+(g<<2)>>2]|0))do{h=h<<1;if((e|0)<1){if(!(Wo(a,b,e,1)|0)){b=-1;break a}b=c[j>>2]|0;e=c[i>>2]|0}e=e+-1|0;h=b>>>e&1|h;g=g+1|0}while((h|0)>(c[f+(g<<2)>>2]|0));c[j>>2]=b;c[i>>2]=e;if((g|0)>16){b=c[a+16>>2]|0;a=c[b>>2]|0;c[a+20>>2]=118;Lc[c[a+4>>2]&63](b,-1);b=0;break}else{b=d[(c[f+72+(g<<2)>>2]|0)+h+((c[f+140>>2]|0)+17)>>0]|0;break}}while(0);return b|0}function Yo(a){a=a|0;var b=0,d=0;d=Pc[c[c[a+4>>2]>>2]&63](a,1,232)|0;c[a+444>>2]=d;c[d>>2]=120;c[d+4>>2]=23;b=d+56|0;a=d+40|0;c[b>>2]=0;c[a>>2]=0;c[b+4>>2]=0;c[a+4>>2]=0;c[b+8>>2]=0;c[a+8>>2]=0;c[b+12>>2]=0;c[a+12>>2]=0;return}function Zo(a){a=a|0;var b=0;b=Pc[c[c[a+4>>2]>>2]&63](a,0,28)|0;c[a+436>>2]=b;c[b>>2]=69;c[b+4>>2]=121;c[b+8>>2]=122;c[b+12>>2]=123;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;return}function _o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=a+4|0;j=Pc[c[c[l>>2]>>2]&63](a,1,80)|0;d=a+424|0;c[d>>2]=j;c[j>>2]=41;if(b){k=c[a>>2]|0;c[k+20>>2]=4;Kc[c[k>>2]&255](a)}k=a+316|0;b=c[k>>2]|0;if(!(c[(c[a+452>>2]|0)+8>>2]|0)){g=a+36|0;d=a+216|0}else{if((b|0)<2){b=c[a>>2]|0;c[b+20>>2]=47;Kc[c[b>>2]&255](a);b=c[k>>2]|0}i=c[d>>2]|0;g=a+36|0;d=Pc[c[c[l>>2]>>2]&63](a,1,c[g>>2]<<3)|0;h=i+56|0;c[h>>2]=d;f=c[g>>2]|0;i=i+60|0;c[i>>2]=d+(f<<2);d=a+216|0;b=b+4|0;if((f|0)>0){e=0;f=c[d>>2]|0;while(1){m=$(c[f+36>>2]|0,c[f+12>>2]|0)|0;m=(m|0)/(c[k>>2]|0)|0;n=$(m,b)|0;o=Pc[c[c[l>>2]>>2]&63](a,1,n<<3)|0;c[(c[h>>2]|0)+(e<<2)>>2]=o+(m<<2);c[(c[i>>2]|0)+(e<<2)>>2]=o+(n+m<<2);e=e+1|0;if((e|0)>=(c[g>>2]|0))break;else f=f+84|0}}b=(c[k>>2]|0)+2|0}e=j+8|0;if((c[g>>2]|0)>0){f=0;d=c[d>>2]|0;while(1){n=c[d+36>>2]|0;o=$(n,c[d+12>>2]|0)|0;n=$(c[d+28>>2]|0,n)|0;o=$((o|0)/(c[k>>2]|0)|0,b)|0;c[e+(f<<2)>>2]=Xc[c[(c[l>>2]|0)+8>>2]&15](a,1,n,o)|0;f=f+1|0;if((f|0)>=(c[g>>2]|0))break;else d=d+84|0}}return}function $o(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=a+416|0;e=c[f>>2]|0;g=c[a>>2]|0;c[g+20>>2]=121;c[g+24>>2]=e;c[g+28>>2]=b;Lc[c[g+4>>2]&63](a,-1);g=b+1&7|208;h=b+2&7|208;i=b+7&7|208;b=b+6&7|208;a:while(1){d=(e|0)<192;k=d|(e&-8|0)!=208|(e|0)==(g|0);d=k|(e|0)==(h|0)?(k&d?2:3):(e|0)==(i|0)|(e|0)==(b|0)?2:1;b:while(1){k=c[a>>2]|0;c[k+20>>2]=97;c[k+24>>2]=e;c[k+28>>2]=d;Lc[c[k+4>>2]&63](a,4);switch(d|0){case 3:{b=1;break a}case 1:{j=4;break a}case 2:break b;default:{}}}if(!(cq(a)|0)){b=0;break}e=c[f>>2]|0}if((j|0)==4){c[f>>2]=0;b=1}return b|0}function ap(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=Pc[c[c[a+4>>2]>>2]&63](a,0,172)|0;e=a+440|0;c[e>>2]=d;c[d>>2]=124;c[d+4>>2]=70;c[d+8>>2]=71;c[d+28>>2]=72;c[d+96>>2]=0;f=d+32|0;b=d+100|0;g=0;do{c[f+(g<<2)>>2]=72;c[b+(g<<2)>>2]=0;g=g+1|0}while((g|0)!=16);c[f>>2]=73;c[d+88>>2]=73;g=c[e>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+416>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+24>>2]=0;c[g+164>>2]=0;return}function bp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=c[a+20>>2]|0;if((b|0)!=202){n=c[a>>2]|0;c[n+20>>2]=20;c[n+24>>2]=b;Kc[c[n>>2]&255](a)}e=c[a+48>>2]|0;b=c[a+52>>2]|0;do if(e<<3>>>0>b>>>0){if(e<<2>>>0<=b>>>0){c[a+112>>2]=qp(c[a+28>>2]|0,4)|0;c[a+116>>2]=qp(c[a+32>>2]|0,4)|0;c[a+316>>2]=2;i=2;break}d=c[a+28>>2]|0;if(e<<1>>>0>b>>>0){c[a+112>>2]=d;c[a+116>>2]=c[a+32>>2];c[a+316>>2]=8;i=8;break}else{c[a+112>>2]=qp(d,2)|0;c[a+116>>2]=qp(c[a+32>>2]|0,2)|0;c[a+316>>2]=4;i=4;break}}else{c[a+112>>2]=qp(c[a+28>>2]|0,8)|0;c[a+116>>2]=qp(c[a+32>>2]|0,8)|0;c[a+316>>2]=1;i=1}while(0);d=c[a+216>>2]|0;l=a+36|0;b=c[l>>2]|0;m=a+308|0;n=a+312|0;if((b|0)>0){j=0;k=d;while(1){f=k+8|0;g=k+12|0;e=i;while(1){if((e|0)>=8)break;h=e<<1;o=$(h,c[f>>2]|0)|0;if((o|0)>($(i,c[m>>2]|0)|0))break;o=$(h,c[g>>2]|0)|0;if((o|0)>($(c[n>>2]|0,i)|0))break;else e=h}c[k+36>>2]=e;j=j+1|0;if((j|0)>=(b|0))break;else k=k+84|0}}f=a+28|0;g=a+32|0;if((b|0)>0){e=0;while(1){b=d+36|0;o=$($(c[d+8>>2]|0,c[f>>2]|0)|0,c[b>>2]|0)|0;c[d+40>>2]=qp(o,c[m>>2]<<3)|0;b=$($(c[d+12>>2]|0,c[g>>2]|0)|0,c[b>>2]|0)|0;c[d+44>>2]=qp(b,c[n>>2]<<3)|0;e=e+1|0;b=c[l>>2]|0;if((e|0)>=(b|0))break;else d=d+84|0}}switch(c[a+44>>2]|0){case 1:{c[a+120>>2]=1;b=1;break}case 3:case 2:{c[a+120>>2]=3;b=3;break}case 5:case 4:{c[a+120>>2]=4;b=4;break}default:c[a+120>>2]=b}c[a+124>>2]=(c[a+84>>2]|0)==0?b:1;if(!(iq(a)|0))b=1;else b=c[n>>2]|0;c[a+128>>2]=b;return}function cp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=b+4|0;j=Pc[c[c[k>>2]>>2]&63](b,1,28)|0;c[b+420>>2]=j;c[j>>2]=125;c[j+4>>2]=126;c[j+8>>2]=0;bp(b);e=Pc[c[c[k>>2]>>2]&63](b,1,1408)|0;g=b+324|0;c[g>>2]=e+256;iH(e|0,0,256)|0;d=0;do{a[e+(d+256)>>0]=d;d=d+1|0}while((d|0)!=256);d=128;do{a[e+(d+384)>>0]=-1;d=d+1|0}while((d|0)!=512);iH(e+896|0,0,384)|0;f=e+1280|0;d=c[g>>2]|0;e=f+128|0;do{a[f>>0]=a[d>>0]|0;f=f+1|0;d=d+1|0}while((f|0)<(e|0));f=b+120|0;i=j+12|0;c[i>>2]=0;h=j+16|0;c[h>>2]=iq(b)|0;g=j+20|0;c[g>>2]=0;d=j+24|0;c[d>>2]=0;do if(!(c[b+84>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0;e=b+68|0}else{if(!(c[b+64>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0}e=b+68|0;if(c[e>>2]|0){j=c[b>>2]|0;c[j+20>>2]=47;Kc[c[j>>2]&255](b)}do if((c[f>>2]|0)==3){if(c[b+136>>2]|0){c[b+104>>2]=1;break}if(!(c[b+92>>2]|0)){c[b+100>>2]=1;break}else{c[b+108>>2]=1;break}}else{c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;c[b+136>>2]=0}while(0);if(c[b+100>>2]|0){op(b);c[g>>2]=c[b+460>>2]}if((c[b+108>>2]|0)==0?(c[b+104>>2]|0)==0:0)break;pp(b);c[d>>2]=c[b+460>>2]}while(0);if(!(c[e>>2]|0)){if(!(c[h>>2]|0)){To(b);gp(b)}else dp(b);fp(b,c[b+108>>2]|0)}Uo(b);do if(!(c[b+224>>2]|0))if(!(c[b+220>>2]|0)){Yo(b);break}else{ep(b);break}else{j=c[b>>2]|0;c[j+20>>2]=1;Kc[c[j>>2]&255](b)}while(0);f=b+436|0;if(!(c[(c[f>>2]|0)+16>>2]|0))d=(c[b+64>>2]|0)!=0;else d=1;So(b,d&1);if(!(c[e>>2]|0))_o(b,0);Kc[c[(c[k>>2]|0)+24>>2]&255](b);Kc[c[(c[f>>2]|0)+8>>2]&255](b);d=c[b+8>>2]|0;if(((d|0)!=0?(c[b+64>>2]|0)==0:0)?(c[(c[f>>2]|0)+16>>2]|0)!=0:0){k=c[b+36>>2]|0;k=(c[b+220>>2]|0)==0?k:(k*3|0)+2|0;c[d+4>>2]=0;c[d+8>>2]=$(k,c[b+320>>2]|0)|0;c[d+12>>2]=0;c[d+16>>2]=(c[b+108>>2]|0)!=0?3:2;c[i>>2]=(c[i>>2]|0)+1}return}function dp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+4|0;b=Pc[c[c[g>>2]>>2]&63](a,1,48)|0;f=a+452|0;c[f>>2]=b;c[b>>2]=127;c[b+8>>2]=0;d=$(c[a+120>>2]|0,c[a+112>>2]|0)|0;c[b+40>>2]=d;e=b+4|0;if((c[a+312>>2]|0)==2){c[e>>2]=1;c[b+12>>2]=8;c[b+32>>2]=Pc[c[(c[g>>2]|0)+4>>2]&63](a,1,d)|0;b=c[f>>2]|0}else{c[e>>2]=2;c[b+12>>2]=9;c[b+32>>2]=0}f=b+16|0;c[f>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;d=b+20|0;c[d>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;e=b+24|0;c[e>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;a=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;c[b+28>>2]=a;b=c[f>>2]|0;d=c[d>>2]|0;e=c[e>>2]|0;f=0;g=-128;while(1){c[b+(f<<2)>>2]=(g*91881|0)+32768>>16;c[d+(f<<2)>>2]=(g*116130|0)+32768>>16;c[e+(f<<2)>>2]=$(g,-46802)|0;c[a+(f<<2)>>2]=($(g,-22554)|0)+32768;f=f+1|0;if((f|0)==256)break;else g=g+1|0}return}function ep(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;f=Pc[c[c[b>>2]>>2]&63](a,1,64)|0;c[a+444>>2]=f;c[f>>2]=128;f=f+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;f=a+36|0;b=Pc[c[c[b>>2]>>2]&63](a,1,c[f>>2]<<8)|0;c[a+160>>2]=b;if((c[f>>2]|0)>0){e=0;while(1){a=b;d=0;while(1){c[a>>2]=-1;d=d+1|0;if((d|0)==64)break;else a=a+4|0}e=e+1|0;if((e|0)>=(c[f>>2]|0))break;else b=b+256|0}}return}function fp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;d=Pc[c[c[e>>2]>>2]&63](a,1,28)|0;c[a+432>>2]=d;c[d>>2]=42;i=d+8|0;c[i>>2]=0;j=d+12|0;c[j>>2]=0;do if(c[a+84>>2]|0){h=c[a+312>>2]|0;g=d+16|0;c[g>>2]=h;d=c[e>>2]|0;e=c[a+112>>2]|0;f=c[a+120>>2]|0;if(!b){b=$(f,e)|0;c[j>>2]=Xc[c[d+8>>2]&15](a,1,b,h)|0;break}else{d=c[d+16>>2]|0;j=$(f,e)|0;b=rp(c[a+116>>2]|0,h)|0;c[i>>2]=Mc[d&63](a,1,0,j,b,c[g>>2]|0)|0;break}}while(0);return}function gp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=b+4|0;m=Pc[c[c[e>>2]>>2]&63](b,1,160)|0;c[b+452>>2]=m;c[m>>2]=129;c[m+4>>2]=3;t=m+8|0;c[t>>2]=0;if(c[b+300>>2]|0){w=c[b>>2]|0;c[w+20>>2]=25;Kc[c[w>>2]&255](b)}d=b+316|0;if(!(c[b+76>>2]|0))u=0;else u=(c[d>>2]|0)>1;f=b+36|0;g=b+308|0;h=b+312|0;i=m+100|0;j=m+52|0;k=b+112|0;l=m+12|0;if((c[f>>2]|0)>0){v=0;w=c[b+216>>2]|0;while(1){p=c[w+36>>2]|0;n=$(p,c[w+8>>2]|0)|0;o=c[d>>2]|0;n=(n|0)/(o|0)|0;o=($(c[w+12>>2]|0,p)|0)/(o|0)|0;p=c[g>>2]|0;q=c[h>>2]|0;c[i+(v<<2)>>2]=o;do if(!(c[w+48>>2]|0))c[j+(v<<2)>>2]=10;else{r=(o|0)==(q|0);if((n|0)==(p|0)&r){c[j+(v<<2)>>2]=11;break}s=(n<<1|0)==(p|0);do if(!(s&r))if(s&(o<<1|0)==(q|0)){if(u?(c[w+40>>2]|0)>>>0>2:0){c[j+(v<<2)>>2]=14;c[t>>2]=1;break}c[j+(v<<2)>>2]=15;break}else{if(((p|0)%(n|0)|0|0)==0?((q|0)%(o|0)|0|0)==0:0){c[j+(v<<2)>>2]=16;a[m+(v+140)>>0]=(p|0)/(n|0)|0;a[m+(v+150)>>0]=(q|0)/(o|0)|0;break}s=c[b>>2]|0;c[s+20>>2]=38;Kc[c[s>>2]&255](b);break}else{if(u?(c[w+40>>2]|0)>>>0>2:0){c[j+(v<<2)>>2]=12;break}c[j+(v<<2)>>2]=13}while(0);r=c[(c[e>>2]|0)+8>>2]|0;s=rp(c[k>>2]|0,c[g>>2]|0)|0;c[l+(v<<2)>>2]=Xc[r&15](b,1,s,c[h>>2]|0)|0}while(0);v=v+1|0;if((v|0)>=(c[f>>2]|0))break;else w=w+84|0}}return}function hp(a){a=a|0;c[a>>2]=130;c[a+4>>2]=43;c[a+8>>2]=131;c[a+12>>2]=44;c[a+16>>2]=132;c[a+104>>2]=0;c[a+108>>2]=0;c[a+20>>2]=0;c[a+112>>2]=4844;c[a+116>>2]=123;c[a+120>>2]=0;c[a+124>>2]=0;c[a+128>>2]=0;return a|0}function ip(d,e,f,h,j){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;s=i;i=i+256|0;r=s;q=c[d+324>>2]|0;m=8;k=c[e+80>>2]|0;l=r;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){t=+(b[f>>1]|0)*+g[k>>2];g[l>>2]=t;g[l+32>>2]=t;g[l+64>>2]=t;g[l+96>>2]=t;g[l+128>>2]=t;g[l+160>>2]=t;g[l+192>>2]=t;g[l+224>>2]=t}else{d=0;n=10}else n=10;if((n|0)==10){n=0;u=+(b[f>>1]|0)*+g[k>>2];A=+(d<<16>>16)*+g[k+64>>2];z=+(b[f+64>>1]|0)*+g[k+128>>2];w=+(b[f+96>>1]|0)*+g[k+192>>2];y=u+z;z=u-z;u=A+w;w=(A-w)*1.4142135381698608-u;A=y+u;u=y-u;y=z+w;w=z-w;z=+(e<<16>>16)*+g[k+32>>2];x=+(b[f+48>>1]|0)*+g[k+96>>2];C=+(b[f+80>>1]|0)*+g[k+160>>2];B=+(b[f+112>>1]|0)*+g[k+224>>2];v=x+C;x=C-x;C=z+B;B=z-B;z=v+C;t=(x+B)*1.8477590084075928;x=t-x*2.613126039505005-z;v=(C-v)*1.4142135381698608-x;t=B*1.0823922157287598-t+v;g[l>>2]=A+z;g[l+224>>2]=A-z;g[l+32>>2]=y+x;g[l+192>>2]=y-x;g[l+64>>2]=w+v;g[l+160>>2]=w-v;g[l+128>>2]=u+t;g[l+96>>2]=u-t}if((m|0)>1){m=m+-1|0;f=f+2|0;k=k+4|0;l=l+4|0}else break}l=j+7|0;m=j+1|0;n=j+6|0;o=j+2|0;f=j+5|0;e=j+4|0;k=j+3|0;p=0;d=r;while(1){r=c[h+(p<<2)>>2]|0;v=+g[d>>2];w=+g[d+16>>2];x=v+w;w=v-w;v=+g[d+8>>2];z=+g[d+24>>2];B=v+z;z=(v-z)*1.4142135381698608-B;v=x+B;B=x-B;x=w+z;z=w-z;w=+g[d+20>>2];y=+g[d+12>>2];A=w+y;y=w-y;w=+g[d+4>>2];u=+g[d+28>>2];t=w+u;u=w-u;w=A+t;C=(y+u)*1.8477590084075928;y=C-y*2.613126039505005-w;A=(t-A)*1.4142135381698608-y;C=u*1.0823922157287598-C+A;a[r+j>>0]=a[q+(((~~(v+w)+4|0)>>>3&1023)+128)>>0]|0;a[r+l>>0]=a[q+(((~~(v-w)+4|0)>>>3&1023)+128)>>0]|0;a[r+m>>0]=a[q+(((~~(x+y)+4|0)>>>3&1023)+128)>>0]|0;a[r+n>>0]=a[q+(((~~(x-y)+4|0)>>>3&1023)+128)>>0]|0;a[r+o>>0]=a[q+(((~~(z+A)+4|0)>>>3&1023)+128)>>0]|0;a[r+f>>0]=a[q+(((~~(z-A)+4|0)>>>3&1023)+128)>>0]|0;a[r+e>>0]=a[q+(((~~(B+C)+4|0)>>>3&1023)+128)>>0]|0;a[r+k>>0]=a[q+(((~~(B-C)+4|0)>>>3&1023)+128)>>0]|0;p=p+1|0;if((p|0)==8)break;else d=d+32|0}i=s;return}function jp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;w=i;i=i+256|0;t=w;u=c[d+324>>2]|0;l=8;j=c[e+80>>2]|0;k=t;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){s=$(b[f>>1]|0,c[j>>2]|0)|0;c[k>>2]=s;c[k+32>>2]=s;c[k+64>>2]=s;c[k+96>>2]=s;c[k+128>>2]=s;c[k+160>>2]=s;c[k+192>>2]=s;c[k+224>>2]=s}else{d=0;v=10}else v=10;if((v|0)==10){v=0;r=$(b[f>>1]|0,c[j>>2]|0)|0;d=$(d<<16>>16,c[j+64>>2]|0)|0;m=$(b[f+64>>1]|0,c[j+128>>2]|0)|0;p=$(b[f+96>>1]|0,c[j+192>>2]|0)|0;n=m+r|0;m=r-m|0;r=p+d|0;p=((d-p|0)*362>>8)-r|0;d=r+n|0;r=n-r|0;n=p+m|0;p=m-p|0;m=$(e<<16>>16,c[j+32>>2]|0)|0;o=$(b[f+48>>1]|0,c[j+96>>2]|0)|0;x=$(b[f+80>>1]|0,c[j+160>>2]|0)|0;e=$(b[f+112>>1]|0,c[j+224>>2]|0)|0;q=x+o|0;o=x-o|0;x=e+m|0;e=m-e|0;m=x+q|0;s=(e+o|0)*473>>8;o=(($(o,-669)|0)>>8)-m+s|0;q=((x-q|0)*362>>8)-o|0;s=q+((e*277>>8)-s)|0;c[k>>2]=m+d;c[k+224>>2]=d-m;c[k+32>>2]=o+n;c[k+192>>2]=n-o;c[k+64>>2]=q+p;c[k+160>>2]=p-q;c[k+128>>2]=s+r;c[k+96>>2]=r-s}if((l|0)>1){l=l+-1|0;f=f+2|0;j=j+4|0;k=k+4|0}else break}l=h+1|0;m=h+2|0;n=h+3|0;o=h+4|0;p=h+5|0;q=h+6|0;r=h+7|0;s=0;k=t;while(1){f=c[g+(s<<2)>>2]|0;e=f+h|0;j=c[k+4>>2]|0;d=c[k+8>>2]|0;if(!(j|d))if(((((c[k+12>>2]|0)==0?(c[k+16>>2]|0)==0:0)?(c[k+20>>2]|0)==0:0)?(c[k+24>>2]|0)==0:0)?(c[k+28>>2]|0)==0:0){x=a[u+(((c[k>>2]|0)>>>5&1023)+128)>>0]|0;a[e>>0]=x;a[f+l>>0]=x;a[f+m>>0]=x;a[f+n>>0]=x;a[f+o>>0]=x;a[f+p>>0]=x;a[f+q>>0]=x;a[f+r>>0]=x}else{d=0;v=19}else v=19;if((v|0)==19){v=0;B=c[k>>2]|0;C=c[k+16>>2]|0;z=C+B|0;C=B-C|0;B=c[k+24>>2]|0;t=B+d|0;d=((d-B|0)*362>>8)-t|0;B=t+z|0;t=z-t|0;z=d+C|0;d=C-d|0;C=c[k+20>>2]|0;y=c[k+12>>2]|0;D=y+C|0;y=C-y|0;C=c[k+28>>2]|0;E=C+j|0;C=j-C|0;A=E+D|0;x=(C+y|0)*473>>8;y=(($(y,-669)|0)>>8)-A+x|0;j=((E-D|0)*362>>8)-y|0;x=j+((C*277>>8)-x)|0;a[e>>0]=a[u+(((A+B|0)>>>5&1023)+128)>>0]|0;a[f+r>>0]=a[u+(((B-A|0)>>>5&1023)+128)>>0]|0;a[f+l>>0]=a[u+(((y+z|0)>>>5&1023)+128)>>0]|0;a[f+q>>0]=a[u+(((z-y|0)>>>5&1023)+128)>>0]|0;a[f+m>>0]=a[u+(((j+d|0)>>>5&1023)+128)>>0]|0;a[f+p>>0]=a[u+(((d-j|0)>>>5&1023)+128)>>0]|0;a[f+o>>0]=a[u+(((x+t|0)>>>5&1023)+128)>>0]|0;a[f+n>>0]=a[u+(((t-x|0)>>>5&1023)+128)>>0]|0}s=s+1|0;if((s|0)==8)break;else k=k+32|0}i=w;return}function kp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;w=i;i=i+256|0;t=w;u=c[d+324>>2]|0;l=8;j=c[e+80>>2]|0;k=t;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){s=$(c[j>>2]<<2,b[f>>1]|0)|0;c[k>>2]=s;c[k+32>>2]=s;c[k+64>>2]=s;c[k+96>>2]=s;c[k+128>>2]=s;c[k+160>>2]=s;c[k+192>>2]=s;c[k+224>>2]=s}else{d=0;v=10}else v=10;if((v|0)==10){v=0;r=$(d<<16>>16,c[j+64>>2]|0)|0;o=$(b[f+96>>1]|0,c[j+192>>2]|0)|0;s=(o+r|0)*4433|0;o=s+($(o,-15137)|0)|0;r=s+(r*6270|0)|0;s=$(b[f>>1]|0,c[j>>2]|0)|0;n=$(b[f+64>>1]|0,c[j+128>>2]|0)|0;q=n+s<<13;n=s-n<<13;s=$(b[f+112>>1]|0,c[j+224>>2]|0)|0;p=$(b[f+80>>1]|0,c[j+160>>2]|0)|0;y=$(b[f+48>>1]|0,c[j+96>>2]|0)|0;d=$(e<<16>>16,c[j+32>>2]|0)|0;m=y+s|0;e=d+p|0;A=(e+m|0)*9633|0;x=$(d+s|0,-7373)|0;z=$(y+p|0,-20995)|0;m=A+($(m,-16069)|0)|0;e=A+($(e,-3196)|0)|0;s=x+(s*2446|0)+m|0;p=z+(p*16819|0)+e|0;m=z+(y*25172|0)+m|0;e=x+(d*12299|0)+e|0;d=q+r+1024|0;c[k>>2]=d+e>>11;c[k+224>>2]=d-e>>11;e=n+o+1024|0;c[k+32>>2]=e+m>>11;c[k+192>>2]=e-m>>11;o=n-o+1024|0;c[k+64>>2]=o+p>>11;c[k+160>>2]=o-p>>11;r=q-r+1024|0;c[k+96>>2]=r+s>>11;c[k+128>>2]=r-s>>11}if((l|0)>1){l=l+-1|0;f=f+2|0;j=j+4|0;k=k+4|0}else break}l=h+1|0;m=h+2|0;n=h+3|0;o=h+4|0;p=h+5|0;q=h+6|0;r=h+7|0;s=0;k=t;while(1){f=c[g+(s<<2)>>2]|0;e=f+h|0;j=c[k+4>>2]|0;d=c[k+8>>2]|0;if(!(j|d))if(((((c[k+12>>2]|0)==0?(c[k+16>>2]|0)==0:0)?(c[k+20>>2]|0)==0:0)?(c[k+24>>2]|0)==0:0)?(c[k+28>>2]|0)==0:0){A=a[u+((((c[k>>2]|0)+16|0)>>>5&1023)+128)>>0]|0;a[e>>0]=A;a[f+l>>0]=A;a[f+m>>0]=A;a[f+n>>0]=A;a[f+o>>0]=A;a[f+p>>0]=A;a[f+q>>0]=A;a[f+r>>0]=A}else{d=0;v=19}else v=19;if((v|0)==19){v=0;t=c[k+24>>2]|0;z=(t+d|0)*4433|0;t=z+($(t,-15137)|0)|0;z=z+(d*6270|0)|0;A=c[k>>2]|0;d=c[k+16>>2]|0;y=d+A<<13;d=A-d<<13;A=c[k+28>>2]|0;x=c[k+20>>2]|0;E=c[k+12>>2]|0;B=E+A|0;C=j+x|0;G=(C+B|0)*9633|0;D=$(j+A|0,-7373)|0;F=$(E+x|0,-20995)|0;B=G+($(B,-16069)|0)|0;C=G+($(C,-3196)|0)|0;A=D+(A*2446|0)+B|0;x=F+(x*16819|0)+C|0;B=F+(E*25172|0)+B|0;j=D+(j*12299|0)+C|0;C=y+z+131072|0;a[e>>0]=a[u+(((C+j|0)>>>18&1023)+128)>>0]|0;a[f+r>>0]=a[u+(((C-j|0)>>>18&1023)+128)>>0]|0;j=d+t+131072|0;a[f+l>>0]=a[u+(((j+B|0)>>>18&1023)+128)>>0]|0;a[f+q>>0]=a[u+(((j-B|0)>>>18&1023)+128)>>0]|0;t=d-t+131072|0;a[f+m>>0]=a[u+(((t+x|0)>>>18&1023)+128)>>0]|0;a[f+p>>0]=a[u+(((t-x|0)>>>18&1023)+128)>>0]|0;z=y-z+131072|0;a[f+n>>0]=a[u+(((z+A|0)>>>18&1023)+128)>>0]|0;a[f+o>>0]=a[u+(((z-A|0)>>>18&1023)+128)>>0]|0}s=s+1|0;if((s|0)==8)break;else k=k+32|0}i=w;return}function lp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;s=i;i=i+128|0;p=s;q=c[d+324>>2]|0;l=8;j=c[e+80>>2]|0;k=p;while(1){do if((l|0)!=4){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if((((b[f+48>>1]|0)==0?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){o=$(c[j>>2]<<2,b[f>>1]|0)|0;c[k>>2]=o;c[k+32>>2]=o;c[k+64>>2]=o;c[k+96>>2]=o;break}else d=0;m=$(c[j>>2]<<14,b[f>>1]|0)|0;n=($((c[j+64>>2]|0)*15137|0,d<<16>>16)|0)-($((c[j+192>>2]|0)*6270|0,b[f+96>>1]|0)|0)|0;u=$(b[f+112>>1]|0,c[j+224>>2]|0)|0;t=$(b[f+80>>1]|0,c[j+160>>2]|0)|0;d=$(b[f+48>>1]|0,c[j+96>>2]|0)|0;e=$(e<<16>>16,c[j+32>>2]|0)|0;o=(e*8697|0)+(($(u,-1730)|0)+(t*11893|0)+($(d,-17799)|0))|0;e=($(u,-4176)|0)+($(t,-4926)|0)+(d*7373|0)+(e*20995|0)|0;d=n+m+2048|0;c[k>>2]=d+e>>12;c[k+96>>2]=d-e>>12;n=m-n+2048|0;c[k+32>>2]=n+o>>12;c[k+64>>2]=n-o>>12}while(0);if((l|0)>1){l=l+-1|0;f=f+2|0;j=j+4|0;k=k+4|0}else break}m=h+1|0;n=h+2|0;l=h+3|0;o=0;k=p;while(1){f=c[g+(o<<2)>>2]|0;e=f+h|0;j=c[k+4>>2]|0;d=c[k+8>>2]|0;if(!(j|d))if((((c[k+12>>2]|0)==0?(c[k+20>>2]|0)==0:0)?(c[k+24>>2]|0)==0:0)?(c[k+28>>2]|0)==0:0){u=a[q+((((c[k>>2]|0)+16|0)>>>5&1023)+128)>>0]|0;a[e>>0]=u;a[f+m>>0]=u;a[f+n>>0]=u;a[f+l>>0]=u}else{d=0;r=18}else r=18;if((r|0)==18){r=0;p=c[k>>2]<<14;t=(d*15137|0)+($(c[k+24>>2]|0,-6270)|0)|0;w=c[k+28>>2]|0;v=c[k+20>>2]|0;d=c[k+12>>2]|0;u=($(w,-1730)|0)+(v*11893|0)+($(d,-17799)|0)+(j*8697|0)|0;j=($(w,-4176)|0)+($(v,-4926)|0)+(d*7373|0)+(j*20995|0)|0;d=t+p+262144|0;a[e>>0]=a[q+(((d+j|0)>>>19&1023)+128)>>0]|0;a[f+l>>0]=a[q+(((d-j|0)>>>19&1023)+128)>>0]|0;t=p-t+262144|0;a[f+m>>0]=a[q+(((t+u|0)>>>19&1023)+128)>>0]|0;a[f+n>>0]=a[q+(((t-u|0)>>>19&1023)+128)>>0]|0}o=o+1|0;if((o|0)==4)break;else k=k+32|0}i=s;return}function mp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+64|0;n=q;o=c[d+324>>2]|0;l=8;j=c[e+80>>2]|0;k=n;while(1){a:do switch(l|0){case 2:case 4:case 6:break;default:{e=b[f+16>>1]|0;d=b[f+48>>1]|0;if(!((e|d)<<16>>16))if((b[f+80>>1]|0)==0?(b[f+112>>1]|0)==0:0){m=$(c[j>>2]<<2,b[f>>1]|0)|0;c[k>>2]=m;c[k+32>>2]=m;break a}else d=0;r=$(c[j>>2]<<15,b[f>>1]|0)|0;m=$((c[j+224>>2]|0)*5906|0,b[f+112>>1]|0)|0;m=($((c[j+160>>2]|0)*6967|0,b[f+80>>1]|0)|0)-m-($((c[j+96>>2]|0)*10426|0,d<<16>>16)|0)+($((c[j+32>>2]|0)*29692|0,e<<16>>16)|0)|0;e=r|4096;c[k>>2]=e+m>>13;c[k+32>>2]=e-m>>13}}while(0);if((l|0)>1){l=l+-1|0;f=f+2|0;j=j+4|0;k=k+4|0}else break}l=h+1|0;m=0;k=n;while(1){f=c[g+(m<<2)>>2]|0;e=f+h|0;j=c[k+4>>2]|0;d=c[k+12>>2]|0;if(!(j|d))if((c[k+20>>2]|0)==0?(c[k+28>>2]|0)==0:0){r=a[o+((((c[k>>2]|0)+16|0)>>>5&1023)+128)>>0]|0;a[e>>0]=r;a[f+l>>0]=r}else{d=0;p=14}else p=14;if((p|0)==14){p=0;r=($(c[k+28>>2]|0,-5906)|0)+((c[k+20>>2]|0)*6967|0)+($(d,-10426)|0)+(j*29692|0)|0;n=(c[k>>2]<<15)+524288|0;a[e>>0]=a[o+(((n+r|0)>>>20&1023)+128)>>0]|0;a[f+l>>0]=a[o+(((n-r|0)>>>20&1023)+128)>>0]|0}m=m+1|0;if((m|0)==2)break;else k=k+32|0}i=q;return}function np(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;e=a[(c[d+324>>2]|0)+(((($(b[f>>1]|0,c[c[e+80>>2]>>2]|0)|0)+4|0)>>>3&1023)+128)>>0]|0;a[(c[g>>2]|0)+h>>0]=e;return}function op(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=b+4|0;s=Pc[c[c[n>>2]>>2]&63](b,1,88)|0;f=b+460|0;c[f>>2]=s;c[s>>2]=45;c[s+8>>2]=133;c[s+12>>2]=134;c[s+68>>2]=0;c[s+52>>2]=0;s=b+120|0;if((c[s>>2]|0)>4){r=c[b>>2]|0;c[r+20>>2]=55;c[r+24>>2]=4;Kc[c[r>>2]&255](b)}d=b+96|0;e=c[d>>2]|0;if((e|0)>256){e=c[b>>2]|0;c[e+20>>2]=57;c[e+24>>2]=256;Kc[c[e>>2]&255](b);e=c[d>>2]|0}r=c[f>>2]|0;m=c[s>>2]|0;g=(m|0)>1;i=1;while(1){h=i+1|0;if(g){f=1;d=h;do{d=$(d,h)|0;f=f+1|0}while((f|0)<(m|0))}else d=h;if((d|0)>(e|0))break;else i=h}l=r+32|0;if((i|0)<2){q=c[b>>2]|0;c[q+20>>2]=56;c[q+24>>2]=d;Kc[c[q>>2]&255](b)}if((m|0)>0){f=0;d=1;do{c[r+32+(f<<2)>>2]=i;d=$(d,i)|0;f=f+1|0}while((f|0)<(m|0))}else d=1;k=b+44|0;g=0;f=0;a:while(1){h=g;j=f;while(1){if((j|0)<(m|0)){if((c[k>>2]|0)==2)f=c[5664+(j<<2)>>2]|0;else f=j;f=r+32+(f<<2)|0;i=c[f>>2]|0;g=i+1|0;i=$((d|0)/(i|0)|0,g)|0;if((i|0)<=(e|0)){h=f;d=i;f=j;break}}if(!h){q=d;break a}else{h=0;j=0}}c[h>>2]=g;g=1;f=f+1|0}d=c[b>>2]|0;e=c[d+4>>2]|0;if((c[s>>2]|0)==3){c[d+24>>2]=q;c[d+28>>2]=c[l>>2];c[d+32>>2]=c[r+36>>2];c[d+36>>2]=c[r+40>>2];c[d+20>>2]=94;Lc[e&63](b,1)}else{c[d+20>>2]=95;c[d+24>>2]=q;Lc[e&63](b,1)}f=Xc[c[(c[n>>2]|0)+8>>2]&15](b,1,q,c[s>>2]|0)|0;if((c[s>>2]|0)>0){m=q;o=0;do{g=c[r+32+(o<<2)>>2]|0;n=m;m=(m|0)/(g|0)|0;h=g+-1|0;i=(h|0)/2|0;j=f+(o<<2)|0;if((g|0)>0){k=(m|0)>0;p=0;do{d=$(p,m)|0;l=(((p*255|0)+i|0)/(h|0)|0)&255;if((d|0)<(q|0))do{if(k){e=0;do{a[(c[j>>2]|0)+(e+d)>>0]=l;e=e+1|0}while((e|0)<(m|0))}d=d+n|0}while((d|0)<(q|0));p=p+1|0}while((p|0)<(g|0))}o=o+1|0}while((o|0)<(c[s>>2]|0))}c[r+16>>2]=f;c[r+20>>2]=q;Jq(b);if((c[b+88>>2]|0)==2)Kq(b);return}function pp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+4|0;e=Pc[c[c[f>>2]>>2]&63](a,1,44)|0;c[a+460>>2]=e;c[e>>2]=46;c[e+12>>2]=135;g=e+32|0;c[g>>2]=0;c[e+40>>2]=0;if((c[a+120>>2]|0)!=3){d=c[a>>2]|0;c[d+20>>2]=47;Kc[c[d>>2]&255](a)}b=e+24|0;c[b>>2]=Pc[c[c[f>>2]>>2]&63](a,1,128)|0;d=0;do{h=Pc[c[(c[f>>2]|0)+4>>2]&63](a,1,4096)|0;c[(c[b>>2]|0)+(d<<2)>>2]=h;d=d+1|0}while((d|0)!=32);c[e+28>>2]=1;if(!(c[a+108>>2]|0))c[e+16>>2]=0;else{b=c[a+96>>2]|0;if((b|0)>=8){if((b|0)>256){h=c[a>>2]|0;c[h+20>>2]=57;c[h+24>>2]=256;Kc[c[h>>2]&255](a)}}else{h=c[a>>2]|0;c[h+20>>2]=56;c[h+24>>2]=8;Kc[c[h>>2]&255](a)}c[e+16>>2]=Xc[c[(c[f>>2]|0)+8>>2]&15](a,1,b,3)|0;c[e+20>>2]=b}b=a+88|0;if(c[b>>2]|0){c[b>>2]=2;c[g>>2]=Pc[c[(c[f>>2]|0)+4>>2]&63](a,1,((c[a+112>>2]|0)*6|0)+12|0)|0;Nq(a)}return}function qp(a,b){a=a|0;b=b|0;return (a+-1+b|0)/(b|0)|0|0}function rp(a,b){a=a|0;b=b|0;a=a+-1+b|0;return a-((a|0)%(b|0)|0)|0}function sp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((f|0)>0){d=d+(e<<2)|0;e=a+(b<<2)|0;while(1){gH(c[d>>2]|0,c[e>>2]|0,g|0)|0;if((f|0)>1){d=d+4|0;e=e+4|0;f=f+-1|0}else break}}return}function tp(a,b,c){a=a|0;b=b|0;c=c|0;gH(b|0,a|0,c<<7|0)|0;return}function up(a,b){a=a|0;b=b|0;iH(a|0,0,b|0)|0;return}function vp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;j=k;h=k+8|0;g=k+12|0;d=b+4|0;c[d>>2]=0;c[h>>2]=Cp(b)|0;e=wp(b,84)|0;if(!e){Dp(b);f=c[b>>2]|0;c[f+20>>2]=54;c[f+24>>2]=0;Kc[c[f>>2]&255](b)}c[e>>2]=28;c[e+4>>2]=29;c[e+8>>2]=6;c[e+12>>2]=7;c[e+16>>2]=39;c[e+20>>2]=40;c[e+24>>2]=136;c[e+28>>2]=21;c[e+32>>2]=22;c[e+36>>2]=47;c[e+40>>2]=137;c[e+48>>2]=1e9;f=e+44|0;c[f>>2]=c[h>>2];l=e+52|0;b=e+60|0;c[l+4>>2]=0;c[b+4>>2]=0;c[l>>2]=0;c[b>>2]=0;c[e+68>>2]=0;c[e+72>>2]=0;c[e+76>>2]=84;c[d>>2]=e;b=Rb(34475)|0;if((b|0)!=0?(a[g>>0]=120,c[j>>2]=h,c[j+4>>2]=g,(fw(b,34483,j)|0)>0):0){switch(a[g>>0]|0){case 77:case 109:{b=(c[h>>2]|0)*1e3|0;c[h>>2]=b;break}default:b=c[h>>2]|0}c[f>>2]=b*1e3}i=k;return}function wp(a,b){a=a|0;b=b|0;return cx(b)|0}function xp(a,b,c){a=a|0;b=b|0;c=c|0;dx(b);return}function yp(a,b){a=a|0;b=b|0;return cx(b)|0}function zp(a,b,c){a=a|0;b=b|0;c=c|0;dx(b);return}function Ap(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[(c[a+4>>2]|0)+44>>2]|0)-e|0}function Bp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=gw()|0;c[d+12>>2]=f;if(!f){e=c[b>>2]|0;c[e+20>>2]=63;e=e+24|0;f=e+80|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));Kc[c[c[b>>2]>>2]&255](b)}c[d>>2]=9;c[d+4>>2]=10;c[d+8>>2]=48;return}function Cp(a){a=a|0;return 1e6}function Dp(a){a=a|0;return}function Ep(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=a+20|0;f=a+420|0;if((c[g>>2]|0)==204)e=a+140|0;else{Kc[c[c[f>>2]>>2]&255](a);e=a+140|0;c[e>>2]=0;c[g>>2]=204}i=a+116|0;j=a+8|0;k=a+424|0;a:do if(!(c[(c[f>>2]|0)+8>>2]|0))l=11;else while(1){h=c[e>>2]|0;while(1){b=c[i>>2]|0;if(h>>>0>=b>>>0)break;d=c[j>>2]|0;if(!d)b=h;else{c[d+4>>2]=h;c[d+8>>2]=b;Kc[c[d>>2]&255](a);b=c[e>>2]|0}ad[c[(c[k>>2]|0)+4>>2]&31](a,0,e,0);h=c[e>>2]|0;if((h|0)==(b|0)){b=0;break a}}Kc[c[(c[f>>2]|0)+4>>2]&255](a);Kc[c[c[f>>2]>>2]&255](a);c[e>>2]=0;if(!(c[(c[f>>2]|0)+8>>2]|0)){l=11;break}}while(0);if((l|0)==11){c[g>>2]=(c[a+68>>2]|0)!=0?206:205;b=1}return b|0}function Fp(a){a=a|0;c[(c[a+24>>2]|0)+36>>2]=1;return}function Gp(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b+24>>2]|0;f=e+32|0;d=Uv(c[f>>2]|0,1,4096,c[e+28>>2]|0)|0;g=e+36|0;if(!d){if(!(c[g>>2]|0))d=b;else{d=c[b>>2]|0;c[d+20>>2]=42;Kc[c[d>>2]&255](b);d=b}b=c[b>>2]|0;c[b+20>>2]=120;Lc[c[b+4>>2]&63](d,-1);a[c[f>>2]>>0]=-1;a[(c[f>>2]|0)+1>>0]=-39;d=2}c[e>>2]=c[f>>2];c[e+4>>2]=d;c[g>>2]=0;return 1}function Hp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[a+24>>2]|0;if((b|0)>0){f=e+4|0;d=c[f>>2]|0;if((d|0)<(b|0))do{b=b-d|0;Gp(a)|0;d=c[f>>2]|0}while((b|0)>(d|0));c[e>>2]=(c[e>>2]|0)+b;c[f>>2]=d-b}return}function Ip(a){a=a|0;return}function Jp(a){a=a|0;c[a+148>>2]=0;Cr(a);return}function Kp(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=c[a+428>>2]|0;a:do if(c[k+16>>2]|0){b:do if(((c[a+80>>2]|0)!=0?(c[a+220>>2]|0)!=0:0)?(j=a+160|0,(c[j>>2]|0)!=0):0){d=k+112|0;e=c[d>>2]|0;if(!e){i=a+36|0;e=Pc[c[c[a+4>>2]>>2]&63](a,1,(c[i>>2]|0)*24|0)|0;c[d>>2]=e}else i=a+36|0;if((c[i>>2]|0)>0){h=0;g=c[a+216>>2]|0;d=0;while(1){f=c[g+76>>2]|0;if(!f)break b;if(!(b[f>>1]|0))break b;if(!(b[f+2>>1]|0))break b;if(!(b[f+16>>1]|0))break b;if(!(b[f+32>>1]|0))break b;if(!(b[f+18>>1]|0))break b;if(!(b[f+4>>1]|0))break b;f=c[j>>2]|0;if((c[f+(h<<8)>>2]|0)<0)break b;l=f+(h<<8)+4|0;c[e+4>>2]=c[l>>2];d=(c[l>>2]|0)==0?d:1;l=f+(h<<8)+8|0;c[e+8>>2]=c[l>>2];d=(c[l>>2]|0)==0?d:1;l=f+(h<<8)+12|0;c[e+12>>2]=c[l>>2];d=(c[l>>2]|0)==0?d:1;l=f+(h<<8)+16|0;c[e+16>>2]=c[l>>2];d=(c[l>>2]|0)==0?d:1;f=f+(h<<8)+20|0;c[e+20>>2]=c[f>>2];d=(c[f>>2]|0)==0?d:1;h=h+1|0;if((h|0)>=(c[i>>2]|0))break;else{e=e+24|0;g=g+84|0}}if(d){c[k+12>>2]=24;break a}}}while(0);c[k+12>>2]=21}while(0);c[a+156>>2]=0;return}function Lp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;B=D;w=c[a+428>>2]|0;x=a+328|0;b=a+4|0;A=a+148|0;if((c[x>>2]|0)>0){d=0;do{v=c[a+332+(d<<2)>>2]|0;z=c[v+12>>2]|0;y=$(z,c[A>>2]|0)|0;c[B+(d<<2)>>2]=Oc[c[(c[b>>2]|0)+32>>2]&31](a,c[w+72+(c[v+4>>2]<<2)>>2]|0,y,z,1)|0;d=d+1|0}while((d|0)<(c[x>>2]|0))}y=w+24|0;b=c[y>>2]|0;s=w+28|0;z=w+20|0;t=a+348|0;u=a+444|0;v=w+32|0;a:do if((b|0)<(c[s>>2]|0)){b:while(1){d=c[z>>2]|0;if(d>>>0<(c[t>>2]|0)>>>0)do{q=c[x>>2]|0;if((q|0)>0){e=0;r=0;do{m=c[a+332+(r<<2)>>2]|0;k=c[m+52>>2]|0;l=$(k,d)|0;m=c[m+56>>2]|0;n=B+(r<<2)|0;p=(k|0)>0?k:0;if((m|0)>0){o=(k|0)>0;j=0;do{if(o){f=e;g=(c[(c[n>>2]|0)+(j+b<<2)>>2]|0)+(l<<7)|0;h=0;while(1){c[w+32+(f<<2)>>2]=g;h=h+1|0;if((h|0)>=(k|0))break;else{f=f+1|0;g=g+128|0}}}e=e+p|0;j=j+1|0}while((j|0)<(m|0))}r=r+1|0}while((r|0)<(q|0))}if(!(Uc[c[(c[u>>2]|0)+4>>2]&63](a,v)|0))break b;d=d+1|0}while(d>>>0<(c[t>>2]|0)>>>0);c[z>>2]=0;b=b+1|0;if((b|0)>=(c[s>>2]|0)){C=17;break a}}c[y>>2]=b;c[z>>2]=d;b=0}else C=17;while(0);do if((C|0)==17){C=(c[A>>2]|0)+1|0;c[A>>2]=C;if(C>>>0<(c[a+320>>2]|0)>>>0){Cr(a);b=3;break}else{Kc[c[(c[a+436>>2]|0)+12>>2]&255](a);b=4;break}}while(0);i=D;return b|0}function Mp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=c[a+428>>2]|0;t=a+320|0;u=(c[t>>2]|0)+-1|0;f=a+144|0;g=a+152|0;h=a+436|0;i=a+148|0;v=a+156|0;while(1){d=c[f>>2]|0;e=c[g>>2]|0;if((d|0)>=(e|0)){if((d|0)!=(e|0)){j=6;break}if((c[i>>2]|0)>>>0>(c[v>>2]|0)>>>0){j=6;break}}if(!(Nc[c[c[h>>2]>>2]&127](a)|0)){d=0;break}}if((j|0)==6){m=a+36|0;n=a+4|0;o=a+448|0;if((c[m>>2]|0)>0){q=0;r=c[a+216>>2]|0;while(1){if(c[r+48>>2]|0){d=r+12|0;p=c[d>>2]|0;l=$(p,c[v>>2]|0)|0;p=Oc[c[(c[n>>2]|0)+32>>2]&31](a,c[s+72+(q<<2)>>2]|0,l,p,0)|0;if((c[v>>2]|0)>>>0>>0)i=c[d>>2]|0;else{l=c[d>>2]|0;i=((c[r+32>>2]|0)>>>0)%(l>>>0)|0;i=(i|0)==0?l:i}d=c[(c[o>>2]|0)+4+(q<<2)>>2]|0;e=r+28|0;f=r+36|0;if((i|0)>0){h=0;l=c[b+(q<<2)>>2]|0;while(1){if(c[e>>2]|0){g=0;j=c[p+(h<<2)>>2]|0;k=0;while(1){Hc[d&31](a,r,j,l,k);g=g+1|0;if(g>>>0>=(c[e>>2]|0)>>>0)break;else{j=j+128|0;k=(c[f>>2]|0)+k|0}}}h=h+1|0;if((h|0)>=(i|0))break;else l=l+(c[f>>2]<<2)|0}}}q=q+1|0;if((q|0)>=(c[m>>2]|0))break;else r=r+84|0}}d=(c[v>>2]|0)+1|0;c[v>>2]=d;d=d>>>0<(c[t>>2]|0)>>>0?3:4}return d|0}function Np(a){a=a|0;return 0}function Op(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;x=c[a+428>>2]|0;F=(c[a+348>>2]|0)+-1|0;G=a+320|0;H=(c[G>>2]|0)+-1|0;J=x+24|0;d=c[J>>2]|0;y=x+28|0;I=x+20|0;z=x+32|0;A=a+356|0;B=a+444|0;C=a+328|0;D=a+448|0;E=a+148|0;a:do if((d|0)<(c[y>>2]|0)){b:while(1){e=c[I>>2]|0;if(e>>>0<=F>>>0)do{up(c[z>>2]|0,c[A>>2]<<7);if(!(Uc[c[(c[B>>2]|0)+4>>2]&63](a,z)|0))break b;v=e>>>0>>0;if((c[C>>2]|0)>0){f=0;w=0;do{m=c[a+332+(w<<2)>>2]|0;if(c[m+48>>2]|0){g=c[m+4>>2]|0;n=c[(c[D>>2]|0)+4+(g<<2)>>2]|0;o=m+52|0;p=c[(v?o:m+68|0)>>2]|0;q=m+36|0;h=c[q>>2]|0;r=$(c[m+64>>2]|0,e)|0;s=m+56|0;t=m+72|0;if((c[s>>2]|0)>0){l=(p|0)>0;u=(p|0)>0;i=h;j=(c[b+(g<<2)>>2]|0)+(($(h,d)|0)<<2)|0;k=0;while(1){if((c[E>>2]|0)>>>0>>0)if(l){h=r;i=0;K=13}else g=i;else if((k+d|0)<(c[t>>2]|0)&u){h=r;i=0;K=13}else g=i;if((K|0)==13)while(1){K=0;Hc[n&31](a,m,c[x+32+(i+f<<2)>>2]|0,j,h);g=c[q>>2]|0;i=i+1|0;if((i|0)>=(p|0))break;else{h=g+h|0;K=13}}f=(c[o>>2]|0)+f|0;k=k+1|0;if((k|0)>=(c[s>>2]|0))break;else{i=g;j=j+(g<<2)|0}}}}else f=(c[m+60>>2]|0)+f|0;w=w+1|0}while((w|0)<(c[C>>2]|0))}e=e+1|0}while(e>>>0<=F>>>0);c[I>>2]=0;d=d+1|0;if((d|0)>=(c[y>>2]|0)){K=18;break a}}c[J>>2]=d;c[I>>2]=e;d=0}else K=18;while(0);do if((K|0)==18){K=a+156|0;c[K>>2]=(c[K>>2]|0)+1;K=(c[E>>2]|0)+1|0;c[E>>2]=K;if(K>>>0<(c[G>>2]|0)>>>0){Cr(a);d=3;break}else{Kc[c[(c[a+436>>2]|0)+12>>2]&255](a);d=4;break}}while(0);return d|0}function Pp(a){a=a|0;return}function Qp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;sp(c[b>>2]|0,d,e,0,f,c[a+112>>2]|0);return}function Rp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;o=c[b+456>>2]|0;v=c[b+112>>2]|0;r=c[b+324>>2]|0;s=c[o+8>>2]|0;t=c[o+12>>2]|0;n=c[o+16>>2]|0;o=c[o+20>>2]|0;p=e+4|0;q=e+8|0;if((h|0)>0){u=(v|0)==0;while(1){b=h;h=h+-1|0;i=c[(c[e>>2]|0)+(f<<2)>>2]|0;j=c[(c[p>>2]|0)+(f<<2)>>2]|0;k=c[(c[q>>2]|0)+(f<<2)>>2]|0;f=f+1|0;if(!u){l=0;m=c[g>>2]|0;while(1){w=d[i+l>>0]|0;x=d[j+l>>0]|0;y=d[k+l>>0]|0;a[m>>0]=a[r+((c[s+(y<<2)>>2]|0)+w)>>0]|0;a[m+1>>0]=a[r+(((c[n+(y<<2)>>2]|0)+(c[o+(x<<2)>>2]|0)>>16)+w)>>0]|0;a[m+2>>0]=a[r+((c[t+(x<<2)>>2]|0)+w)>>0]|0;l=l+1|0;if((l|0)==(v|0))break;else m=m+3|0}}if((b|0)<=1)break;else g=g+4|0}}return}function Sp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=c[a+456>>2]|0;g=a+4|0;b=f+8|0;c[b>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;d=f+12|0;c[d>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;e=f+16|0;c[e>>2]=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;a=Pc[c[c[g>>2]>>2]&63](a,1,1024)|0;c[f+20>>2]=a;b=c[b>>2]|0;d=c[d>>2]|0;e=c[e>>2]|0;f=0;g=-128;while(1){c[b+(f<<2)>>2]=(g*91881|0)+32768>>16;c[d+(f<<2)>>2]=(g*116130|0)+32768>>16;c[e+(f<<2)>>2]=$(g,-46802)|0;c[a+(f<<2)>>2]=($(g,-22554)|0)+32768;f=f+1|0;if((f|0)==256)break;else g=g+1|0}return}function Tp(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=c[b+112>>2]|0;if((g|0)>0){l=(k|0)==0;while(1){b=g;g=g+-1|0;h=c[(c[d>>2]|0)+(e<<2)>>2]|0;if(!l){i=0;j=c[f>>2]|0;while(1){m=a[h+i>>0]|0;a[j+2>>0]=m;a[j+1>>0]=m;a[j>>0]=m;i=i+1|0;if((i|0)==(k|0))break;else j=j+3|0}}if((b|0)<=1)break;else{f=f+4|0;e=e+1|0}}}return}function Up(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[b+36>>2]|0;l=c[b+112>>2]|0;if((g|0)>0){m=(o|0)>0;n=(l|0)==0;while(1){b=g;g=g+-1|0;if(m){h=0;do{if(!n){i=l;j=c[(c[d+(h<<2)>>2]|0)+(e<<2)>>2]|0;k=(c[f>>2]|0)+h|0;while(1){a[k>>0]=a[j>>0]|0;i=i+-1|0;if(!i)break;else{j=j+1|0;k=k+o|0}}}h=h+1|0}while((h|0)<(o|0))}if((b|0)<=1)break;else{e=e+1|0;f=f+4|0}}}return}function Vp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;p=c[b+456>>2]|0;x=c[b+112>>2]|0;t=c[b+324>>2]|0;u=c[p+8>>2]|0;v=c[p+12>>2]|0;o=c[p+16>>2]|0;p=c[p+20>>2]|0;q=e+4|0;r=e+8|0;s=e+12|0;if((h|0)>0){w=(x|0)==0;while(1){b=h;h=h+-1|0;i=c[(c[e>>2]|0)+(f<<2)>>2]|0;j=c[(c[q>>2]|0)+(f<<2)>>2]|0;k=c[(c[r>>2]|0)+(f<<2)>>2]|0;l=c[(c[s>>2]|0)+(f<<2)>>2]|0;f=f+1|0;if(!w){m=0;n=c[g>>2]|0;while(1){y=d[j+m>>0]|0;A=d[k+m>>0]|0;z=(d[i+m>>0]|0)^255;a[n>>0]=a[t+(z-(c[u+(A<<2)>>2]|0))>>0]|0;a[n+1>>0]=a[t+(z-((c[o+(A<<2)>>2]|0)+(c[p+(y<<2)>>2]|0)>>16))>>0]|0;a[n+2>>0]=a[t+(z-(c[v+(y<<2)>>2]|0))>>0]|0;a[n+3>>0]=a[l+m>>0]|0;m=m+1|0;if((m|0)==(x|0))break;else n=n+4|0}}if((b|0)<=1)break;else g=g+4|0}}return}function Wp(a){a=a|0;var d=0,f=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=c[a+448>>2]|0;p=a+36|0;s=a+72|0;a:do if((c[p>>2]|0)>0){t=0;u=c[a+216>>2]|0;f=0;i=0;while(1){d=c[u+36>>2]|0;b:do switch(d|0){case 1:{d=0;n=11;break}case 2:{d=0;n=12;break}case 4:{d=0;n=13;break}case 8:{d=c[s>>2]|0;switch(d|0){case 0:{d=0;n=14;break b}case 1:{n=15;break b}case 2:{n=16;break b}default:{d=c[a>>2]|0;c[d+20>>2]=48;Kc[c[d>>2]&255](a);d=f;n=i;break b}}}default:{n=c[a>>2]|0;c[n+20>>2]=7;c[n+24>>2]=d;Kc[c[n>>2]&255](a);d=f;n=i}}while(0);c[o+4+(t<<2)>>2]=n;c:do if(((c[u+48>>2]|0)!=0?(q=o+44+(t<<2)|0,(c[q>>2]|0)!=(d|0)):0)?(r=c[u+76>>2]|0,(r|0)!=0):0){c[q>>2]=d;switch(d|0){case 0:{f=c[u+80>>2]|0;i=0;do{c[f+(i<<2)>>2]=e[r+(i<<1)>>1];i=i+1|0}while((i|0)!=64);break}case 1:{f=c[u+80>>2]|0;i=0;do{c[f+(i<<2)>>2]=($(b[17196+(i<<1)>>1]|0,e[r+(i<<1)>>1]|0)|0)+2048>>12;i=i+1|0}while((i|0)!=64);break}case 2:{f=c[u+80>>2]|0;k=0;m=0;while(1){j=+h[104+(m<<3)>>3];i=0;l=k;while(1){g[f+(l<<2)>>2]=+(e[r+(l<<1)>>1]|0)*j*+h[104+(i<<3)>>3];i=i+1|0;if((i|0)==8)break;else l=l+1|0}m=m+1|0;if((m|0)==8)break;else k=k+8|0}break}default:{m=c[a>>2]|0;c[m+20>>2]=48;Kc[c[m>>2]&255](a);break c}}}while(0);t=t+1|0;if((t|0)>=(c[p>>2]|0))break a;else{u=u+84|0;f=d;i=n}}}while(0);return}function Xp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=c[a+444>>2]|0;if(!((((c[a+400>>2]|0)==0?(c[a+404>>2]|0)==63:0)?(c[a+408>>2]|0)==0:0)?(c[a+412>>2]|0)==0:0)){f=c[a>>2]|0;c[f+20>>2]=122;Lc[c[f+4>>2]&63](a,-1)}b=a+328|0;if((c[b>>2]|0)>0){d=0;do{f=c[a+332+(d<<2)>>2]|0;e=c[f+20>>2]|0;f=c[f+24>>2]|0;Vo(a,1,e,g+40+(e<<2)|0);Vo(a,0,f,g+56+(f<<2)|0);c[g+20+(d<<2)>>2]=0;d=d+1|0}while((d|0)<(c[b>>2]|0))}e=a+356|0;if((c[e>>2]|0)>0){f=0;do{b=c[a+332+(c[a+360+(f<<2)>>2]<<2)>>2]|0;c[g+72+(f<<2)>>2]=c[g+40+(c[b+20>>2]<<2)>>2];c[g+112+(f<<2)>>2]=c[g+56+(c[b+24>>2]<<2)>>2];d=g+152+(f<<2)|0;if(!(c[b+48>>2]|0)){c[d>>2]=0;b=0}else{c[d>>2]=1;b=(c[b+36>>2]|0)>1&1}c[g+192+(f<<2)>>2]=b;f=f+1|0}while((f|0)<(c[e>>2]|0))}c[g+16>>2]=0;c[g+12>>2]=0;c[g+8>>2]=0;c[g+36>>2]=c[a+276>>2];return}function Yp(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+48|0;z=B+16|0;A=B;y=c[a+444>>2]|0;h=a+276|0;if((c[h>>2]|0)!=0?(j=y+36|0,(c[j>>2]|0)==0):0){w=y+16|0;x=c[a+440>>2]|0;v=x+24|0;c[v>>2]=(c[v>>2]|0)+((c[w>>2]|0)/8|0);c[w>>2]=0;if(Nc[c[x+8>>2]&127](a)|0){f=a+328|0;if((c[f>>2]|0)>0){g=0;do{c[y+20+(g<<2)>>2]=0;g=g+1|0}while((g|0)<(c[f>>2]|0))}c[j>>2]=c[h>>2];if(!(c[a+416>>2]|0)){c[y+8>>2]=0;m=8}else m=8}else f=0}else m=8;a:do if((m|0)==8){if(!(c[y+8>>2]|0)){c[z+16>>2]=a;t=a+24|0;v=c[t>>2]|0;c[z>>2]=c[v>>2];u=z+4|0;c[u>>2]=c[v+4>>2];v=y+12|0;f=c[v>>2]|0;w=y+16|0;g=c[w>>2]|0;x=y+20|0;c[A>>2]=c[x>>2];c[A+4>>2]=c[x+4>>2];c[A+8>>2]=c[x+8>>2];c[A+12>>2]=c[x+12>>2];q=a+356|0;r=z+8|0;s=z+12|0;if((c[q>>2]|0)>0){p=0;do{n=c[e+(p<<2)>>2]|0;k=c[y+72+(p<<2)>>2]|0;o=c[y+112+(p<<2)>>2]|0;if((g|0)<8){if(!(Wo(z,f,g,0)|0)){f=0;break a}f=c[r>>2]|0;g=c[s>>2]|0;if((g|0)<8){h=1;m=15}else m=13}else m=13;if((m|0)==13){m=0;j=f>>g+-8&255;h=c[k+144+(j<<2)>>2]|0;if(!h){h=9;m=15}else{g=g-h|0;h=d[k+1168+j>>0]|0}}if((m|0)==15){h=Xo(z,f,g,k,h)|0;if((h|0)<0){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}if(h){if((g|0)<(h|0)){if(!(Wo(z,f,g,h)|0)){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}g=g-h|0;j=f>>g&(1<>2]|0))h=(c[5756+(h<<2)>>2]|0)+j|0;else h=j}else h=0;if(c[y+152+(p<<2)>>2]|0){l=A+(c[a+360+(p<<2)>>2]<<2)|0;m=(c[l>>2]|0)+h|0;c[l>>2]=m;b[n>>1]=m}b:do if(!(c[y+192+(p<<2)>>2]|0)){k=1;do{if((g|0)<8){if(!(Wo(z,f,g,0)|0)){f=0;break a}f=c[r>>2]|0;g=c[s>>2]|0;if((g|0)<8){h=1;m=48}else m=46}else m=46;if((m|0)==46){m=0;j=f>>g+-8&255;h=c[o+144+(j<<2)>>2]|0;if(!h){h=9;m=48}else{g=g-h|0;h=d[o+1168+j>>0]|0}}if((m|0)==48){h=Xo(z,f,g,o,h)|0;if((h|0)<0){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}j=h>>4;h=h&15;if(!h)if((j|0)==15)j=15;else break b;else{if((g|0)<(h|0)){if(!(Wo(z,f,g,h)|0)){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}g=g-h|0}k=k+1+j|0}while((k|0)<64)}else{l=1;do{if((g|0)<8){if(!(Wo(z,f,g,0)|0)){f=0;break a}f=c[r>>2]|0;g=c[s>>2]|0;if((g|0)<8){h=1;m=31}else m=29}else m=29;if((m|0)==29){m=0;j=f>>g+-8&255;h=c[o+144+(j<<2)>>2]|0;if(!h){h=9;m=31}else{g=g-h|0;h=d[o+1168+j>>0]|0}}if((m|0)==31){h=Xo(z,f,g,o,h)|0;if((h|0)<0){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}j=h>>4;k=h&15;if(!k){if((j|0)!=15)break b;h=l+15|0}else{h=j+l|0;if((g|0)<(k|0)){if(!(Wo(z,f,g,k)|0)){f=0;break a}g=c[s>>2]|0;f=c[r>>2]|0}g=g-k|0;j=f>>g&(1<>2]|0))j=(c[5756+(k<<2)>>2]|0)+j|0;b[n+(c[5344+(h<<2)>>2]<<1)>>1]=j}l=h+1|0}while((l|0)<64)}while(0);p=p+1|0}while((p|0)<(c[q>>2]|0))}a=c[t>>2]|0;c[a>>2]=c[z>>2];c[a+4>>2]=c[u>>2];c[v>>2]=f;c[w>>2]=g;c[x>>2]=c[A>>2];c[x+4>>2]=c[A+4>>2];c[x+8>>2]=c[A+8>>2];c[x+12>>2]=c[A+12>>2]}f=y+36|0;c[f>>2]=(c[f>>2]|0)+-1;f=1}while(0);i=B;return f|0}function Zp(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=a+436|0;f=c[r>>2]|0;d=f+20|0;a:do if(!(c[d>>2]|0)){e=a+440|0;b=Nc[c[(c[e>>2]|0)+4>>2]&127](a)|0;switch(b|0){case 1:break;case 2:{c[d>>2]=1;if(!(c[f+24>>2]|0)){d=a+152|0;b=c[a+144>>2]|0;if((c[d>>2]|0)<=(b|0)){b=2;break a}c[d>>2]=b;b=2;break a}else{if(!(c[(c[e>>2]|0)+16>>2]|0)){b=2;break a}b=c[a>>2]|0;c[b+20>>2]=59;Kc[c[b>>2]&255](a);b=2;break a}}default:break a}q=f+24|0;if(!(c[q>>2]|0)){if(!(c[f+16>>2]|0)){r=c[a>>2]|0;c[r+20>>2]=35;Kc[c[r>>2]&255](a)}$p(a);b=1;break}o=a+32|0;if(!((c[o>>2]|0)<=65500?(c[a+28>>2]|0)<=65500:0)){n=c[a>>2]|0;c[n+20>>2]=41;c[n+24>>2]=65500;Kc[c[n>>2]&255](a)}b=c[a+212>>2]|0;if((b|0)!=8){n=c[a>>2]|0;c[n+20>>2]=15;c[n+24>>2]=b;Kc[c[n>>2]&255](a)}n=a+36|0;b=c[n>>2]|0;if((b|0)>10){j=c[a>>2]|0;c[j+20>>2]=26;c[j+24>>2]=b;c[j+28>>2]=10;Kc[c[j>>2]&255](a);j=a}else j=a;l=a+308|0;c[l>>2]=1;m=a+312|0;c[m>>2]=1;k=a+216|0;b=c[n>>2]|0;if((b|0)>0){g=1;e=1;h=0;i=c[k>>2]|0;while(1){b=i+8|0;d=c[b>>2]|0;f=i+12|0;if((d+-1|0)>>>0<=3?(p=c[f>>2]|0,(p+-1|0)>>>0<=3):0)b=p;else{g=c[a>>2]|0;c[g+20>>2]=18;Kc[c[g>>2]&255](j);g=c[l>>2]|0;d=c[b>>2]|0;e=c[m>>2]|0;b=c[f>>2]|0}g=(g|0)>(d|0)?g:d;c[l>>2]=g;e=(e|0)>(b|0)?e:b;c[m>>2]=e;h=h+1|0;b=c[n>>2]|0;if((h|0)>=(b|0))break;else i=i+84|0}}c[a+316>>2]=8;e=a+28|0;if((b|0)>0){d=0;b=c[k>>2]|0;while(1){c[b+36>>2]=8;k=b+8|0;p=$(c[k>>2]|0,c[e>>2]|0)|0;c[b+28>>2]=qp(p,c[l>>2]<<3)|0;p=b+12|0;j=$(c[p>>2]|0,c[o>>2]|0)|0;c[b+32>>2]=qp(j,c[m>>2]<<3)|0;k=$(c[k>>2]|0,c[e>>2]|0)|0;c[b+40>>2]=qp(k,c[l>>2]|0)|0;p=$(c[p>>2]|0,c[o>>2]|0)|0;c[b+44>>2]=qp(p,c[m>>2]|0)|0;c[b+48>>2]=1;c[b+76>>2]=0;d=d+1|0;if((d|0)>=(c[n>>2]|0))break;else b=b+84|0}}c[a+320>>2]=qp(c[o>>2]|0,c[m>>2]<<3)|0;if((c[a+328>>2]|0)>=(c[n>>2]|0)?(c[a+220>>2]|0)==0:0)c[(c[r>>2]|0)+16>>2]=0;else c[(c[r>>2]|0)+16>>2]=1;c[q>>2]=0;b=1}else b=2;while(0);return b|0}function _p(a){a=a|0;var b=0;b=c[a+436>>2]|0;c[b>>2]=69;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;Kc[c[(c[a>>2]|0)+16>>2]&255](a);Kc[c[c[a+440>>2]>>2]&255](a);c[a+160>>2]=0;return}function $p(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=a+328|0;b=c[i>>2]|0;if((b|0)!=1){if((b+-1|0)>>>0>3){e=c[a>>2]|0;c[e+20>>2]=26;c[e+24>>2]=b;c[e+28>>2]=4;Kc[c[e>>2]&255](a);e=a}else e=a;c[a+348>>2]=qp(c[a+28>>2]|0,c[a+308>>2]<<3)|0;c[a+352>>2]=qp(c[a+32>>2]|0,c[a+312>>2]<<3)|0;f=a+356|0;c[f>>2]=0;b=c[i>>2]|0;if((b|0)>0){d=0;do{h=c[a+332+(d<<2)>>2]|0;k=c[h+8>>2]|0;c[h+52>>2]=k;j=c[h+12>>2]|0;c[h+56>>2]=j;b=$(j,k)|0;c[h+60>>2]=b;c[h+64>>2]=$(c[h+36>>2]|0,k)|0;g=((c[h+28>>2]|0)>>>0)%(k>>>0)|0;c[h+68>>2]=(g|0)==0?k:g;g=((c[h+32>>2]|0)>>>0)%(j>>>0)|0;c[h+72>>2]=(g|0)==0?j:g;if(((c[f>>2]|0)+b|0)>10){k=c[a>>2]|0;c[k+20>>2]=13;Kc[c[k>>2]&255](e)}if((b|0)>0)while(1){k=c[f>>2]|0;c[f>>2]=k+1;c[a+360+(k<<2)>>2]=d;if((b|0)>1)b=b+-1|0;else break}d=d+1|0;b=c[i>>2]|0}while((d|0)<(b|0));h=a}else h=a}else{h=c[a+332>>2]|0;c[a+348>>2]=c[h+28>>2];b=c[h+32>>2]|0;c[a+352>>2]=b;c[h+52>>2]=1;c[h+56>>2]=1;c[h+60>>2]=1;c[h+64>>2]=c[h+36>>2];c[h+68>>2]=1;k=c[h+12>>2]|0;b=(b>>>0)%(k>>>0)|0;c[h+72>>2]=(b|0)==0?k:b;c[a+356>>2]=1;c[a+360>>2]=0;h=a;b=1}g=a+4|0;if((b|0)>0){f=0;do{d=c[a+332+(f<<2)>>2]|0;e=d+76|0;if(!(c[e>>2]|0)){d=c[d+16>>2]|0;b=a+164+(d<<2)|0;if(!(d>>>0<=3?(c[b>>2]|0)!=0:0)){k=c[h>>2]|0;c[k+20>>2]=52;c[k+24>>2]=d;Kc[c[k>>2]&255](a)}k=Pc[c[c[g>>2]>>2]&63](a,1,132)|0;gH(k|0,c[b>>2]|0,132)|0;c[e>>2]=k;b=c[i>>2]|0}f=f+1|0}while((f|0)<(b|0))}Kc[c[c[a+444>>2]>>2]&255](a);k=a+428|0;Kc[c[c[k>>2]>>2]&255](a);c[c[a+436>>2]>>2]=c[(c[k>>2]|0)+4>>2];return}function aq(a){a=a|0;c[c[a+436>>2]>>2]=69;return}function bq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[a+424>>2]|0;switch(b|0){case 0:{b=r+4|0;if(!(c[(c[a+452>>2]|0)+8>>2]|0))c[b>>2]=18;else{c[b>>2]=17;p=c[a+316>>2]|0;k=c[a+36>>2]|0;l=r+56|0;m=r+60|0;n=p+2|0;o=p+-2|0;if((k|0)>0){q=0;j=c[a+216>>2]|0;while(1){h=($(c[j+36>>2]|0,c[j+12>>2]|0)|0)/(p|0)|0;i=c[(c[l>>2]|0)+(q<<2)>>2]|0;f=c[(c[m>>2]|0)+(q<<2)>>2]|0;g=c[r+8+(q<<2)>>2]|0;b=$(h,n)|0;if((b|0)>0){a=0;do{e=c[g+(a<<2)>>2]|0;c[f+(a<<2)>>2]=e;c[i+(a<<2)>>2]=e;a=a+1|0}while((a|0)<(b|0))}b=h<<1;a=$(h,p)|0;d=$(h,o)|0;if((h|0)>0){e=0;do{s=e+a|0;t=e+d|0;c[f+(t<<2)>>2]=c[g+(s<<2)>>2];c[f+(s<<2)>>2]=c[g+(t<<2)>>2];e=e+1|0}while((e|0)<(b|0))}if((h|0)>0){b=0;do{c[i+(b-h<<2)>>2]=c[i>>2];b=b+1|0}while((b|0)<(h|0))}q=q+1|0;if((q|0)>=(k|0))break;else j=j+84|0}}c[r+64>>2]=0;c[r+68>>2]=0;c[r+76>>2]=0}c[r+48>>2]=0;c[r+52>>2]=0;break}case 2:{c[r+4>>2]=19;break}default:{t=c[a>>2]|0;c[t+20>>2]=4;Kc[c[t>>2]&255](a)}}return}function cq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=c[b+24>>2]|0;k=j+4|0;i=j+12|0;l=b+440|0;d=c[k>>2]|0;e=c[j>>2]|0;a:while(1){if(!d){if(!(Nc[c[i>>2]&127](b)|0)){d=0;break}f=c[j>>2]|0;d=c[k>>2]|0}else f=e;d=d+-1|0;e=f+1|0;if((a[f>>0]|0)!=-1)do{h=(c[l>>2]|0)+24|0;c[h>>2]=(c[h>>2]|0)+1;c[j>>2]=e;c[k>>2]=d;if(!d){if(!(Nc[c[i>>2]&127](b)|0)){d=0;break a}f=c[j>>2]|0;d=c[k>>2]|0}else f=e;d=d+-1|0;e=f+1|0}while((a[f>>0]|0)!=-1);while(1){if(!d){if(!(Nc[c[i>>2]&127](b)|0)){d=0;break a}d=c[k>>2]|0;f=c[j>>2]|0}else f=e;d=d+-1|0;e=f+1|0;f=a[f>>0]|0;if(f<<24>>24!=-1){h=f;break}}g=(c[l>>2]|0)+24|0;f=c[g>>2]|0;if(h<<24>>24){g=d;d=h;m=16;break}c[g>>2]=f+2;c[j>>2]=e;c[k>>2]=d}if((m|0)==16){d=d&255;if(f){m=c[b>>2]|0;c[m+20>>2]=116;c[m+24>>2]=f;c[m+28>>2]=d;Lc[c[m+4>>2]&63](b,-1);c[(c[l>>2]|0)+24>>2]=0}c[b+416>>2]=d;c[j>>2]=e;c[k>>2]=g;d=1}return d|0}function dq(a){a=a|0;var b=0;b=c[a+440>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+416>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;c[b+164>>2]=0;return}function eq(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Z=i;i=i+288|0;U=Z+256|0;V=Z;X=f+416|0;Y=f+440|0;C=f+24|0;N=f+276|0;O=f+40|0;P=f+300|0;Q=f+280|0;R=f+284|0;S=f+285|0;T=f+286|0;s=f+288|0;t=f+290|0;u=f+292|0;v=f+296|0;w=U+1|0;x=U+2|0;y=U+3|0;z=U+4|0;A=U+5|0;B=U+6|0;D=U+7|0;E=U+8|0;F=U+9|0;G=U+10|0;H=U+11|0;I=U+12|0;J=U+13|0;K=U+14|0;L=U+15|0;M=U+16|0;g=c[X>>2]|0;a:while(1){do if(!g){if(c[(c[Y>>2]|0)+12>>2]|0){if(!(cq(f)|0)){g=0;break a}g=c[X>>2]|0;break}m=c[C>>2]|0;n=m+4|0;g=c[n>>2]|0;if(!g){if(!(Nc[c[m+12>>2]&127](f)|0)){g=0;break a}g=c[n>>2]|0}k=c[m>>2]|0;g=g+-1|0;h=k+1|0;k=a[k>>0]|0;l=k&255;if(!g){if(!(Nc[c[m+12>>2]&127](f)|0)){g=0;break a}j=c[n>>2]|0;h=c[m>>2]|0}else j=g;r=a[h>>0]|0;g=r&255;if(k<<24>>24!=-1|r<<24>>24!=-40){r=c[f>>2]|0;c[r+20>>2]=53;c[r+24>>2]=l;c[r+28>>2]=g;Kc[c[r>>2]&255](f)}c[X>>2]=g;c[m>>2]=h+1;c[n>>2]=j+-1}while(0);do switch(g|0){case 218:{W=25;break a}case 217:{W=60;break a}case 216:{r=c[f>>2]|0;c[r+20>>2]=102;Lc[c[r+4>>2]&63](f,1);if(!(c[(c[Y>>2]|0)+12>>2]|0))g=0;else{g=c[f>>2]|0;c[g+20>>2]=61;Kc[c[g>>2]&255](f);g=0}do{a[f+228+g>>0]=0;a[f+244+g>>0]=1;a[f+260+g>>0]=5;g=g+1|0}while((g|0)!=16);c[N>>2]=0;c[O>>2]=0;c[P>>2]=0;c[Q>>2]=0;a[R>>0]=1;a[S>>0]=1;a[T>>0]=0;b[s>>1]=1;b[t>>1]=1;c[u>>2]=0;a[v>>0]=0;c[(c[Y>>2]|0)+12>>2]=1;break}case 193:case 192:{if(!(yr(f,0,0)|0)){g=0;break a}break}case 194:{if(!(yr(f,1,0)|0)){g=0;break a}break}case 201:{if(!(yr(f,0,1)|0)){g=0;break a}break}case 202:{if(!(yr(f,1,1)|0)){g=0;break a}break}case 207:case 206:case 205:case 203:case 200:case 199:case 198:case 197:case 195:{r=c[f>>2]|0;c[r+20>>2]=60;c[r+24>>2]=g;Kc[c[r>>2]&255](f);break}case 204:{if(!(gq(f)|0)){g=0;break a}break}case 196:{p=c[C>>2]|0;q=p+4|0;g=c[q>>2]|0;if(!g){if(!(Nc[c[p+12>>2]&127](f)|0)){W=92;break a}g=c[q>>2]|0}j=c[p>>2]|0;h=g+-1|0;m=(d[j>>0]|0)<<8;if(!h){g=p+12|0;if(!(Nc[c[g>>2]&127](f)|0)){W=92;break a}h=c[q>>2]|0;l=c[p>>2]|0}else{g=p+12|0;l=j+1|0}k=h+-1|0;j=l+1|0;h=(d[l>>0]|0|m)+-2|0;if((h|0)>16)while(1){if(!k){if(!(Nc[c[g>>2]&127](f)|0)){W=92;break a}k=c[q>>2]|0;j=c[p>>2]|0}o=d[j>>0]|0;l=c[f>>2]|0;c[l+20>>2]=80;c[l+24>>2]=o;Lc[c[l+4>>2]&63](f,1);a[U>>0]=0;k=k+-1|0;l=0;m=1;j=j+1|0;do{if(!k){if(!(Nc[c[g>>2]&127](f)|0)){W=92;break a}k=c[q>>2]|0;j=c[p>>2]|0}r=a[j>>0]|0;a[U+m>>0]=r;l=(r&255)+l|0;m=m+1|0;k=k+-1|0;j=j+1|0}while((m|0)<17);n=h+-17|0;r=c[f>>2]|0;c[r+24>>2]=d[w>>0];c[r+28>>2]=d[x>>0];c[r+32>>2]=d[y>>0];c[r+36>>2]=d[z>>0];c[r+40>>2]=d[A>>0];c[r+44>>2]=d[B>>0];c[r+48>>2]=d[D>>0];c[r+52>>2]=d[E>>0];c[r+20>>2]=86;Lc[c[r+4>>2]&63](f,2);r=c[f>>2]|0;c[r+24>>2]=d[F>>0];c[r+28>>2]=d[G>>0];c[r+32>>2]=d[H>>0];c[r+36>>2]=d[I>>0];c[r+40>>2]=d[J>>0];c[r+44>>2]=d[K>>0];c[r+48>>2]=d[L>>0];c[r+52>>2]=d[M>>0];c[r+20>>2]=86;Lc[c[r+4>>2]&63](f,2);if((l|0)>256|(n|0)<(l|0)){r=c[f>>2]|0;c[r+20>>2]=8;Kc[c[r>>2]&255](f)}if((l|0)>0){m=0;do{if(!k){if(!(Nc[c[g>>2]&127](f)|0)){W=92;break a}k=c[q>>2]|0;h=c[p>>2]|0}else h=j;k=k+-1|0;j=h+1|0;a[V+m>>0]=a[h>>0]|0;m=m+1|0}while((m|0)<(l|0))}h=n-l|0;n=(o&16|0)==0;r=o+-16|0;l=n?o:r;o=n?f+180+(o<<2)|0:f+196+(r<<2)|0;if(l>>>0>3){r=c[f>>2]|0;c[r+20>>2]=30;c[r+24>>2]=l;Kc[c[r>>2]&255](f)}l=c[o>>2]|0;if(!l){l=Jo(f)|0;c[o>>2]=l}m=U;n=l+17|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));gH((c[o>>2]|0)+17|0,V|0,256)|0;if((h|0)<=16){g=j;break}}else g=j;if(h){r=c[f>>2]|0;c[r+20>>2]=11;Kc[c[r>>2]&255](f)}c[p>>2]=g;c[q>>2]=k;break}case 219:{q=c[C>>2]|0;r=q+4|0;g=c[r>>2]|0;if(!g){if(!(Nc[c[q+12>>2]&127](f)|0)){g=0;break a}g=c[r>>2]|0}j=c[q>>2]|0;h=g+-1|0;m=(d[j>>0]|0)<<8;if(!h){g=q+12|0;if(!(Nc[c[g>>2]&127](f)|0)){g=0;break a}h=c[r>>2]|0;l=c[q>>2]|0}else{g=q+12|0;l=j+1|0}k=h+-1|0;j=l+1|0;p=d[l>>0]|0|m;h=p+-2|0;if(p>>>0>2)while(1){if(!k){if(!(Nc[c[g>>2]&127](f)|0)){g=0;break a}k=c[r>>2]|0;j=c[q>>2]|0}l=d[j>>0]|0;n=l>>>4;l=l&15;p=c[f>>2]|0;c[p+20>>2]=81;c[p+24>>2]=l;c[p+28>>2]=n;Lc[c[p+4>>2]&63](f,1);if(l>>>0>3){p=c[f>>2]|0;c[p+20>>2]=31;c[p+24>>2]=l;Kc[c[p>>2]&255](f)}l=f+164+(l<<2)|0;m=c[l>>2]|0;if(!m){m=Io(f)|0;c[l>>2]=m}p=(n|0)==0;k=k+-1|0;o=0;j=j+1|0;do{l=(k|0)==0;if(p){if(l){if(!(Nc[c[g>>2]&127](f)|0)){g=0;break a}k=c[r>>2]|0;j=c[q>>2]|0}n=j;j=d[j>>0]|0}else{if(l){if(!(Nc[c[g>>2]&127](f)|0)){g=0;break a}k=c[r>>2]|0;j=c[q>>2]|0}k=k+-1|0;l=j+1|0;j=(d[j>>0]|0)<<8;if(!k){if(!(Nc[c[g>>2]&127](f)|0)){g=0;break a}k=c[r>>2]|0;l=c[q>>2]|0}n=l;j=d[l>>0]|0|j}b[m+(c[5344+(o<<2)>>2]<<1)>>1]=j;o=o+1|0;k=k+-1|0;j=n+1|0}while((o|0)<64);if((c[(c[f>>2]|0)+104>>2]|0)>1){l=0;do{o=c[f>>2]|0;c[o+24>>2]=e[m+(l<<1)>>1];c[o+28>>2]=e[m+((l|1)<<1)>>1];c[o+32>>2]=e[m+((l|2)<<1)>>1];c[o+36>>2]=e[m+((l|3)<<1)>>1];c[o+40>>2]=e[m+((l|4)<<1)>>1];c[o+44>>2]=e[m+((l|5)<<1)>>1];c[o+48>>2]=e[m+((l|6)<<1)>>1];c[o+52>>2]=e[m+((l|7)<<1)>>1];c[o+20>>2]=93;Lc[c[o+4>>2]&63](f,2);l=l+8|0}while((l|0)<64)}h=(p?-65:-129)+h|0;if((h|0)<=0){g=j;break}}else g=j;if(h){p=c[f>>2]|0;c[p+20>>2]=11;Kc[c[p>>2]&255](f)}c[q>>2]=g;c[r>>2]=k;break}case 221:{l=c[C>>2]|0;m=l+4|0;g=c[m>>2]|0;if(!g){if(!(Nc[c[l+12>>2]&127](f)|0)){g=0;break a}g=c[m>>2]|0}k=c[l>>2]|0;g=g+-1|0;h=k+1|0;k=(d[k>>0]|0)<<8;if(!g){if(!(Nc[c[l+12>>2]&127](f)|0)){g=0;break a}g=c[m>>2]|0;h=c[l>>2]|0}g=g+-1|0;j=h+1|0;if((d[h>>0]|0|k|0)!=4){r=c[f>>2]|0;c[r+20>>2]=11;Kc[c[r>>2]&255](f)}if(!g){if(!(Nc[c[l+12>>2]&127](f)|0)){g=0;break a}g=c[m>>2]|0;j=c[l>>2]|0}h=g+-1|0;g=j+1|0;j=(d[j>>0]|0)<<8;if(!h){if(!(Nc[c[l+12>>2]&127](f)|0)){g=0;break a}h=c[m>>2]|0;g=c[l>>2]|0}r=d[g>>0]|0|j;q=c[f>>2]|0;c[q+20>>2]=82;c[q+24>>2]=r;Lc[c[q+4>>2]&63](f,1);c[N>>2]=r;c[l>>2]=g+1;c[m>>2]=h+-1;break}case 239:case 238:case 237:case 236:case 235:case 234:case 233:case 232:case 231:case 230:case 229:case 228:case 227:case 226:case 225:case 224:{if(!(Nc[c[(c[Y>>2]|0)+32+(g+-224<<2)>>2]&127](f)|0)){g=0;break a}break}case 254:{if(!(Nc[c[(c[Y>>2]|0)+28>>2]&127](f)|0)){g=0;break a}break}case 1:case 215:case 214:case 213:case 212:case 211:case 210:case 209:case 208:{r=c[f>>2]|0;c[r+20>>2]=92;c[r+24>>2]=g;Lc[c[r+4>>2]&63](f,1);break}case 220:{if(!(gq(f)|0)){g=0;break a}break}default:{r=c[f>>2]|0;c[r+20>>2]=68;c[r+24>>2]=g;Kc[c[r>>2]&255](f)}}while(0);c[X>>2]=0;g=0}b:do if((W|0)==25){u=c[C>>2]|0;h=c[u>>2]|0;t=u+4|0;g=c[t>>2]|0;if(!(c[(c[Y>>2]|0)+16>>2]|0)){V=c[f>>2]|0;c[V+20>>2]=62;Kc[c[V>>2]&255](f)}if(!g){if(!(Nc[c[u+12>>2]&127](f)|0)){g=0;break}g=c[t>>2]|0;h=c[u>>2]|0}g=g+-1|0;j=h+1|0;k=(d[h>>0]|0)<<8;if(!g){if(!(Nc[c[u+12>>2]&127](f)|0)){g=0;break}g=c[t>>2]|0;j=c[u>>2]|0}g=g+-1|0;h=j+1|0;j=d[j>>0]|0|k;if(!g){if(!(Nc[c[u+12>>2]&127](f)|0)){g=0;break}g=c[t>>2]|0;h=c[u>>2]|0}k=a[h>>0]|0;r=k&255;V=c[f>>2]|0;c[V+20>>2]=103;c[V+24>>2]=r;Lc[c[V+4>>2]&63](f,1);if((k+-1&255)>3|(j|0)!=((r<<1)+6|0)){V=c[f>>2]|0;c[V+20>>2]=11;Kc[c[V>>2]&255](f)}c[f+328>>2]=r;s=u+12|0;p=f+216|0;q=f+36|0;g=g+-1|0;h=h+1|0;j=(g|0)==0;if(k<<24>>24){o=0;do{if(j){if(!(Nc[c[s>>2]&127](f)|0)){g=0;break b}g=c[t>>2]|0;h=c[u>>2]|0}g=g+-1|0;j=h+1|0;n=d[h>>0]|0;if(!g){if(!(Nc[c[s>>2]&127](f)|0)){g=0;break b}g=c[t>>2]|0;j=c[u>>2]|0}m=d[j>>0]|0;h=c[p>>2]|0;k=c[q>>2]|0;c:do if((k|0)>0){l=0;while(1){if((n|0)==(c[h>>2]|0))break c;l=l+1|0;h=h+84|0;if((l|0)>=(k|0)){W=48;break}}}else W=48;while(0);if((W|0)==48){W=0;V=c[f>>2]|0;c[V+20>>2]=5;c[V+24>>2]=n;Kc[c[V>>2]&255](f)}c[f+332+(o<<2)>>2]=h;U=h+20|0;c[U>>2]=m>>>4;V=h+24|0;c[V>>2]=m&15;h=c[f>>2]|0;c[h+24>>2]=n;c[h+28>>2]=c[U>>2];c[h+32>>2]=c[V>>2];c[h+20>>2]=104;Lc[c[h+4>>2]&63](f,1);o=o+1|0;g=g+-1|0;h=j+1|0;j=(g|0)==0}while((o|0)<(r|0))}if(j){if(!(Nc[c[s>>2]&127](f)|0)){g=0;break}g=c[t>>2]|0;h=c[u>>2]|0}g=g+-1|0;j=h+1|0;l=f+400|0;c[l>>2]=d[h>>0];if(!g){if(!(Nc[c[s>>2]&127](f)|0)){g=0;break}g=c[t>>2]|0;j=c[u>>2]|0}h=g+-1|0;g=j+1|0;k=f+404|0;c[k>>2]=d[j>>0];if(!h){if(!(Nc[c[s>>2]&127](f)|0)){g=0;break}h=c[t>>2]|0;g=c[u>>2]|0}W=d[g>>0]|0;U=f+408|0;c[U>>2]=W>>>4;V=f+412|0;c[V>>2]=W&15;W=c[f>>2]|0;c[W+24>>2]=c[l>>2];c[W+28>>2]=c[k>>2];c[W+32>>2]=c[U>>2];c[W+36>>2]=c[V>>2];c[W+20>>2]=105;Lc[c[W+4>>2]&63](f,1);c[(c[Y>>2]|0)+20>>2]=0;f=f+144|0;c[f>>2]=(c[f>>2]|0)+1;c[u>>2]=g+1;c[t>>2]=h+-1;c[X>>2]=0;g=1}else if((W|0)==60){g=c[f>>2]|0;c[g+20>>2]=85;Lc[c[g+4>>2]&63](f,1);c[X>>2]=0;g=2}else if((W|0)==92)g=0;while(0);i=Z;return g|0}function fq(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+416|0;b=c[f>>2]|0;if(!b)if(!(cq(a)|0))b=0;else{b=c[f>>2]|0;d=4}else d=4;do if((d|0)==4){d=a+440|0;e=c[(c[d>>2]|0)+20>>2]|0;if((b|0)!=(e+208|0)){if(!(Uc[c[(c[a+24>>2]|0)+20>>2]&63](a,e)|0)){b=0;break}}else{b=c[a>>2]|0;c[b+20>>2]=98;c[b+24>>2]=e;Lc[c[b+4>>2]&63](a,3);c[f>>2]=0}b=(c[d>>2]|0)+20|0;c[b>>2]=(c[b>>2]|0)+1&7;b=1}while(0);return b|0}function gq(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+24|0;i=c[h>>2]|0;j=i+4|0;b=c[j>>2]|0;if(!b)if(!(Nc[c[i+12>>2]&127](a)|0))b=0;else{b=c[j>>2]|0;e=4}else e=4;do if((e|0)==4){g=c[i>>2]|0;b=b+-1|0;e=g+1|0;g=(d[g>>0]|0)<<8;if(!b){if(!(Nc[c[i+12>>2]&127](a)|0)){b=0;break}b=c[j>>2]|0;f=c[i>>2]|0}else f=e;g=d[f>>0]|0|g;e=g+-2|0;k=c[a>>2]|0;c[k+20>>2]=91;c[k+24>>2]=c[a+416>>2];c[k+28>>2]=e;Lc[c[k+4>>2]&63](a,1);c[i>>2]=f+1;c[j>>2]=b+-1;if(g>>>0>2){Lc[c[(c[h>>2]|0)+16>>2]&63](a,e);b=1}else b=1}while(0);return b|0}function hq(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;o=p;l=b+24|0;m=c[l>>2]|0;n=m+4|0;e=c[n>>2]|0;if(!e)if(!(Nc[c[m+12>>2]&127](b)|0))e=0;else{e=c[n>>2]|0;f=4}else f=4;a:do if((f|0)==4){g=c[m>>2]|0;f=e+-1|0;h=(d[g>>0]|0)<<8;if(!f){e=m+12|0;if(!(Nc[c[e>>2]&127](b)|0)){e=0;break}f=c[n>>2]|0;g=c[m>>2]|0}else{e=m+12|0;g=g+1|0}k=d[g>>0]|0|h;j=k+-2|0;k=(j|0)>13?14:k>>>0>2?j:0;f=f+-1|0;g=g+1|0;if(!k)h=f;else{h=0;while(1){if(!f){if(!(Nc[c[e>>2]&127](b)|0)){e=0;break a}f=c[n>>2]|0;g=c[m>>2]|0}a[o+h>>0]=a[g>>0]|0;h=h+1|0;f=f+-1|0;g=g+1|0;if(h>>>0>=k>>>0){h=f;break}}}e=j-k|0;f=c[b+416>>2]|0;switch(f|0){case 224:{wr(b,o,k,e);break}case 238:{xr(b,o,k,e);break}default:{o=c[b>>2]|0;c[o+20>>2]=68;c[o+24>>2]=f;Kc[c[o>>2]&255](b)}}c[m>>2]=g;c[n>>2]=h;if((e|0)>0){Lc[c[(c[l>>2]|0)+16>>2]&63](b,e);e=1}else e=1}while(0);i=p;return e|0}function iq(a){a=a|0;var b=0,d=0;if((((((((((((((c[a+76>>2]|0)==0?(c[a+300>>2]|0)==0:0)?(c[a+40>>2]|0)==3:0)?(c[a+36>>2]|0)==3:0)?(c[a+44>>2]|0)==2:0)?(c[a+120>>2]|0)==3:0)?(b=c[a+216>>2]|0,(c[b+8>>2]|0)==2):0)?(c[b+92>>2]|0)==1:0)?(c[b+176>>2]|0)==1:0)?(c[b+12>>2]|0)<=2:0)?(c[b+96>>2]|0)==1:0)?(c[b+180>>2]|0)==1:0)?(d=c[b+36>>2]|0,(d|0)==(c[a+316>>2]|0)):0)?(c[b+120>>2]|0)==(d|0):0)return (c[b+204>>2]|0)==(d|0)|0;return 0}function jq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=c[a+420>>2]|0;e=d+8|0;if(!(c[e>>2]|0)){b=a+84|0;do if((c[b>>2]|0)!=0?(c[a+136>>2]|0)==0:0){if((c[a+92>>2]|0)!=0?(c[a+108>>2]|0)!=0:0){c[a+460>>2]=c[d+24>>2];c[e>>2]=1;break}if(!(c[a+100>>2]|0)){h=c[a>>2]|0;c[h+20>>2]=46;Kc[c[h>>2]&255](a);break}else{c[a+460>>2]=c[d+20>>2];break}}while(0);Kc[c[c[a+448>>2]>>2]&255](a);Kc[c[(c[a+428>>2]|0)+8>>2]&255](a);if(!(c[a+68>>2]|0)){if(!(c[d+16>>2]|0))Kc[c[c[a+456>>2]>>2]&255](a);Kc[c[c[a+452>>2]>>2]&255](a);if(c[b>>2]|0)Lc[c[c[a+460>>2]>>2]&63](a,c[e>>2]|0);Lc[c[c[a+432>>2]>>2]&63](a,(c[e>>2]|0)!=0?3:0);Lc[c[c[a+424>>2]>>2]&63](a,0)}}else{c[e>>2]=0;Lc[c[c[a+460>>2]>>2]&63](a,0);Lc[c[c[a+432>>2]>>2]&63](a,2);Lc[c[c[a+424>>2]>>2]&63](a,2)}b=c[a+8>>2]|0;if(((b|0)!=0?(f=c[d+12>>2]|0,c[b+12>>2]=f,f=((c[e>>2]|0)!=0?2:1)+f|0,g=b+16|0,c[g>>2]=f,(c[a+64>>2]|0)!=0):0)?(c[(c[a+436>>2]|0)+20>>2]|0)==0:0)c[g>>2]=f+((c[a+108>>2]|0)!=0?2:1);return}function kq(a){a=a|0;var b=0;b=c[a+420>>2]|0;if(c[a+84>>2]|0)Kc[c[(c[a+460>>2]|0)+8>>2]&255](a);a=b+12|0;c[a>>2]=(c[a>>2]|0)+1;return}function lq(a){a=a|0;var b=0;b=c[a+452>>2]|0;c[b+36>>2]=0;c[b+44>>2]=c[a+116>>2];return}function mq(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;m=o;k=c[a+452>>2]|0;n=k+36|0;if(!(c[n>>2]|0)){j=k+44|0;e=c[j>>2]|0;e=e>>>0<2?e:2;l=c[g>>2]|0;h=h-l|0;e=e>>>0>h>>>0?h:e;c[m>>2]=c[f+(l<<2)>>2];if(e>>>0>1)c[m+4>>2]=c[f+(l+1<<2)>>2];else{c[m+4>>2]=c[k+32>>2];c[n>>2]=1}ad[c[k+12>>2]&31](a,b,c[d>>2]|0,m)}else{sp(k+32|0,0,f+(c[g>>2]<<2)|0,0,1,c[k+40>>2]|0);c[n>>2]=0;j=k+44|0;e=1}c[g>>2]=(c[g>>2]|0)+e;c[j>>2]=(c[j>>2]|0)-e;if(!(c[n>>2]|0))c[d>>2]=(c[d>>2]|0)+1;i=o;return}function nq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;t=c[b+452>>2]|0;w=c[b+324>>2]|0;x=c[t+16>>2]|0;y=c[t+20>>2]|0;z=c[t+24>>2]|0;t=c[t+28>>2]|0;h=f<<1;v=c[e>>2]|0;u=c[v+(h<<2)>>2]|0;h=c[v+((h|1)<<2)>>2]|0;v=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;f=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;s=c[g>>2]|0;r=c[g+4>>2]|0;i=b+112|0;j=(c[i>>2]|0)>>>1;o=f+j|0;k=j<<1;p=h+k|0;l=j*6|0;q=r+l|0;if(j){m=j;n=u;b=v;e=s;g=r;while(1){A=d[b>>0]|0;C=d[f>>0]|0;D=c[x+(C<<2)>>2]|0;C=(c[z+(C<<2)>>2]|0)+(c[t+(A<<2)>>2]|0)>>16;A=c[y+(A<<2)>>2]|0;B=d[n>>0]|0;a[e>>0]=a[w+(B+D)>>0]|0;a[e+1>>0]=a[w+(B+C)>>0]|0;a[e+2>>0]=a[w+(B+A)>>0]|0;B=d[n+1>>0]|0;a[e+3>>0]=a[w+(B+D)>>0]|0;a[e+4>>0]=a[w+(B+C)>>0]|0;a[e+5>>0]=a[w+(B+A)>>0]|0;B=d[h>>0]|0;a[g>>0]=a[w+(B+D)>>0]|0;a[g+1>>0]=a[w+(B+C)>>0]|0;a[g+2>>0]=a[w+(B+A)>>0]|0;B=d[h+1>>0]|0;a[g+3>>0]=a[w+(B+D)>>0]|0;a[g+4>>0]=a[w+(B+C)>>0]|0;a[g+5>>0]=a[w+(B+A)>>0]|0;m=m+-1|0;if(!m)break;else{n=n+2|0;h=h+2|0;b=b+1|0;f=f+1|0;e=e+6|0;g=g+6|0}}}if(c[i>>2]&1){D=d[v+j>>0]|0;B=d[o>>0]|0;A=c[x+(B<<2)>>2]|0;B=(c[z+(B<<2)>>2]|0)+(c[t+(D<<2)>>2]|0)>>16;D=c[y+(D<<2)>>2]|0;C=d[u+k>>0]|0;a[s+l>>0]=a[w+(C+A)>>0]|0;a[s+(l|1)>>0]=a[w+(C+B)>>0]|0;a[s+(l+2)>>0]=a[w+(C+D)>>0]|0;C=d[p>>0]|0;a[q>>0]=a[w+(C+A)>>0]|0;a[r+(l|1)>>0]=a[w+(C+B)>>0]|0;a[r+(l+2)>>0]=a[w+(C+D)>>0]|0}return}function oq(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ad[c[(c[a+452>>2]|0)+12>>2]&31](a,b,c[d>>2]|0,f+(c[g>>2]<<2)|0);c[g>>2]=(c[g>>2]|0)+1;c[d>>2]=(c[d>>2]|0)+1;return}function pq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;o=c[b+452>>2]|0;r=c[b+324>>2]|0;s=c[o+16>>2]|0;t=c[o+20>>2]|0;u=c[o+24>>2]|0;o=c[o+28>>2]|0;p=c[(c[e>>2]|0)+(f<<2)>>2]|0;q=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;f=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;n=c[g>>2]|0;g=b+112|0;b=(c[g>>2]|0)>>>1;m=f+b|0;h=b<<1;i=b*6|0;if(b){j=b;k=p;l=q;e=n;while(1){v=d[l>>0]|0;x=d[f>>0]|0;y=c[s+(x<<2)>>2]|0;x=(c[u+(x<<2)>>2]|0)+(c[o+(v<<2)>>2]|0)>>16;v=c[t+(v<<2)>>2]|0;w=d[k>>0]|0;a[e>>0]=a[r+(w+y)>>0]|0;a[e+1>>0]=a[r+(w+x)>>0]|0;a[e+2>>0]=a[r+(w+v)>>0]|0;w=d[k+1>>0]|0;a[e+3>>0]=a[r+(w+y)>>0]|0;a[e+4>>0]=a[r+(w+x)>>0]|0;a[e+5>>0]=a[r+(w+v)>>0]|0;j=j+-1|0;if(!j)break;else{k=k+2|0;l=l+1|0;f=f+1|0;e=e+6|0}}}if(c[g>>2]&1){y=d[q+b>>0]|0;v=d[m>>0]|0;w=(c[u+(v<<2)>>2]|0)+(c[o+(y<<2)>>2]|0)>>16;y=c[t+(y<<2)>>2]|0;x=d[p+h>>0]|0;a[n+i>>0]=a[r+(x+(c[s+(v<<2)>>2]|0))>>0]|0;a[n+(i|1)>>0]=a[r+(x+w)>>0]|0;a[n+(i+2)>>0]=a[r+(x+y)>>0]|0}return}function qq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=c[a+444>>2]|0;l=a+400|0;f=c[l>>2]|0;p=(f|0)==0;m=a+404|0;b=c[m>>2]|0;if(p)b=(b|0)!=0&1;else b=(c[a+328>>2]|0)==1?((f|0)>(b|0)|(b|0)>63)&1:1;n=a+408|0;d=c[n>>2]|0;j=a+412|0;e=c[j>>2]|0;if(d)b=(e|0)==(d+-1|0)?b:1;if((b|0)==0&(e|0)<14)h=a;else{h=c[a>>2]|0;c[h+20>>2]=16;c[h+24>>2]=f;c[h+28>>2]=c[m>>2];c[h+32>>2]=c[n>>2];c[h+36>>2]=c[j>>2];Kc[c[h>>2]&255](a);h=a}k=a+328|0;i=a+160|0;d=c[k>>2]|0;if((d|0)>0){g=0;do{e=c[(c[a+332+(g<<2)>>2]|0)+4>>2]|0;f=c[i>>2]|0;if(!p?(c[f+(e<<8)>>2]|0)<0:0){d=c[a>>2]|0;c[d+20>>2]=115;c[d+24>>2]=e;c[d+28>>2]=0;Lc[c[d+4>>2]&63](h,-1)}b=c[l>>2]|0;if((b|0)<=(c[m>>2]|0))while(1){d=f+(e<<8)+(b<<2)|0;q=c[d>>2]|0;if((c[n>>2]|0)!=(((q|0)<0?0:q)|0)){q=c[a>>2]|0;c[q+20>>2]=115;c[q+24>>2]=e;c[q+28>>2]=b;Lc[c[q+4>>2]&63](h,-1)}c[d>>2]=c[j>>2];if((b|0)<(c[m>>2]|0))b=b+1|0;else break}g=g+1|0;d=c[k>>2]|0}while((g|0)<(d|0))}b=o+4|0;do if(!(c[n>>2]|0))if(p){c[b>>2]=25;break}else{c[b>>2]=26;break}else if(p){c[b>>2]=27;break}else{c[b>>2]=28;break}while(0);e=o+60|0;if((d|0)>0){d=0;do{b=c[a+332+(d<<2)>>2]|0;if(p){if(!(c[n>>2]|0)){q=c[b+20>>2]|0;Vo(a,1,q,o+44+(q<<2)|0)}}else{m=c[b+24>>2]|0;q=o+44+(m<<2)|0;Vo(a,0,m,q);c[e>>2]=c[q>>2]}c[o+24+(d<<2)>>2]=0;d=d+1|0}while((d|0)<(c[k>>2]|0))}q=o+8|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[o+40>>2]=c[a+276>>2];return}function rq(a,b){a=a|0;b=b|0;var d=0;d=c[a+432>>2]|0;a:do switch(b|0){case 0:{if(!(c[a+84>>2]|0)){c[d+4>>2]=c[(c[a+452>>2]|0)+4>>2];break a}c[d+4>>2]=4;b=d+12|0;if(!(c[b>>2]|0))c[b>>2]=Oc[c[(c[a+4>>2]|0)+28>>2]&31](a,c[d+8>>2]|0,0,c[d+16>>2]|0,1)|0;break}case 3:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=4;Kc[c[b>>2]&255](a)}c[d+4>>2]=5;break}case 2:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=4;Kc[c[b>>2]&255](a)}c[d+4>>2]=6;break}default:{b=c[a>>2]|0;c[b+20>>2]=4;Kc[c[b>>2]&255](a)}}while(0);c[d+24>>2]=0;c[d+20>>2]=0;return}function sq(a){a=a|0;var b=0;b=c[a+452>>2]|0;c[b+92>>2]=c[a+312>>2];c[b+96>>2]=c[a+116>>2];return}function tq(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;k=c[a+452>>2]|0;l=k+92|0;e=c[l>>2]|0;m=a+312|0;i=c[m>>2]|0;if((e|0)>=(i|0)){e=a+36|0;if((c[e>>2]|0)>0){i=0;j=c[a+216>>2]|0;while(1){n=(c[b+(i<<2)>>2]|0)+(($(c[k+100+(i<<2)>>2]|0,c[d>>2]|0)|0)<<2)|0;ad[c[k+52+(i<<2)>>2]&31](a,j,n,k+12+(i<<2)|0);i=i+1|0;if((i|0)>=(c[e>>2]|0))break;else j=j+84|0}}c[l>>2]=0;i=c[m>>2]|0;e=0}n=i-e|0;b=k+96|0;j=c[b>>2]|0;n=n>>>0>j>>>0?j:n;j=c[g>>2]|0;h=h-j|0;n=n>>>0>h>>>0?h:n;Hc[c[(c[a+456>>2]|0)+4>>2]&31](a,k+12|0,e,f+(j<<2)|0,n);c[g>>2]=(c[g>>2]|0)+n;c[b>>2]=(c[b>>2]|0)-n;n=(c[l>>2]|0)+n|0;c[l>>2]=n;if((n|0)>=(c[m>>2]|0))c[d>>2]=(c[d>>2]|0)+1;return}function uq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=0;return}function vq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=d;return}function wq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=c[g>>2]|0;p=b+312|0;i=e+40|0;if((c[p>>2]|0)>0){o=0;do{m=c[f+(o<<2)>>2]|0;n=c[q+(o<<2)>>2]|0;b=m+1|0;j=a[m>>0]|0;a[n>>0]=j;a[n+1>>0]=((d[b>>0]|0)+2+((j&255)*3|0)|0)>>>2;j=c[i>>2]|0;g=j+-2|0;k=j<<1;if(g){h=n;l=m;e=b;while(1){r=h;h=h+2|0;b=e+1|0;s=(d[e>>0]|0)*3|0;a[h>>0]=((d[l>>0]|0)+1+s|0)>>>2;a[r+3>>0]=(s+2+(d[b>>0]|0)|0)>>>2;g=g+-1|0;if(!g)break;else{l=e;e=b}}}s=a[m+(j+-1)>>0]|0;a[n+(k+-2)>>0]=((d[m+(j+-2)>>0]|0)+1+((s&255)*3|0)|0)>>>2;a[n+(k+-1)>>0]=s;o=o+1|0}while((o|0)<(c[p>>2]|0))}return}function xq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;i=c[f>>2]|0;j=b+312|0;f=b+112|0;if((c[j>>2]|0)>0){h=0;do{d=c[i+(h<<2)>>2]|0;g=c[f>>2]|0;b=d+g|0;if((g|0)>0){g=c[e+(h<<2)>>2]|0;while(1){k=a[g>>0]|0;a[d>>0]=k;a[d+1>>0]=k;d=d+2|0;if(d>>>0>=b>>>0)break;else g=g+1|0}}h=h+1|0}while((h|0)<(c[j>>2]|0))}return}function yq(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=c[g>>2]|0;t=b+312|0;l=e+40|0;if((c[t>>2]|0)>0){p=0;q=0;while(1){n=f+(p<<2)|0;r=q;s=0;while(1){h=c[n>>2]|0;i=c[f+(((s|0)==0?-1:1)+p<<2)>>2]|0;o=c[u+(r<<2)>>2]|0;b=((d[h>>0]|0)*3|0)+(d[i>>0]|0)|0;g=((d[h+1>>0]|0)*3|0)+(d[i+1>>0]|0)|0;a[o>>0]=((b<<2)+8|0)>>>4;a[o+1>>0]=((b*3|0)+7+g|0)>>>4;m=c[l>>2]|0;e=m+-2|0;m=m<<1;if(e){k=o;j=h+2|0;i=i+2|0;while(1){v=k;k=k+2|0;h=((d[j>>0]|0)*3|0)+(d[i>>0]|0)|0;w=g*3|0;a[k>>0]=(b+8+w|0)>>>4;a[v+3>>0]=(w+7+h|0)>>>4;e=e+-1|0;if(!e){b=g;g=h;break}else{b=g;j=j+1|0;i=i+1|0;g=h}}}a[o+(m+-2)>>0]=(b+8+(g*3|0)|0)>>>4;a[o+(m+-1)>>0]=((g<<2)+7|0)>>>4;s=s+1|0;if((s|0)==2)break;else r=r+1|0}q=q+2|0;if((q|0)>=(c[t>>2]|0))break;else p=p+1|0}}return}function zq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=c[f>>2]|0;k=b+312|0;f=b+112|0;if((c[k>>2]|0)>0){h=0;i=0;while(1){d=c[j+(i<<2)>>2]|0;g=c[f>>2]|0;b=d+g|0;if((g|0)>0){g=c[e+(h<<2)>>2]|0;while(1){l=a[g>>0]|0;a[d>>0]=l;a[d+1>>0]=l;d=d+2|0;if(d>>>0>=b>>>0)break;else g=g+1|0}}sp(j,i,j,i|1,1,c[f>>2]|0);i=i+2|0;if((i|0)>=(c[k>>2]|0))break;else h=h+1|0}}return}function Aq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=c[b+452>>2]|0;s=c[f>>2]|0;n=c[d+4>>2]|0;f=a[p+140+n>>0]|0;r=f&255;n=a[p+150+n>>0]|0;p=n&255;q=b+312|0;m=b+112|0;n=(n&255)>1;o=p+-1|0;if((c[q>>2]|0)>0){h=f<<24>>24==0;k=0;l=0;while(1){f=c[s+(l<<2)>>2]|0;j=c[m>>2]|0;i=f+j|0;if((j|0)>0){j=c[e+(k<<2)>>2]|0;while(1){d=a[j>>0]|0;if(!h){b=r;g=f;while(1){a[g>>0]=d;if((b|0)>1){b=b+-1|0;g=g+1|0}else break}}f=f+r|0;if(f>>>0>=i>>>0)break;else j=j+1|0}}if(n)sp(s,l,s,l+1|0,o,c[m>>2]|0);l=l+p|0;if((l|0)>=(c[q>>2]|0))break;else k=k+1|0}}return}function Bq(a){a=a|0;Kc[c[(c[a>>2]|0)+8>>2]&255](a);Ho(a);zb(1)}function Cq(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a>>2]|0;if((b|0)>=0){if((c[d+104>>2]|0)>=(b|0))Kc[c[d+8>>2]&255](a)}else{e=d+108|0;b=c[e>>2]|0;if(!((b|0)!=0?(c[d+104>>2]|0)<=2:0)){Kc[c[d+8>>2]&255](a);b=c[e>>2]|0}c[e>>2]=b+1}return}function Dq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+208|0;d=b;e=b+8|0;Lc[c[(c[a>>2]|0)+12>>2]&63](a,e);a=c[1607]|0;c[d>>2]=e;Rv(a,39311,d)|0;i=b;return}function Eq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;k=i;i=i+48|0;j=k+8|0;h=k;g=c[b>>2]|0;f=c[g+20>>2]|0;if((f|0)>0?(f|0)<=(c[g+116>>2]|0):0){b=(c[g+112>>2]|0)+(f<<2)|0;e=8}else{b=c[g+120>>2]|0;if(((b|0)!=0?(e=c[g+124>>2]|0,(f|0)>=(e|0)):0)?(f|0)<=(c[g+128>>2]|0):0){b=b+(f-e<<2)|0;e=8}else e=9}if((e|0)==8){b=c[b>>2]|0;if(!b)e=9;else f=b}if((e|0)==9){c[g+24>>2]=f;f=c[c[g+112>>2]>>2]|0}e=f;a:while(1){b=e+1|0;switch(a[e>>0]|0){case 0:{e=14;break a}case 37:{e=12;break a}default:e=b}}if((e|0)==12)if((a[b>>0]|0)==115){c[h>>2]=g+24;ew(d,f,h)|0}else e=14;if((e|0)==14){o=c[g+28>>2]|0;n=c[g+32>>2]|0;m=c[g+36>>2]|0;l=c[g+40>>2]|0;b=c[g+44>>2]|0;e=c[g+48>>2]|0;h=c[g+52>>2]|0;c[j>>2]=c[g+24>>2];c[j+4>>2]=o;c[j+8>>2]=n;c[j+12>>2]=m;c[j+16>>2]=l;c[j+20>>2]=b;c[j+24>>2]=e;c[j+28>>2]=h;ew(d,f,j)|0}i=k;return}function Fq(a){a=a|0;a=c[a>>2]|0;c[a+108>>2]=0;c[a+20>>2]=0;return}function Gq(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+460|0;g=c[b>>2]|0;c[a+136>>2]=c[g+16>>2];c[a+132>>2]=c[g+20>>2];a:do switch(c[a+88>>2]|0){case 0:{b=g+4|0;if((c[a+120>>2]|0)==3){c[b>>2]=20;break a}else{c[b>>2]=21;break a}}case 1:{j=a+120|0;c[g+4>>2]=(c[j>>2]|0)==3?22:23;c[g+48>>2]=0;if(!(c[g+28>>2]|0))Jq(a);if((c[g+52>>2]|0)==0?(k=c[b>>2]|0,l=a+4|0,(c[j>>2]|0)>0):0){i=0;do{e=c[k+32+(i<<2)>>2]|0;b:do if((i|0)>0){b=0;while(1){if((e|0)==(c[k+32+(b<<2)>>2]|0))break;b=b+1|0;if((b|0)>=(i|0)){m=13;break b}}b=c[k+52+(b<<2)>>2]|0;if(!b)m=13}else m=13;while(0);if((m|0)==13){m=0;b=Pc[c[c[l>>2]>>2]&63](a,1,1024)|0;f=(e<<9)+-512|0;g=0;do{h=0;do{n=255-((d[39055+(g<<4)+h>>0]|0)<<1)|0;e=n*255|0;if((n|0)<0)e=0-((0-e|0)/(f|0)|0)|0;else e=(e|0)/(f|0)|0;c[b+(g<<6)+(h<<2)>>2]=e;h=h+1|0}while((h|0)!=16);g=g+1|0}while((g|0)!=16)}c[k+52+(i<<2)>>2]=b;i=i+1|0}while((i|0)<(c[j>>2]|0))}break}case 2:{c[g+4>>2]=24;c[g+84>>2]=0;if(!(c[g+68>>2]|0))Kq(a);f=(c[a+112>>2]<<1)+4|0;b=a+120|0;if((c[b>>2]|0)>0){e=0;do{up(c[g+68+(e<<2)>>2]|0,f);e=e+1|0}while((e|0)<(c[b>>2]|0))}break}default:{n=c[a>>2]|0;c[n+20>>2]=48;Kc[c[n>>2]&255](a)}}while(0);return}function Hq(a){a=a|0;return}function Iq(a){a=a|0;var b=0;b=c[a>>2]|0;c[b+20>>2]=46;Kc[c[b>>2]&255](a);return}function Jq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=c[b+460>>2]|0;n=(c[b+88>>2]|0)==1;c[k+28>>2]=n&1;l=b+120|0;m=k+24|0;c[m>>2]=Xc[c[(c[b+4>>2]|0)+8>>2]&15](b,1,n?766:256,c[l>>2]|0)|0;if((c[l>>2]|0)>0){i=c[k+20>>2]|0;j=0;do{b=c[k+32+(j<<2)>>2]|0;i=(i|0)/(b|0)|0;if(n){h=(c[m>>2]|0)+(j<<2)|0;c[h>>2]=(c[h>>2]|0)+255}h=c[(c[m>>2]|0)+(j<<2)>>2]|0;e=b+-1|0;f=e<<1;g=0;d=(b+254|0)/(f|0)|0;b=0;do{if((g|0)>(d|0))do{b=b+1|0;d=(((b<<1|1)*255|0)+e|0)/(f|0)|0}while((g|0)>(d|0));a[h+g>>0]=$(b,i)|0;g=g+1|0}while((g|0)!=256);if(n){b=h+255|0;d=1;do{a[h+(0-d)>>0]=a[h>>0]|0;a[h+(d+255)>>0]=a[b>>0]|0;d=d+1|0}while((d|0)!=256)}j=j+1|0}while((j|0)<(c[l>>2]|0))}return}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=c[a+460>>2]|0;d=(c[a+112>>2]<<1)+4|0;e=a+120|0;f=a+4|0;if((c[e>>2]|0)>0){g=0;do{c[b+68+(g<<2)>>2]=Pc[c[(c[f>>2]|0)+4>>2]&63](a,1,d)|0;g=g+1|0}while((g|0)<(c[e>>2]|0))}return}function Lq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+460>>2]|0;g=c[f+24>>2]|0;e=a+88|0;if(!(c[e>>2]|0))d=0;else{c[e>>2]=2;d=2}if(!b){c[f+4>>2]=(d|0)==2?26:27;c[f+8>>2]=139;d=c[a+132>>2]|0;if((d|0)>=1){if((d|0)>256){b=c[a>>2]|0;c[b+20>>2]=57;c[b+24>>2]=256;Kc[c[b>>2]&255](a)}}else{b=c[a>>2]|0;c[b+20>>2]=56;c[b+24>>2]=1;Kc[c[b>>2]&255](a)}if((c[e>>2]|0)==2){e=((c[a+112>>2]|0)*6|0)+12|0;b=f+32|0;d=c[b>>2]|0;if(!d){d=Pc[c[(c[a+4>>2]|0)+4>>2]&63](a,1,e)|0;c[b>>2]=d}up(d,e);if(!(c[f+40>>2]|0))Nq(a);c[f+36>>2]=0}}else{c[f+4>>2]=25;c[f+8>>2]=138;c[f+28>>2]=1}d=f+28|0;if(c[d>>2]|0){b=0;do{up(c[g+(b<<2)>>2]|0,4096);b=b+1|0}while((b|0)!=32);c[d>>2]=0}return}function Mq(a){a=a|0;c[(c[a+460>>2]|0)+28>>2]=1;return}function Nq(a){a=a|0;var b=0,d=0,e=0;d=c[a+460>>2]|0;e=(Pc[c[c[a+4>>2]>>2]&63](a,1,2044)|0)+1020|0;c[d+40>>2]=e;a=0;do{c[e+(a<<2)>>2]=a;d=0-a|0;c[e+(d<<2)>>2]=d;a=a+1|0}while((a|0)!=16);b=16;a=16;do{c[e+(b<<2)>>2]=a;c[e+(0-b<<2)>>2]=0-a;b=b+1|0;a=(b&1^1)+a|0}while((b|0)<48);b=0-a|0;d=48;do{c[e+(d<<2)>>2]=a;c[e+(0-d<<2)>>2]=b;d=d+1|0}while((d|0)<256);return}function Oq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=c[a+4>>2]|0;if(d>>>0>999999984){k=c[a>>2]|0;c[k+20>>2]=54;c[k+24>>2]=1;Kc[c[k>>2]&255](a)}k=d&7;k=((k|0)==0?0:8-k|0)+d|0;if(b>>>0>1){j=c[a>>2]|0;c[j+20>>2]=14;c[j+24>>2]=b;Kc[c[j>>2]&255](a)}j=l+52+(b<<2)|0;d=c[j>>2]|0;a:do if(!d){i=0;f=8}else while(1){if((c[d+8>>2]|0)>>>0>=k>>>0)break a;e=c[d>>2]|0;if(!e){i=d;f=8;break}else d=e}while(0);do if((f|0)==8){g=k+16|0;h=(i|0)==0;e=c[(h?5676:5684)+(b<<2)>>2]|0;f=999999984-k|0;e=e>>>0>f>>>0?f:e;f=g+e|0;d=wp(a,f)|0;if(!d)while(1){b=e>>>1;if(e>>>0<100){f=c[a>>2]|0;c[f+20>>2]=54;c[f+24>>2]=2;Kc[c[f>>2]&255](a)}f=g+b|0;d=wp(a,f)|0;if(!d)e=b;else{e=b;break}}l=l+76|0;c[l>>2]=(c[l>>2]|0)+f;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e+k;if(h){c[j>>2]=d;break}else{c[i>>2]=d;break}}while(0);j=d+4|0;l=c[j>>2]|0;c[j>>2]=l+k;j=d+8|0;c[j>>2]=(c[j>>2]|0)-k;return d+16+l|0}function Pq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(d>>>0>999999984){f=c[a>>2]|0;c[f+20>>2]=54;c[f+24>>2]=3;Kc[c[f>>2]&255](a)}f=d&7;d=((f|0)==0?0:8-f|0)+d|0;if(b>>>0>1){f=c[a>>2]|0;c[f+20>>2]=14;c[f+24>>2]=b;Kc[c[f>>2]&255](a)}e=d+16|0;f=yp(a,e)|0;if(!f){h=c[a>>2]|0;c[h+20>>2]=54;c[h+24>>2]=4;Kc[c[h>>2]&255](a)}h=g+76|0;c[h>>2]=(c[h>>2]|0)+e;h=g+60+(b<<2)|0;c[f>>2]=c[h>>2];c[f+4>>2]=d;c[f+8>>2]=0;c[h>>2]=f;return f+16|0}function Qq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[a+4>>2]|0;f=999999984/(d>>>0)|0;if(!f){m=c[a>>2]|0;c[m+20>>2]=70;Kc[c[m>>2]&255](a)}f=(f|0)<(e|0)?f:e;c[g+80>>2]=f;k=Oq(a,b,e<<2)|0;l=~e;if(e){m=0;do{g=e-m|0;j=f;f=f>>>0>>0?f:g;g=Pq(a,b,$(f,d)|0)|0;i=m+l|0;j=~j;j=i>>>0>j>>>0?i:j;if(f){h=m;i=f;while(1){c[k+(h<<2)>>2]=g;i=i+-1|0;if(!i)break;else{h=h+1|0;g=g+d|0}}}m=m+-1-j|0}while(m>>>0>>0)}return k|0}function Rq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[a+4>>2]|0;n=d<<7;f=999999984/(n>>>0)|0;if(!f){m=c[a>>2]|0;c[m+20>>2]=70;Kc[c[m>>2]&255](a)}f=(f|0)<(e|0)?f:e;c[g+80>>2]=f;k=Oq(a,b,e<<2)|0;l=~e;if(e){m=0;do{g=e-m|0;j=f;f=f>>>0>>0?f:g;g=Pq(a,b,$(n,f)|0)|0;i=m+l|0;j=~j;j=i>>>0>j>>>0?i:j;if(f){h=m;i=f;while(1){c[k+(h<<2)>>2]=g;i=i+-1|0;if(!i)break;else{h=h+1|0;g=g+(d<<7)|0}}}m=m+-1-j|0}while(m>>>0>>0)}return k|0}function Sq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)!=1){i=c[a>>2]|0;c[i+20>>2]=14;c[i+24>>2]=b;Kc[c[i>>2]&255](a)}i=Oq(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;e=h+68|0;c[i+44>>2]=c[e>>2];c[e>>2]=i;return i|0} +function ae(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=f+4|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<1)+2)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+2|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function be(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r+1>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ce(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){b[e>>1]=0;a[l>>0]=0;m=q}else{a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function de(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l*3|0)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+3|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+6|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ee(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+10+(p<<5&224)+(q>>>3&28)+(q<<3&248)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function fe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ge(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){q=d[s>>0]|0;do if(((q&240)+24+(q<<4&240)+((d[s+1>>0]|0)&240)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function he(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+12+(p<<5&224)+(q>>>3&24)+(q<<2&248)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ie(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+2>>0]|0)+(d[s+1>>0]|0)+(d[s+3>>0]|0)|0)>(A|0)){b[e>>1]=0;a[l>>0]=0;j=r}else{a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function je(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+l|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+2|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ke(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t+1>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function le(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function me(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;m=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;l=(c[k+4>>2]|0)+m|0;z=1;e=e+m|0;o=o+(m<<1)|0;j=j+m|0;m=0;b:while(1){if(y){u=1;t=e;s=m;while(1){do if((d[t>>0]|0)>(d[j>>0]|0)){b[o>>1]=0;a[l>>0]=0;m=s}else{a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}while(0);u=u+1|0;e=t+1|0;j=j+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}z=z+1|0;if((z|0)>=(B|0)){p=m;D=52;break a}else{l=l+2|0;e=e+2|0;o=o+4|0;j=j+2|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((p|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(p|0)){e=e+1|0;n=n+4|0}else break}}j=k+8|0;l=m+-1|0;c[j>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[j>>2]|0))}if((p|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(p|0))}if((c[j>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[j>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ne(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f*3|0)+12|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f*6|0)+6)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+6|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function oe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+10+(f<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function pe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function qe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){o=d[q>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[q+1>>0]|0)&240)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function re(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+12+(f<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function se(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+2>>0]|0)+(d[q+1>>0]|0)+(d[q+3>>0]|0)|0)>(y|0)){a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}else{b[g>>1]=0;a[l>>0]=0;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function te(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=f+4|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<1)+2)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+2|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ue(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r+1>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function ve(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}z=D+-1|0;if((g|0)>1){l=0;m=o;n=o+(z<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{m=m+(D<<1)|0;n=n+(D<<1)|0}}}n=k+1179664|0;m=D+1|0;w=0-D|0;u=1-D|0;v=~D;t=(f<<1)+8|0;a:do if((A|0)>1){x=(z|0)>1;l=(c[k+4>>2]|0)+m|0;y=1;g=e+((f<<2)+4)|0;e=o+(m<<1)|0;m=0;b:while(1){if(x){s=1;r=g;q=m;while(1){do if((d[r>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[e+(w<<1)>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}f=b[e+(u<<1)>>1]|0;o=f<<16>>16;m=b[e+(v<<1)>>1]|0;p=m<<16>>16;g=m<<16>>16>0;if(f<<16>>16<=0){if(g){b[e>>1]=m;m=p*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-3<<2)|0;if((c[g>>2]|0)<(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=b[e+-2>>1]|0;if(m<<16>>16>0){b[e>>1]=m;m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(s|0)){m=q;break}c[m>>2]=s;m=q;break}else{m=q+1|0;if((q|0)>32767)break b;b[e>>1]=m;c[k+1179664+(q<<2)>>2]=m<<16>>16;q=q*7|0;c[k+1310736+(q<<2)>>2]=1;c[k+1310736+(q+1<<2)>>2]=s;c[k+1310736+(q+2<<2)>>2]=y;c[k+1310736+(q+3<<2)>>2]=s;c[k+1310736+(q+4<<2)>>2]=s;c[k+1310736+(q+5<<2)>>2]=y;c[k+1310736+(q+6<<2)>>2]=y;break}}if(g){m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+(p+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=k+1310736+(m+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+y;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}g=b[e+-2>>1]|0;if(g<<16>>16<=0){b[e>>1]=f;m=o*7|0;g=k+1310736+(m+-7<<2)|0;c[g>>2]=(c[g>>2]|0)+1;g=k+1310736+(m+-6<<2)|0;c[g>>2]=(c[g>>2]|0)+s;g=k+1310736+(m+-5<<2)|0;c[g>>2]=(c[g>>2]|0)+y;g=k+1310736+(m+-4<<2)|0;if((c[g>>2]|0)>(s|0))c[g>>2]=s;c[k+1310736+(m+-1<<2)>>2]=y;m=q;break}m=c[k+1179664+(o+-1<<2)>>2]|0;o=c[k+1179664+((g<<16>>16)+-1<<2)>>2]|0;if((m|0)>(o|0)){b[e>>1]=o;if((q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(m|0))c[f>>2]=o;g=g+1|0;if((g|0)>=(q|0)){m=o;break}else f=f+4|0}}else m=o}else{b[e>>1]=m;if((m|0)<(o|0)&(q|0)>0){g=0;f=n;while(1){if((c[f>>2]|0)==(o|0))c[f>>2]=m;g=g+1|0;if((g|0)>=(q|0))break;else f=f+4|0}}}m=(m<<16>>16)*7|0;p=k+1310736+(m+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=k+1310736+(m+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+y;m=q}else{b[e>>1]=0;a[l>>0]=0;m=q}while(0);s=s+1|0;g=r+4|0;e=e+2|0;l=l+1|0;if((s|0)>=(z|0))break;else{r=g;q=m}}}y=y+1|0;if((y|0)>=(A|0)){o=m;C=52;break a}else{l=l+2|0;g=g+t|0;e=e+4|0}}Kf(3,18092,B);l=-1}else{o=0;C=52}while(0);if((C|0)==52){e=k+12|0;if((o|0)<1)m=1;else{g=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(g|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((g|0)<(o|0)){g=g+1|0;n=n+4|0}else break}}f=k+8|0;l=m+-1|0;c[f>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[f>>2]|0))}if((o|0)>0){e=0;do{n=(c[k+1179664+(e<<2)>>2]|0)+-1|0;g=e*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(g<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(g+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(g+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(g+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(g+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(g+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(g+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;e=e+1|0}while((e|0)<(o|0))}if((c[f>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[f>>2]|0));l=0}else l=0}else l=0}i=F;return l|0} +function fj(a,f,h,j,k){a=a|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+16|0;l=z;if(j>>>0<=4){y=kh(kh(nz(kh(kh(kh(10696,25839)|0,25873)|0,34302)|0,55)|0,34309)|0,26002)|0;c[l>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(l,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(l);oz(y,x)|0;bz(y)|0;Zb()}if(k>>>0<=4){y=kh(kh(nz(kh(kh(kh(10696,26021)|0,25873)|0,34302)|0,56)|0,34309)|0,26002)|0;c[l>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(l,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(l);oz(y,x)|0;bz(y)|0;Zb()}m=j+-1|0;n=j+-2|0;o=j+-3|0;p=j+-4|0;w=j+-1|0;if(k){u=(n|0)==2;v=0;x=f;while(1){q=$(v,j)|0;r=h+q|0;t=d[r>>0]|0;y=h+(q+1)|0;l=q+2|0;s=h+l|0;b[x>>1]=(t*7|0)+(d[s>>0]|0)+((d[y>>0]|0)+t<<2);r=d[r>>0]|0;b[x+2>>1]=((d[y>>0]|0)*6|0)+r+(d[h+(q+3)>>0]|0)+((d[s>>0]|0)+r<<2);r=q+-1|0;s=q+-2|0;if(!u){t=2;y=x+4|0;while(1){A=t;t=t+1|0;b[y>>1]=(d[h+(s+A)>>0]|0)+((d[h+(A+q)>>0]|0)*6|0)+((d[h+(t+q)>>0]|0)+(d[h+(r+A)>>0]|0)<<2)+(d[h+(l+A)>>0]|0);if((t|0)==(n|0))break;else y=y+2|0}}y=h+(q+n)|0;t=h+(o+q)|0;A=h+(m+q)|0;s=d[A>>0]|0;b[x+(n<<1)>>1]=s+((d[y>>0]|0)*6|0)+(d[h+(p+q)>>0]|0)+(s+(d[t>>0]|0)<<2);A=d[A>>0]|0;b[x+(w<<1)>>1]=(A*7|0)+(d[t>>0]|0)+((d[y>>0]|0)+A<<2);v=v+1|0;if((v|0)==(k|0))break;else x=x+(j<<1)|0}}v=k+-2|0;r=f+(j<<1)|0;l=f+(j<<1<<1)|0;if(j){m=0;n=a;o=f;p=r;q=l;while(1){A=e[o>>1]|0;g[n>>2]=+((A*7|0)+((e[p>>1]|0)+A<<2)+(e[q>>1]|0)|0)*.00390625;m=m+1|0;if((m|0)==(j|0))break;else{n=n+4|0;o=o+2|0;p=p+2|0;q=q+2|0}}if(j){p=0;q=a+(j<<2)|0;n=r;o=f;m=f+(j*3<<1)|0;while(1){A=e[o>>1]|0;g[q>>2]=+(A+((e[n>>1]|0)*6|0)+((e[l>>1]|0)+A<<2)+(e[m>>1]|0)|0)*.00390625;p=p+1|0;if((p|0)==(j|0))break;else{q=q+4|0;n=n+2|0;o=o+2|0;l=l+2|0;m=m+2|0}}}}if((v|0)!=2){t=(j|0)==0;u=2;do{n=$(u+-2|0,j)|0;m=n+j|0;l=m+j|0;p=l+j|0;if(!t){r=0;s=a+(($(u,j)|0)<<2)|0;q=f+(l<<1)|0;o=f+(m<<1)|0;m=f+(n<<1)|0;n=f+(p<<1)|0;l=f+(p+j<<1)|0;while(1){g[s>>2]=+((e[m>>1]|0)+((e[q>>1]|0)*6|0)+((e[n>>1]|0)+(e[o>>1]|0)<<2)+(e[l>>1]|0)|0)*.00390625;r=r+1|0;if((r|0)==(j|0))break;else{s=s+4|0;q=q+2|0;o=o+2|0;m=m+2|0;n=n+2|0;l=l+2|0}}}u=u+1|0}while((u|0)!=(v|0))}m=$(k+-4|0,j)|0;l=m+j|0;o=l+j|0;if(j){r=0;p=a+(($(v,j)|0)<<2)|0;q=f+(o<<1)|0;n=f+(l<<1)|0;m=f+(m<<1)|0;l=f+(o+j<<1)|0;while(1){A=e[l>>1]|0;g[p>>2]=+((e[m>>1]|0)+((e[q>>1]|0)*6|0)+(A+(e[n>>1]|0)<<2)+A|0)*.00390625;r=r+1|0;if((r|0)==(j|0))break;else{p=p+4|0;q=q+2|0;n=n+2|0;m=m+2|0;l=l+2|0}}}p=$(k+-3|0,j)|0;l=p+j|0;if(j){q=0;n=a+(($(k+-1|0,j)|0)<<2)|0;o=f+(l+j<<1)|0;m=f+(l<<1)|0;l=f+(p<<1)|0;while(1){A=e[o>>1]|0;g[n>>2]=+((e[l>>1]|0)+(A*6|0)+(A+(e[m>>1]|0)<<2)+A|0)*.00390625;q=q+1|0;if((q|0)==(j|0))break;else{n=n+4|0;o=o+2|0;m=m+2|0;l=l+2|0}}}i=z;return}function gj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;w=i;i=i+16|0;h=w;if(e>>>0<=4){v=kh(kh(nz(kh(kh(kh(10696,25839)|0,25873)|0,34302)|0,168)|0,34309)|0,26002)|0;c[h>>2]=ty(v+(c[(c[v>>2]|0)+-12>>2]|0)|0)|0;u=GD(h,13680)|0;u=Uc[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;ED(h);oz(v,u)|0;bz(v)|0;Zb()}if(f>>>0<=4){v=kh(kh(nz(kh(kh(kh(10696,26021)|0,25873)|0,34302)|0,169)|0,34309)|0,26002)|0;c[h>>2]=ty(v+(c[(c[v>>2]|0)+-12>>2]|0)|0)|0;u=GD(h,13680)|0;u=Uc[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;ED(h);oz(v,u)|0;bz(v)|0;Zb()}j=e+-1|0;k=e+-2|0;l=e+-3|0;m=e+-4|0;t=e+-1|0;if(f){r=(k|0)==2;s=0;u=b;while(1){n=$(s,e)|0;v=d+(n<<2)|0;x=+g[v>>2];p=d+(n+1<<2)|0;h=n+2|0;o=d+(h<<2)|0;g[u>>2]=+g[o>>2]+(x+(x*6.0+(x+ +g[p>>2])*4.0));x=+g[v>>2];g[u+4>>2]=+g[d+(n+3<<2)>>2]+(x+(+g[p>>2]*6.0+(x+ +g[o>>2])*4.0));o=n+-1|0;p=n+-2|0;if(!r){q=2;v=u+8|0;while(1){y=q;q=q+1|0;g[v>>2]=+g[d+(h+y<<2)>>2]+(+g[d+(p+y<<2)>>2]+(+g[d+(y+n<<2)>>2]*6.0+(+g[d+(o+y<<2)>>2]+ +g[d+(q+n<<2)>>2])*4.0));if((q|0)==(k|0))break;else v=v+4|0}}y=d+(n+k<<2)|0;v=d+(l+n<<2)|0;q=d+(j+n<<2)|0;x=+g[q>>2];g[u+(k<<2)>>2]=x+(+g[d+(m+n<<2)>>2]+(+g[y>>2]*6.0+(+g[v>>2]+x)*4.0));x=+g[q>>2];g[u+(t<<2)>>2]=x+(+g[v>>2]+(x*6.0+(x+ +g[y>>2])*4.0));s=s+1|0;if((s|0)==(f|0))break;else u=u+(e<<2)|0}}s=f+-2|0;o=b+(e<<2)|0;h=b+(e<<1<<2)|0;if(e){j=0;k=a;l=b;m=o;n=h;while(1){x=+g[l>>2];g[k>>2]=(+g[n>>2]+(x+(x*6.0+(x+ +g[m>>2])*4.0)))*.00390625;j=j+1|0;if((j|0)==(e|0))break;else{k=k+4|0;l=l+4|0;m=m+4|0;n=n+4|0}}if(e){m=0;n=a+(e<<2)|0;k=o;l=b;j=b+(e*3<<2)|0;while(1){x=+g[l>>2];g[n>>2]=(+g[j>>2]+(x+(+g[k>>2]*6.0+(x+ +g[h>>2])*4.0)))*.00390625;m=m+1|0;if((m|0)==(e|0))break;else{n=n+4|0;k=k+4|0;l=l+4|0;h=h+4|0;j=j+4|0}}}}if((s|0)!=2){q=(e|0)==0;r=2;do{k=$(r+-2|0,e)|0;j=k+e|0;h=j+e|0;m=h+e|0;if(!q){o=0;p=a+(($(r,e)|0)<<2)|0;n=b+(h<<2)|0;l=b+(j<<2)|0;j=b+(k<<2)|0;k=b+(m<<2)|0;h=b+(m+e<<2)|0;while(1){g[p>>2]=(+g[h>>2]+(+g[j>>2]+(+g[n>>2]*6.0+(+g[l>>2]+ +g[k>>2])*4.0)))*.00390625;o=o+1|0;if((o|0)==(e|0))break;else{p=p+4|0;n=n+4|0;l=l+4|0;j=j+4|0;k=k+4|0;h=h+4|0}}}r=r+1|0}while((r|0)!=(s|0))}j=$(f+-4|0,e)|0;h=j+e|0;l=h+e|0;if(e){o=0;m=a+(($(s,e)|0)<<2)|0;n=b+(l<<2)|0;k=b+(h<<2)|0;j=b+(j<<2)|0;h=b+(l+e<<2)|0;while(1){x=+g[h>>2];g[m>>2]=(x+(+g[j>>2]+(+g[n>>2]*6.0+(+g[k>>2]+x)*4.0)))*.00390625;o=o+1|0;if((o|0)==(e|0))break;else{m=m+4|0;n=n+4|0;k=k+4|0;j=j+4|0;h=h+4|0}}}m=$(f+-3|0,e)|0;h=m+e|0;if(e){n=0;k=a+(($(f+-1|0,e)|0)<<2)|0;l=b+(h+e<<2)|0;j=b+(h<<2)|0;h=b+(m<<2)|0;while(1){x=+g[l>>2];g[k>>2]=(x+(+g[h>>2]+(x*6.0+(+g[j>>2]+x)*4.0)))*.00390625;n=n+1|0;if((n|0)==(e|0))break;else{k=k+4|0;l=l+4|0;j=j+4|0;h=h+4|0}}}i=w;return}function hj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0;l=c>>>1;j=d>>>1;if(j){k=(l|0)==0;h=0;while(1){d=$(h<<1,c)|0;if(!k){e=a;f=0;i=b+(d<<2)|0;d=b+(d+c<<2)|0;while(1){g[e>>2]=(+g[i>>2]+ +g[i+4>>2]+ +g[d>>2]+ +g[d+4>>2])*.25;f=f+1|0;if((f|0)==(l|0))break;else{e=e+4|0;i=i+8|0;d=d+8|0}}}h=h+1|0;if((h|0)==(j|0))break;else a=a+(l<<2)|0}}return}function ij(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;c[a+16>>2]=b;c[a+20>>2]=d;e=+ev(1.0/+(d+-1|0));g[a+24>>2]=e;g[a+28>>2]=1.0/+Z(+e);return}function jj(a){a=a|0;var b=0;b=a+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[a>>2]=4396;a=a+32|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function kj(a){a=a|0;c[a>>2]=4396;Vh(a+56|0);Vh(a+44|0);qj(a+32|0);c[a>>2]=4412;Xh(a+4|0);return}function lj(a){a=a|0;kj(a);Vt(a);return}function mj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;ij(a,e,3);h=a+4|0;i=a+20|0;Qh(h,$(c[i>>2]|0,e)|0);if((e|0)>0){l=0;do{j=b>>>l;k=d>>>l;f=c[i>>2]|0;if(f){g=0;do{m=($(f,l)|0)+g|0;fo((c[h>>2]|0)+(m<<5)|0,2,j,k,-1,1);g=g+1|0;f=c[i>>2]|0}while(g>>>0>>0)}l=l+1|0}while((l|0)<(e|0))}m=$(d,b)|0;rj(a+32|0,m);Uh(a+44|0,m);Uh(a+56|0,m);return}function nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;d=j;if((c[b>>2]|0)!=1){h=kh(kh(nz(kh(kh(kh(10696,26056)|0,25873)|0,34302)|0,330)|0,34309)|0,26107)|0;c[d>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(h,g)|0;bz(h)|0;Zb()}if((c[b+16>>2]|0)!=1){h=kh(kh(nz(kh(kh(kh(10696,26131)|0,25873)|0,34302)|0,331)|0,34309)|0,26176)|0;c[d>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(h,g)|0;bz(h)|0;Zb()}f=a+4|0;e=c[f>>2]|0;g=a+16|0;h=a+20|0;if(((c[a+8>>2]|0)-e>>5|0)!=($(c[h>>2]|0,c[g>>2]|0)|0)){k=kh(kh(nz(kh(kh(kh(10696,26202)|0,25873)|0,34302)|0,333)|0,34309)|0,26276)|0;c[d>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;l=GD(d,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(d);oz(k,l)|0;bz(k)|0;Zb()}if((c[b+4>>2]|0)!=(c[e+4>>2]|0)){l=kh(kh(nz(kh(kh(kh(10696,26311)|0,25873)|0,34302)|0,334)|0,34309)|0,26371)|0;c[d>>2]=ty(l+(c[(c[l>>2]|0)+-12>>2]|0)|0)|0;k=GD(d,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(d);oz(l,k)|0;bz(l)|0;Zb()}if((c[b+8>>2]|0)!=(c[e+8>>2]|0)){l=kh(kh(nz(kh(kh(kh(10696,26403)|0,25873)|0,34302)|0,335)|0,34309)|0,26371)|0;c[d>>2]=ty(l+(c[(c[l>>2]|0)+-12>>2]|0)|0)|0;k=GD(d,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(d);oz(l,k)|0;bz(l)|0;Zb()}oj(a,e,b);l=c[f>>2]|0;oj(a,l+32|0,l);l=c[f>>2]|0;pj(a,l+64|0,l+32|0);if((c[g>>2]|0)>>>0>1){d=1;do{b=$(c[h>>2]|0,d)|0;k=c[f>>2]|0;l=b+-1|0;hj(c[k+(b<<5)+24>>2]|0,c[k+(l<<5)+24>>2]|0,c[k+(l<<5)+4>>2]|0,c[k+(l<<5)+8>>2]|0);l=$(c[h>>2]|0,d)|0;k=c[f>>2]|0;oj(a,k+(l+1<<5)|0,k+(l<<5)|0);l=$(c[h>>2]|0,d)|0;k=c[f>>2]|0;pj(a,k+(l+2<<5)|0,k+(l+1<<5)|0);d=d+1|0}while(d>>>0<(c[g>>2]|0)>>>0)}i=j;return}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;e=h+24|0;f=h+12|0;g=h;if((c[b>>2]|0)!=2){j=kh(kh(nz(kh(kh(kh(10696,26465)|0,25873)|0,34302)|0,357)|0,34309)|0,26512)|0;c[e>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;k=GD(e,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(e);oz(j,k)|0;bz(j)|0;Zb()}switch(c[d>>2]|0){case 1:{fj(c[b+24>>2]|0,c[a+32>>2]|0,c[d+24>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0);break}case 2:{gj(c[b+24>>2]|0,c[a+44>>2]|0,c[d+24>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0);break}case 0:{k=Gb(16)|0;Wx(f,26548,18);sj(k,f);yc(k|0,32,5)}default:{k=Gb(16)|0;Wx(g,26567,22);sj(k,g);yc(k|0,32,5)}}i=h;return}function pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+32|0;f=e;go(f,c[a+56>>2]|0,c[d>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0,c[d+12>>2]|0,1);oj(a,f,d);oj(a,b,f);io(f);i=e;return}function qj(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-2|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function rj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e>>1;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b<<1)|0,(d|0)!=(g|0)):0){do d=d+-2|0;while((d|0)!=(g|0));c[h>>2]=d}}else wj(a,b-f|0);return}function sj(a,b){a=a|0;b=b|0;c[a>>2]=4428;Vx(a+4|0,b);return}function tj(a){a=a|0;c[a>>2]=4428;Yx(a+4|0);return}function uj(a){a=a|0;tj(a);Vt(a);return}function vj(b){b=b|0;var d=0;d=b+4|0;if(!(a[d>>0]&1))d=d+1|0;else d=c[b+12>>2]|0;return d|0}function wj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;g=c[a+8>>2]|0;d=a+4|0;h=c[d>>2]|0;f=h;do if(g-f>>1>>>0>>0){e=c[a>>2]|0;d=(f-e>>1)+b|0;if((d|0)<0)Rt(a);else{f=e;g=g-f|0;xj(j,g>>1>>>0<1073741823?(g>>>0>>0?d:g):2147483647,h-f>>1,a+8|0);h=j+8|0;g=c[h>>2]|0;iH(g|0,0,b<<1|0)|0;c[h>>2]=g+(b<<1);yj(a,j);zj(j);break}}else{iH(h|0,0,b<<1|0)|0;c[d>>2]=h+(b<<1)}while(0);i=k;return}function xj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<1)|0;c[a>>2]=e;d=e+(d<<1)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<1);return}function yj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>1)<<1)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function zj(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-2|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function Aj(a){a=a|0;c[a>>2]=4412;Xh(a+4|0);return}function Bj(a){a=a|0;c[a>>2]=4412;Xh(a+4|0);Vt(a);return}function Cj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0;G=c+-1|0;m=b+(c<<2)|0;e=b+4|0;I=+g[b>>2];J=+g[e>>2]-I;I=+g[m>>2]-I;g[a>>2]=+X(+I,+J)+3.141592653589793;g[a+4>>2]=+P(+(J*J+I*I));F=G>>>0>1?G:1;H=F<<1;l=b+(F+c<<2)|0;D=F+-1|0;if(G>>>0>1){i=b;j=1;k=a;h=b+(c+1<<2)|0;while(1){E=k;k=k+8|0;f=e+4|0;I=+g[f>>2]-+g[i>>2];J=+g[h>>2]-+g[e>>2];g[k>>2]=+X(+J,+I)+3.141592653589793;g[E+12>>2]=+P(+(I*I+J*J));j=j+1|0;if(j>>>0>=G>>>0)break;else{i=e;e=f;h=h+4|0}}}z=d+-1|0;A=a+(H<<2)|0;J=+g[b+(F<<2)>>2];I=J-+g[b+(D<<2)>>2];J=+g[l>>2]-J;g[A>>2]=+X(+J,+I)+3.141592653589793;g[a+((H|1)<<2)>>2]=+P(+(I*I+J*J));y=H+2|0;C=a+(H+2<<2)|0;B=$(z>>>0>1?d+-2|0:0,(F<<3)+8|0)|0;E=C+B|0;i=A+B|0;x=H+3|0;w=F+1|0;v=F+1|0;u=F+1|0;if(z>>>0>1){t=G>>>0>1;s=A;n=b;o=b+(c<<1<<2)|0;p=1;while(1){e=m+4|0;I=+g[e>>2]-+g[m>>2];J=+g[o>>2]-+g[n>>2];g[s+8>>2]=+X(+J,+I)+3.141592653589793;g[s+12>>2]=+P(+(I*I+J*J));q=o+(F<<2)|0;r=m+(D<<2)|0;if(t){k=s+16|0;l=m;a=1;h=n;j=o;while(1){j=j+4|0;h=h+4|0;f=e+4|0;I=+g[f>>2]-+g[l>>2];J=+g[j>>2]-+g[h>>2];g[k>>2]=+X(+J,+I)+3.141592653589793;g[k+4>>2]=+P(+(I*I+J*J));a=a+1|0;if(a>>>0>=G>>>0)break;else{l=e;k=k+8|0;e=f}}}a=s;s=s+(y<<2)|0;I=+g[m+(F<<2)>>2]-+g[r>>2];J=+g[q>>2]-+g[n+(F<<2)>>2];g[s>>2]=+X(+J,+I)+3.141592653589793;g[a+(x<<2)>>2]=+P(+(I*I+J*J));p=p+1|0;if(p>>>0>=z>>>0)break;else{m=m+(w<<2)|0;n=n+(v<<2)|0;o=o+(u<<2)|0}}}a=$(z,c)|0;f=a-c|0;h=b+(a+1<<2)|0;J=+g[b+(a<<2)>>2];I=+g[h>>2]-J;J=J-+g[b+(f<<2)>>2];g[E>>2]=+X(+J,+I)+3.141592653589793;g[A+(B+12)>>2]=+P(+(I*I+J*J));a=F+a|0;l=F+($(d+-2|0,c)|0)|0;if(G>>>0>1){e=E;k=C+(B+8)|0;j=1;f=b+(f+1<<2)|0;while(1){c=h;h=h+4|0;I=+g[h>>2]-+g[c+-4>>2];J=+g[c>>2]-+g[f>>2];g[k>>2]=+X(+J,+I)+3.141592653589793;g[i+20>>2]=+P(+(I*I+J*J));j=j+1|0;if(j>>>0>=G>>>0)break;else{c=k;k=k+8|0;f=f+4|0;i=e;e=c}}}else e=i;J=+g[b+(a<<2)>>2];I=J-+g[b+(a+-1<<2)>>2];J=J-+g[b+(l<<2)>>2];g[E+(H<<2)>>2]=+X(+J,+I)+3.141592653589793;g[e+20>>2]=+P(+(I*I+J*J));return}function Dj(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;a=a+12|0;b=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function Ej(a){a=a|0;Xh(a+40|0);Vh(a+28|0);return}function Fj(a,b,d,e,f,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;j=+j;k=k|0;l=+l;var m=0,n=0,o=0,p=0;c[a>>2]=e;o=a+4|0;c[o>>2]=f;c[a+8>>2]=h;g[a+12>>2]=i;g[a+16>>2]=j;c[a+20>>2]=k;g[a+24>>2]=l;Uh(a+28|0,h);p=a+40|0;Qh(p,$(c[o>>2]|0,c[a>>2]|0)|0);if(e){m=(f|0)==0;n=0;do{h=$(n,f)|0;k=b>>>n;a=d>>>n;if(!m){o=0;do{fo((c[p>>2]|0)+(o+h<<5)|0,2,k,a,-1,2);o=o+1|0}while((o|0)!=(f|0))}n=n+1|0}while((n|0)!=(e|0))}return}function Gj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j;h=b+8|0;f=b+4|0;e=a+40|0;b=c[f>>2]|0;a:do if((c[h>>2]|0)!=(b|0)){d=0;while(1){a=c[b+(d<<5)+4>>2]|0;if((a|0)!=((c[b+(d<<5)+12>>2]|0)>>>2|0))break;Cj(c[(c[e>>2]|0)+(d<<5)+24>>2]|0,c[b+(d<<5)+24>>2]|0,a,c[b+(d<<5)+8>>2]|0);d=d+1|0;b=c[f>>2]|0;if(d>>>0>=(c[h>>2]|0)-b>>5>>>0)break a}h=kh(kh(nz(kh(kh(kh(10696,26610)|0,26671)|0,34302)|0,96)|0,34309)|0,26794)|0;c[g>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;f=GD(g,13680)|0;f=Uc[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;ED(g);oz(h,f)|0;bz(h)|0;Zb()}while(0);i=j;return}function Hj(a,b,d,e,f,h,j,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;l=+l;var m=0.0,n=0,o=0.0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;G=i;i=i+48|0;w=G+40|0;D=G+32|0;E=G+24|0;F=G+16|0;A=G+8|0;B=G+4|0;C=G;if(!(h>=0.0)){y=kh(kh(nz(kh(kh(kh(10696,26835)|0,26671)|0,34302)|0,119)|0,34309)|0,26865)|0;c[w>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(w,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(w);oz(y,x)|0;bz(y)|0;Zb()}e=($(c[a+4>>2]|0,e)|0)+f|0;f=c[a+40>>2]|0;v=f+(e<<5)|0;n=f+(e<<5)+4|0;if(!(+((c[n>>2]|0)>>>0)>h)){y=kh(kh(nz(kh(kh(kh(10696,26884)|0,26671)|0,34302)|0,120)|0,34309)|0,26964)|0;c[w>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(w,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(w);oz(y,x)|0;bz(y)|0;Zb()}if(!(j>=0.0)){y=kh(kh(nz(kh(kh(kh(10696,27e3)|0,26671)|0,34302)|0,121)|0,34309)|0,27030)|0;c[w>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(w,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(w);oz(y,x)|0;bz(y)|0;Zb()}p=f+(e<<5)+8|0;if(!(+((c[p>>2]|0)>>>0)>j)){y=kh(kh(nz(kh(kh(kh(10696,27049)|0,26671)|0,34302)|0,122)|0,34309)|0,27130)|0;c[w>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(w,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(w);oz(y,x)|0;bz(y)|0;Zb()}if((c[f+(e<<5)+16>>2]|0)!=2){y=kh(kh(nz(kh(kh(kh(10696,27167)|0,26671)|0,34302)|0,126)|0,34309)|0,27208)|0;c[w>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;x=GD(w,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(w);oz(y,x)|0;bz(y)|0;Zb()}c[d>>2]=0;e=~~(h+.5);f=~~(j+.5);a:do if(((e|0)>=0?(r=c[n>>2]|0,!((f|0)<0|e>>>0>=r>>>0)):0)?(t=c[p>>2]|0,f>>>0>>0):0){m=+g[a+12>>2]*l;m=m<1.0?1.0:m;o=-1.0/(m*m*2.0);m=+g[a+16>>2]*m;q=+_(+(m*m));x=~~(m+.5);u=e-x|0;p=x+e|0;e=f-x|0;x=x+f|0;u=(u|0)<0?0:u;s=r+-1|0;s=(p|0)<(s|0)?p:s;e=(e|0)<0?0:e;p=t+-1|0;p=(x|0)<(p|0)?x:p;x=a+28|0;y=c[x>>2]|0;iH(y|0,0,(c[a+32>>2]|0)-y|0)|0;y=a+8|0;if((e|0)<=(p|0)){r=(u|0)>(s|0);while(1){l=+(e|0)-j;l=l*l;f=Sh(v,e)|0;if(!r){n=u;while(1){m=+(n|0)-h;m=l+m*m;if(!(m>q)){H=n<<1;m=+Ij(o*m);t=c[y>>2]|0;Jj(c[x>>2]|0,+(t|0)*+g[f+(H<<2)>>2]*.159154943091895,m*+g[f+((H|1)<<2)>>2],t)}if((n|0)<(s|0))n=n+1|0;else break}}if((e|0)<(p|0))e=e+1|0;else break}}e=a+20|0;if((c[e>>2]|0)>0){f=0;do{H=c[x>>2]|0;Kj(H,H,c[y>>2]|0,4440);f=f+1|0}while((f|0)<(c[e>>2]|0))}n=c[y>>2]|0;if((n|0)>0){e=c[x>>2]|0;f=0;l=0.0;do{j=+g[e+(f<<2)>>2];l=j>l?j:l;f=f+1|0}while((f|0)<(n|0));j=l}else j=0.0;if(!(j==0.0)){if(!(j>0.0)){H=kh(kh(nz(kh(kh(kh(10696,27239)|0,26671)|0,34302)|0,218)|0,34309)|0,27277)|0;c[w>>2]=ty(H+(c[(c[H>>2]|0)+-12>>2]|0)|0)|0;v=GD(w,13680)|0;v=Uc[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;ED(w);oz(H,v)|0;bz(H)|0;Zb()}u=D+4|0;v=E+4|0;w=F+4|0;t=a+24|0;if((n|0)>0){s=n;e=0;b:while(1){r=c[x>>2]|0;h=j*+g[t>>2];p=e;while(1){o=+(p|0);n=c[r+(p<<2)>>2]|0;f=p+-1|0;m=+(f|0);f=c[r+(((s+f|0)%(s|0)|0)<<2)>>2]|0;p=p+1|0;l=+(p|0);e=c[r+(((s+p|0)%(s|0)|0)<<2)>>2]|0;q=(c[k>>2]=n,+g[k>>2]);if(q>h?(I=(c[k>>2]=e,+g[k>>2]),q>(c[k>>2]=f,+g[k>>2])&q>I):0)break;if((p|0)>=(s|0))break b}g[D>>2]=o;c[u>>2]=n;g[E>>2]=m;c[v>>2]=f;g[F>>2]=l;c[w>>2]=e;if(Lj(A,B,C,E,D,F)|0?(z=+g[A>>2],!(z==0.0)):0)o=-+g[B>>2]/(z*2.0);I=+(c[y>>2]|0);I=+fv((o+.5+I)/I*6.283185307179586,6.283185307179586);e=c[d>>2]|0;g[b+(e<<2)>>2]=I;c[d>>2]=e+1;e=c[y>>2]|0;if((p|0)<(e|0)){s=e;e=p}else break a}g[D>>2]=o;c[u>>2]=n;g[E>>2]=m;c[v>>2]=f;g[F>>2]=l;c[w>>2]=e}}}while(0);i=G;return}function Ij(a){a=+a;return +(((((((a+6.0)*a+30.0)*a+120.0)*a+360.0)*a+720.0)*a+720.0)*.0013888888)}function Jj(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+16|0;k=l;if(!a){j=kh(kh(nz(kh(kh(kh(10696,27308)|0,27344)|0,34302)|0,139)|0,34309)|0,27465)|0;c[k>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;h=GD(k,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(k);oz(j,h)|0;bz(j)|0;Zb()}if(b+.5>0.0?(f=b+-.5,f<+(e|0)):0){if(!(d>=0.0)){j=kh(kh(nz(kh(kh(kh(10696,27596)|0,27344)|0,34302)|0,141)|0,34309)|0,27634)|0;c[k>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;h=GD(k,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(k);oz(j,h)|0;bz(j)|0;Zb()}if((e|0)<=-1){j=kh(kh(nz(kh(kh(kh(10696,27663)|0,27344)|0,34302)|0,142)|0,34309)|0,27700)|0;c[k>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;h=GD(k,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(k);oz(j,h)|0;bz(j)|0;Zb()}j=~~+N(+f);f=b-+(j|0)+-.5;b=1.0-f;h=(j+e|0)%(e|0)|0;j=(j+1|0)%(e|0)|0;if(!(b>=0.0)){m=kh(kh(nz(kh(kh(kh(10696,27729)|0,27344)|0,34302)|0,150)|0,34309)|0,27760)|0;c[k>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;n=GD(k,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(k);oz(m,n)|0;bz(m)|0;Zb()}if(!(f>=0.0)){n=kh(kh(nz(kh(kh(kh(10696,27780)|0,27344)|0,34302)|0,151)|0,34309)|0,27811)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((h|e|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,27831)|0,27344)|0,34302)|0,152)|0,34309)|0,27879)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((j|e|0)>-1){n=a+(h<<2)|0;g[n>>2]=b*d+ +g[n>>2];n=a+(j<<2)|0;g[n>>2]=f*d+ +g[n>>2];i=l;return}else{n=kh(kh(nz(kh(kh(kh(10696,27905)|0,27344)|0,34302)|0,153)|0,34309)|0,27953)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}}n=kh(kh(nz(kh(kh(kh(10696,27491)|0,27344)|0,34302)|0,140)|0,34309)|0,27556)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}function Kj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0;l=+g[b>>2];h=c+-1|0;i=b+(h<<2)|0;e=+g[i>>2];j=d+4|0;k=d+8|0;if(h){c=0;while(1){f=+g[b+(c<<2)>>2];m=c;c=c+1|0;g[a+(m<<2)>>2]=e*+g[d>>2]+f*+g[j>>2]+ +g[k>>2]*+g[b+(c<<2)>>2];if((c|0)==(h|0)){e=f;break}else e=f}}g[a+(h<<2)>>2]=e*+g[d>>2]+ +g[j>>2]*+g[i>>2]+l*+g[k>>2];return}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0;j=+g[f>>2];h=+g[e>>2];i=+g[d>>2];l=j-i;j=(j-h)*l;k=i-h;l=k*l;if(k==0.0|(j==0.0|l==0.0)){g[a>>2]=0.0;g[b>>2]=0.0;b=0;h=0.0}else{i=i*i;m=e+4|0;n=+g[m>>2];e=d+4|0;l=(+g[f+4>>2]-n)/j-(+g[e>>2]-n)/l;g[a>>2]=l;h=((h*h-i)*l+(+g[e>>2]-+g[m>>2]))/k;g[b>>2]=h;b=1;h=+g[e>>2]-i*+g[a>>2]-h*+g[d>>2]}g[c>>2]=h;return b|0}function Mj(a){a=a|0;var b=0,d=0;c[a>>2]=0;d=Tt(24)|0;Tj(d);b=c[a>>2]|0;c[a>>2]=d;if(b){Uj(b);Vt(b)}return}function Nj(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;j=n+28|0;k=n+24|0;m=n+16|0;p=n+8|0;l=n;c[k>>2]=h;o=Tt(148)|0;Vj(o);c[p>>2]=0;c[j>>2]=c[p>>2];Wj(m,o,j);j=c[m>>2]|0;c[j>>2]=f;c[j+4>>2]=g;c[j+8>>2]=96;g=j+24|0;f=b+4|0;Xj(g,((c[f>>2]|0)-(c[b>>2]|0)|0)/20|0);if((g|0)!=(b|0))Yj(g,c[b>>2]|0,c[f>>2]|0);g=j+12|0;f=d+4|0;Zj(g,(c[f>>2]|0)-(c[d>>2]|0)|0);if((g|0)!=(d|0))_j(g,c[d>>2]|0,c[f>>2]|0);$j(j);f=c[c[a>>2]>>2]|0;c[l>>2]=j;g=c[m+4>>2]|0;c[l+4>>2]=g;if(g)Px(g);ak(f,l,h);bk(l);g=ck((c[a>>2]|0)+4|0,k)|0;if((g|0)!=(e|0))dk(g,c[e>>2]|0,c[e+4>>2]|0);bk(m);i=n;return}function Oj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+32|0;g=f;go(g,b,1,d,e,d,1);d=gk(c[c[a>>2]>>2]|0,g)|0;io(g);i=f;return d|0}function Pj(a){a=a|0;return c[(c[c[a>>2]>>2]|0)+24>>2]|0}function Qj(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a=ck((c[a>>2]|0)+4|0,e)|0;i=d;return a|0}function Rj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;hk(d,c[c[a>>2]>>2]|0);a=(c[d>>2]|0)+24|0;bk(d);i=b;return a|0}function Sj(a){a=a|0;return (c[c[a>>2]>>2]|0)+12|0}function Tj(a){a=a|0;var b=0,d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;g[a+20>>2]=1.0;d=Tt(840)|0;ek(d);b=c[a>>2]|0;c[a>>2]=d;if(b){fk(b);Vt(b)}return}function Uj(a){a=a|0;var b=0;sn(a+4|0);b=c[a>>2]|0;c[a>>2]=0;if(b){fk(b);Vt(b)}return}function Vj(a){a=a|0;var b=0,d=0;d=a+36|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));rn(d);return}function Wj(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;d=Tt(16)|0;c[d+4>>2]=0;c[d+8>>2]=0;c[d>>2]=4480;c[d+12>>2]=b;c[a+4>>2]=d;return}function Xj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=(d-e|0)/20|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b*20|0)|0,(d|0)!=(g|0)):0){do d=d+-20|0;while((d|0)!=(g|0));c[h>>2]=d}}else hn(a,b-f|0);return}function Yj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b;h=(d-g|0)/20|0;e=a+8|0;i=c[a>>2]|0;f=i;a:do if(h>>>0>(((c[e>>2]|0)-f|0)/20|0)>>>0){gn(a);if(h>>>0>214748364)Rt(a);e=((c[e>>2]|0)-(c[a>>2]|0)|0)/20|0;if(e>>>0<107374182){e=e<<1;e=e>>>0>>0?h:e}else e=214748364;dm(a,e);e=a+4|0;if((b|0)!=(d|0))do{a=c[e>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[e>>2]=(c[e>>2]|0)+20;b=b+20|0}while((b|0)!=(d|0))}else{a=a+4|0;e=((c[a>>2]|0)-f|0)/20|0;h=h>>>0>e>>>0;e=h?b+(e*20|0)|0:d;f=e-g|0;hH(i|0,b|0,f|0)|0;f=i+(((f|0)/20|0)*20|0)|0;if(h){if((e|0)==(d|0))break;else b=e;while(1){i=c[a>>2]|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[i+12>>2]=c[b+12>>2];c[i+16>>2]=c[b+16>>2];c[a>>2]=(c[a>>2]|0)+20;b=b+20|0;if((b|0)==(d|0))break a}}b=c[a>>2]|0;if((b|0)!=(f|0)){do b=b+-20|0;while((b|0)!=(f|0));c[a>>2]=b}}while(0);return}function Zj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+b|0,(d|0)!=(g|0)):0){do d=d+-1|0;while((d|0)!=(g|0));c[h>>2]=d}}else en(a,b-f|0);return}function _j(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=e-d|0;f=b+8|0;i=c[b>>2]|0;g=i;a:do if(h>>>0>((c[f>>2]|0)-g|0)>>>0){cn(b);if((h|0)<0)Rt(b);f=(c[f>>2]|0)-(c[b>>2]|0)|0;if(f>>>0<1073741823){f=f<<1;f=f>>>0>>0?h:f}else f=2147483647;dn(b,f);f=b+4|0;if((d|0)!=(e|0))do{a[c[f>>2]>>0]=a[d>>0]|0;c[f>>2]=(c[f>>2]|0)+1;d=d+1|0}while((d|0)!=(e|0))}else{b=b+4|0;g=(c[b>>2]|0)-g|0;if(h>>>0>g>>>0){f=d+g|0;hH(i|0,d|0,g|0)|0;if((f|0)==(e|0))break;else d=f;while(1){a[c[b>>2]>>0]=a[d>>0]|0;c[b>>2]=(c[b>>2]|0)+1;d=d+1|0;if((d|0)==(e|0))break a}}hH(i|0,d|0,h|0)|0;f=i+h|0;d=c[b>>2]|0;if((d|0)!=(f|0)){do d=d+-1|0;while((d|0)!=(f|0));c[b>>2]=d}}while(0);return}function $j(a){a=a|0;c[a+56>>2]=128;c[a+52>>2]=8;Nk(a+60|0,8);c[a+140>>2]=8;c[a+144>>2]=16;Em(a+36|0,c[a+12>>2]|0,((c[a+28>>2]|0)-(c[a+24>>2]|0)|0)/20|0);return}function ak(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h+16|0;e=h+12|0;f=h;c[e>>2]=d;d=a+72|0;if(ik(d,e)|0){h=Gb(16)|0;Wx(f,30139,17);sj(h,f);yc(h|0,32,5)}a=zm(d,e)|0;e=c[b>>2]|0;c[g>>2]=e;f=g+4|0;d=c[b+4>>2]|0;c[f>>2]=d;if(d)Px(d);c[g>>2]=c[a>>2];c[a>>2]=e;b=a+4|0;c[f>>2]=c[b>>2];c[b>>2]=d;bk(g);i=h;return}function bk(a){a=a|0;a=c[a+4>>2]|0;if(a)Qx(a);return}function ck(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;e=g+8|0;f=g;d=um(a,b)|0;if(!d){vm(e,a,b);d=c[e>>2]|0;c[e>>2]=0;wm(f,a,d);d=c[f>>2]|0}i=g;return d+12|0}function dk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=b;h=(d-g|0)/12|0;e=a+8|0;i=c[a>>2]|0;f=i;a:do if(h>>>0>(((c[e>>2]|0)-f|0)/12|0)>>>0){sm(a);if(h>>>0>357913941)Rt(a);e=((c[e>>2]|0)-(c[a>>2]|0)|0)/12|0;if(e>>>0<178956970){e=e<<1;e=e>>>0>>0?h:e}else e=357913941;tm(a,e);e=a+4|0;if((b|0)!=(d|0))do{a=c[e>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[e>>2]=(c[e>>2]|0)+12;b=b+12|0}while((b|0)!=(d|0))}else{a=a+4|0;e=((c[a>>2]|0)-f|0)/12|0;h=h>>>0>e>>>0;e=h?b+(e*12|0)|0:d;f=e-g|0;hH(i|0,b|0,f|0)|0;f=i+(((f|0)/12|0)*12|0)|0;if(h){if((e|0)==(d|0))break;else b=e;while(1){i=c[a>>2]|0;c[i>>2]=c[b>>2];c[i+4>>2]=c[b+4>>2];c[i+8>>2]=c[b+8>>2];c[a>>2]=(c[a>>2]|0)+12;b=b+12|0;if((b|0)==(d|0))break a}}b=c[a>>2]|0;if((b|0)!=(f|0)){do b=b+-12|0;while((b|0)!=(f|0));c[a>>2]=b}}while(0);return}function ek(b){b=b|0;var d=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;d=b+64|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;g[b+88>>2]=1.0;jj(b+92|0);Gh(b+160|0);Pn(b+316|0);c[b+636>>2]=0;c[b+640>>2]=0;c[b+644>>2]=0;g[b+648>>2]=.699999988079071;un(b+652|0);km(b+788|0,.009999999776482582,1024,1064,50);g[b+212>>2]=3.0;g[b+216>>2]=4.0;c[b+244>>2]=500;Th(b+220|0,500);g[b+4>>2]=3.0;c[b>>2]=8;a[b+8>>0]=1;return}function fk(a){a=a|0;fm(a+788|0);vn(a+652|0);uk(a+636|0);Hh(a+160|0);kj(a+92|0);gm(a+72|0);bk(a+64|0);uk(a+12|0);return}function gk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;j=a+92|0;d=c[a+96>>2]|0;if((c[a+100>>2]|0)!=(d|0)){e=c[d+4>>2]|0;f=c[b+4>>2]|0;if((e|0)==(f|0)){if((c[d+8>>2]|0)!=(c[b+8>>2]|0))g=5}else{e=f;g=5}}else{e=c[b+4>>2]|0;g=5}if((g|0)==5){h=c[b+8>>2]|0;if((h|0)<8|(e|0)<8)d=0;else{f=e;g=h;d=0;do{f=f>>1;g=g>>1;d=d+1|0}while(!((g|0)<8|(f|0)<8))}mj(j,e,h,d)}Eo(k,27979);nj(j,b);Fo(k);a=jk(a,j)|0;i=l;return a|0}function hk(a,b){a=a|0;b=b|0;c[a>>2]=c[b+64>>2];b=c[b+68>>2]|0;c[a+4>>2]=b;if(b)Px(b);return}function ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function jk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+80|0;e=n+72|0;m=n+32|0;f=n+64|0;g=n+60|0;l=n;h=n+48|0;j=b+160|0;k=d+4|0;o=c[k>>2]|0;if(!((c[j>>2]|0)==(c[o+4>>2]|0)?(c[b+164>>2]|0)==(c[o+8>>2]|0):0))Ih(j,d);o=b+64|0;p=Tt(148)|0;Vj(p);c[g>>2]=0;c[e>>2]=c[g>>2];Wj(f,p,e);p=c[f>>2]|0;c[f>>2]=c[o>>2];c[o>>2]=p;p=f+4|0;g=b+68|0;e=c[p>>2]|0;c[p>>2]=c[g>>2];c[g>>2]=e;bk(f);g=c[o>>2]|0;k=c[k>>2]|0;c[g>>2]=c[k+4>>2];c[g+4>>2]=c[k+8>>2];Eo(l,27993);kk(c[o>>2]|0,d,j,b+316|0);Fo(l);lk()|0;ao(h);l=(a[h>>0]&1)==0?h+1|0:c[h+8>>2]|0;d=c[o>>2]|0;d=((c[d+28>>2]|0)-(c[d+24>>2]|0)|0)/20|0;c[m>>2]=34431;c[m+4>>2]=l;c[m+8>>2]=28054;c[m+12>>2]=d;xo(4452,8,28010,m);Yx(h);o=mk(b,c[o>>2]|0)|0;i=n;return o|0}function kk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=i;i=i+16|0;h=m+12|0;l=m;if(!d){k=kh(kh(nz(kh(kh(kh(10696,32754)|0,29392)|0,34302)|0,212)|0,34309)|0,32888)|0;c[h>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;j=GD(h,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(h);oz(k,j)|0;bz(k)|0;Zb()}if(!e){k=kh(kh(nz(kh(kh(kh(10696,29838)|0,29392)|0,34302)|0,213)|0,34309)|0,29870)|0;c[h>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;j=GD(h,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(h);oz(k,j)|0;bz(k)|0;Zb()}j=c[d+4>>2]|0;if((c[d+8>>2]|0)==(j|0)){k=kh(kh(nz(kh(kh(kh(10696,29887)|0,29392)|0,34302)|0,214)|0,34309)|0,29939)|0;c[h>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;n=GD(h,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(h);oz(k,n)|0;bz(k)|0;Zb()}if((c[j+4>>2]|0)!=(c[e>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,29956)|0,29392)|0,34302)|0,215)|0,34309)|0,30029)|0;c[h>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;k=GD(h,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(h);oz(n,k)|0;bz(n)|0;Zb()}if((c[j+8>>2]|0)!=(c[e+4>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,30064)|0,29392)|0,34302)|0,216)|0,34309)|0,30029)|0;c[h>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;k=GD(h,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(h);oz(n,k)|0;bz(n)|0;Zb()}Jh(e,d);k=e+64|0;e=e+60|0;cm(l,((c[k>>2]|0)-(c[e>>2]|0)|0)/36|0);h=c[e>>2]|0;if((c[k>>2]|0)!=(h|0)){j=0;do{n=c[l>>2]|0;r=c[h+(j*36|0)+4>>2]|0;q=c[h+(j*36|0)+8>>2]|0;p=c[h+(j*36|0)+28>>2]|0;o=+g[h+(j*36|0)+24>>2]>0.0&1;c[n+(j*20|0)>>2]=c[h+(j*36|0)>>2];c[n+(j*20|0)+4>>2]=r;c[n+(j*20|0)+8>>2]=q;c[n+(j*20|0)+12>>2]=p;a[n+(j*20|0)+16>>0]=o;j=j+1|0;h=c[e>>2]|0}while(j>>>0<(((c[k>>2]|0)-h|0)/36|0)>>>0)}Qn(f,b+8|0,d,l);fh(l);i=m;return}function lk(){if((a[48]|0)==0?(Ia(48)|0)!=0:0){uo(4452);Wa(113,4452,n|0)|0;db(48)}return 4452}function mk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=i;i=i+384|0;L=Y+288|0;M=Y+256|0;V=Y+332|0;R=Y+224|0;K=Y+344|0;S=Y+192|0;W=Y+320|0;T=Y+160|0;U=Y+128|0;N=Y+96|0;O=Y+64|0;P=Y+32|0;Q=Y;D=b+12|0;f=c[D>>2]|0;E=b+16|0;e=c[E>>2]|0;if((e|0)!=(f|0)){do e=e+-8|0;while((e|0)!=(f|0));c[E>>2]=e}A=b+24|0;c[A>>2]=-1;B=d+8|0;C=d+24|0;e=c[b+80>>2]|0;n=b+8|0;o=b+636|0;p=b+652|0;q=d+4|0;r=V+4|0;s=V+8|0;t=b+788|0;u=W+4|0;v=W+8|0;w=b+4|0;x=b+28|0;y=b+20|0;z=W+8|0;if(e){m=e;l=e;while(1){Eo(L,28344);h=l+12|0;e=c[h>>2]|0;f=e+8|0;if(!(a[n>>0]|0)){k=ok(o,B,f)|0;if(k>>>0<(c[b>>2]|0)>>>0)e=4;else X=9}else{k=nk(o,B,f,e+36|0)|0;if(k>>>0<(c[b>>2]|0)>>>0)e=4;else X=9}if((X|0)==9){X=0;e=0}Fo(L);if((e|0)==0?(F=(c[h>>2]|0)+24|0,Eo(M,28361),G=c[h>>2]|0,G=pk(p,C,F,o,c[d>>2]|0,c[q>>2]|0,c[G>>2]|0,c[G+4>>2]|0)|0,Fo(M),(G>>31&4|0)==0):0){c[V>>2]=0;c[r>>2]=0;c[s>>2]=0;Eo(R,28378);qk(V,p,o,G,1.0);Fo(R);Eo(S,28401);k=c[h>>2]|0;k=rk(K,C,F,V,t,c[k>>2]|0,c[k+4>>2]|0)|0;Fo(S);if(k){c[W>>2]=0;c[u>>2]=0;c[v>>2]=0;Eo(T,28425);sk(W,K,C,F,V,+g[w>>2]);f=c[u>>2]|0;j=c[W>>2]|0;k=c[b>>2]|0;Fo(T);if(((f-j>>3>>>0>=k>>>0?(Eo(U,28442),j=tk(o,B,(c[h>>2]|0)+8|0,K,10.0)|0,k=c[b>>2]|0,Fo(U),j>>>0>=k>>>0):0)?(Eo(N,28459),H=c[h>>2]|0,H=pk(p,C,F,o,c[d>>2]|0,c[q>>2]|0,c[H>>2]|0,c[H+4>>2]|0)|0,Fo(N),(H>>31&4|0)==0):0)?(Eo(O,28476),qk(V,p,o,H,1.0),Fo(O),Eo(P,28499),k=c[h>>2]|0,k=rk(K,C,F,V,t,c[k>>2]|0,c[k+4>>2]|0)|0,Fo(P),k):0){f=c[W>>2]|0;e=c[u>>2]|0;if((e|0)!=(f|0)){do e=e+-8|0;while((e|0)!=(f|0));c[u>>2]=e}Eo(Q,28523);sk(W,K,C,F,V,+g[w>>2]);Fo(Q);j=c[u>>2]|0;k=c[W>>2]|0;e=j-k>>3;if(e>>>0>=(c[b>>2]|0)>>>0?(I=c[E>>2]|0,J=c[D>>2]|0,e>>>0>I-J>>3>>>0):0){e=x;f=K;h=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(h|0));c[D>>2]=k;c[W>>2]=J;c[E>>2]=j;c[u>>2]=I;k=c[y>>2]|0;c[y>>2]=c[z>>2];c[z>>2]=k;c[A>>2]=c[l+8>>2]}}uk(W)}uk(V)}e=c[m>>2]|0;if(!e)break;else{m=e;l=e}}}i=Y;return (c[A>>2]|0)>-1|0}function nk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+32|0;L=M+16|0;F=M+8|0;G=M;j=c[b>>2]|0;I=b+4|0;h=c[I>>2]|0;if((h|0)!=(j|0)){do h=h+-8|0;while((h|0)!=(j|0));c[I>>2]=h}E=d+20|0;B=c[E>>2]|0;D=d+16|0;C=c[D>>2]|0;h=(B-C|0)/20|0;if((B|0)!=(C|0)?(H=e+16|0,(c[e+20>>2]|0)!=(c[H>>2]|0)):0){wk(b,h);v=d+4|0;w=f+76|0;x=f+72|0;y=e+4|0;z=F+4|0;A=b+8|0;B=b+12|0;C=G+4|0;h=c[E>>2]|0;j=c[D>>2]|0;a:do if((h|0)==(j|0))K=(h-j|0)/20|0;else{u=0;b:while(1){n=$(c[d>>2]|0,u)|0;n=(c[v>>2]|0)+n|0;Jl(f,n)|0;o=c[x>>2]|0;p=(c[w>>2]|0)-o>>2;if(!p){k=2147483647;j=-1;h=-1}else{q=a[(c[D>>2]|0)+(u*20|0)+16>>0]|0;r=c[H>>2]|0;m=2147483647;s=-1;t=0;h=-1;while(1){k=c[o+(t<<2)>>2]|0;if(q<<24>>24==(a[r+(k*20|0)+16>>0]|0)){l=$(c[e>>2]|0,k)|0;l=yk(n,(c[y>>2]|0)+l|0)|0;if(l>>>0>>0){j=l;h=s}else{k=m;j=s;h=l>>>0>>0?l:h}}else{k=m;j=s}t=t+1|0;if((t|0)==(p|0))break;else{m=k;s=j}}}do if((j|0)!=-1){if((k|0)==-1)break b;if((h|0)==-1){c[F>>2]=u;c[z>>2]=k;h=c[I>>2]|0;if((h|0)==(c[A>>2]|0)){zk(b,F);break}else{r=F;s=c[r+4>>2]|0;t=h;c[t>>2]=c[r>>2];c[t+4>>2]=s;c[I>>2]=(c[I>>2]|0)+8;break}}if(+(j>>>0)/+(h>>>0)<+g[B>>2]){c[G>>2]=u;c[C>>2]=k;h=c[I>>2]|0;if((h|0)==(c[A>>2]|0)){zk(b,G);break}else{r=G;s=c[r+4>>2]|0;t=h;c[t>>2]=c[r>>2];c[t+4>>2]=s;c[I>>2]=(c[I>>2]|0)+8;break}}}while(0);u=u+1|0;h=((c[E>>2]|0)-(c[D>>2]|0)|0)/20|0;if(u>>>0>=h>>>0){K=h;break a}}f=kh(kh(nz(kh(kh(kh(10696,28718)|0,28565)|0,34302)|0,160)|0,34309)|0,28790)|0;c[L>>2]=ty(f+(c[(c[f>>2]|0)+-12>>2]|0)|0)|0;e=GD(L,13680)|0;e=Uc[c[(c[e>>2]|0)+28>>2]&63](e,10)|0;ED(L);oz(f,e)|0;bz(f)|0;Zb()}while(0);h=(c[I>>2]|0)-(c[b>>2]|0)>>3;if(h>>>0>K>>>0){K=kh(kh(nz(kh(kh(kh(10696,28808)|0,28565)|0,34302)|0,175)|0,34309)|0,28868)|0;c[L>>2]=ty(K+(c[(c[K>>2]|0)+-12>>2]|0)|0)|0;b=GD(L,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(L);oz(K,b)|0;bz(K)|0;Zb()}else J=h}else J=0;i=M;return J|0}function ok(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+32|0;G=H+16|0;A=H+8|0;C=H;h=c[b>>2]|0;E=b+4|0;f=c[E>>2]|0;if((f|0)!=(h|0)){do f=f+-8|0;while((f|0)!=(h|0));c[E>>2]=f}z=d+20|0;w=c[z>>2]|0;y=d+16|0;x=c[y>>2]|0;f=(w-x|0)/20|0;if((w|0)!=(x|0)?(B=e+20|0,D=e+16|0,(c[B>>2]|0)!=(c[D>>2]|0)):0){wk(b,f);s=d+4|0;t=e+4|0;u=A+4|0;v=b+8|0;w=b+12|0;x=C+4|0;f=c[z>>2]|0;h=c[y>>2]|0;if((f|0)==(h|0))h=(f-h|0)/20|0;else{f=h;r=0;do{o=$(c[d>>2]|0,r)|0;o=(c[s>>2]|0)+o|0;n=c[B>>2]|0;p=c[D>>2]|0;q=(n-p|0)/20|0;if((n|0)==(p|0)){j=2147483647;h=-1;f=-1}else{l=a[f+(r*20|0)+16>>0]|0;j=2147483647;m=-1;n=0;f=-1;while(1){if(l<<24>>24==(a[p+(n*20|0)+16>>0]|0)){k=$(c[e>>2]|0,n)|0;k=yk(o,(c[t>>2]|0)+k|0)|0;if(k>>>0>>0){j=n;h=k;f=m}else{h=m;f=k>>>0>>0?k:f}}else h=m;n=n+1|0;if((n|0)==(q|0))break;else m=h}}do if((h|0)!=-1){if((f|0)==-1){c[A>>2]=r;c[u>>2]=j;f=c[E>>2]|0;if((f|0)==(c[v>>2]|0)){zk(b,A);break}else{o=A;p=c[o+4>>2]|0;q=f;c[q>>2]=c[o>>2];c[q+4>>2]=p;c[E>>2]=(c[E>>2]|0)+8;break}}if(+(h>>>0)/+(f>>>0)<+g[w>>2]){c[C>>2]=r;c[x>>2]=j;f=c[E>>2]|0;if((f|0)==(c[v>>2]|0)){zk(b,C);break}else{o=C;p=c[o+4>>2]|0;q=f;c[q>>2]=c[o>>2];c[q+4>>2]=p;c[E>>2]=(c[E>>2]|0)+8;break}}}while(0);r=r+1|0;f=c[y>>2]|0;h=((c[z>>2]|0)-f|0)/20|0}while(r>>>0>>0)}f=(c[E>>2]|0)-(c[b>>2]|0)>>3;if(f>>>0>h>>>0){b=kh(kh(nz(kh(kh(kh(10696,28808)|0,28565)|0,34302)|0,112)|0,34309)|0,28868)|0;c[G>>2]=ty(b+(c[(c[b>>2]|0)+-12>>2]|0)|0)|0;E=GD(G,13680)|0;E=Uc[c[(c[E>>2]|0)+28>>2]&63](E,10)|0;ED(G);oz(b,E)|0;bz(b)|0;Zb()}else F=f}else F=0;i=H;return F|0}function pk(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;v=i;i=i+32|0;t=v+20|0;u=v+8|0;s=v+4|0;r=v;o=e+4|0;Hl(t,(c[o>>2]|0)-(c[e>>2]|0)>>1);Hl(u,(c[o>>2]|0)-(c[e>>2]|0)>>1);p=c[e>>2]|0;q=(c[o>>2]|0)-p>>3;n=c[b>>2]|0;b=c[d>>2]|0;d=c[t>>2]|0;l=c[u>>2]|0;if(q){m=0;do{B=c[p+(m<<3)>>2]|0;x=c[p+(m<<3)+4>>2]|0;A=m<<2;c[d+(A<<2)>>2]=c[n+(B*20|0)>>2];z=A|1;c[d+(z<<2)>>2]=c[n+(B*20|0)+4>>2];y=A|2;c[d+(y<<2)>>2]=c[n+(B*20|0)+8>>2];w=A|3;c[d+(w<<2)>>2]=c[n+(B*20|0)+12>>2];c[l+(A<<2)>>2]=c[b+(x*20|0)>>2];c[l+(z<<2)>>2]=c[b+(x*20|0)+4>>2];c[l+(y<<2)>>2]=c[b+(x*20|0)+8>>2];c[l+(w<<2)>>2]=c[b+(x*20|0)+12>>2];m=m+1|0}while((m|0)!=(q|0))}D=+(f|0);D=D+D*.20000000298023224;C=+(h|0);C=C+C*.20000000298023224;wn(a,-D,D,-C,C,0,0,12,10);g[a+8>>2]=+(j>>1|0);g[a+12>>2]=+(k>>1|0);c[a>>2]=j;c[a+4>>2]=k;xn(a,c[t>>2]|0,c[u>>2]|0,(c[o>>2]|0)-(c[e>>2]|0)>>3);zn(a,s,r);C=+g[s>>2];B=c[r>>2]|0;Vh(u);Vh(t);i=v;return (C<3.0?-1:B)|0}function qk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+48|0;j=z+32|0;x=z+28|0;y=z+24|0;v=z+20|0;w=z+16|0;k=z+12|0;m=z+8|0;q=z+4|0;t=z;Fl(b,k,m,q,t,e);h=c[a>>2]|0;u=a+4|0;e=c[u>>2]|0;if((e|0)!=(h|0)){do e=e+-8|0;while((e|0)!=(h|0));c[u>>2]=e}s=b+124|0;e=(c[b+128>>2]|0)-(c[s>>2]|0)|0;r=e>>2;if(r>>>0>(c[d+4>>2]|0)-(c[d>>2]|0)>>3>>>0){h=kh(kh(nz(kh(kh(kh(10696,29346)|0,29392)|0,34302)|0,342)|0,34309)|0,29505)|0;c[j>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;A=GD(j,13680)|0;A=Uc[c[(c[A>>2]|0)+28>>2]&63](A,10)|0;ED(j);oz(h,A)|0;bz(h)|0;Zb()}p=+(c[k>>2]|0)+.5;o=+(c[m>>2]|0)+.5;n=+(c[q>>2]|0)+.5;l=+(c[t>>2]|0)+.5;m=a+8|0;if((e|0)>0){j=0;k=c[b+112>>2]|0;while(1){Gl(b,x,y,v,w,+g[k>>2],+g[k+4>>2],+g[k+8>>2],+g[k+12>>2],p,o,n,l);do if((+g[x>>2]>2]>2]>2]>2]|0)+(c[(c[s>>2]|0)+(j<<2)>>2]<<3)|0;h=c[u>>2]|0;if((h|0)==(c[m>>2]|0)){zk(a,e);break}else{q=e;t=c[q+4>>2]|0;A=h;c[A>>2]=c[q>>2];c[A+4>>2]=t;c[u>>2]=(c[u>>2]|0)+8;break}}while(0);j=j+1|0;if((j|0)>=(r|0))break;else k=k+16|0}}i=z;return}function rk(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=i;i=i+64|0;q=r+44|0;p=r+32|0;o=r;n=e+4|0;Fk(q,(c[n>>2]|0)-(c[e>>2]|0)>>3);Fk(p,(c[n>>2]|0)-(c[e>>2]|0)>>3);m=c[e>>2]|0;n=(c[n>>2]|0)-m>>3;k=c[b>>2]|0;l=c[p>>2]|0;e=c[d>>2]|0;b=c[q>>2]|0;if(n){d=0;do{s=c[m+(d<<3)>>2]|0;c[l+(d<<3)>>2]=c[k+(s*20|0)>>2];c[l+(d<<3)+4>>2]=c[k+(s*20|0)+4>>2];s=c[m+(d<<3)+4>>2]|0;c[b+(d<<3)>>2]=c[e+(s*20|0)>>2];c[b+(d<<3)+4>>2]=c[e+(s*20|0)+4>>2];d=d+1|0}while((d|0)!=(n|0))}g[o>>2]=0.0;g[o+4>>2]=0.0;t=+(h|0);g[o+8>>2]=t;g[o+12>>2]=0.0;g[o+16>>2]=t;t=+(j|0);g[o+20>>2]=t;g[o+24>>2]=0.0;g[o+28>>2]=t;if(Hk(f,a,b,l,n,o,4)|0)e=Ik(a,h,j)|0;else e=0;Gk(p);Gk(q);i=r;return e|0}function sk(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0;r=i;i=i+16|0;q=r;h=h*h;m=f+4|0;wk(a,(c[m>>2]|0)-(c[f>>2]|0)>>3);o=q+4|0;p=a+4|0;n=a+8|0;j=c[f>>2]|0;if((c[m>>2]|0)!=(j|0)){l=0;do{j=c[j+(l<<3)+4>>2]|0;k=c[e>>2]|0;xk(q,o,b,+g[k+(j*20|0)>>2],+g[k+(j*20|0)+4>>2]);j=(c[f>>2]|0)+(l<<3)|0;k=c[j>>2]|0;u=c[d>>2]|0;t=+g[q>>2]-+g[u+(k*20|0)>>2];s=+g[o>>2]-+g[u+(k*20|0)+4>>2];do if(t*t+s*s<=h){k=c[p>>2]|0;if((k|0)==(c[n>>2]|0)){zk(a,j);break}else{v=j;j=c[v+4>>2]|0;u=k;c[u>>2]=c[v>>2];c[u+4>>2]=j;c[p>>2]=(c[p>>2]|0)+8;break}}while(0);l=l+1|0;j=c[f>>2]|0}while(l>>>0<(c[m>>2]|0)-j>>3>>>0)}i=r;return}function tk(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0;O=i;i=i+64|0;N=O+60|0;I=O+16|0;J=O+56|0;K=O+52|0;D=O+8|0;G=O;k=c[b>>2]|0;H=b+4|0;j=c[H>>2]|0;if((j|0)!=(k|0)){do j=j+-8|0;while((j|0)!=(k|0));c[H>>2]=j}C=d+20|0;B=d+16|0;do if((c[C>>2]|0)!=(c[B>>2]|0)?(E=e+20|0,F=e+16|0,(c[E>>2]|0)!=(c[F>>2]|0)):0){A=h*h;if(!(vk(I,f,0.0)|0)){z=kh(kh(nz(kh(kh(kh(10696,28540)|0,28565)|0,34302)|0,196)|0,34309)|0,28685)|0;c[N>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(N,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(N);oz(z,y)|0;bz(z)|0;Zb()}wk(b,((c[C>>2]|0)-(c[B>>2]|0)|0)/20|0);u=d+4|0;v=e+4|0;w=D+4|0;x=b+8|0;y=b+12|0;z=G+4|0;j=c[C>>2]|0;k=c[B>>2]|0;a:do if((j|0)==(k|0))M=(j-k|0)/20|0;else{t=0;b:while(1){p=$(c[d>>2]|0,t)|0;p=(c[u>>2]|0)+p|0;xk(J,K,I,+g[k+(t*20|0)>>2],+g[k+(t*20|0)+4>>2]);o=c[E>>2]|0;q=c[F>>2]|0;r=(o-q|0)/20|0;h=+g[J>>2];s=+g[K>>2];if((o|0)==(q|0)){f=2147483647;k=-1;j=-1}else{m=a[k+(t*20|0)+16>>0]|0;f=2147483647;n=-1;o=0;j=-1;while(1){if(m<<24>>24==(a[q+(o*20|0)+16>>0]|0)?(Q=h-+g[q+(o*20|0)>>2],P=s-+g[q+(o*20|0)+4>>2],!(Q*Q+P*P>A)):0){l=$(c[e>>2]|0,o)|0;l=yk(p,(c[v>>2]|0)+l|0)|0;if(l>>>0>>0){f=o;k=l;j=n}else{k=n;j=l>>>0>>0?l:j}}else k=n;o=o+1|0;if((o|0)==(r|0))break;else n=k}}do if((k|0)!=-1){if((f|0)==-1)break b;if((j|0)==-1){c[D>>2]=t;c[w>>2]=f;j=c[H>>2]|0;if((j|0)==(c[x>>2]|0)){zk(b,D);break}else{p=D;q=c[p+4>>2]|0;r=j;c[r>>2]=c[p>>2];c[r+4>>2]=q;c[H>>2]=(c[H>>2]|0)+8;break}}if(+(k>>>0)/+(j>>>0)<+g[y>>2]){c[G>>2]=t;c[z>>2]=f;j=c[H>>2]|0;if((j|0)==(c[x>>2]|0)){zk(b,G);break}else{p=G;q=c[p+4>>2]|0;r=j;c[r>>2]=c[p>>2];c[r+4>>2]=q;c[H>>2]=(c[H>>2]|0)+8;break}}}while(0);t=t+1|0;k=c[B>>2]|0;j=((c[C>>2]|0)-k|0)/20|0;if(t>>>0>=j>>>0){M=j;break a}}K=kh(kh(nz(kh(kh(kh(10696,28718)|0,28565)|0,34302)|0,241)|0,34309)|0,28790)|0;c[N>>2]=ty(K+(c[(c[K>>2]|0)+-12>>2]|0)|0)|0;J=GD(N,13680)|0;J=Uc[c[(c[J>>2]|0)+28>>2]&63](J,10)|0;ED(N);oz(K,J)|0;bz(K)|0;Zb()}while(0);j=(c[H>>2]|0)-(c[b>>2]|0)>>3;if(j>>>0>M>>>0){M=kh(kh(nz(kh(kh(kh(10696,28808)|0,28565)|0,34302)|0,256)|0,34309)|0,28868)|0;c[N>>2]=ty(M+(c[(c[M>>2]|0)+-12>>2]|0)|0)|0;K=GD(N,13680)|0;K=Uc[c[(c[K>>2]|0)+28>>2]&63](K,10)|0;ED(N);oz(M,K)|0;bz(M)|0;Zb()}else{L=j;break}}else L=0;while(0);i=O;return L|0}function uk(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function vk(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;d=+Ek(b);if(!(+O(+d)<=c)){c=1.0/d;h=b+16|0;k=b+20|0;i=b+28|0;m=b+32|0;g[a>>2]=c*(+g[h>>2]*+g[m>>2]-+g[k>>2]*+g[i>>2]);l=b+8|0;f=b+4|0;g[a+4>>2]=c*(+g[l>>2]*+g[i>>2]-+g[f>>2]*+g[m>>2]);g[a+8>>2]=c*(+g[f>>2]*+g[k>>2]-+g[l>>2]*+g[h>>2]);e=b+12|0;j=b+24|0;g[a+12>>2]=c*(+g[k>>2]*+g[j>>2]-+g[e>>2]*+g[m>>2]);g[a+16>>2]=c*(+g[b>>2]*+g[m>>2]-+g[l>>2]*+g[j>>2]);g[a+20>>2]=c*(+g[l>>2]*+g[e>>2]-+g[b>>2]*+g[k>>2]);g[a+24>>2]=c*(+g[e>>2]*+g[i>>2]-+g[h>>2]*+g[j>>2]);g[a+28>>2]=c*(+g[f>>2]*+g[j>>2]-+g[b>>2]*+g[i>>2]);g[a+32>>2]=c*(+g[b>>2]*+g[h>>2]-+g[f>>2]*+g[e>>2]);b=1}else b=0;return b|0}function wk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;e=f;d=c[a>>2]|0;if((c[a+8>>2]|0)-d>>3>>>0>>0){Ak(e,b,(c[a+4>>2]|0)-d>>3,a+8|0);Bk(a,e);Ck(e)}i=f;return}function xk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;var f=0.0;f=+g[c+32>>2]+(+g[c+24>>2]*d+ +g[c+28>>2]*e);g[a>>2]=(+g[c+8>>2]+(+g[c>>2]*d+ +g[c+4>>2]*e))/f;g[b>>2]=(+g[c+20>>2]+(+g[c+12>>2]*d+ +g[c+16>>2]*e))/f;return}function yk(a,b){a=a|0;b=b|0;var d=0;d=Dk(c[a>>2]|0,c[b>>2]|0)|0;d=(Dk(c[a+4>>2]|0,c[b+4>>2]|0)|0)+d|0;d=d+(Dk(c[a+8>>2]|0,c[b+8>>2]|0)|0)|0;d=d+(Dk(c[a+12>>2]|0,c[b+12>>2]|0)|0)|0;d=d+(Dk(c[a+16>>2]|0,c[b+16>>2]|0)|0)|0;d=d+(Dk(c[a+20>>2]|0,c[b+20>>2]|0)|0)|0;d=d+(Dk(c[a+24>>2]|0,c[b+24>>2]|0)|0)|0;d=d+(Dk(c[a+28>>2]|0,c[b+28>>2]|0)|0)|0;d=d+(Dk(c[a+32>>2]|0,c[b+32>>2]|0)|0)|0;d=d+(Dk(c[a+36>>2]|0,c[b+36>>2]|0)|0)|0;d=d+(Dk(c[a+40>>2]|0,c[b+40>>2]|0)|0)|0;d=d+(Dk(c[a+44>>2]|0,c[b+44>>2]|0)|0)|0;d=d+(Dk(c[a+48>>2]|0,c[b+48>>2]|0)|0)|0;d=d+(Dk(c[a+52>>2]|0,c[b+52>>2]|0)|0)|0;d=d+(Dk(c[a+56>>2]|0,c[b+56>>2]|0)|0)|0;d=d+(Dk(c[a+60>>2]|0,c[b+60>>2]|0)|0)|0;d=d+(Dk(c[a+64>>2]|0,c[b+64>>2]|0)|0)|0;d=d+(Dk(c[a+68>>2]|0,c[b+68>>2]|0)|0)|0;d=d+(Dk(c[a+72>>2]|0,c[b+72>>2]|0)|0)|0;d=d+(Dk(c[a+76>>2]|0,c[b+76>>2]|0)|0)|0;d=d+(Dk(c[a+80>>2]|0,c[b+80>>2]|0)|0)|0;d=d+(Dk(c[a+84>>2]|0,c[b+84>>2]|0)|0)|0;d=d+(Dk(c[a+88>>2]|0,c[b+88>>2]|0)|0)|0;return d+(Dk(c[a+92>>2]|0,c[b+92>>2]|0)|0)|0}function zk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>3)+1|0;if(f>>>0>536870911)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?f:d}else d=536870911;Ak(h,d,(c[g>>2]|0)-e>>3,a+8|0);g=h+8|0;f=c[g>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[g>>2]=f+8;Bk(a,h);Ck(h);i=j;return}function Ak(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function Bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>3)<<3)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function Ck(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function Dk(a,b){a=a|0;b=b|0;b=b^a;b=b-(b>>>1&1431655765)|0;b=(b>>>2&858993459)+(b&858993459)|0;return ($((b>>>4)+b&252645135,16843009)|0)>>>24|0}function Ek(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,h=0.0;c=+g[a+16>>2];f=+g[a+20>>2];e=+g[a+28>>2];h=+g[a+32>>2];d=+g[a+12>>2];b=+g[a+24>>2];return +((c*h-f*e)*+g[a>>2]-+g[a+4>>2]*(h*d-f*b)+(e*d-c*b)*+g[a+8>>2])}function Fk(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b){Dl(a,b);El(a,b)}return}function Gk(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Hk(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0;j=a+12|0;Nk(j,f);return Ok(b,d,e,f,h,i,a,j,a+24|0,+g[a+36>>2],c[a+40>>2]|0,c[a+44>>2]|0,c[a+48>>2]|0)|0}function Ik(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=i;i=i+96|0;e=n+88|0;h=n+40|0;k=n+32|0;m=n+24|0;d=n+48|0;f=n+16|0;j=n+8|0;l=n;if(vk(d,a,9.999999747378752e-06)|0?(o=+(b|0),g[f>>2]=o,g[f+4>>2]=0.0,g[j>>2]=o,o=+(c|0),g[j+4>>2]=o,g[l>>2]=0.0,g[l+4>>2]=o,Jk(e,d,4464),Jk(h,d,f),Jk(k,d,j),Jk(m,d,l),o=+($(c,b)|0)*.0001,!(+Kk(e,h,k,m)>2];e=c+4|0;f=+g[e>>2];d=+g[b+32>>2]+(+g[b+24>>2]*h+ +g[b+28>>2]*f);g[a>>2]=(+g[b+8>>2]+(h*+g[b>>2]+f*+g[b+4>>2]))/d;g[a+4>>2]=(+g[b+20>>2]+(+g[b+12>>2]*+g[c>>2]+ +g[b+16>>2]*+g[e>>2]))/d;return}function Kk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;n=+g[b>>2];f=+g[a>>2];q=n-f;l=+g[b+4>>2];p=+g[a+4>>2];o=l-p;e=+g[c>>2];r=e-f;k=+g[c+4>>2];h=k-p;j=+g[d>>2];f=j-f;m=+g[d+4>>2];p=m-p;i=+O(+(q*h-o*r))*.5;h=+O(+(r*p-h*f))*.5;f=+O(+(q*p-o*f))*.5;e=+O(+((n-e)*(m-k)-(l-k)*(j-e)))*.5;h=i0.0;f=+Mk(b,c,d)>0.0;c=+Mk(c,d,a)>0.0;d=+Mk(d,a,b)>0.0;d=(f?1:-1)+(e?1:-1)+(c?1:-1)+(d?1:-1)|0;return (((d|0)>-1?d:0-d|0)|0)==4|0}function Mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+g[a>>2];e=+g[a+4>>2];return +((+g[b>>2]-d)*(+g[c+4>>2]-e)-(+g[b+4>>2]-e)*(+g[c>>2]-d))}function Nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e>>2;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b<<2)|0,(d|0)!=(g|0)):0){do d=d+-4|0;while((d|0)!=(g|0));c[h>>2]=d}}else zl(a,b-f|0);return}function Ok(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+16|0;q=J+12|0;G=J+8|0;H=J;if((c[j+4>>2]|0)-(c[j>>2]|0)>>2>>>0<(n*9|0)>>>0){I=kh(kh(nz(kh(kh(kh(10696,28902)|0,28960)|0,34302)|0,119)|0,34309)|0,29088)|0;c[q>>2]=ty(I+(c[(c[I>>2]|0)+-12>>2]|0)|0)|0;E=GD(q,13680)|0;E=Uc[c[(c[E>>2]|0)+28>>2]&63](E,10)|0;ED(q);oz(I,E)|0;bz(I)|0;Zb()}I=c[k>>2]|0;if((c[k+4>>2]|0)-I>>2>>>0>>0){E=kh(kh(nz(kh(kh(kh(10696,29138)|0,28960)|0,34302)|0,120)|0,34309)|0,29188)|0;c[q>>2]=ty(E+(c[(c[E>>2]|0)+-12>>2]|0)|0)|0;D=GD(q,13680)|0;D=Uc[c[(c[D>>2]|0)+28>>2]&63](D,10)|0;ED(q);oz(E,D)|0;bz(E)|0;Zb()}if((c[l+4>>2]|0)-(c[l>>2]|0)>>3>>>0>>0){E=kh(kh(nz(kh(kh(kh(10696,29230)|0,28960)|0,34302)|0,121)|0,34309)|0,29292)|0;c[q>>2]=ty(E+(c[(c[E>>2]|0)+-12>>2]|0)|0)|0;D=GD(q,13680)|0;D=Uc[c[(c[D>>2]|0)+28>>2]&63](D,10)|0;ED(q);oz(E,D)|0;bz(E)|0;Zb()}if((e|0)>=4){c[G>>2]=1234;m=m*m;E=(p|0)<(e|0);Pk(I,e,0);Qk(I,e,e,G);z=I+4|0;A=I+8|0;B=I+12|0;C=(h|0)>0;if((n|0)>0&(o|0)>0){q=0;D=0;do{Qk(I,e,4,G);v=c[I>>2]<<1;k=b+(v<<2)|0;w=c[z>>2]<<1;r=b+(w<<2)|0;x=c[A>>2]<<1;t=b+(x<<2)|0;y=c[B>>2]<<1;u=b+(y<<2)|0;v=d+(v<<2)|0;w=d+(w<<2)|0;x=d+(x<<2)|0;y=d+(y<<2)|0;do if(Rk(k,r,t,u,v,w,x,y)|0?(F=q*9|0,Sk((c[j>>2]|0)+(F<<2)|0,k,r,t,u,v,w,x,y)|0):0){if(C?!(Tk((c[j>>2]|0)+(F<<2)|0,f,h)|0):0)break;q=q+1|0}while(0);D=D+1|0}while((q|0)<(n|0)&(D|0)<(o|0))}else q=0;m=1.0/m;y=E?p:e;if(q){k=c[l>>2]|0;if((q|0)>0){r=0;do{g[k+(r<<3)>>2]=0.0;c[k+(r<<3)+4>>2]=r;r=r+1|0}while((r|0)<(q|0))}if((q|0)>2&(e|0)>0){x=0;do{r=e-x|0;r=(y|0)<(r|0)?y:r;w=x;x=r+x|0;k=c[l>>2]|0;if(q){v=(r|0)>0;u=0;do{t=(c[j>>2]|0)+((c[k+(u<<3)+4>>2]|0)*9<<2)|0;if(v){r=w;do{k=c[I+(r<<2)>>2]<<1;s=+Uk(t,b+(k<<2)|0,d+(k<<2)|0,m);k=c[l>>2]|0;p=k+(u<<3)|0;g[p>>2]=s+ +g[p>>2];r=r+1|0}while((r|0)<(x|0))}u=u+1|0}while((u|0)!=(q|0))}Vk(H,k,q);q=q>>1}while((q|0)>2&(x|0)<(e|0));t=q}else t=q;k=c[l>>2]|0;q=c[k+4>>2]|0;if((t|0)>1){r=1;s=+g[k>>2];while(1){m=+g[k+(r<<3)>>2];if(m>2]|0;else m=s;r=r+1|0;if((r|0)>=(t|0))break;else s=m}}r=a;q=(c[j>>2]|0)+(q*9<<2)|0;k=r+36|0;do{c[r>>2]=c[q>>2];r=r+4|0;q=q+4|0}while((r|0)<(k|0));Wk(a);q=1}else q=0}else q=0;i=J;return q|0}function Pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)>=1?(c[a>>2]=d,(b|0)!=1):0){e=1;do{d=d+1|0;c[a+(e<<2)>>2]=d;e=e+1|0}while((e|0)!=(b|0))}return}function Qk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((d|0)>0){f=0;do{g=((c[e>>2]|0)*214013|0)+2531011|0;c[e>>2]=g;i=a+(f<<2)|0;g=a+(((g>>>16&32767|0)%(b|0)|0)<<2)|0;h=c[i>>2]|0;c[i>>2]=c[g>>2];c[g>>2]=h;f=f+1|0}while((f|0)<(d|0))}return}function Rk(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=+Mk(a,b,c)>0.0;if((!(i^+Mk(e,f,g)>0.0)?(i=+Mk(b,c,d)>0.0,!(i^+Mk(f,g,h)>0.0)):0)?(i=+Mk(c,d,a)>0.0,!(i^+Mk(g,h,e)>0.0)):0){a=+Mk(d,a,b)>0.0;a=a^+Mk(h,e,f)>0.0^1}else a=0;return a|0}function Sk(a,b,c,d,e,f,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+128|0;l=y+88|0;m=y+84|0;n=y+80|0;o=y+72|0;p=y+64|0;q=y+56|0;r=y+48|0;s=y+40|0;t=y+32|0;u=y+24|0;v=y+16|0;w=y+8|0;x=y;if((_k(q,r,s,t,m,o,b,c,d,e)|0?_k(u,v,w,x,n,p,f,h,j,k)|0:0)?$k(l,q,r,s,t,u,v,w,x)|0:0){al(a,l,+g[m>>2],o,+g[n>>2],p);a=1}else a=0;i=y;return a|0}function Tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+48|0;j=p+24|0;f=p+16|0;e=p+32|0;n=p+8|0;o=p;a:do if((d|0)>=2){m=b+8|0;g=b+16|0;Jk(j,a,b);Jk(f,a,m);Jk(e,a,g);l=j;k=c[l+4>>2]|0;h=n;c[h>>2]=c[l>>2];c[h+4>>2]=k;h=f;k=c[h+4>>2]|0;l=o;c[l>>2]=c[h>>2];c[l+4>>2]=k;if(Zk(b,m,g,j,f,e)|0){k=3;l=b;h=m;while(1){if((k|0)>=(d|0))break;l=l+8|0;h=h+8|0;g=g+8|0;Jk(j,a,g);if(!(Zk(l,h,g,f,e,j)|0)){e=0;break a}else{r=e;q=f;k=k+1|0;e=j;f=r;j=q}}if(Zk(h,g,b,f,e,n)|0)e=Zk(g,b,m,e,n,o)|0;else e=0}else e=0}else e=1;while(0);i=p;return e|0}function Uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,h=0;e=i;i=i+16|0;h=e;f=h+4|0;xk(h,f,a,+g[b>>2],+g[b+4>>2]);d=+Yk(+g[h>>2]-+g[c>>2],+g[f>>2]-+g[c+4>>2],d);i=e;return +d}function Vk(a,b,c){a=a|0;b=b|0;c=c|0;Xk(a,b,c,(c&1)+-1+((c|0)/2|0)|0);return}function Wk(a){a=a|0;var b=0,c=0.0,d=0;b=a+32|0;c=1.0/+g[b>>2];g[a>>2]=c*+g[a>>2];d=a+4|0;g[d>>2]=c*+g[d>>2];d=a+8|0;g[d>>2]=c*+g[d>>2];d=a+12|0;g[d>>2]=c*+g[d>>2];d=a+16|0;g[d>>2]=c*+g[d>>2];d=a+20|0;g[d>>2]=c*+g[d>>2];d=a+24|0;g[d>>2]=c*+g[d>>2];a=a+28|0;g[a>>2]=c*+g[a>>2];g[b>>2]=1.0;return}function Xk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+16|0;f=t;if((d|0)<=0){s=kh(kh(nz(kh(kh(kh(10696,31849)|0,31878)|0,34302)|0,82)|0,34309)|0,31985)|0;c[f>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(f,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(f);oz(s,r)|0;bz(s)|0;Zb()}if((e|0)<=0){s=kh(kh(nz(kh(kh(kh(10696,32004)|0,31878)|0,34302)|0,83)|0,34309)|0,32033)|0;c[f>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(f,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(f);oz(s,r)|0;bz(s)|0;Zb()}p=e+-1|0;q=b+(p<<3)|0;r=b+(p<<3)+4|0;if((d|0)>1){s=0;o=d+-1|0;do{m=+g[q>>2];n=c[r>>2]|0;d=s;f=o;do{while(1){h=b+(d<<3)|0;j=+g[h>>2];if(!(j>2]|0)>=(n|0))break}d=d+1|0}while(1){k=b+(f<<3)|0;l=+g[k>>2];if(!(m=(c[b+(f<<3)+4>>2]|0))break}f=f+-1|0}if((d|0)<=(f|0)){g[h>>2]=l;g[k>>2]=j;u=b+(d<<3)+4|0;k=b+(f<<3)+4|0;h=c[u>>2]|0;c[u>>2]=c[k>>2];c[k>>2]=h;d=d+1|0;f=f+-1|0}}while((d|0)<=(f|0));s=(f|0)<(p|0)?d:s;o=(d|0)<(e|0)?o:f}while((s|0)<(o|0))}b=q;e=c[b+4>>2]|0;u=a;c[u>>2]=c[b>>2];c[u+4>>2]=e;i=t;return}function Yk(a,b,c){a=+a;b=+b;c=+c;return +(+Z(+((a*a+b*b)*c+1.0)))}function Zk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;c=+Mk(a,b,c)>0.0;return c^+Mk(d,e,f)>0.0^1|0}function _k(a,b,c,d,e,f,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0;l=(+g[h>>2]+ +g[i>>2]+ +g[j>>2]+ +g[k>>2])*.25;g[f>>2]=l;x=h+4|0;w=i+4|0;v=j+4|0;u=k+4|0;m=(+g[x>>2]+ +g[w>>2]+ +g[v>>2]+ +g[u>>2])*.25;g[f+4>>2]=m;s=+g[h>>2]-l;t=+g[x>>2]-m;q=+g[i>>2]-l;r=+g[w>>2]-m;o=+g[j>>2]-l;p=+g[v>>2]-m;l=+g[k>>2]-l;m=+g[u>>2]-m;n=(+P(+(s*s+t*t))+ +P(+(q*q+r*r))+ +P(+(o*o+p*p))+ +P(+(l*l+m*m)))*.25;if(n==0.0)f=0;else{n=1.0/n*1.4142135623730951;g[e>>2]=n;g[a>>2]=s*n;g[a+4>>2]=t*+g[e>>2];g[b>>2]=q*+g[e>>2];g[b+4>>2]=r*+g[e>>2];g[c>>2]=o*+g[e>>2];g[c+4>>2]=p*+g[e>>2];g[d>>2]=l*+g[e>>2];g[d+4>>2]=m*+g[e>>2];f=1}return f|0}function $k(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;k=i;i=i+288|0;l=k;bl(l,b,c,d,e,f,g,h,j);if(cl(a,l)|0)a=!(+O(+(+Ek(a)))<1.0e-05);else a=0;i=k;return a|0}function al(a,b,c,d,e,f){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=f|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0;l=b+24|0;o=+g[l>>2];q=+g[f>>2];k=b+28|0;n=+g[k>>2];r=o*q+ +g[b>>2]/e;q=q*n+ +g[b+4>>2]/e;p=f+4|0;m=+g[p>>2];o=o*m+ +g[b+12>>2]/e;m=n*m+ +g[b+16>>2]/e;n=+g[d>>2]*c;h=d+4|0;i=+g[h>>2]*c;g[a>>2]=r*c;g[a+4>>2]=q*c;j=b+32|0;g[a+8>>2]=+g[j>>2]*+g[f>>2]+ +g[b+8>>2]/e-r*n-q*i;g[a+12>>2]=o*c;g[a+16>>2]=m*c;g[a+20>>2]=+g[j>>2]*+g[p>>2]+ +g[b+20>>2]/e-o*n-m*i;i=+g[l>>2]*c;g[a+24>>2]=i;e=+g[k>>2]*c;g[a+28>>2]=e;g[a+32>>2]=+g[j>>2]-i*+g[d>>2]-e*+g[h>>2];return}function bl(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;yl(a,b,f);yl(a+72|0,c,g);yl(a+144|0,d,h);yl(a+216|0,e,i);return}function cl(a,b){a=a|0;b=b|0;var c=0,d=0;d=i;i=i+288|0;c=d;if(((((((dl(c,b)|0?el(c,b)|0:0)?fl(c,b)|0:0)?gl(c,b)|0:0)?hl(c,b)|0:0)?il(c,b)|0:0)?jl(c,b)|0:0)?kl(c,b)|0:0)b=ll(a,c)|0;else b=0;i=d;return b|0}function dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0,h=0;f=i;i=i+32|0;h=f;g[h>>2]=+ql(b,b);c=b+36|0;g[h+4>>2]=+ql(c,c);d=b+72|0;g[h+8>>2]=+ql(d,d);d=b+108|0;g[h+12>>2]=+ql(d,d);d=b+144|0;g[h+16>>2]=+ql(d,d);d=b+180|0;g[h+20>>2]=+ql(d,d);d=b+216|0;g[h+24>>2]=+ql(d,d);d=b+252|0;g[h+28>>2]=+ql(d,d);d=xl(h)|0;e=+g[h+(d<<2)>>2];if(e==0.0)c=0;else{sl(b,b+(d*9<<2)|0);ol(a,b,1.0/+P(+e));gH(a+36|0,c|0,252)|0;c=1}i=f;return c|0}function el(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+32|0;j=h;c=a+36|0;d=b+36|0;rl(c,a,d);o=a+72|0;rl(o,a,b+72|0);n=a+108|0;rl(n,a,b+108|0);m=a+144|0;rl(m,a,b+144|0);l=a+180|0;rl(l,a,b+180|0);k=a+216|0;rl(k,a,b+216|0);e=a+252|0;rl(e,a,b+252|0);g[j>>2]=+ql(c,c);g[j+4>>2]=+ql(o,o);g[j+8>>2]=+ql(n,n);g[j+12>>2]=+ql(m,m);g[j+16>>2]=+ql(l,l);g[j+20>>2]=+ql(k,k);g[j+24>>2]=+ql(e,e);e=wl(j)|0;f=+g[j+(e<<2)>>2];if(f==0.0)c=0;else{o=(e*9|0)+9|0;sl(c,a+(o<<2)|0);sl(d,b+(o<<2)|0);ol(c,c,1.0/+P(+f));c=1}i=h;return c|0}function fl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+32|0;j=h;c=a+72|0;o=a+36|0;d=b+72|0;rl(c,o,d);n=a+108|0;rl(n,o,b+108|0);m=a+144|0;rl(m,o,b+144|0);l=a+180|0;rl(l,o,b+180|0);k=a+216|0;rl(k,o,b+216|0);e=a+252|0;rl(e,o,b+252|0);g[j>>2]=+ql(c,c);g[j+4>>2]=+ql(n,n);g[j+8>>2]=+ql(m,m);g[j+12>>2]=+ql(l,l);g[j+16>>2]=+ql(k,k);g[j+20>>2]=+ql(e,e);e=vl(j)|0;f=+g[j+(e<<2)>>2];if(f==0.0)c=0;else{o=(e*9|0)+18|0;sl(c,a+(o<<2)|0);sl(d,b+(o<<2)|0);ol(c,c,1.0/+P(+f));c=1}i=h;return c|0}function gl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0.0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+32|0;j=h;c=a+108|0;n=a+72|0;d=b+108|0;rl(c,n,d);m=a+144|0;rl(m,n,b+144|0);l=a+180|0;rl(l,n,b+180|0);k=a+216|0;rl(k,n,b+216|0);e=a+252|0;rl(e,n,b+252|0);g[j>>2]=+ql(c,c);g[j+4>>2]=+ql(m,m);g[j+8>>2]=+ql(l,l);g[j+12>>2]=+ql(k,k);g[j+16>>2]=+ql(e,e);e=ul(j)|0;f=+g[j+(e<<2)>>2];if(f==0.0)c=0;else{n=(e*9|0)+27|0;sl(c,a+(n<<2)|0);sl(d,b+(n<<2)|0);ol(c,c,1.0/+P(+f));c=1}i=h;return c|0}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h;c=a+144|0;m=a+108|0;f=b+144|0;rl(c,m,f);l=a+180|0;rl(l,m,b+180|0);k=a+216|0;rl(k,m,b+216|0);d=a+252|0;rl(d,m,b+252|0);g[j>>2]=+ql(c,c);g[j+4>>2]=+ql(l,l);g[j+8>>2]=+ql(k,k);g[j+12>>2]=+ql(d,d);d=tl(j)|0;e=+g[j+(d<<2)>>2];if(e==0.0)c=0;else{m=(d*9|0)+36|0;sl(c,a+(m<<2)|0);sl(f,b+(m<<2)|0);ol(c,c,1.0/+P(+e));c=1}i=h;return c|0}function il(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,h=0,j=0,k=0.0,l=0.0,m=0,n=0;h=i;i=i+16|0;j=h;c=a+180|0;n=a+144|0;e=b+180|0;rl(c,n,e);m=a+216|0;rl(m,n,b+216|0);f=a+252|0;rl(f,n,b+252|0);k=+ql(c,c);g[j>>2]=k;l=+ql(m,m);g[j+4>>2]=l;d=+ql(f,f);g[j+8>>2]=d;f=l>k&1;f=d>+g[j+(f<<2)>>2]?2:f;d=+g[j+(f<<2)>>2];if(d==0.0)c=0;else{n=(f*9|0)+45|0;sl(c,a+(n<<2)|0);sl(e,b+(n<<2)|0);ol(c,c,1.0/+P(+d));c=1}i=h;return c|0}function jl(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,h=0,j=0,k=0.0,l=0;h=i;i=i+16|0;j=h;c=a+216|0;l=a+180|0;e=b+216|0;rl(c,l,e);f=a+252|0;rl(f,l,b+252|0);d=+ql(c,c);g[j>>2]=d;k=+ql(f,f);g[j+4>>2]=k;f=k>d;d=+g[j+((f&1)<<2)>>2];if(d==0.0)c=0;else{l=f?63:54;sl(c,a+(l<<2)|0);sl(e,b+(l<<2)|0);ol(c,c,1.0/+P(+d));c=1}i=h;return c|0}function kl(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=a+252|0;rl(d,a+216|0,b+252|0);c=+ql(d,d);if(c==0.0)b=0;else{ol(d,d,1.0/+P(+c));b=1}return b|0}function ll(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+368|0;e=f+324|0;d=f;g[e>>2]=+ml(d,b,0);g[e+4>>2]=+ml(d+36|0,b,1);g[e+8>>2]=+ml(d+72|0,b,2);g[e+12>>2]=+ml(d+108|0,b,3);g[e+16>>2]=+ml(d+144|0,b,4);g[e+20>>2]=+ml(d+180|0,b,5);g[e+24>>2]=+ml(d+216|0,b,6);g[e+28>>2]=+ml(d+252|0,b,7);g[e+32>>2]=+ml(d+288|0,b,8);b=nl(e)|0;if(+g[e+(b<<2)>>2]==0.0)b=0;else{e=a;b=d+(b*9<<2)|0;a=e+36|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(a|0));b=1}i=f;return b|0}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;ol(a,b,-+g[b+(c<<2)>>2]);e=a+(c<<2)|0;g[e>>2]=+g[e>>2]+1.0;pl(a,b+36|0,-+g[b+(c+9<<2)>>2]);pl(a,b+72|0,-+g[b+(c+18<<2)>>2]);pl(a,b+108|0,-+g[b+(c+27<<2)>>2]);pl(a,b+144|0,-+g[b+(c+36<<2)>>2]);pl(a,b+180|0,-+g[b+(c+45<<2)>>2]);pl(a,b+216|0,-+g[b+(c+54<<2)>>2]);pl(a,b+252|0,-+g[b+(c+63<<2)>>2]);d=+ql(a,a);if(d==0.0)d=0.0;else{d=+P(+d);ol(a,a,1.0/d)}return +d}function nl(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;b=+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b;b=+g[a+16>>2]>+g[a+(b<<2)>>2]?4:b;b=+g[a+20>>2]>+g[a+(b<<2)>>2]?5:b;b=+g[a+24>>2]>+g[a+(b<<2)>>2]?6:b;b=+g[a+28>>2]>+g[a+(b<<2)>>2]?7:b;return (+g[a+32>>2]>+g[a+(b<<2)>>2]?8:b)|0}function ol(a,b,c){a=a|0;b=b|0;c=+c;g[a>>2]=+g[b>>2]*c;g[a+4>>2]=+g[b+4>>2]*c;g[a+8>>2]=+g[b+8>>2]*c;g[a+12>>2]=+g[b+12>>2]*c;g[a+16>>2]=+g[b+16>>2]*c;g[a+20>>2]=+g[b+20>>2]*c;g[a+24>>2]=+g[b+24>>2]*c;g[a+28>>2]=+g[b+28>>2]*c;g[a+32>>2]=+g[b+32>>2]*c;return}function pl(a,b,c){a=a|0;b=b|0;c=+c;var d=0;g[a>>2]=+g[a>>2]+ +g[b>>2]*c;d=a+4|0;g[d>>2]=+g[d>>2]+ +g[b+4>>2]*c;d=a+8|0;g[d>>2]=+g[d>>2]+ +g[b+8>>2]*c;d=a+12|0;g[d>>2]=+g[d>>2]+ +g[b+12>>2]*c;d=a+16|0;g[d>>2]=+g[d>>2]+ +g[b+16>>2]*c;d=a+20|0;g[d>>2]=+g[d>>2]+ +g[b+20>>2]*c;d=a+24|0;g[d>>2]=+g[d>>2]+ +g[b+24>>2]*c;d=a+28|0;g[d>>2]=+g[d>>2]+ +g[b+28>>2]*c;a=a+32|0;g[a>>2]=+g[a>>2]+ +g[b+32>>2]*c;return}function ql(a,b){a=a|0;b=b|0;return +(+g[a>>2]*+g[b>>2]+ +g[a+4>>2]*+g[b+4>>2]+ +g[a+8>>2]*+g[b+8>>2]+ +g[a+12>>2]*+g[b+12>>2]+ +g[a+16>>2]*+g[b+16>>2]+ +g[a+20>>2]*+g[b+20>>2]+ +g[a+24>>2]*+g[b+24>>2]+ +g[a+28>>2]*+g[b+28>>2]+ +g[a+32>>2]*+g[b+32>>2])}function rl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+ql(c,b);g[a>>2]=+g[a>>2]-d*+g[b>>2];c=a+4|0;g[c>>2]=+g[c>>2]-d*+g[b+4>>2];c=a+8|0;g[c>>2]=+g[c>>2]-d*+g[b+8>>2];c=a+12|0;g[c>>2]=+g[c>>2]-d*+g[b+12>>2];c=a+16|0;g[c>>2]=+g[c>>2]-d*+g[b+16>>2];c=a+20|0;g[c>>2]=+g[c>>2]-d*+g[b+20>>2];c=a+24|0;g[c>>2]=+g[c>>2]-d*+g[b+24>>2];c=a+28|0;g[c>>2]=+g[c>>2]-d*+g[b+28>>2];a=a+32|0;g[a>>2]=+g[a>>2]-d*+g[b+32>>2];return}function sl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[a>>2]|0;f=a+4|0;c[a>>2]=c[b>>2];d=b+4|0;c[b>>2]=g;g=c[f>>2]|0;e=a+8|0;c[f>>2]=c[d>>2];f=b+8|0;c[d>>2]=g;d=c[e>>2]|0;g=a+12|0;c[e>>2]=c[f>>2];e=b+12|0;c[f>>2]=d;f=c[g>>2]|0;d=a+16|0;c[g>>2]=c[e>>2];g=b+16|0;c[e>>2]=f;e=c[d>>2]|0;f=a+20|0;c[d>>2]=c[g>>2];d=b+20|0;c[g>>2]=e;g=c[f>>2]|0;e=a+24|0;c[f>>2]=c[d>>2];f=b+24|0;c[d>>2]=g;d=c[e>>2]|0;g=a+28|0;c[e>>2]=c[f>>2];e=b+28|0;c[f>>2]=d;f=c[g>>2]|0;d=a+32|0;c[g>>2]=c[e>>2];b=b+32|0;c[e>>2]=f;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function tl(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;return (+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b)|0}function ul(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;b=+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b;return (+g[a+16>>2]>+g[a+(b<<2)>>2]?4:b)|0}function vl(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;b=+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b;b=+g[a+16>>2]>+g[a+(b<<2)>>2]?4:b;return (+g[a+20>>2]>+g[a+(b<<2)>>2]?5:b)|0}function wl(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;b=+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b;b=+g[a+16>>2]>+g[a+(b<<2)>>2]?4:b;b=+g[a+20>>2]>+g[a+(b<<2)>>2]?5:b;return (+g[a+24>>2]>+g[a+(b<<2)>>2]?6:b)|0}function xl(a){a=a|0;var b=0;b=+g[a+4>>2]>+g[a>>2]&1;b=+g[a+8>>2]>+g[a+(b<<2)>>2]?2:b;b=+g[a+12>>2]>+g[a+(b<<2)>>2]?3:b;b=+g[a+16>>2]>+g[a+(b<<2)>>2]?4:b;b=+g[a+20>>2]>+g[a+(b<<2)>>2]?5:b;b=+g[a+24>>2]>+g[a+(b<<2)>>2]?6:b;return (+g[a+28>>2]>+g[a+(b<<2)>>2]?7:b)|0}function yl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;g[a>>2]=-+g[b>>2];e=b+4|0;g[a+4>>2]=-+g[e>>2];g[a+8>>2]=-1.0;f=a+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;g[a+24>>2]=+g[d>>2]*+g[b>>2];g[a+28>>2]=+g[d>>2]*+g[e>>2];c[a+32>>2]=c[d>>2];f=a+36|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;g[a+48>>2]=-+g[b>>2];g[a+52>>2]=-+g[e>>2];g[a+56>>2]=-1.0;d=d+4|0;g[a+60>>2]=+g[d>>2]*+g[b>>2];g[a+64>>2]=+g[d>>2]*+g[e>>2];c[a+68>>2]=c[d>>2];return}function zl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;g=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;e=d;if(g-e>>2>>>0>>0){d=c[a>>2]|0;e=(e-d>>2)+b|0;if(e>>>0>1073741823)Rt(a);f=d;d=g-f|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d}else d=1073741823;Al(j,d,(c[h>>2]|0)-f>>2,a+8|0);h=j+8|0;g=c[h>>2]|0;iH(g|0,0,b<<2|0)|0;c[h>>2]=g+(b<<2);Bl(a,j);Cl(j)}else{iH(d|0,0,b<<2|0)|0;c[h>>2]=d+(b<<2)}i=k;return}function Al(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<2)|0;c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<2);return}function Bl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>2)<<2)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function Cl(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-4|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function Dl(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>536870911)Rt(a);else{d=Tt(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function El(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[e>>2]|0;a=b;f=d;while(1){g[f>>2]=0.0;g[f+4>>2]=0.0;a=a+-1|0;if(!a)break;else f=f+8|0}c[e>>2]=d+(b<<3);return}function Fl(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+16|0;k=l;j=a+88|0;n=a+84|0;h=a+52|0;m=(((g|0)%(c[j>>2]|0)|0|0)%(c[n>>2]|0)|0|0)%(c[h>>2]|0)|0;c[b>>2]=m;m=(((g-m|0)%(c[j>>2]|0)|0|0)%(c[n>>2]|0)|0|0)/(c[h>>2]|0)|0;c[d>>2]=m;m=g-(c[b>>2]|0)-($(c[h>>2]|0,m)|0)|0;m=((m|0)%(c[j>>2]|0)|0|0)/(c[n>>2]|0)|0;c[e>>2]=m;g=g-(c[b>>2]|0)-($(c[h>>2]|0,c[d>>2]|0)|0)|0;g=g-($(c[n>>2]|0,m)|0)|0;j=(g|0)/(c[j>>2]|0)|0;c[f>>2]=j;g=c[b>>2]|0;if((g|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,32226)|0,32052)|0,34302)|0,190)|0,34309)|0,32259)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((g|0)>=(c[h>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,32277)|0,32052)|0,34302)|0,191)|0,34309)|0,32259)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}g=c[d>>2]|0;if((g|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,32317)|0,32052)|0,34302)|0,192)|0,34309)|0,32350)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((g|0)>=(c[a+56>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,32368)|0,32052)|0,34302)|0,193)|0,34309)|0,32350)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}g=c[e>>2]|0;if((g|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,32408)|0,32052)|0,34302)|0,194)|0,34309)|0,32445)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((g|0)>=(c[a+60>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,32467)|0,32052)|0,34302)|0,195)|0,34309)|0,32445)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((j|0)<=-1){n=kh(kh(nz(kh(kh(kh(10696,32515)|0,32052)|0,34302)|0,196)|0,34309)|0,32552)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}if((j|0)<(c[a+64>>2]|0)){i=l;return}else{n=kh(kh(nz(kh(kh(kh(10696,32574)|0,32052)|0,34302)|0,197)|0,34309)|0,32552)|0;c[k>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(k,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(k);oz(n,m)|0;bz(n)|0;Zb()}}function Gl(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;var q=0,r=0;r=i;i=i+16|0;q=r;g[b>>2]=+O(+(h-m));g[d>>2]=+O(+(j-n));g[f>>2]=+O(+(l-p));m=+O(+(k-o));n=+(c[a+60>>2]|0)-m;n=m>2]=n;if(!(n>=0.0)){r=kh(kh(nz(kh(kh(kh(10696,29524)|0,32052)|0,34302)|0,333)|0,34309)|0,29565)|0;c[q>>2]=ty(r+(c[(c[r>>2]|0)+-12>>2]|0)|0)|0;a=GD(q,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(q);oz(r,a)|0;bz(r)|0;Zb()}else{i=r;return}}function Hl(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;c[a+8>>2]=0;if(b){Il(a,b);a=c[d>>2]|0;iH(a|0,0,b<<2|0)|0;c[d>>2]=a+(b<<2)}return}function Il(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>1073741823)Rt(a);else{d=Tt(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function Jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;u=i;i=i+32|0;m=u+24|0;l=u+20|0;k=u+16|0;n=u+12|0;o=u+8|0;p=u+4|0;s=u;t=a+8|0;if(!(c[t>>2]|0)){r=kh(kh(nz(kh(kh(kh(10696,29599)|0,29634)|0,34302)|0,405)|0,34309)|0,29762)|0;c[m>>2]=ty(r+(c[(c[r>>2]|0)+-12>>2]|0)|0)|0;q=GD(m,13680)|0;q=Uc[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;ED(m);oz(r,q)|0;bz(r)|0;Zb()}c[a+100>>2]=0;q=a+72|0;e=c[q>>2]|0;r=a+76|0;d=c[r>>2]|0;if((d|0)!=(e|0)){do d=d+-4|0;while((d|0)!=(e|0));c[r>>2]=d}h=a+84|0;j=a+88|0;e=c[h>>2]|0;d=c[j>>2]|0;if((e|0)!=(d|0))do{f=e;g=d-f|0;if((g|0)>8){d=d+-8|0;v=e;w=c[v>>2]|0;v=c[v+4>>2]|0;y=d;x=c[y+4>>2]|0;c[e>>2]=c[y>>2];c[e+4>>2]=x;e=d;c[e>>2]=w;c[e+4>>2]=v;c[n>>2]=f;c[o>>2]=d;c[p>>2]=f;c[k>>2]=c[n>>2];c[l>>2]=c[o>>2];c[m>>2]=c[p>>2];Kl(k,l,s,(g>>3)+-1|0,m);d=c[j>>2]|0}c[j>>2]=d+-8;e=c[h>>2]|0;d=c[j>>2]|0}while((e|0)!=(d|0));Ll(a,h,c[t>>2]|0,b);i=u;return (c[r>>2]|0)-(c[q>>2]|0)>>2|0}function Kl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[f>>2]|0;k=c[a>>2]|0;d=g-k|0;if((e|0)>=2?(l=(e+-2|0)/2|0,(l|0)>=(d>>3|0)):0){d=d>>2|1;b=k+(d<<3)|0;a=d+1|0;if((a|0)<(e|0)){j=(c[k+(d<<3)+4>>2]|0)>>>0>(c[k+(a<<3)+4>>2]|0)>>>0;b=j?k+(a<<3)|0:b;d=j?a:d}if((c[b+4>>2]|0)>>>0<=(c[g+4>>2]|0)>>>0){j=g;i=c[j>>2]|0;j=c[j+4>>2]|0;a=d;while(1){d=b;n=d;m=c[n+4>>2]|0;h=g;c[h>>2]=c[n>>2];c[h+4>>2]=m;if((l|0)<(a|0))break;a=a<<1|1;g=k+(a<<3)|0;h=a+1|0;if((h|0)<(e|0)){n=(c[k+(a<<3)+4>>2]|0)>>>0>(c[k+(h<<3)+4>>2]|0)>>>0;g=n?k+(h<<3)|0:g;a=n?h:a}if((c[g+4>>2]|0)>>>0>j>>>0)break;else{b=g;g=d}}c[f>>2]=b;n=d;c[n>>2]=i;c[n+4>>2]=j}}return}function Ll(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;v=i;i=i+64|0;n=v+48|0;m=v+44|0;l=v+40|0;o=v+36|0;p=v+32|0;q=v+20|0;r=v;h=v+28|0;j=v+24|0;k=v+16|0;u=v+4|0;if(!(a[e+100>>0]|0)){c[u>>2]=0;k=u+4|0;c[k>>2]=0;c[u+8>>2]=0;Nl(e,u,d,f);h=c[u>>2]|0;if((c[k>>2]|0)!=(h|0)){j=0;do{Ll(b,d,c[h+(j<<2)>>2]|0,f);j=j+1|0;h=c[u>>2]|0}while(j>>>0<(c[k>>2]|0)-h>>2>>>0)}k=b+100|0;if((c[k>>2]|0)<(c[b+104>>2]|0)?(s=c[d>>2]|0,t=d+4|0,g=c[t>>2]|0,(s|0)!=(g|0)):0){e=c[s>>2]|0;h=s;j=g-h|0;if((j|0)>8){g=g+-8|0;w=s;x=c[w>>2]|0;w=c[w+4>>2]|0;z=g;y=c[z+4>>2]|0;c[s>>2]=c[z>>2];c[s+4>>2]=y;s=g;c[s>>2]=x;c[s+4>>2]=w;c[o>>2]=h;c[p>>2]=g;c[q>>2]=h;c[l>>2]=c[o>>2];c[m>>2]=c[p>>2];c[n>>2]=c[q>>2];Kl(l,m,r,(j>>3)+-1|0,n);g=c[t>>2]|0}c[t>>2]=g+-8;c[k>>2]=(c[k>>2]|0)+1;Ll(b,d,e,f)}Ol(u)}else{c[h>>2]=c[b+76>>2];c[j>>2]=c[e+116>>2];c[k>>2]=c[e+120>>2];c[l>>2]=c[h>>2];c[m>>2]=c[j>>2];c[n>>2]=c[k>>2];Ml(b+72|0,l,m,n)|0}i=v;return}function Ml(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;p=q;g=c[a>>2]|0;b=c[b>>2]|0;k=b;f=g;o=k-f>>2;d=c[d>>2]|0;h=c[e>>2]|0;m=h-d|0;n=m>>2;a:do if((m|0)>0){j=c[a+8>>2]|0;l=a+4|0;m=c[l>>2]|0;e=m;if((n|0)<=(j-e>>2|0)){k=e-k|0;e=k>>2;if((n|0)>(e|0)){f=d+(e<<2)|0;if((f|0)!=(h|0)){j=f;e=m;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((j|0)!=(h|0));c[l>>2]=e}if((k|0)<=0)break}else f=h;am(a,b,m,g+(n+o<<2)|0);if((d|0)==(f|0))break;else e=b;while(1){c[e>>2]=c[d>>2];d=d+4|0;if((d|0)==(f|0))break a;else e=e+4|0}}f=(e-f>>2)+n|0;if(f>>>0>1073741823)Rt(a);e=j-g|0;if(e>>2>>>0<536870911){e=e>>1;e=e>>>0>>0?f:e}else e=1073741823;Al(p,e,k-g>>2,a+8|0);f=h;g=p+8|0;if((d|0)!=(f|0)){e=c[g>>2]|0;do{c[e>>2]=c[d>>2];e=e+4|0;d=d+4|0}while((d|0)!=(f|0));d=e;c[g>>2]=d}b=bm(a,p,b)|0;Cl(p)}while(0);i=q;return b|0}function Nl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+48|0;p=w+36|0;o=w+32|0;q=w+28|0;r=w+24|0;s=w;v=w+12|0;l=w+8|0;t=w+4|0;u=a+104|0;Pl(v,(c[a+108>>2]|0)-(c[u>>2]|0)>>2);n=v+4|0;a=c[v>>2]|0;if((c[n>>2]|0)==(a|0))m=-1;else{j=0;k=-1;f=-1;while(1){h=c[(c[u>>2]|0)+(j<<2)>>2]|0;g=yk(h+4|0,e)|0;c[a+(j<<3)>>2]=h;c[a+(j<<3)+4>>2]=g;h=g>>>0>>0;f=h?j:f;j=j+1|0;a=c[v>>2]|0;if(j>>>0>=(c[n>>2]|0)-a>>3>>>0){m=f;break}else k=h?g:k}}if((m|0)==-1){e=kh(kh(nz(kh(kh(kh(10696,29782)|0,29634)|0,34302)|0,155)|0,34309)|0,29816)|0;c[p>>2]=ty(e+(c[(c[e>>2]|0)+-12>>2]|0)|0)|0;k=GD(p,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(p);oz(e,k)|0;bz(e)|0;Zb()}a=c[(c[u>>2]|0)+(m<<2)>>2]|0;c[l>>2]=a;k=b+4|0;f=c[k>>2]|0;e=b+8|0;if((f|0)==(c[e>>2]|0))Ql(b,l);else{c[f>>2]=a;c[k>>2]=(c[k>>2]|0)+4}h=d+4|0;j=d+8|0;a=c[v>>2]|0;if((c[n>>2]|0)!=(a|0)){g=0;do{do if((g|0)!=(m|0)){f=a+(g<<3)|0;if((c[a+(g<<3)+4>>2]|0)==(c[a+(m<<3)+4>>2]|0)){a=c[(c[u>>2]|0)+(g<<2)>>2]|0;c[t>>2]=a;f=c[k>>2]|0;if((f|0)==(c[e>>2]|0)){Ql(b,t);break}else{c[f>>2]=a;c[k>>2]=(c[k>>2]|0)+4;break}}a=c[h>>2]|0;if((a|0)==(c[j>>2]|0)){Rl(d,f);a=c[h>>2]|0}else{l=c[f+4>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=l;a=(c[h>>2]|0)+8|0;c[h>>2]=a}f=a;l=c[d>>2]|0;c[q>>2]=l;c[r>>2]=f;c[o>>2]=c[q>>2];c[p>>2]=c[r>>2];Sl(o,p,s,f-l>>3)}while(0);g=g+1|0;a=c[v>>2]|0}while(g>>>0<(c[n>>2]|0)-a>>3>>>0)}Tl(v);i=w;return}function Ol(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-4|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Pl(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b){_l(a,b);$l(a,b)}return}function Ql(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>2)+1|0;if(f>>>0>1073741823)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?f:d}else d=1073741823;Xl(h,d,(c[g>>2]|0)-e>>2,a+8|0);g=h+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[g>>2]=f+4;Yl(a,h);Zl(h);i=j;return}function Rl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>3)+1|0;if(f>>>0>536870911)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?f:d}else d=536870911;Ul(h,d,(c[g>>2]|0)-e>>3,a+8|0);g=h+8|0;f=c[g>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[g>>2]=f+8;Vl(a,h);Wl(h);i=j;return}function Sl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;if((e|0)>1?(g=(e+-2|0)/2|0,i=c[a>>2]|0,h=c[b>>2]|0,f=h+-8|0,c[b>>2]=f,(c[i+(g<<3)+4>>2]|0)>>>0>(c[h+-4>>2]|0)>>>0):0){h=f;e=c[h>>2]|0;h=c[h+4>>2]|0;d=g;while(1){a=i+(d<<3)|0;k=a;j=c[k+4>>2]|0;g=f;c[g>>2]=c[k>>2];c[g+4>>2]=j;if(!d){d=a;f=a;break}d=(d+-1|0)/2|0;if((c[i+(d<<3)+4>>2]|0)>>>0<=h>>>0){d=a;f=a;break}else f=a}c[b>>2]=d;k=f;c[k>>2]=e;c[k+4>>2]=h}return}function Tl(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Ul(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function Vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=c[a>>2]|0;f=a+4|0;d=c[f>>2]|0;g=b+4|0;if((d|0)!=(e|0))do{d=d+-8|0;j=d;i=c[j+4>>2]|0;h=(c[g>>2]|0)+-8|0;c[h>>2]=c[j>>2];c[h+4>>2]=i;c[g>>2]=(c[g>>2]|0)+-8}while((d|0)!=(e|0));h=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=h;h=b+8|0;j=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=j;h=a+8|0;j=b+12|0;i=c[h>>2]|0;c[h>>2]=c[j>>2];c[j>>2]=i;c[b>>2]=c[g>>2];return}function Wl(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function Xl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<2)|0;c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<2);return}function Yl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>2)<<2)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function Zl(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-4|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function _l(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>536870911)Rt(a);else{d=Tt(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function $l(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[e>>2]|0;a=b;f=d;while(1){c[f>>2]=0;c[f+4>>2]=0;a=a+-1|0;if(!a)break;else f=f+8|0}c[e>>2]=d+(b<<3);return}function am(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=a+4|0;i=c[h>>2]|0;f=i-e|0;g=f>>2;e=b+(g<<2)|0;if(e>>>0>>0){a=i;do{c[a>>2]=c[e>>2];e=e+4|0;a=a+4|0}while(e>>>0>>0);c[h>>2]=a}hH(i+(0-g<<2)|0,b|0,f|0)|0;return}function bm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+4|0;e=c[f>>2]|0;g=c[a>>2]|0;i=d;h=i-g|0;j=e+(0-(h>>2)<<2)|0;c[f>>2]=j;gH(j|0,g|0,h|0)|0;h=a+4|0;g=b+8|0;i=(c[h>>2]|0)-i|0;gH(c[g>>2]|0,d|0,i|0)|0;c[g>>2]=(c[g>>2]|0)+(i>>2<<2);d=c[a>>2]|0;c[a>>2]=c[f>>2];c[f>>2]=d;d=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=d;g=a+8|0;a=b+12|0;d=c[g>>2]|0;c[g>>2]=c[a>>2];c[a>>2]=d;c[b>>2]=c[f>>2];return e|0}function cm(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b){dm(a,b);em(a,b)}return}function dm(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>214748364)Rt(a);else{d=Tt(b*20|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*20|0);return}}function em(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;b=d;d=c[e>>2]|0;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;a[d+16>>0]=1;d=(c[e>>2]|0)+20|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function fm(a){a=a|0;im(a+24|0);jm(a+12|0);Vh(a);return}function gm(a){a=a|0;var b=0;hm(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function hm(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;bk(a+12|0);Vt(a)}while((b|0)!=0);return}function im(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function jm(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-4|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function km(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=a;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));lm(a,b,d,e,f);return}function lm(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;Uh(a,d*9|0);mm(a+24|0,d);g[a+36>>2]=b;c[a+40>>2]=d;c[a+44>>2]=e;c[a+48>>2]=f;return}function mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e>>3;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b<<3)|0,(d|0)!=(g|0)):0){do d=d+-8|0;while((d|0)!=(g|0));c[h>>2]=d}}else nm(a,b-f|0);return}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;f=c[a+8>>2]|0;j=a+4|0;d=c[j>>2]|0;if(f-d>>3>>>0>>0){e=c[a>>2]|0;h=(d-e>>3)+b|0;if(h>>>0>536870911)Rt(a);d=f-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?h:d}else d=536870911;pm(k,d,(c[j>>2]|0)-e>>3,a+8|0);f=k+8|0;e=c[f>>2]|0;d=b;h=e;while(1){g[h>>2]=0.0;c[h+4>>2]=0;d=d+-1|0;if(!d)break;else h=h+8|0}c[f>>2]=e+(b<<3);qm(a,k);rm(k)}else om(a,b);i=l;return}function om(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[e>>2]|0;a=b;f=d;while(1){g[f>>2]=0.0;c[f+4>>2]=0;a=a+-1|0;if(!a)break;else f=f+8|0}c[e>>2]=d+(b<<3);return}function pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function qm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>3)<<3)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function rm(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function sm(a){a=a|0;var b=0,d=0,e=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-12|0;while((b|0)!=(d|0));c[e>>2]=b}Vt(d);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function tm(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>357913941)Rt(a);else{d=Tt(b*12|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*12|0);return}}function um(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function vm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(24)|0;c[e+8>>2]=c[d>>2];c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function wm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;xm(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function xm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)ym(a,b)}}else ym(a,b);return}function ym(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=(b|0)!=0;if(d)f=Tt(b<<2)|0;else f=0;e=c[a>>2]|0;c[a>>2]=f;if(e)Vt(e);c[a+4>>2]=b;a:do if(d){if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}while(0);return}function zm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;e=g+8|0;f=g;d=ik(a,b)|0;if(!d){Am(e,a,b);d=c[e>>2]|0;c[e>>2]=0;Bm(f,a,d);d=c[f>>2]|0}i=g;return d+12|0}function Am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(20)|0;c[e+8>>2]=c[d>>2];c[e+12>>2]=0;c[e+16>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function Bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;Cm(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function Cm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Dm(a,b)}}else Dm(a,b);return}function Dm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=(b|0)!=0;if(d)f=Tt(b<<2)|0;else f=0;e=c[a>>2]|0;c[a>>2]=f;if(e)Vt(e);c[a+4>>2]=b;a:do if(d){if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}while(0);return}function Em(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;Fm(h,d);e=c[h>>2]|0;f=(c[h+4>>2]|0)-e>>2;if(f){g=0;do{c[e+(g<<2)>>2]=g;g=g+1|0}while((g|0)!=(f|0))}Gm(a,b,d,e,f);jm(h);i=j;return}function Fm(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;c[a+8>>2]=0;if(b){bn(a,b);a=c[d>>2]|0;iH(a|0,0,b<<2|0)|0;c[d>>2]=a+(b<<2)}return}function Gm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=Tt(128)|0;j=b+4|0;i=c[j>>2]|0;c[j>>2]=i+1;c[h>>2]=i;a[h+100>>0]=1;i=h+104|0;j=h+4|0;k=j+96|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(k|0));c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;i=b+8|0;j=c[i>>2]|0;c[i>>2]=h;if(j){Hm(j);Vt(j);h=c[i>>2]|0}a[h+100>>0]=0;Im(b,h,d,e,f,g);return}function Hm(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+104|0;f=a+108|0;b=c[e>>2]|0;if((c[f>>2]|0)!=(b|0)){d=0;do{b=c[b+(d<<2)>>2]|0;if(b){Hm(b);Vt(b)}d=d+1|0;b=c[e>>2]|0}while(d>>>0<(c[f>>2]|0)-b>>2>>>0)}jm(a+116|0);an(e);return}function Im(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+32|0;t=w+24|0;v=w+4|0;u=w;r=c[b+16>>2]|0;s=c[b+108>>2]|0;if((((r|0)>(s|0)?r:s)|0)>=(j|0)){a[d+100>>0]=1;k=d+116|0;Nk(k,j);if((j|0)>0){k=c[k>>2]|0;l=0;do{c[k+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0}while((l|0)<(j|0))}i=w;return}c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[v+16>>2]=1.0;Jm(b+12|0,e,f,h,j);p=b+40|0;k=c[p>>2]|0;q=b+36|0;l=c[q>>2]|0;if((k-l>>2|0)!=(j|0)){s=kh(kh(nz(kh(kh(kh(10696,30157)|0,29634)|0,34302)|0,363)|0,34309)|0,30213)|0;c[t>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(t,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(t);oz(s,r)|0;bz(s)|0;Zb()}a:do if((k|0)!=(l|0)){o=0;while(1){k=c[l+(o<<2)>>2]|0;if((k|0)==-1){k=9;break}if((k|0)>=(j|0)){k=11;break}k=h+(k<<2)|0;if((c[k>>2]|0)>=(f|0)){k=13;break}k=Km(v,k)|0;l=h+(o<<2)|0;m=k+4|0;n=c[m>>2]|0;if((n|0)==(c[k+8>>2]|0))Lm(k,l);else{c[n>>2]=c[l>>2];c[m>>2]=n+4}o=o+1|0;l=c[q>>2]|0;if(o>>>0>=(c[p>>2]|0)-l>>2>>>0)break a}if((k|0)==9){s=kh(kh(nz(kh(kh(kh(10696,30235)|0,29634)|0,34302)|0,365)|0,34309)|0,30278)|0;c[t>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(t,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(t);oz(s,r)|0;bz(s)|0;Zb()}else if((k|0)==11){s=kh(kh(nz(kh(kh(kh(10696,30300)|0,29634)|0,34302)|0,366)|0,34309)|0,30351)|0;c[t>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(t,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(t);oz(s,r)|0;bz(s)|0;Zb()}else if((k|0)==13){s=kh(kh(nz(kh(kh(kh(10696,30375)|0,29634)|0,34302)|0,367)|0,34309)|0,30351)|0;c[t>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(t,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(t);oz(s,r)|0;bz(s)|0;Zb()}}while(0);k=c[v+12>>2]|0;b:do if((k|0)==1){a[d+100>>0]=1;k=d+116|0;Nk(k,j);if((j|0)>0){k=c[k>>2]|0;l=0;do{c[k+(l<<2)>>2]=c[h+(l<<2)>>2];l=l+1|0}while((l|0)<(j|0))}}else{s=d+104|0;Mm(s,k);k=c[v+8>>2]|0;j=b+4|0;r=d+108|0;h=d+112|0;if(k){l=k;d=k;while(1){o=l+16|0;p=l+12|0;if((c[o>>2]|0)==(c[p>>2]|0))break;q=Tt(128)|0;k=c[j>>2]|0;c[j>>2]=k+1;m=e+((c[l+8>>2]|0)*96|0)|0;c[q>>2]=k;k=q+100|0;l=q+104|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;l=q+4|0;n=l+96|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));c[u>>2]=q;a[k>>0]=0;k=c[r>>2]|0;if((k|0)==(c[h>>2]|0))Nm(s,u);else{c[k>>2]=q;c[r>>2]=(c[r>>2]|0)+4}k=c[p>>2]|0;Im(b,q,e,f,k,(c[o>>2]|0)-k>>2);k=c[d>>2]|0;if(!k)break b;else{l=k;d=k}}b=kh(kh(nz(kh(kh(kh(10696,30436)|0,29634)|0,34302)|0,387)|0,34309)|0,30482)|0;c[t>>2]=ty(b+(c[(c[b>>2]|0)+-12>>2]|0)|0)|0;f=GD(t,13680)|0;f=Uc[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;ED(t);oz(b,f)|0;bz(b)|0;Zb()}}while(0);Om(v);i=w;return}function Jm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+16|0;p=t+8|0;h=t+4|0;j=t;q=a+4|0;g=c[q>>2]|0;r=a+16|0;s=a+12|0;if((g|0)!=((c[r>>2]|0)-(c[s>>2]|0)>>2|0)){o=kh(kh(nz(kh(kh(kh(10696,30519)|0,30564)|0,34302)|0,154)|0,34309)|0,30670)|0;c[p>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;n=GD(p,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(p);oz(o,n)|0;bz(o)|0;Zb()}if((d|0)<=0){o=kh(kh(nz(kh(kh(kh(10696,30715)|0,30564)|0,34302)|0,155)|0,34309)|0,30755)|0;c[p>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;n=GD(p,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(p);oz(o,n)|0;bz(o)|0;Zb()}if((f|0)>(d|0)){o=kh(kh(nz(kh(kh(kh(10696,30791)|0,30564)|0,34302)|0,156)|0,34309)|0,30842)|0;c[p>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;n=GD(p,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(p);oz(o,n)|0;bz(o)|0;Zb()}if((g|0)>(f|0)){o=kh(kh(nz(kh(kh(kh(10696,30869)|0,30564)|0,34302)|0,157)|0,34309)|0,30910)|0;c[p>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;n=GD(p,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(p);oz(o,n)|0;bz(o)|0;Zb()}o=a+24|0;c[h>>2]=-1;Ym(o,f,h);n=a+36|0;c[j>>2]=-1;Ym(n,f,j);j=a+48|0;Nk(j,f);l=c[j>>2]|0;k=a+52|0;Pk(l,(c[k>>2]|0)-l>>2,0);l=a+8|0;if((c[l>>2]|0)>0){h=-1;m=0;while(1){g=c[j>>2]|0;Qk(g,(c[k>>2]|0)-g>>2,c[q>>2]|0,c[a>>2]|0);g=Zm(a,n,b,d,e,f,c[j>>2]|0,c[q>>2]|0)|0;if(g>>>0>>0){_m(o,n);gH(c[s>>2]|0,c[j>>2]|0,c[q>>2]<<2|0)|0}else g=h;m=m+1|0;if((m|0)>=(c[l>>2]|0))break;else h=g}}if((c[q>>2]|0)==((c[r>>2]|0)-(c[s>>2]|0)>>2|0)){i=t;return}else{t=kh(kh(nz(kh(kh(kh(10696,30519)|0,30564)|0,34302)|0,187)|0,34309)|0,30670)|0;c[p>>2]=ty(t+(c[(c[t>>2]|0)+-12>>2]|0)|0)|0;a=GD(p,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(p);oz(t,a)|0;bz(t)|0;Zb()}}function Km(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;e=g+8|0;f=g;d=Tm(a,b)|0;if(!d){Um(e,a,b);d=c[e>>2]|0;c[e>>2]=0;Vm(f,a,d);d=c[f>>2]|0}i=g;return d+12|0}function Lm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>2)+1|0;if(f>>>0>1073741823)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?f:d}else d=1073741823;Al(h,d,(c[g>>2]|0)-e>>2,a+8|0);g=h+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[g>>2]=f+4;Bl(a,h);Cl(h);i=j;return}function Mm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;e=f;d=c[a>>2]|0;if((c[a+8>>2]|0)-d>>2>>>0>>0){Qm(e,b,(c[a+4>>2]|0)-d>>2,a+8|0);Rm(a,e);Sm(e)}i=f;return}function Nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>2)+1|0;if(f>>>0>1073741823)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?f:d}else d=1073741823;Qm(h,d,(c[g>>2]|0)-e>>2,a+8|0);g=h+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[g>>2]=f+4;Rm(a,h);Sm(h);i=j;return}function Om(a){a=a|0;var b=0;Pm(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function Pm(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;jm(a+12|0);Vt(a)}while((b|0)!=0);return}function Qm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<2)|0;c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<2);return}function Rm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>2)<<2)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function Sm(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-4|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function Tm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function Um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(24)|0;c[e+8>>2]=c[d>>2];c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function Vm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;Wm(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function Wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Xm(a,b)}}else Xm(a,b);return}function Xm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=(b|0)!=0;if(d)f=Tt(b<<2)|0;else f=0;e=c[a>>2]|0;c[a>>2]=f;if(e)Vt(e);c[a+4>>2]=b;a:do if(d){if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}while(0);return}function Ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+4|0;e=c[i>>2]|0;f=c[a>>2]|0;g=e-f>>2;if(g>>>0>=b>>>0){if(g>>>0>b>>>0?(h=f+(b<<2)|0,(e|0)!=(h|0)):0){do e=e+-4|0;while((e|0)!=(h|0));c[i>>2]=e}}else $m(a,b-g|0,d);return}function Zm(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;a=r;q=c[b>>2]|0;if(((c[b+4>>2]|0)-q>>2|0)!=(g|0)){p=kh(kh(nz(kh(kh(kh(10696,30157)|0,30564)|0,34302)|0,198)|0,34309)|0,30930)|0;c[a>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(a,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(a);oz(p,o)|0;bz(p)|0;Zb()}if((e|0)<=0){p=kh(kh(nz(kh(kh(kh(10696,30715)|0,30564)|0,34302)|0,199)|0,34309)|0,30755)|0;c[a>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(a,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(a);oz(p,o)|0;bz(p)|0;Zb()}if((g|0)>(e|0)){p=kh(kh(nz(kh(kh(kh(10696,30791)|0,30564)|0,34302)|0,200)|0,34309)|0,30842)|0;c[a>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(a,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(a);oz(p,o)|0;bz(p)|0;Zb()}if((j|0)<=0){p=kh(kh(nz(kh(kh(kh(10696,30959)|0,30564)|0,34302)|0,201)|0,34309)|0,30998)|0;c[a>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(a,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(a);oz(p,o)|0;bz(p)|0;Zb()}if((g|0)>0){o=(j|0)==0;p=0;a=0;do{l=f+(p<<2)|0;m=q+(p<<2)|0;if(o)b=-1;else{k=-1;n=0;while(1){e=c[h+(n<<2)>>2]|0;b=yk(d+((c[l>>2]|0)*96|0)|0,d+((c[f+(e<<2)>>2]|0)*96|0)|0)|0;if(b>>>0>>0)c[m>>2]=e;else b=k;n=n+1|0;if((n|0)==(j|0))break;else k=b}}a=b+a|0;p=p+1|0}while((p|0)<(g|0))}else a=0;i=r;return a|0}function _m(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;a=b+8|0;b=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=b;return}function $m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;h=c[a+8>>2]|0;j=a+4|0;g=c[j>>2]|0;f=g;if(h-f>>2>>>0>>0){e=c[a>>2]|0;f=(f-e>>2)+b|0;if(f>>>0>1073741823)Rt(a);g=e;e=h-g|0;if(e>>2>>>0<536870911){e=e>>1;e=e>>>0>>0?f:e}else e=1073741823;Al(k,e,(c[j>>2]|0)-g>>2,a+8|0);g=k+8|0;f=c[g>>2]|0;e=b;h=f;while(1){c[h>>2]=c[d>>2];e=e+-1|0;if(!e)break;else h=h+4|0}c[g>>2]=f+(b<<2);Bl(a,k);Cl(k)}else{e=b;f=g;while(1){c[f>>2]=c[d>>2];e=e+-1|0;if(!e)break;else f=f+4|0}c[j>>2]=g+(b<<2)}i=l;return}function an(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-4|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function bn(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>1073741823)Rt(a);else{d=Tt(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function cn(a){a=a|0;var b=0,d=0,e=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-1|0;while((b|0)!=(d|0));c[e>>2]=b}Vt(d);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function dn(a,b){a=a|0;b=b|0;var d=0;if((b|0)<0)Rt(a);else{d=Tt(b)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+b;return}}function en(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;if((f-d|0)>>>0>>0){e=c[a>>2]|0;g=d-e+b|0;if((g|0)<0)Rt(a);d=f-e|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?g:d}else d=2147483647;ph(j,d,(c[h>>2]|0)-e|0,a+8|0);h=j+8|0;g=c[h>>2]|0;iH(g|0,0,b|0)|0;c[h>>2]=g+b;qh(a,j);rh(j)}else fn(a,b);i=k;return}function fn(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function gn(a){a=a|0;var b=0,d=0,e=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-20|0;while((b|0)!=(d|0));c[e>>2]=b}Vt(d);c[a+8>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function hn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;g=c[b+8>>2]|0;j=b+4|0;e=c[j>>2]|0;if(((g-e|0)/20|0)>>>0>>0){f=c[b>>2]|0;h=((e-f|0)/20|0)+d|0;if(h>>>0>214748364)Rt(b);e=(g-f|0)/20|0;if(e>>>0<107374182){e=e<<1;e=e>>>0>>0?h:e}else e=214748364;vh(k,e,((c[j>>2]|0)-f|0)/20|0,b+8|0);g=k+8|0;f=c[g>>2]|0;e=d;h=f;while(1){c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;a[h+16>>0]=1;e=e+-1|0;if(!e)break;else h=h+20|0}c[g>>2]=f+(d*20|0);wh(b,k);xh(k)}else em(b,d);i=l;return}function jn(a){a=a|0;kn(a+36|0);ln(a+8|0);return}function kn(a){a=a|0;var b=0;Tl(a+84|0);jm(a+72|0);mn(a+12|0);b=a+8|0;a=c[b>>2]|0;c[b>>2]=0;if(a){Hm(a);Vt(a)}return}function ln(a){a=a|0;fh(a+16|0);eh(a+4|0);return}function mn(a){a=a|0;jm(a+48|0);jm(a+36|0);jm(a+24|0);jm(a+12|0);return}function nn(a){a=a|0;Mx(a);Vt(a);return}function on(a){a=a|0;a=c[a+12>>2]|0;if(a){jn(a);Vt(a)}return}function pn(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==31030?a+12|0:0)|0}function qn(a){a=a|0;Vt(a);return}function rn(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=1234;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=a;b=a+16|0;c[a+100>>2]=0;c[a+104>>2]=0;d=a+108|0;e=b;f=e+80|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[d>>2]=16;c[b>>2]=8;Nk(a+24|0,8);c[a+20>>2]=1;return}function sn(a){a=a|0;var b=0;tn(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function tn(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;oh(a+12|0);Vt(a)}while((b|0)!=0);return}function un(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+16>>0]=1;d=b+108|0;e=b+20|0;f=e+88|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));g[d>>2]=1.0;f=b+112|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;return}function vn(a){a=a|0;jm(a+124|0);Vh(a+112|0);An(a+92|0);return}function wn(b,d,e,f,h,i,j,k,l){b=b|0;d=+d;e=+e;f=+f;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;g[b+20>>2]=d;g[b+24>>2]=e;g[b+28>>2]=f;g[b+32>>2]=h;g[b+36>>2]=-1.0;g[b+40>>2]=1.0;c[b+52>>2]=i;c[b+56>>2]=j;c[b+60>>2]=k;c[b+64>>2]=l;l=$(j,i)|0;c[b+84>>2]=l;c[b+88>>2]=$(l,k)|0;g[b+44>>2]=10.0;g[b+48>>2]=1.0/+Z(10.0);a[b+16>>0]=(j|i|0)==0&1;Bn(b+92|0);return}function xn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;u=i;i=i+16|0;q=u+12|0;r=u+8|0;n=u+4|0;p=u;Bn(b+92|0);if(f){s=b+112|0;Uh(s,f<<2);t=b+124|0;Nk(t,f);if(a[b+16>>0]|0)yn(b,d,e,f);l=b+68|0;m=b+72|0;j=b+76|0;k=b+80|0;if((f|0)>0){o=0;h=0;do{y=o<<2;x=y|1;w=y|2;v=y|3;Cn(b,q,r,n,p,+g[d+(y<<2)>>2],+g[d+(x<<2)>>2],+g[d+(w<<2)>>2],+g[d+(v<<2)>>2],+g[e+(y<<2)>>2],+g[e+(x<<2)>>2],+g[e+(w<<2)>>2],+g[e+(v<<2)>>2]);if(Dn(b,+g[q>>2],+g[r>>2],+g[n>>2],+g[p>>2])|0){y=h<<2;x=c[s>>2]|0;c[x+(y<<2)>>2]=c[l>>2];c[x+((y|1)<<2)>>2]=c[m>>2];c[x+((y|2)<<2)>>2]=c[j>>2];c[x+((y|3)<<2)>>2]=c[k>>2];c[(c[t>>2]|0)+(h<<2)>>2]=o;h=h+1|0}o=o+1|0}while((o|0)<(f|0))}else h=0;Uh(s,h<<2);Nk(t,h)}i=u;return}function yn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;n=i;i=i+16|0;h=n+12|0;m=n;j=c[a>>2]|0;k=a+4|0;l=c[k>>2]|0;Hl(m,e);if((e|0)<=0){o=kh(kh(nz(kh(kh(kh(10696,31185)|0,31217)|0,34302)|0,208)|0,34309)|0,31340)|0;c[h>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;p=GD(h,13680)|0;p=Uc[c[(c[p>>2]|0)+28>>2]&63](p,10)|0;ED(h);oz(o,p)|0;bz(o)|0;Zb()}if((c[a>>2]|0)<=0){p=kh(kh(nz(kh(kh(kh(10696,31362)|0,31217)|0,34302)|0,209)|0,34309)|0,31404)|0;c[h>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(h,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(h);oz(p,o)|0;bz(p)|0;Zb()}if((c[k>>2]|0)<=0){p=kh(kh(nz(kh(kh(kh(10696,31427)|0,31217)|0,34302)|0,210)|0,34309)|0,31470)|0;c[h>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(h,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(h);oz(p,o)|0;bz(p)|0;Zb()}f=+(((j|0)>(l|0)?j:l)|0);h=c[m>>2]|0;if(e){j=0;do{p=j<<2|3;q=+g[d+(p<<2)>>2];g[h+(j<<2)>>2]=f*(+g[b+(p<<2)>>2]/(q==0.0?1.0:q));j=j+1|0}while((j|0)!=(e|0))}q=+En(h,(c[m+4>>2]|0)-h>>2)*.25;p=~~+_(+((+g[a+24>>2]-+g[a+20>>2])/q));p=(p|0)<5?5:p;c[a+52>>2]=p;o=~~+_(+((+g[a+32>>2]-+g[a+28>>2])/q));o=(o|0)<5?5:o;c[a+56>>2]=o;p=$(o,p)|0;c[a+84>>2]=p;c[a+88>>2]=$(p,c[a+60>>2]|0)|0;Vh(m);i=n;return}function zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0;g[b>>2]=0.0;c[d>>2]=-1;a=c[a+100>>2]|0;if(a){h=a;f=a;e=0.0;while(1){a=f+12|0;if(+((c[a>>2]|0)>>>0)>e){c[d>>2]=c[f+8>>2];e=+((c[a>>2]|0)>>>0);g[b>>2]=e}a=c[h>>2]|0;if(!a)break;else{h=a;f=a}}}return}function An(a){a=a|0;var b=0;On(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function Bn(a){a=a|0;var b=0,d=0,e=0;b=a+12|0;if(c[b>>2]|0){d=a+8|0;On(a,c[d>>2]|0);c[d>>2]=0;d=c[a+4>>2]|0;if(d){e=0;do{c[(c[a>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=(d|0))}c[b>>2]=0}return}function Cn(a,b,d,e,f,h,j,k,l,m,n,o,p){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;var q=0,r=0,s=0,t=0;r=i;i=i+16|0;q=r;k=k-o;g[e>>2]=k;o=k;if(!(o<=-3.141592653589793)){if(o>3.141592653589793){k=o+-6.283185307179586;g[e>>2]=k}}else{k=o+6.283185307179586;g[e>>2]=k}if(!(k>-3.141592653589793)){s=kh(kh(nz(kh(kh(kh(10696,31658)|0,32052)|0,34302)|0,468)|0,34309)|0,31693)|0;c[q>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;t=GD(q,13680)|0;t=Uc[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;ED(q);oz(s,t)|0;bz(s)|0;Zb()}if(!(k<=3.141592653589793)){t=kh(kh(nz(kh(kh(kh(10696,31712)|0,32052)|0,34302)|0,469)|0,34309)|0,31693)|0;c[q>>2]=ty(t+(c[(c[t>>2]|0)+-12>>2]|0)|0)|0;s=GD(q,13680)|0;s=Uc[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;ED(q);oz(t,s)|0;bz(t)|0;Zb()}else{k=l/(p==0.0?1.0:p);g[f>>2]=k;l=+g[e>>2];p=k*+R(+l);l=k*+S(+l);o=-l;k=+Z(+k);g[f>>2]=k*+g[a+48>>2];s=a+8|0;t=a+12|0;g[b>>2]=h-(p*m+n*o)+(p*+g[s>>2]+ +g[t>>2]*o);g[d>>2]=j-(p*n+l*m)+(l*+g[s>>2]+p*+g[t>>2]);i=r;return}} +function bd(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function cd(){return i|0}function dd(a){a=a|0;i=a}function ed(a,b){a=a|0;b=b|0;i=a;j=b}function fd(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function gd(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function hd(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function id(a){a=a|0;D=a}function jd(){return D|0}function kd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e*3|0)+12|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e*6|0)+6)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+6|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function ld(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+10+(a<<5&224)+(e>>>3&28)+(e<<3&248)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function md(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function nd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){e=d[g>>0]|0;do if(((e&240)+24+(e<<4&240)+((d[g+1>>0]|0)&240)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function od(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+12+(a<<5&224)+(e>>>3&24)+(e<<2&248)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function pd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(w|0)){b[o>>1]=0;k=n}else{k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function qd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=e+4|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<1)+2)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+2|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function rd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function sd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[p>>1]=0;k=o}else{k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function td(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k*3|0)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+3|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+6|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function ud(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+10+(n<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function vd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function wd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){o=d[g>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[g+1>>0]|0)&240)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function xd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+12+(n<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function yd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(y|0)){b[q>>1]=0;k=p}else{k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function zd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+1|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+2|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Ad(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}a=b[r+-2>>1]|0;if(a<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+((a<<16>>16)+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Bd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){b[r>>1]=0;k=q}else{k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Cd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;n=g+k|0;k=0;b:while(1){if(w){s=1;r=l;q=k;while(1){do if((d[r>>0]|0)>(d[n>>0]|0)){b[a>>1]=0;k=q}else{k=b[a+(v<<1)>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}g=b[a+(t<<1)>>1]|0;o=g<<16>>16;k=b[a+(u<<1)>>1]|0;p=k<<16>>16;l=k<<16>>16>0;if(g<<16>>16<=0){if(l){b[a>>1]=k;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[a>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(l){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[a>>1]=o;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}else{b[a>>1]=k;if((k|0)<(o|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16<=0){b[a>>1]=g;k=o*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[a>>1]=k;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}else{b[a>>1]=o;if((o|0)<(k|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}while(0);s=s+1|0;l=r+1|0;n=n+1|0;a=a+2|0;if((s|0)>=(y|0))break;else{r=l;q=k}}}x=x+1|0;if((x|0)>=(z|0)){o=k;B=52;break a}else{l=l+2|0;a=a+4|0;n=n+2|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((o|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(o|0)){a=a+1|0;m=m+4|0}else break}}g=j+8|0;k=l+-1|0;c[g>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[g>>2]|0))}if((o|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(o|0))}if((c[g>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[g>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Dd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e*3|0)+12|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e*6|0)+6)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+6|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Ed(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+10+(a<<5&224)+(e>>>3&28)+(e<<3&248)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Fd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0} +function Gd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){e=d[g>>0]|0;do if(((e&240)+24+(e<<4&240)+((d[g+1>>0]|0)&240)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Hd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<1)+8|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<2)+4)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){a=d[g>>0]|0;e=d[g+1>>0]|0;do if(((a&248)+12+(a<<5&224)+(e>>>3&24)+(e<<2&248)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+4|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Id(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}w=g*3|0;x=B+-1|0;if((f|0)>1){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{g=g+(B<<1)|0;l=l+(B<<1)|0}}}l=j+1179664|0;t=0-B|0;r=1-B|0;s=~B;q=(e<<2)+16|0;a:do if((y|0)>1){u=(x|0)>1;v=1;g=a+((e<<3)+8)|0;m=n+(B+1<<1)|0;k=0;b:while(1){if(u){p=1;o=m;n=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(w|0)){k=b[o+(t<<1)>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}f=b[o+(r<<1)>>1]|0;a=f<<16>>16;k=b[o+(s<<1)>>1]|0;e=k<<16>>16;m=k<<16>>16>0;if(f<<16>>16<=0){if(m){b[o>>1]=k;k=e*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=b[o+-2>>1]|0;if(k<<16>>16>0){b[o>>1]=k;k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0)){k=n;break}c[k>>2]=p;k=n;break}else{k=n+1|0;if((n|0)>32767)break b;b[o>>1]=k;c[j+1179664+(n<<2)>>2]=k<<16>>16;n=n*7|0;c[j+1310736+(n<<2)>>2]=1;c[j+1310736+(n+1<<2)>>2]=p;c[j+1310736+(n+2<<2)>>2]=v;c[j+1310736+(n+3<<2)>>2]=p;c[j+1310736+(n+4<<2)>>2]=p;c[j+1310736+(n+5<<2)>>2]=v;c[j+1310736+(n+6<<2)>>2]=v;break}}if(m){k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+(e+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;e=j+1310736+(k+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+v;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}m=b[o+-2>>1]|0;if(m<<16>>16<=0){b[o>>1]=f;k=a*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+p;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+v;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(p|0))c[m>>2]=p;c[j+1310736+(k+-1<<2)>>2]=v;k=n;break}k=c[j+1179664+(a+-1<<2)>>2]|0;a=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(a|0)){b[o>>1]=a;if((n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(k|0))c[f>>2]=a;m=m+1|0;if((m|0)>=(n|0)){k=a;break}else f=f+4|0}}else k=a}else{b[o>>1]=k;if((k|0)<(a|0)&(n|0)>0){m=0;f=l;while(1){if((c[f>>2]|0)==(a|0))c[f>>2]=k;m=m+1|0;if((m|0)>=(n|0))break;else f=f+4|0}}}k=(k<<16>>16)*7|0;e=j+1310736+(k+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=j+1310736+(k+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+p;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+v;k=n}else{b[o>>1]=0;k=n}while(0);p=p+1|0;g=g+8|0;m=o+2|0;if((p|0)>=(x|0))break;else{o=m;n=k}}}v=v+1|0;if((v|0)>=(y|0)){e=k;A=52;break a}else{g=g+q|0;m=m+4|0}}Kf(3,18092,z);k=-1}else{e=0;A=52}while(0);if((A|0)==52){f=j+12|0;if((e|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(e|0)){m=m+1|0;l=l+4|0}else break}}a=j+8|0;k=g+-1|0;c[a>>2]=k;if(k){iH(f|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[a>>2]|0))}if((e|0)>0){f=0;do{l=(c[j+1179664+(f<<2)>>2]|0)+-1|0;m=f*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;f=f+1|0}while((f|0)<(e|0))}if((c[a>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[a>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Jd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=e+4|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<1)+2)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+2|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Kd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Ld(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+16|0;z=D;B=(e|0)/2|0;C=(f|0)/2|0;n=c[j>>2]|0;y=C+-1|0;if((e|0)>1){k=0;l=n;m=n+(($(y,B)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(B|0))break;else{l=l+2|0;m=m+2|0}}}x=B+-1|0;if((f|0)>1){k=0;l=n;m=n+(x<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(C|0))break;else{l=l+(B<<1)|0;m=m+(B<<1)|0}}}m=j+1179664|0;u=0-B|0;s=1-B|0;t=~B;r=(e<<1)+8|0;a:do if((y|0)>1){v=(x|0)>1;w=1;l=a+((e<<2)+4)|0;f=n+(B+1<<1)|0;k=0;b:while(1){if(v){q=1;p=f;o=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[p+(u<<1)>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}a=b[p+(s<<1)>>1]|0;e=a<<16>>16;k=b[p+(t<<1)>>1]|0;n=k<<16>>16;f=k<<16>>16>0;if(a<<16>>16<=0){if(f){b[p>>1]=k;k=n*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-3<<2)|0;if((c[f>>2]|0)<(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=b[p+-2>>1]|0;if(k<<16>>16>0){b[p>>1]=k;k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0)){k=o;break}c[k>>2]=q;k=o;break}else{k=o+1|0;if((o|0)>32767)break b;b[p>>1]=k;c[j+1179664+(o<<2)>>2]=k<<16>>16;o=o*7|0;c[j+1310736+(o<<2)>>2]=1;c[j+1310736+(o+1<<2)>>2]=q;c[j+1310736+(o+2<<2)>>2]=w;c[j+1310736+(o+3<<2)>>2]=q;c[j+1310736+(o+4<<2)>>2]=q;c[j+1310736+(o+5<<2)>>2]=w;c[j+1310736+(o+6<<2)>>2]=w;break}}if(f){k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+(n+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;n=j+1310736+(k+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}f=b[p+-2>>1]|0;if(f<<16>>16<=0){b[p>>1]=a;k=e*7|0;f=j+1310736+(k+-7<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=j+1310736+(k+-6<<2)|0;c[f>>2]=(c[f>>2]|0)+q;f=j+1310736+(k+-5<<2)|0;c[f>>2]=(c[f>>2]|0)+w;f=j+1310736+(k+-4<<2)|0;if((c[f>>2]|0)>(q|0))c[f>>2]=q;c[j+1310736+(k+-1<<2)>>2]=w;k=o;break}k=c[j+1179664+(e+-1<<2)>>2]|0;e=c[j+1179664+((f<<16>>16)+-1<<2)>>2]|0;if((k|0)>(e|0)){b[p>>1]=e;if((o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=e;f=f+1|0;if((f|0)>=(o|0)){k=e;break}else a=a+4|0}}else k=e}else{b[p>>1]=k;if((k|0)<(e|0)&(o|0)>0){f=0;a=m;while(1){if((c[a>>2]|0)==(e|0))c[a>>2]=k;f=f+1|0;if((f|0)>=(o|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;n=j+1310736+(k+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=j+1310736+(k+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+q;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=o}else{b[p>>1]=0;k=o}while(0);q=q+1|0;l=l+4|0;f=p+2|0;if((q|0)>=(x|0))break;else{p=f;o=k}}}w=w+1|0;if((w|0)>=(y|0)){n=k;A=52;break a}else{l=l+r|0;f=f+4|0}}Kf(3,18092,z);k=-1}else{n=0;A=52}while(0);if((A|0)==52){a=j+12|0;if((n|0)<1)l=1;else{f=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(f|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((f|0)<(n|0)){f=f+1|0;m=m+4|0}else break}}e=j+8|0;k=l+-1|0;c[e>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{A=k<<2;c[j+131084+(A<<2)>>2]=B;c[j+131084+((A|1)<<2)>>2]=0;c[j+131084+((A|2)<<2)>>2]=C;c[j+131084+((A|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[e>>2]|0))}if((n|0)>0){a=0;do{m=(c[j+1179664+(a<<2)>>2]|0)+-1|0;f=a*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(f<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(f+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(f+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(f+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(f+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(f+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(f+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;a=a+1|0}while((a|0)<(n|0))}if((c[e>>2]|0)>0){k=0;do{B=j+12+(k<<2)|0;C=k<<1;A=j+655376+(C<<3)|0;h[A>>3]=+h[A>>3]/+(c[B>>2]|0);C=j+655376+((C|1)<<3)|0;h[C>>3]=+h[C>>3]/+(c[B>>2]|0);k=k+1|0}while((k|0)<(c[e>>2]|0));k=0}else k=0}else k=0}i=D;return k|0}function Md(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k*3|0)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+3|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+6|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Nd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+10+(n<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Od(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+1>>0]|0)+(d[g>>0]|0)+(d[g+2>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Pd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){o=d[g>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[g+1>>0]|0)&240)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Qd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<1)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){n=d[g>>0]|0;o=d[g+1>>0]|0;do if(((n&248)+12+(n<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+2|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+4|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Rd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=g*3|0;x=e+-1|0;if((f|0)>0){k=0;g=n;l=n+(x<<1)|0;while(1){b[l>>1]=0;b[g>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{g=g+(e<<1)|0;l=l+(e<<1)|0}}}l=j+1179664|0;k=e+1|0;u=0-e|0;s=1-e|0;t=~e;a:do if((z|0)>1){v=(x|0)>1;w=1;g=a+(k<<2)|0;m=n+(k<<1)|0;k=0;b:while(1){if(v){r=1;q=m;p=k;while(1){do if(((d[g+2>>0]|0)+(d[g+1>>0]|0)+(d[g+3>>0]|0)|0)>(y|0)){k=b[q+(u<<1)>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}a=b[q+(s<<1)>>1]|0;n=a<<16>>16;k=b[q+(t<<1)>>1]|0;o=k<<16>>16;m=k<<16>>16>0;if(a<<16>>16<=0){if(m){b[q>>1]=k;k=o*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=b[q+-2>>1]|0;if(k<<16>>16>0){b[q>>1]=k;k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(r|0)){k=p;break}c[k>>2]=r;k=p;break}else{k=p+1|0;if((p|0)>32767)break b;b[q>>1]=k;c[j+1179664+(p<<2)>>2]=k<<16>>16;p=p*7|0;c[j+1310736+(p<<2)>>2]=1;c[j+1310736+(p+1<<2)>>2]=r;c[j+1310736+(p+2<<2)>>2]=w;c[j+1310736+(p+3<<2)>>2]=r;c[j+1310736+(p+4<<2)>>2]=r;c[j+1310736+(p+5<<2)>>2]=w;c[j+1310736+(p+6<<2)>>2]=w;break}}if(m){k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+(o+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=j+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+w;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}m=b[q+-2>>1]|0;if(m<<16>>16<=0){b[q>>1]=a;k=n*7|0;m=j+1310736+(k+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(k+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(k+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+w;m=j+1310736+(k+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(k+-1<<2)>>2]=w;k=p;break}k=c[j+1179664+(n+-1<<2)>>2]|0;n=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;if((k|0)>(n|0)){b[q>>1]=n;if((p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(k|0))c[a>>2]=n;m=m+1|0;if((m|0)>=(p|0)){k=n;break}else a=a+4|0}}else k=n}else{b[q>>1]=k;if((k|0)<(n|0)&(p|0)>0){m=0;a=l;while(1){if((c[a>>2]|0)==(n|0))c[a>>2]=k;m=m+1|0;if((m|0)>=(p|0))break;else a=a+4|0}}}k=(k<<16>>16)*7|0;o=j+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+w;k=p}else{b[q>>1]=0;k=p}while(0);r=r+1|0;g=g+4|0;m=q+2|0;if((r|0)>=(x|0))break;else{q=m;p=k}}}w=w+1|0;if((w|0)>=(z|0)){o=k;B=52;break a}else{g=g+8|0;m=m+4|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){a=j+12|0;if((o|0)<1)g=1;else{m=1;g=1;while(1){k=c[l>>2]|0;if((k|0)==(m|0)){k=g;g=g+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[l>>2]=k;if((m|0)<(o|0)){m=m+1|0;l=l+4|0}else break}}n=j+8|0;k=g+-1|0;c[n>>2]=k;if(k){iH(a|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((g|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[n>>2]|0))}if((o|0)>0){a=0;do{l=(c[j+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;k=j+12+(l<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);k=l<<1;g=j+655376+(k<<3)|0;h[g>>3]=+h[g>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;k=j+131084+(l<<2)|0;g=c[j+1310736+(m+3<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;k=j+131084+((l|1)<<2)|0;g=c[j+1310736+(m+4<<2)>>2]|0;if((c[k>>2]|0)<(g|0))c[k>>2]=g;k=j+131084+((l|2)<<2)|0;g=c[j+1310736+(m+5<<2)>>2]|0;if((c[k>>2]|0)>(g|0))c[k>>2]=g;g=j+131084+((l|3)<<2)|0;k=c[j+1310736+(m+6<<2)>>2]|0;if((c[g>>2]|0)<(k|0))c[g>>2]=k;a=a+1|0}while((a|0)<(o|0))}if((c[n>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[n>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Sd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+1|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+2|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Td(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l+1>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}a=b[r+-2>>1]|0;if(a<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+((a<<16>>16)+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Ud(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+(k<<1)|0;a=n+(k<<1)|0;k=0;b:while(1){if(w){s=1;r=a;q=k;while(1){do if((d[l>>0]|0|0)>(g|0)){k=b[r+(v<<1)>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}n=b[r+(t<<1)>>1]|0;o=n<<16>>16;k=b[r+(u<<1)>>1]|0;p=k<<16>>16;a=k<<16>>16>0;if(n<<16>>16<=0){if(a){b[r>>1]=k;k=p*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[r>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(a){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[r>>1]=o;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}else{b[r>>1]=k;if((k|0)<(o|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[r+-2>>1]|0;if(k<<16>>16<=0){b[r>>1]=n;k=o*7|0;a=j+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=j+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=j+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+x;a=j+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(s|0))c[a>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[r>>1]=k;if((q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(o|0))c[n>>2]=k;a=a+1|0;if((a|0)>=(q|0))break;else n=n+4|0}}}else{b[r>>1]=o;if((o|0)<(k|0)&(q|0)>0){a=0;n=m;while(1){if((c[n>>2]|0)==(k|0))c[n>>2]=o;a=a+1|0;if((a|0)>=(q|0)){k=o;break}else n=n+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[r>>1]=0;k=q}while(0);s=s+1|0;l=l+2|0;a=r+2|0;if((s|0)>=(y|0))break;else{r=a;q=k}}}x=x+1|0;if((x|0)>=(z|0)){p=k;B=52;break a}else{l=l+4|0;a=a+4|0}}Kf(3,18092,A);k=-1}else{p=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((p|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(p|0)){a=a+1|0;m=m+4|0}else break}}o=j+8|0;k=l+-1|0;c[o>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[o>>2]|0))}if((p|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(p|0))}if((c[o>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[o>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Vd(a,e,f,g,j){a=a|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+16|0;A=C;n=c[j>>2]|0;z=f+-1|0;if((e|0)>0){k=0;l=n;m=n+(($(z,e)|0)<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(e|0))break;else{l=l+2|0;m=m+2|0}}}y=e+-1|0;if((f|0)>0){k=0;l=n;m=n+(y<<1)|0;while(1){b[m>>1]=0;b[l>>1]=0;k=k+1|0;if((k|0)>=(f|0))break;else{l=l+(e<<1)|0;m=m+(e<<1)|0}}}m=j+1179664|0;k=e+1|0;v=0-e|0;t=1-e|0;u=~e;a:do if((z|0)>1){w=(y|0)>1;x=1;l=a+k|0;a=n+(k<<1)|0;n=g+k|0;k=0;b:while(1){if(w){s=1;r=l;q=k;while(1){do if((d[r>>0]|0)>(d[n>>0]|0)){k=b[a+(v<<1)>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}g=b[a+(t<<1)>>1]|0;o=g<<16>>16;k=b[a+(u<<1)>>1]|0;p=k<<16>>16;l=k<<16>>16>0;if(g<<16>>16<=0){if(l){b[a>>1]=k;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16>0){b[a>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(s|0)){k=q;break}c[k>>2]=s;k=q;break}else{k=q+1|0;if((q|0)>32767)break b;b[a>>1]=k;c[j+1179664+(q<<2)>>2]=k<<16>>16;q=q*7|0;c[j+1310736+(q<<2)>>2]=1;c[j+1310736+(q+1<<2)>>2]=s;c[j+1310736+(q+2<<2)>>2]=x;c[j+1310736+(q+3<<2)>>2]=s;c[j+1310736+(q+4<<2)>>2]=s;c[j+1310736+(q+5<<2)>>2]=x;c[j+1310736+(q+6<<2)>>2]=x;break}}if(l){k=c[j+1179664+(o+-1<<2)>>2]|0;o=c[j+1179664+(p+-1<<2)>>2]|0;if((k|0)>(o|0)){b[a>>1]=o;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}else{b[a>>1]=k;if((k|0)<(o|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+x;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}k=b[a+-2>>1]|0;if(k<<16>>16<=0){b[a>>1]=g;k=o*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+x;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(s|0))c[l>>2]=s;c[j+1310736+(k+-1<<2)>>2]=x;k=q;break}o=c[j+1179664+(o+-1<<2)>>2]|0;k=c[j+1179664+((k<<16>>16)+-1<<2)>>2]|0;if((o|0)>(k|0)){b[a>>1]=k;if((q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(o|0))c[g>>2]=k;l=l+1|0;if((l|0)>=(q|0))break;else g=g+4|0}}}else{b[a>>1]=o;if((o|0)<(k|0)&(q|0)>0){l=0;g=m;while(1){if((c[g>>2]|0)==(k|0))c[g>>2]=o;l=l+1|0;if((l|0)>=(q|0)){k=o;break}else g=g+4|0}}else k=o}k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=j+1310736+(k+-5<<2)|0;c[k>>2]=(c[k>>2]|0)+x;k=q}else{b[a>>1]=0;k=q}while(0);s=s+1|0;l=r+1|0;n=n+1|0;a=a+2|0;if((s|0)>=(y|0))break;else{r=l;q=k}}}x=x+1|0;if((x|0)>=(z|0)){o=k;B=52;break a}else{l=l+2|0;a=a+4|0;n=n+2|0}}Kf(3,18092,A);k=-1}else{o=0;B=52}while(0);if((B|0)==52){n=j+12|0;if((o|0)<1)l=1;else{a=1;l=1;while(1){k=c[m>>2]|0;if((k|0)==(a|0)){k=l;l=l+1|0}else k=c[j+1179664+(k+-1<<2)>>2]|0;c[m>>2]=k;if((a|0)<(o|0)){a=a+1|0;m=m+4|0}else break}}g=j+8|0;k=l+-1|0;c[g>>2]=k;if(k){iH(n|0,0,k<<2|0)|0;iH(j+655376|0,0,k<<4|0)|0;if((l|0)>1){k=0;do{B=k<<2;c[j+131084+(B<<2)>>2]=e;c[j+131084+((B|1)<<2)>>2]=0;c[j+131084+((B|2)<<2)>>2]=f;c[j+131084+((B|3)<<2)>>2]=0;k=k+1|0}while((k|0)<(c[g>>2]|0))}if((o|0)>0){n=0;do{m=(c[j+1179664+(n<<2)>>2]|0)+-1|0;a=n*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(a<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;h[l>>3]=+h[l>>3]+ +(c[j+1310736+(a+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;h[k>>3]=+h[k>>3]+ +(c[j+1310736+(a+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(a+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(a+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(a+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(a+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;n=n+1|0}while((n|0)<(o|0))}if((c[g>>2]|0)>0){k=0;do{e=j+12+(k<<2)|0;f=k<<1;B=j+655376+(f<<3)|0;h[B>>3]=+h[B>>3]/+(c[e>>2]|0);f=j+655376+((f|1)<<3)|0;h[f>>3]=+h[f>>3]/+(c[e>>2]|0);k=k+1|0}while((k|0)<(c[g>>2]|0));k=0}else k=0}else k=0}i=C;return k|0}function Wd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f*3|0)+12|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f*6|0)+6)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+6|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function Xd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+10+(f<<5&224)+(o>>>3&28)+(o<<3&248)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function Yd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+1>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function Zd(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){o=d[q>>0]|0;do if(((o&240)+24+(o<<4&240)+((d[q+1>>0]|0)&240)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function _d(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<1)+8|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<2)+4)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){f=d[q>>0]|0;o=d[q+1>>0]|0;do if(((f&248)+12+(f<<5&224)+(o>>>3&24)+(o<<2&248)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+4|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0}function $d(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;B=F;D=(f|0)/2|0;E=(g|0)/2|0;o=c[k>>2]|0;A=E+-1|0;if((f|0)>1){l=0;m=o;n=o+(($(A,D)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(D|0))break;else{m=m+2|0;n=n+2|0}}}y=j*3|0;z=D+-1|0;if((g|0)>1){l=0;j=o;m=o+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(E|0))break;else{j=j+(D<<1)|0;m=m+(D<<1)|0}}}m=k+1179664|0;j=D+1|0;v=0-D|0;t=1-D|0;u=~D;s=(f<<2)+16|0;a:do if((A|0)>1){w=(z|0)>1;l=(c[k+4>>2]|0)+j|0;x=1;n=e+((f<<3)+8)|0;g=o+(j<<1)|0;j=0;b:while(1){if(w){r=1;q=n;p=j;while(1){do if(((d[q+2>>0]|0)+(d[q+1>>0]|0)+(d[q+3>>0]|0)|0)>(y|0)){b[g>>1]=0;a[l>>0]=0;j=p}else{a[l>>0]=-1;j=b[g+(v<<1)>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}e=b[g+(t<<1)>>1]|0;f=e<<16>>16;j=b[g+(u<<1)>>1]|0;o=j<<16>>16;n=j<<16>>16>0;if(e<<16>>16<=0){if(n){b[g>>1]=j;j=o*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=b[g+-2>>1]|0;if(j<<16>>16>0){b[g>>1]=j;j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(r|0)){j=p;break}c[j>>2]=r;j=p;break}else{j=p+1|0;if((p|0)>32767)break b;b[g>>1]=j;c[k+1179664+(p<<2)>>2]=j<<16>>16;p=p*7|0;c[k+1310736+(p<<2)>>2]=1;c[k+1310736+(p+1<<2)>>2]=r;c[k+1310736+(p+2<<2)>>2]=x;c[k+1310736+(p+3<<2)>>2]=r;c[k+1310736+(p+4<<2)>>2]=r;c[k+1310736+(p+5<<2)>>2]=x;c[k+1310736+(p+6<<2)>>2]=x;break}}if(n){j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+(o+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;o=k+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+x;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}n=b[g+-2>>1]|0;if(n<<16>>16<=0){b[g>>1]=e;j=f*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+r;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+x;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(r|0))c[n>>2]=r;c[k+1310736+(j+-1<<2)>>2]=x;j=p;break}j=c[k+1179664+(f+-1<<2)>>2]|0;f=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(f|0)){b[g>>1]=f;if((p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(j|0))c[e>>2]=f;n=n+1|0;if((n|0)>=(p|0)){j=f;break}else e=e+4|0}}else j=f}else{b[g>>1]=j;if((j|0)<(f|0)&(p|0)>0){n=0;e=m;while(1){if((c[e>>2]|0)==(f|0))c[e>>2]=j;n=n+1|0;if((n|0)>=(p|0))break;else e=e+4|0}}}j=(j<<16>>16)*7|0;o=k+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=k+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+x;j=p}while(0);r=r+1|0;n=q+8|0;g=g+2|0;l=l+1|0;if((r|0)>=(z|0))break;else{q=n;p=j}}}x=x+1|0;if((x|0)>=(A|0)){f=j;C=52;break a}else{l=l+2|0;n=n+s|0;g=g+4|0}}Kf(3,18092,B);l=-1}else{f=0;C=52}while(0);if((C|0)==52){g=k+12|0;if((f|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(f|0)){n=n+1|0;m=m+4|0}else break}}e=k+8|0;l=j+-1|0;c[e>>2]=l;if(l){iH(g|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{C=l<<2;c[k+131084+(C<<2)>>2]=D;c[k+131084+((C|1)<<2)>>2]=0;c[k+131084+((C|2)<<2)>>2]=E;c[k+131084+((C|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[e>>2]|0))}if((f|0)>0){g=0;do{m=(c[k+1179664+(g<<2)>>2]|0)+-1|0;n=g*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;g=g+1|0}while((g|0)<(f|0))}if((c[e>>2]|0)>0){l=0;do{D=k+12+(l<<2)|0;E=l<<1;C=k+655376+(E<<3)|0;h[C>>3]=+h[C>>3]/+(c[D>>2]|0);E=k+655376+((E|1)<<3)|0;h[E>>3]=+h[E>>3]/+(c[D>>2]|0);l=l+1|0}while((l|0)<(c[e>>2]|0));l=0}else l=0}else l=0}i=F;return l|0} +function Tq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)!=1){i=c[a>>2]|0;c[i+20>>2]=14;c[i+24>>2]=b;Kc[c[i>>2]&255](a)}i=Oq(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;d=h+72|0;c[i+44>>2]=c[d>>2];c[d>>2]=i;return i|0}function Uq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[a+4>>2]|0;j=f+68|0;b=c[j>>2]|0;if(!b){d=0;e=0}else{d=0;e=0;do{if(!(c[b>>2]|0)){i=c[b+8>>2]|0;e=($(i,c[b+12>>2]|0)|0)+e|0;d=($(c[b+4>>2]|0,i)|0)+d|0}b=c[b+44>>2]|0}while((b|0)!=0)}i=f+72|0;b=c[i>>2]|0;if(b)do{if(!(c[b>>2]|0)){h=c[b+8>>2]|0;e=($(c[b+12>>2]<<7,h)|0)+e|0;d=($(h<<7,c[b+4>>2]|0)|0)+d|0}b=c[b+44>>2]|0}while((b|0)!=0);if((e|0)>=1){b=Ap(a,e,d,c[f+76>>2]|0)|0;if((b|0)<(d|0)){h=(b|0)/(e|0)|0;h=(h|0)<1?1:h}else h=1e9;g=f+80|0;b=c[j>>2]|0;if(b)do{if(!(c[b>>2]|0)){f=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((f+-1|0)>>>0)/(d>>>0)|0)+1|0)>(h|0)){j=b+16|0;c[j>>2]=$(d,h)|0;e=b+8|0;Bp(a,b+48|0,$(c[e>>2]|0,f)|0);c[b+40>>2]=1;d=c[j>>2]|0}else{c[b+16>>2]=f;e=b+8|0;d=f}c[b>>2]=Qq(a,1,c[e>>2]|0,d)|0;c[b+20>>2]=c[g>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0);b=c[i>>2]|0;if(b)do{if(!(c[b>>2]|0)){f=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((f+-1|0)>>>0)/(d>>>0)|0)+1|0)>(h|0)){j=b+16|0;c[j>>2]=$(d,h)|0;e=b+8|0;Bp(a,b+48|0,$(f<<7,c[e>>2]|0)|0);c[b+40>>2]=1;d=c[j>>2]|0}else{c[b+16>>2]=f;e=b+8|0;d=f}c[b>>2]=Rq(a,1,c[e>>2]|0,d)|0;c[b+20>>2]=c[g>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0)}return}function Vq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=e+d|0;if(!((j>>>0<=(c[b+4>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){k=c[a>>2]|0;c[k+20>>2]=22;Kc[c[k>>2]&255](a)}k=b+24|0;h=c[k>>2]|0;if(!(h>>>0<=d>>>0?j>>>0<=((c[b+16>>2]|0)+h|0)>>>0:0)){if(!(c[b+40>>2]|0)){h=c[a>>2]|0;c[h+20>>2]=69;Kc[c[h>>2]&255](a)}e=b+36|0;if(c[e>>2]|0){br(a,b,1);c[e>>2]=0}if((c[k>>2]|0)>>>0>>0)e=d;else{e=j-(c[b+16>>2]|0)|0;e=(e|0)<0?0:e}c[k>>2]=e;br(a,b,0)}g=b+28|0;h=c[g>>2]|0;do if(h>>>0>>0){e=(f|0)==0;if(h>>>0>>0)if(e){g=0;e=d}else{e=c[a>>2]|0;c[e+20>>2]=22;Kc[c[e>>2]&255](a);e=d;i=19}else if(e){g=0;e=h}else{e=h;i=19}if((i|0)==19){c[g>>2]=j;g=1}if(!(c[b+32>>2]|0)){if(g)break;j=c[a>>2]|0;c[j+20>>2]=22;Kc[c[j>>2]&255](a);break}else{h=c[b+8>>2]|0;g=c[k>>2]|0;e=e-g|0;g=j-g|0;if(e>>>0>=g>>>0)break;do{up(c[(c[b>>2]|0)+(e<<2)>>2]|0,h);e=e+1|0}while(e>>>0>>0)}}while(0);if(f)c[b+36>>2]=1;return (c[b>>2]|0)+(d-(c[k>>2]|0)<<2)|0}function Wq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=e+d|0;if(!((j>>>0<=(c[b+4>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){k=c[a>>2]|0;c[k+20>>2]=22;Kc[c[k>>2]&255](a)}k=b+24|0;h=c[k>>2]|0;if(!(h>>>0<=d>>>0?j>>>0<=((c[b+16>>2]|0)+h|0)>>>0:0)){if(!(c[b+40>>2]|0)){h=c[a>>2]|0;c[h+20>>2]=69;Kc[c[h>>2]&255](a)}e=b+36|0;if(c[e>>2]|0){ar(a,b,1);c[e>>2]=0}if((c[k>>2]|0)>>>0>>0)e=d;else{e=j-(c[b+16>>2]|0)|0;e=(e|0)<0?0:e}c[k>>2]=e;ar(a,b,0)}g=b+28|0;h=c[g>>2]|0;do if(h>>>0>>0){e=(f|0)==0;if(h>>>0>>0)if(e){g=0;e=d}else{e=c[a>>2]|0;c[e+20>>2]=22;Kc[c[e>>2]&255](a);e=d;i=19}else if(e){g=0;e=h}else{e=h;i=19}if((i|0)==19){c[g>>2]=j;g=1}if(!(c[b+32>>2]|0)){if(g)break;j=c[a>>2]|0;c[j+20>>2]=22;Kc[c[j>>2]&255](a);break}else{h=c[b+8>>2]<<7;g=c[k>>2]|0;e=e-g|0;g=j-g|0;if(e>>>0>=g>>>0)break;do{up(c[(c[b>>2]|0)+(e<<2)>>2]|0,h);e=e+1|0}while(e>>>0>>0)}}while(0);if(f)c[b+36>>2]=1;return (c[b>>2]|0)+(d-(c[k>>2]|0)<<2)|0}function Xq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(b>>>0<=1){if((b|0)==1){f=g+68|0;d=c[f>>2]|0;if(d)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Lc[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0;f=g+72|0;d=c[f>>2]|0;if(d)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Lc[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0}}else{f=c[a>>2]|0;c[f+20>>2]=14;c[f+24>>2]=b;Kc[c[f>>2]&255](a)}e=g+60+(b<<2)|0;d=c[e>>2]|0;c[e>>2]=0;e=g+76|0;if(d)do{h=d;d=c[d>>2]|0;f=(c[h+4>>2]|0)+16+(c[h+8>>2]|0)|0;zp(a,h,f);c[e>>2]=(c[e>>2]|0)-f}while((d|0)!=0);h=g+52+(b<<2)|0;d=c[h>>2]|0;c[h>>2]=0;if(d)do{b=d;d=c[d>>2]|0;h=(c[b+4>>2]|0)+16+(c[b+8>>2]|0)|0;xp(a,b,h);c[e>>2]=(c[e>>2]|0)-h}while((d|0)!=0);return}function Yq(a){a=a|0;var b=0;Xq(a,1);Xq(a,0);b=a+4|0;xp(a,c[b>>2]|0,84);c[b>>2]=0;Dp(a);return}function Zq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;b=b+12|0;if(Xv(c[b>>2]|0,e,0)|0){e=c[a>>2]|0;c[e+20>>2]=65;Kc[c[e>>2]&255](a)}if((Uv(d,1,f,c[b>>2]|0)|0)!=(f|0)){e=c[a>>2]|0;c[e+20>>2]=64;Kc[c[e>>2]&255](a)}return}function _q(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;b=b+12|0;if(Xv(c[b>>2]|0,e,0)|0){e=c[a>>2]|0;c[e+20>>2]=65;Kc[c[e>>2]&255](a)}if((aw(d,1,f,c[b>>2]|0)|0)!=(f|0)){e=c[a>>2]|0;c[e+20>>2]=66;Kc[c[e>>2]&255](a)}return}function $q(a,b){a=a|0;b=b|0;Mv(c[b+12>>2]|0)|0;return}function ar(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[b+8>>2]<<7;l=b+24|0;m=b+20|0;n=b+16|0;o=b+28|0;p=b+4|0;i=(d|0)==0;j=b+48|0;h=b+52|0;d=c[n>>2]|0;a:do if((d|0)>0){f=$(c[l>>2]|0,k)|0;g=0;while(1){e=c[m>>2]|0;q=d-g|0;q=(e|0)<(q|0)?e:q;d=(c[l>>2]|0)+g|0;e=(c[o>>2]|0)-d|0;e=(q|0)<(e|0)?q:e;d=(c[p>>2]|0)-d|0;d=(e|0)<(d|0)?e:d;if((d|0)<1)break a;e=$(d,k)|0;if(i)Hc[c[j>>2]&31](a,j,c[(c[b>>2]|0)+(g<<2)>>2]|0,f,e);else Hc[c[h>>2]&31](a,j,c[(c[b>>2]|0)+(g<<2)>>2]|0,f,e);g=(c[m>>2]|0)+g|0;d=c[n>>2]|0;if((d|0)<=(g|0))break;else f=e+f|0}}while(0);return}function br(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[b+8>>2]|0;l=b+24|0;m=b+20|0;n=b+16|0;o=b+28|0;p=b+4|0;h=(d|0)==0;i=b+48|0;j=b+52|0;d=c[n>>2]|0;a:do if((d|0)>0){f=$(c[l>>2]|0,k)|0;g=0;while(1){e=c[m>>2]|0;q=d-g|0;q=(e|0)<(q|0)?e:q;d=(c[l>>2]|0)+g|0;e=(c[o>>2]|0)-d|0;e=(q|0)<(e|0)?q:e;d=(c[p>>2]|0)-d|0;d=(e|0)<(d|0)?e:d;if((d|0)<1)break a;e=$(d,k)|0;if(h)Hc[c[i>>2]&31](a,i,c[(c[b>>2]|0)+(g<<2)>>2]|0,f,e);else Hc[c[j>>2]&31](a,i,c[(c[b>>2]|0)+(g<<2)>>2]|0,f,e);g=(c[m>>2]|0)+g|0;d=c[n>>2]|0;if((d|0)<=(g|0))break;else f=e+f|0}}while(0);return}function cr(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=c[(c[a+460>>2]|0)+24>>2]|0;f=c[a+112>>2]|0;if((g|0)>0){a=(f|0)==0;j=0;do{if(!a){h=f;i=c[e+(j<<2)>>2]|0;while(1){l=(c[k+((d[i>>0]|0)>>>3<<2)>>2]|0)+((d[i+1>>0]|0)>>>2<<6)+((d[i+2>>0]|0)>>>3<<1)|0;n=b[l>>1]|0;m=n+1<<16>>16;b[l>>1]=m<<16>>16==0?n:m;h=h+-1|0;if(!h)break;else i=i+3|0}}j=j+1|0}while((j|0)<(g|0))}return}function dr(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=d+460|0;B=c[A>>2]|0;D=d+136|0;c[D>>2]=c[B+16>>2];s=c[B+20>>2]|0;C=Pc[c[c[d+4>>2]>>2]&63](d,1,s<<5)|0;c[C>>2]=0;c[C+4>>2]=31;c[C+8>>2]=0;c[C+12>>2]=63;c[C+16>>2]=0;c[C+20>>2]=31;ir(d,C);a:do if((s|0)>1){e=1;while(1){f=(e|0)==0;if((e<<1|0)>(s|0))if(f)g=0;else{i=C;j=0;k=0;g=0;while(1){f=c[i+24>>2]|0;h=(f|0)>(k|0);g=h?i:g;j=j+1|0;if((j|0)==(e|0))break;else{i=i+32|0;k=h?f:k}}}else if(f)g=0;else{i=C;j=0;h=0;g=0;while(1){f=c[i+28>>2]|0;if((f|0)>(h|0)){z=(c[i+24>>2]|0)>0;f=z?f:h;g=z?i:g}else f=h;j=j+1|0;if((j|0)==(e|0))break;else{i=i+32|0;h=f}}}if(!g)break a;f=C+(e<<5)|0;h=g+4|0;c[C+(e<<5)+4>>2]=c[h>>2];i=g+12|0;c[C+(e<<5)+12>>2]=c[i>>2];j=g+20|0;c[C+(e<<5)+20>>2]=c[j>>2];c[f>>2]=c[g>>2];p=g+8|0;k=C+(e<<5)+8|0;c[k>>2]=c[p>>2];r=g+16|0;l=C+(e<<5)+16|0;c[l>>2]=c[r>>2];m=c[h>>2]|0;n=c[g>>2]|0;x=m-n<<4;o=c[i>>2]|0;p=c[p>>2]|0;y=(o-p|0)*12|0;q=c[j>>2]|0;r=c[r>>2]|0;z=(x|0)>(y|0);switch(((q-r<<3|0)>((z?x:y)|0)?2:z&1^1)|0){case 0:{z=(n+m|0)/2|0;c[h>>2]=z;c[f>>2]=z+1;break}case 1:{z=(p+o|0)/2|0;c[i>>2]=z;c[k>>2]=z+1;break}case 2:{z=(r+q|0)/2|0;c[j>>2]=z;c[l>>2]=z+1;break}default:{}}ir(d,g);ir(d,f);e=e+1|0;if((e|0)>=(s|0))break a}}else e=1;while(0);if((e|0)>0){z=0;do{r=c[(c[A>>2]|0)+24>>2]|0;f=c[C+(z<<5)>>2]|0;s=c[C+(z<<5)+4>>2]|0;t=c[C+(z<<5)+8>>2]|0;u=c[C+(z<<5)+12>>2]|0;v=c[C+(z<<5)+16>>2]|0;w=c[C+(z<<5)+20>>2]|0;if((f|0)>(s|0)){i=0;h=0;g=0;f=0}else{x=(t|0)>(u|0);y=(v|0)>(w|0);q=f;i=0;h=0;g=0;f=0;while(1){o=r+(q<<2)|0;p=q<<3|4;if(!x){n=t;while(1){m=n<<2|2;if(!y){l=v;k=(c[o>>2]|0)+(n<<6)+(v<<1)|0;while(1){E=b[k>>1]|0;j=E&65535;if(E<<16>>16){i=($(j,p)|0)+i|0;h=($(j,m)|0)+h|0;g=($(j,l<<3|4)|0)+g|0;f=j+f|0}if((l|0)<(w|0)){l=l+1|0;k=k+2|0}else break}}if((n|0)<(u|0))n=n+1|0;else break}}if((q|0)<(s|0))q=q+1|0;else break}}E=f>>1;a[(c[c[D>>2]>>2]|0)+z>>0]=(i+E|0)/(f|0)|0;a[(c[(c[D>>2]|0)+4>>2]|0)+z>>0]=(h+E|0)/(f|0)|0;a[(c[(c[D>>2]|0)+8>>2]|0)+z>>0]=(g+E|0)/(f|0)|0;z=z+1|0}while((z|0)<(e|0))}c[d+132>>2]=e;E=c[d>>2]|0;c[E+20>>2]=96;c[E+24>>2]=e;Lc[c[E+4>>2]&63](d,1);c[B+28>>2]=1;return}function er(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;K=c[e+460>>2]|0;P=c[K+24>>2]|0;Q=c[e+112>>2]|0;R=c[e+324>>2]|0;S=c[K+40>>2]|0;I=c[e+136>>2]|0;G=c[I>>2]|0;H=c[I+4>>2]|0;I=c[I+8>>2]|0;J=K+36|0;K=K+32|0;L=Q+-1|0;M=L*3|0;N=(Q*3|0)+3|0;if((h|0)>0){O=(Q|0)==0;U=0;do{i=c[f+(U<<2)>>2]|0;j=c[g+(U<<2)>>2]|0;if(!(c[J>>2]|0)){E=1;F=3;T=c[K>>2]|0;k=1}else{E=-1;F=-3;T=(c[K>>2]|0)+(N<<1)|0;i=i+M|0;j=j+L|0;k=0}c[J>>2]=k;w=F+1|0;x=F+2|0;D=$(Q,F)|0;if(O){k=0;j=0;i=0}else{y=0;z=0;A=0;k=0;v=0;m=0;B=Q;l=0;n=0;o=0;C=T;while(1){u=C;C=C+(F<<1)|0;r=d[R+((d[i>>0]|0)+(c[S+(l+8+(b[C>>1]|0)>>4<<2)>>2]|0))>>0]|0;s=d[R+((d[i+1>>0]|0)+(c[S+(n+8+(b[u+(w<<1)>>1]|0)>>4<<2)>>2]|0))>>0]|0;t=d[R+((d[i+2>>0]|0)+(c[S+(o+8+(b[u+(x<<1)>>1]|0)>>4<<2)>>2]|0))>>0]|0;n=t>>>3;o=s>>>2;p=r>>>3;q=(c[P+(p<<2)>>2]|0)+(o<<6)+(n<<1)|0;l=b[q>>1]|0;if(!(l<<16>>16)){hr(e,p,o,n);l=b[q>>1]|0}o=(l&65535)+-1|0;a[j>>0]=o;p=r-(d[G+o>>0]|0)|0;n=s-(d[H+o>>0]|0)|0;o=t-(d[I+o>>0]|0)|0;b[u>>1]=(p*3|0)+k;k=(p*5|0)+y|0;b[u+2>>1]=(n*3|0)+v;l=(n*5|0)+z|0;b[u+4>>1]=(o*3|0)+m;m=(o*5|0)+A|0;B=B+-1|0;if(!B){j=l;i=m;break}else{y=p;z=n;A=o;v=l;l=p*7|0;n=n*7|0;o=o*7|0;i=i+F|0;j=j+E|0}}}b[T+(D<<1)>>1]=k;b[T+(D+1<<1)>>1]=j;b[T+(D+2<<1)>>1]=i;U=U+1|0}while((U|0)<(h|0))}return}function fr(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=c[(c[e+460>>2]|0)+24>>2]|0;o=c[e+112>>2]|0;if((h|0)>0){p=(o|0)==0;t=0;do{if(!p){q=o;r=c[f+(t<<2)>>2]|0;s=c[g+(t<<2)>>2]|0;while(1){j=(d[r>>0]|0)>>>3;k=(d[r+1>>0]|0)>>>2;l=(d[r+2>>0]|0)>>>3;m=(c[n+(j<<2)>>2]|0)+(k<<6)+(l<<1)|0;i=b[m>>1]|0;if(!(i<<16>>16)){hr(e,j,k,l);i=b[m>>1]|0}a[s>>0]=(i&65535)+255;q=q+-1|0;if(!q)break;else{r=r+3|0;s=s+1|0}}}t=t+1|0}while((t|0)<(h|0))}return}function gr(a){a=a|0;return}function hr(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+1408|0;H=L;I=L+1152|0;J=L+1024|0;K=c[(c[e+460>>2]|0)+24>>2]|0;E=f>>2;F=g>>3;G=h>>2;o=E<<5;D=o|4;q=F<<5;B=q|2;s=G<<5;C=s|4;u=c[e+132>>2]|0;o=o|28;p=o+D>>1;q=q|30;r=q+B>>1;s=s|28;t=s+C>>1;A=e+136|0;if((u|0)>0){m=c[A>>2]|0;k=c[m>>2]|0;l=c[m+4>>2]|0;m=c[m+8>>2]|0;n=0;h=2147483647;do{f=d[k+n>>0]|0;do if((f|0)>=(D|0)){if((f|0)>(o|0)){g=f-o<<1;e=f-D<<1;e=$(e,e)|0;g=$(g,g)|0;break}if((f|0)>(p|0)){e=f-D<<1;e=$(e,e)|0;g=0;break}else{e=f-o<<1;e=$(e,e)|0;g=0;break}}else{g=f-D<<1;e=f-o<<1;e=$(e,e)|0;g=$(g,g)|0}while(0);f=d[l+n>>0]|0;do if((f|0)>=(B|0)){if((f|0)>(q|0)){j=(f-q|0)*3|0;f=(f-B|0)*3|0;f=$(f,f)|0;j=($(j,j)|0)+g|0;break}if((f|0)>(r|0)){f=(f-B|0)*3|0;f=$(f,f)|0;j=g;break}else{f=(f-q|0)*3|0;f=$(f,f)|0;j=g;break}}else{j=(f-B|0)*3|0;f=(f-q|0)*3|0;f=$(f,f)|0;j=($(j,j)|0)+g|0}while(0);e=f+e|0;f=d[m+n>>0]|0;do if((f|0)>=(C|0)){if((f|0)>(s|0)){z=f-s|0;g=f-C|0;g=$(g,g)|0;f=($(z,z)|0)+j|0;break}if((f|0)>(t|0)){g=f-C|0;g=$(g,g)|0;f=j;break}else{g=f-s|0;g=$(g,g)|0;f=j;break}}else{z=f-C|0;g=f-s|0;g=$(g,g)|0;f=($(z,z)|0)+j|0}while(0);z=e+g|0;c[H+(n<<2)>>2]=f;h=(z|0)<(h|0)?z:h;n=n+1|0}while((n|0)<(u|0))}else h=2147483647;if((u|0)>0){g=0;f=0;do{if((c[H+(g<<2)>>2]|0)<=(h|0)){a[I+f>>0]=g;f=f+1|0}g=g+1|0}while((g|0)<(u|0));z=f}else z=0;f=H;g=127;while(1){c[f>>2]=2147483647;if((g|0)>0){f=f+4|0;g=g+-1|0}else break}if((z|0)>0){u=0;do{j=a[I+u>>0]|0;s=j&255;l=c[A>>2]|0;x=D-(d[(c[l>>2]|0)+s>>0]|0)|0;v=x<<1;v=$(v,v)|0;k=B-(d[(c[l+4>>2]|0)+s>>0]|0)|0;m=k*3|0;v=($(m,m)|0)+v|0;s=C-(d[(c[l+8>>2]|0)+s>>0]|0)|0;k=(k*72|0)+144|0;l=(s<<4)+64|0;m=l+128|0;n=m+128|0;o=H;q=J;s=v+($(s,s)|0)|0;v=3;x=(x<<6)+256|0;while(1){p=o;r=q;t=s;w=7;y=k;while(1){if((t|0)<(c[p>>2]|0)){c[p>>2]=t;a[r>>0]=j}f=l+t|0;g=p+4|0;h=r+1|0;if((f|0)<(c[g>>2]|0)){c[g>>2]=f;a[h>>0]=j}f=m+f|0;e=g+4|0;h=h+1|0;if((f|0)<(c[e>>2]|0)){c[e>>2]=f;a[h>>0]=j}g=n+f|0;f=e+4|0;if((g|0)<(c[f>>2]|0)){c[f>>2]=g;a[h+1>>0]=j}if((w|0)>0){p=p+16|0;r=r+4|0;t=y+t|0;w=w+-1|0;y=y+288|0}else break}if((v|0)>0){o=o+128|0;q=q+32|0;s=x+s|0;v=v+-1|0;x=x+512|0}else break}u=u+1|0}while((u|0)<(z|0))}m=E<<2;l=F<<3;k=G<<2;g=J;e=0;while(1){f=K+(e+m<<2)|0;h=g;j=0;while(1){I=(c[f>>2]|0)+(j+l<<6)+(k<<1)|0;G=h+1|0;H=I+2|0;b[I>>1]=(d[h>>0]|0)+1;I=G+1|0;J=H+2|0;b[H>>1]=(d[G>>0]|0)+1;b[J>>1]=(d[I>>0]|0)+1;b[J+2>>1]=(d[I+1>>0]|0)+1;j=j+1|0;if((j|0)==8)break;else h=h+4|0}e=e+1|0;if((e|0)==4)break;else g=g+32|0}i=L;return}function ir(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=c[(c[a+460>>2]|0)+24>>2]|0;h=c[d>>2]|0;n=d+4|0;m=c[n>>2]|0;p=d+8|0;o=c[p>>2]|0;r=d+12|0;q=c[r>>2]|0;t=d+16|0;s=c[t>>2]|0;v=d+20|0;l=c[v>>2]|0;a:do if((h|0)<(m|0)){e=(o|0)>(q|0);f=(s|0)>(l|0);a=h;b:while(1){g=w+(a<<2)|0;if(!e){i=o;while(1){if(!f){j=s;k=(c[g>>2]|0)+(i<<6)+(s<<1)|0;while(1){if(b[k>>1]|0)break b;if((j|0)<(l|0)){j=j+1|0;k=k+2|0}else break}}if((i|0)<(q|0))i=i+1|0;else break}}if((a|0)<(m|0))a=a+1|0;else{u=h;break a}}c[d>>2]=a;u=a}else u=h;while(0);c:do if((m|0)>(u|0)){e=(o|0)>(q|0);f=(s|0)>(l|0);a=m;d:while(1){g=w+(a<<2)|0;if(!e){h=o;while(1){if(!f){i=s;j=(c[g>>2]|0)+(h<<6)+(s<<1)|0;while(1){if(b[j>>1]|0)break d;if((i|0)<(l|0)){i=i+1|0;j=j+2|0}else break}}if((h|0)<(q|0))h=h+1|0;else break}}if((a|0)>(u|0))a=a+-1|0;else break c}c[n>>2]=a;m=a}while(0);e:do if((o|0)<(q|0)){e=(m|0)<(u|0);f=(s|0)>(l|0);a=o;f:while(1){if(!e){g=u;while(1){if(!f){h=s;i=(c[w+(g<<2)>>2]|0)+(a<<6)+(s<<1)|0;while(1){if(b[i>>1]|0)break f;if((h|0)<(l|0)){h=h+1|0;i=i+2|0}else break}}if((g|0)<(m|0))g=g+1|0;else break}}if((a|0)<(q|0))a=a+1|0;else break e}c[p>>2]=a;o=a}while(0);g:do if((q|0)>(o|0)){e=(m|0)<(u|0);f=(s|0)>(l|0);a=q;h:while(1){if(!e){g=u;while(1){if(!f){h=s;i=(c[w+(g<<2)>>2]|0)+(a<<6)+(s<<1)|0;while(1){if(b[i>>1]|0)break h;if((h|0)<(l|0)){h=h+1|0;i=i+2|0}else break}}if((g|0)<(m|0))g=g+1|0;else break}}if((a|0)>(o|0))a=a+-1|0;else{p=q;break g}}c[r>>2]=a;p=a}else p=q;while(0);i:do if((s|0)<(l|0)){e=(m|0)<(u|0);f=(p|0)<(o|0);a=s;j:while(1){if(!e){g=u;while(1){if(!f){h=o;i=(c[w+(g<<2)>>2]|0)+(o<<6)+(a<<1)|0;while(1){if(b[i>>1]|0)break j;if((h|0)<(p|0)){h=h+1|0;i=i+64|0}else break}}if((g|0)<(m|0))g=g+1|0;else break}}if((a|0)<(l|0))a=a+1|0;else{n=s;break i}}c[t>>2]=a;n=a}else n=s;while(0);k:do if((l|0)>(n|0)){e=(m|0)<(u|0);f=(p|0)<(o|0);a=l;l:while(1){if(!e){g=u;while(1){if(!f){h=o;i=(c[w+(g<<2)>>2]|0)+(o<<6)+(a<<1)|0;while(1){if(b[i>>1]|0)break l;if((h|0)<(p|0)){h=h+1|0;i=i+64|0}else break}}if((g|0)<(m|0))g=g+1|0;else break}}if((a|0)>(n|0))a=a+-1|0;else break k}c[v>>2]=a;l=a}while(0);t=m-u<<4;s=(p-o|0)*12|0;v=l-n<<3;c[d+24>>2]=($(s,s)|0)+($(t,t)|0)+($(v,v)|0);if((m|0)<(u|0))a=0;else{j=(p|0)<(o|0);k=(l|0)<(n|0);i=u;a=0;while(1){g=w+(i<<2)|0;if(!j){h=o;while(1){if(!k){f=n;e=(c[g>>2]|0)+(h<<6)+(n<<1)|0;while(1){a=((b[e>>1]|0)!=0&1)+a|0;if((f|0)<(l|0)){f=f+1|0;e=e+2|0}else break}}if((h|0)<(p|0))h=h+1|0;else break}}if((i|0)<(m|0))i=i+1|0;else break}}c[d+28>>2]=a;return}function jr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[(c[b+460>>2]|0)+24>>2]|0;m=c[o>>2]|0;n=c[o+4>>2]|0;o=c[o+8>>2]|0;b=c[b+112>>2]|0;if((g|0)>0){h=(b|0)==0;l=0;do{if(!h){i=b;j=c[e+(l<<2)>>2]|0;k=c[f+(l<<2)>>2]|0;while(1){a[k>>0]=(d[n+(d[j+1>>0]|0)>>0]|0)+(d[m+(d[j>>0]|0)>>0]|0)+(d[o+(d[j+2>>0]|0)>>0]|0);i=i+-1|0;if(!i)break;else{j=j+3|0;k=k+1|0}}}l=l+1|0}while((l|0)<(g|0))}return}function kr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=c[(c[b+460>>2]|0)+24>>2]|0;s=c[b+112>>2]|0;l=c[b+120>>2]|0;q=(l|0)>0?l:0;if((g|0)>0){j=(s|0)==0;k=(l|0)>0;p=0;do{if(!j){m=s;n=c[e+(p<<2)>>2]|0;o=c[f+(p<<2)>>2]|0;while(1){if(k){h=0;b=0;i=n;while(1){b=(d[(c[r+(h<<2)>>2]|0)+(d[i>>0]|0)>>0]|0)+b|0;h=h+1|0;if((h|0)>=(l|0))break;else i=i+1|0}}else b=0;a[o>>0]=b;m=m+-1|0;if(!m)break;else{n=n+q|0;o=o+1|0}}}p=p+1|0}while((p|0)<(g|0))}return}function lr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;k=c[b+460>>2]|0;x=c[k+24>>2]|0;v=c[x>>2]|0;w=c[x+4>>2]|0;x=c[x+8>>2]|0;b=c[b+112>>2]|0;h=k+48|0;i=k+52|0;j=k+56|0;k=k+60|0;if((g|0)>0){l=(b|0)==0;u=0;do{m=c[h>>2]|0;n=c[i>>2]|0;o=c[j>>2]|0;p=c[k>>2]|0;if(!l){q=b;r=0;s=c[e+(u<<2)>>2]|0;t=c[f+(u<<2)>>2]|0;while(1){a[t>>0]=(d[w+((d[s+1>>0]|0)+(c[o+(m<<6)+(r<<2)>>2]|0))>>0]|0)+(d[v+((d[s>>0]|0)+(c[n+(m<<6)+(r<<2)>>2]|0))>>0]|0)+(d[x+((d[s+2>>0]|0)+(c[p+(m<<6)+(r<<2)>>2]|0))>>0]|0);q=q+-1|0;if(!q)break;else{r=r+1&15;s=s+3|0;t=t+1|0}}}c[h>>2]=m+1&15;u=u+1|0}while((u|0)<(g|0))}return}function mr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=c[b+460>>2]|0;x=c[b+120>>2]|0;m=c[b+112>>2]|0;n=w+48|0;o=w+24|0;if((g|0)>0){p=(x|0)>0;b=(m|0)==0;v=0;do{h=f+(v<<2)|0;up(c[h>>2]|0,m);i=c[n>>2]|0;j=e+(v<<2)|0;if(p){q=0;do{k=c[(c[o>>2]|0)+(q<<2)>>2]|0;l=c[w+52+(q<<2)>>2]|0;if(!b){r=m;s=0;t=(c[j>>2]|0)+q|0;u=c[h>>2]|0;while(1){a[u>>0]=(d[u>>0]|0)+(d[k+((d[t>>0]|0)+(c[l+(i<<6)+(s<<2)>>2]|0))>>0]|0);r=r+-1|0;if(!r)break;else{s=s+1&15;t=t+x|0;u=u+1|0}}}q=q+1|0}while((q|0)<(x|0))}c[n>>2]=i+1&15;v=v+1|0}while((v|0)<(g|0))}return}function nr(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;J=c[e+460>>2]|0;K=c[e+120>>2]|0;L=c[e+112>>2]|0;E=c[e+324>>2]|0;F=J+84|0;G=J+24|0;v=J+16|0;w=L+-1|0;x=$(w,K)|0;y=0-K|0;z=L+1|0;if((h|0)>0){A=(K|0)>0;B=(L|0)==0;I=0;do{C=g+(I<<2)|0;up(c[C>>2]|0,L);D=f+(I<<2)|0;if(A){H=0;do{i=c[C>>2]|0;e=c[J+68+(H<<2)>>2]|0;if(!(c[F>>2]|0)){j=H;s=1;t=K;u=e}else{j=H+x|0;s=-1;t=y;u=e+(z<<1)|0;i=i+w|0}m=c[(c[G>>2]|0)+(H<<2)>>2]|0;n=c[(c[v>>2]|0)+(H<<2)>>2]|0;r=$(L,s)|0;if(B)e=0;else{o=0;e=0;p=L;k=0;q=u;l=(c[D>>2]|0)+j|0;while(1){M=q;q=q+(s<<1)|0;k=d[E+((k+8+(b[q>>1]|0)>>4)+(d[l>>0]|0))>>0]|0;j=d[m+k>>0]|0;a[i>>0]=(d[i>>0]|0)+j;j=k-(d[n+j>>0]|0)|0;b[M>>1]=(j*3|0)+e;e=(j*5|0)+o|0;p=p+-1|0;if(!p)break;else{o=j;k=j*7|0;l=l+t|0;i=i+s|0}}}b[u+(r<<1)>>1]=e;H=H+1|0}while((H|0)<(K|0))}c[F>>2]=(c[F>>2]|0)==0&1;I=I+1|0}while((I|0)<(h|0))}return}function or(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+16|0;k=j;n=c[a+432>>2]|0;l=h-(c[g>>2]|0)|0;m=c[n+16>>2]|0;c[k>>2]=0;h=n+12|0;Tc[c[(c[a+452>>2]|0)+4>>2]&7](a,b,d,e,c[h>>2]|0,k,l>>>0>m>>>0?m:l);ad[c[(c[a+460>>2]|0)+4>>2]&31](a,c[h>>2]|0,f+(c[g>>2]<<2)|0,c[k>>2]|0);c[g>>2]=(c[g>>2]|0)+(c[k>>2]|0);i=j;return}function pr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;k=c[a+432>>2]|0;l=k+24|0;h=c[l>>2]|0;if(!h){j=k+16|0;f=Oc[c[(c[a+4>>2]|0)+28>>2]&31](a,c[k+8>>2]|0,c[k+20>>2]|0,c[j>>2]|0,1)|0;i=k+12|0;c[i>>2]=f;h=c[l>>2]|0}else{f=k+12|0;j=k+16|0;i=f;f=c[f>>2]|0}Tc[c[(c[a+452>>2]|0)+4>>2]&7](a,b,d,e,f,l,c[j>>2]|0);f=c[l>>2]|0;if(f>>>0>h>>>0){f=f-h|0;ad[c[(c[a+460>>2]|0)+4>>2]&31](a,(c[i>>2]|0)+(h<<2)|0,0,f);c[g>>2]=(c[g>>2]|0)+f;f=c[l>>2]|0}h=c[j>>2]|0;if(f>>>0>=h>>>0){g=k+20|0;c[g>>2]=(c[g>>2]|0)+h;c[l>>2]=0}return}function qr(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;e=c[a+432>>2]|0;j=e+24|0;d=c[j>>2]|0;if(!d){i=e+20|0;b=e+16|0;k=Oc[c[(c[a+4>>2]|0)+28>>2]&31](a,c[e+8>>2]|0,c[i>>2]|0,c[b>>2]|0,0)|0;c[e+12>>2]=k;d=c[j>>2]|0;e=k}else{i=e+20|0;b=e+16|0;e=c[e+12>>2]|0}k=(c[b>>2]|0)-d|0;l=c[g>>2]|0;h=h-l|0;k=k>>>0>h>>>0?h:k;h=(c[a+116>>2]|0)-(c[i>>2]|0)|0;k=k>>>0>h>>>0?h:k;ad[c[(c[a+460>>2]|0)+4>>2]&31](a,e+(d<<2)|0,f+(l<<2)|0,k);c[g>>2]=(c[g>>2]|0)+k;k=(c[j>>2]|0)+k|0;c[j>>2]=k;d=c[b>>2]|0;if(k>>>0>=d>>>0){c[i>>2]=(c[i>>2]|0)+d;c[j>>2]=0}return}function rr(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+48|0;z=B+20|0;A=B;t=c[a+444>>2]|0;s=c[a+412>>2]|0;if(((c[a+276>>2]|0)!=0?(c[t+40>>2]|0)==0:0)?(vr(a)|0)==0:0)f=0;else k=4;a:do if((k|0)==4){if(!(c[t+8>>2]|0)){c[z+16>>2]=a;u=a+24|0;w=c[u>>2]|0;c[z>>2]=c[w>>2];v=z+4|0;c[v>>2]=c[w+4>>2];w=t+12|0;f=c[w>>2]|0;x=t+16|0;g=c[x>>2]|0;y=t+20|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];c[A+16>>2]=c[y+16>>2];p=a+356|0;q=z+8|0;r=z+12|0;if((c[p>>2]|0)>0){o=0;do{m=c[e+(o<<2)>>2]|0;n=c[a+360+(o<<2)>>2]|0;l=c[t+44+(c[(c[a+332+(n<<2)>>2]|0)+20>>2]<<2)>>2]|0;if((g|0)<8){if(!(Wo(z,f,g,0)|0)){f=0;break a}f=c[q>>2]|0;g=c[r>>2]|0;if((g|0)<8){h=1;k=11}else k=9}else k=9;if((k|0)==9){k=0;j=f>>g+-8&255;h=c[l+144+(j<<2)>>2]|0;if(!h){h=9;k=11}else{g=g-h|0;h=d[l+1168+j>>0]|0}}if((k|0)==11){h=Xo(z,f,g,l,h)|0;if((h|0)<0){f=0;break a}g=c[r>>2]|0;f=c[q>>2]|0}if(h){if((g|0)<(h|0)){if(!(Wo(z,f,g,h)|0)){f=0;break a}g=c[r>>2]|0;f=c[q>>2]|0}g=g-h|0;j=f>>g&(1<>2]|0))h=(c[5756+(h<<2)>>2]|0)+j|0;else h=j}else h=0;l=A+4+(n<<2)|0;n=(c[l>>2]|0)+h|0;c[l>>2]=n;b[m>>1]=n<>2]|0))}u=c[u>>2]|0;c[u>>2]=c[z>>2];c[u+4>>2]=c[v>>2];c[w>>2]=f;c[x>>2]=g;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];c[y+8>>2]=c[A+8>>2];c[y+12>>2]=c[A+12>>2];c[y+16>>2]=c[A+16>>2]}f=t+40|0;c[f>>2]=(c[f>>2]|0)+-1;f=1}while(0);i=B;return f|0}function sr(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+32|0;v=y;w=c[a+444>>2]|0;n=c[a+404>>2]|0;o=c[a+412>>2]|0;if(((c[a+276>>2]|0)!=0?(c[w+40>>2]|0)==0:0)?(vr(a)|0)==0:0)f=0;else j=4;a:do if((j|0)==4){if(!(c[w+8>>2]|0)){x=w+20|0;f=c[x>>2]|0;if(!f){c[v+16>>2]=a;r=a+24|0;t=c[r>>2]|0;c[v>>2]=c[t>>2];s=v+4|0;c[s>>2]=c[t+4>>2];t=w+12|0;g=c[t>>2]|0;u=w+16|0;h=c[u>>2]|0;l=c[e>>2]|0;m=c[w+60>>2]|0;f=c[a+400>>2]|0;q=v+8|0;p=v+12|0;b:do if((f|0)>(n|0))f=0;else{k=f;while(1){if((h|0)<8){if(!(Wo(v,g,h,0)|0)){f=0;break a}g=c[q>>2]|0;h=c[p>>2]|0;if((h|0)<8){f=1;j=13}else j=11}else j=11;if((j|0)==11){j=0;e=g>>h+-8&255;f=c[m+144+(e<<2)>>2]|0;if(!f){f=9;j=13}else{h=h-f|0;f=d[m+1168+e>>0]|0}}if((j|0)==13){f=Xo(v,g,h,m,f)|0;if((f|0)<0){f=0;break a}h=c[p>>2]|0;g=c[q>>2]|0}e=f>>4;a=f&15;if(!a){if((e|0)!=15)break;f=k+15|0}else{e=e+k|0;if((h|0)<(a|0)){if(!(Wo(v,g,h,a)|0)){f=0;break a}h=c[p>>2]|0;g=c[q>>2]|0}h=h-a|0;f=g>>h&(1<>2]|0))f=(c[5756+(a<<2)>>2]|0)+f|0;b[l+(c[5344+(e<<2)>>2]<<1)>>1]=f<>2]|0;g=c[q>>2]|0}h=h-e|0;f=(g>>h&f+-1)+f|0}f=f+-1|0}while(0);r=c[r>>2]|0;c[r>>2]=c[v>>2];c[r+4>>2]=c[s>>2];c[t>>2]=g;c[u>>2]=h}else f=f+-1|0;c[x>>2]=f}f=w+40|0;c[f>>2]=(c[f>>2]|0)+-1;f=1}while(0);i=y;return f|0}function tr(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+32|0;s=t;r=c[a+444>>2]|0;m=1<>2];if(((c[a+276>>2]|0)!=0?(c[r+40>>2]|0)==0:0)?(vr(a)|0)==0:0)f=0;else g=4;a:do if((g|0)==4){c[s+16>>2]=a;n=a+24|0;p=c[n>>2]|0;c[s>>2]=c[p>>2];o=s+4|0;c[o>>2]=c[p+4>>2];p=r+12|0;f=c[p>>2]|0;q=r+16|0;g=c[q>>2]|0;j=a+356|0;k=s+8|0;l=s+12|0;if((c[j>>2]|0)>0){h=0;do{a=c[d+(h<<2)>>2]|0;if((g|0)<1){if(!(Wo(s,f,g,1)|0)){f=0;break a}g=c[l>>2]|0;f=c[k>>2]|0}g=g+-1|0;if(1<>1]=e[a>>1]|0|m;h=h+1|0}while((h|0)<(c[j>>2]|0))}n=c[n>>2]|0;c[n>>2]=c[s>>2];c[n+4>>2]=c[o>>2];c[p>>2]=f;c[q>>2]=g;f=r+40|0;c[f>>2]=(c[f>>2]|0)+-1;f=1}while(0);i=t;return f|0}function ur(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+288|0;F=G;y=G+24|0;z=c[a+444>>2]|0;u=c[a+404>>2]|0;w=c[a+412>>2]|0;v=1<>2]|0)!=0?(c[z+40>>2]|0)==0:0)?(vr(a)|0)==0:0)f=0;else r=4;a:do if((r|0)==4){do if(!(c[z+8>>2]|0)){c[F+16>>2]=a;A=a+24|0;C=c[A>>2]|0;c[F>>2]=c[C>>2];B=F+4|0;c[B>>2]=c[C+4>>2];C=z+12|0;f=c[C>>2]|0;D=z+16|0;g=c[D>>2]|0;E=z+20|0;h=c[E>>2]|0;x=c[e>>2]|0;m=c[z+60>>2]|0;j=c[a+400>>2]|0;p=F+8|0;q=F+12|0;b:do if(!h)if((j|0)<=(u|0)){e=f;f=0;c:while(1){if((g|0)<8){if(!(Wo(F,e,g,0)|0))break b;e=c[p>>2]|0;g=c[q>>2]|0;if((g|0)<8){h=1;r=12}else r=10}else r=10;if((r|0)==10){r=0;k=e>>g+-8&255;h=c[m+144+(k<<2)>>2]|0;if(!h){h=9;r=12}else{g=g-h|0;h=d[m+1168+k>>0]|0}}if((r|0)==12){r=0;h=Xo(F,e,g,m,h)|0;if((h|0)<0)break b;g=c[q>>2]|0;e=c[p>>2]|0}k=h>>4;switch(h&15|0){case 0:{if((k|0)==15){k=15;l=0}else break c;break}case 1:{r=16;break}default:{r=c[a>>2]|0;c[r+20>>2]=118;Lc[c[r+4>>2]&63](a,-1);r=16}}if((r|0)==16){r=0;if((g|0)<1){if(!(Wo(F,e,g,1)|0))break b;g=c[q>>2]|0;h=c[p>>2]|0}else h=e;l=g+-1|0;g=l;e=h;l=(1<>2]<<1)|0;do if(!(b[h>>1]|0))if((k|0)<1)break d;else k=k+-1|0;else{if((g|0)<1){if(!(Wo(F,e,g,1)|0))break b;g=c[q>>2]|0;e=c[p>>2]|0}g=g+-1|0;if((1<>1]|0,n=o<<16>>16,(n&v|0)==0):0)if(o<<16>>16>-1){b[h>>1]=n+v;break}else{b[h>>1]=n+w;break}}while(0);h=j+1|0;if((j|0)<(u|0))j=h;else{j=h;break}}if(l){k=c[5344+(j<<2)>>2]|0;b[x+(k<<1)>>1]=l;c[y+(f<<2)>>2]=k;f=f+1|0}if((j|0)<(u|0))j=j+1|0;else{h=0;f=e;r=54;break b}}h=1<>2]|0;e=c[p>>2]|0}g=g-k|0;h=(e>>g&h+-1)+h|0;if(!h){h=0;f=e;r=54}else r=42}else r=42}else{h=0;r=54}else{e=f;f=0;r=42}while(0);e:do if((r|0)==42){if((j|0)>(u|0))f=e;else while(1){k=x+(c[5344+(j<<2)>>2]<<1)|0;do if(b[k>>1]|0){if((g|0)<1){if(!(Wo(F,e,g,1)|0))break e;g=c[q>>2]|0;e=c[p>>2]|0}g=g+-1|0;if((1<>1]|0,t=s<<16>>16,(t&v|0)==0):0)if(s<<16>>16>-1){b[k>>1]=t+v;break}else{b[k>>1]=t+w;break}}while(0);if((j|0)<(u|0))j=j+1|0;else{f=e;break}}h=h+-1|0;r=54}while(0);if((r|0)==54){A=c[A>>2]|0;c[A>>2]=c[F>>2];c[A+4>>2]=c[B>>2];c[C>>2]=f;c[D>>2]=g;c[E>>2]=h;break}if((f|0)<=0){f=0;break a}while(1){F=f;f=f+-1|0;b[x+(c[y+(f<<2)>>2]<<1)>>1]=0;if((F|0)<=1){f=0;break a}}}while(0);f=z+40|0;c[f>>2]=(c[f>>2]|0)+-1;f=1}while(0);i=G;return f|0}function vr(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+444>>2]|0;d=b+16|0;e=c[a+440>>2]|0;f=e+24|0;c[f>>2]=(c[f>>2]|0)+((c[d>>2]|0)/8|0);c[d>>2]=0;if(Nc[c[e+8>>2]&127](a)|0){d=a+328|0;if((c[d>>2]|0)>0){e=0;do{c[b+24+(e<<2)>>2]=0;e=e+1|0}while((e|0)<(c[d>>2]|0))}c[b+20>>2]=0;c[b+40>>2]=c[a+276>>2];if(!(c[a+416>>2]|0)){c[b+8>>2]=0;b=1}else b=1}else b=0;return b|0}function wr(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=h+g|0;if(g>>>0>13)if((a[f>>0]|0)==74)if((((a[f+1>>0]|0)==70?(a[f+2>>0]|0)==73:0)?(a[f+3>>0]|0)==70:0)?(a[f+4>>0]|0)==0:0){c[e+280>>2]=1;i=a[f+5>>0]|0;j=e+284|0;a[j>>0]=i;k=a[f+6>>0]|0;l=e+285|0;a[l>>0]=k;h=a[f+7>>0]|0;p=e+286|0;a[p>>0]=h;m=(d[f+8>>0]<<8|d[f+9>>0])&65535;n=e+288|0;b[n>>1]=m;g=(d[f+10>>0]<<8|d[f+11>>0])&65535;o=e+290|0;b[o>>1]=g;if(i<<24>>24==1){q=e;j=1;i=m}else{q=c[e>>2]|0;c[q+20>>2]=119;c[q+24>>2]=i&255;c[q+28>>2]=k&255;Lc[c[q+4>>2]&63](e,-1);q=e;j=a[j>>0]|0;k=a[l>>0]|0;i=b[n>>1]|0;g=b[o>>1]|0;h=a[p>>0]|0}p=c[e>>2]|0;c[p+24>>2]=j&255;c[p+28>>2]=k&255;c[p+32>>2]=i&65535;c[p+36>>2]=g&65535;c[p+40>>2]=h&255;c[p+20>>2]=87;Lc[c[p+4>>2]&63](q,1);h=f+12|0;i=a[h>>0]|0;j=f+13|0;g=a[j>>0]|0;if((g|i)<<24>>24){i=c[e>>2]|0;c[i+20>>2]=90;c[i+24>>2]=d[h>>0];c[i+28>>2]=d[j>>0];Lc[c[i+4>>2]&63](q,1);i=a[h>>0]|0;g=a[j>>0]|0}h=r+-14|0;if((h|0)!=($((i&255)*3|0,g&255)|0)){e=c[e>>2]|0;c[e+20>>2]=88;c[e+24>>2]=h;Lc[c[e+4>>2]&63](q,1)}}else s=16;else s=25;else if(g>>>0>5?(a[f>>0]|0)==74:0)s=16;else s=25;a:do if((s|0)==16)if((((a[f+1>>0]|0)==70?(a[f+2>>0]|0)==88:0)?(a[f+3>>0]|0)==88:0)?(a[f+4>>0]|0)==0:0){h=f+5|0;switch(d[h>>0]|0){case 16:{q=c[e>>2]|0;c[q+20>>2]=108;c[q+24>>2]=r;Lc[c[q+4>>2]&63](e,1);break a}case 17:{q=c[e>>2]|0;c[q+20>>2]=109;c[q+24>>2]=r;Lc[c[q+4>>2]&63](e,1);break a}case 19:{q=c[e>>2]|0;c[q+20>>2]=110;c[q+24>>2]=r;Lc[c[q+4>>2]&63](e,1);break a}default:{q=c[e>>2]|0;c[q+20>>2]=89;c[q+24>>2]=d[h>>0];c[q+28>>2]=r;Lc[c[q+4>>2]&63](e,1);break a}}}else s=25;while(0);if((s|0)==25){s=c[e>>2]|0;c[s+20>>2]=77;c[s+24>>2]=r;Lc[c[s+4>>2]&63](e,1)}return}function xr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;if(((((f>>>0>11?(a[e>>0]|0)==65:0)?(a[e+1>>0]|0)==100:0)?(a[e+2>>0]|0)==111:0)?(a[e+3>>0]|0)==98:0)?(a[e+4>>0]|0)==101:0){i=d[e+7>>0]<<8|d[e+8>>0];h=d[e+9>>0]<<8|d[e+10>>0];g=a[e+11>>0]|0;f=c[b>>2]|0;c[f+24>>2]=d[e+5>>0]<<8|d[e+6>>0];c[f+28>>2]=i;c[f+32>>2]=h;c[f+36>>2]=g&255;c[f+20>>2]=76;Lc[c[f+4>>2]&63](b,1);c[b+292>>2]=1;a[b+296>>0]=g}else{i=c[b>>2]|0;c[i+20>>2]=78;c[i+24>>2]=g+f;Lc[c[i+4>>2]&63](b,1)}return}function yr(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[a+24>>2]|0;g=c[o>>2]|0;p=o+4|0;f=c[p>>2]|0;c[a+220>>2]=b;c[a+224>>2]=e;if(!f)if(!(Nc[c[o+12>>2]&127](a)|0))f=0;else{f=c[p>>2]|0;b=c[o>>2]|0;h=4}else{b=g;h=4}a:do if((h|0)==4){f=f+-1|0;e=b+1|0;g=(d[b>>0]|0)<<8;if(!f){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[p>>2]|0;e=c[o>>2]|0}f=f+-1|0;b=e+1|0;k=d[e>>0]|0|g;if(!f){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[p>>2]|0;b=c[o>>2]|0}f=f+-1|0;e=b+1|0;c[a+212>>2]=d[b>>0];if(!f){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[p>>2]|0;e=c[o>>2]|0}b=f+-1|0;g=e+1|0;f=(d[e>>0]|0)<<8;j=a+32|0;c[j>>2]=f;if(!b){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[j>>2]|0;e=c[p>>2]|0;g=c[o>>2]|0}else e=b;e=e+-1|0;b=g+1|0;c[j>>2]=f+(d[g>>0]|0);if(!e){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[p>>2]|0;e=c[o>>2]|0}else{f=e;e=b}b=f+-1|0;g=e+1|0;f=(d[e>>0]|0)<<8;i=a+28|0;c[i>>2]=f;if(!b){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}f=c[i>>2]|0;e=c[p>>2]|0;g=c[o>>2]|0}else e=b;e=e+-1|0;b=g+1|0;c[i>>2]=f+(d[g>>0]|0);if(!e){if(!(Nc[c[o+12>>2]&127](a)|0)){f=0;break}h=c[p>>2]|0;b=c[o>>2]|0}else h=e;l=a+36|0;c[l>>2]=d[b>>0];e=k+-8|0;m=c[a>>2]|0;c[m+24>>2]=c[a+416>>2];c[m+28>>2]=c[i>>2];c[m+32>>2]=c[j>>2];c[m+36>>2]=c[l>>2];c[m+20>>2]=100;Lc[c[m+4>>2]&63](a,1);m=a+440|0;if(c[(c[m>>2]|0)+16>>2]|0){k=c[a>>2]|0;c[k+20>>2]=58;Kc[c[k>>2]&255](a)}if(((c[j>>2]|0)!=0?(c[i>>2]|0)!=0:0)?(n=c[l>>2]|0,(n|0)>=1):0)f=n;else{f=c[a>>2]|0;c[f+20>>2]=32;Kc[c[f>>2]&255](a);f=c[l>>2]|0}if((e|0)!=(f*3|0)){n=c[a>>2]|0;c[n+20>>2]=11;Kc[c[n>>2]&255](a)}f=a+216|0;e=c[f>>2]|0;if(!e){g=Pc[c[c[a+4>>2]>>2]&63](a,1,(c[l>>2]|0)*84|0)|0;c[f>>2]=g}else g=e;k=o+12|0;e=h+-1|0;f=b+1|0;if((c[l>>2]|0)>0){j=0;while(1){c[g+4>>2]=j;if(!e){if(!(Nc[c[k>>2]&127](a)|0)){f=0;break a}e=c[p>>2]|0;f=c[o>>2]|0}e=e+-1|0;b=f+1|0;c[g>>2]=d[f>>0];if(!e){if(!(Nc[c[k>>2]&127](a)|0)){f=0;break a}e=c[p>>2]|0;b=c[o>>2]|0}f=e+-1|0;e=b+1|0;n=d[b>>0]|0;h=g+8|0;c[h>>2]=n>>>4;i=g+12|0;c[i>>2]=n&15;if(!f){if(!(Nc[c[k>>2]&127](a)|0)){f=0;break a}f=c[p>>2]|0;b=c[o>>2]|0}else b=e;n=g+16|0;c[n>>2]=d[b>>0];e=c[a>>2]|0;c[e+24>>2]=c[g>>2];c[e+28>>2]=c[h>>2];c[e+32>>2]=c[i>>2];c[e+36>>2]=c[n>>2];c[e+20>>2]=101;Lc[c[e+4>>2]&63](a,1);j=j+1|0;e=f+-1|0;f=b+1|0;if((j|0)>=(c[l>>2]|0))break;else g=g+84|0}}c[(c[m>>2]|0)+16>>2]=1;c[o>>2]=f;c[p>>2]=e;f=1}while(0);return f|0}function zr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=a+424|0;x=c[w>>2]|0;z=x+48|0;if(!(c[z>>2]|0)){if(Uc[c[(c[a+428>>2]|0)+12>>2]&63](a,c[x+56+(c[x+64>>2]<<2)>>2]|0)|0){c[z>>2]=1;h=x+76|0;c[h>>2]=(c[h>>2]|0)+1;h=4}}else h=4;a:do if((h|0)==4){y=x+68|0;switch(c[y>>2]|0){case 2:{f=x+52|0;g=x+72|0;Tc[c[(c[a+432>>2]|0)+4>>2]&7](a,c[x+56+(c[x+64>>2]<<2)>>2]|0,f,c[g>>2]|0,b,d,e);if((c[f>>2]|0)>>>0<(c[g>>2]|0)>>>0)break a;c[y>>2]=0;if((c[d>>2]|0)>>>0>>0)h=9;else break a;break}case 0:{f=x+52|0;g=x+72|0;h=9;break}case 1:{v=x+52|0;g=x+72|0;break}default:break a}if((h|0)==9){c[f>>2]=0;l=c[a+316>>2]|0;c[g>>2]=l+-1;if((c[x+76>>2]|0)==(c[a+320>>2]|0)?(q=c[w>>2]|0,r=c[a+36>>2]|0,s=q+72|0,t=q+64|0,(r|0)>0):0){o=0;p=c[a+216>>2]|0;while(1){h=$(c[p+36>>2]|0,c[p+12>>2]|0)|0;i=(h|0)/(l|0)|0;k=((c[p+44>>2]|0)>>>0)%(h>>>0)|0;k=(k|0)==0?h:k;h=k+-1|0;if(!o)c[s>>2]=((h|0)/(i|0)|0)+1;m=c[(c[q+56+(c[t>>2]<<2)>>2]|0)+(o<<2)>>2]|0;n=i<<1;j=m+(h<<2)|0;if((i|0)>0){h=0;do{c[m+(h+k<<2)>>2]=c[j>>2];h=h+1|0}while((h|0)<(n|0))}o=o+1|0;if((o|0)>=(r|0))break;else p=p+84|0}}c[y>>2]=1;v=f}u=x+64|0;Tc[c[(c[a+432>>2]|0)+4>>2]&7](a,c[x+56+(c[u>>2]<<2)>>2]|0,v,c[g>>2]|0,b,d,e);if((c[v>>2]|0)>>>0>=(c[g>>2]|0)>>>0){if((c[x+76>>2]|0)==1){q=c[w>>2]|0;f=c[a+316>>2]|0;o=c[a+36>>2]|0;p=q+56|0;q=q+60|0;r=f+1|0;s=f+2|0;if((o|0)>0){t=0;m=c[a+216>>2]|0;while(1){h=($(c[m+36>>2]|0,c[m+12>>2]|0)|0)/(f|0)|0;i=c[(c[p>>2]|0)+(t<<2)>>2]|0;j=c[(c[q>>2]|0)+(t<<2)>>2]|0;k=$(h,r)|0;l=$(h,s)|0;if((h|0)>0){n=0;do{b=n+k|0;a=n-h|0;c[i+(a<<2)>>2]=c[i+(b<<2)>>2];c[j+(a<<2)>>2]=c[j+(b<<2)>>2];a=n+l|0;c[i+(a<<2)>>2]=c[i+(n<<2)>>2];c[j+(a<<2)>>2]=c[j+(n<<2)>>2];n=n+1|0}while((n|0)<(h|0))}t=t+1|0;if((t|0)>=(o|0))break;else m=m+84|0}}}else f=c[a+316>>2]|0;c[u>>2]=c[u>>2]^1;c[z>>2]=0;c[v>>2]=f+1;c[g>>2]=f+2;c[y>>2]=2}}while(0);return}function Ar(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=c[a+424>>2]|0;i=g+48|0;if(!(c[i>>2]|0)){j=g+8|0;if(Uc[c[(c[a+428>>2]|0)+12>>2]&63](a,j)|0){c[i>>2]=1;f=j;k=5}}else{f=g+8|0;k=5}if((k|0)==5?(k=c[a+316>>2]|0,h=g+52|0,Tc[c[(c[a+432>>2]|0)+4>>2]&7](a,f,h,k,b,d,e),(c[h>>2]|0)>>>0>=k>>>0):0){c[i>>2]=0;c[h>>2]=0}return}function Br(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Tc[c[(c[a+432>>2]|0)+4>>2]&7](a,0,0,0,b,d,e);return}function Cr(a){a=a|0;var b=0,d=0;b=c[a+428>>2]|0;do if((c[a+328>>2]|0)<=1){d=c[a+332>>2]|0;if((c[a+148>>2]|0)>>>0<((c[a+320>>2]|0)+-1|0)>>>0){c[b+28>>2]=c[d+12>>2];break}else{c[b+28>>2]=c[d+72>>2];break}}else c[b+28>>2]=1;while(0);c[b+20>>2]=0;c[b+24>>2]=0;return}function Dr(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;oa=i;i=i+128|0;na=oa;ja=c[a+428>>2]|0;la=a+320|0;ma=(c[la>>2]|0)+-1|0;j=a+144|0;k=a+152|0;l=a+436|0;m=a+400|0;n=a+148|0;ka=a+156|0;while(1){f=c[j>>2]|0;g=c[k>>2]|0;if((f|0)>(g|0)){o=7;break}h=c[l>>2]|0;if(c[h+20>>2]|0){o=7;break}if((f|0)==(g|0)?(c[n>>2]|0)>>>0>((c[ka>>2]|0)+((c[m>>2]|0)==0&1)|0)>>>0:0){o=7;break}if(!(Nc[c[h>>2]&127](a)|0)){f=0;break}}if((o|0)==7){Y=a+36|0;Z=a+4|0;_=ja+112|0;aa=a+448|0;ba=na+4|0;ca=na+18|0;da=na+32|0;ea=na+16|0;fa=na+2|0;if((c[Y>>2]|0)>0){ha=0;ia=c[a+216>>2]|0;while(1){if(c[ia+48>>2]|0){f=c[ka>>2]|0;g=ia+12|0;h=c[g>>2]|0;if(f>>>0>>0){j=h<<1;ga=h;k=0}else{ga=((c[ia+32>>2]|0)>>>0)%(h>>>0)|0;ga=(ga|0)==0?h:ga;j=ga;k=1}if(!f){W=Oc[c[(c[Z>>2]|0)+32>>2]&31](a,c[ja+72+(ha<<2)>>2]|0,0,j,0)|0;X=1}else{W=$(h,f+-1|0)|0;W=Oc[c[(c[Z>>2]|0)+32>>2]&31](a,c[ja+72+(ha<<2)>>2]|0,W,h+j|0,0)|0;W=W+(c[g>>2]<<2)|0;X=0}w=c[_>>2]|0;v=ha*6|0;z=c[ia+76>>2]|0;F=e[z>>1]|0;J=e[z+2>>1]|0;H=e[z+16>>1]|0;E=e[z+32>>1]|0;C=e[z+18>>1]|0;z=e[z+4>>1]|0;V=c[(c[aa>>2]|0)+4+(ha<<2)>>2]|0;L=(k|0)!=0;M=ga+-1|0;N=ia+28|0;O=w+((v|1)<<2)|0;s=w+(v+2<<2)|0;t=w+(v+3<<2)|0;u=w+(v+4<<2)|0;v=w+(v+5<<2)|0;w=ia+36|0;x=F*9|0;y=z<<7;z=z<<8;A=F*5|0;B=C<<7;C=C<<8;D=E<<7;E=E<<8;F=F*36|0;G=H<<7;H=H<<8;I=J<<7;J=J<<8;if((ga|0)>0){T=0;U=c[d+(ha<<2)>>2]|0;while(1){f=c[W+(T<<2)>>2]|0;if(X&(T|0)==0)h=f;else h=c[W+(T+-1<<2)>>2]|0;if(L&(T|0)==(M|0))g=f;else g=c[W+(T+1<<2)>>2]|0;P=b[h>>1]|0;Q=b[f>>1]|0;R=b[g>>1]|0;K=(c[N>>2]|0)+-1|0;k=P;m=Q;l=R;S=0;r=0;q=h;while(1){tp(f,na,1);if(S>>>0>>0){n=b[q+128>>1]|0;o=b[f+128>>1]|0;p=b[g+128>>1]|0}else{n=P;o=Q;p=R}j=c[O>>2]|0;if((j|0)!=0&(b[fa>>1]|0)==0){h=$(F,m-o|0)|0;if((h|0)>-1){h=(h+I|0)/(J|0)|0;if((j|0)>0){j=1<0){j=1<>1]=h}j=c[s>>2]|0;if((j|0)!=0&(b[ea>>1]|0)==0){h=$(F,P-R|0)|0;if((h|0)>-1){h=(h+G|0)/(H|0)|0;if((j|0)>0){j=1<0){j=1<>1]=h}j=c[t>>2]|0;if((j|0)!=0&(b[da>>1]|0)==0){h=$(x,P-(Q<<1)+R|0)|0;do if((h|0)>-1){h=(h+D|0)/(E|0)|0;if((j|0)<=0)break;j=1<0){j=1<>1]=h}j=c[u>>2]|0;if((j|0)!=0&(b[ca>>1]|0)==0){h=$(A,k-l-n+p|0)|0;do if((h|0)>-1){h=(h+B|0)/(C|0)|0;if((j|0)<=0)break;l=1<0){l=1<>1]=h}j=c[v>>2]|0;if((j|0)!=0&(b[ba>>1]|0)==0){h=$(x,m-(Q<<1)+o|0)|0;do if((h|0)>-1){h=(h+y|0)/(z|0)|0;if((j|0)<=0)break;m=1<0){m=1<>1]=h}Hc[V&31](a,ia,na,U,r);S=S+1|0;if(S>>>0>K>>>0)break;else{l=R;m=Q;k=P;P=n;Q=o;R=p;f=f+128|0;g=g+128|0;r=(c[w>>2]|0)+r|0;q=q+128|0}}T=T+1|0;if((T|0)>=(ga|0))break;else U=U+(c[w>>2]<<2)|0}}}ha=ha+1|0;if((ha|0)>=(c[Y>>2]|0))break;else ia=ia+84|0}}f=(c[ka>>2]|0)+1|0;c[ka>>2]=f;f=f>>>0<(c[la>>2]|0)>>>0?3:4}i=oa;return f|0}function Er(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,j=0,k=0,l=0,m=0.0;k=i;i=i+64|0;d=k+8|0;h=k+4|0;f=k;j=k+16|0;c[d>>2]=a;do if(!(zs(5820,d)|0))d=c[1465]|0;else{d=As(5820,d)|0;if((c[d+236>>2]|0)<=(b|0)){d=c[1466]|0;break}c[h>>2]=0;c[f>>2]=-1;Ah(c[d+228>>2]|0,h,f)|0;f=c[f>>2]|0;h=c[h>>2]|0;if((f|0)>0){e=-1.0;d=-1;a=0;do{if((c[h+(a*68|0)+48>>2]|0)==(b|0)?(c[h+(a*68|0)+60>>2]|0)==0:0){m=+g[h+(a*68|0)+52>>2];l=(d|0)==-1|e>m;e=l?m:e;d=l?a:d}a=a+1|0}while((a|0)<(f|0))}else{e=-1.0;d=-1}if((d|0)>-1){a=0;do{c[j+(a<<4)>>2]=c[h+(d*68|0)+(a<<4)>>2];c[j+(a<<4)+4>>2]=c[h+(d*68|0)+(a<<4)+4>>2];c[j+(a<<4)+8>>2]=c[h+(d*68|0)+(a<<4)+8>>2];c[j+(a<<4)+12>>2]=c[h+(d*68|0)+(a<<4)+12>>2];a=a+1|0}while((a|0)!=3);nb(0,b|0,+e,+(+g[j>>2]),+(+g[j+4>>2]),+(+g[j+8>>2]),+(+g[j+12>>2]),+(+g[j+16>>2]),+(+g[j+20>>2]),+(+g[j+24>>2]),+(+g[j+28>>2]),+(+g[j+32>>2]),+(+g[j+36>>2]),+(+g[j+40>>2]),+(+g[j+44>>2]))|0}else Cb(1,b|0)|0;d=0}while(0);i=k;return d|0}function Fr(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;if(!(zs(5820,b)|0))b=-1;else{a=As(5820,b)|0;c[d>>2]=0;c[e>>2]=-1;b=a+228|0;ih(c[b>>2]|0,c[a+196>>2]|0)|0;Ah(c[b>>2]|0,d,e)|0;b=c[e>>2]|0}i=f;return b|0}function Gr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(zs(5820,b)|0))b=-1;else{b=As(5820,b)|0;c[b+228>>2]=_g(c[b+192>>2]|0,2)|0;b=0}i=d;return b|0}function Hr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+96|0;s=t+80|0;r=t+72|0;q=t+64|0;p=t+56|0;h=t+48|0;g=t+40|0;l=t+32|0;k=t+24|0;j=t+16|0;f=t+8|0;u=t;m=t+92|0;o=t+88|0;e=t+84|0;c[m>>2]=b;n=c[a+228>>2]|0;c[o>>2]=0;c[u>>2]=d;Kf(1,40632,u);do if((ch(d,40650,e)|0)>=0){c[j>>2]=b;Kf(1,40694,j);if((dh(c[e>>2]|0,-1,b)|0)<0){Kf(3,40719,k);e=0;break}if((ah(o,e)|0)<0){Kf(3,40755,l);e=0;break}Kf(1,40782,g);c[h>>2]=d;Kf(1,40791,h);e=Wg(d,40808,0)|0;if(!e){c[p>>2]=d;Kf(3,40813,p)}Kf(1,40782,q);c[(Bs(a+240|0,m)|0)>>2]=e;if((hh(n,c[o>>2]|0)|0)<0){Kf(3,40846,r);e=0;break}else{bh(o)|0;Kf(1,40871,s);e=1;break}}else{c[f>>2]=d;Kf(3,40656,f);e=0}while(0);i=t;return e|0}function Ir(a){a=a|0;c[1082]=a;return}function Jr(){return c[1082]|0}function Kr(a){a=a|0;var b=0,d=0;b=a+212|0;d=c[b>>2]|0;if(d){xf(d)|0;Ne(c[b>>2]|0)|0;c[b>>2]=0}b=a+224|0;if(c[b>>2]|0){Ie(b)|0;c[b>>2]=0}b=a+192|0;if(c[b>>2]|0){kg(b)|0;c[b>>2]=0}return}function Lr(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;c[d>>2]=a;if(!(zs(5820,d)|0))a=-1;else{f=As(5820,d)|0;a=f+196|0;b=c[a>>2]|0;if(b){dx(b);c[a>>2]=0;c[f+200>>2]=0}Kr(f);Af(c[f+216>>2]|0)|0;Cs(5820,d)|0;d=f+280|0;e=f+284|0;a=c[d>>2]|0;if((c[e>>2]|0)!=(a|0)){b=0;do{Fg(c[a+(b<<3)+4>>2]|0)|0;b=b+1|0;a=c[d>>2]|0}while(b>>>0<(c[e>>2]|0)-a>>3>>>0)}Ds(d);Vt(d);Es(f);Vt(f);a=0}i=g;return a|0}function Mr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+208|0;g=h+192|0;f=h;e=h+196|0;if(!(a[b>>0]&1))d=b+1|0;else d=c[b+8>>2]|0;if((fg(d,1,f,h+184|0)|0)<0){if(!(a[b>>0]&1))d=b+1|0;else d=c[b+8>>2]|0;c[g>>2]=d;Kf(3,40902,g);d=-1}else{d=c[1467]|0;c[1467]=d+1;c[e>>2]=d;gH(Fs(5840,e)|0,f|0,184)|0}i=h;return d|0}function Nr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;m=n+24|0;l=n+16|0;j=n+8|0;f=n;d=n+32|0;e=n+28|0;c[d>>2]=a;c[e>>2]=b;do if((zs(5820,d)|0)!=0?(k=As(5820,d)|0,(Gs(5840,e)|0)!=0):0){g=k+8|0;gH(g|0,Fs(5840,e)|0,184)|0;e=c[g>>2]|0;d=k+204|0;b=c[k+12>>2]|0;a=k+208|0;if(!((e|0)==(c[d>>2]|0)?(b|0)==(c[a>>2]|0):0)){c[f>>2]=e;c[f+4>>2]=b;Kf(2,40961,f);bg(g,c[d>>2]|0,c[a>>2]|0,g)|0}Kr(k);d=jg(g,15)|0;a=k+192|0;c[a>>2]=d;if(!d){Kf(3,41008,j);d=-1;break}d=Je(d)|0;b=k+212|0;c[b>>2]=d;if(!d){Kf(3,41046,l);d=-1;break}Ke(d,2)|0;l=Ge(g)|0;c[k+224>>2]=l;if(!l){Kf(3,41083,m);d=-1;break}else{wf(c[b>>2]|0,c[k+216>>2]|0)|0;Lg(c[a>>2]|0,+h[k+264>>3],+h[k+272>>3],k+296|0);c[k+228>>2]=_g(c[a>>2]|0,2)|0;d=0;break}}else d=-1;while(0);i=n;return d|0}function Or(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;g=j;e=j+12|0;c[e>>2]=b;if(zs(5820,e)|0){f=As(5820,e)|0;if(!(a[d>>0]&1))d=d+1|0;else d=c[d+8>>2]|0;b=f+216|0;e=If(c[b>>2]|0,d)|0;c[f+292>>2]=e;if((e|0)<0){c[g>>2]=d;Kf(3,41121,g);Af(c[b>>2]|0)|0;Kf(3,41167,h);e=-1}}else e=-1;i=j;return e|0}function Pr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;e=j+4|0;c[e>>2]=b;do if(zs(5820,e)|0){f=As(5820,e)|0;g=f+236|0;e=c[g>>2]|0;if(!(a[d>>0]&1))b=d+1|0;else b=c[d+8>>2]|0;if(!(Hr(f,e,b)|0)){Kf(3,41211,h);e=-1;break}else{c[g>>2]=(c[g>>2]|0)+1;break}}else e=-1;while(0);i=j;return e|0}function Qr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;f=l+8|0;e=l+20|0;k=l;c[e>>2]=b;do if(zs(5820,e)|0){j=As(5820,e)|0;if(!(a[d>>0]&1))e=d+1|0;else e=c[d+8>>2]|0;b=c[j+212>>2]|0;d=j+216|0;h=j+220|0;e=Jg(e,c[d>>2]|0)|0;c[h>>2]=e;if(!e){Kf(3,41256,f);Af(c[d>>2]|0)|0;Kf(3,41283,g);e=-1;break}switch(c[e+108>>2]|0){case 0:{We(b,0)|0;break}case 1:{We(b,2)|0;break}default:We(b,3)|0}b=j+280|0;d=j+284|0;f=c[d>>2]|0;e=f-(c[b>>2]|0)>>3;g=k;c[g>>2]=0;c[g+4>>2]=0;c[k>>2]=e;c[k+4>>2]=c[h>>2];if((f|0)==(c[j+288>>2]|0)){Hs(b,k);break}else{j=k;e=c[j>>2]|0;j=c[j+4>>2]|0;k=f;c[k>>2]=e;c[k+4>>2]=j;c[d>>2]=(c[d>>2]|0)+8;break}}else e=-1;while(0);i=l;return e|0}function Rr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;c[d>>2]=a;if(((zs(5820,d)|0)!=0?(e=As(5820,d)|0,(b|0)>=0):0)?(f=c[e+280>>2]|0,(c[e+284>>2]|0)-f>>3>>>0>b>>>0):0)d=c[(c[f+(b<<3)+4>>2]|0)+4>>2]|0;else d=-1;i=g;return d|0}function Sr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(zs(5820,b)|0))b=-1;else{b=As(5820,b)|0;b=(c[b+284>>2]|0)-(c[b+280>>2]|0)>>3}i=d;return b|0}function Tr(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(zs(5820,d)|0)h[(As(5820,d)|0)+264>>3]=b;i=e;return}function Ur(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(!(zs(5820,d)|0))b=-1.0;else b=+h[(As(5820,d)|0)+264>>3];i=e;return +b}function Vr(a,b){a=a|0;b=+b;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(zs(5820,d)|0)h[(As(5820,d)|0)+272>>3]=b;i=e;return}function Wr(a){a=a|0;var b=0.0,d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(!(zs(5820,d)|0))b=-1.0;else b=+h[(As(5820,d)|0)+272>>3];i=e;return +b}function Xr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((zs(5820,d)|0)!=0?(We(c[(As(5820,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Kf(1,41332,e)}i=f;return}function Yr(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0)){i=e;return -1}else{a=(Ze(c[(As(5820,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function Zr(a,b){a=a|0;b=+b;var d=0,e=0,f=0.0,g=0,j=0,k=0;k=i;i=i+16|0;j=k;d=k+8|0;c[d>>2]=a;if((((zs(5820,d)|0)!=0?(e=As(5820,d)|0,!(b<=0.0|b>=1.0)):0)?(f=b,g=c[e+212>>2]|0,(g|0)!=0):0)?(_e(g,f)|0)==0:0){h[j>>3]=f;Kf(1,41367,j)}i=k;return}function _r(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f;c[b>>2]=a;if((zs(5820,b)|0)!=0?(d=c[(As(5820,b)|0)+212>>2]|0,(d|0)!=0):0){a=($e(d,e)|0)==0;i=f;return +(a?+h[e>>3]:-1.0)}i=f;return -1.0}function $r(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;if(zs(5820,d)|0)Xe(c[(As(5820,d)|0)+212>>2]|0,b)|0;i=e;return}function as(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0))b=-1;else{Ye(c[(As(5820,b)|0)+212>>2]|0,d)|0;b=c[d>>2]|0}i=e;return b|0}function bs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((zs(5820,d)|0)!=0?(Pe(c[(As(5820,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Kf(1,41398,e)}i=f;return}function cs(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0)){i=e;return -1}else{a=(Qe(c[(As(5820,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function ds(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;d=g+4|0;c[d>>2]=a;if(((zs(5820,d)|0)!=0?(e=As(5820,d)|0,b>>>0<=255):0)?(Re(c[e+212>>2]|0,b)|0)==0:0){c[f>>2]=b;Kf(1,41423,f)}i=g;return}function es(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0)){i=e;return -1}else{a=(Se(c[(As(5820,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function fs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((zs(5820,d)|0)!=0?(Me(c[(As(5820,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Kf(1,41444,e)}i=f;return}function gs(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0)){i=e;return -1}else{a=(Te(c[(As(5820,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function hs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if(!(zs(5820,d)|0))b=0;else{a=(b|0)!=0;Le(c[(As(5820,d)|0)+212>>2]|0,a&1)|0;c[e>>2]=a?41470:41474;Kf(1,41479,e)}i=f;return b|0}function is(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(zs(5820,b)|0))b=0;else b=c[(c[(As(5820,b)|0)+212>>2]|0)+4834148>>2]|0;i=d;return b|0}function js(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0))b=0;else{Oe(c[(As(5820,b)|0)+212>>2]|0,d)|0;b=c[d>>2]|0}i=e;return b|0}function ks(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=f+4|0;c[d>>2]=a;if((zs(5820,d)|0)!=0?(Ue(c[(As(5820,d)|0)+212>>2]|0,b)|0)==0:0){c[e>>2]=b;Kf(1,41501,e)}i=f;return}function ls(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(zs(5820,b)|0)){i=e;return -1}else{a=(Ve(c[(As(5820,b)|0)+212>>2]|0,d)|0)==0;i=e;return (a?c[d>>2]|0:-1)|0}return 0}function ms(a,b){a=a|0;b=b|0;var c=0;c=0;do{h[b+(c<<5)>>3]=+h[a+(c<<5)>>3];h[b+(c<<5)+8>>3]=+h[a+(c<<5)+8>>3];h[b+(c<<5)+16>>3]=+h[a+(c<<5)+16>>3];h[b+(c<<5)+24>>3]=+h[a+(c<<5)+24>>3];c=c+1|0}while((c|0)!=3);return}function ns(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(zs(5820,e)|0){e=As(5820,e)|0;a=c[e+212>>2]|0;if((c[a+44>>2]|0)>(b|0)){+hf(c[e+224>>2]|0,(b|0)<0?168:a+48+(b<<8)|0,+(d|0),424);e=0;break}else{e=c[1466]|0;break}}else e=c[1465]|0;while(0);i=f;return e|0}function os(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(zs(5820,e)|0){e=As(5820,e)|0;a=c[e+212>>2]|0;if((c[a+44>>2]|0)>(b|0)){+jf(c[e+224>>2]|0,(b|0)<0?168:a+48+(b<<8)|0,424,+(d|0),424);e=0;break}else{e=c[1466]|0;break}}else e=c[1465]|0;while(0);i=f;return e|0}function ps(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(zs(5820,e)|0){e=c[(As(5820,e)|0)+212>>2]|0;if((c[e+44>>2]|0)>(b|0)){c[((b|0)<0?168:e+48+(b<<8)|0)+16>>2]=d;e=0;break}else{e=c[1466]|0;break}}else e=c[1465]|0;while(0);i=f;return e|0}function qs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(zs(5820,d)|0){d=c[(As(5820,d)|0)+212>>2]|0;if((c[d+44>>2]|0)>(b|0)){d=(b|0)<0?168:d+48+(b<<8)|0;o=+h[53];h[d+168>>3]=o;k=+h[54];h[d+176>>3]=k;n=+h[55];h[d+184>>3]=n;j=+h[56];h[d+192>>3]=j;m=+h[57];h[d+200>>3]=m;g=+h[58];h[d+208>>3]=g;l=+h[59];h[d+216>>3]=l;f=+h[60];h[d+224>>3]=f;h[d+56>>3]=(o+n+m+l)*.25;h[d+64>>3]=(k+j+g+f)*.25;d=0;break}else{d=c[1466]|0;break}}else d=c[1465]|0;while(0);i=e;return d|0}function rs(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(zs(5820,d)|0){d=As(5820,d)|0;a=c[d+280>>2]|0;if((b|0)<0?1:(c[d+284>>2]|0)-a>>3>>>0<=b>>>0){d=c[1468]|0;break}else{b=c[a+(b<<3)+4>>2]|0;a=c[d+212>>2]|0;+Hg(c[d+224>>2]|0,a+48|0,c[a+44>>2]|0,b);ms(b+8|0,424);d=0;break}}else d=c[1465]|0;while(0);i=e;return d|0}function ss(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(zs(5820,d)|0){d=As(5820,d)|0;a=c[d+280>>2]|0;if((b|0)<0?1:(c[d+284>>2]|0)-a>>3>>>0<=b>>>0){d=c[1468]|0;break}else{b=c[a+(b<<3)+4>>2]|0;a=c[d+212>>2]|0;+Gg(c[d+224>>2]|0,a+48|0,c[a+44>>2]|0,b);ms(b+8|0,424);d=0;break}}else d=c[1465]|0;while(0);i=e;return d|0}function ts(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(zs(5820,b)|0))b=c[1465]|0;else{b=As(5820,b)|0;b=af(c[b+212>>2]|0,c[b+196>>2]|0)|0}i=d;return b|0}function us(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(zs(5820,b)|0))b=5860;else b=(c[(As(5820,b)|0)+212>>2]|0)+44|0;i=d;return c[b>>2]|0}function vs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=a;do if(zs(5820,e)|0){a=As(5820,e)|0;e=c[a+280>>2]|0;if((b|0)<0?1:(c[a+284>>2]|0)-e>>3>>>0<=b>>>0){e=c[1468]|0;break}e=c[e+(b<<3)+4>>2]|0;if((d|0)<0?1:(c[e+4>>2]|0)<=(d|0)){e=c[1466]|0;break}else{e=c[e>>2]|0;ms(e+(d*320|0)+16|0,424);Ab(2,c[e+(d*320|0)+304>>2]|0,c[e+(d*320|0)>>2]|0,c[e+(d*320|0)+4>>2]|0,+(+h[e+(d*320|0)+8>>3]))|0;e=0;break}}else e=c[1465]|0;while(0);i=f;return e|0}function ws(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;do if(zs(5820,d)|0){d=c[(As(5820,d)|0)+212>>2]|0;if((c[d+44>>2]|0)>(b|0)){d=(b|0)<0?168:d+48+(b<<8)|0;jc(3,c[d>>2]|0,c[d+4>>2]|0,c[d+8>>2]|0,c[d+12>>2]|0,c[d+16>>2]|0,c[d+20>>2]|0,c[d+24>>2]|0,+(+h[d+32>>3]),+(+h[d+40>>3]),+(+h[d+48>>3]),+(+h[d+56>>3]),+(+h[d+64>>3]),+(+h[d+72>>3]),+(+h[d+80>>3]),+(+h[d+88>>3]),+(+h[d+96>>3]),+(+h[d+104>>3]),+(+h[d+112>>3]),+(+h[d+120>>3]),+(+h[d+128>>3]),+(+h[d+136>>3]),+(+h[d+144>>3]),+(+h[d+152>>3]),+(+h[d+160>>3]),+(+h[d+168>>3]),+(+h[d+176>>3]),+(+h[d+184>>3]),+(+h[d+192>>3]),+(+h[d+200>>3]),+(+h[d+208>>3]),+(+h[d+216>>3]),+(+h[d+224>>3]),c[d+240>>2]|0)|0;d=0;break}else{d=c[1466]|0;break}}else d=c[1465]|0;while(0);i=e;return d|0}function xs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h+8|0;f=h+12|0;e=c[1469]|0;c[1469]=e+1;c[f>>2]=e;f=As(5820,f)|0;c[f>>2]=e;c[f+204>>2]=a;c[f+208>>2]=b;j=$(a<<2,b)|0;b=f+200|0;c[b>>2]=j;a=f+196|0;c[a>>2]=cx(j)|0;j=yf()|0;c[f+216>>2]=j;if(!j)Kf(3,43139,h);Nr(e,d)|0;c[g>>2]=c[b>>2];Kf(1,43176,g);vc(4,c[f>>2]|0,c[a>>2]|0,c[b>>2]|0,f+296|0,424)|0;i=h;return c[f>>2]|0}function ys(a){a=a|0;var b=0;a=i;i=i+16|0;b=a;Is(43445,30);Js(43451,74);Js(43460,75);Ks(43469,29);Ks(43480,30);Ks(43496,31);Ls(43510,32);Js(43528,76);Ms(43548,77);Is(43560,31);Ls(43577,33);Is(43597,32);Is(43615,33);Ls(43637,34);Ls(43660,35);Js(43689,78);Js(43702,79);Js(43715,80);Is(43731,34);Ls(43750,36);Ls(43760,37);Ls(43773,38);Js(43786,81);Js(43799,82);Ns(43818,140);Os(43830,1);Ps(43842,1);Qs(43865,1);Ps(43888,2);Qs(43910,2);Rs(43932,49);Js(43949,83);Rs(43966,50);Js(43979,84);Rs(43992,51);Js(44016,85);Ss(44040,3);Qs(44053,3);Rs(44066,52);Js(44084,86);Rs(44102,53);Js(44118,87);Rs(44134,54);Js(44151,88);Ts(44168,5860);Ts(44197,5872);Ts(44225,5864);Ya(44258,872,0);Ya(44275,872,1);Ya(44291,872,0);Ya(44313,872,0);Ya(44338,872,1);Ya(44363,872,1);Ya(44388,872,100);Ya(44415,872,0);Ya(44441,872,1);Ya(44467,872,0);Ya(44494,872,0);Ya(44521,872,1);Ya(44547,872,2);Ya(44572,872,3);Ya(44610,872,4);Ya(44647,872,0);Ya(44681,872,0);Ya(44705,872,1);Ya(44731,872,2);Ya(44758,872,2);Ya(44792,872,5);h[b>>3]=.5;Us(44810,b);Ya(44831,872,0);Ya(44850,872,1);Ya(44868,872,2);Ya(44886,872,3);Ya(44905,872,4);Ya(44927,872,3);Ya(44946,872,515);Ya(44975,872,259);Ya(45003,872,4);Ya(45022,872,772);Ya(45052,872,1028);Ya(45082,872,0);Ya(45113,872,1);Ya(45149,872,2);Ya(45183,872,3);Ya(45221,872,0);Ya(45254,872,1);Ya(45301,872,2);Ya(45343,872,3);Ya(45386,872,4);Ya(45438,872,5);Ya(45489,872,6);Ya(45534,872,7);Ya(45573,872,8);Ya(45618,872,9);i=a;return}function zs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function As(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;d=zs(a,b)|0;if(!d){Ct(f,a,b);Dt(e,a,c[f>>2]|0);d=c[e>>2]|0;c[f>>2]=0}i=g;return d+16|0}function Bs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;d=xt(a,b)|0;if(!d){yt(f,a,b);zt(e,a,c[f>>2]|0);d=c[e>>2]|0;c[f>>2]=0}i=g;return d+12|0}function Cs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;b=zs(a,b)|0;if(!b)b=0;else{c[e>>2]=b;c[d>>2]=c[e>>2];vt(a,d)|0;b=1}i=f;return b|0}function Ds(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Es(a){a=a|0;Ds(a+280|0);tt(a+240|0);return}function Fs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;d=Gs(a,b)|0;if(!d){pt(f,a,b);qt(e,a,c[f>>2]|0);d=c[e>>2]|0;c[f>>2]=0}i=g;return d+16|0}function Gs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function Hs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>3)+1|0;if(f>>>0>536870911)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?f:d}else d=536870911;mt(h,d,(c[g>>2]|0)-e>>3,a+8|0);g=h+8|0;f=c[g>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[g>>2]=f+8;nt(a,h);ot(h);i=j;return}function Is(a,b){a=a|0;b=b|0;ic(a|0,4,5976,45817,8,b|0);return}function Js(a,b){a=a|0;b=b|0;ic(a|0,2,5968,45707,39,b|0);return}function Ks(a,b){a=a|0;b=b|0;ic(a|0,3,5956,45812,35,b|0);return}function Ls(a,b){a=a|0;b=b|0;ic(a|0,3,5944,45812,36,b|0);return}function Ms(a,b){a=a|0;b=b|0;ic(a|0,2,5936,45707,40,b|0);return}function Ns(a,b){a=a|0;b=b|0;ic(a|0,2,5928,45703,55,b|0);return}function Os(a,b){a=a|0;b=b|0;ic(a|0,1,5924,45700,89,b|0);return}function Ps(a,b){a=a|0;b=b|0;ic(a|0,3,5912,45695,1,b|0);return}function Qs(a,b){a=a|0;b=b|0;ic(a|0,2,5904,45691,1,b|0);return}function Rs(a,b){a=a|0;b=b|0;ic(a|0,3,5892,45686,3,b|0);return}function Ss(a,b){a=a|0;b=b|0;ic(a|0,3,5880,45681,2,b|0);return}function Ts(a,b){a=a|0;b=b|0;Ya(a|0,872,c[b>>2]|0);return}function Us(a,b){a=a|0;b=b|0;Ya(a|0,912,~~+h[b>>3]>>>0|0);return}function Vs(){c[1455]=0;c[1456]=0;c[1457]=0;c[1458]=0;g[1459]=1.0;Wa(141,5820,n|0)|0;c[1460]=0;c[1461]=0;c[1462]=0;c[1463]=0;g[1464]=1.0;Wa(142,5840,n|0)|0;ys(0);return}function Ws(a){a=a|0;_s(a);return}function Xs(a){a=a|0;Ys(a);return}function Ys(a){a=a|0;var b=0;Zs(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function Zs(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Vt(a)}while((b|0)!=0);return}function _s(a){a=a|0;var b=0;$s(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function $s(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Es(a+16|0);Vt(a)}while((b|0)!=0);return}function at(a,b,c){a=a|0;b=b|0;c=+c;Ic[a&3](b,c);return}function bt(a,b,c){a=a|0;b=b|0;c=c|0;Lc[a&63](b,c);return}function ct(a,b){a=a|0;b=b|0;return +(+Rc[a&3](b))}function dt(a,b,c){a=a|0;b=b|0;c=+c;Ic[a&3](b,c);return}function et(a){a=a|0;return Wc[a&1]()|0}function ft(a,b){a=a|0;b=b|0;Kc[a&255](b);return}function gt(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;i=i+16|0;d=c;ht(d,b);a=Nc[a&127](d)|0;Yx(d);i=c;return a|0}function ht(a,b){a=a|0;b=b|0;Wx(a,b+4|0,c[b>>2]|0);return}function it(a,b,c){a=a|0;b=b|0;c=c|0;return Uc[a&63](b,c)|0}function jt(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;ht(e,c);a=Uc[a&63](b,e)|0;Yx(e);i=d;return a|0}function kt(a,b){a=a|0;b=b|0;return Nc[a&127](b)|0}function lt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Pc[a&63](b,c,d)|0}function mt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function nt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>3)<<3)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function ot(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function pt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(200)|0;c[e+8>>2]=c[d>>2];iH(e+16|0,0,184)|0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function qt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;rt(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function rt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)st(a,b)}}else st(a,b);return}function st(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+4|0;a:do if(b){m=Tt(b<<2)|0;d=c[a>>2]|0;c[a>>2]=m;if(d)Vt(d);c[e>>2]=b;if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d)Vt(d);c[e>>2]=0}while(0);return}function tt(a){a=a|0;var b=0;ut(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b)Vt(b);return}function ut(a,b){a=a|0;b=b|0;if(b)do{a=b;b=c[b>>2]|0;Vt(a)}while((b|0)!=0);return}function vt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;h=g+16|0;f=g+4|0;j=g;d=c[d>>2]|0;e=c[d>>2]|0;c[j>>2]=d;c[h>>2]=c[j>>2];wt(f,b,h);d=c[f>>2]|0;c[f>>2]=0;if(d){if(a[f+8>>0]|0)Es(d+16|0);Vt(d)}i=g;return e|0}function wt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[e>>2]|0;l=c[d+4>>2]|0;e=c[o+4>>2]|0;m=l+-1|0;n=(m&l|0)==0;if(n)k=m&e;else k=(e>>>0)%(l>>>0)|0;g=(c[d>>2]|0)+(k<<2)|0;f=c[g>>2]|0;while(1){e=c[f>>2]|0;if((e|0)==(o|0)){j=f;break}else f=e}i=d+8|0;if((j|0)!=(i|0)){e=c[j+4>>2]|0;if(n)e=e&m;else e=(e>>>0)%(l>>>0)|0;if((e|0)==(k|0))g=o;else h=12}else h=12;do if((h|0)==12){e=c[o>>2]|0;if(e){e=c[e+4>>2]|0;if(n)e=e&m;else e=(e>>>0)%(l>>>0)|0;if((e|0)==(k|0)){g=o;break}}c[g>>2]=0;g=o}while(0);f=c[g>>2]|0;e=f;if(f){f=c[f+4>>2]|0;if(n)f=f&m;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(k|0)){c[(c[d>>2]|0)+(f<<2)>>2]=j;e=c[o>>2]|0}}c[j>>2]=e;c[g>>2]=0;d=d+12|0;c[d>>2]=(c[d>>2]|0)+-1;c[b>>2]=o;c[b+4>>2]=i;a[b+8>>0]=1;return}function xt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(h)e=g&d;else e=(d>>>0)%(f>>>0)|0;b=c[(c[a>>2]|0)+(e<<2)>>2]|0;if(b)do{b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if(h)a=a&g;else a=(a>>>0)%(f>>>0)|0;if((a|0)!=(e|0)){b=0;break a}}while((c[b+8>>2]|0)!=(d|0));else b=0}else b=0;while(0);return b|0}function yt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(16)|0;c[e+8>>2]=c[d>>2];c[e+12>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function zt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;At(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function At(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Bt(a,b)}}else Bt(a,b);return}function Bt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+4|0;a:do if(b){m=Tt(b<<2)|0;d=c[a>>2]|0;c[a>>2]=m;if(d)Vt(d);c[e>>2]=b;if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d)Vt(d);c[e>>2]=0}while(0);return}function Ct(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Tt(440)|0;c[e+8>>2]=c[d>>2];iH(e+16|0,0,424)|0;g[e+272>>2]=1.0;h[e+280>>3]=.0001;h[e+288>>3]=1.0e3;d=e+296|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[a>>2]=e;a=a+4|0;c[a>>2]=b+8;c[a+4>>2]=257;return}function Dt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[e+8>>2]|0;s=e+4|0;c[s>>2]=m;r=d+4|0;l=c[r>>2]|0;q=(l|0)==0;a:do if(!q){n=l+-1|0;o=(n&l|0)==0;if(o)h=n&m;else h=(m>>>0)%(l>>>0)|0;f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f)p=12;else while(1){i=c[f>>2]|0;if(!i){p=12;break a}f=c[i+4>>2]|0;if(o)f=f&n;else f=(f>>>0)%(l>>>0)|0;if((f|0)!=(h|0)){p=12;break a}if((c[i+8>>2]|0)==(m|0)){f=0;e=i;break}else f=i}}else{h=0;p=12}while(0);if((p|0)==12){m=d+12|0;j=+(((c[m>>2]|0)+1|0)>>>0);k=+g[d+16>>2];do if(q|j>+(l>>>0)*k){if(l>>>0>2)f=(l+-1&l|0)==0;else f=0;i=(f&1|l<<1)^1;f=~~+_(+(j/k))>>>0;Et(d,i>>>0>>0?f:i);i=c[r>>2]|0;f=c[s>>2]|0;h=i+-1|0;if(!(h&i)){l=i;h=h&f;break}else{l=i;h=(f>>>0)%(i>>>0)|0;break}}while(0);f=c[(c[d>>2]|0)+(h<<2)>>2]|0;if(!f){f=d+8|0;c[e>>2]=c[f>>2];c[f>>2]=e;c[(c[d>>2]|0)+(h<<2)>>2]=f;f=c[e>>2]|0;if(f){f=c[f+4>>2]|0;h=l+-1|0;if(!(h&l))f=f&h;else f=(f>>>0)%(l>>>0)|0;c[(c[d>>2]|0)+(f<<2)>>2]=e}}else{c[e>>2]=c[f>>2];c[f>>2]=e}c[m>>2]=(c[m>>2]|0)+1;f=1}c[b>>2]=e;a[b+4>>0]=f;return}function Et(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((b|0)!=1){if(b+-1&b)b=Sx(b)|0}else b=2;f=c[a+4>>2]|0;if(b>>>0<=f>>>0){if(b>>>0>>0){if(f>>>0>2)e=(f+-1&f|0)==0;else e=0;d=~~+_(+(+((c[a+12>>2]|0)>>>0)/+g[a+16>>2]))>>>0;if(e)d=1<<32-(ba(d+-1|0)|0);else d=Sx(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Ft(a,b)}}else Ft(a,b);return}function Ft(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+4|0;a:do if(b){m=Tt(b<<2)|0;d=c[a>>2]|0;c[a>>2]=m;if(d)Vt(d);c[e>>2]=b;if(b){d=0;do{c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(b|0))}e=a+8|0;f=c[e>>2]|0;if(f){d=c[f+4>>2]|0;l=b+-1|0;m=(l&b|0)==0;if(m)h=d&l;else h=(d>>>0)%(b>>>0)|0;c[(c[a>>2]|0)+(h<<2)>>2]=e;d=c[f>>2]|0;if(d){g=f;e=f;while(1){k=e;b:while(1){while(1){e=c[d+4>>2]|0;if(m)j=e&l;else j=(e>>>0)%(b>>>0)|0;if((j|0)==(h|0)){e=d;break}e=(c[a>>2]|0)+(j<<2)|0;if(!(c[e>>2]|0)){h=j;f=d;break b}i=d+8|0;e=d;while(1){f=c[e>>2]|0;if(!f)break;if((c[i>>2]|0)==(c[f+8>>2]|0))e=f;else break}c[g>>2]=f;c[e>>2]=c[c[(c[a>>2]|0)+(j<<2)>>2]>>2];c[c[(c[a>>2]|0)+(j<<2)>>2]>>2]=d;d=c[k>>2]|0;if(!d)break a}d=c[e>>2]|0;if(!d)break a;else{g=e;k=e}}c[e>>2]=g;d=c[f>>2]|0;if(!d)break;else{g=f;e=f}}}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d)Vt(d);c[e>>2]=0}while(0);return}function Gt(a){a=a|0;return Ew(c[a+4>>2]|0)|0}function Ht(a){a=a|0;hc(816,45823);gb(824,45828,1,1,0);Fb(832,45833,1,-128,127);Fb(848,45838,1,-128,127);Fb(840,45850,1,0,255);Fb(856,45864,2,-32768,32767);Fb(864,45870,2,0,65535);Fb(872,45885,4,-2147483648,2147483647);Fb(880,45889,4,0,-1);Fb(888,45902,4,-2147483648,2147483647);Fb(896,45907,4,0,-1);sc(904,45921,4);sc(912,45927,8);Sa(520,45934);Sa(552,45946);mc(576,4,45979);jb(600,45992);fc(608,0,46008);Jt(46038);Kt(46075);Lt(46114);Mt(46145);Nt(46185);Ot(46214);fc(616,4,46252);fc(624,5,46282);Jt(46321);Kt(46353);Lt(46386);Mt(46419);Nt(46453);Ot(46486);fc(632,6,46520);fc(640,7,46551);fc(648,7,46583);return}function It(){Ht(0);return}function Jt(a){a=a|0;fc(696,0,a|0);return}function Kt(a){a=a|0;fc(688,1,a|0);return}function Lt(a){a=a|0;fc(680,2,a|0);return}function Mt(a){a=a|0;fc(672,3,a|0);return}function Nt(a){a=a|0;fc(664,4,a|0);return}function Ot(a){a=a|0;fc(656,5,a|0);return}function Pt(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d>>2]=b;b=c[1607]|0;kw(b,a,d)|0;Sv(10,b)|0;Zb()}function Qt(a){a=a|0;Ja(47452,47481,1164,47569)}function Rt(a){a=a|0;Ja(47590,47613,303,47569)}function St(){var a=0,b=0;a=i;i=i+16|0;if(!(mb(6172,2)|0)){b=Nb(c[1542]|0)|0;i=a;return b|0}else Pt(47701,a);return 0}function Tt(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=cx(b)|0;a:do if(!a){while(1){a=bu()|0;if(!a)break;Zc[a&3]();a=cx(b)|0;if(a)break a}b=Gb(4)|0;c[b>>2]=6004;yc(b|0,704,17)}while(0);return a|0}function Ut(a){a=a|0;return Tt(a)|0}function Vt(a){a=a|0;dx(a);return}function Wt(a){a=a|0;Vt(a);return}function Xt(a){a=a|0;c[a>>2]=6004;return}function Yt(a){a=a|0;return}function Zt(a){a=a|0;Vt(a);return}function _t(a){a=a|0;return 47750}function $t(a){a=a|0;var b=0;b=i;i=i+16|0;Zc[a&3]();Pt(47765,b)}function au(){var a=0,b=0;a=St()|0;if(((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)$t(c[b+12>>2]|0);b=c[1498]|0;c[1498]=b+0;$t(b)}function bu(){var a=0;a=c[1504]|0;c[1504]=a+0;return a|0}function cu(a){a=a|0;return}function du(a){a=a|0;return}function eu(a){a=a|0;return}function fu(a){a=a|0;return}function gu(a){a=a|0;return}function hu(a){a=a|0;Vt(a);return}function iu(a){a=a|0;Vt(a);return}function ju(a){a=a|0;Vt(a);return}function ku(a){a=a|0;Vt(a);return}function lu(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function mu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h;if((a|0)!=(b|0))if((b|0)!=0?(f=su(b,736,752,0)|0,(f|0)!=0):0){b=g;e=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));c[g>>2]=f;c[g+8>>2]=a;c[g+12>>2]=-1;c[g+48>>2]=1;ad[c[(c[f>>2]|0)+28>>2]&31](f,g,c[d>>2]|0,1);if((c[g+24>>2]|0)==1){c[d>>2]=c[g+16>>2];b=1}else b=0}else b=0;else b=1;i=h;return b|0}function nu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function ou(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))nu(0,b,d,e);return}function pu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))nu(0,b,d,e);else{a=c[a+8>>2]|0;ad[c[(c[a>>2]|0)+28>>2]&31](a,b,d,e)}return}function qu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;f=g>>8;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0;a=c[a>>2]|0;ad[c[(c[a>>2]|0)+28>>2]&31](a,b,d+f|0,(g&2|0)!=0?e:2);return}function ru(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if((b|0)!=(c[d+8>>2]|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;qu(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{qu(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else nu(0,d,e,f);while(0);return}function su(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r;p=c[d>>2]|0;o=d+(c[p+-8>>2]|0)|0;p=c[p+-4>>2]|0;c[q>>2]=f;c[q+4>>2]=d;c[q+8>>2]=e;c[q+12>>2]=g;g=q+16|0;d=q+20|0;e=q+24|0;h=q+28|0;j=q+32|0;k=q+40|0;l=(p|0)==(f|0);m=g;n=m+36|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(l){c[q+48>>2]=1;Qc[c[(c[f>>2]|0)+20>>2]&7](f,q,o,o,1,0);g=(c[e>>2]|0)==1?o:0}else{Hc[c[(c[p>>2]|0)+24>>2]&31](p,q,o,1,0);switch(c[q+36>>2]|0){case 0:{g=(c[k>>2]|0)==1&(c[h>>2]|0)==1&(c[j>>2]|0)==1?c[d>>2]|0:0;break a}case 1:break;default:{g=0;break a}}if((c[e>>2]|0)!=1?!((c[k>>2]|0)==0&(c[h>>2]|0)==1&(c[j>>2]|0)==1):0){g=0;break}g=c[g>>2]|0}while(0);i=r;return g|0}function tu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;f=d+16|0;b=c[f>>2]|0;if(!b){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((b|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}b=d+24|0;f=c[b>>2]|0;if((f|0)==2){c[b>>2]=g;f=g}if((f|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function uu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){q=c[b+12>>2]|0;j=b+16+(q<<3)|0;wu(b+16|0,d,e,f,g);h=b+24|0;if((q|0)<=1)break;i=c[b+8>>2]|0;if((i&2|0)==0?(k=d+36|0,(c[k>>2]|0)!=1):0){if(!(i&1)){i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[k>>2]|0)==1)break a;wu(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}i=d+24|0;b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[k>>2]|0)==1?(c[i>>2]|0)==1:0)break a;wu(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}i=d+54|0;while(1){if(a[i>>0]|0)break a;wu(h,d,e,f,g);h=h+8|0;if(h>>>0>=j>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[d+32>>2]=f;m=d+44|0;if((c[m>>2]|0)==4)break;i=c[b+12>>2]|0;j=b+16+(i<<3)|0;k=d+52|0;f=d+53|0;n=d+54|0;l=b+8|0;o=d+24|0;b:do if((i|0)>0){i=0;h=0;b=b+16|0;while(1){a[k>>0]=0;a[f>>0]=0;vu(b,d,e,e,1,g);if(a[n>>0]|0){q=20;break b}do if(a[f>>0]|0){if(!(a[k>>0]|0))if(!(c[l>>2]&1)){h=1;q=20;break b}else{h=1;break}if((c[o>>2]|0)==1)break b;if(!(c[l>>2]&2))break b;else{i=1;h=1}}while(0);b=b+8|0;if(b>>>0>=j>>>0){q=20;break}}}else{i=0;h=0;q=20}while(0);do if((q|0)==20){if((!i?(c[p>>2]=e,e=d+40|0,c[e>>2]=(c[e>>2]|0)+1,(c[d+36>>2]|0)==1):0)?(c[o>>2]|0)==2:0){a[n>>0]=1;if(h)break}else q=24;if((q|0)==24?h:0)break;c[m>>2]=4;break a}while(0);c[m>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function vu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=i>>8;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;Qc[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e+h|0,(i&2|0)!=0?f:2,g);return}function wu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4>>2]|0;g=h>>8;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Hc[c[(c[a>>2]|0)+24>>2]&31](a,b,d+g|0,(h&2|0)!=0?e:2,f);return}function xu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){j=c[b+8>>2]|0;Hc[c[(c[j>>2]|0)+24>>2]&31](j,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;f=d+44|0;if((c[f>>2]|0)==4)break;h=d+52|0;a[h>>0]=0;k=d+53|0;a[k>>0]=0;b=c[b+8>>2]|0;Qc[c[(c[b>>2]|0)+20>>2]&7](b,d,e,e,1,g);if(a[k>>0]|0){if(!(a[h>>0]|0)){h=1;j=13}}else{h=0;j=13}do if((j|0)==13){c[i>>2]=e;k=d+40|0;c[k>>2]=(c[k>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(h)break}else j=16;if((j|0)==16?h:0)break;c[f>>2]=4;break a}while(0);c[f>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function yu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(i=d+28|0,(c[i>>2]|0)!=1):0)c[i>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function zu(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((b|0)==(c[d+8>>2]|0))tu(0,d,e,f,g);else{m=d+52|0;n=a[m>>0]|0;o=d+53|0;p=a[o>>0]|0;l=c[b+12>>2]|0;i=b+16+(l<<3)|0;a[m>>0]=0;a[o>>0]=0;vu(b+16|0,d,e,f,g,h);a:do if((l|0)>1){j=d+24|0;k=b+8|0;l=d+54|0;b=b+24|0;do{if(a[l>>0]|0)break a;if(!(a[m>>0]|0)){if((a[o>>0]|0)!=0?(c[k>>2]&1|0)==0:0)break a}else{if((c[j>>2]|0)==1)break a;if(!(c[k>>2]&2))break a}a[m>>0]=0;a[o>>0]=0;vu(b,d,e,f,g,h);b=b+8|0}while(b>>>0>>0)}while(0);a[m>>0]=n;a[o>>0]=p}return}function Au(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))tu(0,b,d,e,f);else{a=c[a+8>>2]|0;Qc[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e,f,g)}return}function Bu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))tu(0,b,d,e,f);return}function Cu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=c[d>>2];a=Pc[c[(c[a>>2]|0)+16>>2]&63](a,b,e)|0;if(a)c[d>>2]=c[e>>2];i=f;return a&1|0}function Du(a){a=a|0;if(!a)a=0;else a=(su(a,736,784,0)|0)!=0;return a&1|0}function Eu(){var a=0;a=Gb(4)|0;Xt(a);yc(a|0,704,17)}function Fu(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+48|0;h=f+32|0;d=f+24|0;j=f+16|0;g=f;f=f+36|0;a=St()|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0){a=e+48|0;b=c[a>>2]|0;a=c[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){c[d>>2]=c[1544];Pt(47994,d)}if((b|0)==1126902529&(a|0)==1129074247)a=c[e+44>>2]|0;else a=e+80|0;c[f>>2]=a;e=c[e>>2]|0;a=c[e+4>>2]|0;if(Pc[c[(c[720>>2]|0)+16>>2]&63](720,e,f)|0){j=c[f>>2]|0;f=c[1544]|0;j=Nc[c[(c[j>>2]|0)+8>>2]&127](j)|0;c[g>>2]=f;c[g+4>>2]=a;c[g+8>>2]=j;Pt(47908,g)}else{c[j>>2]=c[1544];c[j+4>>2]=a;Pt(47953,j)}}Pt(48032,h)}function Gu(){var a=0;a=i;i=i+16|0;if(!(Wb(6168,143)|0)){i=a;return}else Pt(47805,a)}function Hu(a){a=a|0;var b=0;b=i;i=i+16|0;dx(a);if(!(wc(c[1542]|0,0)|0)){i=b;return}else Pt(47855,b)}function Iu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sw(a,b,c)|0;return a|0}function Ju(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=tw(a,b,c)|0;return a|0}function Ku(){return 6444}function Lu(){return 6448}function Mu(){return 6452}function Nu(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Ou(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function Pu(){var a=0;if(!(c[1545]|0))a=6456;else a=c[(qc()|0)+60>>2]|0;return a|0}function Qu(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[48053+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=48141;e=5;break}}if((e|0)==2)if(!c)b=48141;else{b=48141;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function Ru(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+512|0;H=L;switch(e|0){case 0:{K=24;J=-149;A=4;break}case 1:{K=53;J=-1074;A=4;break}case 2:{K=53;J=-1074;A=4;break}default:g=0.0}a:do if((A|0)==4){E=b+4|0;C=b+100|0;do{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0}while((Nu(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;I=h;break b}else{e=Uu(b)|0;I=h;break b}}default:I=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[49945+e>>0]|0))break;do if(e>>>0<7){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=Uu(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{A=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{A=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[52866+e>>0]|0))break d;do if(e>>>0<2){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=Uu(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;if((e|0)==40)e=1;else{if(!(c[C>>2]|0)){g=s;break a}c[E>>2]=(c[E>>2]|0)+-1;g=s;break a}while(1){h=c[E>>2]|0;if(h>>>0<(c[C>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0}else h=Uu(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=s;break a}h=(c[C>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!k){c[(Pu()|0)>>2]=22;Tu(b,0);g=0.0;break a}if(!e){g=s;break a}while(1){e=e+-1|0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!e){g=s;break a}}}case 0:{do if((h|0)==48){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;if((e|32|0)!=120){if(!(c[C>>2]|0)){e=48;break}c[E>>2]=(c[E>>2]|0)+-1;e=48;break}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=0}else{e=Uu(b)|0;k=0}e:while(1){switch(e|0){case 46:{A=74;break e}case 48:break;default:{y=0;l=0;x=0;h=0;n=k;o=0;w=0;m=1.0;k=0;g=0.0;break e}}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=Uu(b)|0;k=1;continue}}if((A|0)==74){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;if((e|0)==48){k=0;h=0;do{e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;k=cH(k|0,h|0,-1,-1)|0;h=D}while((e|0)==48);y=0;l=0;x=k;n=1;o=1;w=0;m=1.0;k=0;g=0.0}else{y=0;l=0;x=0;h=0;n=k;o=1;w=0;m=1.0;k=0;g=0.0}}while(1){u=e+-48|0;p=e|32;if(u>>>0>=10){v=(e|0)==46;if(!(v|(p+-97|0)>>>0<6)){p=x;u=y;break}if(v)if(!o){v=l;h=y;u=y;o=1;p=w;j=m}else{p=x;u=y;e=46;break}else A=86}else A=86;if((A|0)==86){A=0;e=(e|0)>57?p+-87|0:u;do if(!((y|0)<0|(y|0)==0&l>>>0<8)){if((y|0)<0|(y|0)==0&l>>>0<14){r=m*.0625;p=w;j=r;g=g+r*+(e|0);break}if((w|0)!=0|(e|0)==0){p=w;j=m}else{p=1;j=m;g=g+m*.5}}else{p=w;j=m;k=e+(k<<4)|0}while(0);l=cH(l|0,y|0,1,0)|0;v=x;u=D;n=1}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;y=u;x=v;e=d[e>>0]|0;w=p;m=j;continue}else{y=u;x=v;e=Uu(b)|0;w=p;m=j;continue}}if(!n){e=(c[C>>2]|0)==0;if(!e)c[E>>2]=(c[E>>2]|0)+-1;if(f){if(!e?(z=c[E>>2]|0,c[E>>2]=z+-1,(o|0)!=0):0)c[E>>2]=z+-2}else Tu(b,0);g=+(I|0)*0.0;break a}n=(o|0)==0;o=n?l:p;n=n?u:h;if((u|0)<0|(u|0)==0&l>>>0<8){h=u;do{k=k<<4;l=cH(l|0,h|0,1,0)|0;h=D}while((h|0)<0|(h|0)==0&l>>>0<8)}if((e|32|0)==112){h=Pw(b,f)|0;e=D;if((h|0)==0&(e|0)==-2147483648){if(!f){Tu(b,0);g=0.0;break a}if(!(c[C>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}}}else if(!(c[C>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}H=jH(o|0,n|0,2)|0;H=cH(H|0,D|0,-32,-1)|0;e=cH(H|0,D|0,h|0,e|0)|0;h=D;if(!k){g=+(I|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-J|0)>>>0){c[(Pu()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}H=J+-106|0;G=((H|0)<0)<<31>>31;if((h|0)<(G|0)|(h|0)==(G|0)&e>>>0>>0){c[(Pu()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((k|0)>-1){do{G=!(g>=.5);H=G&1|k<<1;k=H^1;g=g+(G?g:g+-1.0);e=cH(e|0,h|0,-1,-1)|0;h=D}while((H|0)>-1);l=e;m=g}else{l=e;m=g}e=bH(32,0,J|0,((J|0)<0)<<31>>31|0)|0;e=cH(l|0,h|0,e|0,D|0)|0;J=D;if(0>(J|0)|0==(J|0)&K>>>0>e>>>0)if((e|0)<0){e=0;A=127}else A=125;else{e=K;A=125}if((A|0)==125)if((e|0)<53)A=127;else{h=e;j=+(I|0);g=0.0}if((A|0)==127){g=+(I|0);h=e;j=g;g=+dv(+mv(1.0,84-e|0),g)}K=(k&1|0)==0&(m!=0.0&(h|0)<32);g=j*(K?0.0:m)+(g+j*+(((K&1)+k|0)>>>0))-g;if(!(g!=0.0))c[(Pu()|0)>>2]=34;g=+nv(g,l);break a}else e=h;while(0);F=J+K|0;G=0-F|0;k=0;f:while(1){switch(e|0){case 46:{A=138;break f}case 48:break;default:{h=0;p=0;o=0;break f}}e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=Uu(b)|0;k=1;continue}}if((A|0)==138){e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;if((e|0)==48){h=0;e=0;while(1){h=cH(h|0,e|0,-1,-1)|0;k=D;e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;if((e|0)==48)e=k;else{p=k;k=1;o=1;break}}}else{h=0;p=0;o=1}}c[H>>2]=0;n=e+-48|0;l=(e|0)==46;g:do if(l|n>>>0<10){B=H+496|0;y=0;v=0;w=l;A=p;u=k;z=o;k=0;l=0;o=0;h:while(1){do if(w)if(!z){h=y;p=v;z=1}else{p=A;e=y;n=v;break h}else{w=cH(y|0,v|0,1,0)|0;v=D;x=(e|0)!=48;if((l|0)>=125){if(!x){p=A;y=w;break}c[B>>2]=c[B>>2]|1;p=A;y=w;break}p=H+(l<<2)|0;if(k)n=e+-48+((c[p>>2]|0)*10|0)|0;c[p>>2]=n;k=k+1|0;n=(k|0)==9;p=A;y=w;u=1;k=n?0:k;l=(n&1)+l|0;o=x?w:o}while(0);e=c[E>>2]|0;if(e>>>0<(c[C>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=Uu(b)|0;n=e+-48|0;w=(e|0)==46;if(!(w|n>>>0<10)){n=z;A=161;break g}else A=p}u=(u|0)!=0;A=169}else{y=0;v=0;u=k;n=o;k=0;l=0;o=0;A=161}while(0);do if((A|0)==161){B=(n|0)==0;h=B?y:h;p=B?v:p;u=(u|0)!=0;if(!((e|32|0)==101&u))if((e|0)>-1){e=y;n=v;A=169;break}else{e=y;n=v;A=171;break}n=Pw(b,f)|0;e=D;if((n|0)==0&(e|0)==-2147483648){if(!f){Tu(b,0);g=0.0;break}if(!(c[C>>2]|0)){n=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;n=0;e=0}}h=cH(n|0,e|0,h|0,p|0)|0;u=y;p=D;n=v;A=173}while(0);if((A|0)==169)if(c[C>>2]|0){c[E>>2]=(c[E>>2]|0)+-1;if(u){u=e;A=173}else A=172}else A=171;if((A|0)==171)if(u){u=e;A=173}else A=172;do if((A|0)==172){c[(Pu()|0)>>2]=22;Tu(b,0);g=0.0}else if((A|0)==173){e=c[H>>2]|0;if(!e){g=+(I|0)*0.0;break}if(((n|0)<0|(n|0)==0&u>>>0<10)&((h|0)==(u|0)&(p|0)==(n|0))?K>>>0>30|(e>>>K|0)==0:0){g=+(I|0)*+(e>>>0);break}b=(J|0)/-2|0;E=((b|0)<0)<<31>>31;if((p|0)>(E|0)|(p|0)==(E|0)&h>>>0>b>>>0){c[(Pu()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=J+-106|0;E=((b|0)<0)<<31>>31;if((p|0)<(E|0)|(p|0)==(E|0)&h>>>0>>0){c[(Pu()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(k){if((k|0)<9){n=H+(l<<2)|0;e=c[n>>2]|0;do{e=e*10|0;k=k+1|0}while((k|0)!=9);c[n>>2]=e}l=l+1|0}if((o|0)<9?(o|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(I|0)*+((c[H>>2]|0)>>>0);break}if((h|0)<9){g=+(I|0)*+((c[H>>2]|0)>>>0)/+(c[6460+(8-h<<2)>>2]|0);break}b=K+27+($(h,-3)|0)|0;e=c[H>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(I|0)*+(e>>>0)*+(c[6460+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){k=0;e=0}else{u=(h|0)>-1?e:e+9|0;n=c[6460+(8-u<<2)>>2]|0;if(l){o=1e9/(n|0)|0;k=0;e=0;p=0;do{C=H+(p<<2)|0;E=c[C>>2]|0;b=((E>>>0)/(n>>>0)|0)+e|0;c[C>>2]=b;e=$((E>>>0)%(n>>>0)|0,o)|0;b=(p|0)==(k|0)&(b|0)==0;p=p+1|0;h=b?h+-9|0:h;k=b?p&127:k}while((p|0)!=(l|0));if(e){c[H+(l<<2)>>2]=e;l=l+1|0}}else{k=0;l=0}e=0;h=9-u+h|0}i:while(1){v=(h|0)<18;w=(h|0)==18;x=H+(k<<2)|0;do{if(!v){if(!w)break i;if((c[x>>2]|0)>>>0>=9007199){h=18;break i}}n=0;o=l+127|0;while(1){u=o&127;p=H+(u<<2)|0;o=jH(c[p>>2]|0,0,29)|0;o=cH(o|0,D|0,n|0,0)|0;n=D;if(n>>>0>0|(n|0)==0&o>>>0>1e9){b=qH(o|0,n|0,1e9,0)|0;o=rH(o|0,n|0,1e9,0)|0;n=b}else n=0;c[p>>2]=o;b=(u|0)==(k|0);l=(u|0)!=(l+127&127|0)|b?l:(o|0)==0?u:l;if(b)break;else o=u+-1|0}e=e+-29|0}while((n|0)==0);k=k+127&127;if((k|0)==(l|0)){b=l+127&127;l=H+((l+126&127)<<2)|0;c[l>>2]=c[l>>2]|c[H+(b<<2)>>2];l=b}c[H+(k<<2)>>2]=n;h=h+9|0}j:while(1){y=l+1&127;x=H+((l+127&127)<<2)|0;while(1){v=(h|0)==18;w=(h|0)>27?9:1;u=v^1;while(1){o=k&127;p=(o|0)==(l|0);do if(!p){n=c[H+(o<<2)>>2]|0;if(n>>>0<9007199){A=219;break}if(n>>>0>9007199)break;n=k+1&127;if((n|0)==(l|0)){A=219;break}n=c[H+(n<<2)>>2]|0;if(n>>>0<254740991){A=219;break}if(!(n>>>0>254740991|u)){h=o;break j}}else A=219;while(0);if((A|0)==219?(A=0,v):0){A=220;break j}e=e+w|0;if((k|0)==(l|0))k=l;else break}u=(1<>>w;o=k;n=0;p=k;while(1){E=H+(p<<2)|0;b=c[E>>2]|0;k=(b>>>w)+n|0;c[E>>2]=k;n=$(b&u,v)|0;k=(p|0)==(o|0)&(k|0)==0;p=p+1&127;h=k?h+-9|0:h;k=k?p:o;if((p|0)==(l|0))break;else o=k}if(!n)continue;if((y|0)!=(k|0))break;c[x>>2]=c[x>>2]|1}c[H+(l<<2)>>2]=n;l=y}if((A|0)==220)if(p){c[H+(y+-1<<2)>>2]=0;h=l;l=y}else h=o;g=+((c[H+(h<<2)>>2]|0)>>>0);h=k+1&127;if((h|0)==(l|0)){l=k+2&127;c[H+(l+-1<<2)>>2]=0}r=+(I|0);j=r*(g*1.0e9+ +((c[H+(h<<2)>>2]|0)>>>0));v=e+53|0;p=v-J|0;u=(p|0)<(K|0);h=u&1;o=u?((p|0)<0?0:p):K;if((o|0)<53){M=+dv(+mv(1.0,105-o|0),j);m=+gv(j,+mv(1.0,53-o|0));q=M;g=m;m=M+(j-m)}else{q=0.0;g=0.0;m=j}n=k+2&127;do if((n|0)==(l|0))j=g;else{n=c[H+(n<<2)>>2]|0;do if(n>>>0>=5e8){if(n>>>0>5e8){g=r*.75+g;break}if((k+3&127|0)==(l|0)){g=r*.5+g;break}else{g=r*.75+g;break}}else{if((n|0)==0?(k+3&127|0)==(l|0):0)break;g=r*.25+g}while(0);if((53-o|0)<=1){j=g;break}if(+gv(g,1.0)!=0.0){j=g;break}j=g+1.0}while(0);g=m+j-q;do if((v&2147483647|0)>(-2-F|0)){if(+O(+g)>=9007199254740992.0){h=u&(o|0)==(p|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(G|0)?!(j!=0.0&(h|0)!=0):0)break;c[(Pu()|0)>>2]=34}while(0);g=+nv(g,e)}while(0);break a}default:{if(c[C>>2]|0)c[E>>2]=(c[E>>2]|0)+-1;c[(Pu()|0)>>2]=22;Tu(b,0);g=0.0;break a}}}}while(0);if((A|0)==23){h=(c[C>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[E>>2]=(c[E>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(I|0)*t}while(0);i=L;return +g}function Su(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(Pu()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0}while((Nu(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=Uu(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e&-17|0)==0&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=Uu(b)|0;if((d[49954+(i+1)>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){Tu(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[49954+(i+1)>>0]|0)>>>0>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;Tu(b,0);c[(Pu()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=Uu(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=pH(e|0,j|0,10,0)|0;l=D;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=cH(k|0,l|0,f|0,m|0)|0;j=D;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[50211+((e*23|0)>>>5&7)>>0]|0;j=a[49954+(i+1)>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f|i<>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;j=a[49954+(i+1)>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0>>0))break;else i=k}f=0}else{f=0;k=0}l=eH(-1,-1,n|0)|0;m=D;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=jH(k|0,i|0,n|0)|0;f=D;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;j=a[49954+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[49954+(i+1)>>0]|0;f=j&255;if(f>>>0>>0){i=0;while(1){k=f+($(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;j=a[49954+(i+1)>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0>>0){n=qH(-1,-1,e|0,0)|0;o=D;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=pH(k|0,m|0,e|0,0)|0;l=D;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=cH(j|0,0,f|0,l|0)|0;f=D;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0;j=a[49954+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[49954+(i+1)>>0]|0)>>>0>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Uu(b)|0}while((d[49954+(i+1)>>0]|0)>>>0>>0);c[(Pu()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0>>0|(j|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(Pu()|0)>>2]=34;g=cH(g|0,h|0,-1,-1)|0;h=D;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(Pu()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=bH(i^e|0,j^g|0,e|0,g|0)|0;h=D}while(0);D=h;return g|0}function Tu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=d+b;else c[a+100>>2]=e;return}function Uu(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=Lv(b)|0;if((e|0)>=0){h=c[f>>2]|0;f=b+8|0;if(h){g=c[f>>2]|0;i=c[b+4>>2]|0;f=g;h=h-(c[b+108>>2]|0)+-1|0;if((f-i|0)>(h|0))c[b+100>>2]=i+h;else j=9}else{g=c[f>>2]|0;f=g;j=9}if((j|0)==9)c[b+100>>2]=f;f=c[b+4>>2]|0;if(g){b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function Vu(a){a=a|0;if(a>>>0>4294963200){c[(Pu()|0)>>2]=0-a;a=-1}return a|0}function Wu(a){a=a|0;return 0}function Xu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function Yu(a,b){a=a|0;b=b|0;return -1|0}function Zu(a){a=a|0;dx(a);return}function _u(a,b){a=a|0;b=b|0;return (a+-48|0)>>>0<10|0}function $u(a,b){a=a|0;b=b|0;return Ou(a)|0}function av(b,c,d){b=b|0;c=c|0;d=d|0;if(((a[c>>0]|0)!=0?(Bw(c,54843)|0)!=0:0)?(Bw(c,50220)|0)!=0:0)d=0;else if(!d)d=ex(1,4)|0;return d|0}function bv(a){a=a|0;var b=0,d=0;b=(qc()|0)+176|0;d=c[b>>2]|0;if(a)c[b>>2]=a;return d|0}function cv(a,b){a=+a;b=+b;var d=0,e=0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;h[k>>3]=b;d=c[k+4>>2]&-2147483648|d&2147483647;c[k>>2]=e;c[k+4>>2]=d;return +(+h[k>>3])}function dv(a,b){a=+a;b=+b;return +(+cv(a,b))}function ev(a){a=+a;var b=0,d=0,e=0,f=0.0,i=0.0;b=(g[k>>2]=a,c[k>>2]|0);d=b&2147483647;do if(d>>>0>1123811328)if(!(b>>>0>1124073471&(b|0)>-1))if((b|0)<0&b>>>0>3272998911){a=0.0;break}else{e=7;break}else{a=a*1701411834604692317316873.0e14;break}else if(d>>>0<855638017)a=a+1.0;else e=7;while(0);if((e|0)==7){f=a+786432.0;b=(g[k>>2]=f,c[k>>2]|0)+8|0;d=jH((b>>>4)+1023|0,0,52)|0;e=D;f=a-(f+-786432.0);i=+h[952+((b&15)<<3)>>3];a=f*i;c[k>>2]=d;c[k+4>>2]=e;a=+h[k>>3]*(i+(f*.24022650718688965+.6931471824645996)*a+(f*.009618354961276054+.055505409836769104)*(f*f*a))}return +a}function fv(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=eH(d|0,m|0,52)|0;e=e&2047;j=eH(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=jH(n|0,o|0,1)|0;l=D;a:do if(!((i|0)==0&(l|0)==0)?(g=o&2147483647,!(g>>>0>2146435072|(g|0)==2146435072&n>>>0>0|(e|0)==2047)):0){f=jH(d|0,m|0,1)|0;g=D;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=jH(d|0,m|0,12)|0;f=D;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=jH(g|0,f|0,1)|0;f=D}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=jH(d|0,m|0,1-e|0)|0;f=D}else f=m&1048575|1048576;if(!j){g=jH(n|0,o|0,12)|0;i=D;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=jH(g|0,i|0,1)|0;i=D}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=jH(n|0,o|0,1-j|0)|0;m=D}else m=o&1048575|1048576;l=bH(d|0,f|0,n|0,m|0)|0;i=D;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=jH(d|0,f|0,1)|0;f=D;e=e+-1|0;l=bH(d|0,f|0,n|0,m|0)|0;i=D;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=jH(d|0,f|0,1)|0;f=D;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=cH(d|0,f|0,0,-1048576)|0;d=D;e=jH(e|0,0,52)|0;d=d|D;e=o|e}else{e=eH(d|0,f|0,1-e|0)|0;d=D}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function gv(a,b){a=+a;b=+b;return +(+fv(a,b))}function hv(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=eH(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+hv(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function iv(a,b){a=+a;b=b|0;return +(+hv(a,b))}function jv(a,b){a=+a;b=b|0;return +(+mv(a,b))}function kv(a){a=+a;return ~~+lv(a)|0}function lv(a){a=+a;var b=0,d=0.0,e=0.0,f=0;b=(g[k>>2]=a,c[k>>2]|0);f=b>>>23&255;do if(f>>>0<=149){b=(b|0)<0;e=b?-a:a;if(f>>>0<126){a=a*0.0;break}d=e+8388608.0+-8388608.0-e;if(!(d>.5)){a=e+d;if(d<=-.5)a=a+1.0}else a=e+d+-1.0;a=b?-a:a}while(0);return +a}function mv(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=jH(d+1023|0,0,52)|0;b=D;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function nv(a,b){a=+a;b=b|0;return +(+mv(a,b))}function ov(a,b,c){a=a|0;b=b|0;c=c|0;return pv(0,a,b,(c|0)!=0?c:6492)|0}function pv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;g=l;j=(f|0)==0?6496:f;f=c[j>>2]|0;a:do if(!d)if(!f)f=0;else k=15;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;g=f&255;if(f<<24>>24>-1){c[h>>2]=g;f=f<<24>>24!=0&1;break}f=g+-194|0;if(f>>>0>50){k=15;break}f=c[6224+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;k=9}}else{g=e;k=9}b:do if((k|0)==9){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){k=15;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){k=15;break a}}c[j>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[j>>2]=f;f=-2}}while(0);if((k|0)==15){c[j>>2]=0;c[(Pu()|0)>>2]=84;f=-1}i=l;return f|0}function qv(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}function rv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+1040|0;l=o+8|0;n=o;k=c[b>>2]|0;c[n>>2]=k;m=(a|0)!=0;e=m?e:256;a=m?a:l;g=k;a:do if((e|0)!=0&(k|0)!=0){j=e;k=g;e=0;while(1){g=d>>>2;h=g>>>0>=j>>>0;if(!(d>>>0>131|h)){g=k;break a}g=h?j:g;d=d-g|0;g=sv(a,n,g,f)|0;if((g|0)==-1){e=d;break}p=(a|0)==(l|0);k=p?0:g;h=j-k|0;a=p?a:a+(g<<2)|0;e=g+e|0;g=c[n>>2]|0;if((j|0)!=(k|0)&(g|0)!=0){j=h;k=g}else{j=h;break a}}d=e;j=0;g=c[n>>2]|0;e=-1}else{j=e;e=0}while(0);b:do if((g|0)!=0?(j|0)!=0&(d|0)!=0:0){h=g;g=a;while(1){a=pv(g,h,d,f)|0;if((a+2|0)>>>0<3)break;h=(c[n>>2]|0)+a|0;c[n>>2]=h;j=j+-1|0;e=e+1|0;if(!((j|0)!=0&(d|0)!=(a|0)))break b;else{d=d-a|0;g=g+4|0}}switch(a|0){case -1:{e=-1;break b}case 0:{c[n>>2]=0;break b}default:{c[f>>2]=0;break b}}}while(0);if(m)c[b>>2]=c[n>>2];i=o;return e|0}function sv(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;h=c[e>>2]|0;if((g|0)!=0?(i=c[g>>2]|0,(i|0)!=0):0)if(!b){g=f;j=h;m=16}else{c[g>>2]=0;l=b;g=f;k=i;m=37}else if(!b){g=f;m=7}else{i=b;g=f;m=6}a:while(1)if((m|0)==6){if(!g){m=26;break}else b=i;while(1){i=a[h>>0]|0;do if(((i&255)+-1|0)>>>0<127?g>>>0>4&(h&3|0)==0:0){j=h;while(1){h=c[j>>2]|0;if((h+-16843009|h)&-2139062144){i=h;h=j;m=32;break}c[b>>2]=h&255;c[b+4>>2]=d[j+1>>0];c[b+8>>2]=d[j+2>>0];h=j+4|0;i=b+16|0;c[b+12>>2]=d[j+3>>0];g=g+-4|0;if(g>>>0>4){b=i;j=h}else{m=31;break}}if((m|0)==31){b=i;i=a[h>>0]|0;break}else if((m|0)==32){i=i&255;break}}while(0);i=i&255;if((i+-1|0)>>>0>=127)break;h=h+1|0;c[b>>2]=i;g=g+-1|0;if(!g){m=26;break a}else b=b+4|0}i=i+-194|0;if(i>>>0>50){m=48;break}l=b;k=c[6224+(i<<2)>>2]|0;h=h+1|0;m=37;continue}else if((m|0)==7){i=a[h>>0]|0;if(((i&255)+-1|0)>>>0<127?(h&3|0)==0:0){i=c[h>>2]|0;if(!((i+-16843009|i)&-2139062144))do{h=h+4|0;g=g+-4|0;i=c[h>>2]|0}while(((i+-16843009|i)&-2139062144|0)==0);i=i&255}i=i&255;if((i+-1|0)>>>0<127){g=g+-1|0;h=h+1|0;m=7;continue}i=i+-194|0;if(i>>>0>50){m=48;break}i=c[6224+(i<<2)>>2]|0;j=h+1|0;m=16;continue}else if((m|0)==16){m=(d[j>>0]|0)>>>3;if((m+-16|m+(i>>26))>>>0>7){m=17;break}h=j+1|0;if(i&33554432){if((a[h>>0]&-64)<<24>>24!=-128){m=20;break}h=j+2|0;if(i&524288){if((a[h>>0]&-64)<<24>>24!=-128){m=23;break}h=j+3|0}}g=g+-1|0;m=7;continue}else if((m|0)==37){i=d[h>>0]|0;m=i>>>3;if((m+-16|m+(k>>26))>>>0>7){m=38;break}j=h+1|0;b=i+-128|k<<6;if((b|0)<0){i=d[j>>0]|0;if((i&192|0)!=128){m=41;break}j=h+2|0;b=i+-128|b<<6;if((b|0)<0){i=d[j>>0]|0;if((i&192|0)!=128){m=44;break}b=i+-128|b<<6;h=h+3|0}else h=j}else h=j;c[l>>2]=b;i=l+4|0;g=g+-1|0;m=6;continue}if((m|0)==17){h=j+-1|0;m=47}else if((m|0)==20){h=j+-1|0;m=47}else if((m|0)==23){h=j+-1|0;m=47}else if((m|0)==26)c[e>>2]=h;else if((m|0)==38){b=l;i=k;h=h+-1|0;m=47}else if((m|0)==41){g=l;f=h+-1|0;m=52}else if((m|0)==44){g=l;f=h+-1|0;m=52}if((m|0)==47)if(!i)m=48;else{g=b;f=h;m=52}if((m|0)==48)if(!(a[h>>0]|0)){if(b){c[b>>2]=0;c[e>>2]=0}f=f-g|0}else{g=b;f=h;m=52}if((m|0)==52){c[(Pu()|0)>>2]=84;if(!g)f=-1;else{c[e>>2]=f;f=-1}}return f|0}function tv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k;a:do if(!e)g=0;else{do if(f){j=(b|0)==0?g:b;g=a[e>>0]|0;b=g&255;if(g<<24>>24>-1){c[j>>2]=b;g=g<<24>>24!=0&1;break a}g=b+-194|0;if(g>>>0<=50){b=e+1|0;h=c[6224+(g<<2)>>2]|0;if(f>>>0<4?(h&-2147483648>>>((f*6|0)+-6|0)|0)!=0:0)break;g=d[b>>0]|0;f=g>>>3;if((f+-16|f+(h>>26))>>>0<=7){g=g+-128|h<<6;if((g|0)>=0){c[j>>2]=g;g=2;break a}b=d[e+2>>0]|0;if((b&192|0)==128){b=b+-128|g<<6;if((b|0)>=0){c[j>>2]=b;g=3;break a}g=d[e+3>>0]|0;if((g&192|0)==128){c[j>>2]=g+-128|b<<6;g=4;break a}}}}}while(0);c[(Pu()|0)>>2]=84;g=-1}while(0);i=k;return g|0}function uv(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(Pu()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function vv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+272|0;j=m+8|0;l=m;h=c[b>>2]|0;c[l>>2]=h;k=(a|0)!=0;f=k?e:256;e=k?a:j;a=h;a:do if((f|0)!=0&(h|0)!=0){h=f;g=a;f=0;while(1){a=d>>>0>=h>>>0;if(!(a|d>>>0>32)){a=g;break a}a=a?h:d;d=d-a|0;a=wv(e,l,a,0)|0;if((a|0)==-1){f=d;break}o=(e|0)==(j|0);n=o?0:a;g=h-n|0;e=o?e:e+a|0;f=a+f|0;a=c[l>>2]|0;if((h|0)!=(n|0)&(a|0)!=0){h=g;g=a}else{h=g;break a}}d=f;h=0;a=c[l>>2]|0;f=-1}else{h=f;f=0}while(0);b:do if((a|0)!=0?(h|0)!=0&(d|0)!=0:0){g=a;a=e;while(1){e=uv(a,c[g>>2]|0,0)|0;if((e+1|0)>>>0<2)break;g=(c[l>>2]|0)+4|0;c[l>>2]=g;d=d+-1|0;f=f+1|0;if(!((h|0)!=(e|0)&(d|0)!=0))break b;else{h=h-e|0;a=a+e|0}}if(!e)c[l>>2]=0;else f=-1}while(0);if(k)c[b>>2]=c[l>>2];i=m;return f|0}function wv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;a:do if(!b){b=c[d>>2]|0;f=c[b>>2]|0;if(!f)e=0;else{e=0;do{if(f>>>0>127){f=uv(j,f,0)|0;if((f|0)==-1){e=-1;break a}}else f=1;e=f+e|0;b=b+4|0;f=c[b>>2]|0}while((f|0)!=0)}}else{b:do if(e>>>0>3){f=e;g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h)break;h=uv(b,h,0)|0;if((h|0)==-1){e=-1;break a}b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(f>>>0<=3)break b}a[b>>0]=0;c[d>>2]=0;e=e-f|0;break a}else f=e;while(0);if(f){g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h){g=19;break}h=uv(j,h,0)|0;if((h|0)==-1){e=-1;break a}if(f>>>0>>0){g=22;break}uv(b,c[g>>2]|0,0)|0;b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(!f)break a}if((g|0)==19){a[b>>0]=0;c[d>>2]=0;e=e-f|0;break}else if((g|0)==22){e=e-f|0;break}}}while(0);i=k;return e|0}function xv(a,b){a=a|0;b=b|0;if(!a)a=0;else a=uv(a,b,0)|0;return a|0}function yv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(uw(50226,f<<24>>24,4)|0){e=cx(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!(zw(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(zw(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;Ca(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=Ca(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;Ca(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(tc(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=6;c[e+36>>2]=4;c[e+40>>2]=5;c[e+12>>2]=3;if(!(c[1546]|0))c[e+76>>2]=-1;rb(6208);f=c[1551]|0;c[e+56>>2]=f;if(f)c[f+52>>2]=e;c[1551]=e;uc(6208)}}else{c[(Pu()|0)>>2]=22;e=0}i=o;return e|0}function zv(b){b=b|0;var c=0,d=0,e=0;d=(zw(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(zw(b,120)|0)==0;d=e?d:d|128;b=(zw(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function Av(a){a=a|0;return 0}function Bv(a){a=a|0;return}function Cv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;k=e&255;a[l>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(Kv(b)|0)){h=c[g>>2]|0;j=4}else f=-1;else j=4;do if((j|0)==4){g=b+20|0;j=c[g>>2]|0;if(j>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=j+1;a[j>>0]=k;break}if((Pc[c[b+36>>2]&63](b,l,1)|0)==1)f=d[l>>0]|0;else f=-1}while(0);i=m;return f|0}function Dv(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=Vu(sb(6,d|0)|0)|0;i=b;return a|0} +function Cf(b,e,f,j,k,l,m,n,o,p,q,r){b=b|0;e=e|0;f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=+q;r=r|0;var s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0;T=i;i=i+240|0;x=T+224|0;w=T+216|0;C=T+208|0;B=T+200|0;s=T+136|0;N=T+72|0;P=T;Q=T+232|0;R=T+228|0;h[s>>3]=100.0;h[s+8>>3]=100.0;h[s+16>>3]=110.0;h[s+24>>3]=100.0;h[s+32>>3]=110.0;h[s+40>>3]=110.0;h[s+48>>3]=100.0;h[s+56>>3]=110.0;h[N>>3]=+h[p>>3];h[N+8>>3]=+h[p+8>>3];h[N+16>>3]=+h[p+16>>3];h[N+24>>3]=+h[p+24>>3];h[N+32>>3]=+h[p+32>>3];h[N+40>>3]=+h[p+40>>3];h[N+48>>3]=+h[p+48>>3];h[N+56>>3]=+h[p+56>>3];Ff(s,N,P);A=+h[N>>3];V=+h[N+16>>3];y=A-V;J=+h[N+8>>3];U=+h[N+24>>3];u=J-U;s=~~(y*y+u*u);u=+h[N+32>>3];y=+h[N+48>>3];X=u-y;v=+h[N+40>>3];z=+h[N+56>>3];W=v-z;N=~~(X*X+W*W);u=V-u;v=U-v;t=~~(u*u+v*v);A=y-A;J=z-J;O=~~(A*A+J*J);s=~~(+(((N|0)>(s|0)?N:s)|0)*q*q);t=~~(+(((O|0)>(t|0)?O:t)|0)*q*q);if(!b){p=f;while(1)if((p|0)<(j|0)&($(p,p)|0)<(s|0))p=p<<1;else break;s=f;while(1)if((s|0)<(j|0)&($(s,s)|0)<(t|0))s=s<<1;else break}else{p=f;while(1)if((p|0)<(j|0)&($(p<<2,p)|0)<(s|0))p=p<<1;else break;s=f;while(1)if((s|0)<(j|0)&($(s<<2,s)|0)<(t|0))s=s<<1;else break}O=(p|0)>(j|0)?j:p;M=(s|0)>(j|0)?j:s;L=(O|0)/(f|0)|0;K=(M|0)/(f|0)|0;u=(1.0-q)*.5*10.0;J=q*10.0;N=$(f,f)|0;a:do if(!e){I=N*3|0;p=ex(I,4)|0;if(!p){Kf(3,21359,B);zb(1)}do switch(n|0){case 0:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=(($(t,l)|0)+s|0)*3|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+2)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+t>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 1:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=(($(t,l)|0)+s|0)*3|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+t>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t+1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t+2)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 2:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+t>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 3:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+t>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|2)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 4:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|1)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|3)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 5:case 12:case 13:case 14:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=d[k+(($(t,l)|0)+s)>>0]|0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+t;s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+t;b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+t}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 6:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=($(t,l)|0)+s<<2;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|3)>>0]|0);s=p+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[k+(t|2)>>0]|0);b=p+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[k+(t|1)>>0]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 7:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Z=$(t,l)|0;Y=(s&65534)+Z<<1;V=+((d[k+Y>>0]|0)+-128|0);X=+((d[k+(Y+2)>>0]|0)+-128|0);W=+((d[k+(Z+s<<1|1)>>0]|0)+-16|0)*298.0820007324219;Z=~~(V*516.4110107421875+W)>>8;Y=~~(W-V*100.29100036621094-X*208.1199951171875)>>8;t=~~(W+X*408.5830078125)>>8;Z=(Z|0)>0?Z:0;b=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;s=p+(b<<2)|0;c[s>>2]=((Z|0)<255?Z:255)+(c[s>>2]|0);Y=(Y|0)>0?Y:0;s=p+(b+1<<2)|0;c[s>>2]=((Y|0)<255?Y:255)+(c[s>>2]|0);t=(t|0)>0?t:0;b=p+(b+2<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 8:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){t=$(t,l)|0;Y=(s&65534)+t<<1;V=+((d[k+(Y|1)>>0]|0)+-128|0);X=+((d[k+(Y+3)>>0]|0)+-128|0);W=+((d[k+(t+s<<1)>>0]|0)+-16|0)*298.0820007324219;s=~~(W+V*516.4110107421875)>>8;t=~~(W-V*100.29100036621094-X*208.1199951171875)>>8;Y=~~(W+X*408.5830078125)>>8;s=(s|0)>0?s:0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=((s|0)<255?s:255)+(c[b>>2]|0);t=(t|0)>0?t:0;b=p+(Z+1<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0);Y=(Y|0)>0?Y:0;Z=p+(Z+2<<2)|0;c[Z>>2]=((Y|0)<255?Y:255)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 9:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;t=d[k+(Y|1)>>0]|0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(t<<3&248|4)+(c[b>>2]|0);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<5&224|t>>>3&28|2)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&248|4)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 10:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;t=d[k+(Y|1)>>0]|0;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(t<<2&248|4)+(c[b>>2]|0);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<5&224|t>>>3&24|4)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&248|4)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}case 11:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;Z=(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)|0)*3|0;b=p+(Z<<2)|0;c[b>>2]=(c[b>>2]|0)+((d[k+(Y|1)>>0]|0)&240|8);Y=d[k+Y>>0]|0;b=p+(Z+1<<2)|0;c[b>>2]=(Y<<4&240|8)+(c[b>>2]|0);Z=p+(Z+2<<2)|0;c[Z>>2]=(Y&240|8)+(c[Z>>2]|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}break}default:{Kf(3,18803,C);S=278;break a}}while(0);t=$(K,L)|0;if(N){s=0;do{a[r+s>>0]=((c[p+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}while((s|0)<(I|0))}dx(p);p=0}else{p=ex(N,4)|0;if(!p){Kf(3,21359,w);zb(1)}b:do if(n>>>0<2){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)>0){e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=(($(t,l)|0)+s|0)*3|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y+1)>>0]|0)+(d[k+Y>>0]|0)+(d[k+(Y+2)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0))}}else{if((n&-2|0)==2){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break;e=(O|0)>0;x=0;while(1){v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<2;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y|1)>>0]|0)+(d[k+Y>>0]|0)+(d[k+(Y|2)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0;if((x|0)>=(M|0))break b}}if((n&-3|0)==4){y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break;e=(O|0)>0;x=0;while(1){v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<2;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((d[k+(Y|2)>>0]|0)+(d[k+(Y|1)>>0]|0)+(d[k+(Y|3)>>0]|0)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0;if((x|0)>=(M|0))break b}}switch(n|0){case 5:case 12:case 13:case 14:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 7:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s<<1|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 8:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=d[k+(($(t,l)|0)+s<<1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+Y}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 9:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Y=d[k+(Y|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((Y<<3&248|4)+(I&248|4)+(I<<5&224|Y>>>3&28|2)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 10:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Y=d[k+(Y|1)>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((Y<<2&248|4)+(I&248|4)+(I<<5&224|Y>>>3&24|4)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}case 11:{y=u+100.0;z=+(M|0);A=+(O|0);B=P+48|0;C=P+56|0;n=P+64|0;D=P+8|0;E=P+16|0;F=P+24|0;G=P+32|0;H=P+40|0;j=(b|0)==1;if((M|0)<=0)break b;e=(O|0)>0;x=0;do{v=y+J*(+(x|0)+.5)/z;if(e){w=0;do{u=y+J*(+(w|0)+.5)/A;q=+h[n>>3]+(+h[B>>3]*u+v*+h[C>>3]);if(q==0.0){S=278;break a}X=(+h[E>>3]+(u*+h[P>>3]+v*+h[D>>3]))/q;g[Q>>2]=X;u=(+h[H>>3]+(u*+h[F>>3]+v*+h[G>>3]))/q;g[R>>2]=u;lg(o,X,u,Q,R)|0;u=+g[Q>>2];if(j){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+g[R>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+g[R>>2]+.5)}if((s|0)>-1?(t|0)<(m|0)&((t|0)>-1&(s|0)<(l|0)):0){Y=($(t,l)|0)+s<<1;I=d[k+Y>>0]|0;Z=p+(($((x|0)/(K|0)|0,f)|0)+((w|0)/(L|0)|0)<<2)|0;c[Z>>2]=(c[Z>>2]|0)+((((I<<4&240|8)+(I&240|8)+((d[k+(Y|1)>>0]|0)&240|8)|0)>>>0)/3|0)}w=w+1|0}while((w|0)<(O|0))}x=x+1|0}while((x|0)<(M|0));break}default:{Kf(3,18803,x);S=278;break a}}}while(0);s=$(K,L)|0;if(N){t=0;do{a[r+t>>0]=((c[p+(t<<2)>>2]|0)>>>0)/(s>>>0)|0;t=t+1|0}while((t|0)<(N|0))}dx(p);p=0}while(0);if((S|0)==278){dx(p);p=-1}i=T;return p|0}function Df(b,e,f,g,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+32|0;p=v+24|0;o=v+8|0;u=v;a:do if((e+-3|0)>>>0>5){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-1}else{c[o>>2]=0;t=e+-1|0;c[o+4>>2]=$(t,e)|0;r=$(e,e)|0;c[o+8>>2]=r+-1;c[o+12>>2]=t;n=a[b+(c[o>>2]|0)>>0]|0;m=(n&255)>0?n:0;n=(n&255)<255?n:-1;s=a[b+(c[o+4>>2]|0)>>0]|0;m=(s&255)>(m&255)?s:m;n=(s&255)<(n&255)?s:n;s=a[b+(c[o+8>>2]|0)>>0]|0;m=(s&255)>(m&255)?s:m;n=(s&255)<(n&255)?s:n;s=a[b+(c[o+12>>2]|0)>>0]|0;m=((s&255)>(m&255)?s:m)&255;n=((s&255)<(n&255)?s:n)&255;if((m-n|0)<30){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-2;break}q=(m+n|0)>>>1;a[p>>0]=(d[b+(c[o>>2]|0)>>0]|0)>>>0>>0&1;a[p+1>>0]=(d[b+(c[o+4>>2]|0)>>0]|0)>>>0>>0&1;a[p+2>>0]=(d[b+(c[o+8>>2]|0)>>0]|0)>>>0>>0&1;a[p+3>>0]=(d[b+(c[o+12>>2]|0)>>0]|0)>>>0>>0&1;n=0;while(1){m=n+1|0;if(((a[p+n>>0]|0)==1?(a[p+((m|0)%4|0)>>0]|0)==1:0)?(a[p+((n+2|0)%4|0)>>0]|0)==0:0){m=n;n=10;break}if((m|0)<4)n=m;else{n=12;break}}if((n|0)==10)c[g>>2]=m;else if((n|0)==12?(m|0)==4:0){c[f>>2]=-1;c[g>>2]=0;h[j>>3]=-1.0;m=-3;break}if(!r)s=255;else{m=255;n=0;do{s=b+n|0;p=d[s>>0]|0;o=p-q|0;o=(o|0)<0?0-o|0:o;m=(o|0)<(m|0)?o:m;a[s>>0]=p>>>0>>0&1;n=n+1|0}while((n|0)<(r|0));s=m}switch(c[g>>2]|0){case 0:{if((e|0)>0){r=(e|0)==0;n=0;m=0;g=0;do{p=(g|0)==(t|0);q=$(g,e)|0;if(!r){o=0;do{if((o|g|0)!=0?!(p&((o|0)==0|(o|0)==(t|0))):0){n=jH(n|0,m|0,1)|0;n=(a[b+(o+q)>>0]|0)!=0|n;m=D}o=o+1|0}while((o|0)!=(e|0))}g=g+1|0}while((g|0)<(e|0))}else{n=0;m=0}break}case 1:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=0;do{p=(g|0)==0;q=(g|0)==(t|0);if(r){o=t;while(1){w=(o|0)==(t|0);if(!(p&w)?!(q&(w|(o|0)==0)):0){n=jH(n|0,m|0,1)|0;n=(a[b+(($(o,e)|0)+g)>>0]|0)!=0|n;m=D}if((o|0)>0)o=o+-1|0;else break}}g=g+1|0}while((g|0)<(e|0))}else{n=0;m=0}break}case 2:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=t;while(1){q=(g|0)==(t|0)|(g|0)==0;p=$(g,e)|0;if(r){o=t;while(1){if(!(q&(o|0)==(t|0)|(o|g|0)==0)){n=jH(n|0,m|0,1)|0;n=(a[b+(o+p)>>0]|0)!=0|n;m=D}if((o|0)>0)o=o+-1|0;else break}}if((g|0)>0)g=g+-1|0;else break}}else{n=0;m=0}break}case 3:{if((e|0)>0){r=(e|0)>0;n=0;m=0;g=t;while(1){p=(g|0)==(t|0);q=(g|0)==0;if(r){o=0;do{if(!(p&(o|0)==0|(o|g|0)==0|q&(o|0)==(t|0))){n=jH(n|0,m|0,1)|0;n=(a[b+(($(o,e)|0)+g)>>0]|0)!=0|n;m=D}o=o+1|0}while((o|0)<(e|0))}if((g|0)>0)g=g+-1|0;else break}}else{n=0;m=0}break}default:{n=0;m=0}}h[j>>3]=(s|0)>30?1.0:+(s|0)/30.0;switch(k|0){case 259:{w=a[18739+n>>0]|0;k=w<<24>>24;l=u;c[l>>2]=k;c[l+4>>2]=((k|0)<0)<<31>>31;if(w<<24>>24<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}break}case 515:{m=a[18611+n>>0]|0;k=m<<24>>24;w=u;c[w>>2]=k;c[w+4>>2]=((k|0)<0)<<31>>31;if(l)c[l>>2]=d[18675+n>>0];if(m<<24>>24<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}break}case 772:case 1028:{m=Gf(k,n,m,0,u)|0;if((m|0)<0){c[f>>2]=-1;h[j>>3]=-1.0;m=-4;break a}if((l|0)!=0&(m|0)>0)c[l>>2]=m;break}default:{w=u;c[w>>2]=n;c[w+4>>2]=m}}c[f>>2]=c[u>>2];m=0}while(0);i=v;return m|0}function Ef(a,b,e,f,g,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0;C=i;i=i+16|0;l=C+8|0;n=C;a:do if(!a){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;b=-1}else switch(b|0){case 0:{o=$(f,f)|0;z=o*3|0;A=cx(o*12|0)|0;if(!A){Kf(3,21359,n);zb(1)}if(!o)b=0;else{b=0;l=0;do{b=((d[e+l>>0]|0)^255)+b|0;l=l+1|0}while((l|0)<(z|0))}l=(b|0)/(z|0)|0;if(!o)m=0.0;else{n=0;b=0;do{x=((d[e+n>>0]|0)^255)-l|0;c[A+(n<<2)>>2]=x;b=($(x,x)|0)+b|0;n=n+1|0}while((n|0)<(z|0));m=+(b|0)}y=+P(+m);if(y/(+(f|0)*1.7320508)<15.0){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;dx(A);b=-2;break a}v=c[a>>2]|0;w=a+12|0;x=a+16|0;if((v|0)>0){u=c[a+8>>2]|0;s=(o|0)==0;n=-1;t=0;m=0.0;l=-1;b=-1;do{b:while(1){n=n+1|0;switch(c[u+(n<<2)>>2]|0){case 0:break;case 2:break b;default:{B=17;break b}}}if((B|0)==17){B=0;p=n<<2;q=c[x>>2]|0;r=0;do{a=r+p|0;if(s)o=0;else{e=c[(c[w>>2]|0)+(a<<2)>>2]|0;f=0;o=0;do{o=($(c[e+(f<<2)>>2]|0,c[A+(f<<2)>>2]|0)|0)+o|0;f=f+1|0}while((f|0)<(z|0))}D=+(o|0)/+h[q+(a<<3)>>3]/y;a=D>m;l=a?r:l;b=a?n:b;m=a?D:m;r=r+1|0}while((r|0)!=4)}t=t+1|0}while((t|0)<(v|0))}else{m=0.0;l=-1;b=-1}c[j>>2]=l;c[g>>2]=b;h[k>>3]=m;dx(A);b=0;break a}case 1:{z=$(f,f)|0;A=cx(z<<2)|0;if(!A){Kf(3,21359,l);zb(1)}if(!z)b=0;else{b=0;l=0;do{b=((d[e+l>>0]|0)^255)+b|0;l=l+1|0}while((l|0)<(z|0))}l=(b|0)/(z|0)|0;if(!z)m=0.0;else{n=0;b=0;do{x=((d[e+n>>0]|0)^255)-l|0;c[A+(n<<2)>>2]=x;b=($(x,x)|0)+b|0;n=n+1|0}while((n|0)<(z|0));m=+(b|0)}y=+P(+m);if(y/+(f|0)<15.0){c[g>>2]=0;c[j>>2]=0;h[k>>3]=-1.0;dx(A);b=-2;break a}v=c[a>>2]|0;w=a+20|0;x=a+24|0;if((v|0)>0){s=c[a+8>>2]|0;t=(z|0)==0;n=-1;u=0;m=0.0;l=-1;b=-1;do{c:while(1){n=n+1|0;switch(c[s+(n<<2)>>2]|0){case 0:break;case 2:break c;default:{B=37;break c}}}if((B|0)==37){B=0;p=n<<2;q=c[x>>2]|0;r=0;do{a=r+p|0;if(t)o=0;else{e=c[(c[w>>2]|0)+(a<<2)>>2]|0;f=0;o=0;do{o=($(c[e+(f<<2)>>2]|0,c[A+(f<<2)>>2]|0)|0)+o|0;f=f+1|0}while((f|0)<(z|0))}D=+(o|0)/+h[q+(a<<3)>>3]/y;a=D>m;l=a?r:l;b=a?n:b;m=a?D:m;r=r+1|0}while((r|0)!=4)}u=u+1|0}while((u|0)<(v|0))}else{m=0.0;l=-1;b=-1}c[j>>2]=l;c[g>>2]=b;h[k>>3]=m;dx(A);b=0;break a}default:{b=-1;break a}}while(0);i=C;return b|0}function Ff(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=Sf(8,8)|0;f=Sf(8,1)|0;g=Sf(8,1)|0;i=c[e>>2]|0;j=c[f>>2]|0;k=0;do{p=a+(k<<4)|0;l=k<<4;h[i+(l<<3)>>3]=+h[p>>3];o=a+(k<<4)+8|0;h[i+((l|1)<<3)>>3]=+h[o>>3];h[i+((l|2)<<3)>>3]=1.0;h[i+((l|3)<<3)>>3]=0.0;h[i+((l|4)<<3)>>3]=0.0;h[i+((l|5)<<3)>>3]=0.0;n=b+(k<<4)|0;h[i+((l|6)<<3)>>3]=-(+h[p>>3]*+h[n>>3]);h[i+((l|7)<<3)>>3]=-(+h[o>>3]*+h[n>>3]);h[i+((l|8)<<3)>>3]=0.0;h[i+((l|9)<<3)>>3]=0.0;h[i+((l|10)<<3)>>3]=0.0;h[i+((l|11)<<3)>>3]=+h[p>>3];h[i+((l|12)<<3)>>3]=+h[o>>3];h[i+((l|13)<<3)>>3]=1.0;m=b+(k<<4)+8|0;h[i+((l|14)<<3)>>3]=-(+h[p>>3]*+h[m>>3]);h[i+((l|15)<<3)>>3]=-(+h[o>>3]*+h[m>>3]);l=k<<1;h[j+(l<<3)>>3]=+h[n>>3];h[j+((l|1)<<3)>>3]=+h[m>>3];k=k+1|0}while((k|0)!=4);$f(e)|0;Yf(g,e,f)|0;p=c[g>>2]|0;h[d>>3]=+h[p>>3];h[d+8>>3]=+h[p+8>>3];h[d+16>>3]=+h[p+16>>3];p=c[g>>2]|0;h[d+24>>3]=+h[p+24>>3];h[d+32>>3]=+h[p+32>>3];h[d+40>>3]=+h[p+40>>3];p=c[g>>2]|0;h[d+48>>3]=+h[p+48>>3];h[d+56>>3]=+h[p+56>>3];h[d+64>>3]=1.0;Xf(e)|0;Xf(f)|0;Xf(g)|0;return}function Gf(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+2320|0;k=I+2304|0;y=I+864|0;u=I+784|0;H=I+704|0;w=I+624|0;v=I+548|0;G=I+40|0;E=I;switch(b|0){case 772:{g=9;j=1;l=3;break}case 1028:{g=5;j=2;l=3;break}case 2830:{A=3244;s=3816;C=64;F=120;z=127;B=g;j=9;l=6;break}default:f=-1}if((l|0)==3){b=0;while(1){a[k+b>>0]=e&1;e=eH(e|0,f|0,1)|0;b=b+1|0;if((b|0)==13)break;else f=D}A=3184;s=3752;C=g;F=13;z=15;B=k;l=6}do if((l|0)==6){r=j<<1;k=1;f=0;while(1){g=v+(k<<2)|0;c[g>>2]=0;b=0;e=0;do{if(a[B+e>>0]|0){b=b^c[A+((($(e,k)|0)%(z|0)|0)<<2)>>2];c[g>>2]=b}e=e+1|0}while((e|0)<(F|0));f=(b|0)==0?f:1;c[g>>2]=c[s+(b<<2)>>2];if((k|0)<(r|0))k=k+1|0;else break}x=(f|0)!=0;if(x){c[u>>2]=0;f=c[v+4>>2]|0;c[u+4>>2]=f;c[y>>2]=0;c[y+72>>2]=1;if((r|0)>1){b=1;do{c[y+(b<<2)>>2]=-1;c[y+72+(b<<2)>>2]=0;b=b+1|0}while((b|0)<(r|0))}c[H>>2]=0;c[H+4>>2]=0;c[w>>2]=-1;c[w+4>>2]=0;p=0;q=0;while(1){g=q;q=q+1|0;o=u+(q<<2)|0;if((f|0)==-1){k=g+2|0;c[H+(k<<2)>>2]=p;if((p|0)<0)n=p;else{f=0;while(1){o=y+(q*72|0)+(f<<2)|0;n=c[o>>2]|0;c[y+(k*72|0)+(f<<2)>>2]=n;c[o>>2]=c[s+(n<<2)>>2];if((f|0)<(p|0))f=f+1|0;else{n=p;break}}}}else{b=g;while(1){f=(b|0)>0;if(f&(c[u+(b<<2)>>2]|0)==-1)b=b+-1|0;else break}if(f){e=b;do{f=e;e=e+-1|0;if((c[u+(e<<2)>>2]|0)!=-1)b=(c[w+(b<<2)>>2]|0)<(c[w+(e<<2)>>2]|0)?e:b}while((f|0)>1)}e=H+(b<<2)|0;m=q-b|0;n=m+(c[e>>2]|0)|0;k=g+2|0;n=(p|0)>(n|0)?p:n;c[H+(k<<2)>>2]=n;f=0;do{c[y+(k*72|0)+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(r|0));f=c[e>>2]|0;e=u+(b<<2)|0;if((f|0)>=0){l=0;while(1){g=c[y+(b*72|0)+(l<<2)>>2]|0;if((g|0)!=-1)c[y+(k*72|0)+(m+l<<2)>>2]=c[A+(((g+z+(c[o>>2]|0)-(c[e>>2]|0)|0)%(z|0)|0)<<2)>>2];if((l|0)<(f|0))l=l+1|0;else break}}if((p|0)>=0){f=0;while(1){o=y+(q*72|0)+(f<<2)|0;m=c[o>>2]|0;l=y+(k*72|0)+(f<<2)|0;c[l>>2]=c[l>>2]^m;c[o>>2]=c[s+(m<<2)>>2];if((f|0)<(p|0))f=f+1|0;else break}}}c[w+(k<<2)>>2]=q-n;if((q|0)>=(r|0))break;f=c[v+(k<<2)>>2]|0;if((f|0)==-1)f=0;else f=c[A+(f<<2)>>2]|0;g=u+(k<<2)|0;c[g>>2]=f;if((n|0)>=1){e=1;while(1){b=c[v+(k-e<<2)>>2]|0;if((b|0)!=-1?(t=c[y+(k*72|0)+(e<<2)>>2]|0,(t|0)!=0):0){f=f^c[A+((((c[s+(t<<2)>>2]|0)+b|0)%(z|0)|0)<<2)>>2];c[g>>2]=f}if((e|0)<(n|0))e=e+1|0;else break}}f=c[s+(f<<2)>>2]|0;c[g>>2]=f;if((n|0)>(j|0))break;else p=n}if((n|0)>(j|0)){f=-1;break}if((n|0)>=0){f=0;while(1){w=y+(k*72|0)+(f<<2)|0;c[w>>2]=c[s+(c[w>>2]<<2)>>2];if((f|0)<(n|0))f=f+1|0;else break}}if((n|0)>=1){f=1;while(1){c[E+(f<<2)>>2]=c[y+(k*72|0)+(f<<2)>>2];if((f|0)<(n|0))f=f+1|0;else break}}l=(n|0)<1;f=0;m=1;do{if(l)b=1;else{j=1;b=1;while(1){e=E+(j<<2)|0;g=c[e>>2]|0;if((g|0)!=-1){y=(g+j|0)%(z|0)|0;c[e>>2]=y;b=c[A+(y<<2)>>2]^b}if((j|0)<(n|0))j=j+1|0;else break}}if(!b){c[G+(f<<2)>>2]=z-m;f=f+1|0}m=m+1|0}while((z|0)>=(m|0));if((f|0)!=(n|0)){f=-1;break}if((n|0)>0){f=0;do{E=B+(c[G+(f<<2)>>2]|0)|0;a[E>>0]=d[E>>0]^1;f=f+1|0}while((f|0)<(n|0))}}else k=0;b=h;c[b>>2]=0;c[b+4>>2]=0;b=1;e=0;g=0;j=0;f=F-C|0;while(1){G=pH(d[B+f>>0]|0,0,b|0,e|0)|0;g=cH(G|0,D|0,g|0,j|0)|0;j=D;G=h;c[G>>2]=g;c[G+4>>2]=j;b=jH(b|0,e|0,1)|0;f=f+1|0;if((f|0)>=(F|0))break;else e=D}if(x)f=c[H+(k<<2)>>2]|0;else f=0}while(0);i=I;return f|0}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;A=i;i=i+32|0;z=A+24|0;g=A+16|0;d=A+8|0;do if(a){if(!b){Kf(3,18862,d);d=-1;break}y=a+8|0;f=c[a+4>>2]|0;a:do if((f|0)>0){e=c[y>>2]|0;d=0;do{if(!(c[e+(d<<2)>>2]|0))break a;d=d+1|0}while((d|0)<(f|0))}else d=0;while(0);if((d|0)!=(f|0)){x=Ew(b)|0;if(!x){Kf(3,18907,g);d=-1;break}r=a+28|0;s=d<<2;t=a+12|0;u=a+20|0;v=a+16|0;w=a+24|0;f=Kw(x,18930)|0;e=0;b:while(1){q=e+s|0;p=0;b=0;do{n=(p|0)==0;o=(p|0)==2;g=c[r>>2]|0;if((g|0)>0){m=0;do{if((g|0)>0){l=0;do{if(!f){e=17;break b}g=pw(f)|0;f=Kw(0,18930)|0;g=255-g|0;k=((($(c[r>>2]|0,m)|0)+l|0)*3|0)+p|0;c[(c[(c[t>>2]|0)+(q<<2)>>2]|0)+(k<<2)>>2]=g;k=($(c[r>>2]|0,m)|0)+l|0;j=c[(c[u>>2]|0)+(q<<2)>>2]|0;k=j+(k<<2)|0;if(!n){c[k>>2]=(c[k>>2]|0)+g;if(o){k=j+(($(c[r>>2]|0,m)|0)+l<<2)|0;c[k>>2]=(c[k>>2]|0)/3|0}}else c[k>>2]=g;b=g+b|0;l=l+1|0;g=c[r>>2]|0}while((l|0)<(g|0))}m=m+1|0}while((m|0)<(g|0))}p=p+1|0}while((p|0)<3);g=c[r>>2]|0;l=(b|0)/($(g*3|0,g)|0)|0;if(($(g*3|0,g)|0)>0){j=c[(c[t>>2]|0)+(q<<2)>>2]|0;k=0;b=0;do{p=j+(k<<2)|0;g=(c[p>>2]|0)-l|0;c[p>>2]=g;b=($(g,g)|0)+b|0;k=k+1|0;g=c[r>>2]|0}while((k|0)<($(g*3|0,g)|0))}else b=0;B=+P(+(+(b|0)));h[(c[v>>2]|0)+(q<<3)>>3]=B==0.0?1.0e-07:B;if(!($(g,g)|0))b=0;else{g=c[(c[u>>2]|0)+(q<<2)>>2]|0;j=0;b=0;do{o=g+(j<<2)|0;p=(c[o>>2]|0)-l|0;c[o>>2]=p;b=($(p,p)|0)+b|0;j=j+1|0;p=c[r>>2]|0}while((j|0)<($(p,p)|0))}B=+P(+(+(b|0)));h[(c[w>>2]|0)+(q<<3)>>3]=B==0.0?1.0e-07:B;e=e+1|0;if((e|0)>=4){e=32;break}}if((e|0)==17){Kf(3,18935,z);dx(x);d=-1;break}else if((e|0)==32){dx(x);c[(c[y>>2]|0)+(d<<2)>>2]=1;c[a>>2]=(c[a>>2]|0)+1;break}}else d=-1}else{Kf(3,18837,A);d=-1}while(0);i=A;return d|0}function If(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k+8|0;e=k;g=Qv(d,20972)|0;do if(g){Xv(g,0,2)|0;e=_v(g)|0;Xv(g,0,0)|0;f=cx(e+1|0)|0;if(!f){Kf(3,21359,h);Mv(g)|0;e=-1;break}h=Uv(f,e,1,g)|0;Mv(g)|0;if(!h){c[j>>2]=d;Kf(3,19008,j);dx(f);e=-1;break}else{a[f+e>>0]=0;e=Hf(b,f)|0;dx(f);break}}else{c[e>>2]=d;Kf(3,18962,e);e=-1}while(0);i=k;return e|0}function Jf(a,b){a=a|0;b=b|0;b=(c[a+8>>2]|0)+(b<<2)|0;if(!(c[b>>2]|0))b=-1;else{c[b>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;b=1}return b|0}function Kf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+16|0;f=j;c[h>>2]=0;if(((d|0)!=0&(c[1082]|0)<=(b|0)?(a[d>>0]|0)!=0:0)?(c[f>>2]=e,g=jw(h,d,f)|0,(g|0)>-1):0){f=c[1083]|0;do if(f){if(!(c[1084]|0)){Kc[f&255](c[h>>2]|0);break}e=qc()|0;b=c[1086]|0;if((e|0)==(c[1085]|0)){if((b|0)>0){Kc[f&255](c[1088]|0);c[1086]=0;f=c[1083]|0}Kc[f&255](c[h>>2]|0);break}f=c[1087]|0;if((b|0)<(f|0)){d=(c[1088]|0)+b|0;if((g|0)<(-3-b+f|0)){Cw(d,c[h>>2]|0)|0;c[1086]=(c[1086]|0)+g;break}else{a[d>>0]=46;a[d+1>>0]=46;a[d+2>>0]=46;a[d+3>>0]=0;c[1086]=c[1087];break}}}else Tv(c[h>>2]|0,c[1607]|0)|0;while(0);dx(c[h>>2]|0)}i=j;return}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0;i=0;do{d=a+(i<<5)|0;e=a+(i<<5)+8|0;f=a+(i<<5)+16|0;g=0;do{h[c+(i<<5)+(g<<3)>>3]=+h[d>>3]*+h[b+(g<<3)>>3]+ +h[e>>3]*+h[b+32+(g<<3)>>3]+ +h[f>>3]*+h[b+64+(g<<3)>>3];g=g+1|0}while((g|0)!=4);g=c+(i<<5)+24|0;h[g>>3]=+h[a+(i<<5)+24>>3]+ +h[g>>3];i=i+1|0}while((i|0)!=3);return 0}function Mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0;j=Sf(4,4)|0;d=c[j>>2]|0;e=c[j>>2]|0;f=c[j>>2]|0;g=c[j>>2]|0;i=0;do{k=i<<2;h[d+(k<<3)>>3]=+h[a+(i<<5)>>3];h[e+(1+k<<3)>>3]=+h[a+(i<<5)+8>>3];h[f+(2+k<<3)>>3]=+h[a+(i<<5)+16>>3];h[g+(3+k<<3)>>3]=+h[a+(i<<5)+24>>3];i=i+1|0}while((i|0)!=3);d=c[j>>2]|0;e=d+96|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[d+120>>3]=1.0;$f(j)|0;d=c[j>>2]|0;e=c[j>>2]|0;f=c[j>>2]|0;g=c[j>>2]|0;i=0;do{k=i<<2;h[b+(i<<5)>>3]=+h[d+(k<<3)>>3];h[b+(i<<5)+8>>3]=+h[e+(1+k<<3)>>3];h[b+(i<<5)+16>>3]=+h[f+(2+k<<3)>>3];h[b+(i<<5)+24>>3]=+h[g+(3+k<<3)>>3];i=i+1|0}while((i|0)!=3);Xf(j)|0;return 0}function Nf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,i=0,j=0,k=0,l=0;k=Sf(4,4)|0;d=c[k>>2]|0;e=c[k>>2]|0;f=c[k>>2]|0;i=c[k>>2]|0;j=0;do{l=j<<2;h[d+(l<<3)>>3]=+g[a+(j<<4)>>2];h[e+(1+l<<3)>>3]=+g[a+(j<<4)+4>>2];h[f+(2+l<<3)>>3]=+g[a+(j<<4)+8>>2];h[i+(3+l<<3)>>3]=+g[a+(j<<4)+12>>2];j=j+1|0}while((j|0)!=3);d=c[k>>2]|0;e=d+96|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[d+120>>3]=1.0;$f(k)|0;d=c[k>>2]|0;e=c[k>>2]|0;f=c[k>>2]|0;i=c[k>>2]|0;j=0;do{l=j<<2;g[b+(j<<4)>>2]=+h[d+(l<<3)>>3];g[b+(j<<4)+4>>2]=+h[e+(1+l<<3)>>3];g[b+(j<<4)+8>>2]=+h[f+(2+l<<3)>>3];g[b+(j<<4)+12>>2]=+h[i+(3+l<<3)>>3];j=j+1|0}while((j|0)!=3);Xf(k)|0;return 0}function Of(a){a=a|0;switch(a|0){case 1:case 0:{a=3;break}case 6:case 4:case 3:case 2:{a=4;break}case 14:case 13:case 12:case 5:{a=1;break}case 11:case 10:case 9:case 8:case 7:{a=2;break}default:a=0}return a|0}function Pf(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;do if((b|0)!=0&(c|0)!=0&(d|0)!=0){f=Iw(c,47)|0;if(!f){a[b>>0]=0;break}f=f+((e|0)!=0&1)-c|0;if((f+1|0)>>>0<=d>>>0){Hw(b,c,f)|0;a[b+f>>0]=0}else b=0}else b=0;while(0);return b|0}function Qf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=0;f=0;a:while(1){g=b+e|0;switch(a[g>>0]|0){case 0:break a;case 46:{f=e;break}default:{}}e=e+1|0}h=Fw(d)|0;if(!f)if((e+2+h|0)>(c|0))e=-1;else{a[g>>0]=46;i=9}else if((f+2+h|0)>(c|0))e=-1;else{e=f;i=9}if((i|0)==9){a[b+(e+1)>>0]=0;yw(b,d)|0;e=0}return e|0}function Rf(b){b=b|0;var c=0,d=0;d=0;c=-1;a:while(1){switch(a[b+d>>0]|0){case 0:break a;case 46:{c=d;break}default:{}}d=d+1|0}if((c|0)!=-1)a[b+c>>0]=0;return 0}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0;d=cx(12)|0;do if(d){e=cx($(a<<3,b)|0)|0;c[d>>2]=e;if(!e){dx(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Tf(a){a=a|0;var b=0;b=Sf(c[a+4>>2]|0,c[a+8>>2]|0)|0;if(b){if((Wf(b,a)|0)<0){Xf(b)|0;b=0}}else b=0;return b|0}function Uf(a,b){a=a|0;b=b|0;var d=0;d=Sf(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Yf(d,a,b)|0)<0){Xf(d)|0;d=0}}else d=0;return d|0}function Vf(a){a=a|0;var b=0;b=Sf(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if((ag(b,a)|0)<0){Xf(b)|0;b=0}}else b=0;return b|0}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0;d=c[a+4>>2]|0;if((d|0)==(c[b+4>>2]|0)?(j=c[a+8>>2]|0,(j|0)==(c[b+8>>2]|0)):0)if((d|0)>0){e=(j|0)>0;l=0;do{f=$(j,l)|0;if(e){g=c[b>>2]|0;i=c[a>>2]|0;k=0;do{m=f+k|0;h[i+(m<<3)>>3]=+h[g+(m<<3)>>3];k=k+1|0}while((k|0)<(j|0))}l=l+1|0}while((l|0)<(d|0));d=0}else d=0;else d=-1;return d|0}function Xf(a){a=a|0;if(a){dx(c[a>>2]|0);dx(a)}return 0}function Yf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=c[b+8>>2]|0;if(((n|0)==(c[d+4>>2]|0)?(r=c[a+4>>2]|0,(r|0)==(c[b+4>>2]|0)):0)?(o=c[a+8>>2]|0,(o|0)==(c[d+8>>2]|0)):0){s=(o|0)>0?o:0;if((r|0)>0){p=(o|0)>0;q=(n|0)>0;k=c[a>>2]|0;m=0;while(1){a=$(n,m)|0;if(p){f=0;l=k;while(1){h[l>>3]=0.0;if(q){e=0.0;g=0;i=(c[b>>2]|0)+(a<<3)|0;j=(c[d>>2]|0)+(f<<3)|0;while(1){e=e+ +h[i>>3]*+h[j>>3];h[l>>3]=e;g=g+1|0;if((g|0)>=(n|0))break;else{i=i+8|0;j=j+(o<<3)|0}}}f=f+1|0;if((f|0)>=(o|0))break;else l=l+8|0}}m=m+1|0;if((m|0)>=(r|0)){a=0;break}else k=k+(s<<3)|0}}else a=0}else a=-1;return a|0}function Zf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0;q=c[a+4>>2]|0;s=c[a+8>>2]|0;f=(q|0)<(s|0)?q:s;a:do if(((((!((q|0)<2|(s|0)<2)?(c[b+8>>2]|0)==(s|0):0)?(c[b+4>>2]|0)==(f|0):0)?(t=d+4|0,(c[t>>2]|0)==(f|0)):0)?(g=e+4|0,(c[g>>2]|0)==(s|0)):0)?(u=Tf(a)|0,(u|0)!=0):0){r=+P(+(+(q|0)));o=c[u+4>>2]|0;p=c[u+8>>2]|0;if(!((o|0)<1|(p|0)<1)?(c[g>>2]|0)==(p|0):0){if(p){f=c[e>>2]|0;a=0;do{h[f+(a<<3)>>3]=0.0;a=a+1|0}while((a|0)!=(p|0))}n=c[u>>2]|0;if(o){f=(p|0)==0;a=0;j=n;while(1){if(!f){g=0;k=j;l=c[e>>2]|0;while(1){h[l>>3]=+h[k>>3]+ +h[l>>3];g=g+1|0;if((g|0)==(p|0))break;else{k=k+8|0;l=l+8|0}}}a=a+1|0;if((a|0)==(o|0))break;else j=j+(p<<3)|0}}i=+(o|0);if(p){f=c[e>>2]|0;a=0;do{m=f+(a<<3)|0;h[m>>3]=+h[m>>3]/i;a=a+1|0}while((a|0)!=(p|0))}l=(p|0)>0?p:0;if((o|0)>0){f=(p|0)>0;a=0;j=n;while(1){if(f){g=0;k=j;m=c[e>>2]|0;while(1){h[k>>3]=+h[k>>3]-+h[m>>3];g=g+1|0;if((g|0)>=(p|0))break;else{k=k+8|0;m=m+8|0}}}a=a+1|0;if((a|0)>=(o|0))break;else j=j+(l<<3)|0}}f=$(s,q)|0;if((f|0)>0){a=0;do{e=n+(a<<3)|0;h[e>>3]=+h[e>>3]/r;a=a+1|0}while((a|0)<(f|0))}f=_f(u,b,d)|0;Xf(u)|0;j=c[t>>2]|0;if((j|0)>0){a=c[d>>2]|0;g=0;i=0.0;do{i=i+ +h[a+(g<<3)>>3];g=g+1|0}while((g|0)<(j|0))}else i=0.0;if((j|0)<=0)break;a=c[d>>2]|0;g=0;while(1){d=a+(g<<3)|0;h[d>>3]=+h[d>>3]/i;g=g+1|0;if((g|0)>=(j|0))break a}}Xf(u)|0;f=-1}else f=-1;while(0);return f|0}function _f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0.0,X=0.0,Y=0,Z=0;U=i;i=i+16|0;w=U;F=a+4|0;I=c[F>>2]|0;J=a+8|0;K=c[J>>2]|0;S=(K|0)<(I|0)?K:I;a:do if(((!((I|0)<2|(K|0)<2)?(R=b+8|0,(c[R>>2]|0)==(K|0)):0)?(L=b+4|0,(c[L>>2]|0)==(S|0)):0)?(M=d+4|0,(c[M>>2]|0)==(S|0)):0){T=Sf(S,S)|0;N=T+4|0;if((c[N>>2]|0)==(S|0)?(Q=T+8|0,(c[Q>>2]|0)==(S|0)):0){G=(I|0)<(K|0);s=c[F>>2]|0;t=c[J>>2]|0;if(G){if((S|0)!=(s|0)){Xf(T)|0;e=-1;break}g=c[T>>2]|0;if((S|0)>0){m=(S|0)==0;j=(t|0)>0;n=0;r=g;while(1){l=$(n,t)|0;if(!m){p=0;s=r;while(1){if((p|0)>=(n|0)){e=c[a>>2]|0;h[s>>3]=0.0;if(j){k=0.0;o=e+(l<<3)|0;e=e+(($(p,t)|0)<<3)|0;f=0;while(1){k=k+ +h[o>>3]*+h[e>>3];h[s>>3]=k;f=f+1|0;if((f|0)>=(t|0))break;else{o=o+8|0;e=e+8|0}}}}else h[s>>3]=+h[g+(($(p,S)|0)+n<<3)>>3];p=p+1|0;if((p|0)==(S|0))break;else s=s+8|0}}n=n+1|0;if((n|0)>=(S|0))break;else r=r+(S<<3)|0}}}else{if((S|0)!=(t|0)){Xf(T)|0;e=-1;break}g=c[T>>2]|0;if((S|0)>0){l=(S|0)==0;j=(s|0)>0;m=0;p=g;while(1){if(!l){o=0;r=p;while(1){if((o|0)>=(m|0)){e=c[a>>2]|0;h[r>>3]=0.0;if(j){k=0.0;n=e+(m<<3)|0;e=e+(o<<3)|0;f=0;while(1){k=k+ +h[n>>3]*+h[e>>3];h[r>>3]=k;f=f+1|0;if((f|0)>=(s|0))break;else{n=n+(S<<3)|0;e=e+(S<<3)|0}}}}else h[r>>3]=+h[g+(($(o,S)|0)+m<<3)>>3];o=o+1|0;if((o|0)==(S|0))break;else r=r+8|0}}m=m+1|0;if((m|0)>=(S|0))break;else p=p+(S<<3)|0}}}do if(((S|0)>=2?(c[M>>2]|0)==(S|0):0)?(H=ng(S)|0,(H|0)!=0):0){E=S+-1|0;c[w+4>>2]=E;c[w>>2]=(c[H>>2]|0)+8;if((rg(T,d,w)|0)<0){og(H)|0;break}B=c[H>>2]|0;h[B>>3]=0.0;if((E|0)>0){C=(S|0)==0;D=E;do{f=D;while(1){if((f|0)<=0)break;v=+O(+(+h[B+(f<<3)>>3]));e=f+-1|0;A=c[d>>2]|0;x=+O(+(+h[A+(e<<3)>>3]));if(v>(x+ +O(+(+h[A+(f<<3)>>3])))*1.0e-06)f=e;else break}y=D;D=D+-1|0;b:do if((f|0)!=(y|0)){o=B+(y<<3)|0;p=B+(f+1<<3)|0;r=(f|0)<(y|0);z=0;do{if((z|0)>99)break b;z=z+1|0;s=c[d>>2]|0;t=s+(D<<3)|0;w=s+(y<<3)|0;k=+h[w>>3];q=(+h[t>>3]-k)*.5;u=+h[o>>3];u=u*u;v=+P(+(u+q*q));if(r){A=f;q=+h[s+(f<<3)>>3]-k+u/(q+(q<0.0?-v:v));u=+h[p>>3];while(1){k=+O(+q);do if(!(k>=+O(+u))){v=-q/u;x=1.0/+P(+(v*v+1.0));v=v*x}else{if(!(k>1.0e-16)){v=1.0;x=0.0;break}k=-u/q;x=1.0/+P(+(k*k+1.0));v=x;x=k*x}while(0);j=s+(A<<3)|0;X=+h[j>>3];n=A;A=A+1|0;l=s+(A<<3)|0;W=+h[l>>3];k=X-W;m=B+(A<<3)|0;V=x*(x*k+v*2.0*+h[m>>3]);h[j>>3]=X-V;h[l>>3]=W+V;if((n|0)>(f|0)){l=B+(n<<3)|0;h[l>>3]=v*+h[l>>3]-u*x}X=+h[m>>3];h[m>>3]=X+x*(v*k-x*2.0*X);j=$(n,S)|0;l=$(A,S)|0;if(C)k=u;else{e=c[T>>2]|0;g=0;do{Z=e+(g+j<<3)|0;q=+h[Z>>3];Y=e+(g+l<<3)|0;k=+h[Y>>3];h[Z>>3]=v*q-x*k;h[Y>>3]=x*q+v*k;g=g+1|0}while((g|0)!=(S|0))}if((n|0)<(D|0)){q=+h[m>>3];Z=B+(n+2<<3)|0;k=+h[Z>>3];h[Z>>3]=v*k;k=-(x*k)}if((A|0)>=(y|0))break;else u=k}}W=+O(+(+h[o>>3]));X=+O(+(+h[t>>3]))}while(W>(X+ +O(+(+h[w>>3])))*1.0e-06)}while(0)}while((y|0)>1)}if(E){l=c[d>>2]|0;m=c[T>>2]|0;n=(S|0)==0;o=0;do{g=l+(o<<3)|0;q=+h[g>>3];j=o;o=o+1|0;if((o|0)<(S|0)){e=j;f=o;k=q;do{X=+h[l+(f<<3)>>3];Z=X>k;k=Z?X:k;e=Z?f:e;f=f+1|0}while((f|0)<(S|0))}else{e=j;k=q}h[l+(e<<3)>>3]=q;h[g>>3]=k;if(!n){g=0;f=m+(($(e,S)|0)<<3)|0;e=m+(($(j,S)|0)<<3)|0;while(1){X=+h[f>>3];h[f>>3]=+h[e>>3];h[e>>3]=X;g=g+1|0;if((g|0)==(S|0))break;else{f=f+8|0;e=e+8|0}}}}while((o|0)!=(E|0))}og(H)|0;c:do if(!G){g=c[b>>2]|0;p=(I|0)>(K|0)?K:I;d:do if((S|0)>0){m=c[d>>2]|0;n=(p|0)==0;e=0;o=c[T>>2]|0;do{if(+h[m+(e<<3)>>3]<1.0e-16)break d;if(!n){f=0;j=o;l=g;while(1){h[l>>3]=+h[j>>3];f=f+1|0;if((f|0)==(p|0))break;else{j=j+8|0;l=l+8|0}}}o=o+(p<<3)|0;g=g+(p<<3)|0;e=e+1|0}while((e|0)<(S|0))}else e=0;while(0);n=(p|0)>0?p:0;if((e|0)<(S|0)){l=c[d>>2]|0;m=(S|0)>0;while(1){h[l+(e<<3)>>3]=0.0;if(m){f=0;j=g;while(1){h[j>>3]=0.0;f=f+1|0;if((f|0)>=(S|0))break;else j=j+8|0}}e=e+1|0;if((e|0)>=(S|0))break;else g=g+(n<<3)|0}}}else{w=c[F>>2]|0;t=c[J>>2]|0;do if(!((w|0)<1|(t|0)<1)){if((c[N>>2]|0)!=(w|0))break;if((c[Q>>2]|0)!=(w|0))break;if((c[L>>2]|0)!=(w|0))break;if((c[R>>2]|0)!=(t|0))break;if((c[M>>2]|0)!=(w|0))break;f=c[b>>2]|0;e:do if((w|0)>0){p=c[d>>2]|0;s=(t|0)==0;r=(w|0)==0;e=0;do{k=+h[p+(e<<3)>>3];if(k<1.0e-16)break e;q=1.0/+P(+(+O(+k)));m=$(e,w)|0;if(!s){n=0;o=f;while(1){if(r)k=0.0;else{g=0;j=(c[T>>2]|0)+(m<<3)|0;l=(c[a>>2]|0)+(n<<3)|0;k=0.0;while(1){k=k+ +h[j>>3]*+h[l>>3];g=g+1|0;if((g|0)==(w|0))break;else{j=j+8|0;l=l+(t<<3)|0}}}h[o>>3]=q*k;n=n+1|0;if((n|0)==(t|0))break;else o=o+8|0}}f=f+(t<<3)|0;e=e+1|0}while((e|0)<(w|0))}else e=0;while(0);n=(t|0)>0?t:0;if((e|0)>=(w|0))break c;l=c[d>>2]|0;m=(t|0)>0;g=f;while(1){h[l+(e<<3)>>3]=0.0;if(m){f=0;j=g;while(1){h[j>>3]=0.0;f=f+1|0;if((f|0)>=(t|0))break;else j=j+8|0}}e=e+1|0;if((e|0)>=(w|0))break c;else g=g+(n<<3)|0}}while(0);Xf(T)|0;e=-1;break a}while(0);Xf(T)|0;e=0;break a}while(0);Xf(T)|0;e=-1;break}Xf(T)|0;e=-1}else e=-1;while(0);i=U;return e|0}function $f(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0;v=i;i=i+2e3|0;u=v;b=c[a>>2]|0;t=c[a+4>>2]|0;a:do if((t|0)<=500){switch(t|0){case 0:{b=0;break a}case 1:{h[b>>3]=1.0/+h[b>>3];break a}default:{}}if((t|0)>0){a=0;do{c[u+(a<<2)>>2]=a;a=a+1|0}while((a|0)<(t|0))}s=b+(t+-1<<3)|0;if((t|0)>0){m=(t|0)==0;p=(t|0)==1;o=(t|0)==0;n=(t|0)==1;q=s;a=0;r=0;while(1){l=b+(($(r,t)|0)<<3)|0;if((r|0)<(t|0)){e=r;f=0.0;d=l;while(1){w=+O(+(+h[d>>3]));k=f=(t|0))break;else d=d+(t<<3)|0}}else f=0.0;if(f<=1.0e-10){b=0;break a}g=u+(a<<2)|0;j=c[g>>2]|0;k=u+(r<<2)|0;c[g>>2]=c[k>>2];c[k>>2]=j;if(!m){d=0;e=b+(($(a,t)|0)<<3)|0;g=l;while(1){w=+h[e>>3];h[e>>3]=+h[g>>3];h[g>>3]=w;d=d+1|0;if((d|0)==(t|0))break;else{e=e+8|0;g=g+8|0}}}f=+h[l>>3];if(!p){d=1;e=l;do{k=e;e=e+8|0;h[k>>3]=+h[e>>3]/f;d=d+1|0}while((d|0)!=(t|0))}h[q>>3]=1.0/f;if(!o){g=0;j=s;while(1){if((g|0)!=(r|0)){d=b+(($(g,t)|0)<<3)|0;f=+h[d>>3];if(!n){k=1;e=l;while(1){x=d;d=d+8|0;h[x>>3]=+h[d>>3]-f*+h[e>>3];k=k+1|0;if((k|0)==(t|0))break;else e=e+8|0}}h[j>>3]=-(f*+h[q>>3])}g=g+1|0;if((g|0)==(t|0))break;else j=j+(t<<3)|0}}r=r+1|0;if((r|0)>=(t|0))break;else q=q+(t<<3)|0}}if((t|0)>0){g=(t|0)>0;j=0;do{a=u+(j<<2)|0;b:do if((j|0)<(t|0)){d=j;do{if((c[a>>2]|0)==(j|0))break b;d=d+1|0;a=u+(d<<2)|0}while((d|0)<(t|0))}else d=j;while(0);c[a>>2]=c[u+(j<<2)>>2];if(g){e=0;a=b+(d<<3)|0;d=b+(j<<3)|0;while(1){w=+h[a>>3];h[a>>3]=+h[d>>3];h[d>>3]=w;e=e+1|0;if((e|0)>=(t|0))break;else{a=a+(t<<3)|0;d=d+(t<<3)|0}}}j=j+1|0}while((j|0)<(t|0))}}else b=0;while(0);i=v;return ((b|0)==0)<<31>>31|0}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0;i=c[a+4>>2]|0;if((i|0)==(c[b+8>>2]|0)?(k=c[a+8>>2]|0,(k|0)==(c[b+4>>2]|0)):0){l=(k|0)>0?k:0;if((i|0)>0){j=(k|0)>0;e=c[a>>2]|0;g=0;while(1){if(j){a=0;d=(c[b>>2]|0)+(g<<3)|0;f=e;while(1){h[f>>3]=+h[d>>3];a=a+1|0;if((a|0)>=(k|0))break;else{d=d+(i<<3)|0;f=f+8|0}}}g=g+1|0;if((g|0)>=(i|0)){a=0;break}else e=e+(l<<3)|0}}else a=0}else a=-1;return a|0}function bg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0;f=+(b|0)/+(c[a>>2]|0);g=+(d|0)/+(c[a+4>>2]|0);c[e>>2]=b;c[e+4>>2]=d;b=0;do{h[e+8+(b<<3)>>3]=f*+h[a+8+(b<<3)>>3];h[e+40+(b<<3)>>3]=g*+h[a+40+(b<<3)>>3];h[e+72+(b<<3)>>3]=+h[a+72+(b<<3)>>3];b=b+1|0}while((b|0)!=4);b=c[a+176>>2]|0;switch(b|0){case 4:{h[e+104>>3]=+h[a+104>>3];h[e+112>>3]=+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3];h[e+136>>3]=f*+h[a+136>>3];h[e+144>>3]=g*+h[a+144>>3];h[e+152>>3]=f*+h[a+152>>3];h[e+160>>3]=g*+h[a+160>>3];h[e+168>>3]=+h[a+168>>3];i=8;break}case 3:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3];h[e+136>>3]=+h[a+136>>3]/(f*g);h[e+144>>3]=+h[a+144>>3]/(g*(f*f*g));i=8;break}case 2:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3]/(f*g);h[e+136>>3]=+h[a+136>>3]/(g*(f*f*g));i=8;break}case 1:{h[e+104>>3]=f*+h[a+104>>3];h[e+112>>3]=g*+h[a+112>>3];h[e+120>>3]=+h[a+120>>3];h[e+128>>3]=+h[a+128>>3]/(f*g);i=8;break}default:b=-1}if((i|0)==8){c[e+176>>2]=b;b=0}return b|0}function cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0.0;f=i;i=i+96|0;e=f;if(!(+h[a+88>>3]>=0.0)){d=0;do{h[e+(d<<5)>>3]=-+h[a+(d<<5)>>3];h[e+(d<<5)+8>>3]=-+h[a+(d<<5)+8>>3];h[e+(d<<5)+16>>3]=-+h[a+(d<<5)+16>>3];h[e+(d<<5)+24>>3]=-+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3)}else{d=0;do{h[e+(d<<5)>>3]=+h[a+(d<<5)>>3];h[e+(d<<5)+8>>3]=+h[a+(d<<5)+8>>3];h[e+(d<<5)+16>>3]=+h[a+(d<<5)+16>>3];h[e+(d<<5)+24>>3]=+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3)}h[b>>3]=0.0;h[b+8>>3]=0.0;h[b+16>>3]=0.0;h[b+24>>3]=0.0;h[b+32>>3]=0.0;h[b+40>>3]=0.0;h[b+48>>3]=0.0;h[b+56>>3]=0.0;h[b+64>>3]=0.0;h[b+72>>3]=0.0;h[b+80>>3]=0.0;h[b+88>>3]=0.0;g=+h[e+64>>3];o=+h[e+72>>3];p=+h[e+80>>3];x=+P(+(g*g+o*o+p*p));a=b+80|0;h[a>>3]=x;x=g/x;v=c+64|0;h[v>>3]=x;o=o/+h[a>>3];t=c+72|0;h[t>>3]=o;p=p/+h[a>>3];q=c+80|0;h[q>>3]=p;n=c+88|0;h[n>>3]=+h[e+88>>3]/+h[a>>3];g=+h[e+32>>3];k=+h[e+40>>3];s=+h[e+48>>3];p=x*g+o*k+p*s;m=b+48|0;h[m>>3]=p;g=g-p*+h[v>>3];k=k-p*+h[t>>3];p=s-p*+h[q>>3];s=+P(+(g*g+k*k+p*p));l=b+40|0;h[l>>3]=s;w=c+32|0;h[w>>3]=g/s;u=c+40|0;h[u>>3]=k/+h[l>>3];r=c+48|0;h[r>>3]=p/+h[l>>3];p=+h[e>>3];k=+h[e+8>>3];s=+h[e+16>>3];g=+h[v>>3]*p+ +h[t>>3]*k+ +h[q>>3]*s;d=b+16|0;h[d>>3]=g;o=+h[w>>3]*p+ +h[u>>3]*k+ +h[r>>3]*s;j=b+8|0;h[j>>3]=o;p=p-o*+h[w>>3]-g*+h[v>>3];k=k-o*+h[u>>3]-g*+h[t>>3];g=s-o*+h[r>>3]-g*+h[q>>3];o=+P(+(p*p+k*k+g*g));h[b>>3]=o;h[c>>3]=p/o;h[c+8>>3]=k/+h[b>>3];h[c+16>>3]=g/+h[b>>3];g=+h[n>>3];k=(+h[e+56>>3]-+h[m>>3]*g)/+h[l>>3];h[c+56>>3]=k;h[c+24>>3]=(+h[e+24>>3]-k*+h[j>>3]-+h[d>>3]*g)/+h[b>>3];d=0;do{w=b+(d<<5)|0;h[w>>3]=+h[w>>3]/+h[a>>3];w=b+(d<<5)+8|0;h[w>>3]=+h[w>>3]/+h[a>>3];w=b+(d<<5)+16|0;h[w>>3]=+h[w>>3]/+h[a>>3];d=d+1|0}while((d|0)!=3);i=f;return 0}function dg(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;switch(f|0){case 4:{q=+h[a>>3];r=+h[a+8>>3];s=+h[a+16>>3];t=+h[a+24>>3];y=+h[a+32>>3];v=+h[a+40>>3];w=+h[a+48>>3];x=+h[a+56>>3];u=+h[a+64>>3];p=(b-w)/y;j=(c-x)/v;c=p*p;i=j*j;k=s*2.0;l=t*6.0;m=t*2.0;n=s*6.0;a:do if(i!=0.0|c!=0.0){f=1;g=p;b=j;while(1){C=i+c;B=q*C+1.0+C*(r*C);z=c*3.0;A=i*z;g=g-(t*(C+c*2.0)+(b*(k*g)+g*B)-p)/(l*g+(k*b+(q*(i+z)+1.0+r*(i*i+(c*(c*5.0)+A)))));z=m*g;b=b-(s*(i*2.0+C)+b*B+b*z-j)/(n*b+(q*(c+i*3.0)+1.0+r*(i*(i*5.0)+(c*c+A)))+z);if((f|0)==4)break a;c=g*g;i=b*b;if(!(i!=0.0|c!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);h[d>>3]=w+y*g/u;h[e>>3]=x+v*b/u;f=0;break}case 3:{p=+h[a>>3];g=(b-p)/+h[a+24>>3];o=a+8|0;b=c-+h[o>>3];j=+h[a+32>>3]/1.0e8;k=+h[a+40>>3]/1.0e8/1.0e5;c=g*g+b*b;l=+P(+c);m=j*3.0;n=k*5.0;b:do if(l!=0.0){f=1;i=l;while(1){C=i-(i*(1.0-j*c-c*(k*c))-l)/(1.0-m*c-c*(n*c));g=g*C/i;b=b*C/i;if((f|0)==3)break b;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+p;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}case 2:{p=+h[a>>3];g=b-p;o=a+8|0;b=c-+h[o>>3];j=+h[a+24>>3]/1.0e8;k=+h[a+32>>3]/1.0e8/1.0e5;c=g*g+b*b;l=+P(+c);m=j*3.0;n=k*5.0;c:do if(l!=0.0){f=1;i=l;while(1){C=i-(i*(1.0-j*c-c*(k*c))-l)/(1.0-m*c-c*(n*c));g=g*C/i;b=b*C/i;if((f|0)==3)break c;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+p;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}case 1:{m=+h[a>>3];g=b-m;o=a+8|0;b=c-+h[o>>3];j=+h[a+24>>3]/1.0e8;c=g*g+b*b;k=+P(+c);l=j*3.0;d:do if(k!=0.0){f=1;i=k;while(1){C=i-(i*(1.0-j*c)-k)/(1.0-l*c);g=g*C/i;b=b*C/i;if((f|0)==3)break d;c=g*g+b*b;i=+P(+c);if(!(i!=0.0)){g=0.0;b=0.0;break}else f=f+1|0}}else{g=0.0;b=0.0}while(0);f=a+16|0;h[d>>3]=g/+h[f>>3]+m;h[e>>3]=b/+h[f>>3]+ +h[o>>3];f=0;break}default:f=-1}return f|0}function eg(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;switch(f|0){case 4:{j=+h[a+16>>3];k=+h[a+24>>3];n=+h[a+32>>3];l=+h[a+40>>3];o=+h[a+48>>3];m=+h[a+56>>3];i=+h[a+64>>3];b=(b-o)*i/n;i=(c-m)*i/l;g=b*b+i*i;c=+h[a>>3]*g+1.0+g*(+h[a+8>>3]*g);h[d>>3]=o+n*(k*(b*(b*2.0)+g)+(j*2.0*b*i+b*c));h[e>>3]=m+l*(k*2.0*b*i+(j*(g+i*(i*2.0))+i*c));f=0;break}case 3:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=g*g+b*b;o=1.0-o*(+h[a+32>>3]/1.0e8)-o*(o*(+h[a+40>>3]/1.0e8/1.0e5));h[d>>3]=i+ +h[a+24>>3]*(g*o);b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}case 2:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=g*g+b*b;o=1.0-o*(+h[a+24>>3]/1.0e8)-o*(o*(+h[a+32>>3]/1.0e8/1.0e5));h[d>>3]=i+g*o;b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}case 1:{i=+h[a>>3];o=+h[a+16>>3];g=(b-i)*o;f=a+8|0;b=o*(c-+h[f>>3]);if(g==0.0&b==0.0){h[d>>3]=i;b=+h[f>>3]}else{o=1.0-(g*g+b*b)*(+h[a+24>>3]/1.0e8);h[d>>3]=i+g*o;b=+h[f>>3]+b*o}h[e>>3]=b;f=0;break}default:f=-1}return f|0}function fg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+256|0;n=s+232|0;m=s+224|0;l=s+216|0;k=s+208|0;j=s+200|0;g=s+192|0;f=s+184|0;p=s+240|0;q=s;do if((a|0)!=0&(b|0)>0&(d|0)!=0){r=Qv(a,20972)|0;if(!r){r=Pu()|0;c[f>>2]=c[r>>2];c[f+4>>2]=a;Kf(3,19042,f);a=Qu(c[r>>2]|0)|0;c[g>>2]=54856;c[g+4>>2]=a;Kf(3,20546,g);a=-1;break}Xv(r,0,2)|0;a:do if(!(Nv(r)|0)){g=_v(r)|0;cw(r);a=0;do{if((a|0)>=4){o=9;break}f=c[4356+(a<<3)+4>>2]|0;a=a+1|0}while(((g|0)%(f|0)|0|0)!=0);do if((o|0)==9)if((a|0)==4){Kf(3,19156,l);a=-1;break a}else{f=c[4356+(0<<3)+4>>2]|0;a=0;break}while(0);if((Uv(q,f,1,r)|0)!=1){a=Pu()|0;c[m>>2]=c[a>>2];Kf(3,19236,m);a=Qu(c[a>>2]|0)|0;c[n>>2]=54856;c[n+4>>2]=a;Kf(3,20546,n);a=-1;break}l=q+176|0;c[l>>2]=a;gg(q);m=(a|0)==1;n=q+120|0;if(m){t=+h[n>>3];k=q+128|0;h[n>>3]=+h[k>>3];h[k>>3]=t}else k=q+128|0;gH(d|0,q|0,184)|0;c[p>>2]=e;f=d+176|0;if((b|0)>1){j=1;while(1){e=(c[p>>2]|0)+(4-1)&~(4-1);g=c[e>>2]|0;c[p>>2]=e+4;c[g+176>>2]=c[f>>2];if((Uv(q,c[4356+((c[f>>2]|0)+-1<<3)+4>>2]|0,1,r)|0)!=1){a=-1;break a}c[l>>2]=a;gg(q);if(m){t=+h[n>>3];h[n>>3]=+h[k>>3];h[k>>3]=t}gH(g|0,q|0,184)|0;j=j+1|0;if((j|0)>=(b|0)){a=0;break}}}else a=0}else{a=Pu()|0;c[j>>2]=c[a>>2];Kf(3,19111,j);a=Qu(c[a>>2]|0)|0;c[k>>2]=54856;c[k+4>>2]=a;Kf(3,20546,k);a=-1}while(0);Mv(r)|0}else a=-1;while(0);i=s;return a|0}function gg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+192|0;f=g;ig(a,f);ig(a+4|0,f+4|0);b=0;do{hg(a+8+(b<<5)|0,f+8+(b<<5)|0);hg(a+8+(b<<5)+8|0,f+8+(b<<5)+8|0);hg(a+8+(b<<5)+16|0,f+8+(b<<5)+16|0);hg(a+8+(b<<5)+24|0,f+8+(b<<5)+24|0);b=b+1|0}while((b|0)!=3);d=a+176|0;e=0;do{hg(a+104+(e<<3)|0,f+104+(e<<3)|0);e=e+1|0;b=c[d>>2]|0}while((e|0)<(c[4356+(b+-1<<3)>>2]|0));c[f+176>>2]=b;gH(a|0,f|0,184)|0;i=g;return}function hg(b,c){b=b|0;c=c|0;a[c>>0]=a[b+7>>0]|0;a[c+1>>0]=a[b+6>>0]|0;a[c+2>>0]=a[b+5>>0]|0;a[c+3>>0]=a[b+4>>0]|0;a[c+4>>0]=a[b+3>>0]|0;a[c+5>>0]=a[b+2>>0]|0;a[c+6>>0]=a[b+1>>0]|0;a[c+7>>0]=a[b>>0]|0;return}function ig(b,c){b=b|0;c=c|0;a[c>>0]=a[b+3>>0]|0;a[c+1>>0]=a[b+2>>0]|0;a[c+2>>0]=a[b+1>>0]|0;a[c+3>>0]=a[b>>0]|0;return}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=i;i=i+64|0;t=x+24|0;u=x+16|0;v=x+8|0;w=x;q=cx(208)|0;if(!q){Kf(3,21359,x+32|0);zb(1)}gH(q|0,a|0,184)|0;s=b<<1;r=(c[a>>2]|0)+s|0;c[q+192>>2]=r;s=(c[a+4>>2]|0)+s|0;c[q+196>>2]=s;c[q+200>>2]=b;c[q+204>>2]=b;d=$(r<<3,s)|0;e=cx(d)|0;c[q+184>>2]=e;if(!e){Kf(3,21359,x+40|0);zb(1)}d=cx(d)|0;c[q+188>>2]=d;if(!d){Kf(3,21359,x+48|0);zb(1)}p=a+104|0;m=c[a+176>>2]|0;n=(r|0)>0?r<<1:0;if((s|0)>0){o=(r|0)>0;l=0;while(1){f=+(l-b|0);if(o){a=0;j=e;k=d;while(1){y=+(a-b|0);eg(p,y,f,v,w,m)|0;g[j>>2]=+h[v>>3];g[j+4>>2]=+h[w>>3];dg(p,y,f,t,u,m)|0;g[k>>2]=+h[t>>3];g[k+4>>2]=+h[u>>3];a=a+1|0;if((a|0)>=(r|0))break;else{j=j+8|0;k=k+8|0}}}d=d+(n<<2)|0;l=l+1|0;if((l|0)>=(s|0))break;else e=e+(n<<2)|0}}i=x;return q|0}function kg(a){a=a|0;var b=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){dx(c[b+184>>2]|0);dx(c[(c[a>>2]|0)+188>>2]|0);dx(c[a>>2]|0);c[a>>2]=0;b=0}else b=-1;return b|0}function lg(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){a=c[a>>2]|0;g=($(i,g)|0)+h<<1;c[e>>2]=c[a+(g<<2)>>2];c[f>>2]=c[a+((g|1)<<2)>>2];g=0}else g=-1;return g|0}function mg(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){a=c[a+4>>2]|0;g=($(i,g)|0)+h<<1;c[e>>2]=c[a+(g<<2)>>2];c[f>>2]=c[a+((g|1)<<2)>>2];g=0}else g=-1;return g|0}function ng(a){a=a|0;var b=0,d=0;b=cx(8)|0;do if(b){d=cx(a<<3)|0;c[b>>2]=d;if(!d){dx(b);b=0;break}else{c[b+4>>2]=a;break}}else b=0;while(0);return b|0}function og(a){a=a|0;dx(c[a>>2]|0);dx(a);return 0}function pg(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0;b=+P(+(+qg(a,a)));if(b!=0.0){f=c[a>>2]|0;e=+h[f>>3];b=e<0.0?-b:b;e=e+b;h[f>>3]=e;e=1.0/+P(+(e*b));a=c[a+4>>2]|0;if((a|0)>0){d=0;do{g=f+(d<<3)|0;h[g>>3]=e*+h[g>>3];d=d+1|0}while((d|0)<(a|0))}}return +-b}function qg(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;f=c[a+4>>2]|0;if((f|0)!=(c[b+4>>2]|0))zb(0);if((f|0)>0){e=c[a>>2]|0;a=c[b>>2]|0;b=0;d=0.0;do{d=d+ +h[e+(b<<3)>>3]*+h[a+(b<<3)>>3];b=b+1|0}while((b|0)<(f|0))}else d=0.0;return +d}function rg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E+8|0;D=E;w=c[a+8>>2]|0;if(((w|0)==(c[a+4>>2]|0)?(w|0)==(c[b+4>>2]|0):0)?(w|0)==((c[d+4>>2]|0)+1|0):0){z=w+-2|0;A=C+4|0;B=D+4|0;if((w|0)>2){s=w+-1|0;t=0;do{o=$(t,w)|0;p=c[a>>2]|0;h[(c[b>>2]|0)+(t<<3)>>3]=+h[p+(o+t<<3)>>3];k=w-t+-1|0;c[A>>2]=k;u=t;t=t+1|0;l=p+(o+t<<3)|0;c[C>>2]=l;r=+pg(C);h[(c[d>>2]|0)+(u<<3)>>3]=r;if(!(r==0.0)){if((t|0)<(w|0)){m=c[b>>2]|0;n=t;do{if((t|0)<(n|0)){e=c[a>>2]|0;f=t;j=0.0;do{r=+h[e+(($(f,w)|0)+n<<3)>>3];j=j+r*+h[p+(f+o<<3)>>3];f=f+1|0}while((f|0)<(n|0))}else j=0.0;e=$(n,w)|0;if((n|0)<(w|0)){f=c[a>>2]|0;g=n;do{j=j+ +h[f+(g+e<<3)>>3]*+h[p+(g+o<<3)>>3];g=g+1|0}while((g|0)<(w|0))}h[m+(n<<3)>>3]=j;n=n+1|0}while((n|0)<(w|0))}c[B>>2]=k;c[A>>2]=k;c[C>>2]=l;c[D>>2]=(c[b>>2]|0)+(t<<3);j=+qg(C,D)*.5;if((s|0)>(u|0)){e=c[b>>2]|0;k=s;do{q=+h[p+(k+o<<3)>>3];f=e+(k<<3)|0;r=+h[f>>3]-j*q;h[f>>3]=r;f=$(k,w)|0;if((k|0)<(w|0)){g=c[a>>2]|0;l=k;do{n=g+(l+f<<3)|0;h[n>>3]=+h[n>>3]-(q*+h[e+(l<<3)>>3]+r*+h[p+(l+o<<3)>>3]);l=l+1|0}while((l|0)<(w|0))}k=k+-1|0}while((k|0)>(u|0))}}}while((t|0)<(z|0))}if((w|0)<=1){if((w|0)>0){f=0;g=c[a>>2]|0;e=c[b>>2]|0;v=27}}else{v=$(z,w)|0;g=c[a>>2]|0;e=c[b>>2]|0;h[e+(z<<3)>>3]=+h[g+(v+z<<3)>>3];f=w+-1|0;h[(c[d>>2]|0)+(z<<3)>>3]=+h[g+(f+v<<3)>>3];v=27}if((v|0)==27)h[e+(f<<3)>>3]=+h[g+(($(f,w)|0)+f<<3)>>3];if((w|0)>0){m=(w|0)>0;p=w;do{d=p;p=p+-1|0;n=$(p,w)|0;o=c[a>>2]|0;if((d|0)<=(z|0)?(x=w-p+-1|0,y=o+(n+d<<3)|0,(d|0)<(w|0)):0){e=(d|0)<(w|0);k=d;do{c[B>>2]=x;c[A>>2]=x;c[C>>2]=y;f=$(k,w)|0;c[D>>2]=(c[a>>2]|0)+(f+d<<3);j=+qg(C,D);if(e){g=c[a>>2]|0;l=d;do{v=g+(l+f<<3)|0;h[v>>3]=+h[v>>3]-j*+h[o+(l+n<<3)>>3];l=l+1|0}while((l|0)<(w|0))}k=k+1|0}while((k|0)<(w|0))}if(m){e=0;do{h[o+(e+n<<3)>>3]=0.0;e=e+1|0}while((e|0)<(w|0))}h[o+(n+p<<3)>>3]=1.0}while((d|0)>1);e=0}else e=0}else e=-1;i=E;return e|0}function sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;f=+h[c>>3];g=+h[c+8>>3];e=+h[c+16>>3];d=+h[b+88>>3]+(f*+h[b+64>>3]+g*+h[b+72>>3]+e*+h[b+80>>3]);if(d==0.0)c=-1;else{i=+h[b+56>>3]+(f*+h[b+32>>3]+g*+h[b+40>>3]+e*+h[b+48>>3]);h[a>>3]=(+h[b+24>>3]+(f*+h[b>>3]+g*+h[b+8>>3]+e*+h[b+16>>3]))/d;h[a+8>>3]=i/d;c=0}return c|0}function tg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;B=i;i=i+1072|0;y=B+1056|0;x=B+768|0;w=B+192|0;A=B+48|0;z=B;K=+h[d>>3];F=+h[e>>3];s=K*F;J=+h[d+8>>3];t=e+8|0;E=+h[t>>3];v=J*E;j=+h[d+16>>3];G=+h[e+16>>3];l=j*G;m=+h[d+24>>3];I=+h[d+32>>3];H=+h[d+40>>3];n=E*H;k=+h[d+48>>3];o=G*k;p=+h[d+56>>3];D=+h[d+64>>3];C=+h[d+72>>3];q=E*C;f=+h[d+80>>3];r=G*f;g=+h[d+88>>3];h[x>>3]=s;h[x+8>>3]=K*E;h[x+16>>3]=K*G;h[x+24>>3]=F*J;h[x+32>>3]=v;h[x+40>>3]=G*J;h[x+48>>3]=F*j;h[x+56>>3]=E*j;h[x+64>>3]=l;h[x+72>>3]=K;h[x+80>>3]=J;h[x+88>>3]=j;j=F*I;h[x+96>>3]=j;h[x+104>>3]=E*I;h[x+112>>3]=G*I;h[x+120>>3]=F*H;h[x+128>>3]=n;h[x+136>>3]=G*H;h[x+144>>3]=F*k;h[x+152>>3]=E*k;h[x+160>>3]=o;h[x+168>>3]=I;h[x+176>>3]=H;h[x+184>>3]=k;k=D*F;h[x+192>>3]=k;h[x+200>>3]=E*D;h[x+208>>3]=G*D;h[x+216>>3]=F*C;E=+h[t>>3];h[x+224>>3]=C*E;h[x+232>>3]=G*C;h[x+240>>3]=F*f;h[x+248>>3]=E*f;h[x+256>>3]=r;h[x+264>>3]=D;h[x+272>>3]=C;h[x+280>>3]=f;e=w+64|0;d=w;t=d+64|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+72|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;h[w+104>>3]=1.0;e=w+160|0;d=w+112|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+240|0;d=w+168|0;t=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+296|0;d=w+248|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=-1.0;e=w+304|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;h[w+336>>3]=1.0;e=w+456|0;d=w+344|0;t=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+512|0;d=w+464|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;e=w+568|0;d=w+520|0;t=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(t|0));h[e>>3]=1.0;u=0;do{t=0;do{d=A+(u*48|0)+(t<<3)|0;h[d>>3]=0.0;f=0.0;e=0;do{f=f+ +h[x+(u*96|0)+(e<<3)>>3]*+h[w+(e*48|0)+(t<<3)>>3];e=e+1|0}while((e|0)!=12);h[d>>3]=f;t=t+1|0}while((t|0)!=6);u=u+1|0}while((u|0)!=3);J=m+(s+v+l);K=p+(j+n+o);f=g+(k+q+r);g=+h[b>>3];j=+h[b+8>>3];k=+h[b+16>>3];l=+h[b+24>>3]+(J*g+K*j+f*k);m=+h[b+32>>3];n=+h[b+40>>3];o=+h[b+48>>3];p=+h[b+56>>3]+(J*m+K*n+f*o);q=+h[b+64>>3];r=+h[b+72>>3];s=+h[b+80>>3];f=+h[b+88>>3]+(J*q+K*r+f*s);if(f==0.0){Kf(3,19274,y);e=-1}else{K=f*f;h[z>>3]=(g*f-l*q)/K;h[z+8>>3]=(f*j-l*r)/K;h[z+16>>3]=(f*k-l*s)/K;h[z+24>>3]=(f*m-p*q)/K;h[z+32>>3]=(f*n-p*r)/K;h[z+40>>3]=(f*o-p*s)/K;d=0;do{f=+h[z+(d*24|0)>>3];g=+h[z+(d*24|0)+8>>3];j=+h[z+(d*24|0)+16>>3];e=0;do{y=a+(d*48|0)+(e<<3)|0;h[y>>3]=0.0;K=f*+h[A+(e<<3)>>3]+0.0;h[y>>3]=K;K=K+g*+h[A+48+(e<<3)>>3];h[y>>3]=K;h[y>>3]=K+j*+h[A+96+(e<<3)>>3];e=e+1|0}while((e|0)!=6);d=d+1|0}while((d|0)!=2);e=0}i=B;return e|0}function ug(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+48|0;h=j+24|0;g=j+12|0;f=j;c[h+4>>2]=6;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=6;c[f>>2]=d;b=Vf(f)|0;do if(b){a=Uf(b,f)|0;if(!a){Xf(b)|0;d=-1;break}d=Uf(b,g)|0;if(!d){Xf(b)|0;Xf(a)|0;d=-1;break}if(($f(a)|0)<0){Xf(b)|0;Xf(a)|0;Xf(d)|0;d=-1;break}else{Yf(h,a,d)|0;Xf(b)|0;Xf(a)|0;Xf(d)|0;d=0;break}}else d=-1;while(0);i=j;return d|0}function vg(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,g=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;n=i;i=i+192|0;l=n+96|0;m=n;g=+h[b>>3];k=+h[b+8>>3];d=+h[b+16>>3];c=g*g+k*k+d*d;if(c==0.0){j=0.0;e=0.0;d=1.0;c=0.0}else{c=+P(+c);j=c;e=d/c;d=g/c;c=k/c}u=+h[b+24>>3];r=+h[b+32>>3];k=+h[b+40>>3];o=+R(+j);g=1.0-o;j=+S(+j);h[l>>3]=o+d*d*g;t=c*d*g;s=e*j;h[l+8>>3]=t-s;q=d*e*g;p=c*j;h[l+16>>3]=q+p;h[l+24>>3]=u;h[l+32>>3]=t+s;h[l+40>>3]=o+c*c*g;c=c*e*g;j=d*j;h[l+48>>3]=c-j;h[l+56>>3]=r;h[l+64>>3]=q-p;h[l+72>>3]=c+j;h[l+80>>3]=o+e*e*g;h[l+88>>3]=k;f=0;do{c=+h[a+(f<<5)>>3];d=+h[a+(f<<5)+8>>3];e=+h[a+(f<<5)+16>>3];b=0;do{h[m+(f<<5)+(b<<3)>>3]=c*+h[l+(b<<3)>>3]+d*+h[l+32+(b<<3)>>3]+e*+h[l+64+(b<<3)>>3];b=b+1|0}while((b|0)!=4);b=m+(f<<5)+24|0;h[b>>3]=+h[a+(f<<5)+24>>3]+ +h[b>>3];f=f+1|0}while((f|0)!=3);b=0;do{h[a+(b<<5)>>3]=+h[m+(b<<5)>>3];h[a+(b<<5)+8>>3]=+h[m+(b<<5)+8>>3];h[a+(b<<5)+16>>3]=+h[m+(b<<5)+16>>3];h[a+(b<<5)+24>>3]=+h[m+(b<<5)+24>>3];b=b+1|0}while((b|0)!=3);i=n;return 0}function wg(a){a=a|0;var b=0,d=0;b=cx(136)|0;if(!b)b=0;else{d=0;do{h[b+(d<<5)>>3]=+h[a+(d<<5)>>3];h[b+(d<<5)+8>>3]=+h[a+(d<<5)+8>>3];h[b+(d<<5)+16>>3]=+h[a+(d<<5)+16>>3];h[b+(d<<5)+24>>3]=+h[a+(d<<5)+24>>3];d=d+1|0}while((d|0)!=3);c[b+96>>2]=10;h[b+104>>3]=.10000000149011612;h[b+112>>3]=.9900000095367432;h[b+120>>3]=4.0;h[b+128>>3]=.5}return b|0}function xg(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)b=-1;else{dx(b);c[a>>2]=0;b=0}return b|0}function yg(a,b){a=a|0;b=+b;if(!a)a=-1;else{h[a+128>>3]=b;a=0}return a|0}function zg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;y=i;i=i+176|0;l=y+168|0;k=y+160|0;u=y+48|0;w=y+64|0;v=y;s=b+8|0;g=c[s>>2]|0;do if((g|0)>=3){x=cx(g*96|0)|0;if(!x){Kf(3,19294,k);g=-1;break}t=cx(g<<4)|0;if(!t){Kf(3,19294,l);dx(x);g=-1;break}else g=0;do{h[e+(g<<5)>>3]=+h[d+(g<<5)>>3];h[e+(g<<5)+8>>3]=+h[d+(g<<5)+8>>3];h[e+(g<<5)+16>>3]=+h[d+(g<<5)+16>>3];h[e+(g<<5)+24>>3]=+h[d+(g<<5)+24>>3];g=g+1|0}while((g|0)!=3);q=b+4|0;l=u+8|0;d=a+104|0;n=a+120|0;o=a+112|0;p=a+96|0;m=0.0;r=0;a:while(1){Lf(a,e,w)|0;g=c[s>>2]|0;if((g|0)>0){j=0.0;k=0;do{if((sg(u,w,(c[q>>2]|0)+(k*24|0)|0)|0)<0){k=10;break a}g=c[b>>2]|0;A=+h[g+(k<<4)>>3]-+h[u>>3];z=+h[g+(k<<4)+8>>3]-+h[l>>3];j=j+(A*A+z*z);g=k<<1;h[t+(g<<3)>>3]=A;h[t+((g|1)<<3)>>3]=z;k=k+1|0;g=c[s>>2]|0}while((k|0)<(g|0))}else j=0.0;j=j/+(g|0);if(j<+h[d>>3]){k=24;break}if(((r|0)>0?j<+h[n>>3]:0)?j/m>+h[o>>3]:0){k=24;break}if((r|0)==(c[p>>2]|0)){k=24;break}if((g|0)>0){k=0;do{if((tg(x+(k*12<<3)|0,a,e,(c[q>>2]|0)+(k*24|0)|0)|0)<0){k=20;break a}k=k+1|0;g=c[s>>2]|0}while((k|0)<(g|0))}if((ug(v,t,x,g<<1)|0)<0){k=22;break}vg(e,v)|0;m=j;r=r+1|0}if((k|0)==10){Ag(x,t);g=-1;break}else if((k|0)==20){Ag(x,t);g=-1;break}else if((k|0)==22){Ag(x,t);g=-1;break}else if((k|0)==24){h[f>>3]=j;dx(x);dx(t);g=0;break}}else g=-1;while(0);i=y;return g|0}function Ag(a,b){a=a|0;b=b|0;dx(a);dx(b);return}function Bg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+192|0;n=G+184|0;m=G+176|0;l=G+168|0;g=G+160|0;B=G+48|0;D=G+64|0;C=G;A=b+8|0;k=c[A>>2]|0;do if((k|0)>=4){o=~~(+(k|0)*+h[a+128>>3])+-1|0;o=(o|0)<3?3:o;F=cx(k*96|0)|0;if(!F){Kf(3,19294,g);g=-1;break}E=cx(k<<4)|0;if(!E){Kf(3,19294,l);dx(F);g=-1;break}g=k<<3;z=cx(g)|0;if(!z){Kf(3,19294,m);dx(F);dx(E);g=-1;break}y=cx(g)|0;if(!y){Kf(3,19294,n);dx(F);dx(E);dx(z);g=-1;break}else g=0;do{h[e+(g<<5)>>3]=+h[d+(g<<5)>>3];h[e+(g<<5)+8>>3]=+h[d+(g<<5)+8>>3];h[e+(g<<5)+16>>3]=+h[d+(g<<5)+16>>3];h[e+(g<<5)+24>>3]=+h[d+(g<<5)+24>>3];g=g+1|0}while((g|0)!=3);w=b+4|0;x=B+8|0;n=y+(o<<3)|0;d=a+104|0;o=a+120|0;t=a+112|0;u=a+96|0;r=0.0;v=0;a:while(1){Lf(a,e,D)|0;g=c[A>>2]|0;if((g|0)>0){k=0;do{if((sg(B,D,(c[w>>2]|0)+(k*24|0)|0)|0)<0){k=14;break a}g=c[b>>2]|0;q=+h[g+(k<<4)>>3]-+h[B>>3];s=+h[g+(k<<4)+8>>3]-+h[x>>3];g=k<<1;h[E+(g<<3)>>3]=q;h[E+((g|1)<<3)>>3]=s;s=q*q+s*s;h[y+(k<<3)>>3]=s;h[z+(k<<3)>>3]=s;k=k+1|0;g=c[A>>2]|0}while((k|0)<(g|0))}qw(y,g,8,18);s=+h[n>>3]*4.0;s=s<16.0?16.0:s;k=c[A>>2]|0;q=s/6.0;if((k|0)>0){j=0.0;g=0;do{p=+h[y+(g<<3)>>3];if(p>s)p=q;else{p=1.0-p/s;p=q*(1.0-p*(p*p))}j=j+p;g=g+1|0}while((g|0)<(k|0))}else j=0.0;j=j/+(k|0);if(j<+h[d>>3]){k=36;break}if(((v|0)>0?j<+h[o>>3]:0)?j/r>+h[t>>3]:0){k=36;break}if((v|0)==(c[u>>2]|0)){k=36;break}if((k|0)>0){m=0;g=0;do{p=+h[z+(m<<3)>>3];if(p<=s){k=g*6|0;l=F+(k<<3)|0;if((tg(l,a,e,(c[w>>2]|0)+(m*24|0)|0)|0)<0){k=28;break a}r=1.0-p/s;r=r*r;h[l>>3]=+h[l>>3]*r;l=F+((k|1)<<3)|0;h[l>>3]=+h[l>>3]*r;l=F+(k+2<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+3<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+4<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+5<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+6<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+7<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+8<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+9<<3)|0;h[l>>3]=r*+h[l>>3];l=F+(k+10<<3)|0;h[l>>3]=r*+h[l>>3];k=F+(k+11<<3)|0;h[k>>3]=r*+h[k>>3];k=m<<1;h[E+(g<<3)>>3]=r*+h[E+(k<<3)>>3];h[E+(g+1<<3)>>3]=r*+h[E+((k|1)<<3)>>3];k=c[A>>2]|0;g=g+2|0}m=m+1|0}while((m|0)<(k|0))}else g=0;if((g|0)<6){k=32;break}if((ug(C,E,F,g)|0)<0){k=34;break}vg(e,C)|0;r=j;v=v+1|0}if((k|0)==14){Cg(F,E,z,y);g=-1;break}else if((k|0)==28){Cg(F,E,z,y);g=-1;break}else if((k|0)==32){Cg(F,E,z,y);g=-1;break}else if((k|0)==34){Cg(F,E,z,y);g=-1;break}else if((k|0)==36){h[f>>3]=j;dx(F);dx(E);dx(z);dx(y);g=0;break}}else g=-1;while(0);i=G;return g|0}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;dx(a);dx(b);dx(c);dx(d);return}function Dg(a,b){a=a|0;b=b|0;var c=0.0;c=+h[a>>3]-+h[b>>3];return (c<0.0?-1:c>0.0&1)|0}function Eg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0;U=i;i=i+64|0;D=U+48|0;z=U+40|0;y=U+32|0;x=U+24|0;u=U+16|0;o=U+8|0;l=U;a:do if((e|0)>=4){g=0;while(1){if((g|0)>=(e|0))break;if(+h[d+(g*24|0)+16>>3]!=0.0){g=-1;break a}else g=g+1|0}if((((((((!(+h[a>>3]==0.0)?!(+h[a+32>>3]!=0.0):0)?(B=a+40|0,!(+h[B>>3]==0.0)):0)?!(+h[a+64>>3]!=0.0):0)?!(+h[a+72>>3]!=0.0):0)?!(+h[a+80>>3]!=1.0):0)?!(+h[a+24>>3]!=0.0):0)?!(+h[a+56>>3]!=0.0):0)?!(+h[a+88>>3]!=0.0):0){g=e<<1;C=Sf(g,8)|0;if(!C){Kf(3,19309,l);g=-1;break}w=Sf(g,1)|0;if(!w){Xf(C)|0;Kf(3,19335,o);g=-1;break}if(e){g=c[C>>2]|0;l=c[w>>2]|0;o=0;do{Z=d+(o*24|0)|0;V=o<<4;h[g+(V<<3)>>3]=+h[Z>>3];Y=d+(o*24|0)+8|0;h[g+((V|1)<<3)>>3]=+h[Y>>3];h[g+((V|2)<<3)>>3]=1.0;h[g+((V|3)<<3)>>3]=0.0;h[g+((V|4)<<3)>>3]=0.0;h[g+((V|5)<<3)>>3]=0.0;X=b+(o<<4)|0;h[g+((V|6)<<3)>>3]=-(+h[Z>>3]*+h[X>>3]);h[g+((V|7)<<3)>>3]=-(+h[Y>>3]*+h[X>>3]);h[g+((V|8)<<3)>>3]=0.0;h[g+((V|9)<<3)>>3]=0.0;h[g+((V|10)<<3)>>3]=0.0;h[g+((V|11)<<3)>>3]=+h[Z>>3];h[g+((V|12)<<3)>>3]=+h[Y>>3];h[g+((V|13)<<3)>>3]=1.0;W=b+(o<<4)+8|0;h[g+((V|14)<<3)>>3]=-(+h[Z>>3]*+h[W>>3]);h[g+((V|15)<<3)>>3]=-(+h[Y>>3]*+h[W>>3]);V=o<<1;h[l+(V<<3)>>3]=+h[X>>3];h[l+((V|1)<<3)>>3]=+h[W>>3];o=o+1|0}while((o|0)!=(e|0))}e=Vf(C)|0;if(!e){Xf(C)|0;Xf(w)|0;Kf(3,19361,u);g=-1;break}o=Uf(e,C)|0;if(!o){Xf(C)|0;Xf(w)|0;Xf(e)|0;Kf(3,19387,x);g=-1;break}l=Uf(e,w)|0;if(!l){Xf(C)|0;Xf(w)|0;Xf(e)|0;Xf(o)|0;Kf(3,19413,y);g=-1;break}if(($f(o)|0)<0){Xf(C)|0;Xf(w)|0;Xf(e)|0;Xf(o)|0;Xf(l)|0;Kf(3,19439,z);g=-1;break}g=Uf(o,l)|0;if(!g){Xf(C)|0;Xf(w)|0;Xf(e)|0;Xf(o)|0;Xf(l)|0;Kf(3,19465,D);g=-1;break}Z=c[g>>2]|0;p=+h[Z+48>>3];S=+h[a+48>>3];t=+h[B>>3];j=(+h[Z+24>>3]-p*S)/t;s=+h[a+16>>3];T=+h[a+8>>3];r=+h[a>>3];q=(+h[Z>>3]-p*s-j*T)/r;k=+h[Z+56>>3];m=(+h[Z+32>>3]-S*k)/t;n=(+h[Z+8>>3]-s*k-T*m)/r;t=(+h[Z+40>>3]-S)/t;r=(+h[Z+16>>3]-s-T*t)/r;Xf(C)|0;Xf(w)|0;Xf(e)|0;Xf(o)|0;Xf(l)|0;Xf(g)|0;T=+P(+(p*p+(j*j+q*q)));s=+P(+(k*k+(m*m+n*n)));q=q/T;j=j/T;p=p/T;n=n/s;m=m/s;k=k/s;s=(T+s)*.5;r=r/s;T=1.0/s;if(T<0.0){O=-j;k=-k;m=-m;p=-p;n=-n;Q=-q;S=-r;R=-T}else{O=j;Q=q;S=r;R=t/s}j=k*O-m*p;q=n*p-k*Q;r=m*Q-n*O;s=+P(+(r*r+(j*j+q*q)));do if(!(s==0.0)){t=j/s;q=q/s;j=r/s;N=k*p+(m*O+n*Q);N=N<0.0?-N:N;N=(+P(+(N+1.0))+ +P(+(1.0-N)))*.5;if(Q*q-O*t!=0.0){g=0;E=Q;v=O;F=p;I=t;H=q}else{Z=Q*j-p*t!=0.0;g=Z?1:2;E=Z?Q:p;v=Z?p:O;F=Z?O:Q;I=Z?t:j;H=Z?j:q;j=Z?q:t}r=E*H;s=v*I;q=r-s;if(q==0.0){q=O;j=Q;break}G=(v*j-F*H)/q;A=N*H/q;r=s-r;q=(E*j-F*I)/r;r=N*I/r;s=G*G+q*q+1.0;t=G*A+q*r;v=t*t-s*(A*A+r*r+-1.0);if(v<0.0){q=O;j=Q;break}M=+P(+v);L=(M-t)/s;F=A+G*L;K=r+q*L;M=(-t-M)/s;G=A+G*M;r=r+q*M;Z=(g|0)==1;q=Z?H:j;s=Z?j:H;J=Z?L:K;L=Z?K:L;K=Z?M:r;H=Z?r:M;Z=(g|0)==2&(Z^1);r=Z?I:q;q=Z?q:I;M=Z?L:F;L=Z?F:L;j=Z?H:G;I=Z?G:H;if(n*s-m*q!=0.0){g=0;E=n;v=m;F=k;H=q;A=s}else{Z=n*r-k*q!=0.0;g=Z?1:2;E=Z?n:k;v=Z?k:m;F=Z?m:n;H=Z?q:r;A=Z?r:s;r=Z?s:q}s=E*A;t=v*H;q=s-t;if(q==0.0){q=O;j=Q;break}G=(v*r-F*A)/q;A=N*A/q;q=t-s;v=(E*r-F*H)/q;q=N*H/q;r=G*G+v*v+1.0;s=G*A+v*q;t=s*s-r*(A*A+q*q+-1.0);if(t<0.0){q=O;j=Q;break}t=+P(+t);k=(t-s)/r;Q=A+G*k;O=q+v*k;t=(-s-t)/r;p=A+G*t;n=q+v*t;Z=(g|0)==1;m=Z?k:O;k=Z?O:k;v=Z?t:n;t=Z?n:t;Z=(g|0)==2&(Z^1);n=Z?k:Q;k=Z?Q:k;A=Z?t:p;t=Z?p:t;p=L*k+(J*m+M*n);p=p<0.0?-p:p;q=L*t+(J*v+M*A);q=q<0.0?-q:q;r=I*k+(K*m+j*n);r=r<0.0?-r:r;s=I*t+(K*v+j*A);s=s<0.0?-s:s;if(p>3]=j;h[f+32>>3]=q;h[f+64>>3]=p;h[f+8>>3]=n;h[f+40>>3]=m;h[f+72>>3]=k;h[f+16>>3]=M/Q;h[f+48>>3]=N/Q;h[f+80>>3]=O/Q;h[f+24>>3]=S;h[f+56>>3]=R;h[f+88>>3]=T;g=0}else g=-1}else g=-1;while(0);i=U;return g|0}function Fg(a){a=a|0;dx(c[a>>2]|0);dx(a);return 0}function Gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Ig(a,b,c,d,0))}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Ig(a,b,c,d,1))}function Ig(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+208|0;z=F+200|0;y=F+192|0;A=F+96|0;B=F;C=e+4|0;p=c[C>>2]|0;q=e+112|0;r=e+120|0;if((p|0)>0){u=c[e>>2]|0;v=(d|0)>0;w=(d|0)>0;x=0;do{if(!(c[u+(x*320|0)+4>>2]|0)){if(v){k=c[u+(x*320|0)>>2]|0;l=0;j=-1;do{if((c[b+(l<<8)+8>>2]|0)==(k|0)?(n=+h[b+(l<<8)+40>>3],!(n<+h[q>>3])):0)if(!((j|0)!=-1?!(+h[b+(j<<8)+40>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+20>>2]}else{l=u+(x*320|0)+312|0;m=u+(x*320|0)|0;if(w){o=0;j=-1;do{k=c[b+(o<<8)+12>>2]|0;if((k|0)==0?(t=b+(o<<8)+248|0,s=c[t>>2]|0,t=c[t+4>>2]|0,!((s|0)==0&(t|0)==0)):0){k=l;if((s|0)==(c[k>>2]|0)?(t|0)==(c[k+4>>2]|0):0)E=20}else if((k|0)==(c[m>>2]|0))E=20;if((E|0)==20){E=0;g=+h[b+(o<<8)+48>>3];if(!(g<+h[r>>3]))if(!((j|0)!=-1?!(+h[b+(j<<8)+48>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+24>>2]}x=x+1|0}while((x|0)<(p|0))}if((p|0)>0){q=0;j=0;p=0;k=0;while(1){l=c[e>>2]|0;m=c[l+(q*320|0)+304>>2]|0;do if((m|0)<0)l=p;else{o=b+(m<<8)|0;if(+hf(a,o,+h[l+(q*320|0)+8>>3],B)>4.0){c[(c[e>>2]|0)+(q*320|0)+304>>2]=-1;l=b+(m<<8)+236|0;if(c[l>>2]|0){l=p;break}c[l>>2]=7;l=p;break}l=c[o>>2]|0;if((k|0)==0|(p|0)<(l|0)){j=0;do{h[A+(j<<5)>>3]=+h[B+(j<<5)>>3];h[A+(j<<5)+8>>3]=+h[B+(j<<5)+8>>3];h[A+(j<<5)+16>>3]=+h[B+(j<<5)+16>>3];h[A+(j<<5)+24>>3]=+h[B+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3);j=q}else l=p;k=k+1|0}while(0);q=q+1|0;if((q|0)>=(c[C>>2]|0))break;else p=l}}else{j=0;k=0}do if((k|0)!=0?(k|0)>=(c[e+128>>2]|0):0){Lf(A,(c[e>>2]|0)+(j*320|0)+112|0,B)|0;p=k<<2;r=cx(k<<6)|0;if(!r){Kf(3,21359,y);zb(1)}q=cx(k*96|0)|0;if(!q){Kf(3,21359,z);zb(1)}l=c[C>>2]|0;if((l|0)>0){m=c[e>>2]|0;o=0;j=0;do{k=c[m+(o*320|0)+304>>2]|0;if((k|0)>=0){y=c[b+(k<<8)+16>>2]|0;d=(4-y|0)%4|0;z=j<<3;h[r+(z<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|1)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];d=(5-y|0)%4|0;h[r+((z|2)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|3)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];d=(6-y|0)%4|0;h[r+((z|4)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)>>3];h[r+((z|5)<<3)>>3]=+h[b+(k<<8)+168+(d<<4)+8>>3];y=(7-y|0)%4|0;h[r+((z|6)<<3)>>3]=+h[b+(k<<8)+168+(y<<4)>>3];h[r+((z|7)<<3)>>3]=+h[b+(k<<8)+168+(y<<4)+8>>3];z=j*12|0;h[q+(z<<3)>>3]=+h[m+(o*320|0)+208>>3];h[q+((z|1)<<3)>>3]=+h[m+(o*320|0)+216>>3];h[q+((z|2)<<3)>>3]=+h[m+(o*320|0)+224>>3];h[q+((z|3)<<3)>>3]=+h[m+(o*320|0)+232>>3];h[q+(z+4<<3)>>3]=+h[m+(o*320|0)+240>>3];h[q+(z+5<<3)>>3]=+h[m+(o*320|0)+248>>3];h[q+(z+6<<3)>>3]=+h[m+(o*320|0)+256>>3];h[q+(z+7<<3)>>3]=+h[m+(o*320|0)+264>>3];h[q+(z+8<<3)>>3]=+h[m+(o*320|0)+272>>3];h[q+(z+9<<3)>>3]=+h[m+(o*320|0)+280>>3];y=c[e>>2]|0;h[q+(z+10<<3)>>3]=+h[y+(o*320|0)+288>>3];h[q+(z+11<<3)>>3]=+h[y+(o*320|0)+296>>3];j=j+1|0}o=o+1|0}while((o|0)<(l|0))}m=e+104|0;k=(f|0)!=0;if(!(c[m>>2]|0)){j=e+8|0;g=+kf(a,B,r,q,p,j);if(k&g>=20.0){yg(c[a>>2]|0,.8)|0;g=+lf(a,B,r,q,p,j);if(g>=20.0){yg(c[a>>2]|0,.6)|0;g=+lf(a,B,r,q,p,j);if(g>=20.0){yg(c[a>>2]|0,.4)|0;g=+lf(a,B,r,q,p,j);if(g>=20.0){yg(c[a>>2]|0,0.0)|0;g=+lf(a,B,r,q,p,j)}}}}dx(q);dx(r)}else{g=+kf(a,B,r,q,p,A);l=e+8|0;n=+kf(a,l,r,q,p,l);j=g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yg(c[a>>2]|0,.8)|0;g=+lf(a,B,r,q,p,A);n=+lf(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yg(c[a>>2]|0,.6)|0;g=+lf(a,B,r,q,p,A);n=+lf(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yg(c[a>>2]|0,.4)|0;g=+lf(a,B,r,q,p,A);n=+lf(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;if(g>=20.0){yg(c[a>>2]|0,0.0)|0;g=+lf(a,B,r,q,p,A);n=+lf(a,l,r,q,p,l);if(g>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}}}}}else if(j){j=0;do{h[e+8+(j<<5)>>3]=+h[A+(j<<5)>>3];h[e+8+(j<<5)+8>>3]=+h[A+(j<<5)+8>>3];h[e+8+(j<<5)+16>>3]=+h[A+(j<<5)+16>>3];h[e+8+(j<<5)+24>>3]=+h[A+(j<<5)+24>>3];j=j+1|0}while((j|0)!=3)}else g=n;while(0);dx(q);dx(r)}if(g<20.0){c[m>>2]=1;break}c[m>>2]=0;m=c[C>>2]|0;if((m|0)>0){j=c[e>>2]|0;l=0;do{k=c[j+(l*320|0)+304>>2]|0;if((k|0)>=0?(D=b+(k<<8)+236|0,(c[D>>2]|0)==0):0)c[D>>2]=8;l=l+1|0}while((l|0)<(m|0))}}else E=38;while(0);if((E|0)==38){c[e+104>>2]=0;g=-1.0}i=F;return +g}function Jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0.0;U=i;i=i+2544|0;S=U+208|0;R=U+200|0;G=U+184|0;Q=U+176|0;F=U+168|0;E=U+152|0;P=U+144|0;D=U+136|0;M=U+128|0;L=U+120|0;K=U+112|0;C=U+104|0;j=U+96|0;g=U+88|0;f=U+80|0;e=U+72|0;d=U+64|0;H=U;I=U+2280|0;J=U+232|0;z=U+224|0;O=U+220|0;A=U+216|0;B=U+212|0;T=Qv(a,20518)|0;a:do if(!T){c[d>>2]=a;Kf(3,19491,d);d=Qu(c[(Pu()|0)>>2]|0)|0;c[e>>2]=54856;c[e+4>>2]=d;Kf(3,20546,e);d=0}else{Kg(I,T);c[f>>2]=O;if((fw(I,20552,f)|0)!=1){c[g>>2]=a;Kf(3,19544,g);Mv(T)|0;d=0;break}d=c[O>>2]|0;N=cx(d*320|0)|0;if(!N){Kf(3,21359,j);zb(1)}r=H+8|0;s=H+16|0;t=H+24|0;u=H+32|0;v=H+40|0;w=H+48|0;x=H+56|0;y=(b|0)==0;b:do if((d|0)>0){d=0;f=0;c:while(1){Kg(I,T);e=N+(d*320|0)|0;g=N+(d*320|0)+312|0;c[C>>2]=g;c[C+4>>2]=z;if((fw(I,19645,C)|0)==1){q=c[g>>2]|0;c[e>>2]=(q&-32768|0)==0&0==0?q&32767:0;c[N+(d*320|0)+4>>2]=1;f=f|2}else{if(y){e=10;break}if(!(Pf(J,a,2048,1)|0)){e=12;break}Gw(J,I,2047-(Fw(J)|0)|0)|0;q=If(b,J)|0;c[e>>2]=q;if((q|0)<0){e=14;break}c[N+(d*320|0)+4>>2]=0;f=f|1}Kg(I,T);e=N+(d*320|0)+8|0;c[D>>2]=e;if((fw(I,19941,D)|0)!=1){e=18;break}Kg(I,T);o=N+(d*320|0)+16|0;p=N+(d*320|0)+24|0;q=N+(d*320|0)+40|0;c[E>>2]=o;c[E+4>>2]=p;c[E+8>>2]=N+(d*320|0)+32;c[E+12>>2]=q;if((fw(I,20050,E)|0)!=4){c[F>>2]=A;c[F+4>>2]=B;if((fw(I,20066,F)|0)==2)g=0;else{e=21;break}}else g=1;do{Kg(I,T);c[G>>2]=N+(d*320|0)+16+(g<<5);c[G+4>>2]=N+(d*320|0)+16+(g<<5)+8;c[G+8>>2]=N+(d*320|0)+16+(g<<5)+16;c[G+12>>2]=N+(d*320|0)+16+(g<<5)+24;if((fw(I,20050,G)|0)!=4){e=23;break c}g=g+1|0}while((g|0)<3);Mf(o,N+(d*320|0)+112|0)|0;W=+h[e>>3];V=W*-.5;h[H>>3]=V;W=W*.5;h[r>>3]=W;h[s>>3]=W;h[t>>3]=W;h[u>>3]=W;h[v>>3]=V;h[w>>3]=V;h[x>>3]=V;e=N+(d*320|0)+48|0;g=N+(d*320|0)+56|0;j=N+(d*320|0)+72|0;k=N+(d*320|0)+80|0;l=N+(d*320|0)+88|0;m=N+(d*320|0)+104|0;n=0;do{V=+h[H+(n<<4)>>3];W=+h[H+(n<<4)+8>>3];h[N+(d*320|0)+208+(n*24|0)>>3]=+h[q>>3]+(+h[o>>3]*V+ +h[p>>3]*W);h[N+(d*320|0)+208+(n*24|0)+8>>3]=+h[j>>3]+(+h[e>>3]*V+ +h[g>>3]*W);h[N+(d*320|0)+208+(n*24|0)+16>>3]=+h[m>>3]+(+h[k>>3]*V+ +h[l>>3]*W);n=n+1|0}while((n|0)!=4);d=d+1|0;if((d|0)>=(c[O>>2]|0))break b}if((e|0)==10){c[K>>2]=a;c[K+4>>2]=I;Kf(3,19652,K)}else if((e|0)==12){c[L>>2]=a;Kf(3,19780,L)}else if((e|0)==14){c[M>>2]=a;c[M+4>>2]=J;Kf(3,19864,M)}else if((e|0)==18){c[P>>2]=a;c[P+4>>2]=d+1;Kf(3,19945,P)}else if((e|0)==21){c[Q>>2]=a;c[Q+4>>2]=d+1;Kf(3,20072,Q)}else if((e|0)==23){c[R>>2]=a;c[R+4>>2]=d+1;Kf(3,20072,R)}Mv(T)|0;dx(N);d=0;break a}else f=0;while(0);Mv(T)|0;d=cx(136)|0;if(!d){Kf(3,21359,S);zb(1)}c[d>>2]=N;c[d+4>>2]=c[O>>2];c[d+104>>2]=0;do if((f&3|0)!=3){e=d+108|0;if(!(f&1)){c[e>>2]=1;break}else{c[e>>2]=0;break}}else c[d+108>>2]=2;while(0);h[d+112>>3]=.5;h[d+120>>3]=.5}while(0);i=U;return d|0}function Kg(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if(Pv(b,256,c)|0)while(1){d=Fw(b)|0;b:do if(d)while(1){d=d+-1|0;e=b+d|0;switch(a[e>>0]|0){case 13:case 10:break;default:break b}a[e>>0]=0;if(!d)break b}while(0);switch(a[b>>0]|0){case 0:case 35:break;default:break a}if(!(Pv(b,256,c)|0))break a}while(0);return}function Lg(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,g=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+400|0;n=r+296|0;q=r+200|0;o=r+128|0;p=r;k=c[a>>2]|0;f=c[a+4>>2]|0;if((cg(a+8|0,n,q)|0)<0)Kf(3,20181,r+392|0);else{j=+(f+-1|0);f=n+32|0;h[f>>3]=j*+h[n+64>>3]-+h[f>>3];f=n+40|0;h[f>>3]=j*+h[n+72>>3]-+h[f>>3];f=n+48|0;h[f>>3]=j*+h[n+80>>3]-+h[f>>3];f=n+56|0;h[f>>3]=j*+h[n+88>>3]-+h[f>>3];g=+h[n+80>>3];f=0;do{h[o+(f*24|0)>>3]=+h[n+(f<<5)>>3]/g;h[o+(f*24|0)+8>>3]=+h[n+(f<<5)+8>>3]/g;h[o+(f*24|0)+16>>3]=+h[n+(f<<5)+16>>3]/g;f=f+1|0}while((f|0)!=3);g=+(k+-1|0);h[p>>3]=+h[o>>3]*2.0/g;h[p+8>>3]=+h[o+8>>3]*2.0/g;h[p+16>>3]=+h[o+16>>3]*2.0/g+-1.0;k=p+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;h[p+40>>3]=+h[o+32>>3]*2.0/j;h[p+48>>3]=+h[o+40>>3]*2.0/j+-1.0;k=p+56|0;g=d-b;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;h[p+80>>3]=(b+d)/g;h[p+88>>3]=d*-2.0*b/g;k=p+96|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;h[p+112>>3]=1.0;h[p+120>>3]=0.0;g=+h[q+24>>3];j=+h[q+56>>3];d=+h[q+88>>3];k=0;do{b=+h[p+(k<<5)>>3];f=p+(k<<5)+8|0;a=p+(k<<5)+16|0;l=+h[f>>3];m=+h[a>>3];n=0;do{h[e+((n<<2)+k<<3)>>3]=b*+h[q+(n<<3)>>3]+l*+h[q+32+(n<<3)>>3]+m*+h[q+64+(n<<3)>>3];n=n+1|0}while((n|0)!=3);h[e+(k+12<<3)>>3]=+h[p+(k<<5)+24>>3]+(b*g+ +h[f>>3]*j+ +h[a>>3]*d);k=k+1|0}while((k|0)!=4)}i=r;return}function Mg(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+128|0;n=z+112|0;v=z+104|0;u=z+96|0;t=z+88|0;r=z+80|0;o=z+72|0;m=z+64|0;l=z+56|0;k=z+48|0;j=z+40|0;h=z+32|0;f=z+24|0;e=z+16|0;b=z+8|0;q=z+120|0;d=cx((Fw(a)|0)+6|0)|0;if(!d){Kf(3,21359,z);zb(1)}c[b>>2]=a;c[b+4>>2]=20254;ew(d,20249,b)|0;y=Qv(d,20972)|0;dx(d);a:do if(!y){c[e>>2]=a;c[e+4>>2]=20254;Kf(3,20260,e);b=0}else{b=cx(8)|0;if(!b){Kf(3,21359,f);zb(1)}d=b+4|0;b:do if((Uv(d,4,1,y)|0)==1?(p=c[d>>2]|0,(p|0)>=1):0){c[j>>2]=p;Kf(1,20333,j);d=cx(p<<2)|0;c[b>>2]=d;if(!d){Kf(3,21359,k);zb(1)}k=cx(16)|0;c[d>>2]=k;if(!k){Kf(3,21359,l);zb(1)}d=Pg(y)|0;if(d){if((c[d+4>>2]|0)!=1){c[n>>2]=a;c[n+4>>2]=20254;Kf(2,20363,n);x=c[b>>2]|0;dx(c[x>>2]|0);dx(x);dx(b);dx(d);Mv(y)|0;b=0;break a}f=c[b>>2]|0;x=c[f>>2]|0;c[x+4>>2]=c[d+8>>2];c[x+8>>2]=c[d+12>>2];c[x+12>>2]=c[d+16>>2];c[x>>2]=c[d>>2];dx(d);Xv(y,1-p<<2,2)|0;c:do if((p|0)>1){d=1;while(1){if((Uv(q,4,1,y)|0)!=1){x=56;break}x=Og(c[f>>2]|0,+g[q>>2])|0;c[f+(d<<2)>>2]=x;if(!x){x=59;break}d=d+1|0;if((d|0)>=(p|0))break c}if((x|0)==56){if((d|0)>0){e=0;do{w=f+(e<<2)|0;dx(c[c[w>>2]>>2]|0);dx(c[w>>2]|0);e=e+1|0}while((e|0)<(d|0))}}else if((x|0)==59?(d|0)>0:0){e=0;do{w=f+(e<<2)|0;dx(c[c[w>>2]>>2]|0);dx(c[w>>2]|0);e=e+1|0}while((e|0)<(d|0))}dx(f);break b}while(0);Mv(y)|0;break a}c[m>>2]=a;c[m+4>>2]=20254;Kf(2,20363,m);q=c[b>>2]|0;dx(c[q>>2]|0);dx(q);dx(b);cw(y);b=cx(8)|0;if(!b){Kf(3,21359,o);zb(1)}d=b+4|0;d:do if((Uv(d,4,1,y)|0)==1?(w=c[d>>2]|0,(w|0)>=1):0){f=cx(w<<2)|0;c[b>>2]=f;if(!f){Kf(3,21359,t);zb(1)}else s=0;while(1){if((s|0)>=(w|0))break;t=cx(16)|0;c[f+(s<<2)>>2]=t;if(!t){x=26;break}else s=s+1|0}if((x|0)==26){Kf(3,21359,u);zb(1)}e:do if((w|0)>0){e=0;while(1){d=f+(e<<2)|0;if((Uv((c[d>>2]|0)+4|0,4,1,y)|0)!=1){x=28;break}if((Uv((c[d>>2]|0)+8|0,4,1,y)|0)!=1){x=33;break}if((Uv((c[d>>2]|0)+12|0,4,1,y)|0)!=1){x=38;break}u=c[d>>2]|0;x=cx($(c[u+8>>2]|0,c[u+4>>2]|0)|0)|0;c[u>>2]=x;if(!x){x=43;break}u=c[d>>2]|0;u=Uv(c[u>>2]|0,1,$(c[u+8>>2]|0,c[u+4>>2]|0)|0,y)|0;x=c[d>>2]|0;if((u|0)!=($(c[x+8>>2]|0,c[x+4>>2]|0)|0)){x=45;break}e=e+1|0;if((e|0)>=(w|0))break e}if((x|0)==28){if((e|0)>0){d=0;do{dx(c[c[f+(d<<2)>>2]>>2]|0);d=d+1|0}while((d|0)<(e|0))}if(w){d=0;do{dx(c[f+(d<<2)>>2]|0);d=d+1|0}while((d|0)!=(w|0))}}else if((x|0)==33){if((e|0)>0){d=0;do{dx(c[c[f+(d<<2)>>2]>>2]|0);d=d+1|0}while((d|0)<(e|0))}if(w){d=0;do{dx(c[f+(d<<2)>>2]|0);d=d+1|0}while((d|0)!=(w|0))}}else if((x|0)==38){if((e|0)>0){d=0;do{dx(c[c[f+(d<<2)>>2]>>2]|0);d=d+1|0}while((d|0)<(e|0))}if(w){d=0;do{dx(c[f+(d<<2)>>2]|0);d=d+1|0}while((d|0)!=(w|0))}}else if((x|0)==43){Kf(3,21359,v);zb(1)}else if((x|0)==45){if((e|0)>=0){d=0;while(1){dx(c[c[f+(d<<2)>>2]>>2]|0);if((d|0)<(e|0))d=d+1|0;else break}}if(w){d=0;do{dx(c[f+(d<<2)>>2]|0);d=d+1|0}while((d|0)!=(w|0))}}dx(f);break d}while(0);Mv(y)|0;break a}else x=20;while(0);if((x|0)==20)Kf(3,20308,r);dx(b);Mv(y)|0;b=0;break a}else x=9;while(0);if((x|0)==9)Kf(3,20308,h);dx(b);Mv(y)|0;b=0}while(0);i=z;return b|0}function Ng(a){a=a|0;var b=0,d=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){if((c[b+4>>2]|0)>0){d=0;do{dx(c[c[(c[b>>2]|0)+(d<<2)>>2]>>2]|0);dx(c[(c[c[a>>2]>>2]|0)+(d<<2)>>2]|0);d=d+1|0;b=c[a>>2]|0}while((d|0)<(c[b+4>>2]|0))}dx(c[b>>2]|0);dx(c[a>>2]|0);c[a>>2]=0;b=0}else b=-1;return b|0}function Og(b,e){b=b|0;e=+e;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;F=i;i=i+16|0;w=b+4|0;A=b+12|0;G=+g[A>>2];B=kv(+(c[w>>2]|0)*e/G)|0;C=b+8|0;x=kv(+(c[C>>2]|0)*e/G)|0;y=cx(16)|0;if(!y){Kf(3,21359,F);zb(1)}c[y+4>>2]=B;c[y+8>>2]=x;g[y+12>>2]=e;f=cx($(x,B)|0)|0;c[y>>2]=f;if(!f){Kf(3,21359,F+8|0);zb(1)}E=(B|0)>0?B:0;if((x|0)>0){z=(B|0)>0;D=0;while(1){G=+g[A>>2];r=kv(+(D|0)*G/e)|0;D=D+1|0;t=kv(+(D|0)*G/e)|0;v=c[C>>2]|0;t=((t|0)>(v|0)?v:t)+-1|0;if(z){s=(r|0)>(t|0);u=0;v=f;while(1){G=+g[A>>2];m=kv(+(u|0)*G/e)|0;u=u+1|0;p=kv(+(u|0)*G/e)|0;n=c[w>>2]|0;p=((p|0)>(n|0)?n:p)+-1|0;if(s){j=0;h=0}else{o=(m|0)>(p|0);j=0;q=r;h=0;while(1){if(!o){k=m;l=(c[b>>2]|0)+(($(n,q)|0)+m)|0;while(1){h=(d[l>>0]|0)+h|0;j=j+1|0;if((k|0)<(p|0)){k=k+1|0;l=l+1|0}else break}}if((q|0)<(t|0))q=q+1|0;else break}}a[v>>0]=(h|0)/(j|0)|0;if((u|0)>=(B|0))break;else v=v+1|0}}if((D|0)>=(x|0))break;else f=f+E|0}}i=F;return y|0}function Pg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=cx(20)|0;if(!b){Kf(3,21359,d);zb(1)}a=Qg(a,b+8|0,b+12|0,b+4|0,b+16|0)|0;c[b>>2]=a;if(!a){dx(b);b=0}i=d;return b|0}function Qg(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+800|0;E=I+480|0;C=I+472|0;B=I+464|0;F=4;H=cx(40)|0;c[H>>2]=0;G=I;m=I+504|0;A=I+484|0;iH(G|0,0,464)|0;o=0;j=la(62,m|0)|0;k=o;o=0;if((k|0)!=0&(p|0)!=0){l=fH(c[k>>2]|0,H|0,F|0)|0;if(!l)La(k|0,p|0);D=p}else l=-1;if((l|0)!=1){c[G>>2]=j;c[m>>2]=111;H=dH(m+132|0,1,H|0,F|0)|0;F=D;o=0;j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)!=1)j=0;else j=D}else j=D;a:while(1){if(j){o=0;ia(112,G|0);k=o;o=0;if((k|0)!=0&(p|0)!=0){j=fH(c[k>>2]|0,H|0,F|0)|0;if(!j)La(k|0,p|0);D=p}else j=-1;if((j|0)==1){j=D;continue}o=0;wa(1,3,20421,B|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}else{k=7;break}}o=0;wa(2,G|0,62,464);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}o=0;ja(39,G|0,b|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}o=0;j=sa(19,G|0,1)|0;k=o;o=0;if((k|0)!=0&(p|0)!=0){l=fH(c[k>>2]|0,H|0,F|0)|0;if(!l)La(k|0,p|0);D=p}else l=-1;if((l|0)==1){j=D;continue}if((j|0)!=1){o=0;wa(1,3,20447,C|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}o=0;ia(112,G|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}else{k=14;break}}o=0;la(63,G|0)|0;j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}x=G+36|0;y=G+28|0;w=$(c[y>>2]|0,c[x>>2]|0)|0;z=G+32|0;j=$(w,c[z>>2]|0)|0;o=0;j=la(64,j|0)|0;k=o;o=0;if((k|0)!=0&(p|0)!=0){l=fH(c[k>>2]|0,H|0,F|0)|0;if(!l)La(k|0,p|0);D=p}else l=-1;if((l|0)==1){j=D;continue}if(!j){o=0;wa(1,3,21359,E|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}o=0;ia(112,G|0);j=o;o=0;if((j|0)!=0&(p|0)!=0){k=fH(c[j>>2]|0,H|0,F|0)|0;if(!k)La(j|0,p|0);D=p}else k=-1;if((k|0)==1){j=D;continue}else{k=22;break}}k=G+140|0;l=G+116|0;if((c[k>>2]|0)>>>0<(c[l>>2]|0)>>>0){m=A+4|0;n=A+8|0;q=A+12|0;r=A+16|0;v=0;while(1){c[A>>2]=j+($(v,w)|0);c[m>>2]=j+($(1+v|0,w)|0);c[n>>2]=j+($(2+v|0,w)|0);c[q>>2]=j+($(3+v|0,w)|0);c[r>>2]=j+($(4+v|0,w)|0);o=0;s=na(27,G|0,A|0,5)|0;t=o;o=0;if((t|0)!=0&(p|0)!=0){u=fH(c[t>>2]|0,H|0,F|0)|0;if(!u)La(t|0,p|0);D=p}else u=-1;if((u|0)==1){j=D;continue a}if((c[k>>2]|0)>>>0<(c[l>>2]|0)>>>0)v=s+v|0;else break}}o=0;la(65,G|0)|0;k=o;o=0;if((k|0)!=0&(p|0)!=0){l=fH(c[k>>2]|0,H|0,F|0)|0;if(!l)La(k|0,p|0);D=p}else l=-1;if((l|0)==1){j=D;continue}o=0;ia(112,G|0);k=o;o=0;if((k|0)!=0&(p|0)!=0){l=fH(c[k>>2]|0,H|0,F|0)|0;if(!l)La(k|0,p|0);D=p}else l=-1;if((l|0)==1)j=D;else{k=27;break}}b:do if((k|0)==7)j=0;else if((k|0)==14)j=0;else if((k|0)==22)j=0;else if((k|0)==27){if(d)c[d>>2]=c[y>>2];if(e)c[e>>2]=c[z>>2];if(f)c[f>>2]=c[x>>2];if(h){k=a[G+286>>0]|0;switch(k<<24>>24){case 1:{G=c[G+288>>2]|0;k=G&65535;if(k<<16>>16==(G>>>16&65535)<<16>>16){g[h>>2]=+(k&65535);break b}break}case 2:{G=c[G+288>>2]|0;k=G&65535;if(k<<16>>16==(G>>>16&65535)<<16>>16){g[h>>2]=+(k&65535)*2.5399999618530273;break b}break}default:if((k&255)>2?(G=c[G+288>>2]|0,(G&65535)<<16>>16==0&G>>>0<65536):0){g[h>>2]=+(k&255);break b}}g[h>>2]=0.0}}while(0);dx(H|0);i=I;return j|0}function Rg(a){a=a|0;La((c[a>>2]|0)+132|0,1)}function Sg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+1088|0;m=p+48|0;l=p+40|0;n=p+32|0;h=p+24|0;f=p+16|0;e=p+8|0;g=p;j=p+832|0;k=p+576|0;o=p+64|0;c[g>>2]=a;c[g+4>>2]=b;ew(o,21376,g)|0;o=Qv(o,20518)|0;if(!o)b=0;else{b=cx(8)|0;if(!b){Kf(3,21359,e);zb(1)}a:do if(Tg(j,o)|0){g=b+4|0;c[f>>2]=g;if((fw(j,20552,f)|0)!=1){dx(b);b=0;break}a=c[g>>2]|0;if((a|0)<1){dx(b);b=0;break}f=cx(a*56|0)|0;c[b>>2]=f;if(!f){Kf(3,21359,h);zb(1)}if((a|0)>0){e=0;b:while(1){if(!(Tg(j,o)|0)){e=14;break}c[n>>2]=k;if((fw(j,20579,n)|0)!=1){e=16;break}h=If(d,k)|0;a=c[b>>2]|0;c[a+(e*56|0)+4>>2]=h;if((h|0)<0){e=18;break}if(!(Tg(j,o)|0)){e=20;break}c[l>>2]=(c[b>>2]|0)+(e*56|0);if((fw(j,20480,l)|0)==1)a=0;else{e=22;break}while(1){if((a|0)>=3)break;if(!(Tg(j,o)|0)){e=25;break b}h=c[b>>2]|0;c[m>>2]=h+(e*56|0)+8+(a<<4);c[m+4>>2]=h+(e*56|0)+8+(a<<4)+4;c[m+8>>2]=h+(e*56|0)+8+(a<<4)+8;c[m+12>>2]=h+(e*56|0)+8+(a<<4)+12;if((fw(j,20745,m)|0)==4)a=a+1|0;else{e=27;break b}}e=e+1|0;if((e|0)>=(c[g>>2]|0))break a}if((e|0)==14){dx(c[b>>2]|0);dx(b);b=0;break}else if((e|0)==16){dx(c[b>>2]|0);dx(b);b=0;break}else if((e|0)==18){dx(a);dx(b);b=0;break}else if((e|0)==20){dx(c[b>>2]|0);dx(b);b=0;break}else if((e|0)==22){dx(c[b>>2]|0);dx(b);b=0;break}else if((e|0)==25){dx(c[b>>2]|0);dx(b);b=0;break}else if((e|0)==27){dx(c[b>>2]|0);dx(b);b=0;break}}}else{dx(b);b=0}while(0);Mv(o)|0}i=p;return b|0}function Tg(b,c){b=b|0;c=c|0;var d=0;d=Pv(b,256,c)|0;a:do if(!d)d=0;else while(1){switch(a[b>>0]|0){case 35:case 10:break;default:break a}d=Pv(b,256,c)|0;if(!d){d=0;break a}}while(0);return d|0}function Ug(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+640|0;s=w+112|0;r=w+104|0;q=w+96|0;p=w+88|0;o=w+80|0;j=w+72|0;n=w+64|0;m=w+56|0;l=w+48|0;k=w+40|0;g=w+32|0;f=w+24|0;e=w+16|0;d=w+8|0;h=w;v=w+120|0;c[h>>2]=a;c[h+4>>2]=b;ew(v,21376,h)|0;v=Qv(v,20972)|0;if(!v){c[d>>2]=a;Kf(3,20483,d);b=0}else{b=cx(8)|0;if(!b){Kf(3,21359,e);zb(1)}a=b+4|0;a:do if((Uv(a,4,1,v)|0)==1){h=c[a>>2]|0;a=cx(h*20|0)|0;c[b>>2]=a;if(!a){Kf(3,21359,g);zb(1)}if((h|0)>0){d=a;a=0;b:while(1){if((Uv(d+(a*20|0)+8|0,4,1,v)|0)!=1){u=12;break}d=c[b>>2]|0;if((Uv(d+(a*20|0)+12|0,4,1,v)|0)!=1){u=16;break}if((Uv(d+(a*20|0)+16|0,4,1,v)|0)!=1){u=18;break}e=d+(a*20|0)+4|0;if((Uv(e,4,1,v)|0)!=1){u=20;break}g=cx((c[e>>2]|0)*20|0)|0;f=d+(a*20|0)|0;c[f>>2]=g;if(!g){u=22;break}else g=0;while(1){if((g|0)>=(c[e>>2]|0))break;if((Uv((c[f>>2]|0)+(g*20|0)|0,4,1,v)|0)!=1){u=25;break b}if((Uv((c[f>>2]|0)+(g*20|0)+4|0,4,1,v)|0)!=1){u=27;break b}if((Uv((c[f>>2]|0)+(g*20|0)+8|0,4,1,v)|0)!=1){u=29;break b}if((Uv((c[f>>2]|0)+(g*20|0)+12|0,4,1,v)|0)!=1){u=31;break b}if((Uv((c[f>>2]|0)+(g*20|0)+16|0,4,1,v)|0)==1)g=g+1|0;else{u=33;break b}}a=a+1|0;if((a|0)>=(h|0))break a}switch(u|0){case 12:{Kf(3,20504,k);t=a;break}case 16:{Kf(3,20504,l);t=a;break}case 18:{Kf(3,20504,m);t=a;break}case 20:{Kf(3,20504,n);t=a;break}case 22:{Kf(3,21359,j);zb(1);break}case 25:{Kf(3,20504,o);t=a;break}case 27:{Kf(3,20504,p);t=a;break}case 29:{Kf(3,20504,q);t=a;break}case 31:{Kf(3,20504,r);t=a;break}case 33:{Kf(3,20504,s);t=a;break}}if((t|0)>0){a=c[b>>2]|0;d=0;do{dx(c[a+(d*20|0)>>2]|0);d=d+1|0}while((d|0)<(t|0))}dx(c[b>>2]|0);u=37}}else{Kf(3,20504,f);u=37}while(0);if((u|0)==37){dx(b);b=0}Mv(v)|0}i=w;return b|0}function Vg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)b=-1;else{if((c[b+4>>2]|0)>0){d=0;do{dx(c[(c[b>>2]|0)+(d*20|0)>>2]|0);d=d+1|0;b=c[a>>2]|0}while((d|0)<(c[b+4>>2]|0))}dx(c[b>>2]|0);dx(c[a>>2]|0);c[a>>2]=0;b=0}return b|0}function Wg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+1248|0;M=N+208|0;L=N+200|0;K=N+184|0;J=N+176|0;I=N+160|0;H=N+152|0;G=N+136|0;F=N+128|0;E=N+120|0;D=N+112|0;C=N+104|0;B=N+96|0;A=N+88|0;z=N+80|0;y=N+72|0;x=N+64|0;w=N+56|0;v=N+48|0;q=N+40|0;m=N+32|0;l=N+24|0;k=N+16|0;j=N+8|0;h=N;s=N+984|0;u=N+728|0;t=N+212|0;f=N+216|0;do if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(Bw(d,40808)|0)!=0:0){c[h>>2]=b;c[h+4>>2]=d;ew(f,21376,h)|0;d=Qv(f,20518)|0;if(!d){c[j>>2]=b;Kf(3,20520,j);r=Qu(c[(Pu()|0)>>2]|0)|0;c[k>>2]=54856;c[k+4>>2]=r;Kf(3,20546,k);r=0;break}else{p=d;d=1;n=8;break}}else n=4;while(0);if((n|0)==4){Hw(u,b,255)|0;a[u+255>>0]=0;p=0;d=0;n=8}a:do if((n|0)==8){o=cx(1140)|0;if(!o){Kf(3,21359,l);zb(1)}k=(d|0)!=0;do if(k){if(!(Xg(s,p)|0)){Mv(p)|0;dx(o);r=0;break a}c[m>>2]=t;if((fw(s,20552,m)|0)!=1){Mv(p)|0;dx(o);r=0;break a}d=c[t>>2]|0;if((d|0)<1){Mv(p)|0;dx(o);r=0;break a}else{c[o+4>>2]=d;c[o+152>>2]=0;break}}else{c[o+4>>2]=1;c[o+152>>2]=0;d=1}while(0);j=cx(d*112|0)|0;c[o>>2]=j;if(!j){Kf(3,21359,q);zb(1)}b=(e|0)==0;c[t>>2]=0;b:do if((d|0)>0){f=0;while(1){c[v>>2]=f+1;Kf(1,20555,v);if(k){if(!(Xg(s,p)|0))break b;c[w>>2]=u;if((fw(s,20579,w)|0)!=1)break b;Zg(u)|0}Kf(1,20582,x);q=Mg(u)|0;c[j+((c[t>>2]|0)*112|0)>>2]=q;if(!q){n=27;break}Kf(1,20631,z);Kf(1,20641,A);q=Ug(u,40808)|0;c[j+((c[t>>2]|0)*112|0)+4>>2]=q;if(!q){n=30;break}Kf(1,20631,C);if(b)c[j+((c[t>>2]|0)*112|0)+8>>2]=0;else{Kf(1,20692,D);Zg(u)|0;q=Sg(u,20711,e)|0;c[j+((c[t>>2]|0)*112|0)+8>>2]=q;if(!q){n=34;break}Kf(1,20631,F)}if(k){if(!(Xg(s,p)|0))break b;q=c[t>>2]|0;c[G>>2]=j+(q*112|0)+12;c[G+4>>2]=j+(q*112|0)+16;c[G+8>>2]=j+(q*112|0)+20;c[G+12>>2]=j+(q*112|0)+24;if((fw(s,20745,G)|0)!=4){n=42;break}if(!(Xg(s,p)|0))break b;q=c[t>>2]|0;c[I>>2]=j+(q*112|0)+28;c[I+4>>2]=j+(q*112|0)+32;c[I+8>>2]=j+(q*112|0)+36;c[I+12>>2]=j+(q*112|0)+40;if((fw(s,20745,I)|0)!=4){n=45;break}if(!(Xg(s,p)|0))break b;q=c[t>>2]|0;c[K>>2]=j+(q*112|0)+44;c[K+4>>2]=j+(q*112|0)+48;c[K+8>>2]=j+(q*112|0)+52;c[K+12>>2]=j+(q*112|0)+56;if((fw(s,20745,K)|0)!=4){n=49;break}f=c[t>>2]|0}else{f=c[t>>2]|0;h=0;do{g[j+(f*112|0)+12+(h<<4)>>2]=(h|0)==0?1.0:0.0;g[j+(f*112|0)+12+(h<<4)+4>>2]=(h|0)==1?1.0:0.0;g[j+(f*112|0)+12+(h<<4)+8>>2]=(h|0)==2?1.0:0.0;g[j+(f*112|0)+12+(h<<4)+12>>2]=(h|0)==3?1.0:0.0;h=h+1|0}while((h|0)!=3)}Nf(j+(f*112|0)+12|0,j+(f*112|0)+60|0)|0;Yg(u,256,20793)|0;f=cx(256)|0;c[j+((c[t>>2]|0)*112|0)+108>>2]=f;if(!f){n=52;break}Hw(f,u,256)|0;f=(c[t>>2]|0)+1|0;c[t>>2]=f;if((f|0)>=(d|0))break b}if((n|0)==27){c[y>>2]=u;Kf(3,20600,y);dx(j);dx(o);if(!p){r=0;break a}Mv(p)|0;r=0;break a}else if((n|0)==30){c[B>>2]=u;Kf(3,20661,B);Ng(j+((c[t>>2]|0)*112|0)|0)|0;dx(j);dx(o);if(!p){r=0;break a}Mv(p)|0;r=0;break a}else if((n|0)==34){c[E>>2]=u;Kf(3,20715,E);Vg(j+((c[t>>2]|0)*112|0)+4|0)|0;Ng(j+((c[t>>2]|0)*112|0)|0)|0;dx(j);dx(o);if(!p){r=0;break a}Mv(p)|0;r=0;break a}else if((n|0)==42){Kf(3,20757,H);Mv(p)|0;zb(0)}else if((n|0)==45){Kf(3,20757,J);Mv(p)|0;zb(0)}else if((n|0)==49){Kf(3,20757,L);Mv(p)|0;zb(0)}else if((n|0)==52){Kf(3,21359,M);zb(1)}}while(0);if(p)Mv(p)|0;if((c[t>>2]|0)<(d|0))zb(0);else r=o}while(0);i=N;return r|0}function Xg(b,c){b=b|0;c=c|0;var d=0;d=Pv(b,256,c)|0;a:do if(!d)d=0;else while(1){switch(a[b>>0]|0){case 35:case 10:break;default:break a}d=Pv(b,256,c)|0;if(!d){d=0;break a}}while(0);return d|0}function Yg(a,b,c){a=a|0;b=b|0;c=c|0;return Qf(a,b,c)|0}function Zg(a){a=a|0;return Rf(a)|0}function _g(a,b){a=a|0;b=b|0;return $g(a,c[a>>2]|0,c[a+4>>2]|0,1,b)|0}function $g(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;switch(f|0){case 5:case 12:case 13:case 14:break;default:Kf(2,20797,j)}g=ex(1,4160)|0;if(!g){Kf(3,21359,h);zb(1)}else{h=Tt(4)|0;Mj(h);c[g>>2]=h;c[g+4>>2]=a;c[g+8>>2]=e;c[g+12>>2]=b;c[g+16>>2]=d;c[g+20>>2]=f;c[g+24>>2]=1;c[g+28>>2]=-1;d=g+32|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;i=j;return g|0}return 0}function ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;t=u+40|0;s=u+32|0;m=u+24|0;j=u+16|0;e=u+8|0;d=u;if((a|0)!=0&(b|0)!=0){do if(!(c[a>>2]|0)){d=cx(16)|0;c[a>>2]=d;if(!d){Kf(3,21359,e);zb(1)}else{c[d+4>>2]=0;c[d>>2]=0;r=c[a>>2]|0;c[r+12>>2]=0;c[r+8>>2]=0;break}}while(0);f=c[b>>2]|0;if(!f)d=0;else{d=c[a>>2]|0;g=c[d+4>>2]|0;h=c[f+4>>2]|0;k=h+g|0;l=cx(k*132|0)|0;if(!l){Kf(3,21359,j);zb(1)}if((g|0)>0){e=0;do{gH(l+(e*132|0)|0,(c[d>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}while((e|0)<(g|0))}if((h|0)>0){e=0;do{gH(l+((e+g|0)*132|0)|0,(c[f>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}while((e|0)<(h|0))}e=c[d>>2]|0;if(e){dx(e);d=c[a>>2]|0}c[d>>2]=l;g=c[a>>2]|0;c[g+4>>2]=k;o=c[g+12>>2]|0;f=c[b>>2]|0;p=c[f+12>>2]|0;f=f+8|0;g=g+8|0;if((p|0)>0){h=0;d=0;do{e=0;while(1){if((e|0)>=(o|0))break;if((c[(c[f>>2]|0)+(h*12|0)+8>>2]|0)==(c[(c[g>>2]|0)+(e*12|0)+8>>2]|0)){n=20;break}else e=e+1|0}if((n|0)==20){n=0;d=d+1|0}h=h+1|0}while((h|0)<(p|0))}else d=0;q=p+o-d|0;r=cx(q*12|0)|0;if(!r){Kf(3,21359,m);zb(1)}a:do if((o|0)>0){k=(p|0)>0;l=(p|0)>0;m=0;while(1){h=(c[a>>2]|0)+8|0;e=c[h>>2]|0;d=e+(m*12|0)+8|0;c[r+(m*12|0)+8>>2]=c[d>>2];e=c[e+(m*12|0)+4>>2]|0;if(k){g=c[(c[b>>2]|0)+8>>2]|0;f=c[d>>2]|0;d=0;do{if((c[g+(d*12|0)+8>>2]|0)==(f|0))e=(c[g+(d*12|0)+4>>2]|0)+e|0;d=d+1|0}while((d|0)<(p|0))}j=r+(m*12|0)|0;n=cx(e*12|0)|0;c[j>>2]=n;if(!n)break;h=c[(c[h>>2]|0)+(m*12|0)+4>>2]|0;if((h|0)>0){d=0;do{n=(c[j>>2]|0)+(d*12|0)|0;g=(c[(c[(c[a>>2]|0)+8>>2]|0)+(m*12|0)>>2]|0)+(d*12|0)|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];d=d+1|0}while((d|0)<(h|0))}b:do if(l){d=c[(c[b>>2]|0)+8>>2]|0;f=c[(c[(c[a>>2]|0)+8>>2]|0)+(m*12|0)+8>>2]|0;g=0;while(1){if((c[d+(g*12|0)+8>>2]|0)==(f|0))break;g=g+1|0;if((g|0)>=(p|0))break b}if((c[d+(g*12|0)+4>>2]|0)>0){f=0;do{n=(c[j>>2]|0)+((f+h|0)*12|0)|0;v=(c[d+(g*12|0)>>2]|0)+(f*12|0)|0;c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];f=f+1|0;d=c[(c[b>>2]|0)+8>>2]|0}while((f|0)<(c[d+(g*12|0)+4>>2]|0))}}while(0);c[r+(m*12|0)+4>>2]=e;m=m+1|0;if((m|0)>=(o|0))break a}Kf(3,21359,s);zb(1)}while(0);c:do if((p|0)>0){k=0;d=0;while(1){f=c[(c[b>>2]|0)+8>>2]|0;g=c[f+(k*12|0)+8>>2]|0;e=0;while(1){if((e|0)>=(o|0)){n=47;break}if((g|0)==(c[(c[(c[a>>2]|0)+8>>2]|0)+(e*12|0)+8>>2]|0)){n=46;break}else e=e+1|0}if((n|0)==46)d=d+1|0;else if((n|0)==47){h=k+o-d|0;j=r+(h*12|0)|0;c[r+(h*12|0)+8>>2]=g;e=c[f+(k*12|0)+4>>2]|0;v=cx(e*12|0)|0;c[j>>2]=v;if(!v)break;if((e|0)>0){f=0;do{v=(c[j>>2]|0)+(f*12|0)|0;s=(c[(c[(c[b>>2]|0)+8>>2]|0)+(k*12|0)>>2]|0)+(f*12|0)|0;c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];f=f+1|0}while((f|0)<(e|0))}c[r+(h*12|0)+4>>2]=e}k=k+1|0;if((k|0)>=(p|0))break c}Kf(3,21359,t);zb(1)}while(0);e=c[a>>2]|0;if(!(c[e+8>>2]|0))d=e;else{d=e+8|0;if((c[e+12>>2]|0)>0){e=0;do{dx(c[(c[d>>2]|0)+(e*12|0)>>2]|0);e=e+1|0;v=c[a>>2]|0;d=v+8|0}while((e|0)<(c[v+12>>2]|0))}dx(c[d>>2]|0);d=c[a>>2]|0}c[d+8>>2]=r;c[(c[a>>2]|0)+12>>2]=q;bh(b)|0;d=0}}else{Kf(3,20868,d);d=-1}i=u;return d|0}function bh(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;if(a){b=c[a>>2]|0;if(!b)b=0;else{b=c[b>>2]|0;if(b)dx(b);d=c[a>>2]|0;b=d+8|0;if((c[d+12>>2]|0)>0){d=0;do{dx(c[(c[b>>2]|0)+(d*12|0)>>2]|0);d=d+1|0;f=c[a>>2]|0;b=f+8|0}while((d|0)<(c[f+12>>2]|0))}dx(c[b>>2]|0);dx(c[a>>2]|0);c[a>>2]=0;b=0}}else{Kf(3,20928,e);b=-1}i=e;return b|0} +function ch(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+56|0;p=r+48|0;n=r+40|0;l=r+32|0;j=r+24|0;h=r+8|0;g=r;f=r+60|0;a[f>>0]=a[20972]|0;a[f+1>>0]=a[20973]|0;a[f+2>>0]=a[20974]|0;a:do if((b|0)!=0&(e|0)!=0){o=Ch(b,d,f)|0;if(!o){f=(d|0)!=0;c[h>>2]=b;c[h+4>>2]=f?52874:54856;c[h+8>>2]=f?d:54856;Kf(3,21026,h);f=-1;break}m=ex(1,16)|0;if(!m){Kf(3,21359,j);zb(1)}g=m+4|0;b:do if((Uv(g,4,1,o)|0)==1?(k=c[g>>2]|0,(k|0)>=1):0){j=cx(k*132|0)|0;c[m>>2]=j;if(!j){Kf(3,21359,l);zb(1)}if((k|0)>0){f=0;do{if((Uv((c[m>>2]|0)+(f*132|0)|0,8,1,o)|0)!=1)break b;if((Uv((c[m>>2]|0)+(f*132|0)+8|0,8,1,o)|0)!=1)break b;if((Uv((c[m>>2]|0)+(f*132|0)+16|0,108,1,o)|0)!=1)break b;if((Uv((c[m>>2]|0)+(f*132|0)+124|0,4,1,o)|0)!=1)break b;if((Uv((c[m>>2]|0)+(f*132|0)+128|0,4,1,o)|0)!=1)break b;f=f+1|0}while((f|0)<(c[g>>2]|0))}b=m+12|0;if((Uv(b,4,1,o)|0)==1){f=c[b>>2]|0;if((f|0)<1){c[m+8>>2]=0;break}l=cx(f*12|0)|0;h=m+8|0;c[h>>2]=l;if(!l){Kf(3,21359,n);zb(1)}c:do if((f|0)>0){d=0;while(1){if((Uv((c[h>>2]|0)+(d*12|0)+8|0,4,1,o)|0)!=1)break b;if((Uv((c[h>>2]|0)+(d*12|0)+4|0,4,1,o)|0)!=1)break b;n=c[h>>2]|0;f=c[n+(d*12|0)+4>>2]|0;g=cx(f*12|0)|0;c[n+(d*12|0)>>2]=g;if(!g)break;if((Uv(g,12,f,o)|0)!=(f|0))break b;d=d+1|0;if((d|0)>=(c[b>>2]|0))break c}Kf(3,21359,p);zb(1)}while(0);c[e>>2]=m;Mv(o)|0;f=0;break a}}while(0);Kf(3,21093,q);f=c[m+8>>2]|0;if(f)dx(f);f=c[m>>2]|0;if(f)dx(f);dx(m);Mv(o)|0;f=-1}else{Kf(3,20975,g);f=-1}while(0);i=r;return f|0}function dh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;if(a){f=c[a+4>>2]|0;j=(b|0)==-1;if((f|0)>0){g=c[a>>2]|0;h=0;do{e=g+(h*132|0)+124|0;l=c[e>>2]|0;if((l|0)==(b|0)|j&(l|0)>-1)c[e>>2]=d;h=h+1|0}while((h|0)<(f|0))}h=c[a+12>>2]|0;if((h|0)>0){e=c[a+8>>2]|0;g=0;do{f=e+(g*12|0)+8|0;l=c[f>>2]|0;if((l|0)==(b|0)|j&(l|0)>-1)c[f>>2]=d;g=g+1|0}while((g|0)<(h|0));e=0}else e=0}else{Kf(3,21138,k);e=-1}i=k;return e|0}function eh(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-1|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function fh(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-20|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function gh(a){a=a|0;Pa(a|0)|0;au()}function hh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+128|0;N=O+48|0;q=O+40|0;o=O+32|0;m=O+24|0;h=O+16|0;f=O+8|0;e=O;L=O+108|0;M=O+96|0;K=O+84|0;t=O+64|0;u=O+52|0;do if((b|0)!=0&(d|0)!=0){j=d+4|0;e=c[j>>2]|0;if(!e){Kf(3,21235,f);e=-1;break}s=b+32|0;f=c[s>>2]|0;if(f){dx(f);e=c[j>>2]|0;if(!e){c[s>>2]=0;e=0}else k=7}else k=7;if((k|0)==7){r=cx(e*132|0)|0;c[s>>2]=r;if(!r){Kf(3,21359,h);zb(1)}if((e|0)>0){f=0;do{gH((c[s>>2]|0)+(f*132|0)|0,(c[d>>2]|0)+(f*132|0)|0,132)|0;f=f+1|0;e=c[j>>2]|0}while((f|0)<(e|0))}}n=b+36|0;c[n>>2]=e;r=b+40|0;if(c[r>>2]|0){e=b+44|0;if((c[e>>2]|0)>0){h=0;do{f=c[(c[r>>2]|0)+(h*12|0)>>2]|0;if(f)dx(f);h=h+1|0}while((h|0)<(c[e>>2]|0))}dx(c[r>>2]|0)}l=d+12|0;e=c[l>>2]|0;a:do if(e){k=cx(e*12|0)|0;c[r>>2]=k;if(!k){Kf(3,21359,m);zb(1)}d=d+8|0;if((e|0)>0){k=0;while(1){f=c[d>>2]|0;h=c[r>>2]|0;c[h+(k*12|0)+8>>2]=c[f+(k*12|0)+8>>2];j=f+(k*12|0)+4|0;c[h+(k*12|0)+4>>2]=c[j>>2];j=c[j>>2]|0;if(!j)c[f+(k*12|0)>>2]=0;else{m=cx(j*12|0)|0;c[h+(k*12|0)>>2]=m;if(!m)break;if((c[f+(k*12|0)+4>>2]|0)>0){e=f;f=0;do{m=(c[(c[r>>2]|0)+(k*12|0)>>2]|0)+(f*12|0)|0;j=(c[e+(k*12|0)>>2]|0)+(f*12|0)|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];f=f+1|0;e=c[d>>2]|0}while((f|0)<(c[e+(k*12|0)+4>>2]|0))}e=c[l>>2]|0}k=k+1|0;if((k|0)>=(e|0)){p=e;break a}}Kf(3,21359,o);zb(1)}else p=e}else{c[r>>2]=0;p=0}while(0);o=b+44|0;c[o>>2]=p;j=b+56|0;e=c[j>>2]|0;if(e){dx(e);c[j>>2]=0;c[b+60>>2]=0}f=c[l>>2]|0;if((f|0)>0){c[b+60>>2]=f;h=cx(f*68|0)|0;c[j>>2]=h;if(!h){Kf(3,21359,q);zb(1)}if((f|0)>0){e=0;do{c[h+(e*68|0)+64>>2]=0;e=e+1|0}while((e|0)<(f|0))}}m=c[n>>2]|0;if((m|0)!=0?(G=L+4|0,H=L+8|0,I=M+4|0,J=M+8|0,v=K+4|0,w=K+8|0,x=t+4|0,y=t+8|0,z=t+12|0,A=t+16|0,B=L+8|0,C=u+4|0,D=u+8|0,E=M+8|0,F=K+8|0,(c[o>>2]|0)>0):0){l=(m|0)>0;e=0;n=0;do{if((c[(c[r>>2]|0)+(n*12|0)+4>>2]|0)>0){d=0;do{c[L>>2]=0;c[G>>2]=0;c[H>>2]=0;c[M>>2]=0;c[I>>2]=0;c[J>>2]=0;c[K>>2]=0;c[v>>2]=0;c[w>>2]=0;if(l){k=0;do{f=c[s>>2]|0;q=c[r>>2]|0;if((c[f+(k*132|0)+128>>2]|0)==(c[(c[q+(n*12|0)>>2]|0)+(d*12|0)+8>>2]|0)?(c[f+(k*132|0)+124>>2]|0)==(c[q+(n*12|0)+8>>2]|0):0){h=c[f+(k*132|0)+4>>2]|0;j=c[f+(k*132|0)+112>>2]|0;p=c[f+(k*132|0)+116>>2]|0;q=(c[f+(k*132|0)+120>>2]|0)!=0;c[t>>2]=c[f+(k*132|0)>>2];c[x>>2]=h;c[y>>2]=j;c[z>>2]=p;a[A>>0]=q&1;f=c[G>>2]|0;if((f|0)==(c[B>>2]|0))lh(L,t);else{c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];c[G>>2]=f+20}q=c[s>>2]|0;f=c[q+(k*132|0)+12>>2]|0;c[u>>2]=c[q+(k*132|0)+8>>2];c[C>>2]=f;g[D>>2]=0.0;f=c[I>>2]|0;if((f|0)==(c[E>>2]|0)){mh(M,u);j=0}else{c[f>>2]=c[u>>2];c[f+4>>2]=c[u+4>>2];c[f+8>>2]=c[u+8>>2];c[I>>2]=(c[I>>2]|0)+12;j=0}do{f=(c[s>>2]|0)+(k*132|0)+16+j|0;h=c[v>>2]|0;if((h|0)==(c[F>>2]|0))nh(K,f);else{a[h>>0]=a[f>>0]|0;c[v>>2]=(c[v>>2]|0)+1}j=j+1|0}while((j|0)<96)}k=k+1|0}while((k|0)<(m|0))}c[N>>2]=((c[G>>2]|0)-(c[L>>2]|0)|0)/20|0;Kf(1,21268,N);c[b+64+(e<<2)>>2]=c[(c[r>>2]|0)+(n*12|0)+8>>2];q=c[(c[r>>2]|0)+(n*12|0)>>2]|0;Nj(c[b>>2]|0,L,K,M,c[q+(d*12|0)>>2]|0,c[q+(d*12|0)+4>>2]|0,e);e=e+1|0;eh(K);oh(M);fh(L);d=d+1|0}while((d|0)<(c[(c[r>>2]|0)+(n*12|0)+4>>2]|0))}n=n+1|0}while((n|0)<(c[o>>2]|0));e=0}else e=0}else{Kf(3,21187,e);e=-1}while(0);i=O;return e|0}function ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;t=v+16|0;q=v+8|0;d=v;e=v+44|0;f=v+40|0;do if((a|0)!=0&(b|0)!=0){j=c[a+12>>2]|0;k=c[a+16>>2]|0;o=c[a+24>>2]|0;p=(o|0)==1;d=c[a+20>>2]|0;if(p)switch(d|0){case 14:case 13:case 12:case 5:{u=b;break}default:l=5}else l=5;if((l|0)==5){d=Bh(b,d,j,k,o,e,f)|0;if(!d){d=-1;break}else u=d}Oj(c[a>>2]|0,u,j,k)|0;l=Rj(c[a>>2]|0)|0;j=c[l+4>>2]|0;l=c[l>>2]|0;d=(j-l|0)/20|0;k=a+52|0;c[k>>2]=d;if((j|0)==(l|0)){f=c[a+60>>2]|0;d=a+56|0;if((f|0)>0){e=c[d>>2]|0;j=0;do{c[e+(j*68|0)+60>>2]=-1;j=j+1|0}while((j|0)<(f|0))}}else{l=a+48|0;e=c[l>>2]|0;if(e){dx(e);d=c[k>>2]|0}j=cx(d<<3)|0;c[l>>2]=j;if(!j){Kf(3,21359,q);zb(1)}f=Rj(c[a>>2]|0)|0;a:do if(p){j=a+4|0;if((c[k>>2]|0)>0){e=0;do{d=c[f>>2]|0;m=+g[d+(e*20|0)>>2];n=+g[d+(e*20|0)+4>>2];d=c[j>>2]|0;if(!d){q=c[l>>2]|0;g[q+(e<<3)>>2]=m;g[q+(e<<3)+4>>2]=n}else{q=c[l>>2]|0;mg(d+184|0,m,n,q+(e<<3)|0,q+(e<<3)+4|0)|0}e=e+1|0}while((e|0)<(c[k>>2]|0))}}else switch(o|0){case 5:{j=a+4|0;if((c[k>>2]|0)>0)e=0;else break a;do{d=c[f>>2]|0;m=+g[d+(e*20|0)>>2];n=+g[d+(e*20|0)+4>>2];d=c[j>>2]|0;if(!d){q=c[l>>2]|0;g[q+(e<<3)>>2]=m*1.5;g[q+(e<<3)+4>>2]=n*1.5}else{q=c[l>>2]|0;mg(d+184|0,m*1.5,n*1.5,q+(e<<3)|0,q+(e<<3)+4|0)|0}e=e+1|0}while((e|0)<(c[k>>2]|0));break}case 2:{j=a+4|0;if((c[k>>2]|0)>0)e=0;else break a;do{d=c[f>>2]|0;n=+g[d+(e*20|0)>>2];m=+g[d+(e*20|0)+4>>2];d=c[j>>2]|0;if(!d){q=c[l>>2]|0;g[q+(e<<3)>>2]=n*2.0;g[q+(e<<3)+4>>2]=m*2.0}else{q=c[l>>2]|0;mg(d+184|0,n*2.0,m*2.0,q+(e<<3)|0,q+(e<<3)+4|0)|0}e=e+1|0}while((e|0)<(c[k>>2]|0));break}case 4:{j=a+4|0;if((c[k>>2]|0)>0)e=0;else break a;do{d=c[f>>2]|0;m=+g[d+(e*20|0)>>2];n=+g[d+(e*20|0)+4>>2];d=c[j>>2]|0;if(!d){q=c[l>>2]|0;g[q+(e<<3)>>2]=m*3.0;g[q+(e<<3)+4>>2]=n*3.0}else{q=c[l>>2]|0;mg(d+184|0,m*3.0,n*3.0,q+(e<<3)|0,q+(e<<3)+4|0)|0}e=e+1|0}while((e|0)<(c[k>>2]|0));break}default:{j=a+4|0;if((c[k>>2]|0)>0)e=0;else break a;do{d=c[f>>2]|0;m=+g[d+(e*20|0)>>2];n=+g[d+(e*20|0)+4>>2];d=c[j>>2]|0;if(!d){q=c[l>>2]|0;g[q+(e<<3)>>2]=m*4.0;g[q+(e<<3)+4>>2]=n*4.0}else{q=c[l>>2]|0;mg(d+184|0,m*4.0,n*4.0,q+(e<<3)|0,q+(e<<3)+4|0)|0}e=e+1|0}while((e|0)<(c[k>>2]|0))}}while(0);k=a+60|0;l=a+40|0;d=a+56|0;f=c[k>>2]|0;if((f|0)>0){e=0;do{q=c[d>>2]|0;c[q+(e*68|0)+48>>2]=c[(c[l>>2]|0)+(e*12|0)+8>>2];c[q+(e*68|0)+60>>2]=-1;if(((c[q+(e*68|0)+64>>2]|0)==0?(r=Sj(c[a>>2]|0)|0,s=Pj(c[a>>2]|0)|0,(s|0)>=0):0)?(f=c[j>>2]|0,o=Qj(c[a>>2]|0,s)|0,p=Rj(c[a>>2]|0)|0,q=c[d>>2]|0,(jh(f,r,o,p,q+(e*68|0)|0,q+(e*68|0)+52|0)|0)==0):0){p=c[d>>2]|0;c[p+(e*68|0)+60>>2]=0;q=(c[r+4>>2]|0)-(c[r>>2]|0)>>3;c[p+(e*68|0)+56>>2]=q;c[p+(e*68|0)+48>>2]=c[a+64+(s<<2)>>2];n=+g[p+(e*68|0)+52>>2];c[t>>2]=e;c[t+4>>2]=q;c[t+8>>2]=q;h[t+16>>3]=n;Kf(1,21319,t)}e=e+1|0;f=c[k>>2]|0}while((e|0)<(f|0))}}if((f|0)>0){d=c[d>>2]|0;e=0;do{c[d+(e*68|0)+64>>2]=0;e=e+1|0}while((e|0)<(f|0))}if((u|0)==(b|0))d=0;else{dx(u);d=0}}else{Kf(3,21279,d);d=-1}while(0);i=v;return d|0}function jh(a,b,d,e,f,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+240|0;l=v+208|0;k=v+200|0;u=v+224|0;q=v+212|0;r=v+104|0;t=v;s=v+8|0;n=c[b>>2]|0;b=(c[b+4>>2]|0)-n|0;o=b>>3;do if(o>>>0<4)b=-1;else{p=cx(b<<1)|0;if(!p){Kf(3,21359,k);zb(1)}m=cx(o*24|0)|0;if(!m){Kf(3,21359,l);zb(1)}e=c[e>>2]|0;b=c[d>>2]|0;if(o){k=0;do{d=c[n+(k<<3)>>2]|0;h[p+(k<<4)>>3]=+g[e+(d*20|0)>>2];h[p+(k<<4)+8>>3]=+g[e+(d*20|0)+4>>2];d=c[n+(k<<3)+4>>2]|0;h[m+(k*24|0)>>3]=+g[b+(d*12|0)>>2];h[m+(k*24|0)+8>>3]=+g[b+(d*12|0)+4>>2];h[m+(k*24|0)+16>>3]=0.0;k=k+1|0}while((k|0)!=(o|0))}c[q+8>>2]=o;c[q>>2]=p;c[q+4>>2]=m;b=a+8|0;if((Eg(b,p,m,o,r)|0)<0){dx(p);dx(m);b=-1;break}b=wg(b)|0;c[u>>2]=b;if(!b){dx(p);dx(m);b=-1;break}if((zg(b,q,r,s,t)|0)<0){dx(p);dx(m);xg(u)|0;b=-1}else{b=0;do{g[f+(b<<4)>>2]=+h[s+(b<<5)>>3];g[f+(b<<4)+4>>2]=+h[s+(b<<5)+8>>3];g[f+(b<<4)+8>>2]=+h[s+(b<<5)+16>>3];g[f+(b<<4)+12>>2]=+h[s+(b<<5)+24>>3];b=b+1|0}while((b|0)!=3);xg(u)|0;dx(p);dx(m);w=+h[t>>3];g[j>>2]=w;b=(w>10.0)<<31>>31}}while(0);i=v;return b|0}function kh(a,b){a=a|0;b=b|0;return yh(a,b,Fw(b)|0)|0}function lh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=(((c[g>>2]|0)-d|0)/20|0)+1|0;if(f>>>0>214748364)Rt(a);e=d;d=((c[a+8>>2]|0)-e|0)/20|0;if(d>>>0<107374182){d=d<<1;d=d>>>0>>0?f:d}else d=214748364;vh(h,d,((c[g>>2]|0)-e|0)/20|0,a+8|0);g=h+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[g>>2]=f+20;wh(a,h);xh(h);i=j;return}function mh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=(((c[g>>2]|0)-d|0)/12|0)+1|0;if(f>>>0>357913941)Rt(a);e=d;d=((c[a+8>>2]|0)-e|0)/12|0;if(d>>>0<178956970){d=d<<1;d=d>>>0>>0?f:d}else d=357913941;sh(h,d,((c[g>>2]|0)-e|0)/12|0,a+8|0);g=h+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[g>>2]=f+12;th(a,h);uh(h);i=j;return}function nh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;h=b+4|0;e=c[b>>2]|0;g=(c[h>>2]|0)-e+1|0;if((g|0)<0)Rt(b);f=e;e=(c[b+8>>2]|0)-f|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e}else e=2147483647;ph(j,e,(c[h>>2]|0)-f|0,b+8|0);h=j+8|0;g=c[h>>2]|0;a[g>>0]=a[d>>0]|0;c[h>>2]=g+1;qh(b,j);rh(j);i=k;return}function oh(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-12|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function ph(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b)|0;c[a>>2]=e;d=e+d|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+b;return}function qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-f)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function rh(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-1|0;while((b|0)!=(d|0));c[e>>2]=b}Vt(c[a>>2]|0);return}function sh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b*12|0)|0;c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*12|0);return}function th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(((f|0)/-12|0)*12|0)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function uh(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-12|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function vh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b*20|0)|0;c[a>>2]=e;d=e+(d*20|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*20|0);return}function wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;d=c[f>>2]|0;g=b+4|0;if((d|0)!=(e|0))do{h=(c[g>>2]|0)+-20|0;d=d+-20|0;c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];c[g>>2]=(c[g>>2]|0)+-20}while((d|0)!=(e|0));h=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=h;h=b+8|0;e=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=e;f=a+8|0;h=b+12|0;a=c[f>>2]|0;c[f>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[g>>2];return}function xh(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-20|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function yh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+16|0;m=n+8|0;j=n;lz(m,b);if(a[m>>0]|0){f=c[(c[b>>2]|0)+-12>>2]|0;c[j>>2]=c[b+(f+24)>>2];l=b+f|0;k=c[b+(f+4)>>2]|0;g=d+e|0;f=b+(f+76)|0;e=c[f>>2]|0;if((e|0)==-1){c[h>>2]=ty(l)|0;e=GD(h,13680)|0;e=Uc[c[(c[e>>2]|0)+28>>2]&63](e,32)|0;ED(h);e=e<<24>>24;c[f>>2]=e}c[h>>2]=c[j>>2];if(!(zh(h,d,(k&176|0)==32?g:d,g,l,e&255)|0)){d=c[(c[b>>2]|0)+-12>>2]|0;qy(b+d|0,c[b+(d+16)>>2]|5)}}mz(m);i=n;return b|0}function zh(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+16|0;n=o;j=c[b>>2]|0;a:do if(!j)j=0;else{p=d;l=f-p|0;m=g+12|0;k=c[m>>2]|0;l=(k|0)>(l|0)?k-l|0:0;k=e;g=k-p|0;if((g|0)>0?(Pc[c[(c[j>>2]|0)+48>>2]&63](j,d,g)|0)!=(g|0):0){c[b>>2]=0;j=0;break}do if((l|0)>0){Xx(n,l,h);if((Pc[c[(c[j>>2]|0)+48>>2]&63](j,(a[n>>0]&1)==0?n+1|0:c[n+8>>2]|0,l)|0)==(l|0)){Yx(n);break}else{c[b>>2]=0;Yx(n);j=0;break a}}while(0);f=f-k|0;if((f|0)>0?(Pc[c[(c[j>>2]|0)+48>>2]&63](j,e,f)|0)!=(f|0):0){c[b>>2]=0;j=0;break}c[m>>2]=0}while(0);i=o;return j|0}function Ah(a,b,d){a=a|0;b=b|0;d=d|0;if(!a)a=-1;else{c[b>>2]=c[a+56>>2];c[d>>2]=c[a+60>>2];a=0}return a|0}function Bh(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;w=i;i=i+48|0;n=w+32|0;m=w+24|0;l=w+16|0;o=w+8|0;a:do switch(h|0){case 1:{c[j>>2]=f;c[k>>2]=g;h=cx($(g,f)|0)|0;if(!h){Kf(3,21359,w);zb(1)}if(e>>>0<2){p=(f|0)>0?f:0;k=p*3|0;if((g|0)<=0)break a;e=(f|0)>0;n=0;o=h;while(1){if(e){l=b;m=0;j=o;while(1){a[j>>0]=(((d[l+1>>0]|0)+(d[l>>0]|0)+(d[l+2>>0]|0)|0)>>>0)/3|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+3|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break a;else{b=b+k|0;o=o+p|0}}}if((e&-2|0)==2){p=(f|0)>0?f:0;k=p<<2;if((g|0)<=0)break a;e=(f|0)>0;n=0;o=h;while(1){if(e){l=b;m=0;j=o;while(1){a[j>>0]=(((d[l+1>>0]|0)+(d[l>>0]|0)+(d[l+2>>0]|0)|0)>>>0)/3|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+4|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break a;else{b=b+k|0;o=o+p|0}}}if((e&-3|0)==4){p=(f|0)>0?f:0;k=p<<2;if((g|0)<=0)break a;e=(f|0)>0;n=0;o=h;while(1){if(e){l=b;m=0;j=o;while(1){a[j>>0]=(((d[l+2>>0]|0)+(d[l+1>>0]|0)+(d[l+3>>0]|0)|0)>>>0)/3|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+4|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break a;else{b=b+k|0;o=o+p|0}}}switch(e|0){case 5:case 12:case 13:case 14:{e=(f|0)>0?f:0;if((g|0)<=0)break a;k=(f|0)>0;n=0;o=h;while(1){if(k){l=b;m=0;j=o;while(1){a[j>>0]=a[l>>0]|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+1|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break;else{b=b+e|0;o=o+e|0}}break}case 7:{p=(f|0)>0?f:0;k=p<<1;if((g|0)<=0)break a;e=(f|0)>0;n=0;o=h;while(1){if(e){l=b;m=0;j=o;while(1){a[j>>0]=a[l+1>>0]|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+2|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break;else{b=b+k|0;o=o+p|0}}break}case 8:{p=(f|0)>0?f:0;k=p<<1;if((g|0)<=0)break a;e=(f|0)>0;n=0;o=h;while(1){if(e){l=b;m=0;j=o;while(1){a[j>>0]=a[l>>0]|0;m=m+1|0;if((m|0)>=(f|0))break;else{l=l+2|0;j=j+1|0}}}n=n+1|0;if((n|0)>=(g|0))break;else{b=b+k|0;o=o+p|0}}break}default:break a}break}case 5:{u=(f|0)/3|0;v=u<<1;c[j>>2]=v;t=(g|0)/3|0;h=t<<1;c[k>>2]=h;h=cx($(h,v)|0)|0;if(!h){Kf(3,21359,o);zb(1)}if(e>>>0<2){r=f*3|0;s=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,r)|0)|0;q=b+($(l+1|0,r)|0)|0;l=b+($(l+2|0,r)|0)|0;m=o;n=o+v|0;while(1){F=p+3|0;G=p+4|0;E=p+5|0;D=q+1|0;C=q+2|0;z=q+3|0;A=q+4|0;y=q+5|0;a[m>>0]=((d[A>>0]|0)+(d[z>>0]|0)+(d[y>>0]|0)+((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)+(((d[G>>0]|0)+(d[F>>0]|0)+(d[E>>0]|0)|0)>>>1)+(((d[D>>0]|0)+(d[q>>0]|0)+(d[C>>0]|0)|0)>>>1)<<2)&-4|0)/27|0;g=l+3|0;x=l+4|0;f=l+5|0;a[n>>0]=((d[l>>0]|0)+(((d[D>>0]|0)+(d[q>>0]|0)+(d[C>>0]|0)|0)>>>1)+(((d[A>>0]|0)+(d[z>>0]|0)+(d[y>>0]|0)|0)>>>2)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(((d[x>>0]|0)+(d[g>>0]|0)+(d[f>>0]|0)|0)>>>1)<<2|0)/27|0;C=q+6|0;D=q+7|0;B=q+8|0;a[m+1>>0]=((d[p+7>>0]|0)+(d[p+6>>0]|0)+(((d[G>>0]|0)+(d[F>>0]|0)+(d[E>>0]|0)|0)>>>1)+(d[p+8>>0]|0)+(((d[A>>0]|0)+(d[z>>0]|0)+(d[y>>0]|0)|0)>>>2)+(((d[D>>0]|0)+(d[C>>0]|0)+(d[B>>0]|0)|0)>>>1)<<2|0)/27|0;a[n+1>>0]=((((d[D>>0]|0)+(d[C>>0]|0)+(d[B>>0]|0)|0)>>>1)+(((d[A>>0]|0)+(d[z>>0]|0)+(d[y>>0]|0)|0)>>>2)+(d[l+6>>0]|0)+(((d[x>>0]|0)+(d[g>>0]|0)+(d[f>>0]|0)|0)>>>1)+(d[l+7>>0]|0)+(d[l+8>>0]|0)<<2|0)/27|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+9|0;q=q+9|0;l=l+9|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break a;else o=o+s|0}}if((e&-2|0)==2){r=f<<2;s=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,r)|0)|0;q=b+($(l+1|0,r)|0)|0;l=b+($(l+2|0,r)|0)|0;m=o;n=o+v|0;while(1){f=p+4|0;g=p+5|0;x=p+6|0;y=q+1|0;z=q+2|0;C=q+4|0;B=q+5|0;D=q+6|0;a[m>>0]=((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)+((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)+(((d[g>>0]|0)+(d[f>>0]|0)+(d[x>>0]|0)|0)>>>1)+(((d[y>>0]|0)+(d[q>>0]|0)+(d[z>>0]|0)|0)>>>1)<<2)&-4|0)/27|0;F=l+4|0;E=l+5|0;G=l+6|0;a[n>>0]=((d[l>>0]|0)+(((d[y>>0]|0)+(d[q>>0]|0)+(d[z>>0]|0)|0)>>>1)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(((d[E>>0]|0)+(d[F>>0]|0)+(d[G>>0]|0)|0)>>>1)<<2|0)/27|0;z=q+8|0;y=q+9|0;A=q+10|0;a[m+1>>0]=((((d[g>>0]|0)+(d[f>>0]|0)+(d[x>>0]|0)|0)>>>1)+((d[p+8>>0]|0)*3|0)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(((d[y>>0]|0)+(d[z>>0]|0)+(d[A>>0]|0)|0)>>>1)<<2|0)/27|0;a[n+1>>0]=((((d[y>>0]|0)+(d[z>>0]|0)+(d[A>>0]|0)|0)>>>1)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(d[l+8>>0]|0)+(((d[E>>0]|0)+(d[F>>0]|0)+(d[G>>0]|0)|0)>>>1)+(d[l+9>>0]|0)+(d[l+10>>0]|0)<<2|0)/27|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+12|0;q=q+12|0;l=l+12|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break a;else o=o+s|0}}if((e&-3|0)==4){r=f<<2;s=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,r)|0)|0;q=b+($(l+1|0,r)|0)|0;l=b+($(l+2|0,r)|0)|0;m=o;n=o+v|0;while(1){f=p+5|0;g=p+6|0;x=p+7|0;y=q+1|0;A=q+2|0;z=q+3|0;C=q+5|0;B=q+6|0;D=q+7|0;a[m>>0]=((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)+((d[p+2>>0]|0)+(d[p+1>>0]|0)+(d[p+3>>0]|0)+(((d[g>>0]|0)+(d[f>>0]|0)+(d[x>>0]|0)|0)>>>1)+(((d[A>>0]|0)+(d[y>>0]|0)+(d[z>>0]|0)|0)>>>1)<<2)&-4|0)/27|0;F=l+5|0;E=l+6|0;G=l+7|0;a[n>>0]=((d[l+1>>0]|0)+(((d[A>>0]|0)+(d[y>>0]|0)+(d[z>>0]|0)|0)>>>1)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(((d[E>>0]|0)+(d[F>>0]|0)+(d[G>>0]|0)|0)>>>1)<<2|0)/27|0;z=q+9|0;y=q+10|0;A=q+11|0;a[m+1>>0]=((d[p+10>>0]|0)+(d[p+9>>0]|0)+(((d[g>>0]|0)+(d[f>>0]|0)+(d[x>>0]|0)|0)>>>1)+(d[p+11>>0]|0)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(((d[y>>0]|0)+(d[z>>0]|0)+(d[A>>0]|0)|0)>>>1)<<2|0)/27|0;a[n+1>>0]=((((d[y>>0]|0)+(d[z>>0]|0)+(d[A>>0]|0)|0)>>>1)+(((d[B>>0]|0)+(d[C>>0]|0)+(d[D>>0]|0)|0)>>>2)+(d[l+9>>0]|0)+(((d[E>>0]|0)+(d[F>>0]|0)+(d[G>>0]|0)|0)>>>1)+(d[l+10>>0]|0)+(d[l+11>>0]|0)<<2|0)/27|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+12|0;q=q+12|0;l=l+12|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break a;else o=o+s|0}}switch(e|0){case 5:case 12:case 13:case 14:{r=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,f)|0)|0;q=b+($(l+1|0,f)|0)|0;l=b+($(l+2|0,f)|0)|0;m=o;n=o+v|0;while(1){D=p+1|0;F=q+1|0;a[m>>0]=(((d[D>>0]|0)>>>1&255)+(d[p>>0]|0)+((d[q>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)<<2>>>0)/9|0;G=l+1|0;a[n>>0]=(((d[F>>0]|0)>>>2&255)+((d[q>>0]|0)>>>1&255)+(d[l>>0]|0)+((d[G>>0]|0)>>>1&255)<<2>>>0)/9|0;E=q+2|0;a[m+1>>0]=(((d[D>>0]|0)>>>1&255)+(d[p+2>>0]|0)+((d[F>>0]|0)>>>2&255)+((d[E>>0]|0)>>>1&255)<<2>>>0)/9|0;a[n+1>>0]=(((d[E>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)+((d[G>>0]|0)>>>1&255)+(d[l+2>>0]|0)<<2>>>0)/9|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+3|0;q=q+3|0;l=l+3|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break;else o=o+r|0}break}case 7:{r=f<<1;s=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,r)|0)|0;q=b+($(l+1|0,r)|0)|0;l=b+($(l+2|0,r)|0)|0;m=o;n=o+v|0;while(1){D=p+3|0;E=q+1|0;F=q+3|0;a[m>>0]=(((d[D>>0]|0)>>>1&255)+(d[p+1>>0]|0)+((d[E>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)<<2>>>0)/9|0;G=l+3|0;a[n>>0]=(((d[F>>0]|0)>>>2&255)+((d[E>>0]|0)>>>1&255)+(d[l+1>>0]|0)+((d[G>>0]|0)>>>1&255)<<2>>>0)/9|0;E=q+5|0;a[m+1>>0]=(((d[D>>0]|0)>>>1&255)+(d[p+5>>0]|0)+((d[F>>0]|0)>>>2&255)+((d[E>>0]|0)>>>1&255)<<2>>>0)/9|0;a[n+1>>0]=(((d[E>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)+((d[G>>0]|0)>>>1&255)+(d[l+5>>0]|0)<<2>>>0)/9|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+6|0;q=q+6|0;l=l+6|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break;else o=o+s|0}break}case 8:{r=f<<1;s=((f|0)>2?v:0)+v|0;if((g|0)<=2)break a;j=(f|0)>2;o=h;e=0;while(1){l=e*3|0;if(j){k=0;p=b+($(l,r)|0)|0;q=b+($(l+1|0,r)|0)|0;l=b+($(l+2|0,r)|0)|0;m=o;n=o+v|0;while(1){D=p+2|0;F=q+2|0;a[m>>0]=(((d[D>>0]|0)>>>1&255)+(d[p>>0]|0)+((d[q>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)<<2>>>0)/9|0;G=l+2|0;a[n>>0]=(((d[F>>0]|0)>>>2&255)+((d[q>>0]|0)>>>1&255)+(d[l>>0]|0)+((d[G>>0]|0)>>>1&255)<<2>>>0)/9|0;E=q+4|0;a[m+1>>0]=(((d[D>>0]|0)>>>1&255)+(d[p+4>>0]|0)+((d[F>>0]|0)>>>2&255)+((d[E>>0]|0)>>>1&255)<<2>>>0)/9|0;a[n+1>>0]=(((d[E>>0]|0)>>>1&255)+((d[F>>0]|0)>>>2&255)+((d[G>>0]|0)>>>1&255)+(d[l+4>>0]|0)<<2>>>0)/9|0;k=k+1|0;if((k|0)>=(u|0))break;else{p=p+6|0;q=q+6|0;l=l+6|0;m=m+2|0;n=n+2|0}}}e=e+1|0;if((e|0)>=(t|0))break;else o=o+s|0}break}default:break a}break}case 2:{s=(f|0)/2|0;c[j>>2]=s;r=(g|0)/2|0;c[k>>2]=r;h=cx($(r,s)|0)|0;if(!h){Kf(3,21359,l);zb(1)}if(e>>>0<2){p=f*3|0;q=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,p)|0)|0;l=b+($(l|1,p)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)|0)/12|0;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+6|0;l=l+6|0}}}o=o+1|0;if((o|0)>=(r|0))break a;else j=j+q|0}}if((e&-2|0)==2){p=f<<2;q=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,p)|0)|0;l=b+($(l|1,p)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)|0)/12|0;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+8|0;l=l+8|0}}}o=o+1|0;if((o|0)>=(r|0))break a;else j=j+q|0}}if((e&-3|0)==4){p=f<<2;q=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,p)|0)|0;l=b+($(l|1,p)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e+1>>0]|0)+(d[e+3>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+7>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+7>>0]|0)|0)/12|0;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+8|0;l=l+8|0}}}o=o+1|0;if((o|0)>=(r|0))break a;else j=j+q|0}}switch(e|0){case 5:case 12:case 13:case 14:{p=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,f)|0)|0;l=b+($(l|1,f)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)|0)>>>2;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+2|0;l=l+2|0}}}o=o+1|0;if((o|0)>=(r|0))break;else j=j+p|0}break}case 7:{p=f<<1;q=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,p)|0)|0;l=b+($(l|1,p)|0)|0;while(1){a[k>>0]=((d[e+3>>0]|0)+(d[e+1>>0]|0)+(d[l+1>>0]|0)+(d[l+3>>0]|0)|0)>>>2;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+4|0;l=l+4|0}}}o=o+1|0;if((o|0)>=(r|0))break;else j=j+q|0}break}case 8:{p=f<<1;q=(s|0)>0?s:0;if((g|0)<=1)break a;m=(f|0)>1;o=0;j=h;while(1){l=o<<1;if(m){n=0;k=j;e=b+($(l,p)|0)|0;l=b+($(l|1,p)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e>>0]|0)+(d[l>>0]|0)+(d[l+2>>0]|0)|0)>>>2;n=n+1|0;if((n|0)>=(s|0))break;else{k=k+1|0;e=e+4|0;l=l+4|0}}}o=o+1|0;if((o|0)>=(r|0))break;else j=j+q|0}break}default:break a}break}case 4:{t=(f|0)/3|0;c[j>>2]=t;s=(g|0)/3|0;c[k>>2]=s;h=cx($(s,t)|0)|0;if(!h){Kf(3,21359,m);zb(1)}if(e>>>0<2){q=f*3|0;r=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,q)|0)|0;p=b+($(l+1|0,q)|0)|0;l=b+($(l+2|0,q)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+7>>0]|0)+(d[e+8>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+4>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+7>>0]|0)+(d[l+8>>0]|0)|0)/27|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+9|0;p=p+9|0;l=l+9|0}}}o=o+1|0;if((o|0)>=(s|0))break a;else j=j+r|0}}if((e&-2|0)==2){q=f<<2;r=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,q)|0)|0;p=b+($(l+1|0,q)|0)|0;l=b+($(l+2|0,q)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+8>>0]|0)+(d[e+9>>0]|0)+(d[e+10>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+4>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+8>>0]|0)+(d[p+9>>0]|0)+(d[p+10>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+8>>0]|0)+(d[l+9>>0]|0)+(d[l+10>>0]|0)|0)/27|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+12|0;p=p+12|0;l=l+12|0}}}o=o+1|0;if((o|0)>=(s|0))break a;else j=j+r|0}}if((e&-3|0)==4){q=f<<2;r=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,q)|0)|0;p=b+($(l+1|0,q)|0)|0;l=b+($(l+2|0,q)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e+1>>0]|0)+(d[e+3>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+7>>0]|0)+(d[e+9>>0]|0)+(d[e+10>>0]|0)+(d[e+11>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+9>>0]|0)+(d[p+10>>0]|0)+(d[p+11>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+7>>0]|0)+(d[l+9>>0]|0)+(d[l+10>>0]|0)+(d[l+11>>0]|0)|0)/27|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+12|0;p=p+12|0;l=l+12|0}}}o=o+1|0;if((o|0)>=(s|0))break a;else j=j+r|0}}switch(e|0){case 5:case 12:case 13:case 14:{q=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,f)|0)|0;p=b+($(l+1|0,f)|0)|0;l=b+($(l+2|0,f)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)|0)/9|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+3|0;p=p+3|0;l=l+3|0}}}o=o+1|0;if((o|0)>=(s|0))break;else j=j+q|0}break}case 7:{q=f<<1;r=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,q)|0)|0;p=b+($(l+1|0,q)|0)|0;l=b+($(l+2|0,q)|0)|0;while(1){a[k>>0]=((d[e+3>>0]|0)+(d[e+1>>0]|0)+(d[e+5>>0]|0)+(d[p+1>>0]|0)+(d[p+3>>0]|0)+(d[p+5>>0]|0)+(d[l+1>>0]|0)+(d[l+3>>0]|0)+(d[l+5>>0]|0)|0)/9|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+6|0;p=p+6|0;l=l+6|0}}}o=o+1|0;if((o|0)>=(s|0))break;else j=j+r|0}break}case 8:{q=f<<1;r=(t|0)>0?t:0;if((g|0)<=2)break a;m=(f|0)>2;o=0;j=h;while(1){l=o*3|0;if(m){n=0;k=j;e=b+($(l,q)|0)|0;p=b+($(l+1|0,q)|0)|0;l=b+($(l+2|0,q)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e>>0]|0)+(d[e+4>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)+(d[p+4>>0]|0)+(d[l>>0]|0)+(d[l+2>>0]|0)+(d[l+4>>0]|0)|0)/9|0;n=n+1|0;if((n|0)>=(t|0))break;else{k=k+1|0;e=e+6|0;p=p+6|0;l=l+6|0}}}o=o+1|0;if((o|0)>=(s|0))break;else j=j+r|0}break}default:break a}break}default:{u=(f|0)/4|0;c[j>>2]=u;t=(g|0)/4|0;c[k>>2]=t;h=cx($(t,u)|0)|0;if(!h){Kf(3,21359,n);zb(1)}if(e>>>0<2){r=f*3|0;s=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,r)|0)|0;p=b+($(l|1,r)|0)|0;q=b+($(l|2,r)|0)|0;l=b+($(l|3,r)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+7>>0]|0)+(d[e+8>>0]|0)+(d[e+9>>0]|0)+(d[e+10>>0]|0)+(d[e+11>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+4>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)+(d[p+9>>0]|0)+(d[p+10>>0]|0)+(d[p+11>>0]|0)+(d[q>>0]|0)+(d[q+1>>0]|0)+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[q+4>>0]|0)+(d[q+5>>0]|0)+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+8>>0]|0)+(d[q+9>>0]|0)+(d[q+10>>0]|0)+(d[q+11>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+7>>0]|0)+(d[l+8>>0]|0)+(d[l+9>>0]|0)+(d[l+10>>0]|0)+(d[l+11>>0]|0)|0)/48|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+12|0;p=p+12|0;q=q+12|0;l=l+12|0}}}o=o+1|0;if((o|0)>=(t|0))break a;else j=j+s|0}}if((e&-2|0)==2){r=f<<2;s=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,r)|0)|0;p=b+($(l|1,r)|0)|0;q=b+($(l|2,r)|0)|0;l=b+($(l|3,r)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+4>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+8>>0]|0)+(d[e+9>>0]|0)+(d[e+10>>0]|0)+(d[e+12>>0]|0)+(d[e+13>>0]|0)+(d[e+14>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+4>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+8>>0]|0)+(d[p+9>>0]|0)+(d[p+10>>0]|0)+(d[p+12>>0]|0)+(d[p+13>>0]|0)+(d[p+14>>0]|0)+(d[q>>0]|0)+(d[q+1>>0]|0)+(d[q+2>>0]|0)+(d[q+4>>0]|0)+(d[q+5>>0]|0)+(d[q+6>>0]|0)+(d[q+8>>0]|0)+(d[q+9>>0]|0)+(d[q+10>>0]|0)+(d[q+12>>0]|0)+(d[q+13>>0]|0)+(d[q+14>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+4>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+8>>0]|0)+(d[l+9>>0]|0)+(d[l+10>>0]|0)+(d[l+12>>0]|0)+(d[l+13>>0]|0)+(d[l+14>>0]|0)|0)/48|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+16|0;p=p+16|0;q=q+16|0;l=l+16|0}}}o=o+1|0;if((o|0)>=(t|0))break a;else j=j+s|0}}if((e&-3|0)==4){r=f<<2;s=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,r)|0)|0;p=b+($(l|1,r)|0)|0;q=b+($(l|2,r)|0)|0;l=b+($(l|3,r)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e+1>>0]|0)+(d[e+3>>0]|0)+(d[e+5>>0]|0)+(d[e+6>>0]|0)+(d[e+7>>0]|0)+(d[e+9>>0]|0)+(d[e+10>>0]|0)+(d[e+11>>0]|0)+(d[e+13>>0]|0)+(d[e+14>>0]|0)+(d[e+15>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+9>>0]|0)+(d[p+10>>0]|0)+(d[p+11>>0]|0)+(d[p+13>>0]|0)+(d[p+14>>0]|0)+(d[p+15>>0]|0)+(d[q+1>>0]|0)+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[q+5>>0]|0)+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+9>>0]|0)+(d[q+10>>0]|0)+(d[q+11>>0]|0)+(d[q+13>>0]|0)+(d[q+14>>0]|0)+(d[q+15>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[l+5>>0]|0)+(d[l+6>>0]|0)+(d[l+7>>0]|0)+(d[l+9>>0]|0)+(d[l+10>>0]|0)+(d[l+11>>0]|0)+(d[l+13>>0]|0)+(d[l+14>>0]|0)+(d[l+15>>0]|0)|0)/48|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+16|0;p=p+16|0;q=q+16|0;l=l+16|0}}}o=o+1|0;if((o|0)>=(t|0))break a;else j=j+s|0}}switch(e|0){case 5:case 12:case 13:case 14:{r=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,f)|0)|0;p=b+($(l|1,f)|0)|0;q=b+($(l|2,f)|0)|0;l=b+($(l|3,f)|0)|0;while(1){a[k>>0]=((d[e+1>>0]|0)+(d[e>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)+(d[p>>0]|0)+(d[p+1>>0]|0)+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[q>>0]|0)+(d[q+1>>0]|0)+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)|0)/16|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+4|0;p=p+4|0;q=q+4|0;l=l+4|0}}}o=o+1|0;if((o|0)>=(t|0))break;else j=j+r|0}break}case 7:{r=f<<1;s=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,r)|0)|0;p=b+($(l|1,r)|0)|0;q=b+($(l|2,r)|0)|0;l=b+($(l|3,r)|0)|0;while(1){a[k>>0]=((d[e+3>>0]|0)+(d[e+1>>0]|0)+(d[e+5>>0]|0)+(d[e+7>>0]|0)+(d[p+1>>0]|0)+(d[p+3>>0]|0)+(d[p+5>>0]|0)+(d[p+7>>0]|0)+(d[q+1>>0]|0)+(d[q+3>>0]|0)+(d[q+5>>0]|0)+(d[q+7>>0]|0)+(d[l+1>>0]|0)+(d[l+3>>0]|0)+(d[l+5>>0]|0)+(d[l+7>>0]|0)|0)/16|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+8|0;p=p+8|0;q=q+8|0;l=l+8|0}}}o=o+1|0;if((o|0)>=(t|0))break;else j=j+s|0}break}case 8:{r=f<<1;s=(u|0)>0?u:0;if((g|0)<=3)break a;m=(f|0)>3;o=0;j=h;while(1){l=o<<2;if(m){n=0;k=j;e=b+($(l,r)|0)|0;p=b+($(l|1,r)|0)|0;q=b+($(l|2,r)|0)|0;l=b+($(l|3,r)|0)|0;while(1){a[k>>0]=((d[e+2>>0]|0)+(d[e>>0]|0)+(d[e+4>>0]|0)+(d[e+6>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)+(d[p+4>>0]|0)+(d[p+6>>0]|0)+(d[q>>0]|0)+(d[q+2>>0]|0)+(d[q+4>>0]|0)+(d[q+6>>0]|0)+(d[l>>0]|0)+(d[l+2>>0]|0)+(d[l+4>>0]|0)+(d[l+6>>0]|0)|0)/16|0;n=n+1|0;if((n|0)>=(u|0))break;else{k=k+1|0;e=e+8|0;p=p+8|0;q=q+8|0;l=l+8|0}}}o=o+1|0;if((o|0)>=(t|0))break;else j=j+s|0}break}default:break a}}}while(0);i=w;return h|0}function Ch(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;g=j;do if(a){if(!b){e=Qv(a,d)|0;break}f=Fw(a)|0;f=cx(f+2+(Fw(b)|0)|0)|0;if(!f){Kf(3,21359,g);zb(1)}else{c[h>>2]=a;c[h+4>>2]=b;ew(f,21376,h)|0;e=Qv(f,d)|0;dx(f);break}}else e=0;while(0);i=j;return e|0}function Dh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+16|0;d=n;if((c[b+8>>2]|0)==(c[b+4>>2]|0)){m=kh(kh(nz(kh(kh(kh(10696,21382)|0,21425)|0,34302)|0,53)|0,34309)|0,21554)|0;c[d>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(d,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(d);oz(m,l)|0;bz(m)|0;Zb()}j=c[(Ph(b,0,0)|0)>>2]|0;k=c[(Ph(b,0,0)|0)+4>>2]|0;l=c[(Ph(b,0,0)|0)+8>>2]|0;g=c[b+16>>2]|0;m=a+12|0;c[m>>2]=g;h=(c[b+20>>2]|0)+-1|0;e=a+16|0;c[e>>2]=h;Qh(a,$(g,h)|0);if(c[m>>2]|0){h=0;do{f=k>>>h;g=l>>>h;d=c[e>>2]|0;if(d){b=0;do{o=($(d,h)|0)+b|0;fo((c[a>>2]|0)+(o<<5)|0,j,f,g,-1,1);b=b+1|0;d=c[e>>2]|0}while(b>>>0>>0)}h=h+1|0}while(h>>>0<(c[m>>2]|0)>>>0)}i=n;return}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;d=j;if((c[a+4>>2]|0)==(c[a>>2]|0)){h=kh(kh(nz(kh(kh(kh(10696,21579)|0,21425)|0,34302)|0,72)|0,34309)|0,21621)|0;c[d>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(h,g)|0;bz(h)|0;Zb()}if((c[b+16>>2]|0)<=0){h=kh(kh(nz(kh(kh(kh(10696,21662)|0,21425)|0,34302)|0,73)|0,34309)|0,21711)|0;c[d>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(h,g)|0;bz(h)|0;Zb()}if(!(su(b,8,16,0)|0)){h=kh(kh(nz(kh(kh(kh(10696,21747)|0,21425)|0,34302)|0,74)|0,34309)|0,21819)|0;c[d>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(d,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(d);oz(h,g)|0;bz(h)|0;Zb()}f=a+12|0;g=a+16|0;if(c[f>>2]|0){h=0;do{d=c[g>>2]|0;if(d){e=0;do{l=($(d,h)|0)+e|0;l=(c[a>>2]|0)+(l<<5)|0;k=Ph(b,h,e)|0;e=e+1|0;Fh(0,l,k,Ph(b,h,e)|0);d=c[g>>2]|0}while(e>>>0>>0)}h=h+1|0}while(h>>>0<(c[f>>2]|0)>>>0)}i=j;return}function Fh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;f=o;if((c[b>>2]|0)!=2){n=kh(kh(nz(kh(kh(kh(10696,21854)|0,21425)|0,34302)|0,86)|0,34309)|0,21899)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}if((c[d>>2]|0)!=2){n=kh(kh(nz(kh(kh(kh(10696,21925)|0,21425)|0,34302)|0,87)|0,34309)|0,21899)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}if((c[e>>2]|0)!=2){n=kh(kh(nz(kh(kh(kh(10696,21972)|0,21425)|0,34302)|0,88)|0,34309)|0,21899)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}if((c[b+16>>2]|0)!=1){n=kh(kh(nz(kh(kh(kh(10696,22019)|0,21425)|0,34302)|0,89)|0,34309)|0,22060)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}if((c[d+16>>2]|0)!=1){n=kh(kh(nz(kh(kh(kh(10696,22097)|0,21425)|0,34302)|0,90)|0,34309)|0,22060)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}if((c[e+16>>2]|0)!=1){n=kh(kh(nz(kh(kh(kh(10696,22140)|0,21425)|0,34302)|0,91)|0,34309)|0,22060)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}a=c[b+4>>2]|0;if((a|0)!=(c[e+4>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,22183)|0,21425)|0,34302)|0,92)|0,34309)|0,22231)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}h=c[b+8>>2]|0;if((h|0)!=(c[e+8>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,22263)|0,21425)|0,34302)|0,93)|0,34309)|0,22313)|0;c[f>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(f,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(f);oz(n,m)|0;bz(n)|0;Zb()}n=d+4|0;if((c[n>>2]|0)!=(a|0)){m=kh(kh(nz(kh(kh(kh(10696,22346)|0,21425)|0,34302)|0,94)|0,34309)|0,22231)|0;c[f>>2]=ty(m+(c[(c[m>>2]|0)+-12>>2]|0)|0)|0;l=GD(f,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(f);oz(m,l)|0;bz(m)|0;Zb()}m=d+8|0;if((c[m>>2]|0)!=(h|0)){l=kh(kh(nz(kh(kh(kh(10696,22396)|0,21425)|0,34302)|0,95)|0,34309)|0,22313)|0;c[f>>2]=ty(l+(c[(c[l>>2]|0)+-12>>2]|0)|0)|0;k=GD(f,13680)|0;k=Uc[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;ED(f);oz(l,k)|0;bz(l)|0;Zb()}if(h){k=0;do{a=Rh(b,k)|0;f=Sh(d,k)|0;h=Sh(e,k)|0;j=c[n>>2]|0;if(j){l=0;do{g[a+(l<<2)>>2]=+g[f+(l<<2)>>2]-+g[h+(l<<2)>>2];l=l+1|0}while((l|0)!=(j|0))}k=k+1|0}while(k>>>0<(c[m>>2]|0)>>>0)}i=o;return}function Gh(b){b=b|0;var d=0,e=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=10;c[b+12>>2]=10;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;a[b+28>>0]=1;e=b+32|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;g[b+56>>2]=10.0;e=b+60|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;g[b+88>>2]=9.0;Dj(b+92|0);d=b+144|0;c[d>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;c[b+84>>2]=5e3;Th(e,5e3);Uh(d,36);return}function Hh(a){a=a|0;Vh(a+144|0);Ej(a+92|0);Wh(a+72|0);Wh(a+60|0);Xh(a+32|0);Yh(a+16|0);return}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Dh(a+32|0,b);e=b+4|0;f=c[e>>2]|0;Fj(a+92|0,c[f+4>>2]|0,c[f+8>>2]|0,c[b+16>>2]|0,c[b+20>>2]|0,36,3.0,1.5,5,.800000011920929);e=c[e>>2]|0;c[a>>2]=c[e+4>>2];c[a+4>>2]=c[e+8>>2];e=a+16|0;Zh(e,c[a+8>>2]|0);f=a+20|0;d=a+12|0;b=c[e>>2]|0;if((c[f>>2]|0)!=(b|0)){a=0;do{_h(b+(a*12|0)|0,c[d>>2]|0);a=a+1|0;b=c[e>>2]|0}while(a>>>0<(((c[f>>2]|0)-b|0)/12|0)>>>0)}return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+176|0;d=k+160|0;e=k+128|0;f=k+96|0;g=k+64|0;h=k+32|0;j=k;if((c[b+16>>2]|0)>0){Eo(e,22448);d=a+32|0;Eh(d,b);Fo(e);Eo(f,22460);Kh(a,b,d);Fo(f);Eo(g,22480);Lh(a,b);Fo(g);Eo(h,22489);Mh(a);Fo(h);Eo(j,22503);Nh(a,b);Fo(j);i=k;return}else{k=kh(kh(nz(kh(kh(kh(10696,21662)|0,21425)|0,34302)|0,147)|0,34309)|0,21711)|0;c[d>>2]=ty(k+(c[(c[k>>2]|0)+-12>>2]|0)|0)|0;a=GD(d,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(d);oz(k,a)|0;bz(k)|0;Zb()}}function Kh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0.0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0.0;na=i;i=i+48|0;ja=na;ka=a+60|0;f=c[ka>>2]|0;la=a+64|0;e=c[la>>2]|0;if((e|0)!=(f|0)){do e=e+-36|0;while((e|0)!=(f|0));c[la>>2]=e}$=+g[a+52>>2];$=$*$;aa=a+36|0;ba=a+32|0;ca=d+16|0;da=ja+12|0;ea=ja+16|0;fa=ja+24|0;ga=ja+28|0;ha=ja+4|0;J=a+68|0;K=ja+12|0;L=ja+16|0;M=ja+24|0;O=ja+28|0;P=ja+4|0;Q=ja+12|0;R=ja+16|0;S=ja+24|0;T=ja+28|0;U=ja+4|0;a:do if((((c[aa>>2]|0)-(c[ba>>2]|0)>>5)+-1|0)>>>0>1){_=1;b:while(1){F=_+-1|0;G=c[d>>2]|0;V=G+(F<<5)|0;W=G+(_<<5)|0;I=_;_=_+1|0;X=G+(_<<5)|0;Y=$h(d,I)|0;Z=(I|0)%(c[ca>>2]|0)|0;e=c[G+(F<<5)+4>>2]|0;H=c[G+(I<<5)+4>>2]|0;c:do if((e|0)==(H|0)){if((e|0)==(c[G+(_<<5)+4>>2]|0)){f=c[G+(F<<5)+8>>2]|0;if((f|0)!=(c[G+(I<<5)+8>>2]|0)){ma=8;break b}if((f|0)!=(c[G+(_<<5)+8>>2]|0)){ma=10;break b}y=e+-1|0;t=f+-1|0;u=+(Z|0);if(t>>>0<=1)break;v=y>>>0>1;x=1;while(1){q=x+-1|0;a=Sh(V,q)|0;k=Sh(V,x)|0;E=x;x=x+1|0;m=Sh(V,x)|0;n=Sh(W,q)|0;o=Sh(W,E)|0;p=Sh(W,x)|0;q=Sh(X,q)|0;r=Sh(X,E)|0;s=Sh(X,x)|0;l=+(E>>>0);if(v){w=1;do{j=+g[o+(w<<2)>>2];do if(!(j*j<$)){f=w+-1|0;h=+g[a+(f<<2)>>2];do if(j>h?j>+g[a+(w<<2)>>2]:0){e=w+1|0;if(!(j>+g[a+(e<<2)>>2])){ma=42;break}if(!(j>+g[k+(f<<2)>>2])){ma=42;break}if(!(j>+g[k+(w<<2)>>2])){ma=42;break}if(!(j>+g[k+(e<<2)>>2])){ma=42;break}if(!(j>+g[m+(f<<2)>>2])){ma=42;break}if(!(j>+g[m+(w<<2)>>2])){ma=42;break}if(!(j>+g[m+(e<<2)>>2])){ma=42;break}if(!(j>+g[n+(f<<2)>>2])){ma=42;break}if(!(j>+g[n+(w<<2)>>2])){ma=42;break}if(!(j>+g[n+(e<<2)>>2])){ma=42;break}if(!(j>+g[o+(f<<2)>>2])){ma=42;break}if(!(j>+g[o+(e<<2)>>2])){ma=42;break}if(!(j>+g[p+(f<<2)>>2])){ma=42;break}if(!(j>+g[p+(w<<2)>>2])){ma=42;break}if(!(j>+g[p+(e<<2)>>2])){ma=42;break}if(!(j>+g[q+(f<<2)>>2])){ma=42;break}if(!(j>+g[q+(w<<2)>>2])){ma=42;break}if(!(j>+g[q+(e<<2)>>2])){ma=42;break}if(!(j>+g[r+(f<<2)>>2])){ma=42;break}if(!(j>+g[r+(w<<2)>>2])){ma=42;break}if(!(j>+g[r+(e<<2)>>2])){ma=42;break}if(!(j>+g[s+(f<<2)>>2])){ma=42;break}if(!(j>+g[s+(w<<2)>>2])){ma=42;break}if(!(j>+g[s+(e<<2)>>2]))ma=42}else ma=42;while(0);if((ma|0)==42){ma=0;if(!(j>2]))break;e=w+1|0;if(!(j<+g[a+(e<<2)>>2]))break;if(!(j<+g[k+(f<<2)>>2]))break;if(!(j<+g[k+(w<<2)>>2]))break;if(!(j<+g[k+(e<<2)>>2]))break;if(!(j<+g[m+(f<<2)>>2]))break;if(!(j<+g[m+(w<<2)>>2]))break;if(!(j<+g[m+(e<<2)>>2]))break;if(!(j<+g[n+(f<<2)>>2]))break;if(!(j<+g[n+(w<<2)>>2]))break;if(!(j<+g[n+(e<<2)>>2]))break;if(!(j<+g[o+(f<<2)>>2]))break;if(!(j<+g[o+(e<<2)>>2]))break;if(!(j<+g[p+(f<<2)>>2]))break;if(!(j<+g[p+(w<<2)>>2]))break;if(!(j<+g[p+(e<<2)>>2]))break;if(!(j<+g[q+(f<<2)>>2]))break;if(!(j<+g[q+(w<<2)>>2]))break;if(!(j<+g[q+(e<<2)>>2]))break;if(!(j<+g[r+(f<<2)>>2]))break;if(!(j<+g[r+(w<<2)>>2]))break;if(!(j<+g[r+(e<<2)>>2]))break;if(!(j<+g[s+(f<<2)>>2]))break;if(!(j<+g[s+(w<<2)>>2]))break;if(!(j<+g[s+(e<<2)>>2]))break}c[da>>2]=Y;c[ea>>2]=Z;g[fa>>2]=j;g[ga>>2]=+ai(b,Y,u);bi(ja,ha,+(w>>>0),l,Y);e=c[la>>2]|0;if((e|0)==(c[J>>2]|0)){ci(ka,ja);break}else{f=ja;E=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(E|0));c[la>>2]=(c[la>>2]|0)+36;break}}while(0);w=w+1|0}while(w>>>0>>0)}if(x>>>0>=t>>>0)break c}}f=e>>>1;if((f|0)==(c[G+(_<<5)+4>>2]|0)){e=c[G+(F<<5)+8>>2]|0;if((e|0)!=(c[G+(I<<5)+8>>2]|0)){ma=75;break b}e=e>>>1;if((e|0)!=(c[G+(_<<5)+8>>2]|0)){ma=77;break b}x=~~+N(+((+((f+-1|0)>>>0)+-.5)*2.0+.5))>>>0;m=~~+N(+((+((e+-1|0)>>>0)+-.5)*2.0+.5))>>>0;z=+(Z|0);if(m>>>0>2){n=x>>>0>2;w=2;do{r=w+-1|0;o=Sh(V,r)|0;p=Sh(V,w)|0;E=w;w=w+1|0;q=Sh(V,w)|0;r=Sh(W,r)|0;s=Sh(W,E)|0;t=Sh(W,w)|0;A=+(E>>>0);B=A*.5+-.25;C=B+-.5;D=B+.5;if(n){v=2;do{k=s+(v<<2)|0;h=+g[k>>2];do if(!(h*h<$)){l=+(v>>>0);u=l*.5+-.25;a=v+-1|0;f=o+(a<<2)|0;do if(h>+g[f>>2]?h>+g[o+(v<<2)>>2]:0){e=v+1|0;if(!(h>+g[o+(e<<2)>>2])){ma=109;break}if(!(h>+g[p+(a<<2)>>2])){ma=109;break}if(!(h>+g[p+(v<<2)>>2])){ma=109;break}if(!(h>+g[p+(e<<2)>>2])){ma=109;break}if(!(h>+g[q+(a<<2)>>2])){ma=109;break}if(!(h>+g[q+(v<<2)>>2])){ma=109;break}if(!(h>+g[q+(e<<2)>>2])){ma=109;break}if(!(h>+g[r+(a<<2)>>2])){ma=109;break}if(!(h>+g[r+(v<<2)>>2])){ma=109;break}if(!(h>+g[r+(e<<2)>>2])){ma=109;break}if(!(h>+g[s+(a<<2)>>2])){ma=109;break}if(!(h>+g[s+(e<<2)>>2])){ma=109;break}if(!(h>+g[t+(a<<2)>>2])){ma=109;break}if(!(h>+g[t+(v<<2)>>2])){ma=109;break}if(!(h>+g[t+(e<<2)>>2])){ma=109;break}j=u+-.5;if(!(h>+di(X,j,C))){ma=109;break}h=+g[k>>2];if(!(h>+di(X,u,C))){ma=109;break}oa=+g[k>>2];h=u+.5;if(!(oa>+di(X,h,C))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,j,B))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,u,B))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,h,B))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,j,D))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,u,D))){ma=109;break}oa=+g[k>>2];if(!(oa>+di(X,h,D)))ma=109}else ma=109;while(0);if((ma|0)==109){ma=0;h=+g[k>>2];if(!(h<+g[f>>2]))break;if(!(h<+g[o+(v<<2)>>2]))break;e=v+1|0;if(!(h<+g[o+(e<<2)>>2]))break;if(!(h<+g[p+(a<<2)>>2]))break;if(!(h<+g[p+(v<<2)>>2]))break;if(!(h<+g[p+(e<<2)>>2]))break;if(!(h<+g[q+(a<<2)>>2]))break;if(!(h<+g[q+(v<<2)>>2]))break;if(!(h<+g[q+(e<<2)>>2]))break;if(!(h<+g[r+(a<<2)>>2]))break;if(!(h<+g[r+(v<<2)>>2]))break;if(!(h<+g[r+(e<<2)>>2]))break;if(!(h<+g[s+(a<<2)>>2]))break;if(!(h<+g[s+(e<<2)>>2]))break;if(!(h<+g[t+(a<<2)>>2]))break;if(!(h<+g[t+(v<<2)>>2]))break;if(!(h<+g[t+(e<<2)>>2]))break;j=u+-.5;if(!(h<+di(X,j,C)))break;oa=+g[k>>2];if(!(oa<+di(X,u,C)))break;oa=+g[k>>2];h=u+.5;if(!(oa<+di(X,h,C)))break;oa=+g[k>>2];if(!(oa<+di(X,j,B)))break;oa=+g[k>>2];if(!(oa<+di(X,u,B)))break;oa=+g[k>>2];if(!(oa<+di(X,h,B)))break;oa=+g[k>>2];if(!(oa<+di(X,j,D)))break;oa=+g[k>>2];if(!(oa<+di(X,u,D)))break;oa=+g[k>>2];if(!(oa<+di(X,h,D)))break}c[K>>2]=Y;c[L>>2]=Z;c[M>>2]=c[k>>2];g[O>>2]=+ai(b,Y,z);bi(ja,P,l,A,Y);e=c[la>>2]|0;if((e|0)==(c[J>>2]|0)){ci(ka,ja);break}else{f=ja;E=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(E|0));c[la>>2]=(c[la>>2]|0)+36;break}}while(0);v=v+1|0}while(v>>>0>>0)}}while(w>>>0>>0)}}else{ia=f;ma=139}}else{ia=e>>>1;ma=139}while(0);if(((ma|0)==139?(ma=0,(ia|0)==(H|0)):0)?(H|0)==(c[G+(_<<5)+4>>2]|0):0){e=(c[G+(F<<5)+8>>2]|0)>>>1;if((e|0)!=(c[G+(I<<5)+8>>2]|0)){ma=143;break}if((e|0)!=(c[G+(_<<5)+8>>2]|0)){ma=145;break}x=H+-1|0;m=e+-1|0;u=+(Z|0);if(m>>>0>1){n=x>>>0>1;w=1;do{r=w+-1|0;o=Sh(W,r)|0;p=Sh(W,w)|0;I=w;w=w+1|0;q=Sh(W,w)|0;r=Sh(X,r)|0;s=Sh(X,I)|0;t=Sh(X,w)|0;z=+(I<<1>>>0)+.5;A=z+-2.0;B=z+2.0;C=+(I>>>0);if(n){v=1;do{k=p+(v<<2)|0;h=+g[k>>2];do if(!(h*h<$)){l=+(v<<1>>>0)+.5;a=v+-1|0;f=o+(a<<2)|0;do if(h>+g[f>>2]?h>+g[o+(v<<2)>>2]:0){e=v+1|0;if(!(h>+g[o+(e<<2)>>2])){ma=177;break}if(!(h>+g[p+(a<<2)>>2])){ma=177;break}if(!(h>+g[p+(e<<2)>>2])){ma=177;break}if(!(h>+g[q+(a<<2)>>2])){ma=177;break}if(!(h>+g[q+(v<<2)>>2])){ma=177;break}if(!(h>+g[q+(e<<2)>>2])){ma=177;break}if(!(h>+g[r+(a<<2)>>2])){ma=177;break}if(!(h>+g[r+(v<<2)>>2])){ma=177;break}if(!(h>+g[r+(e<<2)>>2])){ma=177;break}if(!(h>+g[s+(a<<2)>>2])){ma=177;break}if(!(h>+g[s+(v<<2)>>2])){ma=177;break}if(!(h>+g[s+(e<<2)>>2])){ma=177;break}if(!(h>+g[t+(a<<2)>>2])){ma=177;break}if(!(h>+g[t+(v<<2)>>2])){ma=177;break}if(!(h>+g[t+(e<<2)>>2])){ma=177;break}j=l+-2.0;if(!(h>+di(V,j,A))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,l,A))){ma=177;break}oa=+g[k>>2];h=l+2.0;if(!(oa>+di(V,h,A))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,j,z))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,l,z))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,h,z))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,j,B))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,l,B))){ma=177;break}oa=+g[k>>2];if(!(oa>+di(V,h,B)))ma=177}else ma=177;while(0);if((ma|0)==177){ma=0;h=+g[k>>2];if(!(h<+g[f>>2]))break;if(!(h<+g[o+(v<<2)>>2]))break;e=v+1|0;if(!(h<+g[o+(e<<2)>>2]))break;if(!(h<+g[p+(a<<2)>>2]))break;if(!(h<+g[p+(e<<2)>>2]))break;if(!(h<+g[q+(a<<2)>>2]))break;if(!(h<+g[q+(v<<2)>>2]))break;if(!(h<+g[q+(e<<2)>>2]))break;if(!(h<+g[r+(a<<2)>>2]))break;if(!(h<+g[r+(v<<2)>>2]))break;if(!(h<+g[r+(e<<2)>>2]))break;if(!(h<+g[s+(a<<2)>>2]))break;if(!(h<+g[s+(v<<2)>>2]))break;if(!(h<+g[s+(e<<2)>>2]))break;if(!(h<+g[t+(a<<2)>>2]))break;if(!(h<+g[t+(v<<2)>>2]))break;if(!(h<+g[t+(e<<2)>>2]))break;j=l+-2.0;if(!(h<+di(V,j,A)))break;oa=+g[k>>2];if(!(oa<+di(V,l,A)))break;oa=+g[k>>2];h=l+2.0;if(!(oa<+di(V,h,A)))break;oa=+g[k>>2];if(!(oa<+di(V,j,z)))break;oa=+g[k>>2];if(!(oa<+di(V,l,z)))break;oa=+g[k>>2];if(!(oa<+di(V,h,z)))break;oa=+g[k>>2];if(!(oa<+di(V,j,B)))break;oa=+g[k>>2];if(!(oa<+di(V,l,B)))break;oa=+g[k>>2];if(!(oa<+di(V,h,B)))break}c[Q>>2]=Y;c[R>>2]=Z;c[S>>2]=c[k>>2];g[T>>2]=+ai(b,Y,u);bi(ja,U,+(v>>>0),C,Y);e=c[la>>2]|0;if((e|0)==(c[J>>2]|0)){ci(ka,ja);break}else{f=ja;E=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(E|0));c[la>>2]=(c[la>>2]|0)+36;break}}while(0);v=v+1|0}while(v>>>0>>0)}}while(w>>>0>>0)}}if(_>>>0>=(((c[aa>>2]|0)-(c[ba>>2]|0)>>5)+-1|0)>>>0)break a}if((ma|0)==8){ma=kh(kh(nz(kh(kh(kh(10696,22521)|0,21425)|0,34302)|0,192)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}else if((ma|0)==10){ma=kh(kh(nz(kh(kh(kh(10696,22596)|0,21425)|0,34302)|0,193)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}else if((ma|0)==75){ma=kh(kh(nz(kh(kh(kh(10696,22521)|0,21425)|0,34302)|0,277)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}else if((ma|0)==77){ma=kh(kh(nz(kh(kh(kh(10696,22648)|0,21425)|0,34302)|0,278)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}else if((ma|0)==143){ma=kh(kh(nz(kh(kh(kh(10696,22705)|0,21425)|0,34302)|0,362)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}else if((ma|0)==145){ma=kh(kh(nz(kh(kh(kh(10696,22762)|0,21425)|0,34302)|0,363)|0,34309)|0,22573)|0;c[ja>>2]=ty(ma+(c[(c[ma>>2]|0)+-12>>2]|0)|0)|0;b=GD(ja,13680)|0;b=Uc[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;ED(ja);oz(ma,b)|0;bz(ma)|0;Zb()}}while(0);i=na;return}function Lh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0.0,R=0.0;N=i;i=i+64|0;K=N+60|0;H=N+12|0;I=N+48|0;J=N;C=+g[a+52>>2];C=C*C;G=+g[a+56>>2];j=G+1.0;G=j*j/G;L=a+60|0;v=a+64|0;w=a+48|0;x=a+32|0;y=J+4|0;r=a+88|0;s=I+4|0;t=I+8|0;u=J+8|0;a=c[L>>2]|0;a:do if((c[v>>2]|0)!=(a|0)){q=0;o=0;while(1){p=a+(q*36|0)|0;k=a+(q*36|0)+16|0;d=c[k>>2]|0;e=c[w>>2]|0;if((d|0)>=(e|0)){a=3;break}n=a+(q*36|0)+12|0;P=c[n>>2]|0;m=($(P,e)|0)+d|0;l=a+(q*36|0)+4|0;Q=1.0/+(1<>2]*Q+j;j=+g[l>>2]*Q+j;d=~~(h+.5);e=~~(j+.5);P=c[x>>2]|0;f=P+(m<<5)|0;ei(H,I,P+(m+-1<<5)|0,f,P+(m+1<<5)|0,d,e)|0;if((fi(J,H,I)|0?(D=+g[J>>2],E=+g[y>>2],!(D*D+E*E>+g[r>>2])):0)?(F=a+(q*36|0)+32|0,gi(F,H)|0):0){m=a+(q*36|0)+24|0;Q=+g[m>>2];if(!(Q==+g[(Sh(f,e)|0)+(d<<2)>>2])){a=8;break}R=+g[(Sh(f,e)|0)+(d<<2)>>2];Q=+g[u>>2];g[m>>2]=R-(+g[I>>2]*D+ +g[s>>2]*E+ +g[t>>2]*Q);bi(p,l,h+D,j+E,c[n>>2]|0);h=+(c[k>>2]|0)+Q;d=a+(q*36|0)+20|0;g[d>>2]=h;j=+(c[w>>2]|0);if(!(h<0.0)){if(h>j)h=j}else h=0.0;g[d>>2]=h;if(((((+O(+(+g[F>>2]))>2],R*R>=C):0)?(z=+g[p>>2],z>=0.0):0)?(A=c[x>>2]|0,z<+((c[A+4>>2]|0)>>>0)):0)?(B=+g[l>>2],B>=0.0):0)?B<+((c[A+8>>2]|0)>>>0):0){g[a+(q*36|0)+28>>2]=+ai(b,c[n>>2]|0,h);d=o+1|0;f=(c[L>>2]|0)+(o*36|0)|0;a=p;e=f+36|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(e|0))}else d=o}else d=o;q=q+1|0;a=c[L>>2]|0;if(q>>>0>=(((c[v>>2]|0)-a|0)/36|0)>>>0){M=d;break a}else o=d}if((a|0)==3){P=kh(kh(nz(kh(kh(kh(10696,22819)|0,21425)|0,34302)|0,489)|0,34309)|0,22891)|0;c[K>>2]=ty(P+(c[(c[P>>2]|0)+-12>>2]|0)|0)|0;J=GD(K,13680)|0;J=Uc[c[(c[J>>2]|0)+28>>2]&63](J,10)|0;ED(K);oz(P,J)|0;bz(P)|0;Zb()}else if((a|0)==8){P=kh(kh(nz(kh(kh(kh(10696,22928)|0,21425)|0,34302)|0,526)|0,34309)|0,22985)|0;c[K>>2]=ty(P+(c[(c[P>>2]|0)+-12>>2]|0)|0)|0;J=GD(K,13680)|0;J=Uc[c[(c[J>>2]|0)+28>>2]&63](J,10)|0;ED(K);oz(P,J)|0;bz(P)|0;Zb()}}else M=0;while(0);hi(L,M);i=N;return}function Mh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+16|0;d=m+12|0;l=m;e=a+60|0;j=a+64|0;k=a+84|0;f=c[k>>2]|0;do if((((c[j>>2]|0)-(c[e>>2]|0)|0)/36|0)>>>0>f>>>0){g=a+16|0;b=c[g>>2]|0;h=((c[a+20>>2]|0)-b|0)/12|0;if((h|0)!=(c[a+8>>2]|0)){n=kh(kh(nz(kh(kh(kh(10696,23028)|0,21425)|0,34302)|0,454)|0,34309)|0,23083)|0;c[d>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;o=GD(d,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(d);oz(n,o)|0;bz(n)|0;Zb()}b=((c[b+4>>2]|0)-(c[b>>2]|0)|0)/12|0;if((b|0)!=(c[a+12>>2]|0)){o=kh(kh(nz(kh(kh(kh(10696,23109)|0,21425)|0,34302)|0,455)|0,34309)|0,23083)|0;c[d>>2]=ty(o+(c[(c[o>>2]|0)+-12>>2]|0)|0)|0;n=GD(d,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(d);oz(o,n)|0;bz(o)|0;Zb()}c[l>>2]=0;p=l+4|0;c[p>>2]=0;c[l+8>>2]=0;Oh(g,l,e,h,b,c[a>>2]|0,c[a+4>>2]|0,f);h=c[e>>2]|0;o=c[l>>2]|0;c[e>>2]=o;c[l>>2]=h;h=c[j>>2]|0;n=c[p>>2]|0;c[j>>2]=n;c[p>>2]=h;h=a+68|0;a=l+8|0;j=c[h>>2]|0;c[h>>2]=c[a>>2];c[a>>2]=j;if(((n-o|0)/36|0)>>>0>(c[k>>2]|0)>>>0){p=kh(kh(nz(kh(kh(kh(10696,23167)|0,21425)|0,34302)|0,469)|0,34309)|0,23236)|0;c[d>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;o=GD(d,13680)|0;o=Uc[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;ED(d);oz(p,o)|0;bz(p)|0;Zb()}else{Wh(l);break}}while(0);i=m;return}function Nh(b,d){b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+48|0;x=y;w=y+4|0;if(!(a[b+28>>0]|0)){d=c[b+64>>2]|0;f=c[b+60>>2]|0;e=(d-f|0)/36|0;if((d|0)!=(f|0)){b=0;do{g[f+(b*36|0)+8>>2]=0.0;b=b+1|0}while((b|0)!=(e|0))}}else{u=b+72|0;f=c[u>>2]|0;v=b+76|0;e=c[v>>2]|0;if((e|0)!=(f|0)){do e=e+-36|0;while((e|0)!=(f|0));c[v>>2]=e}p=b+60|0;q=b+64|0;Th(u,(c[q>>2]|0)-(c[p>>2]|0)|0);r=b+92|0;Gj(r,d);s=b+144|0;t=w+8|0;o=b+80|0;e=c[p>>2]|0;if((c[q>>2]|0)!=(e|0)){n=0;do{l=c[e+(n*36|0)+12>>2]|0;m=1.0/+(1<>2]*m+h;h=+g[e+(n*36|0)+4>>2]*m+h;m=+g[e+(n*36|0)+28>>2]*m;j=+(((c[(Ph(d,l,0)|0)+4>>2]|0)+-1|0)>>>0);if(!(k<0.0)){if(!(k>j))j=k}else j=0.0;k=+(((c[(Ph(d,c[(c[p>>2]|0)+(n*36|0)+12>>2]|0,0)|0)+8>>2]|0)+-1|0)>>>0);if(!(h<0.0)){if(h>k)h=k}else h=0.0;l=c[p>>2]|0;Hj(r,c[s>>2]|0,x,c[l+(n*36|0)+12>>2]|0,c[l+(n*36|0)+16>>2]|0,j,h,m);if((c[x>>2]|0)>0){l=0;do{e=w;f=(c[p>>2]|0)+(n*36|0)|0;b=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(b|0));c[t>>2]=c[(c[s>>2]|0)+(l<<2)>>2];e=c[v>>2]|0;if((e|0)==(c[o>>2]|0))ci(u,w);else{f=w;b=e+36|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(b|0));c[v>>2]=(c[v>>2]|0)+36}l=l+1|0}while((l|0)<(c[x>>2]|0))}n=n+1|0;e=c[p>>2]|0}while(n>>>0<(((c[q>>2]|0)-e|0)/36|0)>>>0)}ii(p,u)}i=y;return}function Oh(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+48|0;z=E+32|0;y=E+28|0;x=E+24|0;A=E+20|0;B=E+16|0;C=E+12|0;D=E+8|0;t=E;m=$(f,e)|0;n=+_(+(+(h|0)/+(e|0)));l=+_(+(+(j|0)/+(f|0)));h=c[b>>2]|0;w=b+4|0;e=c[w>>2]|0;if((e|0)!=(h|0)){do e=e+-36|0;while((e|0)!=(h|0));c[w>>2]=e}v=(k|0)/(m|0)|0;r=~~n;s=~~l;Th(b,k);u=a+4|0;q=c[u>>2]|0;j=c[a>>2]|0;f=(q-j|0)/12|0;if((q|0)!=(j|0)){p=0;do{q=c[j+(p*12|0)+4>>2]|0;m=c[j+(p*12|0)>>2]|0;k=(q-m|0)/12|0;if((q|0)!=(m|0)){q=0;do{h=c[m+(q*12|0)>>2]|0;o=m+(q*12|0)+4|0;e=c[o>>2]|0;if((e|0)!=(h|0)){do e=e+-8|0;while((e|0)!=(h|0));c[o>>2]=e}q=q+1|0}while((q|0)!=(k|0))}p=p+1|0}while((p|0)!=(f|0))}o=d+4|0;n=+(r|0);l=+(s|0);k=t+4|0;e=c[d>>2]|0;if((c[o>>2]|0)!=(e|0)){m=0;do{j=~~(+g[e+(m*36|0)+4>>2]/l);f=c[(c[a>>2]|0)+(~~(+g[e+(m*36|0)>>2]/n)*12|0)>>2]|0;g[t>>2]=+O(+(+g[e+(m*36|0)+24>>2]));c[k>>2]=m;e=f+(j*12|0)+4|0;h=c[e>>2]|0;if((h|0)==(c[f+(j*12|0)+8>>2]|0))ji(f+(j*12|0)|0,t);else{q=t;r=c[q+4>>2]|0;s=h;c[s>>2]=c[q>>2];c[s+4>>2]=r;c[e>>2]=(c[e>>2]|0)+8}m=m+1|0;e=c[d>>2]|0}while(m>>>0<(((c[o>>2]|0)-e|0)/36|0)>>>0)}s=b+8|0;e=c[a>>2]|0;a:do if((c[u>>2]|0)!=(e|0)){r=0;b:while(1){h=c[e+(r*12|0)>>2]|0;if((c[e+(r*12|0)+4>>2]|0)!=(h|0)){q=0;do{o=h+(q*12|0)+4|0;p=h+(q*12|0)|0;h=c[p>>2]|0;j=c[o>>2]|0;f=h;m=j-f>>3;k=v>>>0>>0?v:m;if(k){c[A>>2]=f;c[B>>2]=h+(k<<3);c[C>>2]=j;c[x>>2]=c[A>>2];c[y>>2]=c[B>>2];c[z>>2]=c[C>>2];ki(x,y,z,D);t=c[p>>2]|0;if(k>>>0>(c[o>>2]|0)-t>>3>>>0?!(+g[t>>2]>=+g[t+(k<<3)>>2]):0)break b;f=v>>>0>m>>>0?m:v;if(f){m=0;do{h=(c[d>>2]|0)+((c[(c[p>>2]|0)+(m<<3)+4>>2]|0)*36|0)|0;e=c[w>>2]|0;if((e|0)==(c[s>>2]|0))ci(b,h);else{j=e+36|0;do{c[e>>2]=c[h>>2];e=e+4|0;h=h+4|0}while((e|0)<(j|0));c[w>>2]=(c[w>>2]|0)+36}m=m+1|0}while((m|0)!=(f|0))}e=c[a>>2]|0}q=q+1|0;h=c[e+(r*12|0)>>2]|0}while(q>>>0<(((c[e+(r*12|0)+4>>2]|0)-h|0)/12|0)>>>0)}r=r+1|0;if(r>>>0>=(((c[u>>2]|0)-e|0)/12|0)>>>0)break a}b=kh(kh(nz(kh(kh(kh(10696,23260)|0,21425)|0,34302)|0,661)|0,34309)|0,23318)|0;c[z>>2]=ty(b+(c[(c[b>>2]|0)+-12>>2]|0)|0)|0;d=GD(z,13680)|0;d=Uc[c[(c[d>>2]|0)+28>>2]&63](d,10)|0;ED(z);oz(b,d)|0;bz(b)|0;Zb()}while(0);i=E;return}function Ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g;if((c[a+16>>2]|0)>>>0<=b>>>0){f=kh(kh(nz(kh(kh(kh(10696,33251)|0,33100)|0,34302)|0,218)|0,34309)|0,25770)|0;c[e>>2]=ty(f+(c[(c[f>>2]|0)+-12>>2]|0)|0)|0;h=GD(e,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(e);oz(f,h)|0;bz(f)|0;Zb()}f=c[a+20>>2]|0;if(f>>>0>d>>>0){h=($(f,b)|0)+d|0;i=g;return (c[a+4>>2]|0)+(h<<5)|0}else{h=kh(kh(nz(kh(kh(kh(10696,33395)|0,33100)|0,34302)|0,219)|0,34309)|0,25790)|0;c[e>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(e,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(e);oz(h,g)|0;bz(h)|0;Zb()}return 0}function Qh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=d-e>>5;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(h=e+(b<<5)|0,(d|0)!=(h|0)):0)do{a=d+-32|0;c[g>>2]=a;io(a);d=c[g>>2]|0}while((d|0)!=(h|0))}else $i(a,b-f|0);return}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){a=(c[a+24>>2]|0)+($(c[a+12>>2]|0,b)|0)|0;i=e;return a|0}else{e=kh(kh(nz(kh(kh(kh(10696,25574)|0,25611)|0,34302)|0,119)|0,34309)|0,25715)|0;c[d>>2]=ty(e+(c[(c[e>>2]|0)+-12>>2]|0)|0)|0;a=GD(d,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(d);oz(e,a)|0;bz(e)|0;Zb()}return 0}function Sh(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){a=(c[a+24>>2]|0)+($(c[a+12>>2]|0,b)|0)|0;i=e;return a|0}else{e=kh(kh(nz(kh(kh(kh(10696,25574)|0,25611)|0,34302)|0,124)|0,34309)|0,25715)|0;c[d>>2]=ty(e+(c[(c[e>>2]|0)+-12>>2]|0)|0)|0;a=GD(d,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(d);oz(e,a)|0;bz(e)|0;Zb()}return 0}function Th(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;e=f;d=c[a>>2]|0;if((((c[a+8>>2]|0)-d|0)/36|0)>>>0>>0){si(e,b,((c[a+4>>2]|0)-d|0)/36|0,a+8|0);ti(a,e);ui(e)}i=f;return}function Uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e>>2;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b<<2)|0,(d|0)!=(g|0)):0){do d=d+-4|0;while((d|0)!=(g|0));c[h>>2]=d}}else Xi(a,b-f|0);return}function Vh(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-4|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Wh(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-36|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Xh(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b){d=a+4|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-32|0;c[d>>2]=e;io(e)}Vt(c[a>>2]|0)}return}function Yh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0))do{f=b+-12|0;c[e>>2]=f;Oi(f);b=c[e>>2]|0}while((b|0)!=(d|0));Vt(c[a>>2]|0)}return}function Zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=(d-e|0)/12|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(h=e+(b*12|0)|0,(d|0)!=(h|0)):0)do{a=d+-12|0;c[g>>2]=a;Oi(a);d=c[g>>2]|0}while((d|0)!=(h|0))}else Ni(a,b-f|0);return}function _h(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+4|0;d=c[g>>2]|0;e=c[a>>2]|0;f=(d-e|0)/12|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(h=e+(b*12|0)|0,(d|0)!=(h|0)):0)do{a=d+-12|0;c[g>>2]=a;Fi(a);d=c[g>>2]|0}while((d|0)!=(h|0))}else Ei(a,b-f|0);return}function $h(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f;e=c[a>>2]|0;if((c[a+4>>2]|0)-e>>5>>>0>b>>>0){a=~~+N(+(+Di(+((((c[e+4>>2]|0)>>>0)/((c[e+(b<<5)+4>>2]|0)>>>0)|0)>>>0))+.5));i=f;return a|0}else{f=kh(kh(nz(kh(kh(kh(10696,25506)|0,23408)|0,34302)|0,94)|0,34309)|0,25552)|0;c[d>>2]=ty(f+(c[(c[f>>2]|0)+-12>>2]|0)|0)|0;a=GD(d,13680)|0;a=Uc[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;ED(d);oz(f,a)|0;bz(f)|0;Zb()}return 0}function ai(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0,j=0;f=i;i=i+16|0;e=f;if(!(d>=0.0)){h=kh(kh(nz(kh(kh(kh(10696,33338)|0,33100)|0,34302)|0,232)|0,34309)|0,33372)|0;c[e>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;j=GD(e,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(e);oz(h,j)|0;bz(h)|0;Zb()}if(+(c[a+20>>2]|0)>d){d=+(1<>2]),+d);i=f;return +d}else{j=kh(kh(nz(kh(kh(kh(10696,33395)|0,33100)|0,34302)|0,233)|0,34309)|0,33446)|0;c[e>>2]=ty(j+(c[(c[j>>2]|0)+-12>>2]|0)|0)|0;h=GD(e,13680)|0;h=Uc[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;ED(e);oz(j,h)|0;bz(j)|0;Zb()}return +(0.0)}function bi(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;var f=0.0,h=0.0;f=+jv(1.0,e+-1|0)+-.5;h=+(1<>2]=h*c+f;g[b>>2]=h*d+f;return}function ci(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;g=a+4|0;d=c[a>>2]|0;f=(((c[g>>2]|0)-d|0)/36|0)+1|0;if(f>>>0>119304647)Rt(a);e=d;d=((c[a+8>>2]|0)-e|0)/36|0;if(d>>>0<59652323){d=d<<1;d=d>>>0>>0?f:d}else d=119304647;si(j,d,((c[g>>2]|0)-e|0)/36|0,a+8|0);f=j+8|0;g=c[f>>2]|0;h=g;d=b;e=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));c[f>>2]=g+36;ti(a,j);ui(j);i=k;return}function di(a,b,d){a=a|0;b=+b;d=+d;return +(+Ci(c[a+24>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,c[a+12>>2]|0,b,d))}function ei(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;j=o;k=c[d+4>>2]|0;l=c[e+4>>2]|0;m=(k|0)==(l|0);n=c[f+4>>2]|0;do if((m&1|0)==(n|0))if(((c[d+8>>2]|0)==(c[e+8>>2]|0)|0)==(c[f+8>>2]|0)){yi(a,b,d,e,f,g,h);break}else{h=kh(kh(nz(kh(kh(kh(10696,23337)|0,23408)|0,34302)|0,466)|0,34309)|0,23535)|0;c[j>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(j,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(j);oz(h,g)|0;bz(h)|0;Zb()}else{if(!(m&(l>>>1|0)==(n|0)))if((k>>>1|0)==(l|0)&(l|0)==(n|0)){Ai(a,b,d,e,f,g,h);break}else{n=kh(kh(nz(kh(kh(kh(10696,28540)|0,23408)|0,34302)|0,475)|0,34309)|0,23664)|0;c[j>>2]=ty(n+(c[(c[n>>2]|0)+-12>>2]|0)|0)|0;m=GD(j,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(j);oz(n,m)|0;bz(n)|0;Zb()}n=c[d+8>>2]|0;if((n|0)==(c[e+8>>2]|0)?(n>>>1|0)==(c[f+8>>2]|0):0){zi(a,b,d,e,f,g,h);break}h=kh(kh(nz(kh(kh(kh(10696,23567)|0,23408)|0,34302)|0,469)|0,34309)|0,23535)|0;c[j>>2]=ty(h+(c[(c[h>>2]|0)+-12>>2]|0)|0)|0;g=GD(j,13680)|0;g=Uc[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;ED(j);oz(h,g)|0;bz(h)|0;Zb()}while(0);i=o;return 1}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=i;i=i+48|0;d=e;if(vi(d,b,1.1920928955078125e-07)|0){wi(a,d,c);b=1}else b=0;i=e;return b|0}function gi(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;d=+g[b>>2];e=+g[b+16>>2];c=+g[b+4>>2];c=d*e-c*c;if(c==0.0)b=0;else{e=d+e;g[a>>2]=e*e/c;b=1}return b|0}function hi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=(d-e|0)/36|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b*36|0)|0,(d|0)!=(g|0)):0){do d=d+-36|0;while((d|0)!=(g|0));c[h>>2]=d}}else qi(a,b-f|0);return}function ii(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;a=b+8|0;b=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=b;return}function ji(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;g=a+4|0;d=c[a>>2]|0;f=((c[g>>2]|0)-d>>3)+1|0;if(f>>>0>536870911)Rt(a);e=d;d=(c[a+8>>2]|0)-e|0;if(d>>3>>>0<268435455){d=d>>2;d=d>>>0>>0?f:d}else d=536870911;ni(h,d,(c[g>>2]|0)-e>>3,a+8|0);g=h+8|0;f=c[g>>2]|0;d=b;e=c[d+4>>2]|0;b=f;c[b>>2]=c[d>>2];c[b+4>>2]=e;c[g>>2]=f+8;oi(a,h);pi(h);i=j;return}function ki(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;T=i;i=i+48|0;R=T+40|0;Q=T+36|0;M=T+32|0;N=T+28|0;O=T+24|0;P=T+20|0;K=T+16|0;L=T+12|0;F=T+8|0;G=T+4|0;H=T;C=c[b>>2]|0;f=c[d>>2]|0;a:do if((C|0)!=(f|0)){B=f;b=f;b:while(1){A=B;y=f+-8|0;z=b;h=b;j=B;x=f;w=f+-8|0;while(1){r=y;t=x+-4|0;u=x+-4|0;v=(C|0)==(x|0);o=h;c:while(1){n=c[a>>2]|0;f=n;h=j-f|0;m=h>>3;switch(m|0){case 1:case 0:break a;case 2:{S=6;break b}case 3:{b=n;S=12;break b}default:{}}if((h|0)<64){S=14;break b}q=(m|0)/2|0;U=n+(q<<3)|0;m=U;c[F>>2]=f;c[G>>2]=m;j=o;f=j+-8|0;p=f;c[H>>2]=p;c[M>>2]=c[F>>2];c[Q>>2]=c[G>>2];c[R>>2]=c[H>>2];h=li(M,Q,R,e)|0;l=+g[U>>2];k=+g[n>>2];if(l>2]|0)>>>0<(c[n+4>>2]|0)>>>0:0){v=o;break}p=j+-16|0;if((n|0)!=(p|0))while(1){k=+g[p>>2];if(l>2]|0,(c[q>>2]|0)>>>0>>0):0){f=D;q=E;S=49;break c}f=p+-8|0;if((n|0)==(f|0))break;else{U=p;p=f;f=U}}j=n+8|0;h=j;s=+g[w>>2];l=+g[n>>2];do if(!(s>2]|0)>>>0<(c[f>>2]|0)>>>0)break}else f=n+4|0;if((j|0)==(y|0))break a;else{o=n;m=j}while(1){k=+g[o+8>>2];if(k>2]|0,J>>>0<(c[f>>2]|0)>>>0):0){m=I;j=J;f=o;break}j=m+8|0;if((j|0)==(y|0))break a;else{o=m;h=j;m=j}}if((S|0)==25){S=0;j=f+12|0;m=j;j=c[j>>2]|0}U=c[h>>2]|0;g[h>>2]=s;c[y>>2]=U;c[m>>2]=c[t>>2];c[t>>2]=j;h=f+16|0}while(0);if((h|0)==(y|0))break a;p=n+4|0;j=r;while(1){l=+g[n>>2];f=h;k=+g[f>>2];d:do if(!(k>2]|0)>>>0<(c[p>>2]|0)>>>0:0)break d;f=f+8|0;h=f;k=+g[f>>2]}while(!(k>2];if(k>2]|0)>>>0>=(c[p>>2]|0)>>>0)break}if(f>>>0>=o>>>0)break;q=c[h>>2]|0;g[h>>2]=k;c[o>>2]=q;q=f+4|0;h=m+-4|0;U=c[q>>2]|0;c[q>>2]=c[h>>2];c[h>>2]=U;h=f+8|0}if(C>>>0>>0)break a;c[a>>2]=h;if(v)break a;else{j=x;o=z}}if((S|0)==45){q=f+-4|0;t=p;r=q;q=c[q>>2]|0;f=p;S=50}else if((S|0)==49){t=p;r=f;f=p;S=50}if((S|0)==50){S=0;v=c[n>>2]|0;g[n>>2]=k;c[t>>2]=v;v=n+4|0;p=c[v>>2]|0;c[v>>2]=q;c[r>>2]=p;p=f;v=o;h=h+1|0}U=n+8|0;f=U;e:do if(U>>>0

>>0)while(1){u=m;t=u+4|0;l=+g[u>>2];while(1){o=f;k=+g[o>>2];if(!(l>2]|0)>>>0>=(c[o+4>>2]|0)>>>0)break}f=o+8|0}q=p+-8|0;r=q;k=+g[q>>2];f:do if(!(l>2]|0)>>>0<(c[p+-4>>2]|0)>>>0:0)break f;p=r;q=p+-8|0;r=q;k=+g[q>>2]}while(!(l>>0>=q>>>0){r=m;break e}U=c[f>>2]|0;g[f>>2]=k;c[q>>2]=U;U=o+4|0;f=p+-4|0;p=c[U>>2]|0;c[U>>2]=c[f>>2];c[f>>2]=p;m=(u|0)==(o|0)?r:m;f=o+8|0;p=r;h=h+1|0}else r=m;while(0);t=f;m=r;do if((t|0)!=(m|0)){k=+g[t>>2];l=+g[m>>2];if(!(k>2]|0;m=m+4|0;p=c[m>>2]|0;if(o>>>0>=p>>>0)break}else{o=t+4|0;p=m+4|0;m=p;q=o;p=c[p>>2]|0;o=c[o>>2]|0}x=f;y=c[x>>2]|0;U=r;c[x>>2]=c[U>>2];c[U>>2]=y;c[q>>2]=p;c[m>>2]=o;h=h+1|0}while(0);if((C|0)==(t|0))break a;g:do if(!h)if(C>>>0>>0){h=n+8|0;if((h|0)==(t|0))break a;while(1){k=+g[n>>2];l=+g[n+8>>2];if(k>2]|0)>>>0<(c[n+12>>2]|0)>>>0:0){m=z;h=v;break g}m=h+8|0;if((m|0)==(t|0))break a;else{n=h;h=m}}}else{j=f;h=j+8|0;if((h|0)==(B|0))break a;while(1){k=+g[j>>2];l=+g[j+8>>2];if(k>2]|0)>>>0<(c[j+12>>2]|0)>>>0:0){m=A;j=B;h=A;break g}j=h+8|0;if((j|0)==(B|0))break a;else{U=h;h=j;j=U}}}else{m=z;h=v}while(0);if(C>>>0>>0){b=t;break}c[a>>2]=t+8;f=m;n=f+-8|0;if((C|0)==(j|0))break a;else{y=n;z=m;x=f;w=n}}c[d>>2]=f;if((C|0)==(b|0))break a;else{B=b;b=f}}if((S|0)==6){m=j+-8|0;c[d>>2]=m;k=+g[n>>2];l=+g[m>>2];if(k>2]|0;f=c[f>>2]|0}else{if(l>2]|0;h=c[j+-4>>2]|0;if(f>>>0>=h>>>0)break;j=j+-4|0}g[n>>2]=l;g[m>>2]=k;c[b>>2]=h;c[j>>2]=f;break}else if((S|0)==12){c[N>>2]=f;c[O>>2]=b+8;U=j+-8|0;c[d>>2]=U;c[P>>2]=U;c[M>>2]=c[N>>2];c[Q>>2]=c[O>>2];c[R>>2]=c[P>>2];li(M,Q,R,e)|0;break}else if((S|0)==14){c[K>>2]=f;c[L>>2]=b;c[Q>>2]=c[K>>2];c[R>>2]=c[L>>2];mi(Q,R,e);break}}while(0);i=T;return}function li(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0,j=0.0,k=0,l=0;l=c[b>>2]|0;k=c[a>>2]|0;j=+g[k>>2];h=+g[l>>2];if(!(j>2]|0)>>>0<(c[l+4>>2]|0)>>>0;else b=1;i=c[d>>2]|0;f=+g[i>>2];if(!(h>2]|0)>>>0<(c[i+4>>2]|0)>>>0;else e=1;do if(!b)if(e){g[l>>2]=f;g[i>>2]=h;d=l+4|0;i=i+4|0;a=c[d>>2]|0;c[d>>2]=c[i>>2];c[i>>2]=a;f=+g[k>>2];h=+g[l>>2];if(!(f>2]|0;a=c[d>>2]|0;if(b>>>0>=a>>>0){e=1;break}}else{b=k+4|0;e=b;a=c[d>>2]|0;b=c[b>>2]|0}g[k>>2]=h;g[l>>2]=f;c[e>>2]=a;c[d>>2]=b;e=2}else e=0;else{if(e){g[k>>2]=f;g[i>>2]=j;k=k+4|0;e=i+4|0;l=c[k>>2]|0;c[k>>2]=c[e>>2];c[e>>2]=l;e=1;break}g[k>>2]=h;g[l>>2]=j;k=k+4|0;a=l+4|0;d=c[k>>2]|0;c[k>>2]=c[a>>2];c[a>>2]=d;f=+g[i>>2];if(!(j>2]|0;if(d>>>0>=b>>>0){e=1;break}}else{b=i+4|0;e=b;b=c[b>>2]|0}g[l>>2]=f;g[i>>2]=j;c[a>>2]=b;c[e>>2]=d;e=2}while(0);return e|0}function mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0.0,j=0,k=0,l=0,m=0;k=c[b>>2]|0;l=k+-8|0;d=c[a>>2]|0;if((d|0)!=(l|0)){do{a:do if((d|0)!=(k|0)){b=d+8|0;if((b|0)==(k|0))b=d;else{e=b;h=d;while(1){j=h+4|0;i=+g[h>>2];b=e;e=h;while(1){f=+g[b>>2];if(i>2]|0)>>>0<(c[e+12>>2]|0)>>>0:0)break;e=b+8|0;if((e|0)==(k|0)){b=h;break a}else{m=b;b=e;e=m}}e=b+8|0;if((e|0)==(k|0))break;else h=b}}}else b=k;while(0);if((b|0)!=(d|0)){h=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=h;h=d+4|0;m=b+4|0;j=c[h>>2]|0;c[h>>2]=c[m>>2];c[m>>2]=j}d=d+8|0}while((d|0)!=(l|0));c[a>>2]=d}return}function ni(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<3)|0;c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<3);return}function oi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>3)<<3)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function pi(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-8|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function qi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;if(((f-d|0)/36|0)>>>0>>0){e=c[a>>2]|0;g=((d-e|0)/36|0)+b|0;if(g>>>0>119304647)Rt(a);d=(f-e|0)/36|0;if(d>>>0<59652323){d=d<<1;d=d>>>0>>0?g:d}else d=119304647;si(j,d,((c[h>>2]|0)-e|0)/36|0,a+8|0);h=j+8|0;g=c[h>>2]|0;b=b*36|0;iH(g|0,0,b|0)|0;c[h>>2]=g+b;ti(a,j);ui(j)}else ri(a,b);i=k;return}function ri(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;a=c[e>>2]|0;do{d=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=(c[e>>2]|0)+36|0;c[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function si(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b*36|0)|0;c[a>>2]=e;d=e+(d*36|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*36|0);return}function ti(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(((f|0)/-36|0)*36|0)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function ui(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-36|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function vi(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,f=0.0,h=0,i=0.0,j=0,k=0,l=0,m=0;d=+xi(b);if(!(+O(+d)<=c)){i=1.0/d;h=b+16|0;k=b+20|0;e=+g[k>>2];m=b+32|0;g[a>>2]=i*(+g[h>>2]*+g[m>>2]-e*e);l=b+8|0;j=b+4|0;e=i*(+g[l>>2]*+g[b+28>>2]-+g[j>>2]*+g[m>>2]);g[a+4>>2]=e;d=i*(+g[j>>2]*+g[k>>2]-+g[l>>2]*+g[h>>2]);g[a+8>>2]=d;c=+g[l>>2];g[a+16>>2]=i*(+g[b>>2]*+g[m>>2]-c*c);c=i*(+g[l>>2]*+g[b+12>>2]-+g[b>>2]*+g[k>>2]);g[a+20>>2]=c;f=+g[j>>2];g[a+32>>2]=i*(+g[b>>2]*+g[h>>2]-f*f);g[a+12>>2]=e;g[a+24>>2]=d;g[a+28>>2]=c;b=1}else b=0;return b|0}function wi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=c+4|0;d=c+8|0;g[a>>2]=+g[b>>2]*+g[c>>2]+ +g[b+4>>2]*+g[e>>2]+ +g[b+8>>2]*+g[d>>2];g[a+4>>2]=+g[b+12>>2]*+g[c>>2]+ +g[b+16>>2]*+g[e>>2]+ +g[b+20>>2]*+g[d>>2];g[a+8>>2]=+g[b+24>>2]*+g[c>>2]+ +g[b+28>>2]*+g[e>>2]+ +g[b+32>>2]*+g[d>>2];return}function xi(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,h=0.0;d=+g[a+32>>2];h=+g[a+4>>2];f=+g[a+8>>2];e=+g[a+20>>2];c=+g[a+16>>2];b=+g[a>>2];return +(h*2.0*f*e-d*(h*h)-f*f*c-e*e*b+d*(c*b))}function yi(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0;v=i;i=i+32|0;k=v+20|0;q=v+16|0;t=v+12|0;r=v+8|0;u=v+4|0;s=v;if((h|0)>0?(l=h+1|0,p=c[e+4>>2]|0,l>>>0

>>0):0){m=j+-1|0;if((j|0)>0?(n=j+1|0,o=c[e+8>>2]|0,n>>>0>>0):0){if((c[d+4>>2]|0)!=(p|0)){w=kh(kh(nz(kh(kh(kh(10696,24217)|0,23408)|0,34302)|0,311)|0,34309)|0,23899)|0;c[k>>2]=ty(w+(c[(c[w>>2]|0)+-12>>2]|0)|0)|0;x=GD(k,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(k);oz(w,x)|0;bz(w)|0;Zb()}if((p|0)!=(c[f+4>>2]|0)){x=kh(kh(nz(kh(kh(kh(10696,24616)|0,23408)|0,34302)|0,312)|0,34309)|0,23899)|0;c[k>>2]=ty(x+(c[(c[x>>2]|0)+-12>>2]|0)|0)|0;w=GD(k,13680)|0;w=Uc[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;ED(k);oz(x,w)|0;bz(x)|0;Zb()}if((c[d+8>>2]|0)!=(o|0)){x=kh(kh(nz(kh(kh(kh(10696,24269)|0,23408)|0,34302)|0,313)|0,34309)|0,23899)|0;c[k>>2]=ty(x+(c[(c[x>>2]|0)+-12>>2]|0)|0)|0;w=GD(k,13680)|0;w=Uc[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;ED(k);oz(x,w)|0;bz(x)|0;Zb()}if((o|0)==(c[f+8>>2]|0)){p=(Sh(d,m)|0)+(h<<2)|0;k=Sh(d,j)|0;d=(Sh(d,n)|0)+(h<<2)|0;D=(Sh(e,j)|0)+(h<<2)|0;x=(Sh(f,m)|0)+(h<<2)|0;o=Sh(f,j)|0;w=(Sh(f,n)|0)+(h<<2)|0;Bi(q,t,r,u,s,e,h,j);z=+g[o+(h<<2)>>2];y=+g[k+(h<<2)>>2];A=z+(y-+g[D>>2]*2.0);j=h+-1|0;C=(+g[k+(j<<2)>>2]-+g[k+(l<<2)>>2]+(+g[o+(l<<2)>>2]-+g[o+(j<<2)>>2]))*.25;B=(+g[p>>2]-+g[d>>2]+(+g[w>>2]-+g[x>>2]))*.25;c[a>>2]=c[r>>2];x=c[s>>2]|0;c[a+4>>2]=x;g[a+8>>2]=C;c[a+12>>2]=x;c[a+16>>2]=c[u>>2];g[a+20>>2]=B;g[a+24>>2]=C;g[a+28>>2]=B;g[a+32>>2]=A;g[b>>2]=-+g[q>>2];g[b+4>>2]=-+g[t>>2];g[b+8>>2]=-((z-y)*.5);i=v;return}else{D=kh(kh(nz(kh(kh(kh(10696,24668)|0,23408)|0,34302)|0,314)|0,34309)|0,23899)|0;c[k>>2]=ty(D+(c[(c[D>>2]|0)+-12>>2]|0)|0)|0;x=GD(k,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(k);oz(D,x)|0;bz(D)|0;Zb()}}D=kh(kh(nz(kh(kh(kh(10696,23767)|0,23408)|0,34302)|0,310)|0,34309)|0,23826)|0;c[k>>2]=ty(D+(c[(c[D>>2]|0)+-12>>2]|0)|0)|0;x=GD(k,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(k);oz(D,x)|0;bz(D)|0;Zb()}D=kh(kh(nz(kh(kh(kh(10696,23693)|0,23408)|0,34302)|0,309)|0,34309)|0,23751)|0;c[k>>2]=ty(D+(c[(c[D>>2]|0)+-12>>2]|0)|0)|0;x=GD(k,13680)|0;x=Uc[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;ED(k);oz(D,x)|0;bz(D)|0;Zb()}function zi(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0.0;E=i;i=i+32|0;x=E+20|0;z=E+16|0;C=E+12|0;A=E+8|0;D=E+4|0;B=E;if((h|0)>0?(y=h+1|0,k=c[e+4>>2]|0,y>>>0>>0):0){l=j+-1|0;if((j|0)>0?(n=j+1|0,m=c[e+8>>2]|0,n>>>0>>0):0){if((c[d+4>>2]|0)!=(k|0)){w=kh(kh(nz(kh(kh(kh(10696,24217)|0,23408)|0,34302)|0,415)|0,34309)|0,23899)|0;c[x>>2]=ty(w+(c[(c[w>>2]|0)+-12>>2]|0)|0)|0;v=GD(x,13680)|0;v=Uc[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;ED(x);oz(w,v)|0;bz(w)|0;Zb()}w=f+4|0;if((k>>>1|0)!=(c[w>>2]|0)){v=kh(kh(nz(kh(kh(kh(10696,23929)|0,23408)|0,34302)|0,416)|0,34309)|0,23899)|0;c[x>>2]=ty(v+(c[(c[v>>2]|0)+-12>>2]|0)|0)|0;u=GD(x,13680)|0;u=Uc[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;ED(x);oz(v,u)|0;bz(v)|0;Zb()}if((c[d+8>>2]|0)!=(m|0)){v=kh(kh(nz(kh(kh(kh(10696,24269)|0,23408)|0,34302)|0,417)|0,34309)|0,23899)|0;c[x>>2]=ty(v+(c[(c[v>>2]|0)+-12>>2]|0)|0)|0;u=GD(x,13680)|0;u=Uc[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;ED(x);oz(v,u)|0;bz(v)|0;Zb()}v=f+8|0;if((m>>>1|0)!=(c[v>>2]|0)){u=kh(kh(nz(kh(kh(kh(10696,24045)|0,23408)|0,34302)|0,418)|0,34309)|0,23899)|0;c[x>>2]=ty(u+(c[(c[u>>2]|0)+-12>>2]|0)|0)|0;m=GD(x,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(x);oz(u,m)|0;bz(u)|0;Zb()}m=(Sh(d,l)|0)+(h<<2)|0;u=Sh(d,j)|0;k=(Sh(d,n)|0)+(h<<2)|0;l=(Sh(e,j)|0)+(h<<2)|0;p=+(h|0)*.5+-.25;q=+(j|0)*.5+-.25;r=p+-.5;if(!(r>=0.0)){d=kh(kh(nz(kh(kh(kh(10696,24323)|0,23408)|0,34302)|0,428)|0,34309)|0,24364)|0;c[x>>2]=ty(d+(c[(c[d>>2]|0)+-12>>2]|0)|0)|0;n=GD(x,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(x);oz(d,n)|0;bz(d)|0;Zb()}s=q+-.5;if(!(s>=0.0)){d=kh(kh(nz(kh(kh(kh(10696,24418)|0,23408)|0,34302)|0,429)|0,34309)|0,24459)|0;c[x>>2]=ty(d+(c[(c[d>>2]|0)+-12>>2]|0)|0)|0;n=GD(x,13680)|0;n=Uc[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;ED(x);oz(d,n)|0;bz(d)|0;Zb()}t=p+.5;if(!(t<+((c[w>>2]|0)>>>0))){w=kh(kh(nz(kh(kh(kh(10696,24513)|0,23408)|0,34302)|0,430)|0,34309)|0,24364)|0;c[x>>2]=ty(w+(c[(c[w>>2]|0)+-12>>2]|0)|0)|0;d=GD(x,13680)|0;d=Uc[c[(c[d>>2]|0)+28>>2]&63](d,10)|0;ED(x);oz(w,d)|0;bz(w)|0;Zb()}o=q+.5;if(o<+((c[v>>2]|0)>>>0)){Bi(z,C,A,D,B,e,h,j);G=+di(f,p,q);F=+g[u+(h<<2)>>2];H=G+(F-+g[l>>2]*2.0);I=+g[u+(h+-1<<2)>>2];I=I+ +di(f,t,q);t=+g[u+(y<<2)>>2];r=(I-(t+ +di(f,r,q)))*.25;q=+g[m>>2];q=q+ +di(f,p,o);t=+g[k>>2];t=(q-(t+ +di(f,p,s)))*.25;c[a>>2]=c[A>>2];j=c[B>>2]|0;c[a+4>>2]=j;g[a+8>>2]=r;c[a+12>>2]=j;c[a+16>>2]=c[D>>2];g[a+20>>2]=t;g[a+24>>2]=r;g[a+28>>2]=t;g[a+32>>2]=H;g[b>>2]=-+g[z>>2];g[b+4>>2]=-+g[C>>2];g[b+8>>2]=-((G-F)*.5);i=E;return}else{E=kh(kh(nz(kh(kh(kh(10696,24564)|0,23408)|0,34302)|0,431)|0,34309)|0,24459)|0;c[x>>2]=ty(E+(c[(c[E>>2]|0)+-12>>2]|0)|0)|0;j=GD(x,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(x);oz(E,j)|0;bz(E)|0;Zb()}}E=kh(kh(nz(kh(kh(kh(10696,23767)|0,23408)|0,34302)|0,414)|0,34309)|0,23826)|0;c[x>>2]=ty(E+(c[(c[E>>2]|0)+-12>>2]|0)|0)|0;j=GD(x,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(x);oz(E,j)|0;bz(E)|0;Zb()}E=kh(kh(nz(kh(kh(kh(10696,23693)|0,23408)|0,34302)|0,413)|0,34309)|0,23751)|0;c[x>>2]=ty(E+(c[(c[E>>2]|0)+-12>>2]|0)|0)|0;j=GD(x,13680)|0;j=Uc[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;ED(x);oz(E,j)|0;bz(E)|0;Zb()}function Ai(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;x=i;i=i+32|0;k=x+28|0;v=x+24|0;w=x+20|0;q=x+16|0;t=x+12|0;r=x+8|0;u=x+4|0;s=x;if((h|0)>0?(l=h+1|0,p=c[e+4>>2]|0,l>>>0

>>0):0){m=j+-1|0;if((j|0)>0?(n=j+1|0,o=c[e+8>>2]|0,n>>>0>>0):0){if(((c[d+4>>2]|0)>>>1|0)!=(p|0)){y=kh(kh(nz(kh(kh(kh(10696,23842)|0,23408)|0,34302)|0,361)|0,34309)|0,23899)|0;c[k>>2]=ty(y+(c[(c[y>>2]|0)+-12>>2]|0)|0)|0;z=GD(k,13680)|0;z=Uc[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;ED(k);oz(y,z)|0;bz(y)|0;Zb()}if((p|0)!=(c[f+4>>2]|0)){z=kh(kh(nz(kh(kh(kh(10696,23929)|0,23408)|0,34302)|0,362)|0,34309)|0,23899)|0;c[k>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(k,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(k);oz(z,y)|0;bz(z)|0;Zb()}if(((c[d+8>>2]|0)>>>1|0)!=(o|0)){z=kh(kh(nz(kh(kh(kh(10696,23986)|0,23408)|0,34302)|0,363)|0,34309)|0,23899)|0;c[k>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(k,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(k);oz(z,y)|0;bz(z)|0;Zb()}if((o|0)==(c[f+8>>2]|0)){o=(Sh(e,j)|0)+(h<<2)|0;z=(Sh(f,m)|0)+(h<<2)|0;p=Sh(f,j)|0;y=(Sh(f,n)|0)+(h<<2)|0;bi(v,w,+(h|0),+(j|0),1);Bi(q,t,r,u,s,e,h,j);G=+g[v>>2];D=+g[w>>2];A=+di(d,G,D);B=+g[p+(h<<2)>>2];C=B+(A-+g[o>>2]*2.0);F=+di(d,G+-2.0,D);F=F+ +g[p+(l<<2)>>2];E=+di(d,G+2.0,D);E=(F-(E+ +g[p+(h+-1<<2)>>2]))*.25;F=+di(d,G,D+-2.0);F=F+ +g[y>>2];D=+di(d,G,D+2.0);D=(F-(D+ +g[z>>2]))*.25;c[a>>2]=c[r>>2];z=c[s>>2]|0;c[a+4>>2]=z;g[a+8>>2]=E;c[a+12>>2]=z;c[a+16>>2]=c[u>>2];g[a+20>>2]=D;g[a+24>>2]=E;g[a+28>>2]=D;g[a+32>>2]=C;g[b>>2]=-+g[q>>2];g[b+4>>2]=-+g[t>>2];g[b+8>>2]=-((B-A)*.5);i=x;return}else{z=kh(kh(nz(kh(kh(kh(10696,24045)|0,23408)|0,34302)|0,364)|0,34309)|0,23899)|0;c[k>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(k,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(k);oz(z,y)|0;bz(z)|0;Zb()}}z=kh(kh(nz(kh(kh(kh(10696,23767)|0,23408)|0,34302)|0,360)|0,34309)|0,23826)|0;c[k>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(k,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(k);oz(z,y)|0;bz(z)|0;Zb()}z=kh(kh(nz(kh(kh(kh(10696,23693)|0,23408)|0,34302)|0,359)|0,34309)|0,23751)|0;c[k>>2]=ty(z+(c[(c[z>>2]|0)+-12>>2]|0)|0)|0;y=GD(k,13680)|0;y=Uc[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;ED(k);oz(z,y)|0;bz(z)|0;Zb()}function Bi(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+16|0;l=p;if((j|0)>0?(m=j+1|0,m>>>0<(c[h+4>>2]|0)>>>0):0){n=k+-1|0;if((k|0)>0?(o=k+1|0,o>>>0<(c[h+8>>2]|0)>>>0):0){n=Sh(h,n)|0;q=n+(j<<2)|0;s=Sh(h,k)|0;l=s+(j<<2)|0;h=Sh(h,o)|0;o=h+(j<<2)|0;r=s+(m<<2)|0;k=j+-1|0;j=s+(k<<2)|0;g[a>>2]=(+g[r>>2]-+g[j>>2])*.5;g[b>>2]=(+g[o>>2]-+g[q>>2])*.5;g[d>>2]=+g[r>>2]+(+g[j>>2]-+g[l>>2]*2.0);g[e>>2]=+g[o>>2]+(+g[q>>2]-+g[l>>2]*2.0);g[f>>2]=(+g[n+(k<<2)>>2]+ +g[h+(m<<2)>>2]-(+g[n+(m<<2)>>2]+ +g[h+(k<<2)>>2]))*.25;i=p;return}s=kh(kh(nz(kh(kh(kh(10696,24160)|0,23408)|0,34302)|0,285)|0,34309)|0,23826)|0;c[l>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(l,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(l);oz(s,r)|0;bz(s)|0;Zb()}s=kh(kh(nz(kh(kh(kh(10696,24104)|0,23408)|0,34302)|0,284)|0,34309)|0,23751)|0;c[l>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(l,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(l);oz(s,r)|0;bz(s)|0;Zb()}function Ci(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=+h;var j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0;q=i;i=i+16|0;n=q;o=~~+N(+f);if((o|0)!=(~~f|0)){p=kh(kh(nz(kh(kh(kh(10696,24722)|0,24774)|0,34302)|0,69)|0,34309)|0,24884)|0;c[n>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;m=GD(n,13680)|0;m=Uc[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;ED(n);oz(p,m)|0;bz(p)|0;Zb()}m=~~+N(+h);if((m|0)!=(~~h|0)){p=kh(kh(nz(kh(kh(kh(10696,24914)|0,24774)|0,34302)|0,70)|0,34309)|0,24884)|0;c[n>>2]=ty(p+(c[(c[p>>2]|0)+-12>>2]|0)|0)|0;l=GD(n,13680)|0;l=Uc[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;ED(n);oz(p,l)|0;bz(p)|0;Zb()}p=o+1|0;l=m+1|0;if(!((m|0)>-1&m>>>0>>0)){r=kh(kh(nz(kh(kh(kh(10696,24966)|0,24774)|0,34302)|0,79)|0,34309)|0,25012)|0;c[n>>2]=ty(r+(c[(c[r>>2]|0)+-12>>2]|0)|0)|0;s=GD(n,13680)|0;s=Uc[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;ED(n);oz(r,s)|0;bz(r)|0;Zb()}if(!((m|0)>-2&l>>>0>>0)){s=kh(kh(nz(kh(kh(kh(10696,25029)|0,24774)|0,34302)|0,80)|0,34309)|0,25089)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!((o|0)>-1&o>>>0>>0)){s=kh(kh(nz(kh(kh(kh(10696,25113)|0,24774)|0,34302)|0,81)|0,34309)|0,25158)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!((o|0)>-2&p>>>0>>0)){s=kh(kh(nz(kh(kh(kh(10696,25175)|0,24774)|0,34302)|0,82)|0,34309)|0,25234)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}d=$(m,e)|0;b=a+d|0;d=a+(d+e)|0;u=+(p|0)-f;j=+(l|0)-h;k=u*j;t=f-+(o|0);j=t*j;h=h-+(m|0);f=u*h;h=t*h;if(!(k>=0.0)|!(k<=1.0001)){s=kh(kh(nz(kh(kh(kh(10696,25258)|0,24774)|0,34302)|0,94)|0,34309)|0,25305)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!(j>=0.0)|!(j<=1.0001)){s=kh(kh(nz(kh(kh(kh(10696,25318)|0,24774)|0,34302)|0,95)|0,34309)|0,25305)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!(f>=0.0)|!(f<=1.0001)){s=kh(kh(nz(kh(kh(kh(10696,25365)|0,24774)|0,34302)|0,96)|0,34309)|0,25305)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!(h>=0.0)|!(h<=1.0001)){s=kh(kh(nz(kh(kh(kh(10696,25412)|0,24774)|0,34302)|0,97)|0,34309)|0,25305)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}if(!(h+(f+(k+j))<=1.0001)){s=kh(kh(nz(kh(kh(kh(10696,25459)|0,24774)|0,34302)|0,98)|0,34309)|0,25305)|0;c[n>>2]=ty(s+(c[(c[s>>2]|0)+-12>>2]|0)|0)|0;r=GD(n,13680)|0;r=Uc[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;ED(n);oz(s,r)|0;bz(s)|0;Zb()}else{i=q;return +(k*+g[b+(o<<2)>>2]+j*+g[b+(p<<2)>>2]+f*+g[d+(o<<2)>>2]+h*+g[d+(p<<2)>>2])}return +(0.0)}function Di(a){a=+a;return +(+Z(+a)/+Z(2.0))}function Ei(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;if(((f-d|0)/12|0)>>>0>>0){e=c[a>>2]|0;g=((d-e|0)/12|0)+b|0;if(g>>>0>357913941)Rt(a);d=(f-e|0)/12|0;if(d>>>0<178956970){d=d<<1;d=d>>>0>>0?g:d}else d=357913941;Hi(j,d,((c[h>>2]|0)-e|0)/12|0,a+8|0);Ii(j,b);Ji(a,j);Ki(j)}else Gi(a,b);i=k;return}function Fi(a){a=a|0;var b=0,d=0;d=c[a>>2]|0;if(d){b=a+4|0;a=c[b>>2]|0;if((a|0)!=(d|0)){do a=a+-8|0;while((a|0)!=(d|0));c[b>>2]=a}Vt(d)}return}function Gi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[e>>2]|0;a=b;f=d;while(1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;a=a+-1|0;if(!a)break;else f=f+12|0}c[e>>2]=d+(b*12|0);return}function Hi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b*12|0)|0;c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*12|0);return}function Ii(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+8|0;d=c[e>>2]|0;a=b;f=d;while(1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;a=a+-1|0;if(!a)break;else f=f+12|0}c[e>>2]=d+(b*12|0);return}function Ji(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[a>>2]|0;f=a+4|0;d=c[f>>2]|0;g=b+4|0;if((d|0)!=(e|0))do{d=d+-12|0;Li((c[g>>2]|0)+-12|0,d);c[g>>2]=(c[g>>2]|0)+-12}while((d|0)!=(e|0));e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+8|0;a=b+12|0;f=c[e>>2]|0;c[e>>2]=c[a>>2];c[a>>2]=f;c[b>>2]=c[g>>2];return}function Ki(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0))do{f=b+-12|0;c[e>>2]=f;Fi(f);b=c[e>>2]|0}while((b|0)!=(d|0));b=c[a>>2]|0;if(b)Vt(b);return}function Li(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a>>2]=0;g=a+4|0;c[g>>2]=0;c[a+8>>2]=0;e=b+4|0;f=(c[e>>2]|0)-(c[b>>2]|0)>>3;if((f|0)!=0?(Mi(a,f),d=c[b>>2]|0,h=c[e>>2]|0,(d|0)!=(h|0)):0)do{f=d;b=c[f+4>>2]|0;a=c[g>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=b;c[g>>2]=(c[g>>2]|0)+8;d=d+8|0}while((d|0)!=(h|0));return}function Mi(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>536870911)Rt(a);else{d=Tt(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function Ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;if(((f-d|0)/12|0)>>>0>>0){e=c[a>>2]|0;g=((d-e|0)/12|0)+b|0;if(g>>>0>357913941)Rt(a);d=(f-e|0)/12|0;if(d>>>0<178956970){d=d<<1;d=d>>>0>>0?g:d}else d=357913941;Qi(j,d,((c[h>>2]|0)-e|0)/12|0,a+8|0);Ri(j,b);Si(a,j);Ti(j)}else Pi(a,b);i=k;return}function Oi(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d){e=a+4|0;b=c[e>>2]|0;if((b|0)!=(d|0))do{f=b+-12|0;c[e>>2]=f;Fi(f);b=c[e>>2]|0}while((b|0)!=(d|0));Vt(c[a>>2]|0)}return}function Pi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[e>>2]|0;a=b;f=d;while(1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;a=a+-1|0;if(!a)break;else f=f+12|0}c[e>>2]=d+(b*12|0);return}function Qi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b*12|0)|0;c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b*12|0);return}function Ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+8|0;d=c[e>>2]|0;a=b;f=d;while(1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;a=a+-1|0;if(!a)break;else f=f+12|0}c[e>>2]=d+(b*12|0);return}function Si(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[a>>2]|0;f=a+4|0;d=c[f>>2]|0;g=b+4|0;if((d|0)!=(e|0))do{d=d+-12|0;Ui((c[g>>2]|0)+-12|0,d);c[g>>2]=(c[g>>2]|0)+-12}while((d|0)!=(e|0));e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+8|0;a=b+12|0;f=c[e>>2]|0;c[e>>2]=c[a>>2];c[a>>2]=f;c[b>>2]=c[g>>2];return}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0))do{f=b+-12|0;c[e>>2]=f;Oi(f);b=c[e>>2]|0}while((b|0)!=(d|0));b=c[a>>2]|0;if(b)Vt(b);return}function Ui(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d=b+4|0;e=c[d>>2]|0;f=c[b>>2]|0;if((e|0)!=(f|0)){Vi(a,(e-f|0)/12|0);Wi(a,c[b>>2]|0,c[d>>2]|0)}return}function Vi(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>357913941)Rt(a);else{d=Tt(b*12|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*12|0);return}}function Wi(a,b,d){a=a|0;b=b|0;d=d|0;a=a+4|0;if((b|0)!=(d|0))do{Li(c[a>>2]|0,b);c[a>>2]=(c[a>>2]|0)+12;b=b+12|0}while((b|0)!=(d|0));return}function Xi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;g=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;e=d;if(g-e>>2>>>0>>0){d=c[a>>2]|0;e=(e-d>>2)+b|0;if(e>>>0>1073741823)Rt(a);f=d;d=g-f|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d}else d=1073741823;Yi(j,d,(c[h>>2]|0)-f>>2,a+8|0);h=j+8|0;g=c[h>>2]|0;iH(g|0,0,b<<2|0)|0;c[h>>2]=g+(b<<2);Zi(a,j);_i(j)}else{iH(d|0,0,b<<2|0)|0;c[h>>2]=d+(b<<2)}i=k;return}function Yi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<2)|0;c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<2);return}function Zi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>2)<<2)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function _i(a){a=a|0;var b=0,d=0,e=0;d=c[a+4>>2]|0;e=a+8|0;b=c[e>>2]|0;if((b|0)!=(d|0)){do b=b+-4|0;while((b|0)!=(d|0));c[e>>2]=b}b=c[a>>2]|0;if(b)Vt(b);return}function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=c[a+8>>2]|0;h=a+4|0;d=c[h>>2]|0;if(f-d>>5>>>0>>0){e=c[a>>2]|0;g=(d-e>>5)+b|0;if(g>>>0>134217727)Rt(a);d=f-e|0;if(d>>5>>>0<67108863){d=d>>4;d=d>>>0>>0?g:d}else d=134217727;bj(j,d,(c[h>>2]|0)-e>>5,a+8|0);cj(j,b);dj(a,j);ej(j)}else aj(a,b);i=k;return}function aj(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{bo(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function bj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=Tt(b<<5)|0;c[a>>2]=e;d=e+(d<<5)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[a+12>>2]=e+(b<<5);return}function cj(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{bo(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=c[a>>2]|0;f=a+4|0;d=c[f>>2]|0;g=b+4|0;if((d|0)!=(e|0))do{d=d+-32|0;eo((c[g>>2]|0)+-32|0,d);c[g>>2]=(c[g>>2]|0)+-32}while((d|0)!=(e|0));e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+8|0;a=b+12|0;f=c[e>>2]|0;c[e>>2]=c[a>>2];c[a>>2]=f;c[b>>2]=c[g>>2];return}function ej(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-32|0;c[d>>2]=e;io(e)}b=c[a>>2]|0;if(b)Vt(b);return} +function we(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l*3|0)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+3|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+6|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function xe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+10+(p<<5&224)+(q>>>3&28)+(q<<3&248)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ye(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+1>>0]|0)+(d[s>>0]|0)+(d[s+2>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function ze(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){q=d[s>>0]|0;do if(((q&240)+24+(q<<4&240)+((d[s+1>>0]|0)&240)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ae(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<1)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){p=d[s>>0]|0;q=d[s+1>>0]|0;do if(((p&248)+12+(p<<5&224)+(q>>>3&24)+(q<<2&248)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+2|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+4|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Be(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;p=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=p;n=p+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=j*3|0;z=f+-1|0;if((g|0)>0){l=0;j=p;m=p+(z<<1)|0;while(1){b[m>>1]=0;b[j>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{j=j+(f<<1)|0;m=m+(f<<1)|0}}}m=k+1179664|0;l=f+1|0;w=0-f|0;u=1-f|0;v=~f;a:do if((B|0)>1){x=(z|0)>1;o=(c[k+4>>2]|0)+l|0;y=1;n=e+(l<<2)|0;e=p+(l<<1)|0;j=0;b:while(1){if(x){l=o;t=1;s=n;r=j;while(1){do if(((d[s+2>>0]|0)+(d[s+1>>0]|0)+(d[s+3>>0]|0)|0)>(A|0)){a[l>>0]=-1;j=b[e+(w<<1)>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}o=b[e+(u<<1)>>1]|0;p=o<<16>>16;j=b[e+(v<<1)>>1]|0;q=j<<16>>16;n=j<<16>>16>0;if(o<<16>>16<=0){if(n){b[e>>1]=j;j=q*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-3<<2)|0;if((c[n>>2]|0)<(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=b[e+-2>>1]|0;if(j<<16>>16>0){b[e>>1]=j;j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;j=k+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(t|0)){j=r;break}c[j>>2]=t;j=r;break}else{j=r+1|0;if((r|0)>32767)break b;b[e>>1]=j;c[k+1179664+(r<<2)>>2]=j<<16>>16;r=r*7|0;c[k+1310736+(r<<2)>>2]=1;c[k+1310736+(r+1<<2)>>2]=t;c[k+1310736+(r+2<<2)>>2]=y;c[k+1310736+(r+3<<2)>>2]=t;c[k+1310736+(r+4<<2)>>2]=t;c[k+1310736+(r+5<<2)>>2]=y;c[k+1310736+(r+6<<2)>>2]=y;break}}if(n){j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+(q+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;q=k+1310736+(j+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+y;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}n=b[e+-2>>1]|0;if(n<<16>>16<=0){b[e>>1]=o;j=p*7|0;n=k+1310736+(j+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=k+1310736+(j+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+t;n=k+1310736+(j+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+y;n=k+1310736+(j+-4<<2)|0;if((c[n>>2]|0)>(t|0))c[n>>2]=t;c[k+1310736+(j+-1<<2)>>2]=y;j=r;break}j=c[k+1179664+(p+-1<<2)>>2]|0;p=c[k+1179664+((n<<16>>16)+-1<<2)>>2]|0;if((j|0)>(p|0)){b[e>>1]=p;if((r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(j|0))c[o>>2]=p;n=n+1|0;if((n|0)>=(r|0)){j=p;break}else o=o+4|0}}else j=p}else{b[e>>1]=j;if((j|0)<(p|0)&(r|0)>0){n=0;o=m;while(1){if((c[o>>2]|0)==(p|0))c[o>>2]=j;n=n+1|0;if((n|0)>=(r|0))break;else o=o+4|0}}}j=(j<<16>>16)*7|0;q=k+1310736+(j+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=k+1310736+(j+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+t;j=k+1310736+(j+-5<<2)|0;c[j>>2]=(c[j>>2]|0)+y;j=r}else{b[e>>1]=0;a[l>>0]=0;j=r}while(0);t=t+1|0;n=s+4|0;e=e+2|0;l=l+1|0;if((t|0)>=(z|0))break;else{s=n;r=j}}}else l=o;y=y+1|0;if((y|0)>=(B|0)){p=j;D=52;break a}else{o=l+2|0;n=n+8|0;e=e+4|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){e=k+12|0;if((p|0)<1)j=1;else{n=1;j=1;while(1){l=c[m>>2]|0;if((l|0)==(n|0)){l=j;j=j+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[m>>2]=l;if((n|0)<(p|0)){n=n+1|0;m=m+4|0}else break}}o=k+8|0;l=j+-1|0;c[o>>2]=l;if(l){iH(e|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((j|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[o>>2]|0))}if((p|0)>0){e=0;do{m=(c[k+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;l=k+12+(m<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(n<<2)>>2]|0);l=m<<1;j=k+655376+(l<<3)|0;h[j>>3]=+h[j>>3]+ +(c[k+1310736+(n+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(n+2<<2)>>2]|0);m=m<<2;l=k+131084+(m<<2)|0;j=c[k+1310736+(n+3<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;l=k+131084+((m|1)<<2)|0;j=c[k+1310736+(n+4<<2)>>2]|0;if((c[l>>2]|0)<(j|0))c[l>>2]=j;l=k+131084+((m|2)<<2)|0;j=c[k+1310736+(n+5<<2)>>2]|0;if((c[l>>2]|0)>(j|0))c[l>>2]=j;j=k+131084+((m|3)<<2)|0;l=c[k+1310736+(n+6<<2)>>2]|0;if((c[j>>2]|0)<(l|0))c[j>>2]=l;e=e+1|0}while((e|0)<(p|0))}if((c[o>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[o>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ce(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+l|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+2|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function De(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t+1>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ee(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;l=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;p=(c[k+4>>2]|0)+l|0;z=1;e=e+(l<<1)|0;o=o+(l<<1)|0;m=0;b:while(1){if(y){l=p;u=1;t=e;s=m;while(1){do if((d[t>>0]|0|0)>(j|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+2|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}else l=p;z=z+1|0;if((z|0)>=(B|0)){q=m;D=52;break a}else{p=l+2|0;e=e+4|0;o=o+4|0}}Kf(3,18092,C);l=-1}else{q=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((q|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(q|0)){e=e+1|0;n=n+4|0}else break}}p=k+8|0;l=m+-1|0;c[p>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[p>>2]|0))}if((q|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(q|0))}if((c[p>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[p>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Fe(e,f,g,j,k){e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+16|0;C=E;o=c[k>>2]|0;B=g+-1|0;if((f|0)>0){l=0;m=o;n=o+(($(B,f)|0)<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(f|0))break;else{m=m+2|0;n=n+2|0}}}A=f+-1|0;if((g|0)>0){l=0;m=o;n=o+(A<<1)|0;while(1){b[n>>1]=0;b[m>>1]=0;l=l+1|0;if((l|0)>=(g|0))break;else{m=m+(f<<1)|0;n=n+(f<<1)|0}}}n=k+1179664|0;m=f+1|0;x=0-f|0;v=1-f|0;w=~f;a:do if((B|0)>1){y=(A|0)>1;l=(c[k+4>>2]|0)+m|0;z=1;e=e+m|0;o=o+(m<<1)|0;j=j+m|0;m=0;b:while(1){if(y){u=1;t=e;s=m;while(1){do if((d[t>>0]|0)>(d[j>>0]|0)){a[l>>0]=-1;m=b[o+(x<<1)>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}p=b[o+(v<<1)>>1]|0;q=p<<16>>16;m=b[o+(w<<1)>>1]|0;r=m<<16>>16;e=m<<16>>16>0;if(p<<16>>16<=0){if(e){b[o>>1]=m;m=r*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-3<<2)|0;if((c[e>>2]|0)<(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=b[o+-2>>1]|0;if(m<<16>>16>0){b[o>>1]=m;m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;m=k+1310736+(m+-3<<2)|0;if((c[m>>2]|0)>=(u|0)){m=s;break}c[m>>2]=u;m=s;break}else{m=s+1|0;if((s|0)>32767)break b;b[o>>1]=m;c[k+1179664+(s<<2)>>2]=m<<16>>16;s=s*7|0;c[k+1310736+(s<<2)>>2]=1;c[k+1310736+(s+1<<2)>>2]=u;c[k+1310736+(s+2<<2)>>2]=z;c[k+1310736+(s+3<<2)>>2]=u;c[k+1310736+(s+4<<2)>>2]=u;c[k+1310736+(s+5<<2)>>2]=z;c[k+1310736+(s+6<<2)>>2]=z;break}}if(e){m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+(r+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;r=k+1310736+(m+-5<<2)|0;c[r>>2]=(c[r>>2]|0)+z;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}e=b[o+-2>>1]|0;if(e<<16>>16<=0){b[o>>1]=p;m=q*7|0;e=k+1310736+(m+-7<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=k+1310736+(m+-6<<2)|0;c[e>>2]=(c[e>>2]|0)+u;e=k+1310736+(m+-5<<2)|0;c[e>>2]=(c[e>>2]|0)+z;e=k+1310736+(m+-4<<2)|0;if((c[e>>2]|0)>(u|0))c[e>>2]=u;c[k+1310736+(m+-1<<2)>>2]=z;m=s;break}m=c[k+1179664+(q+-1<<2)>>2]|0;q=c[k+1179664+((e<<16>>16)+-1<<2)>>2]|0;if((m|0)>(q|0)){b[o>>1]=q;if((s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(m|0))c[p>>2]=q;e=e+1|0;if((e|0)>=(s|0)){m=q;break}else p=p+4|0}}else m=q}else{b[o>>1]=m;if((m|0)<(q|0)&(s|0)>0){e=0;p=n;while(1){if((c[p>>2]|0)==(q|0))c[p>>2]=m;e=e+1|0;if((e|0)>=(s|0))break;else p=p+4|0}}}m=(m<<16>>16)*7|0;r=k+1310736+(m+-7<<2)|0;c[r>>2]=(c[r>>2]|0)+1;r=k+1310736+(m+-6<<2)|0;c[r>>2]=(c[r>>2]|0)+u;m=k+1310736+(m+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+z;m=s}else{b[o>>1]=0;a[l>>0]=0;m=s}while(0);u=u+1|0;e=t+1|0;j=j+1|0;o=o+2|0;l=l+1|0;if((u|0)>=(A|0))break;else{t=e;s=m}}}z=z+1|0;if((z|0)>=(B|0)){p=m;D=52;break a}else{l=l+2|0;e=e+2|0;o=o+4|0;j=j+2|0}}Kf(3,18092,C);l=-1}else{p=0;D=52}while(0);if((D|0)==52){o=k+12|0;if((p|0)<1)m=1;else{e=1;m=1;while(1){l=c[n>>2]|0;if((l|0)==(e|0)){l=m;m=m+1|0}else l=c[k+1179664+(l+-1<<2)>>2]|0;c[n>>2]=l;if((e|0)<(p|0)){e=e+1|0;n=n+4|0}else break}}j=k+8|0;l=m+-1|0;c[j>>2]=l;if(l){iH(o|0,0,l<<2|0)|0;iH(k+655376|0,0,l<<4|0)|0;if((m|0)>1){l=0;do{D=l<<2;c[k+131084+(D<<2)>>2]=f;c[k+131084+((D|1)<<2)>>2]=0;c[k+131084+((D|2)<<2)>>2]=g;c[k+131084+((D|3)<<2)>>2]=0;l=l+1|0}while((l|0)<(c[j>>2]|0))}if((p|0)>0){o=0;do{n=(c[k+1179664+(o<<2)>>2]|0)+-1|0;e=o*7|0;l=k+12+(n<<2)|0;c[l>>2]=(c[l>>2]|0)+(c[k+1310736+(e<<2)>>2]|0);l=n<<1;m=k+655376+(l<<3)|0;h[m>>3]=+h[m>>3]+ +(c[k+1310736+(e+1<<2)>>2]|0);l=k+655376+((l|1)<<3)|0;h[l>>3]=+h[l>>3]+ +(c[k+1310736+(e+2<<2)>>2]|0);n=n<<2;l=k+131084+(n<<2)|0;m=c[k+1310736+(e+3<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;l=k+131084+((n|1)<<2)|0;m=c[k+1310736+(e+4<<2)>>2]|0;if((c[l>>2]|0)<(m|0))c[l>>2]=m;l=k+131084+((n|2)<<2)|0;m=c[k+1310736+(e+5<<2)>>2]|0;if((c[l>>2]|0)>(m|0))c[l>>2]=m;m=k+131084+((n|3)<<2)|0;l=c[k+1310736+(e+6<<2)>>2]|0;if((c[m>>2]|0)<(l|0))c[m>>2]=l;o=o+1|0}while((o|0)<(p|0))}if((c[j>>2]|0)>0){l=0;do{f=k+12+(l<<2)|0;g=l<<1;D=k+655376+(g<<3)|0;h[D>>3]=+h[D>>3]/+(c[f>>2]|0);g=k+655376+((g|1)<<3)|0;h[g>>3]=+h[g>>3]/+(c[f>>2]|0);l=l+1|0}while((l|0)<(c[j>>2]|0));l=0}else l=0}else l=0}i=E;return l|0}function Ge(a){a=a|0;return He(a+8|0)|0}function He(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=cx(4)|0;if(!b){Kf(3,21359,d);zb(1)}a=wg(a)|0;c[b>>2]=a;if(!a){dx(b);b=0}i=d;return b|0}function Ie(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)b=-1;else{xg(b)|0;dx(c[a>>2]|0);c[a>>2]=0;b=0}return b|0}function Je(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=cx(7062432)|0;if(!b){Kf(3,21359,d);zb(1)}c[b>>2]=0;c[b+4834148>>2]=0;c[b+7062408>>2]=0;c[b+4>>2]=-1;c[b+8>>2]=0;c[b+12>>2]=1;c[b+16>>2]=100;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=2;h[b+7062416>>3]=.5;c[b+7062424>>2]=3;c[b+32>>2]=a;e=c[a>>2]|0;c[b+36>>2]=e;a=c[a+4>>2]|0;c[b+40>>2]=a;c[b+44>>2]=0;c[b+15408>>2]=0;c[b+4834152>>2]=0;c[b+4818296>>2]=0;a=cx($(e<<1,a)|0)|0;c[b+4834144>>2]=a;if(!a){Kf(3,21359,d+8|0);zb(1)}else{c[b+7062384>>2]=0;Ke(b,2)|0;Le(b,0)|0;c[b+7062388>>2]=-1;Me(b,0)|0;c[b+7062392>>2]=7;c[b+7062396>>2]=0;i=d;return b|0}return 0}function Ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g;a:do if(a){e=a+4|0;if((c[e>>2]|0)!=(b|0)){switch(b|0){case 11:case 10:case 9:case 8:case 7:case 6:case 4:case 3:case 2:case 1:case 0:{f=0;break}case 14:case 13:case 12:case 5:{f=1;break}default:{c[d>>2]=b;Kf(3,18124,d);d=-1;break a}}c[e>>2]=b;c[a+8>>2]=Of(b)|0;d=a+7062408|0;b=c[d>>2]|0;if(b){nf(b);c[d>>2]=mf(c[a+36>>2]|0,c[a+40>>2]|0,c[e>>2]|0,0)|0}d=a+24|0;b=c[d>>2]|0;if(!f)switch(b|0){case 1:{c[d>>2]=4;d=0;break a}case 4:{c[d>>2]=3;d=0;break a}default:{d=0;break a}}else switch(b|0){case 0:{c[d>>2]=1;d=0;break a}case 3:{c[d>>2]=4;d=0;break a}default:{d=0;break a}}}else d=0}else d=-1;while(0);i=g;return d|0}function Le(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;do if(a)if((c[a>>2]|0)!=(b|0)){c[a>>2]=b;if(!b){d=a+4834148|0;dx(c[d>>2]|0);c[d>>2]=0;d=0;break}b=cx($(c[a+40>>2]|0,c[a+36>>2]|0)|0)|0;c[a+4834148>>2]=b;if(!b){Kf(3,21359,e);zb(1)}else d=0}else d=0;else d=-1;while(0);i=f;return d|0}function Me(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;f=j;if(a){g=a+7062388|0;if((c[g>>2]|0)!=(b|0)){d=a+7062408|0;e=c[d>>2]|0;if(e){nf(e);c[d>>2]=0}switch(b|0){case 3:case 2:case 1:{c[d>>2]=mf(c[a+36>>2]|0,c[a+40>>2]|0,c[a+4>>2]|0,0)|0;break}case 4:{c[a+7062404>>2]=1;c[a+7062400>>2]=1;b=4;break}case 0:{b=0;break}default:{Kf(3,18173,f);b=0}}c[g>>2]=b;if((c[a>>2]|0)==1){c[h>>2]=c[3104+(b<<2)>>2];Kf(3,18247,h);b=0}else b=0}else b=0}else b=-1;i=j;return b|0}function Ne(a){a=a|0;var b=0,d=0;if(!a)b=-1;else{b=a+7062408|0;d=c[b>>2]|0;if(d){nf(d);c[b>>2]=0}dx(c[a+4834144>>2]|0);dx(c[a+4834148>>2]|0);dx(a);b=0}return b|0}function Oe(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a>>2];a=0}else a=-1;return a|0}function Pe(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+12>>2]=b;a=0}else a=-1;return a|0}function Qe(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+12>>2];a=0}else a=-1;return a|0}function Re(a,b){a=a|0;b=b|0;if((a|0)==0|b>>>0>255)a=-1;else{c[a+16>>2]=b;a=0}return a|0}function Se(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+16>>2];a=0}else a=-1;return a|0}function Te(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062388>>2];a=0}else a=-1;return a|0}function Ue(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+20>>2]=b;a=0}else a=-1;return a|0}function Ve(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+20>>2];a=0}return a|0}function We(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<5){c[a+24>>2]=b;a=0}else a=-1;return a|0}function Xe(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062424>>2]=b;a=0}return a|0}function Ye(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062424>>2];a=0}else a=-1;return a|0}function Ze(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+24>>2];a=0}return a|0}function _e(a,b){a=a|0;b=+b;if((a|0)!=0?!(b<=0.0|b>=1.0):0){h[a+7062416>>3]=b;a=0}else a=-1;return a|0}function $e(a,b){a=a|0;b=b|0;if(!a)a=-1;else{h[b>>3]=+h[a+7062416>>3];a=0}return a|0}function af(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0.0,S=0.0;Q=i;i=i+80|0;M=Q+32|0;G=Q+24|0;z=Q;y=Q+52|0;D=Q+40|0;L=Q+64|0;P=a+44|0;c[P>>2]=0;J=a+7062388|0;f=c[J>>2]|0;a:do if((f|0)==4){I=a+7062396|0;e=c[I>>2]|0;do if((e|0)>0){f=4;e=e+-1|0}else{C=a+16|0;F=c[C>>2]|0;E=a+7062400|0;A=(c[E>>2]|0)+F|0;A=(A|0)>255?255:A;c[y>>2]=A;H=a+7062404|0;B=F-(c[H>>2]|0)|0;B=(B|0)<0?0:B;c[y+4>>2]=B;c[y+8>>2]=F;e=a+36|0;f=a+40|0;g=a+4|0;k=a+12|0;l=a+20|0;m=a+4834144|0;p=a+15416|0;q=a+15408|0;r=a+7062384|0;s=a+24|0;t=a+32|0;u=a+7062416|0;v=a+48|0;w=a+7062424|0;x=0;do{if((vf(b,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,c[a>>2]|0,c[k>>2]|0,c[y+(x<<2)>>2]|0,c[l>>2]|0,m,0)|0)<0){e=-1;break a}if((cf(c[e>>2]|0,c[f>>2]|0,m,c[l>>2]|0,1e6,70,1.0,p,q)|0)<0){e=-1;break a}if((gf(b,c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,p,c[q>>2]|0,c[r>>2]|0,c[l>>2]|0,c[s>>2]|0,(c[t>>2]|0)+184|0,+h[u>>3],v,P,c[w>>2]|0)|0)<0){e=-1;break a}c[D+(x<<2)>>2]=c[P>>2];x=x+1|0}while((x|0)<3);if((c[a>>2]|0)==1){N=c[D+4>>2]|0;g=c[D+8>>2]|0;f=c[D>>2]|0;c[z>>2]=B;c[z+4>>2]=N;c[z+8>>2]=F;c[z+12>>2]=g;c[z+16>>2]=A;c[z+20>>2]=f;Kf(3,18341,z)}else{f=c[D>>2]|0;g=c[D+8>>2]|0}e=c[D+4>>2]|0;if((f|0)>(g|0)|(e|0)>(g|0)){f=(f|0)>=(e|0)?A:B;c[C>>2]=f;e=f-F|0;if((e|0)>0){c[E>>2]=e;e=1}else{c[E>>2]=1;e=0-e|0}c[H>>2]=e;if((c[a>>2]|0)==1){c[G>>2]=f;Kf(3,18417,G)}f=c[J>>2]|0;e=c[a+7062392>>2]|0;break}e=c[E>>2]|0;f=c[H>>2]|0;do if((e|0)>=(f|0))if((e|0)>(f|0)){c[H>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e;c[H>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e}while(0);if((e+F|0)>254){c[E>>2]=1;e=1}if((F|0)<=(e|0))c[H>>2]=1;c[I>>2]=c[a+7062392>>2];N=47;break a}while(0);c[I>>2]=e;N=30}else N=30;while(0);b:do if((N|0)==30){c:do switch(f|0){case 3:{f=a+7062408|0;e=uf(c[f>>2]|0,b,9,-7)|0;if((e|0)<0)break b;e=c[f>>2]|0;f=a+4834144|0;e=vf(c[e>>2]|0,c[e+8>>2]|0,c[e+12>>2]|0,5,c[a>>2]|0,c[a+12>>2]|0,0,0,f,c[e+4>>2]|0)|0;if((e|0)<0)break b;e=a+36|0;g=a+40|0;k=a+20|0;break}case 2:case 1:{g=a+7062396|0;e=c[g>>2]|0;if((e|0)>0){c[g>>2]=e+-1;N=44;break c}e=c[a+7062408>>2]|0;if((f|0)==1)e=sf(e,b,L)|0;else e=tf(e,b,L)|0;if((e|0)<0)break b;e=a+16|0;if((c[a>>2]|0)==1?(K=d[L>>0]|0,(c[e>>2]|0)!=(K|0)):0){c[M>>2]=(c[J>>2]|0)==1?18469:18476;c[M+4>>2]=K;Kf(3,18481,M)}c[e>>2]=d[L>>0];c[g>>2]=c[a+7062392>>2];N=44;break}default:N=44}while(0);if((N|0)==44){e=a+36|0;g=a+40|0;k=a+20|0;f=a+4834144|0;if((vf(b,c[e>>2]|0,c[g>>2]|0,c[a+4>>2]|0,c[a>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[k>>2]|0,f,0)|0)<0){e=-1;break}}l=a+15416|0;m=a+15408|0;if((cf(c[e>>2]|0,c[g>>2]|0,f,c[k>>2]|0,1e6,70,1.0,l,m)|0)>=0?(gf(b,c[e>>2]|0,c[g>>2]|0,c[a+4>>2]|0,l,c[m>>2]|0,c[a+7062384>>2]|0,c[k>>2]|0,c[a+24>>2]|0,(c[a+32>>2]|0)+184|0,+h[a+7062416>>3],a+48|0,P,c[a+7062424>>2]|0)|0)>=0:0)N=47;else e=-1}while(0);d:do if((N|0)==47){t=a+28|0;if((c[t>>2]|0)==1){bf(a);e=0;break}u=a+4818296|0;r=a+24|0;q=c[u>>2]|0;if((q|0)>0){s=0;do{f=c[P>>2]|0;g=a+4818304+(s*264|0)+56|0;k=a+4818304+(s*264|0)+64|0;if((f|0)>0){o=+(c[a+4818304+(s*264|0)>>2]|0);e=-1;l=0;n=.5;while(1){j=+(c[a+48+(l<<8)>>2]|0);R=o/j;if(!(R<.7|R>1.43)?(R=+h[a+48+(l<<8)+56>>3]-+h[g>>3],O=+h[a+48+(l<<8)+64>>3]-+h[k>>3],O=(R*R+O*O)/j,O=(f|0)){p=e;break}else n=j}}else p=-1;e:do if((p|0)>-1){m=c[r>>2]|0;switch(m|0){case 2:case 1:case 0:break;case 4:case 3:{g=a+48+(p<<8)+40|0;j=+h[a+4818304+(s*264|0)+40>>3];if(!(+h[g>>3]>3]<+h[f>>3]))break e}else{f=a+4818304+(s*264|0)+48|0;e=a+48+(p<<8)+48|0}h[g>>3]=j;c[a+48+(p<<8)+8>>2]=c[a+4818304+(s*264|0)+8>>2];h[e>>3]=+h[f>>3];c[a+48+(p<<8)+12>>2]=c[a+4818304+(s*264|0)+12>>2];e=-1;n=1.0e8;g=0;while(1){j=0.0;f=0;do{b=(f+g|0)%4|0;o=+h[a+4818304+(s*264|0)+168+(f<<4)>>3]-+h[a+48+(p<<8)+168+(b<<4)>>3];R=+h[a+4818304+(s*264|0)+168+(f<<4)+8>>3]-+h[a+48+(p<<8)+168+(b<<4)+8>>3];j=j+(o*o+R*R);f=f+1|0}while((f|0)!=4);f=j>2]=(b+(c[a+4818304+(s*264|0)+20>>2]|0)|0)%4|0;c[a+48+(p<<8)+24>>2]=(b+(c[a+4818304+(s*264|0)+24>>2]|0)|0)%4|0;break e}default:{e=-1;break d}}e=a+48+(p<<8)+32|0;o=+h[a+4818304+(s*264|0)+32>>3];if(+h[e>>3]>3]=o;l=c[a+4818304+(s*264|0)+4>>2]|0;c[a+48+(p<<8)+4>>2]=l;g=a+4818304+(s*264|0)+16|0;e=-1;n=1.0e8;k=0;while(1){j=0.0;f=0;do{b=(f+k|0)%4|0;S=+h[a+4818304+(s*264|0)+168+(f<<4)>>3]-+h[a+48+(p<<8)+168+(b<<4)>>3];R=+h[a+4818304+(s*264|0)+168+(f<<4)+8>>3]-+h[a+48+(p<<8)+168+(b<<4)+8>>3];j=j+(S*S+R*R);f=f+1|0}while((f|0)!=4);if(j>2]|0)|0)%4|0;else j=n;k=k+1|0;if((k|0)==4)break;else n=j}c[a+48+(p<<8)+16>>2]=e;if(m>>>0<2){c[a+48+(p<<8)+8>>2]=l;h[a+48+(p<<8)+40>>3]=o;c[a+48+(p<<8)+20>>2]=e;break}else{c[a+48+(p<<8)+12>>2]=l;h[a+48+(p<<8)+48>>3]=o;c[a+48+(p<<8)+24>>2]=e;break}}}while(0);s=s+1|0}while((s|0)<(q|0))}bf(a);if((c[u>>2]|0)>0){g=0;e=0;do{f=a+4818304+(g*264|0)|0;N=a+4818304+(g*264|0)+256|0;b=(c[N>>2]|0)+1|0;c[N>>2]=b;if((b|0)<4){if((g|0)!=(e|0))gH(a+4818304+(e*264|0)|0,f|0,264)|0;e=e+1|0}g=g+1|0}while((g|0)<(c[u>>2]|0))}else e=0;c[u>>2]=e;e=c[P>>2]|0;f:do if((e|0)>0){m=0;do{k=a+48+(m<<8)|0;g=c[a+48+(m<<8)+4>>2]|0;if((g|0)>=0){l=c[u>>2]|0;g:do if((l|0)>0){f=0;do{if((c[a+4818304+(f*264|0)+4>>2]|0)==(g|0))break g;f=f+1|0}while((f|0)<(l|0))}else f=0;while(0);if((f|0)==(l|0)){if((l|0)==60)break f;c[u>>2]=l+1}gH(a+4818304+(f*264|0)|0,k|0,256)|0;c[a+4818304+(f*264|0)+256>>2]=1}m=m+1|0;e=c[P>>2]|0}while((m|0)<(e|0))}while(0);if((c[t>>2]|0)!=2?(c[u>>2]|0)>0:0){l=0;while(1){g=a+4818304+(l*264|0)+56|0;k=a+4818304+(l*264|0)+64|0;h:do if((e|0)>0){n=+(c[a+4818304+(l*264|0)>>2]|0);f=0;do{j=+(c[a+48+(f<<8)>>2]|0);S=n/j;if(!(S<.7|S>1.43)?(R=+h[a+48+(f<<8)+56>>3]-+h[g>>3],S=+h[a+48+(f<<8)+64>>3]-+h[k>>3],(R*R+S*S)/j<.5):0)break h;f=f+1|0}while((f|0)<(e|0))}else f=0;while(0);if((f|0)==(e|0)){gH(a+48+(e<<8)|0,a+4818304+(l*264|0)|0,256)|0;e=(c[P>>2]|0)+1|0;c[P>>2]=e}l=l+1|0;if((l|0)>=(c[u>>2]|0)){e=0;break}}}else e=0}while(0);i=Q;return e|0}function bf(a){a=a|0;var b=0,d=0,e=0,f=0;switch(c[a+24>>2]|0){case 1:case 0:{d=c[a+44>>2]|0;if((d|0)>0){e=0;do{b=a+48+(e<<8)+4|0;if((c[b>>2]|0)>-1?+h[a+48+(e<<8)+32>>3]<.5:0){c[a+48+(e<<8)+8>>2]=-1;c[b>>2]=-1;c[a+48+(e<<8)+236>>2]=6}e=e+1|0}while((e|0)<(d|0))}break}case 2:{d=c[a+44>>2]|0;if((d|0)>0){e=0;do{b=a+48+(e<<8)+4|0;if((c[b>>2]|0)>-1?+h[a+48+(e<<8)+32>>3]<.5:0){c[a+48+(e<<8)+12>>2]=-1;c[b>>2]=-1;c[a+48+(e<<8)+236>>2]=6}e=e+1|0}while((e|0)<(d|0))}break}default:{e=c[a+44>>2]|0;if((e|0)>0){f=0;do{b=a+48+(f<<8)+8|0;if((c[b>>2]|0)>-1?+h[a+48+(f<<8)+40>>3]<.5:0){c[b>>2]=-1;d=0}else d=1;b=a+48+(f<<8)+12|0;if(((c[b>>2]|0)>-1?+h[a+48+(f<<8)+48>>3]<.5:0)?(c[b>>2]=-1,(d|0)==0):0)c[a+48+(f<<8)+236>>2]=6;f=f+1|0}while((f|0)<(e|0))}}}return}function cf(a,b,d,e,f,g,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;k=k|0;l=l|0;var m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+96|0;F=L+56|0;H=L+48|0;G=L+8|0;I=L;K=(e|0)==1;if(K){a=(a|0)/2|0;b=(b|0)/2|0;f=(f|0)/4|0;g=(g|0)/4|0}c[l>>2]=0;C=d+8|0;D=a+-2|0;z=b+-2|0;A=d+1179664|0;a:do if((c[C>>2]|0)>0){B=0;while(1){w=d+12+(B<<2)|0;y=c[w>>2]|0;b:do if(((((!((y|0)<(g|0)|(y|0)>(f|0))?(E=d+131084+(B<<4)|0,(c[E>>2]|0)!=1):0)?(c[d+131084+(B<<4)+4>>2]|0)!=(D|0):0)?(c[d+131084+(B<<4)+8>>2]|0)!=1:0)?(c[d+131084+(B<<4)+12>>2]|0)!=(z|0):0)?(df(c[d>>2]|0,a,0,A,B+1|0,E,k+((c[l>>2]|0)*80048|0)|0)|0)>=0:0){t=c[w>>2]|0;x=c[l>>2]|0;u=k+(x*80048|0)+28|0;b=c[u>>2]|0;v=k+(x*80048|0)+40028|0;n=c[v>>2]|0;y=k+(x*80048|0)+24|0;o=(c[y>>2]|0)+-1|0;if((o|0)>1){r=0;s=1;e=0;while(1){p=(c[k+(x*80048|0)+28+(s<<2)>>2]|0)-b|0;p=$(p,p)|0;q=(c[k+(x*80048|0)+40028+(s<<2)>>2]|0)-n|0;p=($(q,q)|0)+p|0;q=(p|0)>(r|0);e=q?s:e;s=s+1|0;if((s|0)>=(o|0))break;else r=q?p:r}}else e=0;m=+(t|0)/.75*.01*j;c[H>>2]=0;c[I>>2]=0;c:do if((ef(u,v,0,e,m,F,H)|0)>=0?(ef(u,v,e,(c[y>>2]|0)+-1|0,m,G,I)|0)>=0:0){b=c[H>>2]|0;n=c[I>>2]|0;do if((b|0)==1&(n|0)==1){b=c[G>>2]|0;n=c[F>>2]|0}else{if((b|0)>1&(n|0)==0){b=(e|0)/2|0;c[I>>2]=0;c[H>>2]=0;if((ef(u,v,0,b,m,F,H)|0)<0)break c;if((ef(u,v,b,e,m,G,I)|0)<0)break c;if(!((c[H>>2]|0)==1&(c[I>>2]|0)==1))break c;b=e;n=c[F>>2]|0;e=c[G>>2]|0;break}if(!((b|0)==0&(n|0)>1))break c;b=(e+-1+(c[y>>2]|0)|0)/2|0;c[I>>2]=0;c[H>>2]=0;if((ef(u,v,e,b,m,F,H)|0)<0)break c;if((ef(u,v,b,(c[y>>2]|0)+-1|0,m,G,I)|0)<0)break c;if(!((c[H>>2]|0)==1&(c[I>>2]|0)==1))break c;b=c[G>>2]|0;n=e;e=c[F>>2]|0}while(0);c[k+(x*80048|0)+80028>>2]=0;c[k+(x*80048|0)+80032>>2]=n;c[k+(x*80048|0)+80036>>2]=e;c[k+(x*80048|0)+80040>>2]=b;c[k+(x*80048|0)+80044>>2]=(c[y>>2]|0)+-1;c[k+((c[l>>2]|0)*80048|0)>>2]=c[w>>2];y=c[l>>2]|0;h[k+(y*80048|0)+8>>3]=+h[d+655376+(B<<4)>>3];h[k+(y*80048|0)+16>>3]=+h[d+655376+(B<<4)+8>>3];y=y+1|0;c[l>>2]=y;if((y|0)==60){e=60;break a}else break b}while(0)}while(0);B=B+1|0;if((B|0)>=(c[C>>2]|0)){J=4;break}}}else J=4;while(0);if((J|0)==4)e=c[l>>2]|0;if((e|0)>0){o=0;do{a=o;o=o+1|0;g=k+(a*80048|0)+16|0;n=k+(a*80048|0)|0;if((o|0)<(e|0)){j=+h[k+(a*80048|0)+8>>3];f=o;do{M=j-+h[k+(f*80048|0)+8>>3];m=+h[g>>3]-+h[k+(f*80048|0)+16>>3];m=M*M+m*m;e=c[n>>2]|0;a=k+(f*80048|0)|0;b=c[a>>2]|0;if((e|0)>(b|0)){if(m<+((e|0)/4|0|0))c[a>>2]=0}else if(m<+((b|0)/4|0|0))c[n>>2]=0;f=f+1|0;e=c[l>>2]|0}while((f|0)<(e|0))}}while((o|0)<(e|0))}if((e|0)>0){f=0;do{if(!(c[k+(f*80048|0)>>2]|0)){a=f+1|0;if((a|0)<(e|0)){e=f;b=a;while(1){gH(k+(e*80048|0)|0,k+(b*80048|0)|0,80048)|0;e=c[l>>2]|0;a=b+1|0;if((a|0)<(e|0)){e=b;b=a}else break}}e=e+-1|0;c[l>>2]=e}f=f+1|0}while((f|0)<(e|0))}if(K&(e|0)>0){b=0;while(1){c[k>>2]=c[k>>2]<<2;e=k+8|0;h[e>>3]=+h[e>>3]*2.0;e=k+16|0;h[e>>3]=+h[e>>3]*2.0;e=k+24|0;if((c[e>>2]|0)>0){a=0;do{K=k+28+(a<<2)|0;c[K>>2]=c[K>>2]<<1;K=k+40028+(a<<2)|0;c[K>>2]=c[K>>2]<<1;a=a+1|0}while((a|0)<(c[e>>2]|0))}b=b+1|0;if((b|0)>=(c[l>>2]|0))break;else k=k+80048|0}}i=L;return 0}function df(a,d,e,f,g,h,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+80032|0;p=w+16|0;o=w+8|0;l=w;u=w+40024|0;v=w+24|0;t=c[h+8>>2]|0;e=c[h>>2]|0;h=c[h+4>>2]|0;a:do if((e|0)<=(h|0)){k=e;e=a+(($(t,d)|0)+e<<1)|0;while(1){s=b[e>>1]|0;if(s<<16>>16>0?(c[f+((s<<16>>16)+-1<<2)>>2]|0)==(g|0):0){n=k;break}if((k|0)<(h|0)){k=k+1|0;e=e+2|0}else{x=6;break a}}q=j+24|0;c[q>>2]=1;r=j+28|0;c[r>>2]=n;s=j+40028|0;c[s>>2]=t;f=t;m=n;k=1;e=5;while(1){h=(e+5|0)%8|0;e=0;while(1){g=c[3120+(h<<2)>>2]|0;l=c[3152+(h<<2)>>2]|0;if((b[a+(l+m+($(g+f|0,d)|0)<<1)>>1]|0)>0){e=g;g=h;break}e=e+1|0;h=(h+1|0)%8|0;if((e|0)>=8){x=11;break}}if((x|0)==11){x=0;if((e|0)==8){x=13;break}l=c[3152+(h<<2)>>2]|0;e=c[3120+(h<<2)>>2]|0;g=h}c[j+28+(k<<2)>>2]=l+m;h=c[q>>2]|0;c[j+40028+(h<<2)>>2]=e+(c[j+40028+(h+-1<<2)>>2]|0);e=c[q>>2]|0;h=j+28+(e<<2)|0;if((c[h>>2]|0)==(n|0)?(c[j+40028+(e<<2)>>2]|0)==(t|0):0){f=e;x=16;break}k=e+1|0;c[q>>2]=k;if((k|0)==9999){x=19;break}f=c[j+40028+(e<<2)>>2]|0;m=c[h>>2]|0;e=g}if((x|0)==13){Kf(3,18535,o);e=-1;break}else if((x|0)==16){if((f|0)>1){l=0;g=1;h=0;while(1){e=(c[j+28+(g<<2)>>2]|0)-n|0;e=$(e,e)|0;k=(c[j+40028+(g<<2)>>2]|0)-t|0;e=($(k,k)|0)+e|0;k=(e|0)>(l|0);h=k?g:h;g=g+1|0;if((g|0)>=(f|0))break;else l=k?e:l}}else h=0;if((h|0)>0){e=0;do{c[u+(e<<2)>>2]=c[j+28+(e<<2)>>2];c[v+(e<<2)>>2]=c[j+40028+(e<<2)>>2];e=e+1|0}while((e|0)<(h|0))}if((h|0)<(f|0)){e=h;do{t=e-h|0;c[j+28+(t<<2)>>2]=c[j+28+(e<<2)>>2];c[j+40028+(t<<2)>>2]=c[j+40028+(e<<2)>>2];e=e+1|0}while((e|0)<(c[q>>2]|0))}if((h|0)>0){e=0;do{t=e-h|0;c[j+28+((c[q>>2]|0)+t<<2)>>2]=c[u+(e<<2)>>2];c[j+40028+((c[q>>2]|0)+t<<2)>>2]=c[v+(e<<2)>>2];e=e+1|0}while((e|0)<(h|0))}c[j+28+(c[q>>2]<<2)>>2]=c[r>>2];c[j+40028+(c[q>>2]<<2)>>2]=c[s>>2];c[q>>2]=(c[q>>2]|0)+1;e=0;break}else if((x|0)==19){Kf(3,18542,p);e=-1;break}}else x=6;while(0);if((x|0)==6){Kf(3,18528,l);e=-1}i=w;return e|0}function ef(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=g|0;h=h|0;var i=0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0.0;i=c[b+(e<<2)>>2]|0;q=c[b+(d<<2)>>2]|0;o=+(i-q|0);l=c[a+(d<<2)>>2]|0;r=c[a+(e<<2)>>2]|0;m=+(l-r|0);k=+(($(r,q)|0)-($(l,i)|0)|0);i=d+1|0;if((i|0)<(e|0)){j=0.0;l=i;do{s=k+(o*+(c[a+(l<<2)>>2]|0)+m*+(c[b+(l<<2)>>2]|0));s=s*s;r=s>j;j=r?s:j;i=r?l:i;l=l+1|0}while((l|0)<(e|0))}else j=0.0;if(j/(o*o+m*m)>f)if(((ef(a,b,d,i,f,g,h)|0)>=0?(n=c[h>>2]|0,(n|0)<=5):0)?(c[g+(n<<2)>>2]=i,c[h>>2]=(c[h>>2]|0)+1,(ef(a,b,i,e,f,g,h)|0)>=0):0)p=7;else i=-1;else p=7;if((p|0)==7)i=0;return i|0}function ff(a,b,d,e,f,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+16|0;t=y+4|0;u=y;v=ng(2)|0;w=ng(2)|0;x=Sf(2,2)|0;q=0;a:while(1){r=q;q=q+1|0;s=c[e+(q<<2)>>2]|0;l=c[e+(r<<2)>>2]|0;p=+(s+1-l|0)*.05+.5;l=~~(+(l|0)+p);s=~~(+(s|0)-p)-l|0;n=s+1|0;d=Sf(n,2)|0;if((s|0)>-1){s=0;do{z=s+l|0;if((mg(f,+(c[a+(z<<2)>>2]|0),+(c[b+(z<<2)>>2]|0),t,u)|0)<0){l=10;break a}z=s<<1;A=c[d>>2]|0;h[A+(z<<3)>>3]=+g[t>>2];h[A+((z|1)<<3)>>3]=+g[u>>2];s=s+1|0}while((s|0)<(n|0))}if((Zf(d,x,v,w)|0)<0){l=10;break}A=c[x>>2]|0;o=+h[A+8>>3];h[j+(r*24|0)>>3]=o;p=-+h[A>>3];h[j+(r*24|0)+8>>3]=p;A=c[w>>2]|0;h[j+(r*24|0)+16>>3]=-(o*+h[A>>3]+ +h[A+8>>3]*p);Xf(d)|0;if((q|0)>=4){l=7;break}}b:do if((l|0)==7){Xf(x)|0;og(w)|0;og(v)|0;q=0;while(1){d=(q+3|0)%4|0;l=j+(d*24|0)|0;m=+h[j+(q*24|0)+8>>3];n=j+(q*24|0)|0;o=+h[j+(d*24|0)+8>>3];p=+h[l>>3]*m-+h[n>>3]*o;if(+O(+p)<.0001){d=-1;break b}A=j+(q*24|0)+16|0;z=j+(d*24|0)+16|0;h[k+(q<<4)>>3]=(o*+h[A>>3]-m*+h[z>>3])/p;h[k+(q<<4)+8>>3]=(+h[n>>3]*+h[z>>3]-+h[l>>3]*+h[A>>3])/p;q=q+1|0;if((q|0)>=4){d=0;break}}}else if((l|0)==10){Xf(d)|0;Xf(x)|0;og(w)|0;og(v)|0;d=-1}while(0);i=y;return d|0}function gf(a,b,d,e,f,j,k,l,m,n,o,p,q,r){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+16|0;D=F+4|0;E=F;z=m>>>0<2;A=(m|0)==2;if((j|0)>0){C=0;s=0;do{c[p+(s<<8)>>2]=c[f+(C*80048|0)>>2];if((mg(n,+h[f+(C*80048|0)+8>>3],+h[f+(C*80048|0)+16>>3],D,E)|0)>=0?(h[p+(s<<8)+56>>3]=+g[D>>2],h[p+(s<<8)+64>>3]=+g[E>>2],B=p+(s<<8)+168|0,(ff(f+(C*80048|0)+28|0,f+(C*80048|0)+40028|0,c[f+(C*80048|0)+24>>2]|0,f+(C*80048|0)+80028|0,n,p+(s<<8)+72|0,B)|0)>=0):0){t=p+(s<<8)+8|0;u=p+(s<<8)+20|0;v=p+(s<<8)+40|0;w=p+(s<<8)+12|0;x=p+(s<<8)+24|0;y=p+(s<<8)+48|0;switch(Bf(k,l,m,a,b,d,e,n,B,o,t,u,v,w,x,y,r,p+(s<<8)+240|0,p+(s<<8)+248|0)|0){case 0:{c[p+(s<<8)+236>>2]=0;break}case -1:{c[p+(s<<8)+236>>2]=2;break}case -2:{c[p+(s<<8)+236>>2]=3;break}case -3:{c[p+(s<<8)+236>>2]=4;break}case -4:{c[p+(s<<8)+236>>2]=5;break}case -5:{c[p+(s<<8)+236>>2]=9;break}case -6:{c[p+(s<<8)+236>>2]=1;break}default:{}}if(!z){if(A){c[p+(s<<8)+4>>2]=c[w>>2];c[p+(s<<8)+16>>2]=c[x>>2];h[p+(s<<8)+32>>3]=+h[y>>3]}}else{c[p+(s<<8)+4>>2]=c[t>>2];c[p+(s<<8)+16>>2]=c[u>>2];h[p+(s<<8)+32>>3]=+h[v>>3]}s=s+1|0}C=C+1|0}while((C|0)<(j|0))}else s=0;c[q>>2]=s;i=F;return 0}function hf(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0;k=i;i=i+288|0;m=k+200|0;l=k+104|0;f=k+264|0;j=k+8|0;g=k;o=c[b+16>>2]|0;p=(4-o|0)%4|0;h[m>>3]=+h[b+168+(p<<4)>>3];h[m+8>>3]=+h[b+168+(p<<4)+8>>3];p=(5-o|0)%4|0;h[m+16>>3]=+h[b+168+(p<<4)>>3];h[m+24>>3]=+h[b+168+(p<<4)+8>>3];p=(6-o|0)%4|0;h[m+32>>3]=+h[b+168+(p<<4)>>3];h[m+40>>3]=+h[b+168+(p<<4)+8>>3];o=(7-o|0)%4|0;h[m+48>>3]=+h[b+168+(o<<4)>>3];h[m+56>>3]=+h[b+168+(o<<4)+8>>3];n=d*-.5;h[l>>3]=n;d=d*.5;h[l+8>>3]=d;h[l+16>>3]=0.0;h[l+24>>3]=d;h[l+32>>3]=d;h[l+40>>3]=0.0;h[l+48>>3]=d;h[l+56>>3]=n;h[l+64>>3]=0.0;h[l+72>>3]=n;h[l+80>>3]=n;h[l+88>>3]=0.0;c[f>>2]=m;c[f+4>>2]=l;c[f+8>>2]=4;if((Eg(c[a>>2]|0,m,l,4,j)|0)<0)d=1.0e8;else{p=(zg(c[a>>2]|0,f,j,e,g)|0)<0;d=p?1.0e8:+h[g>>3]}i=k;return +d}function jf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0;j=i;i=i+192|0;m=j+104|0;l=j+8|0;k=j+168|0;g=j;o=c[b+16>>2]|0;p=(4-o|0)%4|0;h[m>>3]=+h[b+168+(p<<4)>>3];h[m+8>>3]=+h[b+168+(p<<4)+8>>3];p=(5-o|0)%4|0;h[m+16>>3]=+h[b+168+(p<<4)>>3];h[m+24>>3]=+h[b+168+(p<<4)+8>>3];p=(6-o|0)%4|0;h[m+32>>3]=+h[b+168+(p<<4)>>3];h[m+40>>3]=+h[b+168+(p<<4)+8>>3];o=(7-o|0)%4|0;h[m+48>>3]=+h[b+168+(o<<4)>>3];h[m+56>>3]=+h[b+168+(o<<4)+8>>3];n=e*-.5;h[l>>3]=n;e=e*.5;h[l+8>>3]=e;h[l+16>>3]=0.0;h[l+24>>3]=e;h[l+32>>3]=e;h[l+40>>3]=0.0;h[l+48>>3]=e;h[l+56>>3]=n;h[l+64>>3]=0.0;h[l+72>>3]=n;h[l+80>>3]=n;h[l+88>>3]=0.0;c[k>>2]=m;c[k+4>>2]=l;c[k+8>>2]=4;b=(zg(c[a>>2]|0,k,d,f,g)|0)<0;i=j;return +(b?1.0e8:+h[g>>3])}function kf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+20|0;n=p;j=cx(f<<4)|0;c[m>>2]=j;if(!j){Kf(3,21359,p+8|0);zb(1)}k=cx(f*24|0)|0;l=m+4|0;c[l>>2]=k;if(!k){Kf(3,21359,p+16|0);zb(1)}if((f|0)>0){o=0;do{h[j+(o<<4)>>3]=+h[d+(o<<4)>>3];h[j+(o<<4)+8>>3]=+h[d+(o<<4)+8>>3];h[k+(o*24|0)>>3]=+h[e+(o*24|0)>>3];h[k+(o*24|0)+8>>3]=+h[e+(o*24|0)+8>>3];h[k+(o*24|0)+16>>3]=+h[e+(o*24|0)+16>>3];o=o+1|0}while((o|0)<(f|0))}c[m+8>>2]=f;if((zg(c[a>>2]|0,m,b,g,n)|0)<0)h[n>>3]=1.0e8;dx(c[m>>2]|0);dx(c[l>>2]|0);i=p;return +(+h[n>>3])}function lf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+20|0;n=p;j=cx(f<<4)|0;c[m>>2]=j;if(!j){Kf(3,21359,p+8|0);zb(1)}k=cx(f*24|0)|0;l=m+4|0;c[l>>2]=k;if(!k){Kf(3,21359,p+16|0);zb(1)}if((f|0)>0){o=0;do{h[j+(o<<4)>>3]=+h[d+(o<<4)>>3];h[j+(o<<4)+8>>3]=+h[d+(o<<4)+8>>3];h[k+(o*24|0)>>3]=+h[e+(o*24|0)>>3];h[k+(o*24|0)+8>>3]=+h[e+(o*24|0)+8>>3];h[k+(o*24|0)+16>>3]=+h[e+(o*24|0)+16>>3];o=o+1|0}while((o|0)<(f|0))}c[m+8>>2]=f;if((Bg(c[a>>2]|0,m,b,g,n)|0)<0)h[n>>3]=1.0e8;dx(c[m>>2]|0);dx(c[l>>2]|0);i=p;return +(+h[n>>3])}function mf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=cx(2080)|0;a:do if(f){c[f+2068>>2]=d;b:do if(!e){switch(d|0){case 5:case 12:case 13:case 14:break;default:{g=4;break b}}c[f+2076>>2]=0}else g=4;while(0);do if((g|0)==4){g=cx($(b,a)|0)|0;c[f>>2]=g;if(!g){dx(f);f=0;break a}else{c[f+2076>>2]=1;break}}while(0);c[f+2072>>2]=e;c[f+4>>2]=0;c[f+8>>2]=a;c[f+12>>2]=b}while(0);return f|0}function nf(a){a=a|0;if(a){if(c[a+2076>>2]|0)dx(c[a>>2]|0);dx(c[a+4>>2]|0);dx(a)}return}function of(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+16|0;g=k;f=c[b+2068>>2]|0;a:do switch(f|0){case 5:case 12:case 13:case 14:if(!(c[b+2072>>2]|0)){c[b>>2]=e;f=0;break a}else{gH(c[b>>2]|0,e|0,$(c[b+12>>2]|0,c[b+8>>2]|0)|0)|0;f=0;break a}default:{if((f&-2|0)==2){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j|1)>>0]|0)+(d[e+j>>0]|0)+(d[e+(j|2)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+4|0}}if((f&-3|0)==4){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j|2)>>0]|0)+(d[e+(j|1)>>0]|0)+(d[e+(j|3)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+4|0}}if(f>>>0<2){f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=(((d[e+(j+1)>>0]|0)+(d[e+j>>0]|0)+(d[e+(j+2)>>0]|0)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break a}else j=j+3|0}}switch(f|0){case 8:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=a[e+j>>0]|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 7:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){a[(c[b>>2]|0)+h>>0]=a[e+(j|1)>>0]|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 9:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){m=d[e+j>>0]|0;l=d[e+(j|1)>>0]|0;a[(c[b>>2]|0)+h>>0]=(((m&248)+10+(m<<5&224)+(l>>>3&28)+(l<<3&248)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 10:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){l=d[e+j>>0]|0;m=d[e+(j|1)>>0]|0;a[(c[b>>2]|0)+h>>0]=(((l&248)+12+(l<<5&224)+(m>>>3&24)+(m<<2&248)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}case 11:{f=b+8|0;g=b+12|0;if(!($(c[g>>2]|0,c[f>>2]|0)|0)){f=0;break a}else{h=0;j=0}while(1){m=d[e+j>>0]|0;a[(c[b>>2]|0)+h>>0]=(((m&240)+24+(m<<4&240)+((d[e+(j|1)>>0]|0)&240)|0)>>>0)/3|0;h=h+1|0;if(h>>>0>=($(c[g>>2]|0,c[f>>2]|0)|0)>>>0){f=0;break}else j=j+2|0}break}default:{Kf(3,18549,g);f=-1;break a}}}}while(0);i=k;return f|0}function pf(a,b){a=a|0;b=b|0;var e=0,f=0;if((a|0)!=0&(b|0)!=0?(of(a,b)|0)>=0:0){iH(a+16|0,0,1024)|0;b=c[a>>2]|0;f=$(c[a+12>>2]|0,c[a+8>>2]|0)|0;e=b+f|0;if((f|0)>0){do{f=a+16+((d[b>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;b=b+1|0}while(b>>>0>>0);b=0}else b=0}else b=-1;return b|0}function qf(a,b){a=a|0;b=b|0;var d=0;b=pf(a,b)|0;if((b|0)>=0){b=0;d=0;do{b=(c[a+16+(d<<2)>>2]|0)+b|0;c[a+1040+(d<<2)>>2]=b;d=d+1|0}while((d|0)!=256);b=0}return b|0}function rf(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0;if(!(e<0.0|e>1.0)){d=qf(b,d)|0;if((d|0)>=0){i=~~(+($(c[b+12>>2]|0,c[b+8>>2]|0)|0)*e)>>>0;d=0;while(1){h=d&255;g=c[b+1040+(h<<2)>>2]|0;if(g>>>0>>0)d=d+1<<24>>24;else break}if((g|0)==(i|0))do d=d+1<<24>>24;while((c[b+1040+((d&255)<<2)>>2]|0)==(i|0));a[f>>0]=((d&255)+h|0)>>>1;d=0}}else d=-1;return d|0}function sf(a,b,c){a=a|0;b=b|0;c=c|0;return rf(a,b,.5,c)|0}function tf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0;d=pf(b,d)|0;if((d|0)>=0){d=1;f=0.0;do{f=f+ +(($(c[b+16+(d<<2)>>2]|0,d)|0)>>>0);d=d+1|0}while((d|0)!=256);k=+($(c[b+12>>2]|0,c[b+8>>2]|0)|0);l=0;h=0.0;d=0;j=0.0;m=0.0;while(1){g=c[b+16+(l<<2)>>2]|0;m=m+ +(g>>>0);if(m!=0.0){i=k-m;if(i==0.0)break;h=h+ +(($(l,g)|0)>>>0);n=h/m-(f-h)/i;i=n*(m*i*n);if(i>j)d=l&255;else i=j}else i=j;if((l&255)<<24>>24==-1)break;else{l=l+1|0;j=i}}a[e>>0]=d;d=0}return d|0}function uf(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=pf(b,e)|0;do if((e|0)>=0){t=b+4|0;if(!(c[t>>2]|0)){e=b+8|0;h=b+12|0;s=cx($(c[h>>2]|0,c[e>>2]|0)|0)|0;c[t>>2]=s;if(!s){e=-1;break}else s=e}else{s=b+8|0;h=b+12|0}q=f>>1;r=0-q|0;e=c[h>>2]|0;if((e|0)>0){n=(q|0)<(r|0);o=(q|0)<(r|0);p=0;do{e=c[s>>2]|0;if((e|0)>0){m=0;do{if(n){i=0;f=0}else{i=0;l=r;f=0;while(1){j=l+p|0;if(((j|0)>=0?(j|0)<(c[h>>2]|0):0)?(u=$(e,j)|0,!o):0){k=r;while(1){j=k+m|0;if((j|0)>-1&(j|0)<(e|0)){i=i+1|0;f=(d[(c[b>>2]|0)+(u+j)>>0]|0)+f|0}if((k|0)<(q|0))k=k+1|0;else break}}if((l|0)<(q|0))l=l+1|0;else break}}l=($(e,p)|0)+m|0;a[(c[t>>2]|0)+l>>0]=(f|0)/(i|0)|0;m=m+1|0;e=c[s>>2]|0}while((m|0)<(e|0))}p=p+1|0;e=c[h>>2]|0}while((p|0)<(e|0))}if((g|0)!=0?($(e,c[s>>2]|0)|0)>0:0){e=0;do{b=(c[t>>2]|0)+e|0;a[b>>0]=(d[b>>0]|0)+g;e=e+1|0}while((e|0)<($(c[h>>2]|0,c[s>>2]|0)|0));e=0}else e=0}while(0);return e|0}function vf(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0;a:do switch(e|0){case 0:{switch(f|0){case 1:{if(j){k=Cd(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=td(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=vd(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=yd(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=zd(a,b,c,g,i)|0;break a}case 8:{k=Bd(a,b,c,g,i)|0;break a}case 7:{k=Ad(a,b,c,g,i)|0;break a}case 9:{k=ud(a,b,c,g,i)|0;break a}case 10:{k=xd(a,b,c,g,i)|0;break a}case 11:{k=wd(a,b,c,g,i)|0;break a}default:zb(0)}break}case 1:{if(d>>>0<2){k=kd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=md(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=pd(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=qd(a,b,c,g,i)|0;break a}case 8:{k=sd(a,b,c,g,i)|0;break a}case 7:{k=rd(a,b,c,g,i)|0;break a}case 9:{k=ld(a,b,c,g,i)|0;break a}case 10:{k=od(a,b,c,g,i)|0;break a}case 11:{k=nd(a,b,c,g,i)|0;break a}default:zb(0)}break}default:zb(0)}break}case 0:{if(j){k=Vd(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=Md(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Od(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Rd(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Sd(a,b,c,g,i)|0;break a}case 8:{k=Ud(a,b,c,g,i)|0;break a}case 7:{k=Td(a,b,c,g,i)|0;break a}case 9:{k=Nd(a,b,c,g,i)|0;break a}case 10:{k=Qd(a,b,c,g,i)|0;break a}case 11:{k=Pd(a,b,c,g,i)|0;break a}default:zb(0)}break}case 1:{if(d>>>0<2){k=Dd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Fd(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Id(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Jd(a,b,c,g,i)|0;break a}case 8:{k=Ld(a,b,c,g,i)|0;break a}case 7:{k=Kd(a,b,c,g,i)|0;break a}case 9:{k=Ed(a,b,c,g,i)|0;break a}case 10:{k=Hd(a,b,c,g,i)|0;break a}case 11:{k=Gd(a,b,c,g,i)|0;break a}default:zb(0)}break}default:zb(0)}break}default:zb(0)}break}case 1:{switch(f|0){case 1:{if(j){k=me(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=de(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=fe(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=ie(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=je(a,b,c,g,i)|0;break a}case 8:{k=le(a,b,c,g,i)|0;break a}case 7:{k=ke(a,b,c,g,i)|0;break a}case 9:{k=ee(a,b,c,g,i)|0;break a}case 10:{k=he(a,b,c,g,i)|0;break a}case 11:{k=ge(a,b,c,g,i)|0;break a}default:zb(0)}break}case 1:{if(d>>>0<2){k=Wd(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=Yd(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=$d(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=ae(a,b,c,g,i)|0;break a}case 8:{k=ce(a,b,c,g,i)|0;break a}case 7:{k=be(a,b,c,g,i)|0;break a}case 9:{k=Xd(a,b,c,g,i)|0;break a}case 10:{k=_d(a,b,c,g,i)|0;break a}case 11:{k=Zd(a,b,c,g,i)|0;break a}default:zb(0)}break}default:zb(0)}break}case 0:{if(j){k=Fe(a,b,c,j,i)|0;break a}switch(h|0){case 0:{if(d>>>0<2){k=we(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=ye(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=Be(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=Ce(a,b,c,g,i)|0;break a}case 8:{k=Ee(a,b,c,g,i)|0;break a}case 7:{k=De(a,b,c,g,i)|0;break a}case 9:{k=xe(a,b,c,g,i)|0;break a}case 10:{k=Ae(a,b,c,g,i)|0;break a}case 11:{k=ze(a,b,c,g,i)|0;break a}default:zb(0)}break}case 1:{if(d>>>0<2){k=ne(a,b,c,g,i)|0;break a}if((d&-2|0)==2){k=pe(a,b,c,g,i)|0;break a}if((d&-3|0)==4){k=se(a,b,c,g,i)|0;break a}switch(d|0){case 5:case 12:case 13:case 14:{k=te(a,b,c,g,i)|0;break a}case 8:{k=ve(a,b,c,g,i)|0;break a}case 7:{k=ue(a,b,c,g,i)|0;break a}case 9:{k=oe(a,b,c,g,i)|0;break a}case 10:{k=re(a,b,c,g,i)|0;break a}case 11:{k=qe(a,b,c,g,i)|0;break a}default:zb(0)}break}default:zb(0)}break}default:zb(0)}break}default:zb(0)}while(0);return k|0}function wf(a,b){a=a|0;b=b|0;var d=0;if((a|0)!=0?(d=a+7062384|0,(c[d>>2]|0)==0):0){c[d>>2]=b;d=0}else d=-1;return d|0}function xf(a){a=a|0;var b=0;if((a|0)!=0?(b=a+7062384|0,(c[b>>2]|0)!=0):0){c[b>>2]=0;b=0}else b=-1;return b|0}function yf(){return zf(16,50)|0}function zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+56|0;p=r+48|0;j=r+40|0;h=r+32|0;g=r+24|0;f=r+16|0;e=r+8|0;d=r;a:do if(!((a+-16|0)>>>0>48|(b|0)<1)){n=cx(32)|0;if(!n){Kf(3,21359,d);zb(1)}c[n>>2]=0;c[n+4>>2]=b;c[n+28>>2]=a;m=cx(b<<2)|0;c[n+8>>2]=m;if(!m){Kf(3,21359,e);zb(1)}d=b<<4;l=cx(d)|0;c[n+12>>2]=l;if(!l){Kf(3,21359,f);zb(1)}f=cx(d)|0;k=n+20|0;c[k>>2]=f;if(!f){Kf(3,21359,g);zb(1)}d=b<<5;g=cx(d)|0;c[n+16>>2]=g;if(!g){Kf(3,21359,h);zb(1)}h=cx(d)|0;c[n+24>>2]=h;if(!h){Kf(3,21359,j);zb(1)}e=$(a,a)|0;d=e*12|0;e=e<<2;if((b|0)>0){a=0;b:while(1){c[m+(a<<2)>>2]=0;f=a<<2;h=0;while(1){if((h|0)>=4)break;j=cx(d)|0;g=h+f|0;c[l+(g<<2)>>2]=j;if(!j){d=18;break b}j=cx(e)|0;c[(c[k>>2]|0)+(g<<2)>>2]=j;if(!j){d=20;break b}else h=h+1|0}a=a+1|0;if((a|0)>=(b|0)){o=n;break a}}if((d|0)==18){Kf(3,21359,p);zb(1)}else if((d|0)==20){Kf(3,21359,q);zb(1)}}else o=n}else o=0;while(0);i=r;return o|0}function Af(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!a)b=-1;else{b=a+4|0;d=a+8|0;e=a+12|0;f=a+20|0;if((c[b>>2]|0)>0){g=0;do{if(c[(c[d>>2]|0)+(g<<2)>>2]|0)Jf(a,g)|0;h=g<<2;dx(c[(c[e>>2]|0)+(h<<2)>>2]|0);dx(c[(c[f>>2]|0)+(h<<2)>>2]|0);i=1+h|0;dx(c[(c[e>>2]|0)+(i<<2)>>2]|0);dx(c[(c[f>>2]|0)+(i<<2)>>2]|0);i=2+h|0;dx(c[(c[e>>2]|0)+(i<<2)>>2]|0);dx(c[(c[f>>2]|0)+(i<<2)>>2]|0);h=3+h|0;dx(c[(c[e>>2]|0)+(h<<2)>>2]|0);dx(c[(c[f>>2]|0)+(h<<2)>>2]|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}dx(a);b=0}return b|0}function Bf(b,e,f,g,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;var y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+12448|0;A=L+12440|0;z=L+8|0;J=L;I=L+12312|0;K=L+24|0;do if((f+-2|0)>>>0<3){if((v|0)!=2830){y=v&255;if((Cf(e,2,y,y*3|0,g,j,k,l,m,n,o,K)|0)<0){c[s>>2]=-1;y=-6;break}y=Df(K,y,s,t,u,v,w)|0;if(!x)break;c[x>>2]=0;c[x+4>>2]=0;break}if((Cf(e,2,14,42,g,j,k,l,m,n,.875,K)|0)<0){c[s>>2]=-1;y=-6;break}c[z>>2]=0;c[z+4>>2]=182;c[z+8>>2]=195;c[z+12>>2]=13;v=a[K+(c[z>>2]|0)>>0]|0;y=(v&255)>0?v:0;v=(v&255)<255?v:-1;H=a[K+(c[z+4>>2]|0)>>0]|0;y=(H&255)>(y&255)?H:y;v=(H&255)<(v&255)?H:v;H=a[K+(c[z+8>>2]|0)>>0]|0;y=(H&255)>(y&255)?H:y;v=(H&255)<(v&255)?H:v;H=a[K+(c[z+12>>2]|0)>>0]|0;y=((H&255)>(y&255)?H:y)&255;v=((H&255)<(v&255)?H:v)&255;a:do if((y-v|0)>=30){H=(y+v|0)>>>1;a[A>>0]=(d[K+(c[z>>2]|0)>>0]|0)>>>0>>0&1;a[A+1>>0]=(d[K+(c[z+4>>2]|0)>>0]|0)>>>0>>0&1;a[A+2>>0]=(d[K+(c[z+8>>2]|0)>>0]|0)>>>0>>0&1;a[A+3>>0]=(d[K+(c[z+12>>2]|0)>>0]|0)>>>0>>0&1;v=0;while(1){y=v+1|0;if(((a[A+v>>0]|0)==1?(a[A+((y|0)%4|0)>>0]|0)==1:0)?(a[A+((v+2|0)%4|0)>>0]|0)==0:0){G=v;break}if((y|0)<4)v=y;else{G=y;break}}switch(G|0){case 4:{c[t>>2]=0;h[u>>3]=-1.0;y=-3;v=0;z=0;break a}case 0:{z=119;y=255;v=0;do{D=v+-3|0;B=(v&-2|0)==12;C=v*14|0;A=0;do{if(((A+-3|D)>>>0>=8?(F=A&-2,(A|v)>>>0>=2):0)?!(B&((F|0)==0|(F|0)==12)):0){E=(d[K+(A+C)>>0]|0)-H|0;a[I+z>>0]=E>>>31;E=(E|0)>-1?E:0-E|0;z=z+-1|0;y=(E|0)<(y|0)?E:y}A=A+1|0}while((A|0)!=14);v=v+1|0}while((v|0)!=14);break}case 1:{z=119;y=255;v=0;do{D=v+-3|0;C=v&-2;B=(C|0)==0;C=(C|0)==12;A=13;while(1){if(((A+-3|D)>>>0>=8?(E=(A&-2|0)==12,!(B&E)):0)?!(C&(A>>>0<2|E)):0){F=(d[K+((A*14|0)+v)>>0]|0)-H|0;a[I+z>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;z=z+-1|0;y=(F|0)<(y|0)?F:y}if((A|0)>0)A=A+-1|0;else break}v=v+1|0}while((v|0)!=14);break}case 2:{v=119;y=255;D=13;while(1){B=D+-3|0;C=D>>>0<2|(D&-2|0)==12;A=D*14|0;z=13;while(1){if((z+-3|B)>>>0>=8?!((z|D)>>>0<2|C&(z&-2|0)==12):0){F=(d[K+(z+A)>>0]|0)-H|0;a[I+v>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;v=v+-1|0;y=(F|0)<(y|0)?F:y}if((z|0)>0)z=z+-1|0;else break}if((D|0)>0)D=D+-1|0;else break}break}case 3:{v=119;y=255;D=13;while(1){C=D+-3|0;B=D&-2;A=(B|0)==12;B=(B|0)==0;z=0;do{if(((z+-3|C)>>>0>=8?!(A&z>>>0<2|(z|D)>>>0<2):0)?!(B&(z&-2|0)==12):0){F=(d[K+((z*14|0)+D)>>0]|0)-H|0;a[I+v>>0]=F>>>31;F=(F|0)>-1?F:0-F|0;v=v+-1|0;y=(F|0)<(y|0)?F:y}z=z+1|0}while((z|0)!=14);if((D|0)>0)D=D+-1|0;else break}break}default:y=255}c[t>>2]=G;h[u>>3]=(y|0)>30?1.0:+(y|0)/30.0;y=Gf(2830,0,0,I,J)|0;if((y|0)<0){y=-4;v=0;z=0}else{if(w)c[w>>2]=y;z=J;y=0;v=c[z>>2]|0;z=c[z+4>>2]|0}}else{c[t>>2]=0;h[u>>3]=-1.0;y=-2;v=0;z=0}while(0);if((y|0)<0){c[s>>2]=-1;break}if((v|0)==-1&(z|0)==-1){c[s>>2]=-1;y=-5;break}c[s>>2]=(v&-32768|0)==0&0==0?v&32767:0;if(!x)y=0;else{y=x;c[y>>2]=v;c[y+4>>2]=z;y=0}}else y=1;while(0);b:do switch(f|0){case 0:case 1:case 3:case 4:{if(!b){c[p>>2]=-1;v=-1;break b}v=b+28|0;z=c[v>>2]|0;A=z<<2;switch(f|0){case 0:case 3:if((Cf(e,0,z,A,g,j,k,l,m,n,o,K)|0)<0){c[p>>2]=-1;v=-6;break b}else{v=Ef(b,0,K,c[v>>2]|0,p,q,r)|0;break b}default:if((Cf(e,1,z,A,g,j,k,l,m,n,o,K)|0)<0){c[p>>2]=-1;v=-6;break b}else{v=Ef(b,1,K,c[v>>2]|0,p,q,r)|0;break b}}}default:v=1}while(0);if((y|0)!=1){if((v|0)!=1)y=(v&y|0)<0?v:0}else y=v;i=L;return y|0} +function uE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=e;j=a+8|0;a:do if((d|0)==(e|0)|(f|0)==0)a=0;else{a=0;i=0;while(1){h=bv(c[j>>2]|0)|0;g=ov(d,k-d|0,b)|0;if(h)bv(h)|0;switch(g|0){case -2:case -1:break a;case 0:{d=d+1|0;g=1;break}default:d=d+g|0}a=g+a|0;i=i+1|0;if((d|0)==(e|0)|i>>>0>=f>>>0)break a}}while(0);return a|0}function vE(a){a=a|0;a=c[a+8>>2]|0;if(a){a=bv(a)|0;if(!a)a=4;else{bv(a)|0;a=4}}else a=1;return a|0}function wE(a){a=a|0;Vt(a);return}function xE(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0;a=i;i=i+16|0;k=a+4|0;b=a;c[k>>2]=d;c[b>>2]=g;h=BG(d,e,k,g,h,b,1114111,0)|0;c[f>>2]=c[k>>2];c[j>>2]=c[b>>2];i=a;return h|0}function yE(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0;a=i;i=i+16|0;k=a+4|0;b=a;c[k>>2]=d;c[b>>2]=g;h=CG(d,e,k,g,h,b,1114111,0)|0;c[f>>2]=c[k>>2];c[j>>2]=c[b>>2];i=a;return h|0}function zE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function AE(a){a=a|0;return 0}function BE(a){a=a|0;return 0}function CE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return DG(c,d,e,1114111,0)|0}function DE(a){a=a|0;return 4}function EE(a){a=a|0;Vt(a);return}function FE(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0;a=i;i=i+16|0;k=a+4|0;b=a;c[k>>2]=d;c[b>>2]=g;h=EG(d,e,k,g,h,b,1114111,0)|0;c[f>>2]=c[k>>2];c[j>>2]=c[b>>2];i=a;return h|0}function GE(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0;a=i;i=i+16|0;k=a+4|0;b=a;c[k>>2]=d;c[b>>2]=g;h=FG(d,e,k,g,h,b,1114111,0)|0;c[f>>2]=c[k>>2];c[j>>2]=c[b>>2];i=a;return h|0}function HE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function IE(a){a=a|0;return 0}function JE(a){a=a|0;return 0}function KE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return GG(c,d,e,1114111,0)|0}function LE(a){a=a|0;return 4}function ME(a){a=a|0;Vt(a);return}function NE(a){a=a|0;Vt(a);return}function OE(b,d){b=b|0;d=d|0;c[b+4>>2]=d+-1;c[b>>2]=13844;a[b+8>>0]=46;a[b+9>>0]=44;b=b+12|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;return}function PE(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=13884;c[a+8>>2]=46;c[a+12>>2]=44;a=a+16|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function QE(a){a=a|0;c[a>>2]=13844;Yx(a+12|0);return}function RE(a){a=a|0;QE(a);Vt(a);return}function SE(a){a=a|0;c[a>>2]=13884;Yx(a+16|0);return}function TE(a){a=a|0;SE(a);Vt(a);return}function UE(b){b=b|0;return a[b+8>>0]|0}function VE(a){a=a|0;return c[a+8>>2]|0}function WE(b){b=b|0;return a[b+9>>0]|0}function XE(a){a=a|0;return c[a+12>>2]|0}function YE(a,b){a=a|0;b=b|0;Vx(a,b+12|0);return}function ZE(a,b){a=a|0;b=b|0;Vx(a,b+16|0);return}function _E(a,b){a=a|0;b=b|0;Wx(a,54945,4);return}function $E(a,b){a=a|0;b=b|0;fy(a,14456,Lw(14456)|0);return}function aF(a,b){a=a|0;b=b|0;Wx(a,54950,5);return}function bF(a,b){a=a|0;b=b|0;fy(a,14476,Lw(14476)|0);return}function cF(a){a=a|0;switch(c[a+4>>2]&74|0){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function dF(b){b=b|0;if((a[2736]|0)==0?(Ia(2736)|0)!=0:0){if((a[2744]|0)==0?(Ia(2744)|0)!=0:0){b=14500;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=14668);Wa(150,0,n|0)|0;db(2744)}Zx(14500,54956)|0;Zx(14512,54963)|0;Zx(14524,54970)|0;Zx(14536,54978)|0;Zx(14548,54988)|0;Zx(14560,54997)|0;Zx(14572,55004)|0;Zx(14584,55013)|0;Zx(14596,55017)|0;Zx(14608,55021)|0;Zx(14620,55025)|0;Zx(14632,55029)|0;Zx(14644,55033)|0;Zx(14656,55037)|0;c[3667]=14500;db(2736)}return c[3667]|0}function eF(b){b=b|0;if((a[2752]|0)==0?(Ia(2752)|0)!=0:0){if((a[2760]|0)==0?(Ia(2760)|0)!=0:0){b=14672;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=14840);Wa(151,0,n|0)|0;db(2760)}iy(14672,14840)|0;iy(14684,14868)|0;iy(14696,14896)|0;iy(14708,14928)|0;iy(14720,14968)|0;iy(14732,15004)|0;iy(14744,15032)|0;iy(14756,15068)|0;iy(14768,15084)|0;iy(14780,15100)|0;iy(14792,15116)|0;iy(14804,15132)|0;iy(14816,15148)|0;iy(14828,15164)|0;c[3795]=14672;db(2752)}return c[3795]|0}function fF(b){b=b|0;if((a[2768]|0)==0?(Ia(2768)|0)!=0:0){if((a[2776]|0)==0?(Ia(2776)|0)!=0:0){b=15184;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=15472);Wa(152,0,n|0)|0;db(2776)}Zx(15184,55041)|0;Zx(15196,55049)|0;Zx(15208,55058)|0;Zx(15220,55064)|0;Zx(15232,55070)|0;Zx(15244,55074)|0;Zx(15256,55079)|0;Zx(15268,55084)|0;Zx(15280,55091)|0;Zx(15292,55101)|0;Zx(15304,55109)|0;Zx(15316,55118)|0;Zx(15328,55127)|0;Zx(15340,55131)|0;Zx(15352,55135)|0;Zx(15364,55139)|0;Zx(15376,55070)|0;Zx(15388,55143)|0;Zx(15400,55147)|0;Zx(15412,55151)|0;Zx(15424,55155)|0;Zx(15436,55159)|0;Zx(15448,55163)|0;Zx(15460,55167)|0;c[3868]=15184;db(2768)}return c[3868]|0}function gF(b){b=b|0;if((a[2784]|0)==0?(Ia(2784)|0)!=0:0){if((a[2792]|0)==0?(Ia(2792)|0)!=0:0){b=15476;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=15764);Wa(153,0,n|0)|0;db(2792)}iy(15476,15764)|0;iy(15488,15796)|0;iy(15500,15832)|0;iy(15512,15856)|0;iy(15524,15880)|0;iy(15536,15896)|0;iy(15548,15916)|0;iy(15560,15936)|0;iy(15572,15964)|0;iy(15584,16004)|0;iy(15596,16036)|0;iy(15608,16072)|0;iy(15620,16108)|0;iy(15632,16124)|0;iy(15644,16140)|0;iy(15656,16156)|0;iy(15668,15880)|0;iy(15680,16172)|0;iy(15692,16188)|0;iy(15704,16204)|0;iy(15716,16220)|0;iy(15728,16236)|0;iy(15740,16252)|0;iy(15752,16268)|0;c[4071]=15476;db(2784)}return c[4071]|0}function hF(b){b=b|0;if((a[2800]|0)==0?(Ia(2800)|0)!=0:0){if((a[2808]|0)==0?(Ia(2808)|0)!=0:0){b=16288;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=16576);Wa(154,0,n|0)|0;db(2808)}Zx(16288,55171)|0;Zx(16300,55174)|0;c[4144]=16288;db(2800)}return c[4144]|0}function iF(b){b=b|0;if((a[2816]|0)==0?(Ia(2816)|0)!=0:0){if((a[2824]|0)==0?(Ia(2824)|0)!=0:0){b=16580;do{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;b=b+12|0}while((b|0)!=16868);Wa(155,0,n|0)|0;db(2824)}iy(16580,16868)|0;iy(16592,16880)|0;c[4223]=16580;db(2816)}return c[4223]|0}function jF(b){b=b|0;if((a[2832]|0)==0?(Ia(2832)|0)!=0:0){Wx(16896,55177,8);Wa(156,16896,n|0)|0;db(2832)}return 16896}function kF(b){b=b|0;if((a[2840]|0)==0?(Ia(2840)|0)!=0:0){fy(16944,16908,Lw(16908)|0);Wa(157,16944,n|0)|0;db(2840)}return 16944}function lF(b){b=b|0;if((a[2848]|0)==0?(Ia(2848)|0)!=0:0){Wx(16956,55186,8);Wa(156,16956,n|0)|0;db(2848)}return 16956}function mF(b){b=b|0;if((a[2856]|0)==0?(Ia(2856)|0)!=0:0){fy(17004,16968,Lw(16968)|0);Wa(157,17004,n|0)|0;db(2856)}return 17004}function nF(b){b=b|0;if((a[2864]|0)==0?(Ia(2864)|0)!=0:0){Wx(17016,55195,20);Wa(156,17016,n|0)|0;db(2864)}return 17016}function oF(b){b=b|0;if((a[2872]|0)==0?(Ia(2872)|0)!=0:0){fy(17112,17028,Lw(17028)|0);Wa(157,17112,n|0)|0;db(2872)}return 17112}function pF(b){b=b|0;if((a[2880]|0)==0?(Ia(2880)|0)!=0:0){Wx(17124,55216,11);Wa(156,17124,n|0)|0;db(2880)}return 17124}function qF(b){b=b|0;if((a[2888]|0)==0?(Ia(2888)|0)!=0:0){fy(17184,17136,Lw(17136)|0);Wa(157,17184,n|0)|0;db(2888)}return 17184}function rF(a){a=a|0;var b=0;c[a>>2]=13764;a=a+8|0;b=c[a>>2]|0;if((b|0)!=(Wz()|0))Zu(c[a>>2]|0);return}function sF(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+112|0;m=A;n=(g-f|0)/12|0;if(n>>>0>100){m=cx(n)|0;if(!m)Eu();else{y=m;l=m}}else{y=0;l=m}if((f|0)==(g|0))m=0;else{q=f;o=0;p=l;while(1){m=a[q>>0]|0;if(!(m&1))m=(m&255)>>>1;else m=c[q+4>>2]|0;if(!m){a[p>>0]=2;m=o+1|0;n=n+-1|0}else{a[p>>0]=1;m=o}q=q+12|0;if((q|0)==(g|0))break;else{o=m;p=p+1|0}}}w=(f|0)==(g|0);x=(f|0)==(g|0);v=0;r=m;t=n;a:while(1){m=c[b>>2]|0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0))if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1){c[b>>2]=0;m=0;break}else{m=c[b>>2]|0;break}}else m=0;while(0);p=(m|0)==0;n=c[e>>2]|0;if(n){if((c[n+12>>2]|0)==(c[n+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0)==-1:0){c[e>>2]=0;n=0}}else n=0;o=(n|0)==0;m=c[b>>2]|0;if(!((t|0)!=0&(p^o)))break;n=c[m+12>>2]|0;if((n|0)==(c[m+16>>2]|0))m=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else m=d[n>>0]|0;m=m&255;if(!k)m=Uc[c[(c[h>>2]|0)+12>>2]&63](h,m)|0;u=v+1|0;if(w){m=0;p=r;q=t}else{q=0;s=f;p=r;o=t;r=l;while(1){do if((a[r>>0]|0)==1){if(!(a[s>>0]&1))n=s+1|0;else n=c[s+8>>2]|0;n=a[n+v>>0]|0;if(!k)n=Uc[c[(c[h>>2]|0)+12>>2]&63](h,n)|0;if(m<<24>>24!=n<<24>>24){a[r>>0]=0;n=q;o=o+-1|0;break}n=a[s>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=c[s+4>>2]|0;if((n|0)==(u|0)){a[r>>0]=2;n=1;p=p+1|0;o=o+-1|0}else n=1}else n=q;while(0);s=s+12|0;if((s|0)==(g|0)){m=n;q=o;break}else{q=n;r=r+1|0}}}if(!m){v=u;r=p;t=q;continue}m=c[b>>2]|0;n=m+12|0;o=c[n>>2]|0;if((o|0)==(c[m+16>>2]|0))Nc[c[(c[m>>2]|0)+40>>2]&127](m)|0;else c[n>>2]=o+1;if((p+q|0)>>>0<2|x){v=u;r=p;t=q;continue}else{m=f;o=p;p=l}while(1){if((a[p>>0]|0)==2){n=a[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=c[m+4>>2]|0;if((n|0)!=(u|0)){a[p>>0]=0;o=o+-1|0}}m=m+12|0;if((m|0)==(g|0)){v=u;r=o;t=q;continue a}else p=p+1|0}}do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0))if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1){c[b>>2]=0;m=0;break}else{m=c[b>>2]|0;break}}else m=0;while(0);m=(m|0)==0;do if(!o){if((c[n+12>>2]|0)==(c[n+16>>2]|0)?(Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0)==-1:0){c[e>>2]=0;z=65;break}if(!m)z=66}else z=65;while(0);if((z|0)==65?m:0)z=66;if((z|0)==66)c[j>>2]=c[j>>2]|2;b:do if((f|0)==(g|0))z=70;else while(1){if((a[l>>0]|0)==2)break b;f=f+12|0;if((f|0)==(g|0)){z=70;break}else l=l+1|0}while(0);if((z|0)==70){c[j>>2]=c[j>>2]|4;f=g}dx(y);i=A;return f|0}function tF(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+240|0;s=A+202|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;jA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))b=10;else b=(c[y>>2]&-2)+-1|0;$x(y,b,0);p=y+8|0;q=y+1|0;n=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=n;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=a[k>>0]|0;b=c[e>>2]|0;k=n;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;l=c[f>>2]|0;do if(l){if((c[l+12>>2]|0)!=(c[l+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;B=13;break}}else B=13;while(0);if((B|0)==13){B=0;if(g){l=0;break}else l=0}m=a[y>>0]|0;m=(m&1)==0?(m&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(k+m|0)){$x(y,m<<1,0);if(!(a[y>>0]&1))g=10;else g=(c[y>>2]&-2)+-1|0;$x(y,g,0);k=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=k+m}m=b+12|0;g=c[m>>2]|0;n=b+16|0;if((g|0)==(c[n>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(Vz(g&255,v,k,w,t,o,z,x,u,s)|0)break;g=c[m>>2]|0;if((g|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=g+1;continue}}s=a[z>>0]|0;g=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(g-x|0)<160:0){s=c[t>>2]|0;t=g+4|0;c[u>>2]=t;c[g>>2]=s;g=t}c[j>>2]=$G(k,c[w>>2]|0,h,v)|0;TC(z,x,g,h);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(l){if((c[l+12>>2]|0)==(c[l+16>>2]|0)?(Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)==-1:0){c[f>>2]=0;B=38;break}if(!b)B=39}else B=38;while(0);if((B|0)==38?b:0)B=39;if((B|0)==39)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function uF(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+240|0;s=A+202|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;jA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))b=10;else b=(c[y>>2]&-2)+-1|0;$x(y,b,0);p=y+8|0;q=y+1|0;n=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=n;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=a[k>>0]|0;b=c[e>>2]|0;k=n;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;l=c[f>>2]|0;do if(l){if((c[l+12>>2]|0)!=(c[l+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;B=13;break}}else B=13;while(0);if((B|0)==13){B=0;if(g){l=0;break}else l=0}m=a[y>>0]|0;m=(m&1)==0?(m&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(k+m|0)){$x(y,m<<1,0);if(!(a[y>>0]&1))g=10;else g=(c[y>>2]&-2)+-1|0;$x(y,g,0);k=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=k+m}m=b+12|0;g=c[m>>2]|0;n=b+16|0;if((g|0)==(c[n>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(Vz(g&255,v,k,w,t,o,z,x,u,s)|0)break;g=c[m>>2]|0;if((g|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=g+1;continue}}s=a[z>>0]|0;g=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(g-x|0)<160:0){s=c[t>>2]|0;t=g+4|0;c[u>>2]=t;c[g>>2]=s;g=t}w=_G(k,c[w>>2]|0,h,v)|0;c[j>>2]=w;c[j+4>>2]=D;TC(z,x,g,h);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(l){if((c[l+12>>2]|0)==(c[l+16>>2]|0)?(Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)==-1:0){c[f>>2]=0;B=38;break}if(!b)B=39}else B=38;while(0);if((B|0)==38?b:0)B=39;if((B|0)==39)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function vF(e,f,g,h,j,k){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=i;i=i+240|0;t=B+202|0;l=B+200|0;A=B+24|0;z=B+12|0;x=B+8|0;y=B+40|0;v=B+4|0;u=B;w=cF(h)|0;jA(A,h,t,l);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;if(!(a[z>>0]&1))e=10;else e=(c[z>>2]&-2)+-1|0;$x(z,e,0);q=z+8|0;r=z+1|0;o=(a[z>>0]&1)==0?r:c[q>>2]|0;c[x>>2]=o;c[v>>2]=y;c[u>>2]=0;s=z+4|0;p=a[l>>0]|0;e=c[f>>2]|0;l=o;a:while(1){if(e){if((c[e+12>>2]|0)==(c[e+16>>2]|0)?(Nc[c[(c[e>>2]|0)+36>>2]&127](e)|0)==-1:0){c[f>>2]=0;e=0}}else e=0;h=(e|0)==0;m=c[g>>2]|0;do if(m){if((c[m+12>>2]|0)!=(c[m+16>>2]|0))if(h)break;else break a;if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)!=-1)if(h)break;else break a;else{c[g>>2]=0;C=13;break}}else C=13;while(0);if((C|0)==13){C=0;if(h){m=0;break}else m=0}n=a[z>>0]|0;n=(n&1)==0?(n&255)>>>1:c[s>>2]|0;if((c[x>>2]|0)==(l+n|0)){$x(z,n<<1,0);if(!(a[z>>0]&1))h=10;else h=(c[z>>2]&-2)+-1|0;$x(z,h,0);l=(a[z>>0]&1)==0?r:c[q>>2]|0;c[x>>2]=l+n}n=e+12|0;h=c[n>>2]|0;o=e+16|0;if((h|0)==(c[o>>2]|0))h=Nc[c[(c[e>>2]|0)+36>>2]&127](e)|0;else h=d[h>>0]|0;if(Vz(h&255,w,l,x,u,p,A,y,v,t)|0)break;h=c[n>>2]|0;if((h|0)==(c[o>>2]|0)){Nc[c[(c[e>>2]|0)+40>>2]&127](e)|0;continue}else{c[n>>2]=h+1;continue}}t=a[A>>0]|0;h=c[v>>2]|0;if((((t&1)==0?(t&255)>>>1:c[A+4>>2]|0)|0)!=0?(h-y|0)<160:0){t=c[u>>2]|0;u=h+4|0;c[v>>2]=u;c[h>>2]=t;h=u}b[k>>1]=ZG(l,c[x>>2]|0,j,w)|0;TC(A,y,h,j);if(e){if((c[e+12>>2]|0)==(c[e+16>>2]|0)?(Nc[c[(c[e>>2]|0)+36>>2]&127](e)|0)==-1:0){c[f>>2]=0;e=0}}else e=0;e=(e|0)==0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[g>>2]=0;C=38;break}if(!e)C=39}else C=38;while(0);if((C|0)==38?e:0)C=39;if((C|0)==39)c[j>>2]=c[j>>2]|2;C=c[f>>2]|0;Yx(z);Yx(A);i=B;return C|0}function wF(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+240|0;s=A+202|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;jA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))b=10;else b=(c[y>>2]&-2)+-1|0;$x(y,b,0);p=y+8|0;q=y+1|0;n=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=n;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=a[k>>0]|0;b=c[e>>2]|0;k=n;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;l=c[f>>2]|0;do if(l){if((c[l+12>>2]|0)!=(c[l+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;B=13;break}}else B=13;while(0);if((B|0)==13){B=0;if(g){l=0;break}else l=0}m=a[y>>0]|0;m=(m&1)==0?(m&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(k+m|0)){$x(y,m<<1,0);if(!(a[y>>0]&1))g=10;else g=(c[y>>2]&-2)+-1|0;$x(y,g,0);k=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=k+m}m=b+12|0;g=c[m>>2]|0;n=b+16|0;if((g|0)==(c[n>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(Vz(g&255,v,k,w,t,o,z,x,u,s)|0)break;g=c[m>>2]|0;if((g|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=g+1;continue}}s=a[z>>0]|0;g=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(g-x|0)<160:0){s=c[t>>2]|0;t=g+4|0;c[u>>2]=t;c[g>>2]=s;g=t}c[j>>2]=YG(k,c[w>>2]|0,h,v)|0;TC(z,x,g,h);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(l){if((c[l+12>>2]|0)==(c[l+16>>2]|0)?(Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)==-1:0){c[f>>2]=0;B=38;break}if(!b)B=39}else B=38;while(0);if((B|0)==38?b:0)B=39;if((B|0)==39)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function xF(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+240|0;s=A+202|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;jA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))b=10;else b=(c[y>>2]&-2)+-1|0;$x(y,b,0);p=y+8|0;q=y+1|0;n=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=n;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=a[k>>0]|0;b=c[e>>2]|0;k=n;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;l=c[f>>2]|0;do if(l){if((c[l+12>>2]|0)!=(c[l+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;B=13;break}}else B=13;while(0);if((B|0)==13){B=0;if(g){l=0;break}else l=0}m=a[y>>0]|0;m=(m&1)==0?(m&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(k+m|0)){$x(y,m<<1,0);if(!(a[y>>0]&1))g=10;else g=(c[y>>2]&-2)+-1|0;$x(y,g,0);k=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=k+m}m=b+12|0;g=c[m>>2]|0;n=b+16|0;if((g|0)==(c[n>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(Vz(g&255,v,k,w,t,o,z,x,u,s)|0)break;g=c[m>>2]|0;if((g|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=g+1;continue}}s=a[z>>0]|0;g=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(g-x|0)<160:0){s=c[t>>2]|0;t=g+4|0;c[u>>2]=t;c[g>>2]=s;g=t}c[j>>2]=XG(k,c[w>>2]|0,h,v)|0;TC(z,x,g,h);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(l){if((c[l+12>>2]|0)==(c[l+16>>2]|0)?(Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)==-1:0){c[f>>2]=0;B=38;break}if(!b)B=39}else B=38;while(0);if((B|0)==38?b:0)B=39;if((B|0)==39)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function yF(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+240|0;s=A+202|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;jA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))b=10;else b=(c[y>>2]&-2)+-1|0;$x(y,b,0);p=y+8|0;q=y+1|0;n=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=n;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=a[k>>0]|0;b=c[e>>2]|0;k=n;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;l=c[f>>2]|0;do if(l){if((c[l+12>>2]|0)!=(c[l+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;B=13;break}}else B=13;while(0);if((B|0)==13){B=0;if(g){l=0;break}else l=0}m=a[y>>0]|0;m=(m&1)==0?(m&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(k+m|0)){$x(y,m<<1,0);if(!(a[y>>0]&1))g=10;else g=(c[y>>2]&-2)+-1|0;$x(y,g,0);k=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=k+m}m=b+12|0;g=c[m>>2]|0;n=b+16|0;if((g|0)==(c[n>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(Vz(g&255,v,k,w,t,o,z,x,u,s)|0)break;g=c[m>>2]|0;if((g|0)==(c[n>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[m>>2]=g+1;continue}}s=a[z>>0]|0;g=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(g-x|0)<160:0){s=c[t>>2]|0;t=g+4|0;c[u>>2]=t;c[g>>2]=s;g=t}w=WG(k,c[w>>2]|0,h,v)|0;c[j>>2]=w;c[j+4>>2]=D;TC(z,x,g,h);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(l){if((c[l+12>>2]|0)==(c[l+16>>2]|0)?(Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0)==-1:0){c[f>>2]=0;B=38;break}if(!b)B=39}else B=38;while(0);if((B|0)==38?b:0)B=39;if((B|0)==39)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function zF(b,e,f,h,j,k){b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+240|0;u=D+208|0;l=D+203|0;m=D+202|0;C=D+24|0;B=D+12|0;z=D+8|0;A=D+40|0;x=D+4|0;w=D;y=D+201|0;v=D+200|0;kA(C,h,u,l,m);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;if(!(a[B>>0]&1))b=10;else b=(c[B>>2]&-2)+-1|0;$x(B,b,0);r=B+8|0;s=B+1|0;o=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=o;c[x>>2]=A;c[w>>2]=0;a[y>>0]=1;a[v>>0]=69;t=B+4|0;q=a[l>>0]|0;p=a[m>>0]|0;b=c[e>>2]|0;l=o;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;h=(b|0)==0;m=c[f>>2]|0;do if(m){if((c[m+12>>2]|0)!=(c[m+16>>2]|0))if(h)break;else break a;if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)!=-1)if(h)break;else break a;else{c[f>>2]=0;E=13;break}}else E=13;while(0);if((E|0)==13){E=0;if(h){m=0;break}else m=0}n=a[B>>0]|0;n=(n&1)==0?(n&255)>>>1:c[t>>2]|0;if((c[z>>2]|0)==(l+n|0)){$x(B,n<<1,0);if(!(a[B>>0]&1))h=10;else h=(c[B>>2]&-2)+-1|0;$x(B,h,0);l=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=l+n}n=b+12|0;h=c[n>>2]|0;o=b+16|0;if((h|0)==(c[o>>2]|0))h=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else h=d[h>>0]|0;if(lA(h&255,y,v,l,z,q,p,C,A,x,w,u)|0)break;h=c[n>>2]|0;if((h|0)==(c[o>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[n>>2]=h+1;continue}}v=a[C>>0]|0;h=c[x>>2]|0;if(!((a[y>>0]|0)==0?1:(((v&1)==0?(v&255)>>>1:c[C+4>>2]|0)|0)==0)?(h-A|0)<160:0){w=c[w>>2]|0;y=h+4|0;c[x>>2]=y;c[h>>2]=w;h=y}g[k>>2]=+VG(l,c[z>>2]|0,j);TC(C,A,h,j);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[f>>2]=0;E=38;break}if(!b)E=39}else E=38;while(0);if((E|0)==38?b:0)E=39;if((E|0)==39)c[j>>2]=c[j>>2]|2;E=c[e>>2]|0;Yx(B);Yx(C);i=D;return E|0}function AF(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+240|0;u=D+208|0;l=D+203|0;m=D+202|0;C=D+24|0;B=D+12|0;z=D+8|0;A=D+40|0;x=D+4|0;w=D;y=D+201|0;v=D+200|0;kA(C,g,u,l,m);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;if(!(a[B>>0]&1))b=10;else b=(c[B>>2]&-2)+-1|0;$x(B,b,0);r=B+8|0;s=B+1|0;o=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=o;c[x>>2]=A;c[w>>2]=0;a[y>>0]=1;a[v>>0]=69;t=B+4|0;q=a[l>>0]|0;p=a[m>>0]|0;b=c[e>>2]|0;l=o;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;m=c[f>>2]|0;do if(m){if((c[m+12>>2]|0)!=(c[m+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;E=13;break}}else E=13;while(0);if((E|0)==13){E=0;if(g){m=0;break}else m=0}n=a[B>>0]|0;n=(n&1)==0?(n&255)>>>1:c[t>>2]|0;if((c[z>>2]|0)==(l+n|0)){$x(B,n<<1,0);if(!(a[B>>0]&1))g=10;else g=(c[B>>2]&-2)+-1|0;$x(B,g,0);l=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=l+n}n=b+12|0;g=c[n>>2]|0;o=b+16|0;if((g|0)==(c[o>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(lA(g&255,y,v,l,z,q,p,C,A,x,w,u)|0)break;g=c[n>>2]|0;if((g|0)==(c[o>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[n>>2]=g+1;continue}}v=a[C>>0]|0;g=c[x>>2]|0;if(!((a[y>>0]|0)==0?1:(((v&1)==0?(v&255)>>>1:c[C+4>>2]|0)|0)==0)?(g-A|0)<160:0){w=c[w>>2]|0;y=g+4|0;c[x>>2]=y;c[g>>2]=w;g=y}h[k>>3]=+UG(l,c[z>>2]|0,j);TC(C,A,g,j);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[f>>2]=0;E=38;break}if(!b)E=39}else E=38;while(0);if((E|0)==38?b:0)E=39;if((E|0)==39)c[j>>2]=c[j>>2]|2;E=c[e>>2]|0;Yx(B);Yx(C);i=D;return E|0}function BF(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+240|0;u=D+208|0;l=D+203|0;m=D+202|0;C=D+24|0;B=D+12|0;z=D+8|0;A=D+40|0;x=D+4|0;w=D;y=D+201|0;v=D+200|0;kA(C,g,u,l,m);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;if(!(a[B>>0]&1))b=10;else b=(c[B>>2]&-2)+-1|0;$x(B,b,0);r=B+8|0;s=B+1|0;o=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=o;c[x>>2]=A;c[w>>2]=0;a[y>>0]=1;a[v>>0]=69;t=B+4|0;q=a[l>>0]|0;p=a[m>>0]|0;b=c[e>>2]|0;l=o;a:while(1){if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;g=(b|0)==0;m=c[f>>2]|0;do if(m){if((c[m+12>>2]|0)!=(c[m+16>>2]|0))if(g)break;else break a;if((Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)!=-1)if(g)break;else break a;else{c[f>>2]=0;E=13;break}}else E=13;while(0);if((E|0)==13){E=0;if(g){m=0;break}else m=0}n=a[B>>0]|0;n=(n&1)==0?(n&255)>>>1:c[t>>2]|0;if((c[z>>2]|0)==(l+n|0)){$x(B,n<<1,0);if(!(a[B>>0]&1))g=10;else g=(c[B>>2]&-2)+-1|0;$x(B,g,0);l=(a[B>>0]&1)==0?s:c[r>>2]|0;c[z>>2]=l+n}n=b+12|0;g=c[n>>2]|0;o=b+16|0;if((g|0)==(c[o>>2]|0))g=Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0;else g=d[g>>0]|0;if(lA(g&255,y,v,l,z,q,p,C,A,x,w,u)|0)break;g=c[n>>2]|0;if((g|0)==(c[o>>2]|0)){Nc[c[(c[b>>2]|0)+40>>2]&127](b)|0;continue}else{c[n>>2]=g+1;continue}}v=a[C>>0]|0;g=c[x>>2]|0;if(!((a[y>>0]|0)==0?1:(((v&1)==0?(v&255)>>>1:c[C+4>>2]|0)|0)==0)?(g-A|0)<160:0){w=c[w>>2]|0;y=g+4|0;c[x>>2]=y;c[g>>2]=w;g=y}h[k>>3]=+TG(l,c[z>>2]|0,j);TC(C,A,g,j);if(b){if((c[b+12>>2]|0)==(c[b+16>>2]|0)?(Nc[c[(c[b>>2]|0)+36>>2]&127](b)|0)==-1:0){c[e>>2]=0;b=0}}else b=0;b=(b|0)==0;do if(m){if((c[m+12>>2]|0)==(c[m+16>>2]|0)?(Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0)==-1:0){c[f>>2]=0;E=38;break}if(!b)E=39}else E=38;while(0);if((E|0)==38?b:0)E=39;if((E|0)==39)c[j>>2]=c[j>>2]|2;E=c[e>>2]|0;Yx(B);Yx(C);i=D;return E|0}function CF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=bv(b)|0;b=ow(a,d,g)|0;if(e)bv(e)|0;i=f;return b|0}function DF(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+112|0;l=y;m=(f-e|0)/12|0;if(m>>>0>100){l=cx(m)|0;if(!l)Eu();else{w=l;k=l}}else{w=0;k=l}if((e|0)==(f|0))l=0;else{p=e;n=0;o=k;while(1){l=a[p>>0]|0;if(!(l&1))l=(l&255)>>>1;else l=c[p+4>>2]|0;if(!l){a[o>>0]=2;l=n+1|0;m=m+-1|0}else{a[o>>0]=1;l=n}p=p+12|0;if((p|0)==(f|0))break;else{n=l;o=o+1|0}}}u=(e|0)==(f|0);v=(e|0)==(f|0);t=0;q=m;a:while(1){m=c[b>>2]|0;do if(m){n=c[m+12>>2]|0;if((n|0)==(c[m+16>>2]|0))m=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else m=c[n>>2]|0;if((m|0)==-1){c[b>>2]=0;p=1;break}else{p=(c[b>>2]|0)==0;break}}else p=1;while(0);n=c[d>>2]|0;if(n){m=c[n+12>>2]|0;if((m|0)==(c[n+16>>2]|0))m=Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0;else m=c[m>>2]|0;if((m|0)==-1){c[d>>2]=0;n=0;o=1}else o=0}else{n=0;o=1}m=c[b>>2]|0;if(!((q|0)!=0&(p^o)))break;n=c[m+12>>2]|0;if((n|0)==(c[m+16>>2]|0))m=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else m=c[n>>2]|0;if(!j)m=Uc[c[(c[g>>2]|0)+28>>2]&63](g,m)|0;s=t+1|0;if(u){m=0;p=q}else{p=0;r=e;o=q;q=k;while(1){do if((a[q>>0]|0)==1){if(!(a[r>>0]&1))n=r+4|0;else n=c[r+8>>2]|0;n=c[n+(t<<2)>>2]|0;if(!j)n=Uc[c[(c[g>>2]|0)+28>>2]&63](g,n)|0;if((m|0)!=(n|0)){a[q>>0]=0;n=p;o=o+-1|0;break}n=a[r>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=c[r+4>>2]|0;if((n|0)==(s|0)){a[q>>0]=2;n=1;l=l+1|0;o=o+-1|0}else n=1}else n=p;while(0);r=r+12|0;if((r|0)==(f|0)){m=n;p=o;break}else{p=n;q=q+1|0}}}if(!m){t=s;q=p;continue}m=c[b>>2]|0;n=m+12|0;o=c[n>>2]|0;if((o|0)==(c[m+16>>2]|0))Nc[c[(c[m>>2]|0)+40>>2]&127](m)|0;else c[n>>2]=o+4;if((l+p|0)>>>0<2|v){t=s;q=p;continue}else{m=e;o=k}while(1){if((a[o>>0]|0)==2){n=a[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=c[m+4>>2]|0;if((n|0)!=(s|0)){a[o>>0]=0;l=l+-1|0}}m=m+12|0;if((m|0)==(f|0)){t=s;q=p;continue a}else o=o+1|0}}do if(m){l=c[m+12>>2]|0;if((l|0)==(c[m+16>>2]|0))l=Nc[c[(c[m>>2]|0)+36>>2]&127](m)|0;else l=c[l>>2]|0;if((l|0)==-1){c[b>>2]=0;m=1;break}else{m=(c[b>>2]|0)==0;break}}else m=1;while(0);do if(n){l=c[n+12>>2]|0;if((l|0)==(c[n+16>>2]|0))l=Nc[c[(c[n>>2]|0)+36>>2]&127](n)|0;else l=c[l>>2]|0;if((l|0)!=-1)if(m)break;else{x=74;break}else{c[d>>2]=0;x=72;break}}else x=72;while(0);if((x|0)==72?m:0)x=74;if((x|0)==74)c[h>>2]=c[h>>2]|2;b:do if((e|0)==(f|0))x=78;else while(1){if((a[k>>0]|0)==2)break b;e=e+12|0;if((e|0)==(f|0)){x=78;break}else k=k+1|0}while(0);if((x|0)==78){c[h>>2]=c[h>>2]|4;e=f}dx(w);i=y;return e|0}function EF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+320|0;r=z+208|0;j=z+200|0;y=z+24|0;x=z+12|0;v=z+8|0;w=z+40|0;t=z+4|0;s=z;u=cF(f)|0;mA(y,f,r,j);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);o=x+8|0;p=x+1|0;f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f;c[t>>2]=w;c[s>>2]=0;q=x+4|0;n=c[j>>2]|0;j=c[d>>2]|0;a:while(1){if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}k=c[e>>2]|0;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(l){m=k;break}else break a;else{c[e>>2]=0;A=16;break}}else A=16;while(0);if((A|0)==16){A=0;if(l){k=0;break}else m=0}k=a[x>>0]|0;k=(k&1)==0?(k&255)>>>1:c[q>>2]|0;if((c[v>>2]|0)==(f+k|0)){$x(x,k<<1,0);if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f+k}k=j+12|0;b=c[k>>2]|0;l=j+16|0;if((b|0)==(c[l>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if(iA(b,u,f,v,s,n,y,w,t,r)|0){k=m;break}b=c[k>>2]|0;if((b|0)==(c[l>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;continue}else{c[k>>2]=b+4;continue}}r=a[y>>0]|0;b=c[t>>2]|0;if((((r&1)==0?(r&255)>>>1:c[y+4>>2]|0)|0)!=0?(b-w|0)<160:0){r=c[s>>2]|0;s=b+4|0;c[t>>2]=s;c[b>>2]=r;b=s}c[h>>2]=$G(f,c[v>>2]|0,g,u)|0;TC(y,w,b,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{A=46;break}else{c[e>>2]=0;A=44;break}}else A=44;while(0);if((A|0)==44?f:0)A=46;if((A|0)==46)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Yx(x);Yx(y);i=z;return A|0}function FF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+320|0;r=z+208|0;j=z+200|0;y=z+24|0;x=z+12|0;v=z+8|0;w=z+40|0;t=z+4|0;s=z;u=cF(f)|0;mA(y,f,r,j);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);o=x+8|0;p=x+1|0;f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f;c[t>>2]=w;c[s>>2]=0;q=x+4|0;n=c[j>>2]|0;j=c[d>>2]|0;a:while(1){if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}k=c[e>>2]|0;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(l){m=k;break}else break a;else{c[e>>2]=0;A=16;break}}else A=16;while(0);if((A|0)==16){A=0;if(l){k=0;break}else m=0}k=a[x>>0]|0;k=(k&1)==0?(k&255)>>>1:c[q>>2]|0;if((c[v>>2]|0)==(f+k|0)){$x(x,k<<1,0);if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f+k}k=j+12|0;b=c[k>>2]|0;l=j+16|0;if((b|0)==(c[l>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if(iA(b,u,f,v,s,n,y,w,t,r)|0){k=m;break}b=c[k>>2]|0;if((b|0)==(c[l>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;continue}else{c[k>>2]=b+4;continue}}r=a[y>>0]|0;b=c[t>>2]|0;if((((r&1)==0?(r&255)>>>1:c[y+4>>2]|0)|0)!=0?(b-w|0)<160:0){r=c[s>>2]|0;s=b+4|0;c[t>>2]=s;c[b>>2]=r;b=s}v=_G(f,c[v>>2]|0,g,u)|0;c[h>>2]=v;c[h+4>>2]=D;TC(y,w,b,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{A=46;break}else{c[e>>2]=0;A=44;break}}else A=44;while(0);if((A|0)==44?f:0)A=46;if((A|0)==46)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Yx(x);Yx(y);i=z;return A|0}function GF(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+320|0;s=A+208|0;k=A+200|0;z=A+24|0;y=A+12|0;w=A+8|0;x=A+40|0;u=A+4|0;t=A;v=cF(g)|0;mA(z,g,s,k);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;if(!(a[y>>0]&1))d=10;else d=(c[y>>2]&-2)+-1|0;$x(y,d,0);p=y+8|0;q=y+1|0;g=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=g;c[u>>2]=x;c[t>>2]=0;r=y+4|0;o=c[k>>2]|0;k=c[e>>2]|0;a:while(1){if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else d=c[d>>2]|0;if((d|0)==-1){c[e>>2]=0;k=0;m=1}else m=0}else{k=0;m=1}l=c[f>>2]|0;do if(l){d=c[l+12>>2]|0;if((d|0)==(c[l+16>>2]|0))d=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else d=c[d>>2]|0;if((d|0)!=-1)if(m){n=l;break}else break a;else{c[f>>2]=0;B=16;break}}else B=16;while(0);if((B|0)==16){B=0;if(m){l=0;break}else n=0}l=a[y>>0]|0;l=(l&1)==0?(l&255)>>>1:c[r>>2]|0;if((c[w>>2]|0)==(g+l|0)){$x(y,l<<1,0);if(!(a[y>>0]&1))d=10;else d=(c[y>>2]&-2)+-1|0;$x(y,d,0);g=(a[y>>0]&1)==0?q:c[p>>2]|0;c[w>>2]=g+l}l=k+12|0;d=c[l>>2]|0;m=k+16|0;if((d|0)==(c[m>>2]|0))d=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else d=c[d>>2]|0;if(iA(d,v,g,w,t,o,z,x,u,s)|0){l=n;break}d=c[l>>2]|0;if((d|0)==(c[m>>2]|0)){Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;continue}else{c[l>>2]=d+4;continue}}s=a[z>>0]|0;d=c[u>>2]|0;if((((s&1)==0?(s&255)>>>1:c[z+4>>2]|0)|0)!=0?(d-x|0)<160:0){s=c[t>>2]|0;t=d+4|0;c[u>>2]=t;c[d>>2]=s;d=t}b[j>>1]=ZG(g,c[w>>2]|0,h,v)|0;TC(z,x,d,h);if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else d=c[d>>2]|0;if((d|0)==-1){c[e>>2]=0;g=1}else g=0}else g=1;do if(l){d=c[l+12>>2]|0;if((d|0)==(c[l+16>>2]|0))d=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else d=c[d>>2]|0;if((d|0)!=-1)if(g)break;else{B=46;break}else{c[f>>2]=0;B=44;break}}else B=44;while(0);if((B|0)==44?g:0)B=46;if((B|0)==46)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Yx(y);Yx(z);i=A;return B|0}function HF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+320|0;r=z+208|0;j=z+200|0;y=z+24|0;x=z+12|0;v=z+8|0;w=z+40|0;t=z+4|0;s=z;u=cF(f)|0;mA(y,f,r,j);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);o=x+8|0;p=x+1|0;f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f;c[t>>2]=w;c[s>>2]=0;q=x+4|0;n=c[j>>2]|0;j=c[d>>2]|0;a:while(1){if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}k=c[e>>2]|0;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(l){m=k;break}else break a;else{c[e>>2]=0;A=16;break}}else A=16;while(0);if((A|0)==16){A=0;if(l){k=0;break}else m=0}k=a[x>>0]|0;k=(k&1)==0?(k&255)>>>1:c[q>>2]|0;if((c[v>>2]|0)==(f+k|0)){$x(x,k<<1,0);if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f+k}k=j+12|0;b=c[k>>2]|0;l=j+16|0;if((b|0)==(c[l>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if(iA(b,u,f,v,s,n,y,w,t,r)|0){k=m;break}b=c[k>>2]|0;if((b|0)==(c[l>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;continue}else{c[k>>2]=b+4;continue}}r=a[y>>0]|0;b=c[t>>2]|0;if((((r&1)==0?(r&255)>>>1:c[y+4>>2]|0)|0)!=0?(b-w|0)<160:0){r=c[s>>2]|0;s=b+4|0;c[t>>2]=s;c[b>>2]=r;b=s}c[h>>2]=YG(f,c[v>>2]|0,g,u)|0;TC(y,w,b,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{A=46;break}else{c[e>>2]=0;A=44;break}}else A=44;while(0);if((A|0)==44?f:0)A=46;if((A|0)==46)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Yx(x);Yx(y);i=z;return A|0}function IF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+320|0;r=z+208|0;j=z+200|0;y=z+24|0;x=z+12|0;v=z+8|0;w=z+40|0;t=z+4|0;s=z;u=cF(f)|0;mA(y,f,r,j);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);o=x+8|0;p=x+1|0;f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f;c[t>>2]=w;c[s>>2]=0;q=x+4|0;n=c[j>>2]|0;j=c[d>>2]|0;a:while(1){if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}k=c[e>>2]|0;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(l){m=k;break}else break a;else{c[e>>2]=0;A=16;break}}else A=16;while(0);if((A|0)==16){A=0;if(l){k=0;break}else m=0}k=a[x>>0]|0;k=(k&1)==0?(k&255)>>>1:c[q>>2]|0;if((c[v>>2]|0)==(f+k|0)){$x(x,k<<1,0);if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f+k}k=j+12|0;b=c[k>>2]|0;l=j+16|0;if((b|0)==(c[l>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if(iA(b,u,f,v,s,n,y,w,t,r)|0){k=m;break}b=c[k>>2]|0;if((b|0)==(c[l>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;continue}else{c[k>>2]=b+4;continue}}r=a[y>>0]|0;b=c[t>>2]|0;if((((r&1)==0?(r&255)>>>1:c[y+4>>2]|0)|0)!=0?(b-w|0)<160:0){r=c[s>>2]|0;s=b+4|0;c[t>>2]=s;c[b>>2]=r;b=s}c[h>>2]=XG(f,c[v>>2]|0,g,u)|0;TC(y,w,b,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{A=46;break}else{c[e>>2]=0;A=44;break}}else A=44;while(0);if((A|0)==44?f:0)A=46;if((A|0)==46)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Yx(x);Yx(y);i=z;return A|0}function JF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+320|0;r=z+208|0;j=z+200|0;y=z+24|0;x=z+12|0;v=z+8|0;w=z+40|0;t=z+4|0;s=z;u=cF(f)|0;mA(y,f,r,j);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);o=x+8|0;p=x+1|0;f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f;c[t>>2]=w;c[s>>2]=0;q=x+4|0;n=c[j>>2]|0;j=c[d>>2]|0;a:while(1){if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}k=c[e>>2]|0;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(l){m=k;break}else break a;else{c[e>>2]=0;A=16;break}}else A=16;while(0);if((A|0)==16){A=0;if(l){k=0;break}else m=0}k=a[x>>0]|0;k=(k&1)==0?(k&255)>>>1:c[q>>2]|0;if((c[v>>2]|0)==(f+k|0)){$x(x,k<<1,0);if(!(a[x>>0]&1))b=10;else b=(c[x>>2]&-2)+-1|0;$x(x,b,0);f=(a[x>>0]&1)==0?p:c[o>>2]|0;c[v>>2]=f+k}k=j+12|0;b=c[k>>2]|0;l=j+16|0;if((b|0)==(c[l>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if(iA(b,u,f,v,s,n,y,w,t,r)|0){k=m;break}b=c[k>>2]|0;if((b|0)==(c[l>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;continue}else{c[k>>2]=b+4;continue}}r=a[y>>0]|0;b=c[t>>2]|0;if((((r&1)==0?(r&255)>>>1:c[y+4>>2]|0)|0)!=0?(b-w|0)<160:0){r=c[s>>2]|0;s=b+4|0;c[t>>2]=s;c[b>>2]=r;b=s}v=WG(f,c[v>>2]|0,g,u)|0;c[h>>2]=v;c[h+4>>2]=D;TC(y,w,b,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{A=46;break}else{c[e>>2]=0;A=44;break}}else A=44;while(0);if((A|0)==44?f:0)A=46;if((A|0)==46)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Yx(x);Yx(y);i=z;return A|0}function KF(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+352|0;t=C+208|0;k=C+40|0;l=C+36|0;B=C+24|0;A=C+12|0;y=C+8|0;z=C+48|0;w=C+4|0;v=C;x=C+337|0;u=C+336|0;nA(B,f,t,k,l);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);q=A+8|0;r=A+1|0;f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f;c[w>>2]=z;c[v>>2]=0;a[x>>0]=1;a[u>>0]=69;s=A+4|0;p=c[k>>2]|0;o=c[l>>2]|0;k=c[d>>2]|0;a:while(1){if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;k=0;m=1}else m=0}else{k=0;m=1}l=c[e>>2]|0;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(m)break;else break a;else{c[e>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(m){l=0;break}else l=0}m=a[A>>0]|0;m=(m&1)==0?(m&255)>>>1:c[s>>2]|0;if((c[y>>2]|0)==(f+m|0)){$x(A,m<<1,0);if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f+m}m=k+12|0;b=c[m>>2]|0;n=k+16|0;if((b|0)==(c[n>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if(oA(b,x,u,f,y,p,o,B,z,w,v,t)|0)break;b=c[m>>2]|0;if((b|0)==(c[n>>2]|0)){Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;continue}else{c[m>>2]=b+4;continue}}u=a[B>>0]|0;b=c[w>>2]|0;if(!((a[x>>0]|0)==0?1:(((u&1)==0?(u&255)>>>1:c[B+4>>2]|0)|0)==0)?(b-z|0)<160:0){v=c[v>>2]|0;x=b+4|0;c[w>>2]=x;c[b>>2]=v;b=x}g[j>>2]=+VG(f,c[y>>2]|0,h);TC(B,z,b,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{D=46;break}else{c[e>>2]=0;D=44;break}}else D=44;while(0);if((D|0)==44?f:0)D=46;if((D|0)==46)c[h>>2]=c[h>>2]|2;D=c[d>>2]|0;Yx(A);Yx(B);i=C;return D|0}function LF(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+352|0;t=C+208|0;k=C+40|0;l=C+36|0;B=C+24|0;A=C+12|0;y=C+8|0;z=C+48|0;w=C+4|0;v=C;x=C+337|0;u=C+336|0;nA(B,f,t,k,l);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);q=A+8|0;r=A+1|0;f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f;c[w>>2]=z;c[v>>2]=0;a[x>>0]=1;a[u>>0]=69;s=A+4|0;p=c[k>>2]|0;o=c[l>>2]|0;k=c[d>>2]|0;a:while(1){if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;k=0;m=1}else m=0}else{k=0;m=1}l=c[e>>2]|0;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(m)break;else break a;else{c[e>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(m){l=0;break}else l=0}m=a[A>>0]|0;m=(m&1)==0?(m&255)>>>1:c[s>>2]|0;if((c[y>>2]|0)==(f+m|0)){$x(A,m<<1,0);if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f+m}m=k+12|0;b=c[m>>2]|0;n=k+16|0;if((b|0)==(c[n>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if(oA(b,x,u,f,y,p,o,B,z,w,v,t)|0)break;b=c[m>>2]|0;if((b|0)==(c[n>>2]|0)){Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;continue}else{c[m>>2]=b+4;continue}}u=a[B>>0]|0;b=c[w>>2]|0;if(!((a[x>>0]|0)==0?1:(((u&1)==0?(u&255)>>>1:c[B+4>>2]|0)|0)==0)?(b-z|0)<160:0){v=c[v>>2]|0;x=b+4|0;c[w>>2]=x;c[b>>2]=v;b=x}h[j>>3]=+UG(f,c[y>>2]|0,g);TC(B,z,b,g);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{D=46;break}else{c[e>>2]=0;D=44;break}}else D=44;while(0);if((D|0)==44?f:0)D=46;if((D|0)==46)c[g>>2]=c[g>>2]|2;D=c[d>>2]|0;Yx(A);Yx(B);i=C;return D|0}function MF(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+352|0;t=C+208|0;k=C+40|0;l=C+36|0;B=C+24|0;A=C+12|0;y=C+8|0;z=C+48|0;w=C+4|0;v=C;x=C+337|0;u=C+336|0;nA(B,f,t,k,l);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);q=A+8|0;r=A+1|0;f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f;c[w>>2]=z;c[v>>2]=0;a[x>>0]=1;a[u>>0]=69;s=A+4|0;p=c[k>>2]|0;o=c[l>>2]|0;k=c[d>>2]|0;a:while(1){if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;k=0;m=1}else m=0}else{k=0;m=1}l=c[e>>2]|0;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(m)break;else break a;else{c[e>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(m){l=0;break}else l=0}m=a[A>>0]|0;m=(m&1)==0?(m&255)>>>1:c[s>>2]|0;if((c[y>>2]|0)==(f+m|0)){$x(A,m<<1,0);if(!(a[A>>0]&1))b=10;else b=(c[A>>2]&-2)+-1|0;$x(A,b,0);f=(a[A>>0]&1)==0?r:c[q>>2]|0;c[y>>2]=f+m}m=k+12|0;b=c[m>>2]|0;n=k+16|0;if((b|0)==(c[n>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if(oA(b,x,u,f,y,p,o,B,z,w,v,t)|0)break;b=c[m>>2]|0;if((b|0)==(c[n>>2]|0)){Nc[c[(c[k>>2]|0)+40>>2]&127](k)|0;continue}else{c[m>>2]=b+4;continue}}u=a[B>>0]|0;b=c[w>>2]|0;if(!((a[x>>0]|0)==0?1:(((u&1)==0?(u&255)>>>1:c[B+4>>2]|0)|0)==0)?(b-z|0)<160:0){v=c[v>>2]|0;x=b+4|0;c[w>>2]=x;c[b>>2]=v;b=x}h[j>>3]=+TG(f,c[y>>2]|0,g);TC(B,z,b,g);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0;else b=c[b>>2]|0;if((b|0)==-1){c[d>>2]=0;f=1}else f=0}else f=1;do if(l){b=c[l+12>>2]|0;if((b|0)==(c[l+16>>2]|0))b=Nc[c[(c[l>>2]|0)+36>>2]&127](l)|0;else b=c[b>>2]|0;if((b|0)!=-1)if(f)break;else{D=46;break}else{c[e>>2]=0;D=44;break}}else D=44;while(0);if((D|0)==44?f:0)D=46;if((D|0)==46)c[g>>2]=c[g>>2]|2;D=c[d>>2]|0;Yx(A);Yx(B);i=C;return D|0}function NF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i+16|0;h=g;c[h>>2]=f;f=bv(d)|0;d=mw(a,b,e,h)|0;if(f)bv(f)|0;i=g;return d|0}function OF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=bv(b)|0;b=jw(a,d,g)|0;if(e)bv(e)|0;i=f;return b|0}function PF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+16|0;n=o;j=c[b>>2]|0;a:do if(!j)j=0;else{p=d;l=f-p>>2;m=g+12|0;g=c[m>>2]|0;l=(g|0)>(l|0)?g-l|0:0;g=e;p=g-p|0;k=p>>2;if((p|0)>0?(Pc[c[(c[j>>2]|0)+48>>2]&63](j,d,k)|0)!=(k|0):0){c[b>>2]=0;j=0;break}do if((l|0)>0){gy(n,l,h);if((Pc[c[(c[j>>2]|0)+48>>2]&63](j,(a[n>>0]&1)==0?n+4|0:c[n+8>>2]|0,l)|0)==(l|0)){hy(n);break}else{c[b>>2]=0;hy(n);j=0;break a}}while(0);p=f-g|0;f=p>>2;if((p|0)>0?(Pc[c[(c[j>>2]|0)+48>>2]&63](j,e,f)|0)!=(f|0):0){c[b>>2]=0;j=0;break}c[m>>2]=0}while(0);i=o;return j|0}function QF(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=c[a>>2]|0;do if(i){if((c[i+12>>2]|0)==(c[i+16>>2]|0))if((Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0)==-1){c[a>>2]=0;i=0;break}else{i=c[a>>2]|0;break}}else i=0;while(0);j=(i|0)==0;i=c[e>>2]|0;do if(i){if((c[i+12>>2]|0)==(c[i+16>>2]|0)?(Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0)==-1:0){c[e>>2]=0;r=11;break}if(j)r=13;else r=12}else r=11;while(0);if((r|0)==11)if(j)r=12;else{i=0;r=13}a:do if((r|0)==12){c[f>>2]=c[f>>2]|6;i=0}else if((r|0)==13){j=c[a>>2]|0;k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))j=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=d[k>>0]|0;k=j&255;if(k<<24>>24>-1?(q=g+8|0,(b[(c[q>>2]|0)+(j<<24>>24<<1)>>1]&2048)!=0):0){m=(Pc[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24;j=c[a>>2]|0;k=j+12|0;l=c[k>>2]|0;if((l|0)==(c[j+16>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;o=h;n=i;h=i;i=m}else{c[k>>2]=l+1;o=h;n=i;h=i;i=m}while(1){i=i+-48|0;p=o+-1|0;j=c[a>>2]|0;do if(j){if((c[j+12>>2]|0)==(c[j+16>>2]|0))if((Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0)==-1){c[a>>2]=0;j=0;break}else{j=c[a>>2]|0;break}}else j=0;while(0);l=(j|0)==0;if(h)if((c[h+12>>2]|0)==(c[h+16>>2]|0))if((Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0)==-1){c[e>>2]=0;k=0;h=0}else{k=n;h=n}else k=n;else{k=n;h=0}j=c[a>>2]|0;if(!((o|0)>1&(l^(h|0)==0)))break;l=c[j+12>>2]|0;if((l|0)==(c[j+16>>2]|0))j=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=d[l>>0]|0;l=j&255;if(l<<24>>24<=-1)break a;if(!(b[(c[q>>2]|0)+(j<<24>>24<<1)>>1]&2048))break a;i=((Pc[c[(c[g>>2]|0)+36>>2]&63](g,l,0)|0)<<24>>24)+(i*10|0)|0;j=c[a>>2]|0;l=j+12|0;m=c[l>>2]|0;if((m|0)==(c[j+16>>2]|0)){Nc[c[(c[j>>2]|0)+40>>2]&127](j)|0;o=p;n=k;continue}else{c[l>>2]=m+1;o=p;n=k;continue}}do if(j){if((c[j+12>>2]|0)==(c[j+16>>2]|0))if((Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0)==-1){c[a>>2]=0;j=0;break}else{j=c[a>>2]|0;break}}else j=0;while(0);j=(j|0)==0;do if(k){if((c[k+12>>2]|0)==(c[k+16>>2]|0)?(Nc[c[(c[k>>2]|0)+36>>2]&127](k)|0)==-1:0){c[e>>2]=0;r=50;break}if(j)break a}else r=50;while(0);if((r|0)==50?!j:0)break;c[f>>2]=c[f>>2]|2;break}c[f>>2]=c[f>>2]|4;i=0}while(0);return i|0}function RF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[a>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=c[h>>2]|0;if((g|0)==-1){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);h=c[b>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0))g=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else g=c[g>>2]|0;if((g|0)!=-1)if(i){o=17;break}else{o=16;break}else{c[b>>2]=0;o=14;break}}else o=14;while(0);if((o|0)==14)if(i)o=16;else{h=0;o=17}a:do if((o|0)==16){c[d>>2]=c[d>>2]|6;g=0}else if((o|0)==17){g=c[a>>2]|0;i=c[g+12>>2]|0;if((i|0)==(c[g+16>>2]|0))g=Nc[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=c[i>>2]|0;if(!(Pc[c[(c[e>>2]|0)+12>>2]&63](e,2048,g)|0)){c[d>>2]=c[d>>2]|4;g=0;break}g=(Pc[c[(c[e>>2]|0)+52>>2]&63](e,g,0)|0)<<24>>24;i=c[a>>2]|0;j=i+12|0;k=c[j>>2]|0;if((k|0)==(c[i+16>>2]|0)){Nc[c[(c[i>>2]|0)+40>>2]&127](i)|0;m=f;l=h;j=h}else{c[j>>2]=k+4;m=f;l=h;j=h}while(1){g=g+-48|0;n=m+-1|0;h=c[a>>2]|0;do if(h){i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0))h=Nc[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=c[i>>2]|0;if((h|0)==-1){c[a>>2]=0;k=1;break}else{k=(c[a>>2]|0)==0;break}}else k=1;while(0);do if(j){h=c[j+12>>2]|0;if((h|0)==(c[j+16>>2]|0))h=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else h=c[h>>2]|0;if((h|0)==-1){c[b>>2]=0;j=0;f=0;h=1;break}else{j=l;f=l;h=(l|0)==0;break}}else{j=l;f=0;h=1}while(0);i=c[a>>2]|0;if(!((m|0)>1&(k^h)))break;h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=c[h>>2]|0;if(!(Pc[c[(c[e>>2]|0)+12>>2]&63](e,2048,h)|0))break a;g=((Pc[c[(c[e>>2]|0)+52>>2]&63](e,h,0)|0)<<24>>24)+(g*10|0)|0;h=c[a>>2]|0;i=h+12|0;k=c[i>>2]|0;if((k|0)==(c[h+16>>2]|0)){Nc[c[(c[h>>2]|0)+40>>2]&127](h)|0;m=n;l=j;j=f;continue}else{c[i>>2]=k+4;m=n;l=j;j=f;continue}}do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Nc[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=c[h>>2]|0;if((h|0)==-1){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);do if(j){h=c[j+12>>2]|0;if((h|0)==(c[j+16>>2]|0))h=Nc[c[(c[j>>2]|0)+36>>2]&127](j)|0;else h=c[h>>2]|0;if((h|0)!=-1)if(i)break a;else break;else{c[b>>2]=0;o=60;break}}else o=60;while(0);if((o|0)==60?!i:0)break;c[d>>2]=c[d>>2]|2}while(0);return g|0}function SF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=a+4|0;f=(c[h>>2]|0)!=147;e=c[a>>2]|0;i=e;g=(c[d>>2]|0)-i|0;g=g>>>0<2147483647?g<<1:-1;i=(c[b>>2]|0)-i|0;e=fx(f?e:0,g)|0;if(!e)Eu();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Kc[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=158;c[b>>2]=e+i;c[d>>2]=(c[a>>2]|0)+g;return}function TF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=a+4|0;f=(c[h>>2]|0)!=147;e=c[a>>2]|0;i=e;g=(c[d>>2]|0)-i|0;g=g>>>0<2147483647?g<<1:-1;i=(c[b>>2]|0)-i>>2;e=fx(f?e:0,g)|0;if(!e)Eu();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Kc[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=158;c[b>>2]=e+(i<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function UF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=d;f=a[b>>0]|0;if(!(f&1)){g=10;k=(f&255)>>>1}else{f=c[b>>2]|0;g=(f&-2)+-1|0;k=c[b+4>>2]|0;f=f&255}j=e-h|0;do if((e|0)!=(d|0)){if((g-k|0)>>>0>>0){ey(b,g,k+j-g|0,k,k,0,0);f=a[b>>0]|0}if(!(f&1))i=b+1|0;else i=c[b+8>>2]|0;h=e+(k-h)|0;if((d|0)!=(e|0)){f=d;g=i+k|0;while(1){a[g>>0]=a[f>>0]|0;f=f+1|0;if((f|0)==(e|0))break;else g=g+1|0}}a[i+h>>0]=0;f=k+j|0;if(!(a[b>>0]&1)){a[b>>0]=f<<1;break}else{c[b+4>>2]=f;break}}while(0);return b|0}function VF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=a+4|0;f=(c[h>>2]|0)!=147;e=c[a>>2]|0;i=e;g=(c[d>>2]|0)-i|0;g=g>>>0<2147483647?g<<1:-1;i=(c[b>>2]|0)-i>>2;e=fx(f?e:0,g)|0;if(!e)Eu();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Kc[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=158;c[b>>2]=e+(i<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function WF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;h=d;f=a[b>>0]|0;if(!(f&1)){g=1;k=(f&255)>>>1}else{f=c[b>>2]|0;g=(f&-2)+-1|0;k=c[b+4>>2]|0;f=f&255}j=e-h>>2;do if(j){if((g-k|0)>>>0>>0){ny(b,g,k+j-g|0,k,k,0,0);f=a[b>>0]|0}if(!(f&1))i=b+4|0;else i=c[b+8>>2]|0;h=k+((e-h|0)>>>2)|0;if((d|0)!=(e|0)){f=d;g=i+(k<<2)|0;while(1){c[g>>2]=c[f>>2];f=f+4|0;if((f|0)==(e|0))break;else g=g+4|0}}c[i+(h<<2)>>2]=0;f=k+j|0;if(!(a[b>>0]&1)){a[b>>0]=f<<1;break}else{c[b+4>>2]=f;break}}while(0);return b|0}function XF(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+128>>0]=0;if(d){SG(b,d);OG(b,d)}return}function YF(a,b){a=a|0;b=b|0;wD(a,b,FD(12608)|0);return}function ZF(a,b){a=a|0;b=b|0;wD(a,b,FD(12648)|0);return}function _F(a,b){a=a|0;b=b|0;wD(a,b,FD(13680)|0);return}function $F(a,b){a=a|0;b=b|0;wD(a,b,FD(13672)|0);return}function aG(a,b){a=a|0;b=b|0;wD(a,b,FD(13740)|0);return}function bG(a,b){a=a|0;b=b|0;wD(a,b,FD(13748)|0);return}function cG(a,b){a=a|0;b=b|0;wD(a,b,FD(13804)|0);return}function dG(a,b){a=a|0;b=b|0;wD(a,b,FD(13812)|0);return}function eG(a,b){a=a|0;b=b|0;wD(a,b,FD(13820)|0);return}function fG(a,b){a=a|0;b=b|0;wD(a,b,FD(13828)|0);return}function gG(a,b){a=a|0;b=b|0;wD(a,b,FD(12720)|0);return}function hG(a,b){a=a|0;b=b|0;wD(a,b,FD(12792)|0);return}function iG(a,b){a=a|0;b=b|0;wD(a,b,FD(12852)|0);return}function jG(a,b){a=a|0;b=b|0;wD(a,b,FD(12912)|0);return}function kG(a,b){a=a|0;b=b|0;wD(a,b,FD(13224)|0);return}function lG(a,b){a=a|0;b=b|0;wD(a,b,FD(13288)|0);return}function mG(a,b){a=a|0;b=b|0;wD(a,b,FD(13352)|0);return}function nG(a,b){a=a|0;b=b|0;wD(a,b,FD(13416)|0);return}function oG(a,b){a=a|0;b=b|0;wD(a,b,FD(13452)|0);return}function pG(a,b){a=a|0;b=b|0;wD(a,b,FD(13488)|0);return}function qG(a,b){a=a|0;b=b|0;wD(a,b,FD(13524)|0);return}function rG(a,b){a=a|0;b=b|0;wD(a,b,FD(13560)|0);return}function sG(a,b){a=a|0;b=b|0;wD(a,b,FD(13004)|0);return}function tG(a,b){a=a|0;b=b|0;wD(a,b,FD(13096)|0);return}function uG(a,b){a=a|0;b=b|0;wD(a,b,FD(13128)|0);return}function vG(a,b){a=a|0;b=b|0;wD(a,b,FD(13160)|0);return}function wG(a,b){a=a|0;b=b|0;wD(a,b,FD(13600)|0);return}function xG(a,b){a=a|0;b=b|0;wD(a,b,FD(13640)|0);return}function yG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+4|0;d=c[h>>2]|0;e=c[a>>2]|0;f=d-e>>2;if(f>>>0>=b>>>0){if(f>>>0>b>>>0?(g=e+(b<<2)|0,(d|0)!=(g|0)):0){do d=d+-4|0;while((d|0)!=(g|0));c[h>>2]=d}}else NG(a,b-f|0);return}function zG(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;do if(e){f=b+4|0;d=c[f>>2]|0;if((d|0)!=(e|0)){do d=d+-4|0;while((d|0)!=(e|0));c[f>>2]=d}if((b+16|0)==(e|0)){a[b+128>>0]=0;break}else{Vt(e);break}}while(0);return}function AG(a){a=a|0;var b=0,d=0;d=a+4|0;b=c[d>>2]|0;d=c[d+4>>2]|0;a=(c[a>>2]|0)+(d>>1)|0;if(d&1)b=c[(c[a>>2]|0)+b>>2]|0;Kc[b&255](a);return}function BG(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;c[g>>2]=d;c[j>>2]=h;if(l&2)if((i-h|0)<3)d=1;else{c[j>>2]=h+1;a[h>>0]=-17;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-69;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-65;m=4}else m=4;a:do if((m|0)==4){n=f;d=c[g>>2]|0;if(d>>>0>>0)while(1){l=b[d>>1]|0;m=l&65535;if(m>>>0>k>>>0){d=2;break a}do if((l&65535)<128){d=c[j>>2]|0;if((i-d|0)<1){d=1;break a}c[j>>2]=d+1;a[d>>0]=l}else{if((l&65535)<2048){d=c[j>>2]|0;if((i-d|0)<2){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>6|192;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((l&65535)<55296){d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m>>>6&63|128;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((l&65535)>=56320){if((l&65535)<57344){d=2;break a}d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m>>>6&63|128;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((n-d|0)<4){d=1;break a}d=d+2|0;l=e[d>>1]|0;if((l&64512|0)!=56320){d=2;break a}if((i-(c[j>>2]|0)|0)<4){d=1;break a}h=m&960;if(((h<<10)+65536|m<<10&64512|l&1023)>>>0>k>>>0){d=2;break a}c[g>>2]=d;d=(h>>>6)+1|0;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=d>>>2|240;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m>>>2&15|d<<4&48|128;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m<<4&48|l>>>6&15|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=l&63|128}while(0);d=(c[g>>2]|0)+2|0;c[g>>2]=d;if(d>>>0>=f>>>0){d=0;break}}else d=0}while(0);return d|0}function CG(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0;c[g>>2]=e;c[j>>2]=h;if(l&4){e=c[g>>2]|0;l=f;if((((l-e|0)>2?(a[e>>0]|0)==-17:0)?(a[e+1>>0]|0)==-69:0)?(a[e+2>>0]|0)==-65:0){c[g>>2]=e+3;m=c[j>>2]|0}else m=h}else{m=h;l=f}q=i;h=c[g>>2]|0;e=h>>>0>>0;a:do if(e&m>>>0>>0)while(1){e=a[h>>0]|0;o=e&255;if(o>>>0>k>>>0){e=2;break a}do if(e<<24>>24>-1){b[m>>1]=e&255;c[g>>2]=h+1}else{if((e&255)<194){e=2;break a}if((e&255)<224){if((l-h|0)<2){e=1;break a}e=d[h+1>>0]|0;if((e&192|0)!=128){e=2;break a}e=e&63|o<<6&1984;if(e>>>0>k>>>0){e=2;break a}b[m>>1]=e;c[g>>2]=h+2;break}if((e&255)<240){if((l-h|0)<3){e=1;break a}n=a[h+1>>0]|0;e=a[h+2>>0]|0;switch(o|0){case 224:{if((n&-32)<<24>>24!=-96){e=2;break a}break}case 237:{if((n&-32)<<24>>24!=-128){e=2;break a}break}default:if((n&-64)<<24>>24!=-128){e=2;break a}}e=e&255;if((e&192|0)!=128){e=2;break a}e=(n&255)<<6&4032|o<<12|e&63;if((e&65535)>>>0>k>>>0){e=2;break a}b[m>>1]=e;c[g>>2]=h+3;break}if((e&255)>=245){e=2;break a}if((l-h|0)<4){e=1;break a}n=a[h+1>>0]|0;e=a[h+2>>0]|0;h=a[h+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){e=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){e=2;break a}break}default:if((n&-64)<<24>>24!=-128){e=2;break a}}p=e&255;if((p&192|0)!=128){e=2;break a}e=h&255;if((e&192|0)!=128){e=2;break a}if((q-m|0)<4){e=1;break a}o=o&7;h=n&255;n=p<<6;e=e&63;if((h<<12&258048|o<<18|n&4032|e)>>>0>k>>>0){e=2;break a}b[m>>1]=h<<2&60|p>>>4&3|((h>>>4&3|o<<2)<<6)+16320|55296;p=m+2|0;c[j>>2]=p;b[p>>1]=e|n&960|56320;c[g>>2]=(c[g>>2]|0)+4}while(0);m=(c[j>>2]|0)+2|0;c[j>>2]=m;h=c[g>>2]|0;e=h>>>0>>0;if(!(e&m>>>0>>0)){r=39;break}}else r=39;while(0);if((r|0)==39)e=e&1;return e|0}function DG(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=c;if((((g&4|0)!=0?(n-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;a:do if((e|0)!=0&g>>>0>>0){m=g;h=0;b:while(1){g=a[m>>0]|0;l=g&255;if(l>>>0>f>>>0){g=m;h=42;break a}do if(g<<24>>24>-1)g=m+1|0;else{if((g&255)<194){g=m;h=42;break a}if((g&255)<224){if((n-m|0)<2){g=m;h=42;break a}g=d[m+1>>0]|0;if((g&192|0)!=128){g=m;h=42;break a}if((g&63|l<<6&1984)>>>0>f>>>0){g=m;h=42;break a}g=m+2|0;break}if((g&255)<240){g=m;if((n-g|0)<3){g=m;h=42;break a}j=a[m+1>>0]|0;i=a[m+2>>0]|0;switch(l|0){case 224:{if((j&-32)<<24>>24!=-96){h=20;break b}break}case 237:{if((j&-32)<<24>>24!=-128){h=22;break b}break}default:if((j&-64)<<24>>24!=-128){h=24;break b}}g=i&255;if((g&192|0)!=128){g=m;h=42;break a}if(((j&255)<<6&4032|l<<12&61440|g&63)>>>0>f>>>0){g=m;h=42;break a}g=m+3|0;break}if((g&255)>=245){g=m;h=42;break a}g=m;if((e-h|0)>>>0<2|(n-g|0)<4){g=m;h=42;break a}k=a[m+1>>0]|0;i=a[m+2>>0]|0;j=a[m+3>>0]|0;switch(l|0){case 240:{if((k+112&255)>=48){h=32;break b}break}case 244:{if((k&-16)<<24>>24!=-128){h=34;break b}break}default:if((k&-64)<<24>>24!=-128){h=36;break b}}i=i&255;if((i&192|0)!=128){g=m;h=42;break a}g=j&255;if((g&192|0)!=128){g=m;h=42;break a}if(((k&255)<<12&258048|l<<18&1835008|i<<6&4032|g&63)>>>0>f>>>0){g=m;h=42;break a}g=m+4|0;h=h+1|0}while(0);h=h+1|0;if(!(h>>>0>>0&g>>>0>>0)){h=42;break a}else m=g}if((h|0)==20){g=g-b|0;break}else if((h|0)==22){g=g-b|0;break}else if((h|0)==24){g=g-b|0;break}else if((h|0)==32){g=g-b|0;break}else if((h|0)==34){g=g-b|0;break}else if((h|0)==36){g=g-b|0;break}}else h=42;while(0);if((h|0)==42)g=g-b|0;return g|0}function EG(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;c[e>>2]=b;c[h>>2]=f;l=g;if(j&2)if((l-f|0)<3)b=1;else{c[h>>2]=f+1;a[f>>0]=-17;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-69;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-65;k=4}else k=4;a:do if((k|0)==4){b=c[e>>2]|0;if(b>>>0>>0)while(1){j=c[b>>2]|0;if(j>>>0>i>>>0|(j&-2048|0)==55296){b=2;break a}do if(j>>>0>=128){if(j>>>0<2048){b=c[h>>2]|0;if((l-b|0)<2){b=1;break a}c[h>>2]=b+1;a[b>>0]=j>>>6|192;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}b=c[h>>2]|0;g=l-b|0;if(j>>>0<65536){if((g|0)<3){b=1;break a}c[h>>2]=b+1;a[b>>0]=j>>>12|224;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}else{if((g|0)<4){b=1;break a}c[h>>2]=b+1;a[b>>0]=j>>>18|240;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j>>>12&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}}else{b=c[h>>2]|0;if((l-b|0)<1){b=1;break a}c[h>>2]=b+1;a[b>>0]=j}while(0);b=(c[e>>2]|0)+4|0;c[e>>2]=b;if(b>>>0>=d>>>0){b=0;break}}else b=0}while(0);return b|0}function FG(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;c[f>>2]=b;c[i>>2]=g;if(k&4){b=c[f>>2]|0;k=e;if((((k-b|0)>2?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)?(a[b+2>>0]|0)==-65:0){c[f>>2]=b+3;g=c[i>>2]|0;p=k}else p=k}else p=e;k=c[f>>2]|0;b=k>>>0>>0;a:do if(b&g>>>0>>0)while(1){b=a[k>>0]|0;o=b&255;do if(b<<24>>24>-1){if(o>>>0>j>>>0){b=2;break a}c[g>>2]=o;c[f>>2]=k+1}else{if((b&255)<194){b=2;break a}if((b&255)<224){if((p-k|0)<2){b=1;break a}b=d[k+1>>0]|0;if((b&192|0)!=128){b=2;break a}b=b&63|o<<6&1984;if(b>>>0>j>>>0){b=2;break a}c[g>>2]=b;c[f>>2]=k+2;break}if((b&255)<240){if((p-k|0)<3){b=1;break a}l=a[k+1>>0]|0;b=a[k+2>>0]|0;switch(o|0){case 224:{if((l&-32)<<24>>24!=-96){b=2;break a}break}case 237:{if((l&-32)<<24>>24!=-128){b=2;break a}break}default:if((l&-64)<<24>>24!=-128){b=2;break a}}b=b&255;if((b&192|0)!=128){b=2;break a}b=(l&255)<<6&4032|o<<12&61440|b&63;if(b>>>0>j>>>0){b=2;break a}c[g>>2]=b;c[f>>2]=k+3;break}if((b&255)>=245){b=2;break a}if((p-k|0)<4){b=1;break a}n=a[k+1>>0]|0;b=a[k+2>>0]|0;l=a[k+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){b=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){b=2;break a}break}default:if((n&-64)<<24>>24!=-128){b=2;break a}}m=b&255;if((m&192|0)!=128){b=2;break a}b=l&255;if((b&192|0)!=128){b=2;break a}b=(n&255)<<12&258048|o<<18&1835008|m<<6&4032|b&63;if(b>>>0>j>>>0){b=2;break a}c[g>>2]=b;c[f>>2]=k+4}while(0);g=(c[i>>2]|0)+4|0;c[i>>2]=g;k=c[f>>2]|0;b=k>>>0>>0;if(!(b&g>>>0>>0)){q=38;break}}else q=38;while(0);if((q|0)==38)b=b&1;return b|0}function GG(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=c;if((((g&4|0)!=0?(n-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;a:do if((e|0)!=0&g>>>0>>0){l=g;m=0;b:while(1){g=a[l>>0]|0;k=g&255;do if(g<<24>>24>-1){if(k>>>0>f>>>0){g=l;h=42;break a}g=l+1|0}else{if((g&255)<194){g=l;h=42;break a}if((g&255)<224){if((n-l|0)<2){g=l;h=42;break a}g=d[l+1>>0]|0;if((g&192|0)!=128){g=l;h=42;break a}if((g&63|k<<6&1984)>>>0>f>>>0){g=l;h=42;break a}g=l+2|0;break}if((g&255)<240){g=l;if((n-g|0)<3){g=l;h=42;break a}i=a[l+1>>0]|0;h=a[l+2>>0]|0;switch(k|0){case 224:{if((i&-32)<<24>>24!=-96){h=20;break b}break}case 237:{if((i&-32)<<24>>24!=-128){h=22;break b}break}default:if((i&-64)<<24>>24!=-128){h=24;break b}}g=h&255;if((g&192|0)!=128){g=l;h=42;break a}if(((i&255)<<6&4032|k<<12&61440|g&63)>>>0>f>>>0){g=l;h=42;break a}g=l+3|0;break}if((g&255)>=245){g=l;h=42;break a}g=l;if((n-g|0)<4){g=l;h=42;break a}j=a[l+1>>0]|0;h=a[l+2>>0]|0;i=a[l+3>>0]|0;switch(k|0){case 240:{if((j+112&255)>=48){h=32;break b}break}case 244:{if((j&-16)<<24>>24!=-128){h=34;break b}break}default:if((j&-64)<<24>>24!=-128){h=36;break b}}h=h&255;if((h&192|0)!=128){g=l;h=42;break a}g=i&255;if((g&192|0)!=128){g=l;h=42;break a}if(((j&255)<<12&258048|k<<18&1835008|h<<6&4032|g&63)>>>0>f>>>0){g=l;h=42;break a}g=l+4|0}while(0);m=m+1|0;if(!(m>>>0>>0&g>>>0>>0)){h=42;break a}else l=g}if((h|0)==20){g=g-b|0;break}else if((h|0)==22){g=g-b|0;break}else if((h|0)==24){g=g-b|0;break}else if((h|0)==32){g=g-b|0;break}else if((h|0)==34){g=g-b|0;break}else if((h|0)==36){g=g-b|0;break}}else h=42;while(0);if((h|0)==42)g=g-b|0;return g|0}function HG(a){a=a|0;Yx(14656);Yx(14644);Yx(14632);Yx(14620);Yx(14608);Yx(14596);Yx(14584);Yx(14572);Yx(14560);Yx(14548);Yx(14536);Yx(14524);Yx(14512);Yx(14500);return}function IG(a){a=a|0;hy(14828);hy(14816);hy(14804);hy(14792);hy(14780);hy(14768);hy(14756);hy(14744);hy(14732);hy(14720);hy(14708);hy(14696);hy(14684);hy(14672);return}function JG(a){a=a|0;Yx(15460);Yx(15448);Yx(15436);Yx(15424);Yx(15412);Yx(15400);Yx(15388);Yx(15376);Yx(15364);Yx(15352);Yx(15340);Yx(15328);Yx(15316);Yx(15304);Yx(15292);Yx(15280);Yx(15268);Yx(15256);Yx(15244);Yx(15232);Yx(15220);Yx(15208);Yx(15196);Yx(15184);return}function KG(a){a=a|0;hy(15752);hy(15740);hy(15728);hy(15716);hy(15704);hy(15692);hy(15680);hy(15668);hy(15656);hy(15644);hy(15632);hy(15620);hy(15608);hy(15596);hy(15584);hy(15572);hy(15560);hy(15548);hy(15536);hy(15524);hy(15512);hy(15500);hy(15488);hy(15476);return}function LG(a){a=a|0;Yx(16564);Yx(16552);Yx(16540);Yx(16528);Yx(16516);Yx(16504);Yx(16492);Yx(16480);Yx(16468);Yx(16456);Yx(16444);Yx(16432);Yx(16420);Yx(16408);Yx(16396);Yx(16384);Yx(16372);Yx(16360);Yx(16348);Yx(16336);Yx(16324);Yx(16312);Yx(16300);Yx(16288);return}function MG(a){a=a|0;hy(16856);hy(16844);hy(16832);hy(16820);hy(16808);hy(16796);hy(16784);hy(16772);hy(16760);hy(16748);hy(16736);hy(16724);hy(16712);hy(16700);hy(16688);hy(16676);hy(16664);hy(16652);hy(16640);hy(16628);hy(16616);hy(16604);hy(16592);hy(16580);return}function NG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;g=c[a+8>>2]|0;d=c[a+4>>2]|0;if(g-d>>2>>>0>>0){e=c[a>>2]|0;h=d-e>>2;f=h+b|0;if(f>>>0>1073741823)Rt(a);d=g-e|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?f:d}else d=1073741823;PG(j,d,h,a+16|0);h=j+8|0;g=c[h>>2]|0;iH(g|0,0,b<<2|0)|0;c[h>>2]=g+(b<<2);QG(a,j);RG(j)}else OG(a,b);i=k;return}function OG(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function PG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;c[b+12>>2]=0;c[b+16>>2]=f;do if(d){g=f+112|0;if(d>>>0<29&(a[g>>0]|0)==0){a[g>>0]=1;break}else{f=Tt(d<<2)|0;break}}else f=0;while(0);c[b>>2]=f;e=f+(e<<2)|0;c[b+8>>2]=e;c[b+4>>2]=e;c[b+12>>2]=f+(d<<2);return}function QG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;g=a+4|0;d=b+4|0;f=(c[g>>2]|0)-e|0;h=(c[d>>2]|0)+(0-(f>>2)<<2)|0;c[d>>2]=h;gH(h|0,e|0,f|0)|0;f=c[a>>2]|0;c[a>>2]=c[d>>2];c[d>>2]=f;f=b+8|0;e=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=e;f=a+8|0;a=b+12|0;e=c[f>>2]|0;c[f>>2]=c[a>>2];c[a>>2]=e;c[b>>2]=c[d>>2];return}function RG(b){b=b|0;var d=0,e=0,f=0;e=c[b+4>>2]|0;f=b+8|0;d=c[f>>2]|0;if((d|0)!=(e|0)){do d=d+-4|0;while((d|0)!=(e|0));c[f>>2]=d}e=c[b>>2]|0;do if(e){d=c[b+16>>2]|0;if((d|0)==(e|0)){a[d+112>>0]=0;break}else{Vt(e);break}}while(0);return}function SG(b,d){b=b|0;d=d|0;var e=0;if(d>>>0>1073741823)Rt(b);e=b+128|0;if(d>>>0<29&(a[e>>0]|0)==0){a[e>>0]=1;e=b+16|0}else e=Tt(d<<2)|0;c[b+4>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(d<<2);return}function TG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if((a|0)!=(b|0)){f=Pu()|0;g=c[f>>2]|0;c[f>>2]=0;e=+rw(a,h,Wz()|0);a=c[f>>2]|0;if(!a)c[f>>2]=g;if((c[h>>2]|0)!=(b|0)){c[d>>2]=4;e=0.0;break}if((a|0)==34)c[d>>2]=4}else{c[d>>2]=4;e=0.0}while(0);i=j;return +e}function UG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if((a|0)!=(b|0)){f=Pu()|0;g=c[f>>2]|0;c[f>>2]=0;e=+rw(a,h,Wz()|0);a=c[f>>2]|0;if(!a)c[f>>2]=g;if((c[h>>2]|0)!=(b|0)){c[d>>2]=4;e=0.0;break}if((a|0)==34)c[d>>2]=4}else{c[d>>2]=4;e=0.0}while(0);i=j;return +e}function VG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{f=Pu()|0;g=c[f>>2]|0;c[f>>2]=0;e=+rw(a,h,Wz()|0);a=c[f>>2]|0;if(!a)c[f>>2]=g;if((c[h>>2]|0)!=(b|0)){c[d>>2]=4;e=0.0;break}if((a|0)==34)c[d>>2]=4}while(0);i=j;return +e}function WG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;do if((b|0)!=(d|0)){if((a[b>>0]|0)==45){c[e>>2]=4;f=0;b=0;break}g=Pu()|0;h=c[g>>2]|0;c[g>>2]=0;b=Iu(b,j,f,Wz()|0)|0;f=c[g>>2]|0;if(!f)c[g>>2]=h;if((c[j>>2]|0)!=(d|0)){c[e>>2]=4;f=0;b=0;break}if((f|0)==34){c[e>>2]=4;f=-1;b=-1}else f=D}else{c[e>>2]=4;f=0;b=0}while(0);D=f;i=k;return b|0}function XG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;do if((b|0)!=(d|0)){if((a[b>>0]|0)==45){c[e>>2]=4;b=0;break}h=Pu()|0;j=c[h>>2]|0;c[h>>2]=0;b=Iu(b,k,f,Wz()|0)|0;f=D;g=c[h>>2]|0;if(!g)c[h>>2]=j;if((c[k>>2]|0)!=(d|0)){c[e>>2]=4;b=0;break}if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==34){c[e>>2]=4;b=-1;break}else break}else{c[e>>2]=4;b=0}while(0);i=l;return b|0}function YG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;do if((b|0)!=(d|0)){if((a[b>>0]|0)==45){c[e>>2]=4;b=0;break}h=Pu()|0;j=c[h>>2]|0;c[h>>2]=0;b=Iu(b,k,f,Wz()|0)|0;f=D;g=c[h>>2]|0;if(!g)c[h>>2]=j;if((c[k>>2]|0)!=(d|0)){c[e>>2]=4;b=0;break}if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==34){c[e>>2]=4;b=-1;break}else break}else{c[e>>2]=4;b=0}while(0);i=l;return b|0}function ZG(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;do if((b|0)!=(d|0)){if((a[b>>0]|0)==45){c[e>>2]=4;b=0;break}h=Pu()|0;j=c[h>>2]|0;c[h>>2]=0;b=Iu(b,k,f,Wz()|0)|0;f=D;g=c[h>>2]|0;if(!g)c[h>>2]=j;if((c[k>>2]|0)!=(d|0)){c[e>>2]=4;b=0;break}if(f>>>0>0|(f|0)==0&b>>>0>65535|(g|0)==34){c[e>>2]=4;b=-1;break}else{b=b&65535;break}}else{c[e>>2]=4;b=0}while(0);i=l;return b|0}function _G(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;do if((a|0)!=(b|0)){g=Pu()|0;h=c[g>>2]|0;c[g>>2]=0;a=Ju(a,j,e,Wz()|0)|0;e=D;f=c[g>>2]|0;if(!f)c[g>>2]=h;if((c[j>>2]|0)!=(b|0)){c[d>>2]=4;e=0;a=0;break}if((f|0)==34){c[d>>2]=4;j=(e|0)>0|(e|0)==0&a>>>0>0;D=j?2147483647:-2147483648;i=k;return (j?-1:0)|0}}else{c[d>>2]=4;e=0;a=0}while(0);D=e;i=k;return a|0}function $G(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;a:do if((a|0)==(b|0)){c[d>>2]=4;a=0}else{g=Pu()|0;h=c[g>>2]|0;c[g>>2]=0;a=Ju(a,j,e,Wz()|0)|0;e=D;f=c[g>>2]|0;if(!f)c[g>>2]=h;if((c[j>>2]|0)!=(b|0)){c[d>>2]=4;a=0;break}do if((f|0)==34){c[d>>2]=4;if((e|0)>0|(e|0)==0&a>>>0>0){a=2147483647;break a}}else{if((e|0)<-1|(e|0)==-1&a>>>0<2147483648){c[d>>2]=4;break}if((e|0)>0|(e|0)==0&a>>>0>2147483647){c[d>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}while(0);i=k;return a|0}function aH(){}function bH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D=d,a-c>>>0|0)|0}function cH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function dH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;q=q+1|0;c[a>>2]=q;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=q;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;D=e;return d|0}f=f+1|0}e=e*2|0;d=fx(d|0,8*(e+1|0)|0)|0;d=dH(a|0,b|0,d|0,e|0)|0;D=e;return d|0}function eH(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function fH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function gH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Qa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function hH(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else gH(b,c,d)|0;return b|0}function iH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function jH(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>c;return a>>>c|(b&(1<>c-32|0}function lH(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function mH(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=$(e,f)|0;d=a>>>16;a=(c>>>16)+($(e,d)|0)|0;e=b>>>16;b=$(e,f)|0;return (D=(a>>>16)+($(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function nH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=bH(j^a,i^b,j,i)|0;g=D;a=f^j;b=e^i;return bH((sH(h,g,bH(f^c,e^d,f,e)|0,D,0)|0)^a,D^b,a,b)|0}function oH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=bH(h^a,g^b,h,g)|0;b=D;sH(a,b,bH(l^d,k^e,l,k)|0,D,j)|0;e=bH(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=D;i=f;return (D=d,e)|0}function pH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=mH(e,f)|0;a=D;return (D=($(b,f)|0)+($(d,e)|0)+a|a&0,c|0|0)|0}function qH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return sH(a,b,c,d,0)|0}function rH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;sH(a,b,d,e,f)|0;i=g;return (D=c[f+4>>2]|0,c[f>>2]|0)|0}function sH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D=n,f)|0}else{if(!g){n=0;f=0;return (D=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(ba(i|0)|0)-(ba(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D=n,f)|0}g=h-1|0;if(g&h){i=(ba(h|0)|0)+33-(ba(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D=o,p)|0}else{p=lH(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((lH(i|0)|0)>>>0);return (D=o,p)|0}g=(ba(i|0)|0)-(ba(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=cH(m|0,l|0,-1,-1)|0;d=D;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;bH(k,d,e,n)|0;p=D;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=bH(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=D;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D=o,p)|0}function tH(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Gc[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function uH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Hc[a&31](b|0,c|0,d|0,e|0,f|0)}function vH(a,b,c){a=a|0;b=b|0;c=+c;Ic[a&3](b|0,+c)}function wH(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Jc[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function xH(a,b){a=a|0;b=b|0;Kc[a&255](b|0)}function yH(a,b,c){a=a|0;b=b|0;c=c|0;Lc[a&63](b|0,c|0)}function zH(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Mc[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function AH(a,b){a=a|0;b=b|0;return Nc[a&127](b|0)|0}function BH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Oc[a&31](b|0,c|0,d|0,e|0,f|0)|0}function CH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Pc[a&63](b|0,c|0,d|0)|0}function DH(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Qc[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function EH(a,b){a=a|0;b=b|0;return +Rc[a&3](b|0)}function FH(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Sc[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function GH(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Tc[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function HH(a,b,c){a=a|0;b=b|0;c=c|0;return Uc[a&63](b|0,c|0)|0}function IH(a,b,c){a=a|0;b=b|0;c=c|0;return +Vc[a&1](b|0,c|0)}function JH(a){a=a|0;return Wc[a&1]()|0}function KH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Xc[a&15](b|0,c|0,d|0,e|0)|0}function LH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Yc[a&3](b|0,c|0,d|0)}function MH(a){a=a|0;Zc[a&3]()}function NH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;_c[a&3](b|0,c|0,+d)}function OH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return $c[a&7](b|0,c|0,d|0,e|0,+f)|0}function PH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ad[a&31](b|0,c|0,d|0,e|0)}function QH(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ca(0);return 0}function RH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ca(1)}function SH(a,b){a=a|0;b=+b;ca(2)}function TH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;ca(3);return 0}function UH(a){a=a|0;ca(4)}function VH(a,b){a=a|0;b=b|0;ca(5)}function WH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ca(6);return 0}function XH(a){a=a|0;ca(7);return 0}function YH(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ca(8);return 0}function ZH(a,b,c){a=a|0;b=b|0;c=c|0;ca(9);return 0}function _H(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ca(10)}function $H(a){a=a|0;ca(11);return 0.0}function aI(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ca(12);return 0}function bI(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ca(13)}function cI(a,b){a=a|0;b=b|0;ca(14);return 0}function dI(a,b){a=a|0;b=b|0;ca(15);return 0.0}function eI(){ca(16);return 0}function fI(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(17);return 0}function gI(a,b,c){a=a|0;b=b|0;c=c|0;ca(18)}function hI(){ca(19)}function iI(a,b,c){a=a|0;b=b|0;c=+c;ca(20)}function jI(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;ca(21);return 0}function kI(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ca(22)} // EMSCRIPTEN_END_FUNCS -var Qb=[Ik,Zh,_h,Qj,Qi,Pi,Ri,Ag,sg,qg,rg,yg,kh,jh,Oi,Mj];var Rb=[Jk,ki,ji,gi];var Sb=[Kk,dh];var Tb=[Lk,Wf,Yf,ag];var Ub=[Mk,Xf,Zf,bg];var Vb=[Nk,Nf];var Wb=[Ok,Mh,Nh,Sh,Vh,Th,Uh,Wh,Xh,Yh,Mf,Xg,Yg,Ij,Jj,Ok];var Xb=[Pk,ig,gg,_f,cg,eg,ng,gh];var Yb=[Qk,Oh,Ni,Pf,Vf,Qf,wg,xg,mg,lg,jg,hg,$f,dg,fg,og,fh,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk,Qk];var Zb=[Rk,ch];var _b=[Sk];var $b=[Tk,eh,bh,Tk];var ac=[Uk,mh];var bc=[Vk,ni,mi,li];var cc=[Wk,Df,Sf,Tf,Uf,tg,vg,ug,zg,kg,lh,hh,Wk,Wk,Wk,Wk];var dc=[Xk,ai,bi,di];return{_i64Subtract:dk,_fflush:Yi,_i64Add:gk,_memset:ek,_malloc:Uj,_memcpy:ik,___getTypeName:Ah,_bitshift64Lshr:hk,_free:Vj,___errno_location:qi,_bitshift64Shl:fk,__GLOBAL__sub_I_ARToolKitJS_cpp:Wg,__GLOBAL__sub_I_bind_cpp:Ch,runPostSets:ck,stackAlloc:ec,stackSave:fc,stackRestore:gc,establishStackSpace:hc,setThrew:ic,setTempRet0:lc,getTempRet0:mc,dynCall_iiii:sk,dynCall_viiiii:tk,dynCall_dii:uk,dynCall_vid:vk,dynCall_di:wk,dynCall_i:xk,dynCall_vi:yk,dynCall_vii:zk,dynCall_ii:Ak,dynCall_viii:Bk,dynCall_v:Ck,dynCall_viid:Dk,dynCall_iiiii:Ek,dynCall_viiiiii:Fk,dynCall_iii:Gk,dynCall_viiii:Hk}}) +var Gc=[QH,PB,TB,NC,RC,WC,YC,QH];var Hc=[RH,yu,xu,uu,Qp,Rp,Tp,Up,Vp,Zq,_q,np,mp,lp,kp,jp,ip,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH,RH];var Ic=[SH,Tr,Vr,Zr];var Jc=[TH,aD,gD,TH];var Kc=[UH,kj,lj,Aj,Bj,tj,uj,Mx,nn,on,qn,mo,no,po,qo,ro,to,Yt,Zt,eu,hu,fu,gu,iu,ju,ku,Ky,qx,wx,vy,Bx,Hx,wy,Ly,Zy,$y,_y,az,cz,ez,dz,fz,hz,jz,iz,kz,pz,rz,qz,sz,ry,vz,xz,zz,ID,Dz,Ez,Iz,Jz,Xz,Yz,pA,qA,EA,FA,RA,SA,oB,pB,MB,OB,RB,SB,VB,WB,eC,fC,pC,qC,AC,BC,LC,MC,UC,VC,_C,$C,eD,fD,kD,lD,pD,qD,xD,yD,YD,ZD,rF,oE,QE,RE,SE,TE,yz,HD,KD,gE,wE,EE,ME,NE,Rg,Lo,vo,Fp,Ip,Jp,Kp,Pp,Wp,Xp,_p,$p,aq,dq,jq,kq,lq,qq,sq,Bq,Dq,Fq,Hq,Iq,Mq,Uq,Yq,dr,gr,Ir,Ws,Xs,Hu,Qw,Rw,jx,OC,JD,AG,HG,IG,JG,KG,LG,MG,Yx,hy,dx,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH,UH];var Lc=[VH,rx,vx,Cx,Gx,yy,Ny,ZB,_B,$B,aC,cC,dC,iC,jC,kC,lC,nC,oC,tC,uC,vC,wC,yC,zC,EC,FC,GC,HC,JC,KC,oD,tD,YE,_E,aF,ZE,$E,bF,Ro,Hp,bq,rq,Cq,Eq,Gq,Lq,Xq,$q,fs,ds,Xr,$r,bs,ks,ft,VH,VH,VH,VH,VH,VH,VH,VH];var Mc=[WH,Kz,Lz,Mz,Nz,Oz,Pz,Qz,Rz,Sz,Tz,Uz,Zz,_z,$z,aA,bA,cA,dA,eA,fA,gA,hA,wA,yA,JA,LA,UA,VA,WA,YA,_A,rB,sB,tB,vB,xB,dD,jD,Sq,Tq,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH];var Nc=[XH,vj,_t,Dv,sx,Sy,Uy,Vy,Ry,xx,yx,Dx,Dy,Fy,Gy,Cy,Ix,Jx,TA,dF,fF,hF,nF,pF,jF,lF,qB,eF,gF,iF,oF,qF,kF,mF,XB,YB,bC,gC,hC,mC,rC,sC,xC,CC,DC,IC,sE,tE,vE,UE,WE,VE,XE,kE,lE,nE,AE,BE,DE,IE,JE,LE,hp,Po,cx,Oo,Gp,Lp,Np,Zp,eq,fq,gq,hq,Lr,Gr,Sr,Mr,ts,us,Fr,js,is,gs,es,Yr,as,cs,ls,et,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH,XH];var Oc=[YH,Az,Fz,rA,sA,xA,DA,GA,HA,KA,PA,fE,rE,uE,WD,jE,mE,zE,CE,HE,KE,Vq,Wq,YH,YH,YH,YH,YH,YH,YH,YH,YH];var Pc=[ZH,lu,mu,_w,Gv,Fv,Ev,Hv,Oy,Ty,tx,Xy,zy,Ey,Ex,Iy,Cz,Hz,mD,rD,$D,bE,eE,LD,QD,SD,VD,Qo,Oq,Pq,xs,ps,ns,os,vs,jt,it,Uw,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH,ZH];var Qc=[_H,Bu,Au,zu,Py,Ay,nD,sD];var Rc=[$H,Ur,Wr,_r];var Sc=[aI,aB,zB,pE,qE,hE,iE,xE,yE,FE,GE,aI,aI,aI,aI,aI];var Tc=[bI,mq,oq,tq,or,pr,qr,bI];var Uc=[cI,pn,oo,so,Wy,ux,zx,Yy,Hy,Fx,Kx,Jy,_D,aE,cE,PD,RD,TD,Dg,Mo,$o,Mp,Op,Yp,Dr,rr,sr,tr,ur,Or,Qr,Pr,Rr,qs,ss,rs,ws,Er,hs,kt,gt,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI,cI];var Vc=[dI,ct];var Wc=[eI,Jr];var Xc=[fI,dE,MD,ND,OD,UD,Qq,Rq,lt,fI,fI,fI,fI,fI,fI,fI];var Yc=[gI,Kf,Ko,bt];var Zc=[hI,Fu,Gu,hI];var _c=[iI,dt,at,iI];var $c=[jI,zA,CA,MA,OA,jI,jI,jI];var ad=[kI,ou,pu,ru,Qy,By,Bz,Gz,nq,pq,uq,vq,wq,xq,yq,zq,Aq,zr,Ar,Br,jr,kr,lr,mr,nr,cr,er,fr,kI,kI,kI,kI];return{_testSetjmp:fH,___cxa_can_catch:Cu,_fflush:Ov,___cxa_is_pointer_type:Du,_i64Add:cH,_memmove:hH,_realloc:fx,_i64Subtract:bH,_memset:iH,_malloc:cx,_saveSetjmp:dH,_memcpy:gH,___getTypeName:Gt,_bitshift64Lshr:eH,_free:dx,___errno_location:Pu,_bitshift64Shl:jH,__GLOBAL__I_000101:kx,__GLOBAL__sub_I_ARToolKitJS_cpp:Vs,__GLOBAL__sub_I_bind_cpp:It,__GLOBAL__sub_I_iostream_cpp:lx,runPostSets:aH,stackAlloc:bd,stackSave:cd,stackRestore:dd,establishStackSpace:ed,setThrew:fd,setTempRet0:id,getTempRet0:jd,dynCall_iiiiiiii:tH,dynCall_viiiii:uH,dynCall_vid:vH,dynCall_iiiiiid:wH,dynCall_vi:xH,dynCall_vii:yH,dynCall_iiiiiii:zH,dynCall_ii:AH,dynCall_iiiiii:BH,dynCall_iiii:CH,dynCall_viiiiii:DH,dynCall_di:EH,dynCall_iiiiiiiii:FH,dynCall_viiiiiii:GH,dynCall_iii:HH,dynCall_dii:IH,dynCall_i:JH,dynCall_iiiii:KH,dynCall_viii:LH,dynCall_v:MH,dynCall_viid:NH,dynCall_iiiiid:OH,dynCall_viiii:PH}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var _fflush=Module["_fflush"]=asm["_fflush"];var __GLOBAL__sub_I_ARToolKitJS_cpp=Module["__GLOBAL__sub_I_ARToolKitJS_cpp"]=asm["__GLOBAL__sub_I_ARToolKitJS_cpp"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memset=Module["_memset"]=asm["_memset"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var __GLOBAL__sub_I_ARToolKitJS_cpp=Module["__GLOBAL__sub_I_ARToolKitJS_cpp"]=asm["__GLOBAL__sub_I_ARToolKitJS_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _memset=Module["_memset"]=asm["_memset"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var _realloc=Module["_realloc"]=asm["_realloc"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _memmove=Module["_memmove"]=asm["_memmove"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() From e31f5d7f533345e09fac490addae3a4d64e30abe Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:37:59 +0300 Subject: [PATCH 06/15] Add files via upload From bb6d6d66782a0fb0403454d3fceb6e99aeb9fdd3 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:38:49 +0300 Subject: [PATCH 07/15] Add files via upload --- examples/nft_babylonjs.html | 89 +++++++++++++++++++++++++++ examples/nft_threejs.html | 116 ++++++++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+) create mode 100644 examples/nft_babylonjs.html create mode 100644 examples/nft_threejs.html diff --git a/examples/nft_babylonjs.html b/examples/nft_babylonjs.html new file mode 100644 index 00000000..1ef03981 --- /dev/null +++ b/examples/nft_babylonjs.html @@ -0,0 +1,89 @@ + + +NFT marker example with Babylon.js + + + + + +

NFT marker example with Bablyon.js

+

On Chrome on Android, tap the screen to start playing video stream.

+

Show Pinball image to camera to display a colorful object on top of it. Tap the screen to rotate the object. + + + + + + + + + \ No newline at end of file diff --git a/examples/nft_threejs.html b/examples/nft_threejs.html new file mode 100644 index 00000000..5e1401e5 --- /dev/null +++ b/examples/nft_threejs.html @@ -0,0 +1,116 @@ + + +Pattern marker example with Three.js + + + + + +

NFT marker example with Three.js

+

On Chrome on Android, tap the screen to start playing video stream.

+

Show Pinball image to camera to display a colorful object on top of it. Tap the screen to rotate the object. + + + + + + + + + \ No newline at end of file From 7dc1d9a0c86db0472ac480f2250a202621b25c0b Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:40:56 +0300 Subject: [PATCH 08/15] Create test --- examples/DataNFT/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/DataNFT/test diff --git a/examples/DataNFT/test b/examples/DataNFT/test new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/examples/DataNFT/test @@ -0,0 +1 @@ + From dcc2b93b5b781e82eef4dba44c64edb0a62b230b Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:41:18 +0300 Subject: [PATCH 09/15] Delete test --- examples/DataNFT/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 examples/DataNFT/test diff --git a/examples/DataNFT/test b/examples/DataNFT/test deleted file mode 100644 index 8b137891..00000000 --- a/examples/DataNFT/test +++ /dev/null @@ -1 +0,0 @@ - From 0813fe14ffb405fd31cc18fbdbe5d3747096e4b9 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:41:43 +0300 Subject: [PATCH 10/15] Create test --- examples/DataNFT/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/DataNFT/test diff --git a/examples/DataNFT/test b/examples/DataNFT/test new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/examples/DataNFT/test @@ -0,0 +1 @@ + From 5c39aeef99fe2f8d37664f02fba25da0de3654d6 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:42:06 +0300 Subject: [PATCH 11/15] Add files via upload --- examples/DataNFT/pinball.fset | Bin 0 -> 12288 bytes examples/DataNFT/pinball.fset3 | Bin 0 -> 640324 bytes examples/DataNFT/pinball.iset | Bin 0 -> 125925 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/DataNFT/pinball.fset create mode 100644 examples/DataNFT/pinball.fset3 create mode 100644 examples/DataNFT/pinball.iset diff --git a/examples/DataNFT/pinball.fset b/examples/DataNFT/pinball.fset new file mode 100644 index 0000000000000000000000000000000000000000..586f7bf4f01a4eb749644d6e6f36ddd8b3219cd7 GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/examples/DataNFT/pinball.fset3 b/examples/DataNFT/pinball.fset3 new file mode 100644 index 0000000000000000000000000000000000000000..0291b4ad59788cad0dcbd7f2501499a83d379ff7 GIT binary patch literal 640324 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

ctvM%GmpxXKHOkNks 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

VtbrB%H(hD%bLhM8Haf?5BZY7T|E1Cqc1oY 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ℜ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

Y%f{G`Y|C1GFqmeUW_L!lo8^rM&OuSA~T@rGN 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�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

%L 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%0ANwT`S|w_jkVx>tgByS&mg$s7I(fL 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 z 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žyMP{)t+qB)R|n=2pYQyNfBBFwdu-_8gLiinQB^Zqfs{ZV@=HCG6P;h(}*vVK-?P5&vUh--cZ*1~FHbwH#Ova{95 z7o=mH!Nj>L1wcUz$R*|{hMWT?bJKncEi+K)f^=OzIjB`6Q^h(FIZ2HYJ)XMQT3z3R zhgtmO9^ntaekx#`W0=Btx%Eb=X4VuLu~v`NRP|SDI02o^)=bll6#CKj99%K*hkI{j@)HT2Xc_Te%Rib`Jr&}nO-TZ zqZ@{#Z~vO|QN;74DE?N;_1RBp1dK7hIv6yHYEQYn;Ay>KI55Ch2eTWcL9k!ASq<^7 zvl~1uD1ex=A1vvLorHE09|3z-7KFeM=6C=5WaW4?E429H$EDu z&tNDhHW+o-n?Qz1fPuwlAqNGUH%{8CPgaM=g}4D2230&l|Q0LkBAMdX sn1L4<;#T4HWnAo*5%{|T7n`d)xDxQ1t;i`{&A1qzm*V<6F7{pi3ng&EcmMzZ literal 0 HcmV?d00001 diff --git a/examples/DataNFT/pinball.iset b/examples/DataNFT/pinball.iset new file mode 100644 index 0000000000000000000000000000000000000000..5d228985332a39e84f0d25ccd2c588acf81b8cca GIT binary patch literal 125925 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

NFT marker example with Bablyon.js

On Chrome on Android, tap the screen to start playing video stream.

Show Pinball image to camera to display a colorful object on top of it. Tap the screen to rotate the object. - + - +

-jeBxtf4DkUl7I#&PaM>v?$mNO7^*sr(%Zts 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 LUY5y0005vtx{vb; literal 0 HcmV?d00001 From b155ab9f2e95229f9f4fed8607fa306e0cbcfbf4 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:42:22 +0300 Subject: [PATCH 12/15] Delete test --- examples/DataNFT/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 examples/DataNFT/test diff --git a/examples/DataNFT/test b/examples/DataNFT/test deleted file mode 100644 index 8b137891..00000000 --- a/examples/DataNFT/test +++ /dev/null @@ -1 +0,0 @@ - From ce367ac9a1ecd87db579e5acd7e1dda02766936a Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Sun, 3 Dec 2017 21:50:33 +0300 Subject: [PATCH 13/15] Add files via upload From 03ee4b8f7af2e2662b7fc031a811a3ca247829b0 Mon Sep 17 00:00:00 2001 From: MOSTAFA ALKAOURI Date: Mon, 4 Dec 2017 23:25:53 +0300 Subject: [PATCH 14/15] Add files via upload --- js/artoolkit.babylon.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/js/artoolkit.babylon.js b/js/artoolkit.babylon.js index c32924e5..3feedac9 100644 --- a/js/artoolkit.babylon.js +++ b/js/artoolkit.babylon.js @@ -57,18 +57,30 @@ process: function() { for (var i in self.BabylonPatternMarkers) { self.BabylonPatternMarkers[i].visible = false; + self.BabylonPatternMarkers[i].getChildMeshes().forEach(function (mesh) { + mesh.isVisible = false; + }); } for (var i in self.BabylonNFTMarkers) { self.BabylonNFTMarkers[i].visible = false; + self.BabylonNFTMarkers[i].getChildMeshes().forEach(function (mesh) { + mesh.isVisible = false; + }); } for (var i in self.BabylonBarcodeMarkers) { self.BabylonBarcodeMarkers[i].visible = false; + self.BabylonBarcodeMarkers[i].getChildMeshes().forEach(function (mesh) { + mesh.isVisible = false; + }); } for (var i in self.BabylonMultiMarkers) { self.BabylonMultiMarkers[i].visible = false; for (var j=0; j Date: Mon, 4 Dec 2017 23:26:37 +0300 Subject: [PATCH 15/15] Add files via upload --- examples/nft_babylonjs.html | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/examples/nft_babylonjs.html b/examples/nft_babylonjs.html index 1ef03981..2537b239 100644 --- a/examples/nft_babylonjs.html +++ b/examples/nft_babylonjs.html @@ -25,9 +25,9 @@